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: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Add active-surrounding-text property to IBusEngine Date: Sun, 31 May 2026 02:08:05 GMT Message-ID: <178019328517.1.10555733529230706094.rpms-ibus-a3f0af08444b@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: a3f0af08444bbeefa892d6d719dfc2cf0efbdf47 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvaWJ1cwogICAgICAgICAgICBCcmFuY2ggOiBhdXRvdG9vbAogICAgICAgICAg ICBDb21taXQgOiBhM2YwYWYwODQ0NGJiZWVmYTg5MmQ2ZDcxOWRmYzJjZjBlZmJkZjQ3CiAgICAg ICAgICAgIEF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgogICAg ICAgICAgICBEYXRlICAgOiAyMDIzLTAxLTI1VDE3OjUyOjE2KzA5OjAwCiAgICAgICAgICAgIFN0 YXRzICA6ICsxMjI2Ly0yNSBpbiAzIGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6 Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9pYnVzL2MvYTNmMGFmMDg0NDRiYmVlZmE4OTJk NmQ3MTlkZmMyY2YwZWZiZGY0Nz9icmFuY2g9YXV0b3Rvb2wKCiAgICAgICAgICAgIExvZzoKICAg ICAgICAgICAgQWRkIGFjdGl2ZS1zdXJyb3VuZGluZy10ZXh0IHByb3BlcnR5IHRvIElCdXNFbmdp bmUKCi0gUmVmYWN0b3Igc3Vycm91bmRpbmcgdGV4dCB3YXJuaW5nICYgZnJlZSBmb2N1cy1pZCB0 YWJsZXMKCi0tLQpkaWZmIC0tZ2l0IGEvaWJ1cy0xMzg1MzQ5LXNlZ3YtYnVzLXByb3h5LnBhdGNo IGIvaWJ1cy0xMzg1MzQ5LXNlZ3YtYnVzLXByb3h5LnBhdGNoCmluZGV4IDA5M2Y4ZmEuLjA5OGFl NTggMTAwNjQ0Ci0tLSBhL2lidXMtMTM4NTM0OS1zZWd2LWJ1cy1wcm94eS5wYXRjaAorKysgYi9p YnVzLTEzODUzNDktc2Vndi1idXMtcHJveHkucGF0Y2gKQEAgLTEsNiArMSw2IEBACi1Gcm9tIGVi OWVhYTZiNTJkNWJlYjRhZmYwYTQ1ZGNkMmI5N2E0MDcxMDI5ZWEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tIDU3NDliNDg2MWZmY2FmODA4M2Q5N2M2YmY5ODU4MjU3MzczNTk2Y2UgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBn bWFpbC5jb20+Ci1EYXRlOiBXZWQsIDcgRGVjIDIwMjIgMTE6MTE6MDkgKzA5MDAKK0RhdGU6IFdl ZCwgMjUgSmFuIDIwMjMgMTc6MjY6NDcgKzA5MDAKIFN1YmplY3Q6IFtQQVRDSF0gRml4IFNFR1Yg aW4gYnVzX3BhbmVsX3Byb3h5X2ZvY3VzX2luKCkKIAogcmhieiMxMzUwMjkxIFNFR1YgaW4gQlVT X0lTX0NPTk5FQ1RJT04oc2tpcF9jb25uZWN0aW9uKSBpbgpAQCAtMTQzLDEwICsxNDMsMTAgQEAg aW5kZXggNTk3ODdhODAuLmFmMmZiZGUyIDEwMDY0NAogICAgICBpZiAoaW5jb21pbmcpIHsKICAg ICAgICAgIC8qIGlzIGluY29taW5nIG1lc3NhZ2UgKi8KIGRpZmYgLS1naXQgYS9idXMvZW5naW5l cHJveHkuYyBiL2J1cy9lbmdpbmVwcm94eS5jCi1pbmRleCBmZDFmMzRmYi4uNTdjMDYxYmEgMTAw NjQ0CitpbmRleCBiM2UxNjA2Ni4uYmE0NzliNTkgMTAwNjQ0CiAtLS0gYS9idXMvZW5naW5lcHJv eHkuYwogKysrIGIvYnVzL2VuZ2luZXByb3h5LmMKLUBAIC02OTAsMTAgKzY5MCwxMiBAQCBidXNf ZW5naW5lX3Byb3h5X2dfc2lnbmFsIChHREJ1c1Byb3h5ICAqcHJveHksCitAQCAtNjkzLDEwICs2 OTMsMTIgQEAgYnVzX2VuZ2luZV9wcm94eV9nX3NpZ25hbCAoR0RCdXNQcm94eSAgKnByb3h5LAog ICAgICBnX3JldHVybl9pZl9yZWFjaGVkICgpOwogIH0KICAKQEAgLTE2MCw3ICsxNjAsNyBAQCBp bmRleCBmZDFmMzRmYi4uNTdjMDYxYmEgMTAwNjQ0CiAgewogICAgICBHREJ1c1Byb3h5RmxhZ3Mg ZmxhZ3M7CiAgICAgIEJ1c0VuZ2luZVByb3h5ICplbmdpbmU7Ci1AQCAtNzA0LDEyICs3MDYsMjAg QEAgYnVzX2VuZ2luZV9wcm94eV9uZXdfaW50ZXJuYWwgKGNvbnN0IGdjaGFyICAgICAqcGF0aCwK K0BAIC03MDYsMTIgKzcwOCwyMCBAQCBidXNfZW5naW5lX3Byb3h5X25ld19pbnRlcm5hbCAoY29u c3QgZ2NoYXIgICAgICpwYXRoLAogICAgICBnX2Fzc2VydCAocGF0aCk7CiAgICAgIGdfYXNzZXJ0 IChJQlVTX0lTX0VOR0lORV9ERVNDIChkZXNjKSk7CiAgICAgIGdfYXNzZXJ0IChHX0lTX0RCVVNf Q09OTkVDVElPTiAoY29ubmVjdGlvbikpOwpAQCAtMTgyLDcgKzE4Miw3IEBAIGluZGV4IGZkMWYz NGZiLi41N2MwNjFiYSAxMDA2NDQKICAgICAgICAgICAgICAiZGVzYyIsICAgICAgICAgICAgICBk ZXNjLAogICAgICAgICAgICAgICJnLWNvbm5lY3Rpb24iLCAgICAgIGNvbm5lY3Rpb24sCiAgICAg ICAgICAgICAgImctaW50ZXJmYWNlLW5hbWUiLCAgSUJVU19JTlRFUkZBQ0VfRU5HSU5FLAotQEAg LTcxNyw2ICs3MjcsMTIgQEAgYnVzX2VuZ2luZV9wcm94eV9uZXdfaW50ZXJuYWwgKGNvbnN0IGdj aGFyICAgICAqcGF0aCwKK0BAIC03MTksNiArNzI5LDEyIEBAIGJ1c19lbmdpbmVfcHJveHlfbmV3 X2ludGVybmFsIChjb25zdCBnY2hhciAgICAgKnBhdGgsCiAgICAgICAgICAgICAgImctZGVmYXVs dC10aW1lb3V0IiwgZ19nZGJ1c190aW1lb3V0LAogICAgICAgICAgICAgICJnLWZsYWdzIiwgICAg ICAgICAgIGZsYWdzLAogICAgICAgICAgICAgIE5VTEwpOwpAQCAtMTk1LDE1ICsxOTUsMTUgQEAg aW5kZXggZmQxZjM0ZmIuLjU3YzA2MWJhIDEwMDY0NAogICAgICBjb25zdCBnY2hhciAqbGF5b3V0 ID0gaWJ1c19lbmdpbmVfZGVzY19nZXRfbGF5b3V0IChkZXNjKTsKICAgICAgaWYgKGxheW91dCAh PSBOVUxMICYmIGxheW91dFswXSAhPSAnXDAnKSB7CiAgICAgICAgICBlbmdpbmUtPmtleW1hcCA9 IGlidXNfa2V5bWFwX2dldCAobGF5b3V0KTsKLUBAIC03MzYsNiArNzUyLDcgQEAgYnVzX2VuZ2lu ZV9wcm94eV9uZXdfaW50ZXJuYWwgKGNvbnN0IGdjaGFyICAgICAqcGF0aCwKLSAgICAgfQorQEAg LTc1Niw2ICs3NzIsNyBAQCBidXNfZW5naW5lX3Byb3h5X25ld19pbnRlcm5hbCAoY29uc3QgZ2No YXIgICAgICpwYXRoLAorIAogICAgICByZXR1cm4gZW5naW5lOwogIH0KICsjcHJhZ21hIEdDQyBy ZXNldF9vcHRpb25zCiAgCiAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICBHVGFzayAgICAgICAgICAg KnRhc2s7Ci1AQCAtNzk4LDIzICs4MTUsMzAgQEAgY3JlYXRlX2VuZ2luZV9yZWFkeV9jYiAoQnVz RmFjdG9yeVByb3h5ICAgICpmYWN0b3J5LAorQEAgLTgxOCwyMyArODM1LDMwIEBAIGNyZWF0ZV9l bmdpbmVfcmVhZHlfY2IgKEJ1c0ZhY3RvcnlQcm94eSAgICAqZmFjdG9yeSwKICAgICAgICAgICAg ICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgICAgICAgKnJlcywKICAgICAgICAgICAgICAgICAg ICAgICAgICBFbmdpbmVQcm94eU5ld0RhdGEgKmRhdGEpCiAgewoKZGlmZiAtLWdpdCBhL2lidXMt SEVBRC5wYXRjaCBiL2lidXMtSEVBRC5wYXRjaAppbmRleCBlZWExNWQwLi5mZmI5YjM3IDEwMDY0 NAotLS0gYS9pYnVzLUhFQUQucGF0Y2gKKysrIGIvaWJ1cy1IRUFELnBhdGNoCkBAIC03NzU5LDI0 ICs3NzU5LDg0MyBAQCBpbmRleCAwYzBiZGExMC4uMzQwMTY4YzggMTAwNjQ0CiAtLSAKIDIuMzgu MQogCi1Gcm9tIGI2NjY0MTk1YTJiYzljNzY2NmYxOGI1NTg2YzUzOGZiNjcxYmYxYTkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGQxOTBiYzMyZmUwZmU3ODBiNjYxMDBlNTQ2MTMyNjk3 M2FjN2E4MDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBFYmVyaGFyZCBCZWlsaGFy eiA8ZWIxQHNpbC5vcmc+CitEYXRlOiBUaHUsIDEyIEphbiAyMDIzIDIyOjI0OjQyICswOTAwCitT dWJqZWN0OiBbUEFUQ0ggMS8zXSBjb25maWd1cmU6IEZpeCB0ZXh0cyBmb3Igc3Vycm91bmRpbmcg dGV4dAorCitUaGUgb3B0aW9ucyBhbmQgY29ycmVzcG9uZGluZyB0ZXh0cyBmb3Igc3Vycm91bmRp bmctdGV4dCB3ZXJlIG1peGVkCit1cC4gVGhpcyBjaGFuZ2UgbWFrZXMgdGhlbSBjb25zaXN0ZW50 IHdpdGggdGhlIHRleHQgZm9yIG90aGVyCitvcHRpb25zLgorCitCVUc9aHR0cHM6Ly9naXRodWIu Y29tL2lidXMvaWJ1cy9wdWxsLzI0MzgKKy0tLQorIGNvbmZpZ3VyZS5hYyB8IDUgKystLS0KKyAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0t Z2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCBhODRjNzEzMC4uY2JhMjQy ZGYgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTYz MywxNCArNjMzLDEzIEBAIEFDX1NVQlNUKElCVVNfSUNPTl9LRVlCT0FSRCkKKyAjIC0tZGlzYWJs ZS1zdXJyb3VuZGluZy10ZXh0IG9wdGlvbi4KKyBBQ19BUkdfRU5BQkxFKHN1cnJvdW5kaW5nLXRl eHQsCisgICAgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtc3Vycm91bmRpbmctdGV4dF0sCist ICAgICAgICBbRW5hYmxlIHN1cnJvdW5kaW5nLXRleHQgc3VwcG9ydF0pLAorKyAgICAgICAgW0Rp c2FibGUgc3Vycm91bmRpbmctdGV4dCBzdXBwb3J0XSksCisgICAgIFtlbmFibGVfc3Vycm91bmRp bmdfdGV4dD0kZW5hYmxldmFsXSwKKyAgICAgW2VuYWJsZV9zdXJyb3VuZGluZ190ZXh0PXllc10K KyApCisgaWYgdGVzdCB4IiRlbmFibGVfc3Vycm91bmRpbmdfdGV4dCIgPSB4InllcyI7IHRoZW4K KyAgICAgQUNfREVGSU5FKEVOQUJMRV9TVVJST1VORElORywgVFJVRSwgW0VuYWJsZSBzdXJyb3Vu ZGluZy10ZXh0IHN1cHBvcnRdKQorLWVsc2UKKy0gICAgZW5hYmxlX3N1cnJvdW5kaW5nX3RleHQ9 Im5vIChkaXNhYmxlZCwgdXNlIC0tZW5hYmxlLXN1cnJvdW5kaW5nLXRleHQgdG8gZW5hYmxlKSIK KysgICAgZW5hYmxlX3N1cnJvdW5kaW5nX3RleHQ9InllcyAoZW5hYmxlZCwgdXNlIC0tZGlzYWJs ZS1zdXJyb3VuZGluZy10ZXh0IHRvIGRpc2FibGUpIgorIGZpCisgCisgIyAtLWRpc2FibGUtdWkK Ky0tIAorMi4zOC4xCisKK0Zyb20gYmQyNGJlNDU4MmY2N2UyNzhmYzg1ZTg0M2QzOWI4MTYyOWJm N2Q5YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBoaWxpcHBlIFJvdXF1aWVyIDxi b25maXJlLWFwcEB3YW5hZG9vLmZyPgorRGF0ZTogTW9uLCAyMyBKYW4gMjAyMyAyMTowNDo1MSAr MDkwMAorU3ViamVjdDogW1BBVENIIDIvM10gQWRkIGFjdGl2ZS1zdXJyb3VuZGluZy10ZXh0IHBy b3BlcnR5IHRvIElCdXNFbmdpbmUKKworV2hlbiB0aGlzIHByb3BlcnR5IGlzIHNldCB0byBUUlVF LCBpYnVzIGRhZW1vbiB3aWxsIHVwZGF0ZQorc3Vycm91bmRpbmcgdGV4dCBvbiBldmVyeSBmb2N1 cyhpbi9vdXQpIGV2ZW50IHdoaWNoIG1ha2VzCitpYnVzX2VuZ2luZV9nZXRfc3Vycm91bmRpbmdf dGV4dCgpIGNhbGxzIGZyb20gYW4gZW5naW5lCitjb2RlIHVubmVjZXNzYXJ5LgorVGhpcyBwcm9w ZXJ0eSBtdXN0IGJlIHNldCBhdCBjb25zdHJ1Y3QgdGltZS4KKworQlVHPWh0dHBzOi8vZ2l0aHVi LmNvbS9pYnVzL2lidXMvcHVsbC8yNDQ3CistLS0KKyBidXMvZW5naW5lcHJveHkuYyB8IDExNCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCisgYnVzL2lidXNp bXBsLmMgICAgfCAgMTYgKysrKysrKworIGJ1cy9pYnVzaW1wbC5oICAgIHwgICA5ICsrKysKKyBz cmMvaWJ1c2VuZ2luZS5jICB8ICA0NyArKysrKysrKysrKysrKysrKystCisgNCBmaWxlcyBjaGFu Z2VkLCAxNjcgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9i dXMvZW5naW5lcHJveHkuYyBiL2J1cy9lbmdpbmVwcm94eS5jCitpbmRleCBmZDFmMzRmYi4uYjNl MTYwNjYgMTAwNjQ0CistLS0gYS9idXMvZW5naW5lcHJveHkuYworKysrIGIvYnVzL2VuZ2luZXBy b3h5LmMKK0BAIC02MCw2ICs2MCw3IEBAIHN0cnVjdCBfQnVzRW5naW5lUHJveHkgeworICAgICAv KiBjYWNoZWQgcHJvcGVydGllcyAqLworICAgICBJQnVzUHJvcExpc3QgKnByb3BfbGlzdDsKKyAg ICAgZ2Jvb2xlYW4gaGFzX2ZvY3VzX2lkOworKyAgICBnYm9vbGVhbiBoYXNfYWN0aXZlX3N1cnJv dW5kaW5nX3RleHQ7CisgfTsKKyAKKyBzdHJ1Y3QgX0J1c0VuZ2luZVByb3h5Q2xhc3MgeworQEAg LTEzMCw2ICsxMzEsOCBAQCBzdGF0aWMgdm9pZCAgICAgYnVzX2VuZ2luZV9wcm94eV9pbml0YWJs ZV9pZmFjZV9pbml0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKmluaXRhYmxlX2lmYWNlKTsKKyBzdGF0aWMgdm9pZCAgICAg YnVzX2VuZ2luZV9wcm94eV9nZXRfaGFzX2ZvY3VzX2lkCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJ1c0VuZ2luZVByb3h5ICAgICplbmdpbmUpOwor K3N0YXRpYyB2b2lkICAgICBidXNfZW5naW5lX3Byb3h5X2dldF9hY3RpdmVfc3Vycm91bmRpbmdf dGV4dAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChC dXNFbmdpbmVQcm94eSAgICAqZW5naW5lKTsKKyAKKyBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAo QnVzRW5naW5lUHJveHksIGJ1c19lbmdpbmVfcHJveHksIElCVVNfVFlQRV9QUk9YWSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFICgKK0BAIC02OTksNyAr NzAyLDYgQEAgYnVzX2VuZ2luZV9wcm94eV9uZXdfaW50ZXJuYWwgKGNvbnN0IGdjaGFyICAgICAq cGF0aCwKKyAgICAgQnVzRW5naW5lUHJveHkgKmVuZ2luZTsKKyAgICAgQnVzSUJ1c0ltcGwgKmli dXMgPSBCVVNfREVGQVVMVF9JQlVTOworICAgICBHSGFzaFRhYmxlICpoYXNoX3RhYmxlID0gTlVM TDsKKy0gICAgRW5naW5lRm9jdXNDYXRlZ29yeSBjYXRlZ29yeSA9IEVOR0lORV9GT0NVU19DQVRF R09SWV9OT05FOworIAorICAgICBnX2Fzc2VydCAocGF0aCk7CisgICAgIGdfYXNzZXJ0IChJQlVT X0lTX0VOR0lORV9ERVNDIChkZXNjKSk7CitAQCAtNzIxLDkgKzcyMywxMiBAQCBidXNfZW5naW5l X3Byb3h5X25ld19pbnRlcm5hbCAoY29uc3QgZ2NoYXIgICAgICpwYXRoLAorICAgICBpZiAobGF5 b3V0ICE9IE5VTEwgJiYgbGF5b3V0WzBdICE9ICdcMCcpIHsKKyAgICAgICAgIGVuZ2luZS0+a2V5 bWFwID0gaWJ1c19rZXltYXBfZ2V0IChsYXlvdXQpOworICAgICB9CistICAgIGlmIChpYnVzKQor LSAgICAgICAgaGFzaF90YWJsZSA9IGJ1c19pYnVzX2ltcGxfZ2V0X2VuZ2luZV9mb2N1c19pZF90 YWJsZSAoaWJ1cyk7CisrCisrICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChpYnVzLCBlbmdpbmUp OworKworKyAgICBoYXNoX3RhYmxlID0gYnVzX2lidXNfaW1wbF9nZXRfZW5naW5lX2ZvY3VzX2lk X3RhYmxlIChpYnVzKTsKKyAgICAgaWYgKGhhc2hfdGFibGUpIHsKKysgICAgICAgIEVuZ2luZUZv Y3VzQ2F0ZWdvcnkgY2F0ZWdvcnk7CisgICAgICAgICBjYXRlZ29yeSA9IChFbmdpbmVGb2N1c0Nh dGVnb3J5KUdQT0lOVEVSX1RPX0lOVCAoCisgICAgICAgICAgICAgICAgIGdfaGFzaF90YWJsZV9s b29rdXAgKGhhc2hfdGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlidXNfZW5naW5lX2Rlc2NfZ2V0X25hbWUgKGRlc2MpKSk7CitAQCAtNzM0LDYgKzczOSwyMSBA QCBidXNfZW5naW5lX3Byb3h5X25ld19pbnRlcm5hbCAoY29uc3QgZ2NoYXIgICAgICpwYXRoLAor ICAgICAgICAgZWxzZQorICAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfZ2V0X2hhc19mb2N1 c19pZCAoZW5naW5lKTsKKyAgICAgfQorKworKyAgICBoYXNoX3RhYmxlID0gYnVzX2lidXNfaW1w bF9nZXRfZW5naW5lX2FjdGl2ZV9zdXJyb3VuZGluZ190ZXh0X3RhYmxlIChpYnVzKTsKKysgICAg aWYgKGhhc2hfdGFibGUpIHsKKysgICAgICAgIEVuZ2luZVN1cnJvdW5kaW5nVGV4dENhdGVnb3J5 IGNhdGVnb3J5OworKyAgICAgICAgY2F0ZWdvcnkgPSAoRW5naW5lU3Vycm91bmRpbmdUZXh0Q2F0 ZWdvcnkpR1BPSU5URVJfVE9fSU5UICgKKysgICAgICAgICAgICAgICAgZ19oYXNoX3RhYmxlX2xv b2t1cCAoaGFzaF90YWJsZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoZGVzYykpKTsKKysgICAgICAgIGlmIChjYXRlZ29y eSA9PSBFTkdJTkVfU1VSUk9VTkRJTkdfVEVYVF9DQVRFR09SWV9IQVNfQUNUSVZFKQorKyAgICAg ICAgICAgIGVuZ2luZS0+aGFzX2FjdGl2ZV9zdXJyb3VuZGluZ190ZXh0ID0gVFJVRTsKKysgICAg ICAgIGVsc2UgaWYgKGNhdGVnb3J5ID09IEVOR0lORV9TVVJST1VORElOR19URVhUX0NBVEVHT1JZ X05PVF9BQ1RJVkUpCisrICAgICAgICAgICAgZW5naW5lLT5oYXNfYWN0aXZlX3N1cnJvdW5kaW5n X3RleHQgPSBGQUxTRTsKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBidXNfZW5naW5lX3By b3h5X2dldF9hY3RpdmVfc3Vycm91bmRpbmdfdGV4dCAoZW5naW5lKTsKKysgICAgfQorKworICAg ICByZXR1cm4gZW5naW5lOworIH0KKyAKK0BAIC0xMjYzLDYgKzEyODMsMjYgQEAgYnVzX2VuZ2lu ZV9wcm94eV9zZXRfY29udGVudF90eXBlIChCdXNFbmdpbmVQcm94eSAqZW5naW5lLAorICAgICBn X3ZhcmlhbnRfdW5yZWYgKGNvbnRlbnRfdHlwZSk7CisgfQorIAorK3N0YXRpYyB2b2lkCisrYnVz X2VuZ2luZV9wcm94eV9nZXRfZW5naW5lX3Byb3BlcnR5IChCdXNFbmdpbmVQcm94eSAgICAgKmVu Z2luZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFy ICAgICAgICAqcHJvcF9uYW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0FzeW5jUmVhZHlDYWxsYmFjayBjYWxsYmFjaywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdIYXNoVGFibGUgICAgICAgICAqaGFzaF90YWJsZSkKKyt7CisrICAg IGdfYXNzZXJ0IChCVVNfSVNfRU5HSU5FX1BST1hZIChlbmdpbmUpKTsKKysgICAgZ19hc3NlcnQg KGhhc2hfdGFibGUpOworKyAgICBnX2RidXNfcHJveHlfY2FsbCAoKEdEQnVzUHJveHkgKikgZW5n aW5lLAorKyAgICAgICAgICAgICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3Bl cnRpZXMuR2V0IiwKKysgICAgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIoc3Mp IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCVVNfSU5URVJGQUNF X0VOR0lORSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BfbmFt ZSksCisrICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAorKyAg ICAgICAgICAgICAgICAgICAgICAgLTEsCisrICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor KyAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssCisrICAgICAgICAgICAgICAgICAgICAg ICBnX2hhc2hfdGFibGVfcmVmIChoYXNoX3RhYmxlKSk7CisrfQorKworIHN0YXRpYyB2b2lkCisg X2dldF9oYXNfZm9jdXNfaWRfY2IgKEdPYmplY3QgICAgICAgICpvYmplY3QsCisgICAgICAgICAg ICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICpyZXMsCitAQCAtMTI5OSwyMyArMTMzOSw1NyBA QCBzdGF0aWMgdm9pZAorIGJ1c19lbmdpbmVfcHJveHlfZ2V0X2hhc19mb2N1c19pZCAoQnVzRW5n aW5lUHJveHkgKmVuZ2luZSkKKyB7CisgICAgIEJ1c0lCdXNJbXBsICppYnVzID0gQlVTX0RFRkFV TFRfSUJVUzsKKy0gICAgR0hhc2hUYWJsZSAqaGFzaF90YWJsZTsKKy0KKy0gICAgZ19hc3NlcnQg KEJVU19JU19FTkdJTkVfUFJPWFkgKGVuZ2luZSkpOworICAgICBnX2Fzc2VydCAoaWJ1cyk7Cisr ICAgIGJ1c19lbmdpbmVfcHJveHlfZ2V0X2VuZ2luZV9wcm9wZXJ0eSAoCisrICAgICAgICAgICAg ZW5naW5lLAorKyAgICAgICAgICAgICJGb2N1c0lkIiwKKysgICAgICAgICAgICBfZ2V0X2hhc19m b2N1c19pZF9jYiwKKysgICAgICAgICAgICBidXNfaWJ1c19pbXBsX2dldF9lbmdpbmVfZm9jdXNf aWRfdGFibGUgKGlidXMpKTsKKyt9CisgCistICAgIGhhc2hfdGFibGUgPSBidXNfaWJ1c19pbXBs X2dldF9lbmdpbmVfZm9jdXNfaWRfdGFibGUgKGlidXMpOworLSAgICBnX2Fzc2VydCAoaGFzaF90 YWJsZSk7CistICAgIGdfZGJ1c19wcm94eV9jYWxsICgoR0RCdXNQcm94eSAqKSBlbmdpbmUsCist ICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydGllcy5H ZXQiLAorLSAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIihzcykiLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19JTlRFUkZBQ0VfRU5HSU5F LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvY3VzSWQiKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsCistICAgICAgICAg ICAgICAgICAgICAgICAtMSwKKy0gICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCistICAgICAg ICAgICAgICAgICAgICAgICBfZ2V0X2hhc19mb2N1c19pZF9jYiwKKy0gICAgICAgICAgICAgICAg ICAgICAgIGdfaGFzaF90YWJsZV9yZWYgKGhhc2hfdGFibGUpKTsKKytzdGF0aWMgdm9pZAorK19n ZXRfYWN0aXZlX3N1cnJvdW5kaW5nX3RleHRfY2IgKEdPYmplY3QgICAgICAgICpvYmplY3QsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICAgKnJlcywKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgdXNlcl9kYXRh KQorK3sKKysgICAgR0hhc2hUYWJsZSAqaGFzaF90YWJsZSA9IChHSGFzaFRhYmxlKil1c2VyX2Rh dGE7CisrICAgIEJ1c0VuZ2luZVByb3h5ICplbmdpbmU7CisrICAgIEdFcnJvciAqZXJyb3IgPSBO VUxMOworKyAgICBHVmFyaWFudCAqcmVzdWx0OworKworKyAgICBnX3JldHVybl9pZl9mYWlsIChC VVNfSVNfRU5HSU5FX1BST1hZIChvYmplY3QpKTsKKysgICAgZW5naW5lID0gQlVTX0VOR0lORV9Q Uk9YWSAob2JqZWN0KTsKKysgICAgcmVzdWx0ID0gZ19kYnVzX3Byb3h5X2NhbGxfZmluaXNoIChH X0RCVVNfUFJPWFkgKG9iamVjdCksIHJlcywgJmVycm9yKTsKKysKKysgICAgaWYgKHJlc3VsdCAh PSBOVUxMKSB7CisrICAgICAgICBHVmFyaWFudCAqdmFyaWFudCA9IE5VTEw7CisrICAgICAgICBn cG9pbnRlciB2YWx1ZTsKKysgICAgICAgIGdfdmFyaWFudF9nZXQgKHJlc3VsdCwgIih2KSIsICZ2 YXJpYW50KTsKKysgICAgICAgIGVuZ2luZS0+aGFzX2FjdGl2ZV9zdXJyb3VuZGluZ190ZXh0ID0g Z192YXJpYW50X2dldF9ib29sZWFuICh2YXJpYW50KTsKKysgICAgICAgIGdfdmFyaWFudF91bnJl ZiAodmFyaWFudCk7CisrICAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKHJlc3VsdCk7CisrICAgICAg ICB2YWx1ZSA9ICBHSU5UX1RPX1BPSU5URVIgKAorKyAgICAgICAgICAgICAgICBlbmdpbmUtPmhh c19hY3RpdmVfc3Vycm91bmRpbmdfdGV4dAorKyAgICAgICAgICAgICAgICA/IEVOR0lORV9TVVJS T1VORElOR19URVhUX0NBVEVHT1JZX0hBU19BQ1RJVkUKKysgICAgICAgICAgICAgICAgOiBFTkdJ TkVfU1VSUk9VTkRJTkdfVEVYVF9DQVRFR09SWV9OT1RfQUNUSVZFKTsKKysgICAgICAgIGdfaGFz aF90YWJsZV9yZXBsYWNlICgKKysgICAgICAgICAgICBoYXNoX3RhYmxlLAorKyAgICAgICAgICAg IChncG9pbnRlcilpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChlbmdpbmUtPmRlc2MpLAorKyAg ICAgICAgICAgIHZhbHVlKTsKKysgICAgfQorKyAgICBnX2hhc2hfdGFibGVfdW5yZWYgKGhhc2hf dGFibGUpOworK30KKysKKytzdGF0aWMgdm9pZAorK2J1c19lbmdpbmVfcHJveHlfZ2V0X2FjdGl2 ZV9zdXJyb3VuZGluZ190ZXh0IChCdXNFbmdpbmVQcm94eSAqZW5naW5lKQorK3sKKysgICAgQnVz SUJ1c0ltcGwgKmlidXMgPSBCVVNfREVGQVVMVF9JQlVTOworKyAgICBnX2Fzc2VydCAoaWJ1cyk7 CisrICAgIGJ1c19lbmdpbmVfcHJveHlfZ2V0X2VuZ2luZV9wcm9wZXJ0eSAoCisrICAgICAgICAg ICAgZW5naW5lLAorKyAgICAgICAgICAgICJBY3RpdmVTdXJyb3VuZGluZ1RleHQiLAorKyAgICAg ICAgICAgIF9nZXRfYWN0aXZlX3N1cnJvdW5kaW5nX3RleHRfY2IsCisrICAgICAgICAgICAgYnVz X2lidXNfaW1wbF9nZXRfZW5naW5lX2FjdGl2ZV9zdXJyb3VuZGluZ190ZXh0X3RhYmxlIChpYnVz KSk7CisgfQorIAorIC8qIGEgbWFjcm8gdG8gZ2VuZXJhdGUgYSBmdW5jdGlvbiB0byBjYWxsIGEg bnVsbGFyeSBELUJ1cyBtZXRob2QuICovCitAQCAtMTM0OCw2ICsxNDIyLDggQEAgYnVzX2VuZ2lu ZV9wcm94eV9mb2N1c19pbiAoQnVzRW5naW5lUHJveHkgKmVuZ2luZSwKKyAgICAgaWYgKGVuZ2lu ZS0+aGFzX2ZvY3VzKQorICAgICAgICAgcmV0dXJuOworICAgICBlbmdpbmUtPmhhc19mb2N1cyA9 IFRSVUU7CisrICAgIGlmIChlbmdpbmUtPmhhc19hY3RpdmVfc3Vycm91bmRpbmdfdGV4dCkKKysg ICAgICAgIGdfc2lnbmFsX2VtaXQgKGVuZ2luZSwgZW5naW5lX3NpZ25hbHNbUkVRVUlSRV9TVVJS T1VORElOR19URVhUXSwgMCk7CisgICAgIGlmIChlbmdpbmUtPmhhc19mb2N1c19pZCkgeworICAg ICAgICAgZ19kYnVzX3Byb3h5X2NhbGwgKChHREJ1c1Byb3h5ICopZW5naW5lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJGb2N1c0luSWQiLAorQEAgLTE0MDQsNiArMTQ4MCw4IEBAIGJ1 c19lbmdpbmVfcHJveHlfZW5hYmxlIChCdXNFbmdpbmVQcm94eSAqZW5naW5lKQorICAgICBnX2Fz c2VydCAoQlVTX0lTX0VOR0lORV9QUk9YWSAoZW5naW5lKSk7CisgICAgIGlmICghZW5naW5lLT5l bmFibGVkKSB7CisgICAgICAgICBlbmdpbmUtPmVuYWJsZWQgPSBUUlVFOworKyAgICAgICAgaWYg KGVuZ2luZS0+aGFzX2FjdGl2ZV9zdXJyb3VuZGluZ190ZXh0KQorKyAgICAgICAgICAgIGdfc2ln bmFsX2VtaXQgKGVuZ2luZSwgZW5naW5lX3NpZ25hbHNbUkVRVUlSRV9TVVJST1VORElOR19URVhU XSwgMCk7CisgICAgICAgICBnX2RidXNfcHJveHlfY2FsbCAoKEdEQnVzUHJveHkgKillbmdpbmUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuYWJsZSIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwKK2RpZmYgLS1naXQgYS9idXMvaWJ1c2ltcGwuYyBiL2J1cy9pYnVz aW1wbC5jCitpbmRleCA4YTQ0MzU0NS4uNmRmODZjM2YgMTAwNjQ0CistLS0gYS9idXMvaWJ1c2lt cGwuYworKysrIGIvYnVzL2lidXNpbXBsLmMKK0BAIC03Myw2ICs3Myw3IEBAIHN0cnVjdCBfQnVz SUJ1c0ltcGwgeworICAgICBHSGFzaFRhYmxlICplbmdpbmVfdGFibGU7CisgCisgICAgIEdIYXNo VGFibGUgKmVuZ2luZV9mb2N1c19pZF90YWJsZTsKKysgICAgR0hhc2hUYWJsZSAqZW5naW5lX2Fj dGl2ZV9zdXJyb3VuZGluZ190ZXh0X3RhYmxlOworIAorICAgICBCdXNJbnB1dENvbnRleHQgKmZv Y3VzZWRfY29udGV4dDsKKyAgICAgQnVzUGFuZWxQcm94eSAgICpwYW5lbDsKK0BAIC01OTksNiAr NjAwLDggQEAgYnVzX2lidXNfaW1wbF9pbml0IChCdXNJQnVzSW1wbCAqaWJ1cykKKyAgICAgaWJ1 cy0+Z2xvYmFsX2VuZ2luZV9uYW1lID0gTlVMTDsKKyAgICAgaWJ1cy0+Z2xvYmFsX3ByZXZpb3Vz X2VuZ2luZV9uYW1lID0gTlVMTDsKKyAgICAgaWJ1cy0+ZW5naW5lX2ZvY3VzX2lkX3RhYmxlID0g Z19oYXNoX3RhYmxlX25ldyAoZ19zdHJfaGFzaCwgZ19zdHJfZXF1YWwpOworKyAgICBpYnVzLT5l bmdpbmVfYWN0aXZlX3N1cnJvdW5kaW5nX3RleHRfdGFibGUgPSBnX2hhc2hfdGFibGVfbmV3IChn X3N0cl9oYXNoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnX3N0cl9lcXVhbCk7CisgCisgICAgIC8qIGZvY3VzIHRo ZSBmYWtlX2NvbnRleHQsIGlmIHVzZV9nbG9iYWxfZW5naW5lIGlzIGVuYWJsZWQuICovCisgICAg IGlmIChpYnVzLT51c2VfZ2xvYmFsX2VuZ2luZSkKK0BAIC02ODEsNiArNjg0LDExIEBAIGJ1c19p YnVzX2ltcGxfZGVzdHJveSAoQnVzSUJ1c0ltcGwgKmlidXMpCisgCisgICAgIGJ1c19pYnVzX2lt cGxfcmVnaXN0cnlfZGVzdHJveSAoaWJ1cyk7CisgCisrICAgIGlmIChpYnVzLT5lbmdpbmVfYWN0 aXZlX3N1cnJvdW5kaW5nX3RleHRfdGFibGUgIT0gTlVMTCkgeworKyAgICAgICAgZ19oYXNoX3Rh YmxlX2Rlc3Ryb3kgKGlidXMtPmVuZ2luZV9hY3RpdmVfc3Vycm91bmRpbmdfdGV4dF90YWJsZSk7 CisrICAgICAgICBpYnVzLT5lbmdpbmVfYWN0aXZlX3N1cnJvdW5kaW5nX3RleHRfdGFibGUgPSBO VUxMOworKyAgICB9CisrCisgICAgIElCVVNfT0JKRUNUX0NMQVNTIChidXNfaWJ1c19pbXBsX3Bh cmVudF9jbGFzcyktPmRlc3Ryb3kgKElCVVNfT0JKRUNUIChpYnVzKSk7CisgfQorIAorQEAgLTIz OTcsMyArMjQwNSwxMSBAQCBidXNfaWJ1c19pbXBsX2dldF9lbmdpbmVfZm9jdXNfaWRfdGFibGUg KEJ1c0lCdXNJbXBsICppYnVzKQorICAgICByZXR1cm4gaWJ1cy0+ZW5naW5lX2ZvY3VzX2lkX3Rh YmxlOworIH0KKyAKKytHSGFzaFRhYmxlICoKKytidXNfaWJ1c19pbXBsX2dldF9lbmdpbmVfYWN0 aXZlX3N1cnJvdW5kaW5nX3RleHRfdGFibGUgKEJ1c0lCdXNJbXBsICppYnVzKQorK3sKKysKKysg ICAgZ19hc3NlcnQgKEJVU19JU19JQlVTX0lNUEwgKGlidXMpKTsKKysKKysgICAgcmV0dXJuIGli dXMtPmVuZ2luZV9hY3RpdmVfc3Vycm91bmRpbmdfdGV4dF90YWJsZTsKKyt9CitkaWZmIC0tZ2l0 IGEvYnVzL2lidXNpbXBsLmggYi9idXMvaWJ1c2ltcGwuaAoraW5kZXggY2JlNjg1NmQuLjkzYTg1 NGRlIDEwMDY0NAorLS0tIGEvYnVzL2lidXNpbXBsLmgKKysrKyBiL2J1cy9pYnVzaW1wbC5oCitA QCAtNjYsNiArNjYsMTMgQEAgdHlwZWRlZiBlbnVtCisgICAgIEVOR0lORV9GT0NVU19DQVRFR09S WV9IQVNfSUQKKyB9IEVuZ2luZUZvY3VzQ2F0ZWdvcnk7CisgCisrdHlwZWRlZiBlbnVtCisrewor KyAgICBFTkdJTkVfU1VSUk9VTkRJTkdfVEVYVF9DQVRFR09SWV9OT05FID0gMCwKKysgICAgRU5H SU5FX1NVUlJPVU5ESU5HX1RFWFRfQ0FURUdPUllfTk9UX0FDVElWRSwKKysgICAgRU5HSU5FX1NV UlJPVU5ESU5HX1RFWFRfQ0FURUdPUllfSEFTX0FDVElWRQorK30gRW5naW5lU3Vycm91bmRpbmdU ZXh0Q2F0ZWdvcnk7CisrCisgR1R5cGUgICAgICAgICAgICBidXNfaWJ1c19pbXBsX2dldF90eXBl ICAgICAgICAgICAgICh2b2lkKTsKKyAKKyAvKioKK0BAIC05MSw1ICs5OCw3IEBAIEJ1c0lucHV0 Q29udGV4dCAqYnVzX2lidXNfaW1wbF9nZXRfZm9jdXNlZF9pbnB1dF9jb250ZXh0CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCdXNJQnVzSW1w bCAgICAgICAgKmlidXMpOworIEdIYXNoVGFibGUgICAgICAqYnVzX2lidXNfaW1wbF9nZXRfZW5n aW5lX2ZvY3VzX2lkX3RhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChCdXNJQnVzSW1wbCAgICAgICAgKmlidXMpOworK0dIYXNoVGFibGUg ICAgICAqYnVzX2lidXNfaW1wbF9nZXRfZW5naW5lX2FjdGl2ZV9zdXJyb3VuZGluZ190ZXh0X3Rh YmxlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChCdXNJQnVzSW1wbCAgICAgICAgKmlidXMpOworIEdfRU5EX0RFQ0xTCisgI2VuZGlmCitkaWZm IC0tZ2l0IGEvc3JjL2lidXNlbmdpbmUuYyBiL3NyYy9pYnVzZW5naW5lLmMKK2luZGV4IDdjNzk3 MTAzLi5jYzEyYWM1YSAxMDA2NDQKKy0tLSBhL3NyYy9pYnVzZW5naW5lLmMKKysrKyBiL3NyYy9p YnVzZW5naW5lLmMKK0BAIC02NCw2ICs2NCw3IEBAIGVudW0geworICAgICBQUk9QXzAsCisgICAg IFBST1BfRU5HSU5FX05BTUUsCisgICAgIFBST1BfSEFTX0ZPQ1VTX0lELAorKyAgICBQUk9QX0FD VElWRV9TVVJST1VORElOR19URVhULAorIH07CisgCisgCitAQCAtODYsNiArODcsNyBAQCBzdHJ1 Y3QgX0lCdXNFbmdpbmVQcml2YXRlIHsKKyAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICBlbmFi bGVfZXh0ZW5zaW9uOworICAgICBnY2hhciAgICAgICAgICAgICAgICAgKmN1cnJlbnRfZXh0ZW5z aW9uX25hbWU7CisgICAgIGdib29sZWFuICAgICAgICAgICAgICAgaGFzX2ZvY3VzX2lkOworKyAg ICBnYm9vbGVhbiAgICAgICAgICAgICAgIGhhc19hY3RpdmVfc3Vycm91bmRpbmdfdGV4dDsKKyB9 OworIAorIAorQEAgLTMwMyw2ICszMDUsNyBAQCBzdGF0aWMgY29uc3QgZ2NoYXIgaW50cm9zcGVj dGlvbl94bWxbXSA9CisgICAgIC8qIEZJWE1FIHByb3BlcnRpZXMgKi8KKyAgICAgIiAgICA8cHJv cGVydHkgbmFtZT0nQ29udGVudFR5cGUnIHR5cGU9Jyh1dSknIGFjY2Vzcz0nd3JpdGUnIC8+Igor ICAgICAiICAgIDxwcm9wZXJ0eSBuYW1lPSdGb2N1c0lkJyB0eXBlPScoYiknIGFjY2Vzcz0ncmVh ZCcgLz4iCisrICAgICIgICAgPHByb3BlcnR5IG5hbWU9J0FjdGl2ZVN1cnJvdW5kaW5nVGV4dCcg dHlwZT0nKGIpJyBhY2Nlc3M9J3JlYWQnIC8+IgorICAgICAiICA8L2ludGVyZmFjZT4iCisgICAg ICI8L25vZGU+IjsKKyAKK0BAIC0zOTEsNiArMzk0LDIzIEBAIGlidXNfZW5naW5lX2NsYXNzX2lu aXQgKElCdXNFbmdpbmVDbGFzcyAqY2xhc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgR19Q QVJBTV9SRUFEV1JJVEUgfAorICAgICAgICAgICAgICAgICAgICAgICAgIEdfUEFSQU1fQ09OU1RS VUNUX09OTFkpKTsKKyAKKysgICAgLyoqCisrICAgICAqIElCdXNFbmdpbmU6YWN0aXZlLXN1cnJv dW5kaW5nLXRleHQ6CisrICAgICAqCisrICAgICAqIFdoZW4gdGhpcyBwcm9wZXJ0eSBpcyBzZXQg dG8gJVRSVUUsICJSZXF1aXJlU3Vycm91bmRpbmdUZXh0IiBELUJ1cworKyAgICAgKiBzaWduYWwg d2lsbCBiZSBjYWxsZWQgYnkgaWJ1cy1kYWVtb24gb24gZXZlcnkgZm9jdXMtaW4vb3V0IGV2ZW50 LCB3aXRoCisrICAgICAqIG5vIG5lZWQgZm9yIHRoZSBlbmdpbmUgdG8gY2FsbCBpYnVzX2VuZ2lu ZV9nZXRfc3Vycm91bmRpbmdfdGV4dCgpLgorKyAgICAgKiBUaGlzIHByb3BlcnR5IGNhbiBvbmx5 IGJlIHNldCBhdCBjb25zdHJ1Y3QgdGltZS4KKysgICAgICovCisrICAgIGdfb2JqZWN0X2NsYXNz X2luc3RhbGxfcHJvcGVydHkgKGdvYmplY3RfY2xhc3MsCisrICAgICAgICAgICAgICAgICAgICBQ Uk9QX0FDVElWRV9TVVJST1VORElOR19URVhULAorKyAgICAgICAgICAgICAgICAgICAgZ19wYXJh bV9zcGVjX2Jvb2xlYW4gKCJhY3RpdmUtc3Vycm91bmRpbmctdGV4dCIsCisrICAgICAgICAgICAg ICAgICAgICAgICAgImVuYWJsZSBzdXJyb3VuZGluZyB0ZXh0IHVwZGF0ZSBieSBmb2N1cyBldmVu dCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgIkVuYWJsZSBzdXJyb3VuZGluZyB0ZXh0IHVw ZGF0ZSBieSBmb2N1cyBldmVudCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCisr ICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9SRUFEV1JJVEUgfAorKyAgICAgICAgICAg ICAgICAgICAgICAgIEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKTsKKysKKyAgICAgLyogaW5zdGFs bCBzaWduYWxzICovCisgICAgIC8qKgorICAgICAgKiBJQnVzRW5naW5lOjpwcm9jZXNzLWtleS1l dmVudDoKK0BAIC05ODgsNiArMTAwOCw5IEBAIGlidXNfZW5naW5lX3NldF9wcm9wZXJ0eSAoSUJ1 c0VuZ2luZSAgICplbmdpbmUsCisgICAgIGNhc2UgUFJPUF9IQVNfRk9DVVNfSUQ6CisgICAgICAg ICBlbmdpbmUtPnByaXYtPmhhc19mb2N1c19pZCA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4gKHZhbHVl KTsKKyAgICAgICAgIGJyZWFrOworKyAgICBjYXNlIFBST1BfQUNUSVZFX1NVUlJPVU5ESU5HX1RF WFQ6CisrICAgICAgICBlbmdpbmUtPnByaXYtPmhhc19hY3RpdmVfc3Vycm91bmRpbmdfdGV4dCA9 IGdfdmFsdWVfZ2V0X2Jvb2xlYW4gKHZhbHVlKTsKKysgICAgICAgIGJyZWFrOworICAgICBkZWZh dWx0OgorICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChlbmdpbmUs IHByb3BfaWQsIHBzcGVjKTsKKyAgICAgfQorQEAgLTEwMDYsNiArMTAyOSw5IEBAIGlidXNfZW5n aW5lX2dldF9wcm9wZXJ0eSAoSUJ1c0VuZ2luZSAqZW5naW5lLAorICAgICBjYXNlIFBST1BfSEFT X0ZPQ1VTX0lEOgorICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbiAodmFsdWUsIGVuZ2luZS0+ cHJpdi0+aGFzX2ZvY3VzX2lkKTsKKyAgICAgICAgIGJyZWFrOworKyAgICBjYXNlIFBST1BfQUNU SVZFX1NVUlJPVU5ESU5HX1RFWFQ6CisrICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuICh2YWx1 ZSwgZW5naW5lLT5wcml2LT5oYXNfYWN0aXZlX3N1cnJvdW5kaW5nX3RleHQpOworKyAgICAgICAg YnJlYWs7CisgICAgIGRlZmF1bHQ6CisgICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJP UEVSVFlfSUQgKGVuZ2luZSwgcHJvcF9pZCwgcHNwZWMpOworICAgICB9CitAQCAtMTQ0NSw2ICsx NDcxLDI0IEBAIGlidXNfZW5naW5lX3NlcnZpY2VfbWV0aG9kX2NhbGwgKElCdXNTZXJ2aWNlICAg ICAgICAgICAqc2VydmljZSwKKyAgICAgZ19yZXR1cm5faWZfcmVhY2hlZCAoKTsKKyB9CisgCisr LyoqCisrICogX2lidXNfZW5naW5lX2dldF9hY3RpdmVfc3Vycm91bmRpbmdfdGV4dDoKKysgKgor KyAqIEltcGxlbWVudCB0aGUgIkFjdGl2ZVN1cnJvdW5kaW5nVGV4dCIgbWV0aG9kIGNhbGwgb2Yg dGhlCisrICogb3JnLmZyZWVkZXNrdG9wLklCdXMgaW50ZXJmYWNlLgorKyAqLworK3N0YXRpYyBH VmFyaWFudCAqCisrX2lidXNfZW5naW5lX2dldF9hY3RpdmVfc3Vycm91bmRpbmdfdGV4dCAoSUJ1 c0VuZ2luZSAgICAgICplbmdpbmUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR0RCdXNDb25uZWN0aW9uICpjb25uZWN0aW9uLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICoqZXJyb3IpCisreworKyAg ICBpZiAoZXJyb3IpIHsKKysgICAgICAgICplcnJvciA9IE5VTEw7CisrICAgIH0KKysKKysgICAg cmV0dXJuIGdfdmFyaWFudF9uZXdfYm9vbGVhbiAoZW5naW5lLT5wcml2LT5oYXNfYWN0aXZlX3N1 cnJvdW5kaW5nX3RleHQpOworK30KKysKKyAvKioKKyAgKiBfaWJ1c19lbmdpbmVfaGFzX2ZvY3Vz X2lkOgorICAqCitAQCAtMTQ3OCw3ICsxNTIyLDggQEAgaWJ1c19lbmdpbmVfc2VydmljZV9nZXRf cHJvcGVydHkgKElCdXNTZXJ2aWNlICAgICAgICAqc2VydmljZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR0RCdXNDb25uZWN0aW9uICosCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAqKik7CisgICAgIH0gbWV0aG9kcyBb XSA9ICB7CistICAgICAgICB7ICJGb2N1c0lkIiwgICAgICAgICAgICAgICAgICAgIF9pYnVzX2Vu Z2luZV9oYXNfZm9jdXNfaWQgfSwKKysgICAgICAgIHsgIkZvY3VzSWQiLCAgICAgICAgICAgICAg ICBfaWJ1c19lbmdpbmVfaGFzX2ZvY3VzX2lkIH0sCisrICAgICAgICB7ICJBY3RpdmVTdXJyb3Vu ZGluZ1RleHQiLCAgX2lidXNfZW5naW5lX2dldF9hY3RpdmVfc3Vycm91bmRpbmdfdGV4dCB9LAor ICAgICB9OworIAorICAgICBpZiAoZ19zdHJjbXAwIChpbnRlcmZhY2VfbmFtZSwgSUJVU19JTlRF UkZBQ0VfRU5HSU5FKSAhPSAwKSB7CistLSAKKzIuMzguMQorCitGcm9tIDJhMjM1YzhjMzNmMWRl NTZkZjQ4NzNmZTM2NjJkNWJlYjEzNTU3MTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9t OiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDExIE9j dCAyMDIyIDIwOjEyOjM1ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGNsaWVudC9ndGsyOiBSZWZh Y3RvciBzdXJyb3VuZGluZyB0ZXh0IHdhcm5pbmcKK0RhdGU6IFdlZCwgMjUgSmFuIDIwMjMgMTU6 MTA6NTAgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSCAzLzNdIFJlZmFjdG9yIHN1cnJvdW5kaW5nIHRl eHQgd2FybmluZyAmIGZyZWUgZm9jdXMtaWQgdGFibGVzCiAKLUl0IHdvdWxkIGJlIGJldHRlciB0 byBjaGVjayB0aGUgZnVuY3Rpb24gcmV0dXJuIHZhbHVlIGF0IHRoZQotZmlyc3QgY2FsbGluZyB0 aGFuIHRoZSBzdGF0aWMgdmFyaWFibGUuCistIEZyZWUgZW5naW5lX2ZvY3VzX2lkX3RhYmxlIGlu IGJ1c19pYnVzX2ltcGxfZGVzdHJveQorLSBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8gY2hlY2sgdGhl IGZ1bmN0aW9uIHJldHVybiB2YWx1ZSBhdCB0aGUKKyAgZmlyc3QgY2FsbGluZyB0aGFuIHRoZSBz dGF0aWMgdmFyaWFibGUgZm9yIHRoZSBzdXJyb3VuZGluZyB0ZXh0CisgIHdhcm5pbmdzCistIEFk ZCBBUEkgY29tbWVudHMKIAogRml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvY29t bWl0LzM5YjY5MDcKIEZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2NvbW1pdC83 YmJjY2U2CitGaXhlczogaHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9jb21taXQvMTljYTEw NgorRml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvY29tbWl0LzkyNzcxZDAKIC0t LQotIGNsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYyB8IDcyICsrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMzQg ZGVsZXRpb25zKC0pCisgYnVzL2lidXNpbXBsLmMgICAgICAgICAgICAgIHwgMTU1ICsrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQorIGNsaWVudC9ndGsyL2lidXNpbWNvbnRleHQu YyB8ICA3NiArKysrKysrKystLS0tLS0tLS0KKyBzcmMvaWJ1c2NvbXBvc2V0YWJsZS5oICAgICAg fCAgMTMgKysrCisgc3JjL2lidXNlbmdpbmUuYyAgICAgICAgICAgIHwgIDk5ICsrKysrKysrKysr KystLS0tLS0tLS0tCisgNCBmaWxlcyBjaGFuZ2VkLCAxOTYgaW5zZXJ0aW9ucygrKSwgMTQ3IGRl bGV0aW9ucygtKQogCitkaWZmIC0tZ2l0IGEvYnVzL2lidXNpbXBsLmMgYi9idXMvaWJ1c2ltcGwu YworaW5kZXggNmRmODZjM2YuLmMyYWU4OGRmIDEwMDY0NAorLS0tIGEvYnVzL2lidXNpbXBsLmMK KysrKyBiL2J1cy9pYnVzaW1wbC5jCitAQCAtMiw3ICsyLDcgQEAKKyAvKiB2aW06c2V0IGV0IHN0 cz00OiAqLworIC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCisgICogQ29weXJpZ2h0IChDKSAyMDA4 LTIwMTMgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CistICogQ29weXJpZ2h0 IChDKSAyMDExLTIwMjEgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+ CisrICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjMgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3 YXJhMUBnbWFpbC5jb20+CisgICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMjEgUmVkIEhhdCwgSW5j LgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgorQEAgLTI4Nyw4ICsyODcsMTAgQEAgYnVzX2lidXNfaW1wbF9jbGFz c19pbml0IChCdXNJQnVzSW1wbENsYXNzICpjbGFzcykKKyAvKioKKyAgKiBfcGFuZWxfZGVzdHJv eV9jYjoKKyAgKgorLSAqIEEgY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIHdoZW4g KDEpIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBwYW5lbCBwcm9jZXNzIGlzIHRlcm1pbmF0ZWQsCist ICogb3IgKDIpIGlidXNfcHJveHlfZGVzdHJveSAoaWJ1cy0+cGFuZWwpOyBpcyBjYWxsZWQuIFNl ZSBzcmMvaWJ1c3Byb3h5LmMgZm9yIGRldGFpbHMuCisrICogQSBjYWxsYmFjayBmdW5jdGlvbiB3 aGljaCBpcyBjYWxsZWQgd2hlbiAoMSkgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHBhbmVsCisrICog cHJvY2VzcyBpcyB0ZXJtaW5hdGVkLAorKyAqIG9yICgyKSBpYnVzX3Byb3h5X2Rlc3Ryb3kgKGli dXMtPnBhbmVsKTsgaXMgY2FsbGVkLiBTZWUgc3JjL2lidXNwcm94eS5jIGZvcgorKyAqIGRldGFp bHMuCisgICovCisgc3RhdGljIHZvaWQKKyBfcGFuZWxfZGVzdHJveV9jYiAoQnVzUGFuZWxQcm94 eSAqcGFuZWwsCitAQCAtMzYwLDkgKzM2Miw4IEBAIGJ1c19pYnVzX2ltcGxfc2V0X3BhbmVsX2V4 dGVuc2lvbl9rZXlzIChCdXNJQnVzSW1wbCAqaWJ1cywKKyAgICAgaWYgKGlidXMtPmV4dGVuc2lv bl9yZWdpc3Rlcl9rZXlzKQorICAgICAgICAgZ192YXJpYW50X3VucmVmIChpYnVzLT5leHRlbnNp b25fcmVnaXN0ZXJfa2V5cyk7CisgICAgIGlidXMtPmV4dGVuc2lvbl9yZWdpc3Rlcl9rZXlzID0g Z192YXJpYW50X3JlZl9zaW5rIChwYXJhbWV0ZXJzKTsKKy0gICAgaWYgKGlidXMtPmZvY3VzZWRf Y29udGV4dCAhPSBOVUxMKSB7CistICAgICAgICAgICAgZW5naW5lID0gYnVzX2lucHV0X2NvbnRl eHRfZ2V0X2VuZ2luZSAoaWJ1cy0+Zm9jdXNlZF9jb250ZXh0KTsKKy0gICAgfQorKyAgICBpZiAo aWJ1cy0+Zm9jdXNlZF9jb250ZXh0KQorKyAgICAgICAgZW5naW5lID0gYnVzX2lucHV0X2NvbnRl eHRfZ2V0X2VuZ2luZSAoaWJ1cy0+Zm9jdXNlZF9jb250ZXh0KTsKKyAgICAgaWYgKCFlbmdpbmUp CisgICAgICAgICByZXR1cm47CisgICAgIGJ1c19lbmdpbmVfcHJveHlfcGFuZWxfZXh0ZW5zaW9u X3JlZ2lzdGVyX2tleXMgKGVuZ2luZSwgcGFyYW1ldGVycyk7CitAQCAtNDI5LDggKzQzMCw3IEBA IF9wYW5lbF91cGRhdGVfYXV4aWxpYXJ5X3RleHRfcmVjZWl2ZWRfY2IgKEJ1c1BhbmVsUHJveHkg KnBhbmVsLAorIAorICAgICBpZiAoIWlidXMtPnBhbmVsKQorICAgICAgICAgcmV0dXJuOworLSAg ICBidXNfcGFuZWxfcHJveHlfdXBkYXRlX2F1eGlsaWFyeV90ZXh0ICgKKy0gICAgICAgICAgICBp YnVzLT5wYW5lbCwgdGV4dCwgdmlzaWJsZSk7CisrICAgIGJ1c19wYW5lbF9wcm94eV91cGRhdGVf YXV4aWxpYXJ5X3RleHQgKGlidXMtPnBhbmVsLCB0ZXh0LCB2aXNpYmxlKTsKKyB9CisgCisgc3Rh dGljIHZvaWQKK0BAIC00NDMsOCArNDQzLDEwIEBAIF9yZWdpc3RyeV9jaGFuZ2VkX2NiIChJQnVz UmVnaXN0cnkgKnJlZ2lzdHJ5LAorIC8qCisgICogX2RidXNfbmFtZV9vd25lcl9jaGFuZ2VkX2Ni OgorICAqCistICogQSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgbmFt ZS1vd25lci1jaGFuZ2VkIHNpZ25hbCBpcyBzZW50IHRvIHRoZSBkYnVzIG9iamVjdC4KKy0gKiBU aGlzIHVzdWFsbHkgbWVhbnMgYSBjbGllbnQgKGUuZy4gYSBwYW5lbC9jb25maWcvZW5naW5lIHBy b2Nlc3Mgb3IgYW4gYXBwbGljYXRpb24pIGlzIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQgdG8vZnJv bSB0aGUgYnVzLgorKyAqIEEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhl IG5hbWUtb3duZXItY2hhbmdlZCBzaWduYWwgaXMgc2VudAorKyAqIHRvIHRoZSBkYnVzIG9iamVj dC4KKysgKiBUaGlzIHVzdWFsbHkgbWVhbnMgYSBjbGllbnQgKGUuZy4gYSBwYW5lbC9jb25maWcv ZW5naW5lIHByb2Nlc3Mgb3IgYW4KKysgKiBhcHBsaWNhdGlvbikgaXMgY29ubmVjdGVkL2Rpc2Nv bm5lY3RlZCB0by9mcm9tIHRoZSBidXMuCisgICovCisgc3RhdGljIHZvaWQKKyBfZGJ1c19uYW1l X293bmVyX2NoYW5nZWRfY2IgKEJ1c0RCdXNJbXBsICAgKmRidXMsCitAQCAtNTYxLDcgKzU2Myw4 IEBAIF9kYnVzX25hbWVfb3duZXJfY2hhbmdlZF9jYiAoQnVzREJ1c0ltcGwgICAqZGJ1cywKKyAv KioKKyAgKiBidXNfaWJ1c19pbXBsX2luaXQ6CisgICoKKy0gKiBUaGUgY29uc3RydWN0b3Igb2Yg QnVzSUJ1c0ltcGwuIEluaXRpYWxpemUgYWxsIG1lbWJlciB2YXJpYWJsZXMgb2YgYSBCdXNJQnVz SW1wbCBvYmplY3QuCisrICogVGhlIGNvbnN0cnVjdG9yIG9mICNCdXNJQnVzSW1wbC4gSW5pdGlh bGl6ZSBhbGwgbWVtYmVyIHZhcmlhYmxlcyBvZiBhCisrICogI0J1c0lCdXNJbXBsIG9iamVjdC4K KyAgKi8KKyBzdGF0aWMgdm9pZAorIGJ1c19pYnVzX2ltcGxfaW5pdCAoQnVzSUJ1c0ltcGwgKmli dXMpCitAQCAtNjQ1LDcgKzY0OCw4IEBAIGJ1c19pYnVzX2ltcGxfZGVzdHJveSAoQnVzSUJ1c0lt cGwgKmlidXMpCisgICAgICAgICAgICAgICAgIGlmIChmbGFnID09IEZBTFNFKSB7CisgICAgICAg ICAgICAgICAgICAgICBncG9pbnRlciBvbGQ7CisgICAgICAgICAgICAgICAgICAgICBvbGQgPSBz aWduYWwgKFNJR1RFUk0sIFNJR19JR04pOworLSAgICAgICAgICAgICAgICAgICAgLyogc2VuZCBU RVJNIHNpZ25hbCB0byB0aGUgd2hvbGUgcHJvY2VzcyBncm91cCAoaS5lLiBlbmdpbmVzLCBwYW5l bCwgYW5kIGNvbmZpZyBkYWVtb24uKSAqLworKyAgICAgICAgICAgICAgICAgICAgLyogc2VuZCBU RVJNIHNpZ25hbCB0byB0aGUgd2hvbGUgcHJvY2VzcyBncm91cCAoaS5lLgorKyAgICAgICAgICAg ICAgICAgICAgICogZW5naW5lcywgcGFuZWwsIGFuZCBjb25maWcgZGFlbW9uLikgKi8KKyAgICAg ICAgICAgICAgICAgICAgIGtpbGwgKC1nZXRwaWQgKCksIFNJR1RFUk0pOworICAgICAgICAgICAg ICAgICAgICAgc2lnbmFsIChTSUdURVJNLCBvbGQpOworICAgICAgICAgICAgICAgICAgICAgZmxh ZyA9IFRSVUU7CitAQCAtNjYxLDM1ICs2NjUsMjkgQEAgYnVzX2lidXNfaW1wbF9kZXN0cm95IChC dXNJQnVzSW1wbCAqaWJ1cykKKyAgICAgZ19saXN0X2ZyZWVfZnVsbCAoaWJ1cy0+cmVnaXN0ZXJf ZW5naW5lX2xpc3QsIGdfb2JqZWN0X3VucmVmKTsKKyAgICAgaWJ1cy0+cmVnaXN0ZXJfZW5naW5l X2xpc3QgPSBOVUxMOworIAorLSAgICBpZiAoaWJ1cy0+ZmFjdG9yeV9kaWN0ICE9IE5VTEwpIHsK Ky0gICAgICAgIGdfaGFzaF90YWJsZV9kZXN0cm95IChpYnVzLT5mYWN0b3J5X2RpY3QpOworLSAg ICAgICAgaWJ1cy0+ZmFjdG9yeV9kaWN0ID0gTlVMTDsKKy0gICAgfQorKyAgICBpZiAoaWJ1cy0+ ZmFjdG9yeV9kaWN0KQorKyAgICAgICAgZ19jbGVhcl9wb2ludGVyICgmaWJ1cy0+ZmFjdG9yeV9k aWN0LCBnX2hhc2hfdGFibGVfZGVzdHJveSk7CisgCistICAgIGlmIChpYnVzLT5rZXltYXAgIT0g TlVMTCkgeworLSAgICAgICAgZ19vYmplY3RfdW5yZWYgKGlidXMtPmtleW1hcCk7CistICAgICAg ICBpYnVzLT5rZXltYXAgPSBOVUxMOworLSAgICB9CisrICAgIGlmIChpYnVzLT5rZXltYXApCisr ICAgICAgICBnX2NsZWFyX3BvaW50ZXIgKCZpYnVzLT5rZXltYXAsIGdfb2JqZWN0X3VucmVmKTsK KyAKKy0gICAgZ19mcmVlIChpYnVzLT5nbG9iYWxfZW5naW5lX25hbWUpOworLSAgICBpYnVzLT5n bG9iYWxfZW5naW5lX25hbWUgPSBOVUxMOworKyAgICBnX2NsZWFyX3BvaW50ZXIgKCZpYnVzLT5n bG9iYWxfZW5naW5lX25hbWUsIGdfZnJlZSk7CisrICAgIGdfY2xlYXJfcG9pbnRlciAoJmlidXMt Pmdsb2JhbF9wcmV2aW91c19lbmdpbmVfbmFtZSwgZ19mcmVlKTsKKyAKKy0gICAgZ19mcmVlIChp YnVzLT5nbG9iYWxfcHJldmlvdXNfZW5naW5lX25hbWUpOworLSAgICBpYnVzLT5nbG9iYWxfcHJl dmlvdXNfZW5naW5lX25hbWUgPSBOVUxMOworLQorLSAgICBpZiAoaWJ1cy0+ZmFrZV9jb250ZXh0 KSB7CistICAgICAgICBnX29iamVjdF91bnJlZiAoaWJ1cy0+ZmFrZV9jb250ZXh0KTsKKy0gICAg ICAgIGlidXMtPmZha2VfY29udGV4dCA9IE5VTEw7CistICAgIH0KKysgICAgaWYgKGlidXMtPmZh a2VfY29udGV4dCkKKysgICAgICAgIGdfY2xlYXJfcG9pbnRlciAoJmlidXMtPmZha2VfY29udGV4 dCwgZ19vYmplY3RfdW5yZWYpOworIAorICAgICBidXNfaWJ1c19pbXBsX3JlZ2lzdHJ5X2Rlc3Ry b3kgKGlidXMpOworIAorKyAgICBpZiAoaWJ1cy0+ZW5naW5lX2ZvY3VzX2lkX3RhYmxlKQorKyAg ICAgICAgZ19jbGVhcl9wb2ludGVyICgmaWJ1cy0+ZW5naW5lX2ZvY3VzX2lkX3RhYmxlLCBnX2hh c2hfdGFibGVfZGVzdHJveSk7CisgICAgIGlmIChpYnVzLT5lbmdpbmVfYWN0aXZlX3N1cnJvdW5k aW5nX3RleHRfdGFibGUgIT0gTlVMTCkgeworLSAgICAgICAgZ19oYXNoX3RhYmxlX2Rlc3Ryb3kg KGlidXMtPmVuZ2luZV9hY3RpdmVfc3Vycm91bmRpbmdfdGV4dF90YWJsZSk7CistICAgICAgICBp YnVzLT5lbmdpbmVfYWN0aXZlX3N1cnJvdW5kaW5nX3RleHRfdGFibGUgPSBOVUxMOworKyAgICAg ICAgZ19jbGVhcl9wb2ludGVyICgmaWJ1cy0+ZW5naW5lX2FjdGl2ZV9zdXJyb3VuZGluZ190ZXh0 X3RhYmxlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBnX2hhc2hfdGFibGVfZGVzdHJveSk7 CisgICAgIH0KKyAKKy0gICAgSUJVU19PQkpFQ1RfQ0xBU1MgKGJ1c19pYnVzX2ltcGxfcGFyZW50 X2NsYXNzKS0+ZGVzdHJveSAoSUJVU19PQkpFQ1QgKGlidXMpKTsKKysgICAgSUJVU19PQkpFQ1Rf Q0xBU1MgKGJ1c19pYnVzX2ltcGxfcGFyZW50X2NsYXNzKS0+ZGVzdHJveSAoCisrICAgICAgICAg ICAgSUJVU19PQkpFQ1QgKGlidXMpKTsKKyB9CisgCisgLyoqCitAQCAtNzQ5LDcgKzc0Nyw4IEBA IF9maW5kX2VuZ2luZV9kZXNjX2J5X25hbWUgKEJ1c0lCdXNJbXBsICppYnVzLAorIC8qKgorICAq IF9jb250ZXh0X3JlcXVlc3RfZW5naW5lX2NiOgorICAqCistICogQSBjYWxsYmFjayBmdW5jdGlv biB0byBiZSBjYWxsZWQgd2hlbiB0aGUgInJlcXVlc3QtZW5naW5lIiBzaWduYWwgaXMgc2VudCB0 byB0aGUgY29udGV4dC4KKysgKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVu IHRoZSAicmVxdWVzdC1lbmdpbmUiIHNpZ25hbCBpcyBzZW50IHRvCisrICogdGhlIGNvbnRleHQu CisgICovCisgc3RhdGljIElCdXNFbmdpbmVEZXNjICoKKyBfY29udGV4dF9yZXF1ZXN0X2VuZ2lu ZV9jYiAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAorQEAgLTc4OCwxMiArNzg3LDEzIEBAIGJ1 c19pYnVzX2ltcGxfc2V0X2NvbnRleHRfZW5naW5lX2Zyb21fZGVzYyAoQnVzSUJ1c0ltcGwgICAg ICppYnVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVz SW5wdXRDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSUJ1c0VuZ2luZURlc2MgICpkZXNjKQorIHsKKy0gICAgYnVzX2lucHV0X2Nv bnRleHRfc2V0X2VuZ2luZV9ieV9kZXNjIChjb250ZXh0LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRlc2MsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ19nZGJ1c190aW1lb3V0LCAvKiB0aW1lb3V0IGluIG1zZWMuICovCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgLyogd2UgZG8g bm90IGNhbmNlbCB0aGUgY2FsbC4gKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLCAvKiB1c2UgdGhlIGRlZmF1bHQgY2FsbGJhY2sgZnVuY3Rpb24uICov CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisrICAg IGJ1c19pbnB1dF9jb250ZXh0X3NldF9lbmdpbmVfYnlfZGVzYyAoCisrICAgICAgICAgICAgY29u dGV4dCwKKysgICAgICAgICAgICBkZXNjLAorKyAgICAgICAgICAgIGdfZ2RidXNfdGltZW91dCwg LyogdGltZW91dCBpbiBtc2VjLiAqLworKyAgICAgICAgICAgIE5VTEwsIC8qIHdlIGRvIG5vdCBj YW5jZWwgdGhlIGNhbGwuICovCisrICAgICAgICAgICAgTlVMTCwgLyogdXNlIHRoZSBkZWZhdWx0 IGNhbGxiYWNrIGZ1bmN0aW9uLiAqLworKyAgICAgICAgICAgIE5VTEwpOworIH0KKyAKKyBzdGF0 aWMgdm9pZAorQEAgLTgyNyw3ICs4MjcsOCBAQCBidXNfaWJ1c19pbXBsX3NldF9mb2N1c2VkX2Nv bnRleHQgKEJ1c0lCdXNJbXBsICAgICAqaWJ1cywKKyAKKyAgICAgZ19hc3NlcnQgKEJVU19JU19J QlVTX0lNUEwgKGlidXMpKTsKKyAgICAgZ19hc3NlcnQgKGNvbnRleHQgPT0gTlVMTCB8fCBCVVNf SVNfSU5QVVRfQ09OVEVYVCAoY29udGV4dCkpOworLSAgICBnX2Fzc2VydCAoY29udGV4dCA9PSBO VUxMIHx8IGJ1c19pbnB1dF9jb250ZXh0X2dldF9jYXBhYmlsaXRpZXMgKGNvbnRleHQpICYgSUJV U19DQVBfRk9DVVMpOworKyAgICBnX2Fzc2VydCAoY29udGV4dCA9PSBOVUxMIHx8CisrICAgICAg ICAgICAgICBidXNfaW5wdXRfY29udGV4dF9nZXRfY2FwYWJpbGl0aWVzIChjb250ZXh0KSAmIElC VVNfQ0FQX0ZPQ1VTKTsKKyAKKyAgICAgLyogRG8gbm90aW5nIGlmIGl0IGlzIGZvY3VzZWQgY29u dGV4dC4gKi8KKyAgICAgaWYgKGlidXMtPmZvY3VzZWRfY29udGV4dCA9PSBjb250ZXh0KSB7CitA QCAtOTM4LDggKzkzOSw4IEBAIGJ1c19pYnVzX2ltcGxfc2V0X2dsb2JhbF9lbmdpbmVfYnlfbmFt ZSAoQnVzSUJ1c0ltcGwgKmlidXMsCisgICAgIGlmICghaWJ1cy0+dXNlX2dsb2JhbF9lbmdpbmUp CisgICAgICAgICByZXR1cm47CisgCistICAgIEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCA9Cist ICAgICAgICAgICAgaWJ1cy0+Zm9jdXNlZF9jb250ZXh0ICE9IE5VTEwgPyBpYnVzLT5mb2N1c2Vk X2NvbnRleHQgOiBpYnVzLT5mYWtlX2NvbnRleHQ7CisrICAgIEJ1c0lucHV0Q29udGV4dCAqY29u dGV4dCA9IGlidXMtPmZvY3VzZWRfY29udGV4dCAhPSBOVUxMCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID8gaWJ1cy0+Zm9jdXNlZF9jb250ZXh0IDogaWJ1cy0+ZmFrZV9jb250ZXh0 OworIAorICAgICBpZiAoY29udGV4dCA9PSBOVUxMKSB7CisgICAgICAgICByZXR1cm47CitAQCAt MTAwOCw3ICsxMDA5LDggQEAgYnVzX2lidXNfaW1wbF9jaGVja19nbG9iYWxfZW5naW5lIChCdXNJ QnVzSW1wbCAqaWJ1cykKKyAvKioKKyAgKiBfY29udGV4dF9lbmdpbmVfY2hhbmdlZF9jYjoKKyAg KgorLSAqIEEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlICJlbmdpbmUt Y2hhbmdlZCIgc2lnbmFsIGlzIHNlbnQgdG8gdGhlIGNvbnRleHQuCisrICogQSBjYWxsYmFjayBm dW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgImVuZ2luZS1jaGFuZ2VkIiBzaWduYWwgaXMg c2VudCB0bworKyAqIHRoZSBjb250ZXh0LgorICAqIFVwZGF0ZSBnbG9iYWwgZW5naW5lIGFzIHdl bGwgaWYgbmVjZXNzYXJ5LgorICAqLworIHN0YXRpYyB2b2lkCitAQCAtMTAyMyw3ICsxMDI1LDgg QEAgX2NvbnRleHRfZW5naW5lX2NoYW5nZWRfY2IgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwK KyAgICAgICAgIEJ1c0VuZ2luZVByb3h5ICplbmdpbmUgPSBidXNfaW5wdXRfY29udGV4dF9nZXRf ZW5naW5lIChjb250ZXh0KTsKKyAgICAgICAgIGlmIChlbmdpbmUgIT0gTlVMTCkgeworICAgICAg ICAgICAgIC8qIG9ubHkgc2V0IGdsb2JhbCBlbmdpbmUgaWYgZW5naW5lIGlzIG5vdCBOVUxMICov CistICAgICAgICAgICAgY29uc3QgZ2NoYXIgKm5hbWUgPSBpYnVzX2VuZ2luZV9kZXNjX2dldF9u YW1lIChidXNfZW5naW5lX3Byb3h5X2dldF9kZXNjIChlbmdpbmUpKTsKKysgICAgICAgICAgICBj b25zdCBnY2hhciAqbmFtZSA9IGlidXNfZW5naW5lX2Rlc2NfZ2V0X25hbWUgKAorKyAgICAgICAg ICAgICAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9nZXRfZGVzYyAoZW5naW5lKSk7CisgICAgICAg ICAgICAgaWYgKGdfc3RyY21wMCAobmFtZSwgaWJ1cy0+Z2xvYmFsX2VuZ2luZV9uYW1lKSA9PSAw KQorICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgZ19mcmVlIChpYnVzLT5n bG9iYWxfcHJldmlvdXNfZW5naW5lX25hbWUpOworQEAgLTEwMzcsOCArMTA0MCwxMCBAQCBfY29u dGV4dF9lbmdpbmVfY2hhbmdlZF9jYiAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAorIC8qKgor ICAqIF9jb250ZXh0X2ZvY3VzX2luX2NiOgorICAqCistICogQSBjYWxsYmFjayBmdW5jdGlvbiB0 byBiZSBjYWxsZWQgd2hlbiB0aGUgImZvY3VzLWluIiBzaWduYWwgaXMgc2VudCB0byB0aGUgY29u dGV4dC4KKy0gKiBJZiBuZWNlc3NhcnksIGVuYWJsZXMgdGhlIGdsb2JhbCBlbmdpbmUgb24gdGhl IGNvbnRleHQgYW5kIHVwZGF0ZSBpYnVzLT5mb2N1c2VkX2NvbnRleHQuCisrICogQSBjYWxsYmFj ayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgImZvY3VzLWluIiBzaWduYWwgaXMgc2Vu dCB0byB0aGUKKysgKiBjb250ZXh0LgorKyAqIElmIG5lY2Vzc2FyeSwgZW5hYmxlcyB0aGUgZ2xv YmFsIGVuZ2luZSBvbiB0aGUgY29udGV4dCBhbmQgdXBkYXRlCisrICogaWJ1cy0+Zm9jdXNlZF9j b250ZXh0LgorICAqLworIHN0YXRpYyB2b2lkCisgX2NvbnRleHRfZm9jdXNfaW5fY2IgKEJ1c0lu cHV0Q29udGV4dCAqY29udGV4dCwKK0BAIC0xMDU5LDcgKzEwNjQsOCBAQCBfY29udGV4dF9mb2N1 c19pbl9jYiAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAorIC8qKgorICAqIF9jb250ZXh0X2Zv Y3VzX291dF9jYjoKKyAgKgorLSAqIEEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdo ZW4gdGhlICJmb2N1cy1vdXQiIHNpZ25hbCBpcyBzZW50IHRvIHRoZSBjb250ZXh0LgorKyAqIEEg Y2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlICJmb2N1cy1vdXQiIHNpZ25h bCBpcyBzZW50IHRvIHRoZQorKyAqIGNvbnRleHQuCisgICovCisgc3RhdGljIHZvaWQKKyBfY29u dGV4dF9mb2N1c19vdXRfY2IgKEJ1c0lucHV0Q29udGV4dCAgICAqY29udGV4dCwKK0BAIC0xMDY5 LDcgKzEwNzUsOCBAQCBfY29udGV4dF9mb2N1c19vdXRfY2IgKEJ1c0lucHV0Q29udGV4dCAgICAq Y29udGV4dCwKKyAgICAgZ19hc3NlcnQgKEJVU19JU19JTlBVVF9DT05URVhUIChjb250ZXh0KSk7 CisgCisgICAgIC8qIERvIG5vdGluZyBpZiBjb250ZXh0IGRvZXMgbm90IHN1cHBvcnQgZm9jdXMu CistICAgICAqIEFjdHVhbGx5LCB0aGUgY29udGV4dCBzaG91bGQgZW1pdCBmb2N1cyBzaWduYWxz LCBpZiBpdCBkb2VzIG5vdCBzdXBwb3J0IGZvY3VzICovCisrICAgICAqIEFjdHVhbGx5LCB0aGUg Y29udGV4dCBzaG91bGQgZW1pdCBmb2N1cyBzaWduYWxzLCBpZiBpdCBkb2VzIG5vdCBzdXBwb3J0 CisrICAgICAqIGZvY3VzICovCisgICAgIGlmICgoYnVzX2lucHV0X2NvbnRleHRfZ2V0X2NhcGFi aWxpdGllcyAoY29udGV4dCkgJiBJQlVTX0NBUF9GT0NVUykgPT0gMCkgeworICAgICAgICAgcmV0 dXJuOworICAgICB9CitAQCAtMTEyNyw3ICsxMTM0LDggQEAgYnVzX2lidXNfaW1wbF9jcmVhdGVf aW5wdXRfY29udGV4dCAoQnVzSUJ1c0ltcGwgICAqaWJ1cywKKyAgICAgZ19vYmplY3RfcmVmX3Np bmsgKGNvbnRleHQpOworICAgICBpYnVzLT5jb250ZXh0cyA9IGdfbGlzdF9hcHBlbmQgKGlidXMt PmNvbnRleHRzLCBjb250ZXh0KTsKKyAKKy0gICAgLyogSW5zdGFsbHMgZ2xpYiBzaWduYWwgaGFu ZGxlcnMgc28gdGhhdCB0aGUgaWJ1cyBvYmplY3QgY291bGQgYmUgbm90aWZpZWQgd2hlbiBlLmcu IGFuIElCdXMuSW5wdXRDb250ZXh0IEQtQnVzIG1ldGhvZCBpcyBjYWxsZWQuICovCisrICAgIC8q IEluc3RhbGxzIGdsaWIgc2lnbmFsIGhhbmRsZXJzIHNvIHRoYXQgdGhlIGlidXMgb2JqZWN0IGNv dWxkIGJlIG5vdGlmaWVkCisrICAgICAqIHdoZW4gZS5nLiBhbiBJQnVzLklucHV0Q29udGV4dCBE LUJ1cyBtZXRob2QgaXMgY2FsbGVkLiAqLworICAgICBzdGF0aWMgY29uc3Qgc3RydWN0IHsKKyAg ICAgICAgIGdjaGFyICpuYW1lOworICAgICAgICAgR0NhbGxiYWNrIGNhbGxiYWNrOworQEAgLTEx NDksNyArMTE1Nyw4IEBAIGJ1c19pYnVzX2ltcGxfY3JlYXRlX2lucHV0X2NvbnRleHQgKEJ1c0lC dXNJbXBsICAgKmlidXMsCisgCisgICAgIGJ1c19pbnB1dF9jb250ZXh0X2VuYWJsZSAoY29udGV4 dCk7CisgCistICAgIC8qIHJlZ2lzdGVyIHRoZSBjb250ZXh0IG9iamVjdCBzbyB0aGF0IHRoZSBv YmplY3QgY291bGQgaGFuZGxlIElCdXMuSW5wdXRDb250ZXh0IG1ldGhvZCBjYWxscy4gKi8KKysg ICAgLyogcmVnaXN0ZXIgdGhlIGNvbnRleHQgb2JqZWN0IHNvIHRoYXQgdGhlIG9iamVjdCBjb3Vs ZCBoYW5kbGUKKysgICAgICogSUJ1cy5JbnB1dENvbnRleHQgbWV0aG9kIGNhbGxzLiAqLworICAg ICBidXNfZGJ1c19pbXBsX3JlZ2lzdGVyX29iamVjdCAoQlVTX0RFRkFVTFRfREJVUywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzU2VydmljZSAqKSBjb250ZXh0KTsK KyAgICAgZ19vYmplY3RfcmVmIChjb250ZXh0KTsKK0BAIC0xMTU5LDE0ICsxMTY4LDE1IEBAIGJ1 c19pYnVzX2ltcGxfY3JlYXRlX2lucHV0X2NvbnRleHQgKEJ1c0lCdXNJbXBsICAgKmlidXMsCisg LyoqCisgICogX2lidXNfY3JlYXRlX2lucHV0X2NvbnRleHQ6CisgICoKKy0gKiBJbXBsZW1lbnQg dGhlICJDcmVhdGVJbnB1dENvbnRleHQiIG1ldGhvZCBjYWxsIG9mIHRoZSBvcmcuZnJlZWRlc2t0 b3AuSUJ1cyBpbnRlcmZhY2UuCisrICogSW1wbGVtZW50IHRoZSAiQ3JlYXRlSW5wdXRDb250ZXh0 IiBtZXRob2QgY2FsbCBvZiB0aGUgb3JnLmZyZWVkZXNrdG9wLklCdXMKKysgKiBpbnRlcmZhY2Uu CisgICovCisgc3RhdGljIHZvaWQKKyBfaWJ1c19jcmVhdGVfaW5wdXRfY29udGV4dCAoQnVzSUJ1 c0ltcGwgICAgICAgICAgICppYnVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFy aWFudCAgICAgICAgICAgICAgKnBhcmFtZXRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdEQnVzTWV0aG9kSW52b2NhdGlvbiAqaW52b2NhdGlvbikKKyB7CistICAgIGNvbnN0IGdj aGFyICpjbGllbnRfbmFtZSA9IE5VTEw7ICAvLyBlLmcuICJndGstaW0iCisrICAgIGNvbnN0IGdj aGFyICpjbGllbnRfbmFtZSA9IE5VTEw7ICAvKiBlLmcuICJndGstaW0iICovCisgICAgIGdfdmFy aWFudF9nZXQgKHBhcmFtZXRlcnMsICIoJnMpIiwgJmNsaWVudF9uYW1lKTsKKyAKKyAgICAgQnVz Q29ubmVjdGlvbiAqY29ubmVjdGlvbiA9CitAQCAtMTE3Niw5ICsxMTg2LDExIEBAIF9pYnVzX2Ny ZWF0ZV9pbnB1dF9jb250ZXh0IChCdXNJQnVzSW1wbCAgICAgICAgICAgKmlidXMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRfbmFt ZSk7CisgICAgIGlmIChjb250ZXh0KSB7CistICAgICAgICBjb25zdCBnY2hhciAqcGF0aCA9IGli dXNfc2VydmljZV9nZXRfb2JqZWN0X3BhdGggKChJQnVzU2VydmljZSAqKSBjb250ZXh0KTsKKysg ICAgICAgIGNvbnN0IGdjaGFyICpwYXRoID0KKysgICAgICAgICAgICAgICAgaWJ1c19zZXJ2aWNl X2dldF9vYmplY3RfcGF0aCAoKElCdXNTZXJ2aWNlICopIGNvbnRleHQpOworICAgICAgICAgLyog dGhlIGZvcm1hdC1zdHJpbmcgJ28nIGlzIGZvciBhIEQtQnVzIG9iamVjdCBwYXRoLiAqLworLSAg ICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl92YWx1ZSAoaW52b2NhdGlvbiwg Z192YXJpYW50X25ldyAoIihvKSIsIHBhdGgpKTsKKysgICAgICAgIGdfZGJ1c19tZXRob2RfaW52 b2NhdGlvbl9yZXR1cm5fdmFsdWUgKGludm9jYXRpb24sCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKG8pIiwgcGF0aCkpOwor ICAgICAgICAgZ19vYmplY3RfdW5yZWYgKGNvbnRleHQpOworICAgICB9CisgICAgIGVsc2Ugewor QEAgLTEyNTksMTQgKzEyNzEsMTYgQEAgX2NvbXBvbmVudF9kZXN0cm95X2NiIChCdXNDb21wb25l bnQgKmNvbXBvbmVudCwKKyAgICAgZ19hc3NlcnQgKEJVU19JU19JQlVTX0lNUEwgKGlidXMpKTsK KyAgICAgZ19hc3NlcnQgKEJVU19JU19DT01QT05FTlQgKGNvbXBvbmVudCkpOworIAorLSAgICBp YnVzLT5yZWdpc3RlcmVkX2NvbXBvbmVudHMgPSBnX2xpc3RfcmVtb3ZlIChpYnVzLT5yZWdpc3Rl cmVkX2NvbXBvbmVudHMsIGNvbXBvbmVudCk7CisrICAgIGlidXMtPnJlZ2lzdGVyZWRfY29tcG9u ZW50cyA9IGdfbGlzdF9yZW1vdmUgKGlidXMtPnJlZ2lzdGVyZWRfY29tcG9uZW50cywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50KTsK KyAKKyAgICAgLyogcmVtb3ZlIGVuZ2luZXMgZnJvbSBlbmdpbmVfbGlzdCAqLworICAgICBHTGlz dCAqZW5naW5lcyA9IGJ1c19jb21wb25lbnRfZ2V0X2VuZ2luZXMgKGNvbXBvbmVudCk7CisgICAg IEdMaXN0ICpwOworICAgICBmb3IgKHAgPSBlbmdpbmVzOyBwICE9IE5VTEw7IHAgPSBwLT5uZXh0 KSB7CisgICAgICAgICBpZiAoZ19saXN0X2ZpbmQgKGlidXMtPnJlZ2lzdGVyX2VuZ2luZV9saXN0 LCBwLT5kYXRhKSkgeworLSAgICAgICAgICAgIGlidXMtPnJlZ2lzdGVyX2VuZ2luZV9saXN0ID0g Z19saXN0X3JlbW92ZSAoaWJ1cy0+cmVnaXN0ZXJfZW5naW5lX2xpc3QsIHAtPmRhdGEpOworKyAg ICAgICAgICAgIGlidXMtPnJlZ2lzdGVyX2VuZ2luZV9saXN0ID0KKysgICAgICAgICAgICAgICAg ICAgIGdfbGlzdF9yZW1vdmUgKGlidXMtPnJlZ2lzdGVyX2VuZ2luZV9saXN0LCBwLT5kYXRhKTsK KyAgICAgICAgICAgICBnX29iamVjdF91bnJlZiAocC0+ZGF0YSk7CisgICAgICAgICB9CisgICAg IH0KK0BAIC0xMzg5LDcgKzE0MDMsOCBAQCBfaWJ1c19saXN0X2VuZ2luZXNfZGVwcmUgKEJ1c0lC dXNJbXBsICAgICAgICAgICAqaWJ1cywKKyAvKioKKyAgKiBfaWJ1c19nZXRfZW5naW5lc19ieV9u YW1lczoKKyAgKgorLSAqIEltcGxlbWVudCB0aGUgIkdldEVuZ2luZXNCeU5hbWVzIiBtZXRob2Qg Y2FsbCBvZiB0aGUgb3JnLmZyZWVkZXNrdG9wLklCdXMgaW50ZXJmYWNlLgorKyAqIEltcGxlbWVu dCB0aGUgIkdldEVuZ2luZXNCeU5hbWVzIiBtZXRob2QgY2FsbCBvZiB0aGUgb3JnLmZyZWVkZXNr dG9wLklCdXMKKysgKiBpbnRlcmZhY2UuCisgICovCisgc3RhdGljIHZvaWQKKyBfaWJ1c19nZXRf ZW5naW5lc19ieV9uYW1lcyAoQnVzSUJ1c0ltcGwgICAgICAgICAgICppYnVzLAorQEAgLTE0MTQs NyArMTQyOSw4IEBAIF9pYnVzX2dldF9lbmdpbmVzX2J5X25hbWVzIChCdXNJQnVzSW1wbCAgICAg ICAgICAgKmlidXMsCisgICAgICAgICAgICAgICAgICJ2IiwKKyAgICAgICAgICAgICAgICAgaWJ1 c19zZXJpYWxpemFibGVfc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKWRlc2MpKTsKKyAg ICAgfQorLSAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlIChpbnZvY2F0 aW9uLCBnX3ZhcmlhbnRfbmV3ICgiKGF2KSIsICZidWlsZGVyKSk7CisrICAgIGdfZGJ1c19tZXRo b2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUgKGludm9jYXRpb24sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIoYXYpIiwgJmJ1aWxk ZXIpKTsKKyB9CisgCisgLyoqCitAQCAtMTYwOSw3ICsxNjI1LDcgQEAgX2lidXNfZ2V0X2dsb2Jh bF9lbmdpbmUgKEJ1c0lCdXNJbXBsICAgICAqaWJ1cywKKyAKKyAgICAgICAgIEdWYXJpYW50ICp2 YXJpYW50ID0gaWJ1c19zZXJpYWxpemFibGVfc2VyaWFsaXplICgKKyAgICAgICAgICAgICAgICAg KElCdXNTZXJpYWxpemFibGUgKikgZGVzYyk7CistICAgICAgICAvLyBTZXQgdHlwZSAidiIgZm9y IGludHJvc3BlY3Rpb25feG1sLgorKyAgICAgICAgLyogU2V0IHR5cGUgInYiIGZvciBpbnRyb3Nw ZWN0aW9uX3htbC4gKi8KKyAgICAgICAgIHJldHZhbCA9IGdfdmFyaWFudF9uZXdfdmFyaWFudCAo dmFyaWFudCk7CisgICAgICAgICBpZiAoIXJldHZhbCkgeworICAgICAgICAgICAgIGdfc2V0X2Vy cm9yIChlcnJvciwKK0BAIC0xNzUyLDEyICsxNzY4LDEzIEBAIF9pYnVzX3NldF9nbG9iYWxfZW5n aW5lIChCdXNJQnVzSW1wbCAgICAgICAgICAgKmlidXMsCisgICAgIFNldEdsb2JhbEVuZ2luZURh dGEgKmRhdGEgPSBnX3NsaWNlX25ldzAgKFNldEdsb2JhbEVuZ2luZURhdGEpOworICAgICBkYXRh LT5pYnVzID0gZ19vYmplY3RfcmVmIChpYnVzKTsKKyAgICAgZGF0YS0+aW52b2NhdGlvbiA9IGlu dm9jYXRpb247CistICAgIGJ1c19pbnB1dF9jb250ZXh0X3NldF9lbmdpbmVfYnlfZGVzYyAoY29u dGV4dCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfZ2RidXNfdGltZW91 dCwgLyogdGltZW91dCBpbiBtc2VjLiAqLworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsIC8qIHdlIGRvIG5vdCBjYW5jZWwgdGhlIGNhbGwuICovCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdBc3luY1JlYWR5Q2FsbGJh Y2spIF9pYnVzX3NldF9nbG9iYWxfZW5naW5lX3JlYWR5X2NiLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEpOworKyAgICBidXNfaW5wdXRfY29udGV4dF9z ZXRfZW5naW5lX2J5X2Rlc2MgKAorKyAgICAgICAgICAgIGNvbnRleHQsCisrICAgICAgICAgICAg ZGVzYywKKysgICAgICAgICAgICBnX2dkYnVzX3RpbWVvdXQsIC8qIHRpbWVvdXQgaW4gbXNlYy4g Ki8KKysgICAgICAgICAgICBOVUxMLCAvKiB3ZSBkbyBub3QgY2FuY2VsIHRoZSBjYWxsLiAqLwor KyAgICAgICAgICAgIChHQXN5bmNSZWFkeUNhbGxiYWNrKSBfaWJ1c19zZXRfZ2xvYmFsX2VuZ2lu ZV9yZWFkeV9jYiwKKysgICAgICAgICAgICBkYXRhKTsKKyB9CisgCisgLyoqCitAQCAtMjEwOSwx OSArMjEyNiwxNyBAQCBCdXNGYWN0b3J5UHJveHkgKgorIGJ1c19pYnVzX2ltcGxfbG9va3VwX2Zh Y3RvcnkgKEJ1c0lCdXNJbXBsICppYnVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGdjaGFyICpwYXRoKQorIHsKKy0gICAgZ19hc3NlcnQgKEJVU19JU19JQlVTX0lNUEwg KGlidXMpKTsKKy0KKyAgICAgQnVzRmFjdG9yeVByb3h5ICpmYWN0b3J5OworIAorLSAgICBmYWN0 b3J5ID0gKEJ1c0ZhY3RvcnlQcm94eSAqKSBnX2hhc2hfdGFibGVfbG9va3VwIChpYnVzLT5mYWN0 b3J5X2RpY3QsIHBhdGgpOworLQorKyAgICBnX2Fzc2VydCAoQlVTX0lTX0lCVVNfSU1QTCAoaWJ1 cykpOworKyAgICBmYWN0b3J5ID0gKEJ1c0ZhY3RvcnlQcm94eSAqKSBnX2hhc2hfdGFibGVfbG9v a3VwIChpYnVzLT5mYWN0b3J5X2RpY3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgpOworICAgICByZXR1cm4gZmFjdG9yeTsKKyB9 CisgCisgSUJ1c0tleW1hcCAqCisgYnVzX2lidXNfaW1wbF9nZXRfa2V5bWFwIChCdXNJQnVzSW1w bCAqaWJ1cykKKyB7CistCisgICAgIGdfYXNzZXJ0IChCVVNfSVNfSUJVU19JTVBMIChpYnVzKSk7 CisgCisgICAgIHJldHVybiBpYnVzLT5rZXltYXA7CiBkaWZmIC0tZ2l0IGEvY2xpZW50L2d0azIv aWJ1c2ltY29udGV4dC5jIGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi1pbmRleCA2ZTMz ODE1Ny4uZTRjNGZmMzYgMTAwNjQ0CitpbmRleCAxZjM3MjNlNi4uZWE4MjcwYmIgMTAwNjQ0CiAt LS0gYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKICsrKyBiL2NsaWVudC9ndGsyL2lidXNp bWNvbnRleHQuYworQEAgLTIsOCArMiw4IEBACisgLyogdmltOnNldCBldCBzdHM9NDogKi8KKyAv KiBpYnVzIC0gVGhlIElucHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIFBlbmcg SHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdodCAoQykgMjAxNS0y MDIyIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorLSAqIENvcHly aWdodCAoQykgMjAwOC0yMDIyIFJlZCBIYXQsIEluYy4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTUt MjAyMyBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5 cmlnaHQgKEMpIDIwMDgtMjAyMyBSZWQgSGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICogbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwog QEAgLTcwLDcgKzcwLDYgQEAgc3RydWN0IF9JQnVzSU1Db250ZXh0IHsKICAjZW5kaWYKICAKQEAg LTc3OTQsNyArODYxMyw3IEBAIGluZGV4IDZlMzM4MTU3Li5lNGM0ZmYzNiAxMDA2NDQKICBzdGF0 aWMgdm9pZCAgICAgX2NyZWF0ZV9mYWtlX2lucHV0X2NvbnRleHQgICh2b2lkKTsKICBzdGF0aWMg Z2Jvb2xlYW4gX3NldF9jb250ZW50X3R5cGUgICAgICAgICAgIChJQnVzSU1Db250ZXh0ICAgICAg KmNvbnRleHQpOwogIAotQEAgLTU2NSwzNCArNTY0LDE5IEBAIF9wcm9jZXNzX2tleV9ldmVudCAo SUJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKK0BAIC01OTIsMzQgKzU5MSwxOSBAQCBfcHJvY2Vz c19rZXlfZXZlbnQgKElCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCiAgICogY29udGV4dC0+Y2Fw cyBoYXMgSUJVU19DQVBfU1VSUk9VTkRJTkdfVEVYVCBhbmQgdGhlIGN1cnJlbnQgSUJ1cwogICAq IGVuZ2luZSBuZWVkcyBzdXJyb3VuZGluZy10ZXh0LgogICAqLwpAQCAtNzgzMiw3ICs4NjUxLDcg QEAgaW5kZXggNmUzMzgxNTcuLmU0YzRmZjM2IDEwMDY0NAogIH0KICAKICBzdGF0aWMgZ2Jvb2xl YW4KLUBAIC05ODYsNyArOTcwLDYgQEAgaWJ1c19pbV9jb250ZXh0X2luaXQgKEdPYmplY3QgKm9i aikKK0BAIC0xMDEzLDcgKzk5Nyw2IEBAIGlidXNfaW1fY29udGV4dF9pbml0IChHT2JqZWN0ICpv YmopCiAgICAgIGlidXNpbWNvbnRleHQtPmN1cnNvcl9hcmVhLmhlaWdodCA9IDA7CiAgCiAgICAg IGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0ID0gTlVMTDsKQEAgLTc4NDAsNyArODY1OSw3IEBA IGluZGV4IDZlMzM4MTU3Li5lNGM0ZmYzNiAxMDA2NDQKICAgICAgaWJ1c2ltY29udGV4dC0+aGFz X2ZvY3VzID0gRkFMU0U7CiAgICAgIGlidXNpbWNvbnRleHQtPnRpbWUgPSBHREtfQ1VSUkVOVF9U SU1FOwogICNpZmRlZiBFTkFCTEVfU1VSUk9VTkRJTkcKLUBAIC0yMTg1LDE2ICsyMTY4LDMzIEBA IF9pYnVzX2NvbnRleHRfaGlkZV9wcmVlZGl0X3RleHRfY2IgKElCdXNJbnB1dENvbnRleHQgKmli dXNjb250ZXh0LAorQEAgLTIyMTIsMTYgKzIxOTUsMzMgQEAgX2lidXNfY29udGV4dF9oaWRlX3By ZWVkaXRfdGV4dF9jYiAoSUJ1c0lucHV0Q29udGV4dCAqaWJ1c2NvbnRleHQsCiAgICAgIGdfc2ln bmFsX2VtaXQgKGlidXNpbWNvbnRleHQsIF9zaWduYWxfcHJlZWRpdF9lbmRfaWQsIDApOwogIH0K ICAKQEAgLTc4NzgsNyArODY5Nyw3IEBAIGluZGV4IDZlMzM4MTU3Li5lNGM0ZmYzNiAxMDA2NDQK ICB9CiAgCiAgc3RhdGljIHZvaWQKLUBAIC0yMjM2LDYgKzIyMzYsNyBAQCBfY3JlYXRlX2lucHV0 X2NvbnRleHRfZG9uZSAoSUJ1c0J1cyAgICAgICAqYnVzLAorQEAgLTIyNjMsNiArMjI2Myw3IEBA IF9jcmVhdGVfaW5wdXRfY29udGV4dF9kb25lIChJQnVzQnVzICAgICAgICpidXMsCiAgICAgICAg ICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKICAgICAgfQogICAgICBlbHNlIHsKQEAgLTc4ODYsNyAr ODcwNSw3IEBAIGluZGV4IDZlMzM4MTU3Li5lNGM0ZmYzNiAxMDA2NDQKICAgICAgICAgIGlidXNf aW5wdXRfY29udGV4dF9zZXRfY2xpZW50X2NvbW1pdF9wcmVlZGl0IChjb250ZXh0LCBUUlVFKTsK ICAgICAgICAgIGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0ID0gY29udGV4dDsKICAKLUBAIC0y MjYzLDE2ICsyMjY0LDEyIEBAIF9jcmVhdGVfaW5wdXRfY29udGV4dF9kb25lIChJQnVzQnVzICAg ICAgICpidXMsCitAQCAtMjI5MCwxNiArMjI5MSwxMiBAQCBfY3JlYXRlX2lucHV0X2NvbnRleHRf ZG9uZSAoSUJ1c0J1cyAgICAgICAqYnVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImhp ZGUtcHJlZWRpdC10ZXh0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sg KF9pYnVzX2NvbnRleHRfaGlkZV9wcmVlZGl0X3RleHRfY2IpLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWJ1c2ltY29udGV4dCk7CkBAIC03OTA1LDcgKzg3MjQsNyBAQCBpbmRleCA2ZTMz ODE1Ny4uZTRjNGZmMzYgMTAwNjQ0CiAgCiAgICAgICAgICBpZiAoaWJ1c2ltY29udGV4dC0+aGFz X2ZvY3VzKSB7CiAgICAgICAgICAgICAgLyogVGhlIHRpbWUgb3JkZXIgaXMgX2NyZWF0ZV9pbnB1 dF9jb250ZXh0KCkgLT4KLUBAIC0yMjg2LDExICsyMjgzLDE4IEBAIF9jcmVhdGVfaW5wdXRfY29u dGV4dF9kb25lIChJQnVzQnVzICAgICAgICpidXMsCitAQCAtMjMxMywxMSArMjMxMCwxOCBAQCBf Y3JlYXRlX2lucHV0X2NvbnRleHRfZG9uZSAoSUJ1c0J1cyAgICAgICAqYnVzLAogICAgICAgICAg ICAgIF9zZXRfY3Vyc29yX2xvY2F0aW9uX2ludGVybmFsIChpYnVzaW1jb250ZXh0KTsKICAgICAg ICAgICAgICBpZiAoaWJ1c19pbnB1dF9jb250ZXh0X25lZWRzX3N1cnJvdW5kaW5nX3RleHQgKAog ICAgICAgICAgICAgICAgICAgICAgICAgIGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0KSkgewpA QCAtNzkyNyw2ICs4NzQ2LDM4NCBAQCBpbmRleCA2ZTMzODE1Ny4uZTRjNGZmMzYgMTAwNjQ0CiAg CiAgICAgICAgICBpZiAoIWdfcXVldWVfaXNfZW1wdHkgKGlidXNpbWNvbnRleHQtPmV2ZW50c19x dWV1ZSkpIHsKICAjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorZGlmZiAtLWdpdCBh L3NyYy9pYnVzY29tcG9zZXRhYmxlLmggYi9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5oCitpbmRleCBi ZTE0NjNhZS4uMzJlMzM3ZjcgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5oCisr KysgYi9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5oCitAQCAtNDYsNiArNDYsOCBAQCBzdHJ1Y3QgX0lC dXNDb21wb3NlVGFibGUKKyBzdHJ1Y3QgX0lCdXNDb21wb3NlVGFibGVFeAorIHsKKyAgICAgSUJ1 c0NvbXBvc2VUYWJsZVByaXZhdGUgKnByaXY7CisrICAgIC8qIEBkYXRhIGlzIGNvbnN0IHZhbHVl IHRvIGFjY2VwdCBtbWFwIGRhdGEgYW5kIHRoZSByZWxlYXNhYmxlIGFsbG9jYXRpb24KKysgICAg ICogaXMgYXNzaWduZWQgdG8gQHJhd2RhdGEuICovCisgICAgIGNvbnN0IGd1aW50MTYgKmRhdGE7 CisgICAgIGdpbnQgbWF4X3NlcV9sZW47CisgICAgIGdpbnQgbl9zZXFzOworQEAgLTU0LDYgKzU2 LDE3IEBAIHN0cnVjdCBfSUJ1c0NvbXBvc2VUYWJsZUV4CisgfTsKKyAKKyAKKysvKioKKysgKiBp YnVzX2NvbXBvc2VfdGFibGVfbmV3X3dpdGhfZmlsZToKKysgKiBAY29tcG9zZV9maWxlOiBUaGUg cGF0aCBvZiB0aGUgY29tcG9zZSBmaWxlCisrICogQGNvbXBvc2VfdGFibGVzOiAobnVsbGFibGUp OiBUaGUgbGlzdCBvZiBvdGhlciBASUJ1c0NvbXBvc2VUYWJsZUV4CisrICogYW5kIHRoZSBnZW5l cmF0aW5nIEBJQnVzQ29tcG9zZVRhYmxlRXggZXhjbHVkZXMgdGhlIGNvbXBvc2Uga2V5cworKyAq IHdoaWNoIGFyZSBpbmNsdWRlZCBpbiB0aGUgb3RoZXIgQElCdXNDb21wb3NlVGFibGVFeC4KKysg KgorKyAqIEdlbmVyYXRlIEBJQnVzQ29tcG9zZVRhYmxlRXggZnJvbSB0aGUgY29tcG9zZSBmaWxl LgorKyAqCisrICogUmV0dXJuczogQElCdXNDb21wb3NlVGFibGVFeAorKyAqLworIElCdXNDb21w b3NlVGFibGVFeCAqCisgICAgICAgICAgICAgICAgICAgaWJ1c19jb21wb3NlX3RhYmxlX25ld193 aXRoX2ZpbGUgKGNvbnN0IGdjaGFyICpjb21wb3NlX2ZpbGUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdTTGlzdAorZGlmZiAtLWdpdCBhL3Ny Yy9pYnVzZW5naW5lLmMgYi9zcmMvaWJ1c2VuZ2luZS5jCitpbmRleCBjYzEyYWM1YS4uOGFhMjdi NjYgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2VuZ2luZS5jCisrKysgYi9zcmMvaWJ1c2VuZ2luZS5j CitAQCAtMiw3ICsyLDcgQEAKKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGlidXMgLSBU aGUgSW5wdXQgQnVzCisgICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgUGVuZyBIdWFuZyA8c2hh d24ucC5odWFuZ0BnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjIgVGFrYW8g RnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAy MDE4LTIwMjMgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisgICog Q29weXJpZ2h0IChDKSAyMDA4LTIwMjEgUmVkIEhhdCwgSW5jLgorICAqCisgICogVGhpcyBsaWJy YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorQEAg LTM3MSw3ICszNzEsNyBAQCBpYnVzX2VuZ2luZV9jbGFzc19pbml0IChJQnVzRW5naW5lQ2xhc3Mg KmNsYXNzKQorIAorICAgICAvKiBpbnN0YWxsIHByb3BlcnRpZXMgKi8KKyAgICAgLyoqCistICAg ICAqIElCdXNFbmdpbmU6bmFtZToKKysgICAgICogSUJ1c0VuZ2luZTplbmdpbmUtbmFtZToKKyAg ICAgICoKKyAgICAgICogTmFtZSBvZiB0aGlzIElCdXNFbmdpbmUuCisgICAgICAqLworQEAgLTM4 NSw2ICszODUsMTYgQEAgaWJ1c19lbmdpbmVfY2xhc3NfaW5pdCAoSUJ1c0VuZ2luZUNsYXNzICpj bGFzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZIHwK KyAgICAgICAgICAgICAgICAgICAgICAgICBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTKSk7CisgCisr ICAgIC8qKgorKyAgICAgKiBJQnVzRW5naW5lOmhhcy1mb2N1cy1pZDoKKysgICAgICoKKysgICAg ICogVXNlICNJQnVzRW5naW5lOjpmb2N1c19pbl9pZCgpL2ZvY3VzX291dF9pZCgpIGNsYXNzIG1l dGhvZCBpbnN0ZWFkcyBvZgorKyAgICAgKiBmb2N1c19pbigpL2ZvY3VzX291dCgpIGNsYXNzIG1l dGhvZHMgd2hlbiB0aGlzIHByb3BlcnR5IGlzIHNldCB0byAlVFJVRS4KKysgICAgICogT3RoZXJ3 aXNlLCB1c2UgI0lCdXNFbmdpbmU6OmZvY3VzX2luKCkvZm9jdXNfb3V0IGNsYXNzIG1ldGhvZHMu CisrICAgICAqIFRoaXMgcHJvcGVydHkgY2FuIG9ubHkgYmUgc2V0IGF0IGNvbnN0cnVjdCB0aW1l LgorKyAgICAgKgorKyAgICAgKiBTZWUgYWxzbzogSUJ1c0VuZ2luZTo6Zm9jdXMtaW4taWQKKysg ICAgICovCisgICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdvYmplY3RfY2xh c3MsCisgICAgICAgICAgICAgICAgICAgICBQUk9QX0hBU19GT0NVU19JRCwKKyAgICAgICAgICAg ICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuICgiaGFzLWZvY3VzLWlkIiwKK0BAIC01Nzcs NyArNTg3LDggQEAgaWJ1c19lbmdpbmVfY2xhc3NfaW5pdCAoSUJ1c0VuZ2luZUNsYXNzICpjbGFz cykKKyAgICAgICogaW4gZXh0ZW5kZWQgY2xhc3MgdG8gcmVjZWl2ZSB0aGlzIHNpZ25hbC4KKyAg ICAgICoKKyAgICAgICogU2VlIGFsc286ICBpYnVzX2lucHV0X2NvbnRleHRfcmVzZXQoKS4KKy0g ICAgICogPG5vdGU+PHBhcmE+QXJndW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMg ZnVuY3Rpb24uPC9wYXJhPjwvbm90ZT4KKysgICAgICogPG5vdGU+PHBhcmE+QXJndW1lbnQgQHVz ZXJfZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMgZnVuY3Rpb24uPC9wYXJhPgorKyAgICAgKiA8L25v dGU+CisgICAgICAqLworICAgICBlbmdpbmVfc2lnbmFsc1tSRVNFVF0gPQorICAgICAgICAgZ19z aWduYWxfbmV3IChJXygicmVzZXQiKSwKK0BAIC01OTgsNyArNjA5LDggQEAgaWJ1c19lbmdpbmVf Y2xhc3NfaW5pdCAoSUJ1c0VuZ2luZUNsYXNzICpjbGFzcykKKyAgICAgICogaW4gZXh0ZW5kZWQg Y2xhc3MgdG8gcmVjZWl2ZSB0aGlzIHNpZ25hbC4KKyAgICAgICoKKyAgICAgICogU2VlIGFsc286 ICBpYnVzX2J1c19zZXRfZ2xvYmFsX2VuZ2luZSgpLgorLSAgICAgKiA8bm90ZT48cGFyYT5Bcmd1 bWVudCBAdXNlcl9kYXRhIGlzIGlnbm9yZWQgaW4gdGhpcyBmdW5jdGlvbi48L3BhcmE+PC9ub3Rl PgorKyAgICAgKiA8bm90ZT48cGFyYT5Bcmd1bWVudCBAdXNlcl9kYXRhIGlzIGlnbm9yZWQgaW4g dGhpcyBmdW5jdGlvbi48L3BhcmE+CisrICAgICAqIDwvbm90ZT4KKyAgICAgICovCisgICAgIGVu Z2luZV9zaWduYWxzW0VOQUJMRV0gPQorICAgICAgICAgZ19zaWduYWxfbmV3IChJXygiZW5hYmxl IiksCitAQCAtNjE5LDcgKzYzMSw4IEBAIGlidXNfZW5naW5lX2NsYXNzX2luaXQgKElCdXNFbmdp bmVDbGFzcyAqY2xhc3MpCisgICAgICAqIGluIGV4dGVuZGVkIGNsYXNzIHRvIHJlY2VpdmUgdGhp cyBzaWduYWwuCisgICAgICAqCisgICAgICAqIFNlZSBhbHNvOiAgaWJ1c19idXNfc2V0X2dsb2Jh bF9lbmdpbmUoKS4KKy0gICAgICogPG5vdGU+PHBhcmE+QXJndW1lbnQgQHVzZXJfZGF0YSBpcyBp Z25vcmVkIGluIHRoaXMgZnVuY3Rpb24uPC9wYXJhPjwvbm90ZT4KKysgICAgICogPG5vdGU+PHBh cmE+QXJndW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMgZnVuY3Rpb24uPC9wYXJh PgorKyAgICAgKiA8L25vdGU+CisgICAgICAqLworICAgICBlbmdpbmVfc2lnbmFsc1tESVNBQkxF XSA9CisgICAgICAgICBnX3NpZ25hbF9uZXcgKElfKCJkaXNhYmxlIiksCitAQCAtNjQ0LDcgKzY1 Nyw4IEBAIGlidXNfZW5naW5lX2NsYXNzX2luaXQgKElCdXNFbmdpbmVDbGFzcyAqY2xhc3MpCisg ICAgICAqIGluIGV4dGVuZGVkIGNsYXNzIHRvIHJlY2VpdmUgdGhpcyBzaWduYWwuCisgICAgICAq CisgICAgICAqIFNlZSBhbHNvOiAgaWJ1c19pbnB1dF9jb250ZXh0X3NldF9jdXJzb3JfbG9jYXRp b24oKS4KKy0gICAgICogPG5vdGU+PHBhcmE+QXJndW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVk IGluIHRoaXMgZnVuY3Rpb24uPC9wYXJhPjwvbm90ZT4KKysgICAgICogPG5vdGU+PHBhcmE+QXJn dW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMgZnVuY3Rpb24uPC9wYXJhPgorKyAg ICAgKiA8L25vdGU+CisgICAgICAqLworICAgICBlbmdpbmVfc2lnbmFsc1tTRVRfQ1VSU09SX0xP Q0FUSU9OXSA9CisgICAgICAgICBnX3NpZ25hbF9uZXcgKElfKCJzZXQtY3Vyc29yLWxvY2F0aW9u IiksCitAQCAtNjcwLDcgKzY4NCw4IEBAIGlidXNfZW5naW5lX2NsYXNzX2luaXQgKElCdXNFbmdp bmVDbGFzcyAqY2xhc3MpCisgICAgICAqIGluIGV4dGVuZGVkIGNsYXNzIHRvIHJlY2VpdmUgdGhp cyBzaWduYWwuCisgICAgICAqCisgICAgICAqIFNlZSBhbHNvOiAgaWJ1c19pbnB1dF9jb250ZXh0 X3NldF9jYXBhYmlsaXRpZXMoKS4KKy0gICAgICogPG5vdGU+PHBhcmE+QXJndW1lbnQgQHVzZXJf ZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMgZnVuY3Rpb24uPC9wYXJhPjwvbm90ZT4KKysgICAgICog PG5vdGU+PHBhcmE+QXJndW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMgZnVuY3Rp b24uPC9wYXJhPgorKyAgICAgKiA8L25vdGU+CisgICAgICAqLworICAgICBlbmdpbmVfc2lnbmFs c1tTRVRfQ0FQQUJJTElUSUVTXSA9CisgICAgICAgICBnX3NpZ25hbF9uZXcgKElfKCJzZXQtY2Fw YWJpbGl0aWVzIiksCitAQCAtNjkxLDcgKzcwNiw4IEBAIGlidXNfZW5naW5lX2NsYXNzX2luaXQg KElCdXNFbmdpbmVDbGFzcyAqY2xhc3MpCisgICAgICAqIEltcGxlbWVudCB0aGUgbWVtYmVyIGZ1 bmN0aW9uIElCdXNFbmdpbmVDbGFzczo6cGFnZV91cAorICAgICAgKiBpbiBleHRlbmRlZCBjbGFz cyB0byByZWNlaXZlIHRoaXMgc2lnbmFsLgorICAgICAgKgorLSAgICAgKiA8bm90ZT48cGFyYT5B cmd1bWVudCBAdXNlcl9kYXRhIGlzIGlnbm9yZWQgaW4gdGhpcyBmdW5jdGlvbi48L3BhcmE+PC9u b3RlPgorKyAgICAgKiA8bm90ZT48cGFyYT5Bcmd1bWVudCBAdXNlcl9kYXRhIGlzIGlnbm9yZWQg aW4gdGhpcyBmdW5jdGlvbi48L3BhcmE+CisrICAgICAqIDwvbm90ZT4KKyAgICAgICovCisgICAg IGVuZ2luZV9zaWduYWxzW1BBR0VfVVBdID0KKyAgICAgICAgIGdfc2lnbmFsX25ldyAoSV8oInBh Z2UtdXAiKSwKK0BAIC03MTEsNyArNzI3LDggQEAgaWJ1c19lbmdpbmVfY2xhc3NfaW5pdCAoSUJ1 c0VuZ2luZUNsYXNzICpjbGFzcykKKyAgICAgICogSW1wbGVtZW50IHRoZSBtZW1iZXIgZnVuY3Rp b24gSUJ1c0VuZ2luZUNsYXNzOjpwYWdlX2Rvd24KKyAgICAgICogaW4gZXh0ZW5kZWQgY2xhc3Mg dG8gcmVjZWl2ZSB0aGlzIHNpZ25hbC4KKyAgICAgICoKKy0gICAgICogPG5vdGU+PHBhcmE+QXJn dW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMgZnVuY3Rpb24uPC9wYXJhPjwvbm90 ZT4KKysgICAgICogPG5vdGU+PHBhcmE+QXJndW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVkIGlu IHRoaXMgZnVuY3Rpb24uPC9wYXJhPgorKyAgICAgKiA8L25vdGU+CisgICAgICAqLworICAgICBl bmdpbmVfc2lnbmFsc1tQQUdFX0RPV05dID0KKyAgICAgICAgIGdfc2lnbmFsX25ldyAoSV8oInBh Z2UtZG93biIpLAorQEAgLTczMSw3ICs3NDgsOCBAQCBpYnVzX2VuZ2luZV9jbGFzc19pbml0IChJ QnVzRW5naW5lQ2xhc3MgKmNsYXNzKQorICAgICAgKiBJbXBsZW1lbnQgdGhlIG1lbWJlciBmdW5j dGlvbiBJQnVzRW5naW5lQ2xhc3M6OmN1cnNvcl91cAorICAgICAgKiBpbiBleHRlbmRlZCBjbGFz cyB0byByZWNlaXZlIHRoaXMgc2lnbmFsLgorICAgICAgKgorLSAgICAgKiA8bm90ZT48cGFyYT5B cmd1bWVudCBAdXNlcl9kYXRhIGlzIGlnbm9yZWQgaW4gdGhpcyBmdW5jdGlvbi48L3BhcmE+PC9u b3RlPgorKyAgICAgKiA8bm90ZT48cGFyYT5Bcmd1bWVudCBAdXNlcl9kYXRhIGlzIGlnbm9yZWQg aW4gdGhpcyBmdW5jdGlvbi48L3BhcmE+CisrICAgICAqIDwvbm90ZT4KKyAgICAgICovCisgICAg IGVuZ2luZV9zaWduYWxzW0NVUlNPUl9VUF0gPQorICAgICAgICAgZ19zaWduYWxfbmV3IChJXygi Y3Vyc29yLXVwIiksCitAQCAtNzUxLDcgKzc2OSw4IEBAIGlidXNfZW5naW5lX2NsYXNzX2luaXQg KElCdXNFbmdpbmVDbGFzcyAqY2xhc3MpCisgICAgICAqIEltcGxlbWVudCB0aGUgbWVtYmVyIGZ1 bmN0aW9uIElCdXNFbmdpbmVDbGFzczo6Y3Vyc29yX2Rvd24KKyAgICAgICogaW4gZXh0ZW5kZWQg Y2xhc3MgdG8gcmVjZWl2ZSB0aGlzIHNpZ25hbC4KKyAgICAgICoKKy0gICAgICogPG5vdGU+PHBh cmE+QXJndW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMgZnVuY3Rpb24uPC9wYXJh Pjwvbm90ZT4KKysgICAgICogPG5vdGU+PHBhcmE+QXJndW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25v cmVkIGluIHRoaXMgZnVuY3Rpb24uPC9wYXJhPgorKyAgICAgKiA8L25vdGU+CisgICAgICAqLwor ICAgICBlbmdpbmVfc2lnbmFsc1tDVVJTT1JfRE9XTl0gPQorICAgICAgICAgZ19zaWduYWxfbmV3 IChJXygiY3Vyc29yLWRvd24iKSwKK0BAIC03NzQsNyArNzkzLDggQEAgaWJ1c19lbmdpbmVfY2xh c3NfaW5pdCAoSUJ1c0VuZ2luZUNsYXNzICpjbGFzcykKKyAgICAgICogSW1wbGVtZW50IHRoZSBt ZW1iZXIgZnVuY3Rpb24gSUJ1c0VuZ2luZUNsYXNzOjpjYW5kaWRhdGVfY2xpY2tlZAorICAgICAg KiBpbiBleHRlbmRlZCBjbGFzcyB0byByZWNlaXZlIHRoaXMgc2lnbmFsLgorICAgICAgKgorLSAg ICAgKiA8bm90ZT48cGFyYT5Bcmd1bWVudCBAdXNlcl9kYXRhIGlzIGlnbm9yZWQgaW4gdGhpcyBm dW5jdGlvbi48L3BhcmE+PC9ub3RlPgorKyAgICAgKiA8bm90ZT48cGFyYT5Bcmd1bWVudCBAdXNl cl9kYXRhIGlzIGlnbm9yZWQgaW4gdGhpcyBmdW5jdGlvbi48L3BhcmE+CisrICAgICAqIDwvbm90 ZT4KKyAgICAgICovCisgICAgIGVuZ2luZV9zaWduYWxzW0NBTkRJREFURV9DTElDS0VEXSA9Cisg ICAgICAgICBnX3NpZ25hbF9uZXcgKElfKCJjYW5kaWRhdGUtY2xpY2tlZCIpLAorQEAgLTc5OSw3 ICs4MTksOCBAQCBpYnVzX2VuZ2luZV9jbGFzc19pbml0IChJQnVzRW5naW5lQ2xhc3MgKmNsYXNz KQorICAgICAgKiBJbXBsZW1lbnQgdGhlIG1lbWJlciBmdW5jdGlvbiBJQnVzRW5naW5lQ2xhc3M6 OnByb3BlcnR5X2FjdGl2YXRlCisgICAgICAqIGluIGV4dGVuZGVkIGNsYXNzIHRvIHJlY2VpdmUg dGhpcyBzaWduYWwuCisgICAgICAqCistICAgICAqIDxub3RlPjxwYXJhPkFyZ3VtZW50IEB1c2Vy X2RhdGEgaXMgaWdub3JlZCBpbiB0aGlzIGZ1bmN0aW9uLjwvcGFyYT48L25vdGU+CisrICAgICAq IDxub3RlPjxwYXJhPkFyZ3VtZW50IEB1c2VyX2RhdGEgaXMgaWdub3JlZCBpbiB0aGlzIGZ1bmN0 aW9uLjwvcGFyYT4KKysgICAgICogPC9ub3RlPgorICAgICAgKi8KKyAgICAgZW5naW5lX3NpZ25h bHNbUFJPUEVSVFlfQUNUSVZBVEVdID0KKyAgICAgICAgIGdfc2lnbmFsX25ldyAoSV8oInByb3Bl cnR5LWFjdGl2YXRlIiksCitAQCAtODIyLDcgKzg0Myw4IEBAIGlidXNfZW5naW5lX2NsYXNzX2lu aXQgKElCdXNFbmdpbmVDbGFzcyAqY2xhc3MpCisgICAgICAqIEltcGxlbWVudCB0aGUgbWVtYmVy IGZ1bmN0aW9uIElCdXNFbmdpbmVDbGFzczo6cHJvcGVydHlfc2lkZQorICAgICAgKiBpbiBleHRl bmRlZCBjbGFzcyB0byByZWNlaXZlIHRoaXMgc2lnbmFsLgorICAgICAgKgorLSAgICAgKiA8bm90 ZT48cGFyYT5Bcmd1bWVudCBAdXNlcl9kYXRhIGlzIGlnbm9yZWQgaW4gdGhpcyBmdW5jdGlvbi48 L3BhcmE+PC9ub3RlPgorKyAgICAgKiA8bm90ZT48cGFyYT5Bcmd1bWVudCBAdXNlcl9kYXRhIGlz IGlnbm9yZWQgaW4gdGhpcyBmdW5jdGlvbi48L3BhcmE+CisrICAgICAqIDwvbm90ZT4KKyAgICAg ICovCisgICAgIGVuZ2luZV9zaWduYWxzW1BST1BFUlRZX1NIT1ddID0KKyAgICAgICAgIGdfc2ln bmFsX25ldyAoSV8oInByb3BlcnR5LXNob3ciKSwKK0BAIC04NDQsNyArODY2LDggQEAgaWJ1c19l bmdpbmVfY2xhc3NfaW5pdCAoSUJ1c0VuZ2luZUNsYXNzICpjbGFzcykKKyAgICAgICogSW1wbGVt ZW50IHRoZSBtZW1iZXIgZnVuY3Rpb24gSUJ1c0VuZ2luZUNsYXNzOjpwcm9wZXJ0eV9oaWRlCisg ICAgICAqIGluIGV4dGVuZGVkIGNsYXNzIHRvIHJlY2VpdmUgdGhpcyBzaWduYWwuCisgICAgICAq CistICAgICAqIDxub3RlPjxwYXJhPkFyZ3VtZW50IEB1c2VyX2RhdGEgaXMgaWdub3JlZCBpbiB0 aGlzIGZ1bmN0aW9uLjwvcGFyYT48L25vdGU+CisrICAgICAqIDxub3RlPjxwYXJhPkFyZ3VtZW50 IEB1c2VyX2RhdGEgaXMgaWdub3JlZCBpbiB0aGlzIGZ1bmN0aW9uLjwvcGFyYT4KKysgICAgICog PC9ub3RlPgorICAgICAgKi8KKyAgICAgZW5naW5lX3NpZ25hbHNbUFJPUEVSVFlfSElERV0gPQor ICAgICAgICAgZ19zaWduYWxfbmV3IChJXygicHJvcGVydHktaGlkZSIpLAorQEAgLTg2MCwxNCAr ODgzLDE2IEBAIGlidXNfZW5naW5lX2NsYXNzX2luaXQgKElCdXNFbmdpbmVDbGFzcyAqY2xhc3Mp CisgICAgIC8qKgorICAgICAgKiBJQnVzRW5naW5lOjpwcm9jZXNzLWhhbmQtd3JpdGluZy1ldmVu dDoKKyAgICAgICogQGVuZ2luZTogQW4gSUJ1c0VuZ2luZS4KKy0gICAgICogQGNvb3JkaW5hdGVz OiBBbiBhcnJheSBvZiBkb3VibGUgKDAuMCB0byAxLjApIHdoaWNoIHJlcHJlc2VudHMgYSBzdHJv a2UgKGkuZS4gW3gxLCB5MSwgeDIsIHkyLCB4MywgeTMsIC4uLl0pLgorKyAgICAgKiBAY29vcmRp bmF0ZXM6IEFuIGFycmF5IG9mIGRvdWJsZSAoMC4wIHRvIDEuMCkgd2hpY2ggcmVwcmVzZW50cyBh IHN0cm9rZQorKyAgICAgKiAgICAgICAgICAgICAgIChpLmUuIFt4MSwgeTEsIHgyLCB5MiwgeDMs IHkzLCAuLi5dKS4KKyAgICAgICogQGNvb3JkaW5hdGVzX2xlbjogVGhlIG51bWJlciBvZiBlbGVt ZW50cyBpbiB0aGUgYXJyYXkuCisgICAgICAqCisgICAgICAqIEVtaXR0ZWQgd2hlbiBhIGhhbmQg d3JpdGluZyBvcGVyYXRpb24gaXMgY2FuY2VsbGVkLgorICAgICAgKiBJbXBsZW1lbnQgdGhlIG1l bWJlciBmdW5jdGlvbiBJQnVzRW5naW5lQ2xhc3M6OmNhbmNlbF9oYW5kX3dyaXRpbmcKKyAgICAg ICogaW4gZXh0ZW5kZWQgY2xhc3MgdG8gcmVjZWl2ZSB0aGlzIHNpZ25hbC4KKyAgICAgICoKKy0g ICAgICogPG5vdGU+PHBhcmE+QXJndW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMg ZnVuY3Rpb24uPC9wYXJhPjwvbm90ZT4KKysgICAgICogPG5vdGU+PHBhcmE+QXJndW1lbnQgQHVz ZXJfZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMgZnVuY3Rpb24uPC9wYXJhPgorKyAgICAgKiA8L25v dGU+CisgICAgICAqLworICAgICBlbmdpbmVfc2lnbmFsc1tQUk9DRVNTX0hBTkRfV1JJVElOR19F VkVOVF0gPQorICAgICAgICAgZ19zaWduYWxfbmV3IChJXygicHJvY2Vzcy1oYW5kLXdyaXRpbmct ZXZlbnQiKSwKK0BAIC04OTAsNyArOTE1LDggQEAgaWJ1c19lbmdpbmVfY2xhc3NfaW5pdCAoSUJ1 c0VuZ2luZUNsYXNzICpjbGFzcykKKyAgICAgICogSW1wbGVtZW50IHRoZSBtZW1iZXIgZnVuY3Rp b24gSUJ1c0VuZ2luZUNsYXNzOjpjYW5jZWxfaGFuZF93cml0aW5nCisgICAgICAqIGluIGV4dGVu ZGVkIGNsYXNzIHRvIHJlY2VpdmUgdGhpcyBzaWduYWwuCisgICAgICAqCistICAgICAqIDxub3Rl PjxwYXJhPkFyZ3VtZW50IEB1c2VyX2RhdGEgaXMgaWdub3JlZCBpbiB0aGlzIGZ1bmN0aW9uLjwv cGFyYT48L25vdGU+CisrICAgICAqIDxub3RlPjxwYXJhPkFyZ3VtZW50IEB1c2VyX2RhdGEgaXMg aWdub3JlZCBpbiB0aGlzIGZ1bmN0aW9uLjwvcGFyYT4KKysgICAgICogPC9ub3RlPgorICAgICAg Ki8KKyAgICAgZW5naW5lX3NpZ25hbHNbQ0FOQ0VMX0hBTkRfV1JJVElOR10gPQorICAgICAgICAg Z19zaWduYWxfbmV3IChJXygiY2FuY2VsLWhhbmQtd3JpdGluZyIpLAorQEAgLTkxNiw3ICs5NDIs OCBAQCBpYnVzX2VuZ2luZV9jbGFzc19pbml0IChJQnVzRW5naW5lQ2xhc3MgKmNsYXNzKQorICAg ICAgKiBJZiBhbmNob3JfcG9zIGVxdWFscyB0byBjdXJzb3JfcG9zLCBpdCBtZWFucyAidGhlcmUg YXJlIG5vIHNlbGVjdGlvbiIKKyAgICAgICogb3IgImRvZXMgbm90IHN1cHBvcnQgc2VsZWN0aW9u IHJldHJpdmFsIi4KKyAgICAgICoKKy0gICAgICogPG5vdGU+PHBhcmE+QXJndW1lbnQgQHVzZXJf ZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMgZnVuY3Rpb24uPC9wYXJhPjwvbm90ZT4KKysgICAgICog PG5vdGU+PHBhcmE+QXJndW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMgZnVuY3Rp b24uPC9wYXJhPgorKyAgICAgKiA8L25vdGU+CisgICAgICAqLworICAgICBlbmdpbmVfc2lnbmFs c1tTRVRfU1VSUk9VTkRJTkdfVEVYVF0gPQorICAgICAgICAgZ19zaWduYWxfbmV3IChJXygic2V0 LXN1cnJvdW5kaW5nLXRleHQiKSwKK0BAIC0xMjY1LDcgKzEyOTIsOCBAQCBpYnVzX2VuZ2luZV9z ZXJ2aWNlX21ldGhvZF9jYWxsIChJQnVzU2VydmljZSAgICAgICAgICAgKnNlcnZpY2UsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5Y29kZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0 ZSk7CisgICAgICAgICB9CistICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJu X3ZhbHVlIChpbnZvY2F0aW9uLCBnX3ZhcmlhbnRfbmV3ICgiKGIpIiwgcmV0dmFsKSk7CisrICAg ICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlIChpbnZvY2F0aW9uLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50 X25ldyAoIihiKSIsIHJldHZhbCkpOworICAgICAgICAgcmV0dXJuOworICAgICB9CisgICAgIGlm IChnX3N0cmNtcDAgKG1ldGhvZF9uYW1lLCAiUGFuZWxFeHRlbnNpb25SZWNlaXZlZCIpID09IDAp IHsKK0BAIC0xNDQ5LDggKzE0NzcsMTAgQEAgaWJ1c19lbmdpbmVfc2VydmljZV9tZXRob2RfY2Fs bCAoSUJ1c1NlcnZpY2UgICAgICAgICAgICpzZXJ2aWNlLAorIAorICAgICAgICAgY29vcmRpbmF0 ZXMgPSBnX3ZhcmlhbnRfZ2V0X2ZpeGVkX2FycmF5IChnX3ZhcmlhbnRfZ2V0X2NoaWxkX3ZhbHVl IChwYXJhbWV0ZXJzLCAwKSwgJmNvb3JkaW5hdGVzX2xlbiwgc2l6ZW9mIChnZG91YmxlKSk7Cisg ICAgICAgICBnX3JldHVybl9pZl9mYWlsIChjb29yZGluYXRlcyAhPSBOVUxMKTsKKy0gICAgICAg IGdfcmV0dXJuX2lmX2ZhaWwgKGNvb3JkaW5hdGVzX2xlbiA+PSA0KTsgLyogVGhlIGFycmF5IHNo b3VsZCBjb250YWluIGF0IGxlYXN0IG9uZSBsaW5lLiAqLworLSAgICAgICAgZ19yZXR1cm5faWZf ZmFpbCAoY29vcmRpbmF0ZXNfbGVuIDw9IEdfTUFYVUlOVCk7IC8qIHRvIHByZXZlbnQgb3ZlcmZs b3cgaW4gdGhlIGNhc3QgaW4gZ19zaWduYWxfZW1pdCAqLworKyAgICAgICAgLyogVGhlIGFycmF5 IHNob3VsZCBjb250YWluIGF0IGxlYXN0IG9uZSBsaW5lLiAqLworKyAgICAgICAgZ19yZXR1cm5f aWZfZmFpbCAoY29vcmRpbmF0ZXNfbGVuID49IDQpOworKyAgICAgICAgLyogdG8gcHJldmVudCBv dmVyZmxvdyBpbiB0aGUgY2FzdCBpbiBnX3NpZ25hbF9lbWl0ICovCisrICAgICAgICBnX3JldHVy bl9pZl9mYWlsIChjb29yZGluYXRlc19sZW4gPD0gR19NQVhVSU5UKTsKKyAgICAgICAgIGdfcmV0 dXJuX2lmX2ZhaWwgKChjb29yZGluYXRlc19sZW4gJiAxKSA9PSAwKTsKKyAKKyAgICAgICAgIGdf c2lnbmFsX2VtaXQgKGVuZ2luZSwgZW5naW5lX3NpZ25hbHNbUFJPQ0VTU19IQU5EX1dSSVRJTkdf RVZFTlRdLCAwLAorQEAgLTE2NTYsMzggKzE2ODYsMzIgQEAgaWJ1c19lbmdpbmVfc2V0X2N1cnNv cl9sb2NhdGlvbiAoSUJ1c0VuZ2luZSAqZW5naW5lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdpbnQgICAgICAgIHcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2ludCAgICAgICAgaCkKKyB7CistICAgIC8vIGdfZGVidWcgKCJzZXQtY3Vyc29yLWxvY2F0 aW9uICglZCwgJWQsICVkLCAlZCkiLCB4LCB5LCB3LCBoKTsKKyB9CisgCisgc3RhdGljIHZvaWQK KyBpYnVzX2VuZ2luZV9zZXRfY2FwYWJpbGl0aWVzIChJQnVzRW5naW5lICplbmdpbmUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgY2FwcykKKyB7CistICAgIC8v IGdfZGVidWcgKCJzZXQtY2FwYWJpbGl0aWVzICgweCUwNHgpIiwgY2Fwcyk7CisgfQorIAorIHN0 YXRpYyB2b2lkCisgaWJ1c19lbmdpbmVfcGFnZV91cCAoSUJ1c0VuZ2luZSAqZW5naW5lKQorIHsK Ky0gICAgLy8gZ19kZWJ1ZyAoInBhZ2UtdXAiKTsKKyB9CisgCisgc3RhdGljIHZvaWQKKyBpYnVz X2VuZ2luZV9wYWdlX2Rvd24gKElCdXNFbmdpbmUgKmVuZ2luZSkKKyB7CistICAgIC8vIGdfZGVi dWcgKCJwYWdlLWRvd24iKTsKKyB9CisgCisgc3RhdGljIHZvaWQKKyBpYnVzX2VuZ2luZV9jdXJz b3JfdXAgKElCdXNFbmdpbmUgKmVuZ2luZSkKKyB7CistICAgIC8vIGdfZGVidWcgKCJjdXJzb3It dXAiKTsKKyB9CisgCisgc3RhdGljIHZvaWQKKyBpYnVzX2VuZ2luZV9jdXJzb3JfZG93biAoSUJ1 c0VuZ2luZSAqZW5naW5lKQorIHsKKy0gICAgLy8gZ19kZWJ1ZyAoImN1cnNvci1kb3duIik7Cisg fQorIAorIHN0YXRpYyB2b2lkCitAQCAtMTY5Niw3ICsxNzIwLDYgQEAgaWJ1c19lbmdpbmVfY2Fu ZGlkYXRlX2NsaWNrZWQgKElCdXNFbmdpbmUgKmVuZ2luZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3VpbnQgICAgICAgYnV0dG9uLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBndWludCAgICAgICBzdGF0ZSkKKyB7CistICAgIC8vIGdfZGVidWcgKCJjYW5kaWRh dGUtY2xpY2tlZCIpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTE3MDQsMTkgKzE3MjcsMTYg QEAgaWJ1c19lbmdpbmVfcHJvcGVydHlfYWN0aXZhdGUgKElCdXNFbmdpbmUgICplbmdpbmUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpwcm9wX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICBwcm9wX3N0YXRlKQor IHsKKy0gICAgLy8gZ19kZWJ1ZyAoInByb3BlcnR5LWFjdGl2YXRlICgnJXMnLCAlZCkiLCBwcm9w X25hbWUsIHByb3Bfc3RhdGUpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorIGlidXNfZW5naW5lX3By b3BlcnR5X3Nob3cgKElCdXNFbmdpbmUgKmVuZ2luZSwgY29uc3QgZ2NoYXIgKnByb3BfbmFtZSkK KyB7CistICAgIC8vIGdfZGVidWcgKCJwcm9wZXJ0eS1zaG93ICgnJXMnKSIsIHByb3BfbmFtZSk7 CisgfQorIAorIHN0YXRpYyB2b2lkCisgaWJ1c19lbmdpbmVfcHJvcGVydHlfaGlkZSAoSUJ1c0Vu Z2luZSAqZW5naW5lLCBjb25zdCBnY2hhciAqcHJvcF9uYW1lKQorIHsKKy0gICAgLy8gZ19kZWJ1 ZyAoInByb3BlcnR5LWhpZGUgKCclcycpIiwgcHJvcF9uYW1lKTsKKyB9CisgCisgc3RhdGljIHZv aWQKK0BAIC0xNzM0LDcgKzE3NTQsNiBAQCBpYnVzX2VuZ2luZV9zZXRfc3Vycm91bmRpbmdfdGV4 dCAoSUJ1c0VuZ2luZSAqZW5naW5lLAorICAgICBlbmdpbmUtPnByaXYtPnN1cnJvdW5kaW5nX3Rl eHQgPSAoSUJ1c1RleHQgKikgZ19vYmplY3RfcmVmX3NpbmsgKHRleHQgPyB0ZXh0IDogdGV4dF9l bXB0eSk7CisgICAgIGVuZ2luZS0+cHJpdi0+c3Vycm91bmRpbmdfY3Vyc29yX3BvcyA9IGN1cnNv cl9wb3M7CisgICAgIGVuZ2luZS0+cHJpdi0+c2VsZWN0aW9uX2FuY2hvcl9wb3MgPSBhbmNob3Jf cG9zOworLSAgICAvLyBnX2RlYnVnICgic2V0LXN1cnJvdW5kaW5nLXRleHQgKCclcycsICVkLCAl ZCkiLCB0ZXh0LT50ZXh0LCBjdXJzb3JfcG9zLCBhbmNob3JfcG9zKTsKKyB9CisgCisgc3RhdGlj IHZvaWQKK0BAIC0xNzQyLDE3ICsxNzYxLDE4IEBAIGlidXNfZW5naW5lX3Byb2Nlc3NfaGFuZF93 cml0aW5nX2V2ZW50IChJQnVzRW5naW5lICAgICAgICAgKmVuZ2luZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2RvdWJsZSAgICAgICpjb29yZGluYXRl cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAg ICAgICAgICBjb29yZGluYXRlc19sZW4pCisgeworLSAgICAvLyBndWludCBpOworLSAgICAvLyBn X2RlYnVnICgicHJvY2Vzcy1oYW5kLXdyaXRpbmctZXZlbnQgKCV1KSIsIGNvb3JkaW5hdGVzX2xl bik7CistICAgIC8vIGZvciAoaSA9IDA7IGkgPCBjb29yZGluYXRlc19sZW47IGkrKykKKy0gICAg Ly8gICAgIGdfZGVidWcgKCIgJWxmIiwgY29vcmRpbmF0ZXNbaV0pOworKyNpZiAwCisrICAgIGd1 aW50IGk7CisrICAgIGdfZGVidWcgKCJwcm9jZXNzLWhhbmQtd3JpdGluZy1ldmVudCAoJXUpIiwg Y29vcmRpbmF0ZXNfbGVuKTsKKysgICAgZm9yIChpID0gMDsgaSA8IGNvb3JkaW5hdGVzX2xlbjsg aSsrKQorKyAgICAgICAgZ19kZWJ1ZyAoIiAlbGYiLCBjb29yZGluYXRlc1tpXSk7CisrI2VuZGlm CisgfQorIAorIHN0YXRpYyB2b2lkCisgaWJ1c19lbmdpbmVfY2FuY2VsX2hhbmRfd3JpdGluZyAo SUJ1c0VuZ2luZSAgICAgICAgICplbmdpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3VpbnQgICAgICAgICAgICAgICBuX3N0cm9rZXMpCisgeworLSAgICAvLyBnX2RlYnVn ICgiY2FuY2VsLWhhbmQtd3JpdGluZyAoJXUpIiwgbl9zdHJva2VzKTsKKyB9CisgCisgc3RhdGlj IHZvaWQKK0BAIC0xNzYwLDcgKzE3ODAsNiBAQCBpYnVzX2VuZ2luZV9zZXRfY29udGVudF90eXBl IChJQnVzRW5naW5lICplbmdpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vp bnQgICAgICAgcHVycG9zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAg ICAgICBoaW50cykKKyB7CistICAgIC8vIGdfZGVidWcgKCJzZXQtY29udGVudC10eXBlICgldSAl dSkiLCBwdXJwb3NlLCBoaW50cyk7CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtMjA4NSw4ICsy MTA0LDYgQEAgaWJ1c19lbmdpbmVfZ2V0X3N1cnJvdW5kaW5nX3RleHQgKElCdXNFbmdpbmUgICAq ZW5naW5lLAorICAgICBpYnVzX2VuZ2luZV9lbWl0X3NpZ25hbCAoZW5naW5lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIlJlcXVpcmVTdXJyb3VuZGluZ1RleHQiLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CistCistICAgIC8vIGdfZGVidWcgKCJnZXQtc3Vy cm91bmRpbmctdGV4dCAoJyVzJywgJWQsICVkKSIsICgqdGV4dCktPnRleHQsICpjdXJzb3JfcG9z LCAqYW5jaG9yX3Bvcyk7CisgfQorIAorIHZvaWQKIC0tIAotMi4zNy4zCisyLjM4LjEKIAoKZGlm ZiAtLWdpdCBhL2lidXMuc3BlYyBiL2lidXMuc3BlYwppbmRleCA2ZjNmMGI5Li4yNzA0MzdjIDEw MDY0NAotLS0gYS9pYnVzLnNwZWMKKysrIGIvaWJ1cy5zcGVjCkBAIC01MCw3ICs1MCw3IEBACiAK IE5hbWU6ICAgICAgICAgICBpYnVzCiBWZXJzaW9uOiAgICAgICAgMS41LjI3Ci1SZWxlYXNlOiAg ICAgICAgMTMlez9kaXN0fQorUmVsZWFzZTogICAgICAgIDE0JXs/ZGlzdH0KIFN1bW1hcnk6ICAg ICAgICBJbnRlbGxpZ2VudCBJbnB1dCBCdXMgZm9yIExpbnV4IE9TCiBMaWNlbnNlOiAgICAgICAg TEdQTC0yLjAtb3ItbGF0ZXIKIFVSTDogICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vaWJ1 cy8lbmFtZS93aWtpCkBAIC01NTgsNiArNTU4LDEwIEBAIGRjb25mIHVwZGF0ZSB8fCA6CiAle19k YXRhZGlyfS9pbnN0YWxsZWQtdGVzdHMvaWJ1cwogCiAlY2hhbmdlbG9nCisqIFdlZCBKYW4gMjUg MjAyMyBUYWthbyBGdWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4gLSAxLjUuMjctMTQKKy0g QWRkIGFjdGl2ZS1zdXJyb3VuZGluZy10ZXh0IHByb3BlcnR5IHRvIElCdXNFbmdpbmUKKy0gUmVm YWN0b3Igc3Vycm91bmRpbmcgdGV4dCB3YXJuaW5nICYgZnJlZSBmb2N1cy1pZCB0YWJsZXMKKwog KiBUaHUgSmFuIDE5IDIwMjMgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRv cmFwcm9qZWN0Lm9yZz4gLSAxLjUuMjctMTMKIC0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFw cm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zOF9NYXNzX1JlYnVpbGQKIAo=