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 1w7Scf-005L8A-23 for pgsql-hackers@arkaria.postgresql.org; Tue, 31 Mar 2026 06:30:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w7Scd-008AXD-22 for pgsql-hackers@arkaria.postgresql.org; Tue, 31 Mar 2026 06:30:44 +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 1w7Scc-008AWx-25 for pgsql-hackers@lists.postgresql.org; Tue, 31 Mar 2026 06:30:43 +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 1w7ScS-00000001vS4-1HjV for pgsql-hackers@postgresql.org; Tue, 31 Mar 2026 06:30:41 +0000 Received: from s807.loopia.se (localhost [127.0.0.1]) by s807.loopia.se (Postfix) with ESMTP id 5D26554BA82 for ; Tue, 31 Mar 2026 08:30:28 +0200 (CEST) Received: from s980.loopia.se (unknown [172.22.191.6]) by s807.loopia.se (Postfix) with ESMTP id 4E17A54A2CD for ; Tue, 31 Mar 2026 08:30:28 +0200 (CEST) Received: from localhost (unknown [172.22.191.6]) by s980.loopia.se (Postfix) with ESMTP id 48F5E22016F1 for ; Tue, 31 Mar 2026 08:30:28 +0200 (CEST) X-Virus-Scanned: amavis 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: s898.loopia.se (amavis); dkim=pass (2048-bit key) header.d=proxel.se Received: from s981.loopia.se ([172.22.191.6]) by localhost (s898.loopia.se [172.22.190.17]) (amavis, port 10024) with UTF8LMTP id rQpPtI5mXKqb for ; Tue, 31 Mar 2026 08:30:25 +0200 (CEST) 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 s981.loopia.se (Postfix) with ESMTPSA id 7BA2522B1805 for ; Tue, 31 Mar 2026 08:30:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxel.se; s=loopiadkim1707418970; t=1774938625; bh=N1jayKlZINngScyQyT+m6OLbwUO0VfNDKjluZIOnIeg=; h=Date:Subject:From:To:References:In-Reply-To; b=Vw8CfV0F16yLjyBUVoFNSCayKhs6IJsDe7PKhdHv5iTgqWyT9EKCOrvGzRRHvQxfm Dgj4AS//dh6Nk7gCN6odYhwXos9u5IYI5Y8I2wgIR6IuwNCc8OH7/MBme8ybzn7sAJ s9qiq8lr9xQjLbbhbuPcwTUYrig8koJ8r7OzYZsBFqL5MZEh1fsRFiqziqZNNeuoNs tqYjJqclvSduWF3fSjaz4KzfK743joAxjjgETt5dhU4nrt3bxSH7RK+f6DZ/hLdqgV +YjQ4EH6rft76lhvmOaAo0v89DVue7Clf2qQMu2vIfbFIye4vaZcU1SyoySAe1xBWQ VUOWOQuZ3QAtw== Content-Type: multipart/mixed; boundary="------------0dIJ43fsKrTes75UbSWHXtWJ" Message-ID: <9a65055e-97db-4ce7-b07f-b9f81ab1d0cc@proxel.se> Date: Tue, 31 Mar 2026 08:30:25 +0200 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: <7f6bc050-319d-477c-9f47-96a9c8d020b9@proxel.se> Content-Language: en-US In-Reply-To: <7f6bc050-319d-477c-9f47-96a9c8d020b9@proxel.se> 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. --------------0dIJ43fsKrTes75UbSWHXtWJ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 3/2/26 11:41 PM, Andreas Karlsson wrote: > Here is a rebased version of the patch. Rebased it again. Andreas --------------0dIJ43fsKrTes75UbSWHXtWJ Content-Type: text/x-patch; charset=UTF-8; name="v3-0001-Make-pgindent-add-a-space-between-comma-and-perio.patch" Content-Disposition: attachment; filename*0="v3-0001-Make-pgindent-add-a-space-between-comma-and-perio.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1MGY3MjQ2MWU5M2YxNTAzYmE5Mjc2NjZlNjJlYzhjNDkzNjVmOTM2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogVHVlLCAxNyBGZWIgMjAyNiAwOTowNDowMSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjMgMS8yXSBNYWtlIHBnaW5kZW50IGFkZCBhIHNwYWNlIGJldHdlZW4gY29tbWEg YW5kIHBlcmlvZAoKRm9ybWF0dGluZyBvZiB2YXJpZGljIGZ1bmN0aW9ucyBhbmQgc3RydWN0 IGxpdGVyYWxzIHdpdGggbmFtZWQgZmllbGQKdXNlZCB0byBiZSB1Z2x5IGR1ZSB0byBwZ2lu ZGVudCB0cmVhaW5nIHBlcmlvZCBhcyBhbHdheXMgYmVpbmcgYmluYXJ5Cm9wZXJhdG9yIGZv ciBzdHJ1Y3QgYWNjZXNzLCBidXQgYWZ0ZXIgY29tbWEgaXQgaGFzIGEgZGlmZmVyZW50IG1l YW5pbmcuCi0tLQogc3JjL3Rvb2xzL3BnX2JzZF9pbmRlbnQvaW5kZW50LmMgfCAyICsrCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xz L3BnX2JzZF9pbmRlbnQvaW5kZW50LmMgYi9zcmMvdG9vbHMvcGdfYnNkX2luZGVudC9pbmRl bnQuYwppbmRleCA0MjE1OTJkYjkyOC4uNThmYTA0MjkzZDkgMTAwNjQ0Ci0tLSBhL3NyYy90 b29scy9wZ19ic2RfaW5kZW50L2luZGVudC5jCisrKyBiL3NyYy90b29scy9wZ19ic2RfaW5k ZW50L2luZGVudC5jCkBAIC0xMDEzLDYgKzEwMTMsOCBAQCBjaGVja190eXBlOgogCiAJY2Fz ZSBwZXJpb2Q6CQkvKiB0cmVhdCBhIHBlcmlvZCBraW5kIG9mIGxpa2UgYSBiaW5hcnkKIAkJ CQkgKiBvcGVyYXRpb24gKi8KKwkgICAgaWYgKHBzLndhbnRfYmxhbmsgJiYgcHMubGFzdF90 b2tlbiA9PSBjb21tYSkKKwkgICAgICAgICplX2NvZGUrKyA9ICcgJzsKIAkgICAgKmVfY29k ZSsrID0gJy4nOwkvKiBtb3ZlIHRoZSBwZXJpb2QgaW50byBsaW5lICovCiAJICAgIHBzLndh bnRfYmxhbmsgPSBmYWxzZTsJLyogZG9udCBwdXQgYSBibGFuayBhZnRlciBhIHBlcmlvZCAq LwogCSAgICBicmVhazsKLS0gCjIuNDcuMwoK --------------0dIJ43fsKrTes75UbSWHXtWJ Content-Type: text/x-patch; charset=UTF-8; name="v3-0002-Run-pgindent-add-a-space-between-comma-and-period.patch" Content-Disposition: attachment; filename*0="v3-0002-Run-pgindent-add-a-space-between-comma-and-period.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBiOWUwZDlhZjQ4NDYwMzQyMDEyOWVlNDAxMzgyYTQ1M2M1ZDEwMjI2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogVHVlLCAxNyBGZWIgMjAyNiAwOTowNzozMSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjMgMi8yXSBSdW4gcGdpbmRlbnQgYWRkIGEgc3BhY2UgYmV0d2VlbiBjb21tYSBh bmQgcGVyaW9kCgotLS0KIGNvbnRyaWIvZGJsaW5rL2RibGluay5jICAgICAgICAgICAgICAg ICAgICAgICB8ICA0ICstLQogY29udHJpYi9mdXp6eXN0cm1hdGNoL2RtZXRhcGhvbmUuYyAg ICAgICAgICAgIHwgIDIgKy0KIGNvbnRyaWIvanNvbmJfcGxweXRob24vanNvbmJfcGxweXRo b24uYyAgICAgICB8ICAyICstCiBjb250cmliL3BnY3J5cHRvL3B4LmMgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQogY29udHJpYi9wZ2NyeXB0by9weC5oICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlk YXRlLmMgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9n cmVhZGVyLmMgICAgICAgfCAgNCArLS0KIHNyYy9iYWNrZW5kL2JhY2t1cC9iYXNlYmFja3Vw X2luY3JlbWVudGFsLmMgICB8ICA0ICstLQogc3JjL2JhY2tlbmQvYmFja3VwL3dhbHN1bW1h cnkuYyAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2xpYi9yYnRyZWUuYyAg ICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9lcnJvci9l bG9nLmMgICAgICAgICAgICAgICAgfCAyOCArKysrKysrKystLS0tLS0tLS0tCiBzcmMvYmFj a2VuZC91dGlscy9lcnJvci9qc29ubG9nLmMgICAgICAgICAgICAgfCAgNCArLS0KIHNyYy9i YWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgICAgICAgICAgICAgICAgICB8ICA0ICstLQogc3Jj L2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYyAgIHwgIDggKysrLS0t CiBzcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvbG9hZF9tYW5pZmVzdC5jICAgICAgfCAgNCAr LS0KIHNyYy9iaW4vcGdfY3RsL3BnX2N0bC5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0 ICstLQogc3JjL2Jpbi9wZ19kdW1wL2ZpbHRlci5jICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIHNyYy9iaW4vcGdfZHVtcC9maWx0ZXIuaCAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggICAgICAgICAgICAgICAgICAg fCAgMiArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jICAgICAgICAg IHwgIDYgKystLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5oICAgICAg ICAgIHwgIDQgKy0tCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX3Rhci5jICAgICAgICAg ICAgICAgfCAgNCArLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9leGVjLmMgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGFyYWxsZWwuYyAgICAgICAg ICAgICAgICAgfCAgMiArLQogc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCAgICAg ICAgICAgICAgIHwgMTYgKysrKystLS0tLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9zZXJ2ZXIu YyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmluL3BnX3VwZ3JhZGUvdXRpbC5j ICAgICAgICAgICAgICAgICAgICAgfCAxMCArKystLS0tCiBzcmMvYmluL3BnX3ZlcmlmeWJh Y2t1cC9wZ192ZXJpZnliYWNrdXAuYyAgICAgfCAgOCArKystLS0KIHNyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5oICAgICB8ICA0ICstLQogc3JjL2Jpbi9wZ193 YWxzdW1tYXJ5L3BnX3dhbHN1bW1hcnkuYyAgICAgICAgIHwgIDQgKy0tCiBzcmMvYmluL3Bz cWwvbGFyZ2Vfb2JqLmMgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIHNyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICA2ICsrLS0KIHNyYy9j b21tb24vbG9nZ2luZy5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMv Y29tbW9uL3BlcmNlbnRyZXBsLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3Jj L2NvbW1vbi9wc3ByaW50Zi5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNy Yy9jb21tb24vc3RyaW5naW5mby5jICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBz cmMvZmVfdXRpbHMvb3B0aW9uX3V0aWxzLmMgICAgICAgICAgICAgICAgICAgfCAgMiArLQog c3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaCAgICAgICAgICAgICAgIHwgIDIgKy0K IHNyYy9pbmNsdWRlL2JhY2t1cC93YWxzdW1tYXJ5LmggICAgICAgICAgICAgICB8ICAyICst CiBzcmMvaW5jbHVkZS9jb21tb24vYmxrcmVmdGFibGUuaCAgICAgICAgICAgICAgfCAgMiAr LQogc3JjL2luY2x1ZGUvY29tbW9uL2ZlX21lbXV0aWxzLmggICAgICAgICAgICAgIHwgIDIg Ky0KIHNyYy9pbmNsdWRlL2NvbW1vbi9sb2dnaW5nLmggICAgICAgICAgICAgICAgICB8ICAy ICstCiBzcmMvaW5jbHVkZS9jb21tb24vcGFyc2VfbWFuaWZlc3QuaCAgICAgICAgICAgfCAg MiArLQogc3JjL2luY2x1ZGUvY29tbW9uL3BlcmNlbnRyZXBsLmggICAgICAgICAgICAgIHwg IDIgKy0KIHNyYy9pbmNsdWRlL2ZlX3V0aWxzL29wdGlvbl91dGlscy5oICAgICAgICAgICB8 ICAyICstCiBzcmMvaW5jbHVkZS9qaXQvbGx2bWppdF9lbWl0LmggICAgICAgICAgICAgICAg fCAgOCArKystLS0KIHNyYy9pbmNsdWRlL2xpYi9zdHJpbmdpbmZvLmggICAgICAgICAgICAg ICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9wb3J0LmggICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAxMCArKystLS0tCiBzcmMvaW5jbHVkZS91dGlscy9lbG9nLmggICAgICAgICAg ICAgICAgICAgICAgfCAyOCArKysrKysrKystLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS91dGls cy9wYWxsb2MuaCAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2ludGVyZmFjZXMv ZWNwZy9lY3BnbGliL2Rlc2NyaXB0b3IuYyAgICAgIHwgIDYgKystLQogc3JjL2ludGVyZmFj ZXMvZWNwZy9lY3BnbGliL2VjcGdsaWJfZXh0ZXJuLmggIHwgIDIgKy0KIHNyYy9pbnRlcmZh Y2VzL2VjcGcvZWNwZ2xpYi9leGVjdXRlLmMgICAgICAgICB8ICAyICstCiBzcmMvaW50ZXJm YWNlcy9lY3BnL2VjcGdsaWIvbWlzYy5jICAgICAgICAgICAgfCAgMiArLQogc3JjL2ludGVy ZmFjZXMvZWNwZy9pbmNsdWRlL2VjcGdsaWIuaCAgICAgICAgIHwgIDggKysrLS0tCiBzcmMv aW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcHJlcHJvY19leHRlcm4uaCAgfCAgNiArKy0tCiBz cmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvdXRpbC5jICAgICAgICAgICAgfCAgNiArKy0t CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgICAgICAgICAgICAgICAgfCAgMiAr LQogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtbWlzYy5jICAgICAgICAgICAgICAgIHwgIDQg Ky0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCAgICAgICAgICAgICAgfCAg NiArKy0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZlci5jICAgICAgICAgICAg fCAgNCArLS0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL3BxZXhwYnVmZmVyLmggICAgICAgICAg ICB8ICA0ICstLQogc3JjL3BsL3BscHl0aG9uL3BscHlfZWxvZy5jICAgICAgICAgICAgICAg ICAgIHwgIDYgKystLQogc3JjL3BsL3BscHl0aG9uL3BscHlfZWxvZy5oICAgICAgICAgICAg ICAgICAgIHwgIDYgKystLQogc3JjL3BvcnQvb3Blbi5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIHNyYy9wb3J0L3NucHJpbnRmLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA4ICsrKy0tLQogc3JjL3BvcnQvd2luMzJzZWN1cml0eS5jICAgICAg ICAgICAgICAgICAgICAgIHwgIDQgKy0tCiAuLi4vbW9kdWxlcy9saWJwcV9waXBlbGluZS9s aWJwcV9waXBlbGluZS5jICAgfCAgNCArLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVz cy5jICAgICAgICAgICAgICAgICB8IDEyICsrKystLS0tCiBzcmMvdGltZXpvbmUvemljLmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKystLS0KIDcwIGZpbGVzIGNoYW5n ZWQsIDE2NyBpbnNlcnRpb25zKCspLCAxNjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv Y29udHJpYi9kYmxpbmsvZGJsaW5rLmMgYi9jb250cmliL2RibGluay9kYmxpbmsuYwppbmRl eCAxMzRiNTIwODViNy4uNzYwM2M3OWZlNjkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZGJsaW5r L2RibGluay5jCisrKyBiL2NvbnRyaWIvZGJsaW5rL2RibGluay5jCkBAIC0xMjMsNyArMTIz LDcgQEAgc3RhdGljIGJvb2wgZGJsaW5rX2Nvbm5zdHJfaGFzX3B3KGNvbnN0IGNoYXIgKmNv bm5zdHIpOwogc3RhdGljIHZvaWQgZGJsaW5rX3NlY3VyaXR5X2NoZWNrKFBHY29ubiAqY29u biwgY29uc3QgY2hhciAqY29ubm5hbWUsCiAJCQkJCQkJCSAgY29uc3QgY2hhciAqY29ubnN0 cik7CiBzdGF0aWMgdm9pZCBkYmxpbmtfcmVzX2Vycm9yKFBHY29ubiAqY29ubiwgY29uc3Qg Y2hhciAqY29ubmFtZSwgUEdyZXN1bHQgKnJlcywKLQkJCQkJCQkgYm9vbCBmYWlsLCBjb25z dCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDUsIDYpOworCQkJCQkJCSBi b29sIGZhaWwsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDUs IDYpOwogc3RhdGljIGNoYXIgKmdldF9jb25uZWN0X3N0cmluZyhjb25zdCBjaGFyICpzZXJ2 ZXJuYW1lKTsKIHN0YXRpYyBjaGFyICplc2NhcGVfcGFyYW1fc3RyKGNvbnN0IGNoYXIgKnN0 cik7CiBzdGF0aWMgdm9pZCB2YWxpZGF0ZV9wa2F0dG51bXMoUmVsYXRpb24gcmVsLApAQCAt Mjc5Miw3ICsyNzkyLDcgQEAgZGJsaW5rX2Nvbm5zdHJfY2hlY2soY29uc3QgY2hhciAqY29u bnN0cikKICAqLwogc3RhdGljIHZvaWQKIGRibGlua19yZXNfZXJyb3IoUEdjb25uICpjb25u LCBjb25zdCBjaGFyICpjb25uYW1lLCBQR3Jlc3VsdCAqcmVzLAotCQkJCSBib29sIGZhaWws IGNvbnN0IGNoYXIgKmZtdCwuLi4pCisJCQkJIGJvb2wgZmFpbCwgY29uc3QgY2hhciAqZm10 LCAuLi4pCiB7CiAJaW50CQkJbGV2ZWw7CiAJY2hhcgkgICAqcGdfZGlhZ19zcWxzdGF0ZSA9 IFBRcmVzdWx0RXJyb3JGaWVsZChyZXMsIFBHX0RJQUdfU1FMU1RBVEUpOwpkaWZmIC0tZ2l0 IGEvY29udHJpYi9mdXp6eXN0cm1hdGNoL2RtZXRhcGhvbmUuYyBiL2NvbnRyaWIvZnV6enlz dHJtYXRjaC9kbWV0YXBob25lLmMKaW5kZXggMDYyNjY3NTI3YzIuLmY5NGI0MTg3ZTQwIDEw MDY0NAotLS0gYS9jb250cmliL2Z1enp5c3RybWF0Y2gvZG1ldGFwaG9uZS5jCisrKyBiL2Nv bnRyaWIvZnV6enlzdHJtYXRjaC9kbWV0YXBob25lLmMKQEAgLTM1MCw3ICszNTAsNyBAQCBT ZXRBdChtZXRhc3RyaW5nICpzLCBpbnQgcG9zLCBjaGFyIGMpCiAgICBDYXZlYXRzOiB0aGUg U1RBUlQgdmFsdWUgaXMgMCBiYXNlZAogKi8KIHN0YXRpYyBpbnQKLVN0cmluZ0F0KG1ldGFz dHJpbmcgKnMsIGludCBzdGFydCwgaW50IGxlbmd0aCwuLi4pCitTdHJpbmdBdChtZXRhc3Ry aW5nICpzLCBpbnQgc3RhcnQsIGludCBsZW5ndGgsIC4uLikKIHsKIAljaGFyCSAgICp0ZXN0 OwogCWNoYXIJICAgKnBvczsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvanNvbmJfcGxweXRob24v anNvbmJfcGxweXRob24uYyBiL2NvbnRyaWIvanNvbmJfcGxweXRob24vanNvbmJfcGxweXRo b24uYwppbmRleCBjMmM0Y2UzN2MwOC4uNGRlNzVhMDRlNzYgMTAwNjQ0Ci0tLSBhL2NvbnRy aWIvanNvbmJfcGxweXRob24vanNvbmJfcGxweXRob24uYworKysgYi9jb250cmliL2pzb25i X3BscHl0aG9uL2pzb25iX3BscHl0aG9uLmMKQEAgLTE2LDcgKzE2LDcgQEAgUEdfTU9EVUxF X01BR0lDX0VYVCgKIHR5cGVkZWYgY2hhciAqKCpQTHlPYmplY3RfQXNTdHJpbmdfdCkgKFB5 T2JqZWN0ICpwbHJ2KTsKIHN0YXRpYyBQTHlPYmplY3RfQXNTdHJpbmdfdCBQTHlPYmplY3Rf QXNTdHJpbmdfcDsKIAotdHlwZWRlZiB2b2lkICgqUEx5X2Vsb2dfaW1wbF90KSAoaW50IGVs ZXZlbCwgY29uc3QgY2hhciAqZm10LC4uLik7Cit0eXBlZGVmIHZvaWQgKCpQTHlfZWxvZ19p bXBsX3QpIChpbnQgZWxldmVsLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CiBzdGF0aWMgUEx5 X2Vsb2dfaW1wbF90IFBMeV9lbG9nX2ltcGxfcDsKIAogLyoKZGlmZiAtLWdpdCBhL2NvbnRy aWIvcGdjcnlwdG8vcHguYyBiL2NvbnRyaWIvcGdjcnlwdG8vcHguYwppbmRleCBmMDhiYzQ5 OGFjOC4uMzJmNjJmM2ZjMWIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdjcnlwdG8vcHguYwor KysgYi9jb250cmliL3BnY3J5cHRvL3B4LmMKQEAgLTE0Nyw3ICsxNDcsNyBAQCBweF9zZXRf ZGVidWdfaGFuZGxlcih2b2lkICgqaGFuZGxlcikgKGNvbnN0IGNoYXIgKikpCiB9CiAKIHZv aWQKLXB4X2RlYnVnKGNvbnN0IGNoYXIgKmZtdCwuLi4pCitweF9kZWJ1Zyhjb25zdCBjaGFy ICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcDsKIApkaWZmIC0tZ2l0IGEvY29udHJpYi9w Z2NyeXB0by9weC5oIGIvY29udHJpYi9wZ2NyeXB0by9weC5oCmluZGV4IGEwOTUzM2EzNTgy Li40NDBhY2Y2YTUyNyAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ2NyeXB0by9weC5oCisrKyBi L2NvbnRyaWIvcGdjcnlwdG8vcHguaApAQCAtMTk0LDcgKzE5NCw3IEBAIGJvb2wJCUNoZWNr RklQU01vZGUodm9pZCk7CiB2b2lkCQlDaGVja0J1aWx0aW5DcnlwdG9Nb2RlKHZvaWQpOwog CiAjaWZkZWYgUFhfREVCVUcKLXZvaWQJCXB4X2RlYnVnKGNvbnN0IGNoYXIgKmZtdCwuLi4p IHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7Cit2b2lkCQlweF9kZWJ1Zyhjb25zdCBjaGFy ICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKICNlbHNlCiAjZGVmaW5l IHB4X2RlYnVnKC4uLikKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L2luZGV4L2FtdmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlk YXRlLmMKaW5kZXggZjg2YmE3ZDc2ZDIuLjk2ZWYxOWU5NmZmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9pbmRleC9hbXZhbGlkYXRlLmMKQEAgLTE1MCw3ICsxNTAsNyBAQCBpZGVudGlmeV9v cGZhbWlseV9ncm91cHMoQ2F0Q0xpc3QgKm9wcmxpc3QsIENhdENMaXN0ICpwcm9jbGlzdCkK ICAqLwogYm9vbAogY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVz dHlwZSwgYm9vbCBleGFjdCwKLQkJCQkJICAgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4u LikKKwkJCQkJICAgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLCAuLi4pCiB7CiAJYm9vbAkJ cmVzdWx0ID0gdHJ1ZTsKIAlIZWFwVHVwbGUJdHA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVhZGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS94bG9ncmVhZGVyLmMKaW5kZXggODg0OTYxMGRiMDAuLjMxNDVjNThhOWIxIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVhZGVyLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlYWRlci5jCkBAIC00MSw3ICs0MSw3 IEBACiAjaW5jbHVkZSAiY29tbW9uL2xvZ2dpbmcuaCIKICNlbmRpZgogCi1zdGF0aWMgdm9p ZCByZXBvcnRfaW52YWxpZF9yZWNvcmQoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgY29uc3Qg Y2hhciAqZm10LC4uLikKK3N0YXRpYyB2b2lkIHJlcG9ydF9pbnZhbGlkX3JlY29yZChYTG9n UmVhZGVyU3RhdGUgKnN0YXRlLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIAkJCXBnX2F0dHJp YnV0ZV9wcmludGYoMiwgMyk7CiBzdGF0aWMgdm9pZCBhbGxvY2F0ZV9yZWNvcmRidWYoWExv Z1JlYWRlclN0YXRlICpzdGF0ZSwgdWludDMyIHJlY2xlbmd0aCk7CiBzdGF0aWMgaW50CVJl YWRQYWdlSW50ZXJuYWwoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgWExvZ1JlY1B0ciBwYWdl cHRyLApAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgdm9pZCBXQUxPcGVuU2VnbWVudEluaXQo V0FMT3BlblNlZ21lbnQgKnNlZywgV0FMU2VnbWVudENvbnRleHQgKnNlZ2N4dCwKICAqIHRo ZSBjdXJyZW50IHJlY29yZCBiZWluZyByZWFkLgogICovCiBzdGF0aWMgdm9pZAotcmVwb3J0 X2ludmFsaWRfcmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIGNvbnN0IGNoYXIgKmZt dCwuLi4pCityZXBvcnRfaW52YWxpZF9yZWNvcmQoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwg Y29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXJnczsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYmFja3VwL2Jhc2ViYWNrdXBfaW5jcmVtZW50YWwuYyBiL3NyYy9i YWNrZW5kL2JhY2t1cC9iYXNlYmFja3VwX2luY3JlbWVudGFsLmMKaW5kZXggNmYzNTUyYzZh NGEuLjkyMzVmNmIyNjhjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJh Y2t1cF9pbmNyZW1lbnRhbC5jCisrKyBiL3NyYy9iYWNrZW5kL2JhY2t1cC9iYXNlYmFja3Vw X2luY3JlbWVudGFsLmMKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgdm9pZCBtYW5pZmVz dF9wcm9jZXNzX3dhbF9yYW5nZShKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQs CiAJCQkJCQkJCQkgICBYTG9nUmVjUHRyIHN0YXJ0X2xzbiwKIAkJCQkJCQkJCSAgIFhMb2dS ZWNQdHIgZW5kX2xzbik7CiBwZ19ub3JldHVybiBzdGF0aWMgdm9pZCBtYW5pZmVzdF9yZXBv cnRfZXJyb3IoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0ICpjb250ZXh0LAotCQkJCQkJCQkJ CQkgIGNvbnN0IGNoYXIgKmZtdCwuLi4pCisJCQkJCQkJCQkJCSAgY29uc3QgY2hhciAqZm10 LCAuLi4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogc3RhdGljIGludAljb21w YXJlX2Jsb2NrX251bWJlcnMoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYik7CiAKQEAg LTEwMTgsNyArMTAxOCw3IEBAIG1hbmlmZXN0X3Byb2Nlc3Nfd2FsX3JhbmdlKEpzb25NYW5p ZmVzdFBhcnNlQ29udGV4dCAqY29udGV4dCwKICAqIG1hbmlmZXN0LgogICovCiBzdGF0aWMg dm9pZAotbWFuaWZlc3RfcmVwb3J0X2Vycm9yKEpzb25NYW5pZmVzdFBhcnNlQ29udGV4dCAq Y29udGV4dCwgY29uc3QgY2hhciAqZm10LC4uLikKK21hbmlmZXN0X3JlcG9ydF9lcnJvcihK c29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZtdCwgLi4u KQogewogCVN0cmluZ0luZm9EYXRhIGVycmJ1ZjsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYmFja3VwL3dhbHN1bW1hcnkuYyBiL3NyYy9iYWNrZW5kL2JhY2t1cC93YWxzdW1tYXJ5 LmMKaW5kZXggNGNkMTgyNGZiYzYuLjBjZGM4NmFmMzBiIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9iYWNrdXAvd2Fsc3VtbWFyeS5jCisrKyBiL3NyYy9iYWNrZW5kL2JhY2t1cC93YWxz dW1tYXJ5LmMKQEAgLTMxOSw3ICszMTksNyBAQCBXcml0ZVdhbFN1bW1hcnkodm9pZCAqd2Fs X3N1bW1hcnlfaW8sIHZvaWQgKmRhdGEsIGludCBsZW5ndGgpCiAgKiBFcnJvci1yZXBvcnRp bmcgY2FsbGJhY2sgZm9yIHVzZSB3aXRoIENyZWF0ZUJsb2NrUmVmVGFibGVSZWFkZXIuCiAg Ki8KIHZvaWQKLVJlcG9ydFdhbFN1bW1hcnlFcnJvcih2b2lkICpjYWxsYmFja19hcmcsIGNo YXIgKmZtdCwuLi4pCitSZXBvcnRXYWxTdW1tYXJ5RXJyb3Iodm9pZCAqY2FsbGJhY2tfYXJn LCBjaGFyICpmbXQsIC4uLikKIHsKIAlTdHJpbmdJbmZvRGF0YSBidWY7CiAJdmFfbGlzdAkJ YXA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9saWIvcmJ0cmVlLmMgYi9zcmMvYmFja2Vu ZC9saWIvcmJ0cmVlLmMKaW5kZXggZDdiNDEwZDQ0MzAuLjAzNmYzNDc4MDYyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9saWIvcmJ0cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvbGliL3Ji dHJlZS5jCkBAIC02Miw3ICs2Miw3IEBAIHN0cnVjdCBSQlRyZWUKIAogc3RhdGljIFJCVE5v ZGUgc2VudGluZWwgPQogewotCS5jb2xvciA9IFJCVEJMQUNLLC5sZWZ0ID0gUkJUTklMLC5y aWdodCA9IFJCVE5JTCwucGFyZW50ID0gTlVMTAorCS5jb2xvciA9IFJCVEJMQUNLLCAubGVm dCA9IFJCVE5JTCwgLnJpZ2h0ID0gUkJUTklMLCAucGFyZW50ID0gTlVMTAogfTsKIAogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9lcnJvci9lbG9nLmMKaW5kZXggMzE0ZWY4NWZkYjQuLmI0NzljNmM1Mjg3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCkBAIC0xMDkwLDcgKzEwOTAsNyBAQCBlcnJjb2Rl X2Zvcl9zb2NrZXRfYWNjZXNzKHZvaWQpCiAgKiBlcmVwb3J0IHdpbGwgcHJvdmlkZSBvbmUg Zm9yIHRoZSBvdXRwdXQgbWV0aG9kcyB0aGF0IG5lZWQgaXQuCiAgKi8KIGludAotZXJybXNn KGNvbnN0IGNoYXIgKmZtdCwuLi4pCitlcnJtc2coY29uc3QgY2hhciAqZm10LCAuLi4pCiB7 CiAJRXJyb3JEYXRhICAqZWRhdGEgPSAmZXJyb3JkYXRhW2Vycm9yZGF0YV9zdGFja19kZXB0 aF07CiAJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwpAQCAtMTM0NSw3ICsxMzQ1LDcgQEAg YmFja3RyYWNlX2NsZWFudXAoaW50IGNvZGUsIERhdHVtIGFyZykKICAqIGVycm9yIHJlY3Vy c2lvbi4KICAqLwogaW50Ci1lcnJtc2dfaW50ZXJuYWwoY29uc3QgY2hhciAqZm10LC4uLikK K2Vycm1zZ19pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlFcnJvckRhdGEg ICplZGF0YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0YWNrX2RlcHRoXTsKIAlNZW1vcnlD b250ZXh0IG9sZGNvbnRleHQ7CkBAIC0xMzY5LDcgKzEzNjksNyBAQCBlcnJtc2dfaW50ZXJu YWwoY29uc3QgY2hhciAqZm10LC4uLikKICAqLwogaW50CiBlcnJtc2dfcGx1cmFsKGNvbnN0 IGNoYXIgKmZtdF9zaW5ndWxhciwgY29uc3QgY2hhciAqZm10X3BsdXJhbCwKLQkJCSAgdW5z aWduZWQgbG9uZyBuLC4uLikKKwkJCSAgdW5zaWduZWQgbG9uZyBuLCAuLi4pCiB7CiAJRXJy b3JEYXRhICAqZWRhdGEgPSAmZXJyb3JkYXRhW2Vycm9yZGF0YV9zdGFja19kZXB0aF07CiAJ TWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwpAQCAtMTM5MSw3ICsxMzkxLDcgQEAgZXJybXNn X3BsdXJhbChjb25zdCBjaGFyICpmbXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVy YWwsCiAgKiBlcnJkZXRhaWwgLS0tIGFkZCBhIGRldGFpbCBlcnJvciBtZXNzYWdlIHRleHQg dG8gdGhlIGN1cnJlbnQgZXJyb3IKICAqLwogaW50Ci1lcnJkZXRhaWwoY29uc3QgY2hhciAq Zm10LC4uLikKK2VycmRldGFpbChjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlFcnJvckRh dGEgICplZGF0YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0YWNrX2RlcHRoXTsKIAlNZW1v cnlDb250ZXh0IG9sZGNvbnRleHQ7CkBAIC0xNDE4LDcgKzE0MTgsNyBAQCBlcnJkZXRhaWwo Y29uc3QgY2hhciAqZm10LC4uLikKICAqICh0eXBpY2FsbHksIHRoYXQgdGhleSBkb24ndCBz ZWVtIHRvIGJlIHVzZWZ1bCB0byBhdmVyYWdlIHVzZXJzKS4KICAqLwogaW50Ci1lcnJkZXRh aWxfaW50ZXJuYWwoY29uc3QgY2hhciAqZm10LC4uLikKK2VycmRldGFpbF9pbnRlcm5hbChj b25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlFcnJvckRhdGEgICplZGF0YSA9ICZlcnJvcmRh dGFbZXJyb3JkYXRhX3N0YWNrX2RlcHRoXTsKIAlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7 CkBAIC0xNDM5LDcgKzE0MzksNyBAQCBlcnJkZXRhaWxfaW50ZXJuYWwoY29uc3QgY2hhciAq Zm10LC4uLikKICAqIGVycmRldGFpbF9sb2cgLS0tIGFkZCBhIGRldGFpbF9sb2cgZXJyb3Ig bWVzc2FnZSB0ZXh0IHRvIHRoZSBjdXJyZW50IGVycm9yCiAgKi8KIGludAotZXJyZGV0YWls X2xvZyhjb25zdCBjaGFyICpmbXQsLi4uKQorZXJyZGV0YWlsX2xvZyhjb25zdCBjaGFyICpm bXQsIC4uLikKIHsKIAlFcnJvckRhdGEgICplZGF0YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRh X3N0YWNrX2RlcHRoXTsKIAlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CkBAIC0xNDYxLDcg KzE0NjEsNyBAQCBlcnJkZXRhaWxfbG9nKGNvbnN0IGNoYXIgKmZtdCwuLi4pCiAgKi8KIGlu dAogZXJyZGV0YWlsX2xvZ19wbHVyYWwoY29uc3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25z dCBjaGFyICpmbXRfcGx1cmFsLAotCQkJCQkgdW5zaWduZWQgbG9uZyBuLC4uLikKKwkJCQkJ IHVuc2lnbmVkIGxvbmcgbiwgLi4uKQogewogCUVycm9yRGF0YSAgKmVkYXRhID0gJmVycm9y ZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4 dDsKQEAgLTE0ODQsNyArMTQ4NCw3IEBAIGVycmRldGFpbF9sb2dfcGx1cmFsKGNvbnN0IGNo YXIgKmZtdF9zaW5ndWxhciwgY29uc3QgY2hhciAqZm10X3BsdXJhbCwKICAqLwogaW50CiBl cnJkZXRhaWxfcGx1cmFsKGNvbnN0IGNoYXIgKmZtdF9zaW5ndWxhciwgY29uc3QgY2hhciAq Zm10X3BsdXJhbCwKLQkJCQkgdW5zaWduZWQgbG9uZyBuLC4uLikKKwkJCQkgdW5zaWduZWQg bG9uZyBuLCAuLi4pCiB7CiAJRXJyb3JEYXRhICAqZWRhdGEgPSAmZXJyb3JkYXRhW2Vycm9y ZGF0YV9zdGFja19kZXB0aF07CiAJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwpAQCAtMTUw NSw3ICsxNTA1LDcgQEAgZXJyZGV0YWlsX3BsdXJhbChjb25zdCBjaGFyICpmbXRfc2luZ3Vs YXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVyYWwsCiAgKiBlcnJoaW50IC0tLSBhZGQgYSBoaW50 IGVycm9yIG1lc3NhZ2UgdGV4dCB0byB0aGUgY3VycmVudCBlcnJvcgogICovCiBpbnQKLWVy cmhpbnQoY29uc3QgY2hhciAqZm10LC4uLikKK2VycmhpbnQoY29uc3QgY2hhciAqZm10LCAu Li4pCiB7CiAJRXJyb3JEYXRhICAqZWRhdGEgPSAmZXJyb3JkYXRhW2Vycm9yZGF0YV9zdGFj a19kZXB0aF07CiAJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwpAQCAtMTUyNyw3ICsxNTI3 LDcgQEAgZXJyaGludChjb25zdCBjaGFyICpmbXQsLi4uKQogICogTm9uLXRyYW5zbGF0ZWQg dmVyc2lvbiBvZiBlcnJoaW50KCksIHNlZSBhbHNvIGVycm1zZ19pbnRlcm5hbCgpLgogICov CiBpbnQKLWVycmhpbnRfaW50ZXJuYWwoY29uc3QgY2hhciAqZm10LC4uLikKK2VycmhpbnRf aW50ZXJuYWwoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJRXJyb3JEYXRhICAqZWRhdGEg PSAmZXJyb3JkYXRhW2Vycm9yZGF0YV9zdGFja19kZXB0aF07CiAJTWVtb3J5Q29udGV4dCBv bGRjb250ZXh0OwpAQCAtMTU0OSw3ICsxNTQ5LDcgQEAgZXJyaGludF9pbnRlcm5hbChjb25z dCBjaGFyICpmbXQsLi4uKQogICovCiBpbnQKIGVycmhpbnRfcGx1cmFsKGNvbnN0IGNoYXIg KmZtdF9zaW5ndWxhciwgY29uc3QgY2hhciAqZm10X3BsdXJhbCwKLQkJCSAgIHVuc2lnbmVk IGxvbmcgbiwuLi4pCisJCQkgICB1bnNpZ25lZCBsb25nIG4sIC4uLikKIHsKIAlFcnJvckRh dGEgICplZGF0YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0YWNrX2RlcHRoXTsKIAlNZW1v cnlDb250ZXh0IG9sZGNvbnRleHQ7CkBAIC0xNTc0LDcgKzE1NzQsNyBAQCBlcnJoaW50X3Bs dXJhbChjb25zdCBjaGFyICpmbXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVyYWws CiAgKiBzdGF0ZXMuCiAgKi8KIGludAotZXJyY29udGV4dF9tc2coY29uc3QgY2hhciAqZm10 LC4uLikKK2VycmNvbnRleHRfbXNnKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCUVycm9y RGF0YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwogCU1l bW9yeUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTE4NDYsNyArMTg0Niw3IEBAIHByZV9mb3Jt YXRfZWxvZ19zdHJpbmcoaW50IGVycm51bWJlciwgY29uc3QgY2hhciAqZG9tYWluKQogfQog CiBjaGFyICoKLWZvcm1hdF9lbG9nX3N0cmluZyhjb25zdCBjaGFyICpmbXQsLi4uKQorZm9y bWF0X2Vsb2dfc3RyaW5nKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCUVycm9yRGF0YQll cnJkYXRhOwogCUVycm9yRGF0YSAgKmVkYXRhOwpAQCAtNDIyMiw3ICs0MjIyLDcgQEAgYXBw ZW5kX3dpdGhfdGFicyhTdHJpbmdJbmZvIGJ1ZiwgY29uc3QgY2hhciAqc3RyKQogICogc2Fm ZWx5IChtZW1vcnkgY29udGV4dCwgR1VDIGxvYWQgZXRjKQogICovCiB2b2lkCi13cml0ZV9z dGRlcnIoY29uc3QgY2hhciAqZm10LC4uLikKK3dyaXRlX3N0ZGVycihjb25zdCBjaGFyICpm bXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvZXJyb3IvanNvbmxvZy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvanNvbmxv Zy5jCmluZGV4IDJmZjZhMDA0MDQ2Li5lNWJhMjI3OTRkMiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvZXJyb3IvanNvbmxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vy cm9yL2pzb25sb2cuYwpAQCAtMzAsNyArMzAsNyBAQAogCiBzdGF0aWMgdm9pZCBhcHBlbmRK U09OS2V5VmFsdWVGbXQoU3RyaW5nSW5mbyBidWYsIGNvbnN0IGNoYXIgKmtleSwKIAkJCQkJ CQkJICBib29sIGVzY2FwZV9rZXksCi0JCQkJCQkJCSAgY29uc3QgY2hhciAqZm10LC4uLikg cGdfYXR0cmlidXRlX3ByaW50Zig0LCA1KTsKKwkJCQkJCQkJICBjb25zdCBjaGFyICpmbXQs IC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zig0LCA1KTsKIAogLyoKICAqIGFwcGVuZEpTT05L ZXlWYWx1ZQpAQCAtNjgsNyArNjgsNyBAQCBhcHBlbmRKU09OS2V5VmFsdWUoU3RyaW5nSW5m byBidWYsIGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqdmFsdWUsCiAgKi8KIHN0YXRp YyB2b2lkCiBhcHBlbmRKU09OS2V5VmFsdWVGbXQoU3RyaW5nSW5mbyBidWYsIGNvbnN0IGNo YXIgKmtleSwKLQkJCQkJICBib29sIGVzY2FwZV9rZXksIGNvbnN0IGNoYXIgKmZtdCwuLi4p CisJCQkJCSAgYm9vbCBlc2NhcGVfa2V5LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlp bnQJCQlzYXZlX2Vycm5vID0gZXJybm87CiAJc2l6ZV90CQlsZW4gPSAxMjg7CQkvKiBpbml0 aWFsIGFzc3VtcHRpb24gYWJvdXQgYnVmZmVyIHNpemUgKi8KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5j CmluZGV4IGUxNTQ2ZDljOTdhLi43YTg3MmJmYTY5NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9ndWMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5j CkBAIC0yNjEsNyArMjYxLDcgQEAgc3RhdGljIGJvb2wgdmFsaWRfY3VzdG9tX3ZhcmlhYmxl X25hbWUoY29uc3QgY2hhciAqbmFtZSk7CiBzdGF0aWMgYm9vbCBhc3NpZ25hYmxlX2N1c3Rv bV92YXJpYWJsZV9uYW1lKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgc2tpcF9lcnJvcnMsCiAJ CQkJCQkJCQkJCWludCBlbGV2ZWwpOwogc3RhdGljIHZvaWQgZG9fc2VyaWFsaXplKGNoYXIg KipkZXN0cHRyLCBTaXplICptYXhieXRlcywKLQkJCQkJCSBjb25zdCBjaGFyICpmbXQsLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQpOworCQkJCQkJIGNvbnN0IGNoYXIgKmZtdCwg Li4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQpOwogc3RhdGljIGJvb2wgY2FsbF9ib29s X2NoZWNrX2hvb2soY29uc3Qgc3RydWN0IGNvbmZpZ19nZW5lcmljICpjb25mLCBib29sICpu ZXd2YWwsCiAJCQkJCQkJCSB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UsIGludCBl bGV2ZWwpOwogc3RhdGljIGJvb2wgY2FsbF9pbnRfY2hlY2tfaG9vayhjb25zdCBzdHJ1Y3Qg Y29uZmlnX2dlbmVyaWMgKmNvbmYsIGludCAqbmV3dmFsLApAQCAtNTg3Nyw3ICs1ODc3LDcg QEAgRXN0aW1hdGVHVUNTdGF0ZVNwYWNlKHZvaWQpCiAgKiBtYXhieXRlcyBpcyBub3Qgc3Vm ZmljaWVudCB0byBjb3B5IHRoZSBzdHJpbmcsIGVycm9yIG91dC4KICAqLwogc3RhdGljIHZv aWQKLWRvX3NlcmlhbGl6ZShjaGFyICoqZGVzdHB0ciwgU2l6ZSAqbWF4Ynl0ZXMsIGNvbnN0 IGNoYXIgKmZtdCwuLi4pCitkb19zZXJpYWxpemUoY2hhciAqKmRlc3RwdHIsIFNpemUgKm1h eGJ5dGVzLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQl2YXJnczsKIAlp bnQJCQluOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1 YnNjcmliZXIuYyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVy LmMKaW5kZXggMzc2MzFmNzAwYWYuLmJmYjY1NTI0M2Q2IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCisrKyBiL3NyYy9iaW4vcGdf YmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMKQEAgLTE1MiwxMiArMTUyLDEyIEBA IHN0YXRpYyB2b2lkIGRyb3BfZXhpc3Rpbmdfc3Vic2NyaXB0aW9uKFBHY29ubiAqY29ubiwg Y29uc3QgY2hhciAqc3VibmFtZSwKIHN0YXRpYyB2b2lkIGdldF9wdWJsaXNoZXJfZGF0YWJh c2VzKHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0LAogCQkJCQkJCQkJYm9v bCBkYm5hbWVzcGVjaWZpZWQpOwogc3RhdGljIHZvaWQgcmVwb3J0X2NyZWF0ZXN1Yl9sb2co ZW51bSBwZ19sb2dfbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQsCi0JCQkJCQkJCSBjb25zdCBj aGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQorCQkJCQkJCQkgY29uc3QgY2hhciAqcGdfcmVz dHJpY3QgZm10LCAuLi4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQpOwogc3RhdGlj IHZvaWQgcmVwb3J0X2NyZWF0ZXN1Yl9sb2dfdihlbnVtIHBnX2xvZ19sZXZlbCBsZXZlbCwg ZW51bSBwZ19sb2dfcGFydCBwYXJ0LAogCQkJCQkJCQkgICBjb25zdCBjaGFyICpwZ19yZXN0 cmljdCBmbXQsIHZhX2xpc3QgYXJncykKIAkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMywgMCk7 Ci1wZ19ub3JldHVybiBzdGF0aWMgdm9pZCByZXBvcnRfY3JlYXRlc3ViX2ZhdGFsKGNvbnN0 IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCitwZ19ub3JldHVybiBzdGF0aWMgdm9pZCBy ZXBvcnRfY3JlYXRlc3ViX2ZhdGFsKGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwgLi4u KQogCQkJcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIHN0YXRpYyB2b2lkIGludGVybmFs X2xvZ19maWxlX3dyaXRlKGVudW0gcGdfbG9nX2xldmVsIGxldmVsLAogCQkJCQkJCQkJZW51 bSBwZ19sb2dfcGFydCBwYXJ0LApAQCAtMjI0LDcgKzIyNCw3IEBAIHJlcG9ydF9jcmVhdGVz dWJfbG9nX3YoZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFy dCwKIAogc3RhdGljIHZvaWQKIHJlcG9ydF9jcmVhdGVzdWJfbG9nKGVudW0gcGdfbG9nX2xl dmVsIGxldmVsLCBlbnVtIHBnX2xvZ19wYXJ0IHBhcnQsCi0JCQkJCSBjb25zdCBjaGFyICpw Z19yZXN0cmljdCBmbXQsLi4uKQorCQkJCQkgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10 LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXJnczsKIApAQCAtMjM5LDcgKzIzOSw3IEBAIHJlcG9y dF9jcmVhdGVzdWJfbG9nKGVudW0gcGdfbG9nX2xldmVsIGxldmVsLCBlbnVtIHBnX2xvZ19w YXJ0IHBhcnQsCiAgKiBSZXBvcnQgYSBmYXRhbCBlcnJvciBhbmQgZXhpdAogICovCiBzdGF0 aWMgdm9pZAotcmVwb3J0X2NyZWF0ZXN1Yl9mYXRhbChjb25zdCBjaGFyICpwZ19yZXN0cmlj dCBmbXQsLi4uKQorcmVwb3J0X2NyZWF0ZXN1Yl9mYXRhbChjb25zdCBjaGFyICpwZ19yZXN0 cmljdCBmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcmdzOwogCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2NvbWJpbmViYWNrdXAvbG9hZF9tYW5pZmVzdC5jIGIvc3JjL2Jpbi9wZ19jb21i aW5lYmFja3VwL2xvYWRfbWFuaWZlc3QuYwppbmRleCAyZTUwYjdhZjRkMi4uMDIxZmQzZmZh MWQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY29tYmluZWJhY2t1cC9sb2FkX21hbmlmZXN0 LmMKKysrIGIvc3JjL2Jpbi9wZ19jb21iaW5lYmFja3VwL2xvYWRfbWFuaWZlc3QuYwpAQCAt NjksNyArNjksNyBAQCBzdGF0aWMgdm9pZCBjb21iaW5lYmFja3VwX3Blcl93YWxfcmFuZ2Vf Y2IoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0ICpjb250ZXh0LAogCQkJCQkJCQkJCSAgIFhM b2dSZWNQdHIgc3RhcnRfbHNuLAogCQkJCQkJCQkJCSAgIFhMb2dSZWNQdHIgZW5kX2xzbik7 CiBwZ19ub3JldHVybiBzdGF0aWMgdm9pZCByZXBvcnRfbWFuaWZlc3RfZXJyb3IoSnNvbk1h bmlmZXN0UGFyc2VDb250ZXh0ICpjb250ZXh0LAotCQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIg KmZtdCwuLi4pCisJCQkJCQkJCQkJCSAgY29uc3QgY2hhciAqZm10LCAuLi4pCiAJCQlwZ19h dHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiAvKgpAQCAtMjI1LDcgKzIyNSw3IEBAIGxvYWRf YmFja3VwX21hbmlmZXN0KGNoYXIgKmJhY2t1cF9kaXJlY3RvcnkpCiAgKiBleHBlY3RzIHRo aXMgZnVuY3Rpb24gbm90IHRvIHJldHVybi4KICAqLwogc3RhdGljIHZvaWQKLXJlcG9ydF9t YW5pZmVzdF9lcnJvcihKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsIGNvbnN0 IGNoYXIgKmZtdCwuLi4pCityZXBvcnRfbWFuaWZlc3RfZXJyb3IoSnNvbk1hbmlmZXN0UGFy c2VDb250ZXh0ICpjb250ZXh0LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0 CQlhcDsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMgYi9zcmMvYmlu L3BnX2N0bC9wZ19jdGwuYwppbmRleCAzY2M2MTQ1NWRjYi4uM2YwNjQ1ZTEwNDggMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfY3RsL3BnX2N0bC5jCisrKyBiL3NyYy9iaW4vcGdfY3RsL3Bn X2N0bC5jCkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIEhBTkRMRSBzaHV0ZG93bkhhbmRs ZXNbMl07CiAjZW5kaWYKIAogCi1zdGF0aWMgdm9pZCB3cml0ZV9zdGRlcnIoY29uc3QgY2hh ciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK3N0YXRpYyB2b2lkIHdy aXRlX3N0ZGVycihjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zigx LCAyKTsKIHN0YXRpYyB2b2lkIGRvX2FkdmljZSh2b2lkKTsKIHN0YXRpYyB2b2lkIGRvX2hl bHAodm9pZCk7CiBzdGF0aWMgdm9pZCBzZXRfbW9kZShjaGFyICptb2Rlb3B0KTsKQEAgLTIw MCw3ICsyMDAsNyBAQCB3cml0ZV9ldmVudGxvZyhpbnQgbGV2ZWwsIGNvbnN0IGNoYXIgKmxp bmUpCiAgKiBub3QgYXZhaWxhYmxlKS4KICAqLwogc3RhdGljIHZvaWQKLXdyaXRlX3N0ZGVy cihjb25zdCBjaGFyICpmbXQsLi4uKQord3JpdGVfc3RkZXJyKGNvbnN0IGNoYXIgKmZtdCwg Li4uKQogewogCXZhX2xpc3QJCWFwOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv ZmlsdGVyLmMgYi9zcmMvYmluL3BnX2R1bXAvZmlsdGVyLmMKaW5kZXggZmJmZjY5ZDRmN2Uu LjhhYTM4MTBjYjA4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvZmlsdGVyLmMKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL2ZpbHRlci5jCkBAIC0xNTEsNyArMTUxLDcgQEAgZ2V0X29i amVjdF90eXBlKGNvbnN0IGNoYXIgKmtleXdvcmQsIGludCBzaXplLCBGaWx0ZXJPYmplY3RU eXBlICpvYmp0eXBlKQogCiAKIHZvaWQKLXBnX2xvZ19maWx0ZXJfZXJyb3IoRmlsdGVyU3Rh dGVEYXRhICpmc3RhdGUsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwZ19sb2dfZmlsdGVyX2Vy cm9yKEZpbHRlclN0YXRlRGF0YSAqZnN0YXRlLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsK IAl2YV9saXN0CQlhcmdwOwogCWNoYXIJCWJ1ZlsyNTZdOwpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19kdW1wL2ZpbHRlci5oIGIvc3JjL2Jpbi9wZ19kdW1wL2ZpbHRlci5oCmluZGV4IGI4 N2NkNmRlYzU4Li4wY2YwZDIyZDE1OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2Zp bHRlci5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9maWx0ZXIuaApAQCAtNjMsNyArNjMsNyBA QCB0eXBlZGVmIGVudW0KIGV4dGVybiBjb25zdCBjaGFyICpmaWx0ZXJfb2JqZWN0X3R5cGVf bmFtZShGaWx0ZXJPYmplY3RUeXBlIGZvdCk7CiBleHRlcm4gdm9pZCBmaWx0ZXJfaW5pdChG aWx0ZXJTdGF0ZURhdGEgKmZzdGF0ZSwgY29uc3QgY2hhciAqZmlsZW5hbWUsIGV4aXRfZnVu Y3Rpb24gZl9leGl0KTsKIGV4dGVybiB2b2lkIGZpbHRlcl9mcmVlKEZpbHRlclN0YXRlRGF0 YSAqZnN0YXRlKTsKLWV4dGVybiB2b2lkIHBnX2xvZ19maWx0ZXJfZXJyb3IoRmlsdGVyU3Rh dGVEYXRhICpmc3RhdGUsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitleHRlcm4gdm9pZCBwZ19s b2dfZmlsdGVyX2Vycm9yKEZpbHRlclN0YXRlRGF0YSAqZnN0YXRlLCBjb25zdCBjaGFyICpm bXQsIC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiBleHRlcm4gYm9vbCBm aWx0ZXJfcmVhZF9pdGVtKEZpbHRlclN0YXRlRGF0YSAqZnN0YXRlLCBjaGFyICoqb2JqbmFt ZSwKIAkJCQkJCQkgRmlsdGVyQ29tbWFuZFR5cGUgKmNvbXR5cGUsIEZpbHRlck9iamVjdFR5 cGUgKm9ianR5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5o IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCmluZGV4IGZkYTkxMmJhMGE5Li4yOGU3 ZmY2ZmExNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaApAQCAtMzM5LDcgKzMzOSw3IEBAIGV4dGVy biB2b2lkIFNvcnRUb2NGcm9tRmlsZShBcmNoaXZlICpBSFgpOwogCiAvKiBDb252ZW5pZW5j ZSBmdW5jdGlvbnMgdXNlZCBvbmx5IHdoZW4gd3JpdGluZyBEQVRBICovCiBleHRlcm4gdm9p ZCBhcmNocHV0cyhjb25zdCBjaGFyICpzLCBBcmNoaXZlICpBSCk7Ci1leHRlcm4gaW50CWFy Y2hwcmludGYoQXJjaGl2ZSAqQUgsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0 ZV9wcmludGYoMiwgMyk7CitleHRlcm4gaW50CWFyY2hwcmludGYoQXJjaGl2ZSAqQUgsIGNv bnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiAjZGVm aW5lIGFwcGVuZFN0cmluZ0xpdGVyYWxBSChidWYsc3RyLEFIKSBcCiAJYXBwZW5kU3RyaW5n TGl0ZXJhbChidWYsIHN0ciwgKEFIKS0+ZW5jb2RpbmcsIChBSCktPnN0ZF9zdHJpbmdzKQpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IDI3MWEyYzNlNDgxLi44 Y2I2ZGEzODI4OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNo aXZlci5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAt MTY3Myw3ICsxNjczLDcgQEAgYXJjaHB1dHMoY29uc3QgY2hhciAqcywgQXJjaGl2ZSAqQUgp CiAKIC8qIFB1YmxpYyAqLwogaW50Ci1hcmNocHJpbnRmKEFyY2hpdmUgKkFILCBjb25zdCBj aGFyICpmbXQsLi4uKQorYXJjaHByaW50ZihBcmNoaXZlICpBSCwgY29uc3QgY2hhciAqZm10 LCAuLi4pCiB7CiAJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5vOwogCWNoYXIJICAgKnA7CkBA IC0xNzc3LDcgKzE3NzcsNyBAQCBSZXN0b3JlT3V0cHV0KEFyY2hpdmVIYW5kbGUgKkFILCBD b21wcmVzc0ZpbGVIYW5kbGUgKnNhdmVkT3V0cHV0KQogICoJUHJpbnQgZm9ybWF0dGVkIHRl eHQgdG8gdGhlIG91dHB1dCBmaWxlICh1c3VhbGx5IHN0ZG91dCkuCiAgKi8KIGludAotYWhw cmludGYoQXJjaGl2ZUhhbmRsZSAqQUgsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCithaHByaW50 ZihBcmNoaXZlSGFuZGxlICpBSCwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJ c2F2ZV9lcnJubyA9IGVycm5vOwogCWNoYXIJICAgKnA7CkBAIC0xOTE1LDcgKzE5MTUsNyBA QCBhaHdyaXRlKGNvbnN0IHZvaWQgKnB0ciwgc2l6ZV90IHNpemUsIHNpemVfdCBubWVtYiwg QXJjaGl2ZUhhbmRsZSAqQUgpCiAKIC8qIG9uIHNvbWUgZXJyb3IsIHdlIG1heSBkZWNpZGUg dG8gZ28gb24uLi4gKi8KIHZvaWQKLXdhcm5fb3JfZXhpdF9ob3JyaWJseShBcmNoaXZlSGFu ZGxlICpBSCwgY29uc3QgY2hhciAqZm10LC4uLikKK3dhcm5fb3JfZXhpdF9ob3JyaWJseShB cmNoaXZlSGFuZGxlICpBSCwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJ YXA7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIu aCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuaAppbmRleCAzNjUwNzNi M2VhZS4uYmZmOWFiMmQ5YWIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfYXJjaGl2ZXIuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVy LmgKQEAgLTM5Niw3ICszOTYsNyBAQCBleHRlcm4gaW50CXBhcmFsbGVsX3Jlc3RvcmUoQXJj aGl2ZUhhbmRsZSAqQUgsIFRvY0VudHJ5ICp0ZSk7CiBleHRlcm4gdm9pZCBvbl9leGl0X2Ns b3NlX2FyY2hpdmUoQXJjaGl2ZSAqQUhYKTsKIGV4dGVybiB2b2lkIHJlcGxhY2Vfb25fZXhp dF9jbG9zZV9hcmNoaXZlKEFyY2hpdmUgKkFIWCk7CiAKLWV4dGVybiB2b2lkIHdhcm5fb3Jf ZXhpdF9ob3JyaWJseShBcmNoaXZlSGFuZGxlICpBSCwgY29uc3QgY2hhciAqZm10LC4uLikg cGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK2V4dGVybiB2b2lkIHdhcm5fb3JfZXhpdF9o b3JyaWJseShBcmNoaXZlSGFuZGxlICpBSCwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0 dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIC8qIE9wdGlvbnMgZm9yIEFyY2hpdmVFbnRyeSAq LwogdHlwZWRlZiBzdHJ1Y3QgX2FyY2hpdmVPcHRzCkBAIC00NzQsNiArNDc0LDYgQEAgZXh0 ZXJuIHZvaWQgSXNzdWVBQ0xQZXJCbG9iKEFyY2hpdmVIYW5kbGUgKkFILCBUb2NFbnRyeSAq dGUpOwogZXh0ZXJuIHZvaWQgRHJvcExPSWZFeGlzdHMoQXJjaGl2ZUhhbmRsZSAqQUgsIE9p ZCBvaWQpOwogCiB2b2lkCQlhaHdyaXRlKGNvbnN0IHZvaWQgKnB0ciwgc2l6ZV90IHNpemUs IHNpemVfdCBubWVtYiwgQXJjaGl2ZUhhbmRsZSAqQUgpOwotaW50CQkJYWhwcmludGYoQXJj aGl2ZUhhbmRsZSAqQUgsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmlu dGYoMiwgMyk7CitpbnQJCQlhaHByaW50ZihBcmNoaXZlSGFuZGxlICpBSCwgY29uc3QgY2hh ciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKICNlbmRpZgpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF90YXIuYyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19iYWNrdXBfdGFyLmMKaW5kZXggZDk0ZDBkZTJhNWQuLmM4MTYyNDEwYWRmIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX3Rhci5jCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19iYWNrdXBfdGFyLmMKQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMg dm9pZCB0YXJDbG9zZShBcmNoaXZlSGFuZGxlICpBSCwgVEFSX01FTUJFUiAqdGgpOwogI2lm ZGVmIF9fTk9UX1VTRURfXwogc3RhdGljIGNoYXIgKnRhckdldHMoY2hhciAqYnVmLCBzaXpl X3QgbGVuLCBUQVJfTUVNQkVSICp0aCk7CiAjZW5kaWYKLXN0YXRpYyBpbnQJdGFyUHJpbnRm KFRBUl9NRU1CRVIgKnRoLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDIsIDMpOworc3RhdGljIGludAl0YXJQcmludGYoVEFSX01FTUJFUiAqdGgsIGNvbnN0 IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiBzdGF0aWMg dm9pZCBfdGFyQWRkRmlsZShBcmNoaXZlSGFuZGxlICpBSCwgVEFSX01FTUJFUiAqdGgpOwog c3RhdGljIFRBUl9NRU1CRVIgKl90YXJQb3NpdGlvblRvKEFyY2hpdmVIYW5kbGUgKkFILCBj b25zdCBjaGFyICpmaWxlbmFtZSk7CkBAIC05NTEsNyArOTUxLDcgQEAgX0VuZExPcyhBcmNo aXZlSGFuZGxlICpBSCwgVG9jRW50cnkgKnRlKQogICovCiAKIHN0YXRpYyBpbnQKLXRhclBy aW50ZihUQVJfTUVNQkVSICp0aCwgY29uc3QgY2hhciAqZm10LC4uLikKK3RhclByaW50ZihU QVJfTUVNQkVSICp0aCwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJc2F2ZV9l cnJubyA9IGVycm5vOwogCWNoYXIJICAgKnA7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Vw Z3JhZGUvZXhlYy5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2V4ZWMuYwppbmRleCBlMWRlNjFm MzZlZS4uNTYzYjRhNmI1ZmEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9leGVj LmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2V4ZWMuYwpAQCAtODQsNyArODQsNyBAQCBn ZXRfYmluX3ZlcnNpb24oQ2x1c3RlckluZm8gKmNsdXN0ZXIpCiAgKi8KIGJvb2wKIGV4ZWNf cHJvZyhjb25zdCBjaGFyICpsb2dfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKm9wdF9sb2dfZmls ZSwKLQkJICBib29sIHJlcG9ydF9lcnJvciwgYm9vbCBleGl0X29uX2Vycm9yLCBjb25zdCBj aGFyICpmbXQsLi4uKQorCQkgIGJvb2wgcmVwb3J0X2Vycm9yLCBib29sIGV4aXRfb25fZXJy b3IsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWludAkJCXJlc3VsdCA9IDA7CiAJaW50 CQkJd3JpdHRlbjsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wYXJhbGxlbC5j IGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BhcmFsbGVsLmMKaW5kZXggZjA0MDZkZTg0ZWUuLmY1 N2RiYmJiODUzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGFyYWxsZWwuYwor KysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGFyYWxsZWwuYwpAQCAtNjEsNyArNjEsNyBAQCBE V09SRAkJd2luMzJfdHJhbnNmZXJfYWxsX25ld19kYnModHJhbnNmZXJfdGhyZWFkX2FyZyAq YXJncyk7CiAgKi8KIHZvaWQKIHBhcmFsbGVsX2V4ZWNfcHJvZyhjb25zdCBjaGFyICpsb2df ZmlsZSwgY29uc3QgY2hhciAqb3B0X2xvZ19maWxlLAotCQkJCSAgIGNvbnN0IGNoYXIgKmZt dCwuLi4pCisJCQkJICAgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXJn czsKIAljaGFyCQljbWRbTUFYX1NUUklOR107CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Vw Z3JhZGUvcGdfdXBncmFkZS5oIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaApp bmRleCAxZDc2N2JiZGEyZC4uMzMwODE4YzhlYjAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf dXBncmFkZS9wZ191cGdyYWRlLmgKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3Jh ZGUuaApAQCAtNDE0LDcgKzQxNCw3IEBAIHZvaWQJCWdlbmVyYXRlX29sZF9kdW1wKHZvaWQp OwogI2RlZmluZSBFWEVDX1BTUUxfQVJHUyAiLS1lY2hvLXF1ZXJpZXMgLS1zZXQgT05fRVJS T1JfU1RPUD1vbiAtLW5vLXBzcWxyYyAtLWRibmFtZT10ZW1wbGF0ZTEiCiAKIGJvb2wJCWV4 ZWNfcHJvZyhjb25zdCBjaGFyICpsb2dfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKm9wdF9sb2df ZmlsZSwKLQkJCQkJICBib29sIHJlcG9ydF9lcnJvciwgYm9vbCBleGl0X29uX2Vycm9yLCBj b25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDUsIDYpOworCQkJCQkg IGJvb2wgcmVwb3J0X2Vycm9yLCBib29sIGV4aXRfb25fZXJyb3IsIGNvbnN0IGNoYXIgKmZt dCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDUsIDYpOwogdm9pZAkJdmVyaWZ5X2RpcmVj dG9yaWVzKHZvaWQpOwogYm9vbAkJcGlkX2xvY2tfZmlsZV9leGlzdHMoY29uc3QgY2hhciAq ZGF0YWRpcik7CiAKQEAgLTQ3NCw3ICs0NzQsNyBAQCB2b2lkCQlpbml0X3RhYmxlc3BhY2Vz KHZvaWQpOwogLyogc2VydmVyLmMgKi8KIAogUEdjb25uCSAgICpjb25uZWN0VG9TZXJ2ZXIo Q2x1c3RlckluZm8gKmNsdXN0ZXIsIGNvbnN0IGNoYXIgKmRiX25hbWUpOwotUEdyZXN1bHQg ICAqZXhlY3V0ZVF1ZXJ5T3JEaWUoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpmbXQsLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworUEdyZXN1bHQgICAqZXhlY3V0ZVF1ZXJ5 T3JEaWUoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRl X3ByaW50ZigyLCAzKTsKIAogY2hhcgkgICAqY2x1c3Rlcl9jb25uX29wdHMoQ2x1c3Rlcklu Zm8gKmNsdXN0ZXIpOwogCkBAIC00ODgsMTMgKzQ4OCwxMyBAQCB2b2lkCQljaGVja19wZ2hv c3RfZW52dmFyKHZvaWQpOwogY2hhcgkgICAqcXVvdGVfaWRlbnRpZmllcihjb25zdCBjaGFy ICpzKTsKIGludAkJCWdldF91c2VyX2luZm8oY2hhciAqKnVzZXJfbmFtZV9wKTsKIHZvaWQJ CWNoZWNrX29rKHZvaWQpOwotdm9pZAkJcmVwb3J0X3N0YXR1cyhlTG9nVHlwZSB0eXBlLCBj b25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwotdm9pZAkJ cGdfbG9nKGVMb2dUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0 ZV9wcmludGYoMiwgMyk7Ci1wZ19ub3JldHVybiB2b2lkIHBnX2ZhdGFsKGNvbnN0IGNoYXIg KmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7Cit2b2lkCQlyZXBvcnRfc3Rh dHVzKGVMb2dUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVf cHJpbnRmKDIsIDMpOwordm9pZAkJcGdfbG9nKGVMb2dUeXBlIHR5cGUsIGNvbnN0IGNoYXIg KmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworcGdfbm9yZXR1cm4gdm9p ZCBwZ19mYXRhbChjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zigx LCAyKTsKIHZvaWQJCWVuZF9wcm9ncmVzc19vdXRwdXQodm9pZCk7CiB2b2lkCQljbGVhbnVw X291dHB1dF9kaXJzKHZvaWQpOwotdm9pZAkJcHJlcF9zdGF0dXMoY29uc3QgY2hhciAqZm10 LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKLXZvaWQJCXByZXBfc3RhdHVzX3By b2dyZXNzKGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7 Cit2b2lkCQlwcmVwX3N0YXR1cyhjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRl X3ByaW50ZigxLCAyKTsKK3ZvaWQJCXByZXBfc3RhdHVzX3Byb2dyZXNzKGNvbnN0IGNoYXIg KmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogdW5zaWduZWQgaW50IHN0 cjJ1aW50KGNvbnN0IGNoYXIgKnN0cik7CiAKIApAQCAtNTEyLDcgKzUxMiw3IEBAIE11bHRp WGFjdE9mZnNldCByZXdyaXRlX211bHRpeGFjdHMoTXVsdGlYYWN0SWQgZnJvbV9tdWx0aSwg TXVsdGlYYWN0SWQgdG9fbXVsdGkpCiAKIC8qIHBhcmFsbGVsLmMgKi8KIHZvaWQJCXBhcmFs bGVsX2V4ZWNfcHJvZyhjb25zdCBjaGFyICpsb2dfZmlsZSwgY29uc3QgY2hhciAqb3B0X2xv Z19maWxlLAotCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoMywgNCk7CisJCQkJCQkJICAgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJp YnV0ZV9wcmludGYoMywgNCk7CiB2b2lkCQlwYXJhbGxlbF90cmFuc2Zlcl9hbGxfbmV3X2Ri cyhEYkluZm9BcnIgKm9sZF9kYl9hcnIsIERiSW5mb0FyciAqbmV3X2RiX2FyciwKIAkJCQkJ CQkJCQkgIGNoYXIgKm9sZF9wZ2RhdGEsIGNoYXIgKm5ld19wZ2RhdGEsCiAJCQkJCQkJCQkJ ICBjaGFyICpvbGRfdGFibGVzcGFjZSwgY2hhciAqbmV3X3RhYmxlc3BhY2UpOwpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3NlcnZlci5jIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3NlcnZlci5jCmluZGV4IDFlYjhiYzk3YzA1Li41ZDgxZTRlOTViOCAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ191cGdyYWRlL3NlcnZlci5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9z ZXJ2ZXIuYwpAQCAtMTIxLDcgKzEyMSw3IEBAIGNsdXN0ZXJfY29ubl9vcHRzKENsdXN0ZXJJ bmZvICpjbHVzdGVyKQogICoJbWVzc2FnZSBhbmQgY2FsbHMgZXhpdCgpIHRvIGtpbGwgdGhl IHByb2dyYW0uCiAgKi8KIFBHcmVzdWx0ICoKLWV4ZWN1dGVRdWVyeU9yRGllKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqZm10LC4uLikKK2V4ZWN1dGVRdWVyeU9yRGllKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJc3RhdGljIGNoYXIgcXVlcnlbUVVF UllfQUxMT0NdOwogCXZhX2xpc3QJCWFyZ3M7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Vw Z3JhZGUvdXRpbC5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3V0aWwuYwppbmRleCAwZjQ3ZWQ3 NzFkNS4uMDhkNjM4NWI1MTIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS91dGls LmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3V0aWwuYwpAQCAtMjksNyArMjksNyBAQCBz dGF0aWMgdm9pZCBwZ19sb2dfdihlTG9nVHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsIHZh X2xpc3QgYXApIHBnX2F0dHJpYnV0ZV9wcgogICoJcmVzdWx0cyBhbmQgb3RoZXIgbWVzc2Fn ZXMuCiAgKi8KIHZvaWQKLXJlcG9ydF9zdGF0dXMoZUxvZ1R5cGUgdHlwZSwgY29uc3QgY2hh ciAqZm10LC4uLikKK3JlcG9ydF9zdGF0dXMoZUxvZ1R5cGUgdHlwZSwgY29uc3QgY2hhciAq Zm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXJnczsKIApAQCAtMTI2LDcgKzEyNiw3IEBAIGNs ZWFudXBfb3V0cHV0X2RpcnModm9pZCkKICAqCQkgIHBnX2xvZyhQR19GQVRBTCwgImZhaWxl ZDogJXMiLCBtZXNzYWdlKTsKICAqLwogdm9pZAotcHJlcF9zdGF0dXMoY29uc3QgY2hhciAq Zm10LC4uLikKK3ByZXBfc3RhdHVzKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xp c3QJCWFyZ3M7CiAJY2hhcgkJbWVzc2FnZVtNQVhfU1RSSU5HXTsKQEAgLTE1Myw3ICsxNTMs NyBAQCBwcmVwX3N0YXR1cyhjb25zdCBjaGFyICpmbXQsLi4uKQogICogICByZXBvcnRfc3Rh dHVzKFBHX1JFUE9SVCwgIm9rIik7CiAgKi8KIHZvaWQKLXByZXBfc3RhdHVzX3Byb2dyZXNz KGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwcmVwX3N0YXR1c19wcm9ncmVzcyhjb25zdCBjaGFy ICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcmdzOwogCWNoYXIJCW1lc3NhZ2VbTUFYX1NU UklOR107CkBAIC0yNTYsNyArMjU2LDcgQEAgcGdfbG9nX3YoZUxvZ1R5cGUgdHlwZSwgY29u c3QgY2hhciAqZm10LCB2YV9saXN0IGFwKQogCiAKIHZvaWQKLXBnX2xvZyhlTG9nVHlwZSB0 eXBlLCBjb25zdCBjaGFyICpmbXQsLi4uKQorcGdfbG9nKGVMb2dUeXBlIHR5cGUsIGNvbnN0 IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFyZ3M7CiAKQEAgLTI2Nyw3ICsyNjcs NyBAQCBwZ19sb2coZUxvZ1R5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LC4uLikKIAogCiB2 b2lkCi1wZ19mYXRhbChjb25zdCBjaGFyICpmbXQsLi4uKQorcGdfZmF0YWwoY29uc3QgY2hh ciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXJnczsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMgYi9zcmMvYmluL3BnX3Zlcmlm eWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYwppbmRleCBiNjBhYjg3MzlkNS4uYmQ5ODgzMjQ0 ZDcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1 cC5jCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5jCkBA IC03MSw3ICs3MSw3IEBAIHN0YXRpYyB2b2lkIHZlcmlmeWJhY2t1cF9wZXJfd2FsX3Jhbmdl X2NiKEpzb25NYW5pZmVzdFBhcnNlQ29udGV4dCAqY29udGV4dCwKIAkJCQkJCQkJCQkgIFhM b2dSZWNQdHIgc3RhcnRfbHNuLAogCQkJCQkJCQkJCSAgWExvZ1JlY1B0ciBlbmRfbHNuKTsK IHBnX25vcmV0dXJuIHN0YXRpYyB2b2lkIHJlcG9ydF9tYW5pZmVzdF9lcnJvcihKc29uTWFu aWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsCi0JCQkJCQkJCQkJCSAgY29uc3QgY2hhciAq Zm10LC4uLikKKwkJCQkJCQkJCQkJICBjb25zdCBjaGFyICpmbXQsIC4uLikKIAkJCXBnX2F0 dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIHN0YXRpYyB2b2lkIHZlcmlmeV90YXJfYmFja3Vw KHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIERJUiAqZGlyLApAQCAtNTIxLDcgKzUyMSw3 IEBAIHBhcnNlX21hbmlmZXN0X2ZpbGUoY2hhciAqbWFuaWZlc3RfcGF0aCkKICAqIGV4cGVj dHMgdGhpcyBmdW5jdGlvbiBub3QgdG8gcmV0dXJuLgogICovCiBzdGF0aWMgdm9pZAotcmVw b3J0X21hbmlmZXN0X2Vycm9yKEpzb25NYW5pZmVzdFBhcnNlQ29udGV4dCAqY29udGV4dCwg Y29uc3QgY2hhciAqZm10LC4uLikKK3JlcG9ydF9tYW5pZmVzdF9lcnJvcihKc29uTWFuaWZl c3RQYXJzZUNvbnRleHQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZh X2xpc3QJCWFwOwogCkBAIC0xMjUwLDcgKzEyNTAsNyBAQCBwYXJzZV9yZXF1aXJlZF93YWwo dmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hhciAqcGdfd2FsZHVtcF9wYXRoLAogICog Y29udGV4dCBzYXlzIHdlIHNob3VsZC4KICAqLwogdm9pZAotcmVwb3J0X2JhY2t1cF9lcnJv cih2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBm bXQsLi4uKQorcmVwb3J0X2JhY2t1cF9lcnJvcih2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0 LCBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcDsK IApAQCAtMTI2Nyw3ICsxMjY3LDcgQEAgcmVwb3J0X2JhY2t1cF9lcnJvcih2ZXJpZmllcl9j b250ZXh0ICpjb250ZXh0LCBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQogICog UmVwb3J0IGEgZmF0YWwgZXJyb3IgYW5kIGV4aXQKICAqLwogdm9pZAotcmVwb3J0X2ZhdGFs X2Vycm9yKGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCityZXBvcnRfZmF0YWxf ZXJyb3IoY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJ YXA7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJh Y2t1cC5oIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmgKaW5k ZXggYTk5ZDliZmQ1ODEuLjg1NzJjMTQzM2RjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Zl cmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuaAorKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJh Y2t1cC9wZ192ZXJpZnliYWNrdXAuaApAQCAtOTYsOSArOTYsOSBAQCB0eXBlZGVmIHN0cnVj dCB2ZXJpZmllcl9jb250ZXh0CiB9IHZlcmlmaWVyX2NvbnRleHQ7CiAKIGV4dGVybiB2b2lk IHJlcG9ydF9iYWNrdXBfZXJyb3IodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwKLQkJCQkJ CQkJY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikKKwkJCQkJCQkJY29uc3QgY2hh ciAqcGdfcmVzdHJpY3QgZm10LCAuLi4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMp OwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgcmVwb3J0X2ZhdGFsX2Vycm9yKGNvbnN0IGNo YXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCitwZ19ub3JldHVybiBleHRlcm4gdm9pZCByZXBv cnRfZmF0YWxfZXJyb3IoY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LCAuLi4pCiAJCQlw Z19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogZXh0ZXJuIGJvb2wgc2hvdWxkX2lnbm9yZV9y ZWxwYXRoKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCSAgY29uc3QgY2hh ciAqcmVscGF0aCk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbHN1bW1hcnkvcGdfd2Fs c3VtbWFyeS5jIGIvc3JjL2Jpbi9wZ193YWxzdW1tYXJ5L3BnX3dhbHN1bW1hcnkuYwppbmRl eCBhYTIxNGI4NjE2ZC4uYzNlOThmZmU1NWUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2Fs c3VtbWFyeS9wZ193YWxzdW1tYXJ5LmMKKysrIGIvc3JjL2Jpbi9wZ193YWxzdW1tYXJ5L3Bn X3dhbHN1bW1hcnkuYwpAQCAtNDMsNyArNDMsNyBAQCBzdGF0aWMgdm9pZCBoZWxwKGNvbnN0 IGNoYXIgKnByb2duYW1lKTsKIHN0YXRpYyBpbnQJY29tcGFyZV9ibG9ja19udW1iZXJzKGNv bnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpOwogc3RhdGljIGludAl3YWxzdW1tYXJ5X3Jl YWRfY2FsbGJhY2sodm9pZCAqY2FsbGJhY2tfYXJnLCB2b2lkICpkYXRhLAogCQkJCQkJCQkJ IGludCBsZW5ndGgpOwotc3RhdGljIHZvaWQgd2Fsc3VtbWFyeV9lcnJvcl9jYWxsYmFjayh2 b2lkICpjYWxsYmFja19hcmcsIGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYo MiwgMyk7CitzdGF0aWMgdm9pZCB3YWxzdW1tYXJ5X2Vycm9yX2NhbGxiYWNrKHZvaWQgKmNh bGxiYWNrX2FyZywgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7 CiAKIC8qCiAgKiBNYWluIHByb2dyYW0uCkBAIC0yMjcsNyArMjI3LDcgQEAgY29tcGFyZV9i bG9ja19udW1iZXJzKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCiAgKiBFcnJvciBj YWxsYmFjay4KICAqLwogdm9pZAotd2Fsc3VtbWFyeV9lcnJvcl9jYWxsYmFjayh2b2lkICpj YWxsYmFja19hcmcsIGNoYXIgKmZtdCwuLi4pCit3YWxzdW1tYXJ5X2Vycm9yX2NhbGxiYWNr KHZvaWQgKmNhbGxiYWNrX2FyZywgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7 CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9sYXJnZV9vYmouYyBiL3NyYy9iaW4vcHNx bC9sYXJnZV9vYmouYwppbmRleCAwMjFmNzhlMGY3OC4uYzk2MTMwMGZlOTggMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9sYXJnZV9vYmouYworKysgYi9zcmMvYmluL3BzcWwvbGFyZ2Vf b2JqLmMKQEAgLTEzLDEwICsxMywxMCBAQAogI2luY2x1ZGUgImxhcmdlX29iai5oIgogI2lu Y2x1ZGUgInNldHRpbmdzLmgiCiAKLXN0YXRpYyB2b2lkIHByaW50X2xvX3Jlc3VsdChjb25z dCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworc3RhdGljIHZv aWQgcHJpbnRfbG9fcmVzdWx0KGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVf cHJpbnRmKDEsIDIpOwogCiBzdGF0aWMgdm9pZAotcHJpbnRfbG9fcmVzdWx0KGNvbnN0IGNo YXIgKmZtdCwuLi4pCitwcmludF9sb19yZXN1bHQoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7 CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA1M2JmMWUy MTcyMS4uMzQwODBmNmJkMTQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTE2ODgs NyArMTY4OCw3IEBAIFRhaWxNYXRjaGVzQXJyYXkoYm9vbCBjYXNlX3NlbnNpdGl2ZSwKIHN0 YXRpYyBib29sCiBUYWlsTWF0Y2hlc0ltcGwoYm9vbCBjYXNlX3NlbnNpdGl2ZSwKIAkJCQlp bnQgcHJldmlvdXNfd29yZHNfY291bnQsIGNoYXIgKipwcmV2aW91c193b3JkcywKLQkJCQlp bnQgbmFyZywuLi4pCisJCQkJaW50IG5hcmcsIC4uLikKIHsKIAljb25zdCBjaGFyICphcmdh cnJheVs2NF07CiAJdmFfbGlzdAkJYXJnczsKQEAgLTE3MzgsNyArMTczOCw3IEBAIEhlYWRN YXRjaGVzQXJyYXkoYm9vbCBjYXNlX3NlbnNpdGl2ZSwKIHN0YXRpYyBib29sCiBIZWFkTWF0 Y2hlc0ltcGwoYm9vbCBjYXNlX3NlbnNpdGl2ZSwKIAkJCQlpbnQgcHJldmlvdXNfd29yZHNf Y291bnQsIGNoYXIgKipwcmV2aW91c193b3JkcywKLQkJCQlpbnQgbmFyZywuLi4pCisJCQkJ aW50IG5hcmcsIC4uLikKIHsKIAljb25zdCBjaGFyICphcmdhcnJheVs2NF07CiAJdmFfbGlz dAkJYXJnczsKQEAgLTE4MjUsNyArMTgyNSw3IEBAIE1hdGNoZXNBcnJheShib29sIGNhc2Vf c2Vuc2l0aXZlLAogc3RhdGljIGJvb2wKIE1hdGNoZXNJbXBsKGJvb2wgY2FzZV9zZW5zaXRp dmUsCiAJCQlpbnQgcHJldmlvdXNfd29yZHNfY291bnQsIGNoYXIgKipwcmV2aW91c193b3Jk cywKLQkJCWludCBuYXJnLC4uLikKKwkJCWludCBuYXJnLCAuLi4pCiB7CiAJY29uc3QgY2hh ciAqYXJnYXJyYXlbNjRdOwogCXZhX2xpc3QJCWFyZ3M7CmRpZmYgLS1naXQgYS9zcmMvY29t bW9uL2xvZ2dpbmcuYyBiL3NyYy9jb21tb24vbG9nZ2luZy5jCmluZGV4IDUyMDY5NDllNWQ4 Li5iZmQ3ZTUwNzZiYyAxMDA2NDQKLS0tIGEvc3JjL2NvbW1vbi9sb2dnaW5nLmMKKysrIGIv c3JjL2NvbW1vbi9sb2dnaW5nLmMKQEAgLTIwNiw3ICsyMDYsNyBAQCBwZ19sb2dnaW5nX3Nl dF9sb2N1c19jYWxsYmFjayh2b2lkICgqY2IpIChjb25zdCBjaGFyICoqZmlsZW5hbWUsIHVp bnQ2NCAqbGluZW5vKQogCiB2b2lkCiBwZ19sb2dfZ2VuZXJpYyhlbnVtIHBnX2xvZ19sZXZl bCBsZXZlbCwgZW51bSBwZ19sb2dfcGFydCBwYXJ0LAotCQkJICAgY29uc3QgY2hhciAqcGdf cmVzdHJpY3QgZm10LC4uLikKKwkJCSAgIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwg Li4uKQogewogCXZhX2xpc3QJCWFwOwogCmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL3BlcmNl bnRyZXBsLmMgYi9zcmMvY29tbW9uL3BlcmNlbnRyZXBsLmMKaW5kZXggNTI1YTViYTZjZjAu LjcwYmJmYWJkMTE3IDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL3BlcmNlbnRyZXBsLmMKKysr IGIvc3JjL2NvbW1vbi9wZXJjZW50cmVwbC5jCkBAIC01Niw3ICs1Niw3IEBACiAgKiByZXZp c2VkLgogICovCiBjaGFyICoKLXJlcGxhY2VfcGVyY2VudF9wbGFjZWhvbGRlcnMoY29uc3Qg Y2hhciAqaW5zdHIsIGNvbnN0IGNoYXIgKnBhcmFtX25hbWUsIGNvbnN0IGNoYXIgKmxldHRl cnMsLi4uKQorcmVwbGFjZV9wZXJjZW50X3BsYWNlaG9sZGVycyhjb25zdCBjaGFyICppbnN0 ciwgY29uc3QgY2hhciAqcGFyYW1fbmFtZSwgY29uc3QgY2hhciAqbGV0dGVycywgLi4uKQog ewogCVN0cmluZ0luZm9EYXRhIHJlc3VsdDsKIApkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9w c3ByaW50Zi5jIGIvc3JjL2NvbW1vbi9wc3ByaW50Zi5jCmluZGV4IDZmMDA2ZTAyNjJmLi4y OWIwOTczMmE1YSAxMDA2NDQKLS0tIGEvc3JjL2NvbW1vbi9wc3ByaW50Zi5jCisrKyBiL3Ny Yy9jb21tb24vcHNwcmludGYuYwpAQCAtNDAsNyArNDAsNyBAQAogICogT25lIHNob3VsZCB0 aGVyZWZvcmUgdGhpbmsgdHdpY2UgYWJvdXQgdXNpbmcgdGhpcyBpbiBsaWJwcS4KICAqLwog Y2hhciAqCi1wc3ByaW50Zihjb25zdCBjaGFyICpmbXQsLi4uKQorcHNwcmludGYoY29uc3Qg Y2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5vOwogCXNpemVf dAkJbGVuID0gMTI4OwkJLyogaW5pdGlhbCBhc3N1bXB0aW9uIGFib3V0IGJ1ZmZlciBzaXpl ICovCmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL3N0cmluZ2luZm8uYyBiL3NyYy9jb21tb24v c3RyaW5naW5mby5jCmluZGV4IGFlMzk1NDBlNDY4Li40Njg5NTRlNDg0ZSAxMDA2NDQKLS0t IGEvc3JjL2NvbW1vbi9zdHJpbmdpbmZvLmMKKysrIGIvc3JjL2NvbW1vbi9zdHJpbmdpbmZv LmMKQEAgLTE0Miw3ICsxNDIsNyBAQCByZXNldFN0cmluZ0luZm8oU3RyaW5nSW5mbyBzdHIp CiAgKiBzdHJjYXQuCiAgKi8KIHZvaWQKLWFwcGVuZFN0cmluZ0luZm8oU3RyaW5nSW5mbyBz dHIsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCithcHBlbmRTdHJpbmdJbmZvKFN0cmluZ0luZm8g c3RyLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlzYXZlX2Vycm5vID0gZXJy bm87CiAKZGlmZiAtLWdpdCBhL3NyYy9mZV91dGlscy9vcHRpb25fdXRpbHMuYyBiL3NyYy9m ZV91dGlscy9vcHRpb25fdXRpbHMuYwppbmRleCA4ZDA2NTljMTE2NC4uYzhiYmEwNzVjMWYg MTAwNjQ0Ci0tLSBhL3NyYy9mZV91dGlscy9vcHRpb25fdXRpbHMuYworKysgYi9zcmMvZmVf dXRpbHMvb3B0aW9uX3V0aWxzLmMKQEAgLTEyMiw3ICsxMjIsNyBAQCBwYXJzZV9zeW5jX21l dGhvZChjb25zdCBjaGFyICpvcHRhcmcsIERhdGFEaXJTeW5jTWV0aG9kICpzeW5jX21ldGhv ZCkKICAqIHBhcmFtZXRlciAoaXQgZGlzY292ZXJzIHRoZSBudW1iZXIgb2YgYXJndW1lbnRz IGF1dG9tYWdpY2FsbHkpLgogICovCiB2b2lkCi1jaGVja19tdXRfZXhjbF9vcHRzX2ludGVy bmFsKGludCBuLC4uLikKK2NoZWNrX211dF9leGNsX29wdHNfaW50ZXJuYWwoaW50IG4sIC4u LikKIHsKIAljaGFyCSAgICpmaXJzdCA9IE5VTEw7CiAJdmFfbGlzdAkJYXJnczsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9hbXZhbGlkYXRlLmggYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvYW12YWxpZGF0ZS5oCmluZGV4IGI4Mjk5ODc3OGFjLi5kZWJkMWVkMzdhNCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3MvYW12YWxpZGF0ZS5oCkBAIC0yOSw3ICsyOSw3IEBAIHR5cGVkZWYgc3Ry dWN0IE9wRmFtaWx5T3BGdW5jR3JvdXAKIC8qIEZ1bmN0aW9ucyBpbiBhY2Nlc3MvaW5kZXgv YW12YWxpZGF0ZS5jICovCiBleHRlcm4gTGlzdCAqaWRlbnRpZnlfb3BmYW1pbHlfZ3JvdXBz KENhdENMaXN0ICpvcHJsaXN0LCBDYXRDTGlzdCAqcHJvY2xpc3QpOwogZXh0ZXJuIGJvb2wg Y2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBl eGFjdCwKLQkJCQkJCQkJICAgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLik7CisJCQkJ CQkJCSAgIGludCBtaW5hcmdzLCBpbnQgbWF4YXJncywgLi4uKTsKIGV4dGVybiBib29sIGNo ZWNrX2Ftb3B0c3Byb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQpOwogZXh0ZXJuIGJvb2wgY2hl Y2tfYW1vcF9zaWduYXR1cmUoT2lkIG9wbm8sIE9pZCByZXN0eXBlLAogCQkJCQkJCQkgT2lk IGxlZnR0eXBlLCBPaWQgcmlnaHR0eXBlKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Jh Y2t1cC93YWxzdW1tYXJ5LmggYi9zcmMvaW5jbHVkZS9iYWNrdXAvd2Fsc3VtbWFyeS5oCmlu ZGV4IDYwMTU3ZTBhYzUwLi4wOTNiNDJkZjQ3MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YmFja3VwL3dhbHN1bW1hcnkuaAorKysgYi9zcmMvaW5jbHVkZS9iYWNrdXAvd2Fsc3VtbWFy eS5oCkBAIC00NCw2ICs0NCw2IEBAIGV4dGVybiB2b2lkIFJlbW92ZVdhbFN1bW1hcnlJZk9s ZGVyVGhhbihXYWxTdW1tYXJ5RmlsZSAqd3MsCiAKIGV4dGVybiBpbnQJUmVhZFdhbFN1bW1h cnkodm9pZCAqd2FsX3N1bW1hcnlfaW8sIHZvaWQgKmRhdGEsIGludCBsZW5ndGgpOwogZXh0 ZXJuIGludAlXcml0ZVdhbFN1bW1hcnkodm9pZCAqd2FsX3N1bW1hcnlfaW8sIHZvaWQgKmRh dGEsIGludCBsZW5ndGgpOwotZXh0ZXJuIHZvaWQgUmVwb3J0V2FsU3VtbWFyeUVycm9yKHZv aWQgKmNhbGxiYWNrX2FyZywgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zigy LCAzKTsKK2V4dGVybiB2b2lkIFJlcG9ydFdhbFN1bW1hcnlFcnJvcih2b2lkICpjYWxsYmFj a19hcmcsIGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiAj ZW5kaWYJCQkJCQkJLyogV0FMU1VNTUFSWV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jb21tb24vYmxrcmVmdGFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1vbi9ibGtyZWZ0YWJs ZS5oCmluZGV4IGI1YjU1MTdmNjYwLi40MmIxMWIwYTJiMSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY29tbW9uL2Jsa3JlZnRhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbW9uL2Js a3JlZnRhYmxlLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQmxvY2tSZWZU YWJsZVdyaXRlciBCbG9ja1JlZlRhYmxlV3JpdGVyOwogICogcmVwb3J0X2Vycm9yX2ZuIHNo b3VsZCBub3QgcmV0dXJuLgogICovCiB0eXBlZGVmIGludCAoKmlvX2NhbGxiYWNrX2ZuKSAo dm9pZCAqY2FsbGJhY2tfYXJnLCB2b2lkICpkYXRhLCBpbnQgbGVuZ3RoKTsKLXR5cGVkZWYg dm9pZCAoKnJlcG9ydF9lcnJvcl9mbikgKHZvaWQgKmNhbGxiYWNrX2FyZywgY2hhciAqbXNn LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK3R5cGVkZWYgdm9pZCAoKnJlcG9y dF9lcnJvcl9mbikgKHZvaWQgKmNhbGxiYWNrX2FyZywgY2hhciAqbXNnLCAuLi4pIHBnX2F0 dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NvbW1vbi9mZV9tZW11dGlscy5oIGIvc3JjL2luY2x1ZGUvY29tbW9uL2ZlX21lbXV0aWxz LmgKaW5kZXggZWNjZGZjYWIwODYuLmI3ODZlYWY0OGIwIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jb21tb24vZmVfbWVtdXRpbHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tb24vZmVf bWVtdXRpbHMuaApAQCAtNzksNyArNzksNyBAQCBleHRlcm4gdm9pZCBwZnJlZSh2b2lkICpw b2ludGVyKTsKICNkZWZpbmUgcmVwYWxsb2NfYXJyYXkocG9pbnRlciwgdHlwZSwgY291bnQp ICgodHlwZSAqKSByZXBhbGxvYyhwb2ludGVyLCBzaXplb2YodHlwZSkgKiAoY291bnQpKSkK IAogLyogc3ByaW50ZiBpbnRvIGEgcGFsbG9jJ2QgYnVmZmVyIC0tLSB0aGVzZSBhcmUgaW4g cHNwcmludGYuYyAqLwotZXh0ZXJuIGNoYXIgKnBzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitleHRlcm4gY2hhciAqcHNwcmludGYo Y29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiBleHRl cm4gc2l6ZV90IHB2c25wcmludGYoY2hhciAqYnVmLCBzaXplX3QgbGVuLCBjb25zdCBjaGFy ICpmbXQsIHZhX2xpc3QgYXJncykgcGdfYXR0cmlidXRlX3ByaW50ZigzLCAwKTsKIAogI2Vu ZGlmCQkJCQkJCS8qIEZFX01FTVVUSUxTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NvbW1vbi9sb2dnaW5nLmggYi9zcmMvaW5jbHVkZS9jb21tb24vbG9nZ2luZy5oCmluZGV4 IGJjY2JhNGFjMDdiLi5iOGY3NmE4OGRiZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29t bW9uL2xvZ2dpbmcuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tb24vbG9nZ2luZy5oCkBAIC05 Myw3ICs5Myw3IEBAIHZvaWQJCXBnX2xvZ2dpbmdfc2V0X3ByZV9jYWxsYmFjayh2b2lkICgq Y2IpICh2b2lkKSk7CiB2b2lkCQlwZ19sb2dnaW5nX3NldF9sb2N1c19jYWxsYmFjayh2b2lk ICgqY2IpIChjb25zdCBjaGFyICoqZmlsZW5hbWUsIHVpbnQ2NCAqbGluZW5vKSk7CiAKIHZv aWQJCXBnX2xvZ19nZW5lcmljKGVudW0gcGdfbG9nX2xldmVsIGxldmVsLCBlbnVtIHBnX2xv Z19wYXJ0IHBhcnQsCi0JCQkJCQkgICBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4u KQorCQkJCQkJICAgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LCAuLi4pCiAJCQlwZ19h dHRyaWJ1dGVfcHJpbnRmKDMsIDQpOwogdm9pZAkJcGdfbG9nX2dlbmVyaWNfdihlbnVtIHBn X2xvZ19sZXZlbCBsZXZlbCwgZW51bSBwZ19sb2dfcGFydCBwYXJ0LAogCQkJCQkJCSBjb25z dCBjaGFyICpwZ19yZXN0cmljdCBmbXQsIHZhX2xpc3QgYXApCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jb21tb24vcGFyc2VfbWFuaWZlc3QuaCBiL3NyYy9pbmNsdWRlL2NvbW1vbi9w YXJzZV9tYW5pZmVzdC5oCmluZGV4IDM1YTNiNWNhNjZjLi45NWJhODg1YWZlNiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY29tbW9uL3BhcnNlX21hbmlmZXN0LmgKKysrIGIvc3JjL2lu Y2x1ZGUvY29tbW9uL3BhcnNlX21hbmlmZXN0LmgKQEAgLTM0LDcgKzM0LDcgQEAgdHlwZWRl ZiB2b2lkICgqanNvbl9tYW5pZmVzdF9wZXJfd2FsX3JhbmdlX2NhbGxiYWNrKSAoSnNvbk1h bmlmZXN0UGFyc2VDb250ZXh0ICoKIAkJCQkJCQkJCQkJCQkgIFRpbWVMaW5lSUQgdGxpLAog CQkJCQkJCQkJCQkJCSAgWExvZ1JlY1B0ciBzdGFydF9sc24sIFhMb2dSZWNQdHIgZW5kX2xz bik7CiB0eXBlZGVmIHZvaWQgKCpqc29uX21hbmlmZXN0X2Vycm9yX2NhbGxiYWNrKSAoSnNv bk1hbmlmZXN0UGFyc2VDb250ZXh0ICosCi0JCQkJCQkJCQkJCSAgY29uc3QgY2hhciAqZm10 LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKKwkJCQkJCQkJCQkJICBjb25zdCBj aGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogc3RydWN0IEpz b25NYW5pZmVzdFBhcnNlQ29udGV4dAogewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29t bW9uL3BlcmNlbnRyZXBsLmggYi9zcmMvaW5jbHVkZS9jb21tb24vcGVyY2VudHJlcGwuaApp bmRleCA5YzAzMjJkZDQ0Ni4uOWU3NzI3ZjYzYTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NvbW1vbi9wZXJjZW50cmVwbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9wZXJjZW50 cmVwbC5oCkBAIC0xMyw2ICsxMyw2IEBACiAjaWZuZGVmIFBFUkNFTlRSRVBMX0gKICNkZWZp bmUgUEVSQ0VOVFJFUExfSAogCi1leHRlcm4gY2hhciAqcmVwbGFjZV9wZXJjZW50X3BsYWNl aG9sZGVycyhjb25zdCBjaGFyICppbnN0ciwgY29uc3QgY2hhciAqcGFyYW1fbmFtZSwgY29u c3QgY2hhciAqbGV0dGVycywuLi4pOworZXh0ZXJuIGNoYXIgKnJlcGxhY2VfcGVyY2VudF9w bGFjZWhvbGRlcnMoY29uc3QgY2hhciAqaW5zdHIsIGNvbnN0IGNoYXIgKnBhcmFtX25hbWUs IGNvbnN0IGNoYXIgKmxldHRlcnMsIC4uLik7CiAKICNlbmRpZgkJCQkJCQkvKiBQRVJDRU5U UkVQTF9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9mZV91dGlscy9vcHRpb25fdXRp bHMuaCBiL3NyYy9pbmNsdWRlL2ZlX3V0aWxzL29wdGlvbl91dGlscy5oCmluZGV4IGQ5NzVk Yjc3YWYyLi5mNzBiNjE1OTA5OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZmVfdXRpbHMv b3B0aW9uX3V0aWxzLmgKKysrIGIvc3JjL2luY2x1ZGUvZmVfdXRpbHMvb3B0aW9uX3V0aWxz LmgKQEAgLTI0LDcgKzI0LDcgQEAgZXh0ZXJuIGJvb2wgb3B0aW9uX3BhcnNlX2ludChjb25z dCBjaGFyICpvcHRhcmcsIGNvbnN0IGNoYXIgKm9wdG5hbWUsCiAJCQkJCQkJIGludCAqcmVz dWx0KTsKIGV4dGVybiBib29sIHBhcnNlX3N5bmNfbWV0aG9kKGNvbnN0IGNoYXIgKm9wdGFy ZywKIAkJCQkJCQkgIERhdGFEaXJTeW5jTWV0aG9kICpzeW5jX21ldGhvZCk7Ci1leHRlcm4g dm9pZCBjaGVja19tdXRfZXhjbF9vcHRzX2ludGVybmFsKGludCBuLC4uLik7CitleHRlcm4g dm9pZCBjaGVja19tdXRfZXhjbF9vcHRzX2ludGVybmFsKGludCBuLCAuLi4pOwogCiAvKiBz ZWUgY29tbWVudCBmb3IgY2hlY2tfbXV0X2V4Y2xfb3B0c19pbnRlcm5hbCgpIGluIG9wdGlv bl91dGlscy5jIGZvciBpbmZvICovCiAjZGVmaW5lIGNoZWNrX211dF9leGNsX29wdHMoc2V0 LCBvcHQsIC4uLikgXApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvaml0L2xsdm1qaXRfZW1p dC5oIGIvc3JjL2luY2x1ZGUvaml0L2xsdm1qaXRfZW1pdC5oCmluZGV4IDA4OTk0NTM5MWVl Li4wZTA4OWI5NTY5YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvaml0L2xsdm1qaXRfZW1p dC5oCisrKyBiL3NyYy9pbmNsdWRlL2ppdC9sbHZtaml0X2VtaXQuaApAQCAtMTU5LDE0ICsx NTksMTQgQEAgbF9sb2FkX2dlcDEoTExWTUJ1aWxkZXJSZWYgYiwgTExWTVR5cGVSZWYgdCwg TExWTVZhbHVlUmVmIHYsIExMVk1WYWx1ZVJlZiBpZHgsIGMKIH0KIAogLyogc2VwYXJhdGUs IGJlY2F1c2UgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKSBjYW4ndCBhcHBlYXIgaW4gZGVm aW5pdGlvbiAqLwotc3RhdGljIGlubGluZSBMTFZNQmFzaWNCbG9ja1JlZiBsX2JiX2JlZm9y ZV92KExMVk1CYXNpY0Jsb2NrUmVmIHIsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJp YnV0ZV9wcmludGYoMiwgMyk7CitzdGF0aWMgaW5saW5lIExMVk1CYXNpY0Jsb2NrUmVmIGxf YmJfYmVmb3JlX3YoTExWTUJhc2ljQmxvY2tSZWYgciwgY29uc3QgY2hhciAqZm10LCAuLi4p IHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIC8qCiAgKiBJbnNlcnQgYSBuZXcgYmFz aWMgYmxvY2ssIGp1c3QgYmVmb3JlIHIsIHRoZSBuYW1lIGJlaW5nIGRldGVybWluZWQgYnkg Zm10CiAgKiBhbmQgYXJndW1lbnRzLgogICovCiBzdGF0aWMgaW5saW5lIExMVk1CYXNpY0Js b2NrUmVmCi1sX2JiX2JlZm9yZV92KExMVk1CYXNpY0Jsb2NrUmVmIHIsIGNvbnN0IGNoYXIg KmZtdCwuLi4pCitsX2JiX2JlZm9yZV92KExMVk1CYXNpY0Jsb2NrUmVmIHIsIGNvbnN0IGNo YXIgKmZtdCwgLi4uKQogewogCWNoYXIJCWJ1Zls1MTJdOwogCXZhX2xpc3QJCWFyZ3M7CkBA IC0xODIsMTQgKzE4MiwxNCBAQCBsX2JiX2JlZm9yZV92KExMVk1CYXNpY0Jsb2NrUmVmIHIs IGNvbnN0IGNoYXIgKmZtdCwuLi4pCiB9CiAKIC8qIHNlcGFyYXRlLCBiZWNhdXNlIHBnX2F0 dHJpYnV0ZV9wcmludGYoMiwgMykgY2FuJ3QgYXBwZWFyIGluIGRlZmluaXRpb24gKi8KLXN0 YXRpYyBpbmxpbmUgTExWTUJhc2ljQmxvY2tSZWYgbF9iYl9hcHBlbmRfdihMTFZNVmFsdWVS ZWYgZiwgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsK K3N0YXRpYyBpbmxpbmUgTExWTUJhc2ljQmxvY2tSZWYgbF9iYl9hcHBlbmRfdihMTFZNVmFs dWVSZWYgZiwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwg Myk7CiAKIC8qCiAgKiBJbnNlcnQgYSBuZXcgYmFzaWMgYmxvY2sgYWZ0ZXIgcHJldmlvdXMg YmFzaWMgYmxvY2tzLCB0aGUgbmFtZSBiZWluZwogICogZGV0ZXJtaW5lZCBieSBmbXQgYW5k IGFyZ3VtZW50cy4KICAqLwogc3RhdGljIGlubGluZSBMTFZNQmFzaWNCbG9ja1JlZgotbF9i Yl9hcHBlbmRfdihMTFZNVmFsdWVSZWYgZiwgY29uc3QgY2hhciAqZm10LC4uLikKK2xfYmJf YXBwZW5kX3YoTExWTVZhbHVlUmVmIGYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWNo YXIJCWJ1Zls1MTJdOwogCXZhX2xpc3QJCWFyZ3M7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9saWIvc3RyaW5naW5mby5oIGIvc3JjL2luY2x1ZGUvbGliL3N0cmluZ2luZm8uaAppbmRl eCAwNzk2NTJjOGNlNC4uZTNmNGI5MjIzMDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2xp Yi9zdHJpbmdpbmZvLmgKKysrIGIvc3JjL2luY2x1ZGUvbGliL3N0cmluZ2luZm8uaApAQCAt MTk2LDcgKzE5Niw3IEBAIGV4dGVybiB2b2lkIHJlc2V0U3RyaW5nSW5mbyhTdHJpbmdJbmZv IHN0cik7CiAgKiB0byBzdHIgaWYgbmVjZXNzYXJ5LiAgVGhpcyBpcyBzb3J0IG9mIGxpa2Ug YSBjb21iaW5hdGlvbiBvZiBzcHJpbnRmIGFuZAogICogc3RyY2F0LgogICovCi1leHRlcm4g dm9pZCBhcHBlbmRTdHJpbmdJbmZvKFN0cmluZ0luZm8gc3RyLCBjb25zdCBjaGFyICpmbXQs Li4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0ZXJuIHZvaWQgYXBwZW5kU3Ry aW5nSW5mbyhTdHJpbmdJbmZvIHN0ciwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJp YnV0ZV9wcmludGYoMiwgMyk7CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBh cHBlbmRTdHJpbmdJbmZvVkEKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BvcnQuaCBiL3Ny Yy9pbmNsdWRlL3BvcnQuaAppbmRleCA1MWRmOWI4MGU3ZC4uMTFkYzE3NjE5YzUgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3BvcnQuaAorKysgYi9zcmMvaW5jbHVkZS9wb3J0LmgKQEAg LTIzMSwxMyArMjMxLDEzIEBAIHBnX2FzY2lpX3RvbG93ZXIodW5zaWduZWQgY2hhciBjaCkK ICNlbmRpZgogCiBleHRlcm4gaW50CXBnX3ZzbnByaW50ZihjaGFyICpzdHIsIHNpemVfdCBj b3VudCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpIHBnX2F0dHJpYnV0ZV9wcmlu dGYoMywgMCk7Ci1leHRlcm4gaW50CXBnX3NucHJpbnRmKGNoYXIgKnN0ciwgc2l6ZV90IGNv dW50LCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQpOwor ZXh0ZXJuIGludAlwZ19zbnByaW50ZihjaGFyICpzdHIsIHNpemVfdCBjb3VudCwgY29uc3Qg Y2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMywgNCk7CiBleHRlcm4gaW50 CXBnX3ZzcHJpbnRmKGNoYXIgKnN0ciwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3Mp IHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMCk7Ci1leHRlcm4gaW50CXBnX3NwcmludGYoY2hh ciAqc3RyLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMp OworZXh0ZXJuIGludAlwZ19zcHJpbnRmKGNoYXIgKnN0ciwgY29uc3QgY2hhciAqZm10LCAu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiBleHRlcm4gaW50CXBnX3ZmcHJpbnRm KEZJTEUgKnN0cmVhbSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpIHBnX2F0dHJp YnV0ZV9wcmludGYoMiwgMCk7Ci1leHRlcm4gaW50CXBnX2ZwcmludGYoRklMRSAqc3RyZWFt LCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0 ZXJuIGludAlwZ19mcHJpbnRmKEZJTEUgKnN0cmVhbSwgY29uc3QgY2hhciAqZm10LCAuLi4p IHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiBleHRlcm4gaW50CXBnX3ZwcmludGYoY29u c3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMCk7 Ci1leHRlcm4gaW50CXBnX3ByaW50Zihjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1 dGVfcHJpbnRmKDEsIDIpOworZXh0ZXJuIGludAlwZ19wcmludGYoY29uc3QgY2hhciAqZm10 LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAKICNpZm5kZWYgV0lOMzIKIC8q CkBAIC0zNjAsNyArMzYwLDcgQEAgZXh0ZXJuIGJvb2wgcm10cmVlKGNvbnN0IGNoYXIgKnBh dGgsIGJvb2wgcm10b3BkaXIpOwogICogcGFzc2luZyBvZiBvdGhlciBzcGVjaWFsIG9wdGlv bnMuCiAgKi8KIGV4dGVybiBIQU5ETEUgcGd3aW4zMl9vcGVuX2hhbmRsZShjb25zdCBjaGFy ICosIGludCwgYm9vbCk7Ci1leHRlcm4gaW50CXBnd2luMzJfb3Blbihjb25zdCBjaGFyICos IGludCwuLi4pOworZXh0ZXJuIGludAlwZ3dpbjMyX29wZW4oY29uc3QgY2hhciAqLCBpbnQs IC4uLik7CiBleHRlcm4gRklMRSAqcGd3aW4zMl9mb3Blbihjb25zdCBjaGFyICosIGNvbnN0 IGNoYXIgKik7CiAjZGVmaW5lCQlvcGVuKGEsYixjKSBwZ3dpbjMyX29wZW4oYSxiLGMpCiAj ZGVmaW5lCQlmb3BlbihhLGIpIHBnd2luMzJfZm9wZW4oYSxiKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvZWxvZy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oCmluZGV4 IGExMmIzNzllMDlhLi5jNTk4MTMxNTI1MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRp bHMvZWxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2Vsb2cuaApAQCAtMTc3LDI5ICsx NzcsMjkgQEAgZXh0ZXJuIGludAllcnJjb2RlKGludCBzcWxlcnJjb2RlKTsKIGV4dGVybiBp bnQJZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3Modm9pZCk7CiBleHRlcm4gaW50CWVycmNvZGVf Zm9yX3NvY2tldF9hY2Nlc3Modm9pZCk7CiAKLWV4dGVybiBpbnQJZXJybXNnKGNvbnN0IGNo YXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7Ci1leHRlcm4gaW50CWVy cm1zZ19pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRm KDEsIDIpOworZXh0ZXJuIGludAllcnJtc2coY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0 dHJpYnV0ZV9wcmludGYoMSwgMik7CitleHRlcm4gaW50CWVycm1zZ19pbnRlcm5hbChjb25z dCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIAogZXh0ZXJu IGludAllcnJtc2dfcGx1cmFsKGNvbnN0IGNoYXIgKmZtdF9zaW5ndWxhciwgY29uc3QgY2hh ciAqZm10X3BsdXJhbCwKLQkJCQkJCSAgdW5zaWduZWQgbG9uZyBuLC4uLikgcGdfYXR0cmli dXRlX3ByaW50ZigxLCA0KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDQpOworCQkJCQkJICB1 bnNpZ25lZCBsb25nIG4sIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCA0KSBwZ19hdHRy aWJ1dGVfcHJpbnRmKDIsIDQpOwogCi1leHRlcm4gaW50CWVycmRldGFpbChjb25zdCBjaGFy ICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwotZXh0ZXJuIGludAllcnJk ZXRhaWxfaW50ZXJuYWwoY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50 ZigxLCAyKTsKK2V4dGVybiBpbnQJZXJyZGV0YWlsKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBw Z19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworZXh0ZXJuIGludAllcnJkZXRhaWxfaW50ZXJu YWwoY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAK LWV4dGVybiBpbnQJZXJyZGV0YWlsX2xvZyhjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRy aWJ1dGVfcHJpbnRmKDEsIDIpOworZXh0ZXJuIGludAllcnJkZXRhaWxfbG9nKGNvbnN0IGNo YXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogCiBleHRlcm4gaW50 CWVycmRldGFpbF9sb2dfcGx1cmFsKGNvbnN0IGNoYXIgKmZtdF9zaW5ndWxhciwKIAkJCQkJ CQkJIGNvbnN0IGNoYXIgKmZtdF9wbHVyYWwsCi0JCQkJCQkJCSB1bnNpZ25lZCBsb25nIG4s Li4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDQpIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwg NCk7CisJCQkJCQkJCSB1bnNpZ25lZCBsb25nIG4sIC4uLikgcGdfYXR0cmlidXRlX3ByaW50 ZigxLCA0KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDQpOwogCiBleHRlcm4gaW50CWVycmRl dGFpbF9wbHVyYWwoY29uc3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRf cGx1cmFsLAotCQkJCQkJCSB1bnNpZ25lZCBsb25nIG4sLi4uKSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDEsIDQpIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgNCk7CisJCQkJCQkJIHVuc2lnbmVk IGxvbmcgbiwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDQpIHBnX2F0dHJpYnV0ZV9w cmludGYoMiwgNCk7CiAKLWV4dGVybiBpbnQJZXJyaGludChjb25zdCBjaGFyICpmbXQsLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwotZXh0ZXJuIGludAllcnJoaW50X2ludGVy bmFsKGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7Citl eHRlcm4gaW50CWVycmhpbnQoY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoMSwgMik7CitleHRlcm4gaW50CWVycmhpbnRfaW50ZXJuYWwoY29uc3QgY2hhciAq Zm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAKIGV4dGVybiBpbnQJZXJy aGludF9wbHVyYWwoY29uc3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRf cGx1cmFsLAotCQkJCQkJICAgdW5zaWduZWQgbG9uZyBuLC4uLikgcGdfYXR0cmlidXRlX3By aW50ZigxLCA0KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDQpOworCQkJCQkJICAgdW5zaWdu ZWQgbG9uZyBuLCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgNCkgcGdfYXR0cmlidXRl X3ByaW50ZigyLCA0KTsKIAogLyoKICAqIGVycmNvbnRleHQoKSBpcyB0eXBpY2FsbHkgY2Fs bGVkIGluIGVycm9yIGNvbnRleHQgY2FsbGJhY2sgZnVuY3Rpb25zLCBub3QKQEAgLTIxMyw3 ICsyMTMsNyBAQCBleHRlcm4gaW50CWVycmhpbnRfcGx1cmFsKGNvbnN0IGNoYXIgKmZtdF9z aW5ndWxhciwgY29uc3QgY2hhciAqZm10X3BsdXJhbCwKIAogZXh0ZXJuIGludAlzZXRfZXJy Y29udGV4dF9kb21haW4oY29uc3QgY2hhciAqZG9tYWluKTsKIAotZXh0ZXJuIGludAllcnJj b250ZXh0X21zZyhjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEs IDIpOworZXh0ZXJuIGludAllcnJjb250ZXh0X21zZyhjb25zdCBjaGFyICpmbXQsIC4uLikg cGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIAogZXh0ZXJuIGludAllcnJoaWRlc3RtdChi b29sIGhpZGVfc3RtdCk7CiBleHRlcm4gaW50CWVycmhpZGVjb250ZXh0KGJvb2wgaGlkZV9j dHgpOwpAQCAtMzAxLDcgKzMwMSw3IEBAIGV4dGVybiB2b2lkIGVycnNhdmVfZmluaXNoKHN0 cnVjdCBOb2RlICpjb250ZXh0LAogLyogU3VwcG9ydCBmb3IgY29uc3RydWN0aW5nIGVycm9y IHN0cmluZ3Mgc2VwYXJhdGVseSBmcm9tIGVyZXBvcnQoKSBjYWxscyAqLwogCiBleHRlcm4g dm9pZCBwcmVfZm9ybWF0X2Vsb2dfc3RyaW5nKGludCBlcnJudW1iZXIsIGNvbnN0IGNoYXIg KmRvbWFpbik7Ci1leHRlcm4gY2hhciAqZm9ybWF0X2Vsb2dfc3RyaW5nKGNvbnN0IGNoYXIg KmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitleHRlcm4gY2hhciAqZm9y bWF0X2Vsb2dfc3RyaW5nKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDEsIDIpOwogCiAKIC8qIFN1cHBvcnQgZm9yIGF0dGFjaGluZyBjb250ZXh0IGluZm9y bWF0aW9uIHRvIGVycm9yIHJlcG9ydHMgKi8KQEAgLTUyNyw3ICs1MjcsNyBAQCBleHRlcm4g dm9pZCB3cml0ZV9qc29ubG9nKEVycm9yRGF0YSAqZWRhdGEpOwogICogbm90IGF2YWlsYWJs ZSkuIFVzZWQgYmVmb3JlIGVyZXBvcnQvZWxvZyBjYW4gYmUgdXNlZAogICogc2FmZWx5ICht ZW1vcnkgY29udGV4dCwgR1VDIGxvYWQgZXRjKQogICovCi1leHRlcm4gdm9pZCB3cml0ZV9z dGRlcnIoY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsK K2V4dGVybiB2b2lkIHdyaXRlX3N0ZGVycihjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0 cmlidXRlX3ByaW50ZigxLCAyKTsKIGV4dGVybiB2b2lkIHZ3cml0ZV9zdGRlcnIoY29uc3Qg Y2hhciAqZm10LCB2YV9saXN0IGFwKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDApOwogCiAj ZW5kaWYJCQkJCQkJLyogRUxPR19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGls cy9wYWxsb2MuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3BhbGxvYy5oCmluZGV4IGFjNTNmMTg5 YTRlLi45Mjk1MjExZDIwMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcGFsbG9j LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGFsbG9jLmgKQEAgLTE0Nyw3ICsxNDcsNyBA QCBleHRlcm4gY2hhciAqcG5zdHJkdXAoY29uc3QgY2hhciAqaW4sIFNpemUgbGVuKTsKIGV4 dGVybiBjaGFyICpwY2hvbXAoY29uc3QgY2hhciAqaW4pOwogCiAvKiBzcHJpbnRmIGludG8g YSBwYWxsb2MnZCBidWZmZXIgLS0tIHRoZXNlIGFyZSBpbiBwc3ByaW50Zi5jICovCi1leHRl cm4gY2hhciAqcHNwcmludGYoY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3By aW50ZigxLCAyKTsKK2V4dGVybiBjaGFyICpwc3ByaW50Zihjb25zdCBjaGFyICpmbXQsIC4u LikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIGV4dGVybiBzaXplX3QgcHZzbnByaW50 ZihjaGFyICpidWYsIHNpemVfdCBsZW4sIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdz KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDApOwogCiAjZW5kaWYJCQkJCQkJLyogUEFMTE9D X0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9kZXNjcmlw dG9yLmMgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZGVzY3JpcHRvci5jCmluZGV4 IDM5Y2Q1MTMwZWM5Li44NzkzZDA5ZWI3MCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv ZWNwZy9lY3BnbGliL2Rlc2NyaXB0b3IuYworKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL2Vj cGdsaWIvZGVzY3JpcHRvci5jCkBAIC0yMzEsNyArMjMxLDcgQEAgZ2V0X2NoYXJfaXRlbShp bnQgbGluZW5vLCB2b2lkICp2YXIsIGVudW0gRUNQR3R0eXBlIHZhcnR5cGUsIGNoYXIgKnZh bHVlLCBpbnQgdmEKIAkJCQl9CiAKIGJvb2wKLUVDUEdnZXRfZGVzYyhpbnQgbGluZW5vLCBj b25zdCBjaGFyICpkZXNjX25hbWUsIGludCBpbmRleCwuLi4pCitFQ1BHZ2V0X2Rlc2MoaW50 IGxpbmVubywgY29uc3QgY2hhciAqZGVzY19uYW1lLCBpbnQgaW5kZXgsIC4uLikKIHsKIAl2 YV9saXN0CQlhcmdzOwogCVBHcmVzdWx0ICAgKkVDUEdyZXN1bHQ7CkBAIC02MTAsNyArNjEw LDcgQEAgc2V0X2Rlc2NfYXR0cihzdHJ1Y3QgZGVzY3JpcHRvcl9pdGVtICpkZXNjX2l0ZW0s IHN0cnVjdCB2YXJpYWJsZSAqdmFyLAogCiAKIGJvb2wKLUVDUEdzZXRfZGVzYyhpbnQgbGlu ZW5vLCBjb25zdCBjaGFyICpkZXNjX25hbWUsIGludCBpbmRleCwuLi4pCitFQ1BHc2V0X2Rl c2MoaW50IGxpbmVubywgY29uc3QgY2hhciAqZGVzY19uYW1lLCBpbnQgaW5kZXgsIC4uLikK IHsKIAl2YV9saXN0CQlhcmdzOwogCXN0cnVjdCBkZXNjcmlwdG9yICpkZXNjOwpAQCAtODUy LDcgKzg1Miw3IEBAIGVjcGdfZmluZF9kZXNjKGludCBsaW5lLCBjb25zdCBjaGFyICpuYW1l KQogfQogCiBib29sCi1FQ1BHZGVzY3JpYmUoaW50IGxpbmUsIGludCBjb21wYXQsIGJvb2wg aW5wdXQsIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFtZSwgY29uc3QgY2hhciAqc3RtdF9u YW1lLC4uLikKK0VDUEdkZXNjcmliZShpbnQgbGluZSwgaW50IGNvbXBhdCwgYm9vbCBpbnB1 dCwgY29uc3QgY2hhciAqY29ubmVjdGlvbl9uYW1lLCBjb25zdCBjaGFyICpzdG10X25hbWUs IC4uLikKIHsKIAlib29sCQlyZXQgPSBmYWxzZTsKIAlzdHJ1Y3QgY29ubmVjdGlvbiAqY29u OwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2VjcGdsaWJfZXh0 ZXJuLmggYi9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZWNwZ2xpYl9leHRlcm4uaApp bmRleCBjOTJmMGFhMTA4MS4uMTgyNDNiZmM1NjggMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZh Y2VzL2VjcGcvZWNwZ2xpYi9lY3BnbGliX2V4dGVybi5oCisrKyBiL3NyYy9pbnRlcmZhY2Vz L2VjcGcvZWNwZ2xpYi9lY3BnbGliX2V4dGVybi5oCkBAIC0yMTQsNyArMjE0LDcgQEAgdm9p ZAkJZWNwZ19yYWlzZShpbnQgbGluZSwgaW50IGNvZGUsIGNvbnN0IGNoYXIgKnNxbHN0YXRl LCBjb25zdCBjaGFyICpzdHIpOwogdm9pZAkJZWNwZ19yYWlzZV9iYWNrZW5kKGludCBsaW5l LCBQR3Jlc3VsdCAqcmVzdWx0LCBQR2Nvbm4gKmNvbm4sIGludCBjb21wYXQpOwogY2hhcgkg ICAqZWNwZ19wcmVwYXJlZChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgY29ubmVjdGlvbiAq Y29uKTsKIGJvb2wJCWVjcGdfZGVhbGxvY2F0ZV9hbGxfY29ubihpbnQgbGluZW5vLCBlbnVt IENPTVBBVF9NT0RFIGMsIHN0cnVjdCBjb25uZWN0aW9uICpjb24pOwotdm9pZAkJZWNwZ19s b2coY29uc3QgY2hhciAqZm9ybWF0LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsK K3ZvaWQJCWVjcGdfbG9nKGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKSBwZ19hdHRyaWJ1dGVf cHJpbnRmKDEsIDIpOwogYm9vbAkJZWNwZ19hdXRvX3ByZXBhcmUoaW50IGxpbmVubywgY29u c3QgY2hhciAqY29ubmVjdGlvbl9uYW1lLAogCQkJCQkJCSAgY29uc3QgaW50IGNvbXBhdCwg Y2hhciAqKm5hbWUsIGNvbnN0IGNoYXIgKnF1ZXJ5KTsKIGJvb2wJCWVjcGdfcmVnaXN0ZXJf cHJlcGFyZWRfc3RtdChzdHJ1Y3Qgc3RhdGVtZW50ICpzdG10KTsKZGlmZiAtLWdpdCBhL3Ny Yy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9leGVjdXRlLmMgYi9zcmMvaW50ZXJmYWNlcy9l Y3BnL2VjcGdsaWIvZXhlY3V0ZS5jCmluZGV4IGJhNDE3MzJkZWM2Li5iYWM5ZDJjYzM5ZiAx MDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2V4ZWN1dGUuYworKysg Yi9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZXhlY3V0ZS5jCkBAIC0yMjg5LDcgKzIy ODksNyBAQCBmYWlsOgogICogVGhlIGlucHV0L291dHB1dCBwYXJhbWV0ZXJzIGFyZSBwYXNz ZWQgYXMgdmFyaWFibGUtbGVuZ3RoIGFyZ3VtZW50IGxpc3QuCiAgKi8KIGJvb2wKLUVDUEdk byhjb25zdCBpbnQgbGluZW5vLCBjb25zdCBpbnQgY29tcGF0LCBjb25zdCBpbnQgZm9yY2Vf aW5kaWNhdG9yLCBjb25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUsIGNvbnN0IGJvb2wgcXVl c3Rpb25tYXJrcywgY29uc3QgaW50IHN0LCBjb25zdCBjaGFyICpxdWVyeSwuLi4pCitFQ1BH ZG8oY29uc3QgaW50IGxpbmVubywgY29uc3QgaW50IGNvbXBhdCwgY29uc3QgaW50IGZvcmNl X2luZGljYXRvciwgY29uc3QgY2hhciAqY29ubmVjdGlvbl9uYW1lLCBjb25zdCBib29sIHF1 ZXN0aW9ubWFya3MsIGNvbnN0IGludCBzdCwgY29uc3QgY2hhciAqcXVlcnksIC4uLikKIHsK IAl2YV9saXN0CQlhcmdzOwogCWJvb2wJCXJldDsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2VjcGcvZWNwZ2xpYi9taXNjLmMgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIv bWlzYy5jCmluZGV4IDQwZWExNzRhZTlmLi4zNTRhMmU3MzFmYyAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL21pc2MuYworKysgYi9zcmMvaW50ZXJmYWNlcy9l Y3BnL2VjcGdsaWIvbWlzYy5jCkBAIC0yMjksNyArMjI5LDcgQEAgRUNQR2RlYnVnKGludCBu LCBGSUxFICpkYmdzKQogfQogCiB2b2lkCi1lY3BnX2xvZyhjb25zdCBjaGFyICpmb3JtYXQs Li4uKQorZWNwZ19sb2coY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCiB7CiAJdmFfbGlzdAkJ YXA7CiAJY29uc3QgY2hhciAqaW50bF9mb3JtYXQ7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9lY3BnL2luY2x1ZGUvZWNwZ2xpYi5oIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9pbmNs dWRlL2VjcGdsaWIuaAppbmRleCBkYmYzY2MzYTBjMi4uMWQ5NzFkNTg5M2QgMTAwNjQ0Ci0t LSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvaW5jbHVkZS9lY3BnbGliLmgKKysrIGIvc3JjL2lu dGVyZmFjZXMvZWNwZy9pbmNsdWRlL2VjcGdsaWIuaApAQCAtMjksNyArMjksNyBAQCBib29s CQlFQ1BHY29ubmVjdChpbnQgbGluZW5vLCBpbnQgYywgY29uc3QgY2hhciAqbmFtZSwgY29u c3QgY2hhciAqdXNlciwKIAkJCQkJCWNvbnN0IGNoYXIgKnBhc3N3ZCwgY29uc3QgY2hhciAq Y29ubmVjdGlvbl9uYW1lLCBpbnQgYXV0b2NvbW1pdCk7CiBib29sCQlFQ1BHZG8oY29uc3Qg aW50IGxpbmVubywgY29uc3QgaW50IGNvbXBhdCwgY29uc3QgaW50IGZvcmNlX2luZGljYXRv ciwKIAkJCQkgICBjb25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUsIGNvbnN0IGJvb2wgcXVl c3Rpb25tYXJrcywKLQkJCQkgICBjb25zdCBpbnQgc3QsIGNvbnN0IGNoYXIgKnF1ZXJ5LC4u Lik7CisJCQkJICAgY29uc3QgaW50IHN0LCBjb25zdCBjaGFyICpxdWVyeSwgLi4uKTsKIGJv b2wJCUVDUEd0cmFucyhpbnQgbGluZW5vLCBjb25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUs IGNvbnN0IGNoYXIgKnRyYW5zYWN0aW9uKTsKIGJvb2wJCUVDUEdkaXNjb25uZWN0KGludCBs aW5lbm8sIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFtZSk7CiBib29sCQlFQ1BHcHJlcGFy ZShpbnQgbGluZW5vLCBjb25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUsIGNvbnN0IGJvb2wg cXVlc3Rpb25tYXJrcywKQEAgLTU1LDE0ICs1NSwxNCBAQCBib29sCQlFQ1BHZG9fZGVzY3Jp cHRvcihpbnQgbGluZSwgY29uc3QgY2hhciAqY29ubmVjdGlvbiwKIGJvb2wJCUVDUEdkZWFs bG9jYXRlX2Rlc2MoaW50IGxpbmUsIGNvbnN0IGNoYXIgKm5hbWUpOwogYm9vbAkJRUNQR2Fs bG9jYXRlX2Rlc2MoaW50IGxpbmUsIGNvbnN0IGNoYXIgKm5hbWUpOwogYm9vbAkJRUNQR2dl dF9kZXNjX2hlYWRlcihpbnQgbGluZW5vLCBjb25zdCBjaGFyICpkZXNjX25hbWUsIGludCAq Y291bnQpOwotYm9vbAkJRUNQR2dldF9kZXNjKGludCBsaW5lbm8sIGNvbnN0IGNoYXIgKmRl c2NfbmFtZSwgaW50IGluZGV4LC4uLik7Citib29sCQlFQ1BHZ2V0X2Rlc2MoaW50IGxpbmVu bywgY29uc3QgY2hhciAqZGVzY19uYW1lLCBpbnQgaW5kZXgsIC4uLik7CiBib29sCQlFQ1BH c2V0X2Rlc2NfaGVhZGVyKGludCBsaW5lbm8sIGNvbnN0IGNoYXIgKmRlc2NfbmFtZSwgaW50 IGNvdW50KTsKLWJvb2wJCUVDUEdzZXRfZGVzYyhpbnQgbGluZW5vLCBjb25zdCBjaGFyICpk ZXNjX25hbWUsIGludCBpbmRleCwuLi4pOworYm9vbAkJRUNQR3NldF9kZXNjKGludCBsaW5l bm8sIGNvbnN0IGNoYXIgKmRlc2NfbmFtZSwgaW50IGluZGV4LCAuLi4pOwogCiB2b2lkCQlF Q1BHc2V0X25vaW5kX251bGwoZW51bSBFQ1BHdHR5cGUgdHlwZSwgdm9pZCAqcHRyKTsKIGJv b2wJCUVDUEdpc19ub2luZF9udWxsKGVudW0gRUNQR3R0eXBlIHR5cGUsIGNvbnN0IHZvaWQg KnB0cik7CiBib29sCQlFQ1BHZGVzY3JpYmUoaW50IGxpbmUsIGludCBjb21wYXQsIGJvb2wg aW5wdXQsCi0JCQkJCQkgY29uc3QgY2hhciAqY29ubmVjdGlvbl9uYW1lLCBjb25zdCBjaGFy ICpzdG10X25hbWUsLi4uKTsKKwkJCQkJCSBjb25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUs IGNvbnN0IGNoYXIgKnN0bXRfbmFtZSwgLi4uKTsKIAogdm9pZAkJRUNQR3NldF92YXIoaW50 IG51bWJlciwgdm9pZCAqcG9pbnRlciwgaW50IGxpbmVubyk7CiB2b2lkCSAgICpFQ1BHZ2V0 X3ZhcihpbnQgbnVtYmVyKTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJl cHJvYy9wcmVwcm9jX2V4dGVybi5oIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL3By ZXByb2NfZXh0ZXJuLmgKaW5kZXggMmM4OWUzMDYyMWUuLmM2MWYwNTQ4NzNiIDEwMDY0NAot LS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcHJlcHJvY19leHRlcm4uaAorKysg Yi9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcHJlcHJvY19leHRlcm4uaApAQCAtODUs MTEgKzg1LDExIEBAIGV4dGVybiB2b2lkICpsb2NfYWxsb2Moc2l6ZV90IHNpemUpOwogZXh0 ZXJuIGNoYXIgKmxvY19zdHJkdXAoY29uc3QgY2hhciAqc3RyaW5nKTsKIGV4dGVybiB2b2lk IHJlY2xhaW1fbG9jYWxfc3RvcmFnZSh2b2lkKTsKIGV4dGVybiBjaGFyICpjYXQyX3N0cihj b25zdCBjaGFyICpzdHIxLCBjb25zdCBjaGFyICpzdHIyKTsKLWV4dGVybiBjaGFyICpjYXRf c3RyKGludCBjb3VudCwuLi4pOworZXh0ZXJuIGNoYXIgKmNhdF9zdHIoaW50IGNvdW50LCAu Li4pOwogZXh0ZXJuIGNoYXIgKm1ha2UyX3N0cihjb25zdCBjaGFyICpzdHIxLCBjb25zdCBj aGFyICpzdHIyKTsKIGV4dGVybiBjaGFyICptYWtlM19zdHIoY29uc3QgY2hhciAqc3RyMSwg Y29uc3QgY2hhciAqc3RyMiwgY29uc3QgY2hhciAqc3RyMyk7Ci1leHRlcm4gdm9pZCBtbWVy cm9yKGludCBlcnJvcl9jb2RlLCBlbnVtIGVycm9ydHlwZSB0eXBlLCBjb25zdCBjaGFyICpl cnJvciwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMywgNCk7Ci1wZ19ub3JldHVybiBleHRl cm4gdm9pZCBtbWZhdGFsKGludCBlcnJvcl9jb2RlLCBjb25zdCBjaGFyICplcnJvciwuLi4p IHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4gdm9pZCBtbWVycm9yKGludCBl cnJvcl9jb2RlLCBlbnVtIGVycm9ydHlwZSB0eXBlLCBjb25zdCBjaGFyICplcnJvciwgLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQpOworcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQg bW1mYXRhbChpbnQgZXJyb3JfY29kZSwgY29uc3QgY2hhciAqZXJyb3IsIC4uLikgcGdfYXR0 cmlidXRlX3ByaW50ZigyLCAzKTsKIGV4dGVybiB2b2lkIG91dHB1dF9nZXRfZGVzY3JfaGVh ZGVyKGNvbnN0IGNoYXIgKmRlc2NfbmFtZSk7CiBleHRlcm4gdm9pZCBvdXRwdXRfZ2V0X2Rl c2NyKGNvbnN0IGNoYXIgKmRlc2NfbmFtZSwgY29uc3QgY2hhciAqaW5kZXgpOwogZXh0ZXJu IHZvaWQgb3V0cHV0X3NldF9kZXNjcl9oZWFkZXIoY29uc3QgY2hhciAqZGVzY19uYW1lKTsK ZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy91dGlsLmMgYi9zcmMv aW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvdXRpbC5jCmluZGV4IGYxNzdkZjMyNDg4Li5iYTFm MDQ5YTg3ZCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL3V0aWwu YworKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvdXRpbC5jCkBAIC00Nyw3ICs0 Nyw3IEBAIHZtbWVycm9yKGludCBlcnJvcl9jb2RlLCBlbnVtIGVycm9ydHlwZSB0eXBlLCBj b25zdCBjaGFyICplcnJvciwgdmFfbGlzdCBhcCkKIAogLyogUmVwb3J0IGFuIGVycm9yIG9y IHdhcm5pbmcgKi8KIHZvaWQKLW1tZXJyb3IoaW50IGVycm9yX2NvZGUsIGVudW0gZXJyb3J0 eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmVycm9yLC4uLikKK21tZXJyb3IoaW50IGVycm9yX2Nv ZGUsIGVudW0gZXJyb3J0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmVycm9yLCAuLi4pCiB7CiAJ dmFfbGlzdAkJYXA7CiAKQEAgLTU4LDcgKzU4LDcgQEAgbW1lcnJvcihpbnQgZXJyb3JfY29k ZSwgZW51bSBlcnJvcnR5cGUgdHlwZSwgY29uc3QgY2hhciAqZXJyb3IsLi4uKQogCiAvKiBS ZXBvcnQgYW4gZXJyb3IgYW5kIGFiYW5kb24gZXhlY3V0aW9uICovCiB2b2lkCi1tbWZhdGFs KGludCBlcnJvcl9jb2RlLCBjb25zdCBjaGFyICplcnJvciwuLi4pCittbWZhdGFsKGludCBl cnJvcl9jb2RlLCBjb25zdCBjaGFyICplcnJvciwgLi4uKQogewogCXZhX2xpc3QJCWFwOwog CkBAIC0yMTcsNyArMjE3LDcgQEAgY2F0Ml9zdHIoY29uc3QgY2hhciAqc3RyMSwgY29uc3Qg Y2hhciAqc3RyMikKICAqIENvbmNhdGVuYXRlIE4gc3RyaW5ncywgaW5zZXJ0aW5nIHNwYWNl cyBiZXR3ZWVuIHRoZW0gdW5sZXNzIHRoZXkgYXJlIGVtcHR5CiAgKi8KIGNoYXIgKgotY2F0 X3N0cihpbnQgY291bnQsLi4uKQorY2F0X3N0cihpbnQgY291bnQsIC4uLikKIHsKIAl2YV9s aXN0CQlhcmdzOwogCWludAkJCWk7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS9mZS1leGVjLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKaW5kZXggMjAz ZDM4OGJkYmYuLjhjNjEwZDE3MGE2IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJw cS9mZS1leGVjLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCkBAIC05 NDEsNyArOTQxLDcgQEAgcHFQcmVwYXJlQXN5bmNSZXN1bHQoUEdjb25uICpjb25uKQogICog YSB0cmFpbGluZyBuZXdsaW5lLCBhbmQgc2hvdWxkIG5vdCBiZSBtb3JlIHRoYW4gb25lIGxp bmUpLgogICovCiB2b2lkCi1wcUludGVybmFsTm90aWNlKGNvbnN0IFBHTm90aWNlSG9va3Mg Kmhvb2tzLCBjb25zdCBjaGFyICpmbXQsLi4uKQorcHFJbnRlcm5hbE5vdGljZShjb25zdCBQ R05vdGljZUhvb2tzICpob29rcywgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJY2hhcgkJ bXNnQnVmWzEwMjRdOwogCXZhX2xpc3QJCWFyZ3M7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1taXNjLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1taXNjLmMK aW5kZXggMTM3NzVjZmI4YjkuLjMyNWE0ODVlZjUzIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1taXNjLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtbWlz Yy5jCkBAIC0xMzcyLDcgKzEzNzIsNyBAQCBsaWJwcV9uZ2V0dGV4dChjb25zdCBjaGFyICpt c2dpZCwgY29uc3QgY2hhciAqbXNnaWRfcGx1cmFsLCB1bnNpZ25lZCBsb25nIG4pCiAgKiBu ZXdsaW5lLgogICovCiB2b2lkCi1saWJwcV9hcHBlbmRfZXJyb3IoUFFFeHBCdWZmZXIgZXJy b3JNZXNzYWdlLCBjb25zdCBjaGFyICpmbXQsLi4uKQorbGlicHFfYXBwZW5kX2Vycm9yKFBR RXhwQnVmZmVyIGVycm9yTWVzc2FnZSwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50 CQkJc2F2ZV9lcnJubyA9IGVycm5vOwogCWJvb2wJCWRvbmU7CkBAIC0xNDAxLDcgKzE0MDEs NyBAQCBsaWJwcV9hcHBlbmRfZXJyb3IoUFFFeHBCdWZmZXIgZXJyb3JNZXNzYWdlLCBjb25z dCBjaGFyICpmbXQsLi4uKQogICogZm9ybWF0IHNob3VsZCBub3QgZW5kIHdpdGggYSBuZXds aW5lLgogICovCiB2b2lkCi1saWJwcV9hcHBlbmRfY29ubl9lcnJvcihQR2Nvbm4gKmNvbm4s IGNvbnN0IGNoYXIgKmZtdCwuLi4pCitsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihQR2Nvbm4g KmNvbm4sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWludAkJCXNhdmVfZXJybm8gPSBl cnJubzsKIAlib29sCQlkb25lOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEv bGlicHEtaW50LmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaAppbmRleCAy M2RlOTgyOTBjOS4uNjBlZDRjODdkODMgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2xpYnBxLWludC5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5o CkBAIC03NTMsNyArNzUzLDcgQEAgZXh0ZXJuIGNoYXIgKnBxUmVzdWx0U3RyZHVwKFBHcmVz dWx0ICpyZXMsIGNvbnN0IGNoYXIgKnN0cik7CiBleHRlcm4gdm9pZCBwcUNsZWFyQXN5bmNS ZXN1bHQoUEdjb25uICpjb25uKTsKIGV4dGVybiB2b2lkIHBxU2F2ZUVycm9yUmVzdWx0KFBH Y29ubiAqY29ubik7CiBleHRlcm4gUEdyZXN1bHQgKnBxUHJlcGFyZUFzeW5jUmVzdWx0KFBH Y29ubiAqY29ubik7Ci1leHRlcm4gdm9pZCBwcUludGVybmFsTm90aWNlKGNvbnN0IFBHTm90 aWNlSG9va3MgKmhvb2tzLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDIsIDMpOworZXh0ZXJuIHZvaWQgcHFJbnRlcm5hbE5vdGljZShjb25zdCBQR05vdGlj ZUhvb2tzICpob29rcywgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmlu dGYoMiwgMyk7CiBleHRlcm4gdm9pZCBwcVNhdmVNZXNzYWdlRmllbGQoUEdyZXN1bHQgKnJl cywgY2hhciBjb2RlLAogCQkJCQkJCSAgIGNvbnN0IGNoYXIgKnZhbHVlKTsKIGV4dGVybiBp bnQJcHFTYXZlUGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqbmFt ZSwKQEAgLTk1Nyw4ICs5NTcsOCBAQCBleHRlcm4gY2hhciAqbGlicHFfbmdldHRleHQoY29u c3QgY2hhciAqbXNnaWQsIGNvbnN0IGNoYXIgKm1zZ2lkX3BsdXJhbCwgdW5zaWduZQogICov CiAjdW5kZWYgXwogCi1leHRlcm4gdm9pZCBsaWJwcV9hcHBlbmRfZXJyb3IoUFFFeHBCdWZm ZXIgZXJyb3JNZXNzYWdlLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDIsIDMpOwotZXh0ZXJuIHZvaWQgbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoUEdjb25u ICpjb25uLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMp OworZXh0ZXJuIHZvaWQgbGlicHFfYXBwZW5kX2Vycm9yKFBRRXhwQnVmZmVyIGVycm9yTWVz c2FnZSwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7 CitleHRlcm4gdm9pZCBsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihQR2Nvbm4gKmNvbm4sIGNv bnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogZXh0ZXJu IHZvaWQgbGlicHFfYXBwZW5kX2dyZWFzZV9pbmZvKFBHY29ubiAqY29ubik7CiAKIC8qCmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZlci5jIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvcHFleHBidWZmZXIuYwppbmRleCAxNTNhZTZhZjZjYi4uNzU2Mzk5 M2Y2ZDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3BxZXhwYnVmZmVyLmMK KysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvcHFleHBidWZmZXIuYwpAQCAtMjMyLDcgKzIz Miw3IEBAIGVubGFyZ2VQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIHNpemVfdCBuZWVk ZWQpCiAgKiByZXNldFBRRXhwQnVmZmVyKCkgZm9sbG93ZWQgYnkgYXBwZW5kUFFFeHBCdWZm ZXIoKS4KICAqLwogdm9pZAotcHJpbnRmUFFFeHBCdWZmZXIoUFFFeHBCdWZmZXIgc3RyLCBj b25zdCBjaGFyICpmbXQsLi4uKQorcHJpbnRmUFFFeHBCdWZmZXIoUFFFeHBCdWZmZXIgc3Ry LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlzYXZlX2Vycm5vID0gZXJybm87 CiAJdmFfbGlzdAkJYXJnczsKQEAgLTI2Miw3ICsyNjIsNyBAQCBwcmludGZQUUV4cEJ1ZmZl cihQUUV4cEJ1ZmZlciBzdHIsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCiAgKiBzdHJjYXQuCiAg Ki8KIHZvaWQKLWFwcGVuZFBRRXhwQnVmZmVyKFBRRXhwQnVmZmVyIHN0ciwgY29uc3QgY2hh ciAqZm10LC4uLikKK2FwcGVuZFBRRXhwQnVmZmVyKFBRRXhwQnVmZmVyIHN0ciwgY29uc3Qg Y2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5vOwogCXZhX2xp c3QJCWFyZ3M7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZl ci5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvcHFleHBidWZmZXIuaAppbmRleCBkYzgzZjRm ZmU4Ni4uMjc0MWJiOWUyZmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Bx ZXhwYnVmZmVyLmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvcHFleHBidWZmZXIuaApA QCAtMTQ2LDcgKzE0Niw3IEBAIGV4dGVybiBpbnQJZW5sYXJnZVBRRXhwQnVmZmVyKFBRRXhw QnVmZmVyIHN0ciwgc2l6ZV90IG5lZWRlZCk7CiAgKiBUaGlzIGlzIGEgY29udmVuaWVuY2Ug cm91dGluZSB0aGF0IGRvZXMgdGhlIHNhbWUgdGhpbmcgYXMKICAqIHJlc2V0UFFFeHBCdWZm ZXIoKSBmb2xsb3dlZCBieSBhcHBlbmRQUUV4cEJ1ZmZlcigpLgogICovCi1leHRlcm4gdm9p ZCBwcmludGZQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIGNvbnN0IGNoYXIgKmZtdCwu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4gdm9pZCBwcmludGZQUUV4 cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRy aWJ1dGVfcHJpbnRmKDIsIDMpOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICog YXBwZW5kUFFFeHBCdWZmZXIKQEAgLTE1NSw3ICsxNTUsNyBAQCBleHRlcm4gdm9pZCBwcmlu dGZQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBn X2F0dHJpYnV0ZQogICogdG8gc3RyIGlmIG5lY2Vzc2FyeS4gIFRoaXMgaXMgc29ydCBvZiBs aWtlIGEgY29tYmluYXRpb24gb2Ygc3ByaW50ZiBhbmQKICAqIHN0cmNhdC4KICAqLwotZXh0 ZXJuIHZvaWQgYXBwZW5kUFFFeHBCdWZmZXIoUFFFeHBCdWZmZXIgc3RyLCBjb25zdCBjaGFy ICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0ZXJuIHZvaWQgYXBw ZW5kUFFFeHBCdWZmZXIoUFFFeHBCdWZmZXIgc3RyLCBjb25zdCBjaGFyICpmbXQsIC4uLikg cGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAqIGFwcGVuZFBRRXhwQnVmZmVyVkEKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHB5dGhv bi9wbHB5X2Vsb2cuYyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X2Vsb2cuYwppbmRleCBlMTA5 ODg4Y2NlZC4uYTY0NjIwNTU5YjQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHB5dGhvbi9wbHB5 X2Vsb2cuYworKysgYi9zcmMvcGwvcGxweXRob24vcGxweV9lbG9nLmMKQEAgLTQxLDcgKzQx LDcgQEAgc3RhdGljIGJvb2wgc2V0X3N0cmluZ19hdHRyKFB5T2JqZWN0ICpvYmosIGNoYXIg KmF0dHJuYW1lLCBjaGFyICpzdHIpOwogICogaW4gdGhlIGNvbnRleHQuCiAgKi8KIHZvaWQK LVBMeV9lbG9nX2ltcGwoaW50IGVsZXZlbCwgY29uc3QgY2hhciAqZm10LC4uLikKK1BMeV9l bG9nX2ltcGwoaW50IGVsZXZlbCwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJ c2F2ZV9lcnJubyA9IGVycm5vOwogCWNoYXIJICAgKnZvbGF0aWxlIHhtc2cgPSBOVUxMOwpA QCAtNDg3LDcgKzQ4Nyw3IEBAIGdldF9zb3VyY2VfbGluZShjb25zdCBjaGFyICpzcmMsIGlu dCBsaW5lbm8pCiAKIC8qIGNhbGwgUHlFcnJfU2V0U3RyaW5nIHdpdGggYSB2cHJpbnQgaW50 ZXJmYWNlIGFuZCB0cmFuc2xhdGlvbiBzdXBwb3J0ICovCiB2b2lkCi1QTHlfZXhjZXB0aW9u X3NldChQeU9iamVjdCAqZXhjLCBjb25zdCBjaGFyICpmbXQsLi4uKQorUEx5X2V4Y2VwdGlv bl9zZXQoUHlPYmplY3QgKmV4YywgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJY2hhcgkJ YnVmWzEwMjRdOwogCXZhX2xpc3QJCWFwOwpAQCAtNTAzLDcgKzUwMyw3IEBAIFBMeV9leGNl cHRpb25fc2V0KFB5T2JqZWN0ICpleGMsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCiB2b2lkCiBQ THlfZXhjZXB0aW9uX3NldF9wbHVyYWwoUHlPYmplY3QgKmV4YywKIAkJCQkJCSBjb25zdCBj aGFyICpmbXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZtdF9wbHVyYWwsCi0JCQkJCQkgdW5z aWduZWQgbG9uZyBuLC4uLikKKwkJCQkJCSB1bnNpZ25lZCBsb25nIG4sIC4uLikKIHsKIAlj aGFyCQlidWZbMTAyNF07CiAJdmFfbGlzdAkJYXA7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxw eXRob24vcGxweV9lbG9nLmggYi9zcmMvcGwvcGxweXRob24vcGxweV9lbG9nLmgKaW5kZXgg ZGM2NWYyZjZlZTIuLjMxNTBmOWU3MmNhIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxweXRob24v cGxweV9lbG9nLmgKKysrIGIvc3JjL3BsL3BscHl0aG9uL3BscHlfZWxvZy5oCkBAIC0zNCwx MiArMzQsMTIgQEAgZXh0ZXJuIFB5T2JqZWN0ICpQTHlfZXhjX3NwaV9lcnJvcjsKIAl9IHdo aWxlKDApCiAjZW5kaWYJCQkJCQkJLyogSEFWRV9fQlVJTFRJTl9DT05TVEFOVF9QICovCiAK LWV4dGVybiBQR0RMTEVYUE9SVCB2b2lkIFBMeV9lbG9nX2ltcGwoaW50IGVsZXZlbCwgY29u c3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK2V4dGVybiBQ R0RMTEVYUE9SVCB2b2lkIFBMeV9lbG9nX2ltcGwoaW50IGVsZXZlbCwgY29uc3QgY2hhciAq Zm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKLWV4dGVybiBQR0RMTEVY UE9SVCB2b2lkIFBMeV9leGNlcHRpb25fc2V0KFB5T2JqZWN0ICpleGMsIGNvbnN0IGNoYXIg KmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4gUEdETExFWFBP UlQgdm9pZCBQTHlfZXhjZXB0aW9uX3NldChQeU9iamVjdCAqZXhjLCBjb25zdCBjaGFyICpm bXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogZXh0ZXJuIFBHRExMRVhQ T1JUIHZvaWQgUEx5X2V4Y2VwdGlvbl9zZXRfcGx1cmFsKFB5T2JqZWN0ICpleGMsIGNvbnN0 IGNoYXIgKmZtdF9zaW5ndWxhciwgY29uc3QgY2hhciAqZm10X3BsdXJhbCwKLQkJCQkJCQkJ CQkJCSB1bnNpZ25lZCBsb25nIG4sLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDUpIHBn X2F0dHJpYnV0ZV9wcmludGYoMywgNSk7CisJCQkJCQkJCQkJCQkgdW5zaWduZWQgbG9uZyBu LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgNSkgcGdfYXR0cmlidXRlX3ByaW50Zigz LCA1KTsKIAogZXh0ZXJuIFBHRExMRVhQT1JUIHZvaWQgUEx5X2V4Y2VwdGlvbl9zZXRfd2l0 aF9kZXRhaWxzKFB5T2JqZWN0ICpleGNjbGFzcywgRXJyb3JEYXRhICplZGF0YSk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9wb3J0L29wZW4uYyBiL3NyYy9wb3J0L29wZW4uYwppbmRleCAyY2Qy NjA2MGFhMy4uNGJlMDhiMmNmMTMgMTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L29wZW4uYworKysg Yi9zcmMvcG9ydC9vcGVuLmMKQEAgLTE2NSw3ICsxNjUsNyBAQCBwZ3dpbjMyX29wZW5faGFu ZGxlKGNvbnN0IGNoYXIgKmZpbGVOYW1lLCBpbnQgZmlsZUZsYWdzLCBib29sIGJhY2t1cF9z ZW1hbnRpY3MpCiB9CiAKIGludAotcGd3aW4zMl9vcGVuKGNvbnN0IGNoYXIgKmZpbGVOYW1l LCBpbnQgZmlsZUZsYWdzLC4uLikKK3Bnd2luMzJfb3Blbihjb25zdCBjaGFyICpmaWxlTmFt ZSwgaW50IGZpbGVGbGFncywgLi4uKQogewogCUhBTkRMRQkJaDsKIAlpbnQJCQlmZDsKZGlm ZiAtLWdpdCBhL3NyYy9wb3J0L3NucHJpbnRmLmMgYi9zcmMvcG9ydC9zbnByaW50Zi5jCmlu ZGV4IDVkZWVlNDRkM2EyLi4yMTg5ZWJmZTM5OSAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvc25w cmludGYuYworKysgYi9zcmMvcG9ydC9zbnByaW50Zi5jCkBAIC0xOTksNyArMTk5LDcgQEAg cGdfdnNucHJpbnRmKGNoYXIgKnN0ciwgc2l6ZV90IGNvdW50LCBjb25zdCBjaGFyICpmbXQs IHZhX2xpc3QgYXJncykKIH0KIAogaW50Ci1wZ19zbnByaW50ZihjaGFyICpzdHIsIHNpemVf dCBjb3VudCwgY29uc3QgY2hhciAqZm10LC4uLikKK3BnX3NucHJpbnRmKGNoYXIgKnN0ciwg c2l6ZV90IGNvdW50LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlsZW47CiAJ dmFfbGlzdAkJYXJnczsKQEAgLTIyNyw3ICsyMjcsNyBAQCBwZ192c3ByaW50ZihjaGFyICpz dHIsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKQogfQogCiBpbnQKLXBnX3Nwcmlu dGYoY2hhciAqc3RyLCBjb25zdCBjaGFyICpmbXQsLi4uKQorcGdfc3ByaW50ZihjaGFyICpz dHIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWludAkJCWxlbjsKIAl2YV9saXN0CQlh cmdzOwpAQCAtMjYxLDcgKzI2MSw3IEBAIHBnX3ZmcHJpbnRmKEZJTEUgKnN0cmVhbSwgY29u c3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpCiB9CiAKIGludAotcGdfZnByaW50ZihGSUxF ICpzdHJlYW0sIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwZ19mcHJpbnRmKEZJTEUgKnN0cmVh bSwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJbGVuOwogCXZhX2xpc3QJCWFy Z3M7CkBAIC0yNzksNyArMjc5LDcgQEAgcGdfdnByaW50Zihjb25zdCBjaGFyICpmbXQsIHZh X2xpc3QgYXJncykKIH0KIAogaW50Ci1wZ19wcmludGYoY29uc3QgY2hhciAqZm10LC4uLikK K3BnX3ByaW50Zihjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlsZW47CiAJdmFf bGlzdAkJYXJnczsKZGlmZiAtLWdpdCBhL3NyYy9wb3J0L3dpbjMyc2VjdXJpdHkuYyBiL3Ny Yy9wb3J0L3dpbjMyc2VjdXJpdHkuYwppbmRleCA0NmQyZmM3NzRiNC4uZDNjYTcwZjBlYWMg MTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L3dpbjMyc2VjdXJpdHkuYworKysgYi9zcmMvcG9ydC93 aW4zMnNlY3VyaXR5LmMKQEAgLTE3LDcgKzE3LDcgQEAKICNpbmNsdWRlICJwb3N0Z3Jlc19m ZS5oIgogI2VuZGlmCiAKLXN0YXRpYyB2b2lkIGxvZ19lcnJvcihjb25zdCBjaGFyICpmbXQs Li4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworc3RhdGljIHZvaWQgbG9nX2Vycm9y KGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogCiAK IC8qCkBAIC0yNSw3ICsyNSw3IEBAIHN0YXRpYyB2b2lkIGxvZ19lcnJvcihjb25zdCBjaGFy ICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogICogbWVzc2FnZS4KICAq Lwogc3RhdGljIHZvaWQKLWxvZ19lcnJvcihjb25zdCBjaGFyICpmbXQsLi4uKQorbG9nX2Vy cm9yKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFwOwogCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL2xpYnBxX3BpcGVsaW5lLmMg Yi9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL2xpYnBxX3BpcGVsaW5lLmMKaW5k ZXggYWEwYTZiYmU3NjIuLmVlM2UyZWM3NTcwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1 bGVzL2xpYnBxX3BpcGVsaW5lL2xpYnBxX3BpcGVsaW5lLmMKKysrIGIvc3JjL3Rlc3QvbW9k dWxlcy9saWJwcV9waXBlbGluZS9saWJwcV9waXBlbGluZS5jCkBAIC0yNCw3ICsyNCw3IEBA CiAKIAogc3RhdGljIHZvaWQgZXhpdF9uaWNlbHkoUEdjb25uICpjb25uKTsKLXBnX25vcmV0 dXJuIHN0YXRpYyB2b2lkIHBnX2ZhdGFsX2ltcGwoaW50IGxpbmUsIGNvbnN0IGNoYXIgKmZt dCwuLi4pCitwZ19ub3JldHVybiBzdGF0aWMgdm9pZCBwZ19mYXRhbF9pbXBsKGludCBsaW5l LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7 CiBzdGF0aWMgYm9vbCBwcm9jZXNzX3Jlc3VsdChQR2Nvbm4gKmNvbm4sIFBHcmVzdWx0ICpy ZXMsIGludCByZXN1bHRzLAogCQkJCQkJICAgaW50IG51bXNlbnQpOwpAQCAtNzIsNyArNzIs NyBAQCBleGl0X25pY2VseShQR2Nvbm4gKmNvbm4pCiAgKi8KICNkZWZpbmUgcGdfZmF0YWwo Li4uKSBwZ19mYXRhbF9pbXBsKF9fTElORV9fLCBfX1ZBX0FSR1NfXykKIHBnX25vcmV0dXJu IHN0YXRpYyB2b2lkCi1wZ19mYXRhbF9pbXBsKGludCBsaW5lLCBjb25zdCBjaGFyICpmbXQs Li4uKQorcGdfZmF0YWxfaW1wbChpbnQgbGluZSwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7 CiAJdmFfbGlzdAkJYXJnczsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19y ZWdyZXNzLmMgYi9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MuYwppbmRleCBiOGI2YTkx MTk4Ny4uYmNiNDJmYTIxMTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVn cmVzcy5jCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzcy5jCkBAIC0xNDYsMTIg KzE0NiwxMiBAQCBzdGF0aWMgdm9pZCBtYWtlX2RpcmVjdG9yeShjb25zdCBjaGFyICpkaXIp Owogc3RhdGljIHZvaWQgdGVzdF9zdGF0dXNfcHJpbnQoYm9vbCBvaywgY29uc3QgY2hhciAq dGVzdG5hbWUsIGRvdWJsZSBydW50aW1lLCBib29sIHBhcmFsbGVsKTsKIHN0YXRpYyB2b2lk IHRlc3Rfc3RhdHVzX29rKGNvbnN0IGNoYXIgKnRlc3RuYW1lLCBkb3VibGUgcnVudGltZSwg Ym9vbCBwYXJhbGxlbCk7CiBzdGF0aWMgdm9pZCB0ZXN0X3N0YXR1c19mYWlsZWQoY29uc3Qg Y2hhciAqdGVzdG5hbWUsIGRvdWJsZSBydW50aW1lLCBib29sIHBhcmFsbGVsKTsKLXN0YXRp YyB2b2lkIGJhaWxfb3V0KGJvb2wgbm9hdGV4aXQsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBn X2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7Ci1zdGF0aWMgdm9pZCBlbWl0X3RhcF9vdXRwdXQo VEFQdHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRm KDIsIDMpOworc3RhdGljIHZvaWQgYmFpbF9vdXQoYm9vbCBub2F0ZXhpdCwgY29uc3QgY2hh ciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitzdGF0aWMgdm9pZCBl bWl0X3RhcF9vdXRwdXQoVEFQdHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdf YXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIHN0YXRpYyB2b2lkIGVtaXRfdGFwX291dHB1dF92 KFRBUHR5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3ApIHBnX2F0dHJp YnV0ZV9wcmludGYoMiwgMCk7CiAKIHN0YXRpYyBTdHJpbmdJbmZvIHBzcWxfc3RhcnRfY29t bWFuZCh2b2lkKTsKLXN0YXRpYyB2b2lkIHBzcWxfYWRkX2NvbW1hbmQoU3RyaW5nSW5mbyBi dWYsIGNvbnN0IGNoYXIgKnF1ZXJ5LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsK K3N0YXRpYyB2b2lkIHBzcWxfYWRkX2NvbW1hbmQoU3RyaW5nSW5mbyBidWYsIGNvbnN0IGNo YXIgKnF1ZXJ5LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiBzdGF0aWMgdm9p ZCBwc3FsX2VuZF9jb21tYW5kKFN0cmluZ0luZm8gYnVmLCBjb25zdCBjaGFyICpkYXRhYmFz ZSk7CiAKIC8qCkBAIC0yNTIsNyArMjUyLDcgQEAgc3BsaXRfdG9fc3RyaW5nbGlzdChjb25z dCBjaGFyICpzLCBjb25zdCBjaGFyICpkZWxpbSwgX3N0cmluZ2xpc3QgKipsaXN0aGVhZCkK ICAqIGV4aXQgaGFuZGxlcnMsIHRodXMgYXZvaWQgYW55IHJpc2sgb2YgYm90dG9tbGVzcyBy ZWN1cnNpb24gY2FsbHMgdG8gZXhpdC4KICAqLwogc3RhdGljIHZvaWQKLWJhaWxfb3V0KGJv b2wgbm9hdGV4aXQsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitiYWlsX291dChib29sIG5vYXRl eGl0LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcDsKIApAQCAtMzI4 LDcgKzMyOCw3IEBAIHRlc3Rfc3RhdHVzX2ZhaWxlZChjb25zdCBjaGFyICp0ZXN0bmFtZSwg ZG91YmxlIHJ1bnRpbWUsIGJvb2wgcGFyYWxsZWwpCiAKIAogc3RhdGljIHZvaWQKLWVtaXRf dGFwX291dHB1dChUQVB0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitlbWl0X3Rh cF9vdXRwdXQoVEFQdHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9s aXN0CQlhcmdwOwogCkBAIC0xMTI5LDcgKzExMjksNyBAQCBwc3FsX3N0YXJ0X2NvbW1hbmQo dm9pZCkKIH0KIAogc3RhdGljIHZvaWQKLXBzcWxfYWRkX2NvbW1hbmQoU3RyaW5nSW5mbyBi dWYsIGNvbnN0IGNoYXIgKnF1ZXJ5LC4uLikKK3BzcWxfYWRkX2NvbW1hbmQoU3RyaW5nSW5m byBidWYsIGNvbnN0IGNoYXIgKnF1ZXJ5LCAuLi4pCiB7CiAJU3RyaW5nSW5mb0RhdGEgY21k YnVmOwogCWNvbnN0IGNoYXIgKmNtZHB0cjsKZGlmZiAtLWdpdCBhL3NyYy90aW1lem9uZS96 aWMuYyBiL3NyYy90aW1lem9uZS96aWMuYwppbmRleCAyZjM2NDg2YTM1MC4uOGE5MjVjYmVk NmIgMTAwNjQ0Ci0tLSBhL3NyYy90aW1lem9uZS96aWMuYworKysgYi9zcmMvdGltZXpvbmUv emljLmMKQEAgLTEyMyw4ICsxMjMsOCBAQCBleHRlcm4gaW50CWxpbmsoY29uc3QgY2hhciAq dGFyZ2V0LCBjb25zdCBjaGFyICpsaW5rbmFtZSk7CiAjZW5kaWYKIAogc3RhdGljIHZvaWQg dmVycm9yKGNvbnN0IGNoYXIgKmNvbnN0IHN0cmluZywgdmFfbGlzdCBhcmdzKSBwZ19hdHRy aWJ1dGVfcHJpbnRmKDEsIDApOwotc3RhdGljIHZvaWQgZXJyb3IoY29uc3QgY2hhciAqY29u c3Qgc3RyaW5nLC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKLXN0YXRpYyB2b2lk IHdhcm5pbmcoY29uc3QgY2hhciAqY29uc3Qgc3RyaW5nLC4uLikgcGdfYXR0cmlidXRlX3By aW50ZigxLCAyKTsKK3N0YXRpYyB2b2lkIGVycm9yKGNvbnN0IGNoYXIgKmNvbnN0IHN0cmlu ZywgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworc3RhdGljIHZvaWQgd2Fybmlu Zyhjb25zdCBjaGFyICpjb25zdCBzdHJpbmcsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zigx LCAyKTsKIHN0YXRpYyB2b2lkIGFkZHR0KHppY190IHN0YXJ0dGltZSwgaW50IHR5cGUpOwog c3RhdGljIGludAlhZGR0eXBlKHppY190IHV0b2ZmLCBjaGFyIGNvbnN0ICphYmJyLAogCQkJ CQlib29sIGlzZHN0LCBib29sIHR0aXNzdGQsIGJvb2wgdHRpc3V0KTsKQEAgLTUxNSw3ICs1 MTUsNyBAQCB2ZXJyb3IoY29uc3QgY2hhciAqY29uc3Qgc3RyaW5nLCB2YV9saXN0IGFyZ3Mp CiB9CiAKIHN0YXRpYyB2b2lkCi1lcnJvcihjb25zdCBjaGFyICpjb25zdCBzdHJpbmcsLi4u KQorZXJyb3IoY29uc3QgY2hhciAqY29uc3Qgc3RyaW5nLCAuLi4pCiB7CiAJdmFfbGlzdAkJ YXJnczsKIApAQCAtNTI2LDcgKzUyNiw3IEBAIGVycm9yKGNvbnN0IGNoYXIgKmNvbnN0IHN0 cmluZywuLi4pCiB9CiAKIHN0YXRpYyB2b2lkCi13YXJuaW5nKGNvbnN0IGNoYXIgKmNvbnN0 IHN0cmluZywuLi4pCit3YXJuaW5nKGNvbnN0IGNoYXIgKmNvbnN0IHN0cmluZywgLi4uKQog ewogCXZhX2xpc3QJCWFyZ3M7CiAKLS0gCjIuNDcuMwoK --------------0dIJ43fsKrTes75UbSWHXtWJ--