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 1vxBxo-002NX2-1K for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Mar 2026 22:42:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vxBxm-003Khl-2l for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Mar 2026 22:42:07 +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 1vxBxl-003Kha-32 for pgsql-hackers@lists.postgresql.org; Mon, 02 Mar 2026 22:42:07 +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 1vxBxg-000000005Hs-1h2p for pgsql-hackers@postgresql.org; Mon, 02 Mar 2026 22:42:05 +0000 Received: from s807.loopia.se (localhost [127.0.0.1]) by s807.loopia.se (Postfix) with ESMTP id CBD60579734 for ; Mon, 02 Mar 2026 23:41:56 +0100 (CET) Received: from s979.loopia.se (unknown [172.22.191.5]) by s807.loopia.se (Postfix) with ESMTP id B695257A794 for ; Mon, 02 Mar 2026 23:41:56 +0100 (CET) Received: from s473.loopia.se (unknown [172.22.191.5]) by s979.loopia.se (Postfix) with ESMTP id B42AF10BC34C for ; Mon, 02 Mar 2026 23:41:56 +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 s979.loopia.se ([172.22.191.6]) by s473.loopia.se (s473.loopia.se [172.22.190.13]) (amavisd-new, port 10024) with LMTP id rbqmnXBD0joh for ; Mon, 2 Mar 2026 23:41:55 +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 s979.loopia.se (Postfix) with ESMTPSA id 8F6B610BC385 for ; Mon, 02 Mar 2026 23:41:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxel.se; s=loopiadkim1707418970; t=1772491314; bh=sTNXSrfO4px3QQMoGj7mq73GoP275hJ1g1dNpDNGm7o=; h=Date:Subject:From:To:References:In-Reply-To; b=pY9Ja7Whyta8QQL8Ix4b3TxcAJUg8M6LU9FJSS50pdQ89BY42hxQiafrs1vwM+ImA ZUykdnvB8z+bca1TJLub7259oNHYkN5HmN4PT0bvDTU0DUoOteGtIgoIPkO687u8Fy qI/nJ09pG/AZgdnBerEQYlmWVUPHJ6btEyUDLS32Xi8MMMxEdCAHYxHgrdxFpWyrsS FQWEFWGhXBdYsEwO28Piw9S3nfatR0wJtebRI3L6XIZdCoMzuQOkEvehKXVlOxGCHK FY3Wb7diOAtt+82I8pSTqq0g8Z3CN0tO5YPTkfLQXI58XLcEuXKKlPOMBwdYaugQif Gy5ZvOypYeUSg== Content-Type: multipart/mixed; boundary="------------wPgAyG0fvCRPXkg4nnocnpd9" Message-ID: <7f6bc050-319d-477c-9f47-96a9c8d020b9@proxel.se> Date: Mon, 2 Mar 2026 23:41:54 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Improve pgindent's formatting named fields in struct literals and varidic functions From: Andreas Karlsson To: pgsql-hackers References: Content-Language: en-US In-Reply-To: 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. --------------wPgAyG0fvCRPXkg4nnocnpd9 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Here is a rebased version of the patch. Andreas --------------wPgAyG0fvCRPXkg4nnocnpd9 Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-Make-pgindent-add-a-space-between-comma-and-perio.patch" Content-Disposition: attachment; filename*0="v2-0001-Make-pgindent-add-a-space-between-comma-and-perio.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyZTc4ZDZiMTE0YzcyNzZlNDU2MGVkYWU3MmJmZGM1NjgzMGIwNzQ5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogVHVlLCAxNyBGZWIgMjAyNiAwOTowNDowMSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjIgMS8yXSBNYWtlIHBnaW5kZW50IGFkZCBhIHNwYWNlIGJldHdlZW4gY29tbWEg YW5kIHBlcmlvZAoKRm9ybWF0dGluZyBvZiB2YXJpZGljIGZ1bmN0aW9ucyBhbmQgc3RydWN0 IGxpdGVyYWxzIHdpdGggbmFtZWQgZmllbGQKdXNlZCB0byBiZSB1Z2x5IGR1ZSB0byBwZ2lu ZGVudCB0cmVhaW5nIHBlcmlvZCBhcyBhbHdheXMgYmVpbmcgYmluYXJ5Cm9wZXJhdG9yIGZv ciBzdHJ1Y3QgYWNjZXNzLCBidXQgYWZ0ZXIgY29tbWEgaXQgaGFzIGEgZGlmZmVyZW50IG1l YW5pbmcuCi0tLQogc3JjL3Rvb2xzL3BnX2JzZF9pbmRlbnQvaW5kZW50LmMgfCAyICsrCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xz L3BnX2JzZF9pbmRlbnQvaW5kZW50LmMgYi9zcmMvdG9vbHMvcGdfYnNkX2luZGVudC9pbmRl bnQuYwppbmRleCA0MjE1OTJkYjkyOC4uNThmYTA0MjkzZDkgMTAwNjQ0Ci0tLSBhL3NyYy90 b29scy9wZ19ic2RfaW5kZW50L2luZGVudC5jCisrKyBiL3NyYy90b29scy9wZ19ic2RfaW5k ZW50L2luZGVudC5jCkBAIC0xMDEzLDYgKzEwMTMsOCBAQCBjaGVja190eXBlOgogCiAJY2Fz ZSBwZXJpb2Q6CQkvKiB0cmVhdCBhIHBlcmlvZCBraW5kIG9mIGxpa2UgYSBiaW5hcnkKIAkJ CQkgKiBvcGVyYXRpb24gKi8KKwkgICAgaWYgKHBzLndhbnRfYmxhbmsgJiYgcHMubGFzdF90 b2tlbiA9PSBjb21tYSkKKwkgICAgICAgICplX2NvZGUrKyA9ICcgJzsKIAkgICAgKmVfY29k ZSsrID0gJy4nOwkvKiBtb3ZlIHRoZSBwZXJpb2QgaW50byBsaW5lICovCiAJICAgIHBzLndh bnRfYmxhbmsgPSBmYWxzZTsJLyogZG9udCBwdXQgYSBibGFuayBhZnRlciBhIHBlcmlvZCAq LwogCSAgICBicmVhazsKLS0gCjIuNDcuMwoK --------------wPgAyG0fvCRPXkg4nnocnpd9 Content-Type: text/x-patch; charset=UTF-8; name="v2-0002-Run-pgindent-add-a-space-between-comma-and-period.patch" Content-Disposition: attachment; filename*0="v2-0002-Run-pgindent-add-a-space-between-comma-and-period.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA3ZTg0ZWQ3MjEyNzY4NDA5Njg3NjhhYzE1MDNhNzM2YTdmNTNhNGExIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogVHVlLCAxNyBGZWIgMjAyNiAwOTowNzozMSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjIgMi8yXSBSdW4gcGdpbmRlbnQgYWRkIGEgc3BhY2UgYmV0d2VlbiBjb21tYSBh 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 bHMvZXJyb3IvZWxvZy5jCmluZGV4IDgwYjc4ZjI1MjY3Li43YzkyMTYzMGIxYyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2Vycm9yL2Vsb2cuYwpAQCAtMTA5MCw3ICsxMDkwLDcgQEAgZXJyY29kZV9mb3Jf c29ja2V0X2FjY2Vzcyh2b2lkKQogICogZXJlcG9ydCB3aWxsIHByb3ZpZGUgb25lIGZvciB0 aGUgb3V0cHV0IG1ldGhvZHMgdGhhdCBuZWVkIGl0LgogICovCiBpbnQKLWVycm1zZyhjb25z dCBjaGFyICpmbXQsLi4uKQorZXJybXNnKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCUVy cm9yRGF0YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwog CU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTEzNDUsNyArMTM0NSw3IEBAIGJhY2t0 cmFjZV9jbGVhbnVwKGludCBjb2RlLCBEYXR1bSBhcmcpCiAgKiBlcnJvciByZWN1cnNpb24u CiAgKi8KIGludAotZXJybXNnX2ludGVybmFsKGNvbnN0IGNoYXIgKmZtdCwuLi4pCitlcnJt c2dfaW50ZXJuYWwoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJRXJyb3JEYXRhICAqZWRh dGEgPSAmZXJyb3JkYXRhW2Vycm9yZGF0YV9zdGFja19kZXB0aF07CiAJTWVtb3J5Q29udGV4 dCBvbGRjb250ZXh0OwpAQCAtMTM2OSw3ICsxMzY5LDcgQEAgZXJybXNnX2ludGVybmFsKGNv bnN0IGNoYXIgKmZtdCwuLi4pCiAgKi8KIGludAogZXJybXNnX3BsdXJhbChjb25zdCBjaGFy ICpmbXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVyYWwsCi0JCQkgIHVuc2lnbmVk IGxvbmcgbiwuLi4pCisJCQkgIHVuc2lnbmVkIGxvbmcgbiwgLi4uKQogewogCUVycm9yRGF0 YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwogCU1lbW9y eUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTEzOTEsNyArMTM5MSw3IEBAIGVycm1zZ19wbHVy YWwoY29uc3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAog ICogZXJyZGV0YWlsIC0tLSBhZGQgYSBkZXRhaWwgZXJyb3IgbWVzc2FnZSB0ZXh0IHRvIHRo ZSBjdXJyZW50IGVycm9yCiAgKi8KIGludAotZXJyZGV0YWlsKGNvbnN0IGNoYXIgKmZtdCwu Li4pCitlcnJkZXRhaWwoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJRXJyb3JEYXRhICAq ZWRhdGEgPSAmZXJyb3JkYXRhW2Vycm9yZGF0YV9zdGFja19kZXB0aF07CiAJTWVtb3J5Q29u dGV4dCBvbGRjb250ZXh0OwpAQCAtMTQxOCw3ICsxNDE4LDcgQEAgZXJyZGV0YWlsKGNvbnN0 IGNoYXIgKmZtdCwuLi4pCiAgKiAodHlwaWNhbGx5LCB0aGF0IHRoZXkgZG9uJ3Qgc2VlbSB0 byBiZSB1c2VmdWwgdG8gYXZlcmFnZSB1c2VycykuCiAgKi8KIGludAotZXJyZGV0YWlsX2lu dGVybmFsKGNvbnN0IGNoYXIgKmZtdCwuLi4pCitlcnJkZXRhaWxfaW50ZXJuYWwoY29uc3Qg Y2hhciAqZm10LCAuLi4pCiB7CiAJRXJyb3JEYXRhICAqZWRhdGEgPSAmZXJyb3JkYXRhW2Vy cm9yZGF0YV9zdGFja19kZXB0aF07CiAJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwpAQCAt MTQzOSw3ICsxNDM5LDcgQEAgZXJyZGV0YWlsX2ludGVybmFsKGNvbnN0IGNoYXIgKmZtdCwu Li4pCiAgKiBlcnJkZXRhaWxfbG9nIC0tLSBhZGQgYSBkZXRhaWxfbG9nIGVycm9yIG1lc3Nh Z2UgdGV4dCB0byB0aGUgY3VycmVudCBlcnJvcgogICovCiBpbnQKLWVycmRldGFpbF9sb2co Y29uc3QgY2hhciAqZm10LC4uLikKK2VycmRldGFpbF9sb2coY29uc3QgY2hhciAqZm10LCAu Li4pCiB7CiAJRXJyb3JEYXRhICAqZWRhdGEgPSAmZXJyb3JkYXRhW2Vycm9yZGF0YV9zdGFj a19kZXB0aF07CiAJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwpAQCAtMTQ2MSw3ICsxNDYx LDcgQEAgZXJyZGV0YWlsX2xvZyhjb25zdCBjaGFyICpmbXQsLi4uKQogICovCiBpbnQKIGVy cmRldGFpbF9sb2dfcGx1cmFsKGNvbnN0IGNoYXIgKmZtdF9zaW5ndWxhciwgY29uc3QgY2hh ciAqZm10X3BsdXJhbCwKLQkJCQkJIHVuc2lnbmVkIGxvbmcgbiwuLi4pCisJCQkJCSB1bnNp Z25lZCBsb25nIG4sIC4uLikKIHsKIAlFcnJvckRhdGEgICplZGF0YSA9ICZlcnJvcmRhdGFb ZXJyb3JkYXRhX3N0YWNrX2RlcHRoXTsKIAlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CkBA IC0xNDg0LDcgKzE0ODQsNyBAQCBlcnJkZXRhaWxfbG9nX3BsdXJhbChjb25zdCBjaGFyICpm bXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVyYWwsCiAgKi8KIGludAogZXJyZGV0 YWlsX3BsdXJhbChjb25zdCBjaGFyICpmbXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9w bHVyYWwsCi0JCQkJIHVuc2lnbmVkIGxvbmcgbiwuLi4pCisJCQkJIHVuc2lnbmVkIGxvbmcg biwgLi4uKQogewogCUVycm9yRGF0YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRhdGFf c3RhY2tfZGVwdGhdOwogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTE1MDUsNyAr MTUwNSw3IEBAIGVycmRldGFpbF9wbHVyYWwoY29uc3QgY2hhciAqZm10X3Npbmd1bGFyLCBj b25zdCBjaGFyICpmbXRfcGx1cmFsLAogICogZXJyaGludCAtLS0gYWRkIGEgaGludCBlcnJv ciBtZXNzYWdlIHRleHQgdG8gdGhlIGN1cnJlbnQgZXJyb3IKICAqLwogaW50Ci1lcnJoaW50 KGNvbnN0IGNoYXIgKmZtdCwuLi4pCitlcnJoaW50KGNvbnN0IGNoYXIgKmZtdCwgLi4uKQog ewogCUVycm9yRGF0YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVw dGhdOwogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTE1MjcsNyArMTUyNyw3IEBA IGVycmhpbnQoY29uc3QgY2hhciAqZm10LC4uLikKICAqIE5vbi10cmFuc2xhdGVkIHZlcnNp b24gb2YgZXJyaGludCgpLCBzZWUgYWxzbyBlcnJtc2dfaW50ZXJuYWwoKS4KICAqLwogaW50 Ci1lcnJoaW50X2ludGVybmFsKGNvbnN0IGNoYXIgKmZtdCwuLi4pCitlcnJoaW50X2ludGVy bmFsKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCUVycm9yRGF0YSAgKmVkYXRhID0gJmVy cm9yZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwogCU1lbW9yeUNvbnRleHQgb2xkY29u dGV4dDsKQEAgLTE1NDksNyArMTU0OSw3IEBAIGVycmhpbnRfaW50ZXJuYWwoY29uc3QgY2hh ciAqZm10LC4uLikKICAqLwogaW50CiBlcnJoaW50X3BsdXJhbChjb25zdCBjaGFyICpmbXRf c2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVyYWwsCi0JCQkgICB1bnNpZ25lZCBsb25n IG4sLi4uKQorCQkJICAgdW5zaWduZWQgbG9uZyBuLCAuLi4pCiB7CiAJRXJyb3JEYXRhICAq ZWRhdGEgPSAmZXJyb3JkYXRhW2Vycm9yZGF0YV9zdGFja19kZXB0aF07CiAJTWVtb3J5Q29u dGV4dCBvbGRjb250ZXh0OwpAQCAtMTU3NCw3ICsxNTc0LDcgQEAgZXJyaGludF9wbHVyYWwo Y29uc3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAogICog c3RhdGVzLgogICovCiBpbnQKLWVycmNvbnRleHRfbXNnKGNvbnN0IGNoYXIgKmZtdCwuLi4p CitlcnJjb250ZXh0X21zZyhjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlFcnJvckRhdGEg ICplZGF0YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0YWNrX2RlcHRoXTsKIAlNZW1vcnlD b250ZXh0IG9sZGNvbnRleHQ7CkBAIC0xODQ2LDcgKzE4NDYsNyBAQCBwcmVfZm9ybWF0X2Vs b2dfc3RyaW5nKGludCBlcnJudW1iZXIsIGNvbnN0IGNoYXIgKmRvbWFpbikKIH0KIAogY2hh ciAqCi1mb3JtYXRfZWxvZ19zdHJpbmcoY29uc3QgY2hhciAqZm10LC4uLikKK2Zvcm1hdF9l bG9nX3N0cmluZyhjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlFcnJvckRhdGEJZXJyZGF0 YTsKIAlFcnJvckRhdGEgICplZGF0YTsKQEAgLTQyMjIsNyArNDIyMiw3IEBAIGFwcGVuZF93 aXRoX3RhYnMoU3RyaW5nSW5mbyBidWYsIGNvbnN0IGNoYXIgKnN0cikKICAqIHNhZmVseSAo bWVtb3J5IGNvbnRleHQsIEdVQyBsb2FkIGV0YykKICAqLwogdm9pZAotd3JpdGVfc3RkZXJy KGNvbnN0IGNoYXIgKmZtdCwuLi4pCit3cml0ZV9zdGRlcnIoY29uc3QgY2hhciAqZm10LCAu Li4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2Vycm9yL2pzb25sb2cuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2pzb25sb2cuYwpp bmRleCAyZmY2YTAwNDA0Ni4uZTViYTIyNzk0ZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2Vycm9yL2pzb25sb2cuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9lcnJvci9q c29ubG9nLmMKQEAgLTMwLDcgKzMwLDcgQEAKIAogc3RhdGljIHZvaWQgYXBwZW5kSlNPTktl eVZhbHVlRm10KFN0cmluZ0luZm8gYnVmLCBjb25zdCBjaGFyICprZXksCiAJCQkJCQkJCSAg Ym9vbCBlc2NhcGVfa2V5LAotCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0 dHJpYnV0ZV9wcmludGYoNCwgNSk7CisJCQkJCQkJCSAgY29uc3QgY2hhciAqZm10LCAuLi4p IHBnX2F0dHJpYnV0ZV9wcmludGYoNCwgNSk7CiAKIC8qCiAgKiBhcHBlbmRKU09OS2V5VmFs dWUKQEAgLTY4LDcgKzY4LDcgQEAgYXBwZW5kSlNPTktleVZhbHVlKFN0cmluZ0luZm8gYnVm LCBjb25zdCBjaGFyICprZXksIGNvbnN0IGNoYXIgKnZhbHVlLAogICovCiBzdGF0aWMgdm9p ZAogYXBwZW5kSlNPTktleVZhbHVlRm10KFN0cmluZ0luZm8gYnVmLCBjb25zdCBjaGFyICpr ZXksCi0JCQkJCSAgYm9vbCBlc2NhcGVfa2V5LCBjb25zdCBjaGFyICpmbXQsLi4uKQorCQkJ CQkgIGJvb2wgZXNjYXBlX2tleSwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJ c2F2ZV9lcnJubyA9IGVycm5vOwogCXNpemVfdAkJbGVuID0gMTI4OwkJLyogaW5pdGlhbCBh c3N1bXB0aW9uIGFib3V0IGJ1ZmZlciBzaXplICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwppbmRl eCBkNzc1MDI4MzhjNC4uZjNiMjRmMWU2MDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL21pc2MvZ3VjLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwpAQCAt MjYwLDcgKzI2MCw3IEBAIHN0YXRpYyBib29sIHZhbGlkX2N1c3RvbV92YXJpYWJsZV9uYW1l KGNvbnN0IGNoYXIgKm5hbWUpOwogc3RhdGljIGJvb2wgYXNzaWduYWJsZV9jdXN0b21fdmFy aWFibGVfbmFtZShjb25zdCBjaGFyICpuYW1lLCBib29sIHNraXBfZXJyb3JzLAogCQkJCQkJ CQkJCQlpbnQgZWxldmVsKTsKIHN0YXRpYyB2b2lkIGRvX3NlcmlhbGl6ZShjaGFyICoqZGVz dHB0ciwgU2l6ZSAqbWF4Ynl0ZXMsCi0JCQkJCQkgY29uc3QgY2hhciAqZm10LC4uLikgcGdf YXR0cmlidXRlX3ByaW50ZigzLCA0KTsKKwkJCQkJCSBjb25zdCBjaGFyICpmbXQsIC4uLikg cGdfYXR0cmlidXRlX3ByaW50ZigzLCA0KTsKIHN0YXRpYyBib29sIGNhbGxfYm9vbF9jaGVj a19ob29rKGNvbnN0IHN0cnVjdCBjb25maWdfZ2VuZXJpYyAqY29uZiwgYm9vbCAqbmV3dmFs LAogCQkJCQkJCQkgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlLCBpbnQgZWxldmVs KTsKIHN0YXRpYyBib29sIGNhbGxfaW50X2NoZWNrX2hvb2soY29uc3Qgc3RydWN0IGNvbmZp Z19nZW5lcmljICpjb25mLCBpbnQgKm5ld3ZhbCwKQEAgLTU4NDUsNyArNTg0NSw3IEBAIEVz dGltYXRlR1VDU3RhdGVTcGFjZSh2b2lkKQogICogbWF4Ynl0ZXMgaXMgbm90IHN1ZmZpY2ll bnQgdG8gY29weSB0aGUgc3RyaW5nLCBlcnJvciBvdXQuCiAgKi8KIHN0YXRpYyB2b2lkCi1k b19zZXJpYWxpemUoY2hhciAqKmRlc3RwdHIsIFNpemUgKm1heGJ5dGVzLCBjb25zdCBjaGFy ICpmbXQsLi4uKQorZG9fc2VyaWFsaXplKGNoYXIgKipkZXN0cHRyLCBTaXplICptYXhieXRl cywgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJdmFyZ3M7CiAJaW50CQkJ bjsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfY29tYmluZWJhY2t1cC9sb2FkX21hbmlmZXN0 LmMgYi9zcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvbG9hZF9tYW5pZmVzdC5jCmluZGV4IDJl NTBiN2FmNGQyLi4wMjFmZDNmZmExZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19jb21iaW5l YmFja3VwL2xvYWRfbWFuaWZlc3QuYworKysgYi9zcmMvYmluL3BnX2NvbWJpbmViYWNrdXAv bG9hZF9tYW5pZmVzdC5jCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyB2b2lkIGNvbWJpbmVi YWNrdXBfcGVyX3dhbF9yYW5nZV9jYihKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRl eHQsCiAJCQkJCQkJCQkJICAgWExvZ1JlY1B0ciBzdGFydF9sc24sCiAJCQkJCQkJCQkJICAg WExvZ1JlY1B0ciBlbmRfbHNuKTsKIHBnX25vcmV0dXJuIHN0YXRpYyB2b2lkIHJlcG9ydF9t YW5pZmVzdF9lcnJvcihKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsCi0JCQkJ CQkJCQkJCSAgY29uc3QgY2hhciAqZm10LC4uLikKKwkJCQkJCQkJCQkJICBjb25zdCBjaGFy ICpmbXQsIC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIC8qCkBAIC0y MjUsNyArMjI1LDcgQEAgbG9hZF9iYWNrdXBfbWFuaWZlc3QoY2hhciAqYmFja3VwX2RpcmVj dG9yeSkKICAqIGV4cGVjdHMgdGhpcyBmdW5jdGlvbiBub3QgdG8gcmV0dXJuLgogICovCiBz dGF0aWMgdm9pZAotcmVwb3J0X21hbmlmZXN0X2Vycm9yKEpzb25NYW5pZmVzdFBhcnNlQ29u dGV4dCAqY29udGV4dCwgY29uc3QgY2hhciAqZm10LC4uLikKK3JlcG9ydF9tYW5pZmVzdF9l cnJvcihKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZt dCwgLi4uKQogewogCXZhX2xpc3QJCWFwOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2N0 bC9wZ19jdGwuYyBiL3NyYy9iaW4vcGdfY3RsL3BnX2N0bC5jCmluZGV4IDNjYzYxNDU1ZGNi Li4zZjA2NDVlMTA0OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMKKysr IGIvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMKQEAgLTExNCw3ICsxMTQsNyBAQCBzdGF0aWMg SEFORExFIHNodXRkb3duSGFuZGxlc1syXTsKICNlbmRpZgogCiAKLXN0YXRpYyB2b2lkIHdy aXRlX3N0ZGVycihjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEs IDIpOworc3RhdGljIHZvaWQgd3JpdGVfc3RkZXJyKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBw Z19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogc3RhdGljIHZvaWQgZG9fYWR2aWNlKHZvaWQp Owogc3RhdGljIHZvaWQgZG9faGVscCh2b2lkKTsKIHN0YXRpYyB2b2lkIHNldF9tb2RlKGNo YXIgKm1vZGVvcHQpOwpAQCAtMjAwLDcgKzIwMCw3IEBAIHdyaXRlX2V2ZW50bG9nKGludCBs ZXZlbCwgY29uc3QgY2hhciAqbGluZSkKICAqIG5vdCBhdmFpbGFibGUpLgogICovCiBzdGF0 aWMgdm9pZAotd3JpdGVfc3RkZXJyKGNvbnN0IGNoYXIgKmZtdCwuLi4pCit3cml0ZV9zdGRl cnIoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9maWx0ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9maWx0ZXIu YwppbmRleCBmYmZmNjlkNGY3ZS4uOGFhMzgxMGNiMDggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9maWx0ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvZmlsdGVyLmMKQEAgLTE1 MSw3ICsxNTEsNyBAQCBnZXRfb2JqZWN0X3R5cGUoY29uc3QgY2hhciAqa2V5d29yZCwgaW50 IHNpemUsIEZpbHRlck9iamVjdFR5cGUgKm9ianR5cGUpCiAKIAogdm9pZAotcGdfbG9nX2Zp bHRlcl9lcnJvcihGaWx0ZXJTdGF0ZURhdGEgKmZzdGF0ZSwgY29uc3QgY2hhciAqZm10LC4u LikKK3BnX2xvZ19maWx0ZXJfZXJyb3IoRmlsdGVyU3RhdGVEYXRhICpmc3RhdGUsIGNvbnN0 IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFyZ3A7CiAJY2hhcgkJYnVmWzI1Nl07 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvZmlsdGVyLmggYi9zcmMvYmluL3BnX2R1 bXAvZmlsdGVyLmgKaW5kZXggYjg3Y2Q2ZGVjNTguLjBjZjBkMjJkMTU5IDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvZmlsdGVyLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2ZpbHRl ci5oCkBAIC02Myw3ICs2Myw3IEBAIHR5cGVkZWYgZW51bQogZXh0ZXJuIGNvbnN0IGNoYXIg KmZpbHRlcl9vYmplY3RfdHlwZV9uYW1lKEZpbHRlck9iamVjdFR5cGUgZm90KTsKIGV4dGVy biB2b2lkIGZpbHRlcl9pbml0KEZpbHRlclN0YXRlRGF0YSAqZnN0YXRlLCBjb25zdCBjaGFy ICpmaWxlbmFtZSwgZXhpdF9mdW5jdGlvbiBmX2V4aXQpOwogZXh0ZXJuIHZvaWQgZmlsdGVy X2ZyZWUoRmlsdGVyU3RhdGVEYXRhICpmc3RhdGUpOwotZXh0ZXJuIHZvaWQgcGdfbG9nX2Zp bHRlcl9lcnJvcihGaWx0ZXJTdGF0ZURhdGEgKmZzdGF0ZSwgY29uc3QgY2hhciAqZm10LC4u LikKK2V4dGVybiB2b2lkIHBnX2xvZ19maWx0ZXJfZXJyb3IoRmlsdGVyU3RhdGVEYXRhICpm c3RhdGUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogCQkJcGdfYXR0cmlidXRlX3ByaW50Zigy LCAzKTsKIGV4dGVybiBib29sIGZpbHRlcl9yZWFkX2l0ZW0oRmlsdGVyU3RhdGVEYXRhICpm c3RhdGUsIGNoYXIgKipvYmpuYW1lLAogCQkJCQkJCSBGaWx0ZXJDb21tYW5kVHlwZSAqY29t dHlwZSwgRmlsdGVyT2JqZWN0VHlwZSAqb2JqdHlwZSk7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvcGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKaW5k ZXggZmRhOTEyYmEwYTkuLjI4ZTdmZjZmYTE2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC0z MzksNyArMzM5LDcgQEAgZXh0ZXJuIHZvaWQgU29ydFRvY0Zyb21GaWxlKEFyY2hpdmUgKkFI WCk7CiAKIC8qIENvbnZlbmllbmNlIGZ1bmN0aW9ucyB1c2VkIG9ubHkgd2hlbiB3cml0aW5n IERBVEEgKi8KIGV4dGVybiB2b2lkIGFyY2hwdXRzKGNvbnN0IGNoYXIgKnMsIEFyY2hpdmUg KkFIKTsKLWV4dGVybiBpbnQJYXJjaHByaW50ZihBcmNoaXZlICpBSCwgY29uc3QgY2hhciAq Zm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK2V4dGVybiBpbnQJYXJjaHBy aW50ZihBcmNoaXZlICpBSCwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoMiwgMyk7CiAKICNkZWZpbmUgYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKGJ1ZixzdHIs QUgpIFwKIAlhcHBlbmRTdHJpbmdMaXRlcmFsKGJ1Ziwgc3RyLCAoQUgpLT5lbmNvZGluZywg KEFIKS0+c3RkX3N0cmluZ3MpCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwX2FyY2hpdmVyLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMK aW5kZXggZGY4YTY5ZDNiNzkuLmMxNWJlMjc5NzhmIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2Jh Y2t1cF9hcmNoaXZlci5jCkBAIC0xNjczLDcgKzE2NzMsNyBAQCBhcmNocHV0cyhjb25zdCBj aGFyICpzLCBBcmNoaXZlICpBSCkKIAogLyogUHVibGljICovCiBpbnQKLWFyY2hwcmludGYo QXJjaGl2ZSAqQUgsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCithcmNocHJpbnRmKEFyY2hpdmUg KkFILCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlzYXZlX2Vycm5vID0gZXJy bm87CiAJY2hhcgkgICAqcDsKQEAgLTE3NzcsNyArMTc3Nyw3IEBAIFJlc3RvcmVPdXRwdXQo QXJjaGl2ZUhhbmRsZSAqQUgsIENvbXByZXNzRmlsZUhhbmRsZSAqc2F2ZWRPdXRwdXQpCiAg KglQcmludCBmb3JtYXR0ZWQgdGV4dCB0byB0aGUgb3V0cHV0IGZpbGUgKHVzdWFsbHkgc3Rk b3V0KS4KICAqLwogaW50Ci1haHByaW50ZihBcmNoaXZlSGFuZGxlICpBSCwgY29uc3QgY2hh ciAqZm10LC4uLikKK2FocHJpbnRmKEFyY2hpdmVIYW5kbGUgKkFILCBjb25zdCBjaGFyICpm bXQsIC4uLikKIHsKIAlpbnQJCQlzYXZlX2Vycm5vID0gZXJybm87CiAJY2hhcgkgICAqcDsK QEAgLTE5MTUsNyArMTkxNSw3IEBAIGFod3JpdGUoY29uc3Qgdm9pZCAqcHRyLCBzaXplX3Qg c2l6ZSwgc2l6ZV90IG5tZW1iLCBBcmNoaXZlSGFuZGxlICpBSCkKIAogLyogb24gc29tZSBl cnJvciwgd2UgbWF5IGRlY2lkZSB0byBnbyBvbi4uLiAqLwogdm9pZAotd2Fybl9vcl9leGl0 X2hvcnJpYmx5KEFyY2hpdmVIYW5kbGUgKkFILCBjb25zdCBjaGFyICpmbXQsLi4uKQord2Fy bl9vcl9leGl0X2hvcnJpYmx5KEFyY2hpdmVIYW5kbGUgKkFILCBjb25zdCBjaGFyICpmbXQs IC4uLikKIHsKIAl2YV9saXN0CQlhcDsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cF9hcmNoaXZlci5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNo aXZlci5oCmluZGV4IDM2NTA3M2IzZWFlLi5iZmY5YWIyZDlhYiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5oCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfYXJjaGl2ZXIuaApAQCAtMzk2LDcgKzM5Niw3IEBAIGV4dGVybiBpbnQJ cGFyYWxsZWxfcmVzdG9yZShBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkgKnRlKTsKIGV4 dGVybiB2b2lkIG9uX2V4aXRfY2xvc2VfYXJjaGl2ZShBcmNoaXZlICpBSFgpOwogZXh0ZXJu IHZvaWQgcmVwbGFjZV9vbl9leGl0X2Nsb3NlX2FyY2hpdmUoQXJjaGl2ZSAqQUhYKTsKIAot ZXh0ZXJuIHZvaWQgd2Fybl9vcl9leGl0X2hvcnJpYmx5KEFyY2hpdmVIYW5kbGUgKkFILCBj b25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0ZXJu IHZvaWQgd2Fybl9vcl9leGl0X2hvcnJpYmx5KEFyY2hpdmVIYW5kbGUgKkFILCBjb25zdCBj aGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogLyogT3B0aW9u cyBmb3IgQXJjaGl2ZUVudHJ5ICovCiB0eXBlZGVmIHN0cnVjdCBfYXJjaGl2ZU9wdHMKQEAg LTQ3NCw2ICs0NzQsNiBAQCBleHRlcm4gdm9pZCBJc3N1ZUFDTFBlckJsb2IoQXJjaGl2ZUhh bmRsZSAqQUgsIFRvY0VudHJ5ICp0ZSk7CiBleHRlcm4gdm9pZCBEcm9wTE9JZkV4aXN0cyhB cmNoaXZlSGFuZGxlICpBSCwgT2lkIG9pZCk7CiAKIHZvaWQJCWFod3JpdGUoY29uc3Qgdm9p ZCAqcHRyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5tZW1iLCBBcmNoaXZlSGFuZGxlICpBSCk7 Ci1pbnQJCQlhaHByaW50ZihBcmNoaXZlSGFuZGxlICpBSCwgY29uc3QgY2hhciAqZm10LC4u LikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK2ludAkJCWFocHJpbnRmKEFyY2hpdmVI YW5kbGUgKkFILCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zigy LCAzKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw X3Rhci5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF90YXIuYwppbmRleCBkOTRkMGRl MmE1ZC4uYzgxNjI0MTBhZGYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfdGFyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF90YXIuYwpAQCAtMTAy LDcgKzEwMiw3IEBAIHN0YXRpYyB2b2lkIHRhckNsb3NlKEFyY2hpdmVIYW5kbGUgKkFILCBU QVJfTUVNQkVSICp0aCk7CiAjaWZkZWYgX19OT1RfVVNFRF9fCiBzdGF0aWMgY2hhciAqdGFy R2V0cyhjaGFyICpidWYsIHNpemVfdCBsZW4sIFRBUl9NRU1CRVIgKnRoKTsKICNlbmRpZgot c3RhdGljIGludAl0YXJQcmludGYoVEFSX01FTUJFUiAqdGgsIGNvbnN0IGNoYXIgKmZtdCwu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitzdGF0aWMgaW50CXRhclByaW50ZihU QVJfTUVNQkVSICp0aCwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmlu dGYoMiwgMyk7CiAKIHN0YXRpYyB2b2lkIF90YXJBZGRGaWxlKEFyY2hpdmVIYW5kbGUgKkFI LCBUQVJfTUVNQkVSICp0aCk7CiBzdGF0aWMgVEFSX01FTUJFUiAqX3RhclBvc2l0aW9uVG8o QXJjaGl2ZUhhbmRsZSAqQUgsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKQEAgLTk1MSw3ICs5 NTEsNyBAQCBfRW5kTE9zKEFyY2hpdmVIYW5kbGUgKkFILCBUb2NFbnRyeSAqdGUpCiAgKi8K IAogc3RhdGljIGludAotdGFyUHJpbnRmKFRBUl9NRU1CRVIgKnRoLCBjb25zdCBjaGFyICpm bXQsLi4uKQordGFyUHJpbnRmKFRBUl9NRU1CRVIgKnRoLCBjb25zdCBjaGFyICpmbXQsIC4u LikKIHsKIAlpbnQJCQlzYXZlX2Vycm5vID0gZXJybm87CiAJY2hhcgkgICAqcDsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9leGVjLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUv ZXhlYy5jCmluZGV4IGUxZGU2MWYzNmVlLi41NjNiNGE2YjVmYSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ191cGdyYWRlL2V4ZWMuYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvZXhlYy5j CkBAIC04NCw3ICs4NCw3IEBAIGdldF9iaW5fdmVyc2lvbihDbHVzdGVySW5mbyAqY2x1c3Rl cikKICAqLwogYm9vbAogZXhlY19wcm9nKGNvbnN0IGNoYXIgKmxvZ19maWxlbmFtZSwgY29u c3QgY2hhciAqb3B0X2xvZ19maWxlLAotCQkgIGJvb2wgcmVwb3J0X2Vycm9yLCBib29sIGV4 aXRfb25fZXJyb3IsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCisJCSAgYm9vbCByZXBvcnRfZXJy b3IsIGJvb2wgZXhpdF9vbl9lcnJvciwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50 CQkJcmVzdWx0ID0gMDsKIAlpbnQJCQl3cml0dGVuOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z191cGdyYWRlL3BhcmFsbGVsLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGFyYWxsZWwuYwpp bmRleCBmMDQwNmRlODRlZS4uZjU3ZGJiYmI4NTMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf dXBncmFkZS9wYXJhbGxlbC5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9wYXJhbGxlbC5j CkBAIC02MSw3ICs2MSw3IEBAIERXT1JECQl3aW4zMl90cmFuc2Zlcl9hbGxfbmV3X2Ricyh0 cmFuc2Zlcl90aHJlYWRfYXJnICphcmdzKTsKICAqLwogdm9pZAogcGFyYWxsZWxfZXhlY19w cm9nKGNvbnN0IGNoYXIgKmxvZ19maWxlLCBjb25zdCBjaGFyICpvcHRfbG9nX2ZpbGUsCi0J CQkJICAgY29uc3QgY2hhciAqZm10LC4uLikKKwkJCQkgICBjb25zdCBjaGFyICpmbXQsIC4u LikKIHsKIAl2YV9saXN0CQlhcmdzOwogCWNoYXIJCWNtZFtNQVhfU1RSSU5HXTsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmggYi9zcmMvYmluL3BnX3Vw Z3JhZGUvcGdfdXBncmFkZS5oCmluZGV4IDFkNzY3YmJkYTJkLi4zMzA4MThjOGViMCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaAorKysgYi9zcmMvYmlu L3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCkBAIC00MTQsNyArNDE0LDcgQEAgdm9pZAkJZ2Vu ZXJhdGVfb2xkX2R1bXAodm9pZCk7CiAjZGVmaW5lIEVYRUNfUFNRTF9BUkdTICItLWVjaG8t cXVlcmllcyAtLXNldCBPTl9FUlJPUl9TVE9QPW9uIC0tbm8tcHNxbHJjIC0tZGJuYW1lPXRl bXBsYXRlMSIKIAogYm9vbAkJZXhlY19wcm9nKGNvbnN0IGNoYXIgKmxvZ19maWxlbmFtZSwg Y29uc3QgY2hhciAqb3B0X2xvZ19maWxlLAotCQkJCQkgIGJvb2wgcmVwb3J0X2Vycm9yLCBi b29sIGV4aXRfb25fZXJyb3IsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoNSwgNik7CisJCQkJCSAgYm9vbCByZXBvcnRfZXJyb3IsIGJvb2wgZXhpdF9vbl9l cnJvciwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoNSwgNik7 CiB2b2lkCQl2ZXJpZnlfZGlyZWN0b3JpZXModm9pZCk7CiBib29sCQlwaWRfbG9ja19maWxl X2V4aXN0cyhjb25zdCBjaGFyICpkYXRhZGlyKTsKIApAQCAtNDc0LDcgKzQ3NCw3IEBAIHZv aWQJCWluaXRfdGFibGVzcGFjZXModm9pZCk7CiAvKiBzZXJ2ZXIuYyAqLwogCiBQR2Nvbm4J ICAgKmNvbm5lY3RUb1NlcnZlcihDbHVzdGVySW5mbyAqY2x1c3RlciwgY29uc3QgY2hhciAq ZGJfbmFtZSk7Ci1QR3Jlc3VsdCAgICpleGVjdXRlUXVlcnlPckRpZShQR2Nvbm4gKmNvbm4s IGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitQR3Jl c3VsdCAgICpleGVjdXRlUXVlcnlPckRpZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmZt dCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiBjaGFyCSAgICpjbHVzdGVy X2Nvbm5fb3B0cyhDbHVzdGVySW5mbyAqY2x1c3Rlcik7CiAKQEAgLTQ4OCwxMyArNDg4LDEz IEBAIHZvaWQJCWNoZWNrX3BnaG9zdF9lbnZ2YXIodm9pZCk7CiBjaGFyCSAgICpxdW90ZV9p ZGVudGlmaWVyKGNvbnN0IGNoYXIgKnMpOwogaW50CQkJZ2V0X3VzZXJfaW5mbyhjaGFyICoq dXNlcl9uYW1lX3ApOwogdm9pZAkJY2hlY2tfb2sodm9pZCk7Ci12b2lkCQlyZXBvcnRfc3Rh dHVzKGVMb2dUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoMiwgMyk7Ci12b2lkCQlwZ19sb2coZUxvZ1R5cGUgdHlwZSwgY29uc3QgY2hhciAq Zm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKLXBnX25vcmV0dXJuIHZvaWQg cGdfZmF0YWwoY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAy KTsKK3ZvaWQJCXJlcG9ydF9zdGF0dXMoZUxvZ1R5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10 LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7Cit2b2lkCQlwZ19sb2coZUxvZ1R5 cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwg Myk7CitwZ19ub3JldHVybiB2b2lkIHBnX2ZhdGFsKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBw Z19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogdm9pZAkJZW5kX3Byb2dyZXNzX291dHB1dCh2 b2lkKTsKIHZvaWQJCWNsZWFudXBfb3V0cHV0X2RpcnModm9pZCk7Ci12b2lkCQlwcmVwX3N0 YXR1cyhjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwot dm9pZAkJcHJlcF9zdGF0dXNfcHJvZ3Jlc3MoY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0 cmlidXRlX3ByaW50ZigxLCAyKTsKK3ZvaWQJCXByZXBfc3RhdHVzKGNvbnN0IGNoYXIgKmZt dCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwordm9pZAkJcHJlcF9zdGF0dXNf cHJvZ3Jlc3MoY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwg Mik7CiB1bnNpZ25lZCBpbnQgc3RyMnVpbnQoY29uc3QgY2hhciAqc3RyKTsKIAogCkBAIC01 MTIsNyArNTEyLDcgQEAgTXVsdGlYYWN0T2Zmc2V0IHJld3JpdGVfbXVsdGl4YWN0cyhNdWx0 aVhhY3RJZCBmcm9tX211bHRpLCBNdWx0aVhhY3RJZCB0b19tdWx0aSkKIAogLyogcGFyYWxs ZWwuYyAqLwogdm9pZAkJcGFyYWxsZWxfZXhlY19wcm9nKGNvbnN0IGNoYXIgKmxvZ19maWxl LCBjb25zdCBjaGFyICpvcHRfbG9nX2ZpbGUsCi0JCQkJCQkJICAgY29uc3QgY2hhciAqZm10 LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigzLCA0KTsKKwkJCQkJCQkgICBjb25zdCBjaGFy ICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigzLCA0KTsKIHZvaWQJCXBhcmFsbGVs X3RyYW5zZmVyX2FsbF9uZXdfZGJzKERiSW5mb0FyciAqb2xkX2RiX2FyciwgRGJJbmZvQXJy ICpuZXdfZGJfYXJyLAogCQkJCQkJCQkJCSAgY2hhciAqb2xkX3BnZGF0YSwgY2hhciAqbmV3 X3BnZGF0YSwKIAkJCQkJCQkJCQkgIGNoYXIgKm9sZF90YWJsZXNwYWNlLCBjaGFyICpuZXdf dGFibGVzcGFjZSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvc2VydmVyLmMg Yi9zcmMvYmluL3BnX3VwZ3JhZGUvc2VydmVyLmMKaW5kZXggMWViOGJjOTdjMDUuLjVkODFl NGU5NWI4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvc2VydmVyLmMKKysrIGIv c3JjL2Jpbi9wZ191cGdyYWRlL3NlcnZlci5jCkBAIC0xMjEsNyArMTIxLDcgQEAgY2x1c3Rl cl9jb25uX29wdHMoQ2x1c3RlckluZm8gKmNsdXN0ZXIpCiAgKgltZXNzYWdlIGFuZCBjYWxs cyBleGl0KCkgdG8ga2lsbCB0aGUgcHJvZ3JhbS4KICAqLwogUEdyZXN1bHQgKgotZXhlY3V0 ZVF1ZXJ5T3JEaWUoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpmbXQsLi4uKQorZXhlY3V0 ZVF1ZXJ5T3JEaWUoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlz dGF0aWMgY2hhciBxdWVyeVtRVUVSWV9BTExPQ107CiAJdmFfbGlzdAkJYXJnczsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS91dGlsLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUv dXRpbC5jCmluZGV4IDBmNDdlZDc3MWQ1Li4wOGQ2Mzg1YjUxMiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ191cGdyYWRlL3V0aWwuYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdXRpbC5j CkBAIC0yOSw3ICsyOSw3IEBAIHN0YXRpYyB2b2lkIHBnX2xvZ192KGVMb2dUeXBlIHR5cGUs IGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCkgcGdfYXR0cmlidXRlX3ByCiAgKglyZXN1 bHRzIGFuZCBvdGhlciBtZXNzYWdlcy4KICAqLwogdm9pZAotcmVwb3J0X3N0YXR1cyhlTG9n VHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsLi4uKQorcmVwb3J0X3N0YXR1cyhlTG9nVHlw ZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcmdzOwogCkBA IC0xMjYsNyArMTI2LDcgQEAgY2xlYW51cF9vdXRwdXRfZGlycyh2b2lkKQogICoJCSAgcGdf bG9nKFBHX0ZBVEFMLCAiZmFpbGVkOiAlcyIsIG1lc3NhZ2UpOwogICovCiB2b2lkCi1wcmVw X3N0YXR1cyhjb25zdCBjaGFyICpmbXQsLi4uKQorcHJlcF9zdGF0dXMoY29uc3QgY2hhciAq Zm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXJnczsKIAljaGFyCQltZXNzYWdlW01BWF9TVFJJ TkddOwpAQCAtMTUzLDcgKzE1Myw3IEBAIHByZXBfc3RhdHVzKGNvbnN0IGNoYXIgKmZtdCwu Li4pCiAgKiAgIHJlcG9ydF9zdGF0dXMoUEdfUkVQT1JULCAib2siKTsKICAqLwogdm9pZAot cHJlcF9zdGF0dXNfcHJvZ3Jlc3MoY29uc3QgY2hhciAqZm10LC4uLikKK3ByZXBfc3RhdHVz X3Byb2dyZXNzKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFyZ3M7CiAJ Y2hhcgkJbWVzc2FnZVtNQVhfU1RSSU5HXTsKQEAgLTI1Niw3ICsyNTYsNyBAQCBwZ19sb2df dihlTG9nVHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXApCiAKIAogdm9p ZAotcGdfbG9nKGVMb2dUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwZ19sb2co ZUxvZ1R5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXJn czsKIApAQCAtMjY3LDcgKzI2Nyw3IEBAIHBnX2xvZyhlTG9nVHlwZSB0eXBlLCBjb25zdCBj aGFyICpmbXQsLi4uKQogCiAKIHZvaWQKLXBnX2ZhdGFsKGNvbnN0IGNoYXIgKmZtdCwuLi4p CitwZ19mYXRhbChjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcmdzOwog CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAu YyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5jCmluZGV4IGNi Yzk0NDczODRmLi5mNGM5YTExMTY3NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAv cGdfdmVyaWZ5YmFja3VwLmMKQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIHZvaWQgdmVyaWZ5 YmFja3VwX3Blcl93YWxfcmFuZ2VfY2IoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0ICpjb250 ZXh0LAogCQkJCQkJCQkJCSAgWExvZ1JlY1B0ciBzdGFydF9sc24sCiAJCQkJCQkJCQkJICBY TG9nUmVjUHRyIGVuZF9sc24pOwogcGdfbm9yZXR1cm4gc3RhdGljIHZvaWQgcmVwb3J0X21h bmlmZXN0X2Vycm9yKEpzb25NYW5pZmVzdFBhcnNlQ29udGV4dCAqY29udGV4dCwKLQkJCQkJ CQkJCQkJICBjb25zdCBjaGFyICpmbXQsLi4uKQorCQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIg KmZtdCwgLi4uKQogCQkJcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogc3RhdGljIHZv aWQgdmVyaWZ5X3Rhcl9iYWNrdXAodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgRElSICpk aXIpOwpAQCAtNTA2LDcgKzUwNiw3IEBAIHBhcnNlX21hbmlmZXN0X2ZpbGUoY2hhciAqbWFu aWZlc3RfcGF0aCkKICAqIGV4cGVjdHMgdGhpcyBmdW5jdGlvbiBub3QgdG8gcmV0dXJuLgog ICovCiBzdGF0aWMgdm9pZAotcmVwb3J0X21hbmlmZXN0X2Vycm9yKEpzb25NYW5pZmVzdFBh cnNlQ29udGV4dCAqY29udGV4dCwgY29uc3QgY2hhciAqZm10LC4uLikKK3JlcG9ydF9tYW5p ZmVzdF9lcnJvcihKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsIGNvbnN0IGNo YXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFwOwogCkBAIC0xMjI4LDcgKzEyMjgsNyBA QCBwYXJzZV9yZXF1aXJlZF93YWwodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hhciAq cGdfd2FsZHVtcF9wYXRoLAogICogY29udGV4dCBzYXlzIHdlIHNob3VsZC4KICAqLwogdm9p ZAotcmVwb3J0X2JhY2t1cF9lcnJvcih2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjb25z dCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQorcmVwb3J0X2JhY2t1cF9lcnJvcih2ZXJp Zmllcl9jb250ZXh0ICpjb250ZXh0LCBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsIC4u LikKIHsKIAl2YV9saXN0CQlhcDsKIApAQCAtMTI0NSw3ICsxMjQ1LDcgQEAgcmVwb3J0X2Jh Y2t1cF9lcnJvcih2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjb25zdCBjaGFyICpwZ19y ZXN0cmljdCBmbXQsLi4uKQogICogUmVwb3J0IGEgZmF0YWwgZXJyb3IgYW5kIGV4aXQKICAq Lwogdm9pZAotcmVwb3J0X2ZhdGFsX2Vycm9yKGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZt dCwuLi4pCityZXBvcnRfZmF0YWxfZXJyb3IoY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10 LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5oIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAv cGdfdmVyaWZ5YmFja3VwLmgKaW5kZXggYTk5ZDliZmQ1ODEuLjg1NzJjMTQzM2RjIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuaAorKysg Yi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuaApAQCAtOTYsOSAr OTYsOSBAQCB0eXBlZGVmIHN0cnVjdCB2ZXJpZmllcl9jb250ZXh0CiB9IHZlcmlmaWVyX2Nv bnRleHQ7CiAKIGV4dGVybiB2b2lkIHJlcG9ydF9iYWNrdXBfZXJyb3IodmVyaWZpZXJfY29u dGV4dCAqY29udGV4dCwKLQkJCQkJCQkJY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4u LikKKwkJCQkJCQkJY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LCAuLi4pCiAJCQlwZ19h dHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgcmVwb3J0 X2ZhdGFsX2Vycm9yKGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCitwZ19ub3Jl dHVybiBleHRlcm4gdm9pZCByZXBvcnRfZmF0YWxfZXJyb3IoY29uc3QgY2hhciAqcGdfcmVz dHJpY3QgZm10LCAuLi4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogZXh0ZXJu IGJvb2wgc2hvdWxkX2lnbm9yZV9yZWxwYXRoKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQs CiAJCQkJCQkJCSAgY29uc3QgY2hhciAqcmVscGF0aCk7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX3dhbHN1bW1hcnkvcGdfd2Fsc3VtbWFyeS5jIGIvc3JjL2Jpbi9wZ193YWxzdW1tYXJ5 L3BnX3dhbHN1bW1hcnkuYwppbmRleCBhYTIxNGI4NjE2ZC4uYzNlOThmZmU1NWUgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfd2Fsc3VtbWFyeS9wZ193YWxzdW1tYXJ5LmMKKysrIGIvc3Jj L2Jpbi9wZ193YWxzdW1tYXJ5L3BnX3dhbHN1bW1hcnkuYwpAQCAtNDMsNyArNDMsNyBAQCBz dGF0aWMgdm9pZCBoZWxwKGNvbnN0IGNoYXIgKnByb2duYW1lKTsKIHN0YXRpYyBpbnQJY29t cGFyZV9ibG9ja19udW1iZXJzKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpOwogc3Rh dGljIGludAl3YWxzdW1tYXJ5X3JlYWRfY2FsbGJhY2sodm9pZCAqY2FsbGJhY2tfYXJnLCB2 b2lkICpkYXRhLAogCQkJCQkJCQkJIGludCBsZW5ndGgpOwotc3RhdGljIHZvaWQgd2Fsc3Vt bWFyeV9lcnJvcl9jYWxsYmFjayh2b2lkICpjYWxsYmFja19hcmcsIGNoYXIgKmZtdCwuLi4p IHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitzdGF0aWMgdm9pZCB3YWxzdW1tYXJ5X2Vy cm9yX2NhbGxiYWNrKHZvaWQgKmNhbGxiYWNrX2FyZywgY2hhciAqZm10LCAuLi4pIHBnX2F0 dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIC8qCiAgKiBNYWluIHByb2dyYW0uCkBAIC0yMjcs NyArMjI3LDcgQEAgY29tcGFyZV9ibG9ja19udW1iZXJzKGNvbnN0IHZvaWQgKmEsIGNvbnN0 IHZvaWQgKmIpCiAgKiBFcnJvciBjYWxsYmFjay4KICAqLwogdm9pZAotd2Fsc3VtbWFyeV9l cnJvcl9jYWxsYmFjayh2b2lkICpjYWxsYmFja19hcmcsIGNoYXIgKmZtdCwuLi4pCit3YWxz dW1tYXJ5X2Vycm9yX2NhbGxiYWNrKHZvaWQgKmNhbGxiYWNrX2FyZywgY2hhciAqZm10LCAu Li4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9sYXJn ZV9vYmouYyBiL3NyYy9iaW4vcHNxbC9sYXJnZV9vYmouYwppbmRleCAwMjFmNzhlMGY3OC4u Yzk2MTMwMGZlOTggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9sYXJnZV9vYmouYworKysg Yi9zcmMvYmluL3BzcWwvbGFyZ2Vfb2JqLmMKQEAgLTEzLDEwICsxMywxMCBAQAogI2luY2x1 ZGUgImxhcmdlX29iai5oIgogI2luY2x1ZGUgInNldHRpbmdzLmgiCiAKLXN0YXRpYyB2b2lk IHByaW50X2xvX3Jlc3VsdChjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDEsIDIpOworc3RhdGljIHZvaWQgcHJpbnRfbG9fcmVzdWx0KGNvbnN0IGNoYXIgKmZt dCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogCiBzdGF0aWMgdm9pZAotcHJp bnRfbG9fcmVzdWx0KGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwcmludF9sb19yZXN1bHQoY29u c3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYwppbmRleCA5ODdjY2U4MjBiOS4uNzljOTY3Y2Y5YjAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMKQEAgLTE2NzksNyArMTY3OSw3IEBAIFRhaWxNYXRjaGVzQXJyYXkoYm9v bCBjYXNlX3NlbnNpdGl2ZSwKIHN0YXRpYyBib29sCiBUYWlsTWF0Y2hlc0ltcGwoYm9vbCBj YXNlX3NlbnNpdGl2ZSwKIAkJCQlpbnQgcHJldmlvdXNfd29yZHNfY291bnQsIGNoYXIgKipw cmV2aW91c193b3JkcywKLQkJCQlpbnQgbmFyZywuLi4pCisJCQkJaW50IG5hcmcsIC4uLikK IHsKIAljb25zdCBjaGFyICphcmdhcnJheVs2NF07CiAJdmFfbGlzdAkJYXJnczsKQEAgLTE3 MjksNyArMTcyOSw3IEBAIEhlYWRNYXRjaGVzQXJyYXkoYm9vbCBjYXNlX3NlbnNpdGl2ZSwK IHN0YXRpYyBib29sCiBIZWFkTWF0Y2hlc0ltcGwoYm9vbCBjYXNlX3NlbnNpdGl2ZSwKIAkJ CQlpbnQgcHJldmlvdXNfd29yZHNfY291bnQsIGNoYXIgKipwcmV2aW91c193b3JkcywKLQkJ CQlpbnQgbmFyZywuLi4pCisJCQkJaW50IG5hcmcsIC4uLikKIHsKIAljb25zdCBjaGFyICph cmdhcnJheVs2NF07CiAJdmFfbGlzdAkJYXJnczsKQEAgLTE4MTYsNyArMTgxNiw3IEBAIE1h dGNoZXNBcnJheShib29sIGNhc2Vfc2Vuc2l0aXZlLAogc3RhdGljIGJvb2wKIE1hdGNoZXNJ bXBsKGJvb2wgY2FzZV9zZW5zaXRpdmUsCiAJCQlpbnQgcHJldmlvdXNfd29yZHNfY291bnQs IGNoYXIgKipwcmV2aW91c193b3JkcywKLQkJCWludCBuYXJnLC4uLikKKwkJCWludCBuYXJn LCAuLi4pCiB7CiAJY29uc3QgY2hhciAqYXJnYXJyYXlbNjRdOwogCXZhX2xpc3QJCWFyZ3M7 CmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2xvZ2dpbmcuYyBiL3NyYy9jb21tb24vbG9nZ2lu Zy5jCmluZGV4IDUyMDY5NDllNWQ4Li5iZmQ3ZTUwNzZiYyAxMDA2NDQKLS0tIGEvc3JjL2Nv bW1vbi9sb2dnaW5nLmMKKysrIGIvc3JjL2NvbW1vbi9sb2dnaW5nLmMKQEAgLTIwNiw3ICsy MDYsNyBAQCBwZ19sb2dnaW5nX3NldF9sb2N1c19jYWxsYmFjayh2b2lkICgqY2IpIChjb25z dCBjaGFyICoqZmlsZW5hbWUsIHVpbnQ2NCAqbGluZW5vKQogCiB2b2lkCiBwZ19sb2dfZ2Vu ZXJpYyhlbnVtIHBnX2xvZ19sZXZlbCBsZXZlbCwgZW51bSBwZ19sb2dfcGFydCBwYXJ0LAot CQkJICAgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikKKwkJCSAgIGNvbnN0IGNo YXIgKnBnX3Jlc3RyaWN0IGZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFwOwogCmRpZmYgLS1n aXQgYS9zcmMvY29tbW9uL3BlcmNlbnRyZXBsLmMgYi9zcmMvY29tbW9uL3BlcmNlbnRyZXBs LmMKaW5kZXggNTI1YTViYTZjZjAuLjcwYmJmYWJkMTE3IDEwMDY0NAotLS0gYS9zcmMvY29t bW9uL3BlcmNlbnRyZXBsLmMKKysrIGIvc3JjL2NvbW1vbi9wZXJjZW50cmVwbC5jCkBAIC01 Niw3ICs1Niw3IEBACiAgKiByZXZpc2VkLgogICovCiBjaGFyICoKLXJlcGxhY2VfcGVyY2Vu dF9wbGFjZWhvbGRlcnMoY29uc3QgY2hhciAqaW5zdHIsIGNvbnN0IGNoYXIgKnBhcmFtX25h bWUsIGNvbnN0IGNoYXIgKmxldHRlcnMsLi4uKQorcmVwbGFjZV9wZXJjZW50X3BsYWNlaG9s ZGVycyhjb25zdCBjaGFyICppbnN0ciwgY29uc3QgY2hhciAqcGFyYW1fbmFtZSwgY29uc3Qg Y2hhciAqbGV0dGVycywgLi4uKQogewogCVN0cmluZ0luZm9EYXRhIHJlc3VsdDsKIApkaWZm IC0tZ2l0IGEvc3JjL2NvbW1vbi9wc3ByaW50Zi5jIGIvc3JjL2NvbW1vbi9wc3ByaW50Zi5j CmluZGV4IDZmMDA2ZTAyNjJmLi4yOWIwOTczMmE1YSAxMDA2NDQKLS0tIGEvc3JjL2NvbW1v bi9wc3ByaW50Zi5jCisrKyBiL3NyYy9jb21tb24vcHNwcmludGYuYwpAQCAtNDAsNyArNDAs NyBAQAogICogT25lIHNob3VsZCB0aGVyZWZvcmUgdGhpbmsgdHdpY2UgYWJvdXQgdXNpbmcg dGhpcyBpbiBsaWJwcS4KICAqLwogY2hhciAqCi1wc3ByaW50Zihjb25zdCBjaGFyICpmbXQs Li4uKQorcHNwcmludGYoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJc2F2ZV9l cnJubyA9IGVycm5vOwogCXNpemVfdAkJbGVuID0gMTI4OwkJLyogaW5pdGlhbCBhc3N1bXB0 aW9uIGFib3V0IGJ1ZmZlciBzaXplICovCmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL3N0cmlu Z2luZm8uYyBiL3NyYy9jb21tb24vc3RyaW5naW5mby5jCmluZGV4IGFlMzk1NDBlNDY4Li40 Njg5NTRlNDg0ZSAxMDA2NDQKLS0tIGEvc3JjL2NvbW1vbi9zdHJpbmdpbmZvLmMKKysrIGIv c3JjL2NvbW1vbi9zdHJpbmdpbmZvLmMKQEAgLTE0Miw3ICsxNDIsNyBAQCByZXNldFN0cmlu Z0luZm8oU3RyaW5nSW5mbyBzdHIpCiAgKiBzdHJjYXQuCiAgKi8KIHZvaWQKLWFwcGVuZFN0 cmluZ0luZm8oU3RyaW5nSW5mbyBzdHIsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCithcHBlbmRT dHJpbmdJbmZvKFN0cmluZ0luZm8gc3RyLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlp bnQJCQlzYXZlX2Vycm5vID0gZXJybm87CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9hbXZhbGlkYXRlLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvYW12YWxpZGF0ZS5oCmlu ZGV4IGI4Mjk5ODc3OGFjLi5kZWJkMWVkMzdhNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL2FtdmFsaWRhdGUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvYW12YWxpZGF0 ZS5oCkBAIC0yOSw3ICsyOSw3IEBAIHR5cGVkZWYgc3RydWN0IE9wRmFtaWx5T3BGdW5jR3Jv dXAKIC8qIEZ1bmN0aW9ucyBpbiBhY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jICovCiBleHRl cm4gTGlzdCAqaWRlbnRpZnlfb3BmYW1pbHlfZ3JvdXBzKENhdENMaXN0ICpvcHJsaXN0LCBD YXRDTGlzdCAqcHJvY2xpc3QpOwogZXh0ZXJuIGJvb2wgY2hlY2tfYW1wcm9jX3NpZ25hdHVy ZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKLQkJCQkJCQkJICAgaW50 IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLik7CisJCQkJCQkJCSAgIGludCBtaW5hcmdzLCBp bnQgbWF4YXJncywgLi4uKTsKIGV4dGVybiBib29sIGNoZWNrX2Ftb3B0c3Byb2Nfc2lnbmF0 dXJlKE9pZCBmdW5jaWQpOwogZXh0ZXJuIGJvb2wgY2hlY2tfYW1vcF9zaWduYXR1cmUoT2lk IG9wbm8sIE9pZCByZXN0eXBlLAogCQkJCQkJCQkgT2lkIGxlZnR0eXBlLCBPaWQgcmlnaHR0 eXBlKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2JhY2t1cC93YWxzdW1tYXJ5LmggYi9z cmMvaW5jbHVkZS9iYWNrdXAvd2Fsc3VtbWFyeS5oCmluZGV4IDYwMTU3ZTBhYzUwLi4wOTNi NDJkZjQ3MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYmFja3VwL3dhbHN1bW1hcnkuaAor KysgYi9zcmMvaW5jbHVkZS9iYWNrdXAvd2Fsc3VtbWFyeS5oCkBAIC00NCw2ICs0NCw2IEBA IGV4dGVybiB2b2lkIFJlbW92ZVdhbFN1bW1hcnlJZk9sZGVyVGhhbihXYWxTdW1tYXJ5Rmls ZSAqd3MsCiAKIGV4dGVybiBpbnQJUmVhZFdhbFN1bW1hcnkodm9pZCAqd2FsX3N1bW1hcnlf aW8sIHZvaWQgKmRhdGEsIGludCBsZW5ndGgpOwogZXh0ZXJuIGludAlXcml0ZVdhbFN1bW1h cnkodm9pZCAqd2FsX3N1bW1hcnlfaW8sIHZvaWQgKmRhdGEsIGludCBsZW5ndGgpOwotZXh0 ZXJuIHZvaWQgUmVwb3J0V2FsU3VtbWFyeUVycm9yKHZvaWQgKmNhbGxiYWNrX2FyZywgY2hh ciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK2V4dGVybiB2b2lkIFJl cG9ydFdhbFN1bW1hcnlFcnJvcih2b2lkICpjYWxsYmFja19hcmcsIGNoYXIgKmZtdCwgLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiAjZW5kaWYJCQkJCQkJLyogV0FMU1VN TUFSWV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tb24vYmxrcmVmdGFibGUu aCBiL3NyYy9pbmNsdWRlL2NvbW1vbi9ibGtyZWZ0YWJsZS5oCmluZGV4IGI1YjU1MTdmNjYw Li40MmIxMWIwYTJiMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbW9uL2Jsa3JlZnRh YmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbW9uL2Jsa3JlZnRhYmxlLmgKQEAgLTQ0LDcg KzQ0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQmxvY2tSZWZUYWJsZVdyaXRlciBCbG9ja1JlZlRh YmxlV3JpdGVyOwogICogcmVwb3J0X2Vycm9yX2ZuIHNob3VsZCBub3QgcmV0dXJuLgogICov CiB0eXBlZGVmIGludCAoKmlvX2NhbGxiYWNrX2ZuKSAodm9pZCAqY2FsbGJhY2tfYXJnLCB2 b2lkICpkYXRhLCBpbnQgbGVuZ3RoKTsKLXR5cGVkZWYgdm9pZCAoKnJlcG9ydF9lcnJvcl9m bikgKHZvaWQgKmNhbGxiYWNrX2FyZywgY2hhciAqbXNnLC4uLikgcGdfYXR0cmlidXRlX3By aW50ZigyLCAzKTsKK3R5cGVkZWYgdm9pZCAoKnJlcG9ydF9lcnJvcl9mbikgKHZvaWQgKmNh bGxiYWNrX2FyZywgY2hhciAqbXNnLCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7 CiAKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1vbi9mZV9tZW11dGlscy5o IGIvc3JjL2luY2x1ZGUvY29tbW9uL2ZlX21lbXV0aWxzLmgKaW5kZXggZWNjZGZjYWIwODYu LmI3ODZlYWY0OGIwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tb24vZmVfbWVtdXRp bHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tb24vZmVfbWVtdXRpbHMuaApAQCAtNzksNyAr NzksNyBAQCBleHRlcm4gdm9pZCBwZnJlZSh2b2lkICpwb2ludGVyKTsKICNkZWZpbmUgcmVw YWxsb2NfYXJyYXkocG9pbnRlciwgdHlwZSwgY291bnQpICgodHlwZSAqKSByZXBhbGxvYyhw b2ludGVyLCBzaXplb2YodHlwZSkgKiAoY291bnQpKSkKIAogLyogc3ByaW50ZiBpbnRvIGEg cGFsbG9jJ2QgYnVmZmVyIC0tLSB0aGVzZSBhcmUgaW4gcHNwcmludGYuYyAqLwotZXh0ZXJu IGNoYXIgKnBzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmlu dGYoMSwgMik7CitleHRlcm4gY2hhciAqcHNwcmludGYoY29uc3QgY2hhciAqZm10LCAuLi4p IHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiBleHRlcm4gc2l6ZV90IHB2c25wcmludGYo Y2hhciAqYnVmLCBzaXplX3QgbGVuLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykg cGdfYXR0cmlidXRlX3ByaW50ZigzLCAwKTsKIAogI2VuZGlmCQkJCQkJCS8qIEZFX01FTVVU SUxTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1vbi9sb2dnaW5nLmggYi9z cmMvaW5jbHVkZS9jb21tb24vbG9nZ2luZy5oCmluZGV4IGJjY2JhNGFjMDdiLi5iOGY3NmE4 OGRiZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbW9uL2xvZ2dpbmcuaAorKysgYi9z cmMvaW5jbHVkZS9jb21tb24vbG9nZ2luZy5oCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQJCXBn X2xvZ2dpbmdfc2V0X3ByZV9jYWxsYmFjayh2b2lkICgqY2IpICh2b2lkKSk7CiB2b2lkCQlw Z19sb2dnaW5nX3NldF9sb2N1c19jYWxsYmFjayh2b2lkICgqY2IpIChjb25zdCBjaGFyICoq ZmlsZW5hbWUsIHVpbnQ2NCAqbGluZW5vKSk7CiAKIHZvaWQJCXBnX2xvZ19nZW5lcmljKGVu dW0gcGdfbG9nX2xldmVsIGxldmVsLCBlbnVtIHBnX2xvZ19wYXJ0IHBhcnQsCi0JCQkJCQkg ICBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQorCQkJCQkJICAgY29uc3QgY2hh ciAqcGdfcmVzdHJpY3QgZm10LCAuLi4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQp Owogdm9pZAkJcGdfbG9nX2dlbmVyaWNfdihlbnVtIHBnX2xvZ19sZXZlbCBsZXZlbCwgZW51 bSBwZ19sb2dfcGFydCBwYXJ0LAogCQkJCQkJCSBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBm bXQsIHZhX2xpc3QgYXApCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tb24vcGFyc2Vf bWFuaWZlc3QuaCBiL3NyYy9pbmNsdWRlL2NvbW1vbi9wYXJzZV9tYW5pZmVzdC5oCmluZGV4 IDM1YTNiNWNhNjZjLi45NWJhODg1YWZlNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29t bW9uL3BhcnNlX21hbmlmZXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbW9uL3BhcnNlX21h bmlmZXN0LmgKQEAgLTM0LDcgKzM0LDcgQEAgdHlwZWRlZiB2b2lkICgqanNvbl9tYW5pZmVz dF9wZXJfd2FsX3JhbmdlX2NhbGxiYWNrKSAoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0ICoK IAkJCQkJCQkJCQkJCQkgIFRpbWVMaW5lSUQgdGxpLAogCQkJCQkJCQkJCQkJCSAgWExvZ1Jl Y1B0ciBzdGFydF9sc24sIFhMb2dSZWNQdHIgZW5kX2xzbik7CiB0eXBlZGVmIHZvaWQgKCpq c29uX21hbmlmZXN0X2Vycm9yX2NhbGxiYWNrKSAoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0 ICosCi0JCQkJCQkJCQkJCSAgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3By aW50ZigyLCAzKTsKKwkJCQkJCQkJCQkJICBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0 cmlidXRlX3ByaW50ZigyLCAzKTsKIAogc3RydWN0IEpzb25NYW5pZmVzdFBhcnNlQ29udGV4 dAogewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbW9uL3BlcmNlbnRyZXBsLmggYi9z cmMvaW5jbHVkZS9jb21tb24vcGVyY2VudHJlcGwuaAppbmRleCA5YzAzMjJkZDQ0Ni4uOWU3 NzI3ZjYzYTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1vbi9wZXJjZW50cmVwbC5o CisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9wZXJjZW50cmVwbC5oCkBAIC0xMyw2ICsxMyw2 IEBACiAjaWZuZGVmIFBFUkNFTlRSRVBMX0gKICNkZWZpbmUgUEVSQ0VOVFJFUExfSAogCi1l eHRlcm4gY2hhciAqcmVwbGFjZV9wZXJjZW50X3BsYWNlaG9sZGVycyhjb25zdCBjaGFyICpp bnN0ciwgY29uc3QgY2hhciAqcGFyYW1fbmFtZSwgY29uc3QgY2hhciAqbGV0dGVycywuLi4p OworZXh0ZXJuIGNoYXIgKnJlcGxhY2VfcGVyY2VudF9wbGFjZWhvbGRlcnMoY29uc3QgY2hh ciAqaW5zdHIsIGNvbnN0IGNoYXIgKnBhcmFtX25hbWUsIGNvbnN0IGNoYXIgKmxldHRlcnMs IC4uLik7CiAKICNlbmRpZgkJCQkJCQkvKiBQRVJDRU5UUkVQTF9IICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9qaXQvbGx2bWppdF9lbWl0LmggYi9zcmMvaW5jbHVkZS9qaXQvbGx2 bWppdF9lbWl0LmgKaW5kZXggMDg5OTQ1MzkxZWUuLjBlMDg5Yjk1NjliIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9qaXQvbGx2bWppdF9lbWl0LmgKKysrIGIvc3JjL2luY2x1ZGUvaml0 L2xsdm1qaXRfZW1pdC5oCkBAIC0xNTksMTQgKzE1OSwxNCBAQCBsX2xvYWRfZ2VwMShMTFZN QnVpbGRlclJlZiBiLCBMTFZNVHlwZVJlZiB0LCBMTFZNVmFsdWVSZWYgdiwgTExWTVZhbHVl UmVmIGlkeCwgYwogfQogCiAvKiBzZXBhcmF0ZSwgYmVjYXVzZSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDIsIDMpIGNhbid0IGFwcGVhciBpbiBkZWZpbml0aW9uICovCi1zdGF0aWMgaW5saW5l IExMVk1CYXNpY0Jsb2NrUmVmIGxfYmJfYmVmb3JlX3YoTExWTUJhc2ljQmxvY2tSZWYgciwg Y29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK3N0YXRp YyBpbmxpbmUgTExWTUJhc2ljQmxvY2tSZWYgbF9iYl9iZWZvcmVfdihMTFZNQmFzaWNCbG9j a1JlZiByLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAz KTsKIAogLyoKICAqIEluc2VydCBhIG5ldyBiYXNpYyBibG9jaywganVzdCBiZWZvcmUgciwg dGhlIG5hbWUgYmVpbmcgZGV0ZXJtaW5lZCBieSBmbXQKICAqIGFuZCBhcmd1bWVudHMuCiAg Ki8KIHN0YXRpYyBpbmxpbmUgTExWTUJhc2ljQmxvY2tSZWYKLWxfYmJfYmVmb3JlX3YoTExW TUJhc2ljQmxvY2tSZWYgciwgY29uc3QgY2hhciAqZm10LC4uLikKK2xfYmJfYmVmb3JlX3Yo TExWTUJhc2ljQmxvY2tSZWYgciwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJY2hhcgkJ YnVmWzUxMl07CiAJdmFfbGlzdAkJYXJnczsKQEAgLTE4MiwxNCArMTgyLDE0IEBAIGxfYmJf YmVmb3JlX3YoTExWTUJhc2ljQmxvY2tSZWYgciwgY29uc3QgY2hhciAqZm10LC4uLikKIH0K IAogLyogc2VwYXJhdGUsIGJlY2F1c2UgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKSBjYW4n dCBhcHBlYXIgaW4gZGVmaW5pdGlvbiAqLwotc3RhdGljIGlubGluZSBMTFZNQmFzaWNCbG9j a1JlZiBsX2JiX2FwcGVuZF92KExMVk1WYWx1ZVJlZiBmLCBjb25zdCBjaGFyICpmbXQsLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworc3RhdGljIGlubGluZSBMTFZNQmFzaWNC bG9ja1JlZiBsX2JiX2FwcGVuZF92KExMVk1WYWx1ZVJlZiBmLCBjb25zdCBjaGFyICpmbXQs IC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogLyoKICAqIEluc2VydCBhIG5l dyBiYXNpYyBibG9jayBhZnRlciBwcmV2aW91cyBiYXNpYyBibG9ja3MsIHRoZSBuYW1lIGJl aW5nCiAgKiBkZXRlcm1pbmVkIGJ5IGZtdCBhbmQgYXJndW1lbnRzLgogICovCiBzdGF0aWMg aW5saW5lIExMVk1CYXNpY0Jsb2NrUmVmCi1sX2JiX2FwcGVuZF92KExMVk1WYWx1ZVJlZiBm LCBjb25zdCBjaGFyICpmbXQsLi4uKQorbF9iYl9hcHBlbmRfdihMTFZNVmFsdWVSZWYgZiwg Y29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJY2hhcgkJYnVmWzUxMl07CiAJdmFfbGlzdAkJ YXJnczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xpYi9zdHJpbmdpbmZvLmggYi9zcmMv aW5jbHVkZS9saWIvc3RyaW5naW5mby5oCmluZGV4IDA3OTY1MmM4Y2U0Li5lM2Y0YjkyMjMw MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbGliL3N0cmluZ2luZm8uaAorKysgYi9zcmMv aW5jbHVkZS9saWIvc3RyaW5naW5mby5oCkBAIC0xOTYsNyArMTk2LDcgQEAgZXh0ZXJuIHZv aWQgcmVzZXRTdHJpbmdJbmZvKFN0cmluZ0luZm8gc3RyKTsKICAqIHRvIHN0ciBpZiBuZWNl c3NhcnkuICBUaGlzIGlzIHNvcnQgb2YgbGlrZSBhIGNvbWJpbmF0aW9uIG9mIHNwcmludGYg YW5kCiAgKiBzdHJjYXQuCiAgKi8KLWV4dGVybiB2b2lkIGFwcGVuZFN0cmluZ0luZm8oU3Ry aW5nSW5mbyBzdHIsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYo MiwgMyk7CitleHRlcm4gdm9pZCBhcHBlbmRTdHJpbmdJbmZvKFN0cmluZ0luZm8gc3RyLCBj b25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogLyot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIGFwcGVuZFN0cmluZ0luZm9WQQpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcG9ydC5oIGIvc3JjL2luY2x1ZGUvcG9ydC5oCmluZGV4IDUx ZGY5YjgwZTdkLi4xMWRjMTc2MTljNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9ydC5o CisrKyBiL3NyYy9pbmNsdWRlL3BvcnQuaApAQCAtMjMxLDEzICsyMzEsMTMgQEAgcGdfYXNj aWlfdG9sb3dlcih1bnNpZ25lZCBjaGFyIGNoKQogI2VuZGlmCiAKIGV4dGVybiBpbnQJcGdf dnNucHJpbnRmKGNoYXIgKnN0ciwgc2l6ZV90IGNvdW50LCBjb25zdCBjaGFyICpmbXQsIHZh X2xpc3QgYXJncykgcGdfYXR0cmlidXRlX3ByaW50ZigzLCAwKTsKLWV4dGVybiBpbnQJcGdf c25wcmludGYoY2hhciAqc3RyLCBzaXplX3QgY291bnQsIGNvbnN0IGNoYXIgKmZtdCwuLi4p IHBnX2F0dHJpYnV0ZV9wcmludGYoMywgNCk7CitleHRlcm4gaW50CXBnX3NucHJpbnRmKGNo YXIgKnN0ciwgc2l6ZV90IGNvdW50LCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmli dXRlX3ByaW50ZigzLCA0KTsKIGV4dGVybiBpbnQJcGdfdnNwcmludGYoY2hhciAqc3RyLCBj b25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAw KTsKLWV4dGVybiBpbnQJcGdfc3ByaW50ZihjaGFyICpzdHIsIGNvbnN0IGNoYXIgKmZtdCwu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4gaW50CXBnX3NwcmludGYo Y2hhciAqc3RyLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zigy LCAzKTsKIGV4dGVybiBpbnQJcGdfdmZwcmludGYoRklMRSAqc3RyZWFtLCBjb25zdCBjaGFy ICpmbXQsIHZhX2xpc3QgYXJncykgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAwKTsKLWV4dGVy biBpbnQJcGdfZnByaW50ZihGSUxFICpzdHJlYW0sIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBn X2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4gaW50CXBnX2ZwcmludGYoRklMRSAq c3RyZWFtLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAz KTsKIGV4dGVybiBpbnQJcGdfdnByaW50Zihjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJn cykgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAwKTsKLWV4dGVybiBpbnQJcGdfcHJpbnRmKGNv bnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitleHRlcm4g aW50CXBnX3ByaW50Zihjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50 ZigxLCAyKTsKIAogI2lmbmRlZiBXSU4zMgogLyoKQEAgLTM2MCw3ICszNjAsNyBAQCBleHRl cm4gYm9vbCBybXRyZWUoY29uc3QgY2hhciAqcGF0aCwgYm9vbCBybXRvcGRpcik7CiAgKiBw YXNzaW5nIG9mIG90aGVyIHNwZWNpYWwgb3B0aW9ucy4KICAqLwogZXh0ZXJuIEhBTkRMRSBw Z3dpbjMyX29wZW5faGFuZGxlKGNvbnN0IGNoYXIgKiwgaW50LCBib29sKTsKLWV4dGVybiBp bnQJcGd3aW4zMl9vcGVuKGNvbnN0IGNoYXIgKiwgaW50LC4uLik7CitleHRlcm4gaW50CXBn d2luMzJfb3Blbihjb25zdCBjaGFyICosIGludCwgLi4uKTsKIGV4dGVybiBGSUxFICpwZ3dp bjMyX2ZvcGVuKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKICNkZWZpbmUJCW9wZW4o YSxiLGMpIHBnd2luMzJfb3BlbihhLGIsYykKICNkZWZpbmUJCWZvcGVuKGEsYikgcGd3aW4z Ml9mb3BlbihhLGIpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9lbG9nLmggYi9z cmMvaW5jbHVkZS91dGlscy9lbG9nLmgKaW5kZXggYTEyYjM3OWUwOWEuLmM1OTgxMzE1MjUy IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9lbG9nLmgKKysrIGIvc3JjL2luY2x1 ZGUvdXRpbHMvZWxvZy5oCkBAIC0xNzcsMjkgKzE3NywyOSBAQCBleHRlcm4gaW50CWVycmNv ZGUoaW50IHNxbGVycmNvZGUpOwogZXh0ZXJuIGludAllcnJjb2RlX2Zvcl9maWxlX2FjY2Vz cyh2b2lkKTsKIGV4dGVybiBpbnQJZXJyY29kZV9mb3Jfc29ja2V0X2FjY2Vzcyh2b2lkKTsK IAotZXh0ZXJuIGludAllcnJtc2coY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRl X3ByaW50ZigxLCAyKTsKLWV4dGVybiBpbnQJZXJybXNnX2ludGVybmFsKGNvbnN0IGNoYXIg KmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitleHRlcm4gaW50CWVycm1z Zyhjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK2V4 dGVybiBpbnQJZXJybXNnX2ludGVybmFsKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRy aWJ1dGVfcHJpbnRmKDEsIDIpOwogCiBleHRlcm4gaW50CWVycm1zZ19wbHVyYWwoY29uc3Qg Y2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAotCQkJCQkJICB1 bnNpZ25lZCBsb25nIG4sLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDQpIHBnX2F0dHJp YnV0ZV9wcmludGYoMiwgNCk7CisJCQkJCQkgIHVuc2lnbmVkIGxvbmcgbiwgLi4uKSBwZ19h dHRyaWJ1dGVfcHJpbnRmKDEsIDQpIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgNCk7CiAKLWV4 dGVybiBpbnQJZXJyZGV0YWlsKGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoMSwgMik7Ci1leHRlcm4gaW50CWVycmRldGFpbF9pbnRlcm5hbChjb25zdCBjaGFy ICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworZXh0ZXJuIGludAllcnJk ZXRhaWwoY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7 CitleHRlcm4gaW50CWVycmRldGFpbF9pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsIC4uLikg cGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIAotZXh0ZXJuIGludAllcnJkZXRhaWxfbG9n KGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitleHRl cm4gaW50CWVycmRldGFpbF9sb2coY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0 ZV9wcmludGYoMSwgMik7CiAKIGV4dGVybiBpbnQJZXJyZGV0YWlsX2xvZ19wbHVyYWwoY29u c3QgY2hhciAqZm10X3Npbmd1bGFyLAogCQkJCQkJCQkgY29uc3QgY2hhciAqZm10X3BsdXJh bCwKLQkJCQkJCQkJIHVuc2lnbmVkIGxvbmcgbiwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYo MSwgNCkgcGdfYXR0cmlidXRlX3ByaW50ZigyLCA0KTsKKwkJCQkJCQkJIHVuc2lnbmVkIGxv bmcgbiwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDQpIHBnX2F0dHJpYnV0ZV9wcmlu dGYoMiwgNCk7CiAKIGV4dGVybiBpbnQJZXJyZGV0YWlsX3BsdXJhbChjb25zdCBjaGFyICpm bXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVyYWwsCi0JCQkJCQkJIHVuc2lnbmVk IGxvbmcgbiwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgNCkgcGdfYXR0cmlidXRlX3By aW50ZigyLCA0KTsKKwkJCQkJCQkgdW5zaWduZWQgbG9uZyBuLCAuLi4pIHBnX2F0dHJpYnV0 ZV9wcmludGYoMSwgNCkgcGdfYXR0cmlidXRlX3ByaW50ZigyLCA0KTsKIAotZXh0ZXJuIGlu dAllcnJoaW50KGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwg Mik7Ci1leHRlcm4gaW50CWVycmhpbnRfaW50ZXJuYWwoY29uc3QgY2hhciAqZm10LC4uLikg cGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK2V4dGVybiBpbnQJZXJyaGludChjb25zdCBj aGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK2V4dGVybiBpbnQJ ZXJyaGludF9pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3By aW50ZigxLCAyKTsKIAogZXh0ZXJuIGludAllcnJoaW50X3BsdXJhbChjb25zdCBjaGFyICpm bXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVyYWwsCi0JCQkJCQkgICB1bnNpZ25l ZCBsb25nIG4sLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDQpIHBnX2F0dHJpYnV0ZV9w cmludGYoMiwgNCk7CisJCQkJCQkgICB1bnNpZ25lZCBsb25nIG4sIC4uLikgcGdfYXR0cmli dXRlX3ByaW50ZigxLCA0KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDQpOwogCiAvKgogICog ZXJyY29udGV4dCgpIGlzIHR5cGljYWxseSBjYWxsZWQgaW4gZXJyb3IgY29udGV4dCBjYWxs YmFjayBmdW5jdGlvbnMsIG5vdApAQCAtMjEzLDcgKzIxMyw3IEBAIGV4dGVybiBpbnQJZXJy aGludF9wbHVyYWwoY29uc3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRf cGx1cmFsLAogCiBleHRlcm4gaW50CXNldF9lcnJjb250ZXh0X2RvbWFpbihjb25zdCBjaGFy ICpkb21haW4pOwogCi1leHRlcm4gaW50CWVycmNvbnRleHRfbXNnKGNvbnN0IGNoYXIgKmZt dCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitleHRlcm4gaW50CWVycmNvbnRl eHRfbXNnKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIp OwogCiBleHRlcm4gaW50CWVycmhpZGVzdG10KGJvb2wgaGlkZV9zdG10KTsKIGV4dGVybiBp bnQJZXJyaGlkZWNvbnRleHQoYm9vbCBoaWRlX2N0eCk7CkBAIC0zMDEsNyArMzAxLDcgQEAg ZXh0ZXJuIHZvaWQgZXJyc2F2ZV9maW5pc2goc3RydWN0IE5vZGUgKmNvbnRleHQsCiAvKiBT dXBwb3J0IGZvciBjb25zdHJ1Y3RpbmcgZXJyb3Igc3RyaW5ncyBzZXBhcmF0ZWx5IGZyb20g ZXJlcG9ydCgpIGNhbGxzICovCiAKIGV4dGVybiB2b2lkIHByZV9mb3JtYXRfZWxvZ19zdHJp bmcoaW50IGVycm51bWJlciwgY29uc3QgY2hhciAqZG9tYWluKTsKLWV4dGVybiBjaGFyICpm b3JtYXRfZWxvZ19zdHJpbmcoY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3By aW50ZigxLCAyKTsKK2V4dGVybiBjaGFyICpmb3JtYXRfZWxvZ19zdHJpbmcoY29uc3QgY2hh ciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAKIAogLyogU3VwcG9y dCBmb3IgYXR0YWNoaW5nIGNvbnRleHQgaW5mb3JtYXRpb24gdG8gZXJyb3IgcmVwb3J0cyAq LwpAQCAtNTI3LDcgKzUyNyw3IEBAIGV4dGVybiB2b2lkIHdyaXRlX2pzb25sb2coRXJyb3JE YXRhICplZGF0YSk7CiAgKiBub3QgYXZhaWxhYmxlKS4gVXNlZCBiZWZvcmUgZXJlcG9ydC9l bG9nIGNhbiBiZSB1c2VkCiAgKiBzYWZlbHkgKG1lbW9yeSBjb250ZXh0LCBHVUMgbG9hZCBl dGMpCiAgKi8KLWV4dGVybiB2b2lkIHdyaXRlX3N0ZGVycihjb25zdCBjaGFyICpmbXQsLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworZXh0ZXJuIHZvaWQgd3JpdGVfc3RkZXJy KGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogZXh0 ZXJuIHZvaWQgdndyaXRlX3N0ZGVycihjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXApIHBn X2F0dHJpYnV0ZV9wcmludGYoMSwgMCk7CiAKICNlbmRpZgkJCQkJCQkvKiBFTE9HX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3BhbGxvYy5oIGIvc3JjL2luY2x1ZGUv dXRpbHMvcGFsbG9jLmgKaW5kZXggYWM1M2YxODlhNGUuLjkyOTUyMTFkMjAwIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy9wYWxsb2MuaAorKysgYi9zcmMvaW5jbHVkZS91dGls cy9wYWxsb2MuaApAQCAtMTQ3LDcgKzE0Nyw3IEBAIGV4dGVybiBjaGFyICpwbnN0cmR1cChj b25zdCBjaGFyICppbiwgU2l6ZSBsZW4pOwogZXh0ZXJuIGNoYXIgKnBjaG9tcChjb25zdCBj aGFyICppbik7CiAKIC8qIHNwcmludGYgaW50byBhIHBhbGxvYydkIGJ1ZmZlciAtLS0gdGhl c2UgYXJlIGluIHBzcHJpbnRmLmMgKi8KLWV4dGVybiBjaGFyICpwc3ByaW50Zihjb25zdCBj aGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworZXh0ZXJuIGNoYXIg KnBzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEs IDIpOwogZXh0ZXJuIHNpemVfdCBwdnNucHJpbnRmKGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbiwg Y29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpIHBnX2F0dHJpYnV0ZV9wcmludGYoMywg MCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQQUxMT0NfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2lu dGVyZmFjZXMvZWNwZy9lY3BnbGliL2Rlc2NyaXB0b3IuYyBiL3NyYy9pbnRlcmZhY2VzL2Vj cGcvZWNwZ2xpYi9kZXNjcmlwdG9yLmMKaW5kZXggMzljZDUxMzBlYzkuLjg3OTNkMDllYjcw IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZGVzY3JpcHRvci5j CisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9kZXNjcmlwdG9yLmMKQEAgLTIz MSw3ICsyMzEsNyBAQCBnZXRfY2hhcl9pdGVtKGludCBsaW5lbm8sIHZvaWQgKnZhciwgZW51 bSBFQ1BHdHR5cGUgdmFydHlwZSwgY2hhciAqdmFsdWUsIGludCB2YQogCQkJCX0KIAogYm9v bAotRUNQR2dldF9kZXNjKGludCBsaW5lbm8sIGNvbnN0IGNoYXIgKmRlc2NfbmFtZSwgaW50 IGluZGV4LC4uLikKK0VDUEdnZXRfZGVzYyhpbnQgbGluZW5vLCBjb25zdCBjaGFyICpkZXNj X25hbWUsIGludCBpbmRleCwgLi4uKQogewogCXZhX2xpc3QJCWFyZ3M7CiAJUEdyZXN1bHQg ICAqRUNQR3Jlc3VsdDsKQEAgLTYxMCw3ICs2MTAsNyBAQCBzZXRfZGVzY19hdHRyKHN0cnVj dCBkZXNjcmlwdG9yX2l0ZW0gKmRlc2NfaXRlbSwgc3RydWN0IHZhcmlhYmxlICp2YXIsCiAK IAogYm9vbAotRUNQR3NldF9kZXNjKGludCBsaW5lbm8sIGNvbnN0IGNoYXIgKmRlc2NfbmFt ZSwgaW50IGluZGV4LC4uLikKK0VDUEdzZXRfZGVzYyhpbnQgbGluZW5vLCBjb25zdCBjaGFy ICpkZXNjX25hbWUsIGludCBpbmRleCwgLi4uKQogewogCXZhX2xpc3QJCWFyZ3M7CiAJc3Ry dWN0IGRlc2NyaXB0b3IgKmRlc2M7CkBAIC04NTIsNyArODUyLDcgQEAgZWNwZ19maW5kX2Rl c2MoaW50IGxpbmUsIGNvbnN0IGNoYXIgKm5hbWUpCiB9CiAKIGJvb2wKLUVDUEdkZXNjcmli ZShpbnQgbGluZSwgaW50IGNvbXBhdCwgYm9vbCBpbnB1dCwgY29uc3QgY2hhciAqY29ubmVj dGlvbl9uYW1lLCBjb25zdCBjaGFyICpzdG10X25hbWUsLi4uKQorRUNQR2Rlc2NyaWJlKGlu dCBsaW5lLCBpbnQgY29tcGF0LCBib29sIGlucHV0LCBjb25zdCBjaGFyICpjb25uZWN0aW9u X25hbWUsIGNvbnN0IGNoYXIgKnN0bXRfbmFtZSwgLi4uKQogewogCWJvb2wJCXJldCA9IGZh bHNlOwogCXN0cnVjdCBjb25uZWN0aW9uICpjb247CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9lY3BnL2VjcGdsaWIvZWNwZ2xpYl9leHRlcm4uaCBiL3NyYy9pbnRlcmZhY2VzL2Vj cGcvZWNwZ2xpYi9lY3BnbGliX2V4dGVybi5oCmluZGV4IDk0OWZmNjZjZWZjLi5lYzZkMTI0 NmU3OCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2VjcGdsaWJf ZXh0ZXJuLmgKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2VjcGdsaWJfZXh0 ZXJuLmgKQEAgLTIxNCw3ICsyMTQsNyBAQCB2b2lkCQllY3BnX3JhaXNlKGludCBsaW5lLCBp bnQgY29kZSwgY29uc3QgY2hhciAqc3Fsc3RhdGUsIGNvbnN0IGNoYXIgKnN0cik7CiB2b2lk CQllY3BnX3JhaXNlX2JhY2tlbmQoaW50IGxpbmUsIFBHcmVzdWx0ICpyZXN1bHQsIFBHY29u biAqY29ubiwgaW50IGNvbXBhdCk7CiBjaGFyCSAgICplY3BnX3ByZXBhcmVkKGNvbnN0IGNo YXIgKm5hbWUsIHN0cnVjdCBjb25uZWN0aW9uICpjb24pOwogYm9vbAkJZWNwZ19kZWFsbG9j YXRlX2FsbF9jb25uKGludCBsaW5lbm8sIGVudW0gQ09NUEFUX01PREUgYywgc3RydWN0IGNv bm5lY3Rpb24gKmNvbik7Ci12b2lkCQllY3BnX2xvZyhjb25zdCBjaGFyICpmb3JtYXQsLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwordm9pZAkJZWNwZ19sb2coY29uc3QgY2hh ciAqZm9ybWF0LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiBib29sCQllY3Bn X2F1dG9fcHJlcGFyZShpbnQgbGluZW5vLCBjb25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUs CiAJCQkJCQkJICBjb25zdCBpbnQgY29tcGF0LCBjaGFyICoqbmFtZSwgY29uc3QgY2hhciAq cXVlcnkpOwogYm9vbAkJZWNwZ19yZWdpc3Rlcl9wcmVwYXJlZF9zdG10KHN0cnVjdCBzdGF0 ZW1lbnQgKnN0bXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGli L2V4ZWN1dGUuYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9leGVjdXRlLmMKaW5k ZXggYmQxMGZlZjU3NDguLmFjNjY1ZDlkOTAwIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9lY3BnL2VjcGdsaWIvZXhlY3V0ZS5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNw Z2xpYi9leGVjdXRlLmMKQEAgLTIyODgsNyArMjI4OCw3IEBAIGZhaWw6CiAgKiBUaGUgaW5w dXQvb3V0cHV0IHBhcmFtZXRlcnMgYXJlIHBhc3NlZCBhcyB2YXJpYWJsZS1sZW5ndGggYXJn dW1lbnQgbGlzdC4KICAqLwogYm9vbAotRUNQR2RvKGNvbnN0IGludCBsaW5lbm8sIGNvbnN0 IGludCBjb21wYXQsIGNvbnN0IGludCBmb3JjZV9pbmRpY2F0b3IsIGNvbnN0IGNoYXIgKmNv bm5lY3Rpb25fbmFtZSwgY29uc3QgYm9vbCBxdWVzdGlvbm1hcmtzLCBjb25zdCBpbnQgc3Qs IGNvbnN0IGNoYXIgKnF1ZXJ5LC4uLikKK0VDUEdkbyhjb25zdCBpbnQgbGluZW5vLCBjb25z dCBpbnQgY29tcGF0LCBjb25zdCBpbnQgZm9yY2VfaW5kaWNhdG9yLCBjb25zdCBjaGFyICpj b25uZWN0aW9uX25hbWUsIGNvbnN0IGJvb2wgcXVlc3Rpb25tYXJrcywgY29uc3QgaW50IHN0 LCBjb25zdCBjaGFyICpxdWVyeSwgLi4uKQogewogCXZhX2xpc3QJCWFyZ3M7CiAJYm9vbAkJ cmV0OwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL21pc2MuYyBi L3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9taXNjLmMKaW5kZXggMTg4NTczMmE2NTIu LmUzNzE2ODc0NGU0IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIv bWlzYy5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9taXNjLmMKQEAgLTIy OSw3ICsyMjksNyBAQCBFQ1BHZGVidWcoaW50IG4sIEZJTEUgKmRiZ3MpCiB9CiAKIHZvaWQK LWVjcGdfbG9nKGNvbnN0IGNoYXIgKmZvcm1hdCwuLi4pCitlY3BnX2xvZyhjb25zdCBjaGFy ICpmb3JtYXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcDsKIAljb25zdCBjaGFyICppbnRsX2Zv cm1hdDsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvaW5jbHVkZS9lY3BnbGli LmggYi9zcmMvaW50ZXJmYWNlcy9lY3BnL2luY2x1ZGUvZWNwZ2xpYi5oCmluZGV4IGRiZjNj YzNhMGMyLi4xZDk3MWQ1ODkzZCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9p bmNsdWRlL2VjcGdsaWIuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL2luY2x1ZGUvZWNw Z2xpYi5oCkBAIC0yOSw3ICsyOSw3IEBAIGJvb2wJCUVDUEdjb25uZWN0KGludCBsaW5lbm8s IGludCBjLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp1c2VyLAogCQkJCQkJY29u c3QgY2hhciAqcGFzc3dkLCBjb25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUsIGludCBhdXRv Y29tbWl0KTsKIGJvb2wJCUVDUEdkbyhjb25zdCBpbnQgbGluZW5vLCBjb25zdCBpbnQgY29t cGF0LCBjb25zdCBpbnQgZm9yY2VfaW5kaWNhdG9yLAogCQkJCSAgIGNvbnN0IGNoYXIgKmNv bm5lY3Rpb25fbmFtZSwgY29uc3QgYm9vbCBxdWVzdGlvbm1hcmtzLAotCQkJCSAgIGNvbnN0 IGludCBzdCwgY29uc3QgY2hhciAqcXVlcnksLi4uKTsKKwkJCQkgICBjb25zdCBpbnQgc3Qs IGNvbnN0IGNoYXIgKnF1ZXJ5LCAuLi4pOwogYm9vbAkJRUNQR3RyYW5zKGludCBsaW5lbm8s IGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFtZSwgY29uc3QgY2hhciAqdHJhbnNhY3Rpb24p OwogYm9vbAkJRUNQR2Rpc2Nvbm5lY3QoaW50IGxpbmVubywgY29uc3QgY2hhciAqY29ubmVj dGlvbl9uYW1lKTsKIGJvb2wJCUVDUEdwcmVwYXJlKGludCBsaW5lbm8sIGNvbnN0IGNoYXIg KmNvbm5lY3Rpb25fbmFtZSwgY29uc3QgYm9vbCBxdWVzdGlvbm1hcmtzLApAQCAtNTUsMTQg KzU1LDE0IEBAIGJvb2wJCUVDUEdkb19kZXNjcmlwdG9yKGludCBsaW5lLCBjb25zdCBjaGFy ICpjb25uZWN0aW9uLAogYm9vbAkJRUNQR2RlYWxsb2NhdGVfZGVzYyhpbnQgbGluZSwgY29u c3QgY2hhciAqbmFtZSk7CiBib29sCQlFQ1BHYWxsb2NhdGVfZGVzYyhpbnQgbGluZSwgY29u c3QgY2hhciAqbmFtZSk7CiBib29sCQlFQ1BHZ2V0X2Rlc2NfaGVhZGVyKGludCBsaW5lbm8s IGNvbnN0IGNoYXIgKmRlc2NfbmFtZSwgaW50ICpjb3VudCk7Ci1ib29sCQlFQ1BHZ2V0X2Rl c2MoaW50IGxpbmVubywgY29uc3QgY2hhciAqZGVzY19uYW1lLCBpbnQgaW5kZXgsLi4uKTsK K2Jvb2wJCUVDUEdnZXRfZGVzYyhpbnQgbGluZW5vLCBjb25zdCBjaGFyICpkZXNjX25hbWUs IGludCBpbmRleCwgLi4uKTsKIGJvb2wJCUVDUEdzZXRfZGVzY19oZWFkZXIoaW50IGxpbmVu bywgY29uc3QgY2hhciAqZGVzY19uYW1lLCBpbnQgY291bnQpOwotYm9vbAkJRUNQR3NldF9k ZXNjKGludCBsaW5lbm8sIGNvbnN0IGNoYXIgKmRlc2NfbmFtZSwgaW50IGluZGV4LC4uLik7 Citib29sCQlFQ1BHc2V0X2Rlc2MoaW50IGxpbmVubywgY29uc3QgY2hhciAqZGVzY19uYW1l LCBpbnQgaW5kZXgsIC4uLik7CiAKIHZvaWQJCUVDUEdzZXRfbm9pbmRfbnVsbChlbnVtIEVD UEd0dHlwZSB0eXBlLCB2b2lkICpwdHIpOwogYm9vbAkJRUNQR2lzX25vaW5kX251bGwoZW51 bSBFQ1BHdHR5cGUgdHlwZSwgY29uc3Qgdm9pZCAqcHRyKTsKIGJvb2wJCUVDUEdkZXNjcmli ZShpbnQgbGluZSwgaW50IGNvbXBhdCwgYm9vbCBpbnB1dCwKLQkJCQkJCSBjb25zdCBjaGFy ICpjb25uZWN0aW9uX25hbWUsIGNvbnN0IGNoYXIgKnN0bXRfbmFtZSwuLi4pOworCQkJCQkJ IGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFtZSwgY29uc3QgY2hhciAqc3RtdF9uYW1lLCAu Li4pOwogCiB2b2lkCQlFQ1BHc2V0X3ZhcihpbnQgbnVtYmVyLCB2b2lkICpwb2ludGVyLCBp bnQgbGluZW5vKTsKIHZvaWQJICAgKkVDUEdnZXRfdmFyKGludCBudW1iZXIpOwpkaWZmIC0t Z2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL3ByZXByb2NfZXh0ZXJuLmggYi9z cmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcHJlcHJvY19leHRlcm4uaAppbmRleCAyYzg5 ZTMwNjIxZS4uYzYxZjA1NDg3M2IgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcv cHJlcHJvYy9wcmVwcm9jX2V4dGVybi5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJl cHJvYy9wcmVwcm9jX2V4dGVybi5oCkBAIC04NSwxMSArODUsMTEgQEAgZXh0ZXJuIHZvaWQg KmxvY19hbGxvYyhzaXplX3Qgc2l6ZSk7CiBleHRlcm4gY2hhciAqbG9jX3N0cmR1cChjb25z dCBjaGFyICpzdHJpbmcpOwogZXh0ZXJuIHZvaWQgcmVjbGFpbV9sb2NhbF9zdG9yYWdlKHZv aWQpOwogZXh0ZXJuIGNoYXIgKmNhdDJfc3RyKGNvbnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNo YXIgKnN0cjIpOwotZXh0ZXJuIGNoYXIgKmNhdF9zdHIoaW50IGNvdW50LC4uLik7CitleHRl cm4gY2hhciAqY2F0X3N0cihpbnQgY291bnQsIC4uLik7CiBleHRlcm4gY2hhciAqbWFrZTJf c3RyKGNvbnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIgKnN0cjIpOwogZXh0ZXJuIGNoYXIg Km1ha2UzX3N0cihjb25zdCBjaGFyICpzdHIxLCBjb25zdCBjaGFyICpzdHIyLCBjb25zdCBj aGFyICpzdHIzKTsKLWV4dGVybiB2b2lkIG1tZXJyb3IoaW50IGVycm9yX2NvZGUsIGVudW0g ZXJyb3J0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmVycm9yLC4uLikgcGdfYXR0cmlidXRlX3By aW50ZigzLCA0KTsKLXBnX25vcmV0dXJuIGV4dGVybiB2b2lkIG1tZmF0YWwoaW50IGVycm9y X2NvZGUsIGNvbnN0IGNoYXIgKmVycm9yLC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAz KTsKK2V4dGVybiB2b2lkIG1tZXJyb3IoaW50IGVycm9yX2NvZGUsIGVudW0gZXJyb3J0eXBl IHR5cGUsIGNvbnN0IGNoYXIgKmVycm9yLCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMywg NCk7CitwZ19ub3JldHVybiBleHRlcm4gdm9pZCBtbWZhdGFsKGludCBlcnJvcl9jb2RlLCBj b25zdCBjaGFyICplcnJvciwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogZXh0 ZXJuIHZvaWQgb3V0cHV0X2dldF9kZXNjcl9oZWFkZXIoY29uc3QgY2hhciAqZGVzY19uYW1l KTsKIGV4dGVybiB2b2lkIG91dHB1dF9nZXRfZGVzY3IoY29uc3QgY2hhciAqZGVzY19uYW1l LCBjb25zdCBjaGFyICppbmRleCk7CiBleHRlcm4gdm9pZCBvdXRwdXRfc2V0X2Rlc2NyX2hl YWRlcihjb25zdCBjaGFyICpkZXNjX25hbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFj ZXMvZWNwZy9wcmVwcm9jL3V0aWwuYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy91 dGlsLmMKaW5kZXggZjE3N2RmMzI0ODguLmJhMWYwNDlhODdkIDEwMDY0NAotLS0gYS9zcmMv aW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvdXRpbC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2Vj cGcvcHJlcHJvYy91dGlsLmMKQEAgLTQ3LDcgKzQ3LDcgQEAgdm1tZXJyb3IoaW50IGVycm9y X2NvZGUsIGVudW0gZXJyb3J0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmVycm9yLCB2YV9saXN0 IGFwKQogCiAvKiBSZXBvcnQgYW4gZXJyb3Igb3Igd2FybmluZyAqLwogdm9pZAotbW1lcnJv cihpbnQgZXJyb3JfY29kZSwgZW51bSBlcnJvcnR5cGUgdHlwZSwgY29uc3QgY2hhciAqZXJy b3IsLi4uKQorbW1lcnJvcihpbnQgZXJyb3JfY29kZSwgZW51bSBlcnJvcnR5cGUgdHlwZSwg Y29uc3QgY2hhciAqZXJyb3IsIC4uLikKIHsKIAl2YV9saXN0CQlhcDsKIApAQCAtNTgsNyAr NTgsNyBAQCBtbWVycm9yKGludCBlcnJvcl9jb2RlLCBlbnVtIGVycm9ydHlwZSB0eXBlLCBj b25zdCBjaGFyICplcnJvciwuLi4pCiAKIC8qIFJlcG9ydCBhbiBlcnJvciBhbmQgYWJhbmRv biBleGVjdXRpb24gKi8KIHZvaWQKLW1tZmF0YWwoaW50IGVycm9yX2NvZGUsIGNvbnN0IGNo YXIgKmVycm9yLC4uLikKK21tZmF0YWwoaW50IGVycm9yX2NvZGUsIGNvbnN0IGNoYXIgKmVy cm9yLCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKQEAgLTIxNyw3ICsyMTcsNyBAQCBjYXQy X3N0cihjb25zdCBjaGFyICpzdHIxLCBjb25zdCBjaGFyICpzdHIyKQogICogQ29uY2F0ZW5h dGUgTiBzdHJpbmdzLCBpbnNlcnRpbmcgc3BhY2VzIGJldHdlZW4gdGhlbSB1bmxlc3MgdGhl eSBhcmUgZW1wdHkKICAqLwogY2hhciAqCi1jYXRfc3RyKGludCBjb3VudCwuLi4pCitjYXRf c3RyKGludCBjb3VudCwgLi4uKQogewogCXZhX2xpc3QJCWFyZ3M7CiAJaW50CQkJaTsKZGlm ZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL29hdXRoLXV0aWxzLmMgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5jCmluZGV4IDRlYmU3ZDA5 NDhjLi5mOWEyYzFhZTIwZCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1 dGgvb2F1dGgtdXRpbHMuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0 aC11dGlscy5jCkBAIC05Miw3ICs5Miw3IEBAIGxpYnBxX29hdXRoX2luaXQocGd0aHJlYWRs b2NrX3QgdGhyZWFkbG9ja19pbXBsLAogICogY29ubmVjdGlvbiwgYWZ0ZXIgdHJhbnNsYXRp bmcgaXQuICBUaGlzIGlzIGEgY29weSBvZiBsaWJwcSdzIGludGVybmFsIEFQSS4KICAqLwog dm9pZAotbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFy ICpmbXQsLi4uKQorbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoUEdjb25uICpjb25uLCBjb25z dCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlzYXZlX2Vycm5vID0gZXJybm87CiAJYm9v bAkJZG9uZTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL29hdXRo LXV0aWxzLmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5oCmlu ZGV4IDlmNGQ1YjY5MmQyLi5lZjE5ZDAwNjgwNyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFj ZXMvbGlicHEtb2F1dGgvb2F1dGgtdXRpbHMuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJw cS1vYXV0aC9vYXV0aC11dGlscy5oCkBAIC03NSw3ICs3NSw3IEBAIHR5cGVkZWYgZW51bQog CVBHX0JPT0xfTk8JCQkJCS8qIE5vIChmYWxzZSkgKi8KIH0gUEdUZXJuYXJ5Qm9vbDsKIAot ZXh0ZXJuIHZvaWQgbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoUEdjb25uICpjb25uLCBjb25z dCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0ZXJuIHZv aWQgbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpm bXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIGV4dGVybiBib29sIG9hdXRo X3Vuc2FmZV9kZWJ1Z2dpbmdfZW5hYmxlZCh2b2lkKTsKIGV4dGVybiBpbnQJcHFfYmxvY2tf c2lncGlwZShzaWdzZXRfdCAqb3NpZ3NldCwgYm9vbCAqc2lncGlwZV9wZW5kaW5nKTsKIGV4 dGVybiB2b2lkIHBxX3Jlc2V0X3NpZ3BpcGUoc2lnc2V0X3QgKm9zaWdzZXQsIGJvb2wgc2ln cGlwZV9wZW5kaW5nLCBib29sIGdvdF9lcGlwZSk7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1leGVjLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMK aW5kZXggMjAzZDM4OGJkYmYuLjhjNjEwZDE3MGE2IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1leGVjLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhl Yy5jCkBAIC05NDEsNyArOTQxLDcgQEAgcHFQcmVwYXJlQXN5bmNSZXN1bHQoUEdjb25uICpj b25uKQogICogYSB0cmFpbGluZyBuZXdsaW5lLCBhbmQgc2hvdWxkIG5vdCBiZSBtb3JlIHRo YW4gb25lIGxpbmUpLgogICovCiB2b2lkCi1wcUludGVybmFsTm90aWNlKGNvbnN0IFBHTm90 aWNlSG9va3MgKmhvb2tzLCBjb25zdCBjaGFyICpmbXQsLi4uKQorcHFJbnRlcm5hbE5vdGlj ZShjb25zdCBQR05vdGljZUhvb2tzICpob29rcywgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7 CiAJY2hhcgkJbXNnQnVmWzEwMjRdOwogCXZhX2xpc3QJCWFyZ3M7CmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1taXNjLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1taXNjLmMKaW5kZXggMTM3NzVjZmI4YjkuLjMyNWE0ODVlZjUzIDEwMDY0NAotLS0gYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1taXNjLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtbWlzYy5jCkBAIC0xMzcyLDcgKzEzNzIsNyBAQCBsaWJwcV9uZ2V0dGV4dChjb25z dCBjaGFyICptc2dpZCwgY29uc3QgY2hhciAqbXNnaWRfcGx1cmFsLCB1bnNpZ25lZCBsb25n IG4pCiAgKiBuZXdsaW5lLgogICovCiB2b2lkCi1saWJwcV9hcHBlbmRfZXJyb3IoUFFFeHBC dWZmZXIgZXJyb3JNZXNzYWdlLCBjb25zdCBjaGFyICpmbXQsLi4uKQorbGlicHFfYXBwZW5k X2Vycm9yKFBRRXhwQnVmZmVyIGVycm9yTWVzc2FnZSwgY29uc3QgY2hhciAqZm10LCAuLi4p CiB7CiAJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5vOwogCWJvb2wJCWRvbmU7CkBAIC0xNDAx LDcgKzE0MDEsNyBAQCBsaWJwcV9hcHBlbmRfZXJyb3IoUFFFeHBCdWZmZXIgZXJyb3JNZXNz YWdlLCBjb25zdCBjaGFyICpmbXQsLi4uKQogICogZm9ybWF0IHNob3VsZCBub3QgZW5kIHdp dGggYSBuZXdsaW5lLgogICovCiB2b2lkCi1saWJwcV9hcHBlbmRfY29ubl9lcnJvcihQR2Nv bm4gKmNvbm4sIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitsaWJwcV9hcHBlbmRfY29ubl9lcnJv cihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWludAkJCXNhdmVf ZXJybm8gPSBlcnJubzsKIAlib29sCQlkb25lOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvbGlicHEtaW50LmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQu aAppbmRleCBiZDdlYjU5ZjVmOC4uOTRkZDFiNmYzNWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2xpYnBxLWludC5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xp YnBxLWludC5oCkBAIC03NTIsNyArNzUyLDcgQEAgZXh0ZXJuIGNoYXIgKnBxUmVzdWx0U3Ry ZHVwKFBHcmVzdWx0ICpyZXMsIGNvbnN0IGNoYXIgKnN0cik7CiBleHRlcm4gdm9pZCBwcUNs ZWFyQXN5bmNSZXN1bHQoUEdjb25uICpjb25uKTsKIGV4dGVybiB2b2lkIHBxU2F2ZUVycm9y UmVzdWx0KFBHY29ubiAqY29ubik7CiBleHRlcm4gUEdyZXN1bHQgKnBxUHJlcGFyZUFzeW5j UmVzdWx0KFBHY29ubiAqY29ubik7Ci1leHRlcm4gdm9pZCBwcUludGVybmFsTm90aWNlKGNv bnN0IFBHTm90aWNlSG9va3MgKmhvb2tzLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRy aWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0ZXJuIHZvaWQgcHFJbnRlcm5hbE5vdGljZShjb25z dCBQR05vdGljZUhvb2tzICpob29rcywgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJp YnV0ZV9wcmludGYoMiwgMyk7CiBleHRlcm4gdm9pZCBwcVNhdmVNZXNzYWdlRmllbGQoUEdy ZXN1bHQgKnJlcywgY2hhciBjb2RlLAogCQkJCQkJCSAgIGNvbnN0IGNoYXIgKnZhbHVlKTsK IGV4dGVybiBpbnQJcHFTYXZlUGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubiwgY29uc3Qg Y2hhciAqbmFtZSwKQEAgLTk1Niw4ICs5NTYsOCBAQCBleHRlcm4gY2hhciAqbGlicHFfbmdl dHRleHQoY29uc3QgY2hhciAqbXNnaWQsIGNvbnN0IGNoYXIgKm1zZ2lkX3BsdXJhbCwgdW5z aWduZQogICovCiAjdW5kZWYgXwogCi1leHRlcm4gdm9pZCBsaWJwcV9hcHBlbmRfZXJyb3Io UFFFeHBCdWZmZXIgZXJyb3JNZXNzYWdlLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRy aWJ1dGVfcHJpbnRmKDIsIDMpOwotZXh0ZXJuIHZvaWQgbGlicHFfYXBwZW5kX2Nvbm5fZXJy b3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDIsIDMpOworZXh0ZXJuIHZvaWQgbGlicHFfYXBwZW5kX2Vycm9yKFBRRXhwQnVmZmVy IGVycm9yTWVzc2FnZSwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmlu dGYoMiwgMyk7CitleHRlcm4gdm9pZCBsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihQR2Nvbm4g KmNvbm4sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMp OwogZXh0ZXJuIHZvaWQgbGlicHFfYXBwZW5kX2dyZWFzZV9pbmZvKFBHY29ubiAqY29ubik7 CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZlci5j IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvcHFleHBidWZmZXIuYwppbmRleCAxNTNhZTZhZjZj Yi4uNzU2Mzk5M2Y2ZDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3BxZXhw YnVmZmVyLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvcHFleHBidWZmZXIuYwpAQCAt MjMyLDcgKzIzMiw3IEBAIGVubGFyZ2VQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIHNp emVfdCBuZWVkZWQpCiAgKiByZXNldFBRRXhwQnVmZmVyKCkgZm9sbG93ZWQgYnkgYXBwZW5k UFFFeHBCdWZmZXIoKS4KICAqLwogdm9pZAotcHJpbnRmUFFFeHBCdWZmZXIoUFFFeHBCdWZm ZXIgc3RyLCBjb25zdCBjaGFyICpmbXQsLi4uKQorcHJpbnRmUFFFeHBCdWZmZXIoUFFFeHBC dWZmZXIgc3RyLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlzYXZlX2Vycm5v ID0gZXJybm87CiAJdmFfbGlzdAkJYXJnczsKQEAgLTI2Miw3ICsyNjIsNyBAQCBwcmludGZQ UUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCiAgKiBz dHJjYXQuCiAgKi8KIHZvaWQKLWFwcGVuZFBRRXhwQnVmZmVyKFBRRXhwQnVmZmVyIHN0ciwg Y29uc3QgY2hhciAqZm10LC4uLikKK2FwcGVuZFBRRXhwQnVmZmVyKFBRRXhwQnVmZmVyIHN0 ciwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5v OwogCXZhX2xpc3QJCWFyZ3M7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9w cWV4cGJ1ZmZlci5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvcHFleHBidWZmZXIuaAppbmRl eCBkYzgzZjRmZmU4Ni4uMjc0MWJiOWUyZmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL3BxZXhwYnVmZmVyLmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvcHFleHBi dWZmZXIuaApAQCAtMTQ2LDcgKzE0Niw3IEBAIGV4dGVybiBpbnQJZW5sYXJnZVBRRXhwQnVm ZmVyKFBRRXhwQnVmZmVyIHN0ciwgc2l6ZV90IG5lZWRlZCk7CiAgKiBUaGlzIGlzIGEgY29u dmVuaWVuY2Ugcm91dGluZSB0aGF0IGRvZXMgdGhlIHNhbWUgdGhpbmcgYXMKICAqIHJlc2V0 UFFFeHBCdWZmZXIoKSBmb2xsb3dlZCBieSBhcHBlbmRQUUV4cEJ1ZmZlcigpLgogICovCi1l eHRlcm4gdm9pZCBwcmludGZQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIGNvbnN0IGNo YXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4gdm9pZCBw cmludGZQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIGNvbnN0IGNoYXIgKmZtdCwgLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICogYXBwZW5kUFFFeHBCdWZmZXIKQEAgLTE1NSw3ICsxNTUsNyBAQCBleHRlcm4g dm9pZCBwcmludGZQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIGNvbnN0IGNoYXIgKmZt dCwuLi4pIHBnX2F0dHJpYnV0ZQogICogdG8gc3RyIGlmIG5lY2Vzc2FyeS4gIFRoaXMgaXMg c29ydCBvZiBsaWtlIGEgY29tYmluYXRpb24gb2Ygc3ByaW50ZiBhbmQKICAqIHN0cmNhdC4K ICAqLwotZXh0ZXJuIHZvaWQgYXBwZW5kUFFFeHBCdWZmZXIoUFFFeHBCdWZmZXIgc3RyLCBj b25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0ZXJu IHZvaWQgYXBwZW5kUFFFeHBCdWZmZXIoUFFFeHBCdWZmZXIgc3RyLCBjb25zdCBjaGFyICpm bXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogLyotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAqIGFwcGVuZFBRRXhwQnVmZmVyVkEKZGlmZiAtLWdpdCBhL3NyYy9w bC9wbHB5dGhvbi9wbHB5X2Vsb2cuYyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X2Vsb2cuYwpp bmRleCBlMTA5ODg4Y2NlZC4uYTY0NjIwNTU5YjQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHB5 dGhvbi9wbHB5X2Vsb2cuYworKysgYi9zcmMvcGwvcGxweXRob24vcGxweV9lbG9nLmMKQEAg LTQxLDcgKzQxLDcgQEAgc3RhdGljIGJvb2wgc2V0X3N0cmluZ19hdHRyKFB5T2JqZWN0ICpv YmosIGNoYXIgKmF0dHJuYW1lLCBjaGFyICpzdHIpOwogICogaW4gdGhlIGNvbnRleHQuCiAg Ki8KIHZvaWQKLVBMeV9lbG9nX2ltcGwoaW50IGVsZXZlbCwgY29uc3QgY2hhciAqZm10LC4u LikKK1BMeV9lbG9nX2ltcGwoaW50IGVsZXZlbCwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7 CiAJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5vOwogCWNoYXIJICAgKnZvbGF0aWxlIHhtc2cg PSBOVUxMOwpAQCAtNDg3LDcgKzQ4Nyw3IEBAIGdldF9zb3VyY2VfbGluZShjb25zdCBjaGFy ICpzcmMsIGludCBsaW5lbm8pCiAKIC8qIGNhbGwgUHlFcnJfU2V0U3RyaW5nIHdpdGggYSB2 cHJpbnQgaW50ZXJmYWNlIGFuZCB0cmFuc2xhdGlvbiBzdXBwb3J0ICovCiB2b2lkCi1QTHlf ZXhjZXB0aW9uX3NldChQeU9iamVjdCAqZXhjLCBjb25zdCBjaGFyICpmbXQsLi4uKQorUEx5 X2V4Y2VwdGlvbl9zZXQoUHlPYmplY3QgKmV4YywgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7 CiAJY2hhcgkJYnVmWzEwMjRdOwogCXZhX2xpc3QJCWFwOwpAQCAtNTAzLDcgKzUwMyw3IEBA IFBMeV9leGNlcHRpb25fc2V0KFB5T2JqZWN0ICpleGMsIGNvbnN0IGNoYXIgKmZtdCwuLi4p CiB2b2lkCiBQTHlfZXhjZXB0aW9uX3NldF9wbHVyYWwoUHlPYmplY3QgKmV4YywKIAkJCQkJ CSBjb25zdCBjaGFyICpmbXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVyYWwsCi0J CQkJCQkgdW5zaWduZWQgbG9uZyBuLC4uLikKKwkJCQkJCSB1bnNpZ25lZCBsb25nIG4sIC4u LikKIHsKIAljaGFyCQlidWZbMTAyNF07CiAJdmFfbGlzdAkJYXA7CmRpZmYgLS1naXQgYS9z cmMvcGwvcGxweXRob24vcGxweV9lbG9nLmggYi9zcmMvcGwvcGxweXRob24vcGxweV9lbG9n LmgKaW5kZXggZGM2NWYyZjZlZTIuLjMxNTBmOWU3MmNhIDEwMDY0NAotLS0gYS9zcmMvcGwv cGxweXRob24vcGxweV9lbG9nLmgKKysrIGIvc3JjL3BsL3BscHl0aG9uL3BscHlfZWxvZy5o CkBAIC0zNCwxMiArMzQsMTIgQEAgZXh0ZXJuIFB5T2JqZWN0ICpQTHlfZXhjX3NwaV9lcnJv cjsKIAl9IHdoaWxlKDApCiAjZW5kaWYJCQkJCQkJLyogSEFWRV9fQlVJTFRJTl9DT05TVEFO VF9QICovCiAKLWV4dGVybiBQR0RMTEVYUE9SVCB2b2lkIFBMeV9lbG9nX2ltcGwoaW50IGVs ZXZlbCwgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsK K2V4dGVybiBQR0RMTEVYUE9SVCB2b2lkIFBMeV9lbG9nX2ltcGwoaW50IGVsZXZlbCwgY29u c3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKLWV4dGVy biBQR0RMTEVYUE9SVCB2b2lkIFBMeV9leGNlcHRpb25fc2V0KFB5T2JqZWN0ICpleGMsIGNv bnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4g UEdETExFWFBPUlQgdm9pZCBQTHlfZXhjZXB0aW9uX3NldChQeU9iamVjdCAqZXhjLCBjb25z dCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogZXh0ZXJu IFBHRExMRVhQT1JUIHZvaWQgUEx5X2V4Y2VwdGlvbl9zZXRfcGx1cmFsKFB5T2JqZWN0ICpl eGMsIGNvbnN0IGNoYXIgKmZtdF9zaW5ndWxhciwgY29uc3QgY2hhciAqZm10X3BsdXJhbCwK LQkJCQkJCQkJCQkJCSB1bnNpZ25lZCBsb25nIG4sLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRm KDIsIDUpIHBnX2F0dHJpYnV0ZV9wcmludGYoMywgNSk7CisJCQkJCQkJCQkJCQkgdW5zaWdu ZWQgbG9uZyBuLCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgNSkgcGdfYXR0cmlidXRl X3ByaW50ZigzLCA1KTsKIAogZXh0ZXJuIFBHRExMRVhQT1JUIHZvaWQgUEx5X2V4Y2VwdGlv bl9zZXRfd2l0aF9kZXRhaWxzKFB5T2JqZWN0ICpleGNjbGFzcywgRXJyb3JEYXRhICplZGF0 YSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9wb3J0L29wZW4uYyBiL3NyYy9wb3J0L29wZW4uYwpp bmRleCAyY2QyNjA2MGFhMy4uNGJlMDhiMmNmMTMgMTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L29w ZW4uYworKysgYi9zcmMvcG9ydC9vcGVuLmMKQEAgLTE2NSw3ICsxNjUsNyBAQCBwZ3dpbjMy X29wZW5faGFuZGxlKGNvbnN0IGNoYXIgKmZpbGVOYW1lLCBpbnQgZmlsZUZsYWdzLCBib29s IGJhY2t1cF9zZW1hbnRpY3MpCiB9CiAKIGludAotcGd3aW4zMl9vcGVuKGNvbnN0IGNoYXIg KmZpbGVOYW1lLCBpbnQgZmlsZUZsYWdzLC4uLikKK3Bnd2luMzJfb3Blbihjb25zdCBjaGFy ICpmaWxlTmFtZSwgaW50IGZpbGVGbGFncywgLi4uKQogewogCUhBTkRMRQkJaDsKIAlpbnQJ CQlmZDsKZGlmZiAtLWdpdCBhL3NyYy9wb3J0L3NucHJpbnRmLmMgYi9zcmMvcG9ydC9zbnBy aW50Zi5jCmluZGV4IDVkZWVlNDRkM2EyLi4yMTg5ZWJmZTM5OSAxMDA2NDQKLS0tIGEvc3Jj L3BvcnQvc25wcmludGYuYworKysgYi9zcmMvcG9ydC9zbnByaW50Zi5jCkBAIC0xOTksNyAr MTk5LDcgQEAgcGdfdnNucHJpbnRmKGNoYXIgKnN0ciwgc2l6ZV90IGNvdW50LCBjb25zdCBj aGFyICpmbXQsIHZhX2xpc3QgYXJncykKIH0KIAogaW50Ci1wZ19zbnByaW50ZihjaGFyICpz dHIsIHNpemVfdCBjb3VudCwgY29uc3QgY2hhciAqZm10LC4uLikKK3BnX3NucHJpbnRmKGNo YXIgKnN0ciwgc2l6ZV90IGNvdW50LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJ CQlsZW47CiAJdmFfbGlzdAkJYXJnczsKQEAgLTIyNyw3ICsyMjcsNyBAQCBwZ192c3ByaW50 ZihjaGFyICpzdHIsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKQogfQogCiBpbnQK LXBnX3NwcmludGYoY2hhciAqc3RyLCBjb25zdCBjaGFyICpmbXQsLi4uKQorcGdfc3ByaW50 ZihjaGFyICpzdHIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWludAkJCWxlbjsKIAl2 YV9saXN0CQlhcmdzOwpAQCAtMjYxLDcgKzI2MSw3IEBAIHBnX3ZmcHJpbnRmKEZJTEUgKnN0 cmVhbSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpCiB9CiAKIGludAotcGdfZnBy aW50ZihGSUxFICpzdHJlYW0sIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwZ19mcHJpbnRmKEZJ TEUgKnN0cmVhbSwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJbGVuOwogCXZh X2xpc3QJCWFyZ3M7CkBAIC0yNzksNyArMjc5LDcgQEAgcGdfdnByaW50Zihjb25zdCBjaGFy ICpmbXQsIHZhX2xpc3QgYXJncykKIH0KIAogaW50Ci1wZ19wcmludGYoY29uc3QgY2hhciAq Zm10LC4uLikKK3BnX3ByaW50Zihjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQls ZW47CiAJdmFfbGlzdAkJYXJnczsKZGlmZiAtLWdpdCBhL3NyYy9wb3J0L3dpbjMyc2VjdXJp dHkuYyBiL3NyYy9wb3J0L3dpbjMyc2VjdXJpdHkuYwppbmRleCA0NmQyZmM3NzRiNC4uZDNj YTcwZjBlYWMgMTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L3dpbjMyc2VjdXJpdHkuYworKysgYi9z cmMvcG9ydC93aW4zMnNlY3VyaXR5LmMKQEAgLTE3LDcgKzE3LDcgQEAKICNpbmNsdWRlICJw b3N0Z3Jlc19mZS5oIgogI2VuZGlmCiAKLXN0YXRpYyB2b2lkIGxvZ19lcnJvcihjb25zdCBj aGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworc3RhdGljIHZvaWQg bG9nX2Vycm9yKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEs IDIpOwogCiAKIC8qCkBAIC0yNSw3ICsyNSw3IEBAIHN0YXRpYyB2b2lkIGxvZ19lcnJvcihj b25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogICogbWVz c2FnZS4KICAqLwogc3RhdGljIHZvaWQKLWxvZ19lcnJvcihjb25zdCBjaGFyICpmbXQsLi4u KQorbG9nX2Vycm9yKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFwOwog CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL2xpYnBxX3Bp cGVsaW5lLmMgYi9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL2xpYnBxX3BpcGVs aW5lLmMKaW5kZXggYWEwYTZiYmU3NjIuLmVlM2UyZWM3NTcwIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL2xpYnBxX3BpcGVsaW5lLmMKKysrIGIvc3Jj L3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS9saWJwcV9waXBlbGluZS5jCkBAIC0yNCw3 ICsyNCw3IEBACiAKIAogc3RhdGljIHZvaWQgZXhpdF9uaWNlbHkoUEdjb25uICpjb25uKTsK LXBnX25vcmV0dXJuIHN0YXRpYyB2b2lkIHBnX2ZhdGFsX2ltcGwoaW50IGxpbmUsIGNvbnN0 IGNoYXIgKmZtdCwuLi4pCitwZ19ub3JldHVybiBzdGF0aWMgdm9pZCBwZ19mYXRhbF9pbXBs KGludCBsaW5lLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmlu dGYoMiwgMyk7CiBzdGF0aWMgYm9vbCBwcm9jZXNzX3Jlc3VsdChQR2Nvbm4gKmNvbm4sIFBH cmVzdWx0ICpyZXMsIGludCByZXN1bHRzLAogCQkJCQkJICAgaW50IG51bXNlbnQpOwpAQCAt NzIsNyArNzIsNyBAQCBleGl0X25pY2VseShQR2Nvbm4gKmNvbm4pCiAgKi8KICNkZWZpbmUg cGdfZmF0YWwoLi4uKSBwZ19mYXRhbF9pbXBsKF9fTElORV9fLCBfX1ZBX0FSR1NfXykKIHBn X25vcmV0dXJuIHN0YXRpYyB2b2lkCi1wZ19mYXRhbF9pbXBsKGludCBsaW5lLCBjb25zdCBj aGFyICpmbXQsLi4uKQorcGdfZmF0YWxfaW1wbChpbnQgbGluZSwgY29uc3QgY2hhciAqZm10 LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXJnczsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9wZ19yZWdyZXNzLmMgYi9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MuYwppbmRl eCBiOGI2YTkxMTk4Ny4uYmNiNDJmYTIxMTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvcGdfcmVncmVzcy5jCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzcy5jCkBA IC0xNDYsMTIgKzE0NiwxMiBAQCBzdGF0aWMgdm9pZCBtYWtlX2RpcmVjdG9yeShjb25zdCBj aGFyICpkaXIpOwogc3RhdGljIHZvaWQgdGVzdF9zdGF0dXNfcHJpbnQoYm9vbCBvaywgY29u c3QgY2hhciAqdGVzdG5hbWUsIGRvdWJsZSBydW50aW1lLCBib29sIHBhcmFsbGVsKTsKIHN0 YXRpYyB2b2lkIHRlc3Rfc3RhdHVzX29rKGNvbnN0IGNoYXIgKnRlc3RuYW1lLCBkb3VibGUg cnVudGltZSwgYm9vbCBwYXJhbGxlbCk7CiBzdGF0aWMgdm9pZCB0ZXN0X3N0YXR1c19mYWls ZWQoY29uc3QgY2hhciAqdGVzdG5hbWUsIGRvdWJsZSBydW50aW1lLCBib29sIHBhcmFsbGVs KTsKLXN0YXRpYyB2b2lkIGJhaWxfb3V0KGJvb2wgbm9hdGV4aXQsIGNvbnN0IGNoYXIgKmZt dCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7Ci1zdGF0aWMgdm9pZCBlbWl0X3Rh cF9vdXRwdXQoVEFQdHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1 dGVfcHJpbnRmKDIsIDMpOworc3RhdGljIHZvaWQgYmFpbF9vdXQoYm9vbCBub2F0ZXhpdCwg Y29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitzdGF0 aWMgdm9pZCBlbWl0X3RhcF9vdXRwdXQoVEFQdHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQs IC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIHN0YXRpYyB2b2lkIGVtaXRfdGFw X291dHB1dF92KFRBUHR5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3Ap IHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMCk7CiAKIHN0YXRpYyBTdHJpbmdJbmZvIHBzcWxf c3RhcnRfY29tbWFuZCh2b2lkKTsKLXN0YXRpYyB2b2lkIHBzcWxfYWRkX2NvbW1hbmQoU3Ry aW5nSW5mbyBidWYsIGNvbnN0IGNoYXIgKnF1ZXJ5LC4uLikgcGdfYXR0cmlidXRlX3ByaW50 ZigyLCAzKTsKK3N0YXRpYyB2b2lkIHBzcWxfYWRkX2NvbW1hbmQoU3RyaW5nSW5mbyBidWYs IGNvbnN0IGNoYXIgKnF1ZXJ5LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiBz dGF0aWMgdm9pZCBwc3FsX2VuZF9jb21tYW5kKFN0cmluZ0luZm8gYnVmLCBjb25zdCBjaGFy ICpkYXRhYmFzZSk7CiAKIC8qCkBAIC0yNTIsNyArMjUyLDcgQEAgc3BsaXRfdG9fc3RyaW5n bGlzdChjb25zdCBjaGFyICpzLCBjb25zdCBjaGFyICpkZWxpbSwgX3N0cmluZ2xpc3QgKips aXN0aGVhZCkKICAqIGV4aXQgaGFuZGxlcnMsIHRodXMgYXZvaWQgYW55IHJpc2sgb2YgYm90 dG9tbGVzcyByZWN1cnNpb24gY2FsbHMgdG8gZXhpdC4KICAqLwogc3RhdGljIHZvaWQKLWJh aWxfb3V0KGJvb2wgbm9hdGV4aXQsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitiYWlsX291dChi b29sIG5vYXRleGl0LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcDsK IApAQCAtMzI4LDcgKzMyOCw3IEBAIHRlc3Rfc3RhdHVzX2ZhaWxlZChjb25zdCBjaGFyICp0 ZXN0bmFtZSwgZG91YmxlIHJ1bnRpbWUsIGJvb2wgcGFyYWxsZWwpCiAKIAogc3RhdGljIHZv aWQKLWVtaXRfdGFwX291dHB1dChUQVB0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwuLi4p CitlbWl0X3RhcF9vdXRwdXQoVEFQdHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsIC4uLikK IHsKIAl2YV9saXN0CQlhcmdwOwogCkBAIC0xMTI5LDcgKzExMjksNyBAQCBwc3FsX3N0YXJ0 X2NvbW1hbmQodm9pZCkKIH0KIAogc3RhdGljIHZvaWQKLXBzcWxfYWRkX2NvbW1hbmQoU3Ry aW5nSW5mbyBidWYsIGNvbnN0IGNoYXIgKnF1ZXJ5LC4uLikKK3BzcWxfYWRkX2NvbW1hbmQo U3RyaW5nSW5mbyBidWYsIGNvbnN0IGNoYXIgKnF1ZXJ5LCAuLi4pCiB7CiAJU3RyaW5nSW5m b0RhdGEgY21kYnVmOwogCWNvbnN0IGNoYXIgKmNtZHB0cjsKZGlmZiAtLWdpdCBhL3NyYy90 aW1lem9uZS96aWMuYyBiL3NyYy90aW1lem9uZS96aWMuYwppbmRleCAyZjM2NDg2YTM1MC4u OGE5MjVjYmVkNmIgMTAwNjQ0Ci0tLSBhL3NyYy90aW1lem9uZS96aWMuYworKysgYi9zcmMv dGltZXpvbmUvemljLmMKQEAgLTEyMyw4ICsxMjMsOCBAQCBleHRlcm4gaW50CWxpbmsoY29u c3QgY2hhciAqdGFyZ2V0LCBjb25zdCBjaGFyICpsaW5rbmFtZSk7CiAjZW5kaWYKIAogc3Rh dGljIHZvaWQgdmVycm9yKGNvbnN0IGNoYXIgKmNvbnN0IHN0cmluZywgdmFfbGlzdCBhcmdz KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDApOwotc3RhdGljIHZvaWQgZXJyb3IoY29uc3Qg Y2hhciAqY29uc3Qgc3RyaW5nLC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKLXN0 YXRpYyB2b2lkIHdhcm5pbmcoY29uc3QgY2hhciAqY29uc3Qgc3RyaW5nLC4uLikgcGdfYXR0 cmlidXRlX3ByaW50ZigxLCAyKTsKK3N0YXRpYyB2b2lkIGVycm9yKGNvbnN0IGNoYXIgKmNv bnN0IHN0cmluZywgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworc3RhdGljIHZv aWQgd2FybmluZyhjb25zdCBjaGFyICpjb25zdCBzdHJpbmcsIC4uLikgcGdfYXR0cmlidXRl X3ByaW50ZigxLCAyKTsKIHN0YXRpYyB2b2lkIGFkZHR0KHppY190IHN0YXJ0dGltZSwgaW50 IHR5cGUpOwogc3RhdGljIGludAlhZGR0eXBlKHppY190IHV0b2ZmLCBjaGFyIGNvbnN0ICph YmJyLAogCQkJCQlib29sIGlzZHN0LCBib29sIHR0aXNzdGQsIGJvb2wgdHRpc3V0KTsKQEAg LTUxNSw3ICs1MTUsNyBAQCB2ZXJyb3IoY29uc3QgY2hhciAqY29uc3Qgc3RyaW5nLCB2YV9s aXN0IGFyZ3MpCiB9CiAKIHN0YXRpYyB2b2lkCi1lcnJvcihjb25zdCBjaGFyICpjb25zdCBz dHJpbmcsLi4uKQorZXJyb3IoY29uc3QgY2hhciAqY29uc3Qgc3RyaW5nLCAuLi4pCiB7CiAJ dmFfbGlzdAkJYXJnczsKIApAQCAtNTI2LDcgKzUyNiw3IEBAIGVycm9yKGNvbnN0IGNoYXIg KmNvbnN0IHN0cmluZywuLi4pCiB9CiAKIHN0YXRpYyB2b2lkCi13YXJuaW5nKGNvbnN0IGNo YXIgKmNvbnN0IHN0cmluZywuLi4pCit3YXJuaW5nKGNvbnN0IGNoYXIgKmNvbnN0IHN0cmlu ZywgLi4uKQogewogCXZhX2xpc3QJCWFyZ3M7CiAKLS0gCjIuNDcuMwoK --------------wPgAyG0fvCRPXkg4nnocnpd9--