From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Mattias Ellert To: git-commits@fedoraproject.org Subject: [rpms/xrootd] rawhide: Update to version 6.1.0 Date: Wed, 24 Jun 2026 05:08:23 GMT Message-ID: <178227770341.1.7251272575171168652.rpms-xrootd-fac6715ea9dd@fedoraproject.org> List-ID: X-Git-Repo: rpms/xrootd X-Git-Branch: rawhide X-Git-Rev: fac6715ea9dd0e1faf8422f146d1275eeed6d0e7 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMveHJvb3RkCiAgICAgICAgICAgIEJyYW5jaCA6IHJhd2hpZGUKICAgICAgICAg ICAgQ29tbWl0IDogZmFjNjcxNWVhOWRkMGUxZmFmODQyMmYxNDZkMTI3NWVlZWQ2ZDBlNwogICAg ICAgICAgICBBdXRob3IgOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2ljcy51 dS5zZT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAyNi0wNi0yNFQwNzowNDoyOCswMjowMAogICAg ICAgICAgICBTdGF0cyAgOiArOS8tNjA1IGluIDQgZmlsZShzKQogICAgICAgICAgICBVUkwgICAg OiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3hyb290ZC9jL2ZhYzY3MTVlYTlk ZDBlMWZhZjg0MjJmMTQ2ZDEyNzVlZWVkNmQwZTc/YnJhbmNoPXJhd2hpZGUKCiAgICAgICAgICAg IExvZzoKICAgICAgICAgICAgVXBkYXRlIHRvIHZlcnNpb24gNi4xLjAKCkRyb3AgcGF0Y2hlcyBh Y2NlcHRlZCB1cHN0cmVhbQoKLS0tCmRpZmYgLS1naXQgYS8wMDAxLVhyZENyeXB0by1YcmRUbHMt WHJkVm9tcy1BZGFwdC10by1PcGVuU1NMLTQuMC5wYXRjaCBiLzAwMDEtWHJkQ3J5cHRvLVhyZFRs cy1YcmRWb21zLUFkYXB0LXRvLU9wZW5TU0wtNC4wLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBlNDZhZDllLi4wMDAwMDAwCi0tLSBhLzAwMDEtWHJkQ3J5cHRvLVhyZFRscy1Y cmRWb21zLUFkYXB0LXRvLU9wZW5TU0wtNC4wLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTY2 ICswLDAgQEAKLUZyb20gNTM0ZTFhYTJlZmQ4ZTU5MjcxZDI0MTBkYzRhNGQzM2FiN2JjOGVkOSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVs bGVydEBwaHlzaWNzLnV1LnNlPgotRGF0ZTogU2F0LCAyMyBNYXkgMjAyNiAxODo1Nzo1NCArMDIw MAotU3ViamVjdDogW1BBVENIIDEvMl0gW1hyZENyeXB0by9YcmRUbHMvWHJkVm9tc10gQWRhcHQg dG8gT3BlblNTTCA0LjAKLQotLS0tCi0gc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xBdXguY2Mg ICAgIHwgICA2ICstCi0gc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xBdXguaGggICAgIHwgICAy ICstCi0gc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xYNTA5LmNjICAgIHwgIDQ4ICsrKysrLS0t LQotIHNyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsWDUwOUNybC5jYyB8ICAgMiArLQotIHNyYy9Y cmRDcnlwdG8vWHJkQ3J5cHRvc3NsZ3NpQXV4LmNjICB8IDE0MCArKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0KLSBzcmMvWHJkVGxzL1hyZFRsc05vdGFyeVV0aWxzLmljYyAgICAgfCAgIDQgKy0K LSBzcmMvWHJkVm9tcy9YcmRWb21zRnVuLmNjICAgICAgICAgICAgfCAgIDIgKy0KLSBzcmMvWHJk Vm9tcy9YcmRWb21zRnVuLmhoICAgICAgICAgICAgfCAgIDIgKy0KLSA4IGZpbGVzIGNoYW5nZWQs IDE0NSBpbnNlcnRpb25zKCspLCA2MSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9Y cmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4LmNjIGIvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xB dXguY2MKLWluZGV4IDM4OTNiYzJiNC4uYTQ0MjgzOTg1IDEwMDY0NAotLS0tIGEvc3JjL1hyZENy eXB0by9YcmRDcnlwdG9zc2xBdXguY2MKLSsrKyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3Ns QXV4LmNjCi1AQCAtNjkxLDEzICs2OTEsMTMgQEAgdGltZV90IFhyZENyeXB0b3NzbEFTTjF0b1VU Qyhjb25zdCBBU04xX1RJTUUgKnRzbjEpCi0gICAgLy8gT3VyIHJlc3VsdCBpcyBpbiBhZ3JlZW1l bnQgd2l0aCAnZGF0ZSArJXNgLiAKLSAgICBzdHJ1Y3QgdG0gbHRtOwotICAgIGNoYXIgeno7Ci0t ICAgaWYgKChzc2NhbmYoKGNvbnN0IGNoYXIgKikodHNuMS0+ZGF0YSksCi0rICAgaWYgKChzc2Nh bmYoKGNvbnN0IGNoYXIgKikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHRzbjEpLAotICAgICAgICAi JTAyZCUwMmQlMDJkJTAyZCUwMmQlMDJkJWMiLCAKLSAgICAgICAgJihsdG0udG1feWVhciksICYo bHRtLnRtX21vbiksICYobHRtLnRtX21kYXkpLAotICAgICAgICAmKGx0bS50bV9ob3VyKSwgJihs dG0udG1fbWluKSwgJihsdG0udG1fc2VjKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZ6eikgIT0gNykgfHwgKHp6ICE9ICdaJykpIHsKLSAgICAgICAgLy8gVHJ5IEdl bmVyYWxpemVkVGltZQotLSAgICAgICBpZiAoKHNzY2FuZigoY29uc3QgY2hhciAqKSh0c24xLT5k YXRhKSwKLSsgICAgICAgaWYgKChzc2NhbmYoKGNvbnN0IGNoYXIgKikgQVNOMV9TVFJJTkdfZ2V0 MF9kYXRhKHRzbjEpLAotICAgICAgICAgICAgIiUwNGQlMDJkJTAyZCUwMmQlMDJkJTAyZCVjIiwg Ci0gICAgICAgICAgICAmKGx0bS50bV95ZWFyKSwgJihsdG0udG1fbW9uKSwgJihsdG0udG1fbWRh eSksCi0gICAgICAgICAgICAmKGx0bS50bV9ob3VyKSwgJihsdG0udG1fbWluKSwgJihsdG0udG1f c2VjKSwKLUBAIC03MzMsNyArNzMzLDcgQEAgdGltZV90IFhyZENyeXB0b3NzbEFTTjF0b1VUQyhj b25zdCBBU04xX1RJTUUgKnRzbjEpCi0gfSAKLSAKLSAvL19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KLS12 b2lkIFhyZENyeXB0b3NzbE5hbWVPbmVMaW5lKFg1MDlfTkFNRSAqbm0sIFhyZE91Y1N0cmluZyAm cykKLSt2b2lkIFhyZENyeXB0b3NzbE5hbWVPbmVMaW5lKGNvbnN0IFg1MDlfTkFNRSAqbm0sIFhy ZE91Y1N0cmluZyAmcykKLSB7Ci0gICAgLy8gRnVuY3Rpb24gdG8gY29udmVydCBYNTA5X05BTUUg aW50byBhIG9uZS1saW5lIGh1bWFuIHJlYWRhYmxlIHN0cmluZwotIAotZGlmZiAtLWdpdCBhL3Ny Yy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4LmhoIGIvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9z c2xBdXguaGgKLWluZGV4IDM2ZjNhYWQxYi4uZGU4NTJiZTNmIDEwMDY0NAotLS0tIGEvc3JjL1hy ZENyeXB0by9YcmRDcnlwdG9zc2xBdXguaGgKLSsrKyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRv c3NsQXV4LmhoCi1AQCAtNzQsNyArNzQsNyBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOVBhcnNlU3Rh Y2soWHJkVGxzUGVlckNlcnRzKiBwYywgWHJkQ3J5cHRvWDUwOUNoYWluICpjaGFpbik7Ci0gdGlt ZV90IFhyZENyeXB0b3NzbEFTTjF0b1VUQyhjb25zdCBBU04xX1RJTUUgKnRzbjEpOwotIAotIC8v IEZ1bmN0aW9uIHRvIGNvbnZlcnQgWDUwOV9OQU1FIGludG8gYSBvbmUtbGluZSBodW1hbiByZWFk YWJsZSBzdHJpbmcKLS12b2lkIFhyZENyeXB0b3NzbE5hbWVPbmVMaW5lKFg1MDlfTkFNRSAqbm0s IFhyZE91Y1N0cmluZyAmcyk7Ci0rdm9pZCBYcmRDcnlwdG9zc2xOYW1lT25lTGluZShjb25zdCBY NTA5X05BTUUgKm5tLCBYcmRPdWNTdHJpbmcgJnMpOwotIAotIC8vCi0gLy8gWDUwOSBwcm94eSBh dXhpbGxpYXJ5IGZ1bmN0aW9ucwotZGlmZiAtLWdpdCBhL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRv c3NsWDUwOS5jYyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsWDUwOS5jYwotaW5kZXggYmNj NzljODljLi5kOWQyYjE4MmYgMTAwNjQ0Ci0tLS0gYS9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3Nz bFg1MDkuY2MKLSsrKyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsWDUwOS5jYwotQEAgLTM0 MCw3ICszNDAsMTEgQEAgdm9pZCBYcmRDcnlwdG9zc2xYNTA5OjpDZXJ0VHlwZSgpCi0gICAKLSAg ICBib29sIGRvbmUgPSAwOwotICAgIC8vIENoZWNrIHRoZSBleHRlbnNpb25zCi0rI2lmIE9QRU5T U0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAwMDAwTAotICAgIFg1MDlfRVhURU5TSU9OICpleHQg PSAwOwotKyNlbHNlCi0rICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4dCA9IDA7Ci0rI2VuZGlm Ci0gICAgaW50IGlkeCA9IC0xOwotIAotICAgIC8vIEZvciBDQXMgd2UgYXJlIGxvb2tpbmcgZm9y IGEgImJhc2ljQ29uc3RyYWludHMiCi1AQCAtNjg0LDcgKzY4OCwxMSBAQCBYcmRDcnlwdG9YNTA5 ZGF0YSBYcmRDcnlwdG9zc2xYNTA5OjpHZXRFeHRlbnNpb24oY29uc3QgY2hhciAqb2lkKQotIAot ICAgIC8vIExvb3AgdG8gaWRlbnRpZnkgdGhlIG9uZSB3ZSB3b3VsZCBsaWtlCi0gICAgaW50IGkg PSAwOwotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwKLSAgICBYNTA5 X0VYVEVOU0lPTiAqd2V4dCA9IDA7Ci0rI2Vsc2UKLSsgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAq d2V4dCA9IDA7Ci0rI2VuZGlmCi0gICAgZm9yIChpID0gMDsgaTwgbnVtZXh0OyBpKyspIHsKLSAg ICAgICB3ZXh0ID0gWDUwOV9nZXRfZXh0KGNlcnQsIGkpOwotICAgICAgIGlmICh1c2VuaWQpIHsK LUBAIC04MjEsNyArODI5LDExIEBAIGludCBYcmRDcnlwdG9zc2xYNTA5OjpEdW1wRXh0ZW5zaW9u cyhib29sIGR1bXB1bmtub3duKQotIAotICAgIHJjID0gMTsKLSAgICAvLyBHbyB0aHJvdWdoIHRo ZSBleHRlbnNpb25zCi0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAwMDAwTAot ICAgIFg1MDlfRVhURU5TSU9OICp4cGlleHQgPSAwOwotKyNlbHNlCi0rICAgY29uc3QgWDUwOV9F WFRFTlNJT04gKnhwaWV4dCA9IDA7Ci0rI2VuZGlmCi0gICAgaW50IG5waWV4dCA9IFg1MDlfZ2V0 X2V4dF9jb3VudCh4cGkpOwotICAgIFBSSU5UKCJmb3VuZCAiPDxucGlleHQ8PCIgZXh0ZW5zaW9u cyAiKTsKLSAgICBpbnQgaSA9IDA7Ci1AQCAtODM0LDggKzg0Niw4IEBAIGludCBYcmRDcnlwdG9z c2xYNTA5OjpEdW1wRXh0ZW5zaW9ucyhib29sIGR1bXB1bmtub3duKQotICAgICAgIFBSSU5UKGkg PDwgIjogZm91bmQgZXh0ZW5zaW9uICciPDxzPDwiJywgY3JpdGljYWw6ICIgPDwgY3JpdCk7Ci0g ICAgICAgLy8gRHVtcCBpdHMgY29udGVudAotICAgICAgIHJjID0gMDsKLS0gICAgICBjb25zdCB1 bnNpZ25lZCBjaGFyICpwcCA9IChjb25zdCB1bnNpZ25lZCBjaGFyICopIFg1MDlfRVhURU5TSU9O X2dldF9kYXRhKHhwaWV4dCktPmRhdGE7Ci0tICAgICAgbG9uZyBsZW5ndGggPSBYNTA5X0VYVEVO U0lPTl9nZXRfZGF0YSh4cGlleHQpLT5sZW5ndGg7Ci0rICAgICAgY29uc3QgdW5zaWduZWQgY2hh ciAqcHAgPSBBU04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBp ZXh0KSk7Ci0rICAgICAgbG9uZyBsZW5ndGggPSBBU04xX1NUUklOR19sZW5ndGgoWDUwOV9FWFRF TlNJT05fZ2V0X2RhdGEoeHBpZXh0KSk7Ci0gICAgICAgaW50IHJldCA9IEZpbGxVbmtub3duRXh0 KCZwcCwgbGVuZ3RoLCBkdW1wdW5rbm93bik7Ci0gICAgICAgUFJJTlQoInJldDogIiA8PCByZXQp OwotICAgIH0KLUBAIC05NTcsMTAgKzk2OSwxMCBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOTo6Rmls bFVua25vd25FeHQoY29uc3QgdW5zaWduZWQgY2hhciAqKnBwLCBsb25nIGxlbmd0aCwgYm9vbAot ICAgICAgICAgICAgIGludCBpLCBwcmludGFibGUgPSAxOwotICAgICAgICAgICAgIG9wcCA9IG9w OwotICAgICAgICAgICAgIG9zID0gZDJpX0FTTjFfT0NURVRfU1RSSU5HKDAsICZvcHAsIGxlbiAr IGhsKTsKLS0gICAgICAgICAgICBpZiAob3MgJiYgb3MtPmxlbmd0aCA+IDApIHsKLS0gICAgICAg ICAgICAgICBvcHAgPSBvcy0+ZGF0YTsKLSsgICAgICAgICAgICBpZiAob3MgJiYgQVNOMV9TVFJJ TkdfbGVuZ3RoKG9zKSA+IDApIHsKLSsgICAgICAgICAgICAgICBvcHAgPSBBU04xX1NUUklOR19n ZXQwX2RhdGEob3MpOwotICAgICAgICAgICAgICAgIC8qIHRlc3Rpbmcgd2hldGhlciB0aGUgb2N0 ZXQgc3RyaW5nIGlzICogcHJpbnRhYmxlICovCi0tICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8 b3MtPmxlbmd0aDsgaSsrKSB7Ci0rICAgICAgICAgICAgICAgZm9yIChpPTA7IGkgPCBBU04xX1NU UklOR19sZW5ndGgob3MpOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICBpZiAoKCAob3BwW2ld IDwgJyAnKSAmJiAob3BwW2ldICE9ICdcbicpICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAg KG9wcFtpXSAhPSAnXHInKSAmJiAob3BwW2ldICE9ICdcdCcpKSB8fCAob3BwW2ldID4gJ34nKSkg ewotICAgICAgICAgICAgICAgICAgICAgIHByaW50YWJsZSA9IDA7Ci1AQCAtOTY5LDE2ICs5ODEs MTYgQEAgaW50IFhyZENyeXB0b3NzbFg1MDk6OkZpbGxVbmtub3duRXh0KGNvbnN0IHVuc2lnbmVk IGNoYXIgKipwcCwgbG9uZyBsZW5ndGgsIGJvb2wKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgICAgaWYgKHByaW50YWJsZSkgewotICAgICAgICAgICAgICAgICAgIC8qIHByaW50YWJs ZSBzdHJpbmcgKi8KLS0gICAgICAgICAgICAgICAgICBjaGFyICpzID0gbmV3IGNoYXJbb3MtPmxl bmd0aCArIDFdOwotLSAgICAgICAgICAgICAgICAgIG1lbWNweShzLCBvcHAsIG9zLT5sZW5ndGgp OwotLSAgICAgICAgICAgICAgICAgIHNbb3MtPmxlbmd0aF0gPSAwOwotLSAgICAgICAgICAgICAg ICAgIGlmIChkdW1wKSBQUklOVCgiT0JKUzoiIDw8IHMgPDwgIiAobGVuOiAiPDxvcy0+bGVuZ3Ro PDwiKSIpOwotKyAgICAgICAgICAgICAgICAgIGNoYXIgKnMgPSBuZXcgY2hhcltBU04xX1NUUklO R19sZW5ndGgob3MpICsgMV07Ci0rICAgICAgICAgICAgICAgICAgbWVtY3B5KHMsIG9wcCwgQVNO MV9TVFJJTkdfbGVuZ3RoKG9zKSk7Ci0rICAgICAgICAgICAgICAgICAgc1tBU04xX1NUUklOR19s ZW5ndGgob3MpXSA9IDA7Ci0rICAgICAgICAgICAgICAgICAgaWYgKGR1bXApIFBSSU5UKCJPQkpT OiIgPDwgcyA8PCAiIChsZW46ICIgPDwgQVNOMV9TVFJJTkdfbGVuZ3RoKG9zKSA8PCAiKSIpOwot ICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBbXSBzOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7 Ci0gICAgICAgICAgICAgICAgICAgLyogcHJpbnQgdGhlIG5vcm1hbCBkdW1wICovCi0gICAgICAg ICAgICAgICAgICAgaWYgKCFubCkgUFJJTlQoIk9CSlM6Iik7Ci0gICAgICAgICAgICAgICAgICAg QklPICptZW0gPSBCSU9fbmV3KEJJT19zX21lbSgpKTsKLS0gICAgICAgICAgICAgICAgICBpZiAo QklPX2R1bXBfaW5kZW50KG1lbSwgKGNvbnN0IGNoYXIgKilvcHAsIG9zLT5sZW5ndGgsIGR1bXBf aW5kZW50KSA8PSAwKSB7Ci0rICAgICAgICAgICAgICAgICAgaWYgKEJJT19kdW1wX2luZGVudCht ZW0sIChjb25zdCBjaGFyICopb3BwLCBBU04xX1NUUklOR19sZW5ndGgob3MpLCBkdW1wX2luZGVu dCkgPD0gMCkgewotICAgICAgICAgICAgICAgICAgICAgIGlmIChkdW1wKSBQUklOVCgiRVJST1I6 T0JKUzogcHJvYmxlbXMgZHVtcGluZyB0byBCSU8iKTsKLSAgICAgICAgICAgICAgICAgICAgICBC SU9fZnJlZShtZW0pOyAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgIGdv dG8gZW5kOwotQEAgLTk5OSwxOCArMTAxMSwxOCBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOTo6Rmls bFVua25vd25FeHQoY29uc3QgdW5zaWduZWQgY2hhciAqKnBwLCBsb25nIGxlbmd0aCwgYm9vbAot ICAgICAgICAgICAgIGJzID0gZDJpX0FTTjFfSU5URUdFUigwLCAmb3BwLCBsZW4raGwpOwotICAg ICAgICAgICAgIGlmIChicykgewotICAgICAgICAgICAgICAgIGlmIChkdW1wKSBQUklOVCgiQUlO VDoiKTsKLS0gICAgICAgICAgICAgICBpZiAoYnMtPnR5cGUgPT0gVl9BU04xX05FR19JTlRFR0VS KQotKyAgICAgICAgICAgICAgIGlmIChBU04xX1NUUklOR190eXBlKGJzKSA9PSBWX0FTTjFfTkVH X0lOVEVHRVIpCi0gICAgICAgICAgICAgICAgICAgaWYgKGR1bXApIFBSSU5UKCItIik7Ci0gICAg ICAgICAgICAgICAgQklPICptZW0gPSBCSU9fbmV3KEJJT19zX21lbSgpKTsKLS0gICAgICAgICAg ICAgICBmb3IgKGkgPSAwOyBpIDwgYnMtPmxlbmd0aDsgaSsrKSB7Ci0tICAgICAgICAgICAgICAg ICAgaWYgKEJJT19wcmludGYobWVtLCAiJTAyWCIsIGJzLT5kYXRhW2ldKSA8PSAwKSB7Ci0rICAg ICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IEFTTjFfU1RSSU5HX2xlbmd0aChicyk7IGkrKykg ewotKyAgICAgICAgICAgICAgICAgIGlmIChCSU9fcHJpbnRmKG1lbSwgIiUwMlgiLCBBU04xX1NU UklOR19nZXQwX2RhdGEoYnMpW2ldKSA8PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgaWYg KGR1bXApIFBSSU5UKCJFUlJPUjpBSU5UOiBwcm9ibGVtcyBwcmludGYtaW5nIHRvIEJJTyIpOwot ICAgICAgICAgICAgICAgICAgICAgIEJJT19mcmVlKG1lbSk7IAotICAgICAgICAgICAgICAgICAg ICAgIGdvdG8gZW5kOwotICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgICAgaWYgKGR1bXApIHsgQklPX1BSSU5UKG1lbSwgIkFJTlQ6Iik7IH0KLS0g ICAgICAgICAgICAgICBpZiAoYnMtPmxlbmd0aCA9PSAwKSBQUklOVCgiMDAiKTsKLSsgICAgICAg ICAgICAgICBpZiAoQVNOMV9TVFJJTkdfbGVuZ3RoKGJzKSA9PSAwKSBQUklOVCgiMDAiKTsKLSAg ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChkdW1wKSBQUklOVCgiRVJS T1I6QUlOVDogQkFEIElOVEVHRVIiKTsKLSAgICAgICAgICAgICB9Ci1AQCAtMTAyMywxOCArMTAz NSwxOCBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOTo6RmlsbFVua25vd25FeHQoY29uc3QgdW5zaWdu ZWQgY2hhciAqKnBwLCBsb25nIGxlbmd0aCwgYm9vbAotICAgICAgICAgICAgIGJzID0gZDJpX0FT TjFfRU5VTUVSQVRFRCgwLCAmb3BwLCBsZW4raGwpOwotICAgICAgICAgICAgIGlmIChicykgewot ICAgICAgICAgICAgICAgIGlmIChkdW1wKSBQUklOVCgiQUVOVToiKTsKLS0gICAgICAgICAgICAg ICBpZiAoYnMtPnR5cGUgPT0gVl9BU04xX05FR19FTlVNRVJBVEVEKQotKyAgICAgICAgICAgICAg IGlmIChBU04xX1NUUklOR190eXBlKGJzKSA9PSBWX0FTTjFfTkVHX0VOVU1FUkFURUQpCi0gICAg ICAgICAgICAgICAgICAgaWYgKGR1bXApIFBSSU5UKCItIik7Ci0gICAgICAgICAgICAgICAgQklP ICptZW0gPSBCSU9fbmV3KEJJT19zX21lbSgpKTsKLS0gICAgICAgICAgICAgICBmb3IgKGkgPSAw OyBpIDwgYnMtPmxlbmd0aDsgaSsrKSB7Ci0tICAgICAgICAgICAgICAgICAgaWYgKEJJT19wcmlu dGYobWVtLCAiJTAyWCIsIGJzLT5kYXRhW2ldKSA8PSAwKSB7Ci0rICAgICAgICAgICAgICAgZm9y IChpID0gMDsgaSA8IEFTTjFfU1RSSU5HX2xlbmd0aChicyk7IGkrKykgewotKyAgICAgICAgICAg ICAgICAgIGlmIChCSU9fcHJpbnRmKG1lbSwgIiUwMlgiLCBBU04xX1NUUklOR19nZXQwX2RhdGEo YnMpW2ldKSA8PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgaWYgKGR1bXApIFBSSU5UKCJF UlJPUjpBRU5VOiBwcm9ibGVtcyBwcmludGYtaW5nIHRvIEJJTyIpOwotICAgICAgICAgICAgICAg ICAgICAgIEJJT19mcmVlKG1lbSk7IAotICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZW5kOwot ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg aWYgKGR1bXApIHsgQklPX1BSSU5UKG1lbSwgIkFFTlU6Iik7IH0KLS0gICAgICAgICAgICAgICBp ZiAoYnMtPmxlbmd0aCA9PSAwKSBQUklOVCgiMDAiKTsKLSsgICAgICAgICAgICAgICBpZiAoQVNO MV9TVFJJTkdfbGVuZ3RoKGJzKSA9PSAwKSBQUklOVCgiMDAiKTsKLSAgICAgICAgICAgICB9IGVs c2UgewotICAgICAgICAgICAgICAgIGlmIChkdW1wKSBQUklOVCgiRVJST1I6QUVOVTogQkFEIEVO VU1FUkFURUQiKTsKLSAgICAgICAgICAgICB9Ci1kaWZmIC0tZ2l0IGEvc3JjL1hyZENyeXB0by9Y cmRDcnlwdG9zc2xYNTA5Q3JsLmNjIGIvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xYNTA5Q3Js LmNjCi1pbmRleCA2MWRkYWY4M2MuLmNjOWYzMjRiYiAxMDA2NDQKLS0tLSBhL3NyYy9YcmRDcnlw dG8vWHJkQ3J5cHRvc3NsWDUwOUNybC5jYwotKysrIGIvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9z c2xYNTA5Q3JsLmNjCi1AQCAtMTA1LDcgKzEwNSw3IEBAIFhyZENyeXB0b3NzbFg1MDlDcmw6Olhy ZENyeXB0b3NzbFg1MDlDcmwoWHJkQ3J5cHRvWDUwOSAqY2FjZXJ0KQotIAotICAgIC8vIEJpbyBm b3IgZXhwb3J0aW5nIHRoZSBleHRlbnNpb24KLSAgICBCSU8gKmJleHQgPSBCSU9fbmV3KEJJT19z X21lbSgpKTsKLS0gICBBU04xX09CSkVDVCAqb2JqID0gWDUwOV9FWFRFTlNJT05fZ2V0X29iamVj dChjcmxleHQpOwotKyAgIGNvbnN0IEFTTjFfT0JKRUNUICpvYmogPSBYNTA5X0VYVEVOU0lPTl9n ZXRfb2JqZWN0KGNybGV4dCk7Ci0gICAgaTJhX0FTTjFfT0JKRUNUKGJleHQsIG9iaik7Ci0gICAg WDUwOVYzX0VYVF9wcmludChiZXh0LCBjcmxleHQsIDAsIDQpOwotICAgIC8vIGRhdGEgbGVuZ3Ro Ci1kaWZmIC0tZ2l0IGEvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xnc2lBdXguY2MgYi9zcmMv WHJkQ3J5cHRvL1hyZENyeXB0b3NzbGdzaUF1eC5jYwotaW5kZXggOGY0YjkyOWMxLi5hNWQyMGUx YWYgMTAwNjQ0Ci0tLS0gYS9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbGdzaUF1eC5jYwotKysr IGIvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xnc2lBdXguY2MKLUBAIC0xNjUsMTIgKzE2NSwx MiBAQCBib29sIFhyZENyeXB0b3NzbFByb3h5Q2VydEluZm8oY29uc3Qgdm9pZCAqZXh0ZGF0YSwg aW50ICZwYXRobGVuLCBib29sICpoYXNwb2xpYwotICAgIE9CSl9vYmoydHh0KHMsIHNpemVvZihz KSwgWDUwOV9FWFRFTlNJT05fZ2V0X29iamVjdChleHQpLCAxKTsKLSAKLSAgICAvLyBOb3cgZXh0 cmFjdCB0aGUgcGF0aCBsZW5ndGggY29uc3RyYWludCwgaWYgYW55Ci0tICAgdW5zaWduZWQgY2hh ciAqcCA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmRhdGE7Ci0rICAgY29uc3QgdW5z aWduZWQgY2hhciAqcCA9IEFTTjFfU1RSSU5HX2dldDBfZGF0YShYNTA5X0VYVEVOU0lPTl9nZXRf ZGF0YShleHQpKTsKLSAgICBQUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OICpwY2kgPSAwOwotICAg IGlmICghc3RyY21wKHMsIGdzaVByb3h5Q2VydEluZm9fT0lEKSkKLS0gICAgICBwY2kgPSBkMmlf UFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTigwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKikoJnAp LCBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5sZW5ndGgpOwotKyAgICAgIHBjaSA9IGQy aV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKDAsICZwLCBBU04xX1NUUklOR19sZW5ndGgoWDUw OV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KSkpOwotICAgIGVsc2UgaWYgKCFzdHJjbXAocywgZ3Np UHJveHlDZXJ0SW5mb19PTERfT0lEKSkKLS0gICAgICBwY2kgPSBkMmlfUFJPWFlfQ0VSVF9JTkZP X0VYVEVOU0lPTl9PTEQoMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiopKCZwKSwgWDUwOV9FWFRF TlNJT05fZ2V0X2RhdGEoZXh0KS0+bGVuZ3RoKTsKLSsgICAgICBwY2kgPSBkMmlfUFJPWFlfQ0VS VF9JTkZPX0VYVEVOU0lPTl9PTEQoMCwgJnAsIEFTTjFfU1RSSU5HX2xlbmd0aChYNTA5X0VYVEVO U0lPTl9nZXRfZGF0YShleHQpKSk7Ci0gICAgaWYgKCFwY2kpIHsKLSAgICAgICByZXR1cm4gMDsK LSAgICB9Ci1AQCAtMjA4LDEyICsyMDgsMTIgQEAgdm9pZCBYcmRDcnlwdG9zc2xTZXRQYXRoTGVu Q29uc3RyYWludCh2b2lkICpleHRkYXRhLCBpbnQgcGF0aGxlbikKLSAgICBPQkpfb2JqMnR4dChz LCBzaXplb2YocyksIFg1MDlfRVhURU5TSU9OX2dldF9vYmplY3QoZXh0KSwgMSk7Ci0gCi0gICAg Ly8gTm93IGV4dHJhY3QgdGhlIHBhdGggbGVuZ3RoIGNvbnN0cmFpbnQsIGlmIGFueQotLSAgIHVu c2lnbmVkIGNoYXIgKnAgPSBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5kYXRhOwotKyAg IGNvbnN0IHVuc2lnbmVkIGNoYXIgKnAgPSBBU04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9FWFRF TlNJT05fZ2V0X2RhdGEoZXh0KSk7Ci0gICAgUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTiAqcGNp ID0gMDsKLSAgICBpZiAoIXN0cmNtcChzLCBnc2lQcm94eUNlcnRJbmZvX09JRCkpCi0tICAgICAg cGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04oMCwgKGNvbnN0IHVuc2lnbmVkIGNo YXIgKiopKCZwKSwgWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+bGVuZ3RoKTsKLSsgICAg ICBwY2kgPSBkMmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTigwLCAmcCwgQVNOMV9TVFJJTkdf bGVuZ3RoKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCkpKTsKLSAgICBlbHNlIGlmICghc3Ry Y21wKHMsIGdzaVByb3h5Q2VydEluZm9fT0xEX09JRCkpCi0tICAgICAgcGNpID0gZDJpX1BST1hZ X0NFUlRfSU5GT19FWFRFTlNJT05fT0xEKDAsIChjb25zdCB1bnNpZ25lZCBjaGFyICoqKSgmcCks IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmxlbmd0aCk7Ci0rICAgICAgcGNpID0gZDJp X1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT05fT0xEKDAsICZwLCBBU04xX1NUUklOR19sZW5ndGgo WDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KSkpOwotICAgIGlmICghcGNpKQotICAgICAgIHJl dHVybjsKLSAKLUBAIC00MTksMTYgKzQxOSwzMiBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOUNyZWF0 ZVByb3h5KGNvbnN0IGNoYXIgKmZuYywgY29uc3QgY2hhciAqZm5rLAotICAgICAgIHJldHVybiAt a0VyclBYX1NldEF0dHJpYnV0ZTsKLSAgICB9Ci0gICAgLy8gRXh0cmFjdCBkYXRhIGluIGZvcm1h dCBmb3IgZXh0ZW5zaW9uCi0tICAgWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+bGVuZ3Ro ID0gaTJkX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04ocGNpLCAwKTsKLS0gICBpZiAoIShYNTA5 X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5kYXRhID0gKHVuc2lnbmVkIGNoYXIgKiltYWxsb2Mo WDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+bGVuZ3RoKzEpKSkgewotKyAgIGludCBsZW4g PSBpMmRfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTihwY2ksIDApOwotKyAgIHVuc2lnbmVkIGNo YXIgKmRhdGEgPSAodW5zaWduZWQgY2hhciAqKSBtYWxsb2MobGVuKTsKLSsgICBpZiAoIWRhdGEp IHsKLSAgICAgICBQUklOVCgiY291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmllbGQgZm9yIGV4dGVu c2lvbiIpOwotICAgICAgIHJldHVybiAta0VyclBYX05vUmVzb3VyY2VzOwotICAgIH0KLS0gICB1 bnNpZ25lZCBjaGFyICpwcCA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmRhdGE7Ci0r ICAgdW5zaWduZWQgY2hhciAqcHAgPSBkYXRhOwotICAgIGlmICgoaTJkX1BST1hZX0NFUlRfSU5G T19FWFRFTlNJT04ocGNpLCAmcHApKSA8PSAwKSB7Ci0gICAgICAgUFJJTlQoInByb2JsZW0gY29u dmVydGluZyBkYXRhIGZvciBleHRlbnNpb24iKTsKLSAgICAgICByZXR1cm4gLWtFcnJQWF9FcnJv cjsKLSAgICB9Ci0rICAgQVNOMV9PQ1RFVF9TVFJJTkcgKm9zID0gQVNOMV9PQ1RFVF9TVFJJTkdf bmV3KCk7Ci0rICAgaWYgKCFvcykgewotKyAgICAgIFBSSU5UKCJjb3VsZCBub3QgYWxsb2NhdGUg ZGF0YSBmaWVsZCBmb3IgZXh0ZW5zaW9uIik7Ci0rICAgICAgcmV0dXJuIC1rRXJyUFhfTm9SZXNv dXJjZXM7Ci0rICAgfQotKyAgIGlmIChBU04xX09DVEVUX1NUUklOR19zZXQob3MsIGRhdGEsIGxl bikgPT0gMCkgewotKyAgICAgIFBSSU5UKCJjb3VsZCBub3QgYWxsb2NhdGUgZGF0YSBmaWVsZCBm b3IgZXh0ZW5zaW9uIik7Ci0rICAgICAgcmV0dXJuIC1rRXJyUFhfTm9SZXNvdXJjZXM7Ci0rICAg fQotKyAgIGZyZWUoZGF0YSk7Ci0rICAgaWYgKFg1MDlfRVhURU5TSU9OX3NldF9kYXRhKGV4dCwg b3MpID09IDApIHsKLSsgICAgICBQUklOVCgiY291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmllbGQg Zm9yIGV4dGVuc2lvbiIpOwotKyAgICAgIHJldHVybiAta0VyclBYX05vUmVzb3VyY2VzOwotKyAg IH0KLSsgICBBU04xX1NUUklOR19mcmVlKG9zKTsKLSAgICAvLyBDcmVhdGUgYSBzdGFjawotICAg IFNUQUNLX09GKFg1MDlfRVhURU5TSU9OKSAqZXNrID0gc2tfWDUwOV9FWFRFTlNJT05fbmV3X251 bGwoKTsKLSAgICBpZiAoIWVzaykgewotQEAgLTUwNCw3ICs1MjAsMTEgQEAgaW50IFhyZENyeXB0 b3NzbFg1MDlDcmVhdGVQcm94eShjb25zdCBjaGFyICpmbmMsIGNvbnN0IGNoYXIgKmZuaywKLSAg ICB9Ci0gCi0gICAgLy8gRmlyc3QgZHVwbGljYXRlIHRoZSBleHRlbnNpb25zIG9mIHRoZSBFRSBj ZXJ0aWZpY2F0ZQotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwKLSAg ICBYNTA5X0VYVEVOU0lPTiAqeEVFQ2V4dCA9IDA7Ci0rI2Vsc2UKLSsgICBjb25zdCBYNTA5X0VY VEVOU0lPTiAqeEVFQ2V4dCA9IDA7Ci0rI2VuZGlmCi0gICAgaW50IG5FRUNleHQgPSBYNTA5X2dl dF9leHRfY291bnQoeEVFQyk7Ci0gICAgREVCVUcoIm51bWJlciBvZiBleHRlbnNpb25zIGZvdW5k IGluIHRoZSBvcmlnaW5hbCBjZXJ0aWZpY2F0ZTogIjw8IG5FRUNleHQpOwotICAgIGludCBpID0g MDsKLUBAIC03NTYsNyArNzc2LDExIEBAIGludCBYcmRDcnlwdG9zc2xYNTA5Q3JlYXRlUHJveHlS ZXEoWHJkQ3J5cHRvWDUwOSAqeGNwaSwKLSAgICB9Ci0gICAgLy8KLSAgICAvLyBHZXQgc2lnbmF0 dXJlIHBhdGggZGVwdGggZnJvbSBwcmVzZW50IHByb3h5Ci0rI2lmIE9QRU5TU0xfVkVSU0lPTl9O VU1CRVIgPCAweDQwMDAwMDAwTAotICAgIFg1MDlfRVhURU5TSU9OICp4cGlleHQgPSAwOwotKyNl bHNlCi0rICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKnhwaWV4dCA9IDA7Ci0rI2VuZGlmCi0gICAg aW50IG5waWV4dCA9IFg1MDlfZ2V0X2V4dF9jb3VudCh4cGkpOwotICAgIGludCBpID0gMDsKLSAg ICBib29sIGhhc2tleXVzYWdlID0gMDsKLUBAIC03NzIsMTIgKzc5NiwxMiBAQCBpbnQgWHJkQ3J5 cHRvc3NsWDUwOUNyZWF0ZVByb3h5UmVxKFhyZENyeXB0b1g1MDkgKnhjcGksCi0gICAgICAgLy8g R2V0IHNpZ25hdHVyZSBwYXRoIGRlcHRoIGZyb20gcHJlc2VudCBwcm94eQotICAgICAgIGlmICgh c3RyY21wKHMsIGdzaVByb3h5Q2VydEluZm9fT0lEKSB8fAotICAgICAgICAgICAhc3RyY21wKHMs IGdzaVByb3h5Q2VydEluZm9fT0xEX09JRCkpIHsKLS0gICAgICAgICB1bnNpZ25lZCBjaGFyICpw ID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KS0+ZGF0YTsKLSsgICAgICAgICBjb25z dCB1bnNpZ25lZCBjaGFyICpwID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfRVhURU5TSU9O X2dldF9kYXRhKHhwaWV4dCkpOwotICAgICAgICAgIFBST1hZX0NFUlRfSU5GT19FWFRFTlNJT04g KmlucGNpID0gMDsKLSAgICAgICAgICBpZiAoIXN0cmNtcChzLCBnc2lQcm94eUNlcnRJbmZvX09J RCkpCi0tICAgICAgICAgICAgaW5wY2kgPSBkMmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTigw LCAoY29uc3QgdW5zaWduZWQgY2hhciAqKikoJnApLCBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4 cGlleHQpLT5sZW5ndGgpOwotKyAgICAgICAgICAgIGlucGNpID0gZDJpX1BST1hZX0NFUlRfSU5G T19FWFRFTlNJT04oMCwgJnAsIEFTTjFfU1RSSU5HX2xlbmd0aChYNTA5X0VYVEVOU0lPTl9nZXRf ZGF0YSh4cGlleHQpKSk7Ci0gICAgICAgICAgZWxzZQotLSAgICAgICAgICAgIGlucGNpID0gZDJp X1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT05fT0xEKDAsIChjb25zdCB1bnNpZ25lZCBjaGFyICoq KSgmcCksIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhwaWV4dCktPmxlbmd0aCk7Ci0rICAgICAg ICAgICAgaW5wY2kgPSBkMmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTl9PTEQoMCwgJnAsIEFT TjFfU1RSSU5HX2xlbmd0aChYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpKSk7Ci0gICAg ICAgICAgaWYgKGlucGNpICYmCi0gICAgICAgICAgICAgIGlucGNpLT5wY1BhdGhMZW5ndGhDb25z dHJhaW50KQotICAgICAgICAgICAgIGluZGVwdGhsZW4gPSBBU04xX0lOVEVHRVJfZ2V0KGlucGNp LT5wY1BhdGhMZW5ndGhDb25zdHJhaW50KTsKLUBAIC04MjMsMTYgKzg0NywzMiBAQCBpbnQgWHJk Q3J5cHRvc3NsWDUwOUNyZWF0ZVByb3h5UmVxKFhyZENyeXB0b1g1MDkgKnhjcGksCi0gICAgICAg cmV0dXJuIC1rRXJyUFhfTm9SZXNvdXJjZXM7Ci0gICAgfQotICAgIC8vIEV4dHJhY3QgZGF0YSBp biBmb3JtYXQgZm9yIGV4dGVuc2lvbgotLSAgIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dC5n ZXQoKSktPmxlbmd0aCA9IGkyZF9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKHBjaS5nZXQoKSwg MCk7Ci0tICAgaWYgKCEoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0LmdldCgpKS0+ZGF0YSA9 ICh1bnNpZ25lZCBjaGFyICopbWFsbG9jKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dC5nZXQo KSktPmxlbmd0aCsxKSkpIHsKLSsgICBpbnQgbGVuID0gaTJkX1BST1hZX0NFUlRfSU5GT19FWFRF TlNJT04ocGNpLmdldCgpLCAwKTsKLSsgICB1bnNpZ25lZCBjaGFyICpkYXRhID0gKHVuc2lnbmVk IGNoYXIgKikgbWFsbG9jKGxlbik7Ci0rICAgaWYgKCFkYXRhKSB7Ci0gICAgICAgUFJJTlQoImNv dWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxkIGZvciBleHRlbnNpb24iKTsKLSAgICAgICByZXR1 cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSAgICB9Ci0tICAgdW5zaWduZWQgY2hhciAqcHAgPSBY NTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQuZ2V0KCkpLT5kYXRhOwotKyAgIHVuc2lnbmVkIGNo YXIgKnBwID0gZGF0YTsKLSAgICBpZiAoKGkyZF9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKHBj aS5nZXQoKSwgJnBwKSkgPD0gMCkgewotICAgICAgIFBSSU5UKCJwcm9ibGVtIGNvbnZlcnRpbmcg ZGF0YSBmb3IgZXh0ZW5zaW9uIik7Ci0gICAgICAgcmV0dXJuIC1rRXJyUFhfRXJyb3I7Ci0gICAg fQotKyAgIEFTTjFfT0NURVRfU1RSSU5HICpvcyA9IEFTTjFfT0NURVRfU1RSSU5HX25ldygpOwot KyAgIGlmICghb3MpIHsKLSsgICAgICBQUklOVCgiY291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmll bGQgZm9yIGV4dGVuc2lvbiIpOwotKyAgICAgIHJldHVybiAta0VyclBYX05vUmVzb3VyY2VzOwot KyAgIH0KLSsgICBpZiAoQVNOMV9PQ1RFVF9TVFJJTkdfc2V0KG9zLCBkYXRhLCBsZW4pID09IDAp IHsKLSsgICAgICBQUklOVCgiY291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmllbGQgZm9yIGV4dGVu c2lvbiIpOwotKyAgICAgIHJldHVybiAta0VyclBYX05vUmVzb3VyY2VzOwotKyAgIH0KLSsgICBm cmVlKGRhdGEpOwotKyAgIGlmIChYNTA5X0VYVEVOU0lPTl9zZXRfZGF0YShleHQuZ2V0KCksIG9z KSA9PSAwKSB7Ci0rICAgICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxkIGZv ciBleHRlbnNpb24iKTsKLSsgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSsgICB9 Ci0rICAgQVNOMV9TVFJJTkdfZnJlZShvcyk7Ci0gICAgcGNpID0gbnVsbHB0cjsKLSAKLSAgICAv LyBTZXQgZXh0ZW5zaW9uIG5hbWUuCi1AQCAtMTAzMCw3ICsxMDcwLDExIEBAIGludCBYcmRDcnlw dG9zc2xYNTA5U2lnblByb3h5UmVxKFhyZENyeXB0b1g1MDkgKnhjcGksIFhyZENyeXB0b1JTQSAq a2NwaSwKLSAKLSAgICAvLwotICAgIC8vIEdldCBzaWduYXR1cmUgcGF0aCBkZXB0aCBmcm9tIGlu cHV0IHByb3h5Ci0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAwMDAwTAotICAg IFg1MDlfRVhURU5TSU9OICp4cGlleHQgPSAwLCAqeHJpZXh0ID0gMDsKLSsjZWxzZQotKyAgIGNv bnN0IFg1MDlfRVhURU5TSU9OICp4cGlleHQgPSAwLCAqeHJpZXh0ID0gMDsKLSsjZW5kaWYKLSAg ICBpbnQgbnBpZXh0ID0gWDUwOV9nZXRfZXh0X2NvdW50KHhwaSk7Ci0gICAgaW50IGkgPSAwOwot ICAgIGJvb2wgaGFza2V5dXNhZ2UgPSAwOwotQEAgLTEwMzgsMTcgKzEwODIsMTcgQEAgaW50IFhy ZENyeXB0b3NzbFg1MDlTaWduUHJveHlSZXEoWHJkQ3J5cHRvWDUwOSAqeGNwaSwgWHJkQ3J5cHRv UlNBICprY3BpLAotICAgIGZvciAoaSA9IDA7IGk8IG5waWV4dDsgaSsrKSB7Ci0gICAgICAgeHBp ZXh0ID0gWDUwOV9nZXRfZXh0KHhwaSwgaSk7Ci0gICAgICAgY2hhciBzWzI1Nl0gPSB7MH07Ci0t ICAgICAgQVNOMV9PQkpFQ1QgKm9iaiA9IFg1MDlfRVhURU5TSU9OX2dldF9vYmplY3QoeHBpZXh0 KTsKLSsgICAgICBjb25zdCBBU04xX09CSkVDVCAqb2JqID0gWDUwOV9FWFRFTlNJT05fZ2V0X29i amVjdCh4cGlleHQpOwotICAgICAgIGlmIChvYmopCi0gICAgICAgICAgT0JKX29iajJ0eHQocywg c2l6ZW9mKHMpLCBvYmosIDEpOwotICAgICAgIGlmICghc3RyY21wKHMsIGdzaVByb3h5Q2VydElu Zm9fT0lEKSB8fAotICAgICAgICAgICAhc3RyY21wKHMsIGdzaVByb3h5Q2VydEluZm9fT0xEX09J RCkpIHsKLS0gICAgICAgICB1bnNpZ25lZCBjaGFyICpwID0gWDUwOV9FWFRFTlNJT05fZ2V0X2Rh dGEoeHBpZXh0KS0+ZGF0YTsKLSsgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwID0gQVNO MV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhwaWV4dCkpOwotICAg ICAgICAgIFBST1hZX0NFUlRfSU5GT19FWFRFTlNJT04gKmlucGNpID0gMDsKLSAgICAgICAgICBp ZiAoIXN0cmNtcChzLCBnc2lQcm94eUNlcnRJbmZvX09JRCkpCi0tICAgICAgICAgICAgaW5wY2kg PSBkMmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTigwLCAoY29uc3QgdW5zaWduZWQgY2hhciAq KikoJnApLCBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpLT5sZW5ndGgpOwotKyAgICAg ICAgICAgIGlucGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04oMCwgJnAsIEFTTjFf U1RSSU5HX2xlbmd0aChYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpKSk7Ci0gICAgICAg ICAgZWxzZQotLSAgICAgICAgICAgIGlucGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJ T05fT0xEKDAsIChjb25zdCB1bnNpZ25lZCBjaGFyICoqKSgmcCksIFg1MDlfRVhURU5TSU9OX2dl dF9kYXRhKHhwaWV4dCktPmxlbmd0aCk7Ci0rICAgICAgICAgICAgaW5wY2kgPSBkMmlfUFJPWFlf Q0VSVF9JTkZPX0VYVEVOU0lPTl9PTEQoMCwgJnAsIEFTTjFfU1RSSU5HX2xlbmd0aChYNTA5X0VY VEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpKSk7Ci0gICAgICAgICAgaWYgKGlucGNpICYmCi0gICAg ICAgICAgICAgIGlucGNpLT5wY1BhdGhMZW5ndGhDb25zdHJhaW50KQotICAgICAgICAgICAgIGlu ZGVwdGhsZW4gPSBBU04xX0lOVEVHRVJfZ2V0KGlucGNpLT5wY1BhdGhMZW5ndGhDb25zdHJhaW50 KTsKLUBAIC0xMTAxLDkgKzExNDUsOSBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOVNpZ25Qcm94eVJl cShYcmRDcnlwdG9YNTA5ICp4Y3BpLCBYcmRDcnlwdG9SU0EgKmtjcGksCi0gICAgLy8gR2V0IHRo ZSBjb250ZW50Ci0gICAgaW50IHJlcWRlcHRobGVuID0gLTE7Ci0gICAgaWYgKHhyaWV4dCkgewot LSAgICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4cmlleHQp LT5kYXRhOwotKyAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnAgPSBBU04xX1NUUklOR19nZXQw X2RhdGEoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHJpZXh0KSk7Ci0gICAgICAgUFJPWFlfQ0VS VF9JTkZPX0VYVEVOU0lPTiAqcmVxcGNpID0KLS0gICAgICAgICBkMmlfUFJPWFlfQ0VSVF9JTkZP X0VYVEVOU0lPTigwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKikoJnApLCBYNTA5X0VYVEVOU0lP Tl9nZXRfZGF0YSh4cmlleHQpLT5sZW5ndGgpOwotKyAgICAgICAgIGQyaV9QUk9YWV9DRVJUX0lO Rk9fRVhURU5TSU9OKDAsICZwLCBBU04xX1NUUklOR19sZW5ndGgoWDUwOV9FWFRFTlNJT05fZ2V0 X2RhdGEoeHJpZXh0KSkpOwotICAgICAgIGlmIChyZXFwY2kgJiYKLSAgICAgICAgICAgcmVxcGNp LT5wY1BhdGhMZW5ndGhDb25zdHJhaW50KQotICAgICAgICAgIHJlcWRlcHRobGVuID0gQVNOMV9J TlRFR0VSX2dldChyZXFwY2ktPnBjUGF0aExlbmd0aENvbnN0cmFpbnQpOwotQEAgLTExNDAsMTYg KzExODQsMzIgQEAgaW50IFhyZENyeXB0b3NzbFg1MDlTaWduUHJveHlSZXEoWHJkQ3J5cHRvWDUw OSAqeGNwaSwgWHJkQ3J5cHRvUlNBICprY3BpLAotICAgICAgIHJldHVybiAta0VyclBYX05vUmVz b3VyY2VzOwotICAgIH0KLSAgICAvLyBFeHRyYWN0IGRhdGEgaW4gZm9ybWF0IGZvciBleHRlbnNp b24KLS0gICBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQuZ2V0KCkpLT5sZW5ndGggPSBpMmRf UFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTihwY2kuZ2V0KCksIDApOwotLSAgIGlmICghKFg1MDlf RVhURU5TSU9OX2dldF9kYXRhKGV4dC5nZXQoKSktPmRhdGEgPSAodW5zaWduZWQgY2hhciAqKW1h bGxvYyhYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQuZ2V0KCkpLT5sZW5ndGgrMSkpKSB7Ci0r ICAgaW50IGxlbiA9IGkyZF9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKHBjaS5nZXQoKSwgMCk7 Ci0rICAgdW5zaWduZWQgY2hhciAqZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopIG1hbGxvYyhsZW4p OwotKyAgIGlmICghZGF0YSkgewotICAgICAgIFBSSU5UKCJjb3VsZCBub3QgYWxsb2NhdGUgZGF0 YSBmaWVsZCBmb3IgZXh0ZW5zaW9uIik7Ci0gICAgICAgcmV0dXJuIC1rRXJyUFhfTm9SZXNvdXJj ZXM7Ci0gICAgfQotLSAgIHVuc2lnbmVkIGNoYXIgKnBwID0gWDUwOV9FWFRFTlNJT05fZ2V0X2Rh dGEoZXh0LmdldCgpKS0+ZGF0YTsKLSsgICB1bnNpZ25lZCBjaGFyICpwcCA9IGRhdGE7Ci0gICAg aWYgKChpMmRfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTihwY2kuZ2V0KCksICZwcCkpIDw9IDAp IHsKLSAgICAgICBQUklOVCgicHJvYmxlbSBjb252ZXJ0aW5nIGRhdGEgZm9yIGV4dGVuc2lvbiIp OwotICAgICAgIHJldHVybiAta0VyclBYX0Vycm9yOwotICAgIH0KLSsgICBBU04xX09DVEVUX1NU UklORyAqb3MgPSBBU04xX09DVEVUX1NUUklOR19uZXcoKTsKLSsgICBpZiAoIW9zKSB7Ci0rICAg ICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxkIGZvciBleHRlbnNpb24iKTsK LSsgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSsgICB9Ci0rICAgaWYgKEFTTjFf T0NURVRfU1RSSU5HX3NldChvcywgZGF0YSwgbGVuKSA9PSAwKSB7Ci0rICAgICAgUFJJTlQoImNv dWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxkIGZvciBleHRlbnNpb24iKTsKLSsgICAgICByZXR1 cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSsgICB9Ci0rICAgZnJlZShkYXRhKTsKLSsgICBpZiAo WDUwOV9FWFRFTlNJT05fc2V0X2RhdGEoZXh0LmdldCgpLCBvcykgPT0gMCkgewotKyAgICAgIFBS SU5UKCJjb3VsZCBub3QgYWxsb2NhdGUgZGF0YSBmaWVsZCBmb3IgZXh0ZW5zaW9uIik7Ci0rICAg ICAgcmV0dXJuIC1rRXJyUFhfTm9SZXNvdXJjZXM7Ci0rICAgfQotKyAgIEFTTjFfU1RSSU5HX2Zy ZWUob3MpOwotICAgIHBjaSA9IG51bGxwdHI7Ci0gCi0gICAgLy8gU2V0IGV4dGVuc2lvbiBuYW1l LgotQEAgLTEyMTUsNyArMTI3NSwxMSBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOUdldFZPTVNBdHRy KFhyZENyeXB0b1g1MDkgKnhjcGksIFhyZE91Y1N0cmluZyAmdmF0KQotICAgIHJjID0gMTsKLSAg ICBib29sIGdldHZhdCA9IDA7Ci0gICAgLy8gR28gdGhyb3VnaCB0aGUgZXh0ZW5zaW9ucwotKyNp ZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwKLSAgICBYNTA5X0VYVEVOU0lP TiAqeHBpZXh0ID0gMDsKLSsjZWxzZQotKyAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICp4cGlleHQg PSAwOwotKyNlbmRpZgotICAgIGludCBucGlleHQgPSBYNTA5X2dldF9leHRfY291bnQoeHBpKTsK LSAgICBpbnQgaSA9IDA7Ci0gICAgZm9yIChpID0gMDsgaTwgbnBpZXh0OyBpKyspIHsKLUBAIC0x MjI3LDggKzEyOTEsOCBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOUdldFZPTVNBdHRyKFhyZENyeXB0 b1g1MDkgKnhjcGksIFhyZE91Y1N0cmluZyAmdmF0KQotICAgICAgIGlmIChzdHJjbXAocywgWFJE R1NJX1ZPTVNfQUNTRVFfT0lEKSkgY29udGludWU7Ci0gICAgICAgLy8gVGhpcyBpcyB0aGUgVk9N UyBleHRlbnNpb24gd2UgYXJlIGludGVyZXN0ZWQgZm9yCi0gICAgICAgcmMgPSAwOwotLSAgICAg IGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBwID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgWDUwOV9F WFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KS0+ZGF0YTsKLS0gICAgICBsb25nIGxlbmd0aCA9IFg1 MDlfRVhURU5TSU9OX2dldF9kYXRhKHhwaWV4dCktPmxlbmd0aDsKLSsgICAgICBjb25zdCB1bnNp Z25lZCBjaGFyICpwcCA9IEFTTjFfU1RSSU5HX2dldDBfZGF0YShYNTA5X0VYVEVOU0lPTl9nZXRf ZGF0YSh4cGlleHQpKTsKLSsgICAgICBsb25nIGxlbmd0aCA9IEFTTjFfU1RSSU5HX2xlbmd0aChY NTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpKTsKLSAgICAgICBpbnQgcmV0ID0gWHJkQ3J5 cHRvc3NsWDUwOUZpbGxWT01TKCZwcCwgbGVuZ3RoLCBnZXR2YXQsIHZhdCk7Ci0gICAgICAgREVC VUcoInJldDogIiA8PCByZXQgPDwgIiAtIHZhdDogIiA8PCB2YXQpOwotICAgIH0KLUBAIC0xMzE2 LDEwICsxMzgwLDEwIEBAIGludCBYcmRDcnlwdG9zc2xYNTA5RmlsbFZPTVMoY29uc3QgdW5zaWdu ZWQgY2hhciAqKnBwLAotICAgICAgICAgICAgIGludCBpLCBwcmludGFibGUgPSAxOwotICAgICAg ICAgICAgIG9wcCA9IG9wOwotICAgICAgICAgICAgIG9zID0gZDJpX0FTTjFfT0NURVRfU1RSSU5H KDAsICZvcHAsIGxlbiArIGhsKTsKLS0gICAgICAgICAgICBpZiAob3MgJiYgb3MtPmxlbmd0aCA+ IDApIHsKLS0gICAgICAgICAgICAgICBvcHAgPSBvcy0+ZGF0YTsKLSsgICAgICAgICAgICBpZiAo b3MgJiYgQVNOMV9TVFJJTkdfbGVuZ3RoKG9zKSA+IDApIHsKLSsgICAgICAgICAgICAgICBvcHAg PSBBU04xX1NUUklOR19nZXQwX2RhdGEob3MpOwotICAgICAgICAgICAgICAgIC8vIFRlc3Rpbmcg d2hldGhlciB0aGUgb2N0ZXQgc3RyaW5nIGlzIHByaW50YWJsZQotLSAgICAgICAgICAgICAgIGZv ciAoaT0wOyBpPG9zLT5sZW5ndGg7IGkrKykgewotKyAgICAgICAgICAgICAgIGZvciAoaT0wOyBp IDwgQVNOMV9TVFJJTkdfbGVuZ3RoKG9zKTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgaWYg KCggKG9wcFtpXSA8ICcgJykgJiYgKG9wcFtpXSAhPSAnXG4nKSAmJgotICAgICAgICAgICAgICAg ICAgICAgICAgIChvcHBbaV0gIT0gJ1xyJykgJiYgKG9wcFtpXSAhPSAnXHQnKSkgfHwgKG9wcFtp XSA+ICd+JykpIHsKLSAgICAgICAgICAgICAgICAgICAgICBwcmludGFibGUgPSAwOwotQEAgLTEz MzMsNyArMTM5Nyw3IEBAIGludCBYcmRDcnlwdG9zc2xYNTA5RmlsbFZPTVMoY29uc3QgdW5zaWdu ZWQgY2hhciAqKnBwLAotICAgICAgICAgICAgICAgICAgICAgIHZhdCArPSAoY29uc3QgY2hhciAq KW9wcDsKLSAgICAgICAgICAgICAgICAgICAgICBnb3R2YXQgPSAxOwotICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICBERUJVRygiT0JKUzoiIDw8IChjb25zdCBjaGFyICop b3BwIDw8ICIgKGxlbjogIjw8b3MtPmxlbmd0aDw8IikiKTsKLSsgICAgICAgICAgICAgICAgICBE RUJVRygiT0JKUzoiIDw8IChjb25zdCBjaGFyICopb3BwIDw8ICIgKGxlbjogIiA8PCBBU04xX1NU UklOR19sZW5ndGgob3MpIDw8ICIpIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg IH0KLSAgICAgICAgICAgICBpZiAob3MpIHsKLUBAIC0xMzg1LDExICsxNDQ5LDE5IEBAIGludCBY cmRDcnlwdG9zc2xYNTA5Q2hlY2tQcm94eTMoWHJkQ3J5cHRvWDUwOSAqeGNwaSwgWHJkT3VjU3Ry aW5nICZlbXNnKSB7Ci0gICAgfQotICAgIFRSQUNFKEFMTCwiY2VydGlmaWNhdGUgaGFzICI8PG51 bWV4dDw8IiBleHRlbnNpb25zIik7Ci0gCi0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAw eDQwMDAwMDAwTAotICAgIFg1MDlfRVhURU5TSU9OICpleHQgPSAwOwotKyNlbHNlCi0rICAgY29u c3QgWDUwOV9FWFRFTlNJT04gKmV4dCA9IDA7Ci0rI2VuZGlmCi0gICAgUFJPWFlfQ0VSVF9JTkZP X0VYVEVOU0lPTiAqcGNpID0gMDsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bWV4dDsgaSsr KSB7Ci0gICAgICAgLy8gR2V0IHRoZSBleHRlbnNpb24KLSsjaWYgT1BFTlNTTF9WRVJTSU9OX05V TUJFUiA8IDB4NDAwMDAwMDBMCi0gICAgICAgWDUwOV9FWFRFTlNJT04gKnhleHQgPSBYNTA5X2dl dF9leHQoY2VydCwgaSk7Ci0rI2Vsc2UKLSsgICAgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqeGV4 dCA9IFg1MDlfZ2V0X2V4dChjZXJ0LCBpKTsKLSsjZW5kaWYKLSAgICAgICAvLyBXZSBhcmUgbG9v a2luZyBmb3IgZ3NpUHJveHlDZXJ0SW5mb19PSUQgICAgICgiMS4zLjYuMS41LjUuNy4xLjE0IikK LSAgICAgICAvLyAgICAgICAgICAgICAgICAgb3IgZ3NpUHJveHlDZXJ0SW5mb19PTERfT0lEICgi MS4zLjYuMS40LjEuMzUzNi4xLjIyMiIpCi0gICAgICAgY2hhciBzWzI1Nl07Ci1AQCAtMTM5OSw4 ICsxNDcxLDggQEAgaW50IFhyZENyeXB0b3NzbFg1MDlDaGVja1Byb3h5MyhYcmRDcnlwdG9YNTA5 ICp4Y3BpLCBYcmRPdWNTdHJpbmcgJmVtc2cpIHsKLSAgICAgICAgICBpZiAoZXh0ID09IDApIHsK LSAgICAgICAgICAgICBleHQgPSB4ZXh0OwotICAgICAgICAgICAgIC8vIE5vdyBnZXQgdGhlIGV4 dGVuc2lvbgotLSAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBYNTA5X0VYVEVOU0lPTl9n ZXRfZGF0YShleHQpLT5kYXRhOwotLSAgICAgICAgICAgIHBjaSA9IGQyaV9QUk9YWV9DRVJUX0lO Rk9fRVhURU5TSU9OKDAsIChjb25zdCB1bnNpZ25lZCBjaGFyICoqKSgmcCksIFg1MDlfRVhURU5T SU9OX2dldF9kYXRhKGV4dCktPmxlbmd0aCk7Ci0rICAgICAgICAgICAgY29uc3QgdW5zaWduZWQg Y2hhciAqcCA9IEFTTjFfU1RSSU5HX2dldDBfZGF0YShYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShl eHQpKTsKLSsgICAgICAgICAgICBwY2kgPSBkMmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTigw LCAmcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCkpKTsK LSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIFBSSU5UKCJXQVJOSU5HOiBtdWx0aXBs ZSBwcm94eUNlcnRJbmZvIGV4dGVuc2lvbnMgZm91bmQ6IHRha2luZyB0aGUgZmlyc3QiKTsKLSAg ICAgICAgICB9Ci1AQCAtMTQwOCw4ICsxNDgwLDggQEAgaW50IFhyZENyeXB0b3NzbFg1MDlDaGVj a1Byb3h5MyhYcmRDcnlwdG9YNTA5ICp4Y3BpLCBYcmRPdWNTdHJpbmcgJmVtc2cpIHsKLSAgICAg ICAgICBpZiAoZXh0ID09IDApIHsKLSAgICAgICAgICAgICBleHQgPSB4ZXh0OwotICAgICAgICAg ICAgIC8vIE5vdyBnZXQgdGhlIGV4dGVuc2lvbgotLSAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIg KnAgPSBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5kYXRhOwotLSAgICAgICAgICAgIHBj aSA9IGQyaV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OX09MRCgwLCAoY29uc3QgdW5zaWduZWQg Y2hhciAqKikoJnApLCBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5sZW5ndGgpOwotKyAg ICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnAgPSBBU04xX1NUUklOR19nZXQwX2RhdGEo WDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KSk7Ci0rICAgICAgICAgICAgcGNpID0gZDJpX1BS T1hZX0NFUlRfSU5GT19FWFRFTlNJT05fT0xEKDAsICZwLCBBU04xX1NUUklOR19sZW5ndGgoWDUw OV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KSkpOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg ICAgICAgUFJJTlQoIldBUk5JTkc6IG11bHRpcGxlIHByb3h5Q2VydEluZm8gZXh0ZW5zaW9ucyBm b3VuZDogdGFraW5nIHRoZSBmaXJzdCIpOwotICAgICAgICAgIH0KLWRpZmYgLS1naXQgYS9zcmMv WHJkVGxzL1hyZFRsc05vdGFyeVV0aWxzLmljYyBiL3NyYy9YcmRUbHMvWHJkVGxzTm90YXJ5VXRp bHMuaWNjCi1pbmRleCA0NDEyNWQ5ODguLjNkZWQ0Zjk5MyAxMDA2NDQKLS0tLSBhL3NyYy9YcmRU bHMvWHJkVGxzTm90YXJ5VXRpbHMuaWNjCi0rKysgYi9zcmMvWHJkVGxzL1hyZFRsc05vdGFyeVV0 aWxzLmljYwotQEAgLTU2LDggKzU2LDggQEAgU09GVFdBUkUuCi0gKi8KLSBzdGF0aWMgSG9zdG5h bWVWYWxpZGF0aW9uUmVzdWx0IG1hdGNoZXNfY29tbW9uX25hbWUoY29uc3QgY2hhciAqaG9zdG5h bWUsIGNvbnN0IFg1MDkgKnNlcnZlcl9jZXJ0KSB7Ci0gICAgICAgICBpbnQgY29tbW9uX25hbWVf bG9jID0gLTE7Ci0tICAgICAgICBYNTA5X05BTUVfRU5UUlkgKmNvbW1vbl9uYW1lX2VudHJ5ID0g TlVMTDsKLS0gICAgICAgIEFTTjFfU1RSSU5HICpjb21tb25fbmFtZV9hc24xID0gTlVMTDsKLSsg ICAgICAgIGNvbnN0IFg1MDlfTkFNRV9FTlRSWSAqY29tbW9uX25hbWVfZW50cnkgPSBOVUxMOwot KyAgICAgICAgY29uc3QgQVNOMV9TVFJJTkcgKmNvbW1vbl9uYW1lX2FzbjEgPSBOVUxMOwotICAg ICAgICAgY2hhciAqY29tbW9uX25hbWVfc3RyID0gTlVMTDsKLSAKLSAgICAgICAgIC8vIEZpbmQg dGhlIHBvc2l0aW9uIG9mIHRoZSBDTiBmaWVsZCBpbiB0aGUgU3ViamVjdCBmaWVsZCBvZiB0aGUg Y2VydGlmaWNhdGUKLWRpZmYgLS1naXQgYS9zcmMvWHJkVm9tcy9YcmRWb21zRnVuLmNjIGIvc3Jj L1hyZFZvbXMvWHJkVm9tc0Z1bi5jYwotaW5kZXggYTRiYzliOGI3Li5mZTZlOGViYjcgMTAwNjQ0 Ci0tLS0gYS9zcmMvWHJkVm9tcy9YcmRWb21zRnVuLmNjCi0rKysgYi9zcmMvWHJkVm9tcy9YcmRW b21zRnVuLmNjCi1AQCAtMTEwLDcgKzExMCw3IEBAIFhyZFZvbXNGdW46OlhyZFZvbXNGdW4oWHJk U3lzRXJyb3IgJmVycCkKLSAgIAotIC8vIEZ1bmN0aW9uIHRvIGNvbnZlcnQgWDUwOV9OQU1FIGlu dG8gYSBvbmUtbGluZSBodW1hbiByZWFkYWJsZSBzdHJpbmcKLSAvLwotLXZvaWQgWHJkVm9tc0Z1 bjo6TmFtZU9uZUxpbmUoWDUwOV9OQU1FICpubSwgWHJkT3VjU3RyaW5nICZzKQotK3ZvaWQgWHJk Vm9tc0Z1bjo6TmFtZU9uZUxpbmUoY29uc3QgWDUwOV9OQU1FICpubSwgWHJkT3VjU3RyaW5nICZz KQotIHsKLSAgICBCSU8gKm1iaW8gPSBCSU9fbmV3KEJJT19zX21lbSgpKTsKLSAgICBYNTA5X05B TUVfcHJpbnRfZXgobWJpbywgbm0sIDAsIFhOX0ZMQUdfQ09NUEFUKTsKLWRpZmYgLS1naXQgYS9z cmMvWHJkVm9tcy9YcmRWb21zRnVuLmhoIGIvc3JjL1hyZFZvbXMvWHJkVm9tc0Z1bi5oaAotaW5k ZXggZmY1ZGY1OGVmLi41YzExMjlhYjggMTAwNjQ0Ci0tLS0gYS9zcmMvWHJkVm9tcy9YcmRWb21z RnVuLmhoCi0rKysgYi9zcmMvWHJkVm9tcy9YcmRWb21zRnVuLmhoCi1AQCAtNjUsNyArNjUsNyBA QCBpbnQgIFZPTVNJbml0KGNvbnN0IGNoYXIgKmNmZyk7Ci0gcHJpdmF0ZToKLSAKLSB2b2lkIEZt dEV4dHJhY3QoWHJkT3VjU3RyaW5nICZvdXQsIFhyZE91Y1N0cmluZyBpbiwgY29uc3QgY2hhciAq dGFnKTsKLS12b2lkIE5hbWVPbmVMaW5lKFg1MDlfTkFNRSAqbm0sIFhyZE91Y1N0cmluZyAmcyk7 Ci0rdm9pZCBOYW1lT25lTGluZShjb25zdCBYNTA5X05BTUUgKm5tLCBYcmRPdWNTdHJpbmcgJnMp OwotIHZvaWQgRm10UmVwbGFjZShYcmRTZWNFbnRpdHkgJmVudCk7Ci0gCi0gLy8gVGhlc2Ugc2V0 dGluZ3MgYXJlIGNvbmZpZ3VyYWJsZQotLS0gCi0yLjU0LjAKLQoKZGlmZiAtLWdpdCBhLzAwMDIt WHJkQ3J5cHRvLVByZXNlcnZlLUFCSS5wYXRjaCBiLzAwMDItWHJkQ3J5cHRvLVByZXNlcnZlLUFC SS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDJhYTdhNS4uMDAwMDAwMAot LS0gYS8wMDAyLVhyZENyeXB0by1QcmVzZXJ2ZS1BQkkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwzMCArMCwwIEBACi1Gcm9tIDA5YTk4MzczYmM0NDJkNTE1ZjM0NzU5M2MxMTM4NDI3MzNlYTYw YjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlh cy5lbGxlcnRAcGh5c2ljcy51dS5zZT4KLURhdGU6IFNhdCwgMjMgTWF5IDIwMjYgMjA6NTk6MDQg KzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyLzJdIFtYcmRDcnlwdG9dIFByZXNlcnZlIEFCSQotCi1B ZGQgYmFjayBub3cgdW51c2VkIG5vbi1jb25zdCB2ZXJzaW9uIG9mIGZ1bmN0aW9uCi0tLS0KLSBz cmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbEF1eC5jYyB8IDkgKysrKysrKysrCi0gMSBmaWxlIGNo YW5nZWQsIDkgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL1hyZENyeXB0by9YcmRD cnlwdG9zc2xBdXguY2MgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbEF1eC5jYwotaW5kZXgg YTQ0MjgzOTg1Li5lMGNlMzUyODUgMTAwNjQ0Ci0tLS0gYS9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0 b3NzbEF1eC5jYwotKysrIGIvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xBdXguY2MKLUBAIC03 NTUsMyArNzU1LDEyIEBAIHZvaWQgWHJkQ3J5cHRvc3NsTmFtZU9uZUxpbmUoY29uc3QgWDUwOV9O QU1FICpubSwgWHJkT3VjU3RyaW5nICZzKQotICAgIC8vIERvbmUKLSAgICByZXR1cm47Ci0gfQot KwotKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwotK3ZvaWQgWHJkQ3J5cHRvc3NsTmFtZU9uZUxpbmUo WDUwOV9OQU1FICpubSwgWHJkT3VjU3RyaW5nICZzKQotK3sKLSsgICAvLyBDb3B5IG9mIGFib3Zl IGZ1bmN0aW9uIHdpdGggbm9uLWNvbnN0IGZpcnN0IGFyZ3VtZW50Ci0rICAgLy8gVGhpcyBmdW5j dGlvbiBpcyB1bnVzZWQgLS0gb25seSBhZGRlZCB0byBwcmVzZXJ2ZSBvbGQgQUJJCi0rICAgLy8g Q2FuIGJlIHJlbW92ZWQgaWYgc29uYW1lIGNoYW5nZXMKLSsgICBYcmRDcnlwdG9zc2xOYW1lT25l TGluZShjb25zdF9jYXN0PGNvbnN0IFg1MDlfTkFNRSAqPihubSksIHMpOwotK30KLS0tIAotMi41 NC4wCi0KCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCAyMTgxNmFiLi5mNjY5 ODI3IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAKLVNIQTUx MiAoeHJvb3RkLTYuMC4zLnRhci5neikgPSA5ZjA1MTdkY2VjYzY3OWY1YWEzODU4MzExODRjOWVi OTNhZDdhZDJkNDJiZGExMzQwYTljYWRhN2Y0NDQ5OThmZWQwYTIxMjczODE0MmJlYWYzZGU2YzJm MjY2NzAxMzc4MzljYTQ4Y2E5YWM1YWI3ZDU4MzRmZWI1ZDMwOWFhOAorU0hBNTEyICh4cm9vdGQt Ni4xLjAudGFyLmd6KSA9IGJkNDcxZjMyNjdkZTRhYTUyMGQwOTFjYWNhNWM2MzBhZGM0MjQ4MWRh MWFkNGRlNTM0YjUxNWVjM2NiN2Y0YzNiNDI4ZGJkZmQ5MmVkMDViYTg4OTc4MTExNTNiMjllYjQy NWJjNGEwMDI1NDZjODE5OTZhZWFmZDEzODVkMGMyCgpkaWZmIC0tZ2l0IGEveHJvb3RkLnNwZWMg Yi94cm9vdGQuc3BlYwppbmRleCA5MjE1ZDgwLi44NzI2NjFjIDEwMDY0NAotLS0gYS94cm9vdGQu c3BlYworKysgYi94cm9vdGQuc3BlYwpAQCAtMTMsOCArMTMsOCBAQAogCiBOYW1lOgkJeHJvb3Rk CiBFcG9jaDoJCTEKLVZlcnNpb246CTYuMC4zCi1SZWxlYXNlOgkzJXs/ZGlzdH0KK1ZlcnNpb246 CTYuMS4wCitSZWxlYXNlOgkxJXs/ZGlzdH0KIFN1bW1hcnk6CUV4dGVuZGVkIFJPT1QgZmlsZSBz ZXJ2ZXIKIExpY2Vuc2U6CUxHUEwtMy4wLW9yLWxhdGVyIEFORCBCU0QtMi1DbGF1c2UgQU5EIEJT RC0zLUNsYXVzZSBBTkQgY3VybCBBTkQgTUlUIEFORCBabGliIEFORCBBcGFjaGUtMi4wIEFORCBN UEwtMi4wCiBVUkw6CQlodHRwczovL3hyb290ZC53ZWIuY2Vybi5jaApAQCAtMjMsMTAgKzIzLDYg QEAgU291cmNlMToJJXtuYW1lfS1zeXN1c2Vycy5jb25mCiAKICMJCVVuYnVuZGxlIHRpbnl4bWwg bGlicmFyeQogUGF0Y2gwOgkJMDAwMS1VbmJ1bmRsZS10aW55eG1sLnBhdGNoCi0jCQlBZGFwdCB0 byBPcGVuU1NMIDQKLSMJCWh0dHBzOi8vZ2l0aHViLmNvbS94cm9vdGQveHJvb3RkL3B1bGwvMjgw MgotUGF0Y2gxOgkJMDAwMS1YcmRDcnlwdG8tWHJkVGxzLVhyZFZvbXMtQWRhcHQtdG8tT3BlblNT TC00LjAucGF0Y2gKLVBhdGNoMjoJCTAwMDItWHJkQ3J5cHRvLVByZXNlcnZlLUFCSS5wYXRjaAog CiBCdWlsZFJlcXVpcmVzOgljbWFrZQogQnVpbGRSZXF1aXJlczoJZ2NjLWMrKwpAQCAtNzIsNiAr NjgsNyBAQCBCdWlsZFJlcXVpcmVzOglweXRob24zLXNwaGlueAogQnVpbGRSZXF1aXJlczoJYXR0 cgogQnVpbGRSZXF1aXJlczoJY3VybAogQnVpbGRSZXF1aXJlczoJZ3Rlc3QtZGV2ZWwKK0J1aWxk UmVxdWlyZXM6CWpxCiBCdWlsZFJlcXVpcmVzOglrcmI1LXNlcnZlcgogQnVpbGRSZXF1aXJlczoJ a3JiNS13b3Jrc3RhdGlvbgogQnVpbGRSZXF1aXJlczoJb3BlbnNzbApAQCAtMjY1LDggKzI2Miw2 IEBAIFRoaXMgcGFja2FnZSBjb250YWlucyB0aGUgQVBJIGRvY3VtZW50YXRpb24gb2YgdGhlIHhy b290ZCBsaWJyYXJpZXMuCiAlc2V0dXAgLXEKIAogJXBhdGNoIC1QMCAtcDEKLSVwYXRjaCAtUDEg LXAxCi0lcGF0Y2ggLVAyIC1wMQogCiAlYnVpbGQKICVjbWFrZSBcCkBAIC01NzksNiArNTc0LDcg QEAgZmkKICV7X2xpYmRpcn0vbGliWHJkT2ZzUHJlcEdQSS02LnNvCiAle19saWJkaXJ9L2xpYlhy ZE9zc0FyYy02LnNvCiAle19saWJkaXJ9L2xpYlhyZE9zc0NzaS02LnNvCisle19saWJkaXJ9L2xp YlhyZE9zc01pcmFnZS02LnNvCiAle19saWJkaXJ9L2xpYlhyZE9zc1NJZ3Bmc1QtNi5zbwogJXtf bGliZGlyfS9saWJYcmRPc3NTdGF0cy02LnNvCiAle19saWJkaXJ9L2xpYlhyZFBmYy02LnNvCkBA IC02NjEsNiArNjU3LDEwIEBAIGZpCiAlZG9jICV7X3BrZ2RvY2Rpcn0KIAogJWNoYW5nZWxvZwor KiBUdWUgSnVuIDIzIDIwMjYgTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNpY3Mu dXUuc2U+IC0gMTo2LjEuMC0xCistIFVwZGF0ZSB0byB2ZXJzaW9uIDYuMS4wCistIERyb3AgcGF0 Y2hlcyBhY2NlcHRlZCB1cHN0cmVhbQorCiAqIFNhdCBKdW4gMTMgMjAyNiBZYWFrb3YgU2Vsa293 aXR6IDx5c2Vsa293aUByZWRoYXQuY29tPiAtIDE6Ni4wLjMtMwogLSBSZWJ1aWx0IGZvciBvcGVu c3NsIDQuMAogCg==