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 1wiARk-0002ze-38 for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Jul 2026 12:35:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wiARj-000B38-0q for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Jul 2026 12:35:12 +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 1wiARi-000B2z-1e for pgsql-hackers@lists.postgresql.org; Fri, 10 Jul 2026 12:35:11 +0000 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wiARe-000000001y2-07v5 for pgsql-hackers@postgresql.org; Fri, 10 Jul 2026 12:35:10 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id EEDA03ECF3; Fri, 10 Jul 2026 12:34:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vondra.me; s=gm1; t=1783686898; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=H5yZY7aXRUj5T+I4rnqia7N/TpLtA+i/WjuG/TWzLwY=; b=iv76LFdBUMBzvRZhe/EiCN2p+Boiw4KN1phabdoVuyT1txc55gl/+N9V9FqJRS/0eFub+p /znhIhZ1EZO1tGl0CpLODSRg5x/UA2PoJiBBaqPbz91xzFxEpgTI1Sa5ggfWD/Bl/0bb11 AL5VpIXEbeyJw83q2TtZa59BP2E0ypSyfjWvcBmsBvxx1BRW6oxHlroqjVITMXVspoliSM nliiGxsO7MKiiG385vwmoySprIVdS/4tkOZuKNSgLBeDby/OUjonf5POL0I2Xs9mzfKaOr vQlpf1FQzZmwHluncIajOWuOlM5gwHVhZa805lK5YZsqwYuMmyZ9sNWOgKX/ng== Content-Type: multipart/mixed; boundary="------------pYAtEFM0mtoOR6cYEisDdY0G" Message-ID: <57d9a1c8-d4d7-4154-bb46-9e03ca3bde09@vondra.me> Date: Fri, 10 Jul 2026 14:34:54 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: s/pg_attribute_always_inline/pg_always_inline/? To: Tom Lane Cc: David Rowley , Peter Geoghegan , Andres Freund , Peter Eisentraut , pgsql-hackers@postgresql.org References: <56def459-2b95-42bc-b4e4-26e57f08b064@eisentraut.org> <4370bec0-df13-40f3-92ee-75974182e41f@vondra.me> <2391698.1783556089@sss.pgh.pa.us> <3184af6f-75a2-4b43-8223-897b71970fef@vondra.me> <2811067.1783642452@sss.pgh.pa.us> Content-Language: en-US From: Tomas Vondra In-Reply-To: <2811067.1783642452@sss.pgh.pa.us> X-GND-Sasl: tomas@vondra.me X-GND-State: clean X-GND-Score: -100 X-GND-Cause: dmFkZTGKcqf2v/wzJ6fQJ5TdpojWtXtCW6cw7gpS34oue4CIrN3EWapJdY9ASi9Dmlo3bcTxe8HrEz5ZZ+rthimpZ/z5wS+6OQBwDkNI0Lyq1CK0NZutjj2npkJ7XP2pEwguE6TbGaxynixIHGnRuRCUckq/CMLNuA/nsCXRVq1AcGQZtEVu6+pSI1WpKS6vw/Y6h5E/SVm8F0v45s1S6D99w2nJLdgHKqrtWeSnW76YuHyqtWaxHbKHXV7DOvhtuSQ15JtP8TfgkCiUJIXQQMCwQd3RWnZvHlWuHJyBPSRNfE5AB+gr/GWVi5oDupH34snpz1Mbl/pINhw5Q1zv1QPnhlp2CB9NKwIjVBAgHK0l9fZILk7RfdJAONrVZto4XO5dGIbeTN2f36XsSO39OQAWa7BwyZWLQb0/niDKk5/Vr0j83oo38npKYq7uhF4wqd/AL4kX6ftC+5f2s+Cr/YsJHPycRje8cUzjbZzEh82h55rRxDTSagBTI7MIdL/BFYKEfmwzaj5nAOKOPKYajBcjGvz39d9GB+2GEyRvjF/qcAzMoqleZGmUE2zMVMwER1I6Pd6haP4q2fGRcCcd61WRRBA3zpMHTABaKYwh2JYAQO3nbsYjOy3uppl/3i4gEQXEaiencBACjVLH98QvyoO0ED77wq35srIQDqJ9wIDN+g7xwQ 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. --------------pYAtEFM0mtoOR6cYEisDdY0G Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 7/10/26 02:14, Tom Lane wrote: > Tomas Vondra writes: >> Does "backpatching the new macro" mean we'd also adjust all existing >> places to use the new macro or not? I mean, we could backpatch just the >> bit in c.h. I plan to adjust the places, to minimize possible conflicts >> when backpatching other stuff. > > I think it'd be sufficient to add the new macro to the old branches. > The point of back-patching at all, I think, is to save ourselves > work if we have to back-patch some new code that uses the new style. > I'm not very worried about new code using the new macro name. We only use it in ~50 places, and I don't think fixes will use it very often. It's more likely a fix will touching some code nearby, and the cherry-pick will fail because of the difference. I intend to backpatch "everything", with backbranches having both macros (as in the -19 patch). regards -- Tomas Vondra --------------pYAtEFM0mtoOR6cYEisDdY0G Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-Shorten-pg_attribute_always_inline-to-pg_always_i-master.patch" Content-Disposition: attachment; filename*0="v2-0001-Shorten-pg_attribute_always_inline-to-pg_always_i-ma"; filename*1="ster.patch" Content-Transfer-Encoding: base64 RnJvbSAxMjhkOTMzYTBkMjVkMjQ2YzQwODZjZTAxY2JjYjJiNTk2OTM4YzQ0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB0ZXN0IDx0ZXN0PgpEYXRlOiBGcmksIDEwIEp1bCAy MDI2IDAxOjU0OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCB2Ml0gU2hvcnRlbiBwZ19hdHRy aWJ1dGVfYWx3YXlzX2lubGluZSB0byBwZ19hbHdheXNfaW5saW5lCgpUaGUgcGdfYXR0cmli dXRlX2Fsd2F5c19pbmxpbmUgbWFjcm8gbmFtZSBpcyBzbyBsb25nIGl0IGZvcmNlcyBwZ2lu ZGVudAp0byBmb3JtYXQgdGhlIGNvZGUgaW4gc3RyYW5nZSB3YXlzLiBXaGljaCBtYXkgaW5j ZW50aXZpemUgcGF0Y2ggYXV0aG9ycwp0byBlaXRoZXIgc3RydWN0dXJlIHRoZSBjb2RlIGlu IHN0cmFuZ2Ugd2F5cyAoZS5nLiByZW9yZGVyIHByb3RvdHlwZXMpLAp1c2Ugc2hvcnRlciBu YW1lcywgZXRjLiBOZWl0aGVyIGlzIHZlcnkgZGVzaXJhYmxlIGZvciBjb2RlIHJlYWRhYmls aXR5LgoKVGhpcyBzaG9ydGVucyB0aGUgbmFtZSBieSByZW1vdmluZyB0aGUgX2F0dHJpYnV0 ZV8gcGFydC4gSXQgYWxzbyBtYWtlcwppdCBtb3JlIGNvbnNpc3RlbnQgd2l0aCBwZ19ub2lu bGluZSwgd2hpY2ggZG9lcyBub3QgaGF2ZSB0aGUgX2F0dHJpYnV0ZV8KcGFydCBlaXRoZXIu CgpCYWNrcGF0Y2hlZCB0byBhbGwgc3VwcG9ydGVkIGJyYW5jaGVzLCB0byBwcmV2ZW50IGNv bmZsaWN0cyB3aGVuCmJhY2twYXRjaGluZyBvdGhlciBmaXhlcy4gVGhlIGJhY2ticmFuY2hl cyBob3dldmVyIGtlZXAgYm90aCB0aGUgb2xkCmFuZCBuZXcgbWFjcm8gbmFtZSwgc28gdGhh dCBleGlzdGluZyBjb2RlIGtlZXBzIHdvcmtpbmcuCgpBdXRob3I6IEFuZHJlcyBGcmV1bmQg PGFuZHJlc0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IFBldGVyIEdlb2doZWdhbiA8cGdA Ym93dC5pZT4KUmV2aWV3ZWQtYnk6IFRvbWFzIFZvbmRyYSA8dG9tYXNAdm9uZHJhLm1lPgpE aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2JxcWRlaGFocG9hMzZpZ3BpY3R1cXlu MnMybWV4azN0M2VoaWRoMmZmZDJzbGIzNWU1QHJ6Z2tzdWlzemdiZwpCYWNrcGF0Y2gtdGhy b3VnaDogMTQKLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgIHwg IDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgfCAgNCArLQog c3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jICB8IDMyICsrKysrKysrLS0t LS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jICAgICAgICAgfCAgNCArLQog c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyB8IDU0ICsrKysrKysrKysr KystLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1R1cGxlcy5jICAg ICB8ICA2ICstLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUhhc2hqb2luLmMgICB8ICAy ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jICAgIHwgIDQgKy0KIHNy Yy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYyAgfCAgNiArLS0KIHNyYy9iYWNr ZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jICAgfCAyNCArKysrKystLS0tLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9qc29uLmMgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvY2F0Y2FjaGUuYyAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9jLmggICAg ICAgICAgICAgICAgICAgICAgIHwgIDggKystLQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y1NjYW4uaCAgICAgICB8ICA4ICsrLS0KIHNyYy9pbmNsdWRlL3BvcnRhYmlsaXR5L2luc3Ry X3RpbWUuaCAgfCAgOCArKy0tCiAxNSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCsp LCA4MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IGFi ZmQ4ZTg5NzBhLi40ZjM3M2I4NjAyOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMK QEAgLTUxOSw3ICs1MTksNyBAQCBoZWFwX3NldHNjYW5saW1pdHMoVGFibGVTY2FuRGVzYyBz c2NhbiwgQmxvY2tOdW1iZXIgc3RhcnRCbGssIEJsb2NrTnVtYmVyIG51bUJsawogICogbXVs dGlwbGUgdGltZXMsIHdpdGggY29uc3RhbnQgYXJndW1lbnRzIGZvciBhbGxfdmlzaWJsZSwK ICAqIGNoZWNrX3NlcmlhbGl6YWJsZS4KICAqLwotcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxp bmUKK3BnX2Fsd2F5c19pbmxpbmUKIHN0YXRpYyBpbnQKIHBhZ2VfY29sbGVjdF90dXBsZXMo SGVhcFNjYW5EZXNjIHNjYW4sIFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQlQYWdlIHBhZ2Us IEJ1ZmZlciBidWZmZXIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggYThi YmY2Mjg0YTcuLmI0MzFhOTIxZTRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5j CkBAIC0xMTQzLDkgKzExNDMsOSBAQCBYTG9nSW5zZXJ0UmVjb3JkKFhMb2dSZWNEYXRhICpy ZGF0YSwKICAqCiAgKiBOQjogVGVzdGluZyBzaG93cyB0aGF0IFhMb2dJbnNlcnRSZWNvcmQg cnVucyBmYXN0ZXIgaWYgdGhpcyBjb2RlIGlzIGlubGluZWQ7CiAgKiBob3dldmVyLCBiZWNh dXNlIHRoZXJlIGFyZSB0d28gY2FsbCBzaXRlcywgdGhlIGNvbXBpbGVyIGlzIHJlbHVjdGFu dCB0bwotICogaW5saW5lLiBXZSB1c2UgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgaGVy ZSB0byB0cnkgdG8gY29udmluY2UgaXQuCisgKiBpbmxpbmUuIFdlIHVzZSBwZ19hbHdheXNf aW5saW5lIGhlcmUgdG8gdHJ5IHRvIGNvbnZpbmNlIGl0LgogICovCi1zdGF0aWMgcGdfYXR0 cmlidXRlX2Fsd2F5c19pbmxpbmUgdm9pZAorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgdm9p ZAogUmVzZXJ2ZVhMb2dJbnNlcnRMb2NhdGlvbihpbnQgc2l6ZSwgWExvZ1JlY1B0ciAqU3Rh cnRQb3MsIFhMb2dSZWNQdHIgKkVuZFBvcywKIAkJCQkJCSAgWExvZ1JlY1B0ciAqUHJldlB0 cikKIHsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2Uu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYwppbmRleCA2NWZkNWEw YWI0Zi4uNTAwODEwNTc3YWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Nv cHlmcm9tcGFyc2UuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNl LmMKQEAgLTE0NCwyMiArMTQ0LDIyIEBAIHN0YXRpYyBjb25zdCBjaGFyIEJpbmFyeVNpZ25h dHVyZVsxMV0gPSAiUEdDT1BZXG5cMzc3XHJcblwwIjsKIAogLyogbm9uLWV4cG9ydCBmdW5j dGlvbiBwcm90b3R5cGVzICovCiBzdGF0aWMgYm9vbCBDb3B5UmVhZExpbmUoQ29weUZyb21T dGF0ZSBjc3RhdGUsIGJvb2wgaXNfY3N2KTsKLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlz X2lubGluZSBib29sIENvcHlSZWFkTGluZVRleHQoQ29weUZyb21TdGF0ZSBjc3RhdGUsCi0J CQkJCQkJCQkJCQkJCWJvb2wgaXNfY3N2KTsKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIGJv b2wgQ29weVJlYWRMaW5lVGV4dChDb3B5RnJvbVN0YXRlIGNzdGF0ZSwKKwkJCQkJCQkJCQkJ ICBib29sIGlzX2Nzdik7CiBzdGF0aWMgaW50CUNvcHlSZWFkQXR0cmlidXRlc1RleHQoQ29w eUZyb21TdGF0ZSBjc3RhdGUpOwogc3RhdGljIGludAlDb3B5UmVhZEF0dHJpYnV0ZXNDU1Yo Q29weUZyb21TdGF0ZSBjc3RhdGUpOwogc3RhdGljIERhdHVtIENvcHlSZWFkQmluYXJ5QXR0 cmlidXRlKENvcHlGcm9tU3RhdGUgY3N0YXRlLCBGbWdySW5mbyAqZmxpbmZvLAogCQkJCQkJ CQkJIE9pZCB0eXBpb3BhcmFtLCBpbnQzMiB0eXBtb2QsCiAJCQkJCQkJCQkgYm9vbCAqaXNu dWxsKTsKLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBib29sIENvcHlGcm9t VGV4dExpa2VPbmVSb3coQ29weUZyb21TdGF0ZSBjc3RhdGUsCi0JCQkJCQkJCQkJCQkJCQkg IEV4cHJDb250ZXh0ICplY29udGV4dCwKLQkJCQkJCQkJCQkJCQkJCSAgRGF0dW0gKnZhbHVl cywKLQkJCQkJCQkJCQkJCQkJCSAgYm9vbCAqbnVsbHMsCi0JCQkJCQkJCQkJCQkJCQkgIGJv b2wgaXNfY3N2KTsKLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBib29sIE5l eHRDb3B5RnJvbVJhd0ZpZWxkc0ludGVybmFsKENvcHlGcm9tU3RhdGUgY3N0YXRlLAotCQkJ CQkJCQkJCQkJCQkJCQkgY2hhciAqKipmaWVsZHMsCi0JCQkJCQkJCQkJCQkJCQkJCSBpbnQg Km5maWVsZHMsCi0JCQkJCQkJCQkJCQkJCQkJCSBib29sIGlzX2Nzdik7CitzdGF0aWMgcGdf YWx3YXlzX2lubGluZSBib29sIENvcHlGcm9tVGV4dExpa2VPbmVSb3coQ29weUZyb21TdGF0 ZSBjc3RhdGUsCisJCQkJCQkJCQkJCQkJRXhwckNvbnRleHQgKmVjb250ZXh0LAorCQkJCQkJ CQkJCQkJCURhdHVtICp2YWx1ZXMsCisJCQkJCQkJCQkJCQkJYm9vbCAqbnVsbHMsCisJCQkJ CQkJCQkJCQkJYm9vbCBpc19jc3YpOworc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgYm9vbCBO ZXh0Q29weUZyb21SYXdGaWVsZHNJbnRlcm5hbChDb3B5RnJvbVN0YXRlIGNzdGF0ZSwKKwkJ CQkJCQkJCQkJCQkJICAgY2hhciAqKipmaWVsZHMsCisJCQkJCQkJCQkJCQkJCSAgIGludCAq bmZpZWxkcywKKwkJCQkJCQkJCQkJCQkJICAgYm9vbCBpc19jc3YpOwogCiAKIC8qIExvdy1s ZXZlbCBjb21tdW5pY2F0aW9ucyBmdW5jdGlvbnMgKi8KQEAgLTc2OSwxMSArNzY5LDExIEBA IE5leHRDb3B5RnJvbVJhd0ZpZWxkcyhDb3B5RnJvbVN0YXRlIGNzdGF0ZSwgY2hhciAqKipm aWVsZHMsIGludCAqbmZpZWxkcykKICAqCiAgKiBOT1RFOiBmb3JjZV9ub3RfbnVsbCBvcHRp b24gYXJlIG5vdCBhcHBsaWVkIHRvIHRoZSByZXR1cm5lZCBmaWVsZHMuCiAgKgotICogV2Ug dXNlIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIHRvIHJlZHVjZSBmdW5jdGlvbiBjYWxs IG92ZXJoZWFkCisgKiBXZSB1c2UgcGdfYWx3YXlzX2lubGluZSB0byByZWR1Y2UgZnVuY3Rp b24gY2FsbCBvdmVyaGVhZAogICogYW5kIHRvIGhlbHAgY29tcGlsZXJzIHRvIG9wdGltaXpl IGF3YXkgdGhlICdpc19jc3YnIGNvbmRpdGlvbiB3aGVuIGNhbGxlZAogICogYnkgaW50ZXJu YWwgZnVuY3Rpb25zIHN1Y2ggYXMgQ29weUZyb21UZXh0TGlrZU9uZVJvdygpLgogICovCi1z dGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgYm9vbAorc3RhdGljIHBnX2Fsd2F5 c19pbmxpbmUgYm9vbAogTmV4dENvcHlGcm9tUmF3RmllbGRzSW50ZXJuYWwoQ29weUZyb21T dGF0ZSBjc3RhdGUsIGNoYXIgKioqZmllbGRzLCBpbnQgKm5maWVsZHMsIGJvb2wgaXNfY3N2 KQogewogCWludAkJCWZsZGN0OwpAQCAtOTQ2LDEwICs5NDYsMTAgQEAgQ29weUZyb21DU1ZP bmVSb3coQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgRGF0 dW0gKnZhbHVlcywKIC8qCiAgKiBXb3JraG9yc2UgZm9yIENvcHlGcm9tVGV4dE9uZVJvdygp IGFuZCBDb3B5RnJvbUNTVk9uZVJvdygpLgogICoKLSAqIFdlIHVzZSBwZ19hdHRyaWJ1dGVf YWx3YXlzX2lubGluZSB0byByZWR1Y2UgZnVuY3Rpb24gY2FsbCBvdmVyaGVhZAorICogV2Ug dXNlIHBnX2Fsd2F5c19pbmxpbmUgdG8gcmVkdWNlIGZ1bmN0aW9uIGNhbGwgb3ZlcmhlYWQK ICAqIGFuZCB0byBoZWxwIGNvbXBpbGVycyB0byBvcHRpbWl6ZSBhd2F5IHRoZSAnaXNfY3N2 JyBjb25kaXRpb24uCiAgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBi b29sCitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSBib29sCiBDb3B5RnJvbVRleHRMaWtlT25l Um93KENvcHlGcm9tU3RhdGUgY3N0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsCiAJCQkJ CSAgIERhdHVtICp2YWx1ZXMsIGJvb2wgKm51bGxzLCBib29sIGlzX2NzdikKIHsKQEAgLTE0 NjMsNyArMTQ2Myw3IEBAIENvcHlSZWFkTGluZVRleHRTSU1ESGVscGVyKENvcHlGcm9tU3Rh dGUgY3N0YXRlLCBib29sIGlzX2NzdiwKIC8qCiAgKiBDb3B5UmVhZExpbmVUZXh0IC0gaW5u ZXIgbG9vcCBvZiBDb3B5UmVhZExpbmUgZm9yIHRleHQgbW9kZQogICovCi1zdGF0aWMgcGdf YXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgYm9vbAorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUg Ym9vbAogQ29weVJlYWRMaW5lVGV4dChDb3B5RnJvbVN0YXRlIGNzdGF0ZSwgYm9vbCBpc19j c3YpCiB7CiAJY2hhcgkgICAqY29weV9pbnB1dF9idWY7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9jb3B5dG8uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5j CmluZGV4IGQzYWRjNzUyYWUzLi5mOWJjNjE3ZGRiMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvY29weXRvLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRv LmMKQEAgLTI5NCwxMCArMjk0LDEwIEBAIENvcHlUb0NTVk9uZVJvdyhDb3B5VG9TdGF0ZSBj c3RhdGUsIFR1cGxlVGFibGVTbG90ICpzbG90KQogLyoKICAqIFdvcmtob3JzZSBmb3IgQ29w eVRvVGV4dE9uZVJvdygpIGFuZCBDb3B5VG9DU1ZPbmVSb3coKS4KICAqCi0gKiBXZSB1c2Ug cGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgdG8gcmVkdWNlIGZ1bmN0aW9uIGNhbGwgb3Zl cmhlYWQKKyAqIFdlIHVzZSBwZ19hbHdheXNfaW5saW5lIHRvIHJlZHVjZSBmdW5jdGlvbiBj YWxsIG92ZXJoZWFkCiAgKiBhbmQgdG8gaGVscCBjb21waWxlcnMgdG8gb3B0aW1pemUgYXdh eSB0aGUgJ2lzX2NzdicgY29uZGl0aW9uLgogICovCi1zdGF0aWMgcGdfYXR0cmlidXRlX2Fs d2F5c19pbmxpbmUgdm9pZAorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgdm9pZAogQ29weVRv VGV4dExpa2VPbmVSb3coQ29weVRvU3RhdGUgY3N0YXRlLAogCQkJCQkgVHVwbGVUYWJsZVNs b3QgKnNsb3QsCiAJCQkJCSBib29sIGlzX2NzdikKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj RXhwckludGVycC5jCmluZGV4IDA2MzRhZjk2NGE5Li5kNDU4MTJjMjNhYSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC0xNzgsMjQgKzE3OCwyNCBAQCBz dGF0aWMgRGF0dW0gRXhlY0p1c3RIYXNoSW5uZXJWYXJWaXJ0KEV4cHJTdGF0ZSAqc3RhdGUs IEV4cHJDb250ZXh0ICplY29udGV4dCwgYgogc3RhdGljIERhdHVtIEV4ZWNKdXN0SGFzaE91 dGVyVmFyU3RyaWN0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwg Ym9vbCAqaXNudWxsKTsKIAogLyogZXhlY3V0aW9uIGhlbHBlciBmdW5jdGlvbnMgKi8KLXN0 YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSB2b2lkIEV4ZWNFdmFsQXJyYXlDb21w YXJlSW50ZXJuYWwoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sCi0JCQkJCQkJCQkJCQkJCQkJ CUFycmF5VHlwZSAqYXJyLAotCQkJCQkJCQkJCQkJCQkJCQlpbnQxNiB0eXBsZW4sCi0JCQkJ CQkJCQkJCQkJCQkJCWJvb2wgdHlwYnl2YWwsCi0JCQkJCQkJCQkJCQkJCQkJCWNoYXIgdHlw YWxpZ24sCi0JCQkJCQkJCQkJCQkJCQkJCWJvb2wgdXNlT3IsCi0JCQkJCQkJCQkJCQkJCQkJ CURhdHVtICpyZXN1bHQsCi0JCQkJCQkJCQkJCQkJCQkJCWJvb2wgKnJlc3VsdG51bGwpOwot c3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIHZvaWQgRXhlY0FnZ1BsYWluVHJh bnNCeVZhbChBZ2dTdGF0ZSAqYWdnc3RhdGUsCi0JCQkJCQkJCQkJCQkJCQkgIEFnZ1N0YXRl UGVyVHJhbnMgcGVydHJhbnMsCi0JCQkJCQkJCQkJCQkJCQkgIEFnZ1N0YXRlUGVyR3JvdXAg cGVyZ3JvdXAsCi0JCQkJCQkJCQkJCQkJCQkgIEV4cHJDb250ZXh0ICphZ2djb250ZXh0LAot CQkJCQkJCQkJCQkJCQkJICBpbnQgc2V0bm8pOwotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdh eXNfaW5saW5lIHZvaWQgRXhlY0FnZ1BsYWluVHJhbnNCeVJlZihBZ2dTdGF0ZSAqYWdnc3Rh dGUsCi0JCQkJCQkJCQkJCQkJCQkgIEFnZ1N0YXRlUGVyVHJhbnMgcGVydHJhbnMsCi0JCQkJ CQkJCQkJCQkJCQkgIEFnZ1N0YXRlUGVyR3JvdXAgcGVyZ3JvdXAsCi0JCQkJCQkJCQkJCQkJ CQkgIEV4cHJDb250ZXh0ICphZ2djb250ZXh0LAotCQkJCQkJCQkJCQkJCQkJICBpbnQgc2V0 bm8pOworc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgdm9pZCBFeGVjRXZhbEFycmF5Q29tcGFy ZUludGVybmFsKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLAorCQkJCQkJCQkJCQkJCQkgIEFy cmF5VHlwZSAqYXJyLAorCQkJCQkJCQkJCQkJCQkgIGludDE2IHR5cGxlbiwKKwkJCQkJCQkJ CQkJCQkJICBib29sIHR5cGJ5dmFsLAorCQkJCQkJCQkJCQkJCQkgIGNoYXIgdHlwYWxpZ24s CisJCQkJCQkJCQkJCQkJCSAgYm9vbCB1c2VPciwKKwkJCQkJCQkJCQkJCQkJICBEYXR1bSAq cmVzdWx0LAorCQkJCQkJCQkJCQkJCQkgIGJvb2wgKnJlc3VsdG51bGwpOworc3RhdGljIHBn X2Fsd2F5c19pbmxpbmUgdm9pZCBFeGVjQWdnUGxhaW5UcmFuc0J5VmFsKEFnZ1N0YXRlICph Z2dzdGF0ZSwKKwkJCQkJCQkJCQkJCQlBZ2dTdGF0ZVBlclRyYW5zIHBlcnRyYW5zLAorCQkJ CQkJCQkJCQkJCUFnZ1N0YXRlUGVyR3JvdXAgcGVyZ3JvdXAsCisJCQkJCQkJCQkJCQkJRXhw ckNvbnRleHQgKmFnZ2NvbnRleHQsCisJCQkJCQkJCQkJCQkJaW50IHNldG5vKTsKK3N0YXRp YyBwZ19hbHdheXNfaW5saW5lIHZvaWQgRXhlY0FnZ1BsYWluVHJhbnNCeVJlZihBZ2dTdGF0 ZSAqYWdnc3RhdGUsCisJCQkJCQkJCQkJCQkJQWdnU3RhdGVQZXJUcmFucyBwZXJ0cmFucywK KwkJCQkJCQkJCQkJCQlBZ2dTdGF0ZVBlckdyb3VwIHBlcmdyb3VwLAorCQkJCQkJCQkJCQkJ CUV4cHJDb250ZXh0ICphZ2djb250ZXh0LAorCQkJCQkJCQkJCQkJCWludCBzZXRubyk7CiBz dGF0aWMgY2hhciAqRXhlY0dldEpzb25WYWx1ZUl0ZW1TdHJpbmcoSnNvbmJWYWx1ZSAqaXRl bSwgYm9vbCAqcmVzbnVsbCk7CiAKIC8qCkBAIC0yNTUyLDcgKzI1NTIsNyBAQCBnZXRfY2Fj aGVkX3Jvd3R5cGUoT2lkIHR5cGVfaWQsIGludDMyIHR5cG1vZCwKICAqLwogCiAvKiBpbXBs ZW1lbnRhdGlvbiBvZiBFeGVjSnVzdChJbm5lcnxPdXRlcnxTY2FuKVZhciAqLwotc3RhdGlj IHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIERhdHVtCitzdGF0aWMgcGdfYWx3YXlzX2lu bGluZSBEYXR1bQogRXhlY0p1c3RWYXJJbXBsKEV4cHJTdGF0ZSAqc3RhdGUsIFR1cGxlVGFi bGVTbG90ICpzbG90LCBib29sICppc251bGwpCiB7CiAJRXhwckV2YWxTdGVwICpvcCA9ICZz dGF0ZS0+c3RlcHNbMV07CkBAIC0yNTkwLDcgKzI1OTAsNyBAQCBFeGVjSnVzdFNjYW5WYXIo RXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICppc251bGwp CiB9CiAKIC8qIGltcGxlbWVudGF0aW9uIG9mIEV4ZWNKdXN0QXNzaWduKElubmVyfE91dGVy fFNjYW4pVmFyICovCi1zdGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgRGF0dW0K K3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIERhdHVtCiBFeGVjSnVzdEFzc2lnblZhckltcGwo RXhwclN0YXRlICpzdGF0ZSwgVHVwbGVUYWJsZVNsb3QgKmluc2xvdCwgYm9vbCAqaXNudWxs KQogewogCUV4cHJFdmFsU3RlcCAqb3AgPSAmc3RhdGUtPnN0ZXBzWzFdOwpAQCAtMjY4NSw3 ICsyNjg1LDcgQEAgRXhlY0p1c3RDb25zdChFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4 dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIH0KIAogLyogaW1wbGVtZW50YXRpb24gb2Yg RXhlY0p1c3QoSW5uZXJ8T3V0ZXJ8U2NhbilWYXJWaXJ0ICovCi1zdGF0aWMgcGdfYXR0cmli dXRlX2Fsd2F5c19pbmxpbmUgRGF0dW0KK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIERhdHVt CiBFeGVjSnVzdFZhclZpcnRJbXBsKEV4cHJTdGF0ZSAqc3RhdGUsIFR1cGxlVGFibGVTbG90 ICpzbG90LCBib29sICppc251bGwpCiB7CiAJRXhwckV2YWxTdGVwICpvcCA9ICZzdGF0ZS0+ c3RlcHNbMF07CkBAIC0yNzI4LDcgKzI3MjgsNyBAQCBFeGVjSnVzdFNjYW5WYXJWaXJ0KEV4 cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQog fQogCiAvKiBpbXBsZW1lbnRhdGlvbiBvZiBFeGVjSnVzdEFzc2lnbihJbm5lcnxPdXRlcnxT Y2FuKVZhclZpcnQgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBEYXR1 bQorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgRGF0dW0KIEV4ZWNKdXN0QXNzaWduVmFyVmly dEltcGwoRXhwclN0YXRlICpzdGF0ZSwgVHVwbGVUYWJsZVNsb3QgKmluc2xvdCwgYm9vbCAq aXNudWxsKQogewogCUV4cHJFdmFsU3RlcCAqb3AgPSAmc3RhdGUtPnN0ZXBzWzBdOwpAQCAt MjgwNyw3ICsyODA3LDcgQEAgRXhlY0p1c3RIYXNoSW5uZXJWYXJXaXRoSVYoRXhwclN0YXRl ICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LAogfQogCiAvKiBpbXBsZW1lbnRhdGlv biBvZiBFeGVjSnVzdEhhc2goSW5uZXJ8T3V0ZXIpVmFyICovCi1zdGF0aWMgcGdfYXR0cmli dXRlX2Fsd2F5c19pbmxpbmUgRGF0dW0KK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIERhdHVt CiBFeGVjSnVzdEhhc2hWYXJJbXBsKEV4cHJTdGF0ZSAqc3RhdGUsIFR1cGxlVGFibGVTbG90 ICpzbG90LCBib29sICppc251bGwpCiB7CiAJRXhwckV2YWxTdGVwICpmZXRjaG9wID0gJnN0 YXRlLT5zdGVwc1swXTsKQEAgLTI4NDUsNyArMjg0NSw3IEBAIEV4ZWNKdXN0SGFzaElubmVy VmFyKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNu dWxsKQogfQogCiAvKiBpbXBsZW1lbnRhdGlvbiBvZiBFeGVjSnVzdEhhc2goSW5uZXJ8T3V0 ZXIpVmFyVmlydCAqLwotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIERhdHVt CitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSBEYXR1bQogRXhlY0p1c3RIYXNoVmFyVmlydElt cGwoRXhwclN0YXRlICpzdGF0ZSwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsIGJvb2wgKmlzbnVs bCkKIHsKIAlFeHByRXZhbFN0ZXAgKnZhciA9ICZzdGF0ZS0+c3RlcHNbMF07CkBAIC00MTA3 LDcgKzQxMDcsNyBAQCBFeGVjRXZhbFNjYWxhckFycmF5T3AoRXhwclN0YXRlICpzdGF0ZSwg RXhwckV2YWxTdGVwICpvcCkKICAqIENhbGxlcnMgbXVzdCBoYW5kbGUgdGhlIHN0cmljdCBM SFMtaXMtTlVMTDsgcmV0dXJuIE5VTEwgZmFzdCBwYXRoIHByaW9yIHRvCiAgKiBjYWxsaW5n IHRoaXMuCiAgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSB2b2lkCitz dGF0aWMgcGdfYWx3YXlzX2lubGluZSB2b2lkCiBFeGVjRXZhbEFycmF5Q29tcGFyZUludGVy bmFsKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBBcnJheVR5cGUgKmFyciwKIAkJCQkJCQkg aW50MTYgdHlwbGVuLCBib29sIHR5cGJ5dmFsLCBjaGFyIHR5cGFsaWduLAogCQkJCQkJCSBi b29sIHVzZU9yLCBEYXR1bSAqcmVzdWx0LCBib29sICpyZXN1bHRudWxsKQpAQCAtNTkwNiw3 ICs1OTA2LDcgQEAgRXhlY0V2YWxBZ2dPcmRlcmVkVHJhbnNUdXBsZShFeHByU3RhdGUgKnN0 YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogfQogCiAvKiBpbXBsZW1lbnRhdGlvbiBvZiB0cmFu c2l0aW9uIGZ1bmN0aW9uIGludm9jYXRpb24gZm9yIGJ5dmFsIHR5cGVzICovCi1zdGF0aWMg cGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgdm9pZAorc3RhdGljIHBnX2Fsd2F5c19pbmxp bmUgdm9pZAogRXhlY0FnZ1BsYWluVHJhbnNCeVZhbChBZ2dTdGF0ZSAqYWdnc3RhdGUsIEFn Z1N0YXRlUGVyVHJhbnMgcGVydHJhbnMsCiAJCQkJCSAgIEFnZ1N0YXRlUGVyR3JvdXAgcGVy Z3JvdXAsCiAJCQkJCSAgIEV4cHJDb250ZXh0ICphZ2djb250ZXh0LCBpbnQgc2V0bm8pCkBA IC01OTM4LDcgKzU5MzgsNyBAQCBFeGVjQWdnUGxhaW5UcmFuc0J5VmFsKEFnZ1N0YXRlICph Z2dzdGF0ZSwgQWdnU3RhdGVQZXJUcmFucyBwZXJ0cmFucywKIH0KIAogLyogaW1wbGVtZW50 YXRpb24gb2YgdHJhbnNpdGlvbiBmdW5jdGlvbiBpbnZvY2F0aW9uIGZvciBieXJlZiB0eXBl cyAqLwotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIHZvaWQKK3N0YXRpYyBw Z19hbHdheXNfaW5saW5lIHZvaWQKIEV4ZWNBZ2dQbGFpblRyYW5zQnlSZWYoQWdnU3RhdGUg KmFnZ3N0YXRlLCBBZ2dTdGF0ZVBlclRyYW5zIHBlcnRyYW5zLAogCQkJCQkgICBBZ2dTdGF0 ZVBlckdyb3VwIHBlcmdyb3VwLAogCQkJCQkgICBFeHByQ29udGV4dCAqYWdnY29udGV4dCwg aW50IHNldG5vKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1R1cGxl cy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1R1cGxlcy5jCmluZGV4IDdmNGViZjk1 NDMyLi45N2FlMDE5ZDEwYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1R1cGxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNUdXBsZXMuYwpAQCAt NzIsOCArNzIsOCBAQAogCiBzdGF0aWMgVHVwbGVEZXNjIEV4ZWNUeXBlRnJvbVRMSW50ZXJu YWwoTGlzdCAqdGFyZ2V0TGlzdCwKIAkJCQkJCQkJCQlib29sIHNraXBqdW5rKTsKLXN0YXRp YyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSB2b2lkIHNsb3RfZGVmb3JtX2hlYXBfdHVw bGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIEhlYXBUdXBsZSB0dXBsZSwgdWludDMyICpvZmZw LAotCQkJCQkJCQkJCQkJCQkJICBpbnQgcmVxbmF0dHMsIGJvb2wgc3VwcG9ydF9jc3RyaW5n KTsKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIHZvaWQgc2xvdF9kZWZvcm1faGVhcF90dXBs ZShUdXBsZVRhYmxlU2xvdCAqc2xvdCwgSGVhcFR1cGxlIHR1cGxlLCB1aW50MzIgKm9mZnAs CisJCQkJCQkJCQkJCQkJaW50IHJlcW5hdHRzLCBib29sIHN1cHBvcnRfY3N0cmluZyk7CiBz dGF0aWMgaW5saW5lIHZvaWQgdHRzX2J1ZmZlcl9oZWFwX3N0b3JlX3R1cGxlKFR1cGxlVGFi bGVTbG90ICpzbG90LAogCQkJCQkJCQkJCQkgICBIZWFwVHVwbGUgdHVwbGUsCiAJCQkJCQkJ CQkJCSAgIEJ1ZmZlciBidWZmZXIsCkBAIC0xMDEzLDcgKzEwMTMsNyBAQCB0dHNfYnVmZmVy X2hlYXBfc3RvcmVfdHVwbGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIEhlYXBUdXBsZSB0dXBs ZSwKICAqIGVtaXQgY29kZSBkdXJpbmcgaW5saW5pbmcgZm9yIGNzdHJpbmcgZGVmb3JtaW5n IHdoZW4gaXQncyByZXF1aXJlZC4KICAqIGNzdHJpbmdzIGNhbiBleGlzdCBpbiBNaW5pbWFs VHVwbGVzLCBidXQgbm90IGluIEhlYXBUdXBsZXMuCiAgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1 dGVfYWx3YXlzX2lubGluZSB2b2lkCitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSB2b2lkCiBz bG90X2RlZm9ybV9oZWFwX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90LCBIZWFwVHVwbGUg dHVwbGUsIHVpbnQzMiAqb2ZmcCwKIAkJCQkJICAgaW50IHJlcW5hdHRzLCBib29sIHN1cHBv cnRfY3N0cmluZykKIHsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVI YXNoam9pbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUhhc2hqb2luLmMKaW5kZXgg MGIzNjVkNWI0NzUuLjIwMmRkODY2MjUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlSGFzaGpvaW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSGFz aGpvaW4uYwpAQCAtMjIxLDcgKzIyMSw3IEBAIHN0YXRpYyB2b2lkIEV4ZWNQYXJhbGxlbEhh c2hKb2luUGFydGl0aW9uT3V0ZXIoSGFzaEpvaW5TdGF0ZSAqaGpzdGF0ZSk7CiAgKgkJCSAg dGhlIG90aGVyIG9uZSBpcyAib3V0ZXIiLgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi1zdGF0aWMg cGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgVHVwbGVUYWJsZVNsb3QgKgorc3RhdGljIHBn X2Fsd2F5c19pbmxpbmUgVHVwbGVUYWJsZVNsb3QgKgogRXhlY0hhc2hKb2luSW1wbChQbGFu U3RhdGUgKnBzdGF0ZSwgYm9vbCBwYXJhbGxlbCkKIHsKIAlIYXNoSm9pblN0YXRlICpub2Rl ID0gY2FzdE5vZGUoSGFzaEpvaW5TdGF0ZSwgcHN0YXRlKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlU2Vxc2Nhbi5jCmluZGV4IDViY2IwYTg2MWQ3Li5iOGM1MjhjYTA4OSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBUdXBs ZVRhYmxlU2xvdCAqU2VxTmV4dChTZXFTY2FuU3RhdGUgKm5vZGUpOwogICoJCVRoaXMgaXMg YSB3b3JraG9yc2UgZm9yIEV4ZWNTZXFTY2FuCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLXN0YXRp YyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBUdXBsZVRhYmxlU2xvdCAqCitzdGF0aWMg cGdfYWx3YXlzX2lubGluZSBUdXBsZVRhYmxlU2xvdCAqCiBTZXFOZXh0KFNlcVNjYW5TdGF0 ZSAqbm9kZSkKIHsKIAlUYWJsZVNjYW5EZXNjIHNjYW5kZXNjOwpAQCAtOTUsNyArOTUsNyBA QCBTZXFOZXh0KFNlcVNjYW5TdGF0ZSAqbm9kZSkKIC8qCiAgKiBTZXFSZWNoZWNrIC0tIGFj Y2VzcyBtZXRob2Qgcm91dGluZSB0byByZWNoZWNrIGEgdHVwbGUgaW4gRXZhbFBsYW5RdWFs CiAgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBib29sCitzdGF0aWMg cGdfYWx3YXlzX2lubGluZSBib29sCiBTZXFSZWNoZWNrKFNlcVNjYW5TdGF0ZSAqbm9kZSwg VHVwbGVUYWJsZVNsb3QgKnNsb3QpCiB7CiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVt YmxlZnVuY3MuYwppbmRleCA3YzYzNzY2YTUxYy4uMmNlMjdiOWU1NTIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYworKysgYi9zcmMvYmFja2Vu ZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMKQEAgLTIzMiw3ICsyMzIsNyBAQCBEb0p1bWJs ZShKdW1ibGVTdGF0ZSAqanN0YXRlLCBOb2RlICpub2RlKQogICoKICAqIE5vdGU6IENhbGxl cnMgbXVzdCBlbnN1cmUgdGhhdCBzaXplID4gMC4KICAqLwotc3RhdGljIHBnX2F0dHJpYnV0 ZV9hbHdheXNfaW5saW5lIHZvaWQKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIHZvaWQKIEFw cGVuZEp1bWJsZUludGVybmFsKEp1bWJsZVN0YXRlICpqc3RhdGUsIGNvbnN0IHVuc2lnbmVk IGNoYXIgKml0ZW0sCiAJCQkJCSBTaXplIHNpemUpCiB7CkBAIC0zMDgsNyArMzA4LDcgQEAg QXBwZW5kSnVtYmxlKEp1bWJsZVN0YXRlICpqc3RhdGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIg KnZhbHVlLCBTaXplIHNpemUpCiAgKiBBcHBlbmRKdW1ibGVOdWxsCiAgKgkJRm9yIGp1bWJs aW5nIE5VTEwgcG9pbnRlcnMKICAqLwotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5s aW5lIHZvaWQKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIHZvaWQKIEFwcGVuZEp1bWJsZU51 bGwoSnVtYmxlU3RhdGUgKmpzdGF0ZSkKIHsKIAlqc3RhdGUtPnBlbmRpbmdfbnVsbHMrKzsK QEAgLTM3NSw3ICszNzUsNyBAQCBBcHBlbmRKdW1ibGU2NChKdW1ibGVTdGF0ZSAqanN0YXRl LCBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSkKICAqCiAgKiBOb3RlOiBDYWxsZXJzIG11 c3QgZW5zdXJlIHRoYXQgdGhlcmUncyBhdCBsZWFzdCAxIHBlbmRpbmcgTlVMTC4KICAqLwot c3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIHZvaWQKK3N0YXRpYyBwZ19hbHdh eXNfaW5saW5lIHZvaWQKIEZsdXNoUGVuZGluZ051bGxzKEp1bWJsZVN0YXRlICpqc3RhdGUp CiB7CiAJQXNzZXJ0KGpzdGF0ZS0+cGVuZGluZ19udWxscyA+IDApOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgYi9zcmMvYmFja2VuZC9zdG9y YWdlL2J1ZmZlci9idWZtZ3IuYwppbmRleCA5YWIyODJhNzZkMS4uMzkwODUyOTg3MmEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCkBAIC02NDksMTAgKzY0OSwxMCBA QCBzdGF0aWMgaW5saW5lIEJ1ZmZlckRlc2MgKkJ1ZmZlckFsbG9jKFNNZ3JSZWxhdGlvbiBz bWdyLAogc3RhdGljIGJvb2wgQXN5bmNSZWFkQnVmZmVycyhSZWFkQnVmZmVyc09wZXJhdGlv biAqb3BlcmF0aW9uLCBpbnQgKm5ibG9ja3NfcHJvZ3Jlc3MpOwogc3RhdGljIHZvaWQgQ2hl Y2tSZWFkQnVmZmVyc09wZXJhdGlvbihSZWFkQnVmZmVyc09wZXJhdGlvbiAqb3BlcmF0aW9u LCBib29sIGlzX2NvbXBsZXRlKTsKIAotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5s aW5lIHZvaWQgVHJhY2tCdWZmZXJIaXQoSU9PYmplY3QgaW9fb2JqZWN0LAotCQkJCQkJCQkJ CQkJCSAgSU9Db250ZXh0IGlvX2NvbnRleHQsCi0JCQkJCQkJCQkJCQkJICBSZWxhdGlvbiBy ZWwsIGNoYXIgcGVyc2lzdGVuY2UsIFNNZ3JSZWxhdGlvbiBzbWdyLAotCQkJCQkJCQkJCQkJ CSAgRm9ya051bWJlciBmb3JrbnVtLCBCbG9ja051bWJlciBibG9ja251bSk7CitzdGF0aWMg cGdfYWx3YXlzX2lubGluZSB2b2lkIFRyYWNrQnVmZmVySGl0KElPT2JqZWN0IGlvX29iamVj dCwKKwkJCQkJCQkJCQkJSU9Db250ZXh0IGlvX2NvbnRleHQsCisJCQkJCQkJCQkJCVJlbGF0 aW9uIHJlbCwgY2hhciBwZXJzaXN0ZW5jZSwgU01nclJlbGF0aW9uIHNtZ3IsCisJCQkJCQkJ CQkJCUZvcmtOdW1iZXIgZm9ya251bSwgQmxvY2tOdW1iZXIgYmxvY2tudW0pOwogc3RhdGlj IEJ1ZmZlciBHZXRWaWN0aW1CdWZmZXIoQnVmZmVyQWNjZXNzU3RyYXRlZ3kgc3RyYXRlZ3ks IElPQ29udGV4dCBpb19jb250ZXh0KTsKIHN0YXRpYyB2b2lkIEZsdXNoVW5sb2NrZWRCdWZm ZXIoQnVmZmVyRGVzYyAqYnVmLCBTTWdyUmVsYXRpb24gcmVsbiwKIAkJCQkJCQkJSU9PYmpl Y3QgaW9fb2JqZWN0LCBJT0NvbnRleHQgaW9fY29udGV4dCk7CkBAIC0xMjE5LDcgKzEyMTks NyBAQCBaZXJvQW5kTG9ja0J1ZmZlcihCdWZmZXIgYnVmZmVyLCBSZWFkQnVmZmVyTW9kZSBt b2RlLCBib29sIGFscmVhZHlfdmFsaWQpCiAgKiBhbHJlYWR5IHByZXNlbnQsIG9yIGZhbHNl IGlmIG1vcmUgd29yayBpcyByZXF1aXJlZCB0byBlaXRoZXIgcmVhZCBpdCBpbiBvcgogICog emVybyBpdC4KICAqLwotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIEJ1ZmZl cgorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgQnVmZmVyCiBQaW5CdWZmZXJGb3JCbG9jayhS ZWxhdGlvbiByZWwsCiAJCQkJICBTTWdyUmVsYXRpb24gc21nciwKIAkJCQkgIGNoYXIgcGVy c2lzdGVuY2UsCkBAIC0xMjcyLDcgKzEyNzIsNyBAQCBQaW5CdWZmZXJGb3JCbG9jayhSZWxh dGlvbiByZWwsCiAgKgogICogc21nciBpcyByZXF1aXJlZCwgcmVsIGlzIG9wdGlvbmFsIHVu bGVzcyB1c2luZyBQX05FVy4KICAqLwotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5s aW5lIEJ1ZmZlcgorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgQnVmZmVyCiBSZWFkQnVmZmVy X2NvbW1vbihSZWxhdGlvbiByZWwsIFNNZ3JSZWxhdGlvbiBzbWdyLCBjaGFyIHNtZ3JfcGVy c2lzdGVuY2UsCiAJCQkJICBGb3JrTnVtYmVyIGZvcmtOdW0sCiAJCQkJICBCbG9ja051bWJl ciBibG9ja051bSwgUmVhZEJ1ZmZlck1vZGUgbW9kZSwKQEAgLTEzNjcsNyArMTM2Nyw3IEBA IFJlYWRCdWZmZXJfY29tbW9uKFJlbGF0aW9uIHJlbCwgU01nclJlbGF0aW9uIHNtZ3IsIGNo YXIgc21ncl9wZXJzaXN0ZW5jZSwKIAlyZXR1cm4gYnVmZmVyOwogfQogCi1zdGF0aWMgcGdf YXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgYm9vbAorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUg Ym9vbAogU3RhcnRSZWFkQnVmZmVyc0ltcGwoUmVhZEJ1ZmZlcnNPcGVyYXRpb24gKm9wZXJh dGlvbiwKIAkJCQkJIEJ1ZmZlciAqYnVmZmVycywKIAkJCQkJIEJsb2NrTnVtYmVyIGJsb2Nr TnVtLApAQCAtMTY3OSw3ICsxNjc5LDcgQEAgQ2hlY2tSZWFkQnVmZmVyc09wZXJhdGlvbihS ZWFkQnVmZmVyc09wZXJhdGlvbiAqb3BlcmF0aW9uLCBib29sIGlzX2NvbXBsZXRlKQogICog V2UgdHJhY2sgdmFyaW91cyBzdGF0cyByZWxhdGVkIHRvIGJ1ZmZlciBoaXRzLiBCZWNhdXNl IHRoaXMgaXMgZG9uZSBpbiBhCiAgKiBmZXcgc2VwYXJhdGUgcGxhY2VzLCB0aGlzIGhlbHBl ciBleGlzdHMgZm9yIGNvbnZlbmllbmNlLgogICovCi1zdGF0aWMgcGdfYXR0cmlidXRlX2Fs d2F5c19pbmxpbmUgdm9pZAorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgdm9pZAogVHJhY2tC dWZmZXJIaXQoSU9PYmplY3QgaW9fb2JqZWN0LCBJT0NvbnRleHQgaW9fY29udGV4dCwKIAkJ CSAgIFJlbGF0aW9uIHJlbCwgY2hhciBwZXJzaXN0ZW5jZSwgU01nclJlbGF0aW9uIHNtZ3Is CiAJCQkgICBGb3JrTnVtYmVyIGZvcmtudW0sIEJsb2NrTnVtYmVyIGJsb2NrbnVtKQpAQCAt MjE5Myw3ICsyMTkzLDcgQEAgQXN5bmNSZWFkQnVmZmVycyhSZWFkQnVmZmVyc09wZXJhdGlv biAqb3BlcmF0aW9uLCBpbnQgKm5ibG9ja3NfcHJvZ3Jlc3MpCiAgKgogICogTm8gbG9ja3Mg YXJlIGhlbGQgZWl0aGVyIGF0IGVudHJ5IG9yIGV4aXQuCiAgKi8KLXN0YXRpYyBwZ19hdHRy aWJ1dGVfYWx3YXlzX2lubGluZSBCdWZmZXJEZXNjICoKK3N0YXRpYyBwZ19hbHdheXNfaW5s aW5lIEJ1ZmZlckRlc2MgKgogQnVmZmVyQWxsb2MoU01nclJlbGF0aW9uIHNtZ3IsIGNoYXIg cmVscGVyc2lzdGVuY2UsIEZvcmtOdW1iZXIgZm9ya051bSwKIAkJCUJsb2NrTnVtYmVyIGJs b2NrTnVtLAogCQkJQnVmZmVyQWNjZXNzU3RyYXRlZ3kgc3RyYXRlZ3ksCkBAIC04MzI2LDcg KzgzMjYsNyBAQCBNYXJrRGlydHlBbGxVbnBpbm5lZEJ1ZmZlcnMoaW50MzIgKmJ1ZmZlcnNf ZGlydGllZCwKICAqIHBhcnQgb2YgZXJyb3IgaGFuZGxpbmcsIHdoaWNoIGluIHR1cm4gY291 bGQgbGVhZCB0byB0aGUgYnVmZmVyIGJlaW5nCiAgKiByZXBsYWNlZCB3aGlsZSBJTyBpcyBv bmdvaW5nLgogICovCi1zdGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgdm9pZAor c3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgdm9pZAogYnVmZmVyX3N0YWdlX2NvbW1vbihQZ0Fp b0hhbmRsZSAqaW9oLCBib29sIGlzX3dyaXRlLCBib29sIGlzX3RlbXApCiB7CiAJdWludDY0 CSAgICppb19kYXRhOwpAQCAtODU3MCw3ICs4NTcwLDcgQEAgYnVmZmVyX3JlYWR2X2VuY29k ZV9lcnJvcihQZ0Fpb1Jlc3VsdCAqcmVzdWx0LAogICogSGVscGVyIGZvciBBSU8gcmVhZHYg Y29tcGxldGlvbiBjYWxsYmFja3MsIHN1cHBvcnRpbmcgYm90aCBzaGFyZWQgYW5kIHRlbXAK ICAqIGJ1ZmZlcnMuIEdldHMgY2FsbGVkIG9uY2UgZm9yIGVhY2ggYnVmZmVyIGluIGEgbXVs dGktcGFnZSByZWFkLgogICovCi1zdGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUg dm9pZAorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgdm9pZAogYnVmZmVyX3JlYWR2X2NvbXBs ZXRlX29uZShQZ0Fpb1RhcmdldERhdGEgKnRkLCB1aW50OCBidWZfb2ZmLCBCdWZmZXIgYnVm ZmVyLAogCQkJCQkJICB1aW50OCBmbGFncywgYm9vbCBmYWlsZWQsIGJvb2wgaXNfdGVtcCwK IAkJCQkJCSAgYm9vbCAqYnVmZmVyX2ludmFsaWQsCkBAIC04NzIxLDcgKzg3MjEsNyBAQCBi dWZmZXJfcmVhZHZfY29tcGxldGVfb25lKFBnQWlvVGFyZ2V0RGF0YSAqdGQsIHVpbnQ4IGJ1 Zl9vZmYsIEJ1ZmZlciBidWZmZXIsCiAgKgogICogU2hhcmVkIGJldHdlZW4gc2hhcmVkIGFu ZCBsb2NhbCBidWZmZXJzLCB0byByZWR1Y2UgY29kZSBkdXBsaWNhdGlvbi4KICAqLwotc3Rh dGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIFBnQWlvUmVzdWx0CitzdGF0aWMgcGdf YWx3YXlzX2lubGluZSBQZ0Fpb1Jlc3VsdAogYnVmZmVyX3JlYWR2X2NvbXBsZXRlKFBnQWlv SGFuZGxlICppb2gsIFBnQWlvUmVzdWx0IHByaW9yX3Jlc3VsdCwKIAkJCQkJICB1aW50OCBj Yl9kYXRhLCBib29sIGlzX3RlbXApCiB7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvanNvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb24uYwppbmRleCAwZmVl MWI0MGQ2My4uZGNjYmUwN2NkMmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb24uYwpAQCAtMTUyOCw3 ICsxNTI4LDcgQEAganNvbl9vYmplY3RfdHdvX2FyZyhQR19GVU5DVElPTl9BUkdTKQogICog ZXNjYXBlX2pzb25fY2hhcgogICoJCUlubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGVzY2Fw ZV9qc29uKiBmdW5jdGlvbnMKICAqLwotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5s aW5lIHZvaWQKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIHZvaWQKIGVzY2FwZV9qc29uX2No YXIoU3RyaW5nSW5mbyBidWYsIGNoYXIgYykKIHsKIAlzd2l0Y2ggKGMpCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9jYXRjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvY2F0Y2FjaGUuYwppbmRleCA2ZmIzNWRlZGY5NS4uMGM4OTU1ZmM2MWEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2NhdGNhY2hlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvY2F0Y2FjaGUuYwpAQCAtMTA5MSw3ICsxMDkxLDcgQEAg UmVoYXNoQ2F0Q2FjaGVMaXN0cyhDYXRDYWNoZSAqY3ApCiAgKgogICogQ2FsbCBDYXRhbG9n Q2FjaGVJbml0aWFsaXplQ2FjaGUoKSBpZiBub3QgeWV0IGRvbmUuCiAgKi8KLXBnX2F0dHJp YnV0ZV9hbHdheXNfaW5saW5lCitwZ19hbHdheXNfaW5saW5lCiBzdGF0aWMgdm9pZAogQ29u ZGl0aW9uYWxDYXRhbG9nQ2FjaGVJbml0aWFsaXplQ2FjaGUoQ2F0Q2FjaGUgKmNhY2hlKQog ewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYy5oIGIvc3JjL2luY2x1ZGUvYy5oCmluZGV4 IDBlNGFlYTVkNWEzLi4wZTgwNTNkMWZlMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYy5o CisrKyBiL3NyYy9pbmNsdWRlL2MuaApAQCAtMzQ4LDIwICszNDgsMjAgQEAgZXh0ZXJuICJD KysiCiAjZW5kaWYKIAogLyoKLSAqIFVzZSAicGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUi IGluIHBsYWNlIG9mICJpbmxpbmUiIGZvciBmdW5jdGlvbnMgdGhhdAorICogVXNlICJwZ19h bHdheXNfaW5saW5lIiBpbiBwbGFjZSBvZiAiaW5saW5lIiBmb3IgZnVuY3Rpb25zIHRoYXQK ICAqIHdlIHdpc2ggdG8gZm9yY2UgaW5saW5pbmcgb2YsIGV2ZW4gd2hlbiB0aGUgY29tcGls ZXIncyBoZXVyaXN0aWNzIHdvdWxkCiAgKiBjaG9vc2Ugbm90IHRvLiAgQnV0LCBpZiBwb3Nz aWJsZSwgZG9uJ3QgZm9yY2UgaW5saW5pbmcgaW4gdW5vcHRpbWl6ZWQKICAqIGRlYnVnIGJ1 aWxkcy4KICAqLwogI2lmIGRlZmluZWQoX19HTlVDX18pICYmIGRlZmluZWQoX19PUFRJTUla RV9fKQogLyogR0NDIHN1cHBvcnRzIGFsd2F5c19pbmxpbmUgdmlhIF9fYXR0cmlidXRlX18g Ki8KLSNkZWZpbmUgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgX19hdHRyaWJ1dGVfXygo YWx3YXlzX2lubGluZSkpIGlubGluZQorI2RlZmluZSBwZ19hbHdheXNfaW5saW5lIF9fYXR0 cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKSBpbmxpbmUKICNlbGlmIGRlZmluZWQoX01TQ19W RVIpCiAvKiBNU1ZDIGhhcyBhIHNwZWNpYWwga2V5d29yZCBmb3IgdGhpcyAqLwotI2RlZmlu ZSBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBfX2ZvcmNlaW5saW5lCisjZGVmaW5lIHBn X2Fsd2F5c19pbmxpbmUgX19mb3JjZWlubGluZQogI2Vsc2UKIC8qIE90aGVyd2lzZSwgdGhl IGJlc3Qgd2UgY2FuIGRvIGlzIHRvIHNheSAiaW5saW5lIiAqLwotI2RlZmluZSBwZ19hdHRy aWJ1dGVfYWx3YXlzX2lubGluZSBpbmxpbmUKKyNkZWZpbmUgcGdfYWx3YXlzX2lubGluZSBp bmxpbmUKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Iv ZXhlY1NjYW4uaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNTY2FuLmgKaW5kZXggMThi MDMyMzVjM2MuLjdmNzk1YjBiM2ZjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRv ci9leGVjU2Nhbi5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNTY2FuLmgKQEAg LTI0LDEyICsyNCwxMiBAQAogICogVGhpcyByb3V0aW5lIHN1YnN0aXR1dGVzIGEgdGVzdCB0 dXBsZSBpZiBpbnNpZGUgYW4gRXZhbFBsYW5RdWFsIHJlY2hlY2suCiAgKiBPdGhlcndpc2Us IGl0IHNpbXBseSBleGVjdXRlcyB0aGUgYWNjZXNzIG1ldGhvZCdzIG5leHQtdHVwbGUgcm91 dGluZS4KICAqCi0gKiBUaGUgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgYXR0cmlidXRl IGFsbG93cyB0aGUgY29tcGlsZXIgdG8gaW5saW5lCisgKiBUaGUgcGdfYWx3YXlzX2lubGlu ZSBhdHRyaWJ1dGUgYWxsb3dzIHRoZSBjb21waWxlciB0byBpbmxpbmUKICAqIHRoaXMgZnVu Y3Rpb24gaW50byBpdHMgY2FsbGVyLiBXaGVuIEVQUVN0YXRlIGlzIE5VTEwsIHRoZSBFdmFs UGxhblF1YWwKICAqIGxvZ2ljIGlzIGNvbXBsZXRlbHkgZWxpbWluYXRlZCBhdCBjb21waWxl IHRpbWUsIGF2b2lkaW5nIHVubmVjZXNzYXJ5CiAgKiBydW4tdGltZSBjaGVja3MgYW5kIGNv ZGUgZm9yIGNhc2VzIHdoZXJlIEVQUSBpcyBub3QgcmVxdWlyZWQuCiAgKi8KLXN0YXRpYyBw Z19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBUdXBsZVRhYmxlU2xvdCAqCitzdGF0aWMgcGdf YWx3YXlzX2lubGluZSBUdXBsZVRhYmxlU2xvdCAqCiBFeGVjU2NhbkZldGNoKFNjYW5TdGF0 ZSAqbm9kZSwKIAkJCSAgRVBRU3RhdGUgKmVwcXN0YXRlLAogCQkJICBFeGVjU2NhbkFjY2Vz c010ZCBhY2Nlc3NNdGQsCkBAIC0xNDUsNyArMTQ1LDcgQEAgRXhlY1NjYW5GZXRjaChTY2Fu U3RhdGUgKm5vZGUsCiAgKiBjb25kaXRpb25zIGVuZm9yY2VkIGJ5IHRoZSBhY2Nlc3MgbWV0 aG9kLgogICoKICAqIFRoaXMgZnVuY3Rpb24gaXMgYW4gYWx0ZXJuYXRpdmUgdG8gRXhlY1Nj YW4sIHVzZWQgd2hlbiBjYWxsZXJzIG1heSBvbWl0Ci0gKiAncXVhbCcgb3IgJ3Byb2pJbmZv Jy4gVGhlIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIGF0dHJpYnV0ZSBhbGxvd3MgdGhl CisgKiAncXVhbCcgb3IgJ3Byb2pJbmZvJy4gVGhlIHBnX2Fsd2F5c19pbmxpbmUgYXR0cmli dXRlIGFsbG93cyB0aGUKICAqIGNvbXBpbGVyIHRvIGVsaW1pbmF0ZSBub24tcmVsZXZhbnQg YnJhbmNoZXMgYXQgY29tcGlsZSB0aW1lLCBhdm9pZGluZwogICogcnVuLXRpbWUgY2hlY2tz IGluIHRob3NlIGNhc2VzLgogICoKQEAgLTE1Nyw3ICsxNTcsNyBAQCBFeGVjU2NhbkZldGNo KFNjYW5TdGF0ZSAqbm9kZSwKICAqCXBvc2l0aW9uZWQgYmVmb3JlIHRoZSBmaXJzdCBxdWFs aWZ5aW5nIHR1cGxlLgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi1zdGF0aWMgcGdfYXR0cmlidXRl X2Fsd2F5c19pbmxpbmUgVHVwbGVUYWJsZVNsb3QgKgorc3RhdGljIHBnX2Fsd2F5c19pbmxp bmUgVHVwbGVUYWJsZVNsb3QgKgogRXhlY1NjYW5FeHRlbmRlZChTY2FuU3RhdGUgKm5vZGUs CiAJCQkJIEV4ZWNTY2FuQWNjZXNzTXRkIGFjY2Vzc010ZCwJLyogZnVuY3Rpb24gcmV0dXJu aW5nIGEgdHVwbGUgKi8KIAkJCQkgRXhlY1NjYW5SZWNoZWNrTXRkIHJlY2hlY2tNdGQsCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmggYi9zcmMv aW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgKaW5kZXggODI2Y2MyMDI4NDcuLjJi NzRjZTkxZWNiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90 aW1lLmgKKysrIGIvc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oCkBAIC0z NzYsNyArMzc2LDcgQEAgcGdfcmR0c2NwKHZvaWQpCiAgKiBvbmx5IGlubGluaW5nIHRoZSBm dW5jdGlvbiBwYXJ0aWFsbHkuCiAgKiBTZWUgaHR0cHM6Ly9nY2MuZ251Lm9yZy9idWd6aWxs YS9zaG93X2J1Zy5jZ2k/aWQ9MTI0Nzk1CiAgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3 YXlzX2lubGluZSBpbnN0cl90aW1lCitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSBpbnN0cl90 aW1lCiBwZ19nZXRfdGlja3Modm9pZCkKIHsKIAlpZiAobGlrZWx5KHRpbWluZ190c2NfZW5h YmxlZCkpCkBAIC0zOTAsNyArMzkwLDcgQEAgcGdfZ2V0X3RpY2tzKHZvaWQpCiAJcmV0dXJu IHBnX2dldF90aWNrc19zeXN0ZW0oKTsKIH0KIAotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdh eXNfaW5saW5lIGluc3RyX3RpbWUKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIGluc3RyX3Rp bWUKIHBnX2dldF90aWNrc19mYXN0KHZvaWQpCiB7CiAJaWYgKGxpa2VseSh0aW1pbmdfdHNj X2VuYWJsZWQpKQpAQCAtNDA2LDEzICs0MDYsMTMgQEAgcGdfZ2V0X3RpY2tzX2Zhc3Qodm9p ZCkKIAogI2Vsc2UKIAotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIGluc3Ry X3RpbWUKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIGluc3RyX3RpbWUKIHBnX2dldF90aWNr cyh2b2lkKQogewogCXJldHVybiBwZ19nZXRfdGlja3Nfc3lzdGVtKCk7CiB9CiAKLXN0YXRp YyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBpbnN0cl90aW1lCitzdGF0aWMgcGdfYWx3 YXlzX2lubGluZSBpbnN0cl90aW1lCiBwZ19nZXRfdGlja3NfZmFzdCh2b2lkKQogewogCXJl dHVybiBwZ19nZXRfdGlja3Nfc3lzdGVtKCk7Ci0tIAoyLjU0LjAKCg== --------------pYAtEFM0mtoOR6cYEisDdY0G Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-Shorten-pg_attribute_always_inline-to-pg_always_i-19.patch" Content-Disposition: attachment; filename*0="v2-0001-Shorten-pg_attribute_always_inline-to-pg_always_i-19"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSAzYTQ3ZWI5ZjRiZTI5N2QwMzBhMzJmZGM4ZGIyMDAyY2JlODU4ZGNjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB0ZXN0IDx0ZXN0PgpEYXRlOiBGcmksIDEwIEp1bCAy MDI2IDAxOjU0OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCB2Ml0gU2hvcnRlbiBwZ19hdHRy aWJ1dGVfYWx3YXlzX2lubGluZSB0byBwZ19hbHdheXNfaW5saW5lCgpUaGUgcGdfYXR0cmli dXRlX2Fsd2F5c19pbmxpbmUgbWFjcm8gbmFtZSBpcyBzbyBsb25nIGl0IGZvcmNlcyBwZ2lu ZGVudAp0byBmb3JtYXQgdGhlIGNvZGUgaW4gc3RyYW5nZSB3YXlzLiBXaGljaCBtYXkgaW5j ZW50aXZpemUgcGF0Y2ggYXV0aG9ycwp0byBlaXRoZXIgc3RydWN0dXJlIHRoZSBjb2RlIGlu IHN0cmFuZ2Ugd2F5cyAoZS5nLiByZW9yZGVyIHByb3RvdHlwZXMpLAp1c2Ugc2hvcnRlciBu YW1lcywgZXRjLiBOZWl0aGVyIGlzIHZlcnkgZGVzaXJhYmxlIGZvciBjb2RlIHJlYWRhYmls aXR5LgoKVGhpcyBzaG9ydGVucyB0aGUgbmFtZSBieSByZW1vdmluZyB0aGUgX2F0dHJpYnV0 ZV8gcGFydC4gSXQgYWxzbyBtYWtlcwppdCBtb3JlIGNvbnNpc3RlbnQgd2l0aCBwZ19ub2lu bGluZSwgd2hpY2ggZG9lcyBub3QgaGF2ZSB0aGUgX2F0dHJpYnV0ZV8KcGFydCBlaXRoZXIu CgpCYWNrcGF0Y2hlZCB0byBhbGwgc3VwcG9ydGVkIGJyYW5jaGVzLCB0byBwcmV2ZW50IGNv bmZsaWN0cyB3aGVuCmJhY2twYXRjaGluZyBvdGhlciBmaXhlcy4gVGhlIGJhY2ticmFuY2hl cyBob3dldmVyIGtlZXAgYm90aCB0aGUgb2xkCmFuZCBuZXcgbWFjcm8gbmFtZSwgc28gdGhh dCBleGlzdGluZyBjb2RlIGtlZXBzIHdvcmtpbmcuCgpBdXRob3I6IEFuZHJlcyBGcmV1bmQg PGFuZHJlc0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IFBldGVyIEdlb2doZWdhbiA8cGdA Ym93dC5pZT4KUmV2aWV3ZWQtYnk6IFRvbWFzIFZvbmRyYSA8dG9tYXNAdm9uZHJhLm1lPgpE aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2JxcWRlaGFocG9hMzZpZ3BpY3R1cXlu MnMybWV4azN0M2VoaWRoMmZmZDJzbGIzNWU1QHJ6Z2tzdWlzemdiZwpCYWNrcGF0Y2gtdGhy b3VnaDogMTQKLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgIHwg IDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgfCAgNCArLQog c3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jICB8IDMyICsrKysrKysrLS0t LS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jICAgICAgICAgfCAgNCArLQog c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyB8IDU0ICsrKysrKysrKysr KystLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1R1cGxlcy5jICAg ICB8ICA2ICstLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUhhc2hqb2luLmMgICB8ICAy ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jICAgIHwgIDQgKy0KIHNy Yy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYyAgfCAgNiArLS0KIHNyYy9iYWNr ZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jICAgfCAyNCArKysrKystLS0tLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9qc29uLmMgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvY2F0Y2FjaGUuYyAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9jLmggICAg ICAgICAgICAgICAgICAgICAgIHwgIDkgKysrKy0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4 ZWNTY2FuLmggICAgICAgfCAgOCArKy0tCiBzcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0 cl90aW1lLmggIHwgIDggKystLQogMTUgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygr KSwgODAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCBh YmZkOGU4OTcwYS4uNGYzNzNiODYwMjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5j CkBAIC01MTksNyArNTE5LDcgQEAgaGVhcF9zZXRzY2FubGltaXRzKFRhYmxlU2NhbkRlc2Mg c3NjYW4sIEJsb2NrTnVtYmVyIHN0YXJ0QmxrLCBCbG9ja051bWJlciBudW1CbGsKICAqIG11 bHRpcGxlIHRpbWVzLCB3aXRoIGNvbnN0YW50IGFyZ3VtZW50cyBmb3IgYWxsX3Zpc2libGUs CiAgKiBjaGVja19zZXJpYWxpemFibGUuCiAgKi8KLXBnX2F0dHJpYnV0ZV9hbHdheXNfaW5s aW5lCitwZ19hbHdheXNfaW5saW5lCiBzdGF0aWMgaW50CiBwYWdlX2NvbGxlY3RfdHVwbGVz KEhlYXBTY2FuRGVzYyBzY2FuLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJUGFnZSBwYWdl LCBCdWZmZXIgYnVmZmVyLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IGE4 MTkxMmI3NDQxLi4yNTRiYjE1ODU2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cu YwpAQCAtMTE0Myw5ICsxMTQzLDkgQEAgWExvZ0luc2VydFJlY29yZChYTG9nUmVjRGF0YSAq cmRhdGEsCiAgKgogICogTkI6IFRlc3Rpbmcgc2hvd3MgdGhhdCBYTG9nSW5zZXJ0UmVjb3Jk IHJ1bnMgZmFzdGVyIGlmIHRoaXMgY29kZSBpcyBpbmxpbmVkOwogICogaG93ZXZlciwgYmVj YXVzZSB0aGVyZSBhcmUgdHdvIGNhbGwgc2l0ZXMsIHRoZSBjb21waWxlciBpcyByZWx1Y3Rh bnQgdG8KLSAqIGlubGluZS4gV2UgdXNlIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIGhl cmUgdG8gdHJ5IHRvIGNvbnZpbmNlIGl0LgorICogaW5saW5lLiBXZSB1c2UgcGdfYWx3YXlz X2lubGluZSBoZXJlIHRvIHRyeSB0byBjb252aW5jZSBpdC4KICAqLwotc3RhdGljIHBnX2F0 dHJpYnV0ZV9hbHdheXNfaW5saW5lIHZvaWQKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIHZv aWQKIFJlc2VydmVYTG9nSW5zZXJ0TG9jYXRpb24oaW50IHNpemUsIFhMb2dSZWNQdHIgKlN0 YXJ0UG9zLCBYTG9nUmVjUHRyICpFbmRQb3MsCiAJCQkJCQkgIFhMb2dSZWNQdHIgKlByZXZQ dHIpCiB7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNl LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNlLmMKaW5kZXggNjVmZDVh MGFiNGYuLjUwMDgxMDU3N2FkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9j b3B5ZnJvbXBhcnNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJz ZS5jCkBAIC0xNDQsMjIgKzE0NCwyMiBAQCBzdGF0aWMgY29uc3QgY2hhciBCaW5hcnlTaWdu YXR1cmVbMTFdID0gIlBHQ09QWVxuXDM3N1xyXG5cMCI7CiAKIC8qIG5vbi1leHBvcnQgZnVu Y3Rpb24gcHJvdG90eXBlcyAqLwogc3RhdGljIGJvb2wgQ29weVJlYWRMaW5lKENvcHlGcm9t U3RhdGUgY3N0YXRlLCBib29sIGlzX2Nzdik7Ci1zdGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5 c19pbmxpbmUgYm9vbCBDb3B5UmVhZExpbmVUZXh0KENvcHlGcm9tU3RhdGUgY3N0YXRlLAot CQkJCQkJCQkJCQkJCQlib29sIGlzX2Nzdik7CitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSBi b29sIENvcHlSZWFkTGluZVRleHQoQ29weUZyb21TdGF0ZSBjc3RhdGUsCisJCQkJCQkJCQkJ CSAgYm9vbCBpc19jc3YpOwogc3RhdGljIGludAlDb3B5UmVhZEF0dHJpYnV0ZXNUZXh0KENv cHlGcm9tU3RhdGUgY3N0YXRlKTsKIHN0YXRpYyBpbnQJQ29weVJlYWRBdHRyaWJ1dGVzQ1NW KENvcHlGcm9tU3RhdGUgY3N0YXRlKTsKIHN0YXRpYyBEYXR1bSBDb3B5UmVhZEJpbmFyeUF0 dHJpYnV0ZShDb3B5RnJvbVN0YXRlIGNzdGF0ZSwgRm1nckluZm8gKmZsaW5mbywKIAkJCQkJ CQkJCSBPaWQgdHlwaW9wYXJhbSwgaW50MzIgdHlwbW9kLAogCQkJCQkJCQkJIGJvb2wgKmlz bnVsbCk7Ci1zdGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgYm9vbCBDb3B5RnJv bVRleHRMaWtlT25lUm93KENvcHlGcm9tU3RhdGUgY3N0YXRlLAotCQkJCQkJCQkJCQkJCQkJ ICBFeHByQ29udGV4dCAqZWNvbnRleHQsCi0JCQkJCQkJCQkJCQkJCQkgIERhdHVtICp2YWx1 ZXMsCi0JCQkJCQkJCQkJCQkJCQkgIGJvb2wgKm51bGxzLAotCQkJCQkJCQkJCQkJCQkJICBi b29sIGlzX2Nzdik7Ci1zdGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgYm9vbCBO ZXh0Q29weUZyb21SYXdGaWVsZHNJbnRlcm5hbChDb3B5RnJvbVN0YXRlIGNzdGF0ZSwKLQkJ CQkJCQkJCQkJCQkJCQkJIGNoYXIgKioqZmllbGRzLAotCQkJCQkJCQkJCQkJCQkJCQkgaW50 ICpuZmllbGRzLAotCQkJCQkJCQkJCQkJCQkJCQkgYm9vbCBpc19jc3YpOworc3RhdGljIHBn X2Fsd2F5c19pbmxpbmUgYm9vbCBDb3B5RnJvbVRleHRMaWtlT25lUm93KENvcHlGcm9tU3Rh dGUgY3N0YXRlLAorCQkJCQkJCQkJCQkJCUV4cHJDb250ZXh0ICplY29udGV4dCwKKwkJCQkJ CQkJCQkJCQlEYXR1bSAqdmFsdWVzLAorCQkJCQkJCQkJCQkJCWJvb2wgKm51bGxzLAorCQkJ CQkJCQkJCQkJCWJvb2wgaXNfY3N2KTsKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIGJvb2wg TmV4dENvcHlGcm9tUmF3RmllbGRzSW50ZXJuYWwoQ29weUZyb21TdGF0ZSBjc3RhdGUsCisJ CQkJCQkJCQkJCQkJCSAgIGNoYXIgKioqZmllbGRzLAorCQkJCQkJCQkJCQkJCQkgICBpbnQg Km5maWVsZHMsCisJCQkJCQkJCQkJCQkJCSAgIGJvb2wgaXNfY3N2KTsKIAogCiAvKiBMb3ct bGV2ZWwgY29tbXVuaWNhdGlvbnMgZnVuY3Rpb25zICovCkBAIC03NjksMTEgKzc2OSwxMSBA QCBOZXh0Q29weUZyb21SYXdGaWVsZHMoQ29weUZyb21TdGF0ZSBjc3RhdGUsIGNoYXIgKioq ZmllbGRzLCBpbnQgKm5maWVsZHMpCiAgKgogICogTk9URTogZm9yY2Vfbm90X251bGwgb3B0 aW9uIGFyZSBub3QgYXBwbGllZCB0byB0aGUgcmV0dXJuZWQgZmllbGRzLgogICoKLSAqIFdl IHVzZSBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSB0byByZWR1Y2UgZnVuY3Rpb24gY2Fs bCBvdmVyaGVhZAorICogV2UgdXNlIHBnX2Fsd2F5c19pbmxpbmUgdG8gcmVkdWNlIGZ1bmN0 aW9uIGNhbGwgb3ZlcmhlYWQKICAqIGFuZCB0byBoZWxwIGNvbXBpbGVycyB0byBvcHRpbWl6 ZSBhd2F5IHRoZSAnaXNfY3N2JyBjb25kaXRpb24gd2hlbiBjYWxsZWQKICAqIGJ5IGludGVy bmFsIGZ1bmN0aW9ucyBzdWNoIGFzIENvcHlGcm9tVGV4dExpa2VPbmVSb3coKS4KICAqLwot c3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIGJvb2wKK3N0YXRpYyBwZ19hbHdh eXNfaW5saW5lIGJvb2wKIE5leHRDb3B5RnJvbVJhd0ZpZWxkc0ludGVybmFsKENvcHlGcm9t U3RhdGUgY3N0YXRlLCBjaGFyICoqKmZpZWxkcywgaW50ICpuZmllbGRzLCBib29sIGlzX2Nz dikKIHsKIAlpbnQJCQlmbGRjdDsKQEAgLTk0NiwxMCArOTQ2LDEwIEBAIENvcHlGcm9tQ1NW T25lUm93KENvcHlGcm9tU3RhdGUgY3N0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsIERh dHVtICp2YWx1ZXMsCiAvKgogICogV29ya2hvcnNlIGZvciBDb3B5RnJvbVRleHRPbmVSb3co KSBhbmQgQ29weUZyb21DU1ZPbmVSb3coKS4KICAqCi0gKiBXZSB1c2UgcGdfYXR0cmlidXRl X2Fsd2F5c19pbmxpbmUgdG8gcmVkdWNlIGZ1bmN0aW9uIGNhbGwgb3ZlcmhlYWQKKyAqIFdl IHVzZSBwZ19hbHdheXNfaW5saW5lIHRvIHJlZHVjZSBmdW5jdGlvbiBjYWxsIG92ZXJoZWFk CiAgKiBhbmQgdG8gaGVscCBjb21waWxlcnMgdG8gb3B0aW1pemUgYXdheSB0aGUgJ2lzX2Nz dicgY29uZGl0aW9uLgogICovCi1zdGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUg Ym9vbAorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgYm9vbAogQ29weUZyb21UZXh0TGlrZU9u ZVJvdyhDb3B5RnJvbVN0YXRlIGNzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LAogCQkJ CQkgICBEYXR1bSAqdmFsdWVzLCBib29sICpudWxscywgYm9vbCBpc19jc3YpCiB7CkBAIC0x NDYzLDcgKzE0NjMsNyBAQCBDb3B5UmVhZExpbmVUZXh0U0lNREhlbHBlcihDb3B5RnJvbVN0 YXRlIGNzdGF0ZSwgYm9vbCBpc19jc3YsCiAvKgogICogQ29weVJlYWRMaW5lVGV4dCAtIGlu bmVyIGxvb3Agb2YgQ29weVJlYWRMaW5lIGZvciB0ZXh0IG1vZGUKICAqLwotc3RhdGljIHBn X2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIGJvb2wKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5l IGJvb2wKIENvcHlSZWFkTGluZVRleHQoQ29weUZyb21TdGF0ZSBjc3RhdGUsIGJvb2wgaXNf Y3N2KQogewogCWNoYXIJICAgKmNvcHlfaW5wdXRfYnVmOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvY29weXRvLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5dG8u YwppbmRleCBkM2FkYzc1MmFlMy4uZjliYzYxN2RkYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2NvcHl0by5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0 by5jCkBAIC0yOTQsMTAgKzI5NCwxMCBAQCBDb3B5VG9DU1ZPbmVSb3coQ29weVRvU3RhdGUg Y3N0YXRlLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCkKIC8qCiAgKiBXb3JraG9yc2UgZm9yIENv cHlUb1RleHRPbmVSb3coKSBhbmQgQ29weVRvQ1NWT25lUm93KCkuCiAgKgotICogV2UgdXNl IHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIHRvIHJlZHVjZSBmdW5jdGlvbiBjYWxsIG92 ZXJoZWFkCisgKiBXZSB1c2UgcGdfYWx3YXlzX2lubGluZSB0byByZWR1Y2UgZnVuY3Rpb24g Y2FsbCBvdmVyaGVhZAogICogYW5kIHRvIGhlbHAgY29tcGlsZXJzIHRvIG9wdGltaXplIGF3 YXkgdGhlICdpc19jc3YnIGNvbmRpdGlvbi4KICAqLwotc3RhdGljIHBnX2F0dHJpYnV0ZV9h bHdheXNfaW5saW5lIHZvaWQKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIHZvaWQKIENvcHlU b1RleHRMaWtlT25lUm93KENvcHlUb1N0YXRlIGNzdGF0ZSwKIAkJCQkJIFR1cGxlVGFibGVT bG90ICpzbG90LAogCQkJCQkgYm9vbCBpc19jc3YpCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0V4cHJJbnRlcnAuYwppbmRleCAwNjM0YWY5NjRhOS4uZDQ1ODEyYzIzYWEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtMTc4LDI0ICsxNzgsMjQgQEAg c3RhdGljIERhdHVtIEV4ZWNKdXN0SGFzaElubmVyVmFyVmlydChFeHByU3RhdGUgKnN0YXRl LCBFeHByQ29udGV4dCAqZWNvbnRleHQsIGIKIHN0YXRpYyBEYXR1bSBFeGVjSnVzdEhhc2hP dXRlclZhclN0cmljdChFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQs IGJvb2wgKmlzbnVsbCk7CiAKIC8qIGV4ZWN1dGlvbiBoZWxwZXIgZnVuY3Rpb25zICovCi1z dGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgdm9pZCBFeGVjRXZhbEFycmF5Q29t cGFyZUludGVybmFsKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLAotCQkJCQkJCQkJCQkJCQkJ CQlBcnJheVR5cGUgKmFyciwKLQkJCQkJCQkJCQkJCQkJCQkJaW50MTYgdHlwbGVuLAotCQkJ CQkJCQkJCQkJCQkJCQlib29sIHR5cGJ5dmFsLAotCQkJCQkJCQkJCQkJCQkJCQljaGFyIHR5 cGFsaWduLAotCQkJCQkJCQkJCQkJCQkJCQlib29sIHVzZU9yLAotCQkJCQkJCQkJCQkJCQkJ CQlEYXR1bSAqcmVzdWx0LAotCQkJCQkJCQkJCQkJCQkJCQlib29sICpyZXN1bHRudWxsKTsK LXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSB2b2lkIEV4ZWNBZ2dQbGFpblRy YW5zQnlWYWwoQWdnU3RhdGUgKmFnZ3N0YXRlLAotCQkJCQkJCQkJCQkJCQkJICBBZ2dTdGF0 ZVBlclRyYW5zIHBlcnRyYW5zLAotCQkJCQkJCQkJCQkJCQkJICBBZ2dTdGF0ZVBlckdyb3Vw IHBlcmdyb3VwLAotCQkJCQkJCQkJCQkJCQkJICBFeHByQ29udGV4dCAqYWdnY29udGV4dCwK LQkJCQkJCQkJCQkJCQkJCSAgaW50IHNldG5vKTsKLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3 YXlzX2lubGluZSB2b2lkIEV4ZWNBZ2dQbGFpblRyYW5zQnlSZWYoQWdnU3RhdGUgKmFnZ3N0 YXRlLAotCQkJCQkJCQkJCQkJCQkJICBBZ2dTdGF0ZVBlclRyYW5zIHBlcnRyYW5zLAotCQkJ CQkJCQkJCQkJCQkJICBBZ2dTdGF0ZVBlckdyb3VwIHBlcmdyb3VwLAotCQkJCQkJCQkJCQkJ CQkJICBFeHByQ29udGV4dCAqYWdnY29udGV4dCwKLQkJCQkJCQkJCQkJCQkJCSAgaW50IHNl dG5vKTsKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIHZvaWQgRXhlY0V2YWxBcnJheUNvbXBh cmVJbnRlcm5hbChGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywKKwkJCQkJCQkJCQkJCQkJICBB cnJheVR5cGUgKmFyciwKKwkJCQkJCQkJCQkJCQkJICBpbnQxNiB0eXBsZW4sCisJCQkJCQkJ CQkJCQkJCSAgYm9vbCB0eXBieXZhbCwKKwkJCQkJCQkJCQkJCQkJICBjaGFyIHR5cGFsaWdu LAorCQkJCQkJCQkJCQkJCQkgIGJvb2wgdXNlT3IsCisJCQkJCQkJCQkJCQkJCSAgRGF0dW0g KnJlc3VsdCwKKwkJCQkJCQkJCQkJCQkJICBib29sICpyZXN1bHRudWxsKTsKK3N0YXRpYyBw Z19hbHdheXNfaW5saW5lIHZvaWQgRXhlY0FnZ1BsYWluVHJhbnNCeVZhbChBZ2dTdGF0ZSAq YWdnc3RhdGUsCisJCQkJCQkJCQkJCQkJQWdnU3RhdGVQZXJUcmFucyBwZXJ0cmFucywKKwkJ CQkJCQkJCQkJCQlBZ2dTdGF0ZVBlckdyb3VwIHBlcmdyb3VwLAorCQkJCQkJCQkJCQkJCUV4 cHJDb250ZXh0ICphZ2djb250ZXh0LAorCQkJCQkJCQkJCQkJCWludCBzZXRubyk7CitzdGF0 aWMgcGdfYWx3YXlzX2lubGluZSB2b2lkIEV4ZWNBZ2dQbGFpblRyYW5zQnlSZWYoQWdnU3Rh dGUgKmFnZ3N0YXRlLAorCQkJCQkJCQkJCQkJCUFnZ1N0YXRlUGVyVHJhbnMgcGVydHJhbnMs CisJCQkJCQkJCQkJCQkJQWdnU3RhdGVQZXJHcm91cCBwZXJncm91cCwKKwkJCQkJCQkJCQkJ CQlFeHByQ29udGV4dCAqYWdnY29udGV4dCwKKwkJCQkJCQkJCQkJCQlpbnQgc2V0bm8pOwog c3RhdGljIGNoYXIgKkV4ZWNHZXRKc29uVmFsdWVJdGVtU3RyaW5nKEpzb25iVmFsdWUgKml0 ZW0sIGJvb2wgKnJlc251bGwpOwogCiAvKgpAQCAtMjU1Miw3ICsyNTUyLDcgQEAgZ2V0X2Nh Y2hlZF9yb3d0eXBlKE9pZCB0eXBlX2lkLCBpbnQzMiB0eXBtb2QsCiAgKi8KIAogLyogaW1w bGVtZW50YXRpb24gb2YgRXhlY0p1c3QoSW5uZXJ8T3V0ZXJ8U2NhbilWYXIgKi8KLXN0YXRp YyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBEYXR1bQorc3RhdGljIHBnX2Fsd2F5c19p bmxpbmUgRGF0dW0KIEV4ZWNKdXN0VmFySW1wbChFeHByU3RhdGUgKnN0YXRlLCBUdXBsZVRh YmxlU2xvdCAqc2xvdCwgYm9vbCAqaXNudWxsKQogewogCUV4cHJFdmFsU3RlcCAqb3AgPSAm c3RhdGUtPnN0ZXBzWzFdOwpAQCAtMjU5MCw3ICsyNTkwLDcgQEAgRXhlY0p1c3RTY2FuVmFy KEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxs KQogfQogCiAvKiBpbXBsZW1lbnRhdGlvbiBvZiBFeGVjSnVzdEFzc2lnbihJbm5lcnxPdXRl cnxTY2FuKVZhciAqLwotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIERhdHVt CitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSBEYXR1bQogRXhlY0p1c3RBc3NpZ25WYXJJbXBs KEV4cHJTdGF0ZSAqc3RhdGUsIFR1cGxlVGFibGVTbG90ICppbnNsb3QsIGJvb2wgKmlzbnVs bCkKIHsKIAlFeHByRXZhbFN0ZXAgKm9wID0gJnN0YXRlLT5zdGVwc1sxXTsKQEAgLTI2ODUs NyArMjY4NSw3IEBAIEV4ZWNKdXN0Q29uc3QoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRl eHQgKmVjb250ZXh0LCBib29sICppc251bGwpCiB9CiAKIC8qIGltcGxlbWVudGF0aW9uIG9m IEV4ZWNKdXN0KElubmVyfE91dGVyfFNjYW4pVmFyVmlydCAqLwotc3RhdGljIHBnX2F0dHJp YnV0ZV9hbHdheXNfaW5saW5lIERhdHVtCitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSBEYXR1 bQogRXhlY0p1c3RWYXJWaXJ0SW1wbChFeHByU3RhdGUgKnN0YXRlLCBUdXBsZVRhYmxlU2xv dCAqc2xvdCwgYm9vbCAqaXNudWxsKQogewogCUV4cHJFdmFsU3RlcCAqb3AgPSAmc3RhdGUt PnN0ZXBzWzBdOwpAQCAtMjcyOCw3ICsyNzI4LDcgQEAgRXhlY0p1c3RTY2FuVmFyVmlydChF eHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkK IH0KIAogLyogaW1wbGVtZW50YXRpb24gb2YgRXhlY0p1c3RBc3NpZ24oSW5uZXJ8T3V0ZXJ8 U2NhbilWYXJWaXJ0ICovCi1zdGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgRGF0 dW0KK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIERhdHVtCiBFeGVjSnVzdEFzc2lnblZhclZp cnRJbXBsKEV4cHJTdGF0ZSAqc3RhdGUsIFR1cGxlVGFibGVTbG90ICppbnNsb3QsIGJvb2wg KmlzbnVsbCkKIHsKIAlFeHByRXZhbFN0ZXAgKm9wID0gJnN0YXRlLT5zdGVwc1swXTsKQEAg LTI4MDcsNyArMjgwNyw3IEBAIEV4ZWNKdXN0SGFzaElubmVyVmFyV2l0aElWKEV4cHJTdGF0 ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwKIH0KIAogLyogaW1wbGVtZW50YXRp b24gb2YgRXhlY0p1c3RIYXNoKElubmVyfE91dGVyKVZhciAqLwotc3RhdGljIHBnX2F0dHJp YnV0ZV9hbHdheXNfaW5saW5lIERhdHVtCitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSBEYXR1 bQogRXhlY0p1c3RIYXNoVmFySW1wbChFeHByU3RhdGUgKnN0YXRlLCBUdXBsZVRhYmxlU2xv dCAqc2xvdCwgYm9vbCAqaXNudWxsKQogewogCUV4cHJFdmFsU3RlcCAqZmV0Y2hvcCA9ICZz dGF0ZS0+c3RlcHNbMF07CkBAIC0yODQ1LDcgKzI4NDUsNyBAQCBFeGVjSnVzdEhhc2hJbm5l clZhcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsIGJvb2wgKmlz bnVsbCkKIH0KIAogLyogaW1wbGVtZW50YXRpb24gb2YgRXhlY0p1c3RIYXNoKElubmVyfE91 dGVyKVZhclZpcnQgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBEYXR1 bQorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgRGF0dW0KIEV4ZWNKdXN0SGFzaFZhclZpcnRJ bXBsKEV4cHJTdGF0ZSAqc3RhdGUsIFR1cGxlVGFibGVTbG90ICpzbG90LCBib29sICppc251 bGwpCiB7CiAJRXhwckV2YWxTdGVwICp2YXIgPSAmc3RhdGUtPnN0ZXBzWzBdOwpAQCAtNDEw Nyw3ICs0MTA3LDcgQEAgRXhlY0V2YWxTY2FsYXJBcnJheU9wKEV4cHJTdGF0ZSAqc3RhdGUs IEV4cHJFdmFsU3RlcCAqb3ApCiAgKiBDYWxsZXJzIG11c3QgaGFuZGxlIHRoZSBzdHJpY3Qg TEhTLWlzLU5VTEw7IHJldHVybiBOVUxMIGZhc3QgcGF0aCBwcmlvciB0bwogICogY2FsbGlu ZyB0aGlzLgogICovCi1zdGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgdm9pZAor c3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgdm9pZAogRXhlY0V2YWxBcnJheUNvbXBhcmVJbnRl cm5hbChGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgQXJyYXlUeXBlICphcnIsCiAJCQkJCQkJ IGludDE2IHR5cGxlbiwgYm9vbCB0eXBieXZhbCwgY2hhciB0eXBhbGlnbiwKIAkJCQkJCQkg Ym9vbCB1c2VPciwgRGF0dW0gKnJlc3VsdCwgYm9vbCAqcmVzdWx0bnVsbCkKQEAgLTU5MDYs NyArNTkwNiw3IEBAIEV4ZWNFdmFsQWdnT3JkZXJlZFRyYW5zVHVwbGUoRXhwclN0YXRlICpz dGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIH0KIAogLyogaW1wbGVtZW50YXRpb24gb2YgdHJh bnNpdGlvbiBmdW5jdGlvbiBpbnZvY2F0aW9uIGZvciBieXZhbCB0eXBlcyAqLwotc3RhdGlj IHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIHZvaWQKK3N0YXRpYyBwZ19hbHdheXNfaW5s aW5lIHZvaWQKIEV4ZWNBZ2dQbGFpblRyYW5zQnlWYWwoQWdnU3RhdGUgKmFnZ3N0YXRlLCBB Z2dTdGF0ZVBlclRyYW5zIHBlcnRyYW5zLAogCQkJCQkgICBBZ2dTdGF0ZVBlckdyb3VwIHBl cmdyb3VwLAogCQkJCQkgICBFeHByQ29udGV4dCAqYWdnY29udGV4dCwgaW50IHNldG5vKQpA QCAtNTkzOCw3ICs1OTM4LDcgQEAgRXhlY0FnZ1BsYWluVHJhbnNCeVZhbChBZ2dTdGF0ZSAq YWdnc3RhdGUsIEFnZ1N0YXRlUGVyVHJhbnMgcGVydHJhbnMsCiB9CiAKIC8qIGltcGxlbWVu dGF0aW9uIG9mIHRyYW5zaXRpb24gZnVuY3Rpb24gaW52b2NhdGlvbiBmb3IgYnlyZWYgdHlw ZXMgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSB2b2lkCitzdGF0aWMg cGdfYWx3YXlzX2lubGluZSB2b2lkCiBFeGVjQWdnUGxhaW5UcmFuc0J5UmVmKEFnZ1N0YXRl ICphZ2dzdGF0ZSwgQWdnU3RhdGVQZXJUcmFucyBwZXJ0cmFucywKIAkJCQkJICAgQWdnU3Rh dGVQZXJHcm91cCBwZXJncm91cCwKIAkJCQkJICAgRXhwckNvbnRleHQgKmFnZ2NvbnRleHQs IGludCBzZXRubykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNUdXBs ZXMuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNUdXBsZXMuYwppbmRleCA3ZjRlYmY5 NTQzMi4uOTdhZTAxOWQxMGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNUdXBsZXMuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVHVwbGVzLmMKQEAg LTcyLDggKzcyLDggQEAKIAogc3RhdGljIFR1cGxlRGVzYyBFeGVjVHlwZUZyb21UTEludGVy bmFsKExpc3QgKnRhcmdldExpc3QsCiAJCQkJCQkJCQkJYm9vbCBza2lwanVuayk7Ci1zdGF0 aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgdm9pZCBzbG90X2RlZm9ybV9oZWFwX3R1 cGxlKFR1cGxlVGFibGVTbG90ICpzbG90LCBIZWFwVHVwbGUgdHVwbGUsIHVpbnQzMiAqb2Zm cCwKLQkJCQkJCQkJCQkJCQkJCSAgaW50IHJlcW5hdHRzLCBib29sIHN1cHBvcnRfY3N0cmlu Zyk7CitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSB2b2lkIHNsb3RfZGVmb3JtX2hlYXBfdHVw bGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIEhlYXBUdXBsZSB0dXBsZSwgdWludDMyICpvZmZw LAorCQkJCQkJCQkJCQkJCWludCByZXFuYXR0cywgYm9vbCBzdXBwb3J0X2NzdHJpbmcpOwog c3RhdGljIGlubGluZSB2b2lkIHR0c19idWZmZXJfaGVhcF9zdG9yZV90dXBsZShUdXBsZVRh YmxlU2xvdCAqc2xvdCwKIAkJCQkJCQkJCQkJICAgSGVhcFR1cGxlIHR1cGxlLAogCQkJCQkJ CQkJCQkgICBCdWZmZXIgYnVmZmVyLApAQCAtMTAxMyw3ICsxMDEzLDcgQEAgdHRzX2J1ZmZl cl9oZWFwX3N0b3JlX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90LCBIZWFwVHVwbGUgdHVw bGUsCiAgKiBlbWl0IGNvZGUgZHVyaW5nIGlubGluaW5nIGZvciBjc3RyaW5nIGRlZm9ybWlu ZyB3aGVuIGl0J3MgcmVxdWlyZWQuCiAgKiBjc3RyaW5ncyBjYW4gZXhpc3QgaW4gTWluaW1h bFR1cGxlcywgYnV0IG5vdCBpbiBIZWFwVHVwbGVzLgogICovCi1zdGF0aWMgcGdfYXR0cmli dXRlX2Fsd2F5c19pbmxpbmUgdm9pZAorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgdm9pZAog c2xvdF9kZWZvcm1faGVhcF90dXBsZShUdXBsZVRhYmxlU2xvdCAqc2xvdCwgSGVhcFR1cGxl IHR1cGxlLCB1aW50MzIgKm9mZnAsCiAJCQkJCSAgIGludCByZXFuYXR0cywgYm9vbCBzdXBw b3J0X2NzdHJpbmcpCiB7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl SGFzaGpvaW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVIYXNoam9pbi5jCmluZGV4 IDBiMzY1ZDViNDc1Li4yMDJkZDg2NjI1MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZUhhc2hqb2luLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUhh c2hqb2luLmMKQEAgLTIyMSw3ICsyMjEsNyBAQCBzdGF0aWMgdm9pZCBFeGVjUGFyYWxsZWxI YXNoSm9pblBhcnRpdGlvbk91dGVyKEhhc2hKb2luU3RhdGUgKmhqc3RhdGUpOwogICoJCQkg IHRoZSBvdGhlciBvbmUgaXMgIm91dGVyIi4KICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotc3RhdGlj IHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIFR1cGxlVGFibGVTbG90ICoKK3N0YXRpYyBw Z19hbHdheXNfaW5saW5lIFR1cGxlVGFibGVTbG90ICoKIEV4ZWNIYXNoSm9pbkltcGwoUGxh blN0YXRlICpwc3RhdGUsIGJvb2wgcGFyYWxsZWwpCiB7CiAJSGFzaEpvaW5TdGF0ZSAqbm9k ZSA9IGNhc3ROb2RlKEhhc2hKb2luU3RhdGUsIHBzdGF0ZSk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVNlcXNjYW4uYwppbmRleCA1YmNiMGE4NjFkNy4uYjhjNTI4Y2EwODkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYwpAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgVHVw bGVUYWJsZVNsb3QgKlNlcU5leHQoU2VxU2NhblN0YXRlICpub2RlKTsKICAqCQlUaGlzIGlz IGEgd29ya2hvcnNlIGZvciBFeGVjU2VxU2NhbgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi1zdGF0 aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgVHVwbGVUYWJsZVNsb3QgKgorc3RhdGlj IHBnX2Fsd2F5c19pbmxpbmUgVHVwbGVUYWJsZVNsb3QgKgogU2VxTmV4dChTZXFTY2FuU3Rh dGUgKm5vZGUpCiB7CiAJVGFibGVTY2FuRGVzYyBzY2FuZGVzYzsKQEAgLTk1LDcgKzk1LDcg QEAgU2VxTmV4dChTZXFTY2FuU3RhdGUgKm5vZGUpCiAvKgogICogU2VxUmVjaGVjayAtLSBh Y2Nlc3MgbWV0aG9kIHJvdXRpbmUgdG8gcmVjaGVjayBhIHR1cGxlIGluIEV2YWxQbGFuUXVh bAogICovCi1zdGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgYm9vbAorc3RhdGlj IHBnX2Fsd2F5c19pbmxpbmUgYm9vbAogU2VxUmVjaGVjayhTZXFTY2FuU3RhdGUgKm5vZGUs IFR1cGxlVGFibGVTbG90ICpzbG90KQogewogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9xdWVyeWp1 bWJsZWZ1bmNzLmMKaW5kZXggN2M2Mzc2NmE1MWMuLjJjZTI3YjllNTUyIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tl bmQvbm9kZXMvcXVlcnlqdW1ibGVmdW5jcy5jCkBAIC0yMzIsNyArMjMyLDcgQEAgRG9KdW1i bGUoSnVtYmxlU3RhdGUgKmpzdGF0ZSwgTm9kZSAqbm9kZSkKICAqCiAgKiBOb3RlOiBDYWxs ZXJzIG11c3QgZW5zdXJlIHRoYXQgc2l6ZSA+IDAuCiAgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1 dGVfYWx3YXlzX2lubGluZSB2b2lkCitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSB2b2lkCiBB cHBlbmRKdW1ibGVJbnRlcm5hbChKdW1ibGVTdGF0ZSAqanN0YXRlLCBjb25zdCB1bnNpZ25l ZCBjaGFyICppdGVtLAogCQkJCQkgU2l6ZSBzaXplKQogewpAQCAtMzA4LDcgKzMwOCw3IEBA IEFwcGVuZEp1bWJsZShKdW1ibGVTdGF0ZSAqanN0YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFy ICp2YWx1ZSwgU2l6ZSBzaXplKQogICogQXBwZW5kSnVtYmxlTnVsbAogICoJCUZvciBqdW1i bGluZyBOVUxMIHBvaW50ZXJzCiAgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lu bGluZSB2b2lkCitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSB2b2lkCiBBcHBlbmRKdW1ibGVO dWxsKEp1bWJsZVN0YXRlICpqc3RhdGUpCiB7CiAJanN0YXRlLT5wZW5kaW5nX251bGxzKys7 CkBAIC0zNzUsNyArMzc1LDcgQEAgQXBwZW5kSnVtYmxlNjQoSnVtYmxlU3RhdGUgKmpzdGF0 ZSwgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUpCiAgKgogICogTm90ZTogQ2FsbGVycyBt dXN0IGVuc3VyZSB0aGF0IHRoZXJlJ3MgYXQgbGVhc3QgMSBwZW5kaW5nIE5VTEwuCiAgKi8K LXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSB2b2lkCitzdGF0aWMgcGdfYWx3 YXlzX2lubGluZSB2b2lkCiBGbHVzaFBlbmRpbmdOdWxscyhKdW1ibGVTdGF0ZSAqanN0YXRl KQogewogCUFzc2VydChqc3RhdGUtPnBlbmRpbmdfbnVsbHMgPiAwKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9idWZmZXIvYnVmbWdyLmMKaW5kZXggOWFiMjgyYTc2ZDEuLjM5MDg1Mjk4NzJhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYworKysgYi9z cmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYwpAQCAtNjQ5LDEwICs2NDksMTAg QEAgc3RhdGljIGlubGluZSBCdWZmZXJEZXNjICpCdWZmZXJBbGxvYyhTTWdyUmVsYXRpb24g c21nciwKIHN0YXRpYyBib29sIEFzeW5jUmVhZEJ1ZmZlcnMoUmVhZEJ1ZmZlcnNPcGVyYXRp b24gKm9wZXJhdGlvbiwgaW50ICpuYmxvY2tzX3Byb2dyZXNzKTsKIHN0YXRpYyB2b2lkIENo ZWNrUmVhZEJ1ZmZlcnNPcGVyYXRpb24oUmVhZEJ1ZmZlcnNPcGVyYXRpb24gKm9wZXJhdGlv biwgYm9vbCBpc19jb21wbGV0ZSk7CiAKLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lu bGluZSB2b2lkIFRyYWNrQnVmZmVySGl0KElPT2JqZWN0IGlvX29iamVjdCwKLQkJCQkJCQkJ CQkJCQkgIElPQ29udGV4dCBpb19jb250ZXh0LAotCQkJCQkJCQkJCQkJCSAgUmVsYXRpb24g cmVsLCBjaGFyIHBlcnNpc3RlbmNlLCBTTWdyUmVsYXRpb24gc21nciwKLQkJCQkJCQkJCQkJ CQkgIEZvcmtOdW1iZXIgZm9ya251bSwgQmxvY2tOdW1iZXIgYmxvY2tudW0pOworc3RhdGlj IHBnX2Fsd2F5c19pbmxpbmUgdm9pZCBUcmFja0J1ZmZlckhpdChJT09iamVjdCBpb19vYmpl Y3QsCisJCQkJCQkJCQkJCUlPQ29udGV4dCBpb19jb250ZXh0LAorCQkJCQkJCQkJCQlSZWxh dGlvbiByZWwsIGNoYXIgcGVyc2lzdGVuY2UsIFNNZ3JSZWxhdGlvbiBzbWdyLAorCQkJCQkJ CQkJCQlGb3JrTnVtYmVyIGZvcmtudW0sIEJsb2NrTnVtYmVyIGJsb2NrbnVtKTsKIHN0YXRp YyBCdWZmZXIgR2V0VmljdGltQnVmZmVyKEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IHN0cmF0ZWd5 LCBJT0NvbnRleHQgaW9fY29udGV4dCk7CiBzdGF0aWMgdm9pZCBGbHVzaFVubG9ja2VkQnVm ZmVyKEJ1ZmZlckRlc2MgKmJ1ZiwgU01nclJlbGF0aW9uIHJlbG4sCiAJCQkJCQkJCUlPT2Jq ZWN0IGlvX29iamVjdCwgSU9Db250ZXh0IGlvX2NvbnRleHQpOwpAQCAtMTIxOSw3ICsxMjE5 LDcgQEAgWmVyb0FuZExvY2tCdWZmZXIoQnVmZmVyIGJ1ZmZlciwgUmVhZEJ1ZmZlck1vZGUg bW9kZSwgYm9vbCBhbHJlYWR5X3ZhbGlkKQogICogYWxyZWFkeSBwcmVzZW50LCBvciBmYWxz ZSBpZiBtb3JlIHdvcmsgaXMgcmVxdWlyZWQgdG8gZWl0aGVyIHJlYWQgaXQgaW4gb3IKICAq IHplcm8gaXQuCiAgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBCdWZm ZXIKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIEJ1ZmZlcgogUGluQnVmZmVyRm9yQmxvY2so UmVsYXRpb24gcmVsLAogCQkJCSAgU01nclJlbGF0aW9uIHNtZ3IsCiAJCQkJICBjaGFyIHBl cnNpc3RlbmNlLApAQCAtMTI3Miw3ICsxMjcyLDcgQEAgUGluQnVmZmVyRm9yQmxvY2soUmVs YXRpb24gcmVsLAogICoKICAqIHNtZ3IgaXMgcmVxdWlyZWQsIHJlbCBpcyBvcHRpb25hbCB1 bmxlc3MgdXNpbmcgUF9ORVcuCiAgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lu bGluZSBCdWZmZXIKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIEJ1ZmZlcgogUmVhZEJ1ZmZl cl9jb21tb24oUmVsYXRpb24gcmVsLCBTTWdyUmVsYXRpb24gc21nciwgY2hhciBzbWdyX3Bl cnNpc3RlbmNlLAogCQkJCSAgRm9ya051bWJlciBmb3JrTnVtLAogCQkJCSAgQmxvY2tOdW1i ZXIgYmxvY2tOdW0sIFJlYWRCdWZmZXJNb2RlIG1vZGUsCkBAIC0xMzY3LDcgKzEzNjcsNyBA QCBSZWFkQnVmZmVyX2NvbW1vbihSZWxhdGlvbiByZWwsIFNNZ3JSZWxhdGlvbiBzbWdyLCBj aGFyIHNtZ3JfcGVyc2lzdGVuY2UsCiAJcmV0dXJuIGJ1ZmZlcjsKIH0KIAotc3RhdGljIHBn X2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIGJvb2wKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5l IGJvb2wKIFN0YXJ0UmVhZEJ1ZmZlcnNJbXBsKFJlYWRCdWZmZXJzT3BlcmF0aW9uICpvcGVy YXRpb24sCiAJCQkJCSBCdWZmZXIgKmJ1ZmZlcnMsCiAJCQkJCSBCbG9ja051bWJlciBibG9j a051bSwKQEAgLTE2NzksNyArMTY3OSw3IEBAIENoZWNrUmVhZEJ1ZmZlcnNPcGVyYXRpb24o UmVhZEJ1ZmZlcnNPcGVyYXRpb24gKm9wZXJhdGlvbiwgYm9vbCBpc19jb21wbGV0ZSkKICAq IFdlIHRyYWNrIHZhcmlvdXMgc3RhdHMgcmVsYXRlZCB0byBidWZmZXIgaGl0cy4gQmVjYXVz ZSB0aGlzIGlzIGRvbmUgaW4gYQogICogZmV3IHNlcGFyYXRlIHBsYWNlcywgdGhpcyBoZWxw ZXIgZXhpc3RzIGZvciBjb252ZW5pZW5jZS4KICAqLwotc3RhdGljIHBnX2F0dHJpYnV0ZV9h bHdheXNfaW5saW5lIHZvaWQKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIHZvaWQKIFRyYWNr QnVmZmVySGl0KElPT2JqZWN0IGlvX29iamVjdCwgSU9Db250ZXh0IGlvX2NvbnRleHQsCiAJ CQkgICBSZWxhdGlvbiByZWwsIGNoYXIgcGVyc2lzdGVuY2UsIFNNZ3JSZWxhdGlvbiBzbWdy LAogCQkJICAgRm9ya051bWJlciBmb3JrbnVtLCBCbG9ja051bWJlciBibG9ja251bSkKQEAg LTIxOTMsNyArMjE5Myw3IEBAIEFzeW5jUmVhZEJ1ZmZlcnMoUmVhZEJ1ZmZlcnNPcGVyYXRp b24gKm9wZXJhdGlvbiwgaW50ICpuYmxvY2tzX3Byb2dyZXNzKQogICoKICAqIE5vIGxvY2tz IGFyZSBoZWxkIGVpdGhlciBhdCBlbnRyeSBvciBleGl0LgogICovCi1zdGF0aWMgcGdfYXR0 cmlidXRlX2Fsd2F5c19pbmxpbmUgQnVmZmVyRGVzYyAqCitzdGF0aWMgcGdfYWx3YXlzX2lu bGluZSBCdWZmZXJEZXNjICoKIEJ1ZmZlckFsbG9jKFNNZ3JSZWxhdGlvbiBzbWdyLCBjaGFy IHJlbHBlcnNpc3RlbmNlLCBGb3JrTnVtYmVyIGZvcmtOdW0sCiAJCQlCbG9ja051bWJlciBi bG9ja051bSwKIAkJCUJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IHN0cmF0ZWd5LApAQCAtODMyNiw3 ICs4MzI2LDcgQEAgTWFya0RpcnR5QWxsVW5waW5uZWRCdWZmZXJzKGludDMyICpidWZmZXJz X2RpcnRpZWQsCiAgKiBwYXJ0IG9mIGVycm9yIGhhbmRsaW5nLCB3aGljaCBpbiB0dXJuIGNv dWxkIGxlYWQgdG8gdGhlIGJ1ZmZlciBiZWluZwogICogcmVwbGFjZWQgd2hpbGUgSU8gaXMg b25nb2luZy4KICAqLwotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIHZvaWQK K3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIHZvaWQKIGJ1ZmZlcl9zdGFnZV9jb21tb24oUGdB aW9IYW5kbGUgKmlvaCwgYm9vbCBpc193cml0ZSwgYm9vbCBpc190ZW1wKQogewogCXVpbnQ2 NAkgICAqaW9fZGF0YTsKQEAgLTg1NzAsNyArODU3MCw3IEBAIGJ1ZmZlcl9yZWFkdl9lbmNv ZGVfZXJyb3IoUGdBaW9SZXN1bHQgKnJlc3VsdCwKICAqIEhlbHBlciBmb3IgQUlPIHJlYWR2 IGNvbXBsZXRpb24gY2FsbGJhY2tzLCBzdXBwb3J0aW5nIGJvdGggc2hhcmVkIGFuZCB0ZW1w CiAgKiBidWZmZXJzLiBHZXRzIGNhbGxlZCBvbmNlIGZvciBlYWNoIGJ1ZmZlciBpbiBhIG11 bHRpLXBhZ2UgcmVhZC4KICAqLwotc3RhdGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5l IHZvaWQKK3N0YXRpYyBwZ19hbHdheXNfaW5saW5lIHZvaWQKIGJ1ZmZlcl9yZWFkdl9jb21w bGV0ZV9vbmUoUGdBaW9UYXJnZXREYXRhICp0ZCwgdWludDggYnVmX29mZiwgQnVmZmVyIGJ1 ZmZlciwKIAkJCQkJCSAgdWludDggZmxhZ3MsIGJvb2wgZmFpbGVkLCBib29sIGlzX3RlbXAs CiAJCQkJCQkgIGJvb2wgKmJ1ZmZlcl9pbnZhbGlkLApAQCAtODcyMSw3ICs4NzIxLDcgQEAg YnVmZmVyX3JlYWR2X2NvbXBsZXRlX29uZShQZ0Fpb1RhcmdldERhdGEgKnRkLCB1aW50OCBi dWZfb2ZmLCBCdWZmZXIgYnVmZmVyLAogICoKICAqIFNoYXJlZCBiZXR3ZWVuIHNoYXJlZCBh bmQgbG9jYWwgYnVmZmVycywgdG8gcmVkdWNlIGNvZGUgZHVwbGljYXRpb24uCiAgKi8KLXN0 YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBQZ0Fpb1Jlc3VsdAorc3RhdGljIHBn X2Fsd2F5c19pbmxpbmUgUGdBaW9SZXN1bHQKIGJ1ZmZlcl9yZWFkdl9jb21wbGV0ZShQZ0Fp b0hhbmRsZSAqaW9oLCBQZ0Fpb1Jlc3VsdCBwcmlvcl9yZXN1bHQsCiAJCQkJCSAgdWludDgg Y2JfZGF0YSwgYm9vbCBpc190ZW1wKQogewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2pzb24uYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uLmMKaW5kZXggMGZl ZTFiNDBkNjMuLmRjY2JlMDdjZDJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uLmMKQEAgLTE1Mjgs NyArMTUyOCw3IEBAIGpzb25fb2JqZWN0X3R3b19hcmcoUEdfRlVOQ1RJT05fQVJHUykKICAq IGVzY2FwZV9qc29uX2NoYXIKICAqCQlJbmxpbmUgaGVscGVyIGZ1bmN0aW9uIGZvciBlc2Nh cGVfanNvbiogZnVuY3Rpb25zCiAgKi8KLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lu bGluZSB2b2lkCitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSB2b2lkCiBlc2NhcGVfanNvbl9j aGFyKFN0cmluZ0luZm8gYnVmLCBjaGFyIGMpCiB7CiAJc3dpdGNoIChjKQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvY2F0Y2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2NhY2hlL2NhdGNhY2hlLmMKaW5kZXggNmZiMzVkZWRmOTUuLjBjODk1NWZjNjFhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9jYXRjYWNoZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL2NhdGNhY2hlLmMKQEAgLTEwOTEsNyArMTA5MSw3IEBA IFJlaGFzaENhdENhY2hlTGlzdHMoQ2F0Q2FjaGUgKmNwKQogICoKICAqIENhbGwgQ2F0YWxv Z0NhY2hlSW5pdGlhbGl6ZUNhY2hlKCkgaWYgbm90IHlldCBkb25lLgogICovCi1wZ19hdHRy aWJ1dGVfYWx3YXlzX2lubGluZQorcGdfYWx3YXlzX2lubGluZQogc3RhdGljIHZvaWQKIENv bmRpdGlvbmFsQ2F0YWxvZ0NhY2hlSW5pdGlhbGl6ZUNhY2hlKENhdENhY2hlICpjYWNoZSkK IHsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2MuaCBiL3NyYy9pbmNsdWRlL2MuaAppbmRl eCBmMzI5ODlhNjMzMS4uYzY0MWYwMDRlZmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Mu aAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAgLTI4OSwxOSArMjg5LDI2IEBAIGV4dGVybiAi QysrIgogI2VuZGlmCiAKIC8qCi0gKiBVc2UgInBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5l IiBpbiBwbGFjZSBvZiAiaW5saW5lIiBmb3IgZnVuY3Rpb25zIHRoYXQKKyAqIFVzZSAicGdf YWx3YXlzX2lubGluZSIgaW4gcGxhY2Ugb2YgImlubGluZSIgZm9yIGZ1bmN0aW9ucyB0aGF0 CiAgKiB3ZSB3aXNoIHRvIGZvcmNlIGlubGluaW5nIG9mLCBldmVuIHdoZW4gdGhlIGNvbXBp bGVyJ3MgaGV1cmlzdGljcyB3b3VsZAogICogY2hvb3NlIG5vdCB0by4gIEJ1dCwgaWYgcG9z c2libGUsIGRvbid0IGZvcmNlIGlubGluaW5nIGluIHVub3B0aW1pemVkCiAgKiBkZWJ1ZyBi dWlsZHMuCisgKgorICogWFhYIFRoZSAicGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUiIHZh cmlhbnQgaXMga2VwdCBmb3IgYmFja3dhcmRzCisgKiBjb21wYXRpYmlsaXR5IHdpdGggZXhp c3RpbmcgY29kZS4gQWxsIG5ldyBjb2RlIHNob3VsZCB1c2UgdGhlIHNob3J0ZXIKKyAqIHZh cmlhbnQgInBnX2Fsd2F5c19pbmxpbmUuIgogICovCiAjaWYgZGVmaW5lZChfX0dOVUNfXykg JiYgZGVmaW5lZChfX09QVElNSVpFX18pCiAvKiBHQ0Mgc3VwcG9ydHMgYWx3YXlzX2lubGlu ZSB2aWEgX19hdHRyaWJ1dGVfXyAqLworI2RlZmluZSBwZ19hbHdheXNfaW5saW5lIF9fYXR0 cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKSBpbmxpbmUKICNkZWZpbmUgcGdfYXR0cmlidXRl X2Fsd2F5c19pbmxpbmUgX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkpIGlubGluZQog I2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKIC8qIE1TVkMgaGFzIGEgc3BlY2lhbCBrZXl3b3Jk IGZvciB0aGlzICovCisjZGVmaW5lIHBnX2Fsd2F5c19pbmxpbmUgX19mb3JjZWlubGluZQog I2RlZmluZSBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBfX2ZvcmNlaW5saW5lCiAjZWxz ZQogLyogT3RoZXJ3aXNlLCB0aGUgYmVzdCB3ZSBjYW4gZG8gaXMgdG8gc2F5ICJpbmxpbmUi ICovCisjZGVmaW5lIHBnX2Fsd2F5c19pbmxpbmUgaW5saW5lCiAjZGVmaW5lIHBnX2F0dHJp YnV0ZV9hbHdheXNfaW5saW5lIGlubGluZQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWNTY2FuLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVj U2Nhbi5oCmluZGV4IDE4YjAzMjM1YzNjLi43Zjc5NWIwYjNmYyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvZXhlY1NjYW4uaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRv ci9leGVjU2Nhbi5oCkBAIC0yNCwxMiArMjQsMTIgQEAKICAqIFRoaXMgcm91dGluZSBzdWJz dGl0dXRlcyBhIHRlc3QgdHVwbGUgaWYgaW5zaWRlIGFuIEV2YWxQbGFuUXVhbCByZWNoZWNr LgogICogT3RoZXJ3aXNlLCBpdCBzaW1wbHkgZXhlY3V0ZXMgdGhlIGFjY2VzcyBtZXRob2Qn cyBuZXh0LXR1cGxlIHJvdXRpbmUuCiAgKgotICogVGhlIHBnX2F0dHJpYnV0ZV9hbHdheXNf aW5saW5lIGF0dHJpYnV0ZSBhbGxvd3MgdGhlIGNvbXBpbGVyIHRvIGlubGluZQorICogVGhl IHBnX2Fsd2F5c19pbmxpbmUgYXR0cmlidXRlIGFsbG93cyB0aGUgY29tcGlsZXIgdG8gaW5s aW5lCiAgKiB0aGlzIGZ1bmN0aW9uIGludG8gaXRzIGNhbGxlci4gV2hlbiBFUFFTdGF0ZSBp cyBOVUxMLCB0aGUgRXZhbFBsYW5RdWFsCiAgKiBsb2dpYyBpcyBjb21wbGV0ZWx5IGVsaW1p bmF0ZWQgYXQgY29tcGlsZSB0aW1lLCBhdm9pZGluZyB1bm5lY2Vzc2FyeQogICogcnVuLXRp bWUgY2hlY2tzIGFuZCBjb2RlIGZvciBjYXNlcyB3aGVyZSBFUFEgaXMgbm90IHJlcXVpcmVk LgogICovCi1zdGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgVHVwbGVUYWJsZVNs b3QgKgorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgVHVwbGVUYWJsZVNsb3QgKgogRXhlY1Nj YW5GZXRjaChTY2FuU3RhdGUgKm5vZGUsCiAJCQkgIEVQUVN0YXRlICplcHFzdGF0ZSwKIAkJ CSAgRXhlY1NjYW5BY2Nlc3NNdGQgYWNjZXNzTXRkLApAQCAtMTQ1LDcgKzE0NSw3IEBAIEV4 ZWNTY2FuRmV0Y2goU2NhblN0YXRlICpub2RlLAogICogY29uZGl0aW9ucyBlbmZvcmNlZCBi eSB0aGUgYWNjZXNzIG1ldGhvZC4KICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGFuIGFsdGVy bmF0aXZlIHRvIEV4ZWNTY2FuLCB1c2VkIHdoZW4gY2FsbGVycyBtYXkgb21pdAotICogJ3F1 YWwnIG9yICdwcm9qSW5mbycuIFRoZSBwZ19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBhdHRy aWJ1dGUgYWxsb3dzIHRoZQorICogJ3F1YWwnIG9yICdwcm9qSW5mbycuIFRoZSBwZ19hbHdh eXNfaW5saW5lIGF0dHJpYnV0ZSBhbGxvd3MgdGhlCiAgKiBjb21waWxlciB0byBlbGltaW5h dGUgbm9uLXJlbGV2YW50IGJyYW5jaGVzIGF0IGNvbXBpbGUgdGltZSwgYXZvaWRpbmcKICAq IHJ1bi10aW1lIGNoZWNrcyBpbiB0aG9zZSBjYXNlcy4KICAqCkBAIC0xNTcsNyArMTU3LDcg QEAgRXhlY1NjYW5GZXRjaChTY2FuU3RhdGUgKm5vZGUsCiAgKglwb3NpdGlvbmVkIGJlZm9y ZSB0aGUgZmlyc3QgcXVhbGlmeWluZyB0dXBsZS4KICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotc3Rh dGljIHBnX2F0dHJpYnV0ZV9hbHdheXNfaW5saW5lIFR1cGxlVGFibGVTbG90ICoKK3N0YXRp YyBwZ19hbHdheXNfaW5saW5lIFR1cGxlVGFibGVTbG90ICoKIEV4ZWNTY2FuRXh0ZW5kZWQo U2NhblN0YXRlICpub2RlLAogCQkJCSBFeGVjU2NhbkFjY2Vzc010ZCBhY2Nlc3NNdGQsCS8q IGZ1bmN0aW9uIHJldHVybmluZyBhIHR1cGxlICovCiAJCQkJIEV4ZWNTY2FuUmVjaGVja010 ZCByZWNoZWNrTXRkLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5z dHJfdGltZS5oIGIvc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oCmluZGV4 IDY1NWY4NzM3YjZmLi42NTA3NzA3NTRkNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9y dGFiaWxpdHkvaW5zdHJfdGltZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BvcnRhYmlsaXR5L2lu c3RyX3RpbWUuaApAQCAtMzc2LDcgKzM3Niw3IEBAIHBnX3JkdHNjcCh2b2lkKQogICogb25s eSBpbmxpbmluZyB0aGUgZnVuY3Rpb24gcGFydGlhbGx5LgogICogU2VlIGh0dHBzOi8vZ2Nj LmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTEyNDc5NQogICovCi1zdGF0aWMg cGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgaW5zdHJfdGltZQorc3RhdGljIHBnX2Fsd2F5 c19pbmxpbmUgaW5zdHJfdGltZQogcGdfZ2V0X3RpY2tzKHZvaWQpCiB7CiAJaWYgKGxpa2Vs eSh0aW1pbmdfdHNjX2VuYWJsZWQpKQpAQCAtMzkwLDcgKzM5MCw3IEBAIHBnX2dldF90aWNr cyh2b2lkKQogCXJldHVybiBwZ19nZXRfdGlja3Nfc3lzdGVtKCk7CiB9CiAKLXN0YXRpYyBw Z19hdHRyaWJ1dGVfYWx3YXlzX2lubGluZSBpbnN0cl90aW1lCitzdGF0aWMgcGdfYWx3YXlz X2lubGluZSBpbnN0cl90aW1lCiBwZ19nZXRfdGlja3NfZmFzdCh2b2lkKQogewogCWlmIChs aWtlbHkodGltaW5nX3RzY19lbmFibGVkKSkKQEAgLTQwNiwxMyArNDA2LDEzIEBAIHBnX2dl dF90aWNrc19mYXN0KHZvaWQpCiAKICNlbHNlCiAKLXN0YXRpYyBwZ19hdHRyaWJ1dGVfYWx3 YXlzX2lubGluZSBpbnN0cl90aW1lCitzdGF0aWMgcGdfYWx3YXlzX2lubGluZSBpbnN0cl90 aW1lCiBwZ19nZXRfdGlja3Modm9pZCkKIHsKIAlyZXR1cm4gcGdfZ2V0X3RpY2tzX3N5c3Rl bSgpOwogfQogCi1zdGF0aWMgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxpbmUgaW5zdHJfdGlt ZQorc3RhdGljIHBnX2Fsd2F5c19pbmxpbmUgaW5zdHJfdGltZQogcGdfZ2V0X3RpY2tzX2Zh c3Qodm9pZCkKIHsKIAlyZXR1cm4gcGdfZ2V0X3RpY2tzX3N5c3RlbSgpOwotLSAKMi41NC4w Cgo= --------------pYAtEFM0mtoOR6cYEisDdY0G--