Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vsG91-00DOqz-19 for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Feb 2026 08:09:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vsG8z-0096dU-0U for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Feb 2026 08:09:17 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vsG8y-0096dJ-0l for pgsql-hackers@lists.postgresql.org; Tue, 17 Feb 2026 08:09:16 +0000 Received: from smtp.outgoing.loopia.se ([93.188.3.37]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vsG8r-000000011dq-3p1V for pgsql-hackers@postgresql.org; Tue, 17 Feb 2026 08:09:15 +0000 Received: from s807.loopia.se (localhost [127.0.0.1]) by s807.loopia.se (Postfix) with ESMTP id 49BF74C5DDC for ; Tue, 17 Feb 2026 09:09:07 +0100 (CET) Received: from s979.loopia.se (unknown [172.22.191.6]) by s807.loopia.se (Postfix) with ESMTP id 38FFC4C6371 for ; Tue, 17 Feb 2026 09:09:07 +0100 (CET) Received: from s473.loopia.se (unknown [172.22.191.5]) by s979.loopia.se (Postfix) with ESMTP id 36C3910BC4BA for ; Tue, 17 Feb 2026 09:09:07 +0100 (CET) X-Virus-Scanned: amavisd-new at amavis.loopia.se X-Spam-Flag: NO X-Spam-Score: -1.2 X-Spam-Level: X-Spam-Status: No, score=-1.2 tagged_above=-999 required=6.2 tests=[ALL_TRUSTED=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1] autolearn=disabled Authentication-Results: s473.loopia.se (amavisd-new); dkim=pass (2048-bit key) header.d=proxel.se Received: from s899.loopia.se ([172.22.191.6]) by s473.loopia.se (s473.loopia.se [172.22.190.13]) (amavisd-new, port 10024) with LMTP id 5ovbY6qlEUwV for ; Tue, 17 Feb 2026 09:09:06 +0100 (CET) X-Loopia-Auth: user X-Loopia-User: andreas@proxel.se X-Loopia-Originating-IP: 147.28.75.140 Received: from [192.168.0.121] (customer-147-28-75-140.stosn.net [147.28.75.140]) (Authenticated sender: andreas@proxel.se) by s899.loopia.se (Postfix) with ESMTPSA id E9C572C8BACE for ; Tue, 17 Feb 2026 09:09:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxel.se; s=loopiadkim1707418970; t=1771315746; bh=PRXyJD4DZWDcpIfc7DdHPq1LJsX05Vr2zj6ya+wfx08=; h=Date:From:To:Subject; b=HZFNeiO9mPMTuOO4kIAO4gYfmZfcIexXwXsU0J6IxZ8tnlo8JqDUTsG8suB6K4uwk 6L+mmZPpkrNa5ANSFuYDy9fZnJeq7uteVZT0I4UKm1bUydvuCUamRzdwmw3kf05cgX XZkzuyLuhrViaezZHhcrjfJM/6V6WzT8+wdY3GJaqBLhyKe5rXTcp5/MCeuNnjL48d UAPSfUz4LM65DXmO9xo6JNWUy3Q0oIksm1UnLXunDeB8fUkBCzY6x5lGZmih6i4snq nTKpWd2aIjNbCNrh4kltkfBeBWR4FTGjwGT4+ZdCpbDYCW6KGcxOZFhEyhgU1vHXKb JHmb5xdgB3jCw== Content-Type: multipart/mixed; boundary="------------tZNhokcmpVciz1YNKRHAcfJO" Message-ID: Date: Tue, 17 Feb 2026 09:09:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Andreas Karlsson To: pgsql-hackers Subject: Improve pgindent's formatting named fields in struct literals and varidic functions List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------tZNhokcmpVciz1YNKRHAcfJO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, A personal pet peeve of mine has been how pgindent formats struct literals with named fields, for example the below: static RBTNode sentinel = { .color = RBTBLACK,.left = RBTNIL,.right = RBTNIL,.parent = NULL }; The attached patch fixes the formatting to be nicer: static RBTNode sentinel = { .color = RBTBLACK, .left = RBTNIL, .right = RBTNIL, .parent = NULL }; It is currently the only example but I mainly think that is because the current formatting looks ugly so we avoid putting struct literals on a single line. Plus I have seen this formatting in PostgreSQL extensions. While fixing this personal annoyance I noticed that my fix also would fix the formatting of varidic functions. For example: -errdetail(const char *fmt,...) +errdetail(const char *fmt, ...) What do you think? I think both are clear improvements to the readability and that the churn is not big enough to be an issue. Andreas --------------tZNhokcmpVciz1YNKRHAcfJO Content-Type: text/x-patch; charset=UTF-8; name="v1-0001-Make-pgindent-add-a-space-between-comma-and-perio.patch" Content-Disposition: attachment; filename*0="v1-0001-Make-pgindent-add-a-space-between-comma-and-perio.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBiNDYwZjE0MDkzOTAyM2RmYThjN2EzYTM5YzFhYTM4ODFmODE5YTJlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogVHVlLCAxNyBGZWIgMjAyNiAwOTowNDowMSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjEgMS8yXSBNYWtlIHBnaW5kZW50IGFkZCBhIHNwYWNlIGJldHdlZW4gY29tbWEg YW5kIHBlcmlvZAoKRm9ybWF0dGluZyBvZiB2YXJpZGljIGZ1bmN0aW9ucyBhbmQgc3RydWN0 IGxpdGVyYWxzIHdpdGggbmFtZWQgZmllbGQKdXNlZCB0byBiZSB1Z2x5IGR1ZSB0byBwZ2lu ZGVudCB0cmVhaW5nIHBlcmlvZCBhcyBhbHdheXMgYmVpbmcgYmluYXJ5Cm9wZXJhdG9yIGZv ciBzdHJ1Y3QgYWNjZXNzLCBidXQgYWZ0ZXIgY29tbWEgaXQgaGFzIGEgZGlmZmVyZW50IG1l YW5pbmcuCi0tLQogc3JjL3Rvb2xzL3BnX2JzZF9pbmRlbnQvaW5kZW50LmMgfCAyICsrCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xz L3BnX2JzZF9pbmRlbnQvaW5kZW50LmMgYi9zcmMvdG9vbHMvcGdfYnNkX2luZGVudC9pbmRl bnQuYwppbmRleCAyNjIyY2M2MjI3YS4uZjRlYTEwYzBiYTggMTAwNjQ0Ci0tLSBhL3NyYy90 b29scy9wZ19ic2RfaW5kZW50L2luZGVudC5jCisrKyBiL3NyYy90b29scy9wZ19ic2RfaW5k ZW50L2luZGVudC5jCkBAIC0xMDEyLDYgKzEwMTIsOCBAQCBjaGVja190eXBlOgogCiAJY2Fz ZSBwZXJpb2Q6CQkvKiB0cmVhdCBhIHBlcmlvZCBraW5kIG9mIGxpa2UgYSBiaW5hcnkKIAkJ CQkgKiBvcGVyYXRpb24gKi8KKwkgICAgaWYgKHBzLndhbnRfYmxhbmsgJiYgcHMubGFzdF90 b2tlbiA9PSBjb21tYSkKKwkgICAgICAgICplX2NvZGUrKyA9ICcgJzsKIAkgICAgKmVfY29k ZSsrID0gJy4nOwkvKiBtb3ZlIHRoZSBwZXJpb2QgaW50byBsaW5lICovCiAJICAgIHBzLndh bnRfYmxhbmsgPSBmYWxzZTsJLyogZG9udCBwdXQgYSBibGFuayBhZnRlciBhIHBlcmlvZCAq LwogCSAgICBicmVhazsKLS0gCjIuNDcuMwoK --------------tZNhokcmpVciz1YNKRHAcfJO Content-Type: text/x-patch; charset=UTF-8; name="v1-0002-Run-pgindent-add-a-space-between-comma-and-period.patch" Content-Disposition: attachment; filename*0="v1-0002-Run-pgindent-add-a-space-between-comma-and-period.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA0ZDQwZTU1ODdiYWQ4MzY0YzQ0MzkyZTYzMDI1ZWVmNTJhODVkZmM1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogVHVlLCAxNyBGZWIgMjAyNiAwOTowNzozMSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjEgMi8yXSBSdW4gcGdpbmRlbnQgYWRkIGEgc3BhY2UgYmV0d2VlbiBjb21tYSBh bmQgcGVyaW9kCgotLS0KIGNvbnRyaWIvZGJsaW5rL2RibGluay5jICAgICAgICAgICAgICAg ICAgICAgICB8ICA0ICstLQogY29udHJpYi9mdXp6eXN0cm1hdGNoL2RtZXRhcGhvbmUuYyAg ICAgICAgICAgIHwgIDIgKy0KIGNvbnRyaWIvanNvbmJfcGxweXRob24vanNvbmJfcGxweXRo b24uYyAgICAgICB8ICAyICstCiBjb250cmliL3BnY3J5cHRvL3B4LmMgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQogY29udHJpYi9wZ2NyeXB0by9weC5oICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlk YXRlLmMgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9n cmVhZGVyLmMgICAgICAgfCAgNCArLS0KIHNyYy9iYWNrZW5kL2JhY2t1cC9iYXNlYmFja3Vw X2luY3JlbWVudGFsLmMgICB8ICA0ICstLQogc3JjL2JhY2tlbmQvYmFja3VwL3dhbHN1bW1h cnkuYyAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2xpYi9yYnRyZWUuYyAg ICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9lcnJvci9l bG9nLmMgICAgICAgICAgICAgICAgfCAyOCArKysrKysrKystLS0tLS0tLS0tCiBzcmMvYmFj a2VuZC91dGlscy9lcnJvci9qc29ubG9nLmMgICAgICAgICAgICAgfCAgNCArLS0KIHNyYy9i YWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgICAgICAgICAgICAgICAgICB8ICA0ICstLQogc3Jj L2Jpbi9wZ19jb21iaW5lYmFja3VwL2xvYWRfbWFuaWZlc3QuYyAgICAgIHwgIDQgKy0tCiBz cmMvYmluL3BnX2N0bC9wZ19jdGwuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0K IHNyYy9iaW4vcGdfZHVtcC9maWx0ZXIuYyAgICAgICAgICAgICAgICAgICAgICB8ICAyICst CiBzcmMvYmluL3BnX2R1bXAvZmlsdGVyLmggICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oICAgICAgICAgICAgICAgICAgIHwgIDIg Ky0KIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyAgICAgICAgICB8ICA2 ICsrLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuaCAgICAgICAgICB8 ICA0ICstLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF90YXIuYyAgICAgICAgICAgICAg IHwgIDQgKy0tCiBzcmMvYmluL3BnX3VwZ3JhZGUvZXhlYy5jICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogc3JjL2Jpbi9wZ191cGdyYWRlL3BhcmFsbGVsLmMgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmggICAgICAgICAg ICAgICB8IDE2ICsrKysrLS0tLS0tCiBzcmMvYmluL3BnX3VwZ3JhZGUvc2VydmVyLmMgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jpbi9wZ191cGdyYWRlL3V0aWwuYyAgICAg ICAgICAgICAgICAgICAgIHwgMTAgKysrLS0tLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAv cGdfdmVyaWZ5YmFja3VwLmMgICAgIHwgIDggKysrLS0tCiBzcmMvYmluL3BnX3ZlcmlmeWJh Y2t1cC9wZ192ZXJpZnliYWNrdXAuaCAgICAgfCAgNCArLS0KIHNyYy9iaW4vcGdfd2Fsc3Vt bWFyeS9wZ193YWxzdW1tYXJ5LmMgICAgICAgICB8ICA0ICstLQogc3JjL2Jpbi9wc3FsL2xh cmdlX29iai5jICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBzcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgNiArKy0tCiBzcmMvY29tbW9u L2xvZ2dpbmcuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2NvbW1v bi9wZXJjZW50cmVwbC5jICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9jb21t b24vcHNwcmludGYuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvY29t bW9uL3N0cmluZ2luZm8uYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2lu Y2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaCAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9p bmNsdWRlL2JhY2t1cC93YWxzdW1tYXJ5LmggICAgICAgICAgICAgICB8ICAyICstCiBzcmMv aW5jbHVkZS9jb21tb24vYmxrcmVmdGFibGUuaCAgICAgICAgICAgICAgfCAgMiArLQogc3Jj L2luY2x1ZGUvY29tbW9uL2ZlX21lbXV0aWxzLmggICAgICAgICAgICAgIHwgIDIgKy0KIHNy Yy9pbmNsdWRlL2NvbW1vbi9sb2dnaW5nLmggICAgICAgICAgICAgICAgICB8ICAyICstCiBz cmMvaW5jbHVkZS9jb21tb24vcGFyc2VfbWFuaWZlc3QuaCAgICAgICAgICAgfCAgMiArLQog c3JjL2luY2x1ZGUvY29tbW9uL3BlcmNlbnRyZXBsLmggICAgICAgICAgICAgIHwgIDIgKy0K IHNyYy9pbmNsdWRlL2ppdC9sbHZtaml0X2VtaXQuaCAgICAgICAgICAgICAgICB8ICA4ICsr Ky0tLQogc3JjL2luY2x1ZGUvbGliL3N0cmluZ2luZm8uaCAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIHNyYy9pbmNsdWRlL3BvcnQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDEwICsrKy0tLS0KIHNyYy9pbmNsdWRlL3V0aWxzL2Vsb2cuaCAgICAgICAgICAgICAgICAg ICAgICB8IDI4ICsrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL3V0aWxzL3BhbGxv Yy5oICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvaW50ZXJmYWNlcy9lY3BnL2Vj cGdsaWIvZGVzY3JpcHRvci5jICAgICAgfCAgNiArKy0tCiBzcmMvaW50ZXJmYWNlcy9lY3Bn L2VjcGdsaWIvZWNwZ2xpYl9leHRlcm4uaCAgfCAgMiArLQogc3JjL2ludGVyZmFjZXMvZWNw Zy9lY3BnbGliL2V4ZWN1dGUuYyAgICAgICAgIHwgIDIgKy0KIHNyYy9pbnRlcmZhY2VzL2Vj cGcvZWNwZ2xpYi9taXNjLmMgICAgICAgICAgICB8ICAyICstCiBzcmMvaW50ZXJmYWNlcy9l Y3BnL2luY2x1ZGUvZWNwZ2xpYi5oICAgICAgICAgfCAgOCArKystLS0KIHNyYy9pbnRlcmZh Y2VzL2VjcGcvcHJlcHJvYy9wcmVwcm9jX2V4dGVybi5oICB8ICA2ICsrLS0KIHNyYy9pbnRl cmZhY2VzL2VjcGcvcHJlcHJvYy91dGlsLmMgICAgICAgICAgICB8ICA2ICsrLS0KIHNyYy9p bnRlcmZhY2VzL2xpYnBxLW9hdXRoL29hdXRoLXV0aWxzLmMgICAgICB8ICAyICstCiBzcmMv aW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5oICAgICAgfCAgMiArLQogc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNy Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLW1pc2MuYyAgICAgICAgICAgICAgICB8ICA0ICstLQog c3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggICAgICAgICAgICAgIHwgIDYgKyst LQogc3JjL2ludGVyZmFjZXMvbGlicHEvcHFleHBidWZmZXIuYyAgICAgICAgICAgIHwgIDQg Ky0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZlci5oICAgICAgICAgICAgfCAg NCArLS0KIHNyYy9wbC9wbHB5dGhvbi9wbHB5X2Vsb2cuYyAgICAgICAgICAgICAgICAgICB8 ICA2ICsrLS0KIHNyYy9wbC9wbHB5dGhvbi9wbHB5X2Vsb2cuaCAgICAgICAgICAgICAgICAg ICB8ICA2ICsrLS0KIHNyYy9wb3J0L29wZW4uYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBzcmMvcG9ydC9zbnByaW50Zi5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgOCArKystLS0KIHNyYy9wb3J0L3dpbjMyc2VjdXJpdHkuYyAgICAgICAgICAg ICAgICAgICAgICB8ICA0ICstLQogLi4uL21vZHVsZXMvbGlicHFfcGlwZWxpbmUvbGlicHFf cGlwZWxpbmUuYyAgIHwgIDQgKy0tCiBzcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MuYyAg ICAgICAgICAgICAgICAgfCAxMiArKysrLS0tLQogc3JjL3RpbWV6b25lL3ppYy5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrLS0tCiA2OSBmaWxlcyBjaGFuZ2VkLCAx NjMgaW5zZXJ0aW9ucygrKSwgMTYzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRy aWIvZGJsaW5rL2RibGluay5jIGIvY29udHJpYi9kYmxpbmsvZGJsaW5rLmMKaW5kZXggMjQ5 OGQ4MGM4ZTcuLmEyNDY3NjZjYWZiIDEwMDY0NAotLS0gYS9jb250cmliL2RibGluay9kYmxp bmsuYworKysgYi9jb250cmliL2RibGluay9kYmxpbmsuYwpAQCAtMTIyLDcgKzEyMiw3IEBA IHN0YXRpYyBib29sIGRibGlua19jb25uc3RyX2hhc19wdyhjb25zdCBjaGFyICpjb25uc3Ry KTsKIHN0YXRpYyB2b2lkIGRibGlua19zZWN1cml0eV9jaGVjayhQR2Nvbm4gKmNvbm4sIGNv bnN0IGNoYXIgKmNvbm5uYW1lLAogCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmNvbm5zdHIpOwog c3RhdGljIHZvaWQgZGJsaW5rX3Jlc19lcnJvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIg KmNvbm5hbWUsIFBHcmVzdWx0ICpyZXMsCi0JCQkJCQkJIGJvb2wgZmFpbCwgY29uc3QgY2hh ciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zig1LCA2KTsKKwkJCQkJCQkgYm9vbCBm YWlsLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zig1LCA2KTsK IHN0YXRpYyBjaGFyICpnZXRfY29ubmVjdF9zdHJpbmcoY29uc3QgY2hhciAqc2VydmVybmFt ZSk7CiBzdGF0aWMgY2hhciAqZXNjYXBlX3BhcmFtX3N0cihjb25zdCBjaGFyICpzdHIpOwog c3RhdGljIHZvaWQgdmFsaWRhdGVfcGthdHRudW1zKFJlbGF0aW9uIHJlbCwKQEAgLTI3ODcs NyArMjc4Nyw3IEBAIGRibGlua19jb25uc3RyX2NoZWNrKGNvbnN0IGNoYXIgKmNvbm5zdHIp CiAgKi8KIHN0YXRpYyB2b2lkCiBkYmxpbmtfcmVzX2Vycm9yKFBHY29ubiAqY29ubiwgY29u c3QgY2hhciAqY29ubmFtZSwgUEdyZXN1bHQgKnJlcywKLQkJCQkgYm9vbCBmYWlsLCBjb25z dCBjaGFyICpmbXQsLi4uKQorCQkJCSBib29sIGZhaWwsIGNvbnN0IGNoYXIgKmZtdCwgLi4u KQogewogCWludAkJCWxldmVsOwogCWNoYXIJICAgKnBnX2RpYWdfc3Fsc3RhdGUgPSBQUXJl c3VsdEVycm9yRmllbGQocmVzLCBQR19ESUFHX1NRTFNUQVRFKTsKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvZnV6enlzdHJtYXRjaC9kbWV0YXBob25lLmMgYi9jb250cmliL2Z1enp5c3RybWF0 Y2gvZG1ldGFwaG9uZS5jCmluZGV4IDA2MjY2NzUyN2MyLi5mOTRiNDE4N2U0MCAxMDA2NDQK LS0tIGEvY29udHJpYi9mdXp6eXN0cm1hdGNoL2RtZXRhcGhvbmUuYworKysgYi9jb250cmli L2Z1enp5c3RybWF0Y2gvZG1ldGFwaG9uZS5jCkBAIC0zNTAsNyArMzUwLDcgQEAgU2V0QXQo bWV0YXN0cmluZyAqcywgaW50IHBvcywgY2hhciBjKQogICAgQ2F2ZWF0czogdGhlIFNUQVJU IHZhbHVlIGlzIDAgYmFzZWQKICovCiBzdGF0aWMgaW50Ci1TdHJpbmdBdChtZXRhc3RyaW5n ICpzLCBpbnQgc3RhcnQsIGludCBsZW5ndGgsLi4uKQorU3RyaW5nQXQobWV0YXN0cmluZyAq cywgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoLCAuLi4pCiB7CiAJY2hhcgkgICAqdGVzdDsKIAlj aGFyCSAgICpwb3M7CmRpZmYgLS1naXQgYS9jb250cmliL2pzb25iX3BscHl0aG9uL2pzb25i X3BscHl0aG9uLmMgYi9jb250cmliL2pzb25iX3BscHl0aG9uL2pzb25iX3BscHl0aG9uLmMK aW5kZXggYzJjNGNlMzdjMDguLjRkZTc1YTA0ZTc2IDEwMDY0NAotLS0gYS9jb250cmliL2pz b25iX3BscHl0aG9uL2pzb25iX3BscHl0aG9uLmMKKysrIGIvY29udHJpYi9qc29uYl9wbHB5 dGhvbi9qc29uYl9wbHB5dGhvbi5jCkBAIC0xNiw3ICsxNiw3IEBAIFBHX01PRFVMRV9NQUdJ Q19FWFQoCiB0eXBlZGVmIGNoYXIgKigqUEx5T2JqZWN0X0FzU3RyaW5nX3QpIChQeU9iamVj dCAqcGxydik7CiBzdGF0aWMgUEx5T2JqZWN0X0FzU3RyaW5nX3QgUEx5T2JqZWN0X0FzU3Ry aW5nX3A7CiAKLXR5cGVkZWYgdm9pZCAoKlBMeV9lbG9nX2ltcGxfdCkgKGludCBlbGV2ZWws IGNvbnN0IGNoYXIgKmZtdCwuLi4pOwordHlwZWRlZiB2b2lkICgqUEx5X2Vsb2dfaW1wbF90 KSAoaW50IGVsZXZlbCwgY29uc3QgY2hhciAqZm10LCAuLi4pOwogc3RhdGljIFBMeV9lbG9n X2ltcGxfdCBQTHlfZWxvZ19pbXBsX3A7CiAKIC8qCmRpZmYgLS1naXQgYS9jb250cmliL3Bn Y3J5cHRvL3B4LmMgYi9jb250cmliL3BnY3J5cHRvL3B4LmMKaW5kZXggZjA4YmM0OThhYzgu LjMyZjYyZjNmYzFiIDEwMDY0NAotLS0gYS9jb250cmliL3BnY3J5cHRvL3B4LmMKKysrIGIv Y29udHJpYi9wZ2NyeXB0by9weC5jCkBAIC0xNDcsNyArMTQ3LDcgQEAgcHhfc2V0X2RlYnVn X2hhbmRsZXIodm9pZCAoKmhhbmRsZXIpIChjb25zdCBjaGFyICopKQogfQogCiB2b2lkCi1w eF9kZWJ1Zyhjb25zdCBjaGFyICpmbXQsLi4uKQorcHhfZGVidWcoY29uc3QgY2hhciAqZm10 LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdjcnlw dG8vcHguaCBiL2NvbnRyaWIvcGdjcnlwdG8vcHguaAppbmRleCBhMDk1MzNhMzU4Mi4uNDQw YWNmNmE1MjcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdjcnlwdG8vcHguaAorKysgYi9jb250 cmliL3BnY3J5cHRvL3B4LmgKQEAgLTE5NCw3ICsxOTQsNyBAQCBib29sCQlDaGVja0ZJUFNN b2RlKHZvaWQpOwogdm9pZAkJQ2hlY2tCdWlsdGluQ3J5cHRvTW9kZSh2b2lkKTsKIAogI2lm ZGVmIFBYX0RFQlVHCi12b2lkCQlweF9kZWJ1Zyhjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19h dHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwordm9pZAkJcHhfZGVidWcoY29uc3QgY2hhciAqZm10 LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAjZWxzZQogI2RlZmluZSBweF9k ZWJ1ZyguLi4pCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRl eC9hbXZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5j CmluZGV4IGY4NmJhN2Q3NmQyLi45NmVmMTllOTZmZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2luZGV4L2FtdmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aW5kZXgvYW12YWxpZGF0ZS5jCkBAIC0xNTAsNyArMTUwLDcgQEAgaWRlbnRpZnlfb3BmYW1p bHlfZ3JvdXBzKENhdENMaXN0ICpvcHJsaXN0LCBDYXRDTGlzdCAqcHJvY2xpc3QpCiAgKi8K IGJvb2wKIGNoZWNrX2FtcHJvY19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgT2lkIHJlc3R5cGUs IGJvb2wgZXhhY3QsCi0JCQkJCSAgIGludCBtaW5hcmdzLCBpbnQgbWF4YXJncywuLi4pCisJ CQkJCSAgIGludCBtaW5hcmdzLCBpbnQgbWF4YXJncywgLi4uKQogewogCWJvb2wJCXJlc3Vs dCA9IHRydWU7CiAJSGVhcFR1cGxlCXRwOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZ3JlYWRlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGxvZ3JlYWRlci5jCmluZGV4IDAzYWRhOGFhMGM1Li4yZjZjNmFlMThkYSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlYWRlci5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWFkZXIuYwpAQCAtNDAsNyArNDAsNyBAQAog I2luY2x1ZGUgImNvbW1vbi9sb2dnaW5nLmgiCiAjZW5kaWYKIAotc3RhdGljIHZvaWQgcmVw b3J0X2ludmFsaWRfcmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIGNvbnN0IGNoYXIg KmZtdCwuLi4pCitzdGF0aWMgdm9pZCByZXBvcnRfaW52YWxpZF9yZWNvcmQoWExvZ1JlYWRl clN0YXRlICpzdGF0ZSwgY29uc3QgY2hhciAqZm10LCAuLi4pCiAJCQlwZ19hdHRyaWJ1dGVf cHJpbnRmKDIsIDMpOwogc3RhdGljIHZvaWQgYWxsb2NhdGVfcmVjb3JkYnVmKFhMb2dSZWFk ZXJTdGF0ZSAqc3RhdGUsIHVpbnQzMiByZWNsZW5ndGgpOwogc3RhdGljIGludAlSZWFkUGFn ZUludGVybmFsKFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhMb2dSZWNQdHIgcGFnZXB0ciwK QEAgLTY5LDcgKzY5LDcgQEAgc3RhdGljIHZvaWQgV0FMT3BlblNlZ21lbnRJbml0KFdBTE9w ZW5TZWdtZW50ICpzZWcsIFdBTFNlZ21lbnRDb250ZXh0ICpzZWdjeHQsCiAgKiB0aGUgY3Vy cmVudCByZWNvcmQgYmVpbmcgcmVhZC4KICAqLwogc3RhdGljIHZvaWQKLXJlcG9ydF9pbnZh bGlkX3JlY29yZChYTG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBjb25zdCBjaGFyICpmbXQsLi4u KQorcmVwb3J0X2ludmFsaWRfcmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIGNvbnN0 IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFyZ3M7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2JhY2t1cC9iYXNlYmFja3VwX2luY3JlbWVudGFsLmMgYi9zcmMvYmFja2Vu ZC9iYWNrdXAvYmFzZWJhY2t1cF9pbmNyZW1lbnRhbC5jCmluZGV4IGY1OGVkOWIxOThhLi5l Mzc3ZjRkZTI4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYmFja3VwL2Jhc2ViYWNrdXBf aW5jcmVtZW50YWwuYworKysgYi9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cF9pbmNy ZW1lbnRhbC5jCkBAIC0xNDAsNyArMTQwLDcgQEAgc3RhdGljIHZvaWQgbWFuaWZlc3RfcHJv Y2Vzc193YWxfcmFuZ2UoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0ICpjb250ZXh0LAogCQkJ CQkJCQkJICAgWExvZ1JlY1B0ciBzdGFydF9sc24sCiAJCQkJCQkJCQkgICBYTG9nUmVjUHRy IGVuZF9sc24pOwogcGdfbm9yZXR1cm4gc3RhdGljIHZvaWQgbWFuaWZlc3RfcmVwb3J0X2Vy cm9yKEpzb25NYW5pZmVzdFBhcnNlQ29udGV4dCAqY29udGV4dCwKLQkJCQkJCQkJCQkJICBj b25zdCBjaGFyICpmbXQsLi4uKQorCQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmZtdCwgLi4u KQogCQkJcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIHN0YXRpYyBpbnQJY29tcGFyZV9i bG9ja19udW1iZXJzKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpOwogCkBAIC0xMDIw LDcgKzEwMjAsNyBAQCBtYW5pZmVzdF9wcm9jZXNzX3dhbF9yYW5nZShKc29uTWFuaWZlc3RQ YXJzZUNvbnRleHQgKmNvbnRleHQsCiAgKiBtYW5pZmVzdC4KICAqLwogc3RhdGljIHZvaWQK LW1hbmlmZXN0X3JlcG9ydF9lcnJvcihKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRl eHQsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCittYW5pZmVzdF9yZXBvcnRfZXJyb3IoSnNvbk1h bmlmZXN0UGFyc2VDb250ZXh0ICpjb250ZXh0LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsK IAlTdHJpbmdJbmZvRGF0YSBlcnJidWY7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Jh Y2t1cC93YWxzdW1tYXJ5LmMgYi9zcmMvYmFja2VuZC9iYWNrdXAvd2Fsc3VtbWFyeS5jCmlu ZGV4IDRjZDE4MjRmYmM2Li4wY2RjODZhZjMwYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YmFja3VwL3dhbHN1bW1hcnkuYworKysgYi9zcmMvYmFja2VuZC9iYWNrdXAvd2Fsc3VtbWFy eS5jCkBAIC0zMTksNyArMzE5LDcgQEAgV3JpdGVXYWxTdW1tYXJ5KHZvaWQgKndhbF9zdW1t YXJ5X2lvLCB2b2lkICpkYXRhLCBpbnQgbGVuZ3RoKQogICogRXJyb3ItcmVwb3J0aW5nIGNh bGxiYWNrIGZvciB1c2Ugd2l0aCBDcmVhdGVCbG9ja1JlZlRhYmxlUmVhZGVyLgogICovCiB2 b2lkCi1SZXBvcnRXYWxTdW1tYXJ5RXJyb3Iodm9pZCAqY2FsbGJhY2tfYXJnLCBjaGFyICpm bXQsLi4uKQorUmVwb3J0V2FsU3VtbWFyeUVycm9yKHZvaWQgKmNhbGxiYWNrX2FyZywgY2hh ciAqZm10LCAuLi4pCiB7CiAJU3RyaW5nSW5mb0RhdGEgYnVmOwogCXZhX2xpc3QJCWFwOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbGliL3JidHJlZS5jIGIvc3JjL2JhY2tlbmQvbGli L3JidHJlZS5jCmluZGV4IGQ3YjQxMGQ0NDMwLi4wMzZmMzQ3ODA2MiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvbGliL3JidHJlZS5jCisrKyBiL3NyYy9iYWNrZW5kL2xpYi9yYnRyZWUu YwpAQCAtNjIsNyArNjIsNyBAQCBzdHJ1Y3QgUkJUcmVlCiAKIHN0YXRpYyBSQlROb2RlIHNl bnRpbmVsID0KIHsKLQkuY29sb3IgPSBSQlRCTEFDSywubGVmdCA9IFJCVE5JTCwucmlnaHQg PSBSQlROSUwsLnBhcmVudCA9IE5VTEwKKwkuY29sb3IgPSBSQlRCTEFDSywgLmxlZnQgPSBS QlROSUwsIC5yaWdodCA9IFJCVE5JTCwgLnBhcmVudCA9IE5VTEwKIH07CiAKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvZXJyb3IvZWxvZy5jCmluZGV4IDU5MzE1ZTk0ZTNlLi5hOTQ0MTBkY2JkYiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2Vycm9yL2Vsb2cuYwpAQCAtMTA3OCw3ICsxMDc4LDcgQEAgZXJyY29kZV9mb3Jf c29ja2V0X2FjY2Vzcyh2b2lkKQogICogZXJlcG9ydCB3aWxsIHByb3ZpZGUgb25lIGZvciB0 aGUgb3V0cHV0IG1ldGhvZHMgdGhhdCBuZWVkIGl0LgogICovCiBpbnQKLWVycm1zZyhjb25z dCBjaGFyICpmbXQsLi4uKQorZXJybXNnKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCUVy cm9yRGF0YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwog CU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTExNjgsNyArMTE2OCw3IEBAIHNldF9i YWNrdHJhY2UoRXJyb3JEYXRhICplZGF0YSwgaW50IG51bV9za2lwKQogICogZXJyb3IgcmVj dXJzaW9uLgogICovCiBpbnQKLWVycm1zZ19pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsLi4u KQorZXJybXNnX2ludGVybmFsKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCUVycm9yRGF0 YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwogCU1lbW9y eUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTExOTIsNyArMTE5Miw3IEBAIGVycm1zZ19pbnRl cm5hbChjb25zdCBjaGFyICpmbXQsLi4uKQogICovCiBpbnQKIGVycm1zZ19wbHVyYWwoY29u c3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAotCQkJICB1 bnNpZ25lZCBsb25nIG4sLi4uKQorCQkJICB1bnNpZ25lZCBsb25nIG4sIC4uLikKIHsKIAlF cnJvckRhdGEgICplZGF0YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0YWNrX2RlcHRoXTsK IAlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CkBAIC0xMjE0LDcgKzEyMTQsNyBAQCBlcnJt c2dfcGx1cmFsKGNvbnN0IGNoYXIgKmZtdF9zaW5ndWxhciwgY29uc3QgY2hhciAqZm10X3Bs dXJhbCwKICAqIGVycmRldGFpbCAtLS0gYWRkIGEgZGV0YWlsIGVycm9yIG1lc3NhZ2UgdGV4 dCB0byB0aGUgY3VycmVudCBlcnJvcgogICovCiBpbnQKLWVycmRldGFpbChjb25zdCBjaGFy ICpmbXQsLi4uKQorZXJyZGV0YWlsKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCUVycm9y RGF0YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwogCU1l bW9yeUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTEyNDEsNyArMTI0MSw3IEBAIGVycmRldGFp bChjb25zdCBjaGFyICpmbXQsLi4uKQogICogKHR5cGljYWxseSwgdGhhdCB0aGV5IGRvbid0 IHNlZW0gdG8gYmUgdXNlZnVsIHRvIGF2ZXJhZ2UgdXNlcnMpLgogICovCiBpbnQKLWVycmRl dGFpbF9pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsLi4uKQorZXJyZGV0YWlsX2ludGVybmFs KGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCUVycm9yRGF0YSAgKmVkYXRhID0gJmVycm9y ZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4 dDsKQEAgLTEyNjIsNyArMTI2Miw3IEBAIGVycmRldGFpbF9pbnRlcm5hbChjb25zdCBjaGFy ICpmbXQsLi4uKQogICogZXJyZGV0YWlsX2xvZyAtLS0gYWRkIGEgZGV0YWlsX2xvZyBlcnJv ciBtZXNzYWdlIHRleHQgdG8gdGhlIGN1cnJlbnQgZXJyb3IKICAqLwogaW50Ci1lcnJkZXRh aWxfbG9nKGNvbnN0IGNoYXIgKmZtdCwuLi4pCitlcnJkZXRhaWxfbG9nKGNvbnN0IGNoYXIg KmZtdCwgLi4uKQogewogCUVycm9yRGF0YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRh dGFfc3RhY2tfZGVwdGhdOwogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTEyODQs NyArMTI4NCw3IEBAIGVycmRldGFpbF9sb2coY29uc3QgY2hhciAqZm10LC4uLikKICAqLwog aW50CiBlcnJkZXRhaWxfbG9nX3BsdXJhbChjb25zdCBjaGFyICpmbXRfc2luZ3VsYXIsIGNv bnN0IGNoYXIgKmZtdF9wbHVyYWwsCi0JCQkJCSB1bnNpZ25lZCBsb25nIG4sLi4uKQorCQkJ CQkgdW5zaWduZWQgbG9uZyBuLCAuLi4pCiB7CiAJRXJyb3JEYXRhICAqZWRhdGEgPSAmZXJy b3JkYXRhW2Vycm9yZGF0YV9zdGFja19kZXB0aF07CiAJTWVtb3J5Q29udGV4dCBvbGRjb250 ZXh0OwpAQCAtMTMwNyw3ICsxMzA3LDcgQEAgZXJyZGV0YWlsX2xvZ19wbHVyYWwoY29uc3Qg Y2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAogICovCiBpbnQK IGVycmRldGFpbF9wbHVyYWwoY29uc3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFy ICpmbXRfcGx1cmFsLAotCQkJCSB1bnNpZ25lZCBsb25nIG4sLi4uKQorCQkJCSB1bnNpZ25l ZCBsb25nIG4sIC4uLikKIHsKIAlFcnJvckRhdGEgICplZGF0YSA9ICZlcnJvcmRhdGFbZXJy b3JkYXRhX3N0YWNrX2RlcHRoXTsKIAlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CkBAIC0x MzI4LDcgKzEzMjgsNyBAQCBlcnJkZXRhaWxfcGx1cmFsKGNvbnN0IGNoYXIgKmZtdF9zaW5n dWxhciwgY29uc3QgY2hhciAqZm10X3BsdXJhbCwKICAqIGVycmhpbnQgLS0tIGFkZCBhIGhp bnQgZXJyb3IgbWVzc2FnZSB0ZXh0IHRvIHRoZSBjdXJyZW50IGVycm9yCiAgKi8KIGludAot ZXJyaGludChjb25zdCBjaGFyICpmbXQsLi4uKQorZXJyaGludChjb25zdCBjaGFyICpmbXQs IC4uLikKIHsKIAlFcnJvckRhdGEgICplZGF0YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0 YWNrX2RlcHRoXTsKIAlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CkBAIC0xMzUwLDcgKzEz NTAsNyBAQCBlcnJoaW50KGNvbnN0IGNoYXIgKmZtdCwuLi4pCiAgKiBOb24tdHJhbnNsYXRl ZCB2ZXJzaW9uIG9mIGVycmhpbnQoKSwgc2VlIGFsc28gZXJybXNnX2ludGVybmFsKCkuCiAg Ki8KIGludAotZXJyaGludF9pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsLi4uKQorZXJyaGlu dF9pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlFcnJvckRhdGEgICplZGF0 YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0YWNrX2RlcHRoXTsKIAlNZW1vcnlDb250ZXh0 IG9sZGNvbnRleHQ7CkBAIC0xMzcyLDcgKzEzNzIsNyBAQCBlcnJoaW50X2ludGVybmFsKGNv bnN0IGNoYXIgKmZtdCwuLi4pCiAgKi8KIGludAogZXJyaGludF9wbHVyYWwoY29uc3QgY2hh ciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAotCQkJICAgdW5zaWdu ZWQgbG9uZyBuLC4uLikKKwkJCSAgIHVuc2lnbmVkIGxvbmcgbiwgLi4uKQogewogCUVycm9y RGF0YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwogCU1l bW9yeUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTEzOTcsNyArMTM5Nyw3IEBAIGVycmhpbnRf cGx1cmFsKGNvbnN0IGNoYXIgKmZtdF9zaW5ndWxhciwgY29uc3QgY2hhciAqZm10X3BsdXJh bCwKICAqIHN0YXRlcy4KICAqLwogaW50Ci1lcnJjb250ZXh0X21zZyhjb25zdCBjaGFyICpm bXQsLi4uKQorZXJyY29udGV4dF9tc2coY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJRXJy b3JEYXRhICAqZWRhdGEgPSAmZXJyb3JkYXRhW2Vycm9yZGF0YV9zdGFja19kZXB0aF07CiAJ TWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwpAQCAtMTY2OSw3ICsxNjY5LDcgQEAgcHJlX2Zv cm1hdF9lbG9nX3N0cmluZyhpbnQgZXJybnVtYmVyLCBjb25zdCBjaGFyICpkb21haW4pCiB9 CiAKIGNoYXIgKgotZm9ybWF0X2Vsb2dfc3RyaW5nKGNvbnN0IGNoYXIgKmZtdCwuLi4pCitm b3JtYXRfZWxvZ19zdHJpbmcoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJRXJyb3JEYXRh CWVycmRhdGE7CiAJRXJyb3JEYXRhICAqZWRhdGE7CkBAIC00MDQxLDcgKzQwNDEsNyBAQCBh cHBlbmRfd2l0aF90YWJzKFN0cmluZ0luZm8gYnVmLCBjb25zdCBjaGFyICpzdHIpCiAgKiBz YWZlbHkgKG1lbW9yeSBjb250ZXh0LCBHVUMgbG9hZCBldGMpCiAgKi8KIHZvaWQKLXdyaXRl X3N0ZGVycihjb25zdCBjaGFyICpmbXQsLi4uKQord3JpdGVfc3RkZXJyKGNvbnN0IGNoYXIg KmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFwOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9lcnJvci9qc29ubG9nLmMgYi9zcmMvYmFja2VuZC91dGlscy9lcnJvci9qc29u bG9nLmMKaW5kZXggMmZmNmEwMDQwNDYuLmU1YmEyMjc5NGQyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9lcnJvci9qc29ubG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv ZXJyb3IvanNvbmxvZy5jCkBAIC0zMCw3ICszMCw3IEBACiAKIHN0YXRpYyB2b2lkIGFwcGVu ZEpTT05LZXlWYWx1ZUZtdChTdHJpbmdJbmZvIGJ1ZiwgY29uc3QgY2hhciAqa2V5LAogCQkJ CQkJCQkgIGJvb2wgZXNjYXBlX2tleSwKLQkJCQkJCQkJICBjb25zdCBjaGFyICpmbXQsLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDQsIDUpOworCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmZt dCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDQsIDUpOwogCiAvKgogICogYXBwZW5kSlNP TktleVZhbHVlCkBAIC02OCw3ICs2OCw3IEBAIGFwcGVuZEpTT05LZXlWYWx1ZShTdHJpbmdJ bmZvIGJ1ZiwgY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICp2YWx1ZSwKICAqLwogc3Rh dGljIHZvaWQKIGFwcGVuZEpTT05LZXlWYWx1ZUZtdChTdHJpbmdJbmZvIGJ1ZiwgY29uc3Qg Y2hhciAqa2V5LAotCQkJCQkgIGJvb2wgZXNjYXBlX2tleSwgY29uc3QgY2hhciAqZm10LC4u LikKKwkJCQkJICBib29sIGVzY2FwZV9rZXksIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewog CWludAkJCXNhdmVfZXJybm8gPSBlcnJubzsKIAlzaXplX3QJCWxlbiA9IDEyODsJCS8qIGlu aXRpYWwgYXNzdW1wdGlvbiBhYm91dCBidWZmZXIgc2l6ZSAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj LmMKaW5kZXggYWU5ZDVmM2ZiNzAuLjhiYjUzOTQxNzVmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9taXNjL2d1Yy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj LmMKQEAgLTI2MCw3ICsyNjAsNyBAQCBzdGF0aWMgYm9vbCB2YWxpZF9jdXN0b21fdmFyaWFi bGVfbmFtZShjb25zdCBjaGFyICpuYW1lKTsKIHN0YXRpYyBib29sIGFzc2lnbmFibGVfY3Vz dG9tX3ZhcmlhYmxlX25hbWUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBza2lwX2Vycm9ycywK IAkJCQkJCQkJCQkJaW50IGVsZXZlbCk7CiBzdGF0aWMgdm9pZCBkb19zZXJpYWxpemUoY2hh ciAqKmRlc3RwdHIsIFNpemUgKm1heGJ5dGVzLAotCQkJCQkJIGNvbnN0IGNoYXIgKmZtdCwu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMywgNCk7CisJCQkJCQkgY29uc3QgY2hhciAqZm10 LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMywgNCk7CiBzdGF0aWMgYm9vbCBjYWxsX2Jv b2xfY2hlY2tfaG9vayhjb25zdCBzdHJ1Y3QgY29uZmlnX2dlbmVyaWMgKmNvbmYsIGJvb2wg Km5ld3ZhbCwKIAkJCQkJCQkJIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSwgaW50 IGVsZXZlbCk7CiBzdGF0aWMgYm9vbCBjYWxsX2ludF9jaGVja19ob29rKGNvbnN0IHN0cnVj dCBjb25maWdfZ2VuZXJpYyAqY29uZiwgaW50ICpuZXd2YWwsCkBAIC01ODQ1LDcgKzU4NDUs NyBAQCBFc3RpbWF0ZUdVQ1N0YXRlU3BhY2Uodm9pZCkKICAqIG1heGJ5dGVzIGlzIG5vdCBz dWZmaWNpZW50IHRvIGNvcHkgdGhlIHN0cmluZywgZXJyb3Igb3V0LgogICovCiBzdGF0aWMg dm9pZAotZG9fc2VyaWFsaXplKGNoYXIgKipkZXN0cHRyLCBTaXplICptYXhieXRlcywgY29u c3QgY2hhciAqZm10LC4uLikKK2RvX3NlcmlhbGl6ZShjaGFyICoqZGVzdHB0ciwgU2l6ZSAq bWF4Ynl0ZXMsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCXZhcmdzOwog CWludAkJCW47CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvbG9hZF9t YW5pZmVzdC5jIGIvc3JjL2Jpbi9wZ19jb21iaW5lYmFja3VwL2xvYWRfbWFuaWZlc3QuYwpp bmRleCBjMzYzYWM2MTg3ZS4uNWQyYzUyYjNjMzEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf Y29tYmluZWJhY2t1cC9sb2FkX21hbmlmZXN0LmMKKysrIGIvc3JjL2Jpbi9wZ19jb21iaW5l YmFja3VwL2xvYWRfbWFuaWZlc3QuYwpAQCAtNjksNyArNjksNyBAQCBzdGF0aWMgdm9pZCBj b21iaW5lYmFja3VwX3Blcl93YWxfcmFuZ2VfY2IoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0 ICpjb250ZXh0LAogCQkJCQkJCQkJCSAgIFhMb2dSZWNQdHIgc3RhcnRfbHNuLAogCQkJCQkJ CQkJCSAgIFhMb2dSZWNQdHIgZW5kX2xzbik7CiBwZ19ub3JldHVybiBzdGF0aWMgdm9pZCBy ZXBvcnRfbWFuaWZlc3RfZXJyb3IoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0ICpjb250ZXh0 LAotCQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmZtdCwuLi4pCisJCQkJCQkJCQkJCSAgY29u c3QgY2hhciAqZm10LCAuLi4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiAv KgpAQCAtMjI1LDcgKzIyNSw3IEBAIGxvYWRfYmFja3VwX21hbmlmZXN0KGNoYXIgKmJhY2t1 cF9kaXJlY3RvcnkpCiAgKiBleHBlY3RzIHRoaXMgZnVuY3Rpb24gbm90IHRvIHJldHVybi4K ICAqLwogc3RhdGljIHZvaWQKLXJlcG9ydF9tYW5pZmVzdF9lcnJvcihKc29uTWFuaWZlc3RQ YXJzZUNvbnRleHQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCityZXBvcnRfbWFu aWZlc3RfZXJyb3IoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0ICpjb250ZXh0LCBjb25zdCBj aGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcDsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19jdGwvcGdfY3RsLmMgYi9zcmMvYmluL3BnX2N0bC9wZ19jdGwuYwppbmRleCAxMjI4 NTZiNTk5ZS4uZDU0MjY1MTQzM2QgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY3RsL3BnX2N0 bC5jCisrKyBiL3NyYy9iaW4vcGdfY3RsL3BnX2N0bC5jCkBAIC0xMTQsNyArMTE0LDcgQEAg c3RhdGljIEhBTkRMRSBzaHV0ZG93bkhhbmRsZXNbMl07CiAjZW5kaWYKIAogCi1zdGF0aWMg dm9pZCB3cml0ZV9zdGRlcnIoY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3By aW50ZigxLCAyKTsKK3N0YXRpYyB2b2lkIHdyaXRlX3N0ZGVycihjb25zdCBjaGFyICpmbXQs IC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIHN0YXRpYyB2b2lkIGRvX2Fkdmlj ZSh2b2lkKTsKIHN0YXRpYyB2b2lkIGRvX2hlbHAodm9pZCk7CiBzdGF0aWMgdm9pZCBzZXRf bW9kZShjaGFyICptb2Rlb3B0KTsKQEAgLTIwMCw3ICsyMDAsNyBAQCB3cml0ZV9ldmVudGxv ZyhpbnQgbGV2ZWwsIGNvbnN0IGNoYXIgKmxpbmUpCiAgKiBub3QgYXZhaWxhYmxlKS4KICAq Lwogc3RhdGljIHZvaWQKLXdyaXRlX3N0ZGVycihjb25zdCBjaGFyICpmbXQsLi4uKQord3Jp dGVfc3RkZXJyKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFwOwogCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvZmlsdGVyLmMgYi9zcmMvYmluL3BnX2R1bXAv ZmlsdGVyLmMKaW5kZXggZmJmZjY5ZDRmN2UuLjhhYTM4MTBjYjA4IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvZmlsdGVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2ZpbHRlci5j CkBAIC0xNTEsNyArMTUxLDcgQEAgZ2V0X29iamVjdF90eXBlKGNvbnN0IGNoYXIgKmtleXdv cmQsIGludCBzaXplLCBGaWx0ZXJPYmplY3RUeXBlICpvYmp0eXBlKQogCiAKIHZvaWQKLXBn X2xvZ19maWx0ZXJfZXJyb3IoRmlsdGVyU3RhdGVEYXRhICpmc3RhdGUsIGNvbnN0IGNoYXIg KmZtdCwuLi4pCitwZ19sb2dfZmlsdGVyX2Vycm9yKEZpbHRlclN0YXRlRGF0YSAqZnN0YXRl LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcmdwOwogCWNoYXIJCWJ1 ZlsyNTZdOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2ZpbHRlci5oIGIvc3JjL2Jp bi9wZ19kdW1wL2ZpbHRlci5oCmluZGV4IGI4N2NkNmRlYzU4Li4wY2YwZDIyZDE1OSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2ZpbHRlci5oCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9maWx0ZXIuaApAQCAtNjMsNyArNjMsNyBAQCB0eXBlZGVmIGVudW0KIGV4dGVybiBjb25z dCBjaGFyICpmaWx0ZXJfb2JqZWN0X3R5cGVfbmFtZShGaWx0ZXJPYmplY3RUeXBlIGZvdCk7 CiBleHRlcm4gdm9pZCBmaWx0ZXJfaW5pdChGaWx0ZXJTdGF0ZURhdGEgKmZzdGF0ZSwgY29u c3QgY2hhciAqZmlsZW5hbWUsIGV4aXRfZnVuY3Rpb24gZl9leGl0KTsKIGV4dGVybiB2b2lk IGZpbHRlcl9mcmVlKEZpbHRlclN0YXRlRGF0YSAqZnN0YXRlKTsKLWV4dGVybiB2b2lkIHBn X2xvZ19maWx0ZXJfZXJyb3IoRmlsdGVyU3RhdGVEYXRhICpmc3RhdGUsIGNvbnN0IGNoYXIg KmZtdCwuLi4pCitleHRlcm4gdm9pZCBwZ19sb2dfZmlsdGVyX2Vycm9yKEZpbHRlclN0YXRl RGF0YSAqZnN0YXRlLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9w cmludGYoMiwgMyk7CiBleHRlcm4gYm9vbCBmaWx0ZXJfcmVhZF9pdGVtKEZpbHRlclN0YXRl RGF0YSAqZnN0YXRlLCBjaGFyICoqb2JqbmFtZSwKIAkJCQkJCQkgRmlsdGVyQ29tbWFuZFR5 cGUgKmNvbXR5cGUsIEZpbHRlck9iamVjdFR5cGUgKm9ianR5cGUpOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1 cC5oCmluZGV4IDJmOGQ5Nzk5YzMwLi5jN2JkZGExZGVlZCAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2JhY2t1cC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAu aApAQCAtMzM5LDcgKzMzOSw3IEBAIGV4dGVybiB2b2lkIFNvcnRUb2NGcm9tRmlsZShBcmNo aXZlICpBSFgpOwogCiAvKiBDb252ZW5pZW5jZSBmdW5jdGlvbnMgdXNlZCBvbmx5IHdoZW4g d3JpdGluZyBEQVRBICovCiBleHRlcm4gdm9pZCBhcmNocHV0cyhjb25zdCBjaGFyICpzLCBB cmNoaXZlICpBSCk7Ci1leHRlcm4gaW50CWFyY2hwcmludGYoQXJjaGl2ZSAqQUgsIGNvbnN0 IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4gaW50 CWFyY2hwcmludGYoQXJjaGl2ZSAqQUgsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRy aWJ1dGVfcHJpbnRmKDIsIDMpOwogCiAjZGVmaW5lIGFwcGVuZFN0cmluZ0xpdGVyYWxBSChi dWYsc3RyLEFIKSBcCiAJYXBwZW5kU3RyaW5nTGl0ZXJhbChidWYsIHN0ciwgKEFIKS0+ZW5j b2RpbmcsIChBSCktPnN0ZF9zdHJpbmdzKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNo aXZlci5jCmluZGV4IDdhZmNjMDg1OWM4Li41N2ZjZjJlMGYxYSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAtMTY1NSw3ICsxNjU1LDcgQEAgYXJjaHB1dHMo Y29uc3QgY2hhciAqcywgQXJjaGl2ZSAqQUgpCiAKIC8qIFB1YmxpYyAqLwogaW50Ci1hcmNo cHJpbnRmKEFyY2hpdmUgKkFILCBjb25zdCBjaGFyICpmbXQsLi4uKQorYXJjaHByaW50ZihB cmNoaXZlICpBSCwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJc2F2ZV9lcnJu byA9IGVycm5vOwogCWNoYXIJICAgKnA7CkBAIC0xNzU1LDcgKzE3NTUsNyBAQCBSZXN0b3Jl T3V0cHV0KEFyY2hpdmVIYW5kbGUgKkFILCBDb21wcmVzc0ZpbGVIYW5kbGUgKnNhdmVkT3V0 cHV0KQogICoJUHJpbnQgZm9ybWF0dGVkIHRleHQgdG8gdGhlIG91dHB1dCBmaWxlICh1c3Vh bGx5IHN0ZG91dCkuCiAgKi8KIGludAotYWhwcmludGYoQXJjaGl2ZUhhbmRsZSAqQUgsIGNv bnN0IGNoYXIgKmZtdCwuLi4pCithaHByaW50ZihBcmNoaXZlSGFuZGxlICpBSCwgY29uc3Qg Y2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5vOwogCWNoYXIJ ICAgKnA7CkBAIC0xODkzLDcgKzE4OTMsNyBAQCBhaHdyaXRlKGNvbnN0IHZvaWQgKnB0ciwg c2l6ZV90IHNpemUsIHNpemVfdCBubWVtYiwgQXJjaGl2ZUhhbmRsZSAqQUgpCiAKIC8qIG9u IHNvbWUgZXJyb3IsIHdlIG1heSBkZWNpZGUgdG8gZ28gb24uLi4gKi8KIHZvaWQKLXdhcm5f b3JfZXhpdF9ob3JyaWJseShBcmNoaXZlSGFuZGxlICpBSCwgY29uc3QgY2hhciAqZm10LC4u LikKK3dhcm5fb3JfZXhpdF9ob3JyaWJseShBcmNoaXZlSGFuZGxlICpBSCwgY29uc3QgY2hh ciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfYXJjaGl2ZXIuaAppbmRleCAzMjViNTNmYzliZC4uZTMyOWU3NzE4ZjYgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuaAorKysgYi9zcmMvYmlu L3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmgKQEAgLTM5NSw3ICszOTUsNyBAQCBzdHJ1 Y3QgX3RvY0VudHJ5CiBleHRlcm4gaW50CXBhcmFsbGVsX3Jlc3RvcmUoQXJjaGl2ZUhhbmRs ZSAqQUgsIFRvY0VudHJ5ICp0ZSk7CiBleHRlcm4gdm9pZCBvbl9leGl0X2Nsb3NlX2FyY2hp dmUoQXJjaGl2ZSAqQUhYKTsKIAotZXh0ZXJuIHZvaWQgd2Fybl9vcl9leGl0X2hvcnJpYmx5 KEFyY2hpdmVIYW5kbGUgKkFILCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVf cHJpbnRmKDIsIDMpOworZXh0ZXJuIHZvaWQgd2Fybl9vcl9leGl0X2hvcnJpYmx5KEFyY2hp dmVIYW5kbGUgKkFILCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50 ZigyLCAzKTsKIAogLyogT3B0aW9ucyBmb3IgQXJjaGl2ZUVudHJ5ICovCiB0eXBlZGVmIHN0 cnVjdCBfYXJjaGl2ZU9wdHMKQEAgLTQ3Myw2ICs0NzMsNiBAQCBleHRlcm4gdm9pZCBJc3N1 ZUFDTFBlckJsb2IoQXJjaGl2ZUhhbmRsZSAqQUgsIFRvY0VudHJ5ICp0ZSk7CiBleHRlcm4g dm9pZCBEcm9wTE9JZkV4aXN0cyhBcmNoaXZlSGFuZGxlICpBSCwgT2lkIG9pZCk7CiAKIHZv aWQJCWFod3JpdGUoY29uc3Qgdm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5tZW1i LCBBcmNoaXZlSGFuZGxlICpBSCk7Ci1pbnQJCQlhaHByaW50ZihBcmNoaXZlSGFuZGxlICpB SCwgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK2lu dAkJCWFocHJpbnRmKEFyY2hpdmVIYW5kbGUgKkFILCBjb25zdCBjaGFyICpmbXQsIC4uLikg cGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvcGdfYmFja3VwX3Rhci5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1 cF90YXIuYwppbmRleCBiNWJhM2I0NmRkOS4uODk1MDVmMTE5NTIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfdGFyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cF90YXIuYwpAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyB2b2lkIHRhckNsb3Nl KEFyY2hpdmVIYW5kbGUgKkFILCBUQVJfTUVNQkVSICp0aCk7CiAjaWZkZWYgX19OT1RfVVNF RF9fCiBzdGF0aWMgY2hhciAqdGFyR2V0cyhjaGFyICpidWYsIHNpemVfdCBsZW4sIFRBUl9N RU1CRVIgKnRoKTsKICNlbmRpZgotc3RhdGljIGludAl0YXJQcmludGYoVEFSX01FTUJFUiAq dGgsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7Citz dGF0aWMgaW50CXRhclByaW50ZihUQVJfTUVNQkVSICp0aCwgY29uc3QgY2hhciAqZm10LCAu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIHN0YXRpYyB2b2lkIF90YXJBZGRG aWxlKEFyY2hpdmVIYW5kbGUgKkFILCBUQVJfTUVNQkVSICp0aCk7CiBzdGF0aWMgVEFSX01F TUJFUiAqX3RhclBvc2l0aW9uVG8oQXJjaGl2ZUhhbmRsZSAqQUgsIGNvbnN0IGNoYXIgKmZp bGVuYW1lKTsKQEAgLTk1MSw3ICs5NTEsNyBAQCBfRW5kTE9zKEFyY2hpdmVIYW5kbGUgKkFI LCBUb2NFbnRyeSAqdGUpCiAgKi8KIAogc3RhdGljIGludAotdGFyUHJpbnRmKFRBUl9NRU1C RVIgKnRoLCBjb25zdCBjaGFyICpmbXQsLi4uKQordGFyUHJpbnRmKFRBUl9NRU1CRVIgKnRo LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlzYXZlX2Vycm5vID0gZXJybm87 CiAJY2hhcgkgICAqcDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9leGVjLmMg Yi9zcmMvYmluL3BnX3VwZ3JhZGUvZXhlYy5jCmluZGV4IGUxZGU2MWYzNmVlLi41NjNiNGE2 YjVmYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2V4ZWMuYworKysgYi9zcmMv YmluL3BnX3VwZ3JhZGUvZXhlYy5jCkBAIC04NCw3ICs4NCw3IEBAIGdldF9iaW5fdmVyc2lv bihDbHVzdGVySW5mbyAqY2x1c3RlcikKICAqLwogYm9vbAogZXhlY19wcm9nKGNvbnN0IGNo YXIgKmxvZ19maWxlbmFtZSwgY29uc3QgY2hhciAqb3B0X2xvZ19maWxlLAotCQkgIGJvb2wg cmVwb3J0X2Vycm9yLCBib29sIGV4aXRfb25fZXJyb3IsIGNvbnN0IGNoYXIgKmZtdCwuLi4p CisJCSAgYm9vbCByZXBvcnRfZXJyb3IsIGJvb2wgZXhpdF9vbl9lcnJvciwgY29uc3QgY2hh ciAqZm10LCAuLi4pCiB7CiAJaW50CQkJcmVzdWx0ID0gMDsKIAlpbnQJCQl3cml0dGVuOwpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BhcmFsbGVsLmMgYi9zcmMvYmluL3Bn X3VwZ3JhZGUvcGFyYWxsZWwuYwppbmRleCA2OTQ1ZjcxZmNmMS4uOGNjYmMxNjQxMzIgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wYXJhbGxlbC5jCisrKyBiL3NyYy9iaW4v cGdfdXBncmFkZS9wYXJhbGxlbC5jCkBAIC02MSw3ICs2MSw3IEBAIERXT1JECQl3aW4zMl90 cmFuc2Zlcl9hbGxfbmV3X2Ricyh0cmFuc2Zlcl90aHJlYWRfYXJnICphcmdzKTsKICAqLwog dm9pZAogcGFyYWxsZWxfZXhlY19wcm9nKGNvbnN0IGNoYXIgKmxvZ19maWxlLCBjb25zdCBj aGFyICpvcHRfbG9nX2ZpbGUsCi0JCQkJICAgY29uc3QgY2hhciAqZm10LC4uLikKKwkJCQkg ICBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcmdzOwogCWNoYXIJCWNt ZFtNQVhfU1RSSU5HXTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdy YWRlLmggYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCmluZGV4IGVjMDE4ZTRm MjkyLi4wYmUxZDNjMTc2MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3Vw Z3JhZGUuaAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCkBAIC00MTQs NyArNDE0LDcgQEAgdm9pZAkJZ2VuZXJhdGVfb2xkX2R1bXAodm9pZCk7CiAjZGVmaW5lIEVY RUNfUFNRTF9BUkdTICItLWVjaG8tcXVlcmllcyAtLXNldCBPTl9FUlJPUl9TVE9QPW9uIC0t bm8tcHNxbHJjIC0tZGJuYW1lPXRlbXBsYXRlMSIKIAogYm9vbAkJZXhlY19wcm9nKGNvbnN0 IGNoYXIgKmxvZ19maWxlbmFtZSwgY29uc3QgY2hhciAqb3B0X2xvZ19maWxlLAotCQkJCQkg IGJvb2wgcmVwb3J0X2Vycm9yLCBib29sIGV4aXRfb25fZXJyb3IsIGNvbnN0IGNoYXIgKmZt dCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoNSwgNik7CisJCQkJCSAgYm9vbCByZXBvcnRf ZXJyb3IsIGJvb2wgZXhpdF9vbl9lcnJvciwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0 dHJpYnV0ZV9wcmludGYoNSwgNik7CiB2b2lkCQl2ZXJpZnlfZGlyZWN0b3JpZXModm9pZCk7 CiBib29sCQlwaWRfbG9ja19maWxlX2V4aXN0cyhjb25zdCBjaGFyICpkYXRhZGlyKTsKIApA QCAtNDc0LDcgKzQ3NCw3IEBAIHZvaWQJCWluaXRfdGFibGVzcGFjZXModm9pZCk7CiAvKiBz ZXJ2ZXIuYyAqLwogCiBQR2Nvbm4JICAgKmNvbm5lY3RUb1NlcnZlcihDbHVzdGVySW5mbyAq Y2x1c3RlciwgY29uc3QgY2hhciAqZGJfbmFtZSk7Ci1QR3Jlc3VsdCAgICpleGVjdXRlUXVl cnlPckRpZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0 ZV9wcmludGYoMiwgMyk7CitQR3Jlc3VsdCAgICpleGVjdXRlUXVlcnlPckRpZShQR2Nvbm4g KmNvbm4sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMp OwogCiBjaGFyCSAgICpjbHVzdGVyX2Nvbm5fb3B0cyhDbHVzdGVySW5mbyAqY2x1c3Rlcik7 CiAKQEAgLTQ4OCwxMyArNDg4LDEzIEBAIHZvaWQJCWNoZWNrX3BnaG9zdF9lbnZ2YXIodm9p ZCk7CiBjaGFyCSAgICpxdW90ZV9pZGVudGlmaWVyKGNvbnN0IGNoYXIgKnMpOwogaW50CQkJ Z2V0X3VzZXJfaW5mbyhjaGFyICoqdXNlcl9uYW1lX3ApOwogdm9pZAkJY2hlY2tfb2sodm9p ZCk7Ci12b2lkCQlyZXBvcnRfc3RhdHVzKGVMb2dUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZt dCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7Ci12b2lkCQlwZ19sb2coZUxvZ1R5 cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAz KTsKLXBnX25vcmV0dXJuIHZvaWQgcGdfZmF0YWwoY29uc3QgY2hhciAqZm10LC4uLikgcGdf YXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK3ZvaWQJCXJlcG9ydF9zdGF0dXMoZUxvZ1R5cGUg dHlwZSwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7 Cit2b2lkCQlwZ19sb2coZUxvZ1R5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBn X2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitwZ19ub3JldHVybiB2b2lkIHBnX2ZhdGFsKGNv bnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogdm9pZAkJ ZW5kX3Byb2dyZXNzX291dHB1dCh2b2lkKTsKIHZvaWQJCWNsZWFudXBfb3V0cHV0X2RpcnMo dm9pZCk7Ci12b2lkCQlwcmVwX3N0YXR1cyhjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRy aWJ1dGVfcHJpbnRmKDEsIDIpOwotdm9pZAkJcHJlcF9zdGF0dXNfcHJvZ3Jlc3MoY29uc3Qg Y2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK3ZvaWQJCXByZXBf c3RhdHVzKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIp Owordm9pZAkJcHJlcF9zdGF0dXNfcHJvZ3Jlc3MoY29uc3QgY2hhciAqZm10LCAuLi4pIHBn X2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiB1bnNpZ25lZCBpbnQgc3RyMnVpbnQoY29uc3Qg Y2hhciAqc3RyKTsKIAogCkBAIC01MTEsNyArNTExLDcgQEAgTXVsdGlYYWN0T2Zmc2V0IHJl d3JpdGVfbXVsdGl4YWN0cyhNdWx0aVhhY3RJZCBmcm9tX211bHRpLCBNdWx0aVhhY3RJZCB0 b19tdWx0aSkKIAogLyogcGFyYWxsZWwuYyAqLwogdm9pZAkJcGFyYWxsZWxfZXhlY19wcm9n KGNvbnN0IGNoYXIgKmxvZ19maWxlLCBjb25zdCBjaGFyICpvcHRfbG9nX2ZpbGUsCi0JCQkJ CQkJICAgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigzLCA0KTsK KwkJCQkJCQkgICBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zigz LCA0KTsKIHZvaWQJCXBhcmFsbGVsX3RyYW5zZmVyX2FsbF9uZXdfZGJzKERiSW5mb0FyciAq b2xkX2RiX2FyciwgRGJJbmZvQXJyICpuZXdfZGJfYXJyLAogCQkJCQkJCQkJCSAgY2hhciAq b2xkX3BnZGF0YSwgY2hhciAqbmV3X3BnZGF0YSwKIAkJCQkJCQkJCQkgIGNoYXIgKm9sZF90 YWJsZXNwYWNlLCBjaGFyICpuZXdfdGFibGVzcGFjZSk7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX3VwZ3JhZGUvc2VydmVyLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvc2VydmVyLmMKaW5k ZXggZWVlYWMzMTUzZjAuLjk1OWZjZGY3YjY5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Vw Z3JhZGUvc2VydmVyLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3NlcnZlci5jCkBAIC0x MTksNyArMTE5LDcgQEAgY2x1c3Rlcl9jb25uX29wdHMoQ2x1c3RlckluZm8gKmNsdXN0ZXIp CiAgKgltZXNzYWdlIGFuZCBjYWxscyBleGl0KCkgdG8ga2lsbCB0aGUgcHJvZ3JhbS4KICAq LwogUEdyZXN1bHQgKgotZXhlY3V0ZVF1ZXJ5T3JEaWUoUEdjb25uICpjb25uLCBjb25zdCBj aGFyICpmbXQsLi4uKQorZXhlY3V0ZVF1ZXJ5T3JEaWUoUEdjb25uICpjb25uLCBjb25zdCBj aGFyICpmbXQsIC4uLikKIHsKIAlzdGF0aWMgY2hhciBxdWVyeVtRVUVSWV9BTExPQ107CiAJ dmFfbGlzdAkJYXJnczsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS91dGlsLmMg Yi9zcmMvYmluL3BnX3VwZ3JhZGUvdXRpbC5jCmluZGV4IDBmNDdlZDc3MWQ1Li4wOGQ2Mzg1 YjUxMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3V0aWwuYworKysgYi9zcmMv YmluL3BnX3VwZ3JhZGUvdXRpbC5jCkBAIC0yOSw3ICsyOSw3IEBAIHN0YXRpYyB2b2lkIHBn X2xvZ192KGVMb2dUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCkgcGdf YXR0cmlidXRlX3ByCiAgKglyZXN1bHRzIGFuZCBvdGhlciBtZXNzYWdlcy4KICAqLwogdm9p ZAotcmVwb3J0X3N0YXR1cyhlTG9nVHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsLi4uKQor cmVwb3J0X3N0YXR1cyhlTG9nVHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsK IAl2YV9saXN0CQlhcmdzOwogCkBAIC0xMjYsNyArMTI2LDcgQEAgY2xlYW51cF9vdXRwdXRf ZGlycyh2b2lkKQogICoJCSAgcGdfbG9nKFBHX0ZBVEFMLCAiZmFpbGVkOiAlcyIsIG1lc3Nh Z2UpOwogICovCiB2b2lkCi1wcmVwX3N0YXR1cyhjb25zdCBjaGFyICpmbXQsLi4uKQorcHJl cF9zdGF0dXMoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXJnczsKIAlj aGFyCQltZXNzYWdlW01BWF9TVFJJTkddOwpAQCAtMTUzLDcgKzE1Myw3IEBAIHByZXBfc3Rh dHVzKGNvbnN0IGNoYXIgKmZtdCwuLi4pCiAgKiAgIHJlcG9ydF9zdGF0dXMoUEdfUkVQT1JU LCAib2siKTsKICAqLwogdm9pZAotcHJlcF9zdGF0dXNfcHJvZ3Jlc3MoY29uc3QgY2hhciAq Zm10LC4uLikKK3ByZXBfc3RhdHVzX3Byb2dyZXNzKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQog ewogCXZhX2xpc3QJCWFyZ3M7CiAJY2hhcgkJbWVzc2FnZVtNQVhfU1RSSU5HXTsKQEAgLTI1 Niw3ICsyNTYsNyBAQCBwZ19sb2dfdihlTG9nVHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQs IHZhX2xpc3QgYXApCiAKIAogdm9pZAotcGdfbG9nKGVMb2dUeXBlIHR5cGUsIGNvbnN0IGNo YXIgKmZtdCwuLi4pCitwZ19sb2coZUxvZ1R5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LCAu Li4pCiB7CiAJdmFfbGlzdAkJYXJnczsKIApAQCAtMjY3LDcgKzI2Nyw3IEBAIHBnX2xvZyhl TG9nVHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsLi4uKQogCiAKIHZvaWQKLXBnX2ZhdGFs KGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwZ19mYXRhbChjb25zdCBjaGFyICpmbXQsIC4uLikK IHsKIAl2YV9saXN0CQlhcmdzOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJh Y2t1cC9wZ192ZXJpZnliYWNrdXAuYyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3Zl cmlmeWJhY2t1cC5jCmluZGV4IGY5ZjJkNDU3ZjJmLi4xOGMxNjc5Mjg0YiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKKysrIGIvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKQEAgLTcxLDcgKzcxLDcg QEAgc3RhdGljIHZvaWQgdmVyaWZ5YmFja3VwX3Blcl93YWxfcmFuZ2VfY2IoSnNvbk1hbmlm ZXN0UGFyc2VDb250ZXh0ICpjb250ZXh0LAogCQkJCQkJCQkJCSAgWExvZ1JlY1B0ciBzdGFy dF9sc24sCiAJCQkJCQkJCQkJICBYTG9nUmVjUHRyIGVuZF9sc24pOwogcGdfbm9yZXR1cm4g c3RhdGljIHZvaWQgcmVwb3J0X21hbmlmZXN0X2Vycm9yKEpzb25NYW5pZmVzdFBhcnNlQ29u dGV4dCAqY29udGV4dCwKLQkJCQkJCQkJCQkJICBjb25zdCBjaGFyICpmbXQsLi4uKQorCQkJ CQkJCQkJCQkgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogCQkJcGdfYXR0cmlidXRlX3ByaW50 ZigyLCAzKTsKIAogc3RhdGljIHZvaWQgdmVyaWZ5X3Rhcl9iYWNrdXAodmVyaWZpZXJfY29u dGV4dCAqY29udGV4dCwgRElSICpkaXIpOwpAQCAtNTA2LDcgKzUwNiw3IEBAIHBhcnNlX21h bmlmZXN0X2ZpbGUoY2hhciAqbWFuaWZlc3RfcGF0aCkKICAqIGV4cGVjdHMgdGhpcyBmdW5j dGlvbiBub3QgdG8gcmV0dXJuLgogICovCiBzdGF0aWMgdm9pZAotcmVwb3J0X21hbmlmZXN0 X2Vycm9yKEpzb25NYW5pZmVzdFBhcnNlQ29udGV4dCAqY29udGV4dCwgY29uc3QgY2hhciAq Zm10LC4uLikKK3JlcG9ydF9tYW5pZmVzdF9lcnJvcihKc29uTWFuaWZlc3RQYXJzZUNvbnRl eHQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFwOwog CkBAIC0xMjI4LDcgKzEyMjgsNyBAQCBwYXJzZV9yZXF1aXJlZF93YWwodmVyaWZpZXJfY29u dGV4dCAqY29udGV4dCwgY2hhciAqcGdfd2FsZHVtcF9wYXRoLAogICogY29udGV4dCBzYXlz IHdlIHNob3VsZC4KICAqLwogdm9pZAotcmVwb3J0X2JhY2t1cF9lcnJvcih2ZXJpZmllcl9j b250ZXh0ICpjb250ZXh0LCBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQorcmVw b3J0X2JhY2t1cF9lcnJvcih2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjb25zdCBjaGFy ICpwZ19yZXN0cmljdCBmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcDsKIApAQCAtMTI0NSw3 ICsxMjQ1LDcgQEAgcmVwb3J0X2JhY2t1cF9lcnJvcih2ZXJpZmllcl9jb250ZXh0ICpjb250 ZXh0LCBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQogICogUmVwb3J0IGEgZmF0 YWwgZXJyb3IgYW5kIGV4aXQKICAqLwogdm9pZAotcmVwb3J0X2ZhdGFsX2Vycm9yKGNvbnN0 IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCityZXBvcnRfZmF0YWxfZXJyb3IoY29uc3Qg Y2hhciAqcGdfcmVzdHJpY3QgZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5oIGIvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmgKaW5kZXggYTk5ZDliZmQ1 ODEuLjg1NzJjMTQzM2RjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9w Z192ZXJpZnliYWNrdXAuaAorKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJp ZnliYWNrdXAuaApAQCAtOTYsOSArOTYsOSBAQCB0eXBlZGVmIHN0cnVjdCB2ZXJpZmllcl9j b250ZXh0CiB9IHZlcmlmaWVyX2NvbnRleHQ7CiAKIGV4dGVybiB2b2lkIHJlcG9ydF9iYWNr dXBfZXJyb3IodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwKLQkJCQkJCQkJY29uc3QgY2hh ciAqcGdfcmVzdHJpY3QgZm10LC4uLikKKwkJCQkJCQkJY29uc3QgY2hhciAqcGdfcmVzdHJp Y3QgZm10LCAuLi4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwotcGdfbm9yZXR1 cm4gZXh0ZXJuIHZvaWQgcmVwb3J0X2ZhdGFsX2Vycm9yKGNvbnN0IGNoYXIgKnBnX3Jlc3Ry aWN0IGZtdCwuLi4pCitwZ19ub3JldHVybiBleHRlcm4gdm9pZCByZXBvcnRfZmF0YWxfZXJy b3IoY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LCAuLi4pCiAJCQlwZ19hdHRyaWJ1dGVf cHJpbnRmKDEsIDIpOwogZXh0ZXJuIGJvb2wgc2hvdWxkX2lnbm9yZV9yZWxwYXRoKHZlcmlm aWVyX2NvbnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCSAgY29uc3QgY2hhciAqcmVscGF0aCk7 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbHN1bW1hcnkvcGdfd2Fsc3VtbWFyeS5jIGIv c3JjL2Jpbi9wZ193YWxzdW1tYXJ5L3BnX3dhbHN1bW1hcnkuYwppbmRleCBhYTIxNGI4NjE2 ZC4uYzNlOThmZmU1NWUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2Fsc3VtbWFyeS9wZ193 YWxzdW1tYXJ5LmMKKysrIGIvc3JjL2Jpbi9wZ193YWxzdW1tYXJ5L3BnX3dhbHN1bW1hcnku YwpAQCAtNDMsNyArNDMsNyBAQCBzdGF0aWMgdm9pZCBoZWxwKGNvbnN0IGNoYXIgKnByb2du YW1lKTsKIHN0YXRpYyBpbnQJY29tcGFyZV9ibG9ja19udW1iZXJzKGNvbnN0IHZvaWQgKmEs IGNvbnN0IHZvaWQgKmIpOwogc3RhdGljIGludAl3YWxzdW1tYXJ5X3JlYWRfY2FsbGJhY2so dm9pZCAqY2FsbGJhY2tfYXJnLCB2b2lkICpkYXRhLAogCQkJCQkJCQkJIGludCBsZW5ndGgp Owotc3RhdGljIHZvaWQgd2Fsc3VtbWFyeV9lcnJvcl9jYWxsYmFjayh2b2lkICpjYWxsYmFj a19hcmcsIGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitzdGF0 aWMgdm9pZCB3YWxzdW1tYXJ5X2Vycm9yX2NhbGxiYWNrKHZvaWQgKmNhbGxiYWNrX2FyZywg Y2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIC8qCiAgKiBN YWluIHByb2dyYW0uCkBAIC0yMjcsNyArMjI3LDcgQEAgY29tcGFyZV9ibG9ja19udW1iZXJz KGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCiAgKiBFcnJvciBjYWxsYmFjay4KICAq Lwogdm9pZAotd2Fsc3VtbWFyeV9lcnJvcl9jYWxsYmFjayh2b2lkICpjYWxsYmFja19hcmcs IGNoYXIgKmZtdCwuLi4pCit3YWxzdW1tYXJ5X2Vycm9yX2NhbGxiYWNrKHZvaWQgKmNhbGxi YWNrX2FyZywgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC9sYXJnZV9vYmouYyBiL3NyYy9iaW4vcHNxbC9sYXJnZV9vYmou YwppbmRleCAwMjFmNzhlMGY3OC4uYzk2MTMwMGZlOTggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cHNxbC9sYXJnZV9vYmouYworKysgYi9zcmMvYmluL3BzcWwvbGFyZ2Vfb2JqLmMKQEAgLTEz LDEwICsxMywxMCBAQAogI2luY2x1ZGUgImxhcmdlX29iai5oIgogI2luY2x1ZGUgInNldHRp bmdzLmgiCiAKLXN0YXRpYyB2b2lkIHByaW50X2xvX3Jlc3VsdChjb25zdCBjaGFyICpmbXQs Li4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworc3RhdGljIHZvaWQgcHJpbnRfbG9f cmVzdWx0KGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIp OwogCiBzdGF0aWMgdm9pZAotcHJpbnRfbG9fcmVzdWx0KGNvbnN0IGNoYXIgKmZtdCwuLi4p CitwcmludF9sb19yZXN1bHQoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJ YXA7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA4YjkxYmMwMDA2Mi4uYjkwZjMx MjhkNTQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysg Yi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTE2NzksNyArMTY3OSw3IEBA IFRhaWxNYXRjaGVzQXJyYXkoYm9vbCBjYXNlX3NlbnNpdGl2ZSwKIHN0YXRpYyBib29sCiBU YWlsTWF0Y2hlc0ltcGwoYm9vbCBjYXNlX3NlbnNpdGl2ZSwKIAkJCQlpbnQgcHJldmlvdXNf d29yZHNfY291bnQsIGNoYXIgKipwcmV2aW91c193b3JkcywKLQkJCQlpbnQgbmFyZywuLi4p CisJCQkJaW50IG5hcmcsIC4uLikKIHsKIAljb25zdCBjaGFyICphcmdhcnJheVs2NF07CiAJ dmFfbGlzdAkJYXJnczsKQEAgLTE3MjksNyArMTcyOSw3IEBAIEhlYWRNYXRjaGVzQXJyYXko Ym9vbCBjYXNlX3NlbnNpdGl2ZSwKIHN0YXRpYyBib29sCiBIZWFkTWF0Y2hlc0ltcGwoYm9v bCBjYXNlX3NlbnNpdGl2ZSwKIAkJCQlpbnQgcHJldmlvdXNfd29yZHNfY291bnQsIGNoYXIg KipwcmV2aW91c193b3JkcywKLQkJCQlpbnQgbmFyZywuLi4pCisJCQkJaW50IG5hcmcsIC4u LikKIHsKIAljb25zdCBjaGFyICphcmdhcnJheVs2NF07CiAJdmFfbGlzdAkJYXJnczsKQEAg LTE4MTYsNyArMTgxNiw3IEBAIE1hdGNoZXNBcnJheShib29sIGNhc2Vfc2Vuc2l0aXZlLAog c3RhdGljIGJvb2wKIE1hdGNoZXNJbXBsKGJvb2wgY2FzZV9zZW5zaXRpdmUsCiAJCQlpbnQg cHJldmlvdXNfd29yZHNfY291bnQsIGNoYXIgKipwcmV2aW91c193b3JkcywKLQkJCWludCBu YXJnLC4uLikKKwkJCWludCBuYXJnLCAuLi4pCiB7CiAJY29uc3QgY2hhciAqYXJnYXJyYXlb NjRdOwogCXZhX2xpc3QJCWFyZ3M7CmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2xvZ2dpbmcu YyBiL3NyYy9jb21tb24vbG9nZ2luZy5jCmluZGV4IDUyMDY5NDllNWQ4Li5iZmQ3ZTUwNzZi YyAxMDA2NDQKLS0tIGEvc3JjL2NvbW1vbi9sb2dnaW5nLmMKKysrIGIvc3JjL2NvbW1vbi9s b2dnaW5nLmMKQEAgLTIwNiw3ICsyMDYsNyBAQCBwZ19sb2dnaW5nX3NldF9sb2N1c19jYWxs YmFjayh2b2lkICgqY2IpIChjb25zdCBjaGFyICoqZmlsZW5hbWUsIHVpbnQ2NCAqbGluZW5v KQogCiB2b2lkCiBwZ19sb2dfZ2VuZXJpYyhlbnVtIHBnX2xvZ19sZXZlbCBsZXZlbCwgZW51 bSBwZ19sb2dfcGFydCBwYXJ0LAotCQkJICAgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10 LC4uLikKKwkJCSAgIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwgLi4uKQogewogCXZh X2xpc3QJCWFwOwogCmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL3BlcmNlbnRyZXBsLmMgYi9z cmMvY29tbW9uL3BlcmNlbnRyZXBsLmMKaW5kZXggNTI1YTViYTZjZjAuLjcwYmJmYWJkMTE3 IDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL3BlcmNlbnRyZXBsLmMKKysrIGIvc3JjL2NvbW1v bi9wZXJjZW50cmVwbC5jCkBAIC01Niw3ICs1Niw3IEBACiAgKiByZXZpc2VkLgogICovCiBj aGFyICoKLXJlcGxhY2VfcGVyY2VudF9wbGFjZWhvbGRlcnMoY29uc3QgY2hhciAqaW5zdHIs IGNvbnN0IGNoYXIgKnBhcmFtX25hbWUsIGNvbnN0IGNoYXIgKmxldHRlcnMsLi4uKQorcmVw bGFjZV9wZXJjZW50X3BsYWNlaG9sZGVycyhjb25zdCBjaGFyICppbnN0ciwgY29uc3QgY2hh ciAqcGFyYW1fbmFtZSwgY29uc3QgY2hhciAqbGV0dGVycywgLi4uKQogewogCVN0cmluZ0lu Zm9EYXRhIHJlc3VsdDsKIApkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9wc3ByaW50Zi5jIGIv c3JjL2NvbW1vbi9wc3ByaW50Zi5jCmluZGV4IDZmMDA2ZTAyNjJmLi4yOWIwOTczMmE1YSAx MDA2NDQKLS0tIGEvc3JjL2NvbW1vbi9wc3ByaW50Zi5jCisrKyBiL3NyYy9jb21tb24vcHNw cmludGYuYwpAQCAtNDAsNyArNDAsNyBAQAogICogT25lIHNob3VsZCB0aGVyZWZvcmUgdGhp bmsgdHdpY2UgYWJvdXQgdXNpbmcgdGhpcyBpbiBsaWJwcS4KICAqLwogY2hhciAqCi1wc3By aW50Zihjb25zdCBjaGFyICpmbXQsLi4uKQorcHNwcmludGYoY29uc3QgY2hhciAqZm10LCAu Li4pCiB7CiAJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5vOwogCXNpemVfdAkJbGVuID0gMTI4 OwkJLyogaW5pdGlhbCBhc3N1bXB0aW9uIGFib3V0IGJ1ZmZlciBzaXplICovCmRpZmYgLS1n aXQgYS9zcmMvY29tbW9uL3N0cmluZ2luZm8uYyBiL3NyYy9jb21tb24vc3RyaW5naW5mby5j CmluZGV4IGFlMzk1NDBlNDY4Li40Njg5NTRlNDg0ZSAxMDA2NDQKLS0tIGEvc3JjL2NvbW1v bi9zdHJpbmdpbmZvLmMKKysrIGIvc3JjL2NvbW1vbi9zdHJpbmdpbmZvLmMKQEAgLTE0Miw3 ICsxNDIsNyBAQCByZXNldFN0cmluZ0luZm8oU3RyaW5nSW5mbyBzdHIpCiAgKiBzdHJjYXQu CiAgKi8KIHZvaWQKLWFwcGVuZFN0cmluZ0luZm8oU3RyaW5nSW5mbyBzdHIsIGNvbnN0IGNo YXIgKmZtdCwuLi4pCithcHBlbmRTdHJpbmdJbmZvKFN0cmluZ0luZm8gc3RyLCBjb25zdCBj aGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlzYXZlX2Vycm5vID0gZXJybm87CiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9hbXZhbGlkYXRlLmggYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvYW12YWxpZGF0ZS5oCmluZGV4IGI4Mjk5ODc3OGFjLi5kZWJkMWVkMzdhNCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3MvYW12YWxpZGF0ZS5oCkBAIC0yOSw3ICsyOSw3IEBAIHR5cGVkZWYgc3Ry dWN0IE9wRmFtaWx5T3BGdW5jR3JvdXAKIC8qIEZ1bmN0aW9ucyBpbiBhY2Nlc3MvaW5kZXgv YW12YWxpZGF0ZS5jICovCiBleHRlcm4gTGlzdCAqaWRlbnRpZnlfb3BmYW1pbHlfZ3JvdXBz KENhdENMaXN0ICpvcHJsaXN0LCBDYXRDTGlzdCAqcHJvY2xpc3QpOwogZXh0ZXJuIGJvb2wg Y2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBl eGFjdCwKLQkJCQkJCQkJICAgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLik7CisJCQkJ CQkJCSAgIGludCBtaW5hcmdzLCBpbnQgbWF4YXJncywgLi4uKTsKIGV4dGVybiBib29sIGNo ZWNrX2Ftb3B0c3Byb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQpOwogZXh0ZXJuIGJvb2wgY2hl Y2tfYW1vcF9zaWduYXR1cmUoT2lkIG9wbm8sIE9pZCByZXN0eXBlLAogCQkJCQkJCQkgT2lk IGxlZnR0eXBlLCBPaWQgcmlnaHR0eXBlKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Jh Y2t1cC93YWxzdW1tYXJ5LmggYi9zcmMvaW5jbHVkZS9iYWNrdXAvd2Fsc3VtbWFyeS5oCmlu ZGV4IDYwMTU3ZTBhYzUwLi4wOTNiNDJkZjQ3MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YmFja3VwL3dhbHN1bW1hcnkuaAorKysgYi9zcmMvaW5jbHVkZS9iYWNrdXAvd2Fsc3VtbWFy eS5oCkBAIC00NCw2ICs0NCw2IEBAIGV4dGVybiB2b2lkIFJlbW92ZVdhbFN1bW1hcnlJZk9s ZGVyVGhhbihXYWxTdW1tYXJ5RmlsZSAqd3MsCiAKIGV4dGVybiBpbnQJUmVhZFdhbFN1bW1h cnkodm9pZCAqd2FsX3N1bW1hcnlfaW8sIHZvaWQgKmRhdGEsIGludCBsZW5ndGgpOwogZXh0 ZXJuIGludAlXcml0ZVdhbFN1bW1hcnkodm9pZCAqd2FsX3N1bW1hcnlfaW8sIHZvaWQgKmRh dGEsIGludCBsZW5ndGgpOwotZXh0ZXJuIHZvaWQgUmVwb3J0V2FsU3VtbWFyeUVycm9yKHZv aWQgKmNhbGxiYWNrX2FyZywgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zigy LCAzKTsKK2V4dGVybiB2b2lkIFJlcG9ydFdhbFN1bW1hcnlFcnJvcih2b2lkICpjYWxsYmFj a19hcmcsIGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiAj ZW5kaWYJCQkJCQkJLyogV0FMU1VNTUFSWV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jb21tb24vYmxrcmVmdGFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1vbi9ibGtyZWZ0YWJs ZS5oCmluZGV4IGI1YjU1MTdmNjYwLi40MmIxMWIwYTJiMSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY29tbW9uL2Jsa3JlZnRhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbW9uL2Js a3JlZnRhYmxlLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQmxvY2tSZWZU YWJsZVdyaXRlciBCbG9ja1JlZlRhYmxlV3JpdGVyOwogICogcmVwb3J0X2Vycm9yX2ZuIHNo b3VsZCBub3QgcmV0dXJuLgogICovCiB0eXBlZGVmIGludCAoKmlvX2NhbGxiYWNrX2ZuKSAo dm9pZCAqY2FsbGJhY2tfYXJnLCB2b2lkICpkYXRhLCBpbnQgbGVuZ3RoKTsKLXR5cGVkZWYg dm9pZCAoKnJlcG9ydF9lcnJvcl9mbikgKHZvaWQgKmNhbGxiYWNrX2FyZywgY2hhciAqbXNn LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK3R5cGVkZWYgdm9pZCAoKnJlcG9y dF9lcnJvcl9mbikgKHZvaWQgKmNhbGxiYWNrX2FyZywgY2hhciAqbXNnLCAuLi4pIHBnX2F0 dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NvbW1vbi9mZV9tZW11dGlscy5oIGIvc3JjL2luY2x1ZGUvY29tbW9uL2ZlX21lbXV0aWxz LmgKaW5kZXggZWNjZGZjYWIwODYuLmI3ODZlYWY0OGIwIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jb21tb24vZmVfbWVtdXRpbHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tb24vZmVf bWVtdXRpbHMuaApAQCAtNzksNyArNzksNyBAQCBleHRlcm4gdm9pZCBwZnJlZSh2b2lkICpw b2ludGVyKTsKICNkZWZpbmUgcmVwYWxsb2NfYXJyYXkocG9pbnRlciwgdHlwZSwgY291bnQp ICgodHlwZSAqKSByZXBhbGxvYyhwb2ludGVyLCBzaXplb2YodHlwZSkgKiAoY291bnQpKSkK IAogLyogc3ByaW50ZiBpbnRvIGEgcGFsbG9jJ2QgYnVmZmVyIC0tLSB0aGVzZSBhcmUgaW4g cHNwcmludGYuYyAqLwotZXh0ZXJuIGNoYXIgKnBzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitleHRlcm4gY2hhciAqcHNwcmludGYo Y29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiBleHRl cm4gc2l6ZV90IHB2c25wcmludGYoY2hhciAqYnVmLCBzaXplX3QgbGVuLCBjb25zdCBjaGFy ICpmbXQsIHZhX2xpc3QgYXJncykgcGdfYXR0cmlidXRlX3ByaW50ZigzLCAwKTsKIAogI2Vu ZGlmCQkJCQkJCS8qIEZFX01FTVVUSUxTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NvbW1vbi9sb2dnaW5nLmggYi9zcmMvaW5jbHVkZS9jb21tb24vbG9nZ2luZy5oCmluZGV4 IGJjY2JhNGFjMDdiLi5iOGY3NmE4OGRiZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29t bW9uL2xvZ2dpbmcuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tb24vbG9nZ2luZy5oCkBAIC05 Myw3ICs5Myw3IEBAIHZvaWQJCXBnX2xvZ2dpbmdfc2V0X3ByZV9jYWxsYmFjayh2b2lkICgq Y2IpICh2b2lkKSk7CiB2b2lkCQlwZ19sb2dnaW5nX3NldF9sb2N1c19jYWxsYmFjayh2b2lk ICgqY2IpIChjb25zdCBjaGFyICoqZmlsZW5hbWUsIHVpbnQ2NCAqbGluZW5vKSk7CiAKIHZv aWQJCXBnX2xvZ19nZW5lcmljKGVudW0gcGdfbG9nX2xldmVsIGxldmVsLCBlbnVtIHBnX2xv Z19wYXJ0IHBhcnQsCi0JCQkJCQkgICBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4u KQorCQkJCQkJICAgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LCAuLi4pCiAJCQlwZ19h dHRyaWJ1dGVfcHJpbnRmKDMsIDQpOwogdm9pZAkJcGdfbG9nX2dlbmVyaWNfdihlbnVtIHBn X2xvZ19sZXZlbCBsZXZlbCwgZW51bSBwZ19sb2dfcGFydCBwYXJ0LAogCQkJCQkJCSBjb25z dCBjaGFyICpwZ19yZXN0cmljdCBmbXQsIHZhX2xpc3QgYXApCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jb21tb24vcGFyc2VfbWFuaWZlc3QuaCBiL3NyYy9pbmNsdWRlL2NvbW1vbi9w YXJzZV9tYW5pZmVzdC5oCmluZGV4IDM1YTNiNWNhNjZjLi45NWJhODg1YWZlNiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY29tbW9uL3BhcnNlX21hbmlmZXN0LmgKKysrIGIvc3JjL2lu Y2x1ZGUvY29tbW9uL3BhcnNlX21hbmlmZXN0LmgKQEAgLTM0LDcgKzM0LDcgQEAgdHlwZWRl ZiB2b2lkICgqanNvbl9tYW5pZmVzdF9wZXJfd2FsX3JhbmdlX2NhbGxiYWNrKSAoSnNvbk1h bmlmZXN0UGFyc2VDb250ZXh0ICoKIAkJCQkJCQkJCQkJCQkgIFRpbWVMaW5lSUQgdGxpLAog CQkJCQkJCQkJCQkJCSAgWExvZ1JlY1B0ciBzdGFydF9sc24sIFhMb2dSZWNQdHIgZW5kX2xz bik7CiB0eXBlZGVmIHZvaWQgKCpqc29uX21hbmlmZXN0X2Vycm9yX2NhbGxiYWNrKSAoSnNv bk1hbmlmZXN0UGFyc2VDb250ZXh0ICosCi0JCQkJCQkJCQkJCSAgY29uc3QgY2hhciAqZm10 LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKKwkJCQkJCQkJCQkJICBjb25zdCBj aGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogc3RydWN0IEpz b25NYW5pZmVzdFBhcnNlQ29udGV4dAogewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29t bW9uL3BlcmNlbnRyZXBsLmggYi9zcmMvaW5jbHVkZS9jb21tb24vcGVyY2VudHJlcGwuaApp bmRleCA5YzAzMjJkZDQ0Ni4uOWU3NzI3ZjYzYTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NvbW1vbi9wZXJjZW50cmVwbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9wZXJjZW50 cmVwbC5oCkBAIC0xMyw2ICsxMyw2IEBACiAjaWZuZGVmIFBFUkNFTlRSRVBMX0gKICNkZWZp bmUgUEVSQ0VOVFJFUExfSAogCi1leHRlcm4gY2hhciAqcmVwbGFjZV9wZXJjZW50X3BsYWNl aG9sZGVycyhjb25zdCBjaGFyICppbnN0ciwgY29uc3QgY2hhciAqcGFyYW1fbmFtZSwgY29u c3QgY2hhciAqbGV0dGVycywuLi4pOworZXh0ZXJuIGNoYXIgKnJlcGxhY2VfcGVyY2VudF9w bGFjZWhvbGRlcnMoY29uc3QgY2hhciAqaW5zdHIsIGNvbnN0IGNoYXIgKnBhcmFtX25hbWUs IGNvbnN0IGNoYXIgKmxldHRlcnMsIC4uLik7CiAKICNlbmRpZgkJCQkJCQkvKiBQRVJDRU5U UkVQTF9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9qaXQvbGx2bWppdF9lbWl0Lmgg Yi9zcmMvaW5jbHVkZS9qaXQvbGx2bWppdF9lbWl0LmgKaW5kZXggMDg5OTQ1MzkxZWUuLjBl MDg5Yjk1NjliIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9qaXQvbGx2bWppdF9lbWl0LmgK KysrIGIvc3JjL2luY2x1ZGUvaml0L2xsdm1qaXRfZW1pdC5oCkBAIC0xNTksMTQgKzE1OSwx NCBAQCBsX2xvYWRfZ2VwMShMTFZNQnVpbGRlclJlZiBiLCBMTFZNVHlwZVJlZiB0LCBMTFZN VmFsdWVSZWYgdiwgTExWTVZhbHVlUmVmIGlkeCwgYwogfQogCiAvKiBzZXBhcmF0ZSwgYmVj YXVzZSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpIGNhbid0IGFwcGVhciBpbiBkZWZpbml0 aW9uICovCi1zdGF0aWMgaW5saW5lIExMVk1CYXNpY0Jsb2NrUmVmIGxfYmJfYmVmb3JlX3Yo TExWTUJhc2ljQmxvY2tSZWYgciwgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRl X3ByaW50ZigyLCAzKTsKK3N0YXRpYyBpbmxpbmUgTExWTUJhc2ljQmxvY2tSZWYgbF9iYl9i ZWZvcmVfdihMTFZNQmFzaWNCbG9ja1JlZiByLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdf YXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogLyoKICAqIEluc2VydCBhIG5ldyBiYXNpYyBi bG9jaywganVzdCBiZWZvcmUgciwgdGhlIG5hbWUgYmVpbmcgZGV0ZXJtaW5lZCBieSBmbXQK ICAqIGFuZCBhcmd1bWVudHMuCiAgKi8KIHN0YXRpYyBpbmxpbmUgTExWTUJhc2ljQmxvY2tS ZWYKLWxfYmJfYmVmb3JlX3YoTExWTUJhc2ljQmxvY2tSZWYgciwgY29uc3QgY2hhciAqZm10 LC4uLikKK2xfYmJfYmVmb3JlX3YoTExWTUJhc2ljQmxvY2tSZWYgciwgY29uc3QgY2hhciAq Zm10LCAuLi4pCiB7CiAJY2hhcgkJYnVmWzUxMl07CiAJdmFfbGlzdAkJYXJnczsKQEAgLTE4 MiwxNCArMTgyLDE0IEBAIGxfYmJfYmVmb3JlX3YoTExWTUJhc2ljQmxvY2tSZWYgciwgY29u c3QgY2hhciAqZm10LC4uLikKIH0KIAogLyogc2VwYXJhdGUsIGJlY2F1c2UgcGdfYXR0cmli dXRlX3ByaW50ZigyLCAzKSBjYW4ndCBhcHBlYXIgaW4gZGVmaW5pdGlvbiAqLwotc3RhdGlj IGlubGluZSBMTFZNQmFzaWNCbG9ja1JlZiBsX2JiX2FwcGVuZF92KExMVk1WYWx1ZVJlZiBm LCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworc3Rh dGljIGlubGluZSBMTFZNQmFzaWNCbG9ja1JlZiBsX2JiX2FwcGVuZF92KExMVk1WYWx1ZVJl ZiBmLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsK IAogLyoKICAqIEluc2VydCBhIG5ldyBiYXNpYyBibG9jayBhZnRlciBwcmV2aW91cyBiYXNp YyBibG9ja3MsIHRoZSBuYW1lIGJlaW5nCiAgKiBkZXRlcm1pbmVkIGJ5IGZtdCBhbmQgYXJn dW1lbnRzLgogICovCiBzdGF0aWMgaW5saW5lIExMVk1CYXNpY0Jsb2NrUmVmCi1sX2JiX2Fw cGVuZF92KExMVk1WYWx1ZVJlZiBmLCBjb25zdCBjaGFyICpmbXQsLi4uKQorbF9iYl9hcHBl bmRfdihMTFZNVmFsdWVSZWYgZiwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJY2hhcgkJ YnVmWzUxMl07CiAJdmFfbGlzdAkJYXJnczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xp Yi9zdHJpbmdpbmZvLmggYi9zcmMvaW5jbHVkZS9saWIvc3RyaW5naW5mby5oCmluZGV4IDA3 OTY1MmM4Y2U0Li5lM2Y0YjkyMjMwMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbGliL3N0 cmluZ2luZm8uaAorKysgYi9zcmMvaW5jbHVkZS9saWIvc3RyaW5naW5mby5oCkBAIC0xOTYs NyArMTk2LDcgQEAgZXh0ZXJuIHZvaWQgcmVzZXRTdHJpbmdJbmZvKFN0cmluZ0luZm8gc3Ry KTsKICAqIHRvIHN0ciBpZiBuZWNlc3NhcnkuICBUaGlzIGlzIHNvcnQgb2YgbGlrZSBhIGNv bWJpbmF0aW9uIG9mIHNwcmludGYgYW5kCiAgKiBzdHJjYXQuCiAgKi8KLWV4dGVybiB2b2lk IGFwcGVuZFN0cmluZ0luZm8oU3RyaW5nSW5mbyBzdHIsIGNvbnN0IGNoYXIgKmZtdCwuLi4p IHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4gdm9pZCBhcHBlbmRTdHJpbmdJ bmZvKFN0cmluZ0luZm8gc3RyLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRl X3ByaW50ZigyLCAzKTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIGFwcGVu ZFN0cmluZ0luZm9WQQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9ydC5oIGIvc3JjL2lu Y2x1ZGUvcG9ydC5oCmluZGV4IDUxZGY5YjgwZTdkLi4xMWRjMTc2MTljNSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvcG9ydC5oCisrKyBiL3NyYy9pbmNsdWRlL3BvcnQuaApAQCAtMjMx LDEzICsyMzEsMTMgQEAgcGdfYXNjaWlfdG9sb3dlcih1bnNpZ25lZCBjaGFyIGNoKQogI2Vu ZGlmCiAKIGV4dGVybiBpbnQJcGdfdnNucHJpbnRmKGNoYXIgKnN0ciwgc2l6ZV90IGNvdW50 LCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykgcGdfYXR0cmlidXRlX3ByaW50Zigz LCAwKTsKLWV4dGVybiBpbnQJcGdfc25wcmludGYoY2hhciAqc3RyLCBzaXplX3QgY291bnQs IGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMywgNCk7CitleHRl cm4gaW50CXBnX3NucHJpbnRmKGNoYXIgKnN0ciwgc2l6ZV90IGNvdW50LCBjb25zdCBjaGFy ICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigzLCA0KTsKIGV4dGVybiBpbnQJcGdf dnNwcmludGYoY2hhciAqc3RyLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykgcGdf YXR0cmlidXRlX3ByaW50ZigyLCAwKTsKLWV4dGVybiBpbnQJcGdfc3ByaW50ZihjaGFyICpz dHIsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7Citl eHRlcm4gaW50CXBnX3NwcmludGYoY2hhciAqc3RyLCBjb25zdCBjaGFyICpmbXQsIC4uLikg cGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIGV4dGVybiBpbnQJcGdfdmZwcmludGYoRklM RSAqc3RyZWFtLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykgcGdfYXR0cmlidXRl X3ByaW50ZigyLCAwKTsKLWV4dGVybiBpbnQJcGdfZnByaW50ZihGSUxFICpzdHJlYW0sIGNv bnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4g aW50CXBnX2ZwcmludGYoRklMRSAqc3RyZWFtLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdf YXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIGV4dGVybiBpbnQJcGdfdnByaW50Zihjb25zdCBj aGFyICpmbXQsIHZhX2xpc3QgYXJncykgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAwKTsKLWV4 dGVybiBpbnQJcGdfcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoMSwgMik7CitleHRlcm4gaW50CXBnX3ByaW50Zihjb25zdCBjaGFyICpmbXQsIC4u LikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIAogI2lmbmRlZiBXSU4zMgogLyoKQEAg LTM2MCw3ICszNjAsNyBAQCBleHRlcm4gYm9vbCBybXRyZWUoY29uc3QgY2hhciAqcGF0aCwg Ym9vbCBybXRvcGRpcik7CiAgKiBwYXNzaW5nIG9mIG90aGVyIHNwZWNpYWwgb3B0aW9ucy4K ICAqLwogZXh0ZXJuIEhBTkRMRSBwZ3dpbjMyX29wZW5faGFuZGxlKGNvbnN0IGNoYXIgKiwg aW50LCBib29sKTsKLWV4dGVybiBpbnQJcGd3aW4zMl9vcGVuKGNvbnN0IGNoYXIgKiwgaW50 LC4uLik7CitleHRlcm4gaW50CXBnd2luMzJfb3Blbihjb25zdCBjaGFyICosIGludCwgLi4u KTsKIGV4dGVybiBGSUxFICpwZ3dpbjMyX2ZvcGVuKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hh ciAqKTsKICNkZWZpbmUJCW9wZW4oYSxiLGMpIHBnd2luMzJfb3BlbihhLGIsYykKICNkZWZp bmUJCWZvcGVuKGEsYikgcGd3aW4zMl9mb3BlbihhLGIpCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS91dGlscy9lbG9nLmggYi9zcmMvaW5jbHVkZS91dGlscy9lbG9nLmgKaW5kZXggYTEy YjM3OWUwOWEuLmM1OTgxMzE1MjUyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9l bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oCkBAIC0xNzcsMjkgKzE3Nywy OSBAQCBleHRlcm4gaW50CWVycmNvZGUoaW50IHNxbGVycmNvZGUpOwogZXh0ZXJuIGludAll cnJjb2RlX2Zvcl9maWxlX2FjY2Vzcyh2b2lkKTsKIGV4dGVybiBpbnQJZXJyY29kZV9mb3Jf c29ja2V0X2FjY2Vzcyh2b2lkKTsKIAotZXh0ZXJuIGludAllcnJtc2coY29uc3QgY2hhciAq Zm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKLWV4dGVybiBpbnQJZXJybXNn X2ludGVybmFsKGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwg Mik7CitleHRlcm4gaW50CWVycm1zZyhjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmli dXRlX3ByaW50ZigxLCAyKTsKK2V4dGVybiBpbnQJZXJybXNnX2ludGVybmFsKGNvbnN0IGNo YXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogCiBleHRlcm4gaW50 CWVycm1zZ19wbHVyYWwoY29uc3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpm bXRfcGx1cmFsLAotCQkJCQkJICB1bnNpZ25lZCBsb25nIG4sLi4uKSBwZ19hdHRyaWJ1dGVf cHJpbnRmKDEsIDQpIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgNCk7CisJCQkJCQkgIHVuc2ln bmVkIGxvbmcgbiwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDQpIHBnX2F0dHJpYnV0 ZV9wcmludGYoMiwgNCk7CiAKLWV4dGVybiBpbnQJZXJyZGV0YWlsKGNvbnN0IGNoYXIgKmZt dCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7Ci1leHRlcm4gaW50CWVycmRldGFp bF9pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEs IDIpOworZXh0ZXJuIGludAllcnJkZXRhaWwoY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0 dHJpYnV0ZV9wcmludGYoMSwgMik7CitleHRlcm4gaW50CWVycmRldGFpbF9pbnRlcm5hbChj b25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIAotZXh0 ZXJuIGludAllcnJkZXRhaWxfbG9nKGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0 ZV9wcmludGYoMSwgMik7CitleHRlcm4gaW50CWVycmRldGFpbF9sb2coY29uc3QgY2hhciAq Zm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAKIGV4dGVybiBpbnQJZXJy ZGV0YWlsX2xvZ19wbHVyYWwoY29uc3QgY2hhciAqZm10X3Npbmd1bGFyLAogCQkJCQkJCQkg Y29uc3QgY2hhciAqZm10X3BsdXJhbCwKLQkJCQkJCQkJIHVuc2lnbmVkIGxvbmcgbiwuLi4p IHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgNCkgcGdfYXR0cmlidXRlX3ByaW50ZigyLCA0KTsK KwkJCQkJCQkJIHVuc2lnbmVkIGxvbmcgbiwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEs IDQpIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgNCk7CiAKIGV4dGVybiBpbnQJZXJyZGV0YWls X3BsdXJhbChjb25zdCBjaGFyICpmbXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVy YWwsCi0JCQkJCQkJIHVuc2lnbmVkIGxvbmcgbiwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYo MSwgNCkgcGdfYXR0cmlidXRlX3ByaW50ZigyLCA0KTsKKwkJCQkJCQkgdW5zaWduZWQgbG9u ZyBuLCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgNCkgcGdfYXR0cmlidXRlX3ByaW50 ZigyLCA0KTsKIAotZXh0ZXJuIGludAllcnJoaW50KGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBn X2F0dHJpYnV0ZV9wcmludGYoMSwgMik7Ci1leHRlcm4gaW50CWVycmhpbnRfaW50ZXJuYWwo Y29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK2V4dGVy biBpbnQJZXJyaGludChjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50 ZigxLCAyKTsKK2V4dGVybiBpbnQJZXJyaGludF9pbnRlcm5hbChjb25zdCBjaGFyICpmbXQs IC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIAogZXh0ZXJuIGludAllcnJoaW50 X3BsdXJhbChjb25zdCBjaGFyICpmbXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVy YWwsCi0JCQkJCQkgICB1bnNpZ25lZCBsb25nIG4sLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRm KDEsIDQpIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgNCk7CisJCQkJCQkgICB1bnNpZ25lZCBs b25nIG4sIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCA0KSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDIsIDQpOwogCiAvKgogICogZXJyY29udGV4dCgpIGlzIHR5cGljYWxseSBjYWxsZWQg aW4gZXJyb3IgY29udGV4dCBjYWxsYmFjayBmdW5jdGlvbnMsIG5vdApAQCAtMjEzLDcgKzIx Myw3IEBAIGV4dGVybiBpbnQJZXJyaGludF9wbHVyYWwoY29uc3QgY2hhciAqZm10X3Npbmd1 bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAogCiBleHRlcm4gaW50CXNldF9lcnJjb250 ZXh0X2RvbWFpbihjb25zdCBjaGFyICpkb21haW4pOwogCi1leHRlcm4gaW50CWVycmNvbnRl eHRfbXNnKGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7 CitleHRlcm4gaW50CWVycmNvbnRleHRfbXNnKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19h dHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogCiBleHRlcm4gaW50CWVycmhpZGVzdG10KGJvb2wg aGlkZV9zdG10KTsKIGV4dGVybiBpbnQJZXJyaGlkZWNvbnRleHQoYm9vbCBoaWRlX2N0eCk7 CkBAIC0zMDEsNyArMzAxLDcgQEAgZXh0ZXJuIHZvaWQgZXJyc2F2ZV9maW5pc2goc3RydWN0 IE5vZGUgKmNvbnRleHQsCiAvKiBTdXBwb3J0IGZvciBjb25zdHJ1Y3RpbmcgZXJyb3Igc3Ry aW5ncyBzZXBhcmF0ZWx5IGZyb20gZXJlcG9ydCgpIGNhbGxzICovCiAKIGV4dGVybiB2b2lk IHByZV9mb3JtYXRfZWxvZ19zdHJpbmcoaW50IGVycm51bWJlciwgY29uc3QgY2hhciAqZG9t YWluKTsKLWV4dGVybiBjaGFyICpmb3JtYXRfZWxvZ19zdHJpbmcoY29uc3QgY2hhciAqZm10 LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK2V4dGVybiBjaGFyICpmb3JtYXRf ZWxvZ19zdHJpbmcoY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYo MSwgMik7CiAKIAogLyogU3VwcG9ydCBmb3IgYXR0YWNoaW5nIGNvbnRleHQgaW5mb3JtYXRp b24gdG8gZXJyb3IgcmVwb3J0cyAqLwpAQCAtNTI3LDcgKzUyNyw3IEBAIGV4dGVybiB2b2lk IHdyaXRlX2pzb25sb2coRXJyb3JEYXRhICplZGF0YSk7CiAgKiBub3QgYXZhaWxhYmxlKS4g VXNlZCBiZWZvcmUgZXJlcG9ydC9lbG9nIGNhbiBiZSB1c2VkCiAgKiBzYWZlbHkgKG1lbW9y eSBjb250ZXh0LCBHVUMgbG9hZCBldGMpCiAgKi8KLWV4dGVybiB2b2lkIHdyaXRlX3N0ZGVy cihjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworZXh0 ZXJuIHZvaWQgd3JpdGVfc3RkZXJyKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1 dGVfcHJpbnRmKDEsIDIpOwogZXh0ZXJuIHZvaWQgdndyaXRlX3N0ZGVycihjb25zdCBjaGFy ICpmbXQsIHZhX2xpc3QgYXApIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMCk7CiAKICNlbmRp ZgkJCQkJCQkvKiBFTE9HX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3Bh bGxvYy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGFsbG9jLmgKaW5kZXggYWM1M2YxODlhNGUu LjkyOTUyMTFkMjAwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9wYWxsb2MuaAor KysgYi9zcmMvaW5jbHVkZS91dGlscy9wYWxsb2MuaApAQCAtMTQ3LDcgKzE0Nyw3IEBAIGV4 dGVybiBjaGFyICpwbnN0cmR1cChjb25zdCBjaGFyICppbiwgU2l6ZSBsZW4pOwogZXh0ZXJu IGNoYXIgKnBjaG9tcChjb25zdCBjaGFyICppbik7CiAKIC8qIHNwcmludGYgaW50byBhIHBh bGxvYydkIGJ1ZmZlciAtLS0gdGhlc2UgYXJlIGluIHBzcHJpbnRmLmMgKi8KLWV4dGVybiBj aGFyICpwc3ByaW50Zihjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRm KDEsIDIpOworZXh0ZXJuIGNoYXIgKnBzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBw Z19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogZXh0ZXJuIHNpemVfdCBwdnNucHJpbnRmKGNo YXIgKmJ1Ziwgc2l6ZV90IGxlbiwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpIHBn X2F0dHJpYnV0ZV9wcmludGYoMywgMCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQQUxMT0NfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2Rlc2NyaXB0b3Iu YyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9kZXNjcmlwdG9yLmMKaW5kZXggMzlj ZDUxMzBlYzkuLjg3OTNkMDllYjcwIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3Bn L2VjcGdsaWIvZGVzY3JpcHRvci5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xp Yi9kZXNjcmlwdG9yLmMKQEAgLTIzMSw3ICsyMzEsNyBAQCBnZXRfY2hhcl9pdGVtKGludCBs aW5lbm8sIHZvaWQgKnZhciwgZW51bSBFQ1BHdHR5cGUgdmFydHlwZSwgY2hhciAqdmFsdWUs IGludCB2YQogCQkJCX0KIAogYm9vbAotRUNQR2dldF9kZXNjKGludCBsaW5lbm8sIGNvbnN0 IGNoYXIgKmRlc2NfbmFtZSwgaW50IGluZGV4LC4uLikKK0VDUEdnZXRfZGVzYyhpbnQgbGlu ZW5vLCBjb25zdCBjaGFyICpkZXNjX25hbWUsIGludCBpbmRleCwgLi4uKQogewogCXZhX2xp c3QJCWFyZ3M7CiAJUEdyZXN1bHQgICAqRUNQR3Jlc3VsdDsKQEAgLTYxMCw3ICs2MTAsNyBA QCBzZXRfZGVzY19hdHRyKHN0cnVjdCBkZXNjcmlwdG9yX2l0ZW0gKmRlc2NfaXRlbSwgc3Ry dWN0IHZhcmlhYmxlICp2YXIsCiAKIAogYm9vbAotRUNQR3NldF9kZXNjKGludCBsaW5lbm8s IGNvbnN0IGNoYXIgKmRlc2NfbmFtZSwgaW50IGluZGV4LC4uLikKK0VDUEdzZXRfZGVzYyhp bnQgbGluZW5vLCBjb25zdCBjaGFyICpkZXNjX25hbWUsIGludCBpbmRleCwgLi4uKQogewog CXZhX2xpc3QJCWFyZ3M7CiAJc3RydWN0IGRlc2NyaXB0b3IgKmRlc2M7CkBAIC04NTIsNyAr ODUyLDcgQEAgZWNwZ19maW5kX2Rlc2MoaW50IGxpbmUsIGNvbnN0IGNoYXIgKm5hbWUpCiB9 CiAKIGJvb2wKLUVDUEdkZXNjcmliZShpbnQgbGluZSwgaW50IGNvbXBhdCwgYm9vbCBpbnB1 dCwgY29uc3QgY2hhciAqY29ubmVjdGlvbl9uYW1lLCBjb25zdCBjaGFyICpzdG10X25hbWUs Li4uKQorRUNQR2Rlc2NyaWJlKGludCBsaW5lLCBpbnQgY29tcGF0LCBib29sIGlucHV0LCBj b25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUsIGNvbnN0IGNoYXIgKnN0bXRfbmFtZSwgLi4u KQogewogCWJvb2wJCXJldCA9IGZhbHNlOwogCXN0cnVjdCBjb25uZWN0aW9uICpjb247CmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZWNwZ2xpYl9leHRlcm4u aCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9lY3BnbGliX2V4dGVybi5oCmluZGV4 IDk0OWZmNjZjZWZjLi5lYzZkMTI0NmU3OCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv ZWNwZy9lY3BnbGliL2VjcGdsaWJfZXh0ZXJuLmgKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNw Zy9lY3BnbGliL2VjcGdsaWJfZXh0ZXJuLmgKQEAgLTIxNCw3ICsyMTQsNyBAQCB2b2lkCQll Y3BnX3JhaXNlKGludCBsaW5lLCBpbnQgY29kZSwgY29uc3QgY2hhciAqc3Fsc3RhdGUsIGNv bnN0IGNoYXIgKnN0cik7CiB2b2lkCQllY3BnX3JhaXNlX2JhY2tlbmQoaW50IGxpbmUsIFBH cmVzdWx0ICpyZXN1bHQsIFBHY29ubiAqY29ubiwgaW50IGNvbXBhdCk7CiBjaGFyCSAgICpl Y3BnX3ByZXBhcmVkKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBjb25uZWN0aW9uICpjb24p OwogYm9vbAkJZWNwZ19kZWFsbG9jYXRlX2FsbF9jb25uKGludCBsaW5lbm8sIGVudW0gQ09N UEFUX01PREUgYywgc3RydWN0IGNvbm5lY3Rpb24gKmNvbik7Ci12b2lkCQllY3BnX2xvZyhj b25zdCBjaGFyICpmb3JtYXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwordm9p ZAkJZWNwZ19sb2coY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmlu dGYoMSwgMik7CiBib29sCQllY3BnX2F1dG9fcHJlcGFyZShpbnQgbGluZW5vLCBjb25zdCBj aGFyICpjb25uZWN0aW9uX25hbWUsCiAJCQkJCQkJICBjb25zdCBpbnQgY29tcGF0LCBjaGFy ICoqbmFtZSwgY29uc3QgY2hhciAqcXVlcnkpOwogYm9vbAkJZWNwZ19yZWdpc3Rlcl9wcmVw YXJlZF9zdG10KHN0cnVjdCBzdGF0ZW1lbnQgKnN0bXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2lu dGVyZmFjZXMvZWNwZy9lY3BnbGliL2V4ZWN1dGUuYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcv ZWNwZ2xpYi9leGVjdXRlLmMKaW5kZXggYmQxMGZlZjU3NDguLmFjNjY1ZDlkOTAwIDEwMDY0 NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZXhlY3V0ZS5jCisrKyBiL3Ny Yy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9leGVjdXRlLmMKQEAgLTIyODgsNyArMjI4OCw3 IEBAIGZhaWw6CiAgKiBUaGUgaW5wdXQvb3V0cHV0IHBhcmFtZXRlcnMgYXJlIHBhc3NlZCBh cyB2YXJpYWJsZS1sZW5ndGggYXJndW1lbnQgbGlzdC4KICAqLwogYm9vbAotRUNQR2RvKGNv bnN0IGludCBsaW5lbm8sIGNvbnN0IGludCBjb21wYXQsIGNvbnN0IGludCBmb3JjZV9pbmRp Y2F0b3IsIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFtZSwgY29uc3QgYm9vbCBxdWVzdGlv bm1hcmtzLCBjb25zdCBpbnQgc3QsIGNvbnN0IGNoYXIgKnF1ZXJ5LC4uLikKK0VDUEdkbyhj b25zdCBpbnQgbGluZW5vLCBjb25zdCBpbnQgY29tcGF0LCBjb25zdCBpbnQgZm9yY2VfaW5k aWNhdG9yLCBjb25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUsIGNvbnN0IGJvb2wgcXVlc3Rp b25tYXJrcywgY29uc3QgaW50IHN0LCBjb25zdCBjaGFyICpxdWVyeSwgLi4uKQogewogCXZh X2xpc3QJCWFyZ3M7CiAJYm9vbAkJcmV0OwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMv ZWNwZy9lY3BnbGliL21pc2MuYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9taXNj LmMKaW5kZXggMTg4NTczMmE2NTIuLmUzNzE2ODc0NGU0IDEwMDY0NAotLS0gYS9zcmMvaW50 ZXJmYWNlcy9lY3BnL2VjcGdsaWIvbWlzYy5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcv ZWNwZ2xpYi9taXNjLmMKQEAgLTIyOSw3ICsyMjksNyBAQCBFQ1BHZGVidWcoaW50IG4sIEZJ TEUgKmRiZ3MpCiB9CiAKIHZvaWQKLWVjcGdfbG9nKGNvbnN0IGNoYXIgKmZvcm1hdCwuLi4p CitlY3BnX2xvZyhjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcDsK IAljb25zdCBjaGFyICppbnRsX2Zvcm1hdDsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2Vz L2VjcGcvaW5jbHVkZS9lY3BnbGliLmggYi9zcmMvaW50ZXJmYWNlcy9lY3BnL2luY2x1ZGUv ZWNwZ2xpYi5oCmluZGV4IGRiZjNjYzNhMGMyLi4xZDk3MWQ1ODkzZCAxMDA2NDQKLS0tIGEv c3JjL2ludGVyZmFjZXMvZWNwZy9pbmNsdWRlL2VjcGdsaWIuaAorKysgYi9zcmMvaW50ZXJm YWNlcy9lY3BnL2luY2x1ZGUvZWNwZ2xpYi5oCkBAIC0yOSw3ICsyOSw3IEBAIGJvb2wJCUVD UEdjb25uZWN0KGludCBsaW5lbm8sIGludCBjLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBj aGFyICp1c2VyLAogCQkJCQkJY29uc3QgY2hhciAqcGFzc3dkLCBjb25zdCBjaGFyICpjb25u ZWN0aW9uX25hbWUsIGludCBhdXRvY29tbWl0KTsKIGJvb2wJCUVDUEdkbyhjb25zdCBpbnQg bGluZW5vLCBjb25zdCBpbnQgY29tcGF0LCBjb25zdCBpbnQgZm9yY2VfaW5kaWNhdG9yLAog CQkJCSAgIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFtZSwgY29uc3QgYm9vbCBxdWVzdGlv bm1hcmtzLAotCQkJCSAgIGNvbnN0IGludCBzdCwgY29uc3QgY2hhciAqcXVlcnksLi4uKTsK KwkJCQkgICBjb25zdCBpbnQgc3QsIGNvbnN0IGNoYXIgKnF1ZXJ5LCAuLi4pOwogYm9vbAkJ RUNQR3RyYW5zKGludCBsaW5lbm8sIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFtZSwgY29u c3QgY2hhciAqdHJhbnNhY3Rpb24pOwogYm9vbAkJRUNQR2Rpc2Nvbm5lY3QoaW50IGxpbmVu bywgY29uc3QgY2hhciAqY29ubmVjdGlvbl9uYW1lKTsKIGJvb2wJCUVDUEdwcmVwYXJlKGlu dCBsaW5lbm8sIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFtZSwgY29uc3QgYm9vbCBxdWVz dGlvbm1hcmtzLApAQCAtNTUsMTQgKzU1LDE0IEBAIGJvb2wJCUVDUEdkb19kZXNjcmlwdG9y KGludCBsaW5lLCBjb25zdCBjaGFyICpjb25uZWN0aW9uLAogYm9vbAkJRUNQR2RlYWxsb2Nh dGVfZGVzYyhpbnQgbGluZSwgY29uc3QgY2hhciAqbmFtZSk7CiBib29sCQlFQ1BHYWxsb2Nh dGVfZGVzYyhpbnQgbGluZSwgY29uc3QgY2hhciAqbmFtZSk7CiBib29sCQlFQ1BHZ2V0X2Rl c2NfaGVhZGVyKGludCBsaW5lbm8sIGNvbnN0IGNoYXIgKmRlc2NfbmFtZSwgaW50ICpjb3Vu dCk7Ci1ib29sCQlFQ1BHZ2V0X2Rlc2MoaW50IGxpbmVubywgY29uc3QgY2hhciAqZGVzY19u YW1lLCBpbnQgaW5kZXgsLi4uKTsKK2Jvb2wJCUVDUEdnZXRfZGVzYyhpbnQgbGluZW5vLCBj b25zdCBjaGFyICpkZXNjX25hbWUsIGludCBpbmRleCwgLi4uKTsKIGJvb2wJCUVDUEdzZXRf ZGVzY19oZWFkZXIoaW50IGxpbmVubywgY29uc3QgY2hhciAqZGVzY19uYW1lLCBpbnQgY291 bnQpOwotYm9vbAkJRUNQR3NldF9kZXNjKGludCBsaW5lbm8sIGNvbnN0IGNoYXIgKmRlc2Nf bmFtZSwgaW50IGluZGV4LC4uLik7Citib29sCQlFQ1BHc2V0X2Rlc2MoaW50IGxpbmVubywg Y29uc3QgY2hhciAqZGVzY19uYW1lLCBpbnQgaW5kZXgsIC4uLik7CiAKIHZvaWQJCUVDUEdz ZXRfbm9pbmRfbnVsbChlbnVtIEVDUEd0dHlwZSB0eXBlLCB2b2lkICpwdHIpOwogYm9vbAkJ RUNQR2lzX25vaW5kX251bGwoZW51bSBFQ1BHdHR5cGUgdHlwZSwgY29uc3Qgdm9pZCAqcHRy KTsKIGJvb2wJCUVDUEdkZXNjcmliZShpbnQgbGluZSwgaW50IGNvbXBhdCwgYm9vbCBpbnB1 dCwKLQkJCQkJCSBjb25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUsIGNvbnN0IGNoYXIgKnN0 bXRfbmFtZSwuLi4pOworCQkJCQkJIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFtZSwgY29u c3QgY2hhciAqc3RtdF9uYW1lLCAuLi4pOwogCiB2b2lkCQlFQ1BHc2V0X3ZhcihpbnQgbnVt YmVyLCB2b2lkICpwb2ludGVyLCBpbnQgbGluZW5vKTsKIHZvaWQJICAgKkVDUEdnZXRfdmFy KGludCBudW1iZXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9j L3ByZXByb2NfZXh0ZXJuLmggYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcHJlcHJv Y19leHRlcm4uaAppbmRleCAyYzg5ZTMwNjIxZS4uYzYxZjA1NDg3M2IgMTAwNjQ0Ci0tLSBh L3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wcmVwcm9jX2V4dGVybi5oCisrKyBiL3Ny Yy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wcmVwcm9jX2V4dGVybi5oCkBAIC04NSwxMSAr ODUsMTEgQEAgZXh0ZXJuIHZvaWQgKmxvY19hbGxvYyhzaXplX3Qgc2l6ZSk7CiBleHRlcm4g Y2hhciAqbG9jX3N0cmR1cChjb25zdCBjaGFyICpzdHJpbmcpOwogZXh0ZXJuIHZvaWQgcmVj bGFpbV9sb2NhbF9zdG9yYWdlKHZvaWQpOwogZXh0ZXJuIGNoYXIgKmNhdDJfc3RyKGNvbnN0 IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIgKnN0cjIpOwotZXh0ZXJuIGNoYXIgKmNhdF9zdHIo aW50IGNvdW50LC4uLik7CitleHRlcm4gY2hhciAqY2F0X3N0cihpbnQgY291bnQsIC4uLik7 CiBleHRlcm4gY2hhciAqbWFrZTJfc3RyKGNvbnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIg KnN0cjIpOwogZXh0ZXJuIGNoYXIgKm1ha2UzX3N0cihjb25zdCBjaGFyICpzdHIxLCBjb25z dCBjaGFyICpzdHIyLCBjb25zdCBjaGFyICpzdHIzKTsKLWV4dGVybiB2b2lkIG1tZXJyb3Io aW50IGVycm9yX2NvZGUsIGVudW0gZXJyb3J0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmVycm9y LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigzLCA0KTsKLXBnX25vcmV0dXJuIGV4dGVybiB2 b2lkIG1tZmF0YWwoaW50IGVycm9yX2NvZGUsIGNvbnN0IGNoYXIgKmVycm9yLC4uLikgcGdf YXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK2V4dGVybiB2b2lkIG1tZXJyb3IoaW50IGVycm9y X2NvZGUsIGVudW0gZXJyb3J0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmVycm9yLCAuLi4pIHBn X2F0dHJpYnV0ZV9wcmludGYoMywgNCk7CitwZ19ub3JldHVybiBleHRlcm4gdm9pZCBtbWZh dGFsKGludCBlcnJvcl9jb2RlLCBjb25zdCBjaGFyICplcnJvciwgLi4uKSBwZ19hdHRyaWJ1 dGVfcHJpbnRmKDIsIDMpOwogZXh0ZXJuIHZvaWQgb3V0cHV0X2dldF9kZXNjcl9oZWFkZXIo Y29uc3QgY2hhciAqZGVzY19uYW1lKTsKIGV4dGVybiB2b2lkIG91dHB1dF9nZXRfZGVzY3Io Y29uc3QgY2hhciAqZGVzY19uYW1lLCBjb25zdCBjaGFyICppbmRleCk7CiBleHRlcm4gdm9p ZCBvdXRwdXRfc2V0X2Rlc2NyX2hlYWRlcihjb25zdCBjaGFyICpkZXNjX25hbWUpOwpkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL3V0aWwuYyBiL3NyYy9pbnRl cmZhY2VzL2VjcGcvcHJlcHJvYy91dGlsLmMKaW5kZXggZjE3N2RmMzI0ODguLmJhMWYwNDlh ODdkIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvdXRpbC5jCisr KyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy91dGlsLmMKQEAgLTQ3LDcgKzQ3LDcg QEAgdm1tZXJyb3IoaW50IGVycm9yX2NvZGUsIGVudW0gZXJyb3J0eXBlIHR5cGUsIGNvbnN0 IGNoYXIgKmVycm9yLCB2YV9saXN0IGFwKQogCiAvKiBSZXBvcnQgYW4gZXJyb3Igb3Igd2Fy bmluZyAqLwogdm9pZAotbW1lcnJvcihpbnQgZXJyb3JfY29kZSwgZW51bSBlcnJvcnR5cGUg dHlwZSwgY29uc3QgY2hhciAqZXJyb3IsLi4uKQorbW1lcnJvcihpbnQgZXJyb3JfY29kZSwg ZW51bSBlcnJvcnR5cGUgdHlwZSwgY29uc3QgY2hhciAqZXJyb3IsIC4uLikKIHsKIAl2YV9s aXN0CQlhcDsKIApAQCAtNTgsNyArNTgsNyBAQCBtbWVycm9yKGludCBlcnJvcl9jb2RlLCBl bnVtIGVycm9ydHlwZSB0eXBlLCBjb25zdCBjaGFyICplcnJvciwuLi4pCiAKIC8qIFJlcG9y dCBhbiBlcnJvciBhbmQgYWJhbmRvbiBleGVjdXRpb24gKi8KIHZvaWQKLW1tZmF0YWwoaW50 IGVycm9yX2NvZGUsIGNvbnN0IGNoYXIgKmVycm9yLC4uLikKK21tZmF0YWwoaW50IGVycm9y X2NvZGUsIGNvbnN0IGNoYXIgKmVycm9yLCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKQEAg LTIxNyw3ICsyMTcsNyBAQCBjYXQyX3N0cihjb25zdCBjaGFyICpzdHIxLCBjb25zdCBjaGFy ICpzdHIyKQogICogQ29uY2F0ZW5hdGUgTiBzdHJpbmdzLCBpbnNlcnRpbmcgc3BhY2VzIGJl dHdlZW4gdGhlbSB1bmxlc3MgdGhleSBhcmUgZW1wdHkKICAqLwogY2hhciAqCi1jYXRfc3Ry KGludCBjb3VudCwuLi4pCitjYXRfc3RyKGludCBjb3VudCwgLi4uKQogewogCXZhX2xpc3QJ CWFyZ3M7CiAJaW50CQkJaTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9h dXRoL29hdXRoLXV0aWxzLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC11 dGlscy5jCmluZGV4IDRlYmU3ZDA5NDhjLi5mOWEyYzFhZTIwZCAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtdXRpbHMuYworKysgYi9zcmMvaW50ZXJm YWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5jCkBAIC05Miw3ICs5Miw3IEBAIGxpYnBx X29hdXRoX2luaXQocGd0aHJlYWRsb2NrX3QgdGhyZWFkbG9ja19pbXBsLAogICogY29ubmVj dGlvbiwgYWZ0ZXIgdHJhbnNsYXRpbmcgaXQuICBUaGlzIGlzIGEgY29weSBvZiBsaWJwcSdz IGludGVybmFsIEFQSS4KICAqLwogdm9pZAotbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoUEdj b25uICpjb25uLCBjb25zdCBjaGFyICpmbXQsLi4uKQorbGlicHFfYXBwZW5kX2Nvbm5fZXJy b3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlzYXZl X2Vycm5vID0gZXJybm87CiAJYm9vbAkJZG9uZTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2xpYnBxLW9hdXRoL29hdXRoLXV0aWxzLmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS1v YXV0aC9vYXV0aC11dGlscy5oCmluZGV4IDlmNGQ1YjY5MmQyLi5lZjE5ZDAwNjgwNyAxMDA2 NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtdXRpbHMuaAorKysg Yi9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5oCkBAIC03NSw3ICs3 NSw3IEBAIHR5cGVkZWYgZW51bQogCVBHX0JPT0xfTk8JCQkJCS8qIE5vIChmYWxzZSkgKi8K IH0gUEdUZXJuYXJ5Qm9vbDsKIAotZXh0ZXJuIHZvaWQgbGlicHFfYXBwZW5kX2Nvbm5fZXJy b3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDIsIDMpOworZXh0ZXJuIHZvaWQgbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoUEdjb25u ICpjb25uLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAz KTsKIGV4dGVybiBib29sIG9hdXRoX3Vuc2FmZV9kZWJ1Z2dpbmdfZW5hYmxlZCh2b2lkKTsK IGV4dGVybiBpbnQJcHFfYmxvY2tfc2lncGlwZShzaWdzZXRfdCAqb3NpZ3NldCwgYm9vbCAq c2lncGlwZV9wZW5kaW5nKTsKIGV4dGVybiB2b2lkIHBxX3Jlc2V0X3NpZ3BpcGUoc2lnc2V0 X3QgKm9zaWdzZXQsIGJvb2wgc2lncGlwZV9wZW5kaW5nLCBib29sIGdvdF9lcGlwZSk7CmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgYi9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1leGVjLmMKaW5kZXggMjAzZDM4OGJkYmYuLjhjNjEwZDE3MGE2IDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKKysrIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCkBAIC05NDEsNyArOTQxLDcgQEAgcHFQcmVwYXJl QXN5bmNSZXN1bHQoUEdjb25uICpjb25uKQogICogYSB0cmFpbGluZyBuZXdsaW5lLCBhbmQg c2hvdWxkIG5vdCBiZSBtb3JlIHRoYW4gb25lIGxpbmUpLgogICovCiB2b2lkCi1wcUludGVy bmFsTm90aWNlKGNvbnN0IFBHTm90aWNlSG9va3MgKmhvb2tzLCBjb25zdCBjaGFyICpmbXQs Li4uKQorcHFJbnRlcm5hbE5vdGljZShjb25zdCBQR05vdGljZUhvb2tzICpob29rcywgY29u c3QgY2hhciAqZm10LCAuLi4pCiB7CiAJY2hhcgkJbXNnQnVmWzEwMjRdOwogCXZhX2xpc3QJ CWFyZ3M7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1taXNjLmMgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1taXNjLmMKaW5kZXggNWU1NDM1M2ZiZmUuLjUyYjY0 MjhjNWMwIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1taXNjLmMKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtbWlzYy5jCkBAIC0xMzcyLDcgKzEzNzIsNyBA QCBsaWJwcV9uZ2V0dGV4dChjb25zdCBjaGFyICptc2dpZCwgY29uc3QgY2hhciAqbXNnaWRf cGx1cmFsLCB1bnNpZ25lZCBsb25nIG4pCiAgKiBuZXdsaW5lLgogICovCiB2b2lkCi1saWJw cV9hcHBlbmRfZXJyb3IoUFFFeHBCdWZmZXIgZXJyb3JNZXNzYWdlLCBjb25zdCBjaGFyICpm bXQsLi4uKQorbGlicHFfYXBwZW5kX2Vycm9yKFBRRXhwQnVmZmVyIGVycm9yTWVzc2FnZSwg Y29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5vOwog CWJvb2wJCWRvbmU7CkBAIC0xNDAxLDcgKzE0MDEsNyBAQCBsaWJwcV9hcHBlbmRfZXJyb3Io UFFFeHBCdWZmZXIgZXJyb3JNZXNzYWdlLCBjb25zdCBjaGFyICpmbXQsLi4uKQogICogZm9y bWF0IHNob3VsZCBub3QgZW5kIHdpdGggYSBuZXdsaW5lLgogICovCiB2b2lkCi1saWJwcV9h cHBlbmRfY29ubl9lcnJvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmZtdCwuLi4pCits aWJwcV9hcHBlbmRfY29ubl9lcnJvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmZtdCwg Li4uKQogewogCWludAkJCXNhdmVfZXJybm8gPSBlcnJubzsKIAlib29sCQlkb25lOwpkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggYi9zcmMvaW50ZXJm YWNlcy9saWJwcS9saWJwcS1pbnQuaAppbmRleCBmYjZhN2NiZjE1ZC4uYzBiYjcwYTY1YTMg MTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oCisrKyBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oCkBAIC03NTIsNyArNzUyLDcgQEAgZXh0 ZXJuIGNoYXIgKnBxUmVzdWx0U3RyZHVwKFBHcmVzdWx0ICpyZXMsIGNvbnN0IGNoYXIgKnN0 cik7CiBleHRlcm4gdm9pZCBwcUNsZWFyQXN5bmNSZXN1bHQoUEdjb25uICpjb25uKTsKIGV4 dGVybiB2b2lkIHBxU2F2ZUVycm9yUmVzdWx0KFBHY29ubiAqY29ubik7CiBleHRlcm4gUEdy ZXN1bHQgKnBxUHJlcGFyZUFzeW5jUmVzdWx0KFBHY29ubiAqY29ubik7Ci1leHRlcm4gdm9p ZCBwcUludGVybmFsTm90aWNlKGNvbnN0IFBHTm90aWNlSG9va3MgKmhvb2tzLCBjb25zdCBj aGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0ZXJuIHZvaWQg cHFJbnRlcm5hbE5vdGljZShjb25zdCBQR05vdGljZUhvb2tzICpob29rcywgY29uc3QgY2hh ciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiBleHRlcm4gdm9pZCBw cVNhdmVNZXNzYWdlRmllbGQoUEdyZXN1bHQgKnJlcywgY2hhciBjb2RlLAogCQkJCQkJCSAg IGNvbnN0IGNoYXIgKnZhbHVlKTsKIGV4dGVybiBpbnQJcHFTYXZlUGFyYW1ldGVyU3RhdHVz KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqbmFtZSwKQEAgLTk1Niw4ICs5NTYsOCBAQCBl eHRlcm4gY2hhciAqbGlicHFfbmdldHRleHQoY29uc3QgY2hhciAqbXNnaWQsIGNvbnN0IGNo YXIgKm1zZ2lkX3BsdXJhbCwgdW5zaWduZQogICovCiAjdW5kZWYgXwogCi1leHRlcm4gdm9p ZCBsaWJwcV9hcHBlbmRfZXJyb3IoUFFFeHBCdWZmZXIgZXJyb3JNZXNzYWdlLCBjb25zdCBj aGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwotZXh0ZXJuIHZvaWQg bGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpmbXQs Li4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0ZXJuIHZvaWQgbGlicHFfYXBw ZW5kX2Vycm9yKFBRRXhwQnVmZmVyIGVycm9yTWVzc2FnZSwgY29uc3QgY2hhciAqZm10LCAu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4gdm9pZCBsaWJwcV9hcHBl bmRfY29ubl9lcnJvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19h dHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiAvKgogICogVGhlc2UgbWFjcm9zIGFyZSBuZWVk ZWQgdG8gbGV0IGVycm9yLWhhbmRsaW5nIGNvZGUgYmUgcG9ydGFibGUgYmV0d2VlbgpkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvcHFleHBidWZmZXIuYyBiL3NyYy9pbnRl cmZhY2VzL2xpYnBxL3BxZXhwYnVmZmVyLmMKaW5kZXggMTUzYWU2YWY2Y2IuLjc1NjM5OTNm NmQ2IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZlci5jCisr KyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3BxZXhwYnVmZmVyLmMKQEAgLTIzMiw3ICsyMzIs NyBAQCBlbmxhcmdlUFFFeHBCdWZmZXIoUFFFeHBCdWZmZXIgc3RyLCBzaXplX3QgbmVlZGVk KQogICogcmVzZXRQUUV4cEJ1ZmZlcigpIGZvbGxvd2VkIGJ5IGFwcGVuZFBRRXhwQnVmZmVy KCkuCiAgKi8KIHZvaWQKLXByaW50ZlBRRXhwQnVmZmVyKFBRRXhwQnVmZmVyIHN0ciwgY29u c3QgY2hhciAqZm10LC4uLikKK3ByaW50ZlBRRXhwQnVmZmVyKFBRRXhwQnVmZmVyIHN0ciwg Y29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5vOwog CXZhX2xpc3QJCWFyZ3M7CkBAIC0yNjIsNyArMjYyLDcgQEAgcHJpbnRmUFFFeHBCdWZmZXIo UFFFeHBCdWZmZXIgc3RyLCBjb25zdCBjaGFyICpmbXQsLi4uKQogICogc3RyY2F0LgogICov CiB2b2lkCi1hcHBlbmRQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIGNvbnN0IGNoYXIg KmZtdCwuLi4pCithcHBlbmRQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIGNvbnN0IGNo YXIgKmZtdCwgLi4uKQogewogCWludAkJCXNhdmVfZXJybm8gPSBlcnJubzsKIAl2YV9saXN0 CQlhcmdzOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvcHFleHBidWZmZXIu aCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3BxZXhwYnVmZmVyLmgKaW5kZXggZGM4M2Y0ZmZl ODYuLjI3NDFiYjllMmZmIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4 cGJ1ZmZlci5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3BxZXhwYnVmZmVyLmgKQEAg LTE0Niw3ICsxNDYsNyBAQCBleHRlcm4gaW50CWVubGFyZ2VQUUV4cEJ1ZmZlcihQUUV4cEJ1 ZmZlciBzdHIsIHNpemVfdCBuZWVkZWQpOwogICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIHJv dXRpbmUgdGhhdCBkb2VzIHRoZSBzYW1lIHRoaW5nIGFzCiAgKiByZXNldFBRRXhwQnVmZmVy KCkgZm9sbG93ZWQgYnkgYXBwZW5kUFFFeHBCdWZmZXIoKS4KICAqLwotZXh0ZXJuIHZvaWQg cHJpbnRmUFFFeHBCdWZmZXIoUFFFeHBCdWZmZXIgc3RyLCBjb25zdCBjaGFyICpmbXQsLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0ZXJuIHZvaWQgcHJpbnRmUFFFeHBC dWZmZXIoUFFFeHBCdWZmZXIgc3RyLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmli dXRlX3ByaW50ZigyLCAzKTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIGFw cGVuZFBRRXhwQnVmZmVyCkBAIC0xNTUsNyArMTU1LDcgQEAgZXh0ZXJuIHZvaWQgcHJpbnRm UFFFeHBCdWZmZXIoUFFFeHBCdWZmZXIgc3RyLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19h dHRyaWJ1dGUKICAqIHRvIHN0ciBpZiBuZWNlc3NhcnkuICBUaGlzIGlzIHNvcnQgb2YgbGlr ZSBhIGNvbWJpbmF0aW9uIG9mIHNwcmludGYgYW5kCiAgKiBzdHJjYXQuCiAgKi8KLWV4dGVy biB2b2lkIGFwcGVuZFBRRXhwQnVmZmVyKFBRRXhwQnVmZmVyIHN0ciwgY29uc3QgY2hhciAq Zm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK2V4dGVybiB2b2lkIGFwcGVu ZFBRRXhwQnVmZmVyKFBRRXhwQnVmZmVyIHN0ciwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBn X2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgKiBhcHBlbmRQUUV4cEJ1ZmZlclZBCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxweXRob24v cGxweV9lbG9nLmMgYi9zcmMvcGwvcGxweXRob24vcGxweV9lbG9nLmMKaW5kZXggZTEwOTg4 OGNjZWQuLmE2NDYyMDU1OWI0IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxweXRob24vcGxweV9l bG9nLmMKKysrIGIvc3JjL3BsL3BscHl0aG9uL3BscHlfZWxvZy5jCkBAIC00MSw3ICs0MSw3 IEBAIHN0YXRpYyBib29sIHNldF9zdHJpbmdfYXR0cihQeU9iamVjdCAqb2JqLCBjaGFyICph dHRybmFtZSwgY2hhciAqc3RyKTsKICAqIGluIHRoZSBjb250ZXh0LgogICovCiB2b2lkCi1Q THlfZWxvZ19pbXBsKGludCBlbGV2ZWwsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitQTHlfZWxv Z19pbXBsKGludCBlbGV2ZWwsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWludAkJCXNh dmVfZXJybm8gPSBlcnJubzsKIAljaGFyCSAgICp2b2xhdGlsZSB4bXNnID0gTlVMTDsKQEAg LTQ4Nyw3ICs0ODcsNyBAQCBnZXRfc291cmNlX2xpbmUoY29uc3QgY2hhciAqc3JjLCBpbnQg bGluZW5vKQogCiAvKiBjYWxsIFB5RXJyX1NldFN0cmluZyB3aXRoIGEgdnByaW50IGludGVy ZmFjZSBhbmQgdHJhbnNsYXRpb24gc3VwcG9ydCAqLwogdm9pZAotUEx5X2V4Y2VwdGlvbl9z ZXQoUHlPYmplY3QgKmV4YywgY29uc3QgY2hhciAqZm10LC4uLikKK1BMeV9leGNlcHRpb25f c2V0KFB5T2JqZWN0ICpleGMsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWNoYXIJCWJ1 ZlsxMDI0XTsKIAl2YV9saXN0CQlhcDsKQEAgLTUwMyw3ICs1MDMsNyBAQCBQTHlfZXhjZXB0 aW9uX3NldChQeU9iamVjdCAqZXhjLCBjb25zdCBjaGFyICpmbXQsLi4uKQogdm9pZAogUEx5 X2V4Y2VwdGlvbl9zZXRfcGx1cmFsKFB5T2JqZWN0ICpleGMsCiAJCQkJCQkgY29uc3QgY2hh ciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAotCQkJCQkJIHVuc2ln bmVkIGxvbmcgbiwuLi4pCisJCQkJCQkgdW5zaWduZWQgbG9uZyBuLCAuLi4pCiB7CiAJY2hh cgkJYnVmWzEwMjRdOwogCXZhX2xpc3QJCWFwOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscHl0 aG9uL3BscHlfZWxvZy5oIGIvc3JjL3BsL3BscHl0aG9uL3BscHlfZWxvZy5oCmluZGV4IGRj NjVmMmY2ZWUyLi4zMTUwZjllNzJjYSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscHl0aG9uL3Bs cHlfZWxvZy5oCisrKyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X2Vsb2cuaApAQCAtMzQsMTIg KzM0LDEyIEBAIGV4dGVybiBQeU9iamVjdCAqUEx5X2V4Y19zcGlfZXJyb3I7CiAJfSB3aGls ZSgwKQogI2VuZGlmCQkJCQkJCS8qIEhBVkVfX0JVSUxUSU5fQ09OU1RBTlRfUCAqLwogCi1l eHRlcm4gUEdETExFWFBPUlQgdm9pZCBQTHlfZWxvZ19pbXBsKGludCBlbGV2ZWwsIGNvbnN0 IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4gUEdE TExFWFBPUlQgdm9pZCBQTHlfZWxvZ19pbXBsKGludCBlbGV2ZWwsIGNvbnN0IGNoYXIgKmZt dCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCi1leHRlcm4gUEdETExFWFBP UlQgdm9pZCBQTHlfZXhjZXB0aW9uX3NldChQeU9iamVjdCAqZXhjLCBjb25zdCBjaGFyICpm bXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0ZXJuIFBHRExMRVhQT1JU IHZvaWQgUEx5X2V4Y2VwdGlvbl9zZXQoUHlPYmplY3QgKmV4YywgY29uc3QgY2hhciAqZm10 LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIGV4dGVybiBQR0RMTEVYUE9S VCB2b2lkIFBMeV9leGNlcHRpb25fc2V0X3BsdXJhbChQeU9iamVjdCAqZXhjLCBjb25zdCBj aGFyICpmbXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVyYWwsCi0JCQkJCQkJCQkJ CQkgdW5zaWduZWQgbG9uZyBuLC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCA1KSBwZ19h dHRyaWJ1dGVfcHJpbnRmKDMsIDUpOworCQkJCQkJCQkJCQkJIHVuc2lnbmVkIGxvbmcgbiwg Li4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDUpIHBnX2F0dHJpYnV0ZV9wcmludGYoMywg NSk7CiAKIGV4dGVybiBQR0RMTEVYUE9SVCB2b2lkIFBMeV9leGNlcHRpb25fc2V0X3dpdGhf ZGV0YWlscyhQeU9iamVjdCAqZXhjY2xhc3MsIEVycm9yRGF0YSAqZWRhdGEpOwogCmRpZmYg LS1naXQgYS9zcmMvcG9ydC9vcGVuLmMgYi9zcmMvcG9ydC9vcGVuLmMKaW5kZXggMmNkMjYw NjBhYTMuLjRiZTA4YjJjZjEzIDEwMDY0NAotLS0gYS9zcmMvcG9ydC9vcGVuLmMKKysrIGIv c3JjL3BvcnQvb3Blbi5jCkBAIC0xNjUsNyArMTY1LDcgQEAgcGd3aW4zMl9vcGVuX2hhbmRs ZShjb25zdCBjaGFyICpmaWxlTmFtZSwgaW50IGZpbGVGbGFncywgYm9vbCBiYWNrdXBfc2Vt YW50aWNzKQogfQogCiBpbnQKLXBnd2luMzJfb3Blbihjb25zdCBjaGFyICpmaWxlTmFtZSwg aW50IGZpbGVGbGFncywuLi4pCitwZ3dpbjMyX29wZW4oY29uc3QgY2hhciAqZmlsZU5hbWUs IGludCBmaWxlRmxhZ3MsIC4uLikKIHsKIAlIQU5ETEUJCWg7CiAJaW50CQkJZmQ7CmRpZmYg LS1naXQgYS9zcmMvcG9ydC9zbnByaW50Zi5jIGIvc3JjL3BvcnQvc25wcmludGYuYwppbmRl eCA1NmM3MDM2NzUzYy4uYjE5YTQ1YzgxZTQgMTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L3NucHJp bnRmLmMKKysrIGIvc3JjL3BvcnQvc25wcmludGYuYwpAQCAtMTk5LDcgKzE5OSw3IEBAIHBn X3ZzbnByaW50ZihjaGFyICpzdHIsIHNpemVfdCBjb3VudCwgY29uc3QgY2hhciAqZm10LCB2 YV9saXN0IGFyZ3MpCiB9CiAKIGludAotcGdfc25wcmludGYoY2hhciAqc3RyLCBzaXplX3Qg Y291bnQsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwZ19zbnByaW50ZihjaGFyICpzdHIsIHNp emVfdCBjb3VudCwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJbGVuOwogCXZh X2xpc3QJCWFyZ3M7CkBAIC0yMjcsNyArMjI3LDcgQEAgcGdfdnNwcmludGYoY2hhciAqc3Ry LCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykKIH0KIAogaW50Ci1wZ19zcHJpbnRm KGNoYXIgKnN0ciwgY29uc3QgY2hhciAqZm10LC4uLikKK3BnX3NwcmludGYoY2hhciAqc3Ry LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlsZW47CiAJdmFfbGlzdAkJYXJn czsKQEAgLTI2MSw3ICsyNjEsNyBAQCBwZ192ZnByaW50ZihGSUxFICpzdHJlYW0sIGNvbnN0 IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKQogfQogCiBpbnQKLXBnX2ZwcmludGYoRklMRSAq c3RyZWFtLCBjb25zdCBjaGFyICpmbXQsLi4uKQorcGdfZnByaW50ZihGSUxFICpzdHJlYW0s IGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWludAkJCWxlbjsKIAl2YV9saXN0CQlhcmdz OwpAQCAtMjc5LDcgKzI3OSw3IEBAIHBnX3ZwcmludGYoY29uc3QgY2hhciAqZm10LCB2YV9s aXN0IGFyZ3MpCiB9CiAKIGludAotcGdfcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwuLi4pCitw Z19wcmludGYoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJbGVuOwogCXZhX2xp c3QJCWFyZ3M7CmRpZmYgLS1naXQgYS9zcmMvcG9ydC93aW4zMnNlY3VyaXR5LmMgYi9zcmMv cG9ydC93aW4zMnNlY3VyaXR5LmMKaW5kZXggNDZkMmZjNzc0YjQuLmQzY2E3MGYwZWFjIDEw MDY0NAotLS0gYS9zcmMvcG9ydC93aW4zMnNlY3VyaXR5LmMKKysrIGIvc3JjL3BvcnQvd2lu MzJzZWN1cml0eS5jCkBAIC0xNyw3ICsxNyw3IEBACiAjaW5jbHVkZSAicG9zdGdyZXNfZmUu aCIKICNlbmRpZgogCi1zdGF0aWMgdm9pZCBsb2dfZXJyb3IoY29uc3QgY2hhciAqZm10LC4u LikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK3N0YXRpYyB2b2lkIGxvZ19lcnJvcihj b25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIAogCiAv KgpAQCAtMjUsNyArMjUsNyBAQCBzdGF0aWMgdm9pZCBsb2dfZXJyb3IoY29uc3QgY2hhciAq Zm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKICAqIG1lc3NhZ2UuCiAgKi8K IHN0YXRpYyB2b2lkCi1sb2dfZXJyb3IoY29uc3QgY2hhciAqZm10LC4uLikKK2xvZ19lcnJv cihjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcDsKIApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS9saWJwcV9waXBlbGluZS5jIGIv c3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS9saWJwcV9waXBlbGluZS5jCmluZGV4 IGNlMWE5OTk1ZjQ2Li45Y2YyNDlhODZmNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxl cy9saWJwcV9waXBlbGluZS9saWJwcV9waXBlbGluZS5jCisrKyBiL3NyYy90ZXN0L21vZHVs ZXMvbGlicHFfcGlwZWxpbmUvbGlicHFfcGlwZWxpbmUuYwpAQCAtMjQsNyArMjQsNyBAQAog CiAKIHN0YXRpYyB2b2lkIGV4aXRfbmljZWx5KFBHY29ubiAqY29ubik7Ci1wZ19ub3JldHVy biBzdGF0aWMgdm9pZCBwZ19mYXRhbF9pbXBsKGludCBsaW5lLCBjb25zdCBjaGFyICpmbXQs Li4uKQorcGdfbm9yZXR1cm4gc3RhdGljIHZvaWQgcGdfZmF0YWxfaW1wbChpbnQgbGluZSwg Y29uc3QgY2hhciAqZm10LCAuLi4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwog c3RhdGljIGJvb2wgcHJvY2Vzc19yZXN1bHQoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVz LCBpbnQgcmVzdWx0cywKIAkJCQkJCSAgIGludCBudW1zZW50KTsKQEAgLTcyLDcgKzcyLDcg QEAgZXhpdF9uaWNlbHkoUEdjb25uICpjb25uKQogICovCiAjZGVmaW5lIHBnX2ZhdGFsKC4u LikgcGdfZmF0YWxfaW1wbChfX0xJTkVfXywgX19WQV9BUkdTX18pCiBwZ19ub3JldHVybiBz dGF0aWMgdm9pZAotcGdfZmF0YWxfaW1wbChpbnQgbGluZSwgY29uc3QgY2hhciAqZm10LC4u LikKK3BnX2ZhdGFsX2ltcGwoaW50IGxpbmUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewog CXZhX2xpc3QJCWFyZ3M7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVn cmVzcy5jIGIvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzLmMKaW5kZXggYjVjMGNiNjQ3 YTguLjZkYzdkMTZhYTg3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jl c3MuYworKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MuYwpAQCAtMTQ2LDEyICsx NDYsMTIgQEAgc3RhdGljIHZvaWQgbWFrZV9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyKTsK IHN0YXRpYyB2b2lkIHRlc3Rfc3RhdHVzX3ByaW50KGJvb2wgb2ssIGNvbnN0IGNoYXIgKnRl c3RuYW1lLCBkb3VibGUgcnVudGltZSwgYm9vbCBwYXJhbGxlbCk7CiBzdGF0aWMgdm9pZCB0 ZXN0X3N0YXR1c19vayhjb25zdCBjaGFyICp0ZXN0bmFtZSwgZG91YmxlIHJ1bnRpbWUsIGJv b2wgcGFyYWxsZWwpOwogc3RhdGljIHZvaWQgdGVzdF9zdGF0dXNfZmFpbGVkKGNvbnN0IGNo YXIgKnRlc3RuYW1lLCBkb3VibGUgcnVudGltZSwgYm9vbCBwYXJhbGxlbCk7Ci1zdGF0aWMg dm9pZCBiYWlsX291dChib29sIG5vYXRleGl0LCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19h dHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwotc3RhdGljIHZvaWQgZW1pdF90YXBfb3V0cHV0KFRB UHR5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zigy LCAzKTsKK3N0YXRpYyB2b2lkIGJhaWxfb3V0KGJvb2wgbm9hdGV4aXQsIGNvbnN0IGNoYXIg KmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworc3RhdGljIHZvaWQgZW1p dF90YXBfb3V0cHV0KFRBUHR5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0 dHJpYnV0ZV9wcmludGYoMiwgMyk7CiBzdGF0aWMgdm9pZCBlbWl0X3RhcF9vdXRwdXRfdihU QVB0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdwKSBwZ19hdHRyaWJ1 dGVfcHJpbnRmKDIsIDApOwogCiBzdGF0aWMgU3RyaW5nSW5mbyBwc3FsX3N0YXJ0X2NvbW1h bmQodm9pZCk7Ci1zdGF0aWMgdm9pZCBwc3FsX2FkZF9jb21tYW5kKFN0cmluZ0luZm8gYnVm LCBjb25zdCBjaGFyICpxdWVyeSwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7Citz dGF0aWMgdm9pZCBwc3FsX2FkZF9jb21tYW5kKFN0cmluZ0luZm8gYnVmLCBjb25zdCBjaGFy ICpxdWVyeSwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogc3RhdGljIHZvaWQg cHNxbF9lbmRfY29tbWFuZChTdHJpbmdJbmZvIGJ1ZiwgY29uc3QgY2hhciAqZGF0YWJhc2Up OwogCiAvKgpAQCAtMjUyLDcgKzI1Miw3IEBAIHNwbGl0X3RvX3N0cmluZ2xpc3QoY29uc3Qg Y2hhciAqcywgY29uc3QgY2hhciAqZGVsaW0sIF9zdHJpbmdsaXN0ICoqbGlzdGhlYWQpCiAg KiBleGl0IGhhbmRsZXJzLCB0aHVzIGF2b2lkIGFueSByaXNrIG9mIGJvdHRvbWxlc3MgcmVj dXJzaW9uIGNhbGxzIHRvIGV4aXQuCiAgKi8KIHN0YXRpYyB2b2lkCi1iYWlsX291dChib29s IG5vYXRleGl0LCBjb25zdCBjaGFyICpmbXQsLi4uKQorYmFpbF9vdXQoYm9vbCBub2F0ZXhp dCwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKQEAgLTMyOCw3 ICszMjgsNyBAQCB0ZXN0X3N0YXR1c19mYWlsZWQoY29uc3QgY2hhciAqdGVzdG5hbWUsIGRv dWJsZSBydW50aW1lLCBib29sIHBhcmFsbGVsKQogCiAKIHN0YXRpYyB2b2lkCi1lbWl0X3Rh cF9vdXRwdXQoVEFQdHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsLi4uKQorZW1pdF90YXBf b3V0cHV0KFRBUHR5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlz dAkJYXJncDsKIApAQCAtMTEyOSw3ICsxMTI5LDcgQEAgcHNxbF9zdGFydF9jb21tYW5kKHZv aWQpCiB9CiAKIHN0YXRpYyB2b2lkCi1wc3FsX2FkZF9jb21tYW5kKFN0cmluZ0luZm8gYnVm LCBjb25zdCBjaGFyICpxdWVyeSwuLi4pCitwc3FsX2FkZF9jb21tYW5kKFN0cmluZ0luZm8g YnVmLCBjb25zdCBjaGFyICpxdWVyeSwgLi4uKQogewogCVN0cmluZ0luZm9EYXRhIGNtZGJ1 ZjsKIAljb25zdCBjaGFyICpjbWRwdHI7CmRpZmYgLS1naXQgYS9zcmMvdGltZXpvbmUvemlj LmMgYi9zcmMvdGltZXpvbmUvemljLmMKaW5kZXggOGRjYzdiMzM3YTcuLjk3MjNlZmZhODVi IDEwMDY0NAotLS0gYS9zcmMvdGltZXpvbmUvemljLmMKKysrIGIvc3JjL3RpbWV6b25lL3pp Yy5jCkBAIC0xMjMsOCArMTIzLDggQEAgZXh0ZXJuIGludAlsaW5rKGNvbnN0IGNoYXIgKnRh cmdldCwgY29uc3QgY2hhciAqbGlua25hbWUpOwogI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHZl cnJvcihjb25zdCBjaGFyICpjb25zdCBzdHJpbmcsIHZhX2xpc3QgYXJncykgcGdfYXR0cmli dXRlX3ByaW50ZigxLCAwKTsKLXN0YXRpYyB2b2lkIGVycm9yKGNvbnN0IGNoYXIgKmNvbnN0 IHN0cmluZywuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7Ci1zdGF0aWMgdm9pZCB3 YXJuaW5nKGNvbnN0IGNoYXIgKmNvbnN0IHN0cmluZywuLi4pIHBnX2F0dHJpYnV0ZV9wcmlu dGYoMSwgMik7CitzdGF0aWMgdm9pZCBlcnJvcihjb25zdCBjaGFyICpjb25zdCBzdHJpbmcs IC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK3N0YXRpYyB2b2lkIHdhcm5pbmco Y29uc3QgY2hhciAqY29uc3Qgc3RyaW5nLCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwg Mik7CiBzdGF0aWMgdm9pZCBhZGR0dCh6aWNfdCBzdGFydHRpbWUsIGludCB0eXBlKTsKIHN0 YXRpYyBpbnQJYWRkdHlwZSh6aWNfdCB1dG9mZiwgY2hhciBjb25zdCAqYWJiciwKIAkJCQkJ Ym9vbCBpc2RzdCwgYm9vbCB0dGlzc3RkLCBib29sIHR0aXN1dCk7CkBAIC01MTUsNyArNTE1 LDcgQEAgdmVycm9yKGNvbnN0IGNoYXIgKmNvbnN0IHN0cmluZywgdmFfbGlzdCBhcmdzKQog fQogCiBzdGF0aWMgdm9pZAotZXJyb3IoY29uc3QgY2hhciAqY29uc3Qgc3RyaW5nLC4uLikK K2Vycm9yKGNvbnN0IGNoYXIgKmNvbnN0IHN0cmluZywgLi4uKQogewogCXZhX2xpc3QJCWFy Z3M7CiAKQEAgLTUyNiw3ICs1MjYsNyBAQCBlcnJvcihjb25zdCBjaGFyICpjb25zdCBzdHJp bmcsLi4uKQogfQogCiBzdGF0aWMgdm9pZAotd2FybmluZyhjb25zdCBjaGFyICpjb25zdCBz dHJpbmcsLi4uKQord2FybmluZyhjb25zdCBjaGFyICpjb25zdCBzdHJpbmcsIC4uLikKIHsK IAl2YV9saXN0CQlhcmdzOwogCi0tIAoyLjQ3LjMKCg== --------------tZNhokcmpVciz1YNKRHAcfJO--