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 1w4Owo-002A2I-0p for pgsql-hackers@arkaria.postgresql.org; Sun, 22 Mar 2026 19:58:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w4Owm-00E739-27 for pgsql-hackers@arkaria.postgresql.org; Sun, 22 Mar 2026 19:58:53 +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 1w4Owl-00E731-1u for pgsql-hackers@lists.postgresql.org; Sun, 22 Mar 2026 19:58:52 +0000 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w4Owb-00000000Voy-24Kp for pgsql-hackers@lists.postgresql.org; Sun, 22 Mar 2026 19:58:51 +0000 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-6618bc129acso4667532a12.2 for ; Sun, 22 Mar 2026 12:58:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774209520; cv=none; d=google.com; s=arc-20240605; b=FeWSMxdKYwlpU/hrSEKp7xIzM/YjcwIqgbfP3umuYrXghxsACILkNojGqK3fMaYbgi ajoRvvzH343wcYG7WgB/WNtOnoBUwtEmPpMTLscn3dkJ3174+w7O9hjk0GIMwTXv3M5O vo8Ejvi9dBgpUsXm50QXl0z6TBxDuDHVd2hyoZgEm5Of8aV+QcM4uujk460EsV3ooJm5 K5M9fP0aKb0BthxcDoTMTciDb+lN7E/KptE0aUAKA+i6HPlRK1PEonK+04iC0eaBgQiw /EZ724bLtX8AD1kAyLHk1d67j7QWFKpdGnuYn7dem4UyJjVUcL9EQyQo86t6mZgt0Vfl z2lQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=vEzgNvEyyxpOc/hhLALZwJk0zN0+aNPu8qsD5eB5FkM=; fh=IjDBGiZpuHCPt05NCTq1clAqtAJ3fgq1JyZv+Rlijec=; b=kIJ7vVEJ4kqUZGfqMVEY8sYQPGrTh3NuLzOD9idVZrwECRgGPEX5BjKh4eUFFS2WIn f/RU3SmDlna2fetAGPeH+lis1oTQGi4gCg0A4aJf9fRO4ti2QMl03J9hiVLYfUwjSPuX csYHMYcMWXBydzLatKsjTNbVWWJE279EGA1dih9rpiVKtgUk0FLzNRMC8AwBIsiv0MKF IGr3rKHhtqWu3eOG4DpCCqSGaCntJPKg5liy0nfyqzgHIoBEAVdHyNz9Fo7p0lxvcEiD asWlCWwxV9/dpVz9rjMcKj0NF4R6rgf0zm0Xs0mqc1j6V8uyKxCq9ph/e8LHZOcQog8h 00Zg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774209520; x=1774814320; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=vEzgNvEyyxpOc/hhLALZwJk0zN0+aNPu8qsD5eB5FkM=; b=I5wMc7M/VBkCKQ10adW29PsEBtgyRZL76TftTxhVg0B6p7DH7f7ionhRJWCaWsB0bG Amz/eZZ5FVLkmbScDZUGoHU520VxMGP+KahU8ElyQ6gGApTEyo9JI6rs31dhRGpF+j5J K+LRVe6d8L7guRc3WJveg04fLovXfEyXQEWUYFrb2fT/4QZr58OmTma2ijDQtGp6Jb7m aejt56FyV5FQBtsJrhOeoBBZz6KQ1nQuM6Pf5M5ql3cO/cacThUfqe5sySTvUeAdISIB nl8/nGA35pU0GgjAn/ba8Phe6md/Xa19OaeoSBLgXnP5fbsw5jLe1oR4m4LFyVY6ZJIb a77Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774209520; x=1774814320; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=vEzgNvEyyxpOc/hhLALZwJk0zN0+aNPu8qsD5eB5FkM=; b=tIiO5XRMY5c4fxP/4zzuz/VFTstdT2qD5m26vVj8u8oDDzJ/y5TTEyMKDHE/o+a0ct 4n3i5GTzRQm1XHwY3Ud3dlUdm3nNKrgUa/Gqycz/SSsk/jdR8Yx02UWABzijrr8MsEmu iaYzori8CoEc1OsxEKut4fXKQaw+12ENK0ndyYzAbR1bncXXRRzpe3d4osB5bIsvYtFG rP6qlZjdTEkSya4dnEnw/Lf9ms1thkuVWBU7aOEw+Xn8UJcTQDCEG57R4uRWa3pNdujR 1HujhyU7MEQfCVUgknZtYAMmhbOAkdZMW5CohBeXKH3b0Xi3pobF97JQ6CM+SUYIersY muZw== X-Forwarded-Encrypted: i=1; AJvYcCVcSCGhBRDuqJCTdw2yv6KpECfHunwM62aRw7up3Q1EPCyfkXA5O5oFIYUBfZsz4oU5A1s2a6fNkcT+/Rdm@lists.postgresql.org X-Gm-Message-State: AOJu0YxZU3fNVnGfBFgwdhQvaWmWPJ2bB3iXAln1ugWYrGq1ass/VgUm cBTz1JxFohLddZ91EscZCCuT1FOeq4Hi03phCNCFJr8FO2XKQHyynaps06s7gaptvSaOVbkX8SX LSBRUCUfXiXvq18wX1cGNUpBhodlaWEk= X-Gm-Gg: ATEYQzx+SvmQ1mnMZl8vm8ur22mYSRf/xqLEpsBTu/18BxGOFm/ovq22JXjH05JMEIw Jwqec0EH7S2Vtu2kWcAXC/MfBNZNwd8kNeypcGIzdLUYNfrV7ac0OL53qabsM29PFduBqqqmd+p Pvod8jnZ/UxX3u76iewXqwVb/ocvXzypyMn/IUAeKgzai8j9uhmmrEZfVohMavCwJAqlVDcnOcK e26zU/xIyRHJbzIjktBgnPxUkDHrR70BwSSV1W1crwH19g1ncC7Zj33utsTkFm8eT4zITxRg1CP DdBC+i4xi9IGqOeRKxdKmBbsCc15GExNXt3mgE5NtdArZMif01gOlKKih1Jw7gYSW8w0oZxO5fD /TxOruWRr X-Received: by 2002:a05:6402:1d4b:b0:667:9531:d1d7 with SMTP id 4fb4d7f45d1cf-668c8efebd0mr7560050a12.1.1774209519552; Sun, 22 Mar 2026 12:58:39 -0700 (PDT) MIME-Version: 1.0 References: <81DAFACF-7D55-4A84-ACB0-0425D1669DB4@gmail.com> In-Reply-To: From: Melanie Plageman Date: Sun, 22 Mar 2026 15:58:27 -0400 X-Gm-Features: AQROBzAVzFQ_3lEbkGDB4dPCioI8_fozAhYAdSo_E0mICPD3ngygSoB7Vj4oj1o Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Andres Freund Cc: Kirill Reshke , Chao Li , Andrey Borodin , Xuneng Zhou , Robert Haas , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="0000000000002c12b8064da25839" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002c12b8064da25839 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Mar 20, 2026 at 7:37=E2=80=AFPM Melanie Plageman wrote: > > I've made several minor updates and two notable updates in attached v42: > > - no separate log_newpage_buffer() for empty page vacuum. > log_heap_prune_and_freeze() now handles pages without a valid LSN on > its own > - the heap_page_is_all_visible() assertion should be stable even once > it uses GlobalVisState because I've updated the GloablVisState > functions to avoid updating the GlobalVisState boundaries in this case I've pushed the first two patches. Attached are the remaining 10. No changes were made to those from the previous version. - Melanie --0000000000002c12b8064da25839 Content-Type: text/x-patch; charset="UTF-8"; name="v43-0001-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Disposition: attachment; filename="v43-0001-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn26hcy60 RnJvbSAzNTI1MWQ2NjhjMmVmZGM4MmY2YTQwMTk4MjcyZmE3ZWU1YWZlODJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IERlYyAyMDI1IDE2OjUxOjA1IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDMgMDEvMTBdIFVzZSBHbG9iYWxWaXNTdGF0ZSBpbiB2YWN1dW0gdG8gZGV0ZXJtaW5l IHBhZ2UKIGxldmVsIHZpc2liaWxpdHkKCkR1cmluZyB2YWN1dW0ncyBmaXJzdCBhbmQgdGhpcmQg cGhhc2VzLCB3ZSBleGFtaW5lIHR1cGxlcycgdmlzaWJpbGl0eSB0bwpkZXRlcm1pbmUgaWYgd2Ug Y2FuIHNldCB0aGUgcGFnZSBhbGwtdmlzaWJsZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAuCgpQcmV2 aW91c2x5LCB0aGlzIGNoZWNrIGNvbXBhcmVkIHR1cGxlIHhtaW5zIGFnYWluc3QgYSBzaW5nbGUg WElEIGNob3NlbgphdCB0aGUgc3RhcnQgb2YgdmFjdXVtIChPbGRlc3RYbWluKS4gV2Ugbm93IHVz ZSBHbG9iYWxWaXNTdGF0ZSwgd2hpY2gKYWxzbyBlbmFibGVzIGZ1dHVyZSB3b3JrIHRvIHNldCB0 aGUgVk0gZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nLCBzaW5jZQpvcmRpbmFyeSBxdWVyaWVzIGhh dmUgYWNjZXNzIHRvIEdsb2JhbFZpc1N0YXRlIGJ1dCBub3QgT2xkZXN0WG1pbi4KClRoaXMgYWxz byBiZW5lZml0cyB2YWN1dW06IGluIHNvbWUgY2FzZXMsIEdsb2JhbFZpc1N0YXRlIG1heSBhZHZh bmNlCmR1cmluZyBhIHZhY3V1bSwgYWxsb3dpbmcgbW9yZSBwYWdlcyB0byBiZWNvbWUgY29uc2lk ZXJlZCBhbGwtdmlzaWJsZS4KQW5kLCBpbiB0aGUgZnV0dXJlLCB3ZSBjb3VsZCBlYXNpbHkgYWRk IGEgaGV1cmlzdGljIHRvIHVwZGF0ZQpHbG9iYWxWaXNTdGF0ZSBtb3JlIGZyZXF1ZW50bHkgZHVy aW5nIHZhY3V1bXMgb2YgbGFyZ2UgdGFibGVzLgoKT2xkZXN0WG1pbiBpcyBzdGlsbCB1c2VkIGZv ciBmcmVlemluZyBhbmQgYXMgYSBiYWNrc3RvcCB0byBlbnN1cmUgd2UKZG9uJ3QgZnJlZXplIGEg ZGVhZCB0dXBsZSB0aGF0IHdhc24ndCB5ZXQgcHJ1bmFibGUgYWNjb3JkaW5nIHRvCkdsb2JhbFZp c1N0YXRlIGluIHRoZSByYXJlIG9jY3VycmVuY2VzIHdoZXJlIEdsb2JhbFZpc1N0YXRlIG1vdmVz CmJhY2t3YXJkcy4KCkJlY2F1c2UgY29tcGFyaW5nIGEgdHJhbnNhY3Rpb24gSUQgYWdhaW5zdCBH bG9iYWxWaXNTdGF0ZSBpcyBtb3JlCmV4cGVuc2l2ZSB0aGFuIGNvbXBhcmluZyBhZ2FpbnN0IGEg c2luZ2xlIFhJRCwgd2UgZGVmZXIgdGhpcyBjaGVjayB1bnRpbAphZnRlciBzY2FubmluZyBhbGwg dHVwbGVzIG9uIHRoZSBwYWdlLiBUaGVyZWZvcmUsIHdlIHBlcmZvcm0gdGhlCkdsb2JhbFZpc1N0 YXRlIGNoZWNrIG9ubHkgb25jZSBwZXIgcGFnZS4gVGhpcyBpcyBzYWZlIGJlY2F1c2UKdmlzaWJp bGl0eV9jdXRvZmZfeGlkIHJlY29yZHMgdGhlIG5ld2VzdCBsaXZlIHhtaW4gb24gdGhlIHBhZ2U7 IGlmIGl0IGlzCmdsb2JhbGx5IHZpc2libGUsIHRoZW4gdGhlIGVudGlyZSBwYWdlIGlzIGFsbC12 aXNpYmxlLgoKVXNpbmcgR2xvYmFsVmlzU3RhdGUgbWVhbnMgb24tYWNjZXNzIHBydW5pbmcgY2Fu IGFsc28gbWFpbnRhaW4KdmlzaWJpbGl0eV9jdXRvZmZfeGlkLCB3aGljaCBpcyByZXF1aXJlZCB0 byBzZXQgdGhlIHZpc2liaWxpdHkgbWFwCm9uLWFjY2VzcyBpbiB0aGUgZnV0dXJlLgoKQXV0aG9y OiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1i eTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBM aSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJl c2hrZWtpcmlsbEBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxh dC9icWM0a2g1bWlkZm40NGduamlxZXozYmpxdjR6b2d5ZGd1dmRuNDQ2cml3NDVqY2YzeSU0MDRl ejY2aWw3ZWJ2ayNjNzU1ZWYxNTE1MDdhYmE1ODQ3MWZmYWNhNjA3ZTQ5MwotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMgfCAzMCArKysrKysrKysrLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICAgICB8IDUzICsrKysrKysrKy0t LS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICAgICB8IDYw ICsrKysrKysrKysrKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1 dW0uYyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyAg ICAgICAgIHwgMTkgKysrKy0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAg ICAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL3V0aWxzL3NuYXBtZ3IuaCAgICAgICAgICAgICAg ICAgfCAgNCArLQogNyBmaWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwgNTUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2li aWxpdHkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKaW5k ZXggZmM2NGY0MzQzY2UuLmM2NzhmNWEzYzhmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbV92aXNpYmlsaXR5LmMKQEAgLTExMzEsNiArMTEzMSwzMSBAQCBIZWFwVHVwbGVTYXRp c2ZpZXNWYWN1dW0oSGVhcFR1cGxlIGh0dXAsIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAly ZXR1cm4gcmVzOwogfQogCisvKgorICogV3JhcHBlciBhcm91bmQgR2xvYmFsVmlzVGVzdElzUmVt b3ZhYmxlWGlkKCkgZm9yIHVzZSB3aGVuIGV4YW1pbmluZyBsaXZlCisgKiB0dXBsZXMuIFJldHVy bnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gWElEIG1heSBiZSBjb25zaWRlcmVkIHJ1bm5pbmcgYnkgYXQg bGVhc3QKKyAqIG9uZSBzbmFwc2hvdC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGFsb25lIGlzIGlu c3VmZmljaWVudCB0byBkZXRlcm1pbmUgdHVwbGUgdmlzaWJpbGl0eTsgY2FsbGVycworICogbXVz dCBhbHNvIGNvbnNpZGVyIHRoZSBYSUQncyBjb21taXQgc3RhdHVzLiBJdHMgcHVycG9zZSBpcyBw dXJlbHkgc2VtYW50aWM6CisgKiB3aGVuIGFwcGxpZWQgdG8gbGl2ZSB0dXBsZXMsIEdsb2JhbFZp c1Rlc3RJc1JlbW92YWJsZVhpZCgpIGlzIGNoZWNraW5nCisgKiB3aGV0aGVyIHRoZSBpbnNlcnRp bmcgdHJhbnNhY3Rpb24gaXMgc3RpbGwgY29uc2lkZXJlZCBydW5uaW5nLCBub3Qgd2hldGhlcgor ICogdGhlIHR1cGxlIGlzIHJlbW92YWJsZS4gTGl2ZSB0dXBsZXMgYXJlLCBieSBkZWZpbml0aW9u LCBub3QgcmVtb3ZhYmxlLCBidXQKKyAqIHRoZSBzbmFwc2hvdCBjcml0ZXJpYSBmb3Ig4oCcdHJh bnNhY3Rpb24gc3RpbGwgcnVubmluZ+KAnSBhcmUgaWRlbnRpY2FsIHRvCisgKiB0aG9zZSB1c2Vk IGZvciByZW1vdmFsIFhJRHMuCisgKgorICogSWYgYWxsb3dfdXBkYXRlIGlzIGZhbHNlLCB0aGUg R2xvYmFsVmlzU3RhdGUgYm91bmRhcmllcyB3aWxsIG5vdCBiZSB1cGRhdGVkLgorICoKKyAqIFNl ZSB0aGUgY29tbWVudCBhYm92ZSBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVbRnVsbF1YaWQoKSBm b3IgZGV0YWlscyBvbiB0aGUKKyAqIHJlcXVpcmVkIHByZWNvbmRpdGlvbnMgZm9yIGNhbGxpbmcg dGhpcyBmdW5jdGlvbi4KKyAqLworYm9vbAorR2xvYmFsVmlzVGVzdFhpZENvbnNpZGVyZWRSdW5u aW5nKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQsCisJCQkJCQkJCSAg Ym9vbCBhbGxvd191cGRhdGUpCit7CisJcmV0dXJuICFHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVY aWQoc3RhdGUsIHhpZCwgYWxsb3dfdXBkYXRlKTsKK30KKwogLyoKICAqIFdvcmsgaG9yc2UgZm9y IEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bSBhbmQgc2ltaWxhciByb3V0aW5lcy4KICAqCkBAIC0x MzU0LDcgKzEzNzksNyBAQCBIZWFwVHVwbGVTYXRpc2ZpZXNOb25WYWN1dW1hYmxlKEhlYXBUdXBs ZSBodHVwLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAl7CiAJCUFzc2VydChUcmFuc2FjdGlvbklkSXNW YWxpZChkZWFkX2FmdGVyKSk7CiAKLQkJaWYgKEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChz bmFwc2hvdC0+dmlzdGVzdCwgZGVhZF9hZnRlcikpCisJCWlmIChHbG9iYWxWaXNUZXN0SXNSZW1v dmFibGVYaWQoc25hcHNob3QtPnZpc3Rlc3QsIGRlYWRfYWZ0ZXIsIHRydWUpKQogCQkJcmVzID0g SEVBUFRVUExFX0RFQUQ7CiAJfQogCWVsc2UKQEAgLTE0MjAsNyArMTQ0NSw4IEBAIEhlYXBUdXBs ZUlzU3VyZWx5RGVhZChIZWFwVHVwbGUgaHR1cCwgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QpCiAK IAkvKiBEZWxldGVyIGNvbW1pdHRlZCwgc28gdHVwbGUgaXMgZGVhZCBpZiB0aGUgWElEIGlzIG9s ZCBlbm91Z2guICovCiAJcmV0dXJuIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0 LAotCQkJCQkJCQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0UmF3WG1heCh0dXBsZSkpOworCQkJCQkJ CQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0UmF3WG1heCh0dXBsZSksCisJCQkJCQkJCQkgICB0cnVl KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggYjM4M2IwZmNh OGIuLjcxOGYzYTc4YzQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMTYw LDEwICsxNjAsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkgKiBhbGwtZnJvemVuIGJpdHMgaW4gdGhl IHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSBhZnRlcgogCSAqIHBydW5p bmcuCiAJICoKLQkgKiB2aXNpYmlsaXR5X2N1dG9mZl94aWQgaXMgdGhlIG5ld2VzdCB4bWluIG9m IGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLgotCSAqIFRoZSBjYWxsZXIgY2FuIHVzZSBpdCBhcyB0 aGUgY29uZmxpY3QgaG9yaXpvbiwgd2hlbiBzZXR0aW5nIHRoZSBWTQotCSAqIGJpdHMuICBJdCBp cyBvbmx5IHZhbGlkIGlmIHdlIGZyb3plIHNvbWUgdHVwbGVzLCBhbmQgc2V0X2FsbF9mcm96ZW4g aXMKLQkgKiB0cnVlLgorCSAqIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCBpcyB0aGUgbmV3ZXN0IHht aW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuIEl0CisJICogaXMgdXNlZCBhZnRlciBwcm9j ZXNzaW5nIGFsbCB0dXBsZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBwYWdlIGNhbiBiZQorCSAqIGNv bnNpZGVyZWQgYWxsLXZpc2libGUgKGlmIHRoZSBuZXdlc3QgeG1pbiBpcyBzdGlsbCBjb25zaWRl cmVkIHJ1bm5pbmcKKwkgKiBieSBzb21lIHNuYXBzaG90LCBpdCBjYW5ub3QgYmUpLiBJdCBpcyBh bHNvIHVzZWQgYnkgdGhlIGNhbGxlciBhcyB0aGUKKwkgKiBjb25mbGljdCBob3Jpem9uIHdoZW4g c2V0dGluZyB0aGUgVk0gYml0cywgdW5sZXNzIHdlIGZyb3plIGFsbCB0dXBsZXMKKwkgKiBvbiB0 aGUgcGFnZSAoaW4gd2hpY2ggY2FzZSB0aGUgY29uZmxpY3QgeGlkIHdhcyBhbHJlYWR5IGluY2x1 ZGVkIGluIHRoZQorCSAqIFdBTCByZWNvcmQpLgogCSAqCiAJICogTk9URTogc2V0X2FsbF92aXNp YmxlIGFuZCBzZXRfYWxsX2Zyb3plbiBpbml0aWFsbHkgZG9uJ3QgaW5jbHVkZQogCSAqIExQX0RF QUQgaXRlbXMuIFRoYXQncyBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6 ZSgpIHRvCkBAIC0yODEsNyArMjg0LDcgQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiBy ZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKIAkgKi8KIAl2aXN0ZXN0 ID0gR2xvYmFsVmlzVGVzdEZvcihyZWxhdGlvbik7CiAKLQlpZiAoIUdsb2JhbFZpc1Rlc3RJc1Jl bW92YWJsZVhpZCh2aXN0ZXN0LCBwcnVuZV94aWQpKQorCWlmICghR2xvYmFsVmlzVGVzdElzUmVt b3ZhYmxlWGlkKHZpc3Rlc3QsIHBydW5lX3hpZCwgdHJ1ZSkpCiAJCXJldHVybjsKIAogCS8qCkBA IC0xMDgxLDYgKzEwODQsMTggQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVl emVQYXJhbXMgKnBhcmFtcywKIAkgKi8KIAlwcnVuZV9mcmVlemVfcGxhbigmcHJzdGF0ZSwgb2Zm X2xvYyk7CiAKKwkvKgorCSAqIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHRoZSBsaXZlIHR1cGxlcyBv biB0aGUgcGFnZSwgaWYgdGhlIG5ld2VzdCB4bWluCisJICogYW1vbmdzdCB0aGVtIG1heSBiZSBj b25zaWRlcmVkIHJ1bm5pbmcgYnkgYW55IHNuYXBzaG90LCB0aGUgcGFnZSBjYW5ub3QKKwkgKiBi ZSBhbGwtdmlzaWJsZS4KKwkgKi8KKwlpZiAocHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUgJiYKKwkJ VHJhbnNhY3Rpb25JZElzTm9ybWFsKHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgor CQlHbG9iYWxWaXNUZXN0WGlkQ29uc2lkZXJlZFJ1bm5pbmcocHJzdGF0ZS52aXN0ZXN0LAorCQkJ CQkJCQkJCSAgcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJICB0cnVl KSkKKwkJcHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUgPSBwcnN0YXRlLnNldF9hbGxfZnJvemVuID0g ZmFsc2U7CisKIAkvKgogCSAqIElmIGNoZWNrc3VtcyBhcmUgZW5hYmxlZCwgY2FsbGluZyBoZWFw X3BydW5lX3NhdGlzZmllc192YWN1dW0oKSB3aGlsZQogCSAqIGNoZWNraW5nIHR1cGxlIHZpc2li aWxpdHkgaW5mb3JtYXRpb24gaW4gcHJ1bmVfZnJlZXplX3BsYW4oKSBtYXkgaGF2ZQpAQCAtMTI4 Myw3ICsxMjk4LDcgQEAgaGVhcF9wcnVuZV9zYXRpc2ZpZXNfdmFjdXVtKFBydW5lU3RhdGUgKnBy c3RhdGUsIEhlYXBUdXBsZSB0dXApCiAJICogaWYgdGhlIEdsb2JhbFZpc1N0YXRlIGhhcyBiZWVu IHVwZGF0ZWQgc2luY2UgdGhlIGJlZ2lubmluZyBvZiB2YWN1dW1pbmcKIAkgKiB0aGUgcmVsYXRp b24uCiAJICovCi0JaWYgKEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChwcnN0YXRlLT52aXN0 ZXN0LCBkZWFkX2FmdGVyKSkKKwlpZiAoR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKHByc3Rh dGUtPnZpc3Rlc3QsIGRlYWRfYWZ0ZXIsIHRydWUpKQogCQlyZXR1cm4gSEVBUFRVUExFX0RFQUQ7 CiAKIAlyZXR1cm4gcmVzOwpAQCAtMTc0OSwyOSArMTc2NCwxNSBAQCBoZWFwX3BydW5lX3JlY29y ZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBv ZmZudW0pCiAJCQkJfQogCiAJCQkJLyoKLQkJCQkgKiBUaGUgaW5zZXJ0ZXIgZGVmaW5pdGVseSBj b21taXR0ZWQuICBCdXQgaXMgaXQgb2xkIGVub3VnaAotCQkJCSAqIHRoYXQgZXZlcnlvbmUgc2Vl cyBpdCBhcyBjb21taXR0ZWQ/ICBBIEZyb3plblRyYW5zYWN0aW9uSWQKLQkJCQkgKiBpcyBzZWVu IGFzIGNvbW1pdHRlZCB0byBldmVyeW9uZS4gIE90aGVyd2lzZSwgd2UgY2hlY2sgaWYKLQkJCQkg KiB0aGVyZSBpcyBhIHNuYXBzaG90IHRoYXQgY29uc2lkZXJzIHRoaXMgeGlkIHRvIHN0aWxsIGJl Ci0JCQkJICogcnVubmluZywgYW5kIGlmIHNvLCB3ZSBkb24ndCBjb25zaWRlciB0aGUgcGFnZSBh bGwtdmlzaWJsZS4KKwkJCQkgKiBUaGUgaW5zZXJ0ZXIgZGVmaW5pdGVseSBjb21taXR0ZWQuIEJ1 dCB3ZSBkb24ndCBrbm93IGlmIGl0CisJCQkJICogaXMgb2xkIGVub3VnaCB0aGF0IGV2ZXJ5b25l IHNlZXMgaXQgYXMgY29tbWl0dGVkLiBMYXRlciwKKwkJCQkgKiBhZnRlciBwcm9jZXNzaW5nIGFs bCB0aGUgdHVwbGVzIG9uIHRoZSBwYWdlLCB3ZSdsbCBjaGVjayBpZgorCQkJCSAqIHRoZXJlIGlz IGFueSBzbmFwc2hvdCB0aGF0IHN0aWxsIGNvbnNpZGVycyB0aGUgbmV3ZXN0IHhpZAorCQkJCSAq IG9uIHRoZSBwYWdlIHRvIGJlIHJ1bm5pbmcuIElmIHNvLCB3ZSBkb24ndCBjb25zaWRlciB0aGUK KwkJCQkgKiBwYWdlIGFsbC12aXNpYmxlLgogCQkJCSAqLwogCQkJCXhtaW4gPSBIZWFwVHVwbGVI ZWFkZXJHZXRYbWluKGh0dXApOwogCi0JCQkJLyoKLQkJCQkgKiBGb3Igbm93IGFsd2F5cyB1c2Ug cHJzdGF0ZS0+Y3V0b2ZmcyBmb3IgdGhpcyB0ZXN0LCBiZWNhdXNlCi0JCQkJICogd2Ugb25seSB1 cGRhdGUgJ3NldF9hbGxfdmlzaWJsZScgYW5kICdzZXRfYWxsX2Zyb3plbicgd2hlbgotCQkJCSAq IGZyZWV6aW5nIGlzIHJlcXVlc3RlZC4gV2UgY291bGQgdXNlCi0JCQkJICogR2xvYmFsVmlzVGVz dElzUmVtb3ZhYmxlWGlkIGluc3RlYWQsIGlmIGEgbm9uLWZyZWV6aW5nCi0JCQkJICogY2FsbGVy IHdhbnRlZCB0byBzZXQgdGhlIFZNIGJpdC4KLQkJCQkgKi8KLQkJCQlBc3NlcnQocHJzdGF0ZS0+ Y3V0b2Zmcyk7Ci0JCQkJaWYgKCFUcmFuc2FjdGlvbklkUHJlY2VkZXMoeG1pbiwgcHJzdGF0ZS0+ Y3V0b2Zmcy0+T2xkZXN0WG1pbikpCi0JCQkJewotCQkJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2li bGUgPSBmYWxzZTsKLQkJCQkJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSBmYWxzZTsKLQkJCQkJ YnJlYWs7Ci0JCQkJfQotCiAJCQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KIAkJ CQlpZiAoVHJhbnNhY3Rpb25JZEZvbGxvd3MoeG1pbiwgcHJzdGF0ZS0+dmlzaWJpbGl0eV9jdXRv ZmZfeGlkKSAmJgogCQkJCQlUcmFuc2FjdGlvbklkSXNOb3JtYWwoeG1pbikpCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggMWE0NDYwNTBkODUuLjc5Nzk3M2Q3YmQwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC00NjgsMTMgKzQ2OCwxNCBAQCBzdGF0 aWMgdm9pZCBkZWFkX2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIAogI2lmZGVm IFVTRV9BU1NFUlRfQ0hFQ0tJTkcKIHN0YXRpYyBib29sIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJs ZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkJCQkgVHJhbnNhY3Rpb25JZCBPbGRl c3RYbWluLAorCQkJCQkJCQkJIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAogCQkJCQkJCQkJIGJv b2wgKmFsbF9mcm96ZW4sCiAJCQkJCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRv ZmZfeGlkLAogCQkJCQkJCQkJIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pOwogI2VuZGlm CiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVs LCBCdWZmZXIgYnVmLAotCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKKwkJ CQkJCQkJCQkgICBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKKwkJCQkJCQkJCQkgICBib29sIGFs bG93X3VwZGF0ZV92aXN0ZXN0LAogCQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNl dHMsCiAJCQkJCQkJCQkJICAgaW50IG5kZWFkb2Zmc2V0cywKIAkJCQkJCQkJCQkgICBib29sICph bGxfZnJvemVuLApAQCAtMjA4OSw3ICsyMDkwLDcgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3Rh dGUgKnZhY3JlbCwKIAkJQXNzZXJ0KHByZXN1bHQubHBkZWFkX2l0ZW1zID09IDApOwogCiAJCUFz c2VydChoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUodmFjcmVsLT5yZWwsIGJ1ZiwKLQkJCQkJCQkJ CQl2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbiwgJmRlYnVnX2FsbF9mcm96ZW4sCisJCQkJCQkJ CQkJdmFjcmVsLT52aXN0ZXN0LCAmZGVidWdfYWxsX2Zyb3plbiwKIAkJCQkJCQkJCQkmZGVidWdf Y3V0b2ZmLCAmdmFjcmVsLT5vZmZudW0pKTsKIAogCQlBc3NlcnQocHJlc3VsdC5zZXRfYWxsX2Zy b3plbiA9PSBkZWJ1Z19hbGxfZnJvemVuKTsKQEAgLTI4NTIsNyArMjg1Myw3IEBAIGxhenlfdmFj dXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZm ZXIgYnVmZmVyLAogCSAqIGRvbmUgb3V0c2lkZSB0aGUgY3JpdGljYWwgc2VjdGlvbi4KIAkgKi8K IAlpZiAoaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBidWZmZXIs Ci0JCQkJCQkJCQkgICB2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbiwKKwkJCQkJCQkJCSAgIHZh Y3JlbC0+dmlzdGVzdCwgdHJ1ZSwKIAkJCQkJCQkJCSAgIGRlYWRvZmZzZXRzLCBudW1fb2Zmc2V0 cywKIAkJCQkJCQkJCSAgICZhbGxfZnJvemVuLCAmdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAogCQkJ CQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtKSkKQEAgLTM2MTQsMTQgKzM2MTUsMTkgQEAgZGVhZF9p dGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCkKICAqLwogc3RhdGljIGJvb2wKIGhlYXBf cGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkgVHJh bnNhY3Rpb25JZCBPbGRlc3RYbWluLAorCQkJCQkJIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAog CQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCiAJCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0 eV9jdXRvZmZfeGlkLAogCQkJCQkJIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pCiB7Ci0K KwkvKgorCSAqIFBhc3MgYWxsb3dfdXBkYXRlX3Zpc3Rlc3QgYXMgZmFsc2Ugc28gdGhhdCB0aGUg R2xvYmFsVmlzU3RhdGUKKwkgKiBib3VuZGFyaWVzIHVzZWQgaGVyZSBtYXRjaCB0aG9zZSB1c2Vk IGJ5IHRoZSBwcnVuaW5nIGNvZGUgd2UgYXJlCisJICogY3Jvc3MtY2hlY2tpbmcuIEFsbG93aW5n IGFuIHVwZGF0ZSBjb3VsZCBtb3ZlIHRoZSBib3VuZGFyaWVzIGJldHdlZW4KKwkgKiB0aGUgdHdv IGNhbGxzLCBjYXVzaW5nIGEgc3B1cmlvdXMgYXNzZXJ0aW9uIGZhaWx1cmUuCisJICovCiAJcmV0 dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShyZWwsIGJ1ZiwKLQkJCQkJCQkJCQkg IE9sZGVzdFhtaW4sCisJCQkJCQkJCQkJICB2aXN0ZXN0LCBmYWxzZSwKIAkJCQkJCQkJCQkgIE5V TEwsIDAsCiAJCQkJCQkJCQkJICBhbGxfZnJvemVuLAogCQkJCQkJCQkJCSAgdmlzaWJpbGl0eV9j dXRvZmZfeGlkLApAQCAtMzY0Miw3ICszNjQ4LDkgQEAgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxl KFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGFnZSBp cyBhbGwtdmlzaWJsZSBvdGhlciB0aGFuIHRoZSBwcm92aWRlZAogICogZGVhZG9mZnNldHMgYW5k IGZhbHNlIG90aGVyd2lzZS4KICAqCi0gKiBPbGRlc3RYbWluIGlzIHVzZWQgdG8gZGV0ZXJtaW5l IHZpc2liaWxpdHkuCisgKiB2aXN0ZXN0IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHZpc2liaWxpdHku IElmIGFsbG93X3VwZGF0ZV92aXN0ZXN0IGlzIHRydWUsCisgKiB0aGUgYm91bmRhcmllcyBvZiB0 aGUgR2xvYmFsVmlzU3RhdGUgbWF5IGJlIHVwZGF0ZWQgd2hlbiBjaGVja2luZyB0aGUKKyAqIHZp c2liaWxpdHkgb2YgdGhlIG5ld2VzdCBsaXZlIFhJRCBvbiB0aGUgcGFnZS4KICAqCiAgKiBPdXRw dXQgcGFyYW1ldGVyczoKICAqCkBAIC0zNjYxLDcgKzM2NjksOCBAQCBoZWFwX3BhZ2VfaXNfYWxs X3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogICovCiBzdGF0aWMgYm9vbAogaGVh cF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKLQkJ CQkJCQkgICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkJICAgR2xvYmFsVmlzU3Rh dGUgKnZpc3Rlc3QsCisJCQkJCQkJICAgYm9vbCBhbGxvd191cGRhdGVfdmlzdGVzdCwKIAkJCQkJ CQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAogCQkJCQkJCSAgIGludCBuZGVhZG9mZnNl dHMsCiAJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKQEAgLTM3NDIsNyArMzc1MSw3IEBAIGhl YXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJ CQkJewogCQkJCQlUcmFuc2FjdGlvbklkIHhtaW47CiAKLQkJCQkJLyogQ2hlY2sgY29tbWVudHMg aW4gbGF6eV9zY2FuX3BydW5lLiAqLworCQkJCQkvKiBDaGVjayBoZWFwX3BydW5lX3JlY29yZF91 bmNoYW5nZWRfbHBfbm9ybWFsIGNvbW1lbnRzICovCiAJCQkJCWlmICghSGVhcFR1cGxlSGVhZGVy WG1pbkNvbW1pdHRlZCh0dXBsZS50X2RhdGEpKQogCQkJCQl7CiAJCQkJCQlhbGxfdmlzaWJsZSA9 IGZhbHNlOwpAQCAtMzc1MSwxNiArMzc2MCwxNyBAQCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zp c2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQl9CiAKIAkJCQkJLyoKLQkJCQkJ ICogVGhlIGluc2VydGVyIGRlZmluaXRlbHkgY29tbWl0dGVkLiBCdXQgaXMgaXQgb2xkIGVub3Vn aAotCQkJCQkgKiB0aGF0IGV2ZXJ5b25lIHNlZXMgaXQgYXMgY29tbWl0dGVkPworCQkJCQkgKiBU aGUgaW5zZXJ0ZXIgZGVmaW5pdGVseSBjb21taXR0ZWQuIEJ1dCB3ZSBkb24ndCBrbm93IGlmCisJ CQkJCSAqIGl0IGlzIG9sZCBlbm91Z2ggdGhhdCBldmVyeW9uZSBzZWVzIGl0IGFzIGNvbW1pdHRl ZC4KKwkJCQkJICogRG9uJ3QgY2hlY2sgdGhhdCBub3cuCisJCQkJCSAqCisJCQkJCSAqIElmIHdl IHNjYW4gYWxsIHR1cGxlcyB3aXRob3V0IGZpbmRpbmcgb25lIHRoYXQgcHJldmVudHMKKwkJCQkJ ICogdGhlIHBhZ2UgZnJvbSBiZWluZyBhbGwtdmlzaWJsZSwgd2UgdGhlbiBjaGVjayB3aGV0aGVy CisJCQkJCSAqIGFueSBzbmFwc2hvdCBzdGlsbCBjb25zaWRlcnMgdGhlIG5ld2VzdCBYSUQgb24g dGhlIHBhZ2UKKwkJCQkJICogdG8gYmUgcnVubmluZy4gSW4gdGhhdCBjYXNlLCB0aGUgcGFnZSBp cyBub3QgY29uc2lkZXJlZAorCQkJCQkgKiBhbGwtdmlzaWJsZS4KIAkJCQkJICovCiAJCQkJCXht aW4gPSBIZWFwVHVwbGVIZWFkZXJHZXRYbWluKHR1cGxlLnRfZGF0YSk7Ci0JCQkJCWlmICghVHJh bnNhY3Rpb25JZFByZWNlZGVzKHhtaW4sIE9sZGVzdFhtaW4pKQotCQkJCQl7Ci0JCQkJCQlhbGxf dmlzaWJsZSA9IGZhbHNlOwotCQkJCQkJKmFsbF9mcm96ZW4gPSBmYWxzZTsKLQkJCQkJCWJyZWFr OwotCQkJCQl9CiAKIAkJCQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KIAkJCQkJ aWYgKFRyYW5zYWN0aW9uSWRGb2xsb3dzKHhtaW4sICp2aXNpYmlsaXR5X2N1dG9mZl94aWQpICYm CkBAIC0zNzg5LDYgKzM3OTksMjAgQEAgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJl bGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJfQogCX0JCQkJCQkJLyogc2NhbiBhbG9uZyBwYWdl ICovCiAKKwkvKgorCSAqIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHRoZSBsaXZlIHR1cGxlcyBvbiB0 aGUgcGFnZSwgaWYgdGhlIG5ld2VzdCB4bWluCisJICogYW1vbmcgdGhlbSBtYXkgc3RpbGwgYmUg Y29uc2lkZXJlZCBydW5uaW5nIGJ5IGFueSBzbmFwc2hvdCwgdGhlIHBhZ2UKKwkgKiBjYW5ub3Qg YmUgYWxsLXZpc2libGUuCisJICovCisJaWYgKGFsbF92aXNpYmxlICYmCisJCVRyYW5zYWN0aW9u SWRJc05vcm1hbCgqdmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgorCQlHbG9iYWxWaXNUZXN0WGlk Q29uc2lkZXJlZFJ1bm5pbmcodmlzdGVzdCwgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJ CQkJCQkgIGFsbG93X3VwZGF0ZV92aXN0ZXN0KSkKKwl7CisJCWFsbF92aXNpYmxlID0gZmFsc2U7 CisJCSphbGxfZnJvemVuID0gZmFsc2U7CisJfQorCiAJLyogQ2xlYXIgdGhlIG9mZnNldCBpbmZv cm1hdGlvbiBvbmNlIHdlIGhhdmUgcHJvY2Vzc2VkIHRoZSBnaXZlbiBwYWdlLiAqLwogCSpsb2dn aW5nX29mZm51bSA9IEludmFsaWRPZmZzZXROdW1iZXI7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0 L3NwZ3ZhY3V1bS5jCmluZGV4IDZiNzExN2I1NmIyLi5jNDYxZjhkYzAyZCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCkBAIC01MzYsNyArNTM2LDcgQEAgdmFjdXVtUmVkaXJl Y3RBbmRQbGFjZWhvbGRlcihSZWxhdGlvbiBpbmRleCwgUmVsYXRpb24gaGVhcHJlbCwgQnVmZmVy IGJ1ZmZlcikKIAkJICovCiAJCWlmIChkdC0+dHVwc3RhdGUgPT0gU1BHSVNUX1JFRElSRUNUICYm CiAJCQkoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKGR0LT54aWQpIHx8Ci0JCQkgR2xvYmFsVmlzVGVz dElzUmVtb3ZhYmxlWGlkKHZpc3Rlc3QsIGR0LT54aWQpKSkKKwkJCSBHbG9iYWxWaXNUZXN0SXNS ZW1vdmFibGVYaWQodmlzdGVzdCwgZHQtPnhpZCwgdHJ1ZSkpKQogCQl7CiAJCQlkdC0+dHVwc3Rh dGUgPSBTUEdJU1RfUExBQ0VIT0xERVI7CiAJCQlBc3NlcnQob3BhcXVlLT5uUmVkaXJlY3Rpb24g PiAwKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKaW5kZXggMGY5MTM4OTdhY2MuLjI3 ZTVhZGVlYmZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXku YworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYwpAQCAtNDIyMywxMSAr NDIyMywxNyBAQCBHbG9iYWxWaXNVcGRhdGUodm9pZCkKICAqIFRoZSBzdGF0ZSBwYXNzZWQgbmVl ZHMgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkIGZvciB0aGUgcmVsYXRpb24gZnhpZCBpcwogICog ZnJvbSAoTlVMTCBpcyBhbHNvIE9LKSwgb3RoZXJ3aXNlIHRoZSByZXN1bHQgbWF5IG5vdCBiZSBj b3JyZWN0LgogICoKKyAqIElmIGFsbG93X3VwZGF0ZSBpcyBmYWxzZSwgdGhlIEdsb2JhbFZpc1N0 YXRlIGJvdW5kYXJpZXMgd2lsbCBub3QgYmUgdXBkYXRlZAorICogZXZlbiBpZiBpdCB3b3VsZCBv dGhlcndpc2UgYmUgYmVuZWZpY2lhbC4gVGhpcyBpcyB1c2VmdWwgZm9yIGNhbGxlcnMgdGhhdAor ICogZG8gbm90IHdhbnQgR2xvYmFsVmlzU3RhdGUgdG8gYWR2YW5jZSBhdCBhbGwsIGZvciBleGFt cGxlIGJlY2F1c2UgdGhleSBuZWVkCisgKiBhIGNvbnNlcnZhdGl2ZSBhbnN3ZXIgYmFzZWQgb24g dGhlIGN1cnJlbnQgYm91bmRhcmllcy4KKyAqCiAgKiBTZWUgY29tbWVudCBmb3IgR2xvYmFsVmlz U3RhdGUgZm9yIGRldGFpbHMuCiAgKi8KIGJvb2wKIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZUZ1 bGxYaWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLAotCQkJCQkJCQlGdWxsVHJhbnNhY3Rpb25JZCBm eGlkKQorCQkJCQkJCQlGdWxsVHJhbnNhY3Rpb25JZCBmeGlkLAorCQkJCQkJCQlib29sIGFsbG93 X3VwZGF0ZSkKIHsKIAkvKgogCSAqIElmIGZ4aWQgaXMgb2xkZXIgdGhhbiBtYXliZV9uZWVkZWQg Ym91bmQsIGl0IGRlZmluaXRlbHkgaXMgdmlzaWJsZSB0bwpAQCAtNDI0OCw3ICs0MjU0LDcgQEAg R2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVsbFhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsCiAJ ICogbWlnaHQgbm90IGV4aXN0IGEgc25hcHNob3QgY29uc2lkZXJpbmcgZnhpZCBydW5uaW5nLiBJ ZiBpdCBtYWtlcyBzZW5zZSwKIAkgKiB1cGRhdGUgYm91bmRhcmllcyBhbmQgcmVjaGVjay4KIAkg Ki8KLQlpZiAoR2xvYmFsVmlzVGVzdFNob3VsZFVwZGF0ZShzdGF0ZSkpCisJaWYgKGFsbG93X3Vw ZGF0ZSAmJiBHbG9iYWxWaXNUZXN0U2hvdWxkVXBkYXRlKHN0YXRlKSkKIAl7CiAJCUdsb2JhbFZp c1VwZGF0ZSgpOwogCkBAIC00MjY4LDcgKzQyNzQsOCBAQCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFi bGVGdWxsWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwKICAqIHJlbGZyb3plbnhpZCkuCiAgKi8K IGJvb2wKLUdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUs IFRyYW5zYWN0aW9uSWQgeGlkKQorR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKEdsb2JhbFZp c1N0YXRlICpzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQsCisJCQkJCQkJYm9vbCBhbGxvd191cGRh dGUpCiB7CiAJRnVsbFRyYW5zYWN0aW9uSWQgZnhpZDsKIApAQCAtNDI4Miw3ICs0Mjg5LDcgQEAg R2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgVHJhbnNh Y3Rpb25JZCB4aWQpCiAJICovCiAJZnhpZCA9IEZ1bGxYaWRSZWxhdGl2ZVRvKHN0YXRlLT5kZWZp bml0ZWx5X25lZWRlZCwgeGlkKTsKIAotCXJldHVybiBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVG dWxsWGlkKHN0YXRlLCBmeGlkKTsKKwlyZXR1cm4gR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVs bFhpZChzdGF0ZSwgZnhpZCwgYWxsb3dfdXBkYXRlKTsKIH0KIAogLyoKQEAgLTQyOTYsNyArNDMw Myw3IEBAIEdsb2JhbFZpc0NoZWNrUmVtb3ZhYmxlRnVsbFhpZChSZWxhdGlvbiByZWwsIEZ1bGxU cmFuc2FjdGlvbklkIGZ4aWQpCiAKIAlzdGF0ZSA9IEdsb2JhbFZpc1Rlc3RGb3IocmVsKTsKIAot CXJldHVybiBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKHN0YXRlLCBmeGlkKTsKKwly ZXR1cm4gR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVsbFhpZChzdGF0ZSwgZnhpZCwgdHJ1ZSk7 CiB9CiAKIC8qCkBAIC00MzEwLDcgKzQzMTcsNyBAQCBHbG9iYWxWaXNDaGVja1JlbW92YWJsZVhp ZChSZWxhdGlvbiByZWwsIFRyYW5zYWN0aW9uSWQgeGlkKQogCiAJc3RhdGUgPSBHbG9iYWxWaXNU ZXN0Rm9yKHJlbCk7CiAKLQlyZXR1cm4gR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKHN0YXRl LCB4aWQpOworCXJldHVybiBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoc3RhdGUsIHhpZCwg dHJ1ZSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5kZXggMzA1ZWNjMzFhOWUuLjg4MTVhY2Nj YWZiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2lu Y2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC00ODAsNiArNDgwLDggQEAgZXh0ZXJuIFRNX1Jlc3Vs dCBIZWFwVHVwbGVTYXRpc2ZpZXNVcGRhdGUoSGVhcFR1cGxlIGh0dXAsIENvbW1hbmRJZCBjdXJj aWQsCiAJCQkJCQkJCQkJICBCdWZmZXIgYnVmZmVyKTsKIGV4dGVybiBIVFNWX1Jlc3VsdCBIZWFw VHVwbGVTYXRpc2ZpZXNWYWN1dW0oSGVhcFR1cGxlIGh0dXAsIFRyYW5zYWN0aW9uSWQgT2xkZXN0 WG1pbiwKIAkJCQkJCQkJCQkJQnVmZmVyIGJ1ZmZlcik7CisKK2V4dGVybiBib29sIEdsb2JhbFZp c1Rlc3RYaWRDb25zaWRlcmVkUnVubmluZyhHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0 aW9uSWQgeGlkLCBib29sIGFsbG93X3VwZGF0ZSk7CiBleHRlcm4gSFRTVl9SZXN1bHQgSGVhcFR1 cGxlU2F0aXNmaWVzVmFjdXVtSG9yaXpvbihIZWFwVHVwbGUgaHR1cCwgQnVmZmVyIGJ1ZmZlciwK IAkJCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKmRlYWRfYWZ0ZXIpOwogZXh0ZXJuIHZvaWQg SGVhcFR1cGxlU2V0SGludEJpdHMoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLCBCdWZmZXIgYnVmZmVy LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5oIGIvc3JjL2luY2x1ZGUv dXRpbHMvc25hcG1nci5oCmluZGV4IDhjOTE5ZDI2NDBlLi5kYjkwMzcwOWM0OSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3Nu YXBtZ3IuaApAQCAtMTE1LDggKzExNSw4IEBAIGV4dGVybiBjaGFyICpFeHBvcnRTbmFwc2hvdChT bmFwc2hvdCBzbmFwc2hvdCk7CiAgKi8KIHR5cGVkZWYgc3RydWN0IEdsb2JhbFZpc1N0YXRlIEds b2JhbFZpc1N0YXRlOwogZXh0ZXJuIEdsb2JhbFZpc1N0YXRlICpHbG9iYWxWaXNUZXN0Rm9yKFJl bGF0aW9uIHJlbCk7Ci1leHRlcm4gYm9vbCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoR2xv YmFsVmlzU3RhdGUgKnN0YXRlLCBUcmFuc2FjdGlvbklkIHhpZCk7Ci1leHRlcm4gYm9vbCBHbG9i YWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgRnVsbFRy YW5zYWN0aW9uSWQgZnhpZCk7CitleHRlcm4gYm9vbCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVY aWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBUcmFuc2FjdGlvbklkIHhpZCwgYm9vbCBhbGxvd191 cGRhdGUpOworZXh0ZXJuIGJvb2wgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVsbFhpZChHbG9i YWxWaXNTdGF0ZSAqc3RhdGUsIEZ1bGxUcmFuc2FjdGlvbklkIGZ4aWQsIGJvb2wgYWxsb3dfdXBk YXRlKTsKIGV4dGVybiBib29sIEdsb2JhbFZpc0NoZWNrUmVtb3ZhYmxlWGlkKFJlbGF0aW9uIHJl bCwgVHJhbnNhY3Rpb25JZCB4aWQpOwogZXh0ZXJuIGJvb2wgR2xvYmFsVmlzQ2hlY2tSZW1vdmFi bGVGdWxsWGlkKFJlbGF0aW9uIHJlbCwgRnVsbFRyYW5zYWN0aW9uSWQgZnhpZCk7CiAKLS0gCjIu NDMuMAoK --0000000000002c12b8064da25839 Content-Type: text/x-patch; charset="US-ASCII"; name="v43-0002-Keep-newest-live-XID-up-to-date-even-if-page-not.patch" Content-Disposition: attachment; filename="v43-0002-Keep-newest-live-XID-up-to-date-even-if-page-not.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn26hh5y1 RnJvbSAyMDRhNjQ1ZjEwNmIzZTIxMmNhYzE3NzM0YjMxMzY3NWE2MjM2YmVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI4IEZlYiAyMDI2IDE2OjA2OjUxIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDMgMDIvMTBdIEtlZXAgbmV3ZXN0IGxpdmUgWElEIHVwLXRvLWRhdGUgZXZlbiBpZiBw YWdlIG5vdAogYWxsLXZpc2libGUKCkR1cmluZyBwcnVuaW5nLCB3ZSBrZWVwIHRyYWNrIG9mIHRo ZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUKcGFnZSB2aXNpYmxlIHRvIGFsbCBy dW5uaW5nIGFuZCBmdXR1cmUgdHJhbnNhY3Rpb25zIHNvIHRoYXQgd2UgY2FuIHVzZQppdCBsYXRl ciBhcyB0aGUgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhlIFZNIGlm IHRoZQpwYWdlIHR1cm5zIG91dCB0byBiZSBhbGwtdmlzaWJsZS4KClByZXZpb3VzbHksIHdlIHN0 b3BwZWQgdXBkYXRpbmcgdGhpcyB2YWx1ZSBvbmNlIHdlIGRldGVybWluZWQgdGhlIHBhZ2UKd2Fz IG5vdCBhbGwtdmlzaWJsZS4gSG93ZXZlciwgbWFpbnRhaW5pbmcgaXQgZXZlbiB3aGVuIHRoZSBw YWdlIGlzIG5vdAphbGwtdmlzaWJsZSBpcyBpbmV4cGVuc2l2ZSBhbmQgbWFrZXMgdGhlIHNuYXBz aG90IGNvbmZsaWN0IGhvcml6b24KY2FsY3VsYXRpb24gY2xlYXJlci4gVGhpcyBndWFyYW50ZWVz IGl0IHdvbid0IGNvbnRhaW4gYSBzdGFsZSB2YWx1ZS4KClNpbmNlIHdlJ2xsIGtlZXAgaXQgdXAg dG8gZGF0ZSBhbGwgdGhlIHRpbWUgbm93IGFueXdheSwgdGhlcmUncyBubwpyZWFzb24gbm90IHRv IG1haW50YWluIGFsbF92aXNpYmxlIGZvciBvbi1hY2Nlc3MgcHJ1bmluZy4gVGhpcyB3aWxsCmFs bG93IHVzIHRvIHNldCB0aGUgVk0gb24tYWNjZXNzIGluIHRoZSBmdXR1cmUuCgpBdXRob3I6IE1l bGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBB bmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxs aS5ldmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2Jx YzRraDVtaWRmbjQ0Z25qaXFlejNianF2NHpvZ3lkZ3V2ZG40NDZyaXc0NWpjZjN5JTQwNGV6NjZp bDdlYnZrCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgIHwgMTM3ICsr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jIHwgIDMwICsrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA5 NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDcxOGYz YTc4YzQ2Li5jZWJkNzg2MDNjYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAg LTEyOSw2ICsxMjksOSBAQCB0eXBlZGVmIHN0cnVjdAogCS8qIEJpdHMgaW4gdGhlIHZtYnVmZmVy IGZvciB0aGlzIGhlYXAgcGFnZSAqLwogCXVpbnQ4CQlvbGRfdm1iaXRzOwogCisJLyogVGhlIG5l d2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlICovCisJVHJhbnNhY3Rpb25JZCBu ZXdlc3RfbGl2ZV94aWQ7CisKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkgKiBJbmZvcm1hdGlvbiBhYm91dCB3aGF0IHdhcyBkb25l CiAJICoKQEAgLTE2MCwxNCArMTYzLDYgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkgKiBhbGwtZnJvemVu IGJpdHMgaW4gdGhlIHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSBhZnRl cgogCSAqIHBydW5pbmcuCiAJICoKLQkgKiB2aXNpYmlsaXR5X2N1dG9mZl94aWQgaXMgdGhlIG5l d2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLiBJdAotCSAqIGlzIHVzZWQgYWZ0 ZXIgcHJvY2Vzc2luZyBhbGwgdHVwbGVzIHRvIGRldGVybWluZSBpZiB0aGUgcGFnZSBjYW4gYmUK LQkgKiBjb25zaWRlcmVkIGFsbC12aXNpYmxlIChpZiB0aGUgbmV3ZXN0IHhtaW4gaXMgc3RpbGwg Y29uc2lkZXJlZCBydW5uaW5nCi0JICogYnkgc29tZSBzbmFwc2hvdCwgaXQgY2Fubm90IGJlKS4g SXQgaXMgYWxzbyB1c2VkIGJ5IHRoZSBjYWxsZXIgYXMgdGhlCi0JICogY29uZmxpY3QgaG9yaXpv biB3aGVuIHNldHRpbmcgdGhlIFZNIGJpdHMsIHVubGVzcyB3ZSBmcm96ZSBhbGwgdHVwbGVzCi0J ICogb24gdGhlIHBhZ2UgKGluIHdoaWNoIGNhc2UgdGhlIGNvbmZsaWN0IHhpZCB3YXMgYWxyZWFk eSBpbmNsdWRlZCBpbiB0aGUKLQkgKiBXQUwgcmVjb3JkKS4KLQkgKgogCSAqIE5PVEU6IHNldF9h bGxfdmlzaWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gaW5pdGlhbGx5IGRvbid0IGluY2x1ZGUKIAkg KiBMUF9ERUFEIGl0ZW1zLiBUaGF0J3MgY29udmVuaWVudCBmb3IgaGVhcF9wYWdlX3BydW5lX2Fu ZF9mcmVlemUoKSB0bwogCSAqIHVzZSB0aGVtIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGZyZWV6ZSB0 aGUgcGFnZSBvciBub3QuICBUaGUKQEAgLTE3Nyw3ICsxNzIsNiBAQCB0eXBlZGVmIHN0cnVjdAog CSAqLwogCWJvb2wJCXNldF9hbGxfdmlzaWJsZTsKIAlib29sCQlzZXRfYWxsX2Zyb3plbjsKLQlU cmFuc2FjdGlvbklkIHZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKIH0gUHJ1bmVTdGF0ZTsKIAogLyoK QEAgLTQ1OCw1MyArNDUyLDQyIEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6ZVBhcmFt cyAqcGFyYW1zLAogCXByc3RhdGUtPmRlYWRvZmZzZXRzID0gcHJlc3VsdC0+ZGVhZG9mZnNldHM7 CiAKIAkvKgotCSAqIFZhY3V1bSBtYXkgdXBkYXRlIHRoZSBWTSBhZnRlciB3ZSdyZSBkb25lLiAg V2UgY2FuIGtlZXAgdHJhY2sgb2YKLQkgKiB3aGV0aGVyIHRoZSBwYWdlIHdpbGwgYmUgYWxsLXZp c2libGUgYW5kIGFsbC1mcm96ZW4gYWZ0ZXIgcHJ1bmluZyBhbmQKLQkgKiBmcmVlemluZyB0byBo ZWxwIHRoZSBjYWxsZXIgdG8gZG8gdGhhdC4KLQkgKgotCSAqIEN1cnJlbnRseSwgb25seSBWQUNV VU0gc2V0cyB0aGUgVk0gYml0cy4gIFRvIHNhdmUgdGhlIGVmZm9ydCwgb25seSBkbwotCSAqIHRo ZSBib29ra2VlcGluZyBpZiB0aGUgY2FsbGVyIG5lZWRzIGl0LiAgQ3VycmVudGx5LCB0aGF0J3Mg dGllZCB0bwotCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUsIGJ1dCBpdCBjb3VsZCBiZSBhIHNl cGFyYXRlIGZsYWcgaWYgeW91IHdhbnRlZAotCSAqIHRvIHVwZGF0ZSB0aGUgVk0gYml0cyB3aXRo b3V0IGFsc28gZnJlZXppbmcgb3IgZnJlZXplIHdpdGhvdXQgYWxzbwotCSAqIHNldHRpbmcgdGhl IFZNIGJpdHMuCisJICogV2UgdHJhY2sgd2hldGhlciB0aGUgcGFnZSB3aWxsIGJlIGFsbC12aXNp YmxlL2FsbC1mcm96ZW4gYXQgdGhlIGVuZCBvZgorCSAqIHBydW5pbmcgYW5kIGZyZWV6aW5nLiBX aGlsZSBleGFtaW5pbmcgdHVwbGUgdmlzaWJpbGl0eSwgd2UnbGwgc2V0CisJICogc2V0X2FsbF92 aXNpYmxlIHRvIGZhbHNlIGlmIHRoZXJlIGFyZSB0dXBsZXMgb24gdGhlIHBhZ2Ugbm90IHZpc2li bGUgdG8KKwkgKiBhbGwgcnVubmluZyBhbmQgZnV0dXJlIHRyYW5zYWN0aW9ucy4gc2V0X2FsbF92 aXNpYmxlIGlzIGFsd2F5cworCSAqIG1haW50YWluZWQgYnV0IG9ubHkgVkFDVVVNIHdpbGwgc2V0 IHRoZSBWTSBpZiB0aGUgcGFnZSBlbmRzIHVwIGJlaW5nCisJICogYWxsLXZpc2libGUuCiAJICoK LQkgKiBJbiBhZGRpdGlvbiB0byB0ZWxsaW5nIHRoZSBjYWxsZXIgd2hldGhlciBpdCBjYW4gc2V0 IHRoZSBWTSBiaXQsIHdlCi0JICogYWxzbyB1c2UgJ3NldF9hbGxfdmlzaWJsZScgYW5kICdzZXRf YWxsX2Zyb3plbicgZm9yIG91ciBvd24KLQkgKiBkZWNpc2lvbi1tYWtpbmcuIElmIHRoZSB3aG9s ZSBwYWdlIHdvdWxkIGJlY29tZSBmcm96ZW4sIHdlIGNvbnNpZGVyCi0JICogb3Bwb3J0dW5pc3Rp Y2FsbHkgZnJlZXppbmcgdHVwbGVzLiAgV2Ugd2lsbCBub3QgYmUgYWJsZSB0byBmcmVlemUgdGhl Ci0JICogd2hvbGUgcGFnZSBpZiB0aGVyZSBhcmUgdHVwbGVzIHByZXNlbnQgdGhhdCBhcmUgbm90 IHZpc2libGUgdG8gZXZlcnlvbmUKLQkgKiBvciBpZiB0aGVyZSBhcmUgZGVhZCB0dXBsZXMgd2hp Y2ggYXJlIG5vdCB5ZXQgcmVtb3ZhYmxlLiAgSG93ZXZlciwgZGVhZAotCSAqIHR1cGxlcyB3aGlj aCB3aWxsIGJlIHJlbW92ZWQgYnkgdGhlIGVuZCBvZiB2YWN1dW1pbmcgc2hvdWxkIG5vdAotCSAq IHByZWNsdWRlIHVzIGZyb20gb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXppbmcuICBCZWNhdXNlIG9m IHRoYXQsIHdlIGRvCi0JICogbm90IGltbWVkaWF0ZWx5IGNsZWFyIHNldF9hbGxfdmlzaWJsZSBh bmQgc2V0X2FsbF9mcm96ZW4gd2hlbiB3ZSBzZWUKLQkgKiBMUF9ERUFEIGl0ZW1zLiAgV2UgZml4 IHRoYXQgYWZ0ZXIgc2Nhbm5pbmcgdGhlIGxpbmUgcG9pbnRlcnMuIFdlIG11c3QKLQkgKiBjb3Jy ZWN0IHNldF9hbGxfdmlzaWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gYmVmb3JlIHdlIHJldHVybiB0 aGVtIHRvIHRoZQotCSAqIGNhbGxlciwgc28gdGhhdCB0aGUgY2FsbGVyIGRvZXNuJ3Qgc2V0IHRo ZSBWTSBiaXRzIGluY29ycmVjdGx5LgorCSAqIFdlIGFsc28ga2VlcCB0cmFjayBvZiB0aGUgbmV3 ZXN0IGxpdmUgWElELCB3aGljaCBpcyB1c2VkIHRvIGNhbGN1bGF0ZQorCSAqIHRoZSBzbmFwc2hv dCBjb25mbGljdCBob3Jpem9uIGZvciBhIFdBTCByZWNvcmQgc2V0dGluZyB0aGUgVk0uCiAJICov Ci0JaWYgKHByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQotCXsKLQkJcHJzdGF0ZS0+c2V0X2FsbF92 aXNpYmxlID0gdHJ1ZTsKLQkJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSB0cnVlOwotCX0KLQll bHNlCi0JewotCQkvKgotCQkgKiBJbml0aWFsaXppbmcgdG8gZmFsc2UgYWxsb3dzIHNraXBwaW5n IHRoZSB3b3JrIHRvIHVwZGF0ZSB0aGVtIGluCi0JCSAqIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hh bmdlZF9scF9ub3JtYWwoKS4KLQkJICovCi0JCXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSA9IGZh bHNlOwotCQlwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOwotCX0KKwlwcnN0YXRlLT5z ZXRfYWxsX3Zpc2libGUgPSB0cnVlOworCXByc3RhdGUtPm5ld2VzdF9saXZlX3hpZCA9IEludmFs aWRUcmFuc2FjdGlvbklkOwogCiAJLyoKLQkgKiBUaGUgdmlzaWJpbGl0eSBjdXRvZmYgeGlkIGlz IHRoZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUKLQkgKiBwYWdlLiAgSW4gdGhl IGNvbW1vbiBjYXNlLCB0aGlzIHdpbGwgYmUgc2V0IGFzIHRoZSBjb25mbGljdCBob3Jpem9uIHRo ZQotCSAqIGNhbGxlciBjYW4gdXNlIGZvciB1cGRhdGluZyB0aGUgVk0uICBJZiwgYXQgdGhlIGVu ZCBvZiBmcmVlemluZyBhbmQKLQkgKiBwcnVuaW5nLCB0aGUgcGFnZSBpcyBhbGwtZnJvemVuLCB0 aGVyZSBpcyBubyBwb3NzaWJpbGl0eSB0aGF0IGFueQotCSAqIHJ1bm5pbmcgdHJhbnNhY3Rpb24g b24gdGhlIHN0YW5kYnkgZG9lcyBub3Qgc2VlIHR1cGxlcyBvbiB0aGUgcGFnZSBhcwotCSAqIGFs bC12aXNpYmxlLCBzbyB0aGUgY29uZmxpY3QgaG9yaXpvbiByZW1haW5zIEludmFsaWRUcmFuc2Fj dGlvbklkLgorCSAqIEN1cnJlbnRseSwgb25seSBWQUNVVU0gcGVyZm9ybXMgZnJlZXppbmcsIGJ1 dCBvdGhlciBjYWxsZXJzIG1heSBpbiB0aGUKKwkgKiBmdXR1cmUuIFdlIG11c3QgaW5pdGlhbGl6 ZSBzZXRfYWxsX2Zyb3plbiBiYXNlZCBvbiB3aGV0aGVyIG9yIG5vdCB0aGUKKwkgKiBjYWxsZXIg cGFzc2VkIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUsIGJlY2F1c2UgaWYgdGhleSBkaWQgbm90LCB3 ZSB3b24ndAorCSAqIGNhbGwgaGVhcF9wcmVwYXJlX2ZyZWV6ZV90dXBsZSgpIGZvciBlYWNoIHR1 cGxlLCBhbmQgc2V0X2FsbF9mcm96ZW4KKwkgKiB3aWxsIG5ldmVyIGJlIGNsZWFyZWQgZm9yIHR1 cGxlcyB0aGF0IG5lZWQgZnJlZXppbmcuCisJICoKKwkgKiBXaGVuIGZyZWV6aW5nIGlzIG5vdCBy ZXF1aXJlZCAobm8gWElEcy9NWElEcyBvbGRlciB0aGFuIHRoZSBmcmVlemUKKwkgKiBjdXRvZmYp LCB3ZSBtYXkgc3RpbGwgY2hvb3NlIHRvICJvcHBvcnR1bmlzdGljYWxseSIgZnJlZXplIGlmIGRv aW5nIHNvCisJICogd291bGQgbWFrZSB0aGUgcGFnZSBhbGwtZnJvemVuLgorCSAqCisJICogV2Ug d2lsbCBub3QgYmUgYWJsZSB0byBmcmVlemUgdGhlIHdob2xlIHBhZ2UgYXQgdGhlIGVuZCBvZiB2 YWN1dW0gaWYKKwkgKiB0aGVyZSBhcmUgdHVwbGVzIHByZXNlbnQgdGhhdCBhcmUgbm90IHZpc2li bGUgdG8gZXZlcnlvbmUgb3IgaWYgdGhlcmUKKwkgKiBhcmUgZGVhZCB0dXBsZXMgd2hpY2ggd2ls bCBub3QgYmUgcmVtb3ZhYmxlLiBIb3dldmVyLCBkZWFkIHR1cGxlcyB0aGF0CisJICogd2lsbCBi ZSByZW1vdmVkIGJ5IHRoZSBlbmQgb2YgdmFjdXVtIHNob3VsZCBub3QgcHJldmVudCB0aGlzCisJ ICogb3Bwb3J0dW5pc3RpYyBmcmVlemluZy4KKwkgKgorCSAqIFRoZXJlZm9yZSwgd2UgZG8gbm90 IGNsZWFyIHNldF9hbGxfdmlzaWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gd2hlbiB3ZQorCSAqIGVu Y291bnRlciBMUF9ERUFEIGl0ZW1zLiBJbnN0ZWFkLCB3ZSBjb3JyZWN0IHRoZW0gYWZ0ZXIgZGVj aWRpbmcKKwkgKiB3aGV0aGVyIHRvIGZyZWV6ZSwgYnV0IGJlZm9yZSB1cGRhdGluZyB0aGUgVk0s IHRvIGF2b2lkIHNldHRpbmcgdGhlIFZNCisJICogYml0cyBpbmNvcnJlY3RseS4KIAkgKi8KLQlw cnN0YXRlLT52aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwlw cnN0YXRlLT5zZXRfYWxsX2Zyb3plbiA9IHByc3RhdGUtPmF0dGVtcHRfZnJlZXplOwogfQogCiAv KgpAQCAtNzM0LDcgKzcxNyw2IEBAIGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShib29sIGRpZF90dXBs ZV9oaW50X2ZwaSwKIAlpZiAoIXByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQogCXsKIAkJQXNzZXJ0 KCFwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbiAmJiBwcnN0YXRlLT5uZnJvemVuID09IDApOwotCQlB c3NlcnQocHJzdGF0ZS0+bHBkZWFkX2l0ZW1zID09IDAgfHwgIXByc3RhdGUtPnNldF9hbGxfdmlz aWJsZSk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKQEAgLTEwMTIsOSArOTk0LDggQEAgcHJ1bmVf ZnJlZXplX2Zhc3RfcGF0aChQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZUZyZWV6ZVJlc3VsdCAq cHJlc3VsdCkKICAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIHBhc3NlZCwgd2Ug YWxzbyBzZXQKICAqIHByZXN1bHQtPnNldF9hbGxfdmlzaWJsZSBhbmQgcHJlc3VsdC0+c2V0X2Fs bF9mcm96ZW4gYWZ0ZXIgZGV0ZXJtaW5pbmcKICAqIHdoZXRoZXIgb3Igbm90IHRvIG9wcG9ydHVu aXN0aWNhbGx5IGZyZWV6ZSwgdG8gaW5kaWNhdGUgaWYgdGhlIFZNIGJpdHMgY2FuCi0gKiBiZSBz ZXQuICBUaGV5IGFyZSBhbHdheXMgc2V0IHRvIGZhbHNlIHdoZW4gdGhlIEhFQVBfUEFHRV9QUlVO RV9GUkVFWkUKLSAqIG9wdGlvbiBpcyBub3QgcGFzc2VkLCBiZWNhdXNlIGF0IHRoZSBtb21lbnQg b25seSBjYWxsZXJzIHRoYXQgYWxzbyBmcmVlemUKLSAqIG5lZWQgdGhhdCBpbmZvcm1hdGlvbi4K KyAqIGJlIHNldC4gJ2FsbC1mcm96ZW4nIGlzIGFsd2F5cyBzZXQgdG8gZmFsc2Ugd2hlbiB0aGUg SEVBUF9QQUdFX1BSVU5FX0ZSRUVaRQorICogb3B0aW9uIGlzIG5vdCBwYXNzZWQuCiAgKgogICog cHJlc3VsdCBjb250YWlucyBvdXRwdXQgcGFyYW1ldGVycyBuZWVkZWQgYnkgY2FsbGVycywgc3Vj aCBhcyB0aGUgbnVtYmVyIG9mCiAgKiB0dXBsZXMgcmVtb3ZlZCBhbmQgdGhlIG9mZnNldHMgb2Yg ZGVhZCBpdGVtcyBvbiB0aGUgcGFnZSBhZnRlciBwcnVuaW5nLgpAQCAtMTA5MCw5ICsxMDcxLDkg QEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywK IAkgKiBiZSBhbGwtdmlzaWJsZS4KIAkgKi8KIAlpZiAocHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUg JiYKLQkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlk KSAmJgorCQlUcmFuc2FjdGlvbklkSXNOb3JtYWwocHJzdGF0ZS5uZXdlc3RfbGl2ZV94aWQpICYm CiAJCUdsb2JhbFZpc1Rlc3RYaWRDb25zaWRlcmVkUnVubmluZyhwcnN0YXRlLnZpc3Rlc3QsCi0J CQkJCQkJCQkJICBwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCQkgIHBy c3RhdGUubmV3ZXN0X2xpdmVfeGlkLAogCQkJCQkJCQkJCSAgdHJ1ZSkpCiAJCXByc3RhdGUuc2V0 X2FsbF92aXNpYmxlID0gcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOwogCkBAIC0xMjQ0 LDcgKzEyMjUsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFt cyAqcGFyYW1zLAogCWlmIChwcmVzdWx0LT5zZXRfYWxsX2Zyb3plbikKIAkJcHJlc3VsdC0+dm1f Y29uZmxpY3RfaG9yaXpvbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCWVsc2UKLQkJcHJlc3Vs dC0+dm1fY29uZmxpY3RfaG9yaXpvbiA9IHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkOwor CQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS5uZXdlc3RfbGl2ZV94aWQ7 CiAKIAlwcmVzdWx0LT5scGRlYWRfaXRlbXMgPSBwcnN0YXRlLmxwZGVhZF9pdGVtczsKIAkvKiB0 aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJyYXkgd2FzIGFscmVhZHkgZmlsbGVkIGluICovCkBA IC0xNzA1LDYgKzE2ODYsNyBAQCBzdGF0aWMgdm9pZAogaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFu Z2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQog ewogCUhlYXBUdXBsZUhlYWRlciBodHVwOworCVRyYW5zYWN0aW9uSWQgeG1pbjsKIAlQYWdlCQlw YWdlID0gcHJzdGF0ZS0+cGFnZTsKIAogCUFzc2VydCghcHJzdGF0ZS0+cHJvY2Vzc2VkW29mZm51 bV0pOwpAQCAtMTc1MiwzMiArMTczNCwyNyBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRf bHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZudW0pCiAJCQkg KiBTZWUgU2V0SGludEJpdHMgZm9yIG1vcmUgaW5mby4gIENoZWNrIHRoYXQgdGhlIHR1cGxlIGlz IGhpbnRlZAogCQkJICogeG1pbi1jb21taXR0ZWQgYmVjYXVzZSBvZiB0aGF0LgogCQkJICovCi0J CQlpZiAocHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlKQorCQkJaWYgKCFIZWFwVHVwbGVIZWFkZXJY bWluQ29tbWl0dGVkKGh0dXApKQogCQkJewotCQkJCVRyYW5zYWN0aW9uSWQgeG1pbjsKKwkJCQlw cnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCQlwcnN0YXRlLT5zZXRfYWxsX2Zy b3plbiA9IGZhbHNlOworCQkJCWJyZWFrOworCQkJfQogCi0JCQkJaWYgKCFIZWFwVHVwbGVIZWFk ZXJYbWluQ29tbWl0dGVkKGh0dXApKQotCQkJCXsKLQkJCQkJcHJzdGF0ZS0+c2V0X2FsbF92aXNp YmxlID0gZmFsc2U7Ci0JCQkJCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7Ci0JCQkJ CWJyZWFrOwotCQkJCX0KKwkJCS8qCisJCQkgKiBUaGUgaW5zZXJ0ZXIgZGVmaW5pdGVseSBjb21t aXR0ZWQuIEJ1dCB3ZSBkb24ndCBrbm93IGlmIGl0IGlzCisJCQkgKiBvbGQgZW5vdWdoIHRoYXQg ZXZlcnlvbmUgc2VlcyBpdCBhcyBjb21taXR0ZWQuIExhdGVyLCBhZnRlcgorCQkJICogcHJvY2Vz c2luZyBhbGwgdGhlIHR1cGxlcyBvbiB0aGUgcGFnZSwgd2UnbGwgY2hlY2sgaWYgdGhlcmUgaXMK KwkJCSAqIGFueSBzbmFwc2hvdCB0aGF0IHN0aWxsIGNvbnNpZGVycyB0aGUgbmV3ZXN0IHhpZCBv biB0aGUgcGFnZSB0bworCQkJICogYmUgcnVubmluZy4gSWYgc28sIHdlIGRvbid0IGNvbnNpZGVy IHRoZSBwYWdlIGFsbC12aXNpYmxlLgorCQkJICovCisJCQl4bWluID0gSGVhcFR1cGxlSGVhZGVy R2V0WG1pbihodHVwKTsKIAotCQkJCS8qCi0JCQkJICogVGhlIGluc2VydGVyIGRlZmluaXRlbHkg Y29tbWl0dGVkLiBCdXQgd2UgZG9uJ3Qga25vdyBpZiBpdAotCQkJCSAqIGlzIG9sZCBlbm91Z2gg dGhhdCBldmVyeW9uZSBzZWVzIGl0IGFzIGNvbW1pdHRlZC4gTGF0ZXIsCi0JCQkJICogYWZ0ZXIg cHJvY2Vzc2luZyBhbGwgdGhlIHR1cGxlcyBvbiB0aGUgcGFnZSwgd2UnbGwgY2hlY2sgaWYKLQkJ CQkgKiB0aGVyZSBpcyBhbnkgc25hcHNob3QgdGhhdCBzdGlsbCBjb25zaWRlcnMgdGhlIG5ld2Vz dCB4aWQKLQkJCQkgKiBvbiB0aGUgcGFnZSB0byBiZSBydW5uaW5nLiBJZiBzbywgd2UgZG9uJ3Qg Y29uc2lkZXIgdGhlCi0JCQkJICogcGFnZSBhbGwtdmlzaWJsZS4KLQkJCQkgKi8KLQkJCQl4bWlu ID0gSGVhcFR1cGxlSGVhZGVyR2V0WG1pbihodHVwKTsKKwkJCS8qIFRyYWNrIG5ld2VzdCB4bWlu IG9uIHBhZ2UuICovCisJCQlpZiAoVHJhbnNhY3Rpb25JZEZvbGxvd3MoeG1pbiwgcHJzdGF0ZS0+ bmV3ZXN0X2xpdmVfeGlkKSAmJgorCQkJCVRyYW5zYWN0aW9uSWRJc05vcm1hbCh4bWluKSkKKwkJ CQlwcnN0YXRlLT5uZXdlc3RfbGl2ZV94aWQgPSB4bWluOwogCi0JCQkJLyogVHJhY2sgbmV3ZXN0 IHhtaW4gb24gcGFnZS4gKi8KLQkJCQlpZiAoVHJhbnNhY3Rpb25JZEZvbGxvd3MoeG1pbiwgcHJz dGF0ZS0+dmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgotCQkJCQlUcmFuc2FjdGlvbklkSXNOb3Jt YWwoeG1pbikpCi0JCQkJCXByc3RhdGUtPnZpc2liaWxpdHlfY3V0b2ZmX3hpZCA9IHhtaW47Ci0J CQl9CiAJCQlicmVhazsKIAogCQljYXNlIEhFQVBUVVBMRV9SRUNFTlRMWV9ERUFEOgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDc5Nzk3M2Q3YmQwLi42OTY5MTllMzVkZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNDcwLDcgKzQ3MCw3IEBAIHN0 YXRpYyB2b2lkIGRlYWRfaXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGlj IGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwK IAkJCQkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkJCSBib29sICphbGxf ZnJvemVuLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwK KwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICpuZXdlc3RfbGl2ZV94aWQsCiAJCQkJCQkJCQkgT2Zm c2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CiAjZW5kaWYKIHN0YXRpYyBib29sIGhlYXBfcGFn ZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCkBAIC00Nzks NyArNDc5LDcgQEAgc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJl bGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJCQkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRv ZmZzZXRzLAogCQkJCQkJCQkJCSAgIGludCBuZGVhZG9mZnNldHMsCiAJCQkJCQkJCQkJICAgYm9v bCAqYWxsX2Zyb3plbiwKLQkJCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1 dG9mZl94aWQsCisJCQkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCAqbmV3ZXN0X2xpdmVfeGlkLAog CQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pOwogc3RhdGljIHZvaWQg dXBkYXRlX3JlbHN0YXRzX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMg dm9pZCB2YWN1dW1fZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKTsKQEAgLTI4MjksNyArMjgyOSw3 IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVy IGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCVBhZ2UJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZl cik7CiAJT2Zmc2V0TnVtYmVyIHVudXNlZFtNYXhIZWFwVHVwbGVzUGVyUGFnZV07CiAJaW50CQkJ bnVudXNlZCA9IDA7Ci0JVHJhbnNhY3Rpb25JZCB2aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisJVHJh bnNhY3Rpb25JZCBuZXdlc3RfbGl2ZV94aWQ7CiAJVHJhbnNhY3Rpb25JZCBjb25mbGljdF94aWQg PSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAlib29sCQlhbGxfZnJvemVuOwogCUxWU2F2ZWRFcnJJ bmZvIHNhdmVkX2Vycl9pbmZvOwpAQCAtMjg1NSwxNCArMjg1NSwxNCBAQCBsYXp5X3ZhY3V1bV9o ZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1 ZmZlciwKIAlpZiAoaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBi dWZmZXIsCiAJCQkJCQkJCQkgICB2YWNyZWwtPnZpc3Rlc3QsIHRydWUsCiAJCQkJCQkJCQkgICBk ZWFkb2Zmc2V0cywgbnVtX29mZnNldHMsCi0JCQkJCQkJCQkgICAmYWxsX2Zyb3plbiwgJnZpc2li aWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCSAgICZhbGxfZnJvemVuLCAmbmV3ZXN0X2xpdmVf eGlkLAogCQkJCQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtKSkKIAl7CiAJCXZtZmxhZ3MgfD0gVklT SUJJTElUWU1BUF9BTExfVklTSUJMRTsKIAkJaWYgKGFsbF9mcm96ZW4pCiAJCXsKIAkJCXZtZmxh Z3MgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOwotCQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklk SXNWYWxpZCh2aXNpYmlsaXR5X2N1dG9mZl94aWQpKTsKKwkJCUFzc2VydCghVHJhbnNhY3Rpb25J ZElzVmFsaWQobmV3ZXN0X2xpdmVfeGlkKSk7CiAJCX0KIAogCQkvKgpAQCAtMjkwMyw3ICsyOTAz LDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1i ZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhibGtu bywKIAkJCQkJCQkJIHZtYnVmZmVyLCB2bWZsYWdzLAogCQkJCQkJCQkgdmFjcmVsLT5yZWwtPnJk X2xvY2F0b3IpOwotCQljb25mbGljdF94aWQgPSB2aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisJCWNv bmZsaWN0X3hpZCA9IG5ld2VzdF9saXZlX3hpZDsKIAl9CiAKIAkvKgpAQCAtMzYxNyw3ICszNjE3 LDcgQEAgc3RhdGljIGJvb2wKIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWws IEJ1ZmZlciBidWYsCiAJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJCQkJCQkgYm9v bCAqYWxsX2Zyb3plbiwKLQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94 aWQsCisJCQkJCQkgVHJhbnNhY3Rpb25JZCAqbmV3ZXN0X2xpdmVfeGlkLAogCQkJCQkJIE9mZnNl dE51bWJlciAqbG9nZ2luZ19vZmZudW0pCiB7CiAJLyoKQEAgLTM2MzAsNyArMzYzMCw3IEBAIGhl YXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkJ CQkJICB2aXN0ZXN0LCBmYWxzZSwKIAkJCQkJCQkJCQkgIE5VTEwsIDAsCiAJCQkJCQkJCQkJICBh bGxfZnJvemVuLAotCQkJCQkJCQkJCSAgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJCQkJCQkJ CSAgbmV3ZXN0X2xpdmVfeGlkLAogCQkJCQkJCQkJCSAgbG9nZ2luZ19vZmZudW0pOwogfQogI2Vu ZGlmCkBAIC0zNjU1LDcgKzM2NTUsNyBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRp b24gcmVsLCBCdWZmZXIgYnVmLAogICogT3V0cHV0IHBhcmFtZXRlcnM6CiAgKgogICogIC0gKmFs bF9mcm96ZW46IHRydWUgaWYgZXZlcnkgdHVwbGUgb24gdGhlIHBhZ2UgaXMgZnJvemVuCi0gKiAg LSAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkOiBuZXdlc3QgeG1pbjsgdmFsaWQgb25seSBpZiBwYWdl IGlzIGFsbC12aXNpYmxlCisgKiAgLSAqbmV3ZXN0X2xpdmVfeGlkOiBuZXdlc3QgeG1pbiBvZiBs aXZlIHR1cGxlcyBvbiB0aGUgcGFnZQogICogIC0gKmxvZ2dpbmdfb2ZmbnVtOiBPZmZzZXROdW1i ZXIgb2YgY3VycmVudCB0dXBsZSBiZWluZyBwcm9jZXNzZWQ7CiAgKiAgICAgdXNlZCBieSB2YWN1 dW0ncyBlcnJvciBjYWxsYmFjayBzeXN0ZW0uCiAgKgpAQCAtMzY3NCw3ICszNjc0LDcgQEAgaGVh cF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJ CQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAogCQkJCQkJCSAgIGludCBuZGVhZG9m ZnNldHMsCiAJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKLQkJCQkJCQkgICBUcmFuc2FjdGlv bklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCAqbmV3 ZXN0X2xpdmVfeGlkLAogCQkJCQkJCSAgIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pCiB7 CiAJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmKTsKQEAgLTM2ODQsNyArMzY4NCw3IEBA IGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYs CiAJYm9vbAkJYWxsX3Zpc2libGUgPSB0cnVlOwogCWludAkJCW1hdGNoZWRfZGVhZF9jb3VudCA9 IDA7CiAKLQkqdmlzaWJpbGl0eV9jdXRvZmZfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJ Km5ld2VzdF9saXZlX3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCSphbGxfZnJvemVuID0g dHJ1ZTsKIAogCUFzc2VydChuZGVhZG9mZnNldHMgPT0gMCB8fCBkZWFkb2Zmc2V0cyk7CkBAIC0z NzczLDkgKzM3NzMsOSBAQCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24g cmVsLCBCdWZmZXIgYnVmLAogCQkJCQl4bWluID0gSGVhcFR1cGxlSGVhZGVyR2V0WG1pbih0dXBs ZS50X2RhdGEpOwogCiAJCQkJCS8qIFRyYWNrIG5ld2VzdCB4bWluIG9uIHBhZ2UuICovCi0JCQkJ CWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAm JgorCQkJCQlpZiAoVHJhbnNhY3Rpb25JZEZvbGxvd3MoeG1pbiwgKm5ld2VzdF9saXZlX3hpZCkg JiYKIAkJCQkJCVRyYW5zYWN0aW9uSWRJc05vcm1hbCh4bWluKSkKLQkJCQkJCSp2aXNpYmlsaXR5 X2N1dG9mZl94aWQgPSB4bWluOworCQkJCQkJKm5ld2VzdF9saXZlX3hpZCA9IHhtaW47CiAKIAkJ CQkJLyogQ2hlY2sgd2hldGhlciB0aGlzIHR1cGxlIGlzIGFscmVhZHkgZnJvemVuIG9yIG5vdCAq LwogCQkJCQlpZiAoYWxsX3Zpc2libGUgJiYgKmFsbF9mcm96ZW4gJiYKQEAgLTM4MDUsOCArMzgw NSw4IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZl ciBidWYsCiAJICogY2Fubm90IGJlIGFsbC12aXNpYmxlLgogCSAqLwogCWlmIChhbGxfdmlzaWJs ZSAmJgotCQlUcmFuc2FjdGlvbklkSXNOb3JtYWwoKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkgJiYK LQkJR2xvYmFsVmlzVGVzdFhpZENvbnNpZGVyZWRSdW5uaW5nKHZpc3Rlc3QsICp2aXNpYmlsaXR5 X2N1dG9mZl94aWQsCisJCVRyYW5zYWN0aW9uSWRJc05vcm1hbCgqbmV3ZXN0X2xpdmVfeGlkKSAm JgorCQlHbG9iYWxWaXNUZXN0WGlkQ29uc2lkZXJlZFJ1bm5pbmcodmlzdGVzdCwgKm5ld2VzdF9s aXZlX3hpZCwKIAkJCQkJCQkJCQkgIGFsbG93X3VwZGF0ZV92aXN0ZXN0KSkKIAl7CiAJCWFsbF92 aXNpYmxlID0gZmFsc2U7Ci0tIAoyLjQzLjAKCg== --0000000000002c12b8064da25839 Content-Type: text/x-patch; charset="US-ASCII"; name="v43-0003-WAL-log-VM-setting-during-vacuum-phase-I-in-XLOG.patch" Content-Disposition: attachment; filename="v43-0003-WAL-log-VM-setting-during-vacuum-phase-I-in-XLOG.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn26hk9m2 RnJvbSA1OGIzMTg3YjFiYjU0NTg1YzViODFlMjYxNjc4ZmI0NDhhZDljZWEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIgRGVjIDIwMjUgMTU6MDc6NDIgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0MyAwMy8xMF0gV0FMIGxvZyBWTSBzZXR0aW5nIGR1cmluZyB2YWN1dW0gcGhhc2UgSSBp bgogWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTgoKVmFjdXVtIG5vIGxvbmdlciBlbWl0cyBh IHNlcGFyYXRlIFdBTCByZWNvcmQgZm9yIGVhY2ggcGFnZSBzZXQKYWxsLXZpc2libGUgb3IgYWxs LWZyb3plbiBkdXJpbmcgcGhhc2UgSS4gSW5zdGVhZCwgdmlzaWJpbGl0eSBtYXAKdXBkYXRlcyBh cmUgbm93IGluY2x1ZGVkIGluIHRoZSBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9TQ0FOIHJlY29y ZCB0aGF0CmlzIGFscmVhZHkgZW1pdHRlZCBmb3IgcHJ1bmluZyBhbmQgZnJlZXppbmcuCgpQcmV2 aW91c2x5LCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIGRldGVybWluZWQgd2hldGhlciBh IHBhZ2Ugd2FzCmFsbC12aXNpYmxlLCBidXQgdGhlIGNvcnJlc3BvbmRpbmcgVk0gYml0cyB3ZXJl IG9ubHkgc2V0IGxhdGVyIGluCmxhenlfc2Nhbl9wcnVuZSgpLiBOb3cgdGhlIFZNIGlzIHVwZGF0 ZWQgaW1tZWRpYXRlbHkgaW4KaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSwgYXQgdGhlIHNh bWUgdGltZSBhcyB0aGUgaGVhcAptb2RpZmljYXRpb25zLgoKRm9yIG5vdywgdGhpcyBjaGFuZ2Ug YXBwbGllcyBvbmx5IHRvIHZhY3V1bSBwaGFzZSBJLCBub3QgdG8gcHJ1bmluZwpwZXJmb3JtZWQg ZHVyaW5nIG5vcm1hbCBwYWdlIGFjY2Vzcy4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVs YW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJl c0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IFJvYmVydCBIYWFzIDxyb2JlcnRtaGFhc0BnbWFp bC5jb20+ClJldmlld2VkLWJ5OiBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29t PgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndRM2NN T014MURoM1ZNaHA4LVY3U09MeGRLOS1nJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgfCAyNDUgKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAxMTMgKystLS0tLS0t LS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgfCAgMzcgKystLQogMyBm aWxlcyBjaGFuZ2VkLCAyMDUgaW5zZXJ0aW9ucygrKSwgMTkwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggY2ViZDc4NjAzY2IuLmM0M2IxOTJiMTYzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtNzIsNiArNzIsMjEgQEAgdHlwZWRl ZiBzdHJ1Y3QKIAlPZmZzZXROdW1iZXIgbm93dW51c2VkW01heEhlYXBUdXBsZXNQZXJQYWdlXTsK IAlIZWFwVHVwbGVGcmVlemUgZnJvemVuW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAorCS8qCisJ ICogc2V0X2FsbF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zyb3plbiBpbmRpY2F0ZSBpZiB0aGUgYWxs LXZpc2libGUgYW5kCisJICogYWxsLWZyb3plbiBiaXRzIGluIHRoZSB2aXNpYmlsaXR5IG1hcCBj YW4gYmUgc2V0IGZvciB0aGlzIHBhZ2UgYWZ0ZXIKKwkgKiBwcnVuaW5nLgorCSAqCisJICogTk9U RTogc2V0X2FsbF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zyb3plbiBpbml0aWFsbHkgZG9uJ3QgaW5j bHVkZQorCSAqIExQX0RFQUQgaXRlbXMuIFRoYXQncyBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZSgpIHRvCisJICogdXNlIHRoZW0gdG8gZGVjaWRlIHdoZXRoZXIgdG8g b3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXplIHRoZSBwYWdlIG9yIG5vdC4KKwkgKiBUaGUgc2V0X2Fs bF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zyb3plbiB2YWx1ZXMgdWx0aW1hdGVseSB1c2VkIHRvIHNl dAorCSAqIHRoZSBWTSBhcmUgYWRqdXN0ZWQgdG8gaW5jbHVkZSBMUF9ERUFEIGl0ZW1zIGFmdGVy IHdlIGRldGVybWluZSB3aGV0aGVyCisJICogb3Igbm90IHRvIG9wcG9ydHVuaXN0aWNhbGx5IGZy ZWV6ZS4KKwkgKi8KKwlib29sCQlzZXRfYWxsX3Zpc2libGU7CisJYm9vbAkJc2V0X2FsbF9mcm96 ZW47CisKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIAkgKiBXb3JraW5nIHN0YXRlIGZvciBIT1QgY2hhaW4gcHJvY2Vzc2luZwogCSAq LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpA QCAtMTIyLDEyICsxMzcsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkvKgogCSAqIENhbGxlciBtdXN0 IHByb3ZpZGUgYSBwaW5uZWQgdm1idWZmZXIgY29ycmVzcG9uZGluZyB0byB0aGUgaGVhcCBibG9j awogCSAqIHBhc3NlZCB0byBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLiBXZSB3aWxsIGZp eCBhbnkgY29ycnVwdGlvbgotCSAqIGZvdW5kIGluIHRoZSBWTS4KKwkgKiBmb3VuZCBpbiB0aGUg Vk0gYW5kIHNldCB0aGUgVk0gaWYgdGhlIHBhZ2UgaXMgYWxsLXZpc2libGUvYWxsLWZyb3plbi4K IAkgKi8KIAlCdWZmZXIJCXZtYnVmZmVyOwogCi0JLyogQml0cyBpbiB0aGUgdm1idWZmZXIgZm9y IHRoaXMgaGVhcCBwYWdlICovCisJLyoKKwkgKiBUaGUgc3RhdGUgb2YgdGhlIFZNIGJpdHMgYXQg dGhlIGJlZ2lubmluZyBvZiBwcnVuaW5nIGFuZCB0aGUgc3RhdGUgdGhleQorCSAqIHdpbGwgYmUg aW4gYXQgdGhlIGVuZC4KKwkgKi8KIAl1aW50OAkJb2xkX3ZtYml0czsKKwl1aW50OAkJbmV3X3Zt Yml0czsKIAogCS8qIFRoZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZSAq LwogCVRyYW5zYWN0aW9uSWQgbmV3ZXN0X2xpdmVfeGlkOwpAQCAtMTU3LDIxICsxNzYsNiBAQCB0 eXBlZGVmIHN0cnVjdAogCSAqLwogCWludAkJCWxwZGVhZF9pdGVtczsJLyogbnVtYmVyIG9mIGl0 ZW1zIGluIHRoZSBhcnJheSAqLwogCU9mZnNldE51bWJlciAqZGVhZG9mZnNldHM7CS8qIHBvaW50 cyBkaXJlY3RseSB0byBwcmVzdWx0LT5kZWFkb2Zmc2V0cyAqLwotCi0JLyoKLQkgKiBzZXRfYWxs X3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIGluZGljYXRlIGlmIHRoZSBhbGwtdmlzaWJsZSBh bmQKLQkgKiBhbGwtZnJvemVuIGJpdHMgaW4gdGhlIHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQg Zm9yIHRoaXMgcGFnZSBhZnRlcgotCSAqIHBydW5pbmcuCi0JICoKLQkgKiBOT1RFOiBzZXRfYWxs X3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIGluaXRpYWxseSBkb24ndCBpbmNsdWRlCi0JICog TFBfREVBRCBpdGVtcy4gVGhhdCdzIGNvbnZlbmllbnQgZm9yIGhlYXBfcGFnZV9wcnVuZV9hbmRf ZnJlZXplKCkgdG8KLQkgKiB1c2UgdGhlbSB0byBkZWNpZGUgd2hldGhlciB0byBmcmVlemUgdGhl IHBhZ2Ugb3Igbm90LiAgVGhlCi0JICogc2V0X2FsbF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zyb3pl biB2YWx1ZXMgcmV0dXJuZWQgdG8gdGhlIGNhbGxlciBhcmUKLQkgKiBhZGp1c3RlZCB0byBpbmNs dWRlIExQX0RFQUQgaXRlbXMgYWZ0ZXIgd2UgZGV0ZXJtaW5lIHdoZXRoZXIgdG8KLQkgKiBvcHBv cnR1bmlzdGljYWxseSBmcmVlemUuCi0JICovCi0JYm9vbAkJc2V0X2FsbF92aXNpYmxlOwotCWJv b2wJCXNldF9hbGxfZnJvemVuOwogfSBQcnVuZVN0YXRlOwogCiAvKgpAQCAtMjI4LDYgKzIzMiw3 IEBAIHN0YXRpYyB2b2lkIHBhZ2VfdmVyaWZ5X3JlZGlyZWN0cyhQYWdlIHBhZ2UpOwogCiBzdGF0 aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoYm9vbCBkaWRfdHVwbGVfaGludF9mcGksIGJv b2wgZG9fcHJ1bmUsIGJvb2wgZG9faGludF9wcnVuZSwKIAkJCQkJCQkJICBQcnVuZVN0YXRlICpw cnN0YXRlKTsKK3N0YXRpYyBib29sIGhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRlICpw cnN0YXRlLCBQcnVuZVJlYXNvbiByZWFzb24pOwogCiAKIC8qCkBAIC0zOTUsNiArNDAwLDcgQEAg cHJ1bmVfZnJlZXplX3NldHVwKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAKIAlBc3NlcnQo QnVmZmVySXNWYWxpZChwYXJhbXMtPnZtYnVmZmVyKSk7CiAJcHJzdGF0ZS0+dm1idWZmZXIgPSBw YXJhbXMtPnZtYnVmZmVyOworCXByc3RhdGUtPm5ld192bWJpdHMgPSAwOwogCXByc3RhdGUtPm9s ZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocHJzdGF0ZS0+cmVsYXRpb24sCiAJ CQkJCQkJCQkJCQkgICBwcnN0YXRlLT5ibG9jaywKIAkJCQkJCQkJCQkJCSAgICZwcnN0YXRlLT52 bWJ1ZmZlcik7CkBAIC05MDYsNiArOTEyLDQyIEBAIGhlYXBfcGFnZV9maXhfdm1fY29ycnVwdGlv bihQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtLAogCX0KIH0KIAorLyoK KyAqIERlY2lkZSB3aGV0aGVyIHRvIHNldCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0cyAoYWxsLXZp c2libGUgYW5kIGFsbC1mcm96ZW4pCisgKiBmb3IgaGVhcF9ibGsgdXNpbmcgaW5mb3JtYXRpb24g ZnJvbSB0aGUgUHJ1bmVTdGF0ZSBhbmQgVk0uCisgKgorICogVGhpcyBmdW5jdGlvbiBkb2VzIG5v dCBhY3R1YWxseSBzZXQgdGhlIFZNIGJpdHMgb3IgcGFnZS1sZXZlbCB2aXNpYmlsaXR5CisgKiBo aW50LCBQRF9BTExfVklTSUJMRS4KKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgb25lIG9yIGJvdGgg Vk0gYml0cyBzaG91bGQgYmUgc2V0IGFuZCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBi b29sCitoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFz b24gcmVhc29uKQoreworCS8qCisJICogVGhvdWdoIG9uLWFjY2VzcyBwcnVuaW5nIG1haW50YWlu cyBwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUsIHdlIGRvbid0CisJICogc2V0IHRoZSBWTSBmb3Ig bm93LgorCSAqLworCWlmIChyZWFzb24gPT0gUFJVTkVfT05fQUNDRVNTKQorCQlyZXR1cm4gZmFs c2U7CisKKwlpZiAoIXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSkKKwkJcmV0dXJuIGZhbHNlOwor CisJcHJzdGF0ZS0+bmV3X3ZtYml0cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CisKKwlp ZiAocHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4pCisJCXByc3RhdGUtPm5ld192bWJpdHMgfD0gVklT SUJJTElUWU1BUF9BTExfRlJPWkVOOworCisJaWYgKHByc3RhdGUtPm5ld192bWJpdHMgPT0gcHJz dGF0ZS0+b2xkX3ZtYml0cykKKwl7CisJCXByc3RhdGUtPm5ld192bWJpdHMgPSAwOworCQlyZXR1 cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKIC8qCiAgKiBJZiB0aGUgcGFnZSBp cyBhbHJlYWR5IGFsbC1mcm96ZW4sIG9yIGFscmVhZHkgYWxsLXZpc2libGUgYW5kIGZyZWV6aW5n CiAgKiB3b24ndCBiZSBhdHRlbXB0ZWQsIHRoZXJlIGlzIG5vIHJlbWFpbmluZyB3b3JrIGFuZCB3 ZSBjYW4gdXNlIHRoZSBmYXN0IHBhdGgKQEAgLTkzOSw4ICs5ODEsNiBAQCBwcnVuZV9mcmVlemVf ZmFzdF9wYXRoKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0 KQogCS8qIFdlJ2xsIGZpbGwgaW4gcHJlc3VsdCBmb3IgdGhlIGNhbGxlciAqLwogCW1lbXNldChw cmVzdWx0LCAwLCBzaXplb2YoUHJ1bmVGcmVlemVSZXN1bHQpKTsKIAotCXByZXN1bHQtPm9sZF92 bWJpdHMgPSBwcnN0YXRlLT5vbGRfdm1iaXRzOwotCiAJLyogQ2xlYXIgYW55IHN0YWxlIHBydW5l IGhpbnQgKi8KIAlpZiAoVHJhbnNhY3Rpb25JZElzVmFsaWQoUGFnZUdldFBydW5lWGlkKHBhZ2Up KSkKIAl7CkBAIC05NzUsNyArMTAxNSw4IEBAIHBydW5lX2ZyZWV6ZV9mYXN0X3BhdGgoUHJ1bmVT dGF0ZSAqcHJzdGF0ZSwgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQpCiAKIC8qCiAgKiBQcnVu ZSBhbmQgcmVwYWlyIGZyYWdtZW50YXRpb24gYW5kIHBvdGVudGlhbGx5IGZyZWV6ZSB0dXBsZXMg b24gdGhlCi0gKiBzcGVjaWZpZWQgcGFnZS4KKyAqIHNwZWNpZmllZCBwYWdlLiBJZiB0aGUgcGFn ZSdzIHZpc2liaWxpdHkgc3RhdHVzIGhhcyBjaGFuZ2VkLCB1cGRhdGUgaXQgaW4KKyAqIHRoZSBW TS4KICAqCiAgKiBDYWxsZXIgbXVzdCBoYXZlIHBpbiBhbmQgYnVmZmVyIGNsZWFudXAgbG9jayBv biB0aGUgcGFnZS4gIE5vdGUgdGhhdCB3ZQogICogZG9uJ3QgdXBkYXRlIHRoZSBGU00gaW5mb3Jt YXRpb24gZm9yIHBhZ2Ugb24gY2FsbGVyJ3MgYmVoYWxmLiAgQ2FsbGVyIG1pZ2h0CkBAIC05OTAs MTIgKzEwMzEsMTAgQEAgcHJ1bmVfZnJlZXplX2Zhc3RfcGF0aChQcnVuZVN0YXRlICpwcnN0YXRl LCBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCkKICAqIHR1cGxlcyBpZiBpdCdzIHJlcXVpcmVk IGluIG9yZGVyIHRvIGFkdmFuY2UgcmVsZnJvemVueGlkIC8gcmVsbWlubXhpZCwgb3IKICAqIGlm IGl0J3MgY29uc2lkZXJlZCBhZHZhbnRhZ2VvdXMgZm9yIG92ZXJhbGwgc3lzdGVtIHBlcmZvcm1h bmNlIHRvIGRvIHNvCiAgKiBub3cuICBUaGUgJ3BhcmFtcy5jdXRvZmZzJywgJ3ByZXN1bHQnLCAn bmV3X3JlbGZyb3plbl94aWQnIGFuZAotICogJ25ld19yZWxtaW5fbXhpZCcgYXJndW1lbnRzIGFy ZSByZXF1aXJlZCB3aGVuIGZyZWV6aW5nLiAgV2hlbgotICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVa RSBvcHRpb24gaXMgcGFzc2VkLCB3ZSBhbHNvIHNldAotICogcHJlc3VsdC0+c2V0X2FsbF92aXNp YmxlIGFuZCBwcmVzdWx0LT5zZXRfYWxsX2Zyb3plbiBhZnRlciBkZXRlcm1pbmluZwotICogd2hl dGhlciBvciBub3QgdG8gb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXplLCB0byBpbmRpY2F0ZSBpZiB0 aGUgVk0gYml0cyBjYW4KLSAqIGJlIHNldC4gJ2FsbC1mcm96ZW4nIGlzIGFsd2F5cyBzZXQgdG8g ZmFsc2Ugd2hlbiB0aGUgSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRQotICogb3B0aW9uIGlzIG5vdCBw YXNzZWQuCisgKiAnbmV3X3JlbG1pbl9teGlkJyBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIHdoZW4g ZnJlZXppbmcuCisgKgorICogQSB2bWJ1ZmZlciBjb3JyZXNwb25kaW5nIHRvIHRoZSBoZWFwIHBh Z2UgaXMgYWxzbyBwYXNzZWQgYW5kIGlmIHRoZSBwYWdlIGlzCisgKiBmb3VuZCB0byBiZSBhbGwt dmlzaWJsZS9hbGwtZnJvemVuLCB3ZSB3aWxsIHNldCBpdCBpbiB0aGUgVk0uCiAgKgogICogcHJl c3VsdCBjb250YWlucyBvdXRwdXQgcGFyYW1ldGVycyBuZWVkZWQgYnkgY2FsbGVycywgc3VjaCBh cyB0aGUgbnVtYmVyIG9mCiAgKiB0dXBsZXMgcmVtb3ZlZCBhbmQgdGhlIG9mZnNldHMgb2YgZGVh ZCBpdGVtcyBvbiB0aGUgcGFnZSBhZnRlciBwcnVuaW5nLgpAQCAtMTAyMyw4ICsxMDYyLDEwIEBA IGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJ Ym9vbAkJZG9fZnJlZXplOwogCWJvb2wJCWRvX3BydW5lOwogCWJvb2wJCWRvX2hpbnRfcHJ1bmU7 CisJYm9vbAkJZG9fc2V0X3ZtOwogCWJvb2wJCWRpZF90dXBsZV9oaW50X2ZwaTsKIAlpbnQ2NAkJ ZnBpX2JlZm9yZSA9IHBnV2FsVXNhZ2Uud2FsX2ZwaTsKKwlUcmFuc2FjdGlvbklkIGNvbmZsaWN0 X3hpZDsKIAogCS8qIEluaXRpYWxpemUgcHJzdGF0ZSAqLwogCXBydW5lX2ZyZWV6ZV9zZXR1cChw YXJhbXMsCkBAIC0xMTIyLDYgKzExNjMsMzEgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUo UHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkJcHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUgPSBw cnN0YXRlLnNldF9hbGxfZnJvemVuID0gZmFsc2U7CiAKIAlBc3NlcnQoIXByc3RhdGUuc2V0X2Fs bF9mcm96ZW4gfHwgcHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUpOworCUFzc2VydCghcHJzdGF0ZS5z ZXRfYWxsX3Zpc2libGUgfHwgKHByc3RhdGUubHBkZWFkX2l0ZW1zID09IDApKTsKKworCWRvX3Nl dF92bSA9IGhlYXBfcGFnZV93aWxsX3NldF92bSgmcHJzdGF0ZSwgcGFyYW1zLT5yZWFzb24pOwor CisJLyoKKwkgKiBuZXdfdm1iaXRzIHNob3VsZCBiZSAwIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBv ciBub3QgdGhlIHBhZ2UgaXMKKwkgKiBhbGwtdmlzaWJsZSBpZiB3ZSBkbyBub3QgaW50ZW5kIHRv IHNldCB0aGUgVk0uCisJICovCisJQXNzZXJ0KGRvX3NldF92bSB8fCBwcnN0YXRlLm5ld192bWJp dHMgPT0gMCk7CisKKwkvKgorCSAqIFRoZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uIGZvciB0 aGUgd2hvbGUgcmVjb3JkIGlzIHRoZSBtb3N0CisJICogY29uc2VydmF0aXZlIChuZXdlc3QpIGhv cml6b24gcmVxdWlyZWQgYnkgYW55IGNoYW5nZSBpbiB0aGUgcmVjb3JkLgorCSAqLworCWNvbmZs aWN0X3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOworCWlmIChkb19zZXRfdm0pCisJCWNvbmZs aWN0X3hpZCA9IHByc3RhdGUubmV3ZXN0X2xpdmVfeGlkOworCWlmIChkb19mcmVlemUgJiYgVHJh bnNhY3Rpb25JZEZvbGxvd3MocHJzdGF0ZS5wYWdlZnJ6LkZyZWV6ZVBhZ2VDb25mbGljdFhpZCwg Y29uZmxpY3RfeGlkKSkKKwkJY29uZmxpY3RfeGlkID0gcHJzdGF0ZS5wYWdlZnJ6LkZyZWV6ZVBh Z2VDb25mbGljdFhpZDsKKwlpZiAoZG9fcHJ1bmUgJiYgVHJhbnNhY3Rpb25JZEZvbGxvd3MocHJz dGF0ZS5sYXRlc3RfeGlkX3JlbW92ZWQsIGNvbmZsaWN0X3hpZCkpCisJCWNvbmZsaWN0X3hpZCA9 IHByc3RhdGUubGF0ZXN0X3hpZF9yZW1vdmVkOworCisJLyogTG9jayB2bWJ1ZmZlciBiZWZvcmUg ZW50ZXJpbmcgYSBjcml0aWNhbCBzZWN0aW9uICovCisJaWYgKGRvX3NldF92bSkKKwkJTG9ja0J1 ZmZlcihwcnN0YXRlLnZtYnVmZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOwogCiAJLyogQW55 IGVycm9yIHdoaWxlIGFwcGx5aW5nIHRoZSBjaGFuZ2VzIGlzIGNyaXRpY2FsICovCiAJU1RBUlRf Q1JJVF9TRUNUSU9OKCk7CkBAIC0xMTQzLDE0ICsxMjA5LDE3IEBAIGhlYXBfcGFnZV9wcnVuZV9h bmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAKIAkJLyoKIAkJICogSWYgdGhh dCdzIGFsbCB3ZSBoYWQgdG8gZG8gdG8gdGhlIHBhZ2UsIHRoaXMgaXMgYSBub24tV0FMLWxvZ2dl ZAotCQkgKiBoaW50LiAgSWYgd2UgYXJlIGdvaW5nIHRvIGZyZWV6ZSBvciBwcnVuZSB0aGUgcGFn ZSwgd2Ugd2lsbCBtYXJrCi0JCSAqIHRoZSBidWZmZXIgZGlydHkgYmVsb3cuCisJCSAqIGhpbnQu ICBJZiB3ZSBhcmUgZ29pbmcgdG8gZnJlZXplIG9yIHBydW5lIHRoZSBwYWdlIG9yIHNldAorCQkg KiBQRF9BTExfVklTSUJMRSwgd2Ugd2lsbCBtYXJrIHRoZSBidWZmZXIgZGlydHkgYmVsb3cuCisJ CSAqCisJCSAqIFNldHRpbmcgUERfQUxMX1ZJU0lCTEUgaXMgZnVsbHkgV0FMLWxvZ2dlZCBiZWNh dXNlIGl0IGlzIGZvcmJpZGRlbgorCQkgKiBmb3IgdGhlIFZNIHRvIGJlIHNldCBhbmQgUERfQUxM X1ZJU0lCTEUgdG8gYmUgY2xlYXIuCiAJCSAqLwotCQlpZiAoIWRvX2ZyZWV6ZSAmJiAhZG9fcHJ1 bmUpCisJCWlmICghZG9fZnJlZXplICYmICFkb19wcnVuZSAmJiAhZG9fc2V0X3ZtKQogCQkJTWFy a0J1ZmZlckRpcnR5SGludChwcnN0YXRlLmJ1ZmZlciwgdHJ1ZSk7CiAJfQogCi0JaWYgKGRvX3By dW5lIHx8IGRvX2ZyZWV6ZSkKKwlpZiAoZG9fcHJ1bmUgfHwgZG9fZnJlZXplIHx8IGRvX3NldF92 bSkKIAl7CiAJCS8qIEFwcGx5IHRoZSBwbGFubmVkIGl0ZW0gY2hhbmdlcyBhbmQgcmVwYWlyIHBh Z2UgZnJhZ21lbnRhdGlvbi4gKi8KIAkJaWYgKGRvX3BydW5lKQpAQCAtMTE2NCw2ICsxMjMzLDI3 IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMs CiAJCWlmIChkb19mcmVlemUpCiAJCQloZWFwX2ZyZWV6ZV9wcmVwYXJlZF90dXBsZXMocHJzdGF0 ZS5idWZmZXIsIHByc3RhdGUuZnJvemVuLCBwcnN0YXRlLm5mcm96ZW4pOwogCisJCS8qIFNldCB0 aGUgdmlzaWJpbGl0eSBtYXAgYW5kIHBhZ2UgdmlzaWJpbGl0eSBoaW50ICovCisJCWlmIChkb19z ZXRfdm0pCisJCXsKKwkJCS8qCisJCQkgKiBXaGlsZSBpdCBpcyB2YWxpZCBmb3IgUERfQUxMX1ZJ U0lCTEUgdG8gYmUgc2V0IHdoZW4gdGhlCisJCQkgKiBjb3JyZXNwb25kaW5nIFZNIGJpdCBpcyBj bGVhciwgd2Ugc3Ryb25nbHkgcHJlZmVyIHRvIGtlZXAgdGhlbQorCQkJICogaW4gc3luYy4KKwkJ CSAqCisJCQkgKiBUaGUgaGVhcCBidWZmZXIgbXVzdCBiZSBtYXJrZWQgZGlydHkgYmVmb3JlIGFk ZGluZyBpdCB0byB0aGUKKwkJCSAqIFdBTCBjaGFpbiB3aGVuIHNldHRpbmcgdGhlIFZNLiBXZSBk b24ndCB3b3JyeSBhYm91dAorCQkJICogdW5uZWNlc3NhcmlseSBkaXJ0eWluZyB0aGUgaGVhcCBi dWZmZXIgaWYgUERfQUxMX1ZJU0lCTEUgaXMKKwkJCSAqIGFscmVhZHkgc2V0LCB0aG91Z2guIEl0 IGlzIGV4dHJlbWVseSByYXJlIHRvIGhhdmUgYSBjbGVhbiBoZWFwCisJCQkgKiBidWZmZXIgd2l0 aCBQRF9BTExfVklTSUJMRSBhbHJlYWR5IHNldCBhbmQgdGhlIFZNIGJpdHMgY2xlYXIsCisJCQkg KiBzbyB0aGVyZSBpcyBubyBwb2ludCBpbiBvcHRpbWl6aW5nIGl0LgorCQkJICovCisJCQlQYWdl U2V0QWxsVmlzaWJsZShwcnN0YXRlLnBhZ2UpOworCQkJUGFnZUNsZWFyUHJ1bmFibGUocHJzdGF0 ZS5wYWdlKTsKKwkJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhwcnN0YXRlLmJsb2NrLCBwcnN0 YXRlLnZtYnVmZmVyLCBwcnN0YXRlLm5ld192bWJpdHMsCisJCQkJCQkJCQkgcHJzdGF0ZS5yZWxh dGlvbi0+cmRfbG9jYXRvcik7CisJCX0KKwogCQlNYXJrQnVmZmVyRGlydHkocHJzdGF0ZS5idWZm ZXIpOwogCiAJCS8qCkBAIC0xMTcxLDI5ICsxMjYxLDEyIEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRf ZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCSAqLwogCQlpZiAoUmVsYXRpb25O ZWVkc1dBTChwcnN0YXRlLnJlbGF0aW9uKSkKIAkJewotCQkJLyoKLQkJCSAqIFRoZSBzbmFwc2hv dENvbmZsaWN0SG9yaXpvbiBmb3IgdGhlIHdob2xlIHJlY29yZCBzaG91bGQgYmUgdGhlCi0JCQkg KiBtb3N0IGNvbnNlcnZhdGl2ZSBvZiBhbGwgdGhlIGhvcml6b25zIGNhbGN1bGF0ZWQgZm9yIGFu eSBvZiB0aGUKLQkJCSAqIHBvc3NpYmxlIG1vZGlmaWNhdGlvbnMuIElmIHRoaXMgcmVjb3JkIHdp bGwgcHJ1bmUgdHVwbGVzLCBhbnkKLQkJCSAqIHF1ZXJpZXMgb24gdGhlIHN0YW5kYnkgb2xkZXIg dGhhbiB0aGUgbmV3ZXN0IHhpZCBvZiB0aGUgbW9zdAotCQkJICogcmVjZW50bHkgcmVtb3ZlZCB0 dXBsZSB0aGlzIHJlY29yZCB3aWxsIHBydW5lIHdpbGwgY29uZmxpY3QuIElmCi0JCQkgKiB0aGlz IHJlY29yZCB3aWxsIGZyZWV6ZSB0dXBsZXMsIGFueSBxdWVyaWVzIG9uIHRoZSBzdGFuZGJ5IHdp dGgKLQkJCSAqIHhpZHMgb2xkZXIgdGhhbiB0aGUgbmV3ZXN0IHR1cGxlIHRoaXMgcmVjb3JkIHdp bGwgZnJlZXplIHdpbGwKLQkJCSAqIGNvbmZsaWN0LgotCQkJICovCi0JCQlUcmFuc2FjdGlvbklk IGNvbmZsaWN0X3hpZDsKLQotCQkJaWYgKFRyYW5zYWN0aW9uSWRGb2xsb3dzKHByc3RhdGUucGFn ZWZyei5GcmVlemVQYWdlQ29uZmxpY3RYaWQsCi0JCQkJCQkJCQkgcHJzdGF0ZS5sYXRlc3RfeGlk X3JlbW92ZWQpKQotCQkJCWNvbmZsaWN0X3hpZCA9IHByc3RhdGUucGFnZWZyei5GcmVlemVQYWdl Q29uZmxpY3RYaWQ7Ci0JCQllbHNlCi0JCQkJY29uZmxpY3RfeGlkID0gcHJzdGF0ZS5sYXRlc3Rf eGlkX3JlbW92ZWQ7Ci0KIAkJCWxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUocHJzdGF0ZS5yZWxh dGlvbiwgcHJzdGF0ZS5idWZmZXIsCi0JCQkJCQkJCQkgIEludmFsaWRCdWZmZXIsCS8qIHZtYnVm ZmVyICovCi0JCQkJCQkJCQkgIDAsCS8qIHZtZmxhZ3MgKi8KKwkJCQkJCQkJCSAgZG9fc2V0X3Zt ID8gcHJzdGF0ZS52bWJ1ZmZlciA6IEludmFsaWRCdWZmZXIsCisJCQkJCQkJCQkgIGRvX3NldF92 bSA/IHByc3RhdGUubmV3X3ZtYml0cyA6IDAsCiAJCQkJCQkJCQkgIGNvbmZsaWN0X3hpZCwKLQkJ CQkJCQkJCSAgdHJ1ZSwgcGFyYW1zLT5yZWFzb24sCisJCQkJCQkJCQkgIHRydWUsIC8qIGNsZWFu dXAgbG9jayAqLworCQkJCQkJCQkJICBwYXJhbXMtPnJlYXNvbiwKIAkJCQkJCQkJCSAgcHJzdGF0 ZS5mcm96ZW4sIHByc3RhdGUubmZyb3plbiwKIAkJCQkJCQkJCSAgcHJzdGF0ZS5yZWRpcmVjdGVk LCBwcnN0YXRlLm5yZWRpcmVjdGVkLAogCQkJCQkJCQkJICBwcnN0YXRlLm5vd2RlYWQsIHByc3Rh dGUubmRlYWQsCkBAIC0xMjAzLDMzICsxMjc2LDcxIEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAKIAlFTkRfQ1JJVF9TRUNUSU9OKCk7CiAK KwlpZiAoZG9fc2V0X3ZtKQorCQlMb2NrQnVmZmVyKHByc3RhdGUudm1idWZmZXIsIEJVRkZFUl9M T0NLX1VOTE9DSyk7CisKKwkvKgorCSAqIER1cmluZyBpdHMgc2Vjb25kIHBhc3Mgb3ZlciB0aGUg aGVhcCwgVkFDVVVNIGNhbGxzCisJICogaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKCkg dG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBwYWdlIGlzCisJICogYWxsLXZpc2libGUgYW5kIGFsbC1m cm96ZW4uIFRoZSBsb2dpYyBoZXJlIGlzIHNpbWlsYXIuIEFmdGVyIGNvbXBsZXRpbmcKKwkgKiBw cnVuaW5nIGFuZCBmcmVlemluZywgdXNlIGFuIGFzc2VydGlvbiB0byB2ZXJpZnkgdGhhdCBvdXIg cmVzdWx0cworCSAqIHJlbWFpbiBjb25zaXN0ZW50IHdpdGggaGVhcF9wYWdlX3dvdWxkX2JlX2Fs bF92aXNpYmxlKCkuIEl0J3MgYWxzbyBhCisJICogdmFsdWFibGUgY3Jvc3MtY2hlY2sgb2YgdGhl IHBhZ2Ugc3RhdGUgYWZ0ZXIgcHJ1bmluZyBhbmQgZnJlZXppbmcuCisJICovCisjaWZkZWYgVVNF X0FTU0VSVF9DSEVDS0lORworCWlmIChwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSkKKwl7CisJCVRy YW5zYWN0aW9uSWQgZGVidWdfY3V0b2ZmOworCQlib29sCQlkZWJ1Z19hbGxfZnJvemVuOworCisJ CUFzc2VydChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKTsKKworCQlBc3NlcnQoaGVhcF9wYWdl X2lzX2FsbF92aXNpYmxlKHByc3RhdGUucmVsYXRpb24sIHByc3RhdGUuYnVmZmVyLAorCQkJCQkJ CQkJCXByc3RhdGUudmlzdGVzdCwKKwkJCQkJCQkJCQkmZGVidWdfYWxsX2Zyb3plbiwKKwkJCQkJ CQkJCQkmZGVidWdfY3V0b2ZmLCBvZmZfbG9jKSk7CisKKwkJQXNzZXJ0KCFUcmFuc2FjdGlvbklk SXNWYWxpZChkZWJ1Z19jdXRvZmYpIHx8CisJCQkgICBkZWJ1Z19jdXRvZmYgPT0gcHJzdGF0ZS5u ZXdlc3RfbGl2ZV94aWQpOworCisJCS8qCisJCSAqIEl0J3MgcG9zc2libGUgdGhlIHBhZ2UgaXMg Y29tcG9zZWQgZW50aXJlbHkgb2YgZnJvemVuIHR1cGxlcyBidXQgaXMKKwkJICogbm90IHNldCBh bGwtZnJvemVuIGluIHRoZSBWTSBhbmQgZGlkIG5vdCBwYXNzCisJCSAqIEhFQVBfUEFHRV9QUlVO RV9GUkVFWkUuIEluIHRoaXMgY2FzZSwgaXQncyBwb3NzaWJsZQorCQkgKiBoZWFwX3BhZ2VfaXNf YWxsX3Zpc2libGUoKSBmaW5kcyB0aGUgcGFnZSBjb21wbGV0ZWx5IGZyb3plbiwgZXZlbgorCQkg KiB0aG91Z2ggcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiBpcyBmYWxzZS4KKwkJICovCisJCUFzc2Vy dCghcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiB8fCBkZWJ1Z19hbGxfZnJvemVuKTsKKwl9CisjZW5k aWYKKwogCS8qIENvcHkgaW5mb3JtYXRpb24gYmFjayBmb3IgY2FsbGVyICovCiAJcHJlc3VsdC0+ bmRlbGV0ZWQgPSBwcnN0YXRlLm5kZWxldGVkOwogCXByZXN1bHQtPm5uZXdscGRlYWQgPSBwcnN0 YXRlLm5kZWFkOwogCXByZXN1bHQtPm5mcm96ZW4gPSBwcnN0YXRlLm5mcm96ZW47CiAJcHJlc3Vs dC0+bGl2ZV90dXBsZXMgPSBwcnN0YXRlLmxpdmVfdHVwbGVzOwogCXByZXN1bHQtPnJlY2VudGx5 X2RlYWRfdHVwbGVzID0gcHJzdGF0ZS5yZWNlbnRseV9kZWFkX3R1cGxlczsKLQlwcmVzdWx0LT5z ZXRfYWxsX3Zpc2libGUgPSBwcnN0YXRlLnNldF9hbGxfdmlzaWJsZTsKLQlwcmVzdWx0LT5zZXRf YWxsX2Zyb3plbiA9IHByc3RhdGUuc2V0X2FsbF9mcm96ZW47CiAJcHJlc3VsdC0+aGFzdHVwID0g cHJzdGF0ZS5oYXN0dXA7Ci0JcHJlc3VsdC0+b2xkX3ZtYml0cyA9IHByc3RhdGUub2xkX3ZtYml0 czsKLQotCS8qCi0JICogRm9yIGNhbGxlcnMgcGxhbm5pbmcgdG8gdXBkYXRlIHRoZSB2aXNpYmls aXR5IG1hcCwgdGhlIGNvbmZsaWN0IGhvcml6b24KLQkgKiBmb3IgdGhhdCByZWNvcmQgbXVzdCBi ZSB0aGUgbmV3ZXN0IHhtaW4gb24gdGhlIHBhZ2UuICBIb3dldmVyLCBpZiB0aGUKLQkgKiBwYWdl IGlzIGNvbXBsZXRlbHkgZnJvemVuLCB0aGVyZSBjYW4gYmUgbm8gY29uZmxpY3QgYW5kIHRoZQot CSAqIHZtX2NvbmZsaWN0X2hvcml6b24gc2hvdWxkIHJlbWFpbiBJbnZhbGlkVHJhbnNhY3Rpb25J ZC4gIFRoaXMgaW5jbHVkZXMKLQkgKiB0aGUgY2FzZSB0aGF0IHdlIGp1c3QgZnJvemUgYWxsIHRo ZSB0dXBsZXM7IHRoZSBwcnVuZS1mcmVlemUgcmVjb3JkCi0JICogaW5jbHVkZWQgdGhlIGNvbmZs aWN0IFhJRCBhbHJlYWR5IHNvIHRoZSBjYWxsZXIgZG9lc24ndCBuZWVkIGl0LgotCSAqLwotCWlm IChwcmVzdWx0LT5zZXRfYWxsX2Zyb3plbikKLQkJcHJlc3VsdC0+dm1fY29uZmxpY3RfaG9yaXpv biA9IEludmFsaWRUcmFuc2FjdGlvbklkOwotCWVsc2UKLQkJcHJlc3VsdC0+dm1fY29uZmxpY3Rf aG9yaXpvbiA9IHByc3RhdGUubmV3ZXN0X2xpdmVfeGlkOwogCiAJcHJlc3VsdC0+bHBkZWFkX2l0 ZW1zID0gcHJzdGF0ZS5scGRlYWRfaXRlbXM7CiAJLyogdGhlIHByZXN1bHQtPmRlYWRvZmZzZXRz IGFycmF5IHdhcyBhbHJlYWR5IGZpbGxlZCBpbiAqLwogCisJcHJlc3VsdC0+bmV3bHlfYWxsX3Zp c2libGUgPSBmYWxzZTsKKwlwcmVzdWx0LT5uZXdseV9hbGxfZnJvemVuID0gZmFsc2U7CisJcHJl c3VsdC0+bmV3bHlfYWxsX3Zpc2libGVfZnJvemVuID0gZmFsc2U7CisJaWYgKGRvX3NldF92bSkK Kwl7CisJCWlmICgocHJzdGF0ZS5vbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJM RSkgPT0gMCkKKwkJeworCQkJcHJlc3VsdC0+bmV3bHlfYWxsX3Zpc2libGUgPSB0cnVlOworCQkJ aWYgKHByc3RhdGUuc2V0X2FsbF9mcm96ZW4pCisJCQkJcHJlc3VsdC0+bmV3bHlfYWxsX3Zpc2li bGVfZnJvemVuID0gdHJ1ZTsKKwkJfQorCQllbHNlIGlmICgocHJzdGF0ZS5vbGRfdm1iaXRzICYg VklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSA9PSAwICYmCisJCQkJIHByc3RhdGUuc2V0X2FsbF9m cm96ZW4pCisJCQlwcmVzdWx0LT5uZXdseV9hbGxfZnJvemVuID0gdHJ1ZTsKKwl9CisKIAlpZiAo cHJzdGF0ZS5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCWlmIChwcmVzdWx0LT5uZnJvemVuID4gMCkK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA2OTY5MTllMzVkZC4uMjNkZWFi ZDhjMDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTQ2NiwxMyArNDY2 LDYgQEAgc3RhdGljIHZvaWQgZGVhZF9pdGVtc19hZGQoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9j a051bWJlciBibGtubywgT2Zmc2V0TnVtYmVyICoKIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfcmVz ZXQoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfY2xlYW51cChM VlJlbFN0YXRlICp2YWNyZWwpOwogCi0jaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwotc3RhdGlj IGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwK LQkJCQkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKLQkJCQkJCQkJCSBib29sICphbGxf ZnJvemVuLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKm5ld2VzdF9saXZlX3hpZCwKLQkJCQkJ CQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKLSNlbmRpZgogc3RhdGljIGJvb2wg aGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwK IAkJCQkJCQkJCQkgICBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkJCQkgICBib29s IGFsbG93X3VwZGF0ZV92aXN0ZXN0LApAQCAtMjAyMiw4ICsyMDE1LDYgQEAgbGF6eV9zY2FuX3By dW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkJLnZpc3Rlc3QgPSB2YWNyZWwtPnZpc3Rlc3QsCiAJ CS5jdXRvZmZzID0gJnZhY3JlbC0+Y3V0b2ZmcywKIAl9OwotCXVpbnQ4CQlvbGRfdm1iaXRzID0g MDsKLQl1aW50OAkJbmV3X3ZtYml0cyA9IDA7CiAKIAlBc3NlcnQoQnVmZmVyR2V0QmxvY2tOdW1i ZXIoYnVmKSA9PSBibGtubyk7CiAKQEAgLTIwNzQsMzIgKzIwNjUsNiBAQCBsYXp5X3NjYW5fcHJ1 bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQl2YWNyZWwtPm5ld19mcm96ZW5fdHVwbGVfcGFnZXMr KzsKIAl9CiAKLQkvKgotCSAqIFZBQ1VVTSB3aWxsIGNhbGwgaGVhcF9wYWdlX2lzX2FsbF92aXNp YmxlKCkgZHVyaW5nIHRoZSBzZWNvbmQgcGFzcyBvdmVyCi0JICogdGhlIGhlYXAgdG8gZGV0ZXJt aW5lIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIGZvciB0aGUgcGFnZSAtLSB0aGlzCi0JICog aXMgYSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIHRoZSBsb2dpYyBmcm9tIHRoaXMgZnVuY3Rpb24u ICBOb3cgdGhhdAotCSAqIHdlJ3ZlIGZpbmlzaGVkIHBydW5pbmcgYW5kIGZyZWV6aW5nLCBtYWtl IHN1cmUgdGhhdCB3ZSdyZSBpbiB0b3RhbAotCSAqIGFncmVlbWVudCB3aXRoIGhlYXBfcGFnZV9p c19hbGxfdmlzaWJsZSgpIHVzaW5nIGFuIGFzc2VydGlvbi4KLQkgKi8KLSNpZmRlZiBVU0VfQVNT RVJUX0NIRUNLSU5HCi0JaWYgKHByZXN1bHQuc2V0X2FsbF92aXNpYmxlKQotCXsKLQkJVHJhbnNh Y3Rpb25JZCBkZWJ1Z19jdXRvZmY7Ci0JCWJvb2wJCWRlYnVnX2FsbF9mcm96ZW47Ci0KLQkJQXNz ZXJ0KHByZXN1bHQubHBkZWFkX2l0ZW1zID09IDApOwotCi0JCUFzc2VydChoZWFwX3BhZ2VfaXNf YWxsX3Zpc2libGUodmFjcmVsLT5yZWwsIGJ1ZiwKLQkJCQkJCQkJCQl2YWNyZWwtPnZpc3Rlc3Qs ICZkZWJ1Z19hbGxfZnJvemVuLAotCQkJCQkJCQkJCSZkZWJ1Z19jdXRvZmYsICZ2YWNyZWwtPm9m Zm51bSkpOwotCi0JCUFzc2VydChwcmVzdWx0LnNldF9hbGxfZnJvemVuID09IGRlYnVnX2FsbF9m cm96ZW4pOwotCi0JCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQoZGVidWdfY3V0b2ZmKSB8 fAotCQkJICAgZGVidWdfY3V0b2ZmID09IHByZXN1bHQudm1fY29uZmxpY3RfaG9yaXpvbik7Ci0J fQotI2VuZGlmCi0KIAkvKgogCSAqIE5vdyBzYXZlIGRldGFpbHMgb2YgdGhlIExQX0RFQUQgaXRl bXMgZnJvbSB0aGUgcGFnZSBpbiB2YWNyZWwKIAkgKi8KQEAgLTIxMjAsNiArMjA4NSwxNyBAQCBs YXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCX0KIAogCS8qIEZpbmFsbHksIGFk ZCBwYWdlLWxvY2FsIGNvdW50cyB0byB3aG9sZS1WQUNVVU0gY291bnRzICovCisJaWYgKHByZXN1 bHQubmV3bHlfYWxsX3Zpc2libGUpCisJCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX3BhZ2VzKys7 CisJaWYgKHByZXN1bHQubmV3bHlfYWxsX3Zpc2libGVfZnJvemVuKQorCQl2YWNyZWwtPm5ld19h bGxfdmlzaWJsZV9hbGxfZnJvemVuX3BhZ2VzKys7CisJaWYgKHByZXN1bHQubmV3bHlfYWxsX2Zy b3plbikKKwkJdmFjcmVsLT5uZXdfYWxsX2Zyb3plbl9wYWdlcysrOworCisJLyogQ2FwdHVyZSBp ZiB0aGUgcGFnZSB3YXMgbmV3bHkgc2V0IGZyb3plbiAqLworCSp2bV9wYWdlX2Zyb3plbiA9IHBy ZXN1bHQubmV3bHlfYWxsX3Zpc2libGVfZnJvemVuIHx8CisJCXByZXN1bHQubmV3bHlfYWxsX2Zy b3plbjsKKwogCXZhY3JlbC0+dHVwbGVzX2RlbGV0ZWQgKz0gcHJlc3VsdC5uZGVsZXRlZDsKIAl2 YWNyZWwtPnR1cGxlc19mcm96ZW4gKz0gcHJlc3VsdC5uZnJvemVuOwogCXZhY3JlbC0+bHBkZWFk X2l0ZW1zICs9IHByZXN1bHQubHBkZWFkX2l0ZW1zOwpAQCAtMjEzMyw3MSArMjEwOSw2IEBAIGxh enlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJLyogRGlkIHdlIGZpbmQgTFBfREVB RCBpdGVtcz8gKi8KIAkqaGFzX2xwZGVhZF9pdGVtcyA9IChwcmVzdWx0LmxwZGVhZF9pdGVtcyA+ IDApOwogCi0JQXNzZXJ0KCFwcmVzdWx0LnNldF9hbGxfdmlzaWJsZSB8fCAhKCpoYXNfbHBkZWFk X2l0ZW1zKSk7Ci0JQXNzZXJ0KCFwcmVzdWx0LnNldF9hbGxfZnJvemVuIHx8IHByZXN1bHQuc2V0 X2FsbF92aXNpYmxlKTsKLQotCWlmICghcHJlc3VsdC5zZXRfYWxsX3Zpc2libGUpCi0JCXJldHVy biBwcmVzdWx0Lm5kZWxldGVkOwotCi0JLyogU2V0IHRoZSB2aXNpYmlsaXR5IG1hcCBhbmQgcGFn ZSB2aXNpYmlsaXR5IGhpbnQgKi8KLQlvbGRfdm1iaXRzID0gcHJlc3VsdC5vbGRfdm1iaXRzOwot CW5ld192bWJpdHMgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwotCWlmIChwcmVzdWx0LnNl dF9hbGxfZnJvemVuKQotCQluZXdfdm1iaXRzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsK LQotCS8qIE5vdGhpbmcgdG8gZG8gKi8KLQlpZiAob2xkX3ZtYml0cyA9PSBuZXdfdm1iaXRzKQot CQlyZXR1cm4gcHJlc3VsdC5uZGVsZXRlZDsKLQotCS8qCi0JICogSXQgc2hvdWxkIG5ldmVyIGJl IHRoZSBjYXNlIHRoYXQgdGhlIHZpc2liaWxpdHkgbWFwIHBhZ2UgaXMgc2V0IHdoaWxlCi0JICog dGhlIHBhZ2UtbGV2ZWwgYml0IGlzIGNsZWFyIChhbmQgaWYgc28sIHdlIGNsZWFyZWQgaXQgYWJv dmUpLCBidXQgdGhlCi0JICogcmV2ZXJzZSBpcyBhbGxvd2VkIChpZiBjaGVja3N1bXMgYXJlIG5v dCBlbmFibGVkKS4gUmVnYXJkbGVzcywgc2V0IGJvdGgKLQkgKiBiaXRzIHNvIHRoYXQgd2UgZ2V0 IGJhY2sgaW4gc3luYy4KLQkgKgotCSAqIFRoZSBoZWFwIGJ1ZmZlciBtdXN0IGJlIG1hcmtlZCBk aXJ0eSBiZWZvcmUgYWRkaW5nIGl0IHRvIHRoZSBXQUwgY2hhaW4KLQkgKiB3aGVuIHNldHRpbmcg dGhlIFZNLiBXZSBkb24ndCB3b3JyeSBhYm91dCB1bm5lY2Vzc2FyaWx5IGRpcnR5aW5nIHRoZQot CSAqIGhlYXAgYnVmZmVyIGlmIFBEX0FMTF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LCB0aG91Z2gu IEl0IGlzIGV4dHJlbWVseQotCSAqIHJhcmUgdG8gaGF2ZSBhIGNsZWFuIGhlYXAgYnVmZmVyIHdp dGggUERfQUxMX1ZJU0lCTEUgYWxyZWFkeSBzZXQgYW5kCi0JICogdGhlIFZNIGJpdHMgY2xlYXIs IHNvIHRoZXJlIGlzIG5vIHBvaW50IGluIG9wdGltaXppbmcgaXQuCi0JICovCi0JUGFnZVNldEFs bFZpc2libGUocGFnZSk7Ci0JUGFnZUNsZWFyUHJ1bmFibGUocGFnZSk7Ci0JTWFya0J1ZmZlckRp cnR5KGJ1Zik7Ci0KLQkvKgotCSAqIElmIHRoZSBwYWdlIGlzIGJlaW5nIHNldCBhbGwtZnJvemVu LCB3ZSBwYXNzIEludmFsaWRUcmFuc2FjdGlvbklkIGFzCi0JICogdGhlIGN1dG9mZl94aWQsIHNp bmNlIGEgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbiBzdWZmaWNpZW50IHRvIG1ha2UKLQkgKiBl dmVyeXRoaW5nIHNhZmUgZm9yIFJFRE8gd2FzIGxvZ2dlZCB3aGVuIHRoZSBwYWdlJ3MgdHVwbGVz IHdlcmUgZnJvemVuLgotCSAqLwotCUFzc2VydCghcHJlc3VsdC5zZXRfYWxsX2Zyb3plbiB8fAot CQkgICAhVHJhbnNhY3Rpb25JZElzVmFsaWQocHJlc3VsdC52bV9jb25mbGljdF9ob3Jpem9uKSk7 Ci0KLQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sIGJ1ZiwKLQkJCQkJICBJ bnZhbGlkWExvZ1JlY1B0ciwKLQkJCQkJICB2bWJ1ZmZlciwgcHJlc3VsdC52bV9jb25mbGljdF9o b3Jpem9uLAotCQkJCQkgIG5ld192bWJpdHMpOwotCi0JLyoKLQkgKiBJZiB0aGUgcGFnZSB3YXNu J3QgYWxyZWFkeSBzZXQgYWxsLXZpc2libGUgYW5kL29yIGFsbC1mcm96ZW4gaW4gdGhlIFZNLAot CSAqIGNvdW50IGl0IGFzIG5ld2x5IHNldCBmb3IgbG9nZ2luZy4KLQkgKi8KLQlpZiAoKG9sZF92 bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKSA9PSAwKQotCXsKLQkJdmFjcmVsLT5u ZXdfYWxsX3Zpc2libGVfcGFnZXMrKzsKLQkJaWYgKHByZXN1bHQuc2V0X2FsbF9mcm96ZW4pCi0J CXsKLQkJCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX2FsbF9mcm96ZW5fcGFnZXMrKzsKLQkJCSp2 bV9wYWdlX2Zyb3plbiA9IHRydWU7Ci0JCX0KLQl9Ci0JZWxzZSBpZiAoKG9sZF92bWJpdHMgJiBW SVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pID09IDAgJiYKLQkJCSBwcmVzdWx0LnNldF9hbGxfZnJv emVuKQotCXsKLQkJdmFjcmVsLT5uZXdfYWxsX2Zyb3plbl9wYWdlcysrOwotCQkqdm1fcGFnZV9m cm96ZW4gPSB0cnVlOwotCX0KLQogCXJldHVybiBwcmVzdWx0Lm5kZWxldGVkOwogfQogCkBAIC0z NjEzLDcgKzM1MjQsNyBAQCBkZWFkX2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQog ICogdGhhdCBleHBlY3Qgbm8gTFBfREVBRCBvbiB0aGUgcGFnZS4gQ3VycmVudGx5IGFzc2VydC1v bmx5LCBidXQgdGhlcmUgaXMgbm8KICAqIHJlYXNvbiBub3QgdG8gdXNlIGl0IG91dHNpZGUgb2Yg YXNzZXJ0cy4KICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJs ZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rl c3QsCiAJCQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCA4ODE1YWNj Y2FmYi4uZTEyM2RkYTA5MGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0u aAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTI2NSw3ICsyNjUsOCBAQCB0 eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVBhcmFtcwogCiAJLyoKIAkgKiBDYWxsZXJzIHNob3Vs ZCBwcm92aWRlIGEgcGlubmVkIHZtYnVmZmVyIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGhlYXAKLQkg KiBibG9jayBpbiBidWZmZXIuIFdlIHdpbGwgY2hlY2sgZm9yIGFuZCByZXBhaXIgYW55IGNvcnJ1 cHRpb24gaW4gdGhlIFZNLgorCSAqIGJsb2NrIGluIGJ1ZmZlci4gV2Ugd2lsbCBjaGVjayBmb3Ig YW5kIHJlcGFpciBhbnkgY29ycnVwdGlvbiBpbiB0aGUgVk0KKwkgKiBhbmQgc2V0IHRoZSBWTSBh ZnRlciBwcnVuaW5nIGlmIHRoZSBwYWdlIGlzIGFsbC12aXNpYmxlL2FsbC1mcm96ZW4uCiAJICov CiAJQnVmZmVyCQl2bWJ1ZmZlcjsKIApAQCAtMjgxLDggKzI4Miw3IEBAIHR5cGVkZWYgc3RydWN0 IFBydW5lRnJlZXplUGFyYW1zCiAJICogSEVBUF9QQUdFX1BSVU5FX01BUktfVU5VU0VEX05PVyBp bmRpY2F0ZXMgdGhhdCBkZWFkIGl0ZW1zIGNhbiBiZSBzZXQKIAkgKiBMUF9VTlVTRUQgZHVyaW5n IHBydW5pbmcuCiAJICoKLQkgKiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFIGluZGljYXRlcyB0aGF0 IHdlIHdpbGwgYWxzbyBmcmVlemUgdHVwbGVzLCBhbmQKLQkgKiB3aWxsIHJldHVybiAnYWxsX3Zp c2libGUnLCAnYWxsX2Zyb3plbicgZmxhZ3MgdG8gdGhlIGNhbGxlci4KKwkgKiBIRUFQX1BBR0Vf UFJVTkVfRlJFRVpFIGluZGljYXRlcyB0aGF0IHdlIHdpbGwgYWxzbyBmcmVlemUgdHVwbGVzLgog CSAqLwogCWludAkJCW9wdGlvbnM7CiAKQEAgLTMxNiwyNiArMzE2LDEyIEBAIHR5cGVkZWYgc3Ry dWN0IFBydW5lRnJlZXplUmVzdWx0CiAJaW50CQkJcmVjZW50bHlfZGVhZF90dXBsZXM7CiAKIAkv KgotCSAqIHNldF9hbGxfdmlzaWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gaW5kaWNhdGUgaWYgdGhl IGFsbC12aXNpYmxlIGFuZAotCSAqIGFsbC1mcm96ZW4gYml0cyBpbiB0aGUgdmlzaWJpbGl0eSBt YXAgc2hvdWxkIGJlIHNldCBmb3IgdGhpcyBwYWdlIGFmdGVyCi0JICogcHJ1bmluZy4KLQkgKgot CSAqIHZtX2NvbmZsaWN0X2hvcml6b24gaXMgdGhlIG5ld2VzdCB4bWluIG9mIGxpdmUgdHVwbGVz IG9uIHRoZSBwYWdlLiAgVGhlCi0JICogY2FsbGVyIGNhbiB1c2UgaXQgYXMgdGhlIGNvbmZsaWN0 IGhvcml6b24gd2hlbiBzZXR0aW5nIHRoZSBWTSBiaXRzLiAgSXQKLQkgKiBpcyBvbmx5IHZhbGlk IGlmIHdlIGZyb3plIHNvbWUgdHVwbGVzIChuZnJvemVuID4gMCksIGFuZCBzZXRfYWxsX2Zyb3pl bgotCSAqIGlzIHRydWUuCi0JICoKLQkgKiBUaGVzZSBhcmUgb25seSBzZXQgaWYgdGhlIEhFQVBf UEFHRV9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIHNldC4KLQkgKi8KLQlib29sCQlzZXRfYWxsX3Zp c2libGU7Ci0JYm9vbAkJc2V0X2FsbF9mcm96ZW47Ci0JVHJhbnNhY3Rpb25JZCB2bV9jb25mbGlj dF9ob3Jpem9uOwotCi0JLyoKLQkgKiBUaGUgdmFsdWUgb2YgdGhlIHZtYnVmZmVyJ3Mgdm1iaXRz IGF0IHRoZSBiZWdpbm5pbmcgb2YgcHJ1bmluZy4gSXQgaXMKLQkgKiBjbGVhcmVkIGlmIFZNIGNv cnJ1cHRpb24gaXMgZm91bmQgYW5kIGNvcnJlY3RlZC4KKwkgKiBXaGV0aGVyIG9yIG5vdCB0aGUg cGFnZSB3YXMgbmV3bHkgc2V0IGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuIGR1cmluZworCSAq IHBoYXNlIEkgb2YgdmFjdXVtaW5nLgogCSAqLwotCXVpbnQ4CQlvbGRfdm1iaXRzOworCWJvb2wJ CW5ld2x5X2FsbF92aXNpYmxlOworCWJvb2wJCW5ld2x5X2FsbF92aXNpYmxlX2Zyb3plbjsKKwli b29sCQluZXdseV9hbGxfZnJvemVuOwogCiAJLyoKIAkgKiBXaGV0aGVyIG9yIG5vdCB0aGUgcGFn ZSBtYWtlcyByZWwgdHJ1bmNhdGlvbiB1bnNhZmUuICBUaGlzIGlzIHNldCB0bwpAQCAtNDcyLDYg KzQ1OCwxMyBAQCBleHRlcm4gdm9pZCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9u IHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogLyogaW4gaGVhcC92YWN1dW1sYXp5LmMgKi8KIGV4 dGVybiB2b2lkIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsCiAJCQkJCQkJY29uc3QgVmFj dXVtUGFyYW1zIHBhcmFtcywgQnVmZmVyQWNjZXNzU3RyYXRlZ3kgYnN0cmF0ZWd5KTsKKyNpZmRl ZiBVU0VfQVNTRVJUX0NIRUNLSU5HCitleHRlcm4gYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2li bGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAorCQkJCQkJCQkJIEdsb2JhbFZpc1N0YXRlICp2 aXN0ZXN0LAorCQkJCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCisJCQkJCQkJCQkgVHJhbnNhY3Rp b25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJCQkJCQkJIE9mZnNldE51bWJlciAqbG9n Z2luZ19vZmZudW0pOworI2VuZGlmCiAKIC8qIGluIGhlYXAvaGVhcGFtX3Zpc2liaWxpdHkuYyAq LwogZXh0ZXJuIGJvb2wgSGVhcFR1cGxlU2F0aXNmaWVzVmlzaWJpbGl0eShIZWFwVHVwbGUgaHR1 cCwgU25hcHNob3Qgc25hcHNob3QsCi0tIAoyLjQzLjAKCg== --0000000000002c12b8064da25839 Content-Type: text/x-patch; charset="US-ASCII"; name="v43-0004-WAL-log-VM-setting-for-empty-pages-in-XLOG_HEAP2.patch" Content-Disposition: attachment; filename="v43-0004-WAL-log-VM-setting-for-empty-pages-in-XLOG_HEAP2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn26hnkm3 RnJvbSA3ZGM5NDNhNzE0MTk4OGUyNTY4YTczMTM2Y2FiOTY4MjllYTBiNjI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjIxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDMgMDQvMTBdIFdBTCBsb2cgVk0gc2V0dGluZyBmb3IgZW1wdHkgcGFnZXMgaW4KIFhM T0dfSEVBUDJfUFJVTkVfVkFDVVVNX1NDQU4KCkFzIHBhcnQgb2YgcmVtb3ZpbmcgWExPR19IRUFQ Ml9WSVNJQkxFIHJlY29yZHMsIHBoYXNlIEkgb2YgVkFDVVVNIG5vdwptYXJrcyBlbXB0eSBwYWdl cyBhbGwtdmlzaWJsZSBpbiBhIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX1NDQU4gcmVjb3JkLgoK VGhpcyBoYXMgbm8gaW5kZXBlbmRlbnQgYmVuZWZpdCwgYnV0IGVtcHR5IHBhZ2VzIHdlcmUgdGhl IGxhc3QgdXNlciBvZgpYTE9HX0hFQVAyX1ZJU0lCTEUsIHNvIGlmIHdlIG1ha2UgdGhpcyBjaGFu Z2Ugd2UgY2FuIHJlbW92ZSBhbGwgb2YgdGhlClhMT0hfSEVBUDJfVklTSUJMRSBjb2RlLgoKQXV0 aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdl ZC1ieTogUm9iZXJ0IEhhYXMgPHJvYmVydG1oYWFzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFu ZHJlcyBGcmV1bmQgPGFuZHJlc0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxp LmV2YW4uY2hhb0BnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMgIHwgMjkgKysrKysrKysrKystLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMgfCA0NCArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAyIGZpbGVzIGNo YW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvcHJ1bmVoZWFwLmMKaW5kZXggYzQzYjE5MmIxNjMuLjRmNzIyMGQxN2FmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMjUzOSw2ICsyNTM5LDggQEAgbG9nX2hlYXBfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAl1aW50OAkJ aW5mbzsKIAl1aW50OAkJcmVnYnVmX2ZsYWdzX2hlYXA7CiAKKwlQYWdlCQloZWFwX3BhZ2UgPSBC dWZmZXJHZXRQYWdlKGJ1ZmZlcik7CisKIAkvKiBUaGUgZm9sbG93aW5nIGxvY2FsIHZhcmlhYmxl cyBob2xkIGRhdGEgcmVnaXN0ZXJlZCBpbiB0aGUgV0FMIHJlY29yZDogKi8KIAl4bGhwX2ZyZWV6 ZV9wbGFuIHBsYW5zW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAl4bGhwX2ZyZWV6ZV9wbGFucyBm cmVlemVfcGxhbnM7CkBAIC0yNTU3LDE0ICsyNTU5LDE4IEBAIGxvZ19oZWFwX3BydW5lX2FuZF9m cmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJLyoKIAkgKiBXZSBjYW4g YXZvaWQgYW4gRlBJIG9mIHRoZSBoZWFwIHBhZ2UgaWYgdGhlIG9ubHkgbW9kaWZpY2F0aW9uIHdl IGFyZQogCSAqIG1ha2luZyB0byBpdCBpcyB0byBzZXQgUERfQUxMX1ZJU0lCTEUgYW5kIGNoZWNr c3Vtcy93YWxfbG9nX2hpbnRzIGFyZQotCSAqIGRpc2FibGVkLiBOb3RlIHRoYXQgaWYgd2UgZXhw bGljaXRseSBza2lwIGFuIEZQSSwgd2UgbXVzdCBub3Qgc3RhbXAgdGhlCi0JICogaGVhcCBwYWdl IHdpdGggdGhpcyByZWNvcmQncyBMU04uIFJlY292ZXJ5IHNraXBzIHJlY29yZHMgPD0gdGhlIHN0 YW1wZWQKLQkgKiBMU04sIHNvIHRoaXMgY291bGQgbGVhZCB0byBza2lwcGluZyBhbiBlYXJsaWVy IEZQSSBuZWVkZWQgdG8gcmVwYWlyIGEKLQkgKiB0b3JuIHBhZ2UuCisJICogZGlzYWJsZWQuCisJ ICoKKwkgKiBIb3dldmVyLCBpZiB0aGUgcGFnZSBoYXMgbmV2ZXIgYmVlbiBXQUwtbG9nZ2VkIChM U04gaXMgaW52YWxpZCksIHdlCisJICogbXVzdCBmb3JjZSBhbiBGUEkgcmVnYXJkbGVzcy4gIFRo aXMgY2FuIGhhcHBlbiB3aGVuIGFub3RoZXIgYmFja2VuZAorCSAqIGV4dGVuZHMgdGhlIGhlYXAs IGluaXRpYWxpemVzIHRoZSBwYWdlLCBhbmQgdGhlbiBmYWlscyBiZWZvcmUgV0FMLQorCSAqIGxv Z2dpbmcgaXQuICBTaW5jZSBoZWFwIGV4dGVuc2lvbiBpcyBub3QgV0FMLWxvZ2dlZCwgcmVjb3Zl cnkgbWlnaHQgdHJ5CisJICogdG8gcmVwbGF5IG91ciByZWNvcmQgYW5kIGZpbmQgdGhhdCB0aGUg cGFnZSBpc24ndCBpbml0aWFsaXplZCwgd2hpY2gKKwkgKiB3b3VsZCBjYXVzZSBhIFBBTklDLgog CSAqLwotCWlmICghZG9fcHJ1bmUgJiYKLQkJbmZyb3plbiA9PSAwICYmCi0JCSghZG9fc2V0X3Zt IHx8ICFYTG9nSGludEJpdElzTmVlZGVkKCkpKQorCWlmICghWExvZ1JlY1B0cklzVmFsaWQoUGFn ZUdldExTTihoZWFwX3BhZ2UpKSkKKwkJcmVnYnVmX2ZsYWdzX2hlYXAgfD0gUkVHQlVGX0ZPUkNF X0lNQUdFOworCWVsc2UgaWYgKCFkb19wcnVuZSAmJiBuZnJvemVuID09IDAgJiYgKCFkb19zZXRf dm0gfHwgIVhMb2dIaW50Qml0SXNOZWVkZWQoKSkpCiAJCXJlZ2J1Zl9mbGFnc19oZWFwIHw9IFJF R0JVRl9OT19JTUFHRTsKIAogCS8qCkBAIC0yNjc5LDEyICsyNjg1LDEzIEBAIGxvZ19oZWFwX3By dW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJfQogCiAJ LyoKLQkgKiBTZWUgY29tbWVudCBhdCB0aGUgdG9wIG9mIHRoZSBmdW5jdGlvbiBhYm91dCByZWdi dWZfZmxhZ3NfaGVhcCBmb3IKLQkgKiBkZXRhaWxzIG9uIHdoZW4gd2UgY2FuIGFkdmFuY2UgdGhl IHBhZ2UgTFNOLgorCSAqIElmIHdlIGV4cGxpY2l0bHkgc2tpcCBhbiBGUEksIHdlIG11c3Qgbm90 IHN0YW1wIHRoZSBoZWFwIHBhZ2Ugd2l0aCB0aGlzCisJICogcmVjb3JkJ3MgTFNOLiBSZWNvdmVy eSBza2lwcyByZWNvcmRzIDw9IHRoZSBzdGFtcGVkIExTTiwgc28gdGhpcyBjb3VsZAorCSAqIGxl YWQgdG8gc2tpcHBpbmcgYW4gZWFybGllciBGUEkgbmVlZGVkIHRvIHJlcGFpciBhIHRvcm4gcGFn ZS4KIAkgKi8KLQlpZiAoZG9fcHJ1bmUgfHwgbmZyb3plbiA+IDAgfHwgKGRvX3NldF92bSAmJiBY TG9nSGludEJpdElzTmVlZGVkKCkpKQorCWlmICghKHJlZ2J1Zl9mbGFnc19oZWFwICYgUkVHQlVG X05PX0lNQUdFKSkKIAl7CiAJCUFzc2VydChCdWZmZXJJc0RpcnR5KGJ1ZmZlcikpOwotCQlQYWdl U2V0TFNOKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSwgcmVjcHRyKTsKKwkJUGFnZVNldExTTihoZWFw X3BhZ2UsIHJlY3B0cik7CiAJfQogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmlu ZGV4IDIzZGVhYmQ4YzAxLi42M2U2MTk5MjQxYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYwpAQCAtMTkyOSwzMyArMTkyOSw0MyBAQCBsYXp5X3NjYW5fbmV3X29yX2VtcHR5KExW UmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwgQmxvY2tOdW1iZXIgYmxrbm8sCiAJCSAqLwog CQlpZiAoIVBhZ2VJc0FsbFZpc2libGUocGFnZSkpCiAJCXsKKwkJCS8qIExvY2sgdm1idWZmZXIg YmVmb3JlIGVudGVyaW5nIGNyaXRpY2FsIHNlY3Rpb24gKi8KKwkJCUxvY2tCdWZmZXIodm1idWZm ZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSk7CisKIAkJCVNUQVJUX0NSSVRfU0VDVElPTigpOwog CiAJCQkvKiBtYXJrIGJ1ZmZlciBkaXJ0eSBiZWZvcmUgd3JpdGluZyBhIFdBTCByZWNvcmQgKi8K IAkJCU1hcmtCdWZmZXJEaXJ0eShidWYpOwogCisJCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsK KwkJCVBhZ2VDbGVhclBydW5hYmxlKHBhZ2UpOworCQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRz KGJsa25vLAorCQkJCQkJCQkJIHZtYnVmZmVyLAorCQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxM X1ZJU0lCTEUgfAorCQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwKKwkJCQkJCQkJ CSB2YWNyZWwtPnJlbC0+cmRfbG9jYXRvcik7CisKIAkJCS8qCi0JCQkgKiBJdCdzIHBvc3NpYmxl IHRoYXQgYW5vdGhlciBiYWNrZW5kIGhhcyBleHRlbmRlZCB0aGUgaGVhcCwKLQkJCSAqIGluaXRp YWxpemVkIHRoZSBwYWdlLCBhbmQgdGhlbiBmYWlsZWQgdG8gV0FMLWxvZyB0aGUgcGFnZSBkdWUK LQkJCSAqIHRvIGFuIEVSUk9SLiAgU2luY2UgaGVhcCBleHRlbnNpb24gaXMgbm90IFdBTC1sb2dn ZWQsIHJlY292ZXJ5Ci0JCQkgKiBtaWdodCB0cnkgdG8gcmVwbGF5IG91ciByZWNvcmQgc2V0dGlu ZyB0aGUgcGFnZSBhbGwtdmlzaWJsZSBhbmQKLQkJCSAqIGZpbmQgdGhhdCB0aGUgcGFnZSBpc24n dCBpbml0aWFsaXplZCwgd2hpY2ggd2lsbCBjYXVzZSBhIFBBTklDLgotCQkJICogVG8gcHJldmVu dCB0aGF0LCBjaGVjayB3aGV0aGVyIHRoZSBwYWdlIGhhcyBiZWVuIHByZXZpb3VzbHkKLQkJCSAq IFdBTC1sb2dnZWQsIGFuZCBpZiBub3QsIGRvIHRoYXQgbm93LgorCQkJICogRW1pdCBXQUwgZm9y IHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgb24gdGhlIGhlYXAgcGFnZSBhbmQKKwkJCSAqIHNldHRp bmcgdGhlIFZNLgogCQkJICovCi0JCQlpZiAoUmVsYXRpb25OZWVkc1dBTCh2YWNyZWwtPnJlbCkg JiYKLQkJCQkhWExvZ1JlY1B0cklzVmFsaWQoUGFnZUdldExTTihwYWdlKSkpCi0JCQkJbG9nX25l d3BhZ2VfYnVmZmVyKGJ1ZiwgdHJ1ZSk7CisJCQlpZiAoUmVsYXRpb25OZWVkc1dBTCh2YWNyZWwt PnJlbCkpCisJCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZSh2YWNyZWwtPnJlbCwgYnVmLAor CQkJCQkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJ QkxFIHwKKwkJCQkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwKKwkJCQkJCQkJCQkg IEludmFsaWRUcmFuc2FjdGlvbklkLCAvKiBjb25mbGljdCB4aWQgKi8KKwkJCQkJCQkJCQkgIGZh bHNlLAkvKiBjbGVhbnVwIGxvY2sgKi8KKwkJCQkJCQkJCQkgIFBSVU5FX1ZBQ1VVTV9TQ0FOLAkv KiByZWFzb24gKi8KKwkJCQkJCQkJCQkgIE5VTEwsIDAsCisJCQkJCQkJCQkJICBOVUxMLCAwLAor CQkJCQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJCQkJCQkgIE5VTEwsIDApOwogCi0JCQlQYWdlU2V0 QWxsVmlzaWJsZShwYWdlKTsKLQkJCVBhZ2VDbGVhclBydW5hYmxlKHBhZ2UpOwotCQkJdmlzaWJp bGl0eW1hcF9zZXQodmFjcmVsLT5yZWwsIGJsa25vLCBidWYsCi0JCQkJCQkJICBJbnZhbGlkWExv Z1JlY1B0ciwKLQkJCQkJCQkgIHZtYnVmZmVyLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCwKLQkJCQkJ CQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCSAgVklTSUJJTElUWU1BUF9B TExfRlJPWkVOKTsKIAkJCUVORF9DUklUX1NFQ1RJT04oKTsKIAorCQkJTG9ja0J1ZmZlcih2bWJ1 ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKKwogCQkJLyogQ291bnQgdGhlIG5ld2x5IGFsbC1m cm96ZW4gcGFnZXMgZm9yIGxvZ2dpbmcgKi8KIAkJCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX3Bh Z2VzKys7CiAJCQl2YWNyZWwtPm5ld19hbGxfdmlzaWJsZV9hbGxfZnJvemVuX3BhZ2VzKys7Ci0t IAoyLjQzLjAKCg== --0000000000002c12b8064da25839 Content-Type: text/x-patch; charset="US-ASCII"; name="v43-0005-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Disposition: attachment; filename="v43-0005-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn26hr3i4 RnJvbSAyMjU3ZTUwMThiZGI2OGVkYTE5YWIwNWQwZWEzNjg5ZjdkOTRhNmY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjM2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDMgMDUvMTBdIFJlbW92ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZW50aXJlbHkKClRoZXJl IGFyZSBubyByZW1haW5pbmcgdXNlcnMgdGhhdCBlbWl0IFhMT0dfSEVBUDJfVklTSUJMRSByZWNv cmRzLCBzbyBpdApjYW4gYmUgcmVtb3ZlZC4gVGhpcyBpbmNsdWRlcyBkZWxldGluZyB0aGUgeGxf aGVhcF92aXNpYmxlIHN0cnVjdCBhbmQKYWxsIGZ1bmN0aW9ucyByZXNwb25zaWJsZSBmb3IgZW1p dHRpbmcgb3IgcmVwbGF5aW5nIFhMT0dfSEVBUDJfVklTSUJMRQpyZWNvcmRzLgoKQXV0aG9yOiBN ZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTog QW5kcmV5IEJvcm9kaW4gPHg0bW1tQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogQW5kcmVz IEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZh bi5jaGFvQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1hc2su YyAgICAgIHwgICA1ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAg IHwgIDU0ICstLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jICAg IHwgMTU2ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYyAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMgICAgIHwgIDE2ICstLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1h cC5jICB8IDE1MCArKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1n cmRlc2MvaGVhcGRlc2MuYyAgIHwgIDEwIC0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL2RlY29kZS5jIHwgICAxIC0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAg ICAgICAgfCAgIDkgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oICAgICAgICAg fCAgMjEgKy0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oICAgICAgIHwgIDEz ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCAgIHwgICA5IC0tCiBz cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgIHwgICAxIC0KIDEzIGZpbGVz IGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDM4NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1hc2suYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9jb21tb24vYnVmbWFzay5jCmluZGV4IDhhNjdiZmExYWZmLi5kNjRjNDAzZjJmMCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKQEAgLTU1LDkgKzU1LDggQEAgbWFza19wYWdlX2hp bnRfYml0cyhQYWdlIHBhZ2UpCiAJUGFnZUNsZWFySGFzRnJlZUxpbmVQb2ludGVycyhwYWdlKTsK IAogCS8qCi0JICogRHVyaW5nIHJlcGxheSwgaWYgdGhlIHBhZ2UgTFNOIGhhcyBhZHZhbmNlZCBw YXN0IG91ciBYTE9HIHJlY29yZCdzIExTTiwKLQkgKiB3ZSBkb24ndCBtYXJrIHRoZSBwYWdlIGFs bC12aXNpYmxlLiBTZWUgaGVhcF94bG9nX3Zpc2libGUoKSBmb3IKLQkgKiBkZXRhaWxzLgorCSAq IFhYWDogV2Ugc2hvdWxkIGNvbnNpZGVyIG5vdCBtYXNraW5nIFBEX0FMTF9WSVNJQkxFIGR1cmlu ZyBXQUwKKwkgKiBjb25zaXN0ZW5jeSBjaGVja2luZy4KIAkgKi8KIAlQYWdlQ2xlYXJBbGxWaXNp YmxlKHBhZ2UpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCBlNWJkMDYyZGU3Ny4u MDQ0ZjM4NWU0NzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC0yNTg5LDExICsyNTg5 LDExIEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xv dCAqKnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJewogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7 CiAJCQlQYWdlQ2xlYXJQcnVuYWJsZShwYWdlKTsKLQkJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0 cyhCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpLAotCQkJCQkJCQkJIHZtYnVmZmVyLAotCQkJ CQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCQkJIFZJU0lCSUxJVFlN QVBfQUxMX0ZST1pFTiwKLQkJCQkJCQkJCSByZWxhdGlvbi0+cmRfbG9jYXRvcik7CisJCQl2aXNp YmlsaXR5bWFwX3NldChCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpLAorCQkJCQkJCSAgdm1i dWZmZXIsCisJCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKKwkJCQkJCQkgIFZJ U0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwKKwkJCQkJCQkgIHJlbGF0aW9uLT5yZF9sb2NhdG9yKTsK IAkJfQogCiAJCS8qCkBAIC04ODg2LDUwICs4ODg2LDYgQEAgYm90dG9tdXBfc29ydF9hbmRfc2hy aW5rKFRNX0luZGV4RGVsZXRlT3AgKmRlbHN0YXRlKQogCXJldHVybiBuYmxvY2tzZmF2b3JhYmxl OwogfQogCi0vKgotICogUGVyZm9ybSBYTG9nSW5zZXJ0IGZvciBhIGhlYXAtdmlzaWJsZSBvcGVy YXRpb24uICAnYmxvY2snIGlzIHRoZSBibG9jawotICogYmVpbmcgbWFya2VkIGFsbC12aXNpYmxl LCBhbmQgdm1fYnVmZmVyIGlzIHRoZSBidWZmZXIgY29udGFpbmluZyB0aGUKLSAqIGNvcnJlc3Bv bmRpbmcgdmlzaWJpbGl0eSBtYXAgYmxvY2suICBCb3RoIHNob3VsZCBoYXZlIGFscmVhZHkgYmVl biBtb2RpZmllZAotICogYW5kIGRpcnRpZWQuCi0gKgotICogc25hcHNob3RDb25mbGljdEhvcml6 b24gY29tZXMgZnJvbSB0aGUgbGFyZ2VzdCB4bWluIG9uIHRoZSBwYWdlIGJlaW5nCi0gKiBtYXJr ZWQgYWxsLXZpc2libGUuICBSRURPIHJvdXRpbmUgdXNlcyBpdCB0byBnZW5lcmF0ZSByZWNvdmVy eSBjb25mbGljdHMuCi0gKgotICogSWYgY2hlY2tzdW1zIG9yIHdhbF9sb2dfaGludHMgYXJlIGVu YWJsZWQsIHdlIG1heSBhbHNvIGdlbmVyYXRlIGEgZnVsbC1wYWdlCi0gKiBpbWFnZSBvZiBoZWFw X2J1ZmZlci4gT3RoZXJ3aXNlLCB3ZSBvcHRpbWl6ZSBhd2F5IHRoZSBGUEkgKGJ5IHNwZWNpZnlp bmcKLSAqIFJFR0JVRl9OT19JTUFHRSBmb3IgdGhlIGhlYXAgYnVmZmVyKSwgaW4gd2hpY2ggY2Fz ZSB0aGUgY2FsbGVyIHNob3VsZCAqbm90KgotICogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04u Ci0gKi8KLVhMb2dSZWNQdHIKLWxvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIg aGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIsCi0JCQkJIFRyYW5zYWN0aW9uSWQgc25hcHNo b3RDb25mbGljdEhvcml6b24sIHVpbnQ4IHZtZmxhZ3MpCi17Ci0JeGxfaGVhcF92aXNpYmxlIHhs cmVjOwotCVhMb2dSZWNQdHIJcmVjcHRyOwotCXVpbnQ4CQlmbGFnczsKLQotCUFzc2VydChCdWZm ZXJJc1ZhbGlkKGhlYXBfYnVmZmVyKSk7Ci0JQXNzZXJ0KEJ1ZmZlcklzVmFsaWQodm1fYnVmZmVy KSk7Ci0KLQl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RI b3Jpem9uOwotCXhscmVjLmZsYWdzID0gdm1mbGFnczsKLQlpZiAoUmVsYXRpb25Jc0FjY2Vzc2li bGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpKQotCQl4bHJlYy5mbGFncyB8PSBWSVNJQklMSVRZTUFQ X1hMT0dfQ0FUQUxPR19SRUw7Ci0JWExvZ0JlZ2luSW5zZXJ0KCk7Ci0JWExvZ1JlZ2lzdGVyRGF0 YSgmeGxyZWMsIFNpemVPZkhlYXBWaXNpYmxlKTsKLQotCVhMb2dSZWdpc3RlckJ1ZmZlcigwLCB2 bV9idWZmZXIsIDApOwotCi0JZmxhZ3MgPSBSRUdCVUZfU1RBTkRBUkQ7Ci0JaWYgKCFYTG9nSGlu dEJpdElzTmVlZGVkKCkpCi0JCWZsYWdzIHw9IFJFR0JVRl9OT19JTUFHRTsKLQlYTG9nUmVnaXN0 ZXJCdWZmZXIoMSwgaGVhcF9idWZmZXIsIGZsYWdzKTsKLQotCXJlY3B0ciA9IFhMb2dJbnNlcnQo Uk1fSEVBUDJfSUQsIFhMT0dfSEVBUDJfVklTSUJMRSk7Ci0KLQlyZXR1cm4gcmVjcHRyOwotfQot CiAvKgogICogUGVyZm9ybSBYTG9nSW5zZXJ0IGZvciBhIGhlYXAtdXBkYXRlIG9wZXJhdGlvbi4g IENhbGxlciBtdXN0IGFscmVhZHkKICAqIGhhdmUgbW9kaWZpZWQgdGhlIGJ1ZmZlcihzKSBhbmQg bWFya2VkIHRoZW0gZGlydHkuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRl eCAxZGE3NzRjMTUzNi4uMTMwMmJiMTNlMTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X3hsb2cuYwpAQCAtMjM5LDcgKzIzOSw3IEBAIGhlYXBfeGxvZ19wcnVuZV9mcmVlemUoWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJCWlmIChQYWdlSXNOZXcodm1wYWdlKSkKIAkJCVBhZ2VJbml0 KHZtcGFnZSwgQkxDS1NaLCAwKTsKIAotCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoYmxrbm8s IHZtYnVmZmVyLCB2bWZsYWdzLCBybG9jYXRvcik7CisJCXZpc2liaWxpdHltYXBfc2V0KGJsa25v LCB2bWJ1ZmZlciwgdm1mbGFncywgcmxvY2F0b3IpOwogCiAJCUFzc2VydChCdWZmZXJJc0RpcnR5 KHZtYnVmZmVyKSk7CiAJCVBhZ2VTZXRMU04odm1wYWdlLCBsc24pOwpAQCAtMjUyLDE0MyArMjUy LDYgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJ WExvZ1JlY29yZFBhZ2VXaXRoRnJlZVNwYWNlKHJsb2NhdG9yLCBibGtubywgZnJlZXNwYWNlKTsK IH0KIAotLyoKLSAqIFJlcGxheSBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVjb3Jkcy4KLSAqCi0gKiBU aGUgY3JpdGljYWwgaW50ZWdyaXR5IHJlcXVpcmVtZW50IGhlcmUgaXMgdGhhdCB3ZSBtdXN0IG5l dmVyIGVuZCB1cCB3aXRoCi0gKiBhIHNpdHVhdGlvbiB3aGVyZSB0aGUgdmlzaWJpbGl0eSBtYXAg Yml0IGlzIHNldCwgYW5kIHRoZSBwYWdlLWxldmVsCi0gKiBQRF9BTExfVklTSUJMRSBiaXQgaXMg Y2xlYXIuICBJZiB0aGF0IHdlcmUgdG8gb2NjdXIsIHRoZW4gYSBzdWJzZXF1ZW50Ci0gKiBwYWdl IG1vZGlmaWNhdGlvbiB3b3VsZCBmYWlsIHRvIGNsZWFyIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQu Ci0gKi8KLXN0YXRpYyB2b2lkCi1oZWFwX3hsb2dfdmlzaWJsZShYTG9nUmVhZGVyU3RhdGUgKnJl Y29yZCkKLXsKLQlYTG9nUmVjUHRyCWxzbiA9IHJlY29yZC0+RW5kUmVjUHRyOwotCXhsX2hlYXBf dmlzaWJsZSAqeGxyZWMgPSAoeGxfaGVhcF92aXNpYmxlICopIFhMb2dSZWNHZXREYXRhKHJlY29y ZCk7Ci0JQnVmZmVyCQl2bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7Ci0JQnVmZmVyCQlidWZmZXI7 Ci0JUGFnZQkJcGFnZTsKLQlSZWxGaWxlTG9jYXRvciBybG9jYXRvcjsKLQlCbG9ja051bWJlciBi bGtubzsKLQlYTG9nUmVkb0FjdGlvbiBhY3Rpb247Ci0KLQlBc3NlcnQoKHhscmVjLT5mbGFncyAm IFZJU0lCSUxJVFlNQVBfWExPR19WQUxJRF9CSVRTKSA9PSB4bHJlYy0+ZmxhZ3MpOwotCi0JWExv Z1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMSwgJnJsb2NhdG9yLCBOVUxMLCAmYmxrbm8pOwotCi0J LyoKLQkgKiBJZiB0aGVyZSBhcmUgYW55IEhvdCBTdGFuZGJ5IHRyYW5zYWN0aW9ucyBydW5uaW5n IHRoYXQgaGF2ZSBhbiB4bWluCi0JICogaG9yaXpvbiBvbGQgZW5vdWdoIHRoYXQgdGhpcyBwYWdl IGlzbid0IGFsbC12aXNpYmxlIGZvciB0aGVtLCB0aGV5Ci0JICogbWlnaHQgaW5jb3JyZWN0bHkg ZGVjaWRlIHRoYXQgYW4gaW5kZXgtb25seSBzY2FuIGNhbiBza2lwIGEgaGVhcCBmZXRjaC4KLQkg KgotCSAqIE5COiBJdCBtaWdodCBiZSBiZXR0ZXIgdG8gdGhyb3cgc29tZSBraW5kIG9mICJzb2Z0 IiBjb25mbGljdCBoZXJlIHRoYXQKLQkgKiBmb3JjZXMgYW55IGluZGV4LW9ubHkgc2NhbiB0aGF0 IGlzIGluIGZsaWdodCB0byBwZXJmb3JtIGhlYXAgZmV0Y2hlcywKLQkgKiByYXRoZXIgdGhhbiBr aWxsaW5nIHRoZSB0cmFuc2FjdGlvbiBvdXRyaWdodC4KLQkgKi8KLQlpZiAoSW5Ib3RTdGFuZGJ5 KQotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+c25hcHNob3RD b25mbGljdEhvcml6b24sCi0JCQkJCQkJCQkJCXhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBf WExPR19DQVRBTE9HX1JFTCwKLQkJCQkJCQkJCQkJcmxvY2F0b3IpOwotCi0JLyoKLQkgKiBSZWFk IHRoZSBoZWFwIHBhZ2UsIGlmIGl0IHN0aWxsIGV4aXN0cy4gSWYgdGhlIGhlYXAgZmlsZSBoYXMg ZHJvcHBlZCBvcgotCSAqIHRydW5jYXRlZCBsYXRlciBpbiByZWNvdmVyeSwgd2UgZG9uJ3QgbmVl ZCB0byB1cGRhdGUgdGhlIHBhZ2UsIGJ1dCB3ZSdkCi0JICogYmV0dGVyIHN0aWxsIHVwZGF0ZSB0 aGUgdmlzaWJpbGl0eSBtYXAuCi0JICovCi0JYWN0aW9uID0gWExvZ1JlYWRCdWZmZXJGb3JSZWRv KHJlY29yZCwgMSwgJmJ1ZmZlcik7Ci0JaWYgKGFjdGlvbiA9PSBCTEtfTkVFRFNfUkVETykKLQl7 Ci0JCS8qCi0JCSAqIFdlIGRvbid0IGJ1bXAgdGhlIExTTiBvZiB0aGUgaGVhcCBwYWdlIHdoZW4g c2V0dGluZyB0aGUgdmlzaWJpbGl0eQotCQkgKiBtYXAgYml0ICh1bmxlc3MgY2hlY2tzdW1zIG9y IHdhbF9oaW50X2JpdHMgaXMgZW5hYmxlZCwgaW4gd2hpY2gKLQkJICogY2FzZSB3ZSBtdXN0KS4g VGhpcyBleHBvc2VzIHVzIHRvIHRvcm4gcGFnZSBoYXphcmRzLCBidXQgc2luY2UKLQkJICogd2Un cmUgbm90IGluc3BlY3RpbmcgdGhlIGV4aXN0aW5nIHBhZ2UgY29udGVudHMgaW4gYW55IHdheSwg d2UKLQkJICogZG9uJ3QgY2FyZS4KLQkJICovCi0JCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZl cik7Ci0KLQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7Ci0JCVBhZ2VDbGVhclBydW5hYmxlKHBh Z2UpOwotCi0JCWlmIChYTG9nSGludEJpdElzTmVlZGVkKCkpCi0JCQlQYWdlU2V0TFNOKHBhZ2Us IGxzbik7Ci0KLQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7Ci0JfQotCWVsc2UgaWYgKGFjdGlv biA9PSBCTEtfUkVTVE9SRUQpCi0JewotCQkvKgotCQkgKiBJZiBoZWFwIGJsb2NrIHdhcyBiYWNr ZWQgdXAsIHdlIGFscmVhZHkgcmVzdG9yZWQgaXQgYW5kIHRoZXJlJ3MKLQkJICogbm90aGluZyBt b3JlIHRvIGRvLiAoVGhpcyBjYW4gb25seSBoYXBwZW4gd2l0aCBjaGVja3N1bXMgb3IKLQkJICog d2FsX2xvZ19oaW50cyBlbmFibGVkLikKLQkJICovCi0JfQotCi0JaWYgKEJ1ZmZlcklzVmFsaWQo YnVmZmVyKSkKLQl7Ci0JCVNpemUJCXNwYWNlID0gUGFnZUdldEZyZWVTcGFjZShCdWZmZXJHZXRQ YWdlKGJ1ZmZlcikpOwotCi0JCVVubG9ja1JlbGVhc2VCdWZmZXIoYnVmZmVyKTsKLQotCQkvKgot CQkgKiBTaW5jZSBGU00gaXMgbm90IFdBTC1sb2dnZWQgYW5kIG9ubHkgdXBkYXRlZCBoZXVyaXN0 aWNhbGx5LCBpdAotCQkgKiBlYXNpbHkgYmVjb21lcyBzdGFsZSBpbiBzdGFuZGJ5cy4gIElmIHRo ZSBzdGFuZGJ5IGlzIGxhdGVyIHByb21vdGVkCi0JCSAqIGFuZCBydW5zIFZBQ1VVTSwgaXQgd2ls bCBza2lwIHVwZGF0aW5nIGluZGl2aWR1YWwgZnJlZSBzcGFjZQotCQkgKiBmaWd1cmVzIGZvciBw YWdlcyB0aGF0IGJlY2FtZSBhbGwtdmlzaWJsZSAob3IgYWxsLWZyb3plbiwgZGVwZW5kaW5nCi0J CSAqIG9uIHRoZSB2YWN1dW0gbW9kZSwpIHdoaWNoIGlzIHRyb3VibGVzb21lIHdoZW4gRnJlZVNw YWNlTWFwVmFjdXVtCi0JCSAqIHByb3BhZ2F0ZXMgdG9vIG9wdGltaXN0aWMgZnJlZSBzcGFjZSB2 YWx1ZXMgdG8gdXBwZXIgRlNNIGxheWVyczsKLQkJICogbGF0ZXIgaW5zZXJ0ZXJzIHRyeSB0byB1 c2Ugc3VjaCBwYWdlcyBvbmx5IHRvIGZpbmQgb3V0IHRoYXQgdGhleQotCQkgKiBhcmUgdW51c2Fi bGUuICBUaGlzIGNhbiBjYXVzZSBsb25nIHN0YWxscyB3aGVuIHRoZXJlIGFyZSBtYW55IHN1Y2gK LQkJICogcGFnZXMuCi0JCSAqCi0JCSAqIEZvcmVzdGFsbCB0aG9zZSBwcm9ibGVtcyBieSB1cGRh dGluZyBGU00ncyBpZGVhIGFib3V0IGEgcGFnZSB0aGF0Ci0JCSAqIGlzIGJlY29taW5nIGFsbC12 aXNpYmxlIG9yIGFsbC1mcm96ZW4uCi0JCSAqCi0JCSAqIERvIHRoaXMgcmVnYXJkbGVzcyBvZiBh IGZ1bGwtcGFnZSBpbWFnZSBiZWluZyBhcHBsaWVkLCBzaW5jZSB0aGUKLQkJICogRlNNIGRhdGEg aXMgbm90IGluIHRoZSBwYWdlIGFueXdheS4KLQkJICovCi0JCWlmICh4bHJlYy0+ZmxhZ3MgJiBW SVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpCi0JCQlYTG9nUmVjb3JkUGFnZVdpdGhGcmVlU3BhY2Uo cmxvY2F0b3IsIGJsa25vLCBzcGFjZSk7Ci0JfQotCi0JLyoKLQkgKiBFdmVuIGlmIHdlIHNraXBw ZWQgdGhlIGhlYXAgcGFnZSB1cGRhdGUgZHVlIHRvIHRoZSBMU04gaW50ZXJsb2NrLCBpdCdzCi0J ICogc3RpbGwgc2FmZSB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwLiAgQW55IFdBTCByZWNv cmQgdGhhdCBjbGVhcnMKLQkgKiB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IGRvZXMgc28gYmVmb3Jl IGNoZWNraW5nIHRoZSBwYWdlIExTTiwgc28gYW55Ci0JICogYml0cyB0aGF0IG5lZWQgdG8gYmUg Y2xlYXJlZCB3aWxsIHN0aWxsIGJlIGNsZWFyZWQuCi0JICovCi0JaWYgKFhMb2dSZWFkQnVmZmVy Rm9yUmVkb0V4dGVuZGVkKHJlY29yZCwgMCwgUkJNX1pFUk9fT05fRVJST1IsIGZhbHNlLAotCQkJ CQkJCQkJICAmdm1idWZmZXIpID09IEJMS19ORUVEU19SRURPKQotCXsKLQkJUGFnZQkJdm1wYWdl ID0gQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlcik7Ci0JCVJlbGF0aW9uCXJlbG47Ci0JCXVpbnQ4CQl2 bWJpdHM7Ci0KLQkJLyogaW5pdGlhbGl6ZSB0aGUgcGFnZSBpZiBpdCB3YXMgcmVhZCBhcyB6ZXJv cyAqLwotCQlpZiAoUGFnZUlzTmV3KHZtcGFnZSkpCi0JCQlQYWdlSW5pdCh2bXBhZ2UsIEJMQ0tT WiwgMCk7Ci0KLQkJLyogcmVtb3ZlIFZJU0lCSUxJVFlNQVBfWExPR18qICovCi0JCXZtYml0cyA9 IHhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsKLQotCQkvKgotCQkgKiBY TG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZCBsb2NrZWQgdGhlIGJ1ZmZlci4gQnV0Ci0JCSAq IHZpc2liaWxpdHltYXBfc2V0IHdpbGwgaGFuZGxlIGxvY2tpbmcgaXRzZWxmLgotCQkgKi8KLQkJ TG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKLQotCQlyZWxuID0gQ3Jl YXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3IpOwotCi0JCXZpc2liaWxpdHltYXBfc2V0KHJl bG4sIGJsa25vLCBJbnZhbGlkQnVmZmVyLCBsc24sIHZtYnVmZmVyLAotCQkJCQkJICB4bHJlYy0+ c25hcHNob3RDb25mbGljdEhvcml6b24sIHZtYml0cyk7Ci0KLQkJUmVsZWFzZUJ1ZmZlcih2bWJ1 ZmZlcik7Ci0JCUZyZWVGYWtlUmVsY2FjaGVFbnRyeShyZWxuKTsKLQl9Ci0JZWxzZSBpZiAoQnVm ZmVySXNWYWxpZCh2bWJ1ZmZlcikpCi0JCVVubG9ja1JlbGVhc2VCdWZmZXIodm1idWZmZXIpOwot fQotCiAvKgogICogR2l2ZW4gYW4gImluZm9iaXRzIiBmaWVsZCBmcm9tIGFuIFhMb2cgcmVjb3Jk LCBzZXQgdGhlIGNvcnJlY3QgYml0cyBpbiB0aGUKICAqIGdpdmVuIGluZm9tYXNrIGFuZCBpbmZv bWFzazIgZm9yIHRoZSB0dXBsZSB0b3VjaGVkIGJ5IHRoZSByZWNvcmQuCkBAIC03NjksOCArNjMy LDggQEAgaGVhcF94bG9nX211bHRpX2luc2VydChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkg KgogCSAqIER1cmluZyByZWNvdmVyeSwgaG93ZXZlciwgbm8gY29uY3VycmVudCB3cml0ZXJzIGV4 aXN0LiBUaGVyZWZvcmUsCiAJICogdXBkYXRpbmcgdGhlIFZNIHdpdGhvdXQgaG9sZGluZyB0aGUg aGVhcCBwYWdlIGxvY2sgaXMgc2FmZSBlbm91Z2guIFRoaXMKLQkgKiBzYW1lIGFwcHJvYWNoIGlz IHRha2VuIHdoZW4gcmVwbGF5aW5nIHhsX2hlYXBfdmlzaWJsZSByZWNvcmRzIChzZWUKLQkgKiBo ZWFwX3hsb2dfdmlzaWJsZSgpKS4KKwkgKiBzYW1lIGFwcHJvYWNoIGlzIHRha2VuIHdoZW4gcmVw bGF5aW5nIFhMT0dfSEVBUDJfUFJVTkUqIHJlY29yZHMgKHNlZQorCSAqIGhlYXBfeGxvZ19wcnVu ZV9mcmVlemUoKSkuCiAJICovCiAJaWYgKCh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9G Uk9aRU5fU0VUKSAmJgogCQlYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZChyZWNvcmQsIDEs IFJCTV9aRVJPX09OX0VSUk9SLCBmYWxzZSwKQEAgLTc4MiwxMSArNjQ1LDExIEBAIGhlYXBfeGxv Z19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCWlmIChQYWdlSXNOZXco dm1wYWdlKSkKIAkJCVBhZ2VJbml0KHZtcGFnZSwgQkxDS1NaLCAwKTsKIAotCQl2aXNpYmlsaXR5 bWFwX3NldF92bWJpdHMoYmxrbm8sCi0JCQkJCQkJCSB2bWJ1ZmZlciwKLQkJCQkJCQkJIFZJU0lC SUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfRlJPWkVO LAotCQkJCQkJCQkgcmxvY2F0b3IpOworCQl2aXNpYmlsaXR5bWFwX3NldChibGtubywKKwkJCQkJ CSAgdm1idWZmZXIsCisJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJ ICBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCisJCQkJCQkgIHJsb2NhdG9yKTsKIAogCQlBc3Nl cnQoQnVmZmVySXNEaXJ0eSh2bWJ1ZmZlcikpOwogCQlQYWdlU2V0TFNOKHZtcGFnZSwgbHNuKTsK QEAgLTEzNjksOSArMTIzMiw2IEBAIGhlYXAyX3JlZG8oWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUDoKIAkJCWhlYXBfeGxvZ19w cnVuZV9mcmVlemUocmVjb3JkKTsKIAkJCWJyZWFrOwotCQljYXNlIFhMT0dfSEVBUDJfVklTSUJM RToKLQkJCWhlYXBfeGxvZ192aXNpYmxlKHJlY29yZCk7Ci0JCQlicmVhazsKIAkJY2FzZSBYTE9H X0hFQVAyX01VTFRJX0lOU0VSVDoKIAkJCWhlYXBfeGxvZ19tdWx0aV9pbnNlcnQocmVjb3JkKTsK IAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFw LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA0ZjcyMjBkMTdh Zi4uNDFiZmI2NzExYzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5l aGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0xMjUw LDggKzEyNTAsOCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFt cyAqcGFyYW1zLAogCQkJICovCiAJCQlQYWdlU2V0QWxsVmlzaWJsZShwcnN0YXRlLnBhZ2UpOwog CQkJUGFnZUNsZWFyUHJ1bmFibGUocHJzdGF0ZS5wYWdlKTsKLQkJCXZpc2liaWxpdHltYXBfc2V0 X3ZtYml0cyhwcnN0YXRlLmJsb2NrLCBwcnN0YXRlLnZtYnVmZmVyLCBwcnN0YXRlLm5ld192bWJp dHMsCi0JCQkJCQkJCQkgcHJzdGF0ZS5yZWxhdGlvbi0+cmRfbG9jYXRvcik7CisJCQl2aXNpYmls aXR5bWFwX3NldChwcnN0YXRlLmJsb2NrLCBwcnN0YXRlLnZtYnVmZmVyLCBwcnN0YXRlLm5ld192 bWJpdHMsCisJCQkJCQkJICBwcnN0YXRlLnJlbGF0aW9uLT5yZF9sb2NhdG9yKTsKIAkJfQogCiAJ CU1hcmtCdWZmZXJEaXJ0eShwcnN0YXRlLmJ1ZmZlcik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMKaW5kZXggNjNlNjE5OTI0MWMuLmY2OThjMmQ4OTliIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0xOTM5LDExICsxOTM5LDExIEBAIGxhenlfc2Nhbl9uZXdf b3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBCbG9ja051bWJlciBibGtu bywKIAogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCQlQYWdlQ2xlYXJQcnVuYWJsZShw YWdlKTsKLQkJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhibGtubywKLQkJCQkJCQkJCSB2bWJ1 ZmZlciwKLQkJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKLQkJCQkJCQkJCSBW SVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCi0JCQkJCQkJCQkgdmFjcmVsLT5yZWwtPnJkX2xvY2F0 b3IpOworCQkJdmlzaWJpbGl0eW1hcF9zZXQoYmxrbm8sCisJCQkJCQkJICB2bWJ1ZmZlciwKKwkJ CQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJCSAgVklTSUJJTElUWU1B UF9BTExfRlJPWkVOLAorCQkJCQkJCSAgdmFjcmVsLT5yZWwtPnJkX2xvY2F0b3IpOwogCiAJCQkv KgogCQkJICogRW1pdCBXQUwgZm9yIHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgb24gdGhlIGhlYXAg cGFnZSBhbmQKQEAgLTI4MjEsOSArMjgyMSw5IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJl bFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCQkgKi8K IAkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCVBhZ2VDbGVhclBydW5hYmxlKHBhZ2UpOwot CQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoYmxrbm8sCi0JCQkJCQkJCSB2bWJ1ZmZlciwgdm1m bGFncywKLQkJCQkJCQkJIHZhY3JlbC0+cmVsLT5yZF9sb2NhdG9yKTsKKwkJdmlzaWJpbGl0eW1h cF9zZXQoYmxrbm8sCisJCQkJCQkgIHZtYnVmZmVyLCB2bWZsYWdzLAorCQkJCQkJICB2YWNyZWwt PnJlbC0+cmRfbG9jYXRvcik7CiAJCWNvbmZsaWN0X3hpZCA9IG5ld2VzdF9saXZlX3hpZDsKIAl9 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwppbmRleCBlMjFiOTYyODFh Ni4uMjFlODljMzhmMGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2li aWxpdHltYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMK QEAgLTE0LDggKzE0LDcgQEAKICAqCQl2aXNpYmlsaXR5bWFwX2NsZWFyICAtIGNsZWFyIGJpdHMg Zm9yIG9uZSBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcAogICoJCXZpc2liaWxpdHltYXBfcGlu CSAtIHBpbiBhIG1hcCBwYWdlIGZvciBzZXR0aW5nIGEgYml0CiAgKgkJdmlzaWJpbGl0eW1hcF9w aW5fb2sgLSBjaGVjayB3aGV0aGVyIGNvcnJlY3QgbWFwIHBhZ2UgaXMgYWxyZWFkeSBwaW5uZWQK LSAqCQl2aXNpYmlsaXR5bWFwX3NldAkgLSBzZXQgYml0KHMpIGluIGEgcHJldmlvdXNseSBwaW5u ZWQgcGFnZSBhbmQgbG9nCi0gKgkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzIC0gc2V0IGJpdChz KSBpbiBhIHBpbm5lZCBwYWdlCisgKgkJdmlzaWJpbGl0eW1hcF9zZXQJIC0gc2V0IGJpdChzKSBp biBhIHByZXZpb3VzbHkgcGlubmVkIHBhZ2UKICAqCQl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMg LSBnZXQgc3RhdHVzIG9mIGJpdHMKICAqCQl2aXNpYmlsaXR5bWFwX2NvdW50ICAtIGNvdW50IG51 bWJlciBvZiBiaXRzIHNldCBpbiB2aXNpYmlsaXR5IG1hcAogICoJCXZpc2liaWxpdHltYXBfcHJl cGFyZV90cnVuY2F0ZSAtCkBAIC0zNSwyMSArMzQsMzEgQEAKICAqIGlzIHNldCwgd2Uga25vdyB0 aGUgY29uZGl0aW9uIGlzIHRydWUsIGJ1dCBpZiBhIGJpdCBpcyBub3Qgc2V0LCBpdCBtaWdodCBv cgogICogbWlnaHQgbm90IGJlIHRydWUuCiAgKgotICogQ2xlYXJpbmcgdmlzaWJpbGl0eSBtYXAg Yml0cyBpcyBub3Qgc2VwYXJhdGVseSBXQUwtbG9nZ2VkLiAgVGhlIGNhbGxlcnMKLSAqIG11c3Qg bWFrZSBzdXJlIHRoYXQgd2hlbmV2ZXIgYSBiaXQgaXMgY2xlYXJlZCwgdGhlIGJpdCBpcyBjbGVh cmVkIG9uIFdBTAotICogcmVwbGF5IG9mIHRoZSB1cGRhdGluZyBvcGVyYXRpb24gYXMgd2VsbC4K LSAqCi0gKiBXaGVuIHdlICpzZXQqIGEgdmlzaWJpbGl0eSBtYXAgZHVyaW5nIFZBQ1VVTSwgd2Ug bXVzdCB3cml0ZSBXQUwuICBUaGlzIG1heQotICogc2VlbSBjb3VudGVyaW50dWl0aXZlLCBzaW5j ZSB0aGUgYml0IGlzIGJhc2ljYWxseSBhIGhpbnQ6IGlmIGl0IGlzIGNsZWFyLAotICogaXQgbWF5 IHN0aWxsIGJlIHRoZSBjYXNlIHRoYXQgZXZlcnkgdHVwbGUgb24gdGhlIHBhZ2UgaXMgdmlzaWJs ZSB0byBhbGwKLSAqIHRyYW5zYWN0aW9uczsgd2UganVzdCBkb24ndCBrbm93IHRoYXQgZm9yIGNl cnRhaW4uICBUaGUgZGlmZmljdWx0eSBpcyB0aGF0Ci0gKiB0aGVyZSBhcmUgdHdvIGJpdHMgd2hp Y2ggYXJlIHR5cGljYWxseSBzZXQgdG9nZXRoZXI6IHRoZSBQRF9BTExfVklTSUJMRSBiaXQKLSAq IG9uIHRoZSBwYWdlIGl0c2VsZiwgYW5kIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQuICBJZiBhIGNy YXNoIG9jY3VycyBhZnRlciB0aGUKLSAqIHZpc2liaWxpdHkgbWFwIHBhZ2UgbWFrZXMgaXQgdG8g ZGlzayBhbmQgYmVmb3JlIHRoZSB1cGRhdGVkIGhlYXAgcGFnZSBtYWtlcwotICogaXQgdG8gZGlz aywgcmVkbyBtdXN0IHNldCB0aGUgYml0IG9uIHRoZSBoZWFwIHBhZ2UuICBPdGhlcndpc2UsIHRo ZSBuZXh0Ci0gKiBpbnNlcnQsIHVwZGF0ZSwgb3IgZGVsZXRlIG9uIHRoZSBoZWFwIHBhZ2Ugd2ls bCBmYWlsIHRvIHJlYWxpemUgdGhhdCB0aGUKLSAqIHZpc2liaWxpdHkgbWFwIGJpdCBtdXN0IGJl IGNsZWFyZWQsIHBvc3NpYmx5IGNhdXNpbmcgaW5kZXgtb25seSBzY2FucyB0bwotICogcmV0dXJu IHdyb25nIGFuc3dlcnMuCisgKiBDaGFuZ2VzIHRvIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXRzIGFy ZSBub3Qgc2VwYXJhdGVseSBXQUwtbG9nZ2VkLiBDYWxsZXJzCisgKiBtdXN0IG1ha2Ugc3VyZSB0 aGF0IHdoZW5ldmVyIGEgdmlzaWJpbGl0eSBtYXAgYml0IGlzIGNsZWFyZWQsIHRoZSBiaXQgaXMK KyAqIGNsZWFyZWQgb24gV0FMIHJlcGxheSBvZiB0aGUgdXBkYXRpbmcgb3BlcmF0aW9uLiBBbmQg d2hlbmV2ZXIgYSB2aXNpYmlsaXR5CisgKiBtYXAgYml0IGlzIHNldCwgdGhlIGJpdCBpcyBzZXQg b24gV0FMIHJlcGxheSBvZiB0aGUgb3BlcmF0aW9uIHRoYXQgcmVuZGVyZWQKKyAqIHRoZSBwYWdl IGFsbC12aXNpYmxlL2FsbC1mcm96ZW4uCisgKgorICogVGhlIHZpc2liaWxpdHkgbWFwIGJpdHMg b3BlcmF0ZSBhcyBhIGhpbnQgaW4gb25lIGRpcmVjdGlvbjogaWYgdGhleSBhcmUKKyAqIGNsZWFy LCBpdCBtYXkgc3RpbGwgYmUgdGhlIGNhc2UgdGhhdCBldmVyeSB0dXBsZSBvbiB0aGUgcGFnZSBp cyB2aXNpYmxlIHRvCisgKiBhbGwgdHJhbnNhY3Rpb25zICh3ZSBqdXN0IGRvbid0IGtub3cgdGhh dCBmb3IgY2VydGFpbikuIEhvd2V2ZXIsIGlmIHRoZXkKKyAqIGFyZSBzZXQsIHdlIG1heSBza2lw IHZhY3V1bWluZyBwYWdlcyBhbmQgaW5jb3JyZWN0bHkgYWR2YW5jZSByZWxmcm96ZW54aWQKKyAq IG9yIHNraXAgcmVhZGluZyBoZWFwIHBhZ2VzIGZvciBhbiBpbmRleC1vbmx5IHNjYW4gYW5kIHJl dHVybiB3cm9uZyByZXN1bHRzLgorICoKKyAqIEFkZGl0aW9uYWxseSwgaXQgaXMgY3JpdGljYWwg dGhhdCB0aGUgaGVhcC1wYWdlIGxldmVsIFBEX0FMTF9WSVNJQkxFIGJpdCBiZQorICogY29ycmVj dGx5IHNldCBhbmQgY2xlYXJlZCBhbG9uZyB3aXRoIHRoZSBWTSBiaXRzLgorICoKKyAqIFdoZW4g Y2xlYXJpbmcgdGhlIFZNLCBpZiBhIGNyYXNoIG9jY3VycyBhZnRlciB0aGUgaGVhcCBwYWdlIG1h a2VzIGl0IHRvCisgKiBkaXNrIGJ1dCBiZWZvcmUgdGhlIFZNIHBhZ2UgbWFrZXMgaXQgdG8gZGlz aywgcmVwbGF5IG11c3QgY2xlYXIgdGhlIFZNIG9yCisgKiB0aGUgbmV4dCBpbmRleC1vbmx5IHNj YW4gY2FuIHJldHVybiB3cm9uZyByZXN1bHRzIG9yIHZhY3V1bSBtYXkgaW5jb3JyZWN0bHkKKyAq IGFkdmFuY2UgcmVsZnJvemVueGlkLgorICoKKyAqIFdoZW4gc2V0dGluZyB0aGUgVk0sIGlmIGEg Y3Jhc2ggb2NjdXJzIGFmdGVyIHRoZSB2aXNpYmlsaXR5IG1hcCBwYWdlIG1ha2VzCisgKiBpdCB0 byBkaXNrIGFuZCBiZWZvcmUgdGhlIHVwZGF0ZWQgaGVhcCBwYWdlIG1ha2VzIGl0IHRvIGRpc2ss IHJlZG8gbXVzdCBzZXQKKyAqIHRoZSBiaXQgb24gdGhlIGhlYXAgcGFnZS4gT3RoZXJ3aXNlLCB0 aGUgbmV4dCBpbnNlcnQsIHVwZGF0ZSwgb3IgZGVsZXRlIG9uCisgKiB0aGUgaGVhcCBwYWdlIHdp bGwgZmFpbCB0byByZWFsaXplIHRoYXQgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBtdXN0IGJlCisg KiBjbGVhcmVkLCBwb3NzaWJseSBjYXVzaW5nIGluZGV4LW9ubHkgc2NhbnMgdG8gcmV0dXJuIHdy b25nIGFuc3dlcnMuCiAgKgogICogVkFDVVVNIHdpbGwgbm9ybWFsbHkgc2tpcCBwYWdlcyBmb3Ig d2hpY2ggdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBpcyBzZXQ7CiAgKiBzdWNoIHBhZ2VzIGNhbid0 IGNvbnRhaW4gYW55IGRlYWQgdHVwbGVzIGFuZCB0aGVyZWZvcmUgZG9uJ3QgbmVlZCB2YWN1dW1p bmcuCkBAIC0yMjIsMTEyICsyMzEsMTEgQEAgdmlzaWJpbGl0eW1hcF9waW5fb2soQmxvY2tOdW1i ZXIgaGVhcEJsaywgQnVmZmVyIHZtYnVmKQogCXJldHVybiBCdWZmZXJJc1ZhbGlkKHZtYnVmKSAm JiBCdWZmZXJHZXRCbG9ja051bWJlcih2bWJ1ZikgPT0gbWFwQmxvY2s7CiB9CiAKLS8qCi0gKgl2 aXNpYmlsaXR5bWFwX3NldCAtIHNldCBiaXQocykgb24gYSBwcmV2aW91c2x5IHBpbm5lZCBwYWdl Ci0gKgotICogcmVjcHRyIGlzIHRoZSBMU04gb2YgdGhlIFhMT0cgcmVjb3JkIHdlJ3JlIHJlcGxh eWluZywgaWYgd2UncmUgaW4gcmVjb3ZlcnksCi0gKiBvciBJbnZhbGlkWExvZ1JlY1B0ciBpbiBu b3JtYWwgcnVubmluZy4gIFRoZSBWTSBwYWdlIExTTiBpcyBhZHZhbmNlZCB0byB0aGUKLSAqIG9u ZSBwcm92aWRlZDsgaW4gbm9ybWFsIHJ1bm5pbmcsIHdlIGdlbmVyYXRlIGEgbmV3IFhMT0cgcmVj b3JkIGFuZCBzZXQgdGhlCi0gKiBwYWdlIExTTiB0byB0aGF0IHZhbHVlICh0aG91Z2ggdGhlIGhl YXAgcGFnZSdzIExTTiBtYXkgKm5vdCogYmUgdXBkYXRlZDsKLSAqIHNlZSBiZWxvdykuICBjdXRv ZmZfeGlkIGlzIHRoZSBsYXJnZXN0IHhtaW4gb24gdGhlIHBhZ2UgYmVpbmcgbWFya2VkCi0gKiBh bGwtdmlzaWJsZTsgaXQgaXMgbmVlZGVkIGZvciBIb3QgU3RhbmRieSwgYW5kIGNhbiBiZSBJbnZh bGlkVHJhbnNhY3Rpb25JZAotICogaWYgdGhlIHBhZ2UgY29udGFpbnMgbm8gdHVwbGVzLiAgSXQg Y2FuIGFsc28gYmUgc2V0IHRvIEludmFsaWRUcmFuc2FjdGlvbklkCi0gKiB3aGVuIGEgcGFnZSB0 aGF0IGlzIGFscmVhZHkgYWxsLXZpc2libGUgaXMgYmVpbmcgbWFya2VkIGFsbC1mcm96ZW4uCi0g KgotICogQ2FsbGVyIGlzIGV4cGVjdGVkIHRvIHNldCB0aGUgaGVhcCBwYWdlJ3MgUERfQUxMX1ZJ U0lCTEUgYml0IGJlZm9yZSBjYWxsaW5nCi0gKiB0aGlzIGZ1bmN0aW9uLiBFeGNlcHQgaW4gcmVj b3ZlcnksIGNhbGxlciBzaG91bGQgYWxzbyBwYXNzIHRoZSBoZWFwCi0gKiBidWZmZXIuIFdoZW4g Y2hlY2tzdW1zIGFyZSBlbmFibGVkIGFuZCB3ZSdyZSBub3QgaW4gcmVjb3ZlcnksIHdlIG11c3Qg YWRkCi0gKiB0aGUgaGVhcCBidWZmZXIgdG8gdGhlIFdBTCBjaGFpbiB0byBwcm90ZWN0IGl0IGZy b20gYmVpbmcgdG9ybi4KLSAqCi0gKiBZb3UgbXVzdCBwYXNzIGEgYnVmZmVyIGNvbnRhaW5pbmcg dGhlIGNvcnJlY3QgbWFwIHBhZ2UgdG8gdGhpcyBmdW5jdGlvbi4KLSAqIENhbGwgdmlzaWJpbGl0 eW1hcF9waW4gZmlyc3QgdG8gcGluIHRoZSByaWdodCBvbmUuIFRoaXMgZnVuY3Rpb24gZG9lc24n dCBkbwotICogYW55IEkvTy4KLSAqLwotdm9pZAotdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24g cmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKLQkJCQkgIFhMb2dSZWNQ dHIgcmVjcHRyLCBCdWZmZXIgdm1CdWYsIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwKLQkJCQkg IHVpbnQ4IGZsYWdzKQotewotCUJsb2NrTnVtYmVyIG1hcEJsb2NrID0gSEVBUEJMS19UT19NQVBC TE9DSyhoZWFwQmxrKTsKLQl1aW50MzIJCW1hcEJ5dGUgPSBIRUFQQkxLX1RPX01BUEJZVEUoaGVh cEJsayk7Ci0JdWludDgJCW1hcE9mZnNldCA9IEhFQVBCTEtfVE9fT0ZGU0VUKGhlYXBCbGspOwot CVBhZ2UJCXBhZ2U7Ci0JdWludDgJICAgKm1hcDsKLQl1aW50OAkJc3RhdHVzOwotCi0jaWZkZWYg VFJBQ0VfVklTSUJJTElUWU1BUAotCWVsb2coREVCVUcxLCAidm1fc2V0IGZsYWdzIDB4JTAyWCBm b3IgJXMgJWQiLAotCQkgZmxhZ3MsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksIGhlYXBC bGspOwotI2VuZGlmCi0KLQlBc3NlcnQoSW5SZWNvdmVyeSB8fCAhWExvZ1JlY1B0cklzVmFsaWQo cmVjcHRyKSk7Ci0JQXNzZXJ0KEluUmVjb3ZlcnkgfHwgUGFnZUlzQWxsVmlzaWJsZShCdWZmZXJH ZXRQYWdlKGhlYXBCdWYpKSk7Ci0JQXNzZXJ0KChmbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURf QklUUykgPT0gZmxhZ3MpOwotCi0JLyogTXVzdCBuZXZlciBzZXQgYWxsX2Zyb3plbiBiaXQgd2l0 aG91dCBhbHNvIHNldHRpbmcgYWxsX3Zpc2libGUgYml0ICovCi0JQXNzZXJ0KGZsYWdzICE9IFZJ U0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7Ci0KLQkvKiBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIHJp Z2h0IGhlYXAgcGFnZSBwaW5uZWQsIGlmIHByZXNlbnQgKi8KLQlpZiAoQnVmZmVySXNWYWxpZCho ZWFwQnVmKSAmJiBCdWZmZXJHZXRCbG9ja051bWJlcihoZWFwQnVmKSAhPSBoZWFwQmxrKQotCQll bG9nKEVSUk9SLCAid3JvbmcgaGVhcCBidWZmZXIgcGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0 Iik7Ci0KLQlBc3NlcnQoIUJ1ZmZlcklzVmFsaWQoaGVhcEJ1ZikgfHwKLQkJICAgQnVmZmVySXNM b2NrZWRCeU1lSW5Nb2RlKGhlYXBCdWYsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSkpOwotCi0JLyog Q2hlY2sgdGhhdCB3ZSBoYXZlIHRoZSByaWdodCBWTSBwYWdlIHBpbm5lZCAqLwotCWlmICghQnVm ZmVySXNWYWxpZCh2bUJ1ZikgfHwgQnVmZmVyR2V0QmxvY2tOdW1iZXIodm1CdWYpICE9IG1hcEJs b2NrKQotCQllbG9nKEVSUk9SLCAid3JvbmcgVk0gYnVmZmVyIHBhc3NlZCB0byB2aXNpYmlsaXR5 bWFwX3NldCIpOwotCi0JcGFnZSA9IEJ1ZmZlckdldFBhZ2Uodm1CdWYpOwotCW1hcCA9ICh1aW50 OCAqKSBQYWdlR2V0Q29udGVudHMocGFnZSk7Ci0JTG9ja0J1ZmZlcih2bUJ1ZiwgQlVGRkVSX0xP Q0tfRVhDTFVTSVZFKTsKLQotCXN0YXR1cyA9IChtYXBbbWFwQnl0ZV0gPj4gbWFwT2Zmc2V0KSAm IFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsKLQlpZiAoZmxhZ3MgIT0gc3RhdHVzKQotCXsKLQkJ U1RBUlRfQ1JJVF9TRUNUSU9OKCk7Ci0KLQkJbWFwW21hcEJ5dGVdIHw9IChmbGFncyA8PCBtYXBP ZmZzZXQpOwotCQlNYXJrQnVmZmVyRGlydHkodm1CdWYpOwotCi0JCWlmIChSZWxhdGlvbk5lZWRz V0FMKHJlbCkpCi0JCXsKLQkJCWlmICghWExvZ1JlY1B0cklzVmFsaWQocmVjcHRyKSkKLQkJCXsK LQkJCQlBc3NlcnQoIUluUmVjb3ZlcnkpOwotCQkJCXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUo cmVsLCBoZWFwQnVmLCB2bUJ1ZiwgY3V0b2ZmX3hpZCwgZmxhZ3MpOwotCi0JCQkJLyoKLQkJCQkg KiBJZiBkYXRhIGNoZWNrc3VtcyBhcmUgZW5hYmxlZCAob3Igd2FsX2xvZ19oaW50cz1vbiksIHdl Ci0JCQkJICogbmVlZCB0byBwcm90ZWN0IHRoZSBoZWFwIHBhZ2UgZnJvbSBiZWluZyB0b3JuLgot CQkJCSAqCi0JCQkJICogSWYgbm90LCB0aGVuIHdlIG11c3QgKm5vdCogdXBkYXRlIHRoZSBoZWFw IHBhZ2UncyBMU04uIEluCi0JCQkJICogdGhpcyBjYXNlLCB0aGUgRlBJIGZvciB0aGUgaGVhcCBw YWdlIHdhcyBvbWl0dGVkIGZyb20gdGhlCi0JCQkJICogV0FMIHJlY29yZCBpbnNlcnRlZCBhYm92 ZSwgc28gaXQgd291bGQgYmUgaW5jb3JyZWN0IHRvCi0JCQkJICogdXBkYXRlIHRoZSBoZWFwIHBh Z2UncyBMU04uCi0JCQkJICovCi0JCQkJaWYgKFhMb2dIaW50Qml0SXNOZWVkZWQoKSkKLQkJCQl7 Ci0JCQkJCVBhZ2UJCWhlYXBQYWdlID0gQnVmZmVyR2V0UGFnZShoZWFwQnVmKTsKLQotCQkJCQlQ YWdlU2V0TFNOKGhlYXBQYWdlLCByZWNwdHIpOwotCQkJCX0KLQkJCX0KLQkJCVBhZ2VTZXRMU04o cGFnZSwgcmVjcHRyKTsKLQkJfQotCi0JCUVORF9DUklUX1NFQ1RJT04oKTsKLQl9Ci0KLQlMb2Nr QnVmZmVyKHZtQnVmLCBCVUZGRVJfTE9DS19VTkxPQ0spOwotfQotCiAvKgogICogU2V0IFZNICh2 aXNpYmlsaXR5IG1hcCkgZmxhZ3MgaW4gdGhlIFZNIGJsb2NrIGluIHZtQnVmLgogICoKICAqIFRo aXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIGNhbGxlcnMgdGhhdCBsb2cgVk0gY2hhbmdlcyB0 b2dldGhlcgogICogd2l0aCB0aGUgaGVhcCBwYWdlIG1vZGlmaWNhdGlvbnMgdGhhdCByZW5kZXJl ZCB0aGUgcGFnZSBhbGwtdmlzaWJsZS4KLSAqIENhbGxlcnMgdGhhdCBsb2cgVk0gY2hhbmdlcyBz ZXBhcmF0ZWx5IHNob3VsZCB1c2UgdmlzaWJpbGl0eW1hcF9zZXQoKS4KICAqCiAgKiB2bUJ1ZiBt dXN0IGJlIHBpbm5lZCBhbmQgZXhjbHVzaXZlbHkgbG9ja2VkLCBhbmQgaXQgbXVzdCBjb3ZlciB0 aGUgVk0gYml0cwogICogY29ycmVzcG9uZGluZyB0byBoZWFwQmxrLgpAQCAtMzQzLDkgKzI1MSw5 IEBAIHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywg QnVmZmVyIGhlYXBCdWYsCiAgKiBybG9jYXRvciBpcyB1c2VkIG9ubHkgZm9yIGRlYnVnZ2luZyBt ZXNzYWdlcy4KICAqLwogdm9pZAotdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKEJsb2NrTnVtYmVy IGhlYXBCbGssCi0JCQkJCQkgQnVmZmVyIHZtQnVmLCB1aW50OCBmbGFncywKLQkJCQkJCSBjb25z dCBSZWxGaWxlTG9jYXRvciBybG9jYXRvcikKK3Zpc2liaWxpdHltYXBfc2V0KEJsb2NrTnVtYmVy IGhlYXBCbGssCisJCQkJICBCdWZmZXIgdm1CdWYsIHVpbnQ4IGZsYWdzLAorCQkJCSAgY29uc3Qg UmVsRmlsZUxvY2F0b3IgcmxvY2F0b3IpCiB7CiAJQmxvY2tOdW1iZXIgbWFwQmxvY2sgPSBIRUFQ QkxLX1RPX01BUEJMT0NLKGhlYXBCbGspOwogCXVpbnQzMgkJbWFwQnl0ZSA9IEhFQVBCTEtfVE9f TUFQQllURShoZWFwQmxrKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVz Yy9oZWFwZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKaW5k ZXggMDJhZTkxNjUzYzEuLjc1YWU2ZjlkMzc1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3Mvcm1ncmRlc2MvaGVhcGRlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mv aGVhcGRlc2MuYwpAQCAtMzQ5LDEzICszNDksNiBAQCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVm LCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJCX0KIAkJfQogCX0KLQllbHNlIGlmIChpbmZv ID09IFhMT0dfSEVBUDJfVklTSUJMRSkKLQl7Ci0JCXhsX2hlYXBfdmlzaWJsZSAqeGxyZWMgPSAo eGxfaGVhcF92aXNpYmxlICopIHJlYzsKLQotCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInNuYXBz aG90Q29uZmxpY3RIb3Jpem9uOiAldSwgZmxhZ3M6IDB4JTAyWCIsCi0JCQkJCQkgeGxyZWMtPnNu YXBzaG90Q29uZmxpY3RIb3Jpem9uLCB4bHJlYy0+ZmxhZ3MpOwotCX0KIAllbHNlIGlmIChpbmZv ID09IFhMT0dfSEVBUDJfTVVMVElfSU5TRVJUKQogCXsKIAkJeGxfaGVhcF9tdWx0aV9pbnNlcnQg KnhscmVjID0gKHhsX2hlYXBfbXVsdGlfaW5zZXJ0ICopIHJlYzsKQEAgLTQ2MSw5ICs0NTQsNiBA QCBoZWFwMl9pZGVudGlmeSh1aW50OCBpbmZvKQogCQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfVkFD VVVNX0NMRUFOVVA6CiAJCQlpZCA9ICJQUlVORV9WQUNVVU1fQ0xFQU5VUCI7CiAJCQlicmVhazsK LQkJY2FzZSBYTE9HX0hFQVAyX1ZJU0lCTEU6Ci0JCQlpZCA9ICJWSVNJQkxFIjsKLQkJCWJyZWFr OwogCQljYXNlIFhMT0dfSEVBUDJfTVVMVElfSU5TRVJUOgogCQkJaWQgPSAiTVVMVElfSU5TRVJU IjsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9kZWNvZGUuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKaW5k ZXggMjFmMDM4NjRhNjYuLjNjMDI3YmNiMmY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvZGVjb2RlLmMKQEAgLTQ0OCw3ICs0NDgsNiBAQCBoZWFwMl9kZWNvZGUoTG9naWNhbERl Y29kaW5nQ29udGV4dCAqY3R4LCBYTG9nUmVjb3JkQnVmZmVyICpidWYpCiAJCWNhc2UgWExPR19I RUFQMl9QUlVORV9PTl9BQ0NFU1M6CiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NB TjoKIAkJY2FzZSBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9DTEVBTlVQOgotCQljYXNlIFhMT0df SEVBUDJfVklTSUJMRToKIAkJY2FzZSBYTE9HX0hFQVAyX0xPQ0tfVVBEQVRFRDoKIAkJCWJyZWFr OwogCQlkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRi eS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCmluZGV4IGYzYWQ5MGM3Yzdh Li5kZTkwOTJmZGY1YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRi eS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwpAQCAtNDc2LDEwICs0 NzYsMTEgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25J ZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKIAkvKgogCSAqIElmIHdlIGdldCBwYXNzZWQgSW52 YWxpZFRyYW5zYWN0aW9uSWQgdGhlbiB3ZSBkbyBub3RoaW5nIChubyBjb25mbGljdCkuCiAJICoK LQkgKiBUaGlzIGNhbiBoYXBwZW4gd2hlbiByZXBsYXlpbmcgYWxyZWFkeS1hcHBsaWVkIFdBTCBy ZWNvcmRzIGFmdGVyIGEKLQkgKiBzdGFuZGJ5IGNyYXNoIG9yIHJlc3RhcnQsIG9yIHdoZW4gcmVw bGF5aW5nIGFuIFhMT0dfSEVBUDJfVklTSUJMRQotCSAqIHJlY29yZCB0aGF0IG1hcmtzIGFzIGZy b3plbiBhIHBhZ2Ugd2hpY2ggd2FzIGFscmVhZHkgYWxsLXZpc2libGUuICBJdCdzCi0JICogYWxz byBxdWl0ZSBjb21tb24gd2l0aCByZWNvcmRzIGdlbmVyYXRlZCBkdXJpbmcgaW5kZXggZGVsZXRp b24KKwkgKiBUaGlzIGNhbiBoYXBwZW4gd2hlbmV2ZXIgdGhlIGNoYW5nZXMgaW4gdGhlIFdBTCBy ZWNvcmQgZG8gbm90IGFmZmVjdAorCSAqIHZpc2liaWxpdHkgb24gYSBzdGFuZGJ5LiBGb3IgZXhh bXBsZTogYSByZWNvcmQgdGhhdCBvbmx5IGZyZWV6ZXMgYW4KKwkgKiB4bWF4IGZyb20gYSBsb2Nr ZXIuCisJICoKKwkgKiBJdCdzIGFsc28gcXVpdGUgY29tbW9uIHdpdGggcmVjb3JkcyBnZW5lcmF0 ZWQgZHVyaW5nIGluZGV4IGRlbGV0aW9uCiAJICogKG9yaWdpbmFsIGV4ZWN1dGlvbiBvZiB0aGUg ZGVsZXRpb24gY2FuIHJlYXNvbiB0aGF0IGEgcmVjb3ZlcnkgY29uZmxpY3QKIAkgKiB3aGljaCBp cyBzdWZmaWNpZW50IGZvciB0aGUgZGVsZXRpb24gb3BlcmF0aW9uIG11c3QgdGFrZSBwbGFjZSBi ZWZvcmUKIAkgKiByZXBsYXkgb2YgdGhlIGRlbGV0aW9uIHJlY29yZCBpdHNlbGYpLgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtX3hsb2cuaAppbmRleCBjZTM1NjZiYTk0OS4uNTE2ODA2ZmNjYTIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW1feGxvZy5oCkBAIC02MCw3ICs2MCw3IEBACiAjZGVmaW5lIFhMT0dfSEVBUDJf UFJVTkVfT05fQUNDRVNTCQkweDEwCiAjZGVmaW5lIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX1ND QU4JMHgyMAogI2RlZmluZSBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9DTEVBTlVQCTB4MzAKLSNk ZWZpbmUgWExPR19IRUFQMl9WSVNJQkxFCQkweDQwCisvKiAweDQwIHdhcyBYTE9HX0hFQVAyX1ZJ U0lCTEUgKi8KICNkZWZpbmUgWExPR19IRUFQMl9NVUxUSV9JTlNFUlQgMHg1MAogI2RlZmluZSBY TE9HX0hFQVAyX0xPQ0tfVVBEQVRFRCAweDYwCiAjZGVmaW5lIFhMT0dfSEVBUDJfTkVXX0NJRAkJ MHg3MApAQCAtNDQzLDIwICs0NDMsNiBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX2lucGxhY2UK IAogI2RlZmluZSBNaW5TaXplT2ZIZWFwSW5wbGFjZQkob2Zmc2V0b2YoeGxfaGVhcF9pbnBsYWNl LCBubXNncykgKyBzaXplb2YoaW50KSkKIAotLyoKLSAqIFRoaXMgaXMgd2hhdCB3ZSBuZWVkIHRv IGtub3cgYWJvdXQgc2V0dGluZyBhIHZpc2liaWxpdHkgbWFwIGJpdAotICoKLSAqIEJhY2t1cCBi bGsgMDogdmlzaWJpbGl0eSBtYXAgYnVmZmVyCi0gKiBCYWNrdXAgYmxrIDE6IGhlYXAgYnVmZmVy Ci0gKi8KLXR5cGVkZWYgc3RydWN0IHhsX2hlYXBfdmlzaWJsZQotewotCVRyYW5zYWN0aW9uSWQg c25hcHNob3RDb25mbGljdEhvcml6b247Ci0JdWludDgJCWZsYWdzOwotfSB4bF9oZWFwX3Zpc2li bGU7Ci0KLSNkZWZpbmUgU2l6ZU9mSGVhcFZpc2libGUgKG9mZnNldG9mKHhsX2hlYXBfdmlzaWJs ZSwgZmxhZ3MpICsgc2l6ZW9mKHVpbnQ4KSkKLQogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9uZXdf Y2lkCiB7CiAJLyoKQEAgLTUwMCwxMSArNDg2LDYgQEAgZXh0ZXJuIHZvaWQgaGVhcDJfZGVzYyhT dHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwogZXh0ZXJuIGNvbnN0IGNo YXIgKmhlYXAyX2lkZW50aWZ5KHVpbnQ4IGluZm8pOwogZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2xv Z2ljYWxfcmV3cml0ZShYTG9nUmVhZGVyU3RhdGUgKnIpOwogCi1leHRlcm4gWExvZ1JlY1B0ciBs b2dfaGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLAotCQkJCQkJ CQkgICBCdWZmZXIgdm1fYnVmZmVyLAotCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIHNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uLAotCQkJCQkJCQkgICB1aW50OCB2bWZsYWdzKTsKLQogLyogaW4gaGVh cGRlc2MuYywgc28gaXQgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGZyb250ZW5kL2JhY2tlbmQgY29k ZSAqLwogZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2Rlc2VyaWFsaXplX3BydW5lX2FuZF9mcmVlemUo Y2hhciAqY3Vyc29yLCB1aW50MTYgZmxhZ3MsCiAJCQkJCQkJCQkJCQkgICBpbnQgKm5wbGFucywg eGxocF9mcmVlemVfcGxhbiAqKnBsYW5zLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNz L3Zpc2liaWxpdHltYXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKaW5k ZXggNTJjZGU1NmJlODYuLmU0ZTBjZmE5ODllIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nl c3MvdmlzaWJpbGl0eW1hcC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFw LmgKQEAgLTE1LDcgKzE1LDYgQEAKICNkZWZpbmUgVklTSUJJTElUWU1BUF9ICiAKICNpbmNsdWRl ICJhY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCIKLSNpbmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMu aCIKICNpbmNsdWRlICJzdG9yYWdlL2Jsb2NrLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWYuaCIK ICNpbmNsdWRlICJzdG9yYWdlL3JlbGZpbGVsb2NhdG9yLmgiCkBAIC0zMiwxNSArMzEsOSBAQCBl eHRlcm4gYm9vbCB2aXNpYmlsaXR5bWFwX2NsZWFyKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIg aGVhcEJsaywKIGV4dGVybiB2b2lkIHZpc2liaWxpdHltYXBfcGluKFJlbGF0aW9uIHJlbCwgQmxv Y2tOdW1iZXIgaGVhcEJsaywKIAkJCQkJCQkgIEJ1ZmZlciAqdm1idWYpOwogZXh0ZXJuIGJvb2wg dmlzaWJpbGl0eW1hcF9waW5fb2soQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIHZtYnVmKTsK LWV4dGVybiB2b2lkIHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwKLQkJCQkJCQkgIEJs b2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAotCQkJCQkJCSAgWExvZ1JlY1B0ciBy ZWNwdHIsCi0JCQkJCQkJICBCdWZmZXIgdm1CdWYsCi0JCQkJCQkJICBUcmFuc2FjdGlvbklkIGN1 dG9mZl94aWQsCi0JCQkJCQkJICB1aW50OCBmbGFncyk7Ci1leHRlcm4gdm9pZCB2aXNpYmlsaXR5 bWFwX3NldF92bWJpdHMoQmxvY2tOdW1iZXIgaGVhcEJsaywKLQkJCQkJCQkJCSBCdWZmZXIgdm1C dWYsIHVpbnQ4IGZsYWdzLAotCQkJCQkJCQkJIGNvbnN0IFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9y KTsKK2V4dGVybiB2b2lkIHZpc2liaWxpdHltYXBfc2V0KEJsb2NrTnVtYmVyIGhlYXBCbGssCisJ CQkJCQkJICBCdWZmZXIgdm1CdWYsIHVpbnQ4IGZsYWdzLAorCQkJCQkJCSAgY29uc3QgUmVsRmls ZUxvY2F0b3IgcmxvY2F0b3IpOwogZXh0ZXJuIHVpbnQ4IHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1 cyhSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciAqdm1idWYpOwogZXh0 ZXJuIHZvaWQgdmlzaWJpbGl0eW1hcF9jb3VudChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyICph bGxfdmlzaWJsZSwgQmxvY2tOdW1iZXIgKmFsbF9mcm96ZW4pOwogZXh0ZXJuIEJsb2NrTnVtYmVy IHZpc2liaWxpdHltYXBfcHJlcGFyZV90cnVuY2F0ZShSZWxhdGlvbiByZWwsCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCmluZGV4IDg5MTUzYjNjZDlhLi5lNTc5NGM4NTU5ZSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKKysrIGIv c3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKQEAgLTIxLDE0ICsyMSw1IEBA CiAjZGVmaW5lIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTgkweDAyCiAjZGVmaW5lIFZJU0lCSUxJ VFlNQVBfVkFMSURfQklUUwkweDAzCS8qIE9SIG9mIGFsbCB2YWxpZCB2aXNpYmlsaXR5bWFwCiAJ CQkJCQkJCQkJCSAqIGZsYWdzIGJpdHMgKi8KLS8qCi0gKiBUbyBkZXRlY3QgcmVjb3ZlcnkgY29u ZmxpY3RzIGR1cmluZyBsb2dpY2FsIGRlY29kaW5nIG9uIGEgc3RhbmRieSwgd2UgbmVlZAotICog dG8ga25vdyBpZiBhIHRhYmxlIGlzIGEgdXNlciBjYXRhbG9nIHRhYmxlLiBGb3IgdGhhdCB3ZSBh ZGQgYW4gYWRkaXRpb25hbAotICogYml0IGludG8geGxfaGVhcF92aXNpYmxlLmZsYWdzLCBpbiBh ZGRpdGlvbiB0byB0aGUgYWJvdmUuCi0gKgotICogTkI6IFZJU0lCSUxJVFlNQVBfWExPR18qIG1h eSBub3QgYmUgcGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0KCkuCi0gKi8KLSNkZWZpbmUgVklT SUJJTElUWU1BUF9YTE9HX0NBVEFMT0dfUkVMCTB4MDQKLSNkZWZpbmUgVklTSUJJTElUWU1BUF9Y TE9HX1ZBTElEX0JJVFMJKFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyB8IFZJU0lCSUxJVFlNQVBf WExPR19DQVRBTE9HX1JFTCkKIAogI2VuZGlmCQkJCQkJCS8qIFZJU0lCSUxJVFlNQVBERUZTX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggMGMwN2M5NDVmMDUuLmFkYzg1OGMyYTk3 IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtNDQyMSw3ICs0NDIxLDYgQEAgeGxfaGVh cF9wcnVuZQogeGxfaGVhcF9yZXdyaXRlX21hcHBpbmcKIHhsX2hlYXBfdHJ1bmNhdGUKIHhsX2hl YXBfdXBkYXRlCi14bF9oZWFwX3Zpc2libGUKIHhsX2ludmFsaWRfcGFnZQogeGxfaW52YWxpZF9w YWdlX2tleQogeGxfaW52YWxpZGF0aW9ucwotLSAKMi40My4wCgo= --0000000000002c12b8064da25839 Content-Type: text/x-patch; charset="US-ASCII"; name="v43-0006-Track-which-relations-are-modified-by-a-query.patch" Content-Disposition: attachment; filename="v43-0006-Track-which-relations-are-modified-by-a-query.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn26i4a25 RnJvbSA2MzYzNDlmNDAyNjU4NTRiMzE4Y2NmNDY3MDBlYzU3NzMxZGI4NzkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTU6MDc6MjQgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0MyAwNi8xMF0gVHJhY2sgd2hpY2ggcmVsYXRpb25zIGFyZSBtb2RpZmllZCBieSBhIHF1 ZXJ5CgpTYXZlIHRoZSByZWxpZHMgb2YgbW9kaWZpZWQgcmVsYXRpb25zIGluIGEgYml0bWFwIGlu IHRoZSBQbGFubmVkU3RtdC4KQSBsYXRlciBjb21taXQgd2lsbCBwYXNzIHRoaXMgaW5mb3JtYXRp b24gZG93biB0byBzY2FuIG5vZGVzIHRvIGNvbnRyb2wKd2hldGhlciBvciBub3Qgb24tYWNjZXNz IHBydW5pbmcgaXMgYWxsb3dlZCB0byBzZXQgdGhlIHZpc2liaWxpdHkgbWFwLgpTZXR0aW5nIHRo ZSB2aXNpYmlsaXR5IG1hcCBkdXJpbmcgYSBzY2FuIGlzIGNvdW50ZXJwcm9kdWN0aXZlIGlmIHRo ZQpxdWVyeSBpcyBnb2luZyB0byBtb2RpZnkgdGhlIHBhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIuCgpS ZWxhdGlvbnMgYXJlIGNvbnNpZGVyZWQgbW9kaWZpZWQgaWYgdGhleSBhcmUgdGhlIHRhcmdldCBv ZiBJTlNFUlQsClVQREFURSwgREVMRVRFLCBvciBNRVJHRSwgb3IgaWYgdGhleSBoYXZlIGFueSBy b3cgbWFyayAoaW5jbHVkaW5nIFNFTEVDVApGT1IgVVBEQVRFL1NIQVJFKS4gQWxsIHJvdyBtYXJr IHR5cGVzIGFyZSBpbmNsdWRlZCwgZXZlbiB0aG9zZSB3aGljaApkb24ndCBhY3R1YWxseSBtb2Rp ZnkgdHVwbGVzLCBiZWNhdXNlIHRoaXMgYml0bWFwIGlzIG9ubHkgdXNlZCBhcyBhIGhpbnQKdG8g YXZvaWQgdW5uZWNlc3Nhcnkgd29yay4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5p ZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJlc0Bh bmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5jb20+ CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRjVDREQxQjUtNjI4Qy00NEExLTlGODUt Mzk1OEM2MjZGNkE5JTQwZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYyAgICAgICAgfCA0NyArKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgfCAgMSArCiBzcmMvYmFja2VuZC9leGVjdXRvci9u b2RlTG9ja1Jvd3MuYyAgICB8ICA0ICsrKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlm eVRhYmxlLmMgfCAxOCArKysrKysrKysrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFu bmVyLmMgICB8IDIxICsrKysrKysrKysrLQogc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgg ICAgICAgICAgfCAxMCArKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgMTAwIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFp bi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCA1OGI4NDk1NWMyYi4u M2YxMzRmOWEzNGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtOTAsNiArOTAsOSBAQCBz dGF0aWMgYm9vbCBFeGVjQ2hlY2tQZXJtaXNzaW9uc01vZGlmaWVkKE9pZCByZWxPaWQsIE9pZCB1 c2VyaWQsCiAJCQkJCQkJCQkJIEJpdG1hcHNldCAqbW9kaWZpZWRDb2xzLAogCQkJCQkJCQkJCSBB Y2xNb2RlIHJlcXVpcmVkUGVybXMpOwogc3RhdGljIHZvaWQgRXhlY0NoZWNrWGFjdFJlYWRPbmx5 KFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCk7CisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwor c3RhdGljIHZvaWQgRXhlY0NoZWNrTW9kaWZpZWRSZWxJZHMoRVN0YXRlICplc3RhdGUpOworI2Vu ZGlmCiBzdGF0aWMgdm9pZCBFdmFsUGxhblF1YWxTdGFydChFUFFTdGF0ZSAqZXBxc3RhdGUsIFBs YW4gKnBsYW5UcmVlKTsKIHN0YXRpYyB2b2lkIFJlcG9ydE5vdE51bGxWaW9sYXRpb25FcnJvcihS ZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCQkJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpz bG90LApAQCAtODI3LDYgKzgzMCw0NiBAQCBFeGVjQ2hlY2tYYWN0UmVhZE9ubHkoUGxhbm5lZFN0 bXQgKnBsYW5uZWRzdG10KQogfQogCiAKKy8qCisgKiBFeGVjQ2hlY2tNb2RpZmllZFJlbElkcwor ICoJCVZlcmlmeSB0aGF0IGV2ZXJ5IHJlbGF0aW9uIHRoZSBleGVjdXRvciBhY3R1YWxseSBvcGVu ZWQgZm9yIG1vZGlmaWNhdGlvbgorICoJCW9yIHJvdyBsb2NraW5nIGlzIHByZXNlbnQgaW4gdGhl IHBsYW5uZXIncyBtb2RpZmllZFJlbGlkcy4KKyAqCisgKiBUaGUgcGxhbm5lcidzIHNldCBtYXkg YmUgYSBzdXBlcnNldCBvZiB3aGF0IHRoZSBleGVjdXRvciB0b3VjaGVzLCBiZWNhdXNlIGl0Cisg KiBpbmNsdWRlcyBwYXJ0aXRpb25zIHRoYXQgd2VyZSBwcnVuZWQgYXQgcnVudGltZSBhbmQgcGFy ZW50IHJvdyBtYXJrcyB0aGF0IHRoZQorICogZXhlY3V0b3Igc2tpcHMuCisgKi8KKyNpZmRlZiBV U0VfQVNTRVJUX0NIRUNLSU5HCitzdGF0aWMgdm9pZAorRXhlY0NoZWNrTW9kaWZpZWRSZWxJZHMo RVN0YXRlICplc3RhdGUpCit7CisJUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10ID0gZXN0YXRlLT5l c19wbGFubmVkc3RtdDsKKwlCaXRtYXBzZXQgICpleGVjdXRvcl9yZWxpZHMgPSBOVUxMOworCUxp c3RDZWxsICAgKmxjOworCisJZm9yZWFjaChsYywgZXN0YXRlLT5lc19vcGVuZWRfcmVzdWx0X3Jl bGF0aW9ucykKKwl7CisJCVJlc3VsdFJlbEluZm8gKnJyaSA9IChSZXN1bHRSZWxJbmZvICopIGxm aXJzdChsYyk7CisKKwkJaWYgKHJyaS0+cmlfUmFuZ2VUYWJsZUluZGV4ICE9IDApCisJCQlleGVj dXRvcl9yZWxpZHMgPSBibXNfYWRkX21lbWJlcihleGVjdXRvcl9yZWxpZHMsCisJCQkJCQkJCQkJ CSBycmktPnJpX1JhbmdlVGFibGVJbmRleCk7CisJfQorCWlmIChlc3RhdGUtPmVzX3Jvd21hcmtz KQorCXsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBlc3RhdGUtPmVzX3JhbmdlX3RhYmxlX3NpemU7 IGkrKykKKwkJeworCQkJaWYgKGVzdGF0ZS0+ZXNfcm93bWFya3NbaV0gIT0gTlVMTCkKKwkJCQll eGVjdXRvcl9yZWxpZHMgPSBibXNfYWRkX21lbWJlcihleGVjdXRvcl9yZWxpZHMsCisJCQkJCQkJ CQkJCQkgZXN0YXRlLT5lc19yb3dtYXJrc1tpXS0+cnRpKTsKKwkJfQorCX0KKwlBc3NlcnQoYm1z X2lzX3N1YnNldChleGVjdXRvcl9yZWxpZHMsIHBsYW5uZWRzdG10LT5tb2RpZmllZFJlbGlkcykp OworCWJtc19mcmVlKGV4ZWN1dG9yX3JlbGlkcyk7Cit9CisjZW5kaWYKKworCiAvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgKgkJSW5pdFBsYW4KICAqCkBAIC05OTIsNiArMTAzNSwxMCBAQCBJbml0UGxhbihRdWVyeURl c2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAkgKi8KIAlwbGFuc3RhdGUgPSBFeGVjSW5pdE5v ZGUocGxhbiwgZXN0YXRlLCBlZmxhZ3MpOwogCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwor CUV4ZWNDaGVja01vZGlmaWVkUmVsSWRzKGVzdGF0ZSk7CisjZW5kaWYKKwogCS8qCiAJICogR2V0 IHRoZSB0dXBsZSBkZXNjcmlwdG9yIGRlc2NyaWJpbmcgdGhlIHR5cGUgb2YgdHVwbGVzIHRvIHJl dHVybi4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxl bC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggYWM4NGFmMjk0 YzkuLjRmMzk3NjdkMDMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFy YWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtMTg4 LDYgKzE4OCw3IEBAIEV4ZWNTZXJpYWxpemVQbGFuKFBsYW4gKnBsYW4sIEVTdGF0ZSAqZXN0YXRl KQogCXBzdG10LT5wYXJ0UHJ1bmVJbmZvcyA9IGVzdGF0ZS0+ZXNfcGFydF9wcnVuZV9pbmZvczsK IAlwc3RtdC0+cnRhYmxlID0gZXN0YXRlLT5lc19yYW5nZV90YWJsZTsKIAlwc3RtdC0+dW5wcnVu YWJsZVJlbGlkcyA9IGVzdGF0ZS0+ZXNfdW5wcnVuZWRfcmVsaWRzOworCXBzdG10LT5tb2RpZmll ZFJlbGlkcyA9IGVzdGF0ZS0+ZXNfcGxhbm5lZHN0bXQtPm1vZGlmaWVkUmVsaWRzOwogCXBzdG10 LT5wZXJtSW5mb3MgPSBlc3RhdGUtPmVzX3J0ZXBlcm1pbmZvczsKIAlwc3RtdC0+cmVzdWx0UmVs YXRpb25zID0gTklMOwogCXBzdG10LT5hcHBlbmRSZWxhdGlvbnMgPSBOSUw7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTG9ja1Jvd3MuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVMb2NrUm93cy5jCmluZGV4IDhkODY1NDcwNzgwLi5kNjdmMjRmY2E4YyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUxvY2tSb3dzLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUxvY2tSb3dzLmMKQEAgLTExMyw2ICsxMTMsMTAgQEAgbG5leHQ6CiAJ CX0KIAkJZXJtLT5lcm1BY3RpdmUgPSB0cnVlOwogCisJCS8qIHZlcmlmeSB0aGlzIHJlbGF0aW9u IGlzIGluIHRoZSBwbGFubmVyJ3MgbW9kaWZpZWRSZWxpZHMgKi8KKwkJQXNzZXJ0KGJtc19pc19t ZW1iZXIoZXJtLT5ydGksCisJCQkJCQkJIGVzdGF0ZS0+ZXNfcGxhbm5lZHN0bXQtPm1vZGlmaWVk UmVsaWRzKSk7CisKIAkJLyogZmV0Y2ggdGhlIHR1cGxlJ3MgY3RpZCAqLwogCQlkYXR1bSA9IEV4 ZWNHZXRKdW5rQXR0cmlidXRlKHNsb3QsCiAJCQkJCQkJCQkgYWVybS0+Y3RpZEF0dE5vLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCA0Y2Q1ZTI2MmUwZi4uNmI0ZWU0 ZjkzNzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCkBAIC04OTYsNiAr ODk2LDE2IEBAIEV4ZWNJbnNlcnQoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCiAJcmVz dWx0UmVsYXRpb25EZXNjID0gcmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjOwogCisJLyoK KwkgKiBWZXJpZnkgdGhpcyByZWxhdGlvbiBpcyBpbiB0aGUgcGxhbm5lcidzIHNldCBvZiBtb2Rp ZmllZCByZWxhdGlvbnMuCisJICogUGFydGl0aW9ucyBvcGVuZWQgYnkgdHVwbGUgcm91dGluZyBo YXZlIHJpX1JhbmdlVGFibGVJbmRleCA9PSAwIGJlY2F1c2UKKwkgKiB0aGV5IGhhdmUgbm8gcmFu Z2UgdGFibGUgZW50cnksIHNvIHdlIGNhbiBvbmx5IGNoZWNrIHJlbGF0aW9ucyB0aGF0IGFyZQor CSAqIGluIHRoZSByYW5nZSB0YWJsZS4KKwkgKi8KKwlBc3NlcnQocmVzdWx0UmVsSW5mby0+cmlf UmFuZ2VUYWJsZUluZGV4ID09IDAgfHwKKwkJICAgYm1zX2lzX21lbWJlcihyZXN1bHRSZWxJbmZv LT5yaV9SYW5nZVRhYmxlSW5kZXgsCisJCQkJCQkgZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+bW9k aWZpZWRSZWxpZHMpKTsKKwogCS8qCiAJICogT3BlbiB0aGUgdGFibGUncyBpbmRleGVzLCBpZiB3 ZSBoYXZlIG5vdCBkb25lIHNvIGFscmVhZHksIHNvIHRoYXQgd2UKIAkgKiBjYW4gYWRkIG5ldyBp bmRleCBlbnRyaWVzIGZvciB0aGUgaW5zZXJ0ZWQgdHVwbGUuCkBAIC0xNTIzLDYgKzE1MzMsMTAg QEAgRXhlY0RlbGV0ZUFjdChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsIFJlc3VsdFJlbElu Zm8gKnJlc3VsdFJlbEluZm8sCiB7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBjb250ZXh0LT5lc3Rh dGU7CiAKKwlBc3NlcnQocmVzdWx0UmVsSW5mby0+cmlfUmFuZ2VUYWJsZUluZGV4ID09IDAgfHwK KwkJICAgYm1zX2lzX21lbWJlcihyZXN1bHRSZWxJbmZvLT5yaV9SYW5nZVRhYmxlSW5kZXgsCisJ CQkJCQkgZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+bW9kaWZpZWRSZWxpZHMpKTsKKwogCXJldHVy biB0YWJsZV90dXBsZV9kZWxldGUocmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjLCB0dXBs ZWlkLAogCQkJCQkJCSAgZXN0YXRlLT5lc19vdXRwdXRfY2lkLAogCQkJCQkJCSAgZXN0YXRlLT5l c19zbmFwc2hvdCwKQEAgLTIyMDUsNiArMjIxOSwxMCBAQCBFeGVjVXBkYXRlQWN0KE1vZGlmeVRh YmxlQ29udGV4dCAqY29udGV4dCwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAlib29s CQlwYXJ0aXRpb25fY29uc3RyYWludF9mYWlsZWQ7CiAJVE1fUmVzdWx0CXJlc3VsdDsKIAorCUFz c2VydChyZXN1bHRSZWxJbmZvLT5yaV9SYW5nZVRhYmxlSW5kZXggPT0gMCB8fAorCQkgICBibXNf aXNfbWVtYmVyKHJlc3VsdFJlbEluZm8tPnJpX1JhbmdlVGFibGVJbmRleCwKKwkJCQkJCSBlc3Rh dGUtPmVzX3BsYW5uZWRzdG10LT5tb2RpZmllZFJlbGlkcykpOworCiAJdXBkYXRlQ3h0LT5jcm9z c1BhcnRVcGRhdGUgPSBmYWxzZTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVy LmMKaW5kZXggNDI2MDRhMGY3NWMuLjg0N2FmOTc5ZTMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vcGxhbm5lci5jCkBAIC0zNDAsOCArMzQwLDEwIEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkg KnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCVJl bE9wdEluZm8gKmZpbmFsX3JlbDsKIAlQYXRoCSAgICpiZXN0X3BhdGg7CiAJUGxhbgkgICAqdG9w X3BsYW47CisJQml0bWFwc2V0ICAqbW9kaWZpZWRSZWxpZHMgPSBOVUxMOwogCUxpc3RDZWxsICAg KmxwLAotCQkJICAgKmxyOworCQkJICAgKmxyLAorCQkJICAgKmxjOwogCiAJLyoKIAkgKiBTZXQg dXAgZ2xvYmFsIHN0YXRlIGZvciB0aGlzIHBsYW5uZXIgaW52b2NhdGlvbi4gIFRoaXMgZGF0YSBp cyBuZWVkZWQKQEAgLTY2MSw2ICs2NjMsMjMgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFy c2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJcmVzdWx0 LT5zdWJwbGFucyA9IGdsb2ItPnN1YnBsYW5zOwogCXJlc3VsdC0+cmV3aW5kUGxhbklEcyA9IGds b2ItPnJld2luZFBsYW5JRHM7CiAJcmVzdWx0LT5yb3dNYXJrcyA9IGdsb2ItPmZpbmFscm93bWFy a3M7CisKKwkvKgorCSAqIENvbXB1dGUgbW9kaWZpZWRSZWxpZHMgZnJvbSByZXN1bHQgcmVsYXRp b25zIGFuZCByb3cgbWFya3MuICBUaGlzIGlzIGEKKwkgKiBzdXBlcnNldCBvZiB3aGF0IHRoZSBl eGVjdXRvciB3aWxsIGFjdHVhbGx5IG1vZGlmeS9sb2NrIGF0IHJ1bnRpbWUsCisJICogYmVjYXVz ZSBydW50aW1lIHBhcnRpdGlvbiBwcnVuaW5nIG1heSBlbGltaW5hdGUgc29tZSByZXN1bHQgcmVs YXRpb25zLAorCSAqIGFuZCBwYXJlbnQgcm93IG1hcmtzIGFyZSBpbmNsdWRlZCBoZXJlIGJ1dCBz a2lwcGVkIGJ5IHRoZSBleGVjdXRvci4KKwkgKi8KKwlmb3JlYWNoKGxjLCBnbG9iLT5yZXN1bHRS ZWxhdGlvbnMpCisJCW1vZGlmaWVkUmVsaWRzID0gYm1zX2FkZF9tZW1iZXIobW9kaWZpZWRSZWxp ZHMsIGxmaXJzdF9pbnQobGMpKTsKKwlmb3JlYWNoKGxjLCBnbG9iLT5maW5hbHJvd21hcmtzKQor CXsKKwkJUGxhblJvd01hcmsgKnJjID0gKFBsYW5Sb3dNYXJrICopIGxmaXJzdChsYyk7CisKKwkJ bW9kaWZpZWRSZWxpZHMgPSBibXNfYWRkX21lbWJlcihtb2RpZmllZFJlbGlkcywgcmMtPnJ0aSk7 CisJfQorCXJlc3VsdC0+bW9kaWZpZWRSZWxpZHMgPSBtb2RpZmllZFJlbGlkczsKKwogCXJlc3Vs dC0+cmVsYXRpb25PaWRzID0gZ2xvYi0+cmVsYXRpb25PaWRzOwogCXJlc3VsdC0+aW52YWxJdGVt cyA9IGdsb2ItPmludmFsSXRlbXM7CiAJcmVzdWx0LT5wYXJhbUV4ZWNUeXBlcyA9IGdsb2ItPnBh cmFtRXhlY1R5cGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCBiNjE4NTgyNWZjYi4uODQxYzc3 MDdjNTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0xMTIsNiArMTEyLDE2IEBAIHR5cGVkZWYg c3RydWN0IFBsYW5uZWRTdG10CiAJICovCiAJQml0bWFwc2V0ICAqdW5wcnVuYWJsZVJlbGlkczsK IAorCS8qCisJICogUlQgaW5kZXhlcyBvZiByZWxhdGlvbnMgbW9kaWZpZWQgYnkgdGhlIHF1ZXJ5 IHRocm91Z2gKKwkgKiBVUERBVEUvREVMRVRFL0lOU0VSVC9NRVJHRSBvciB0YXJnZXRlZCBieSBT RUxFQ1QgRk9SIFVQREFURS9TSEFSRS4KKwkgKgorCSAqIENvbXB1dGVkIGJ5IHRoZSBwbGFubmVy LCB0aGlzIGlzIGEgc3VwZXJzZXQgb2Ygd2hhdCB0aGUgZXhlY3V0b3Igd2lsbAorCSAqIGFjdHVh bGx5IHRvdWNoIGF0IHJ1bnRpbWUsIGJlY2F1c2UgaXQgaW5jbHVkZXMgcGFydGl0aW9ucyB0aGF0 IG1heSBiZQorCSAqIHBydW5lZCBhbmQgcGFyZW50IHJvdyBtYXJrcyB0aGF0IHRoZSBleGVjdXRv ciBza2lwcy4KKwkgKi8KKwlCaXRtYXBzZXQgICptb2RpZmllZFJlbGlkczsKKwogCS8qCiAJICog bGlzdCBvZiBSVEVQZXJtaXNzaW9uSW5mbyBub2RlcyBmb3IgcnRhYmxlIGVudHJpZXMgbmVlZGlu ZyBvbmUKIAkgKi8KLS0gCjIuNDMuMAoK --0000000000002c12b8064da25839 Content-Type: text/x-patch; charset="US-ASCII"; name="v43-0007-Thread-flags-through-begin-scan-APIs.patch" Content-Disposition: attachment; filename="v43-0007-Thread-flags-through-begin-scan-APIs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn26i8ox6 RnJvbSA5NDMzYjI5MDcxYTkzMzgzMjUxYzM3NzczYjZkMWI0YTUxMmY5NTY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDE5IE1hciAyMDI2IDE3OjA1OjU1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDMgMDcvMTBdIFRocmVhZCBmbGFncyB0aHJvdWdoIGJlZ2luLXNjYW4gQVBJcwoKQWRk IGEgdXNlci1zZXR0YWJsZSBmbGFncyBwYXJhbWV0ZXIgdG8gdGhlIHRhYmxlX2JlZ2luc2Nhbl8q IHdyYXBwZXJzLAppbmRleF9iZWdpbnNjYW4oKSwgdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4oKSwg YW5kIHRoZSB0YWJsZQpBTSBjYWxsYmFjayBpbmRleF9mZXRjaF9iZWdpbigpLiBUaGlzIGFsbG93 cyB1c2VycyB0byBwYXNzIGFkZGl0aW9uYWwKY29udGV4dCB0byBiZSB1c2VkIHdoZW4gYnVpbGRp bmcgdGhlIHNjYW4gZGVzY3JpcHRvcnMuCgpGb3IgaW5kZXggc2NhbnMsIGEgbmV3IHVpbnQzMiBm bGFncyBmaWVsZCBpcyBhZGRlZCB0bwpJbmRleEZldGNoVGFibGVEYXRhLCBhbmQgdGhlIGhlYXAg QU0gc3RvcmVzIHRoZSBjYWxsZXItcHJvdmlkZWQgZmxhZ3MKdGhlcmUgaW4gaGVhcGFtX2luZGV4 X2ZldGNoX2JlZ2luKCkuCgpUaGlzIGludHJvZHVjZXMgYW4gZXh0ZW5zaW9uIHBvaW50IGZvciBm b2xsb3ctdXAgd29yayB0byBwYXNzCnBlci1zY2FuIGluZm9ybWF0aW9uIChzdWNoIGFzIHdoZXRo ZXIgdGhlIHJlbGF0aW9uIGlzIHJlYWQtb25seSBmb3IgdGhlCmN1cnJlbnQgcXVlcnkpIGZyb20g dGhlIGV4ZWN1dG9yIHRvIHRoZSBBTSBsYXllci4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8 bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFu ZHJlc0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFp bC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRjVDREQxQjUtNjI4Qy00NEEx LTlGODUtMzk1OEM2MjZGNkE5JTQwZ21haWwuY29tCi0tLQogY29udHJpYi9wZ3Jvd2xvY2tzL3Bn cm93bG9ja3MuYyAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJp bi5jICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQu YyAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIu YyAgfCAgOSArKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jICAgICAgICAgIHwg IDIgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYyAgICAgICAgfCAgNyArKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jICAgICAgIHwgIDIgKy0KIHNyYy9i YWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMgICAgICAgIHwgMjEgKysrLS0tLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29weXRvLmMgICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMgICAgICAgICAgfCAgOCArLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5 cGVjbWRzLmMgICAgICAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRl eGluZy5jICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlv bi5jICAgIHwgMTIgKystLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2Fu LmMgfCAgMiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyAgfCAg NSArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jICAgICAgfCAgNiArLQog c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jICAgfCAgNiArLQogc3JjL2JhY2tlbmQvcGFydGl0 aW9uaW5nL3BhcnRib3VuZHMuYyAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Nl bGZ1bmNzLmMgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCAgICAg ICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAg ICAgICB8ICA1ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5oICAgICAgICAgICAgICB8 ICAxICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgIHwgNzIgKysr KysrKysrKysrKysrLS0tLS0tLS0KIDI2IGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25zKCsp LCA3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bncm93bG9ja3MvcGdyb3ds b2Nrcy5jIGIvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYwppbmRleCBmZjM2OTJjODdj NC4uMDU1NmU5ZjdiODggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdyb3dsb2Nrcy9wZ3Jvd2xvY2tz LmMKKysrIGIvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYwpAQCAtMTE1LDcgKzExNSw3 IEBAIHBncm93bG9ja3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJICAgUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsKSk7CiAKIAkvKiBTY2FuIHRoZSByZWxhdGlvbiAqLwotCXNjYW4gPSB0YWJs ZV9iZWdpbnNjYW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMKTsKKwlzY2FuID0g dGFibGVfYmVnaW5zY2FuKHJlbCwgR2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCwgMCk7CiAJ aHNjYW4gPSAoSGVhcFNjYW5EZXNjKSBzY2FuOwogCiAJYXR0aW5tZXRhID0gVHVwbGVEZXNjR2V0 QXR0SW5NZXRhZGF0YShyc2luZm8tPnNldERlc2MpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCmluZGV4 IDJhMGY4YzhlM2I4Li5iMjVlODE0YTk5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwpAQCAtMjg0 NCw3ICsyODQ0LDggQEAgX2JyaW5fcGFyYWxsZWxfc2Nhbl9hbmRfYnVpbGQoQnJpbkJ1aWxkU3Rh dGUgKnN0YXRlLAogCWluZGV4SW5mby0+aWlfQ29uY3VycmVudCA9IGJyaW5zaGFyZWQtPmlzY29u Y3VycmVudDsKIAogCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoaGVhcCwKLQkJCQkJ CQkJCVBhcmFsbGVsVGFibGVTY2FuRnJvbUJyaW5TaGFyZWQoYnJpbnNoYXJlZCkpOworCQkJCQkJ CQkJUGFyYWxsZWxUYWJsZVNjYW5Gcm9tQnJpblNoYXJlZChicmluc2hhcmVkKSwKKwkJCQkJCQkJ CTApOwogCiAJcmVsdHVwbGVzID0gdGFibGVfaW5kZXhfYnVpbGRfc2NhbihoZWFwLCBpbmRleCwg aW5kZXhJbmZvLCB0cnVlLCB0cnVlLAogCQkJCQkJCQkJICAgYnJpbmJ1aWxkQ2FsbGJhY2tQYXJh bGxlbCwgc3RhdGUsIHNjYW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9n aW5pbnNlcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKaW5kZXggZTU0 NzgyZDlkZDguLjU1NWIxNjc3MWU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lu L2dpbmluc2VydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKQEAg LTIwNjgsNyArMjA2OCw4IEBAIF9naW5fcGFyYWxsZWxfc2Nhbl9hbmRfYnVpbGQoR2luQnVpbGRT dGF0ZSAqc3RhdGUsCiAJaW5kZXhJbmZvLT5paV9Db25jdXJyZW50ID0gZ2luc2hhcmVkLT5pc2Nv bmN1cnJlbnQ7CiAKIAlzY2FuID0gdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKGhlYXAsCi0JCQkJ CQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZyb21HaW5CdWlsZFNoYXJlZChnaW5zaGFyZWQpKTsKKwkJ CQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRnJvbUdpbkJ1aWxkU2hhcmVkKGdpbnNoYXJlZCksCisJ CQkJCQkJCQkwKTsKIAogCXJlbHR1cGxlcyA9IHRhYmxlX2luZGV4X2J1aWxkX3NjYW4oaGVhcCwg aW5kZXgsIGluZGV4SW5mbywgdHJ1ZSwgcHJvZ3Jlc3MsCiAJCQkJCQkJCQkgICBnaW5CdWlsZENh bGxiYWNrUGFyYWxsZWwsIHN0YXRlLCBzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1faGFuZGxlci5jCmluZGV4IDI1M2E3MzViNmMxLi42NjcyNmIyMmRlNiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCkBAIC04MCwxMSArODAsMTIgQEAgaGVhcGFt X3Nsb3RfY2FsbGJhY2tzKFJlbGF0aW9uIHJlbGF0aW9uKQogICovCiAKIHN0YXRpYyBJbmRleEZl dGNoVGFibGVEYXRhICoKLWhlYXBhbV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCito ZWFwYW1faW5kZXhfZmV0Y2hfYmVnaW4oUmVsYXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpCiB7CiAJ SW5kZXhGZXRjaEhlYXBEYXRhICpoc2NhbiA9IHBhbGxvYzBfb2JqZWN0KEluZGV4RmV0Y2hIZWFw RGF0YSk7CiAKIAloc2Nhbi0+eHNfYmFzZS5yZWwgPSByZWw7CisJaHNjYW4tPnhzX2Jhc2UuZmxh Z3MgPSBmbGFnczsKIAloc2Nhbi0+eHNfY2J1ZiA9IEludmFsaWRCdWZmZXI7CiAJaHNjYW4tPnhz X3ZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIApAQCAtNzYyLDcgKzc2Myw5IEBAIGhlYXBhbV9y ZWxhdGlvbl9jb3B5X2Zvcl9jbHVzdGVyKFJlbGF0aW9uIE9sZEhlYXAsIFJlbGF0aW9uIE5ld0hl YXAsCiAKIAkJdGFibGVTY2FuID0gTlVMTDsKIAkJaGVhcFNjYW4gPSBOVUxMOwotCQlpbmRleFNj YW4gPSBpbmRleF9iZWdpbnNjYW4oT2xkSGVhcCwgT2xkSW5kZXgsIFNuYXBzaG90QW55LCBOVUxM LCAwLCAwKTsKKwkJaW5kZXhTY2FuID0gaW5kZXhfYmVnaW5zY2FuKE9sZEhlYXAsIE9sZEluZGV4 LAorCQkJCQkJCQkJMCwJLyogZmxhZ3MgKi8KKwkJCQkJCQkJCVNuYXBzaG90QW55LCBOVUxMLCAw LCAwKTsKIAkJaW5kZXhfcmVzY2FuKGluZGV4U2NhbiwgTlVMTCwgMCwgTlVMTCwgMCk7CiAJfQog CWVsc2UKQEAgLTc3MSw3ICs3NzQsNyBAQCBoZWFwYW1fcmVsYXRpb25fY29weV9mb3JfY2x1c3Rl cihSZWxhdGlvbiBPbGRIZWFwLCBSZWxhdGlvbiBOZXdIZWFwLAogCQlwZ3N0YXRfcHJvZ3Jlc3Nf dXBkYXRlX3BhcmFtKFBST0dSRVNTX1JFUEFDS19QSEFTRSwKIAkJCQkJCQkJCSBQUk9HUkVTU19S RVBBQ0tfUEhBU0VfU0VRX1NDQU5fSEVBUCk7CiAKLQkJdGFibGVTY2FuID0gdGFibGVfYmVnaW5z Y2FuKE9sZEhlYXAsIFNuYXBzaG90QW55LCAwLCAoU2NhbktleSkgTlVMTCk7CisJCXRhYmxlU2Nh biA9IHRhYmxlX2JlZ2luc2NhbihPbGRIZWFwLCBTbmFwc2hvdEFueSwgMCwgKFNjYW5LZXkpIE5V TEwsIDApOwogCQloZWFwU2NhbiA9IChIZWFwU2NhbkRlc2MpIHRhYmxlU2NhbjsKIAkJaW5kZXhT Y2FuID0gTlVMTDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFt LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYwppbmRleCA1ZTg5Yjg2YTYyYy4u YjA5OWQ5NTZlNDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jCkBAIC00NTUsNiArNDU1LDcg QEAgc3lzdGFibGVfYmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJfQogCiAJCXN5 c3NjYW4tPmlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXBSZWxhdGlvbiwgaXJlbCwKKwkJCQkJ CQkJCQkgMCwgLyogZmxhZ3MgKi8KIAkJCQkJCQkJCQkgc25hcHNob3QsIE5VTEwsIG5rZXlzLCAw KTsKIAkJaW5kZXhfcmVzY2FuKHN5c3NjYW4tPmlzY2FuLCBpZHhrZXksIG5rZXlzLCBOVUxMLCAw KTsKIAkJc3lzc2Nhbi0+c2NhbiA9IE5VTEw7CkBAIC03MTYsNiArNzE3LDcgQEAgc3lzdGFibGVf YmVnaW5zY2FuX29yZGVyZWQoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQlic3lzc2NhbiA9IHRy dWU7CiAKIAlzeXNzY2FuLT5pc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFwUmVsYXRpb24sIGlu ZGV4UmVsYXRpb24sCisJCQkJCQkJCQkgMCwgLyogZmxhZ3MgKi8KIAkJCQkJCQkJCSBzbmFwc2hv dCwgTlVMTCwgbmtleXMsIDApOwogCWluZGV4X3Jlc2NhbihzeXNzY2FuLT5pc2NhbiwgaWR4a2V5 LCBua2V5cywgTlVMTCwgMCk7CiAJc3lzc2Nhbi0+c2NhbiA9IE5VTEw7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2lu ZGV4L2luZGV4YW0uYwppbmRleCA1ZWI3ZTk5YWQzZS4uNjNkNWRhYWRjYTYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2luZGV4L2luZGV4YW0uYwpAQCAtMjU1LDYgKzI1NSw3IEBAIGluZGV4X2luc2VydF9jbGVh bnVwKFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiBJbmRleFNjYW5EZXNjCiBpbmRleF9iZWdpbnNj YW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCVJlbGF0aW9uIGluZGV4UmVsYXRpb24sCisJ CQkJdWludDMyIGZsYWdzLAogCQkJCVNuYXBzaG90IHNuYXBzaG90LAogCQkJCUluZGV4U2Nhbklu c3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKIAkJCQlpbnQgbmtleXMsIGludCBub3JkZXJieXMp CkBAIC0yODQsNyArMjg1LDcgQEAgaW5kZXhfYmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlv biwKIAlzY2FuLT5pbnN0cnVtZW50ID0gaW5zdHJ1bWVudDsKIAogCS8qIHByZXBhcmUgdG8gZmV0 Y2ggaW5kZXggbWF0Y2hlcyBmcm9tIHRhYmxlICovCi0Jc2Nhbi0+eHNfaGVhcGZldGNoID0gdGFi bGVfaW5kZXhfZmV0Y2hfYmVnaW4oaGVhcFJlbGF0aW9uKTsKKwlzY2FuLT54c19oZWFwZmV0Y2gg PSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwUmVsYXRpb24sIGZsYWdzKTsKIAogCXJldHVy biBzY2FuOwogfQpAQCAtNTkzLDcgKzU5NCw3IEBAIEluZGV4U2NhbkRlc2MKIGluZGV4X2JlZ2lu c2Nhbl9wYXJhbGxlbChSZWxhdGlvbiBoZWFwcmVsLCBSZWxhdGlvbiBpbmRleHJlbCwKIAkJCQkJ CSBJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCiAJCQkJCQkgaW50IG5rZXlz LCBpbnQgbm9yZGVyYnlzLAotCQkJCQkJIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBwc2NhbikKKwkJ CQkJCSBQYXJhbGxlbEluZGV4U2NhbkRlc2MgcHNjYW4sIHVpbnQzMiBmbGFncykKIHsKIAlTbmFw c2hvdAlzbmFwc2hvdDsKIAlJbmRleFNjYW5EZXNjIHNjYW47CkBAIC02MTUsNyArNjE2LDcgQEAg aW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIGhlYXByZWwsIFJlbGF0aW9uIGluZGV4 cmVsLAogCXNjYW4tPmluc3RydW1lbnQgPSBpbnN0cnVtZW50OwogCiAJLyogcHJlcGFyZSB0byBm ZXRjaCBpbmRleCBtYXRjaGVzIGZyb20gdGFibGUgKi8KLQlzY2FuLT54c19oZWFwZmV0Y2ggPSB0 YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwcmVsKTsKKwlzY2FuLT54c19oZWFwZmV0Y2ggPSB0 YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwcmVsLCBmbGFncyk7CiAKIAlyZXR1cm4gc2NhbjsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKaW5kZXggNDdhOWJkYTMwYzkuLjAxNmE1 ZTU0NmRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwpAQCAtMTkyOCw3ICsxOTI4 LDcgQEAgX2J0X3BhcmFsbGVsX3NjYW5fYW5kX3NvcnQoQlRTcG9vbCAqYnRzcG9vbCwgQlRTcG9v bCAqYnRzcG9vbDIsCiAJaW5kZXhJbmZvID0gQnVpbGRJbmRleEluZm8oYnRzcG9vbC0+aW5kZXgp OwogCWluZGV4SW5mby0+aWlfQ29uY3VycmVudCA9IGJ0c2hhcmVkLT5pc2NvbmN1cnJlbnQ7CiAJ c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChidHNwb29sLT5oZWFwLAotCQkJCQkJCQkJ UGFyYWxsZWxUYWJsZVNjYW5Gcm9tQlRTaGFyZWQoYnRzaGFyZWQpKTsKKwkJCQkJCQkJCVBhcmFs bGVsVGFibGVTY2FuRnJvbUJUU2hhcmVkKGJ0c2hhcmVkKSwgMCk7CiAJcmVsdHVwbGVzID0gdGFi bGVfaW5kZXhfYnVpbGRfc2NhbihidHNwb29sLT5oZWFwLCBidHNwb29sLT5pbmRleCwgaW5kZXhJ bmZvLAogCQkJCQkJCQkJICAgdHJ1ZSwgcHJvZ3Jlc3MsIF9idF9idWlsZF9jYWxsYmFjaywKIAkJ CQkJCQkJCSAgICZidWlsZHN0YXRlLCBzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90YWJsZS90YWJsZWFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5j CmluZGV4IGRmZGExYWY0MTJlLi43YTEyZTgwOGIwNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL3RhYmxlL3RhYmxlYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFi bGVhbS5jCkBAIC0xMTgsNyArMTE4LDcgQEAgdGFibGVfYmVnaW5zY2FuX2NhdGFsb2coUmVsYXRp b24gcmVsYXRpb24sIGludCBua2V5cywgU2NhbktleURhdGEgKmtleSkKIAlTbmFwc2hvdAlzbmFw c2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0Q2F0YWxvZ1NuYXBzaG90KHJlbGlkKSk7CiAKIAly ZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWxhdGlvbiwgc25hcHNob3QsIG5rZXlzLCBr ZXksCi0JCQkJCQkJCSAgTlVMTCwgZmxhZ3MpOworCQkJCQkJCQkgIE5VTEwsIGZsYWdzLCAwKTsK IH0KIAogCkBAIC0xNjMsMTAgKzE2MywxMCBAQCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6 ZShSZWxhdGlvbiByZWwsIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKIH0KIAogVGFibGVT Y2FuRGVzYwotdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJlbGF0aW9uLCBQYXJh bGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCit0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRp b24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwgdWludDMyIGZsYWdzKQog ewogCVNuYXBzaG90CXNuYXBzaG90OwotCXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4g fAorCXVpbnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4gfAogCQlTT19BTExP V19TVFJBVCB8IFNPX0FMTE9XX1NZTkMgfCBTT19BTExPV19QQUdFTU9ERTsKIAogCUFzc2VydChS ZWxGaWxlTG9jYXRvckVxdWFscyhyZWxhdGlvbi0+cmRfbG9jYXRvciwgcHNjYW4tPnBoc19sb2Nh dG9yKSk7CkBAIC0xNzYsNyArMTc2LDcgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0 aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAJCS8qIFNuYXBzaG90 IHdhcyBzZXJpYWxpemVkIC0tIHJlc3RvcmUgaXQgKi8KIAkJc25hcHNob3QgPSBSZXN0b3JlU25h cHNob3QoKGNoYXIgKikgcHNjYW4gKyBwc2Nhbi0+cGhzX3NuYXBzaG90X29mZik7CiAJCVJlZ2lz dGVyU25hcHNob3Qoc25hcHNob3QpOwotCQlmbGFncyB8PSBTT19URU1QX1NOQVBTSE9UOworCQlp bnRlcm5hbF9mbGFncyB8PSBTT19URU1QX1NOQVBTSE9UOwogCX0KIAllbHNlCiAJewpAQCAtMTg1 LDE2ICsxODUsMTcgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJlbGF0aW9u LCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAJfQogCiAJcmV0dXJuIHRhYmxlX2JlZ2lu c2Nhbl9jb21tb24ocmVsYXRpb24sIHNuYXBzaG90LCAwLCBOVUxMLAotCQkJCQkJCQkgIHBzY2Fu LCBmbGFncyk7CisJCQkJCQkJCSAgcHNjYW4sIGludGVybmFsX2ZsYWdzLCBmbGFncyk7CiB9CiAK IFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShSZWxhdGlv biByZWxhdGlvbiwKLQkJCQkJCQkJICBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCisJCQkJ CQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAorCQkJCQkJCQkgIHVpbnQzMiBmbGFn cykKIHsKIAlTbmFwc2hvdAlzbmFwc2hvdDsKLQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9USURS QU5HRVNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKIAlUYWJsZVNjYW5EZXNjIHNzY2FuOworCXVp bnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBTT19UWVBFX1RJRFJBTkdFU0NBTiB8IFNPX0FMTE9XX1BB R0VNT0RFOwogCiAJQXNzZXJ0KFJlbEZpbGVMb2NhdG9yRXF1YWxzKHJlbGF0aW9uLT5yZF9sb2Nh dG9yLCBwc2Nhbi0+cGhzX2xvY2F0b3IpKTsKIApAQCAtMjA2LDcgKzIwNyw3IEBAIHRhYmxlX2Jl Z2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShSZWxhdGlvbiByZWxhdGlvbiwKIAkJLyogU25hcHNo b3Qgd2FzIHNlcmlhbGl6ZWQgLS0gcmVzdG9yZSBpdCAqLwogCQlzbmFwc2hvdCA9IFJlc3RvcmVT bmFwc2hvdCgoY2hhciAqKSBwc2NhbiArIHBzY2FuLT5waHNfc25hcHNob3Rfb2ZmKTsKIAkJUmVn aXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7Ci0JCWZsYWdzIHw9IFNPX1RFTVBfU05BUFNIT1Q7CisJ CWludGVybmFsX2ZsYWdzIHw9IFNPX1RFTVBfU05BUFNIT1Q7CiAJfQogCWVsc2UKIAl7CkBAIC0y MTUsNyArMjE2LDcgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdlKFJlbGF0aW9u IHJlbGF0aW9uLAogCX0KIAogCXNzY2FuID0gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWxhdGlv biwgc25hcHNob3QsIDAsIE5VTEwsCi0JCQkJCQkJCSAgIHBzY2FuLCBmbGFncyk7CisJCQkJCQkJ CSAgIHBzY2FuLCBpbnRlcm5hbF9mbGFncywgZmxhZ3MpOwogCXJldHVybiBzc2NhbjsKIH0KIApA QCAtMjQ4LDcgKzI0OSw3IEBAIHRhYmxlX2luZGV4X2ZldGNoX3R1cGxlX2NoZWNrKFJlbGF0aW9u IHJlbCwKIAlib29sCQlmb3VuZDsKIAogCXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShyZWwsIE5V TEwpOwotCXNjYW4gPSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihyZWwpOworCXNjYW4gPSB0YWJs ZV9pbmRleF9mZXRjaF9iZWdpbihyZWwsIDApOwogCWZvdW5kID0gdGFibGVfaW5kZXhfZmV0Y2hf dHVwbGUoc2NhbiwgdGlkLCBzbmFwc2hvdCwgc2xvdCwgJmNhbGxfYWdhaW4sCiAJCQkJCQkJCQlh bGxfZGVhZCk7CiAJdGFibGVfaW5kZXhfZmV0Y2hfZW5kKHNjYW4pOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29u c3RyYWludC5jCmluZGV4IGNjMTFjNDdiNmYyLi4zN2NmYmQ2MzkzOCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2NvbnN0cmFpbnQuYwpAQCAtMTA2LDcgKzEwNiw3IEBAIHVuaXF1ZV9rZXlfcmVjaGVjayhQR19G VU5DVElPTl9BUkdTKQogCSAqLwogCXRtcHRpZCA9IGNoZWNrdGlkOwogCXsKLQkJSW5kZXhGZXRj aFRhYmxlRGF0YSAqc2NhbiA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKHRyaWdkYXRhLT50Z19y ZWxhdGlvbik7CisJCUluZGV4RmV0Y2hUYWJsZURhdGEgKnNjYW4gPSB0YWJsZV9pbmRleF9mZXRj aF9iZWdpbih0cmlnZGF0YS0+dGdfcmVsYXRpb24sIDApOwogCQlib29sCQljYWxsX2FnYWluID0g ZmFsc2U7CiAKIAkJaWYgKCF0YWJsZV9pbmRleF9mZXRjaF90dXBsZShzY2FuLCAmdG1wdGlkLCBT bmFwc2hvdFNlbGYsIHNsb3QsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5 dG8uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jCmluZGV4IGZhZjYyZDk1OWI0Li4y OWQ3YzM1MTRiNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMKQEAgLTEzMzYsNyArMTMzNiw3IEBAIENv cHlSZWxhdGlvblRvKENvcHlUb1N0YXRlIGNzdGF0ZSwgUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBy b290X3JlbCwgdWludDY0ICpwcm9jCiAJQXR0ck1hcCAgICAqbWFwID0gTlVMTDsKIAlUdXBsZVRh YmxlU2xvdCAqcm9vdF9zbG90ID0gTlVMTDsKIAotCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2Fu KHJlbCwgR2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCk7CisJc2NhbmRlc2MgPSB0YWJsZV9i ZWdpbnNjYW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMLCAwKTsKIAlzbG90ID0g dGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCmluZGV4IDIxOWY2MDRkZjdiLi5lYzliYmZlNTU0YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKQEAgLTY0MTEsNyArNjQxMSw3IEBAIEFUUmV3cml0ZVRhYmxlKEFsdGVyZWRUYWJsZUlu Zm8gKnRhYiwgT2lkIE9JRE5ld0hlYXApCiAJCSAqIGNoZWNraW5nIGFsbCB0aGUgY29uc3RyYWlu dHMuCiAJCSAqLwogCQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNo b3QoKSk7Ci0JCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ob2xkcmVsLCBzbmFwc2hvdCwgMCwgTlVM TCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ob2xkcmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwg MCk7CiAKIAkJLyoKIAkJICogU3dpdGNoIHRvIHBlci10dXBsZSBtZW1vcnkgY29udGV4dCBhbmQg cmVzZXQgaXQgZm9yIGVhY2ggdHVwbGUKQEAgLTEzOTgwLDcgKzEzOTgwLDcgQEAgdmFsaWRhdGVG b3JlaWduS2V5Q29uc3RyYWludChjaGFyICpjb25uYW1lLAogCSAqLwogCXNuYXBzaG90ID0gUmVn aXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKIAlzbG90ID0gdGFibGVfc2xvdF9j cmVhdGUocmVsLCBOVUxMKTsKLQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgc25hcHNob3Qs IDAsIE5VTEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBzbmFwc2hvdCwgMCwgTlVM TCwgMCk7CiAKIAlwZXJUdXBDeHQgPSBBbGxvY1NldENvbnRleHRDcmVhdGUoQ3VycmVudE1lbW9y eUNvbnRleHQsCiAJCQkJCQkJCQkgICJ2YWxpZGF0ZUZvcmVpZ25LZXlDb25zdHJhaW50IiwKQEAg LTIyODgyLDcgKzIyODgyLDcgQEAgTWVyZ2VQYXJ0aXRpb25zTW92ZVJvd3MoTGlzdCAqKndxdWV1 ZSwgTGlzdCAqbWVyZ2luZ1BhcnRpdGlvbnMsIFJlbGF0aW9uIG5ld1BhcnQKIAogCQkvKiBTY2Fu IHRocm91Z2ggdGhlIHJvd3MuICovCiAJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRM YXRlc3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihtZXJnaW5nUGFydGl0 aW9uLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4obWVyZ2lu Z1BhcnRpdGlvbiwgc25hcHNob3QsIDAsIE5VTEwsIDApOwogCiAJCS8qCiAJCSAqIFN3aXRjaCB0 byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0IGZvciBlYWNoIHR1cGxlCkBA IC0yMzM0Niw3ICsyMzM0Niw3IEBAIFNwbGl0UGFydGl0aW9uTW92ZVJvd3MoTGlzdCAqKndxdWV1 ZSwgUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBzcGxpdFJlbCwKIAogCS8qIFNjYW4gdGhyb3VnaCB0 aGUgcm93cy4gKi8KIAlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNo b3QoKSk7Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihzcGxpdFJlbCwgc25hcHNob3QsIDAsIE5V TEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4oc3BsaXRSZWwsIHNuYXBzaG90LCAwLCBOVUxM LCAwKTsKIAogCS8qCiAJICogU3dpdGNoIHRvIHBlci10dXBsZSBtZW1vcnkgY29udGV4dCBhbmQg cmVzZXQgaXQgZm9yIGVhY2ggdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IDNkYWI2 YmI1YTc5Li41MzE2Y2VhN2NlYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlw ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC0zMTg1LDcg KzMxODUsNyBAQCB2YWxpZGF0ZURvbWFpbk5vdE51bGxDb25zdHJhaW50KE9pZCBkb21haW5vaWQp CiAKIAkJLyogU2NhbiBhbGwgdHVwbGVzIGluIHRoaXMgcmVsYXRpb24gKi8KIAkJc25hcHNob3Qg PSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwotCQlzY2FuID0gdGFibGVf YmVnaW5zY2FuKHRlc3RyZWwsIHNuYXBzaG90LCAwLCBOVUxMKTsKKwkJc2NhbiA9IHRhYmxlX2Jl Z2luc2Nhbih0ZXN0cmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwgMCk7CiAJCXNsb3QgPSB0YWJsZV9z bG90X2NyZWF0ZSh0ZXN0cmVsLCBOVUxMKTsKIAkJd2hpbGUgKHRhYmxlX3NjYW5fZ2V0bmV4dHNs b3Qoc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIHNsb3QpKQogCQl7CkBAIC0zMjY2LDcgKzMy NjYsNyBAQCB2YWxpZGF0ZURvbWFpbkNoZWNrQ29uc3RyYWludChPaWQgZG9tYWlub2lkLCBjb25z dCBjaGFyICpjY2JpbiwgTE9DS01PREUgbG9ja21vZAogCiAJCS8qIFNjYW4gYWxsIHR1cGxlcyBp biB0aGlzIHJlbGF0aW9uICovCiAJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRMYXRl c3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbih0ZXN0cmVsLCBzbmFwc2hv dCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4odGVzdHJlbCwgc25hcHNob3Qs IDAsIE5VTEwsIDApOwogCQlzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUodGVzdHJlbCwgTlVMTCk7 CiAJCXdoaWxlICh0YWJsZV9zY2FuX2dldG5leHRzbG90KHNjYW4sIEZvcndhcmRTY2FuRGlyZWN0 aW9uLCBzbG90KSkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0lu ZGV4aW5nLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYwppbmRleCA5ZDA3 MWU0OTVjNi4uYzQ2YmVlZGViNzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNJbmRleGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCkBA IC04MTUsNyArODE1LDggQEAgY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50KFJl bGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogcmV0cnk6CiAJY29uZmxpY3QgPSBmYWxzZTsK IAlmb3VuZF9zZWxmID0gZmFsc2U7Ci0JaW5kZXhfc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFw LCBpbmRleCwgJkRpcnR5U25hcHNob3QsIE5VTEwsIGluZG5rZXlhdHRzLCAwKTsKKwlpbmRleF9z Y2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXAsIGluZGV4LCAwLAkvKiBmbGFncyAqLworCQkJCQkJ CQkgJkRpcnR5U25hcHNob3QsIE5VTEwsIGluZG5rZXlhdHRzLCAwKTsKIAlpbmRleF9yZXNjYW4o aW5kZXhfc2Nhbiwgc2NhbmtleXMsIGluZG5rZXlhdHRzLCBOVUxMLCAwKTsKIAogCXdoaWxlIChp bmRleF9nZXRuZXh0X3Nsb3QoaW5kZXhfc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIGV4aXN0 aW5nX3Nsb3QpKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0 aW9uLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYwppbmRleCAyNDk3 ZWU3ZWRjNS4uMjM1MDk3NzE1NTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNSZXBsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlv bi5jCkBAIC0yMDUsNyArMjA1LDkgQEAgUmVsYXRpb25GaW5kUmVwbFR1cGxlQnlJbmRleChSZWxh dGlvbiByZWwsIE9pZCBpZHhvaWQsCiAJc2tleV9hdHRvZmYgPSBidWlsZF9yZXBsaW5kZXhfc2Nh bl9rZXkoc2tleSwgcmVsLCBpZHhyZWwsIHNlYXJjaHNsb3QpOwogCiAJLyogU3RhcnQgYW4gaW5k ZXggc2Nhbi4gKi8KLQlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKHJlbCwgaWR4cmVsLCAmc25hcCwg TlVMTCwgc2tleV9hdHRvZmYsIDApOworCXNjYW4gPSBpbmRleF9iZWdpbnNjYW4ocmVsLCBpZHhy ZWwsCisJCQkJCQkgICAwLAkvKiBmbGFncyAqLworCQkJCQkJICAgJnNuYXAsIE5VTEwsIHNrZXlf YXR0b2ZmLCAwKTsKIAogcmV0cnk6CiAJZm91bmQgPSBmYWxzZTsKQEAgLTM4Myw3ICszODUsNyBA QCBSZWxhdGlvbkZpbmRSZXBsVHVwbGVTZXEoUmVsYXRpb24gcmVsLCBMb2NrVHVwbGVNb2RlIGxv Y2ttb2RlLAogCiAJLyogU3RhcnQgYSBoZWFwIHNjYW4uICovCiAJSW5pdERpcnR5U25hcHNob3Qo c25hcCk7Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsICZzbmFwLCAwLCBOVUxMKTsKKwlz Y2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgJnNuYXAsIDAsIE5VTEwsIDApOwogCXNjYW5zbG90 ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKIAogcmV0cnk6CkBAIC02MDIsNyArNjA0 LDcgQEAgUmVsYXRpb25GaW5kRGVsZXRlZFR1cGxlSW5mb1NlcShSZWxhdGlvbiByZWwsIFR1cGxl VGFibGVTbG90ICpzZWFyY2hzbG90LAogCSAqIG5vdCB5ZXQgY29tbWl0dGVkIG9yIHRob3NlIGp1 c3QgY29tbWl0dGVkIHByaW9yIHRvIHRoZSBzY2FuIGFyZQogCSAqIGV4Y2x1ZGVkIGluIHVwZGF0 ZV9tb3N0X3JlY2VudF9kZWxldGlvbl9pbmZvKCkuCiAJICovCi0Jc2NhbiA9IHRhYmxlX2JlZ2lu c2NhbihyZWwsIFNuYXBzaG90QW55LCAwLCBOVUxMKTsKKwlzY2FuID0gdGFibGVfYmVnaW5zY2Fu KHJlbCwgU25hcHNob3RBbnksIDAsIE5VTEwsIDApOwogCXNjYW5zbG90ID0gdGFibGVfc2xvdF9j cmVhdGUocmVsLCBOVUxMKTsKIAogCXRhYmxlX3Jlc2NhbihzY2FuLCBOVUxMKTsKQEAgLTY2Niw3 ICs2NjgsOSBAQCBSZWxhdGlvbkZpbmREZWxldGVkVHVwbGVJbmZvQnlJbmRleChSZWxhdGlvbiBy ZWwsIE9pZCBpZHhvaWQsCiAJICogbm90IHlldCBjb21taXR0ZWQgb3IgdGhvc2UganVzdCBjb21t aXR0ZWQgcHJpb3IgdG8gdGhlIHNjYW4gYXJlCiAJICogZXhjbHVkZWQgaW4gdXBkYXRlX21vc3Rf cmVjZW50X2RlbGV0aW9uX2luZm8oKS4KIAkgKi8KLQlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKHJl bCwgaWR4cmVsLCBTbmFwc2hvdEFueSwgTlVMTCwgc2tleV9hdHRvZmYsIDApOworCXNjYW4gPSBp bmRleF9iZWdpbnNjYW4ocmVsLCBpZHhyZWwsCisJCQkJCQkgICAwLAkvKiBmbGFncyAqLworCQkJ CQkJICAgU25hcHNob3RBbnksIE5VTEwsIHNrZXlfYXR0b2ZmLCAwKTsKIAogCWluZGV4X3Jlc2Nh bihzY2FuLCBza2V5LCBza2V5X2F0dG9mZiwgTlVMTCwgMCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKaW5kZXggN2NmOGQyM2M3NDIuLjMyNGUyYmVkMjJjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwpAQCAtMTQ4LDcgKzE0 OCw3IEBAIEJpdG1hcFRhYmxlU2NhblNldHVwKEJpdG1hcEhlYXBTY2FuU3RhdGUgKm5vZGUpCiAJ CQl0YWJsZV9iZWdpbnNjYW5fYm0obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJ CSAgIG5vZGUtPnNzLnBzLnN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkgICAwLAotCQkJCQkJ CSAgIE5VTEwpOworCQkJCQkJCSAgIE5VTEwsIDApOwogCX0KIAogCW5vZGUtPnNzLnNzX2N1cnJl bnRTY2FuRGVzYy0+c3QucnNfdGJtaXRlcmF0b3IgPSB0Ym1pdGVyYXRvcjsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCmluZGV4IDllYWI4MWZkMWM4Li5mNzMzYmUwMjIw YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCkBAIC05Miw2ICs5 Miw3IEBAIEluZGV4T25seU5leHQoSW5kZXhPbmx5U2NhblN0YXRlICpub2RlKQogCQkgKi8KIAkJ c2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW4obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAog CQkJCQkJCQkgICBub2RlLT5pb3NzX1JlbGF0aW9uRGVzYywKKwkJCQkJCQkJICAgMCwJLyogZmxh Z3MgKi8KIAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJICAgbm9kZS0+ aW9zc19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5pb3NzX051bVNjYW5LZXlzLApAQCAt Nzk0LDcgKzc5NSw3IEBAIEV4ZWNJbmRleE9ubHlTY2FuSW5pdGlhbGl6ZURTTShJbmRleE9ubHlT Y2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5pb3NzX0luc3RydW1lbnQsCiAJCQkJCQkJ CSBub2RlLT5pb3NzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1PcmRlckJ5 S2V5cywKLQkJCQkJCQkJIHBpc2Nhbik7CisJCQkJCQkJCSBwaXNjYW4sIDApOwogCW5vZGUtPmlv c3NfU2NhbkRlc2MtPnhzX3dhbnRfaXR1cCA9IHRydWU7CiAJbm9kZS0+aW9zc19WTUJ1ZmZlciA9 IEludmFsaWRCdWZmZXI7CiAKQEAgLTg2MCw3ICs4NjEsNyBAQCBFeGVjSW5kZXhPbmx5U2Nhbklu aXRpYWxpemVXb3JrZXIoSW5kZXhPbmx5U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgbm9kZS0+ aW9zc19JbnN0cnVtZW50LAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1TY2FuS2V5cywKIAkJCQkJ CQkJIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSBwaXNjYW4pOworCQkJCQkJ CQkgcGlzY2FuLCAwKTsKIAlub2RlLT5pb3NzX1NjYW5EZXNjLT54c193YW50X2l0dXAgPSB0cnVl OwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4u YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwppbmRleCAwNjE0M2U5NGM1 YS4uMWExMDFkZjQ5MmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRl eHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKQEAgLTEx MCw2ICsxMTAsNyBAQCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJCSAqLwogCQlz Y2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJ CQkJCQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCisJCQkJCQkJCSAgIDAsCS8qIGZsYWdz ICovCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgIG5vZGUtPmlz c19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtU2NhbktleXMsCkBAIC0yMDYs NiArMjA3LDcgQEAgSW5kZXhOZXh0V2l0aFJlb3JkZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJ CSAqLwogCQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVs YXRpb24sCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCisJCQkJCQkJCSAgIDAs CS8qIGZsYWdzICovCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAg IG5vZGUtPmlzc19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtU2NhbktleXMs CkBAIC0xNzMwLDcgKzE3MzIsNyBAQCBFeGVjSW5kZXhTY2FuSW5pdGlhbGl6ZURTTShJbmRleFNj YW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJIG5vZGUtPmlzc19JbnN0cnVtZW50LAogCQkJCQkJCQkg bm9kZS0+aXNzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aXNzX051bU9yZGVyQnlLZXlz LAotCQkJCQkJCQkgcGlzY2FuKTsKKwkJCQkJCQkJIHBpc2NhbiwgMCk7CiAKIAkvKgogCSAqIElm IG5vIHJ1bi10aW1lIGtleXMgdG8gY2FsY3VsYXRlIG9yIHRoZXkgYXJlIHJlYWR5LCBnbyBhaGVh ZCBhbmQgcGFzcwpAQCAtMTc5NCw3ICsxNzk2LDcgQEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVX b3JrZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5pc3NfSW5zdHJ1bWVu dCwKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlzc19O dW1PcmRlckJ5S2V5cywKLQkJCQkJCQkJIHBpc2Nhbik7CisJCQkJCQkJCSBwaXNjYW4sIDApOwog CiAJLyoKIAkgKiBJZiBubyBydW4tdGltZSBrZXlzIHRvIGNhbGN1bGF0ZSBvciB0aGV5IGFyZSBy ZWFkeSwgZ28gYWhlYWQgYW5kIHBhc3MKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVTYW1wbGVzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5j CmluZGV4IDZiMGQ2NWY3NTJmLi5jYzZiMjNhYmVlMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl U2FtcGxlc2Nhbi5jCkBAIC0yOTgsNyArMjk4LDcgQEAgdGFibGVzYW1wbGVfaW5pdChTYW1wbGVT Y2FuU3RhdGUgKnNjYW5zdGF0ZSkKIAkJCQkJCQkJCSAwLCBOVUxMLAogCQkJCQkJCQkJIHNjYW5z dGF0ZS0+dXNlX2J1bGtyZWFkLAogCQkJCQkJCQkJIGFsbG93X3N5bmMsCi0JCQkJCQkJCQkgc2Nh bnN0YXRlLT51c2VfcGFnZW1vZGUpOworCQkJCQkJCQkJIHNjYW5zdGF0ZS0+dXNlX3BhZ2Vtb2Rl LCAwKTsKIAl9CiAJZWxzZQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVTZXFzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCmluZGV4IDhm MjE5ZjYwYTkzLi5jMmQ5YjcyOTNkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVNlcXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCkBA IC03MSw3ICs3MSw3IEBAIFNlcU5leHQoU2VxU2NhblN0YXRlICpub2RlKQogCQkgKi8KIAkJc2Nh bmRlc2MgPSB0YWJsZV9iZWdpbnNjYW4obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJ CQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAotCQkJCQkJCQkgICAwLCBOVUxMKTsKKwkJCQkJ CQkJICAgMCwgTlVMTCwgMCk7CiAJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9IHNjYW5k ZXNjOwogCX0KIApAQCAtMzc1LDcgKzM3NSw3IEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShT ZXFTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSAgZXN0YXRlLT5lc19zbmFwc2hvdCk7CiAJc2ht X3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIHBz Y2FuKTsKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdpbnNjYW5f cGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2Nhbik7CisJCXRhYmxlX2Jl Z2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLCAwKTsK IH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpAQCAtNDA4LDUgKzQwOCw1IEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6 ZVdvcmtlcihTZXFTY2FuU3RhdGUgKm5vZGUsCiAKIAlwc2NhbiA9IHNobV90b2NfbG9va3VwKHB3 Y3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgZmFsc2UpOwogCW5vZGUt PnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChub2Rl LT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuKTsKKwkJdGFibGVfYmVnaW5zY2FuX3BhcmFs bGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4sIDApOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCmluZGV4IDYxNzcxM2JkZTA0Li45OTRmNzA5ODli YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYwpAQCAtMjQ1LDcgKzI0 NSw3IEBAIFRpZFJhbmdlTmV4dChUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSkKIAkJCXNjYW5kZXNj ID0gdGFibGVfYmVnaW5zY2FuX3RpZHJhbmdlKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwK IAkJCQkJCQkJCQkJCWVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCQkJCQkmbm9kZS0+dHJz c19taW50aWQsCi0JCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19tYXh0aWQpOworCQkJCQkJCQkJCQkJ Jm5vZGUtPnRyc3NfbWF4dGlkLCAwKTsKIAkJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9 IHNjYW5kZXNjOwogCQl9CiAJCWVsc2UKQEAgLTQ2MCw3ICs0NjAsNyBAQCBFeGVjVGlkUmFuZ2VT Y2FuSW5pdGlhbGl6ZURTTShUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwgUGFyYWxsZWxDb250ZXh0 ICpwY3h0KQogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxh bl9ub2RlX2lkLCBwc2Nhbik7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJdGFi bGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdlKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlv biwKLQkJCQkJCQkJCQkgIHBzY2FuKTsKKwkJCQkJCQkJCQkgIHBzY2FuLCAwKTsKIH0KIAogLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpAQCAtNDk0LDUgKzQ5NCw1IEBAIEV4ZWNUaWRSYW5nZVNjYW5Jbml0aWFsaXplV29y a2VyKFRpZFJhbmdlU2NhblN0YXRlICpub2RlLAogCXBzY2FuID0gc2htX3RvY19sb29rdXAocHdj eHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBmYWxzZSk7CiAJbm9kZS0+ c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJh bmdlKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKLQkJCQkJCQkJCQkgIHBzY2FuKTsKKwkJ CQkJCQkJCQkgIHBzY2FuLCAwKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnRpdGlv bmluZy9wYXJ0Ym91bmRzLmMgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5j CmluZGV4IDBjYTMxMmFjMjdkLi5iN2M0ZTZkMTA3MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFydGl0aW9uaW5nL3BhcnRib3VuZHMuYworKysgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcv cGFydGJvdW5kcy5jCkBAIC0zMzYyLDcgKzMzNjIsNyBAQCBjaGVja19kZWZhdWx0X3BhcnRpdGlv bl9jb250ZW50cyhSZWxhdGlvbiBwYXJlbnQsIFJlbGF0aW9uIGRlZmF1bHRfcmVsLAogCQllY29u dGV4dCA9IEdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKTsKIAkJc25hcHNob3QgPSBSZWdp c3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwogCQl0dXBzbG90ID0gdGFibGVfc2xv dF9jcmVhdGUocGFydF9yZWwsICZlc3RhdGUtPmVzX3R1cGxlVGFibGUpOwotCQlzY2FuID0gdGFi bGVfYmVnaW5zY2FuKHBhcnRfcmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJs ZV9iZWdpbnNjYW4ocGFydF9yZWwsIHNuYXBzaG90LCAwLCBOVUxMLCAwKTsKIAogCQkvKgogCQkg KiBTd2l0Y2ggdG8gcGVyLXR1cGxlIG1lbW9yeSBjb250ZXh0IGFuZCByZXNldCBpdCBmb3IgZWFj aCB0dXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvc2VsZnVuY3MuYwppbmRleCA1M2Y4NWNjZGUwMS4uMDUyOGY4 MTY2ZDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCkBAIC03MTc3LDYgKzcxNzcsNyBAQCBn ZXRfYWN0dWFsX3ZhcmlhYmxlX2VuZHBvaW50KFJlbGF0aW9uIGhlYXBSZWwsCiAJCQkJCQkJICBH bG9iYWxWaXNUZXN0Rm9yKGhlYXBSZWwpKTsKIAogCWluZGV4X3NjYW4gPSBpbmRleF9iZWdpbnNj YW4oaGVhcFJlbCwgaW5kZXhSZWwsCisJCQkJCQkJCSAwLCAvKiBmbGFncyAqLwogCQkJCQkJCQkg JlNuYXBzaG90Tm9uVmFjdXVtYWJsZSwgTlVMTCwKIAkJCQkJCQkJIDEsIDApOwogCS8qIFNldCBp dCB1cCBmb3IgaW5kZXgtb25seSBzY2FuICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nl c3MvZ2VuYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oCmluZGV4IDFhMjdiZjA2MGIz Li5iOThjMjBhMGVkYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgKKysr IGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgKQEAgLTE1Niw2ICsxNTYsNyBAQCBleHRlcm4g dm9pZCBpbmRleF9pbnNlcnRfY2xlYW51cChSZWxhdGlvbiBpbmRleFJlbGF0aW9uLAogCiBleHRl cm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAog CQkJCQkJCQkJIFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCisJCQkJCQkJCQkgdWludDMyIGZsYWdz LAogCQkJCQkJCQkJIFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJIEluZGV4U2Nhbkluc3Ry dW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKIAkJCQkJCQkJCSBpbnQgbmtleXMsIGludCBub3JkZXJi eXMpOwpAQCAtMTg0LDcgKzE4NSw4IEBAIGV4dGVybiBJbmRleFNjYW5EZXNjIGluZGV4X2JlZ2lu c2Nhbl9wYXJhbGxlbChSZWxhdGlvbiBoZWFwcmVsLAogCQkJCQkJCQkJCQkgIFJlbGF0aW9uIGlu ZGV4cmVsLAogCQkJCQkJCQkJCQkgIEluZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVu dCwKIAkJCQkJCQkJCQkJICBpbnQgbmtleXMsIGludCBub3JkZXJieXMsCi0JCQkJCQkJCQkJCSAg UGFyYWxsZWxJbmRleFNjYW5EZXNjIHBzY2FuKTsKKwkJCQkJCQkJCQkJICBQYXJhbGxlbEluZGV4 U2NhbkRlc2MgcHNjYW4sCisJCQkJCQkJCQkJCSAgdWludDMyIGZsYWdzKTsKIGV4dGVybiBJdGVt UG9pbnRlciBpbmRleF9nZXRuZXh0X3RpZChJbmRleFNjYW5EZXNjIHNjYW4sCiAJCQkJCQkJCQkg U2NhbkRpcmVjdGlvbiBkaXJlY3Rpb24pOwogZXh0ZXJuIGJvb2wgaW5kZXhfZmV0Y2hfaGVhcChJ bmRleFNjYW5EZXNjIHNjYW4sIFR1cGxlVGFibGVTbG90ICpzbG90KTsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApp bmRleCBlMTIzZGRhMDkwZi4uYzZhZWM2M2E1MDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTk1LDEw ICs5NSw3IEBAIHR5cGVkZWYgc3RydWN0IEhlYXBTY2FuRGVzY0RhdGEKIAkgKi8KIAlQYXJhbGxl bEJsb2NrVGFibGVTY2FuV29ya2VyRGF0YSAqcnNfcGFyYWxsZWx3b3JrZXJkYXRhOwogCi0JLyoK LQkgKiBGb3Igc2VxdWVudGlhbCBzY2FucyBhbmQgYml0bWFwIGhlYXAgc2NhbnMuIFRoZSBjdXJy ZW50IGhlYXAgYmxvY2sncwotCSAqIGNvcnJlc3BvbmRpbmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0 eSBtYXAuCi0JICovCisJLyogQ3VycmVudCBoZWFwIGJsb2NrJ3MgY29ycmVzcG9uZGluZyBwYWdl IGluIHRoZSB2aXNpYmlsaXR5IG1hcCAqLwogCUJ1ZmZlcgkJcnNfdm1idWZmZXI7CiAKIAkvKiB0 aGVzZSBmaWVsZHMgb25seSB1c2VkIGluIHBhZ2UtYXQtYS10aW1lIG1vZGUgYW5kIGZvciBiaXRt YXAgc2NhbnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmggYi9z cmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5oCmluZGV4IGNlMzQwYzA3NmY4Li44MGVhMGI0Mzdk MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3MvcmVsc2Nhbi5oCkBAIC0xMjIsNiArMTIyLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg UGFyYWxsZWxCbG9ja1RhYmxlU2NhbldvcmtlckRhdGEgKlBhcmFsbGVsQmxvY2tUYWJsZVNjYW5X b3JrZXI7CiB0eXBlZGVmIHN0cnVjdCBJbmRleEZldGNoVGFibGVEYXRhCiB7CiAJUmVsYXRpb24J cmVsOworCXVpbnQzMgkJZmxhZ3M7CiB9IEluZGV4RmV0Y2hUYWJsZURhdGE7CiAKIHN0cnVjdCBJ bmRleFNjYW5JbnN0cnVtZW50YXRpb247CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv dGFibGVhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAppbmRleCAwNjA4NDc1MjI0 NS4uODM1N2QwNWQ4M2IgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaApAQCAtNjUsNiArNjUsMTYgQEAgdHlw ZWRlZiBlbnVtIFNjYW5PcHRpb25zCiAJU09fVEVNUF9TTkFQU0hPVCA9IDEgPDwgOSwKIH0JCQlT Y2FuT3B0aW9uczsKIAorLyoKKyAqIE1hc2sgb2YgZmxhZ3MgdGhhdCBhcmUgc2V0IGludGVybmFs bHkgYnkgdGhlIHRhYmxlX2JlZ2luc2Nhbl8qIGZ1bmN0aW9ucworICogYW5kIG11c3Qgbm90IGJl IHBhc3NlZCBieSBjYWxsZXJzLgorICovCisjZGVmaW5lIFNPX0lOVEVSTkFMX0ZMQUdTIFwKKwko U09fVFlQRV9TRVFTQ0FOIHwgU09fVFlQRV9CSVRNQVBTQ0FOIHwgU09fVFlQRV9TQU1QTEVTQ0FO IHwgXAorCSBTT19UWVBFX1RJRFNDQU4gfCBTT19UWVBFX1RJRFJBTkdFU0NBTiB8IFNPX1RZUEVf QU5BTFlaRSB8IFwKKwkgU09fQUxMT1dfU1RSQVQgfCBTT19BTExPV19TWU5DIHwgU09fQUxMT1df UEFHRU1PREUgfCBcCisJIFNPX1RFTVBfU05BUFNIT1QpCisKIC8qCiAgKiBSZXN1bHQgY29kZXMg Zm9yIHRhYmxlX3t1cGRhdGUsZGVsZXRlLGxvY2tfdHVwbGV9LCBhbmQgZm9yIHZpc2liaWxpdHkK ICAqIHJvdXRpbmVzIGluc2lkZSB0YWJsZSBBTXMuCkBAIC00MjAsNyArNDMwLDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgVGFibGVBbVJvdXRpbmUKIAkgKgogCSAqIFR1cGxlcyBmb3IgYW4gaW5kZXggc2Nh biBjYW4gdGhlbiBiZSBmZXRjaGVkIHZpYSBpbmRleF9mZXRjaF90dXBsZS4KIAkgKi8KLQlzdHJ1 Y3QgSW5kZXhGZXRjaFRhYmxlRGF0YSAqKCppbmRleF9mZXRjaF9iZWdpbikgKFJlbGF0aW9uIHJl bCk7CisJc3RydWN0IEluZGV4RmV0Y2hUYWJsZURhdGEgKigqaW5kZXhfZmV0Y2hfYmVnaW4pIChS ZWxhdGlvbiByZWwsIHVpbnQzMiBmbGFncyk7CiAKIAkvKgogCSAqIFJlc2V0IGluZGV4IGZldGNo LiBUeXBpY2FsbHkgdGhpcyB3aWxsIHJlbGVhc2UgY3Jvc3MgaW5kZXggZmV0Y2gKQEAgLTg3MSwx MiArODgxLDE4IEBAIGV4dGVybiBUdXBsZVRhYmxlU2xvdCAqdGFibGVfc2xvdF9jcmVhdGUoUmVs YXRpb24gcmVsYXRpb24sIExpc3QgKipyZWdsaXN0KTsKICAqIEEgd3JhcHBlciBhcm91bmQgdGhl IFRhYmxlIEFjY2VzcyBNZXRob2Qgc2Nhbl9iZWdpbiBjYWxsYmFjaywgdG8gY2VudHJhbGl6ZQog ICogZXJyb3IgY2hlY2tpbmcuIEFsbCBjYWxscyB0byAtPnNjYW5fYmVnaW4oKSBzaG91bGQgZ28g dGhyb3VnaCB0aGlzCiAgKiBmdW5jdGlvbi4KKyAqCisgKiBUaGUgY2FsbGVyLXByb3ZpZGVkIHVz ZXJfZmxhZ3MgYXJlIHZhbGlkYXRlZCBhZ2FpbnN0IFNPX0lOVEVSTkFMX0ZMQUdTIHRvCisgKiBj YXRjaCBjYWxsZXJzIHRoYXQgYWNjaWRlbnRhbGx5IHBhc3Mgc2Nhbi10eXBlIG9yIG90aGVyIGlu dGVybmFsIGZsYWdzLgogICovCiBzdGF0aWMgVGFibGVTY2FuRGVzYwogdGFibGVfYmVnaW5zY2Fu X2NvbW1vbihSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LCBpbnQgbmtleXMsCiAJCQkJ CSAgIFNjYW5LZXlEYXRhICprZXksIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKLQkJCQkJ ICAgdWludDMyIGZsYWdzKQorCQkJCQkgICB1aW50MzIgZmxhZ3MsIHVpbnQzMiB1c2VyX2ZsYWdz KQogeworCUFzc2VydCgodXNlcl9mbGFncyAmIFNPX0lOVEVSTkFMX0ZMQUdTKSA9PSAwKTsKKwlm bGFncyB8PSB1c2VyX2ZsYWdzOworCiAJLyoKIAkgKiBXZSBkb24ndCBhbGxvdyBzY2FucyB0byBi ZSBzdGFydGVkIHdoaWxlIENoZWNrWGlkQWxpdmUgaXMgc2V0LCBleGNlcHQKIAkgKiB2aWEgc3lz dGFibGVfYmVnaW5zY2FuKCkgZXQgYWwuICBTZWUgZGV0YWlsZWQgY29tbWVudHMgaW4geGFjdC5j IHdoZXJlCkBAIC04OTQsMTIgKzkxMCwxMyBAQCB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKFJlbGF0 aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsIGludCBua2V5cywKICAqLwogc3RhdGljIGlubGlu ZSBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdpbnNjYW4oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBz bmFwc2hvdCwKLQkJCQlpbnQgbmtleXMsIFNjYW5LZXlEYXRhICprZXkpCisJCQkJaW50IG5rZXlz LCBTY2FuS2V5RGF0YSAqa2V5LCB1aW50MzIgZmxhZ3MpCiB7Ci0JdWludDMyCQlmbGFncyA9IFNP X1RZUEVfU0VRU0NBTiB8CisJdWludDMyCQlpbnRlcm5hbF9mbGFncyA9IFNPX1RZUEVfU0VRU0NB TiB8CiAJCVNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1dfU1lOQyB8IFNPX0FMTE9XX1BBR0VNT0RF OwogCi0JcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgbmtleXMs IGtleSwgTlVMTCwgZmxhZ3MpOworCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwg c25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsCisJCQkJCQkJCSAgaW50ZXJuYWxfZmxhZ3MsIGZs YWdzKTsKIH0KIAogLyoKQEAgLTkyOCw3ICs5NDUsNyBAQCB0YWJsZV9iZWdpbnNjYW5fc3RyYXQo UmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAlpZiAoYWxsb3dfc3luYykKIAkJZmxh Z3MgfD0gU09fQUxMT1dfU1lOQzsKIAotCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJl bCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsKKwlyZXR1cm4gdGFibGVfYmVn aW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLCBmbGFncywgMCk7 CiB9CiAKIC8qCkBAIC05MzksMTEgKzk1NiwxMiBAQCB0YWJsZV9iZWdpbnNjYW5fc3RyYXQoUmVs YXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKICAqLwogc3RhdGljIGlubGluZSBUYWJsZVNj YW5EZXNjCiB0YWJsZV9iZWdpbnNjYW5fYm0oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hv dCwKLQkJCQkgICBpbnQgbmtleXMsIFNjYW5LZXlEYXRhICprZXkpCisJCQkJICAgaW50IG5rZXlz LCBTY2FuS2V5RGF0YSAqa2V5LCB1aW50MzIgZmxhZ3MpCiB7Ci0JdWludDMyCQlmbGFncyA9IFNP X1RZUEVfQklUTUFQU0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOworCXVpbnQzMgkJaW50ZXJuYWxf ZmxhZ3MgPSBTT19UWVBFX0JJVE1BUFNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKIAotCXJldHVy biB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEws IGZsYWdzKTsKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBu a2V5cywga2V5LCBOVUxMLAorCQkJCQkJCQkgIGludGVybmFsX2ZsYWdzLCBmbGFncyk7CiB9CiAK IC8qCkBAIC05NTcsMTggKzk3NSwxOSBAQCBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MKIHRh YmxlX2JlZ2luc2Nhbl9zYW1wbGluZyhSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAog CQkJCQkJIGludCBua2V5cywgU2NhbktleURhdGEgKmtleSwKIAkJCQkJCSBib29sIGFsbG93X3N0 cmF0LCBib29sIGFsbG93X3N5bmMsCi0JCQkJCQkgYm9vbCBhbGxvd19wYWdlbW9kZSkKKwkJCQkJ CSBib29sIGFsbG93X3BhZ2Vtb2RlLCB1aW50MzIgZmxhZ3MpCiB7Ci0JdWludDMyCQlmbGFncyA9 IFNPX1RZUEVfU0FNUExFU0NBTjsKKwl1aW50MzIJCWludGVybmFsX2ZsYWdzID0gU09fVFlQRV9T QU1QTEVTQ0FOOwogCiAJaWYgKGFsbG93X3N0cmF0KQotCQlmbGFncyB8PSBTT19BTExPV19TVFJB VDsKKwkJaW50ZXJuYWxfZmxhZ3MgfD0gU09fQUxMT1dfU1RSQVQ7CiAJaWYgKGFsbG93X3N5bmMp Ci0JCWZsYWdzIHw9IFNPX0FMTE9XX1NZTkM7CisJCWludGVybmFsX2ZsYWdzIHw9IFNPX0FMTE9X X1NZTkM7CiAJaWYgKGFsbG93X3BhZ2Vtb2RlKQotCQlmbGFncyB8PSBTT19BTExPV19QQUdFTU9E RTsKKwkJaW50ZXJuYWxfZmxhZ3MgfD0gU09fQUxMT1dfUEFHRU1PREU7CiAKLQlyZXR1cm4gdGFi bGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLCBmbGFn cyk7CisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgbmtleXMs IGtleSwgTlVMTCwKKwkJCQkJCQkJICBpbnRlcm5hbF9mbGFncywgZmxhZ3MpOwogfQogCiAvKgpA QCAtOTgxLDcgKzEwMDAsNyBAQCB0YWJsZV9iZWdpbnNjYW5fdGlkKFJlbGF0aW9uIHJlbCwgU25h cHNob3Qgc25hcHNob3QpCiB7CiAJdWludDMyCQlmbGFncyA9IFNPX1RZUEVfVElEU0NBTjsKIAot CXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIE5V TEwsIGZsYWdzKTsKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90 LCAwLCBOVUxMLCBOVUxMLCBmbGFncywgMCk7CiB9CiAKIC8qCkBAIC05OTQsNyArMTAxMyw3IEBA IHRhYmxlX2JlZ2luc2Nhbl9hbmFseXplKFJlbGF0aW9uIHJlbCkKIHsKIAl1aW50MzIJCWZsYWdz ID0gU09fVFlQRV9BTkFMWVpFOwogCi0JcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVs LCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBmbGFncyk7CisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9j b21tb24ocmVsLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBmbGFncywgMCk7CiB9CiAKIC8qCkBAIC0x MDU5LDEyICsxMDc4LDEzIEBAIHRhYmxlX3NjYW5fZ2V0bmV4dHNsb3QoVGFibGVTY2FuRGVzYyBz c2NhbiwgU2NhbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFR1cGxlVGFibGVTCiBzdGF0aWMgaW5saW5l IFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2luc2Nhbl90aWRyYW5nZShSZWxhdGlvbiByZWwsIFNu YXBzaG90IHNuYXBzaG90LAogCQkJCQkJIEl0ZW1Qb2ludGVyIG1pbnRpZCwKLQkJCQkJCSBJdGVt UG9pbnRlciBtYXh0aWQpCisJCQkJCQkgSXRlbVBvaW50ZXIgbWF4dGlkLCB1aW50MzIgZmxhZ3Mp CiB7CiAJVGFibGVTY2FuRGVzYyBzc2NhbjsKLQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9USURS QU5HRVNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKKwl1aW50MzIJCWludGVybmFsX2ZsYWdzID0g U09fVFlQRV9USURSQU5HRVNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKIAotCXNzY2FuID0gdGFi bGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCAwLCBOVUxMLCBOVUxMLCBmbGFncyk7 CisJc3NjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIDAsIE5VTEws IE5VTEwsCisJCQkJCQkJCSAgIGludGVybmFsX2ZsYWdzLCBmbGFncyk7CiAKIAkvKiBTZXQgdGhl IHJhbmdlIG9mIFRJRHMgdG8gc2NhbiAqLwogCXNzY2FuLT5yc19yZC0+cmRfdGFibGVhbS0+c2Nh bl9zZXRfdGlkcmFuZ2Uoc3NjYW4sIG1pbnRpZCwgbWF4dGlkKTsKQEAgLTExMzksNyArMTE1OSw4 IEBAIGV4dGVybiB2b2lkIHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplKFJlbGF0aW9uIHJl bCwKICAqIENhbGxlciBtdXN0IGhvbGQgYSBzdWl0YWJsZSBsb2NrIG9uIHRoZSByZWxhdGlvbi4K ICAqLwogZXh0ZXJuIFRhYmxlU2NhbkRlc2MgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0 aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2Nhbik7 CisJCQkJCQkJCQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAorCQkJCQkJCQkJCQkg IHVpbnQzMiBmbGFncyk7CiAKIC8qCiAgKiBCZWdpbiBhIHBhcmFsbGVsIHRpZCByYW5nZSBzY2Fu LiBgcHNjYW5gIG5lZWRzIHRvIGhhdmUgYmVlbiBpbml0aWFsaXplZApAQCAtMTE0OSw3ICsxMTcw LDggQEAgZXh0ZXJuIFRhYmxlU2NhbkRlc2MgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0 aW9uIHJlbGF0aW9uLAogICogQ2FsbGVyIG11c3QgaG9sZCBhIHN1aXRhYmxlIGxvY2sgb24gdGhl IHJlbGF0aW9uLgogICovCiBleHRlcm4gVGFibGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fcGFy YWxsZWxfdGlkcmFuZ2UoUmVsYXRpb24gcmVsYXRpb24sCi0JCQkJCQkJCQkJCQkJICAgUGFyYWxs ZWxUYWJsZVNjYW5EZXNjIHBzY2FuKTsKKwkJCQkJCQkJCQkJCQkgICBQYXJhbGxlbFRhYmxlU2Nh bkRlc2MgcHNjYW4sCisJCQkJCQkJCQkJCQkJICAgdWludDMyIGZsYWdzKTsKIAogLyoKICAqIFJl c3RhcnQgYSBwYXJhbGxlbCBzY2FuLiAgQ2FsbCB0aGlzIGluIHRoZSBsZWFkZXIgcHJvY2Vzcy4g IENhbGxlciBpcwpAQCAtMTE3NSw4ICsxMTk3LDEwIEBAIHRhYmxlX3BhcmFsbGVsc2Nhbl9yZWlu aXRpYWxpemUoUmVsYXRpb24gcmVsLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAgKiBU dXBsZXMgZm9yIGFuIGluZGV4IHNjYW4gY2FuIHRoZW4gYmUgZmV0Y2hlZCB2aWEgdGFibGVfaW5k ZXhfZmV0Y2hfdHVwbGUoKS4KICAqLwogc3RhdGljIGlubGluZSBJbmRleEZldGNoVGFibGVEYXRh ICoKLXRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKFJlbGF0aW9uIHJlbCkKK3RhYmxlX2luZGV4X2Zl dGNoX2JlZ2luKFJlbGF0aW9uIHJlbCwgdWludDMyIGZsYWdzKQogeworCUFzc2VydCgoZmxhZ3Mg JiBTT19JTlRFUk5BTF9GTEFHUykgPT0gMCk7CisKIAkvKgogCSAqIFdlIGRvbid0IGFsbG93IHNj YW5zIHRvIGJlIHN0YXJ0ZWQgd2hpbGUgQ2hlY2tYaWRBbGl2ZSBpcyBzZXQsIGV4Y2VwdAogCSAq IHZpYSBzeXN0YWJsZV9iZWdpbnNjYW4oKSBldCBhbC4gIFNlZSBkZXRhaWxlZCBjb21tZW50cyBp biB4YWN0LmMgd2hlcmUKQEAgLTExODUsNyArMTIwOSw3IEBAIHRhYmxlX2luZGV4X2ZldGNoX2Jl Z2luKFJlbGF0aW9uIHJlbCkKIAlpZiAodW5saWtlbHkoVHJhbnNhY3Rpb25JZElzVmFsaWQoQ2hl Y2tYaWRBbGl2ZSkgJiYgIWJzeXNzY2FuKSkKIAkJZWxvZyhFUlJPUiwgInNjYW4gc3RhcnRlZCBk dXJpbmcgbG9naWNhbCBkZWNvZGluZyIpOwogCi0JcmV0dXJuIHJlbC0+cmRfdGFibGVhbS0+aW5k ZXhfZmV0Y2hfYmVnaW4ocmVsKTsKKwlyZXR1cm4gcmVsLT5yZF90YWJsZWFtLT5pbmRleF9mZXRj aF9iZWdpbihyZWwsIGZsYWdzKTsKIH0KIAogLyoKLS0gCjIuNDMuMAoK --0000000000002c12b8064da25839 Content-Type: text/x-patch; charset="US-ASCII"; name="v43-0008-Pass-down-information-on-table-modification-to-s.patch" Content-Disposition: attachment; filename="v43-0008-Pass-down-information-on-table-modification-to-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn26icu87 RnJvbSAxNjQ4YTVmMDlkZThiYWNkMDA1ZDM4MzQ2OTQzNmYyMWE3M2NlZDdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MzMgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0MyAwOC8xMF0gUGFzcyBkb3duIGluZm9ybWF0aW9uIG9uIHRhYmxlIG1vZGlmaWNhdGlv biB0byBzY2FuCiBub2RlCgpQYXNzIGRvd24gaW5mb3JtYXRpb24gdG8gc2VxdWVudGlhbCBzY2Fu LCBpbmRleCBbb25seV0gc2NhbiwgYml0bWFwCnRhYmxlIHNjYW4sIHNhbXBsZSBzY2FuLCBhbmQg VElEIHJhbmdlIHNjYW4gbm9kZXMgb24gd2hldGhlciBvciBub3QgdGhlCnF1ZXJ5IG1vZGlmaWVz IHRoZSByZWxhdGlvbiBiZWluZyBzY2FubmVkLiBBIGxhdGVyIGNvbW1pdCB3aWxsIHVzZSB0aGlz CmluZm9ybWF0aW9uIHRvIHVwZGF0ZSB0aGUgVk0gZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nIG9u bHkgaWYgdGhlCnJlbGF0aW9uIGlzIG5vdCBtb2RpZmllZCBieSB0aGUgcXVlcnkuCgpBdXRob3I6 IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5 OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBBbmRyZXkg Qm9yb2RpbiA8eDRtbW1AeWFuZGV4LXRlYW0ucnU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5l dmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzQzNzlG REEzLTk0NDYtNEUyQy05QzE1LTMyRUZFOEQ0RjMxQiU0MHlhbmRleC10ZWFtLnJ1Ci0tLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMgfCAgNiArKysrKy0KIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMgIHwgMTUgKysrKysrKysrKysrLS0t CiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgICAgICB8IDE4ICsrKysrKysr KysrKysrLS0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyAgICAgfCAg NSArKysrLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAgICAgICAgfCAxOCAr KysrKysrKysrKysrKystLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4u YyAgIHwgMTUgKysrKysrKysrKysrLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oICAg ICAgICAgICAgICB8ICAzICsrKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCAgICAg ICAgICAgfCAxMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyks IDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVC aXRtYXBIZWFwc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2Fu LmMKaW5kZXggMzI0ZTJiZWQyMmMuLmFlYzkyYzg2OGFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlQml0bWFwSGVhcHNjYW4uYwpAQCAtMTQ0LDExICsxNDQsMTUgQEAgQml0bWFwVGFibGVT Y2FuU2V0dXAoQml0bWFwSGVhcFNjYW5TdGF0ZSAqbm9kZSkKIAkgKi8KIAlpZiAoIW5vZGUtPnNz LnNzX2N1cnJlbnRTY2FuRGVzYykKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNSZWFk T25seSgmbm9kZS0+c3MpID8KKwkJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CisKIAkJbm9k ZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJCXRhYmxlX2JlZ2luc2Nhbl9ibShub2RlLT5z cy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJICAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX3Nu YXBzaG90LAogCQkJCQkJCSAgIDAsCi0JCQkJCQkJICAgTlVMTCwgMCk7CisJCQkJCQkJICAgTlVM TCwKKwkJCQkJCQkgICBmbGFncyk7CiAJfQogCiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNj LT5zdC5yc190Ym1pdGVyYXRvciA9IHRibWl0ZXJhdG9yOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVJbmRleG9ubHlzY2FuLmMKaW5kZXggZjczM2JlMDIyMGMuLmRlOWRiNDUzMjJjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKQEAgLTg1LDYgKzg1LDkgQEAgSW5k ZXhPbmx5TmV4dChJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUpCiAKIAlpZiAoc2NhbmRlc2MgPT0g TlVMTCkKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3Mp ID8KKwkJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CisKIAkJLyoKIAkJICogV2UgcmVhY2gg aGVyZSBpZiB0aGUgaW5kZXggb25seSBzY2FuIGlzIG5vdCBwYXJhbGxlbCwgb3IgaWYgd2UncmUK IAkJICogc2VyaWFsbHkgZXhlY3V0aW5nIGFuIGluZGV4IG9ubHkgc2NhbiB0aGF0IHdhcyBwbGFu bmVkIHRvIGJlCkBAIC05Miw3ICs5NSw3IEBAIEluZGV4T25seU5leHQoSW5kZXhPbmx5U2NhblN0 YXRlICpub2RlKQogCQkgKi8KIAkJc2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW4obm9kZS0+c3Mu c3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkgICBub2RlLT5pb3NzX1JlbGF0aW9uRGVzYywK LQkJCQkJCQkJICAgMCwJLyogZmxhZ3MgKi8KKwkJCQkJCQkJICAgZmxhZ3MsCiAJCQkJCQkJCSAg IGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgIG5vZGUtPmlvc3NfSW5zdHJ1bWVudCwK IAkJCQkJCQkJICAgbm9kZS0+aW9zc19OdW1TY2FuS2V5cywKQEAgLTc5NSw3ICs3OTgsMTAgQEAg RXhlY0luZGV4T25seVNjYW5Jbml0aWFsaXplRFNNKEluZGV4T25seVNjYW5TdGF0ZSAqbm9kZSwK IAkJCQkJCQkJIG5vZGUtPmlvc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVt U2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bU9yZGVyQnlLZXlzLAotCQkJCQkJCQkg cGlzY2FuLCAwKTsKKwkJCQkJCQkJIHBpc2NhbiwKKwkJCQkJCQkJIFNjYW5SZWxJc1JlYWRPbmx5 KCZub2RlLT5zcykgPworCQkJCQkJCQkgU09fSElOVF9SRUxfUkVBRF9PTkxZIDogMCk7CisKIAlu b2RlLT5pb3NzX1NjYW5EZXNjLT54c193YW50X2l0dXAgPSB0cnVlOwogCW5vZGUtPmlvc3NfVk1C dWZmZXIgPSBJbnZhbGlkQnVmZmVyOwogCkBAIC04NjEsNyArODY3LDEwIEBAIEV4ZWNJbmRleE9u bHlTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJ CSBub2RlLT5pb3NzX0luc3RydW1lbnQsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bVNjYW5LZXlz LAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1PcmRlckJ5S2V5cywKLQkJCQkJCQkJIHBpc2Nhbiwg MCk7CisJCQkJCQkJCSBwaXNjYW4sCisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+ c3MpID8KKwkJCQkJCQkJIFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDApOworCiAJbm9kZS0+aW9z c19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlSW5kZXhzY2FuLmMKaW5kZXggMWExMDFkZjQ5MmIuLjlkZjRhNjk5NTA0IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC0xMDQsMTMgKzEwNCwxNiBAQCBJbmRleE5leHQo SW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAKIAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJCXVp bnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCVNPX0hJTlRf UkVMX1JFQURfT05MWSA6IDA7CisKIAkJLyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUgaW5k ZXggc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9yIGlmIHdlJ3JlCiAJCSAqIHNlcmlhbGx5IGV4ZWN1 dGluZyBhbiBpbmRleCBzY2FuIHRoYXQgd2FzIHBsYW5uZWQgdG8gYmUgcGFyYWxsZWwuCiAJCSAq LwogCQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRp b24sCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCi0JCQkJCQkJCSAgIDAsCS8q IGZsYWdzICovCisJCQkJCQkJCSAgIGZsYWdzLAogCQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBz aG90LAogCQkJCQkJCQkgICBub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+ aXNzX051bVNjYW5LZXlzLApAQCAtMjAxLDEzICsyMDQsMTYgQEAgSW5kZXhOZXh0V2l0aFJlb3Jk ZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAKIAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJ CXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCVNPX0hJ TlRfUkVMX1JFQURfT05MWSA6IDA7CisKIAkJLyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUg aW5kZXggc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9yIGlmIHdlJ3JlCiAJCSAqIHNlcmlhbGx5IGV4 ZWN1dGluZyBhbiBpbmRleCBzY2FuIHRoYXQgd2FzIHBsYW5uZWQgdG8gYmUgcGFyYWxsZWwuCiAJ CSAqLwogCQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVs YXRpb24sCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCi0JCQkJCQkJCSAgIDAs CS8qIGZsYWdzICovCisJCQkJCQkJCSAgIGZsYWdzLAogCQkJCQkJCQkgICBlc3RhdGUtPmVzX3Nu YXBzaG90LAogCQkJCQkJCQkgICBub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9k ZS0+aXNzX051bVNjYW5LZXlzLApAQCAtMTczMiw3ICsxNzM4LDkgQEAgRXhlY0luZGV4U2Nhbklu aXRpYWxpemVEU00oSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5pc3NfSW5z dHJ1bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUt Pmlzc19OdW1PcmRlckJ5S2V5cywKLQkJCQkJCQkJIHBpc2NhbiwgMCk7CisJCQkJCQkJCSBwaXNj YW4sCisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJIFNP X0hJTlRfUkVMX1JFQURfT05MWSA6IDApOwogCiAJLyoKIAkgKiBJZiBubyBydW4tdGltZSBrZXlz IHRvIGNhbGN1bGF0ZSBvciB0aGV5IGFyZSByZWFkeSwgZ28gYWhlYWQgYW5kIHBhc3MKQEAgLTE3 OTYsNyArMTgwNCw5IEBAIEV4ZWNJbmRleFNjYW5Jbml0aWFsaXplV29ya2VyKEluZGV4U2NhblN0 YXRlICpub2RlLAogCQkJCQkJCQkgbm9kZS0+aXNzX0luc3RydW1lbnQsCiAJCQkJCQkJCSBub2Rl LT5pc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsCi0J CQkJCQkJCSBwaXNjYW4sIDApOworCQkJCQkJCQkgcGlzY2FuLAorCQkJCQkJCQkgU2NhblJlbElz UmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCSBTT19ISU5UX1JFTF9SRUFEX09OTFkgOiAw KTsKIAogCS8qCiAJICogSWYgbm8gcnVuLXRpbWUga2V5cyB0byBjYWxjdWxhdGUgb3IgdGhleSBh cmUgcmVhZHksIGdvIGFoZWFkIGFuZCBwYXNzCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlU2FtcGxlc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNj YW4uYwppbmRleCBjYzZiMjNhYmVlMC4uNzFjNzBlNWU1YzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVNhbXBsZXNjYW4uYwpAQCAtMjkyLDEzICsyOTIsMTYgQEAgdGFibGVzYW1wbGVfaW5pdChT YW1wbGVTY2FuU3RhdGUgKnNjYW5zdGF0ZSkKIAkvKiBOb3cgd2UgY2FuIGNyZWF0ZSBvciByZXNl dCB0aGUgSGVhcFNjYW5EZXNjICovCiAJaWYgKHNjYW5zdGF0ZS0+c3Muc3NfY3VycmVudFNjYW5E ZXNjID09IE5VTEwpCiAJeworCQl1aW50MzIJCWZsYWdzID0gU2NhblJlbElzUmVhZE9ubHkoJnNj YW5zdGF0ZS0+c3MpID8KKwkJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CisKIAkJc2NhbnN0 YXRlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQkJdGFibGVfYmVnaW5zY2FuX3NhbXBsaW5n KHNjYW5zdGF0ZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkJIHNjYW5zdGF0ZS0+ c3MucHMuc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkJIDAsIE5VTEwsCiAJCQkJCQkJCQkg c2NhbnN0YXRlLT51c2VfYnVsa3JlYWQsCiAJCQkJCQkJCQkgYWxsb3dfc3luYywKLQkJCQkJCQkJ CSBzY2Fuc3RhdGUtPnVzZV9wYWdlbW9kZSwgMCk7CisJCQkJCQkJCQkgc2NhbnN0YXRlLT51c2Vf cGFnZW1vZGUsIGZsYWdzKTsKIAl9CiAJZWxzZQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nh bi5jCmluZGV4IGMyZDliNzI5M2RlLi43OTQ3MGU2YjliNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl U2Vxc2Nhbi5jCkBAIC02NSwxMyArNjUsMTcgQEAgU2VxTmV4dChTZXFTY2FuU3RhdGUgKm5vZGUp CiAKIAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVs SXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CisK IAkJLyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUgc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9y IGlmIHdlJ3JlIHNlcmlhbGx5CiAJCSAqIGV4ZWN1dGluZyBhIHNjYW4gdGhhdCB3YXMgcGxhbm5l ZCB0byBiZSBwYXJhbGxlbC4KIAkJICovCiAJCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuKG5v ZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hv dCwKLQkJCQkJCQkJICAgMCwgTlVMTCwgMCk7CisJCQkJCQkJCSAgIDAsIE5VTEwsIGZsYWdzKTsK KwogCQlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPSBzY2FuZGVzYzsKIAl9CiAKQEAgLTM2 OCwxNCArMzcyLDE4IEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShTZXFTY2FuU3RhdGUgKm5v ZGUsCiB7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBub2RlLT5zcy5wcy5zdGF0ZTsKIAlQYXJhbGxl bFRhYmxlU2NhbkRlc2MgcHNjYW47CisJdWludDMyCQlmbGFncyA9IFNjYW5SZWxJc1JlYWRPbmx5 KCZub2RlLT5zcykgPworCQlTT19ISU5UX1JFTF9SRUFEX09OTFkgOiAwOwogCiAJcHNjYW4gPSBz aG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywgbm9kZS0+cHNjYW5fbGVuKTsKIAl0YWJsZV9wYXJh bGxlbHNjYW5faW5pdGlhbGl6ZShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJ CSAgcHNjYW4sCiAJCQkJCQkJCSAgZXN0YXRlLT5lc19zbmFwc2hvdCk7CiAJc2htX3RvY19pbnNl cnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIHBzY2FuKTsKKwog CW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxl bChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLCAwKTsKKwkJdGFibGVfYmVnaW5z Y2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4sCisJCQkJCQkJ CSBmbGFncyk7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwNSw4ICs0MTMsMTIgQEAgRXhlY1NlcVNj YW5Jbml0aWFsaXplV29ya2VyKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQlQYXJhbGxlbFdv cmtlckNvbnRleHQgKnB3Y3h0KQogewogCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbjsKKwl1 aW50MzIJCWZsYWdzID0gU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCVNPX0hJTlRf UkVMX1JFQURfT05MWSA6IDA7CiAKIAlwc2NhbiA9IHNobV90b2NfbG9va3VwKHB3Y3h0LT50b2Ms IG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgZmFsc2UpOwogCW5vZGUtPnNzLnNzX2N1 cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19j dXJyZW50UmVsYXRpb24sIHBzY2FuLCAwKTsKKwkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKG5v ZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKKwkJCQkJCQkJIHBzY2FuLAorCQkJCQkJCQkgZmxh Z3MpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nh bi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCmluZGV4IDk5NGY3 MDk4OWJjLi40MjU3YWZkOTZlZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVRpZHJhbmdlc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNj YW4uYwpAQCAtMjQyLDEwICsyNDIsMTMgQEAgVGlkUmFuZ2VOZXh0KFRpZFJhbmdlU2NhblN0YXRl ICpub2RlKQogCiAJCWlmIChzY2FuZGVzYyA9PSBOVUxMKQogCQl7CisJCQl1aW50MzIJCWZsYWdz ID0gU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJU09fSElOVF9SRUxfUkVBRF9P TkxZIDogMDsKKwogCQkJc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW5fdGlkcmFuZ2Uobm9kZS0+ c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkJCQkJZXN0YXRlLT5lc19zbmFwc2hvdCwK IAkJCQkJCQkJCQkJCSZub2RlLT50cnNzX21pbnRpZCwKLQkJCQkJCQkJCQkJCSZub2RlLT50cnNz X21heHRpZCwgMCk7CisJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19tYXh0aWQsIGZsYWdzKTsKIAkJ CW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9IHNjYW5kZXNjOwogCQl9CiAJCWVsc2UKQEAg LTQ1MiwxNSArNDU1LDE4IEBAIEV4ZWNUaWRSYW5nZVNjYW5Jbml0aWFsaXplRFNNKFRpZFJhbmdl U2NhblN0YXRlICpub2RlLCBQYXJhbGxlbENvbnRleHQgKnBjeHQpCiB7CiAJRVN0YXRlCSAgICpl c3RhdGUgPSBub2RlLT5zcy5wcy5zdGF0ZTsKIAlQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW47 CisJdWludDMyCQlmbGFncyA9IFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQlTT19I SU5UX1JFTF9SRUFEX09OTFkgOiAwOwogCiAJcHNjYW4gPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQt PnRvYywgbm9kZS0+dHJzc19wc2Nhbmxlbik7CiAJdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxp emUobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkgIHBzY2FuLAogCQkJCQkJ CQkgIGVzdGF0ZS0+ZXNfc25hcHNob3QpOwogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9k ZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBwc2Nhbik7CisKIAlub2RlLT5zcy5zc19jdXJy ZW50U2NhbkRlc2MgPQogCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlkcmFuZ2Uobm9kZS0+ c3Muc3NfY3VycmVudFJlbGF0aW9uLAotCQkJCQkJCQkJCSAgcHNjYW4sIDApOworCQkJCQkJCQkJ CSAgcHNjYW4sIGZsYWdzKTsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDkwLDkgKzQ5NiwxMiBAQCBF eGVjVGlkUmFuZ2VTY2FuSW5pdGlhbGl6ZVdvcmtlcihUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwK IAkJCQkJCQkJIFBhcmFsbGVsV29ya2VyQ29udGV4dCAqcHdjeHQpCiB7CiAJUGFyYWxsZWxUYWJs ZVNjYW5EZXNjIHBzY2FuOworCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNSZWFkT25seSgmbm9k ZS0+c3MpID8KKwkJU09fSElOVF9SRUxfUkVBRF9PTkxZIDogMDsKIAogCXBzY2FuID0gc2htX3Rv Y19sb29rdXAocHdjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBmYWxz ZSk7CisKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQl0YWJsZV9iZWdpbnNjYW5f cGFyYWxsZWxfdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAotCQkJCQkJCQkJ CSAgcHNjYW4sIDApOworCQkJCQkJCQkJCSAgcHNjYW4sIGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVh bS5oCmluZGV4IDgzNTdkMDVkODNiLi40ODdlMzgyOTJmYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvYWNjZXNzL3RhYmxlYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCkBA IC02Myw2ICs2Myw5IEBAIHR5cGVkZWYgZW51bSBTY2FuT3B0aW9ucwogCiAJLyogdW5yZWdpc3Rl ciBzbmFwc2hvdCBhdCBzY2FuIGVuZD8gKi8KIAlTT19URU1QX1NOQVBTSE9UID0gMSA8PCA5LAor CisJLyogc2V0IGlmIHRoZSBxdWVyeSBkb2Vzbid0IG1vZGlmeSB0aGUgcmVsYXRpb24gKi8KKwlT T19ISU5UX1JFTF9SRUFEX09OTFkgPSAxIDw8IDEwLAogfQkJCVNjYW5PcHRpb25zOwogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCBiL3NyYy9pbmNsdWRl L2V4ZWN1dG9yL2V4ZWN1dG9yLmgKaW5kZXggMDdmNGIxZjc0OTAuLjMxYzQxOTJiNjdlIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCisrKyBiL3NyYy9pbmNsdWRl L2V4ZWN1dG9yL2V4ZWN1dG9yLmgKQEAgLTY5MCw2ICs2OTAsMTYgQEAgZXh0ZXJuIHZvaWQgRXhl Y0NyZWF0ZVNjYW5TbG90RnJvbU91dGVyUGxhbihFU3RhdGUgKmVzdGF0ZSwKIAogZXh0ZXJuIGJv b2wgRXhlY1JlbGF0aW9uSXNUYXJnZXRSZWxhdGlvbihFU3RhdGUgKmVzdGF0ZSwgSW5kZXggc2Nh bnJlbGlkKTsKIAorLyoKKyAqIFJldHVybiB0cnVlIGlmIHRoZSBzY2FuIG5vZGUncyByZWxhdGlv biBpcyBub3QgbW9kaWZpZWQgYnkgdGhlIHF1ZXJ5LgorICovCitzdGF0aWMgaW5saW5lIGJvb2wK K1NjYW5SZWxJc1JlYWRPbmx5KFNjYW5TdGF0ZSAqc3MpCit7CisJcmV0dXJuICFibXNfaXNfbWVt YmVyKCgoU2NhbiAqKSBzcy0+cHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJCSAgc3MtPnBzLnN0 YXRlLT5lc19wbGFubmVkc3RtdC0+bW9kaWZpZWRSZWxpZHMpOworfQorCiBleHRlcm4gUmVsYXRp b24gRXhlY09wZW5TY2FuUmVsYXRpb24oRVN0YXRlICplc3RhdGUsIEluZGV4IHNjYW5yZWxpZCwg aW50IGVmbGFncyk7CiAKIGV4dGVybiB2b2lkIEV4ZWNJbml0UmFuZ2VUYWJsZShFU3RhdGUgKmVz dGF0ZSwgTGlzdCAqcmFuZ2VUYWJsZSwgTGlzdCAqcGVybUluZm9zLAotLSAKMi40My4wCgo= --0000000000002c12b8064da25839 Content-Type: text/x-patch; charset="US-ASCII"; name="v43-0009-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v43-0009-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn26ifnt8 RnJvbSBhOGVjOTczMmZmODkyZGZmODE0NmExZDBlNjM3ZGQzMGRlMmRjZjUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IEZlYiAyMDI2IDE2OjMzOjQwIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDMgMDkvMTBdIEFsbG93IG9uLWFjY2VzcyBwcnVuaW5nIHRvIHNldCBwYWdlcyBhbGwt dmlzaWJsZQoKTWFueSBxdWVyaWVzIGRvIG5vdCBtb2RpZnkgdGhlIHVuZGVybHlpbmcgcmVsYXRp b24uIEZvciBzdWNoIHF1ZXJpZXMsIGlmCm9uLWFjY2VzcyBwcnVuaW5nIG9jY3VycyBkdXJpbmcg dGhlIHNjYW4sIHdlIGNhbiBjaGVjayB3aGV0aGVyIHRoZSBwYWdlCmhhcyBiZWNvbWUgYWxsLXZp c2libGUgYW5kIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAgYWNjb3JkaW5nbHkuClByZXZpb3Vz bHksIG9ubHkgdmFjdXVtIGFuZCBDT1BZIEZSRUVaRSBtYXJrZWQgcGFnZXMgYXMgYWxsLXZpc2li bGUgb3IKYWxsLWZyb3plbi4KClRoaXMgY29tbWl0IGltcGxlbWVudHMgb24tYWNjZXNzIFZNIHNl dHRpbmcgZm9yIHNlcXVlbnRpYWwgc2NhbnMgYXMgd2VsbAphcyBmb3IgdGhlIHVuZGVybHlpbmcg aGVhcCByZWxhdGlvbiBpbiBpbmRleCBzY2FucyBhbmQgYml0bWFwIGhlYXAKc2NhbnMuCgpTZXR0 aW5nIHRoZSB2aXNpYmlsaXR5IG1hcCBvbi1hY2Nlc3MgY2FuIGF2b2lkIHdyaXRlIGFtcGxpZmlj YXRpb24KY2F1c2VkIGJ5IHZhY3V1bSBsYXRlciBuZWVkaW5nIHRvIHNldCB0aGUgcGFnZSBhbGwt dmlzaWJsZSwgdHJpZ2dlciBhCndyaXRlIGFuZCBwb3RlbnRpYWxseSBGUEkuIEl0IGFsc28gYWxs b3dzIG1vcmUgZnJlcXVlbnQgaW5kZXgtb25seQpzY2Fucywgc2luY2UgdGhleSByZXF1aXJlIHBh Z2VzIHRvIGJlIG1hcmtlZCBhbGwtdmlzaWJsZSBpbiB0aGUgVk0uCgpBdXRob3I6IE1lbGFuaWUg UGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXMg RnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBLaXJpbGwgUmVzaGtlIDxy ZXNoa2VraXJpbGxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFv QGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0L0NBQUtSdV9a TXc2TnBkX3FtMktNJTJCRndRM2NNT014MURoM1ZNaHA4LVY3U09MeGRLOS1nJTQwbWFpbC5nbWFp bC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAgIHwgIDMg Ky0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgfCAgNiArKy0tCiBz cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgICAgIHwgNDYgKysrKysrKysrKysr KysrKystLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgIHwg IDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAgICAgICAgICAgfCAxNiArKysr KysrLS0KIDUgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCAwNDRmMzg1ZTQ3Ny4uZGJkZjY1MjFjNDIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC02MzMsNyArNjMzLDggQEAgaGVhcF9wcmVw YXJlX3BhZ2VzY2FuKFRhYmxlU2NhbkRlc2Mgc3NjYW4pCiAJLyoKIAkgKiBQcnVuZSBhbmQgcmVw YWlyIGZyYWdtZW50YXRpb24gZm9yIHRoZSB3aG9sZSBwYWdlLCBpZiBwb3NzaWJsZS4KIAkgKi8K LQloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX2Jhc2UucnNfcmQsIGJ1ZmZlciwgJnNjYW4t PnJzX3ZtYnVmZmVyKTsKKwloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX2Jhc2UucnNfcmQs IGJ1ZmZlciwgJnNjYW4tPnJzX3ZtYnVmZmVyLAorCQkJCQkJKHNzY2FuLT5yc19mbGFncyAmIFNP X0hJTlRfUkVMX1JFQURfT05MWSkpOwogCiAJLyoKIAkgKiBXZSBtdXN0IGhvbGQgc2hhcmUgbG9j ayBvbiB0aGUgYnVmZmVyIGNvbnRlbnQgd2hpbGUgZXhhbWluaW5nIHR1cGxlCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwppbmRleCA2NjcyNmIyMmRlNi4uNjUxZWZhMDEy N2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtMTQ4LDcg KzE0OCw4IEBAIGhlYXBhbV9pbmRleF9mZXRjaF90dXBsZShzdHJ1Y3QgSW5kZXhGZXRjaFRhYmxl RGF0YSAqc2NhbiwKIAkJICovCiAJCWlmIChwcmV2X2J1ZiAhPSBoc2Nhbi0+eHNfY2J1ZikKIAkJ CWhlYXBfcGFnZV9wcnVuZV9vcHQoaHNjYW4tPnhzX2Jhc2UucmVsLCBoc2Nhbi0+eHNfY2J1ZiwK LQkJCQkJCQkJJmhzY2FuLT54c192bWJ1ZmZlcik7CisJCQkJCQkJCSZoc2Nhbi0+eHNfdm1idWZm ZXIsCisJCQkJCQkJCShoc2Nhbi0+eHNfYmFzZS5mbGFncyAmIFNPX0hJTlRfUkVMX1JFQURfT05M WSkpOwogCX0KIAogCS8qIE9idGFpbiBzaGFyZS1sb2NrIG9uIHRoZSBidWZmZXIgc28gd2UgY2Fu IGV4YW1pbmUgdmlzaWJpbGl0eSAqLwpAQCAtMjU0NSw3ICsyNTQ2LDggQEAgQml0bWFwSGVhcFNj YW5OZXh0QmxvY2soVGFibGVTY2FuRGVzYyBzY2FuLAogCS8qCiAJICogUHJ1bmUgYW5kIHJlcGFp ciBmcmFnbWVudGF0aW9uIGZvciB0aGUgd2hvbGUgcGFnZSwgaWYgcG9zc2libGUuCiAJICovCi0J aGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19yZCwgYnVmZmVyLCAmaHNjYW4tPnJzX3ZtYnVm ZmVyKTsKKwloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX3JkLCBidWZmZXIsICZoc2Nhbi0+ cnNfdm1idWZmZXIsCisJCQkJCQlzY2FuLT5yc19mbGFncyAmIFNPX0hJTlRfUkVMX1JFQURfT05M WSk7CiAKIAkvKgogCSAqIFdlIG11c3QgaG9sZCBzaGFyZSBsb2NrIG9uIHRoZSBidWZmZXIgY29u dGVudCB3aGlsZSBleGFtaW5pbmcgdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMK aW5kZXggNDFiZmI2NzExYzEuLjIzNWQyMWMxYTQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYwpAQCAtNDQsNiArNDQsOCBAQCB0eXBlZGVmIHN0cnVjdAogCWJvb2wJCW1hcmtfdW51 c2VkX25vdzsKIAkvKiB3aGV0aGVyIHRvIGF0dGVtcHQgZnJlZXppbmcgdHVwbGVzICovCiAJYm9v bAkJYXR0ZW1wdF9mcmVlemU7CisJLyogd2hldGhlciB0byBhdHRlbXB0IHNldHRpbmcgdGhlIFZN ICovCisJYm9vbAkJYXR0ZW1wdF9zZXRfdm07CiAJc3RydWN0IFZhY3V1bUN1dG9mZnMgKmN1dG9m ZnM7CiAJUmVsYXRpb24JcmVsYXRpb247CiAKQEAgLTIzMiw3ICsyMzQsOCBAQCBzdGF0aWMgdm9p ZCBwYWdlX3ZlcmlmeV9yZWRpcmVjdHMoUGFnZSBwYWdlKTsKIAogc3RhdGljIGJvb2wgaGVhcF9w YWdlX3dpbGxfZnJlZXplKGJvb2wgZGlkX3R1cGxlX2hpbnRfZnBpLCBib29sIGRvX3BydW5lLCBi b29sIGRvX2hpbnRfcHJ1bmUsCiAJCQkJCQkJCSAgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSk7Ci1zdGF0 aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVS ZWFzb24gcmVhc29uKTsKK3N0YXRpYyBib29sIGhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0 YXRlICpwcnN0YXRlLCBQcnVuZVJlYXNvbiByZWFzb24sCisJCQkJCQkJCSAgYm9vbCBkb19wcnVu ZSwgYm9vbCBkb19mcmVlemUpOwogCiAKIC8qCkBAIC0yNTMsNyArMjU2LDggQEAgc3RhdGljIGJv b2wgaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29u IHJlYXNvbik7CiAgKiB1bnBpbm5pbmcgKnZtYnVmZmVyLgogICovCiB2b2lkCi1oZWFwX3BhZ2Vf cHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLCBCdWZmZXIgKnZtYnVm ZmVyKQoraGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZl ciwgQnVmZmVyICp2bWJ1ZmZlciwKKwkJCQkJYm9vbCByZWxfcmVhZF9vbmx5KQogewogCVBhZ2UJ CXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAJVHJhbnNhY3Rpb25JZCBwcnVuZV94aWQ7 CkBAIC0zMzYsNiArMzQwLDggQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlv biwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKIAkJCSAqIGN1cnJlbnQgaW1wbGVt ZW50YXRpb24uCiAJCQkgKi8KIAkJCXBhcmFtcy5vcHRpb25zID0gSEVBUF9QQUdFX1BSVU5FX0FM TE9XX0ZBU1RfUEFUSDsKKwkJCWlmIChyZWxfcmVhZF9vbmx5KQorCQkJCXBhcmFtcy5vcHRpb25z IHw9IEhFQVBfUEFHRV9QUlVORV9TRVRfVk07CiAKIAkJCWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKCZwYXJhbXMsICZwcmVzdWx0LCAmZHVtbXlfb2ZmX2xvYywKIAkJCQkJCQkJCSAgIE5VTEws IE5VTEwpOwpAQCAtMzkyLDYgKzM5OCw3IEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6 ZVBhcmFtcyAqcGFyYW1zLAogCS8qIGN1dG9mZnMgbXVzdCBiZSBwcm92aWRlZCBpZiB3ZSB3aWxs IGF0dGVtcHQgZnJlZXppbmcgKi8KIAlBc3NlcnQoIShwYXJhbXMtPm9wdGlvbnMgJiBIRUFQX1BB R0VfUFJVTkVfRlJFRVpFKSB8fCBwYXJhbXMtPmN1dG9mZnMpOwogCXByc3RhdGUtPmF0dGVtcHRf ZnJlZXplID0gKHBhcmFtcy0+b3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUpICE9IDA7 CisJcHJzdGF0ZS0+YXR0ZW1wdF9zZXRfdm0gPSAocGFyYW1zLT5vcHRpb25zICYgSEVBUF9QQUdF X1BSVU5FX1NFVF9WTSkgIT0gMDsKIAlwcnN0YXRlLT5jdXRvZmZzID0gcGFyYW1zLT5jdXRvZmZz OwogCXByc3RhdGUtPnJlbGF0aW9uID0gcGFyYW1zLT5yZWxhdGlvbjsKIAlwcnN0YXRlLT5ibG9j ayA9IEJ1ZmZlckdldEJsb2NrTnVtYmVyKHBhcmFtcy0+YnVmZmVyKTsKQEAgLTQ2MSw5ICs0Njgs OCBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkgKiBX ZSB0cmFjayB3aGV0aGVyIHRoZSBwYWdlIHdpbGwgYmUgYWxsLXZpc2libGUvYWxsLWZyb3plbiBh dCB0aGUgZW5kIG9mCiAJICogcHJ1bmluZyBhbmQgZnJlZXppbmcuIFdoaWxlIGV4YW1pbmluZyB0 dXBsZSB2aXNpYmlsaXR5LCB3ZSdsbCBzZXQKIAkgKiBzZXRfYWxsX3Zpc2libGUgdG8gZmFsc2Ug aWYgdGhlcmUgYXJlIHR1cGxlcyBvbiB0aGUgcGFnZSBub3QgdmlzaWJsZSB0bwotCSAqIGFsbCBy dW5uaW5nIGFuZCBmdXR1cmUgdHJhbnNhY3Rpb25zLiBzZXRfYWxsX3Zpc2libGUgaXMgYWx3YXlz Ci0JICogbWFpbnRhaW5lZCBidXQgb25seSBWQUNVVU0gd2lsbCBzZXQgdGhlIFZNIGlmIHRoZSBw YWdlIGVuZHMgdXAgYmVpbmcKLQkgKiBhbGwtdmlzaWJsZS4KKwkgKiBhbGwgcnVubmluZyBhbmQg ZnV0dXJlIHRyYW5zYWN0aW9ucy4gSWYgZW5hYmxlZCBmb3IgdGhpcyBzY2FuLCB3ZSB3aWxsCisJ ICogc2V0IHRoZSBWTSBpZiB0aGUgcGFnZSBlbmRzIHVwIGJlaW5nIGFsbC12aXNpYmxlLgogCSAq CiAJICogV2UgYWxzbyBrZWVwIHRyYWNrIG9mIHRoZSBuZXdlc3QgbGl2ZSBYSUQsIHdoaWNoIGlz IHVzZWQgdG8gY2FsY3VsYXRlCiAJICogdGhlIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24gZm9y IGEgV0FMIHJlY29yZCBzZXR0aW5nIHRoZSBWTS4KQEAgLTkxOSwyMSArOTI1LDM3IEBAIGhlYXBf cGFnZV9maXhfdm1fY29ycnVwdGlvbihQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIg b2ZmbnVtLAogICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBzZXQgdGhlIFZNIGJp dHMgb3IgcGFnZS1sZXZlbCB2aXNpYmlsaXR5CiAgKiBoaW50LCBQRF9BTExfVklTSUJMRS4KICAq CisgKiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgb25seSBhZnRlciBkb19mcmVlemUgaGFzIGJlZW4g ZGVjaWRlZCAoYW5kIGRvX3BydW5lCisgKiBoYXMgYmVlbiBzZXQpLCBhcyB0aGVzZSBmYWN0b3Ig aW50byBvdXIgaGV1cmlzdGljLWJhc2VkIGRlY2lzaW9uLgorICoKICAqIFJldHVybnMgdHJ1ZSBp ZiBvbmUgb3IgYm90aCBWTSBiaXRzIHNob3VsZCBiZSBzZXQgYW5kIGZhbHNlIG90aGVyd2lzZS4K ICAqLwogc3RhdGljIGJvb2wKLWhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRlICpwcnN0 YXRlLCBQcnVuZVJlYXNvbiByZWFzb24pCitoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFzb24gcmVhc29uLAorCQkJCQkgIGJvb2wgZG9fcHJ1bmUsIGJv b2wgZG9fZnJlZXplKQogewotCS8qCi0JICogVGhvdWdoIG9uLWFjY2VzcyBwcnVuaW5nIG1haW50 YWlucyBwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUsIHdlIGRvbid0Ci0JICogc2V0IHRoZSBWTSBm b3Igbm93LgotCSAqLwotCWlmIChyZWFzb24gPT0gUFJVTkVfT05fQUNDRVNTKQorCWlmICghcHJz dGF0ZS0+YXR0ZW1wdF9zZXRfdm0pCiAJCXJldHVybiBmYWxzZTsKIAogCWlmICghcHJzdGF0ZS0+ c2V0X2FsbF92aXNpYmxlKQogCQlyZXR1cm4gZmFsc2U7CiAKKwkvKgorCSAqIElmIHRoaXMgaXMg YW4gb24tYWNjZXNzIGNhbGwgYW5kIHdlJ3JlIG5vdCBhY3R1YWxseSBwcnVuaW5nLCBhdm9pZAor CSAqIHNldHRpbmcgdGhlIHZpc2liaWxpdHkgbWFwIGlmIGl0IHdvdWxkIG5ld2x5IGRpcnR5IHRo ZSBoZWFwIHBhZ2Ugb3IsIGlmCisJICogdGhlIHBhZ2UgaXMgYWxyZWFkeSBkaXJ0eSwgaWYgZG9p bmcgc28gd291bGQgcmVxdWlyZSBpbmNsdWRpbmcgYQorCSAqIGZ1bGwtcGFnZSBpbWFnZSAoRlBJ KSBvZiB0aGUgaGVhcCBwYWdlIGluIHRoZSBXQUwuIFRoaXMgc2l0dWF0aW9uCisJICogc2hvdWxk IGJlIHJhcmUsIGFzIG9uLWFjY2VzcyBwcnVuaW5nIGlzIG9ubHkgYXR0ZW1wdGVkIHdoZW4KKwkg KiBwZF9wcnVuZV94aWQgaXMgdmFsaWQuCisJICovCisJaWYgKHJlYXNvbiA9PSBQUlVORV9PTl9B Q0NFU1MgJiYgIWRvX3BydW5lICYmICFkb19mcmVlemUgJiYKKwkJKCFCdWZmZXJJc0RpcnR5KHBy c3RhdGUtPmJ1ZmZlcikgfHwgWExvZ0NoZWNrQnVmZmVyTmVlZHNCYWNrdXAocHJzdGF0ZS0+YnVm ZmVyKSkpCisJeworCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJcHJzdGF0 ZS0+c2V0X2FsbF9mcm96ZW4gPSBmYWxzZTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwogCXByc3Rh dGUtPm5ld192bWJpdHMgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwogCiAJaWYgKHByc3Rh dGUtPnNldF9hbGxfZnJvemVuKQpAQCAtMTE2NSw3ICsxMTg3LDcgQEAgaGVhcF9wYWdlX3BydW5l X2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAlBc3NlcnQoIXByc3RhdGUu c2V0X2FsbF9mcm96ZW4gfHwgcHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUpOwogCUFzc2VydCghcHJz dGF0ZS5zZXRfYWxsX3Zpc2libGUgfHwgKHByc3RhdGUubHBkZWFkX2l0ZW1zID09IDApKTsKIAot CWRvX3NldF92bSA9IGhlYXBfcGFnZV93aWxsX3NldF92bSgmcHJzdGF0ZSwgcGFyYW1zLT5yZWFz b24pOworCWRvX3NldF92bSA9IGhlYXBfcGFnZV93aWxsX3NldF92bSgmcHJzdGF0ZSwgcGFyYW1z LT5yZWFzb24sIGRvX3BydW5lLCBkb19mcmVlemUpOwogCiAJLyoKIAkgKiBuZXdfdm1iaXRzIHNo b3VsZCBiZSAwIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgdGhlIHBhZ2UgaXMKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBmNjk4YzJkODk5Yi4uMjQwMDFiMjczODcg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTIwMjEsNyArMjAyMSw3IEBA IGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJCS5idWZmZXIgPSBidWYsCiAJ CS52bWJ1ZmZlciA9IHZtYnVmZmVyLAogCQkucmVhc29uID0gUFJVTkVfVkFDVVVNX1NDQU4sCi0J CS5vcHRpb25zID0gSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSwKKwkJLm9wdGlvbnMgPSBIRUFQX1BB R0VfUFJVTkVfRlJFRVpFIHwgSEVBUF9QQUdFX1BSVU5FX1NFVF9WTSwKIAkJLnZpc3Rlc3QgPSB2 YWNyZWwtPnZpc3Rlc3QsCiAJCS5jdXRvZmZzID0gJnZhY3JlbC0+Y3V0b2ZmcywKIAl9OwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNz L2hlYXBhbS5oCmluZGV4IGM2YWVjNjNhNTA1Li45MGNhNWEyY2ZhOCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0u aApAQCAtNDMsNiArNDMsNyBAQAogI2RlZmluZSBIRUFQX1BBR0VfUFJVTkVfTUFSS19VTlVTRURf Tk9XCQkoMSA8PCAwKQogI2RlZmluZSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFCQkJCSgxIDw8IDEp CiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9BTExPV19GQVNUX1BBVEgJCSgxIDw8IDIpCisjZGVm aW5lIEhFQVBfUEFHRV9QUlVORV9TRVRfVk0JCQkJKDEgPDwgMykKIAogdHlwZWRlZiBzdHJ1Y3Qg QnVsa0luc2VydFN0YXRlRGF0YSAqQnVsa0luc2VydFN0YXRlOwogdHlwZWRlZiBzdHJ1Y3QgR2xv YmFsVmlzU3RhdGUgR2xvYmFsVmlzU3RhdGU7CkBAIC05NSw3ICs5NiwxMiBAQCB0eXBlZGVmIHN0 cnVjdCBIZWFwU2NhbkRlc2NEYXRhCiAJICovCiAJUGFyYWxsZWxCbG9ja1RhYmxlU2Nhbldvcmtl ckRhdGEgKnJzX3BhcmFsbGVsd29ya2VyZGF0YTsKIAotCS8qIEN1cnJlbnQgaGVhcCBibG9jaydz IGNvcnJlc3BvbmRpbmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgKi8KKwkvKgorCSAqIEZv ciBzZXF1ZW50aWFsIHNjYW5zLCBiaXRtYXAgaGVhcCBzY2FucywgVElEIHJhbmdlIHNjYW5zLCBh bmQgc2FtcGxlCisJICogc2NhbnMuIFRoZSBjdXJyZW50IGhlYXAgYmxvY2sncyBjb3JyZXNwb25k aW5nIHBhZ2UgaW4gdGhlIHZpc2liaWxpdHkKKwkgKiBtYXAuIElmIHRoZSByZWxhdGlvbiBpcyBu b3QgbW9kaWZpZWQgYnkgdGhlIHF1ZXJ5LCBvbi1hY2Nlc3MgcHJ1bmluZworCSAqIG1heSBzZXQg dGhlIFZNLgorCSAqLwogCUJ1ZmZlcgkJcnNfdm1idWZmZXI7CiAKIAkvKiB0aGVzZSBmaWVsZHMg b25seSB1c2VkIGluIHBhZ2UtYXQtYS10aW1lIG1vZGUgYW5kIGZvciBiaXRtYXAgc2NhbnMgKi8K QEAgLTEyNiw3ICsxMzIsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgSW5kZXhGZXRjaEhlYXBEYXRhCiAJ ICovCiAJQnVmZmVyCQl4c19jYnVmOwogCi0JLyogQ3VycmVudCBoZWFwIGJsb2NrJ3MgY29ycmVz cG9uZGluZyBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcCAqLworCS8qCisJICogQ3VycmVudCBo ZWFwIGJsb2NrJ3MgY29ycmVzcG9uZGluZyBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcC4gRm9y CisJICogaW5kZXggc2NhbnMgdGhhdCBkbyBub3QgbW9kaWZ5IHRoZSB1bmRlcmx5aW5nIGhlYXAg dGFibGUsIG9uLWFjY2VzcworCSAqIHBydW5pbmcgbWF5IHNldCB0aGUgVk0gb24tYWNjZXNzLgor CSAqLwogCUJ1ZmZlcgkJeHNfdm1idWZmZXI7CiB9IEluZGV4RmV0Y2hIZWFwRGF0YTsKIApAQCAt NDMxLDcgKzQ0MSw3IEBAIGV4dGVybiBUcmFuc2FjdGlvbklkIGhlYXBfaW5kZXhfZGVsZXRlX3R1 cGxlcyhSZWxhdGlvbiByZWwsCiAKIC8qIGluIGhlYXAvcHJ1bmVoZWFwLmMgKi8KIGV4dGVybiB2 b2lkIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIs Ci0JCQkJCQkJCUJ1ZmZlciAqdm1idWZmZXIpOworCQkJCQkJCQlCdWZmZXIgKnZtYnVmZmVyLCBi b29sIHJlbF9yZWFkX29ubHkpOwogZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkJCQkJCQkJCSAgIFBydW5lRnJlZXplUmVz dWx0ICpwcmVzdWx0LAogCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpvZmZfbG9jLAotLSAKMi40 My4wCgo= --0000000000002c12b8064da25839 Content-Type: text/x-patch; charset="UTF-8"; name="v43-0010-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v43-0010-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn26ik829 RnJvbSAwZDRlZGVlZTE0NmQ3YjdmMjRlZmExZGU0ZDdkZWQxZTBmNWM1MTExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDMgMTAvMTBdIFNldCBwZF9wcnVuZV94aWQgb24gaW5zZXJ0Ck1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgpOb3cgdGhhdCB2aXNpYmlsaXR5IG1hcCAoVk0pIHVwZGF0ZXMg Y2FuIG9jY3VyIGR1cmluZyByZWFkLW9ubHkgcXVlcmllcywKaXQgbWFrZXMgc2Vuc2UgdG8gYWxz byBzZXQgdGhlIHBhZ2XigJlzIHBkX3BydW5lX3hpZCBoaW50IGR1cmluZyBpbnNlcnRzCmFuZCBv biB0aGUgbmV3IHBhZ2UgZHVyaW5nIHVwZGF0ZXMuCgpUaGlzIGVuYWJsZXMgaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoKSB0byBzZXQgdGhlIFZNIGFsbC12aXNpYmxlCmFmdGVyIGEgcGFnZSBp cyBmaWxsZWQgd2l0aCBuZXdseSBpbnNlcnRlZCB0dXBsZXMgdGhlIGZpcnN0IHRpbWUgaXQgaXMK cmVhZC4gVGhpcyBtZWFucyB0aGUgcGFnZSB3aWxsIGdldCBzZXQgYWxsLXZpc2libGUgd2hlbiBp dCBpcyBzdGlsbCBpbgpzaGFyZWQgYnVmZmVycyBhbmQgYXZvaWQgcG90ZW50aWFsIEkvTyBhbXBs aWZpY2F0aW9uIHdoZW4gdmFjdXVtIGxhdGVyCmhhcyB0byBzY2FuIHRoZSBwYWdlIGFuZCBzZXQg aXQgYWxsLXZpc2libGUuIEl0IGFsc28gZW5hYmxlcyBpbmRleC1vbmx5CnNjYW5zIG9mIG5ld2x5 IGluc2VydGVkIGRhdGEgbXVjaCBzb29uZXIuCgpUaGlzIGNoYW5nZSBhbHNvIGFkZHJlc3NlcyBh IGxvbmctc3RhbmRpbmcgbm90ZSBpbiBoZWFwX2luc2VydCgpIGFuZApoZWFwX211bHRpX2luc2Vy dCgpLCB3aGljaCBvYnNlcnZlZCB0aGF0IHNldHRpbmcgcGRfcHJ1bmVfeGlkIHdvdWxkCmhlbHAg Y2xlYW4gdXAgYWJvcnRlZCBpbnNlcnRpb25zIHNvb25lci4gV2l0aG91dCBpdCwgc3VjaCB0dXBs ZXMgbWlnaHQKbGluZ2VyIHVudGlsIFZBQ1VVTSwgd2hlcmVhcyBub3cgdGhleSBjYW4gYmUgcHJ1 bmVkIGVhcmxpZXIuCgpBdXRob3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL2ZsYXQvQ0FBS1J1X1pNdzZOcGRfcW0yS00lMkJGd1EzY01P TXgxRGgzVk1ocDgtVjdTT0x4ZEs5LWclNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgfCA0MCArKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgfCAxOSArKysrKysrKysr KystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgIHwgMTggKysrKysrLS0t LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggZGJkZjY1MjFjNDIuLmJhMTFiYmMwM2E1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtMjE1Niw2ICsyMTU2LDcgQEAgaGVhcF9pbnNl cnQoUmVsYXRpb24gcmVsYXRpb24sIEhlYXBUdXBsZSB0dXAsIENvbW1hbmRJZCBjaWQsCiAJVHJh bnNhY3Rpb25JZCB4aWQgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25JZCgpOwogCUhlYXBUdXBsZQlo ZWFwdHVwOwogCUJ1ZmZlcgkJYnVmZmVyOworCVBhZ2UJCXBhZ2U7CiAJQnVmZmVyCQl2bWJ1ZmZl ciA9IEludmFsaWRCdWZmZXI7CiAJYm9vbAkJYWxsX3Zpc2libGVfY2xlYXJlZCA9IGZhbHNlOwog CkBAIC0yMTgyLDYgKzIxODMsOCBAQCBoZWFwX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgSGVh cFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAkJCQkJCQkJCSAgICZ2bWJ1ZmZlciwgTlVMTCwK IAkJCQkJCQkJCSAgIDApOwogCisJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKKwogCS8q CiAJICogV2UncmUgYWJvdXQgdG8gZG8gdGhlIGFjdHVhbCBpbnNlcnQgLS0gYnV0IGNoZWNrIGZv ciBjb25mbGljdCBmaXJzdCwgdG8KIAkgKiBhdm9pZCBwb3NzaWJseSBoYXZpbmcgdG8gcm9sbCBi YWNrIHdvcmsgd2UndmUganVzdCBkb25lLgpAQCAtMjIwNSwyNSArMjIwOCwzMCBAQCBoZWFwX2lu c2VydChSZWxhdGlvbiByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAlS ZWxhdGlvblB1dEhlYXBUdXBsZShyZWxhdGlvbiwgYnVmZmVyLCBoZWFwdHVwLAogCQkJCQkJIChv cHRpb25zICYgSEVBUF9JTlNFUlRfU1BFQ1VMQVRJVkUpICE9IDApOwogCi0JaWYgKFBhZ2VJc0Fs bFZpc2libGUoQnVmZmVyR2V0UGFnZShidWZmZXIpKSkKKwlpZiAoUGFnZUlzQWxsVmlzaWJsZShw YWdlKSkKIAl7CiAJCWFsbF92aXNpYmxlX2NsZWFyZWQgPSB0cnVlOwotCQlQYWdlQ2xlYXJBbGxW aXNpYmxlKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSk7CisJCVBhZ2VDbGVhckFsbFZpc2libGUocGFn ZSk7CiAJCXZpc2liaWxpdHltYXBfY2xlYXIocmVsYXRpb24sCiAJCQkJCQkJSXRlbVBvaW50ZXJH ZXRCbG9ja051bWJlcigmKGhlYXB0dXAtPnRfc2VsZikpLAogCQkJCQkJCXZtYnVmZmVyLCBWSVNJ QklMSVRZTUFQX1ZBTElEX0JJVFMpOwogCX0KIAogCS8qCi0JICogWFhYIFNob3VsZCB3ZSBzZXQg UGFnZVNldFBydW5hYmxlIG9uIHRoaXMgcGFnZSA/CisJICogU2V0IHBkX3BydW5lX3hpZCB0byB0 cmlnZ2VyIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgb25jZSB0aGUgcGFnZQorCSAqIGlz IGZ1bGwgc28gdGhhdCB3ZSBjYW4gc2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlIGluIHRoZSBWTSBv biB0aGUgbmV4dAorCSAqIHBhZ2UgYWNjZXNzLgogCSAqCi0JICogVGhlIGluc2VydGluZyB0cmFu c2FjdGlvbiBtYXkgZXZlbnR1YWxseSBhYm9ydCB0aHVzIG1ha2luZyB0aGlzIHR1cGxlCi0JICog REVBRCBhbmQgaGVuY2UgYXZhaWxhYmxlIGZvciBwcnVuaW5nLiBUaG91Z2ggd2UgZG9uJ3Qgd2Fu dCB0byBvcHRpbWl6ZQotCSAqIGZvciBhYm9ydHMsIGlmIG5vIG90aGVyIHR1cGxlIGluIHRoaXMg cGFnZSBpcyBVUERBVEVkL0RFTEVURWQsIHRoZQotCSAqIGFib3J0ZWQgdHVwbGUgd2lsbCBuZXZl ciBiZSBwcnVuZWQgdW50aWwgbmV4dCB2YWN1dW0gaXMgdHJpZ2dlcmVkLgorCSAqIFNldHRpbmcg cGRfcHJ1bmVfeGlkIGlzIGFsc28gaGFuZHkgaWYgdGhlIGluc2VydGluZyB0cmFuc2FjdGlvbgor CSAqIGV2ZW50dWFsbHkgYWJvcnRzIG1ha2luZyB0aGlzIHR1cGxlIERFQUQgYW5kIGhlbmNlIGF2 YWlsYWJsZSBmb3IKKwkgKiBwcnVuaW5nLiBJZiBubyBvdGhlciB0dXBsZSBpbiB0aGlzIHBhZ2Ug aXMgVVBEQVRFZC9ERUxFVEVkLCB0aGUgYWJvcnRlZAorCSAqIHR1cGxlIHdvdWxkIG5ldmVyIG90 aGVyd2lzZSBiZSBwcnVuZWQgdW50aWwgbmV4dCB2YWN1dW0gaXMgdHJpZ2dlcmVkLgogCSAqCi0J ICogSWYgeW91IGRvIGFkZCBQYWdlU2V0UHJ1bmFibGUgaGVyZSwgYWRkIGl0IGluIGhlYXBfeGxv Z19pbnNlcnQgdG9vLgorCSAqIERvbid0IHNldCBpdCBpZiB3ZSBhcmUgaW4gYm9vdHN0cmFwIG1v ZGUgb3Igd2UgYXJlIGluc2VydGluZyBhIGZyb3plbgorCSAqIHR1cGxlLCBhcyB0aGVyZSBpcyBu byBmdXJ0aGVyIHBydW5pbmcvZnJlZXppbmcgbmVlZGVkIGluIHRob3NlIGNhc2VzLgogCSAqLwor CWlmIChUcmFuc2FjdGlvbklkSXNOb3JtYWwoeGlkKSAmJiAhKG9wdGlvbnMgJiBIRUFQX0lOU0VS VF9GUk9aRU4pKQorCQlQYWdlU2V0UHJ1bmFibGUocGFnZSwgeGlkKTsKIAogCU1hcmtCdWZmZXJE aXJ0eShidWZmZXIpOwogCkBAIC0yMjMzLDcgKzIyNDEsNiBAQCBoZWFwX2luc2VydChSZWxhdGlv biByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAkJeGxfaGVhcF9pbnNl cnQgeGxyZWM7CiAJCXhsX2hlYXBfaGVhZGVyIHhsaGRyOwogCQlYTG9nUmVjUHRyCXJlY3B0cjsK LQkJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIAkJdWludDgJCWluZm8gPSBY TE9HX0hFQVBfSU5TRVJUOwogCQlpbnQJCQlidWZmbGFncyA9IDA7CiAKQEAgLTI1OTgsOCArMjYw NSwxMyBAQCBoZWFwX211bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNs b3QgKipzbG90cywgaW50IG50dXBsZXMsCiAJCX0KIAogCQkvKgotCQkgKiBYWFggU2hvdWxkIHdl IHNldCBQYWdlU2V0UHJ1bmFibGUgb24gdGhpcyBwYWdlID8gU2VlIGhlYXBfaW5zZXJ0KCkKKwkJ ICogU2V0IHBkX3BydW5lX3hpZC4gU2VlIGhlYXBfaW5zZXJ0KCkgZm9yIG1vcmUgb24gd2h5IHdl IGRvIHRoaXMgd2hlbgorCQkgKiBpbnNlcnRpbmcgdHVwbGVzLiBUaGlzIG9ubHkgbWFrZXMgc2Vu c2UgaWYgd2UgYXJlbid0IGFscmVhZHkKKwkJICogc2V0dGluZyB0aGUgcGFnZSBmcm96ZW4gaW4g dGhlIFZNLiBXZSBhbHNvIGRvbid0IHNldCBpdCBpbgorCQkgKiBib290c3RyYXAgbW9kZS4KIAkJ ICovCisJCWlmICghYWxsX2Zyb3plbl9zZXQgJiYgVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhpZCkp CisJCQlQYWdlU2V0UHJ1bmFibGUocGFnZSwgeGlkKTsKIAogCQlNYXJrQnVmZmVyRGlydHkoYnVm ZmVyKTsKIApAQCAtNDE0MSwxMiArNDE1MywxMiBAQCBsMjoKIAkgKiB0aGUgc3Vic2VxdWVudCBw YWdlIHBydW5pbmcgd2lsbCBiZSBhIG5vLW9wIGFuZCB0aGUgaGludCB3aWxsIGJlCiAJICogY2xl YXJlZC4KIAkgKgotCSAqIFhYWCBTaG91bGQgd2Ugc2V0IGhpbnQgb24gbmV3YnVmIGFzIHdlbGw/ ICBJZiB0aGUgdHJhbnNhY3Rpb24gYWJvcnRzLAotCSAqIHRoZXJlIHdvdWxkIGJlIGEgcHJ1bmFi bGUgdHVwbGUgaW4gdGhlIG5ld2J1ZjsgYnV0IGZvciBub3cgd2UgY2hvb3NlCi0JICogbm90IHRv IG9wdGltaXplIGZvciBhYm9ydHMuICBOb3RlIHRoYXQgaGVhcF94bG9nX3VwZGF0ZSBtdXN0IGJl IGtlcHQgaW4KLQkgKiBzeW5jIGlmIHRoaXMgZGVjaXNpb24gY2hhbmdlcy4KKwkgKiBXZSBzZXQg dGhlIG5ldyBwYWdlIHBydW5hYmxlIGFzIHdlbGwuIFNlZSBoZWFwX2luc2VydCgpIGZvciBtb3Jl IG9uIHdoeQorCSAqIHdlIGRvIHRoaXMgd2hlbiBpbnNlcnRpbmcgdHVwbGVzLgogCSAqLwogCVBh Z2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOworCWlmIChuZXdidWYgIT0gYnVmZmVyKQorCQlQYWdl U2V0UHJ1bmFibGUobmV3cGFnZSwgeGlkKTsKIAogCWlmICh1c2VfaG90X3VwZGF0ZSkKIAl7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCAxMzAyYmIxM2UxOC4uZjNmNDE5 ZDNkYzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNDUwLDYgKzQ1 MCwxNCBAQCBoZWFwX3hsb2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWZy ZWVzcGFjZSA9IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKHBhZ2UpOyAvKiBuZWVkZWQgdG8gdXBkYXRl IEZTTSBiZWxvdyAqLwogCisJCS8qCisJCSAqIFNldCB0aGUgcGFnZSBwcnVuYWJsZSB0byB0cmln Z2VyIG9uLWFjY2VzcyBwcnVuaW5nIGxhdGVyLCB3aGljaCBtYXkKKwkJICogc2V0IHRoZSBwYWdl IGFsbC12aXNpYmxlIGluIHRoZSBWTS4gU2VlIGNvbW1lbnRzIGluIGhlYXBfaW5zZXJ0KCkuCisJ CSAqLworCQlpZiAoVHJhbnNhY3Rpb25JZElzTm9ybWFsKFhMb2dSZWNHZXRYaWQocmVjb3JkKSkg JiYKKwkJCSFIZWFwVHVwbGVIZWFkZXJYbWluRnJvemVuKGh0dXApKQorCQkJUGFnZVNldFBydW5h YmxlKHBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7CisKIAkJUGFnZVNldExTTihwYWdlLCBs c24pOwogCiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFS RUQpCkBAIC01OTksMTIgKzYwNywxOSBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFk ZXJTdGF0ZSAqcmVjb3JkKQogCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9BTExfVklT SUJMRV9DTEVBUkVEKQogCQkJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdlKTsKIAotCQkvKiBYTEhf SU5TRVJUX0FMTF9GUk9aRU5fU0VUIGltcGxpZXMgdGhhdCBhbGwgdHVwbGVzIGFyZSB2aXNpYmxl ICovCisJCS8qCisJCSAqIFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9TRVQgaW1wbGllcyB0aGF0IGFs bCB0dXBsZXMgYXJlIHZpc2libGUuIElmCisJCSAqIHdlIGFyZSBub3Qgc2V0dGluZyB0aGUgcGFn ZSBmcm96ZW4sIHRoZW4gc2V0IHRoZSBwYWdlJ3MgcHJ1bmFibGUKKwkJICogaGludCBzbyB0aGF0 IHdlIHRyaWdnZXIgb24tYWNjZXNzIHBydW5pbmcgbGF0ZXIgd2hpY2ggbWF5IHNldCB0aGUKKwkJ ICogcGFnZSBhbGwtdmlzaWJsZSBpbiB0aGUgVk0uCisJCSAqLwogCQlpZiAoeGxyZWMtPmZsYWdz ICYgWExIX0lOU0VSVF9BTExfRlJPWkVOX1NFVCkKIAkJewogCQkJUGFnZVNldEFsbFZpc2libGUo cGFnZSk7CiAJCQlQYWdlQ2xlYXJQcnVuYWJsZShwYWdlKTsKIAkJfQorCQllbHNlCisJCQlQYWdl U2V0UHJ1bmFibGUocGFnZSwgWExvZ1JlY0dldFhpZChyZWNvcmQpKTsKIAogCQlNYXJrQnVmZmVy RGlydHkoYnVmZmVyKTsKIAl9CkBAIC05MjEsNiArOTM2LDggQEAgaGVhcF94bG9nX3VwZGF0ZShY TG9nUmVhZGVyU3RhdGUgKnJlY29yZCwgYm9vbCBob3RfdXBkYXRlKQogCQlmcmVlc3BhY2UgPSBQ YWdlR2V0SGVhcEZyZWVTcGFjZShucGFnZSk7CiAKIAkJUGFnZVNldExTTihucGFnZSwgbHNuKTsK KwkJLyogU2VlIGhlYXBfaW5zZXJ0KCkgZm9yIHdoeSB3ZSBzZXQgcGRfcHJ1bmVfeGlkIG9uIGlu c2VydCAqLworCQlQYWdlU2V0UHJ1bmFibGUobnBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7 CiAJCU1hcmtCdWZmZXJEaXJ0eShuYnVmZmVyKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMKaW5kZXggMjM1ZDIxYzFhNDEuLmFhOTIyMWY1ZWI2IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYwpAQCAtMjc1LDcgKzI3NSw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIsCiAJLyoK IAkgKiBGaXJzdCBjaGVjayB3aGV0aGVyIHRoZXJlJ3MgYW55IGNoYW5jZSB0aGVyZSdzIHNvbWV0 aGluZyB0byBwcnVuZSwKIAkgKiBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGUgaG9yaXpvbiBp cyBhIHdhc3RlIGlmIHRoZXJlJ3Mgbm8gcHJ1bmVfeGlkCi0JICogKGkuZS4gbm8gdXBkYXRlcy9k ZWxldGVzIGxlZnQgcG90ZW50aWFsbHkgZGVhZCB0dXBsZXMgYXJvdW5kKS4KKwkgKiAoaS5lLiBu byB1cGRhdGVzL2RlbGV0ZXMgbGVmdCBwb3RlbnRpYWxseSBkZWFkIHR1cGxlcyBhcm91bmQgYW5k IG5vCisJICogaW5zZXJ0cyBpbnNlcnRlZCBuZXcgdHVwbGVzIHRoYXQgbWF5IGJlIHZpc2libGUg dG8gYWxsKS4KIAkgKi8KIAlwcnVuZV94aWQgPSBQYWdlR2V0UHJ1bmVYaWQocGFnZSk7CiAJaWYg KCFUcmFuc2FjdGlvbklkSXNWYWxpZChwcnVuZV94aWQpKQpAQCAtMTkxNiwxNyArMTkxNywxNCBA QCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3Rh dGUsIE9mZnNldE51bWJlciBvZmZudW0pCiAJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBm YWxzZTsKIAkJCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7CiAKLQkJCS8qIFRoZSBw YWdlIHNob3VsZCBub3QgYmUgbWFya2VkIGFsbC12aXNpYmxlICovCi0JCQlpZiAoUGFnZUlzQWxs VmlzaWJsZShwYWdlKSkKLQkJCQloZWFwX3BhZ2VfZml4X3ZtX2NvcnJ1cHRpb24ocHJzdGF0ZSwg b2ZmbnVtLAotCQkJCQkJCQkJCQlWTV9DT1JSVVBUX1RVUExFX1ZJU0lCSUxJVFkpOwotCiAJCQkv KgotCQkJICogSWYgd2Ugd2FudGVkIHRvIG9wdGltaXplIGZvciBhYm9ydHMsIHdlIG1pZ2h0IGNv bnNpZGVyIG1hcmtpbmcKLQkJCSAqIHRoZSBwYWdlIHBydW5hYmxlIHdoZW4gd2Ugc2VlIElOU0VS VF9JTl9QUk9HUkVTUy4gIEJ1dCB3ZQotCQkJICogZG9uJ3QuICBTZWUgcmVsYXRlZCBkZWNpc2lv bnMgYWJvdXQgd2hlbiB0byBtYXJrIHRoZSBwYWdlCi0JCQkgKiBwcnVuYWJsZSBpbiBoZWFwYW0u Yy4KKwkJCSAqIFRob3VnaCB0aGVyZSBpcyBub3RoaW5nICJwcnVuYWJsZSIgb24gdGhlIHBhZ2Us IHdlIG1haW50YWluCisJCQkgKiBwZF9wcnVuZV94aWQgZm9yIGluc2VydHMgc28gdGhhdCB3ZSBo YXZlIHRoZSBvcHBvcnR1bml0eSB0bworCQkJICogbWFyayB0aGVtIGFsbC12aXNpYmxlIGR1cmlu ZyB0aGUgbmV4dCByb3VuZCBvZiBwcnVuaW5nLgogCQkJICovCisJCQloZWFwX3BydW5lX3JlY29y ZF9wcnVuYWJsZShwcnN0YXRlLAorCQkJCQkJCQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0WG1pbiho dHVwKSwKKwkJCQkJCQkJCSAgIG9mZm51bSk7CiAJCQlicmVhazsKIAogCQljYXNlIEhFQVBUVVBM RV9ERUxFVEVfSU5fUFJPR1JFU1M6Ci0tIAoyLjQzLjAKCg== --0000000000002c12b8064da25839--