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 1voO1k-002bEh-0e for pgsql-hackers@arkaria.postgresql.org; Fri, 06 Feb 2026 15:45:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1voO1j-004fcw-18 for pgsql-hackers@arkaria.postgresql.org; Fri, 06 Feb 2026 15:45:47 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1voO1i-004fco-2R for pgsql-hackers@lists.postgresql.org; Fri, 06 Feb 2026 15:45:46 +0000 Received: from fout-a3-smtp.messagingengine.com ([103.168.172.146]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1voO1f-00000001NvV-15vs for pgsql-hackers@lists.postgresql.org; Fri, 06 Feb 2026 15:45:46 +0000 Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfout.phl.internal (Postfix) with ESMTP id 4EBAEEC02A4; Fri, 6 Feb 2026 10:45:41 -0500 (EST) Received: from phl-imap-05 ([10.202.2.95]) by phl-compute-06.internal (MEProxy); Fri, 06 Feb 2026 10:45:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eulerto.com; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1770392741; x=1770479141; bh=ewnCiPltuC B2/nPIKuir+YDMPjqe2j1z5N1dA88mUx0=; b=SypBx/CP5OOQi9aH3ekwio5Syv YZpDivhZI8EfBLOpRJWNILXH1+O15o3iybFzU4l5S583NIkUF1PlL3T2b3ZJHDIV iqEciaTKBPKqQvXzUh3Q5OwuHLFL2C9jZjeMlf4/nOlkSC7QkTtKQtFFA+gjAf1O mtkgSoSOURv8De9v7YpKicfZDbFqd6zEqrP2n5YUAhjhQZWqYGfLfdww4seoeRzr IgBjGT9M0JsSgESrjtysGcY4DNk2agpmEaChbNLZHd/qyTBKz1fBwwvf+Oo4K5el 8T3wvfv5b6z7QDjxHc3q0T9q7kwOcn8fJIffLF1K05LxX0W4k3XF6F7hb9Xw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1770392741; x=1770479141; bh=ewnCiPltuCB2/nPIKuir+YDMPjqe2j1z5N1 dA88mUx0=; b=K9G6mZ9N/VdsyIUzOcgE+A5khmFsdahVf5Z0VdKRjWWKObTQ3bT bVpcP/XEcXVe+GzECRnXr8oJQs9W0SJ+lD4Lhb5NAUL8jiKd5xTgHFBcAbEPn1vt 4W0YCFZnMA/KIG05TWE6Ikd+cWhAxfiHBFNa05EetgMg+0FreEmvvIZt2QLCPJnm X1pmleHU3p+aRD444L/RYgvIgaARdXScNEKrS/VHWd9nPU5dXw8ZxjxjabMqtg9d nkoKkdgjdb1iRkXOUY0qBHtsIJ3COXqgG/qSJsvi8vZOPS/Er/ADgpvG7JjedVyd /GpPq9JD+Vv/37HlTJPzsaoi0L3hsoR2g+w== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddukeekheeiucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepofggfffhvfevkfgjfhfutgesmhdtreerredttdenucfhrhhomhepfdfguhhlvghr ucfvrghvvghirhgrfdcuoegvuhhlvghrsegvuhhlvghrthhordgtohhmqeenucggtffrrg htthgvrhhnpeeffeegkefhledvleffkefhtdeiheeiiedvueeihefghfeigeekjefhvefg leefheenucffohhmrghinhepvghnthgvrhhprhhishgvuggsrdgtohhmnecuvehluhhsth gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepvghulhgvrhesvghulhgv rhhtohdrtghomhdpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtg hpthhtoheprghlvhhhvghrrhgvsegrlhhvhhdrnhhoqdhiphdrohhrghdprhgtphhtthho pegrnhgurhgvshesrghnrghrrgiivghlrdguvgdprhgtphhtthhopehlihdrvghvrghnrd gthhgrohesghhmrghilhdrtghomhdprhgtphhtthhopehjrghpihhnlhhisehhohhtmhgr ihhlrdgtohhmpdhrtghpthhtohepphhgshhqlhdqhhgrtghkvghrsheslhhishhtshdrph hoshhtghhrvghsqhhlrdhorhhg X-ME-Proxy: Feedback-ID: i0c21471d:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id C217B182007A; Fri, 6 Feb 2026 10:45:40 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface MIME-Version: 1.0 X-ThreadId: AGl55nTq-Okk Date: Fri, 06 Feb 2026 12:45:20 -0300 From: "Euler Taveira" To: "Alvaro Herrera" Cc: japin , "Andres Freund" , pgsql-hackers@lists.postgresql.org, "Chao Li" Message-Id: <88d8e984-ad63-48c1-86af-d50d7776942f@app.fastmail.com> In-Reply-To: <202602061004.yyesvyagjux7@alvherre.pgsql> References: <202602061004.yyesvyagjux7@alvherre.pgsql> Subject: Re: log_min_messages per backend type Content-Type: multipart/mixed; boundary=0eaabf3a3bf54bada9d27f60ca2efa64 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0eaabf3a3bf54bada9d27f60ca2efa64 Content-Type: text/plain Content-Transfer-Encoding: 7bit On Fri, Feb 6, 2026, at 8:05 AM, Alvaro Herrera wrote: > Here are some fixups for the main patch. I include yours so that CI > will test this one. > All suggestions seem good to me. > * I'm not fond of the term "generic", so I changed it to "default", > which IMO makes more sense from the user point of view. > I'm fine with "default" instead of "generic". However, you forgot to replace "generic" in a few places. The attached patch fixes them all. > * There seemed to be too much guc_mallocking[*] going on; for instance for > ptype. I simplified that by just overwriting the : to a '\0', then we > can use the original string for pg_strcasecmp(). At the bottom of the > loop we restore the ':', so that the code below can reuse the original > values. This is okay because we have already mallocked a copy for > SplitGUCList. > Nice trick. > * There's no reason to add a WARNING to every process type in the > proctypelist.h table. We can just set the values to WARNING in the > log_min_messages initializer in guc_tables.c. > Ok. > * There's no reason AFAICS to have log_min_messages_process_types in > guc_tables.c; nobody else uses it. I made it a local array of char* > inside the check_log_min_messages function. > That's true. > * There's no need to initialize the newlevel[] array, since we're going > to assign values to every individual element at one point or another. > And for the assigned[] array, we don't need to set the value of each to > 'false' in a loop; we can just initialize to '{0}' and the compiler will > do the needful. With this we can remove the loop entirely. > Ok. > * "guc_free()+list_free()+return false" the whole time in the various > failure places across the loop was tiresome. I put them all in a single > place and jump there with a goto. > I tend to avoid goto. However, in this case, it seems it improves readability. > * in foreach() loops, tracking of a 'bool first' is unnecessary. You > can just compare foreach_current_index() with 0. > Didn't know about foreach_current_index. > * Rewrote docs and comments > Ok. I attached the same patches that you shared plus the s/generic/default/ that I said earlier for the sake of CI. -- Euler Taveira EDB https://www.enterprisedb.com/ --0eaabf3a3bf54bada9d27f60ca2efa64 Content-Disposition: attachment; filename*0="v11-0001-log_min_messages-per-process-type.patch" Content-Type: text/x-patch; name="=?UTF-8?Q?v11-0001-log=5Fmin=5Fmessages-per-process-type.patch?=" Content-Transfer-Encoding: base64 RnJvbSA4YzFmYjVjOTdjZDNmZDM0MjEyMGY4YzQ0ZDM0ZjdiZGMxOGU4Yjc0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFdWxlciBUYXZlaXJhIDxldWxlckBldWxlcnRvLmNv bT4KRGF0ZTogVHVlLCA0IE5vdiAyMDI1IDE3OjE4OjIwIC0wMzAwClN1YmplY3Q6IFtQQVRD SCB2MTEgMS8zXSBsb2dfbWluX21lc3NhZ2VzIHBlciBwcm9jZXNzIHR5cGUKCkNoYW5nZSBs b2dfbWluX21lc3NhZ2VzIGZyb20gYSBzaW5nbGUgZWxlbWVudCB0byBhIGNvbW1hLXNlcGFy YXRlZCBsaXN0Cm9mIGVsZW1lbnRzLiBFYWNoIGVsZW1lbnQgaXMgdHlwZTpsZXZlbC4gVGhl IHR5cGVzIGFyZSBhcmNoaXZlciwKYXV0b3ZhY3V1bSAoaW5jbHVkZXMgbGF1bmNoZXIgYW5k IHdvcmtlcnMpLCBiYWNrZW5kLCBiZ3dvcmtlciwgYmd3cml0ZXIsCmNoZWNrcG9pbnRlciwg aW93b3JrZXIsIHBvc3RtYXN0ZXIsIHN5c2xvZ2dlciwgc2xvdHN5bmN3b3JrZXIsIHN0YXJ0 dXAsCndhbHJlY2VpdmVyLCB3YWxzZW5kZXIsIHdhbHN1bW1hcml6ZXIgYW5kIHdhbHdyaXRl ci4gQSBzaW5nbGUgbG9nIGxldmVsCnNob3VsZCBiZSBwYXJ0IG9mIHRoaXMgbGlzdCBhbmQg aXQgaXMgYXBwbGllZCBhcyBhIGZpbmFsIHN0ZXAgdG8gdGhlCnByb2Nlc3MgdHlwZXMgdGhh dCB3ZXJlIG5vdCBpbmZvcm1lZC4KClRoZSBvbGQgc3ludGF4IChhIHNpbmdsZSBsb2cgbGV2 ZWwpIGlzIHN0aWxsIGFjY2VwdGVkIGZvciBiYWNrd2FyZApjb21wYXRpYmlsaXR5LiBJbiB0 aGlzIGNhc2UsIGl0IG1lYW5zIHRoZSBpbmZvcm1lZCBsb2cgbGV2ZWwgaXMgYXBwbGllZApm b3IgYWxsIHByb2Nlc3MgdHlwZXMuIFRoZSBkZWZhdWx0IGxvZyBsZXZlbCBpcyB0aGUgc2Ft ZSAoV0FSTklORykgZm9yCmFsbCBwcm9jZXNzIHR5cGVzLgotLS0KIGRvYy9zcmMvc2dtbC9j b25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICA0MiArKy0KIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2V4dGVuc2lvbi5jICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvdmFyaWFibGUuYyAgICAgICAgICAgICAgIHwgMjU2ICsrKysrKysrKysr KysrKysrKwogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9sYXVuY2hfYmFja2VuZC5jICAgICAg IHwgICAyICstCiBzcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2luaXQvbWlzY2luaXQuYyAgICAgICAg ICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5k YXQgICAgIHwgIDEwICstCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAg ICAgICAgICAgfCAgMjEgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5j b25mLnNhbXBsZSB8ICAgMiArCiBzcmMvaW5jbHVkZS9wb3N0bWFzdGVyL3Byb2N0eXBlbGlz dC5oICAgICAgICAgfCAgNDIgKy0tCiBzcmMvaW5jbHVkZS91dGlscy9ndWMuaCAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDUgKy0KIHNyYy9pbmNsdWRlL3V0aWxzL2d1Y19ob29rcy5o ICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2d1 Yy5vdXQgICAgICAgICAgICAgfCAgNTQgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3Vj LnNxbCAgICAgICAgICAgICAgICAgIHwgIDE4ICsrCiAxNCBmaWxlcyBjaGFuZ2VkLCA0MTkg aW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IGYxYWYx NTA1Y2YzLi4yODc4MTZmYjUwNCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtNzEyMCw3ICs3MTIwLDcg QEAgbG9jYWwwLiogICAgL3Zhci9sb2cvcG9zdGdyZXNxbAogICAgICA8dmFyaWFibGVsaXN0 PgogCiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1sb2ctbWluLW1lc3NhZ2VzIiB4cmVm bGFiZWw9ImxvZ19taW5fbWVzc2FnZXMiPgotICAgICAgPHRlcm0+PHZhcm5hbWU+bG9nX21p bl9tZXNzYWdlczwvdmFybmFtZT4gKDx0eXBlPmVudW08L3R5cGU+KQorICAgICAgPHRlcm0+ PHZhcm5hbWU+bG9nX21pbl9tZXNzYWdlczwvdmFybmFtZT4gKDx0eXBlPnN0cmluZzwvdHlw ZT4pCiAgICAgICA8aW5kZXh0ZXJtPgogICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmxvZ19t aW5fbWVzc2FnZXM8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5 PgogICAgICAgPC9pbmRleHRlcm0+CkBAIC03MTI5LDE0ICs3MTI5LDM4IEBAIGxvY2FsMC4q ICAgIC92YXIvbG9nL3Bvc3RncmVzcWwKICAgICAgICA8cGFyYT4KICAgICAgICAgQ29udHJv bHMgd2hpY2ggPGxpbmsgbGlua2VuZD0icnVudGltZS1jb25maWctc2V2ZXJpdHktbGV2ZWxz Ij5tZXNzYWdlCiAgICAgICAgIGxldmVsczwvbGluaz4gYXJlIHdyaXR0ZW4gdG8gdGhlIHNl cnZlciBsb2cuCi0gICAgICAgIFZhbGlkIHZhbHVlcyBhcmUgPGxpdGVyYWw+REVCVUc1PC9s aXRlcmFsPiwgPGxpdGVyYWw+REVCVUc0PC9saXRlcmFsPiwKLSAgICAgICAgPGxpdGVyYWw+ REVCVUczPC9saXRlcmFsPiwgPGxpdGVyYWw+REVCVUcyPC9saXRlcmFsPiwgPGxpdGVyYWw+ REVCVUcxPC9saXRlcmFsPiwKLSAgICAgICAgPGxpdGVyYWw+SU5GTzwvbGl0ZXJhbD4sIDxs aXRlcmFsPk5PVElDRTwvbGl0ZXJhbD4sIDxsaXRlcmFsPldBUk5JTkc8L2xpdGVyYWw+LAot ICAgICAgICA8bGl0ZXJhbD5FUlJPUjwvbGl0ZXJhbD4sIDxsaXRlcmFsPkxPRzwvbGl0ZXJh bD4sIDxsaXRlcmFsPkZBVEFMPC9saXRlcmFsPiwgYW5kCi0gICAgICAgIDxsaXRlcmFsPlBB TklDPC9saXRlcmFsPi4gIEVhY2ggbGV2ZWwgaW5jbHVkZXMgYWxsIHRoZSBsZXZlbHMgdGhh dAotICAgICAgICBmb2xsb3cgaXQuICBUaGUgbGF0ZXIgdGhlIGxldmVsLCB0aGUgZmV3ZXIg bWVzc2FnZXMgYXJlIHNlbnQKLSAgICAgICAgdG8gdGhlIGxvZy4gIFRoZSBkZWZhdWx0IGlz IDxsaXRlcmFsPldBUk5JTkc8L2xpdGVyYWw+LiAgTm90ZSB0aGF0Ci0gICAgICAgIDxsaXRl cmFsPkxPRzwvbGl0ZXJhbD4gaGFzIGEgZGlmZmVyZW50IHJhbmsgaGVyZSB0aGFuIGluCisg ICAgICAgIFZhbGlkIHZhbHVlcyBhcmUgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiA8bGl0 ZXJhbD50eXBlOmxldmVsPC9saXRlcmFsPgorICAgICAgICBhbmQgYSBzaW5nbGUgPGxpdGVy YWw+bGV2ZWw8L2xpdGVyYWw+LiBUaGUgbGlzdCBhbGxvd3MgaXQgdG8gdXNlCisgICAgICAg IGRpZmZlcmVudCBsZXZlbHMgcGVyIHByb2Nlc3MgdHlwZS4gT25seSB0aGUgc2luZ2xlIDxs aXRlcmFsPmxldmVsPC9saXRlcmFsPgorICAgICAgICBpcyBtYW5kYXRvcnkgKG9yZGVyIGRv ZXMgbm90IG1hdHRlcikgYW5kIGl0IGlzIGFzc2lnbmVkIHRvIHRoZSBwcm9jZXNzCisgICAg ICAgIHR5cGVzIHRoYXQgYXJlIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGxpc3QuCisgICAgICAg IFZhbGlkIHByb2Nlc3MgdHlwZXMgYXJlIGxpc3RlZCBpbiB0aGUgdGFibGUgYmVsb3csIGVh Y2ggY29ycmVzcG9uZGluZyB0bworICAgICAgICBlaXRoZXIgcG9zdG1hc3RlciwgYW4gYXV4 aWxpYXJ5IHByb2Nlc3MgdHlwZSBvciBhIGJhY2tlbmQuCisgICAgICAgIDxzaW1wbGVsaXN0 IHR5cGU9InZlcnQiIGNvbHVtbnM9IjQiPgorICAgICAgICAgPG1lbWJlcj48bGl0ZXJhbD5h cmNoaXZlcjwvbGl0ZXJhbD48L21lbWJlcj4KKyAgICAgICAgIDxtZW1iZXI+PGxpdGVyYWw+ YXV0b3ZhY3V1bTwvbGl0ZXJhbD48L21lbWJlcj4KKyAgICAgICAgIDxtZW1iZXI+PGxpdGVy YWw+YmFja2VuZDwvbGl0ZXJhbD48L21lbWJlcj4KKyAgICAgICAgIDxtZW1iZXI+PGxpdGVy YWw+Ymd3b3JrZXI8L2xpdGVyYWw+PC9tZW1iZXI+CisgICAgICAgICA8bWVtYmVyPjxsaXRl cmFsPmJnd3JpdGVyPC9saXRlcmFsPjwvbWVtYmVyPgorICAgICAgICAgPG1lbWJlcj48bGl0 ZXJhbD5jaGVja3BvaW50ZXI8L2xpdGVyYWw+PC9tZW1iZXI+CisgICAgICAgICA8bWVtYmVy PjxsaXRlcmFsPmlvd29ya2VyPC9saXRlcmFsPjwvbWVtYmVyPgorICAgICAgICAgPG1lbWJl cj48bGl0ZXJhbD5wb3N0bWFzdGVyPC9saXRlcmFsPjwvbWVtYmVyPgorICAgICAgICAgPG1l bWJlcj48bGl0ZXJhbD5zeXNsb2dnZXI8L2xpdGVyYWw+PC9tZW1iZXI+CisgICAgICAgICA8 bWVtYmVyPjxsaXRlcmFsPnNsb3RzeW5jd29ya2VyPC9saXRlcmFsPjwvbWVtYmVyPgorICAg ICAgICAgPG1lbWJlcj48bGl0ZXJhbD5zdGFydHVwPC9saXRlcmFsPjwvbWVtYmVyPgorICAg ICAgICAgPG1lbWJlcj48bGl0ZXJhbD53YWxyZWNlaXZlcjwvbGl0ZXJhbD48L21lbWJlcj4K KyAgICAgICAgIDxtZW1iZXI+PGxpdGVyYWw+d2Fsc2VuZGVyPC9saXRlcmFsPjwvbWVtYmVy PgorICAgICAgICAgPG1lbWJlcj48bGl0ZXJhbD53YWxzdW1tYXJpemVyPC9saXRlcmFsPjwv bWVtYmVyPgorICAgICAgICAgPG1lbWJlcj48bGl0ZXJhbD53YWx3cml0ZXI8L2xpdGVyYWw+ PC9tZW1iZXI+CisgICAgICAgIDwvc2ltcGxlbGlzdD4KKyAgICAgICAgVmFsaWQgPGxpdGVy YWw+bGV2ZWw8L2xpdGVyYWw+IHZhbHVlcyBhcmUgPGxpdGVyYWw+REVCVUc1PC9saXRlcmFs PiwKKyAgICAgICAgPGxpdGVyYWw+REVCVUc0PC9saXRlcmFsPiwgPGxpdGVyYWw+REVCVUcz PC9saXRlcmFsPiwgPGxpdGVyYWw+REVCVUcyPC9saXRlcmFsPiwKKyAgICAgICAgPGxpdGVy YWw+REVCVUcxPC9saXRlcmFsPiwgPGxpdGVyYWw+SU5GTzwvbGl0ZXJhbD4sIDxsaXRlcmFs Pk5PVElDRTwvbGl0ZXJhbD4sCisgICAgICAgIDxsaXRlcmFsPldBUk5JTkc8L2xpdGVyYWw+ LCA8bGl0ZXJhbD5FUlJPUjwvbGl0ZXJhbD4sIDxsaXRlcmFsPkxPRzwvbGl0ZXJhbD4sCisg ICAgICAgIDxsaXRlcmFsPkZBVEFMPC9saXRlcmFsPiwgYW5kIDxsaXRlcmFsPlBBTklDPC9s aXRlcmFsPi4gIEVhY2ggbGV2ZWwgaW5jbHVkZXMKKyAgICAgICAgYWxsIHRoZSBsZXZlbHMg dGhhdCBmb2xsb3cgaXQuICBUaGUgbGF0ZXIgdGhlIGxldmVsLCB0aGUgZmV3ZXIgbWVzc2Fn ZXMgYXJlIHNlbnQKKyAgICAgICAgdG8gdGhlIGxvZy4gIFRoZSBkZWZhdWx0IGlzIDxsaXRl cmFsPldBUk5JTkc8L2xpdGVyYWw+IGZvciBhbGwgcHJvY2VzcyB0eXBlcy4KKyAgICAgICAg Tm90ZSB0aGF0IDxsaXRlcmFsPkxPRzwvbGl0ZXJhbD4gaGFzIGEgZGlmZmVyZW50IHJhbmsg aGVyZSB0aGFuIGluCiAgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1jbGllbnQtbWluLW1l c3NhZ2VzIi8+LgogICAgICAgICBPbmx5IHN1cGVydXNlcnMgYW5kIHVzZXJzIHdpdGggdGhl IGFwcHJvcHJpYXRlIDxsaXRlcmFsPlNFVDwvbGl0ZXJhbD4KICAgICAgICAgcHJpdmlsZWdl IGNhbiBjaGFuZ2UgdGhpcyBzZXR0aW5nLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvZXh0ZW5zaW9uLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHRlbnNpb24uYwpp bmRleCA1OTYxMDVlZTA3OC4uNjg4ZjE4NzRmMzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V4dGVuc2lvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4dGVu c2lvbi5jCkBAIC0xMTkxLDcgKzExOTEsNyBAQCBleGVjdXRlX2V4dGVuc2lvbl9zY3JpcHQo T2lkIGV4dGVuc2lvbk9pZCwgRXh0ZW5zaW9uQ29udHJvbEZpbGUgKmNvbnRyb2wsCiAJCSh2 b2lkKSBzZXRfY29uZmlnX29wdGlvbigiY2xpZW50X21pbl9tZXNzYWdlcyIsICJ3YXJuaW5n IiwKIAkJCQkJCQkJIFBHQ19VU0VSU0VULCBQR0NfU19TRVNTSU9OLAogCQkJCQkJCQkgR1VD X0FDVElPTl9TQVZFLCB0cnVlLCAwLCBmYWxzZSk7Ci0JaWYgKGxvZ19taW5fbWVzc2FnZXMg PCBXQVJOSU5HKQorCWlmIChsb2dfbWluX21lc3NhZ2VzW015QmFja2VuZFR5cGVdIDwgV0FS TklORykKIAkJKHZvaWQpIHNldF9jb25maWdfb3B0aW9uX2V4dCgibG9nX21pbl9tZXNzYWdl cyIsICJ3YXJuaW5nIiwKIAkJCQkJCQkJCSBQR0NfU1VTRVQsIFBHQ19TX1NFU1NJT04sCiAJ CQkJCQkJCQkgQk9PVFNUUkFQX1NVUEVSVVNFUklELApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxl LmMKaW5kZXggNDQ0MGFmZjQ5MjUuLmE0NTAyNTRkMWZhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh cmlhYmxlLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJ1dGlscy9iYWNrZW5kX3N0 YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL2RhdGV0aW1lLmgiCiAjaW5jbHVkZSAidXRpbHMv Zm1ncnByb3Rvcy5oIgorI2luY2x1ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxz L2d1Y19ob29rcy5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1 dGlscy9zeXNjYWNoZS5oIgpAQCAtNDEsNiArNDIsOCBAQAogI2luY2x1ZGUgInV0aWxzL3R6 cGFyc2VyLmgiCiAjaW5jbHVkZSAidXRpbHMvdmFybGVuYS5oIgogCitzdGF0aWMgaW50CWxv Z19taW5fbWVzc2FnZXNfY21wKGNvbnN0IExpc3RDZWxsICphLCBjb25zdCBMaXN0Q2VsbCAq Yik7CisKIC8qCiAgKiBEQVRFU1RZTEUKICAqLwpAQCAtMTI3MiwzICsxMjc1LDI1NiBAQCBj aGVja19zdGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3MoYm9vbCAqbmV3dmFsLCB2b2lkICoq ZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCiAKIAlyZXR1cm4gdHJ1ZTsKIH0KKworLyoKKyAq IEdVQyBjaGVja19ob29rIGZvciBsb2dfbWluX21lc3NhZ2VzCisgKgorICogVGhlIHBhcnNp bmcgY29uc2lzdHMgb2YgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBUWVBFOkxFVkVMIGVs ZW1lbnRzLiBUWVBFCisgKiBpcyBsb2dfbWluX21lc3NhZ2VzX3Byb2Nlc3NfdHlwZXMuICBM RVZFTCBpcyBzZXJ2ZXJfbWVzc2FnZV9sZXZlbF9vcHRpb25zLiBBCisgKiBzaW5nbGUgTEVW RUwgZWxlbWVudCBzaG91bGQgYmUgcGFydCBvZiB0aGlzIGxpc3QgYW5kIGl0IGlzIGFwcGxp ZWQgYXMgYQorICogZmluYWwgc3RlcCB0byB0aGUgcHJvY2VzcyB0eXBlcyB0aGF0IGFyZSBu b3Qgc3BlY2lmaWVkLiBGb3IgYmFja3dhcmQKKyAqIGNvbXBhdGliaWxpdHksIHRoZSBvbGQg c3ludGF4IGlzIHN0aWxsIGFjY2VwdGVkIGFuZCBpdCBtZWFucyB0byBhcHBseSB0aGUKKyAq IExFVkVMIGZvciBhbGwgcHJvY2VzcyB0eXBlcy4KKyAqLworYm9vbAorY2hlY2tfbG9nX21p bl9tZXNzYWdlcyhjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3Vy Y2UpCit7CisJY2hhcgkgICAqcmF3c3RyaW5nOworCUxpc3QJICAgKmVsZW1saXN0OworCVN0 cmluZ0luZm9EYXRhIGJ1ZjsKKwljaGFyCSAgICpyZXN1bHQ7CisJYm9vbAkJZmlyc3QgPSB0 cnVlOworCWludAkJCW5ld2xldmVsW0JBQ0tFTkRfTlVNX1RZUEVTXTsKKwlib29sCQlhc3Np Z25lZFtCQUNLRU5EX05VTV9UWVBFU107CisJaW50CQkJZ2VuZXJpY2xldmVsID0gLTE7CS8q IC0xIG1lYW5zIG5vdCBhc3NpZ25lZCAqLworCisJLyogSW5pdGlhbGl6ZSB0aGUgYXJyYXku ICovCisJZm9yIChpbnQgaSA9IDA7IGkgPCBCQUNLRU5EX05VTV9UWVBFUzsgaSsrKQorCXsK KwkJbmV3bGV2ZWxbaV0gPSBXQVJOSU5HOworCQlhc3NpZ25lZFtpXSA9IGZhbHNlOworCX0K KworCS8qIE5lZWQgYSBtb2RpZmlhYmxlIGNvcHkgb2Ygc3RyaW5nLiAqLworCXJhd3N0cmlu ZyA9IGd1Y19zdHJkdXAoTE9HLCAqbmV3dmFsKTsKKworCS8qIFBhcnNlIHN0cmluZyBpbnRv IGxpc3Qgb2YgaWRlbnRpZmllcnMuICovCisJaWYgKCFTcGxpdEdVQ0xpc3QocmF3c3RyaW5n LCAnLCcsICZlbGVtbGlzdCkpCisJeworCQkvKiBzeW50YXggZXJyb3IgaW4gbGlzdCAqLwor CQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJMaXN0IHN5bnRheCBpcyBpbnZhbGlkLiIpOworCQls aXN0X2ZyZWUoZWxlbWxpc3QpOworCQlndWNfZnJlZShyYXdzdHJpbmcpOworCQlyZXR1cm4g ZmFsc2U7CisJfQorCisJLyogVmFsaWRhdGUgYW5kIGFzc2lnbiBsb2cgbGV2ZWwgYW5kIHBy b2Nlc3MgdHlwZS4gKi8KKwlmb3JlYWNoX3B0cihjaGFyLCB0b2ssIGVsZW1saXN0KQorCXsK KwkJY2hhcgkgICAqc2VwOworCQljb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgKmVu dHJ5OworCisJCS8qCisJCSAqIENoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYSBwcm9jZXNzIHR5 cGUgZm9sbG93aW5nIHRoZSBsb2cgbGV2ZWwuIElmCisJCSAqIHRoZXJlIGlzIG5vIHNlcGFy YXRvciwgaXQgbWVhbnMgdGhpcyBpcyB0aGUgZ2VuZXJpYyBsb2cgbGV2ZWwuIFRoZQorCQkg KiBnZW5lcmljIGxvZyBsZXZlbCB3aWxsIGJlIGFzc2lnbmVkIHRvIHRoZSBwcm9jZXNzIHR5 cGVzIHRoYXQgd2VyZQorCQkgKiBub3QgaW5mb3JtZWQuCisJCSAqLworCQlzZXAgPSBzdHJj aHIodG9rLCAnOicpOworCQlpZiAoc2VwID09IE5VTEwpCisJCXsKKwkJCWJvb2wJCWZvdW5k ID0gZmFsc2U7CisKKwkJCS8qIFJlamVjdCBkdXBsaWNhdGVzIGZvciBnZW5lcmljIGxvZyBs ZXZlbC4gKi8KKwkJCWlmIChnZW5lcmljbGV2ZWwgIT0gLTEpCisJCQl7CisJCQkJR1VDX2No ZWNrX2VycmRldGFpbCgiR2VuZXJpYyBsb2cgbGV2ZWwgd2FzIGFscmVhZHkgYXNzaWduZWQu Iik7CisJCQkJZ3VjX2ZyZWUocmF3c3RyaW5nKTsKKwkJCQlsaXN0X2ZyZWUoZWxlbWxpc3Qp OworCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KKworCQkJLyogSXMgdGhlIGxvZyBsZXZlbCB2 YWxpZD8gKi8KKwkJCWZvciAoZW50cnkgPSBzZXJ2ZXJfbWVzc2FnZV9sZXZlbF9vcHRpb25z OyBlbnRyeSAmJiBlbnRyeS0+bmFtZTsgZW50cnkrKykKKwkJCXsKKwkJCQlpZiAocGdfc3Ry Y2FzZWNtcChlbnRyeS0+bmFtZSwgdG9rKSA9PSAwKQorCQkJCXsKKwkJCQkJZ2VuZXJpY2xl dmVsID0gZW50cnktPnZhbDsKKwkJCQkJZm91bmQgPSB0cnVlOworCQkJCQlicmVhazsKKwkJ CQl9CisJCQl9CisKKwkJCWlmICghZm91bmQpCisJCQl7CisJCQkJR1VDX2NoZWNrX2VycmRl dGFpbCgiVW5yZWNvZ25pemVkIGxvZyBsZXZlbDogXCIlc1wiLiIsIHRvayk7CisJCQkJZ3Vj X2ZyZWUocmF3c3RyaW5nKTsKKwkJCQlsaXN0X2ZyZWUoZWxlbWxpc3QpOworCQkJCXJldHVy biBmYWxzZTsKKwkJCX0KKwkJfQorCQllbHNlCisJCXsKKwkJCWNoYXIJICAgKmxvZ2xldmVs OworCQkJY2hhcgkgICAqcHR5cGU7CisJCQlib29sCQlmb3VuZCA9IGZhbHNlOworCisJCQlw dHlwZSA9IGd1Y19tYWxsb2MoTE9HLCAoc2VwIC0gdG9rKSArIDEpOworCQkJaWYgKCFwdHlw ZSkKKwkJCXsKKwkJCQlndWNfZnJlZShyYXdzdHJpbmcpOworCQkJCWxpc3RfZnJlZShlbGVt bGlzdCk7CisJCQkJcmV0dXJuIGZhbHNlOworCQkJfQorCQkJbWVtY3B5KHB0eXBlLCB0b2ss IHNlcCAtIHRvayk7CisJCQlwdHlwZVtzZXAgLSB0b2tdID0gJ1wwJzsKKwkJCWxvZ2xldmVs ID0gc2VwICsgMTsKKworCQkJLyogSXMgdGhlIGxvZyBsZXZlbCB2YWxpZD8gKi8KKwkJCWZv ciAoZW50cnkgPSBzZXJ2ZXJfbWVzc2FnZV9sZXZlbF9vcHRpb25zOyBlbnRyeSAmJiBlbnRy eS0+bmFtZTsgZW50cnkrKykKKwkJCXsKKwkJCQlpZiAocGdfc3RyY2FzZWNtcChlbnRyeS0+ bmFtZSwgbG9nbGV2ZWwpID09IDApCisJCQkJeworCQkJCQlmb3VuZCA9IHRydWU7CisJCQkJ CWJyZWFrOworCQkJCX0KKwkJCX0KKworCQkJaWYgKCFmb3VuZCkKKwkJCXsKKwkJCQlHVUNf Y2hlY2tfZXJyZGV0YWlsKCJVbnJlY29nbml6ZWQgbG9nIGxldmVsOiBcIiVzXCIuIiwgbG9n bGV2ZWwpOworCQkJCWd1Y19mcmVlKHB0eXBlKTsKKwkJCQlndWNfZnJlZShyYXdzdHJpbmcp OworCQkJCWxpc3RfZnJlZShlbGVtbGlzdCk7CisJCQkJcmV0dXJuIGZhbHNlOworCQkJfQor CisJCQkvKgorCQkJICogSXMgdGhlIHByb2Nlc3MgdHlwZSBuYW1lIHZhbGlkPyBUaGVyZSBt aWdodCBiZSBtdWx0aXBsZSBlbnRyaWVzCisJCQkgKiBwZXIgcHJvY2VzcyB0eXBlLCBkb24n dCBiYWlsIG91dCBiZWNhdXNlIGl0IGNhbiBhc3NpZ24gdGhlCisJCQkgKiB2YWx1ZSBmb3Ig bXVsdGlwbGUgZW50cmllcy4KKwkJCSAqLworCQkJZm91bmQgPSBmYWxzZTsKKwkJCWZvciAo aW50IGkgPSAwOyBpIDwgQkFDS0VORF9OVU1fVFlQRVM7IGkrKykKKwkJCXsKKwkJCQlpZiAo cGdfc3RyY2FzZWNtcChsb2dfbWluX21lc3NhZ2VzX3Byb2Nlc3NfdHlwZXNbaV0sIHB0eXBl KSA9PSAwKQorCQkJCXsKKwkJCQkJLyogUmVqZWN0IGR1cGxpY2F0ZXMgZm9yIGEgcHJvY2Vz cyB0eXBlLiAqLworCQkJCQlpZiAoYXNzaWduZWRbaV0pCisJCQkJCXsKKwkJCQkJCUdVQ19j aGVja19lcnJkZXRhaWwoIlByb2Nlc3MgdHlwZSBcIiVzXCIgd2FzIGFscmVhZHkgYXNzaWdu ZWQuIiwgcHR5cGUpOworCQkJCQkJZ3VjX2ZyZWUocHR5cGUpOworCQkJCQkJZ3VjX2ZyZWUo cmF3c3RyaW5nKTsKKwkJCQkJCWxpc3RfZnJlZShlbGVtbGlzdCk7CisJCQkJCQlyZXR1cm4g ZmFsc2U7CisJCQkJCX0KKworCQkJCQluZXdsZXZlbFtpXSA9IGVudHJ5LT52YWw7CisJCQkJ CWFzc2lnbmVkW2ldID0gdHJ1ZTsKKwkJCQkJZm91bmQgPSB0cnVlOworCQkJCX0KKwkJCX0K KworCQkJaWYgKCFmb3VuZCkKKwkJCXsKKwkJCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJVbnJl Y29nbml6ZWQgcHJvY2VzcyB0eXBlOiBcIiVzXCIuIiwgcHR5cGUpOworCQkJCWd1Y19mcmVl KHB0eXBlKTsKKwkJCQlndWNfZnJlZShyYXdzdHJpbmcpOworCQkJCWxpc3RfZnJlZShlbGVt bGlzdCk7CisJCQkJcmV0dXJuIGZhbHNlOworCQkJfQorCisJCQlndWNfZnJlZShwdHlwZSk7 CisJCX0KKwl9CisKKwkvKgorCSAqIFRoZSBnZW5lcmljIGxvZyBsZXZlbCBtdXN0IGJlIHNw ZWNpZmllZC4gSXQgaXMgdGhlIGZhbGxiYWNrIHZhbHVlLgorCSAqLworCWlmIChnZW5lcmlj bGV2ZWwgPT0gLTEpCisJeworCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJHZW5lcmljIGxvZyBs ZXZlbCB3YXMgbm90IGRlZmluZWQuIik7CisJCWd1Y19mcmVlKHJhd3N0cmluZyk7CisJCWxp c3RfZnJlZShlbGVtbGlzdCk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKgorCSAqIEFw cGx5IHRoZSBnZW5lcmljIGxvZyBsZXZlbCBhZnRlciBhbGwgb2YgdGhlIHNwZWNpZmljIHBy b2Nlc3MgdHlwZXMKKwkgKiBoYXZlIGJlZW4gYXNzaWduZWQuIEhlbmNlLCBpdCBkb2Vzbid0 IG1hdHRlciB0aGUgb3JkZXIgeW91IHNwZWNpZnkgdGhlCisJICogZ2VuZXJpYyBsb2cgbGV2 ZWwsIHRoZSBmaW5hbCByZXN1bHQgd2lsbCBiZSB0aGUgc2FtZS4KKwkgKi8KKwlmb3IgKGlu dCBpID0gMDsgaSA8IEJBQ0tFTkRfTlVNX1RZUEVTOyBpKyspCisJeworCQlpZiAoIWFzc2ln bmVkW2ldKQorCQkJbmV3bGV2ZWxbaV0gPSBnZW5lcmljbGV2ZWw7CisJfQorCisJLyoKKwkg KiBVc2UgYSBzdGFibGUgcmVwcmVzZW50YXRpb24gb2YgbG9nX21pbl9tZXNzYWdlcy4gVGhl IGdlbmVyaWMgbGV2ZWwgaXMKKwkgKiBhbHdheXMgdGhlIGZpcnN0IGVsZW1lbnQgYW5kIHRo ZSBvdGhlciBlbGVtZW50cyAodHlwZTpsZXZlbCkgYXJlIHNvcnRlZAorCSAqIGJ5IHByb2Nl c3MgdHlwZS4gU2VlIGxvZ19taW5fbWVzc2FnZXNfY21wIGZvciBkZXRhaWxzLgorCSAqLwor CWxpc3Rfc29ydChlbGVtbGlzdCwgbG9nX21pbl9tZXNzYWdlc19jbXApOworCisJaW5pdFN0 cmluZ0luZm8oJmJ1Zik7CisJZm9yZWFjaF9wdHIoY2hhciwgdG9rLCBlbGVtbGlzdCkKKwl7 CisJCWlmIChmaXJzdCkKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmLCB0 b2spOworCQkJZmlyc3QgPSBmYWxzZTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWFwcGVuZFN0 cmluZ0luZm8oJmJ1ZiwgIiwgJXMiLCB0b2spOworCQl9CisJfQorCisJcmVzdWx0ID0gKGNo YXIgKikgZ3VjX21hbGxvYyhMT0csIGJ1Zi5sZW4gKyAxKTsKKwlpZiAoIXJlc3VsdCkKKwkJ cmV0dXJuIGZhbHNlOworCW1lbWNweShyZXN1bHQsIGJ1Zi5kYXRhLCBidWYubGVuKTsKKwly ZXN1bHRbYnVmLmxlbl0gPSAnXDAnOworCisJZ3VjX2ZyZWUoKm5ld3ZhbCk7CisJKm5ld3Zh bCA9IHJlc3VsdDsKKworCWd1Y19mcmVlKHJhd3N0cmluZyk7CisJbGlzdF9mcmVlKGVsZW1s aXN0KTsKKwlwZnJlZShidWYuZGF0YSk7CisKKwkvKgorCSAqIFBhc3MgYmFjayBkYXRhIGZv ciBhc3NpZ25fbG9nX21pbl9tZXNzYWdlcyB0byB1c2UuCisJICovCisJKmV4dHJhID0gZ3Vj X21hbGxvYyhMT0csIEJBQ0tFTkRfTlVNX1RZUEVTICogc2l6ZW9mKGludCkpOworCWlmICgh KmV4dHJhKQorCQlyZXR1cm4gZmFsc2U7CisJbWVtY3B5KCpleHRyYSwgbmV3bGV2ZWwsIEJB Q0tFTkRfTlVNX1RZUEVTICogc2l6ZW9mKGludCkpOworCisJcmV0dXJuIHRydWU7Cit9CisK K3N0YXRpYyBpbnQKK2xvZ19taW5fbWVzc2FnZXNfY21wKGNvbnN0IExpc3RDZWxsICphLCBj b25zdCBMaXN0Q2VsbCAqYikKK3sKKwljb25zdCBjaGFyICpzID0gbGZpcnN0KGEpOworCWNv bnN0IGNoYXIgKnQgPSBsZmlyc3QoYik7CisKKwlpZiAoc3RyY2hyKHMsICc6JykgPT0gTlVM TCkKKwkJcmV0dXJuIC0xOworCWVsc2UgaWYgKHN0cmNocih0LCAnOicpID09IE5VTEwpCisJ CXJldHVybiAxOworCWVsc2UKKwkJcmV0dXJuIHN0cmNtcChzLCB0KTsKK30KKworLyoKKyAq IEdVQyBhc3NpZ25faG9vayBmb3IgbG9nX21pbl9tZXNzYWdlcworICovCit2b2lkCithc3Np Z25fbG9nX21pbl9tZXNzYWdlcyhjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKQor eworCWZvciAoaW50IGkgPSAwOyBpIDwgQkFDS0VORF9OVU1fVFlQRVM7IGkrKykKKwkJbG9n X21pbl9tZXNzYWdlc1tpXSA9ICgoaW50ICopIGV4dHJhKVtpXTsKK30KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvbGF1bmNoX2JhY2tlbmQuYyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvbGF1bmNoX2JhY2tlbmQuYwppbmRleCA5MjZmZDZmMjcwMC4uMDg1NTNj MGYwMjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvbGF1bmNoX2JhY2tl bmQuYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2xhdW5jaF9iYWNrZW5kLmMKQEAg LTE3OCw3ICsxNzgsNyBAQCB0eXBlZGVmIHN0cnVjdAogfSBjaGlsZF9wcm9jZXNzX2tpbmQ7 CiAKIHN0YXRpYyBjaGlsZF9wcm9jZXNzX2tpbmQgY2hpbGRfcHJvY2Vzc19raW5kc1tdID0g ewotI2RlZmluZSBQR19QUk9DVFlQRShia3R5cGUsIGRlc2NyaXB0aW9uLCBtYWluX2Z1bmMs IHNobWVtX2F0dGFjaCkgXAorI2RlZmluZSBQR19QUk9DVFlQRShia3R5cGUsIGJrY2F0ZWdv cnksIGRlc2NyaXB0aW9uLCBtYWluX2Z1bmMsIHNobWVtX2F0dGFjaCwgbG9nX21pbl9tZXNz YWdlcykgXAogCVtia3R5cGVdID0ge2Rlc2NyaXB0aW9uLCBtYWluX2Z1bmMsIHNobWVtX2F0 dGFjaH0sCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9wcm9jdHlwZWxpc3QuaCIKICN1bmRlZiBQ R19QUk9DVFlQRQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCmluZGV4IGU2YTRlZjk5MDU5Li40 ZTkxNDNiNmU2ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYwpAQCAtMjM1LDcgKzIzNSw3 IEBAIGlzX2xvZ19sZXZlbF9vdXRwdXQoaW50IGVsZXZlbCwgaW50IGxvZ19taW5fbGV2ZWwp CiBzdGF0aWMgaW5saW5lIGJvb2wKIHNob3VsZF9vdXRwdXRfdG9fc2VydmVyKGludCBlbGV2 ZWwpCiB7Ci0JcmV0dXJuIGlzX2xvZ19sZXZlbF9vdXRwdXQoZWxldmVsLCBsb2dfbWluX21l c3NhZ2VzKTsKKwlyZXR1cm4gaXNfbG9nX2xldmVsX291dHB1dChlbGV2ZWwsIGxvZ19taW5f bWVzc2FnZXNbTXlCYWNrZW5kVHlwZV0pOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9t aXNjaW5pdC5jCmluZGV4IDU2M2YyMDM3NGZmLi5lZmJhMjBmYThiOSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2luaXQvbWlzY2luaXQuYwpAQCAtMjY2LDcgKzI2Niw3IEBAIEdldEJhY2tlbmRUeXBl RGVzYyhCYWNrZW5kVHlwZSBiYWNrZW5kVHlwZSkKIAogCXN3aXRjaCAoYmFja2VuZFR5cGUp CiAJewotI2RlZmluZSBQR19QUk9DVFlQRShia3R5cGUsIGRlc2NyaXB0aW9uLCBtYWluX2Z1 bmMsIHNobWVtX2F0dGFjaCkJXAorI2RlZmluZSBQR19QUk9DVFlQRShia3R5cGUsIGJrY2F0 ZWdvcnksIGRlc2NyaXB0aW9uLCBtYWluX2Z1bmMsIHNobWVtX2F0dGFjaCwgbG9nX21pbl9t ZXNzYWdlcykJXAogCQljYXNlIGJrdHlwZTogYmFja2VuZERlc2MgPSBkZXNjcmlwdGlvbjsg YnJlYWs7CiAjaW5jbHVkZSAicG9zdG1hc3Rlci9wcm9jdHlwZWxpc3QuaCIKICN1bmRlZiBQ R19QUk9DVFlQRQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFy YW1ldGVycy5kYXQgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRh dAppbmRleCBjMWYxNjAzY2QzOS4uNzYyYjhlZmU2YjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CkBAIC0xNjkzLDEyICsxNjkzLDE0IEBACiAg IG9wdGlvbnMgPT4gJ3NlcnZlcl9tZXNzYWdlX2xldmVsX29wdGlvbnMnLAogfSwKIAoteyBu YW1lID0+ICdsb2dfbWluX21lc3NhZ2VzJywgdHlwZSA9PiAnZW51bScsIGNvbnRleHQgPT4g J1BHQ19TVVNFVCcsIGdyb3VwID0+ICdMT0dHSU5HX1dIRU4nLAoreyBuYW1lID0+ICdsb2df bWluX21lc3NhZ2VzJywgdHlwZSA9PiAnc3RyaW5nJywgY29udGV4dCA9PiAnUEdDX1NVU0VU JywgZ3JvdXAgPT4gJ0xPR0dJTkdfV0hFTicsCiAgIHNob3J0X2Rlc2MgPT4gJ1NldHMgdGhl IG1lc3NhZ2UgbGV2ZWxzIHRoYXQgYXJlIGxvZ2dlZC4nLAogICBsb25nX2Rlc2MgPT4gJ0Vh Y2ggbGV2ZWwgaW5jbHVkZXMgYWxsIHRoZSBsZXZlbHMgdGhhdCBmb2xsb3cgaXQuIFRoZSBs YXRlciB0aGUgbGV2ZWwsIHRoZSBmZXdlciBtZXNzYWdlcyBhcmUgc2VudC4nLAotICB2YXJp YWJsZSA9PiAnbG9nX21pbl9tZXNzYWdlcycsCi0gIGJvb3RfdmFsID0+ICdXQVJOSU5HJywK LSAgb3B0aW9ucyA9PiAnc2VydmVyX21lc3NhZ2VfbGV2ZWxfb3B0aW9ucycsCisgIGZsYWdz ID0+ICdHVUNfTElTVF9JTlBVVCcsCisgIHZhcmlhYmxlID0+ICdsb2dfbWluX21lc3NhZ2Vz X3N0cmluZycsCisgIGJvb3RfdmFsID0+ICciV0FSTklORyInLAorICBjaGVja19ob29rID0+ ICdjaGVja19sb2dfbWluX21lc3NhZ2VzJywKKyAgYXNzaWduX2hvb2sgPT4gJ2Fzc2lnbl9s b2dfbWluX21lc3NhZ2VzJywKIH0sCiAKIHsgbmFtZSA9PiAnbG9nX3BhcmFtZXRlcl9tYXhf bGVuZ3RoJywgdHlwZSA9PiAnaW50JywgY29udGV4dCA9PiAnUEdDX1NVU0VUJywgZ3JvdXAg PT4gJ0xPR0dJTkdfV0hBVCcsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNj L2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmlu ZGV4IDVkZjNhMzZiZjY0Li40NmE1Y2YxM2U0YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9n dWNfdGFibGVzLmMKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNv bmZpZ19lbnVtX2VudHJ5IGNsaWVudF9tZXNzYWdlX2xldmVsX29wdGlvbnNbXSA9IHsKIAl7 TlVMTCwgMCwgZmFsc2V9CiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVt X2VudHJ5IHNlcnZlcl9tZXNzYWdlX2xldmVsX29wdGlvbnNbXSA9IHsKK2NvbnN0IHN0cnVj dCBjb25maWdfZW51bV9lbnRyeSBzZXJ2ZXJfbWVzc2FnZV9sZXZlbF9vcHRpb25zW10gPSB7 CiAJeyJkZWJ1ZzUiLCBERUJVRzUsIGZhbHNlfSwKIAl7ImRlYnVnNCIsIERFQlVHNCwgZmFs c2V9LAogCXsiZGVidWczIiwgREVCVUczLCBmYWxzZX0sCkBAIC01NDYsNyArNTQ2LDYgQEAg c3RhdGljIGJvb2wgc3RhbmRhcmRfY29uZm9ybWluZ19zdHJpbmdzID0gdHJ1ZTsKIGJvb2wJ CWN1cnJlbnRfcm9sZV9pc19zdXBlcnVzZXI7CiAKIGludAkJCWxvZ19taW5fZXJyb3Jfc3Rh dGVtZW50ID0gRVJST1I7Ci1pbnQJCQlsb2dfbWluX21lc3NhZ2VzID0gV0FSTklORzsKIGlu dAkJCWNsaWVudF9taW5fbWVzc2FnZXMgPSBOT1RJQ0U7CiBpbnQJCQlsb2dfbWluX2R1cmF0 aW9uX3NhbXBsZSA9IC0xOwogaW50CQkJbG9nX21pbl9kdXJhdGlvbl9zdGF0ZW1lbnQgPSAt MTsKQEAgLTYwNCw2ICs2MDMsNyBAQCBzdGF0aWMgY2hhciAqc2VydmVyX3ZlcnNpb25fc3Ry aW5nOwogc3RhdGljIGludAlzZXJ2ZXJfdmVyc2lvbl9udW07CiBzdGF0aWMgY2hhciAqZGVi dWdfaW9fZGlyZWN0X3N0cmluZzsKIHN0YXRpYyBjaGFyICpyZXN0cmljdF9ub25zeXN0ZW1f cmVsYXRpb25fa2luZF9zdHJpbmc7CitzdGF0aWMgY2hhciAqbG9nX21pbl9tZXNzYWdlc19z dHJpbmc7CiAKICNpZmRlZiBIQVZFX1NZU0xPRwogI2RlZmluZQlERUZBVUxUX1NZU0xPR19G QUNJTElUWSBMT0dfTE9DQUwwCkBAIC02NTYsNiArNjU2LDIzIEBAIGNoYXIJICAgKnJvbGVf c3RyaW5nOwogLyogc2hvdWxkIGJlIHN0YXRpYywgYnV0IGd1Yy5jIG5lZWRzIHRvIGdldCBh dCB0aGlzICovCiBib29sCQlpbl9ob3Rfc3RhbmRieV9ndWM7CiAKKy8qCisgKiBsb2dfbWlu X21lc3NhZ2VzCisgKi8KK2ludAkJCWxvZ19taW5fbWVzc2FnZXNbXSA9IHsKKyNkZWZpbmUg UEdfUFJPQ1RZUEUoYmt0eXBlLCBia2NhdGVnb3J5LCBkZXNjcmlwdGlvbiwgbWFpbl9mdW5j LCBzaG1lbV9hdHRhY2gsIGxvZ19taW5fbWVzc2FnZXMpIFwKKwlbYmt0eXBlXSA9IGxvZ19t aW5fbWVzc2FnZXMsCisjaW5jbHVkZSAicG9zdG1hc3Rlci9wcm9jdHlwZWxpc3QuaCIKKyN1 bmRlZiBQR19QUk9DVFlQRQorfTsKKworY29uc3QgY2hhciAqY29uc3QgbG9nX21pbl9tZXNz YWdlc19wcm9jZXNzX3R5cGVzW10gPSB7CisjZGVmaW5lIFBHX1BST0NUWVBFKGJrdHlwZSwg YmtjYXRlZ29yeSwgZGVzY3JpcHRpb24sIG1haW5fZnVuYywgc2htZW1fYXR0YWNoLCBsb2df bWluX21lc3NhZ2VzKSBcCisJW2JrdHlwZV0gPSBia2NhdGVnb3J5LAorI2luY2x1ZGUgInBv c3RtYXN0ZXIvcHJvY3R5cGVsaXN0LmgiCisjdW5kZWYgUEdfUFJPQ1RZUEUKK307CisKIAog LyoKICAqIERpc3BsYXlhYmxlIG5hbWVzIGZvciBjb250ZXh0IHR5cGVzIChlbnVtIEd1Y0Nv bnRleHQpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwu Y29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5z YW1wbGUKaW5kZXggMWFlNTk0YWY4NDMuLmE5Nzk4Y2M2MjhkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC01NDUsNiArNTQ1 LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgbG9n CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgIGZhdGFsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgIHBhbmljCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgIGFuZCBhbiBvcHRpb25h bCBjb21tYS1zZXBhcmF0ZWQgbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgICBvZiB0eXBlOmxldmVsCiAKICNsb2dfbWluX2Vycm9yX3N0YXRlbWVu dCA9IGVycm9yICAgICAgICAjIHZhbHVlcyBpbiBvcmRlciBvZiBkZWNyZWFzaW5nIGRldGFp bDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgZGVidWc1 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL3Byb2N0eXBlbGlzdC5oIGIv c3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9wcm9jdHlwZWxpc3QuaAppbmRleCAwYjk5ZWFhYmZk MC4uMGRkZDgwNWYwZTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcHJv Y3R5cGVsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9wcm9jdHlwZWxpc3Qu aApAQCAtMjUsMjcgKzI1LDI3IEBACiAgKi8KIAogLyoKLSAqIExpc3Qgb2YgcHJvY2VzcyB0 eXBlcyAoc3ltYm9sLCBkZXNjcmlwdGlvbiwgTWFpbiBmdW5jdGlvbiwgc2htZW1fYXR0YWNo KQotICogZW50cmllcy4KKyAqIExpc3Qgb2YgcHJvY2VzcyB0eXBlcyAoc3ltYm9sLCBjYXRl Z29yeSwgZGVzY3JpcHRpb24sIE1haW4gZnVuY3Rpb24sCisgKiBzaG1lbV9hdHRhY2gsIG1l c3NhZ2UgbGV2ZWwpIGVudHJpZXMuCiAgKi8KIAogCi0vKiBia3R5cGUsIGRlc2NyaXB0aW9u LCBtYWluX2Z1bmMsIHNobWVtX2F0dGFjaCAqLwotUEdfUFJPQ1RZUEUoQl9BUkNISVZFUiwg Z2V0dGV4dF9ub29wKCJhcmNoaXZlciIpLCBQZ0FyY2hpdmVyTWFpbiwgdHJ1ZSkKLVBHX1BS T0NUWVBFKEJfQVVUT1ZBQ19MQVVOQ0hFUiwgZ2V0dGV4dF9ub29wKCJhdXRvdmFjdXVtIGxh dW5jaGVyIiksIEF1dG9WYWNMYXVuY2hlck1haW4sIHRydWUpCi1QR19QUk9DVFlQRShCX0FV VE9WQUNfV09SS0VSLCBnZXR0ZXh0X25vb3AoImF1dG92YWN1dW0gd29ya2VyIiksIEF1dG9W YWNXb3JrZXJNYWluLCB0cnVlKQotUEdfUFJPQ1RZUEUoQl9CQUNLRU5ELCBnZXR0ZXh0X25v b3AoImNsaWVudCBiYWNrZW5kIiksIEJhY2tlbmRNYWluLCB0cnVlKQotUEdfUFJPQ1RZUEUo Ql9CR19XT1JLRVIsIGdldHRleHRfbm9vcCgiYmFja2dyb3VuZCB3b3JrZXIiKSwgQmFja2dy b3VuZFdvcmtlck1haW4sIHRydWUpCi1QR19QUk9DVFlQRShCX0JHX1dSSVRFUiwgZ2V0dGV4 dF9ub29wKCJiYWNrZ3JvdW5kIHdyaXRlciIpLCBCYWNrZ3JvdW5kV3JpdGVyTWFpbiwgdHJ1 ZSkKLVBHX1BST0NUWVBFKEJfQ0hFQ0tQT0lOVEVSLCBnZXR0ZXh0X25vb3AoImNoZWNrcG9p bnRlciIpLCBDaGVja3BvaW50ZXJNYWluLCB0cnVlKQotUEdfUFJPQ1RZUEUoQl9ERUFEX0VO RF9CQUNLRU5ELCBnZXR0ZXh0X25vb3AoImRlYWQtZW5kIGNsaWVudCBiYWNrZW5kIiksIEJh Y2tlbmRNYWluLCB0cnVlKQotUEdfUFJPQ1RZUEUoQl9JTlZBTElELCBnZXR0ZXh0X25vb3Ao InVucmVjb2duaXplZCIpLCBOVUxMLCBmYWxzZSkKLVBHX1BST0NUWVBFKEJfSU9fV09SS0VS LCBnZXR0ZXh0X25vb3AoImlvIHdvcmtlciIpLCBJb1dvcmtlck1haW4sIHRydWUpCi1QR19Q Uk9DVFlQRShCX0xPR0dFUiwgZ2V0dGV4dF9ub29wKCJzeXNsb2dnZXIiKSwgU3lzTG9nZ2Vy TWFpbiwgZmFsc2UpCi1QR19QUk9DVFlQRShCX1NMT1RTWU5DX1dPUktFUiwgZ2V0dGV4dF9u b29wKCJzbG90c3luYyB3b3JrZXIiKSwgUmVwbFNsb3RTeW5jV29ya2VyTWFpbiwgdHJ1ZSkK LVBHX1BST0NUWVBFKEJfU1RBTkRBTE9ORV9CQUNLRU5ELCBnZXR0ZXh0X25vb3AoInN0YW5k YWxvbmUgYmFja2VuZCIpLCBOVUxMLCBmYWxzZSkKLVBHX1BST0NUWVBFKEJfU1RBUlRVUCwg Z2V0dGV4dF9ub29wKCJzdGFydHVwIiksIFN0YXJ0dXBQcm9jZXNzTWFpbiwgdHJ1ZSkKLVBH X1BST0NUWVBFKEJfV0FMX1JFQ0VJVkVSLCBnZXR0ZXh0X25vb3AoIndhbHJlY2VpdmVyIiks IFdhbFJlY2VpdmVyTWFpbiwgdHJ1ZSkKLVBHX1BST0NUWVBFKEJfV0FMX1NFTkRFUiwgZ2V0 dGV4dF9ub29wKCJ3YWxzZW5kZXIiKSwgTlVMTCwgdHJ1ZSkKLVBHX1BST0NUWVBFKEJfV0FM X1NVTU1BUklaRVIsIGdldHRleHRfbm9vcCgid2Fsc3VtbWFyaXplciIpLCBXYWxTdW1tYXJp emVyTWFpbiwgdHJ1ZSkKLVBHX1BST0NUWVBFKEJfV0FMX1dSSVRFUiwgZ2V0dGV4dF9ub29w KCJ3YWx3cml0ZXIiKSwgV2FsV3JpdGVyTWFpbiwgdHJ1ZSkKKy8qIGJrdHlwZSwgYmtjYXRl Z29yeSwgZGVzY3JpcHRpb24sIG1haW5fZnVuYywgc2htZW1fYXR0YWNoLCBsb2dfbWluX21l c3NhZ2VzICovCitQR19QUk9DVFlQRShCX0FSQ0hJVkVSLCAiYXJjaGl2ZXIiLCBnZXR0ZXh0 X25vb3AoImFyY2hpdmVyIiksIFBnQXJjaGl2ZXJNYWluLCB0cnVlLCBXQVJOSU5HKQorUEdf UFJPQ1RZUEUoQl9BVVRPVkFDX0xBVU5DSEVSLCAiYXV0b3ZhY3V1bSIsIGdldHRleHRfbm9v cCgiYXV0b3ZhY3V1bSBsYXVuY2hlciIpLCBBdXRvVmFjTGF1bmNoZXJNYWluLCB0cnVlLCBX QVJOSU5HKQorUEdfUFJPQ1RZUEUoQl9BVVRPVkFDX1dPUktFUiwgImF1dG92YWN1dW0iLCBn ZXR0ZXh0X25vb3AoImF1dG92YWN1dW0gd29ya2VyIiksIEF1dG9WYWNXb3JrZXJNYWluLCB0 cnVlLCBXQVJOSU5HKQorUEdfUFJPQ1RZUEUoQl9CQUNLRU5ELCAiYmFja2VuZCIsIGdldHRl eHRfbm9vcCgiY2xpZW50IGJhY2tlbmQiKSwgQmFja2VuZE1haW4sIHRydWUsIFdBUk5JTkcp CitQR19QUk9DVFlQRShCX0JHX1dPUktFUiwgImJnd29ya2VyIiwgZ2V0dGV4dF9ub29wKCJi YWNrZ3JvdW5kIHdvcmtlciIpLCBCYWNrZ3JvdW5kV29ya2VyTWFpbiwgdHJ1ZSwgV0FSTklO RykKK1BHX1BST0NUWVBFKEJfQkdfV1JJVEVSLCAiYmd3cml0ZXIiLCBnZXR0ZXh0X25vb3Ao ImJhY2tncm91bmQgd3JpdGVyIiksIEJhY2tncm91bmRXcml0ZXJNYWluLCB0cnVlLCBXQVJO SU5HKQorUEdfUFJPQ1RZUEUoQl9DSEVDS1BPSU5URVIsICJjaGVja3BvaW50ZXIiLCBnZXR0 ZXh0X25vb3AoImNoZWNrcG9pbnRlciIpLCBDaGVja3BvaW50ZXJNYWluLCB0cnVlLCBXQVJO SU5HKQorUEdfUFJPQ1RZUEUoQl9ERUFEX0VORF9CQUNLRU5ELCAiYmFja2VuZCIsIGdldHRl eHRfbm9vcCgiZGVhZC1lbmQgY2xpZW50IGJhY2tlbmQiKSwgQmFja2VuZE1haW4sIHRydWUs IFdBUk5JTkcpCitQR19QUk9DVFlQRShCX0lOVkFMSUQsICJwb3N0bWFzdGVyIiwgZ2V0dGV4 dF9ub29wKCJ1bnJlY29nbml6ZWQiKSwgTlVMTCwgZmFsc2UsIFdBUk5JTkcpCitQR19QUk9D VFlQRShCX0lPX1dPUktFUiwgImlvd29ya2VyIiwgZ2V0dGV4dF9ub29wKCJpbyB3b3JrZXIi KSwgSW9Xb3JrZXJNYWluLCB0cnVlLCBXQVJOSU5HKQorUEdfUFJPQ1RZUEUoQl9MT0dHRVIs ICJzeXNsb2dnZXIiLCBnZXR0ZXh0X25vb3AoInN5c2xvZ2dlciIpLCBTeXNMb2dnZXJNYWlu LCBmYWxzZSwgV0FSTklORykKK1BHX1BST0NUWVBFKEJfU0xPVFNZTkNfV09SS0VSLCAic2xv dHN5bmN3b3JrZXIiLCBnZXR0ZXh0X25vb3AoInNsb3RzeW5jIHdvcmtlciIpLCBSZXBsU2xv dFN5bmNXb3JrZXJNYWluLCB0cnVlLCBXQVJOSU5HKQorUEdfUFJPQ1RZUEUoQl9TVEFOREFM T05FX0JBQ0tFTkQsICJiYWNrZW5kIiwgZ2V0dGV4dF9ub29wKCJzdGFuZGFsb25lIGJhY2tl bmQiKSwgTlVMTCwgZmFsc2UsIFdBUk5JTkcpCitQR19QUk9DVFlQRShCX1NUQVJUVVAsICJz dGFydHVwIiwgZ2V0dGV4dF9ub29wKCJzdGFydHVwIiksIFN0YXJ0dXBQcm9jZXNzTWFpbiwg dHJ1ZSwgV0FSTklORykKK1BHX1BST0NUWVBFKEJfV0FMX1JFQ0VJVkVSLCAid2FscmVjZWl2 ZXIiLCBnZXR0ZXh0X25vb3AoIndhbHJlY2VpdmVyIiksIFdhbFJlY2VpdmVyTWFpbiwgdHJ1 ZSwgV0FSTklORykKK1BHX1BST0NUWVBFKEJfV0FMX1NFTkRFUiwgIndhbHNlbmRlciIsIGdl dHRleHRfbm9vcCgid2Fsc2VuZGVyIiksIE5VTEwsIHRydWUsIFdBUk5JTkcpCitQR19QUk9D VFlQRShCX1dBTF9TVU1NQVJJWkVSLCAid2Fsc3VtbWFyaXplciIsIGdldHRleHRfbm9vcCgi d2Fsc3VtbWFyaXplciIpLCBXYWxTdW1tYXJpemVyTWFpbiwgdHJ1ZSwgV0FSTklORykKK1BH X1BST0NUWVBFKEJfV0FMX1dSSVRFUiwgIndhbHdyaXRlciIsIGdldHRleHRfbm9vcCgid2Fs d3JpdGVyIiksIFdhbFdyaXRlck1haW4sIHRydWUsIFdBUk5JTkcpCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS91dGlscy9ndWMuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2d1Yy5oCmluZGV4 IGJmMzk4NzhjNDNlLi44YWNiZGJhN2ZmNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRp bHMvZ3VjLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjLmgKQEAgLTI5NSw3ICsyOTUs NyBAQCBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBsb2dfZHVyYXRpb247CiBleHRlcm4gUEdE TExJTVBPUlQgaW50IGxvZ19wYXJhbWV0ZXJfbWF4X2xlbmd0aDsKIGV4dGVybiBQR0RMTElN UE9SVCBpbnQgbG9nX3BhcmFtZXRlcl9tYXhfbGVuZ3RoX29uX2Vycm9yOwogZXh0ZXJuIFBH RExMSU1QT1JUIGludCBsb2dfbWluX2Vycm9yX3N0YXRlbWVudDsKLWV4dGVybiBQR0RMTElN UE9SVCBpbnQgbG9nX21pbl9tZXNzYWdlczsKK2V4dGVybiBQR0RMTElNUE9SVCBpbnQgbG9n X21pbl9tZXNzYWdlc1tdOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBjbGllbnRfbWluX21l c3NhZ2VzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBsb2dfbWluX2R1cmF0aW9uX3NhbXBs ZTsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbG9nX21pbl9kdXJhdGlvbl9zdGF0ZW1lbnQ7 CkBAIC0zMjksNiArMzI5LDggQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgdHJhY2Vfc29y dDsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIG9wdGltaXplX2JvdW5kZWRfc29ydDsKICNl bmRpZgogCitleHRlcm4gUEdETExJTVBPUlQgY29uc3QgY2hhciAqY29uc3QgbG9nX21pbl9t ZXNzYWdlc19wcm9jZXNzX3R5cGVzW107CisKIC8qCiAgKiBEZWNsYXJhdGlvbnMgZm9yIG9w dGlvbnMgZm9yIGVudW0gdmFsdWVzCiAgKgpAQCAtMzQ0LDYgKzM0Niw3IEBAIGV4dGVybiBQ R0RMTElNUE9SVCBjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgYXJjaGl2ZV9tb2Rl X29wdGlvbnNbXTsKIGV4dGVybiBQR0RMTElNUE9SVCBjb25zdCBzdHJ1Y3QgY29uZmlnX2Vu dW1fZW50cnkgZHluYW1pY19zaGFyZWRfbWVtb3J5X29wdGlvbnNbXTsKIGV4dGVybiBQR0RM TElNUE9SVCBjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgaW9fbWV0aG9kX29wdGlv bnNbXTsKIGV4dGVybiBQR0RMTElNUE9SVCBjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50 cnkgcmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbl9vcHRpb25zW107CitleHRlcm4gUEdETExJTVBP UlQgY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5IHNlcnZlcl9tZXNzYWdlX2xldmVs X29wdGlvbnNbXTsKIGV4dGVybiBQR0RMTElNUE9SVCBjb25zdCBzdHJ1Y3QgY29uZmlnX2Vu dW1fZW50cnkgd2FsX2xldmVsX29wdGlvbnNbXTsKIGV4dGVybiBQR0RMTElNUE9SVCBjb25z dCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgd2FsX3N5bmNfbWV0aG9kX29wdGlvbnNbXTsK IApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmggYi9zcmMvaW5j bHVkZS91dGlscy9ndWNfaG9va3MuaAppbmRleCBiNmVjYjBlNzY5Zi4uOWM5MDY3MGQ5Yjgg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2d1Y19ob29rcy5oCisrKyBiL3NyYy9p bmNsdWRlL3V0aWxzL2d1Y19ob29rcy5oCkBAIC0xNzcsNSArMTc3LDcgQEAgZXh0ZXJuIHZv aWQgYXNzaWduX3dhbF9zeW5jX21ldGhvZChpbnQgbmV3X3dhbF9zeW5jX21ldGhvZCwgdm9p ZCAqZXh0cmEpOwogZXh0ZXJuIGJvb2wgY2hlY2tfc3luY2hyb25pemVkX3N0YW5kYnlfc2xv dHMoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLAogCQkJCQkJCQkJCQkgR3VjU291cmNl IHNvdXJjZSk7CiBleHRlcm4gdm9pZCBhc3NpZ25fc3luY2hyb25pemVkX3N0YW5kYnlfc2xv dHMoY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRyYSk7CitleHRlcm4gYm9vbCBjaGVj a19sb2dfbWluX21lc3NhZ2VzKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291 cmNlIHNvdXJjZSk7CitleHRlcm4gdm9pZCBhc3NpZ25fbG9nX21pbl9tZXNzYWdlcyhjb25z dCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKTsKIAogI2VuZGlmCQkJCQkJCS8qIEdVQ19I T09LU19IICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2d1Yy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2d1Yy5vdXQKaW5kZXggZDZmYjg3OWY1 MDAuLjlhNmZkNTAzMDA5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2d1Yy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ndWMub3V0CkBAIC05 MzUsMyArOTM1LDU3IEBAIFNFTEVDVCBuYW1lIEZST00gdGFiX3NldHRpbmdzX2ZsYWdzCiAo MCByb3dzKQogCiBEUk9QIFRBQkxFIHRhYl9zZXR0aW5nc19mbGFnczsKKy0tIFRlc3QgbG9n X21pbl9tZXNzYWdlcworU0VUIGxvZ19taW5fbWVzc2FnZXMgVE8gZm9vOyAgLS0gZmFpbAor RVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgImxvZ19taW5fbWVzc2FnZXMi OiAiZm9vIgorREVUQUlMOiAgVW5yZWNvZ25pemVkIGxvZyBsZXZlbDogImZvbyIuCitTRVQg bG9nX21pbl9tZXNzYWdlcyBUTyBmYXRhbDsKK1NIT1cgbG9nX21pbl9tZXNzYWdlczsKKyBs b2dfbWluX21lc3NhZ2VzIAorLS0tLS0tLS0tLS0tLS0tLS0tCisgZmF0YWwKKygxIHJvdykK KworU0VUIGxvZ19taW5fbWVzc2FnZXMgVE8gJ2ZhdGFsJzsKK1NIT1cgbG9nX21pbl9tZXNz YWdlczsKKyBsb2dfbWluX21lc3NhZ2VzIAorLS0tLS0tLS0tLS0tLS0tLS0tCisgZmF0YWwK KygxIHJvdykKKworU0VUIGxvZ19taW5fbWVzc2FnZXMgVE8gJ2NoZWNrcG9pbnRlcjpkZWJ1 ZzIsIGF1dG92YWN1dW06ZGVidWcxJzsgIC0tZmFpbAorRVJST1I6ICBpbnZhbGlkIHZhbHVl IGZvciBwYXJhbWV0ZXIgImxvZ19taW5fbWVzc2FnZXMiOiAiY2hlY2twb2ludGVyOmRlYnVn MiwgYXV0b3ZhY3V1bTpkZWJ1ZzEiCitERVRBSUw6ICBHZW5lcmljIGxvZyBsZXZlbCB3YXMg bm90IGRlZmluZWQuCitTRVQgbG9nX21pbl9tZXNzYWdlcyBUTyAnZGVidWcxLCBiYWNrZW5k OmVycm9yLCBmYXRhbCc7ICAtLSBmYWlsCitFUlJPUjogIGludmFsaWQgdmFsdWUgZm9yIHBh cmFtZXRlciAibG9nX21pbl9tZXNzYWdlcyI6ICJkZWJ1ZzEsIGJhY2tlbmQ6ZXJyb3IsIGZh dGFsIgorREVUQUlMOiAgR2VuZXJpYyBsb2cgbGV2ZWwgd2FzIGFscmVhZHkgYXNzaWduZWQu CitTRVQgbG9nX21pbl9tZXNzYWdlcyBUTyAnYmFja2VuZDplcnJvciwgZGVidWcxLCBiYWNr ZW5kOndhcm5pbmcnOyAgLS0gZmFpbAorRVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBwYXJh bWV0ZXIgImxvZ19taW5fbWVzc2FnZXMiOiAiYmFja2VuZDplcnJvciwgZGVidWcxLCBiYWNr ZW5kOndhcm5pbmciCitERVRBSUw6ICBQcm9jZXNzIHR5cGUgImJhY2tlbmQiIHdhcyBhbHJl YWR5IGFzc2lnbmVkLgorU0VUIGxvZ19taW5fbWVzc2FnZXMgVE8gJ2JhY2tlbmQ6ZXJyb3Is IGZvbzpmYXRhbCwgYXJjaGl2ZXI6ZGVidWcxJzsgIC0tIGZhaWwKK0VSUk9SOiAgaW52YWxp ZCB2YWx1ZSBmb3IgcGFyYW1ldGVyICJsb2dfbWluX21lc3NhZ2VzIjogImJhY2tlbmQ6ZXJy b3IsIGZvbzpmYXRhbCwgYXJjaGl2ZXI6ZGVidWcxIgorREVUQUlMOiAgVW5yZWNvZ25pemVk IHByb2Nlc3MgdHlwZTogImZvbyIuCitTRVQgbG9nX21pbl9tZXNzYWdlcyBUTyAnYmFja2Vu ZDplcnJvciwgY2hlY2twb2ludGVyOmJhciwgYXJjaGl2ZXI6ZGVidWcxJzsgIC0tIGZhaWwK K0VSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyICJsb2dfbWluX21lc3NhZ2Vz IjogImJhY2tlbmQ6ZXJyb3IsIGNoZWNrcG9pbnRlcjpiYXIsIGFyY2hpdmVyOmRlYnVnMSIK K0RFVEFJTDogIFVucmVjb2duaXplZCBsb2cgbGV2ZWw6ICJiYXIiLgorU0VUIGxvZ19taW5f bWVzc2FnZXMgVE8gJ2JhY2tlbmQ6ZXJyb3IsIGNoZWNrcG9pbnRlcjpkZWJ1ZzMsIGZhdGFs LCBhcmNoaXZlcjpkZWJ1ZzIsIGF1dG92YWN1dW06ZGVidWcxLCB3YWxzZW5kZXI6ZGVidWcz JzsKK1NIT1cgbG9nX21pbl9tZXNzYWdlczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsb2dfbWluX21lc3NhZ2VzICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBmYXRhbCwgYXJjaGl2ZXI6ZGVidWcyLCBhdXRvdmFjdXVtOmRlYnVnMSwg YmFja2VuZDplcnJvciwgY2hlY2twb2ludGVyOmRlYnVnMywgd2Fsc2VuZGVyOmRlYnVnMwor KDEgcm93KQorCitTRVQgbG9nX21pbl9tZXNzYWdlcyBUTyAnd2FybmluZywgYXV0b3ZhY3V1 bTpkZWJ1ZzEnOworU0hPVyBsb2dfbWluX21lc3NhZ2VzOworICAgICAgbG9nX21pbl9tZXNz YWdlcyAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHdhcm5pbmcsIGF1 dG92YWN1dW06ZGVidWcxCisoMSByb3cpCisKK1NFVCBsb2dfbWluX21lc3NhZ2VzIFRPICdh dXRvdmFjdXVtOmRlYnVnMSwgd2FybmluZyc7CitTSE9XIGxvZ19taW5fbWVzc2FnZXM7Cisg ICAgICBsb2dfbWluX21lc3NhZ2VzICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgd2FybmluZywgYXV0b3ZhY3V1bTpkZWJ1ZzEKKygxIHJvdykKKwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3VjLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2d1Yy5zcWwKaW5kZXggYmFmYWYwNjdlODIuLmY3ZGZjOTA5YjQyIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9ndWMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2d1Yy5zcWwKQEAgLTM3NywzICszNzcsMjEgQEAgU0VMRUNUIG5hbWUgRlJPTSB0YWJfc2V0 dGluZ3NfZmxhZ3MKICAgV0hFUkUgbm9fcmVzZXQgQU5EIE5PVCBub19yZXNldF9hbGwKICAg T1JERVIgQlkgMTsKIERST1AgVEFCTEUgdGFiX3NldHRpbmdzX2ZsYWdzOworCistLSBUZXN0 IGxvZ19taW5fbWVzc2FnZXMKK1NFVCBsb2dfbWluX21lc3NhZ2VzIFRPIGZvbzsgIC0tIGZh aWwKK1NFVCBsb2dfbWluX21lc3NhZ2VzIFRPIGZhdGFsOworU0hPVyBsb2dfbWluX21lc3Nh Z2VzOworU0VUIGxvZ19taW5fbWVzc2FnZXMgVE8gJ2ZhdGFsJzsKK1NIT1cgbG9nX21pbl9t ZXNzYWdlczsKK1NFVCBsb2dfbWluX21lc3NhZ2VzIFRPICdjaGVja3BvaW50ZXI6ZGVidWcy LCBhdXRvdmFjdXVtOmRlYnVnMSc7ICAtLWZhaWwKK1NFVCBsb2dfbWluX21lc3NhZ2VzIFRP ICdkZWJ1ZzEsIGJhY2tlbmQ6ZXJyb3IsIGZhdGFsJzsgIC0tIGZhaWwKK1NFVCBsb2dfbWlu X21lc3NhZ2VzIFRPICdiYWNrZW5kOmVycm9yLCBkZWJ1ZzEsIGJhY2tlbmQ6d2FybmluZyc7 ICAtLSBmYWlsCitTRVQgbG9nX21pbl9tZXNzYWdlcyBUTyAnYmFja2VuZDplcnJvciwgZm9v OmZhdGFsLCBhcmNoaXZlcjpkZWJ1ZzEnOyAgLS0gZmFpbAorU0VUIGxvZ19taW5fbWVzc2Fn ZXMgVE8gJ2JhY2tlbmQ6ZXJyb3IsIGNoZWNrcG9pbnRlcjpiYXIsIGFyY2hpdmVyOmRlYnVn MSc7ICAtLSBmYWlsCitTRVQgbG9nX21pbl9tZXNzYWdlcyBUTyAnYmFja2VuZDplcnJvciwg Y2hlY2twb2ludGVyOmRlYnVnMywgZmF0YWwsIGFyY2hpdmVyOmRlYnVnMiwgYXV0b3ZhY3V1 bTpkZWJ1ZzEsIHdhbHNlbmRlcjpkZWJ1ZzMnOworU0hPVyBsb2dfbWluX21lc3NhZ2VzOwor U0VUIGxvZ19taW5fbWVzc2FnZXMgVE8gJ3dhcm5pbmcsIGF1dG92YWN1dW06ZGVidWcxJzsK K1NIT1cgbG9nX21pbl9tZXNzYWdlczsKK1NFVCBsb2dfbWluX21lc3NhZ2VzIFRPICdhdXRv dmFjdXVtOmRlYnVnMSwgd2FybmluZyc7CitTSE9XIGxvZ19taW5fbWVzc2FnZXM7Ci0tIAoy LjM5LjUKCg== --0eaabf3a3bf54bada9d27f60ca2efa64 Content-Disposition: attachment; filename="v11-0002-review.patch" Content-Type: text/x-patch; name="v11-0002-review.patch" Content-Transfer-Encoding: base64 RnJvbSBkOGE2YTE4MjRhMGY5M2Q1NDE4ZGNlYjA2ZmM2OTJiYjY2YjYyNDQ2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUMzPTgxbHZhcm89MjBIZXJyZXJh Pz0gPGFsdmhlcnJlQGt1cmlsZW11LmRlPgpEYXRlOiBGcmksIDYgRmViIDIwMjYgMTA6MjQ6 MjkgKzAxMDAKU3ViamVjdDogW1BBVENIIHYxMSAyLzNdIHJldmlldwoKLS0tCiBkb2Mvc3Jj L3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgfCAgMTggKystLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvdmFyaWFibGUuYyAgICAgICAgIHwgMTI3ICsrKysrKysrKysrLS0tLS0t LS0tLS0tLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9sYXVuY2hfYmFja2VuZC5jIHwgICAy ICstCiBzcmMvYmFja2VuZC91dGlscy9pbml0L21pc2Npbml0LmMgICAgICAgfCAgIDIgKy0K IHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgICB8ICAxNCArLS0KIHNy Yy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcHJvY3R5cGVsaXN0LmggICB8ICAzOCArKystLS0tCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2d1Yy5vdXQgICAgICAgfCAgIDggKy0KIDcgZmls ZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgMTE2IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcu c2dtbAppbmRleCAyODc4MTZmYjUwNC4uYWVlZDIxYjE1NDggMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAg LTcxMjcsMTUgKzcxMjcsMTUgQEAgbG9jYWwwLiogICAgL3Zhci9sb2cvcG9zdGdyZXNxbAog ICAgICAgPC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgotICAgICAg ICBDb250cm9scyB3aGljaCA8bGluayBsaW5rZW5kPSJydW50aW1lLWNvbmZpZy1zZXZlcml0 eS1sZXZlbHMiPm1lc3NhZ2UKLSAgICAgICAgbGV2ZWxzPC9saW5rPiBhcmUgd3JpdHRlbiB0 byB0aGUgc2VydmVyIGxvZy4KLSAgICAgICAgVmFsaWQgdmFsdWVzIGFyZSBhIGNvbW1hLXNl cGFyYXRlZCBsaXN0IG9mIDxsaXRlcmFsPnR5cGU6bGV2ZWw8L2xpdGVyYWw+Ci0gICAgICAg IGFuZCBhIHNpbmdsZSA8bGl0ZXJhbD5sZXZlbDwvbGl0ZXJhbD4uIFRoZSBsaXN0IGFsbG93 cyBpdCB0byB1c2UKLSAgICAgICAgZGlmZmVyZW50IGxldmVscyBwZXIgcHJvY2VzcyB0eXBl LiBPbmx5IHRoZSBzaW5nbGUgPGxpdGVyYWw+bGV2ZWw8L2xpdGVyYWw+Ci0gICAgICAgIGlz IG1hbmRhdG9yeSAob3JkZXIgZG9lcyBub3QgbWF0dGVyKSBhbmQgaXQgaXMgYXNzaWduZWQg dG8gdGhlIHByb2Nlc3MKLSAgICAgICAgdHlwZXMgdGhhdCBhcmUgbm90IHNwZWNpZmllZCBp biB0aGUgbGlzdC4KLSAgICAgICAgVmFsaWQgcHJvY2VzcyB0eXBlcyBhcmUgbGlzdGVkIGlu IHRoZSB0YWJsZSBiZWxvdywgZWFjaCBjb3JyZXNwb25kaW5nIHRvCi0gICAgICAgIGVpdGhl ciBwb3N0bWFzdGVyLCBhbiBhdXhpbGlhcnkgcHJvY2VzcyB0eXBlIG9yIGEgYmFja2VuZC4K KyAgICAgICAgQ29udHJvbHMgd2hpY2gKKyAgICAgICAgPGxpbmsgbGlua2VuZD0icnVudGlt ZS1jb25maWctc2V2ZXJpdHktbGV2ZWxzIj5tZXNzYWdlIGxldmVsczwvbGluaz4KKyAgICAg ICAgYXJlIHdyaXR0ZW4gdG8gdGhlIHNlcnZlciBsb2cuICBWYWxpZCB2YWx1ZXMgYXJlIGEg Y29tbWEtc2VwYXJhdGVkCisgICAgICAgIGxpc3Qgb2YgemVybyBvciBtb3JlCisgICAgICAg IDxsaXRlcmFsPjxyZXBsYWNlYWJsZT5wcm9jZXNzIHR5cGU8L3JlcGxhY2VhYmxlPjo8cmVw bGFjZWFibGU+bGV2ZWw8L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD4KKyAgICAgICAgZW50cmll cyBhbmQgZXhhY3RseSBvbmUgbWFuZGF0b3J5CisgICAgICAgIDxsaXRlcmFsPjxyZXBsYWNl YWJsZT5sZXZlbDwvcmVwbGFjZWFibGU+PC9saXRlcmFsPiBlbnRyeSwKKyAgICAgICAgd2hp Y2ggaXMgdGhlIGRlZmF1bHQgZm9yIHByb2Nlc3MgdHlwZXMgbm90IGxpc3RlZC4KKyAgICAg ICAgVmFsaWQgcHJvY2VzcyB0eXBlcyBhcmUgbGlzdGVkIGluIHRoZSB0YWJsZSBiZWxvdy4K ICAgICAgICAgPHNpbXBsZWxpc3QgdHlwZT0idmVydCIgY29sdW1ucz0iNCI+CiAgICAgICAg ICA8bWVtYmVyPjxsaXRlcmFsPmFyY2hpdmVyPC9saXRlcmFsPjwvbWVtYmVyPgogICAgICAg ICAgPG1lbWJlcj48bGl0ZXJhbD5hdXRvdmFjdXVtPC9saXRlcmFsPjwvbWVtYmVyPgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3ZhcmlhYmxlLmMKaW5kZXggYTQ1MDI1NGQxZmEuLjk3YjlhNmI1OTY0IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YXJpYWJsZS5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMKQEAgLTEyNzksMTIgKzEyNzksMTIgQEAgY2hl Y2tfc3RhbmRhcmRfY29uZm9ybWluZ19zdHJpbmdzKGJvb2wgKm5ld3ZhbCwgdm9pZCAqKmV4 dHJhLCBHdWNTb3VyY2Ugc291cmNlKQogLyoKICAqIEdVQyBjaGVja19ob29rIGZvciBsb2df bWluX21lc3NhZ2VzCiAgKgotICogVGhlIHBhcnNpbmcgY29uc2lzdHMgb2YgYSBjb21tYS1z ZXBhcmF0ZWQgbGlzdCBvZiBUWVBFOkxFVkVMIGVsZW1lbnRzLiBUWVBFCi0gKiBpcyBsb2df bWluX21lc3NhZ2VzX3Byb2Nlc3NfdHlwZXMuICBMRVZFTCBpcyBzZXJ2ZXJfbWVzc2FnZV9s ZXZlbF9vcHRpb25zLiBBCi0gKiBzaW5nbGUgTEVWRUwgZWxlbWVudCBzaG91bGQgYmUgcGFy dCBvZiB0aGlzIGxpc3QgYW5kIGl0IGlzIGFwcGxpZWQgYXMgYQotICogZmluYWwgc3RlcCB0 byB0aGUgcHJvY2VzcyB0eXBlcyB0aGF0IGFyZSBub3Qgc3BlY2lmaWVkLiBGb3IgYmFja3dh cmQKLSAqIGNvbXBhdGliaWxpdHksIHRoZSBvbGQgc3ludGF4IGlzIHN0aWxsIGFjY2VwdGVk IGFuZCBpdCBtZWFucyB0byBhcHBseSB0aGUKLSAqIExFVkVMIGZvciBhbGwgcHJvY2VzcyB0 eXBlcy4KKyAqIFRoaXMgdmFsdWUgaXMgcGFyc2VkIGFzIGEgY29tbWEtc2VwYXJhdGVkIGxp c3Qgb2YgemVybyBvciBtb3JlIFRZUEU6TEVWRUwKKyAqIGVsZW1lbnRzLiAgRm9yIGVhY2gg ZWxlbWVudCwgVFlQRSBjb3JyZXNwb25kcyB0byBhIGJrX2NhdGVnb3J5IHZhbHVlIChzZWUK KyAqIHBvc3RtYXN0ZXIvcHJvY3R5cGVsaXN0LmgpLCBhbmQgTEVWRUwgaXMgb25lIG9mIGxv Z19taW5fbWVzc2FnZV9sdmxzLgorICoKKyAqIEluIGFkZGl0aW9uLCB0aGVyZSBtdXN0IGJl IGEgc2luZ2xlIExFVkVMIGVsZW1lbnQgKHdpdGggbm8gVFlQRSBwYXJ0KQorICogd2hpY2gg c2V0cyB0aGUgZGVmYXVsdCBsZXZlbCBmb3IgcHJvY2VzcyB0eXBlcyB0aGF0IGFyZW4ndCBz cGVjaWZpZWQuCiAgKi8KIGJvb2wKIGNoZWNrX2xvZ19taW5fbWVzc2FnZXMoY2hhciAqKm5l d3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKQpAQCAtMTI5MywyMiArMTI5 MywyMSBAQCBjaGVja19sb2dfbWluX21lc3NhZ2VzKGNoYXIgKipuZXd2YWwsIHZvaWQgKipl eHRyYSwgR3VjU291cmNlIHNvdXJjZSkKIAlMaXN0CSAgICplbGVtbGlzdDsKIAlTdHJpbmdJ bmZvRGF0YSBidWY7CiAJY2hhcgkgICAqcmVzdWx0OwotCWJvb2wJCWZpcnN0ID0gdHJ1ZTsK IAlpbnQJCQluZXdsZXZlbFtCQUNLRU5EX05VTV9UWVBFU107Ci0JYm9vbAkJYXNzaWduZWRb QkFDS0VORF9OVU1fVFlQRVNdOworCWJvb2wJCWFzc2lnbmVkW0JBQ0tFTkRfTlVNX1RZUEVT XSA9IHswfTsKIAlpbnQJCQlnZW5lcmljbGV2ZWwgPSAtMTsJLyogLTEgbWVhbnMgbm90IGFz c2lnbmVkICovCiAKLQkvKiBJbml0aWFsaXplIHRoZSBhcnJheS4gKi8KLQlmb3IgKGludCBp ID0gMDsgaSA8IEJBQ0tFTkRfTlVNX1RZUEVTOyBpKyspCi0JewotCQluZXdsZXZlbFtpXSA9 IFdBUk5JTkc7Ci0JCWFzc2lnbmVkW2ldID0gZmFsc2U7Ci0JfQorCWNvbnN0IGNoYXIgKmNv bnN0IHByb2Nlc3NfdHlwZXNbXSA9IHsKKyNkZWZpbmUgUEdfUFJPQ1RZUEUoYmt0eXBlLCBi a2NhdGVnb3J5LCBkZXNjcmlwdGlvbiwgbWFpbl9mdW5jLCBzaG1lbV9hdHRhY2gpIFwKKwkJ W2JrdHlwZV0gPSBia2NhdGVnb3J5LAorI2luY2x1ZGUgInBvc3RtYXN0ZXIvcHJvY3R5cGVs aXN0LmgiCisjdW5kZWYgUEdfUFJPQ1RZUEUKKwl9OwogCiAJLyogTmVlZCBhIG1vZGlmaWFi bGUgY29weSBvZiBzdHJpbmcuICovCiAJcmF3c3RyaW5nID0gZ3VjX3N0cmR1cChMT0csICpu ZXd2YWwpOwogCi0JLyogUGFyc2Ugc3RyaW5nIGludG8gbGlzdCBvZiBpZGVudGlmaWVycy4g Ki8KKwkvKiBQYXJzZSB0aGUgc3RyaW5nIGludG8gYSBsaXN0LiAqLwogCWlmICghU3BsaXRH VUNMaXN0KHJhd3N0cmluZywgJywnLCAmZWxlbWxpc3QpKQogCXsKIAkJLyogc3ludGF4IGVy cm9yIGluIGxpc3QgKi8KQEAgLTEzMjEsMjcgKzEzMjAsMjIgQEAgY2hlY2tfbG9nX21pbl9t ZXNzYWdlcyhjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2Up CiAJLyogVmFsaWRhdGUgYW5kIGFzc2lnbiBsb2cgbGV2ZWwgYW5kIHByb2Nlc3MgdHlwZS4g Ki8KIAlmb3JlYWNoX3B0cihjaGFyLCB0b2ssIGVsZW1saXN0KQogCXsKLQkJY2hhcgkgICAq c2VwOwotCQljb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgKmVudHJ5OworCQljaGFy CSAgICpzZXAgPSBzdHJjaHIodG9rLCAnOicpOwogCiAJCS8qCi0JCSAqIENoZWNrIHdoZXRo ZXIgdGhlcmUgaXMgYSBwcm9jZXNzIHR5cGUgZm9sbG93aW5nIHRoZSBsb2cgbGV2ZWwuIElm Ci0JCSAqIHRoZXJlIGlzIG5vIHNlcGFyYXRvciwgaXQgbWVhbnMgdGhpcyBpcyB0aGUgZ2Vu ZXJpYyBsb2cgbGV2ZWwuIFRoZQotCQkgKiBnZW5lcmljIGxvZyBsZXZlbCB3aWxsIGJlIGFz c2lnbmVkIHRvIHRoZSBwcm9jZXNzIHR5cGVzIHRoYXQgd2VyZQotCQkgKiBub3QgaW5mb3Jt ZWQuCisJCSAqIElmIHRoZXJlJ3Mgbm8gJzonIHNlcGFyYXRvciBpbiB0aGUgZW50cnksIHRo aXMgaXMgdGhlIGRlZmF1bHQKKwkJICogdmFsdWUuICBPdGhlcndpc2UgaXQncyBhIHByb2Nl c3MgdHlwZS1zcGVjaWZpYyBlbnRyeS4KIAkJICovCi0JCXNlcCA9IHN0cmNocih0b2ssICc6 Jyk7CiAJCWlmIChzZXAgPT0gTlVMTCkKIAkJeworCQkJY29uc3Qgc3RydWN0IGNvbmZpZ19l bnVtX2VudHJ5ICplbnRyeTsKIAkJCWJvb2wJCWZvdW5kID0gZmFsc2U7CiAKIAkJCS8qIFJl amVjdCBkdXBsaWNhdGVzIGZvciBnZW5lcmljIGxvZyBsZXZlbC4gKi8KIAkJCWlmIChnZW5l cmljbGV2ZWwgIT0gLTEpCiAJCQl7Ci0JCQkJR1VDX2NoZWNrX2VycmRldGFpbCgiR2VuZXJp YyBsb2cgbGV2ZWwgd2FzIGFscmVhZHkgYXNzaWduZWQuIik7Ci0JCQkJZ3VjX2ZyZWUocmF3 c3RyaW5nKTsKLQkJCQlsaXN0X2ZyZWUoZWxlbWxpc3QpOwotCQkJCXJldHVybiBmYWxzZTsK KwkJCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJSZWR1bmRhbnQgc3BlY2lmaWNhdGlvbiBvZiBk ZWZhdWx0IGxvZyBsZXZlbC4iKTsKKwkJCQlnb3RvIGxtbV9mYWlsOwogCQkJfQogCiAJCQkv KiBJcyB0aGUgbG9nIGxldmVsIHZhbGlkPyAqLwpAQCAtMTM1OCw5ICsxMzUyLDcgQEAgY2hl Y2tfbG9nX21pbl9tZXNzYWdlcyhjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1Nv dXJjZSBzb3VyY2UpCiAJCQlpZiAoIWZvdW5kKQogCQkJewogCQkJCUdVQ19jaGVja19lcnJk ZXRhaWwoIlVucmVjb2duaXplZCBsb2cgbGV2ZWw6IFwiJXNcIi4iLCB0b2spOwotCQkJCWd1 Y19mcmVlKHJhd3N0cmluZyk7Ci0JCQkJbGlzdF9mcmVlKGVsZW1saXN0KTsKLQkJCQlyZXR1 cm4gZmFsc2U7CisJCQkJZ290byBsbW1fZmFpbDsKIAkJCX0KIAkJfQogCQllbHNlCkBAIC0x MzY4LDIzICsxMzYwLDE5IEBAIGNoZWNrX2xvZ19taW5fbWVzc2FnZXMoY2hhciAqKm5ld3Zh bCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKQogCQkJY2hhcgkgICAqbG9nbGV2 ZWw7CiAJCQljaGFyCSAgICpwdHlwZTsKIAkJCWJvb2wJCWZvdW5kID0gZmFsc2U7CisJCQlp bnQJCQlsZXZlbDsKKwkJCWNvbnN0IHN0cnVjdCBjb25maWdfZW51bV9lbnRyeSAqZW50cnk7 CiAKLQkJCXB0eXBlID0gZ3VjX21hbGxvYyhMT0csIChzZXAgLSB0b2spICsgMSk7Ci0JCQlp ZiAoIXB0eXBlKQotCQkJewotCQkJCWd1Y19mcmVlKHJhd3N0cmluZyk7Ci0JCQkJbGlzdF9m cmVlKGVsZW1saXN0KTsKLQkJCQlyZXR1cm4gZmFsc2U7Ci0JCQl9Ci0JCQltZW1jcHkocHR5 cGUsIHRvaywgc2VwIC0gdG9rKTsKLQkJCXB0eXBlW3NlcCAtIHRva10gPSAnXDAnOworCQkJ cHR5cGUgPSB0b2s7CiAJCQlsb2dsZXZlbCA9IHNlcCArIDE7CisJCQkqc2VwID0gJ1wwJzsK IAogCQkJLyogSXMgdGhlIGxvZyBsZXZlbCB2YWxpZD8gKi8KIAkJCWZvciAoZW50cnkgPSBz ZXJ2ZXJfbWVzc2FnZV9sZXZlbF9vcHRpb25zOyBlbnRyeSAmJiBlbnRyeS0+bmFtZTsgZW50 cnkrKykKIAkJCXsKIAkJCQlpZiAocGdfc3RyY2FzZWNtcChlbnRyeS0+bmFtZSwgbG9nbGV2 ZWwpID09IDApCiAJCQkJeworCQkJCQlsZXZlbCA9IGVudHJ5LT52YWw7CiAJCQkJCWZvdW5k ID0gdHJ1ZTsKIAkJCQkJYnJlYWs7CiAJCQkJfQpAQCAtMTM5Miw1MCArMTM4MCw0OSBAQCBj aGVja19sb2dfbWluX21lc3NhZ2VzKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3Vj U291cmNlIHNvdXJjZSkKIAogCQkJaWYgKCFmb3VuZCkKIAkJCXsKLQkJCQlHVUNfY2hlY2tf ZXJyZGV0YWlsKCJVbnJlY29nbml6ZWQgbG9nIGxldmVsOiBcIiVzXCIuIiwgbG9nbGV2ZWwp OwotCQkJCWd1Y19mcmVlKHB0eXBlKTsKLQkJCQlndWNfZnJlZShyYXdzdHJpbmcpOwotCQkJ CWxpc3RfZnJlZShlbGVtbGlzdCk7Ci0JCQkJcmV0dXJuIGZhbHNlOworCQkJCUdVQ19jaGVj a19lcnJkZXRhaWwoIlVucmVjb2duaXplZCBsb2cgbGV2ZWwgZm9yIHByb2Nlc3MgdHlwZSBc IiVzXCI6IFwiJXNcIi4iLAorCQkJCQkJCQkJcHR5cGUsIGxvZ2xldmVsKTsKKwkJCQlnb3Rv IGxtbV9mYWlsOwogCQkJfQogCi0JCQkvKgotCQkJICogSXMgdGhlIHByb2Nlc3MgdHlwZSBu YW1lIHZhbGlkPyBUaGVyZSBtaWdodCBiZSBtdWx0aXBsZSBlbnRyaWVzCi0JCQkgKiBwZXIg cHJvY2VzcyB0eXBlLCBkb24ndCBiYWlsIG91dCBiZWNhdXNlIGl0IGNhbiBhc3NpZ24gdGhl Ci0JCQkgKiB2YWx1ZSBmb3IgbXVsdGlwbGUgZW50cmllcy4KLQkJCSAqLworCQkJLyogSXMg dGhlIHByb2Nlc3MgdHlwZSBuYW1lIHZhbGlkIGFuZCB1bmlxdWU/ICovCiAJCQlmb3VuZCA9 IGZhbHNlOwogCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBCQUNLRU5EX05VTV9UWVBFUzsgaSsr KQogCQkJewotCQkJCWlmIChwZ19zdHJjYXNlY21wKGxvZ19taW5fbWVzc2FnZXNfcHJvY2Vz c190eXBlc1tpXSwgcHR5cGUpID09IDApCisJCQkJaWYgKHBnX3N0cmNhc2VjbXAocHJvY2Vz c190eXBlc1tpXSwgcHR5cGUpID09IDApCiAJCQkJewogCQkJCQkvKiBSZWplY3QgZHVwbGlj YXRlcyBmb3IgYSBwcm9jZXNzIHR5cGUuICovCiAJCQkJCWlmIChhc3NpZ25lZFtpXSkKIAkJ CQkJewotCQkJCQkJR1VDX2NoZWNrX2VycmRldGFpbCgiUHJvY2VzcyB0eXBlIFwiJXNcIiB3 YXMgYWxyZWFkeSBhc3NpZ25lZC4iLCBwdHlwZSk7Ci0JCQkJCQlndWNfZnJlZShwdHlwZSk7 Ci0JCQkJCQlndWNfZnJlZShyYXdzdHJpbmcpOwotCQkJCQkJbGlzdF9mcmVlKGVsZW1saXN0 KTsKLQkJCQkJCXJldHVybiBmYWxzZTsKKwkJCQkJCUdVQ19jaGVja19lcnJkZXRhaWwoIlJl ZHVuZGFudCBsb2cgbGV2ZWwgc3BlY2lmaWNhdGlvbiBmb3IgcHJvY2VzcyB0eXBlIFwiJXNc Ii4iLAorCQkJCQkJCQkJCQlwdHlwZSk7CisJCQkJCQlnb3RvIGxtbV9mYWlsOwogCQkJCQl9 CiAKLQkJCQkJbmV3bGV2ZWxbaV0gPSBlbnRyeS0+dmFsOworCQkJCQluZXdsZXZlbFtpXSA9 IGxldmVsOwogCQkJCQlhc3NpZ25lZFtpXSA9IHRydWU7CiAJCQkJCWZvdW5kID0gdHJ1ZTsK KwkJCQkJYnJlYWs7CiAJCQkJfQogCQkJfQogCiAJCQlpZiAoIWZvdW5kKQogCQkJewogCQkJ CUdVQ19jaGVja19lcnJkZXRhaWwoIlVucmVjb2duaXplZCBwcm9jZXNzIHR5cGU6IFwiJXNc Ii4iLCBwdHlwZSk7Ci0JCQkJZ3VjX2ZyZWUocHR5cGUpOwotCQkJCWd1Y19mcmVlKHJhd3N0 cmluZyk7Ci0JCQkJbGlzdF9mcmVlKGVsZW1saXN0KTsKLQkJCQlyZXR1cm4gZmFsc2U7CisJ CQkJZ290byBsbW1fZmFpbDsKIAkJCX0KIAotCQkJZ3VjX2ZyZWUocHR5cGUpOworCQkJLyog UHV0IHRoZSBzZXBhcmF0b3IgYmFjayBpbiBwbGFjZSAqLworCQkJKnNlcCA9ICc6JzsKIAkJ fQorCisJCS8qIGFsbCBnb29kICovCisJCWNvbnRpbnVlOworCitsbW1fZmFpbDoKKwkJZ3Vj X2ZyZWUocmF3c3RyaW5nKTsKKwkJbGlzdF9mcmVlKGVsZW1saXN0KTsKKwkJcmV0dXJuIGZh bHNlOwogCX0KIAogCS8qCkBAIC0xNDQzLDcgKzE0MzAsNyBAQCBjaGVja19sb2dfbWluX21l c3NhZ2VzKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkK IAkgKi8KIAlpZiAoZ2VuZXJpY2xldmVsID09IC0xKQogCXsKLQkJR1VDX2NoZWNrX2VycmRl dGFpbCgiR2VuZXJpYyBsb2cgbGV2ZWwgd2FzIG5vdCBkZWZpbmVkLiIpOworCQlHVUNfY2hl Y2tfZXJyZGV0YWlsKCJEZWZhdWx0IGxvZyBsZXZlbCB3YXMgbm90IGRlZmluZWQuIik7CiAJ CWd1Y19mcmVlKHJhd3N0cmluZyk7CiAJCWxpc3RfZnJlZShlbGVtbGlzdCk7CiAJCXJldHVy biBmYWxzZTsKQEAgLTE0NjEsMjQgKzE0NDgsMTggQEAgY2hlY2tfbG9nX21pbl9tZXNzYWdl cyhjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCiAJfQog CiAJLyoKLQkgKiBVc2UgYSBzdGFibGUgcmVwcmVzZW50YXRpb24gb2YgbG9nX21pbl9tZXNz YWdlcy4gVGhlIGdlbmVyaWMgbGV2ZWwgaXMKLQkgKiBhbHdheXMgdGhlIGZpcnN0IGVsZW1l bnQgYW5kIHRoZSBvdGhlciBlbGVtZW50cyAodHlwZTpsZXZlbCkgYXJlIHNvcnRlZAotCSAq IGJ5IHByb2Nlc3MgdHlwZS4gU2VlIGxvZ19taW5fbWVzc2FnZXNfY21wIGZvciBkZXRhaWxz LgorCSAqIFRvIHByZXNlbnQgYSBuaWNlIHZpZXcgdG8gdXNlcnMsIHNvcnQgdGhlIG91dHB1 dCBsaXN0IGJ5IHByb2Nlc3MgdHlwZSwKKwkgKiB3aXRoIHRoZSBkZWZhdWx0IHZhbHVlIGZp cnN0LgogCSAqLwogCWxpc3Rfc29ydChlbGVtbGlzdCwgbG9nX21pbl9tZXNzYWdlc19jbXAp OwogCi0JaW5pdFN0cmluZ0luZm8oJmJ1Zik7CisJaW5pdFN0cmluZ0luZm9FeHQoJmJ1Ziwg c3RybGVuKHJhd3N0cmluZykgKyAxKTsKIAlmb3JlYWNoX3B0cihjaGFyLCB0b2ssIGVsZW1s aXN0KQogCXsKLQkJaWYgKGZpcnN0KQotCQl7CisJCWlmIChmb3JlYWNoX2N1cnJlbnRfaW5k ZXgodG9rKSA9PSAwKQogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmLCB0b2spOwot CQkJZmlyc3QgPSBmYWxzZTsKLQkJfQogCQllbHNlCi0JCXsKIAkJCWFwcGVuZFN0cmluZ0lu Zm8oJmJ1ZiwgIiwgJXMiLCB0b2spOwotCQl9CiAJfQogCiAJcmVzdWx0ID0gKGNoYXIgKikg Z3VjX21hbGxvYyhMT0csIGJ1Zi5sZW4gKyAxKTsKQEAgLTE1MDUsNiArMTQ4NiwxMCBAQCBj aGVja19sb2dfbWluX21lc3NhZ2VzKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3Vj U291cmNlIHNvdXJjZSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorLyoKKyAqIGxpc3Rfc29ydCgp IGNhbGxiYWNrIGZvciBjaGVja19sb2dfbWluX21lc3NhZ2VzLiAgVGhlIGRlZmF1bHQgZWxl bWVudAorICogZ29lcyBmaXJzdDsgdGhlIHJlc3QgYXJlIG9yZGVyZWQgYnkgc3RyY21wKCkg b2YgdGhlIHByb2Nlc3MgdHlwZS4KKyAqLwogc3RhdGljIGludAogbG9nX21pbl9tZXNzYWdl c19jbXAoY29uc3QgTGlzdENlbGwgKmEsIGNvbnN0IExpc3RDZWxsICpiKQogewpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9sYXVuY2hfYmFja2VuZC5jIGIvc3JjL2Jh Y2tlbmQvcG9zdG1hc3Rlci9sYXVuY2hfYmFja2VuZC5jCmluZGV4IDA4NTUzYzBmMDI0Li4w NWIxZmVlZjNjZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9sYXVuY2hf YmFja2VuZC5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvbGF1bmNoX2JhY2tlbmQu YwpAQCAtMTc4LDcgKzE3OCw3IEBAIHR5cGVkZWYgc3RydWN0CiB9IGNoaWxkX3Byb2Nlc3Nf a2luZDsKIAogc3RhdGljIGNoaWxkX3Byb2Nlc3Nfa2luZCBjaGlsZF9wcm9jZXNzX2tpbmRz W10gPSB7Ci0jZGVmaW5lIFBHX1BST0NUWVBFKGJrdHlwZSwgYmtjYXRlZ29yeSwgZGVzY3Jp cHRpb24sIG1haW5fZnVuYywgc2htZW1fYXR0YWNoLCBsb2dfbWluX21lc3NhZ2VzKSBcCisj ZGVmaW5lIFBHX1BST0NUWVBFKGJrdHlwZSwgYmtjYXRlZ29yeSwgZGVzY3JpcHRpb24sIG1h aW5fZnVuYywgc2htZW1fYXR0YWNoKSBcCiAJW2JrdHlwZV0gPSB7ZGVzY3JpcHRpb24sIG1h aW5fZnVuYywgc2htZW1fYXR0YWNofSwKICNpbmNsdWRlICJwb3N0bWFzdGVyL3Byb2N0eXBl bGlzdC5oIgogI3VuZGVmIFBHX1BST0NUWVBFCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9pbml0L21pc2Npbml0LmMgYi9zcmMvYmFja2VuZC91dGlscy9pbml0L21pc2Npbml0 LmMKaW5kZXggZWZiYTIwZmE4YjkuLjAzZjZjODQ3OWYyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9pbml0L21pc2Npbml0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5p dC9taXNjaW5pdC5jCkBAIC0yNjYsNyArMjY2LDcgQEAgR2V0QmFja2VuZFR5cGVEZXNjKEJh Y2tlbmRUeXBlIGJhY2tlbmRUeXBlKQogCiAJc3dpdGNoIChiYWNrZW5kVHlwZSkKIAl7Ci0j ZGVmaW5lIFBHX1BST0NUWVBFKGJrdHlwZSwgYmtjYXRlZ29yeSwgZGVzY3JpcHRpb24sIG1h aW5fZnVuYywgc2htZW1fYXR0YWNoLCBsb2dfbWluX21lc3NhZ2VzKQlcCisjZGVmaW5lIFBH X1BST0NUWVBFKGJrdHlwZSwgYmtjYXRlZ29yeSwgZGVzY3JpcHRpb24sIG1haW5fZnVuYywg c2htZW1fYXR0YWNoKQlcCiAJCWNhc2UgYmt0eXBlOiBiYWNrZW5kRGVzYyA9IGRlc2NyaXB0 aW9uOyBicmVhazsKICNpbmNsdWRlICJwb3N0bWFzdGVyL3Byb2N0eXBlbGlzdC5oIgogI3Vu ZGVmIFBHX1BST0NUWVBFCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1 Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4 IDQ2YTVjZjEzZTRhLi43NDFmY2U4ZGVkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMKQEAgLTY1NywyMyArNjU3LDE1IEBAIGNoYXIJICAgKnJvbGVfc3RyaW5nOwog Ym9vbAkJaW5faG90X3N0YW5kYnlfZ3VjOwogCiAvKgotICogbG9nX21pbl9tZXNzYWdlcwor ICogc2V0IGRlZmF1bHQgbG9nX21pbl9tZXNzYWdlcyB0byBXQVJOSU5HIGZvciBhbGwgcHJv Y2VzcyB0eXBlcwogICovCiBpbnQJCQlsb2dfbWluX21lc3NhZ2VzW10gPSB7Ci0jZGVmaW5l IFBHX1BST0NUWVBFKGJrdHlwZSwgYmtjYXRlZ29yeSwgZGVzY3JpcHRpb24sIG1haW5fZnVu Yywgc2htZW1fYXR0YWNoLCBsb2dfbWluX21lc3NhZ2VzKSBcCi0JW2JrdHlwZV0gPSBsb2df bWluX21lc3NhZ2VzLAorI2RlZmluZSBQR19QUk9DVFlQRShia3R5cGUsIGJrY2F0ZWdvcnks IGRlc2NyaXB0aW9uLCBtYWluX2Z1bmMsIHNobWVtX2F0dGFjaCkgXAorCVtia3R5cGVdID0g V0FSTklORywKICNpbmNsdWRlICJwb3N0bWFzdGVyL3Byb2N0eXBlbGlzdC5oIgogI3VuZGVm IFBHX1BST0NUWVBFCiB9OwogCi1jb25zdCBjaGFyICpjb25zdCBsb2dfbWluX21lc3NhZ2Vz X3Byb2Nlc3NfdHlwZXNbXSA9IHsKLSNkZWZpbmUgUEdfUFJPQ1RZUEUoYmt0eXBlLCBia2Nh dGVnb3J5LCBkZXNjcmlwdGlvbiwgbWFpbl9mdW5jLCBzaG1lbV9hdHRhY2gsIGxvZ19taW5f bWVzc2FnZXMpIFwKLQlbYmt0eXBlXSA9IGJrY2F0ZWdvcnksCi0jaW5jbHVkZSAicG9zdG1h c3Rlci9wcm9jdHlwZWxpc3QuaCIKLSN1bmRlZiBQR19QUk9DVFlQRQotfTsKLQotCiAvKgog ICogRGlzcGxheWFibGUgbmFtZXMgZm9yIGNvbnRleHQgdHlwZXMgKGVudW0gR3VjQ29udGV4 dCkKICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL3Byb2N0eXBlbGlz dC5oIGIvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9wcm9jdHlwZWxpc3QuaAppbmRleCAwZGRk ODA1ZjBlNy4uNGUyNTllODRjMmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0 ZXIvcHJvY3R5cGVsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9wcm9jdHlw ZWxpc3QuaApAQCAtMzAsMjIgKzMwLDIyIEBACiAgKi8KIAogCi0vKiBia3R5cGUsIGJrY2F0 ZWdvcnksIGRlc2NyaXB0aW9uLCBtYWluX2Z1bmMsIHNobWVtX2F0dGFjaCwgbG9nX21pbl9t ZXNzYWdlcyAqLwotUEdfUFJPQ1RZUEUoQl9BUkNISVZFUiwgImFyY2hpdmVyIiwgZ2V0dGV4 dF9ub29wKCJhcmNoaXZlciIpLCBQZ0FyY2hpdmVyTWFpbiwgdHJ1ZSwgV0FSTklORykKLVBH X1BST0NUWVBFKEJfQVVUT1ZBQ19MQVVOQ0hFUiwgImF1dG92YWN1dW0iLCBnZXR0ZXh0X25v b3AoImF1dG92YWN1dW0gbGF1bmNoZXIiKSwgQXV0b1ZhY0xhdW5jaGVyTWFpbiwgdHJ1ZSwg V0FSTklORykKLVBHX1BST0NUWVBFKEJfQVVUT1ZBQ19XT1JLRVIsICJhdXRvdmFjdXVtIiwg Z2V0dGV4dF9ub29wKCJhdXRvdmFjdXVtIHdvcmtlciIpLCBBdXRvVmFjV29ya2VyTWFpbiwg dHJ1ZSwgV0FSTklORykKLVBHX1BST0NUWVBFKEJfQkFDS0VORCwgImJhY2tlbmQiLCBnZXR0 ZXh0X25vb3AoImNsaWVudCBiYWNrZW5kIiksIEJhY2tlbmRNYWluLCB0cnVlLCBXQVJOSU5H KQotUEdfUFJPQ1RZUEUoQl9CR19XT1JLRVIsICJiZ3dvcmtlciIsIGdldHRleHRfbm9vcCgi YmFja2dyb3VuZCB3b3JrZXIiKSwgQmFja2dyb3VuZFdvcmtlck1haW4sIHRydWUsIFdBUk5J TkcpCi1QR19QUk9DVFlQRShCX0JHX1dSSVRFUiwgImJnd3JpdGVyIiwgZ2V0dGV4dF9ub29w KCJiYWNrZ3JvdW5kIHdyaXRlciIpLCBCYWNrZ3JvdW5kV3JpdGVyTWFpbiwgdHJ1ZSwgV0FS TklORykKLVBHX1BST0NUWVBFKEJfQ0hFQ0tQT0lOVEVSLCAiY2hlY2twb2ludGVyIiwgZ2V0 dGV4dF9ub29wKCJjaGVja3BvaW50ZXIiKSwgQ2hlY2twb2ludGVyTWFpbiwgdHJ1ZSwgV0FS TklORykKLVBHX1BST0NUWVBFKEJfREVBRF9FTkRfQkFDS0VORCwgImJhY2tlbmQiLCBnZXR0 ZXh0X25vb3AoImRlYWQtZW5kIGNsaWVudCBiYWNrZW5kIiksIEJhY2tlbmRNYWluLCB0cnVl LCBXQVJOSU5HKQotUEdfUFJPQ1RZUEUoQl9JTlZBTElELCAicG9zdG1hc3RlciIsIGdldHRl eHRfbm9vcCgidW5yZWNvZ25pemVkIiksIE5VTEwsIGZhbHNlLCBXQVJOSU5HKQotUEdfUFJP Q1RZUEUoQl9JT19XT1JLRVIsICJpb3dvcmtlciIsIGdldHRleHRfbm9vcCgiaW8gd29ya2Vy IiksIElvV29ya2VyTWFpbiwgdHJ1ZSwgV0FSTklORykKLVBHX1BST0NUWVBFKEJfTE9HR0VS LCAic3lzbG9nZ2VyIiwgZ2V0dGV4dF9ub29wKCJzeXNsb2dnZXIiKSwgU3lzTG9nZ2VyTWFp biwgZmFsc2UsIFdBUk5JTkcpCi1QR19QUk9DVFlQRShCX1NMT1RTWU5DX1dPUktFUiwgInNs b3RzeW5jd29ya2VyIiwgZ2V0dGV4dF9ub29wKCJzbG90c3luYyB3b3JrZXIiKSwgUmVwbFNs b3RTeW5jV29ya2VyTWFpbiwgdHJ1ZSwgV0FSTklORykKLVBHX1BST0NUWVBFKEJfU1RBTkRB TE9ORV9CQUNLRU5ELCAiYmFja2VuZCIsIGdldHRleHRfbm9vcCgic3RhbmRhbG9uZSBiYWNr ZW5kIiksIE5VTEwsIGZhbHNlLCBXQVJOSU5HKQotUEdfUFJPQ1RZUEUoQl9TVEFSVFVQLCAi c3RhcnR1cCIsIGdldHRleHRfbm9vcCgic3RhcnR1cCIpLCBTdGFydHVwUHJvY2Vzc01haW4s IHRydWUsIFdBUk5JTkcpCi1QR19QUk9DVFlQRShCX1dBTF9SRUNFSVZFUiwgIndhbHJlY2Vp dmVyIiwgZ2V0dGV4dF9ub29wKCJ3YWxyZWNlaXZlciIpLCBXYWxSZWNlaXZlck1haW4sIHRy dWUsIFdBUk5JTkcpCi1QR19QUk9DVFlQRShCX1dBTF9TRU5ERVIsICJ3YWxzZW5kZXIiLCBn ZXR0ZXh0X25vb3AoIndhbHNlbmRlciIpLCBOVUxMLCB0cnVlLCBXQVJOSU5HKQotUEdfUFJP Q1RZUEUoQl9XQUxfU1VNTUFSSVpFUiwgIndhbHN1bW1hcml6ZXIiLCBnZXR0ZXh0X25vb3Ao IndhbHN1bW1hcml6ZXIiKSwgV2FsU3VtbWFyaXplck1haW4sIHRydWUsIFdBUk5JTkcpCi1Q R19QUk9DVFlQRShCX1dBTF9XUklURVIsICJ3YWx3cml0ZXIiLCBnZXR0ZXh0X25vb3AoIndh bHdyaXRlciIpLCBXYWxXcml0ZXJNYWluLCB0cnVlLCBXQVJOSU5HKQorLyogYmt0eXBlLCBi a2NhdGVnb3J5LCBkZXNjcmlwdGlvbiwgbWFpbl9mdW5jLCBzaG1lbV9hdHRhY2ggKi8KK1BH X1BST0NUWVBFKEJfQVJDSElWRVIsICJhcmNoaXZlciIsIGdldHRleHRfbm9vcCgiYXJjaGl2 ZXIiKSwgUGdBcmNoaXZlck1haW4sIHRydWUpCitQR19QUk9DVFlQRShCX0FVVE9WQUNfTEFV TkNIRVIsICJhdXRvdmFjdXVtIiwgZ2V0dGV4dF9ub29wKCJhdXRvdmFjdXVtIGxhdW5jaGVy IiksIEF1dG9WYWNMYXVuY2hlck1haW4sIHRydWUpCitQR19QUk9DVFlQRShCX0FVVE9WQUNf V09SS0VSLCAiYXV0b3ZhY3V1bSIsIGdldHRleHRfbm9vcCgiYXV0b3ZhY3V1bSB3b3JrZXIi KSwgQXV0b1ZhY1dvcmtlck1haW4sIHRydWUpCitQR19QUk9DVFlQRShCX0JBQ0tFTkQsICJi YWNrZW5kIiwgZ2V0dGV4dF9ub29wKCJjbGllbnQgYmFja2VuZCIpLCBCYWNrZW5kTWFpbiwg dHJ1ZSkKK1BHX1BST0NUWVBFKEJfQkdfV09SS0VSLCAiYmd3b3JrZXIiLCBnZXR0ZXh0X25v b3AoImJhY2tncm91bmQgd29ya2VyIiksIEJhY2tncm91bmRXb3JrZXJNYWluLCB0cnVlKQor UEdfUFJPQ1RZUEUoQl9CR19XUklURVIsICJiZ3dyaXRlciIsIGdldHRleHRfbm9vcCgiYmFj a2dyb3VuZCB3cml0ZXIiKSwgQmFja2dyb3VuZFdyaXRlck1haW4sIHRydWUpCitQR19QUk9D VFlQRShCX0NIRUNLUE9JTlRFUiwgImNoZWNrcG9pbnRlciIsIGdldHRleHRfbm9vcCgiY2hl Y2twb2ludGVyIiksIENoZWNrcG9pbnRlck1haW4sIHRydWUpCitQR19QUk9DVFlQRShCX0RF QURfRU5EX0JBQ0tFTkQsICJiYWNrZW5kIiwgZ2V0dGV4dF9ub29wKCJkZWFkLWVuZCBjbGll bnQgYmFja2VuZCIpLCBCYWNrZW5kTWFpbiwgdHJ1ZSkKK1BHX1BST0NUWVBFKEJfSU5WQUxJ RCwgInBvc3RtYXN0ZXIiLCBnZXR0ZXh0X25vb3AoInVucmVjb2duaXplZCIpLCBOVUxMLCBm YWxzZSkKK1BHX1BST0NUWVBFKEJfSU9fV09SS0VSLCAiaW93b3JrZXIiLCBnZXR0ZXh0X25v b3AoImlvIHdvcmtlciIpLCBJb1dvcmtlck1haW4sIHRydWUpCitQR19QUk9DVFlQRShCX0xP R0dFUiwgInN5c2xvZ2dlciIsIGdldHRleHRfbm9vcCgic3lzbG9nZ2VyIiksIFN5c0xvZ2dl ck1haW4sIGZhbHNlKQorUEdfUFJPQ1RZUEUoQl9TTE9UU1lOQ19XT1JLRVIsICJzbG90c3lu Y3dvcmtlciIsIGdldHRleHRfbm9vcCgic2xvdHN5bmMgd29ya2VyIiksIFJlcGxTbG90U3lu Y1dvcmtlck1haW4sIHRydWUpCitQR19QUk9DVFlQRShCX1NUQU5EQUxPTkVfQkFDS0VORCwg ImJhY2tlbmQiLCBnZXR0ZXh0X25vb3AoInN0YW5kYWxvbmUgYmFja2VuZCIpLCBOVUxMLCBm YWxzZSkKK1BHX1BST0NUWVBFKEJfU1RBUlRVUCwgInN0YXJ0dXAiLCBnZXR0ZXh0X25vb3Ao InN0YXJ0dXAiKSwgU3RhcnR1cFByb2Nlc3NNYWluLCB0cnVlKQorUEdfUFJPQ1RZUEUoQl9X QUxfUkVDRUlWRVIsICJ3YWxyZWNlaXZlciIsIGdldHRleHRfbm9vcCgid2FscmVjZWl2ZXIi KSwgV2FsUmVjZWl2ZXJNYWluLCB0cnVlKQorUEdfUFJPQ1RZUEUoQl9XQUxfU0VOREVSLCAi d2Fsc2VuZGVyIiwgZ2V0dGV4dF9ub29wKCJ3YWxzZW5kZXIiKSwgTlVMTCwgdHJ1ZSkKK1BH X1BST0NUWVBFKEJfV0FMX1NVTU1BUklaRVIsICJ3YWxzdW1tYXJpemVyIiwgZ2V0dGV4dF9u b29wKCJ3YWxzdW1tYXJpemVyIiksIFdhbFN1bW1hcml6ZXJNYWluLCB0cnVlKQorUEdfUFJP Q1RZUEUoQl9XQUxfV1JJVEVSLCAid2Fsd3JpdGVyIiwgZ2V0dGV4dF9ub29wKCJ3YWx3cml0 ZXIiKSwgV2FsV3JpdGVyTWFpbiwgdHJ1ZSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZ3VjLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3VjLm91 dAppbmRleCA5YTZmZDUwMzAwOS4uNjE2YjEwZjgwZDYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3VjLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2d1Yy5vdXQKQEAgLTk1NSwxOSArOTU1LDE5IEBAIFNIT1cgbG9nX21pbl9tZXNzYWdl czsKIAogU0VUIGxvZ19taW5fbWVzc2FnZXMgVE8gJ2NoZWNrcG9pbnRlcjpkZWJ1ZzIsIGF1 dG92YWN1dW06ZGVidWcxJzsgIC0tZmFpbAogRVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBw YXJhbWV0ZXIgImxvZ19taW5fbWVzc2FnZXMiOiAiY2hlY2twb2ludGVyOmRlYnVnMiwgYXV0 b3ZhY3V1bTpkZWJ1ZzEiCi1ERVRBSUw6ICBHZW5lcmljIGxvZyBsZXZlbCB3YXMgbm90IGRl ZmluZWQuCitERVRBSUw6ICBEZWZhdWx0IGxvZyBsZXZlbCB3YXMgbm90IGRlZmluZWQuCiBT RVQgbG9nX21pbl9tZXNzYWdlcyBUTyAnZGVidWcxLCBiYWNrZW5kOmVycm9yLCBmYXRhbCc7 ICAtLSBmYWlsCiBFUlJPUjogIGludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciAibG9nX21p bl9tZXNzYWdlcyI6ICJkZWJ1ZzEsIGJhY2tlbmQ6ZXJyb3IsIGZhdGFsIgotREVUQUlMOiAg R2VuZXJpYyBsb2cgbGV2ZWwgd2FzIGFscmVhZHkgYXNzaWduZWQuCitERVRBSUw6ICBSZWR1 bmRhbnQgc3BlY2lmaWNhdGlvbiBvZiBkZWZhdWx0IGxvZyBsZXZlbC4KIFNFVCBsb2dfbWlu X21lc3NhZ2VzIFRPICdiYWNrZW5kOmVycm9yLCBkZWJ1ZzEsIGJhY2tlbmQ6d2FybmluZyc7 ICAtLSBmYWlsCiBFUlJPUjogIGludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciAibG9nX21p bl9tZXNzYWdlcyI6ICJiYWNrZW5kOmVycm9yLCBkZWJ1ZzEsIGJhY2tlbmQ6d2FybmluZyIK LURFVEFJTDogIFByb2Nlc3MgdHlwZSAiYmFja2VuZCIgd2FzIGFscmVhZHkgYXNzaWduZWQu CitERVRBSUw6ICBSZWR1bmRhbnQgbG9nIGxldmVsIHNwZWNpZmljYXRpb24gZm9yIHByb2Nl c3MgdHlwZSAiYmFja2VuZCIuCiBTRVQgbG9nX21pbl9tZXNzYWdlcyBUTyAnYmFja2VuZDpl cnJvciwgZm9vOmZhdGFsLCBhcmNoaXZlcjpkZWJ1ZzEnOyAgLS0gZmFpbAogRVJST1I6ICBp bnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgImxvZ19taW5fbWVzc2FnZXMiOiAiYmFja2Vu ZDplcnJvciwgZm9vOmZhdGFsLCBhcmNoaXZlcjpkZWJ1ZzEiCiBERVRBSUw6ICBVbnJlY29n bml6ZWQgcHJvY2VzcyB0eXBlOiAiZm9vIi4KIFNFVCBsb2dfbWluX21lc3NhZ2VzIFRPICdi YWNrZW5kOmVycm9yLCBjaGVja3BvaW50ZXI6YmFyLCBhcmNoaXZlcjpkZWJ1ZzEnOyAgLS0g ZmFpbAogRVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgImxvZ19taW5fbWVz c2FnZXMiOiAiYmFja2VuZDplcnJvciwgY2hlY2twb2ludGVyOmJhciwgYXJjaGl2ZXI6ZGVi dWcxIgotREVUQUlMOiAgVW5yZWNvZ25pemVkIGxvZyBsZXZlbDogImJhciIuCitERVRBSUw6 ICBVbnJlY29nbml6ZWQgbG9nIGxldmVsIGZvciBwcm9jZXNzIHR5cGUgImNoZWNrcG9pbnRl ciI6ICJiYXIiLgogU0VUIGxvZ19taW5fbWVzc2FnZXMgVE8gJ2JhY2tlbmQ6ZXJyb3IsIGNo ZWNrcG9pbnRlcjpkZWJ1ZzMsIGZhdGFsLCBhcmNoaXZlcjpkZWJ1ZzIsIGF1dG92YWN1dW06 ZGVidWcxLCB3YWxzZW5kZXI6ZGVidWczJzsKIFNIT1cgbG9nX21pbl9tZXNzYWdlczsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dfbWluX21lc3NhZ2Vz ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0gCjIuMzkuNQoK --0eaabf3a3bf54bada9d27f60ca2efa64 Content-Disposition: attachment; filename="v11-0003-fixup-review.patch" Content-Type: text/x-patch; name="v11-0003-fixup-review.patch" Content-Transfer-Encoding: base64 RnJvbSBmZjY0ZjUyMTg3M2M1Zjc1YWU1ODEzYzQ0NDFkNTU0MDRjMTg1NGY4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFdWxlciBUYXZlaXJhIDxldWxlckBldWxlcnRvLmNv bT4KRGF0ZTogRnJpLCA2IEZlYiAyMDI2IDEyOjQyOjIxIC0wMzAwClN1YmplY3Q6IFtQQVRD SCB2MTEgMy8zXSBmaXh1cCEgcmV2aWV3CgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh cmlhYmxlLmMgfCAxOCArKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGlu c2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMK aW5kZXggOTdiOWE2YjU5NjQuLjhlYTZmNmY1N2U2IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zhcmlh YmxlLmMKQEAgLTEyOTUsNyArMTI5NSw3IEBAIGNoZWNrX2xvZ19taW5fbWVzc2FnZXMoY2hh ciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKQogCWNoYXIJICAg KnJlc3VsdDsKIAlpbnQJCQluZXdsZXZlbFtCQUNLRU5EX05VTV9UWVBFU107CiAJYm9vbAkJ YXNzaWduZWRbQkFDS0VORF9OVU1fVFlQRVNdID0gezB9OwotCWludAkJCWdlbmVyaWNsZXZl bCA9IC0xOwkvKiAtMSBtZWFucyBub3QgYXNzaWduZWQgKi8KKwlpbnQJCQlkZWZhdWx0bGV2 ZWwgPSAtMTsJLyogLTEgbWVhbnMgbm90IGFzc2lnbmVkICovCiAKIAljb25zdCBjaGFyICpj b25zdCBwcm9jZXNzX3R5cGVzW10gPSB7CiAjZGVmaW5lIFBHX1BST0NUWVBFKGJrdHlwZSwg YmtjYXRlZ29yeSwgZGVzY3JpcHRpb24sIG1haW5fZnVuYywgc2htZW1fYXR0YWNoKSBcCkBA IC0xMzMxLDggKzEzMzEsOCBAQCBjaGVja19sb2dfbWluX21lc3NhZ2VzKGNoYXIgKipuZXd2 YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKIAkJCWNvbnN0IHN0cnVjdCBj b25maWdfZW51bV9lbnRyeSAqZW50cnk7CiAJCQlib29sCQlmb3VuZCA9IGZhbHNlOwogCi0J CQkvKiBSZWplY3QgZHVwbGljYXRlcyBmb3IgZ2VuZXJpYyBsb2cgbGV2ZWwuICovCi0JCQlp ZiAoZ2VuZXJpY2xldmVsICE9IC0xKQorCQkJLyogUmVqZWN0IGR1cGxpY2F0ZXMgZm9yIGRl ZmF1bHQgbG9nIGxldmVsLiAqLworCQkJaWYgKGRlZmF1bHRsZXZlbCAhPSAtMSkKIAkJCXsK IAkJCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJSZWR1bmRhbnQgc3BlY2lmaWNhdGlvbiBvZiBk ZWZhdWx0IGxvZyBsZXZlbC4iKTsKIAkJCQlnb3RvIGxtbV9mYWlsOwpAQCAtMTM0Myw3ICsx MzQzLDcgQEAgY2hlY2tfbG9nX21pbl9tZXNzYWdlcyhjaGFyICoqbmV3dmFsLCB2b2lkICoq ZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCiAJCQl7CiAJCQkJaWYgKHBnX3N0cmNhc2VjbXAo ZW50cnktPm5hbWUsIHRvaykgPT0gMCkKIAkJCQl7Ci0JCQkJCWdlbmVyaWNsZXZlbCA9IGVu dHJ5LT52YWw7CisJCQkJCWRlZmF1bHRsZXZlbCA9IGVudHJ5LT52YWw7CiAJCQkJCWZvdW5k ID0gdHJ1ZTsKIAkJCQkJYnJlYWs7CiAJCQkJfQpAQCAtMTQyNiw5ICsxNDI2LDkgQEAgbG1t X2ZhaWw6CiAJfQogCiAJLyoKLQkgKiBUaGUgZ2VuZXJpYyBsb2cgbGV2ZWwgbXVzdCBiZSBz cGVjaWZpZWQuIEl0IGlzIHRoZSBmYWxsYmFjayB2YWx1ZS4KKwkgKiBUaGUgZGVmYXVsdCBs b2cgbGV2ZWwgbXVzdCBiZSBzcGVjaWZpZWQuIEl0IGlzIHRoZSBmYWxsYmFjayB2YWx1ZS4K IAkgKi8KLQlpZiAoZ2VuZXJpY2xldmVsID09IC0xKQorCWlmIChkZWZhdWx0bGV2ZWwgPT0g LTEpCiAJewogCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJEZWZhdWx0IGxvZyBsZXZlbCB3YXMg bm90IGRlZmluZWQuIik7CiAJCWd1Y19mcmVlKHJhd3N0cmluZyk7CkBAIC0xNDM3LDE0ICsx NDM3LDE0IEBAIGxtbV9mYWlsOgogCX0KIAogCS8qCi0JICogQXBwbHkgdGhlIGdlbmVyaWMg bG9nIGxldmVsIGFmdGVyIGFsbCBvZiB0aGUgc3BlY2lmaWMgcHJvY2VzcyB0eXBlcworCSAq IEFwcGx5IHRoZSBkZWZhdWx0IGxvZyBsZXZlbCBhZnRlciBhbGwgb2YgdGhlIHNwZWNpZmlj IHByb2Nlc3MgdHlwZXMKIAkgKiBoYXZlIGJlZW4gYXNzaWduZWQuIEhlbmNlLCBpdCBkb2Vz bid0IG1hdHRlciB0aGUgb3JkZXIgeW91IHNwZWNpZnkgdGhlCi0JICogZ2VuZXJpYyBsb2cg bGV2ZWwsIHRoZSBmaW5hbCByZXN1bHQgd2lsbCBiZSB0aGUgc2FtZS4KKwkgKiBkZWZhdWx0 IGxvZyBsZXZlbCwgdGhlIGZpbmFsIHJlc3VsdCB3aWxsIGJlIHRoZSBzYW1lLgogCSAqLwog CWZvciAoaW50IGkgPSAwOyBpIDwgQkFDS0VORF9OVU1fVFlQRVM7IGkrKykKIAl7CiAJCWlm ICghYXNzaWduZWRbaV0pCi0JCQluZXdsZXZlbFtpXSA9IGdlbmVyaWNsZXZlbDsKKwkJCW5l d2xldmVsW2ldID0gZGVmYXVsdGxldmVsOwogCX0KIAogCS8qCi0tIAoyLjM5LjUKCg== --0eaabf3a3bf54bada9d27f60ca2efa64--