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 1w0Mwh-001qim-0O for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Mar 2026 17:02:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w0Mwe-00AHy4-1U for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Mar 2026 17:02:04 +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 1w0Mwd-00AHxv-1W for pgsql-hackers@lists.postgresql.org; Wed, 11 Mar 2026 17:02:04 +0000 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w0MwT-00000001dem-39BN for pgsql-hackers@lists.postgresql.org; Wed, 11 Mar 2026 17:02:03 +0000 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-662fc12ac5bso47761a12.0 for ; Wed, 11 Mar 2026 10:01:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773248511; cv=none; d=google.com; s=arc-20240605; b=Ou7j8+UZv6X+mILZWNh+4F3PRGSZpRawVCkwh6riUV7N+4nN44Wut6wq6xf3juQD6C pbcgoPHYepvhO+2cq4j2age4wYK7Y9uH10XV9T7mngP7FrNFeVX96zBW6FtgO6CWE+w8 Gr8QToULHZZLaiCyxR4pmN2TG71vA+hhErjrwHGqE8mWzZa08AL+5WNcVa26FygKojhZ 5mvuv1F3kQALksqqiC1jg0mwjmfFfaP60T3NPm+dWn86h2GJJV12sNm0e1DDenfEqDwt 0qgiQztLtWNc5NCbWU69CZgJzqtuzYkSi1qAjFZwij5APGAEDOso9KCtLI5SgxqJg8F5 kUaQ== 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=AdauCq9PJJaDYTie9/JyAEen2F6B9kFnyTBxU5UFmac=; fh=oq4fSipUtxq/5g6wCnhNznA3AmbWYSgBedZND7akSx4=; b=Nw5xRtl+0ZbC/o8pA4TrMRr4RWL1v1xjSD/H6n8A/N6RGAjZ5A8Mgb8YmeJXmFOPAT Midhhw8hd7W5V3UTWoIvcMc8PqaNU1TTJV/4UupMM/H/bg7kwHTgRzhopNt8nJQlFj+R Rn6mtWYiM1PUuVP0yvyAdXaRi1aebIQFspmmYzHICvQl3p6yrhTy0zQKW3zBoYL32ywB c0/d+ZPqlaKFO3PKUdsh4wa723LrxjnTy9VamyefDh1+JDUHDcwmUgsMAVKADQoN/6et ertISAZNpZhAvAY/pMalU1uTbSaGU1Z2fucwLfMen0fkCk/NQJc37/7d3U2QrxClgEdb 7W6w==; 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=1773248511; x=1773853311; 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=AdauCq9PJJaDYTie9/JyAEen2F6B9kFnyTBxU5UFmac=; b=P+QWVy1Iktsbu7vXFp9g6mFo0mwqfNe1BS4L+NiWhoE/zU2SfkZ4b9tm02GT9q/w96 FLAgqpmq3p80oidPraJ8xZRcj9Q8zbI3jpoSPNx5u+SIa9PDCpHvAVDxDeZIaH7LRaoo bs7kmdDzp++PhEwbOtflfT1TSksOreTHBzrE51TeZyP/u8W+eHVBA4J0oHft0crW98Hz zIfBpq4zwKb0MCddAdoJOV2UlFuNINot0K56Tug/CqoY1B/DKrDRPMZhroFA1fFSRVWL zeTtlWSq5HTK4reQvyw1o7gkdo4MGuRdU+cL67X+8HID7EtVJPkL+xGPV8QOoTrYv2Zx 0mBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773248511; x=1773853311; 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=AdauCq9PJJaDYTie9/JyAEen2F6B9kFnyTBxU5UFmac=; b=S+2FA1CMfLXkLhh7upapbKCHupj73YZvetDf607rvRm6CDPASA1AgwKZ3r2bm4LoY7 CUXGGP4BtNFZRcfZ6/qYwT2RUfKwBxcsmzXwqZ0ZinhU9lvbpkEuluX3oaUgOqikObKk V1j93LRtM84T5su1/2IEnnd6vXNXJ4yQqL0QIgJ80/gI8ai5TZQcncd1DVxlJwos9Bvc v1KQ3pnXCpTiJZY40uHlCmAPtYGnqdUEnmrm6Bsirp4DZum0zvGXtM9Nr/JhrkiUMLUA zCzWYC9liZaDBZmDQJPL+hWPP/kJv3Ky2IHP0D4I0BP+mHSEJaYNMYxAiJT62ryvrf6V cVig== X-Forwarded-Encrypted: i=1; AJvYcCUYcbWu2JN22YH4ewCt51o0suqn4f1CRlvHcUwTHz4fdImyf+WaG3WG8glEg1gax5+q9wj5hHNhskBr8ah6@lists.postgresql.org X-Gm-Message-State: AOJu0Yy7u5OYSbdf7BtywAOSXZ3+6+5eg35iqzyYu8Xia1E20k6TzhlQ WDP5/Yc9p+/urkG2pgC2C66bC3aMhDpMLR/LVIY6kPLa69R3CEivvrjAWJRfoUtXcYChl8V+M3h VwRVjO6SKsuTxQAIWiwenM5iJdC+73ug= X-Gm-Gg: ATEYQzw24PEUIxvuDz/ylqBqW51IeklHlQhuHOsDhhiwTXQ+3cQG8AbrkMnUrYjWI65 CJRcWXr8mURtDc3/YRs1V9g08w7R8D1quRn/kI1JE3YK1CTqdm9XFdcLGJXrLOgYtZzlD3ZvjYS fMYdAOMkagtUfy7iwnQ0GtFP6cigNlVx4I9cjyJm8GPauJYrWHwTBr7A9F8oXeojqGqbTSSpzGa uf2We0/B8xOcAwcK5ymmsJXZJNYqa9ygJvlHQ80zcVLw7CqiNdVoHmDqQkkYYmBaHYHTF8CHHO4 CMmiXFNyQpMudNixBd1NaAjzsBzgJmEChk1Efk421mJ8gJIP/7dMLsg2ermD7EbEirPHQ5oCQzo J38FZhPrp X-Received: by 2002:a05:6402:3511:b0:65b:e788:5de0 with SMTP id 4fb4d7f45d1cf-663194cbd79mr1817532a12.7.1773248510500; Wed, 11 Mar 2026 10:01:50 -0700 (PDT) MIME-Version: 1.0 References: <6BC5DBAB-6084-4BB8-8450-52E9648AB021@gmail.com> <7F5BCD7A-764D-4D8D-8E27-6F2CAAEA1CEE@gmail.com> <4379FDA3-9446-4E2C-9C15-32EFE8D4F31B@yandex-team.ru> <7ib3sa55sapwjlaz4sijbiq7iezna27kjvvvar4dpgkmadml6t@gfpkkwmdnepx> <81DAFACF-7D55-4A84-ACB0-0425D1669DB4@gmail.com> In-Reply-To: From: Melanie Plageman Date: Wed, 11 Mar 2026 13:01:36 -0400 X-Gm-Features: AaiRm50dHGfzjeFDEfUjKDjgOAyYMFJoyqVqgtg-4I0rU7KkvvOqecmP9-EdnZ8 Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Chao Li Cc: Andres Freund , Andrey Borodin , Kirill Reshke , Xuneng Zhou , Robert Haas , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="000000000000917517064cc2978d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000917517064cc2978d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Mar 6, 2026 at 6:33=E2=80=AFPM Melanie Plageman wrote: > > Thanks for the review! Attached is v36. I've pushed some of the early > patches in the set and this is what is left. I've gone ahead and pushed another of the introductory commits. Attached v37 has the remaining patches. The one change is that I've removed get_conflict_xid(). I determined that in the current code that we cannot end up in the scenario where we didn't prune or freeze and the page was already all-visible but not all-frozen. The closest scenario would be one where the page was all-frozen, we cleared the all-frozen bit because we did a SELECT FOR UPDATE on one of the tuples, then vacuum freezes the page. Even though we are just invalidating the xmax, it still counts as freezing. However, in this case we will not advance the FreezePageConflictXid, so the snapshot conflict horizon will still correctly be InvalidTransactionId. I believe in all cases we will correctly set the conflict horizon to InvalidTransactionId with this much simpler conflict xid calculation: conflict_xid =3D InvalidTransactionId; if (do_set_vm) conflict_xid =3D prstate.newest_live_xid; if (do_freeze && TransactionIdFollows(prstate.pagefrz.FreezePageConflictXid, conflict_xid)) conflict_xid =3D prstate.pagefrz.FreezePageConflictXid; if (do_prune && TransactionIdFollows(prstate.latest_xid_removed, conflict_xid)) conflict_xid =3D prstate.latest_xid_removed; The only outstanding question I have is about pd_prune_xid on insert: I think we only want to set pd_prune_xid on insert if the transaction ID is normal. Bootstrap mode does call heap_insert(), so we need to check the xid before setting it. The only question is then if we want the same guard on replay. Bootstrap mode won't actually insert a WAL record, so we don't need this check I think. However, I think it is better to have it for consistency with normal mode. - Melanie --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0001-Save-vmbuffer-in-heap-specific-scan-descriptors-.patch" Content-Disposition: attachment; filename="v37-0001-Save-vmbuffer-in-heap-specific-scan-descriptors-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmaazj80 RnJvbSAzOTliOTRiNmNkY2FkZDk1ZDAxOGY1MWM5N2JiYmY2ZTZiZDI2ZjdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IEZlYiAyMDI2IDE2OjIzOjU3IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2MzcgMDEvMTVdIFNhdmUgdm1idWZmZXIgaW4gaGVhcC1zcGVjaWZpYyBzY2FuIGRlc2Ny aXB0b3JzIGZvcgogb24tYWNjZXNzIHBydW5pbmcKCkZ1dHVyZSBjb21taXRzIHdpbGwgdXNlIHRo ZSB2aXNpYmlsaXR5IG1hcCBpbiBvbi1hY2Nlc3MgcHJ1bmluZyB0byBhdm9pZApwcnVuaW5nIHdo ZW4gYSBwYWdlIGlzIGFsbC12aXNpYmxlLCBmaXggVk0gY29ycnVwdGlvbiwgYW5kIHNldCB0aGUg Vk0gaWYKdGhlIHBhZ2UgaXMgYWxsLXZpc2libGUuCgpTYXZpbmcgdGhlIHZtYnVmZmVyIGluIHRo ZSBzY2FuIGRlc2NyaXB0b3IgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHRpbWVzCml0IHdvdWxkIG5l ZWQgdG8gYmUgcGlubmVkIGFuZCB1bnBpbm5lZCwgbWFraW5nIHRoZSBvdmVyaGVhZCBvZiBkb2lu ZyBzbwpuZWdsaWdpYmxlLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2Vt YW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNv bT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAgIHwgMTIgKysr KysrKysrKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIHwgMTIg KysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgICAgIHwg IDYgKysrKystCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgICAgIHwgMTkg KysrKysrKysrKysrKysrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCA3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggOGYxYzExYTkzNTAu LjdmZjlhOTMwODQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0u YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtNjMzLDcgKzYzMyw3 IEBAIGhlYXBfcHJlcGFyZV9wYWdlc2NhbihUYWJsZVNjYW5EZXNjIHNzY2FuKQogCS8qCiAJICog UHJ1bmUgYW5kIHJlcGFpciBmcmFnbWVudGF0aW9uIGZvciB0aGUgd2hvbGUgcGFnZSwgaWYgcG9z c2libGUuCiAJICovCi0JaGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19iYXNlLnJzX3JkLCBi dWZmZXIpOworCWhlYXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfYmFzZS5yc19yZCwgYnVmZmVy LCAmc2Nhbi0+cnNfdm1idWZmZXIpOwogCiAJLyoKIAkgKiBXZSBtdXN0IGhvbGQgc2hhcmUgbG9j ayBvbiB0aGUgYnVmZmVyIGNvbnRlbnQgd2hpbGUgZXhhbWluaW5nIHR1cGxlCkBAIC0xMzEwLDYg KzEzMTAsNyBAQCBoZWFwX2JlZ2luc2NhbihSZWxhdGlvbiByZWxhdGlvbiwgU25hcHNob3Qgc25h cHNob3QsCiAJCQkJCQkJCQkJCQkJCSAgc2l6ZW9mKFRCTUl0ZXJhdGVSZXN1bHQpKTsKIAl9CiAK KwlzY2FuLT5yc192bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CiAKIAlyZXR1cm4gKFRhYmxlU2Nh bkRlc2MpIHNjYW47CiB9CkBAIC0xMzQ4LDYgKzEzNDksMTIgQEAgaGVhcF9yZXNjYW4oVGFibGVT Y2FuRGVzYyBzc2NhbiwgU2NhbktleSBrZXksIGJvb2wgc2V0X3BhcmFtcywKIAkJc2Nhbi0+cnNf Y2J1ZiA9IEludmFsaWRCdWZmZXI7CiAJfQogCisJaWYgKEJ1ZmZlcklzVmFsaWQoc2Nhbi0+cnNf dm1idWZmZXIpKQorCXsKKwkJUmVsZWFzZUJ1ZmZlcihzY2FuLT5yc192bWJ1ZmZlcik7CisJCXNj YW4tPnJzX3ZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKKwl9CisKIAkvKgogCSAqIFNPX1RZUEVf QklUTUFQU0NBTiB3b3VsZCBiZSBjbGVhbmVkIHVwIGhlcmUsIGJ1dCBpdCBkb2VzIG5vdCBob2xk IGFueQogCSAqIGFkZGl0aW9uYWwgZGF0YSB2cyBhIG5vcm1hbCBIZWFwU2NhbgpAQCAtMTM4MCw2 ICsxMzg3LDkgQEAgaGVhcF9lbmRzY2FuKFRhYmxlU2NhbkRlc2Mgc3NjYW4pCiAJaWYgKEJ1ZmZl cklzVmFsaWQoc2Nhbi0+cnNfY2J1ZikpCiAJCVJlbGVhc2VCdWZmZXIoc2Nhbi0+cnNfY2J1Zik7 CiAKKwlpZiAoQnVmZmVySXNWYWxpZChzY2FuLT5yc192bWJ1ZmZlcikpCisJCVJlbGVhc2VCdWZm ZXIoc2Nhbi0+cnNfdm1idWZmZXIpOworCiAJLyoKIAkgKiBNdXN0IGZyZWUgdGhlIHJlYWQgc3Ry ZWFtIGJlZm9yZSBmcmVlaW5nIHRoZSBCdWZmZXJBY2Nlc3NTdHJhdGVneS4KIAkgKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCmluZGV4IDUxMzdkMjUxMGVhLi5iNmVk NTkzODQ3NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRs ZXIuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCkBAIC04 NSw2ICs4NSw3IEBAIGhlYXBhbV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCiAKIAlo c2Nhbi0+eHNfYmFzZS5yZWwgPSByZWw7CiAJaHNjYW4tPnhzX2NidWYgPSBJbnZhbGlkQnVmZmVy OworCWhzY2FuLT54c192bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CiAKIAlyZXR1cm4gJmhzY2Fu LT54c19iYXNlOwogfQpAQCAtOTksNiArMTAwLDEyIEBAIGhlYXBhbV9pbmRleF9mZXRjaF9yZXNl dChJbmRleEZldGNoVGFibGVEYXRhICpzY2FuKQogCQlSZWxlYXNlQnVmZmVyKGhzY2FuLT54c19j YnVmKTsKIAkJaHNjYW4tPnhzX2NidWYgPSBJbnZhbGlkQnVmZmVyOwogCX0KKworCWlmIChCdWZm ZXJJc1ZhbGlkKGhzY2FuLT54c192bWJ1ZmZlcikpCisJeworCQlSZWxlYXNlQnVmZmVyKGhzY2Fu LT54c192bWJ1ZmZlcik7CisJCWhzY2FuLT54c192bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CisJ fQogfQogCiBzdGF0aWMgdm9pZApAQCAtMTM4LDcgKzE0NSw4IEBAIGhlYXBhbV9pbmRleF9mZXRj aF90dXBsZShzdHJ1Y3QgSW5kZXhGZXRjaFRhYmxlRGF0YSAqc2NhbiwKIAkJICogUHJ1bmUgcGFn ZSwgYnV0IG9ubHkgaWYgd2Ugd2VyZW4ndCBhbHJlYWR5IG9uIHRoaXMgcGFnZQogCQkgKi8KIAkJ aWYgKHByZXZfYnVmICE9IGhzY2FuLT54c19jYnVmKQotCQkJaGVhcF9wYWdlX3BydW5lX29wdCho c2Nhbi0+eHNfYmFzZS5yZWwsIGhzY2FuLT54c19jYnVmKTsKKwkJCWhlYXBfcGFnZV9wcnVuZV9v cHQoaHNjYW4tPnhzX2Jhc2UucmVsLCBoc2Nhbi0+eHNfY2J1ZiwKKwkJCQkJCQkJJmhzY2FuLT54 c192bWJ1ZmZlcik7CiAJfQogCiAJLyogT2J0YWluIHNoYXJlLWxvY2sgb24gdGhlIGJ1ZmZlciBz byB3ZSBjYW4gZXhhbWluZSB2aXNpYmlsaXR5ICovCkBAIC0yNTMzLDcgKzI1NDEsNyBAQCBCaXRt YXBIZWFwU2Nhbk5leHRCbG9jayhUYWJsZVNjYW5EZXNjIHNjYW4sCiAJLyoKIAkgKiBQcnVuZSBh bmQgcmVwYWlyIGZyYWdtZW50YXRpb24gZm9yIHRoZSB3aG9sZSBwYWdlLCBpZiBwb3NzaWJsZS4K IAkgKi8KLQloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX3JkLCBidWZmZXIpOworCWhlYXBf cGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfcmQsIGJ1ZmZlciwgJmhzY2FuLT5yc192bWJ1ZmZlcik7 CiAKIAkvKgogCSAqIFdlIG11c3QgaG9sZCBzaGFyZSBsb2NrIG9uIHRoZSBidWZmZXIgY29udGVu dCB3aGlsZSBleGFtaW5pbmcgdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5k ZXggNmJlZWI2OTU2ZTMuLjhkOWYwNjk0MjA2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYwpAQCAtMjA3LDkgKzIwNywxMyBAQCBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9mcmVl emUoYm9vbCBkaWRfdHVwbGVfaGludF9mcGksIGJvb2wgZG9fcHJ1bmUsIGJvb2wgZAogICogaWYg dGhlcmUncyBub3QgYW55IHVzZSBpbiBwcnVuaW5nLgogICoKICAqIENhbGxlciBtdXN0IGhhdmUg cGluIG9uIHRoZSBidWZmZXIsIGFuZCBtdXN0ICpub3QqIGhhdmUgYSBsb2NrIG9uIGl0LgorICoK KyAqIFRoaXMgZnVuY3Rpb24gbWF5IHBpbiAqdm1idWZmZXIuIEl0J3MgcGFzc2VkIGJ5IHJlZmVy ZW5jZSBzbyB0aGUgY2FsbGVyIGNhbgorICogcmV1c2UgdGhlIHBpbiBhY3Jvc3MgY2FsbHMsIGF2 b2lkaW5nIHJlcGVhdGVkIHBpbi91bnBpbiBjeWNsZXMuIENhbGxlciBpcworICogcmVzcG9uc2li bGUgZm9yIHVucGlubmluZyBpdC4KICAqLwogdm9pZAotaGVhcF9wYWdlX3BydW5lX29wdChSZWxh dGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcikKK2hlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRp b24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIpCiB7CiAJUGFnZQkJ cGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIAlUcmFuc2FjdGlvbklkIHBydW5lX3hpZDsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW0uaAppbmRleCBhZDk5M2MwNzMxMS4uMmZkYzUwYjg2NWIgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVh cGFtLmgKQEAgLTk0LDYgKzk0LDEyIEBAIHR5cGVkZWYgc3RydWN0IEhlYXBTY2FuRGVzY0RhdGEK IAkgKi8KIAlQYXJhbGxlbEJsb2NrVGFibGVTY2FuV29ya2VyRGF0YSAqcnNfcGFyYWxsZWx3b3Jr ZXJkYXRhOwogCisJLyoKKwkgKiBGb3Igc2VxdWVudGlhbCBzY2FucyBhbmQgYml0bWFwIGhlYXAg c2NhbnMuIFRoZSBjdXJyZW50IGhlYXAgYmxvY2sncworCSAqIGNvcnJlc3BvbmRpbmcgcGFnZSBp biB0aGUgdmlzaWJpbGl0eSBtYXAuCisJICovCisJQnVmZmVyCQlyc192bWJ1ZmZlcjsKKwogCS8q IHRoZXNlIGZpZWxkcyBvbmx5IHVzZWQgaW4gcGFnZS1hdC1hLXRpbWUgbW9kZSBhbmQgZm9yIGJp dG1hcCBzY2FucyAqLwogCXVpbnQzMgkJcnNfY2luZGV4OwkJLyogY3VycmVudCB0dXBsZSdzIGlu ZGV4IGluIHZpc3R1cGxlcyAqLwogCXVpbnQzMgkJcnNfbnR1cGxlczsJCS8qIG51bWJlciBvZiB2 aXNpYmxlIHR1cGxlcyBvbiBwYWdlICovCkBAIC0xMTYsOCArMTIyLDE0IEBAIHR5cGVkZWYgc3Ry dWN0IEluZGV4RmV0Y2hIZWFwRGF0YQogewogCUluZGV4RmV0Y2hUYWJsZURhdGEgeHNfYmFzZTsJ LyogQU0gaW5kZXBlbmRlbnQgcGFydCBvZiB0aGUgZGVzY3JpcHRvciAqLwogCi0JQnVmZmVyCQl4 c19jYnVmOwkJLyogY3VycmVudCBoZWFwIGJ1ZmZlciBpbiBzY2FuLCBpZiBhbnkgKi8KLQkvKiBO QjogaWYgeHNfY2J1ZiBpcyBub3QgSW52YWxpZEJ1ZmZlciwgd2UgaG9sZCBhIHBpbiBvbiB0aGF0 IGJ1ZmZlciAqLworCS8qCisJICogQ3VycmVudCBoZWFwIGJ1ZmZlciBpbiBzY2FuLCBpZiBhbnku IE5COiBpZiB4c19jYnVmIGlzIG5vdAorCSAqIEludmFsaWRCdWZmZXIsIHdlIGhvbGQgYSBwaW4g b24gdGhhdCBidWZmZXIuCisJICovCisJQnVmZmVyCQl4c19jYnVmOworCisJLyogQ3VycmVudCBo ZWFwIGJsb2NrJ3MgY29ycmVzcG9uZGluZyBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcCAqLwor CUJ1ZmZlcgkJeHNfdm1idWZmZXI7CiB9IEluZGV4RmV0Y2hIZWFwRGF0YTsKIAogLyogUmVzdWx0 IGNvZGVzIGZvciBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0gKi8KQEAgLTQyMiw3ICs0MzQsOCBA QCBleHRlcm4gVHJhbnNhY3Rpb25JZCBoZWFwX2luZGV4X2RlbGV0ZV90dXBsZXMoUmVsYXRpb24g cmVsLAogCQkJCQkJCQkJCQkgIFRNX0luZGV4RGVsZXRlT3AgKmRlbHN0YXRlKTsKIAogLyogaW4g aGVhcC9wcnVuZWhlYXAuYyAqLwotZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX29wdChSZWxh dGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcik7CitleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1 bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJCQlCdWZmZXIg KnZtYnVmZmVyKTsKIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5l RnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCQkJCQkJCQkgICBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJl c3VsdCwKIAkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqb2ZmX2xvYywKLS0gCjIuNDMuMAoK --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0002-Fix-visibility-map-corruption-in-more-cases.patch" Content-Disposition: attachment; filename="v37-0002-Fix-visibility-map-corruption-in-more-cases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmab3p71 RnJvbSA0MjFmZGM3NWZhYTI4M2Q0MzVmNGExYTNkYTdmMzIyYmUwYThlMGY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI1IEZlYiAyMDI2IDE2OjIzOjA5IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2MzcgMDIvMTVdIEZpeCB2aXNpYmlsaXR5IG1hcCBjb3JydXB0aW9uIGluIG1vcmUgY2Fz ZXMKCk1vdmUgVk0gY29ycnVwdGlvbiBkZXRlY3Rpb24gYW5kIHJlcGFpciBpbnRvIHBydW5pbmcu IFRoaXMgYWxsb3dzIFZNCnJlcGFpciBkdXJpbmcgb24tYWNjZXNzIHBydW5pbmcsIG5vdCBvbmx5 IGR1cmluZyB2YWN1dW0uCgpBbHNvLCBleHBhbmQgY29ycnVwdGlvbiBkZXRlY3Rpb24gdG8gY292 ZXIgcGFnZXMgbWFya2VkIGFsbC12aXNpYmxlIHRoYXQKY29udGFpbiBkZWFkIHR1cGxlcyBhbmQg dHVwbGVzIGluc2VydGVkIG9yIHVwZGF0ZWQgYnkgaW4tcHJvZ3Jlc3MKdHJhbnNhY3Rpb25zLCBy YXRoZXIgdGhhbiBvbmx5IGFsbC12aXNpYmxlIHBhZ2VzIHdpdGggTFBfREVBRCBpdGVtcy4KClBp bm5pbmcgdGhlIGNvcnJlY3QgVk0gcGFnZSBiZWZvcmUgb24tYWNjZXNzIHBydW5pbmcgaXMgY2hl YXAgd2hlbgpjb21wYXJlZCB0byB0aGUgY29zdCBvZiBhY3R1YWxseSBwcnVuaW5nLiBUaGUgdm1i dWZmZXIgaXMgc2F2ZWQgaW4gdGhlCnNjYW4gZGVzY3JpcHRvciwgc28gYSBxdWVyeSBzaG91bGQg b25seSBuZWVkIHRvIHBpbiBlYWNoIFZNIHBhZ2Ugb25jZQphbmQgYSBzaW5nbGUgVk0gcGFnZSBj b3ZlcnMgYSBsYXJnZSBudW1iZXIgb2YgaGVhcCBwYWdlcy4KCkF1dGhvcjogTWVsYW5pZSBQbGFn ZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxp LmV2YW4uY2hhb0BnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMgIHwgMTc2ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwgIDg5ICstLS0tLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9h Y2Nlc3MvaGVhcGFtLmggICAgICAgICAgfCAgMTIgKysKIDMgZmlsZXMgY2hhbmdlZCwgMTc1IGlu c2VydGlvbnMoKyksIDEwMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jCmluZGV4IDhkOWYwNjk0MjA2Li4yYTBkNTQxMzZiNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMKQEAgLTE5LDcgKzE5LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRh aWxzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL211bHRpeGFjdC5oIgogI2luY2x1ZGUgImFjY2Vzcy90 cmFuc2FtLmgiCi0jaW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgiCisjaW5jbHVk ZSAiYWNjZXNzL3Zpc2liaWxpdHltYXAuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgogI2lu Y2x1ZGUgImFjY2Vzcy94bG9naW5zZXJ0LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdmFjdXVtLmgi CkBAIC0xMTQsNiArMTE0LDIxIEBAIHR5cGVkZWYgc3RydWN0CiAJICovCiAJSGVhcFBhZ2VGcmVl emUgcGFnZWZyejsKIAorCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorCSAqIFdvcmtpbmcgc3RhdGUgZm9yIHZpc2liaWxpdHkgbWFwIHBy b2Nlc3NpbmcKKwkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKwkgKi8KKworCS8qCisJICogQ2FsbGVyIG11c3QgcHJvdmlkZSBhIHBpbm5l ZCB2bWJ1ZmZlciBjb3JyZXNwb25kaW5nIHRvIHRoZSBoZWFwIGJsb2NrCisJICogcGFzc2VkIHRv IGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkuIFdlIHdpbGwgZml4IGFueSBjb3JydXB0aW9u CisJICogZm91bmQgaW4gdGhlIFZNLgorCSAqLworCUJ1ZmZlcgkJdm1idWZmZXI7CisKKwkvKiBC aXRzIGluIHRoZSB2bWJ1ZmZlciBmb3IgdGhpcyBoZWFwIHBhZ2UgKi8KKwl1aW50OAkJdm1iaXRz OworCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAJICogSW5mb3JtYXRpb24gYWJvdXQgd2hhdCB3YXMgZG9uZQogCSAqCkBAIC0xNjgs NiArMTgzLDcgQEAgc3RhdGljIHZvaWQgcHJ1bmVfZnJlZXplX3NldHVwKFBydW5lRnJlZXplUGFy YW1zICpwYXJhbXMsCiAJCQkJCQkJICAgTXVsdGlYYWN0SWQgKm5ld19yZWxtaW5fbXhpZCwKIAkJ CQkJCQkgICBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKIAkJCQkJCQkgICBQcnVuZVN0YXRl ICpwcnN0YXRlKTsKK3N0YXRpYyB2b2lkIGhlYXBfZml4X3ZtX2NvcnJ1cHRpb24oUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSk7CiBzdGF0aWMgdm9pZCBwcnVuZV9mcmVl emVfcGxhbihQcnVuZVN0YXRlICpwcnN0YXRlLAogCQkJCQkJCSAgT2Zmc2V0TnVtYmVyICpvZmZf bG9jKTsKIHN0YXRpYyBIVFNWX1Jlc3VsdCBoZWFwX3BydW5lX3NhdGlzZmllc192YWN1dW0oUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwKQEAgLTE3NSw3ICsxOTEsOCBAQCBzdGF0aWMgSFRTVl9SZXN1bHQg aGVhcF9wcnVuZV9zYXRpc2ZpZXNfdmFjdXVtKFBydW5lU3RhdGUgKnByc3RhdGUsCiBzdGF0aWMg aW5saW5lIEhUU1ZfUmVzdWx0IGh0c3ZfZ2V0X3ZhbGlkX3N0YXR1cyhpbnQgc3RhdHVzKTsKIHN0 YXRpYyB2b2lkIGhlYXBfcHJ1bmVfY2hhaW4oT2Zmc2V0TnVtYmVyIG1heG9mZiwKIAkJCQkJCQkg T2Zmc2V0TnVtYmVyIHJvb3RvZmZudW0sIFBydW5lU3RhdGUgKnByc3RhdGUpOwotc3RhdGljIHZv aWQgaGVhcF9wcnVuZV9yZWNvcmRfcHJ1bmFibGUoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgVHJhbnNh Y3Rpb25JZCB4aWQpOworc3RhdGljIHZvaWQgaGVhcF9wcnVuZV9yZWNvcmRfcHJ1bmFibGUoUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQsCisJCQkJCQkJCQkgICBPZmZzZXRO dW1iZXIgb2ZmbnVtKTsKIHN0YXRpYyB2b2lkIGhlYXBfcHJ1bmVfcmVjb3JkX3JlZGlyZWN0KFBy dW5lU3RhdGUgKnByc3RhdGUsCiAJCQkJCQkJCQkgICBPZmZzZXROdW1iZXIgb2ZmbnVtLCBPZmZz ZXROdW1iZXIgcmRvZmZudW0sCiAJCQkJCQkJCQkgICBib29sIHdhc19ub3JtYWwpOwpAQCAtMjA5 LDggKzIyNiw5IEBAIHN0YXRpYyBib29sIGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShib29sIGRpZF90 dXBsZV9oaW50X2ZwaSwgYm9vbCBkb19wcnVuZSwgYm9vbCBkCiAgKiBDYWxsZXIgbXVzdCBoYXZl IHBpbiBvbiB0aGUgYnVmZmVyLCBhbmQgbXVzdCAqbm90KiBoYXZlIGEgbG9jayBvbiBpdC4KICAq CiAgKiBUaGlzIGZ1bmN0aW9uIG1heSBwaW4gKnZtYnVmZmVyLiBJdCdzIHBhc3NlZCBieSByZWZl cmVuY2Ugc28gdGhlIGNhbGxlciBjYW4KLSAqIHJldXNlIHRoZSBwaW4gYWNyb3NzIGNhbGxzLCBh dm9pZGluZyByZXBlYXRlZCBwaW4vdW5waW4gY3ljbGVzLiBDYWxsZXIgaXMKLSAqIHJlc3BvbnNp YmxlIGZvciB1bnBpbm5pbmcgaXQuCisgKiByZXVzZSB0aGUgcGluIGFjcm9zcyBjYWxscywgYXZv aWRpbmcgcmVwZWF0ZWQgcGluL3VucGluIGN5Y2xlcy4gSWYgd2UgZmluZAorICogVk0gY29ycnVw dGlvbiBkdXJpbmcgcHJ1bmluZywgd2Ugd2lsbCBmaXggaXQuIENhbGxlciBpcyByZXNwb25zaWJs ZSBmb3IKKyAqIHVucGlubmluZyAqdm1idWZmZXIuCiAgKi8KIHZvaWQKIGhlYXBfcGFnZV9wcnVu ZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIp CkBAIC0yNzcsNiArMjk1LDE2IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIpCiAJCXsKIAkJCU9mZnNldE51bWJl ciBkdW1teV9vZmZfbG9jOwogCQkJUHJ1bmVGcmVlemVSZXN1bHQgcHJlc3VsdDsKKwkJCVBydW5l RnJlZXplUGFyYW1zIHBhcmFtczsKKworCQkJdmlzaWJpbGl0eW1hcF9waW4ocmVsYXRpb24sIEJ1 ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZlciksIHZtYnVmZmVyKTsKKworCQkJcGFyYW1zLnJlbGF0 aW9uID0gcmVsYXRpb247CisJCQlwYXJhbXMuYnVmZmVyID0gYnVmZmVyOworCQkJcGFyYW1zLnZt YnVmZmVyID0gKnZtYnVmZmVyOworCQkJcGFyYW1zLnJlYXNvbiA9IFBSVU5FX09OX0FDQ0VTUzsK KwkJCXBhcmFtcy52aXN0ZXN0ID0gdmlzdGVzdDsKKwkJCXBhcmFtcy5jdXRvZmZzID0gTlVMTDsK IAogCQkJLyoKIAkJCSAqIFdlIGRvbid0IHBhc3MgdGhlIEhFQVBfUEFHRV9QUlVORV9NQVJLX1VO VVNFRF9OT1cgb3B0aW9uCkBAIC0yODQsMTQgKzMxMiw3IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIpCiAJCQkg KiBjYW5ub3Qgc2FmZWx5IGRldGVybWluZSB0aGF0IGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyB3 aXRoIHRoZQogCQkJICogY3VycmVudCBpbXBsZW1lbnRhdGlvbi4KIAkJCSAqLwotCQkJUHJ1bmVG cmVlemVQYXJhbXMgcGFyYW1zID0gewotCQkJCS5yZWxhdGlvbiA9IHJlbGF0aW9uLAotCQkJCS5i dWZmZXIgPSBidWZmZXIsCi0JCQkJLnJlYXNvbiA9IFBSVU5FX09OX0FDQ0VTUywKLQkJCQkub3B0 aW9ucyA9IDAsCi0JCQkJLnZpc3Rlc3QgPSB2aXN0ZXN0LAotCQkJCS5jdXRvZmZzID0gTlVMTCwK LQkJCX07CisJCQlwYXJhbXMub3B0aW9ucyA9IDA7CiAKIAkJCWhlYXBfcGFnZV9wcnVuZV9hbmRf ZnJlZXplKCZwYXJhbXMsICZwcmVzdWx0LCAmZHVtbXlfb2ZmX2xvYywKIAkJCQkJCQkJCSAgIE5V TEwsIE5VTEwpOwpAQCAtMzU0LDYgKzM3NSwxMiBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVG cmVlemVQYXJhbXMgKnBhcmFtcywKIAlwcnN0YXRlLT5idWZmZXIgPSBwYXJhbXMtPmJ1ZmZlcjsK IAlwcnN0YXRlLT5wYWdlID0gQnVmZmVyR2V0UGFnZShwYXJhbXMtPmJ1ZmZlcik7CiAKKwlBc3Nl cnQoQnVmZmVySXNWYWxpZChwYXJhbXMtPnZtYnVmZmVyKSk7CisJcHJzdGF0ZS0+dm1idWZmZXIg PSBwYXJhbXMtPnZtYnVmZmVyOworCXByc3RhdGUtPnZtYml0cyA9IHZpc2liaWxpdHltYXBfZ2V0 X3N0YXR1cyhwcnN0YXRlLT5yZWxhdGlvbiwKKwkJCQkJCQkJCQkJICAgcHJzdGF0ZS0+YmxvY2ss CisJCQkJCQkJCQkJCSAgICZwcnN0YXRlLT52bWJ1ZmZlcik7CisKIAkvKgogCSAqIE91ciBzdHJh dGVneSBpcyB0byBzY2FuIHRoZSBwYWdlIGFuZCBtYWtlIGxpc3RzIG9mIGl0ZW1zIHRvIGNoYW5n ZSwKIAkgKiB0aGVuIGFwcGx5IHRoZSBjaGFuZ2VzIHdpdGhpbiBhIGNyaXRpY2FsIHNlY3Rpb24u ICBUaGlzIGtlZXBzIGFzIG11Y2gKQEAgLTc3MCw2ICs3OTcsOTAgQEAgaGVhcF9wYWdlX3dpbGxf ZnJlZXplKGJvb2wgZGlkX3R1cGxlX2hpbnRfZnBpLAogCXJldHVybiBkb19mcmVlemU7CiB9CiAK Ky8qCisgKiBIZWxwZXIgdG8gZml4IHZpc2liaWxpdHktcmVsYXRlZCBjb3JydXB0aW9uIG9uIGEg aGVhcCBwYWdlIGFuZCBpdHMKKyAqIGNvcnJlc3BvbmRpbmcgVk0gcGFnZS4gQW4gYWxsLXZpc2li bGUgcGFnZSBjYW5ub3QgaGF2ZSBkZWFkIGl0ZW1zIG5vciBjYW4KKyAqIGl0IGhhdmUgdHVwbGVz IHRoYXQgYXJlIG5vdCB2aXNpYmxlIHRvIGFsbCBydW5uaW5nIHRyYW5zYWN0aW9ucy4gSXQgY2xl YXJzCisgKiB0aGUgVk0gY29ycnVwdGlvbiBhcyB3ZWxsIGFzIHJlc2V0dGluZyB0aGUgdm1iaXRz IHVzZWQgZHVyaW5nIHBydW5pbmcuCisgKgorICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxl ZCB3aGlsZSBob2xkaW5nIGFuIGV4Y2x1c2l2ZSBsb2NrIG9uIHRoZSBoZWFwCisgKiBidWZmZXIs IGFuZCBhbnkgZGVhZCBpdGVtcyBtdXN0IGhhdmUgYmVlbiBkaXNjb3ZlcmVkIHVuZGVyIHRoYXQg c2FtZSBsb2NrLgorICogQWx0aG91Z2ggd2UgZG8gbm90IGhvbGQgYSBsb2NrIG9uIHRoZSBWTSBi dWZmZXIsIGl0IGlzIHBpbm5lZCwgYW5kIHRoZSBoZWFwCisgKiBidWZmZXIgaXMgZXhjbHVzaXZl bHkgbG9ja2VkLCBlbnN1cmluZyB0aGF0IG5vIG90aGVyIGJhY2tlbmQgY2FuIHVwZGF0ZSB0aGUK KyAqIFZNIGJpdHMgY29ycmVzcG9uZGluZyB0byB0aGlzIGhlYXAgcGFnZS4KKyAqCisgKiBUaGlz IGZ1bmN0aW9uIG1ha2VzIGNoYW5nZXMgdG8gdGhlIFZNIGFuZCwgcG90ZW50aWFsbHksIHRoZSBo ZWFwIHBhZ2UsIGJ1dAorICogaXQgZG9lcyBub3QgbmVlZCB0byBiZSBkb25lIGluIGEgY3JpdGlj YWwgc2VjdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK2hlYXBfZml4X3ZtX2NvcnJ1cHRpb24oUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSkKK3sKKwljb25zdCBjaGFyICpy ZWxuYW1lID0gUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocHJzdGF0ZS0+cmVsYXRpb24pOworCisJ QXNzZXJ0KEJ1ZmZlcklzTG9ja2VkQnlNZUluTW9kZShwcnN0YXRlLT5idWZmZXIsIEJVRkZFUl9M T0NLX0VYQ0xVU0lWRSkpOworCisJaWYgKFBhZ2VJc0FsbFZpc2libGUocHJzdGF0ZS0+cGFnZSkp CisJeworCQkvKgorCQkgKiBJdCdzIHBvc3NpYmxlIGZvciB0aGUgdmFsdWUgcmV0dXJuZWQgYnkK KwkJICogR2V0T2xkZXN0Tm9uUmVtb3ZhYmxlVHJhbnNhY3Rpb25JZCgpIHRvIG1vdmUgYmFja3dh cmRzLCBzbyBpdCdzIG5vdAorCQkgKiB3cm9uZyBmb3IgdXMgdG8gc2VlIHR1cGxlcyB0aGF0IGFw cGVhciB0byBub3QgYmUgdmlzaWJsZSB0bworCQkgKiBldmVyeW9uZSB5ZXQsIHdoaWxlIFBEX0FM TF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LiBUaGUgcmVhbCBzYWZlCisJCSAqIHhtaW4gdmFsdWUg bmV2ZXIgbW92ZXMgYmFja3dhcmRzLCBidXQKKwkJICogR2V0T2xkZXN0Tm9uUmVtb3ZhYmxlVHJh bnNhY3Rpb25JZCgpIGlzIGNvbnNlcnZhdGl2ZSBhbmQgc29tZXRpbWVzCisJCSAqIHJldHVybnMg YSB2YWx1ZSB0aGF0J3MgdW5uZWNlc3NhcmlseSBzbWFsbCwgc28gaWYgd2Ugc2VlIHRoYXQKKwkJ ICogY29udHJhZGljdGlvbiBpdCBqdXN0IG1lYW5zIHRoYXQgdGhlIHR1cGxlcyB0aGF0IHdlIHRo aW5rIGFyZSBub3QKKwkJICogdmlzaWJsZSB0byBldmVyeW9uZSB5ZXQgYWN0dWFsbHkgYXJlLCBh bmQgdGhlIFBEX0FMTF9WSVNJQkxFIGZsYWcKKwkJICogaXMgY29ycmVjdC4KKwkJICoKKwkJICog SG93ZXZlciwgdGhlcmUgc2hvdWxkIG5ldmVyIGJlIExQX0RFQUQgaXRlbXMsIGRlYWQgdHVwbGUg dmVyc2lvbnMsCisJCSAqIG9yIHR1cGxlcyBpbnNlcnRlZCBieSBhbiBpbi1wcm9ncmVzcyB0cmFu c2FjdGlvbiBvbiBhIHBhZ2Ugd2l0aAorCQkgKiBQRF9BTExfVklTSUJMRSBzZXQuCisJCSAqLwor CQlpZiAocHJzdGF0ZS0+bHBkZWFkX2l0ZW1zID4gMCkKKwkJeworCQkJZXJlcG9ydChXQVJOSU5H LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKKwkJCQkJIGVycm1zZygi ZGVhZCBsaW5lIHBvaW50ZXIgZm91bmQgb24gcGFnZSBtYXJrZWQgYWxsLXZpc2libGUiKSwKKwkJ CQkJIGVycmNvbnRleHQoInJlbGF0aW9uIFwiJXNcIiwgcGFnZSAldSwgdHVwbGUgJXUiLAorCQkJ CQkJCQlyZWxuYW1lLCBwcnN0YXRlLT5ibG9jaywgb2ZmbnVtKSkpOworCQl9CisJCWVsc2UKKwkJ eworCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQ VEVEKSwKKwkJCQkJIGVycm1zZygidHVwbGUgbm90IHZpc2libGUgdG8gYWxsIHRyYW5zYWN0aW9u cyBmb3VuZCBvbiBwYWdlIG1hcmtlZCBhbGwtdmlzaWJsZSIpLAorCQkJCQkgZXJyY29udGV4dCgi cmVsYXRpb24gXCIlc1wiLCBwYWdlICV1LCB0dXBsZSAldSIsCisJCQkJCQkJCXJlbG5hbWUsIHBy c3RhdGUtPmJsb2NrLCBvZmZudW0pKSk7CisJCX0KKworCQkvKgorCQkgKiBNYXJrIHRoZSBidWZm ZXIgZGlydHkgbm93IGluIGNhc2Ugd2UgbWFrZSBubyBmdXJ0aGVyIGNoYW5nZXMgYW5kCisJCSAq IHRoZXJlZm9yZSB3b3VsZCBub3QgbWFyayBpdCBkaXJ0eSBsYXRlci4KKwkJICovCisJCVBhZ2VD bGVhckFsbFZpc2libGUocHJzdGF0ZS0+cGFnZSk7CisJCU1hcmtCdWZmZXJEaXJ0eUhpbnQocHJz dGF0ZS0+YnVmZmVyLCB0cnVlKTsKKwl9CisJZWxzZSBpZiAocHJzdGF0ZS0+dm1iaXRzICYgVklT SUJJTElUWU1BUF9WQUxJRF9CSVRTKQorCXsKKwkJLyoKKwkJICogQXMgb2YgUG9zdGdyZVNRTCA5 LjIsIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQgc2hvdWxkIG5ldmVyIGJlIHNldCBpZgorCQkgKiB0 aGUgcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIuIEhvd2V2ZXIsIGl0J3MgcG9zc2libGUgdGhhdCB0 aGUgYml0CisJCSAqIGdvdCBjbGVhcmVkIGFmdGVyIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygp IHdhcyBjYWxsZWQsIHNvIHdlIG11c3QKKwkJICogcmVjaGVjayBub3cgdGhhdCB3ZSBoYXZlIHRo ZSBidWZmZXIgbG9jayBiZWZvcmUgY29uY2x1ZGluZyB0aGF0IHRoZQorCQkgKiBWTSBpcyBjb3Jy dXB0LgorCQkgKi8KKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFU QV9DT1JSVVBURUQpLAorCQkJCSBlcnJtc2coInBhZ2UgaXMgbm90IG1hcmtlZCBhbGwtdmlzaWJs ZSBidXQgdmlzaWJpbGl0eSBtYXAgYml0IGlzIHNldCIpLAorCQkJCSBlcnJjb250ZXh0KCJyZWxh dGlvbiBcIiVzXCIsIHBhZ2UgJXUiLAorCQkJCQkJCXJlbG5hbWUsIHByc3RhdGUtPmJsb2NrKSkp OworCX0KKworCXZpc2liaWxpdHltYXBfY2xlYXIocHJzdGF0ZS0+cmVsYXRpb24sIHByc3RhdGUt PmJsb2NrLCBwcnN0YXRlLT52bWJ1ZmZlciwKKwkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklU Uyk7CisJcHJzdGF0ZS0+dm1iaXRzID0gMDsKK30KIAogLyoKICAqIFBydW5lIGFuZCByZXBhaXIg ZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXplIHR1cGxlcyBvbiB0aGUKQEAgLTgz MCw2ICs5NDEsMTAgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJh bXMgKnBhcmFtcywKIAkJCQkJICAgbmV3X3JlbGZyb3plbl94aWQsIG5ld19yZWxtaW5fbXhpZCwK IAkJCQkJICAgcHJlc3VsdCwgJnByc3RhdGUpOwogCisJaWYgKChwcnN0YXRlLnZtYml0cyAmIFZJ U0lCSUxJVFlNQVBfVkFMSURfQklUUykgJiYKKwkJIVBhZ2VJc0FsbFZpc2libGUocHJzdGF0ZS5w YWdlKSkKKwkJaGVhcF9maXhfdm1fY29ycnVwdGlvbigmcHJzdGF0ZSwgSW52YWxpZE9mZnNldE51 bWJlcik7CisKIAkvKgogCSAqIEV4YW1pbmUgYWxsIGxpbmUgcG9pbnRlcnMgYW5kIHR1cGxlIHZp c2liaWxpdHkgaW5mb3JtYXRpb24gdG8gZGV0ZXJtaW5lCiAJICogd2hpY2ggbGluZSBwb2ludGVy cyBzaG91bGQgY2hhbmdlIHN0YXRlIGFuZCB3aGljaCB0dXBsZXMgbWF5IGJlIGZyb3plbi4KQEAg LTk3Myw2ICsxMDg4LDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQ YXJhbXMgKnBhcmFtcywKIAlwcmVzdWx0LT5zZXRfYWxsX3Zpc2libGUgPSBwcnN0YXRlLnNldF9h bGxfdmlzaWJsZTsKIAlwcmVzdWx0LT5zZXRfYWxsX2Zyb3plbiA9IHByc3RhdGUuc2V0X2FsbF9m cm96ZW47CiAJcHJlc3VsdC0+aGFzdHVwID0gcHJzdGF0ZS5oYXN0dXA7CisJcHJlc3VsdC0+dm1i aXRzID0gcHJzdGF0ZS52bWJpdHM7CiAKIAkvKgogCSAqIEZvciBjYWxsZXJzIHBsYW5uaW5nIHRv IHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAsIHRoZSBjb25mbGljdCBob3Jpem9uCkBAIC0xMjk1 LDcgKzE0MTEsOCBAQCBwcm9jZXNzX2NoYWluOgogCiAvKiBSZWNvcmQgbG93ZXN0IHNvb24tcHJ1 bmFibGUgWElEICovCiBzdGF0aWMgdm9pZAotaGVhcF9wcnVuZV9yZWNvcmRfcHJ1bmFibGUoUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQpCitoZWFwX3BydW5lX3JlY29yZF9w cnVuYWJsZShQcnVuZVN0YXRlICpwcnN0YXRlLCBUcmFuc2FjdGlvbklkIHhpZCwKKwkJCQkJCSAg IE9mZnNldE51bWJlciBvZmZudW0pCiB7CiAJLyoKIAkgKiBUaGlzIHNob3VsZCBleGFjdGx5IG1h dGNoIHRoZSBQYWdlU2V0UHJ1bmFibGUgbWFjcm8uICBXZSBjYW4ndCBzdG9yZQpAQCAtMTMwNSw2 ICsxNDIyLDEzIEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3BydW5hYmxlKFBydW5lU3RhdGUgKnByc3Rh dGUsIFRyYW5zYWN0aW9uSWQgeGlkKQogCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQocHJzdGF0 ZS0+bmV3X3BydW5lX3hpZCkgfHwKIAkJVHJhbnNhY3Rpb25JZFByZWNlZGVzKHhpZCwgcHJzdGF0 ZS0+bmV3X3BydW5lX3hpZCkpCiAJCXByc3RhdGUtPm5ld19wcnVuZV94aWQgPSB4aWQ7CisKKwkv KgorCSAqIEl0J3MgaW5jb3JyZWN0IGZvciBhIHBhZ2UgdG8gYmUgbWFya2VkIGFsbC12aXNpYmxl IGlmIGl0IGNvbnRhaW5zCisJICogcHJ1bmFibGUgaXRlbXMuCisJICovCisJaWYgKFBhZ2VJc0Fs bFZpc2libGUocHJzdGF0ZS0+cGFnZSkpCisJCWhlYXBfZml4X3ZtX2NvcnJ1cHRpb24ocHJzdGF0 ZSwgb2ZmbnVtKTsKIH0KIAogLyogUmVjb3JkIGxpbmUgcG9pbnRlciB0byBiZSByZWRpcmVjdGVk ICovCkBAIC0xMzg4LDYgKzE1MTIsMTUgQEAgaGVhcF9wcnVuZV9yZWNvcmRfZGVhZF9vcl91bnVz ZWQoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSwKIAkJaGVhcF9wcnVu ZV9yZWNvcmRfdW51c2VkKHByc3RhdGUsIG9mZm51bSwgd2FzX25vcm1hbCk7CiAJZWxzZQogCQlo ZWFwX3BydW5lX3JlY29yZF9kZWFkKHByc3RhdGUsIG9mZm51bSwgd2FzX25vcm1hbCk7CisKKwkv KgorCSAqIEl0J3MgaW5jb3JyZWN0IGZvciB0aGUgcGFnZSB0byBiZSBzZXQgYWxsLXZpc2libGUg aWYgaXQgY29udGFpbnMgZGVhZAorCSAqIGl0ZW1zLiBGaXggdGhhdCBvbiB0aGUgaGVhcCBwYWdl IGFuZCBjaGVjayB0aGUgVk0gZm9yIGNvcnJ1cHRpb24gYXMKKwkgKiB3ZWxsLiBEbyB0aGF0IGhl cmUgcmF0aGVyIHRoYW4gaW4gaGVhcF9wcnVuZV9yZWNvcmRfZGVhZCgpIHNvIHdlIGFsc28KKwkg KiBjb3ZlciB0dXBsZXMgdGhhdCBhcmUgZGlyZWN0bHkgbWFya2VkIExQX1VOVVNFRCB2aWEgbWFy a191bnVzZWRfbm93LgorCSAqLworCWlmIChQYWdlSXNBbGxWaXNpYmxlKHByc3RhdGUtPnBhZ2Up KQorCQloZWFwX2ZpeF92bV9jb3JydXB0aW9uKHByc3RhdGUsIG9mZm51bSk7CiB9CiAKIC8qIFJl Y29yZCBsaW5lIHBvaW50ZXIgdG8gYmUgbWFya2VkIHVudXNlZCAqLwpAQCAtMTUyNyw3ICsxNjYw LDggQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpw cnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCQkJICogdGhhdCB0aGUgcGFnZSBpcyByZWNv bnNpZGVyZWQgZm9yIHBydW5pbmcgaW4gZnV0dXJlLgogCQkJICovCiAJCQloZWFwX3BydW5lX3Jl Y29yZF9wcnVuYWJsZShwcnN0YXRlLAotCQkJCQkJCQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0VXBk YXRlWGlkKGh0dXApKTsKKwkJCQkJCQkJCSAgIEhlYXBUdXBsZUhlYWRlckdldFVwZGF0ZVhpZCho dHVwKSwKKwkJCQkJCQkJCSAgIG9mZm51bSk7CiAJCQlicmVhazsKIAogCQljYXNlIEhFQVBUVVBM RV9JTlNFUlRfSU5fUFJPR1JFU1M6CkBAIC0xNTQyLDYgKzE2NzYsMTAgQEAgaGVhcF9wcnVuZV9y ZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1i ZXIgb2ZmbnVtKQogCQkJcHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlID0gZmFsc2U7CiAJCQlwcnN0 YXRlLT5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOwogCisJCQkvKiBUaGUgcGFnZSBzaG91bGQgbm90 IGJlIG1hcmtlZCBhbGwtdmlzaWJsZSAqLworCQkJaWYgKFBhZ2VJc0FsbFZpc2libGUocGFnZSkp CisJCQkJaGVhcF9maXhfdm1fY29ycnVwdGlvbihwcnN0YXRlLCBvZmZudW0pOworCiAJCQkvKgog CQkJICogSWYgd2Ugd2FudGVkIHRvIG9wdGltaXplIGZvciBhYm9ydHMsIHdlIG1pZ2h0IGNvbnNp ZGVyIG1hcmtpbmcKIAkJCSAqIHRoZSBwYWdlIHBydW5hYmxlIHdoZW4gd2Ugc2VlIElOU0VSVF9J Tl9QUk9HUkVTUy4gIEJ1dCB3ZQpAQCAtMTU2Niw3ICsxNzA0LDggQEAgaGVhcF9wcnVuZV9yZWNv cmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIg b2ZmbnVtKQogCQkJICogdGhlIHBhZ2UgaXMgcmVjb25zaWRlcmVkIGZvciBwcnVuaW5nIGluIGZ1 dHVyZS4KIAkJCSAqLwogCQkJaGVhcF9wcnVuZV9yZWNvcmRfcHJ1bmFibGUocHJzdGF0ZSwKLQkJ CQkJCQkJCSAgIEhlYXBUdXBsZUhlYWRlckdldFVwZGF0ZVhpZChodHVwKSk7CisJCQkJCQkJCQkg ICBIZWFwVHVwbGVIZWFkZXJHZXRVcGRhdGVYaWQoaHR1cCksCisJCQkJCQkJCQkgICBvZmZudW0p OwogCQkJYnJlYWs7CiAKIAkJZGVmYXVsdDoKQEAgLTE2MzIsNiArMTc3MSwxMyBAQCBoZWFwX3By dW5lX3JlY29yZF91bmNoYW5nZWRfbHBfZGVhZChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXRO dW1iZXIgb2ZmbnVtKQogCiAJLyogUmVjb3JkIHRoZSBkZWFkIG9mZnNldCBmb3IgdmFjdXVtICov CiAJcHJzdGF0ZS0+ZGVhZG9mZnNldHNbcHJzdGF0ZS0+bHBkZWFkX2l0ZW1zKytdID0gb2ZmbnVt OworCisJLyoKKwkgKiBJdCdzIGluY29ycmVjdCBmb3IgYSBwYWdlIHRvIGJlIG1hcmtlZCBhbGwt dmlzaWJsZSBpZiBpdCBjb250YWlucyBkZWFkCisJICogaXRlbXMuCisJICovCisJaWYgKFBhZ2VJ c0FsbFZpc2libGUocHJzdGF0ZS0+cGFnZSkpCisJCWhlYXBfZml4X3ZtX2NvcnJ1cHRpb24ocHJz dGF0ZSwgb2ZmbnVtKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpp bmRleCA4MmM1YjI4ZTBhZC4uOTU3MzIyNjQ4Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMKQEAgLTQyNSwxMSArNDI1LDYgQEAgc3RhdGljIHZvaWQgZmluZF9uZXh0X3Vuc2tp cHBhYmxlX2Jsb2NrKExWUmVsU3RhdGUgKnZhY3JlbCwgYm9vbCAqc2tpcHNhbGx2aXMpOwogc3Rh dGljIGJvb2wgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZl ciBidWYsCiAJCQkJCQkJCSAgIEJsb2NrTnVtYmVyIGJsa25vLCBQYWdlIHBhZ2UsCiAJCQkJCQkJ CSAgIGJvb2wgc2hhcmVsb2NrLCBCdWZmZXIgdm1idWZmZXIpOwotc3RhdGljIHZvaWQgaWRlbnRp ZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVy LAotCQkJCQkJCQkJCSAgIEJsb2NrTnVtYmVyIGhlYXBfYmxrLCBQYWdlIGhlYXBfcGFnZSwKLQkJ CQkJCQkJCQkgICBpbnQgbmxwZGVhZF9pdGVtcywKLQkJCQkJCQkJCQkgICBCdWZmZXIgdm1idWZm ZXIsCi0JCQkJCQkJCQkJICAgdWludDggKnZtYml0cyk7CiBzdGF0aWMgaW50CWxhenlfc2Nhbl9w cnVuZShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkJQmxvY2tOdW1iZXIg Ymxrbm8sIFBhZ2UgcGFnZSwKIAkJCQkJCQlCdWZmZXIgdm1idWZmZXIsCkBAIC0xOTY0LDgxICsx OTU5LDYgQEAgY21wT2Zmc2V0TnVtYmVycyhjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQog CXJldHVybiBwZ19jbXBfdTE2KCooY29uc3QgT2Zmc2V0TnVtYmVyICopIGEsICooY29uc3QgT2Zm c2V0TnVtYmVyICopIGIpOwogfQogCi0vKgotICogSGVscGVyIHRvIGNvcnJlY3QgYW55IGNvcnJ1 cHRpb24gZGV0ZWN0ZWQgb24gYSBoZWFwIHBhZ2UgYW5kIGl0cwotICogY29ycmVzcG9uZGluZyB2 aXNpYmlsaXR5IG1hcCBwYWdlIGFmdGVyIHBydW5pbmcgYnV0IGJlZm9yZSBzZXR0aW5nIHRoZQot ICogdmlzaWJpbGl0eSBtYXAuIEl0IGV4YW1pbmVzIHRoZSBoZWFwIHBhZ2UsIHRoZSBhc3NvY2lh dGVkIFZNIHBhZ2UsIGFuZCB0aGUKLSAqIG51bWJlciBvZiBkZWFkIGl0ZW1zIHByZXZpb3VzbHkg aWRlbnRpZmllZC4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdoaWxlIGhv bGRpbmcgYW4gZXhjbHVzaXZlIGxvY2sgb24gdGhlIGhlYXAKLSAqIGJ1ZmZlciwgYW5kIHRoZSBk ZWFkIGl0ZW1zIG11c3QgaGF2ZSBiZWVuIGRpc2NvdmVyZWQgdW5kZXIgdGhhdCBzYW1lIGxvY2su Ci0KLSAqIFRoZSBwcm92aWRlZCB2bWJpdHMgbXVzdCByZWZsZWN0IHRoZSBjdXJyZW50IHN0YXRl IG9mIHRoZSBWTSBibG9jawotICogcmVmZXJlbmNlZCBieSB2bWJ1ZmZlci4gQWx0aG91Z2ggd2Ug ZG8gbm90IGhvbGQgYSBsb2NrIG9uIHRoZSBWTSBidWZmZXIsIGl0Ci0gKiBpcyBwaW5uZWQsIGFu ZCB0aGUgaGVhcCBidWZmZXIgaXMgZXhjbHVzaXZlbHkgbG9ja2VkLCBlbnN1cmluZyB0aGF0IG5v Ci0gKiBvdGhlciBiYWNrZW5kIGNhbiB1cGRhdGUgdGhlIFZNIGJpdHMgY29ycmVzcG9uZGluZyB0 byB0aGlzIGhlYXAgcGFnZS4KLSAqCi0gKiBJZiBpdCBjbGVhcnMgY29ycnVwdGlvbiwgaXQgd2ls bCB6ZXJvIG91dCB2bWJpdHMuCi0gKi8KLXN0YXRpYyB2b2lkCi1pZGVudGlmeV9hbmRfZml4X3Zt X2NvcnJ1cHRpb24oUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsCi0JCQkJCQkJICAg QmxvY2tOdW1iZXIgaGVhcF9ibGssIFBhZ2UgaGVhcF9wYWdlLAotCQkJCQkJCSAgIGludCBubHBk ZWFkX2l0ZW1zLAotCQkJCQkJCSAgIEJ1ZmZlciB2bWJ1ZmZlciwKLQkJCQkJCQkgICB1aW50OCAq dm1iaXRzKQotewotCUFzc2VydCh2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocmVsLCBoZWFwX2Js aywgJnZtYnVmZmVyKSA9PSAqdm1iaXRzKTsKLQotCUFzc2VydChCdWZmZXJJc0xvY2tlZEJ5TWVJ bk1vZGUoaGVhcF9idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSkpOwotCi0JLyoKLQkgKiBB cyBvZiBQb3N0Z3JlU1FMIDkuMiwgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBzaG91bGQgbmV2ZXIg YmUgc2V0IGlmIHRoZQotCSAqIHBhZ2UtbGV2ZWwgYml0IGlzIGNsZWFyLiAgSG93ZXZlciwgaXQn cyBwb3NzaWJsZSB0aGF0IHRoZSBiaXQgZ290Ci0JICogY2xlYXJlZCBhZnRlciBoZWFwX3ZhY19z Y2FuX25leHRfYmxvY2soKSB3YXMgY2FsbGVkLCBzbyB3ZSBtdXN0IHJlY2hlY2sKLQkgKiB3aXRo IGJ1ZmZlciBsb2NrIGJlZm9yZSBjb25jbHVkaW5nIHRoYXQgdGhlIFZNIGlzIGNvcnJ1cHQuCi0J ICovCi0JaWYgKCFQYWdlSXNBbGxWaXNpYmxlKGhlYXBfcGFnZSkgJiYKLQkJKCgqdm1iaXRzICYg VklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKSAhPSAwKSkKLQl7Ci0JCWVyZXBvcnQoV0FSTklORywK LQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKLQkJCQkgZXJybXNnKCJwYWdl IGlzIG5vdCBtYXJrZWQgYWxsLXZpc2libGUgYnV0IHZpc2liaWxpdHkgbWFwIGJpdCBpcyBzZXQg aW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUocmVsKSwgaGVhcF9ibGspKSk7Ci0KLQkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWwsIGhlYXBf YmxrLCB2bWJ1ZmZlciwKLQkJCQkJCQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwotCQkqdm1i aXRzID0gMDsKLQl9Ci0KLQkvKgotCSAqIEl0J3MgcG9zc2libGUgZm9yIHRoZSB2YWx1ZSByZXR1 cm5lZCBieQotCSAqIEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQoKSB0byBtb3Zl IGJhY2t3YXJkcywgc28gaXQncyBub3QKLQkgKiB3cm9uZyBmb3IgdXMgdG8gc2VlIHR1cGxlcyB0 aGF0IGFwcGVhciB0byBub3QgYmUgdmlzaWJsZSB0byBldmVyeW9uZQotCSAqIHlldCwgd2hpbGUg UERfQUxMX1ZJU0lCTEUgaXMgYWxyZWFkeSBzZXQuIFRoZSByZWFsIHNhZmUgeG1pbiB2YWx1ZQot CSAqIG5ldmVyIG1vdmVzIGJhY2t3YXJkcywgYnV0IEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5z YWN0aW9uSWQoKSBpcwotCSAqIGNvbnNlcnZhdGl2ZSBhbmQgc29tZXRpbWVzIHJldHVybnMgYSB2 YWx1ZSB0aGF0J3MgdW5uZWNlc3NhcmlseSBzbWFsbCwKLQkgKiBzbyBpZiB3ZSBzZWUgdGhhdCBj b250cmFkaWN0aW9uIGl0IGp1c3QgbWVhbnMgdGhhdCB0aGUgdHVwbGVzIHRoYXQgd2UKLQkgKiB0 aGluayBhcmUgbm90IHZpc2libGUgdG8gZXZlcnlvbmUgeWV0IGFjdHVhbGx5IGFyZSwgYW5kIHRo ZQotCSAqIFBEX0FMTF9WSVNJQkxFIGZsYWcgaXMgY29ycmVjdC4KLQkgKgotCSAqIFRoZXJlIHNo b3VsZCBuZXZlciBiZSBMUF9ERUFEIGl0ZW1zIG9uIGEgcGFnZSB3aXRoIFBEX0FMTF9WSVNJQkxF IHNldCwKLQkgKiBob3dldmVyLgotCSAqLwotCWVsc2UgaWYgKFBhZ2VJc0FsbFZpc2libGUoaGVh cF9wYWdlKSAmJiBubHBkZWFkX2l0ZW1zID4gMCkKLQl7Ci0JCWVyZXBvcnQoV0FSTklORywKLQkJ CQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKLQkJCQkgZXJybXNnKCJwYWdlIGNv bnRhaW5pbmcgTFBfREVBRCBpdGVtcyBpcyBtYXJrZWQgYXMgYWxsLXZpc2libGUgaW4gcmVsYXRp b24gXCIlc1wiIHBhZ2UgJXUiLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSwg aGVhcF9ibGspKSk7Ci0KLQkJUGFnZUNsZWFyQWxsVmlzaWJsZShoZWFwX3BhZ2UpOwotCQlNYXJr QnVmZmVyRGlydHkoaGVhcF9idWZmZXIpOwotCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJlbCwgaGVh cF9ibGssIHZtYnVmZmVyLAotCQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7Ci0JCSp2 bWJpdHMgPSAwOwotCX0KLX0KLQogLyoKICAqCWxhenlfc2Nhbl9wcnVuZSgpIC0tIGxhenlfc2Nh bl9oZWFwKCkgcHJ1bmluZyBhbmQgZnJlZXppbmcuCiAgKgpAQCAtMjA3MCw2ICsxOTkwLDcgQEAg bGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAlQcnVuZUZyZWV6ZVBhcmFtcyBw YXJhbXMgPSB7CiAJCS5yZWxhdGlvbiA9IHJlbCwKIAkJLmJ1ZmZlciA9IGJ1ZiwKKwkJLnZtYnVm ZmVyID0gdm1idWZmZXIsCiAJCS5yZWFzb24gPSBQUlVORV9WQUNVVU1fU0NBTiwKIAkJLm9wdGlv bnMgPSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFLAogCQkudmlzdGVzdCA9IHZhY3JlbC0+dmlzdGVz dCwKQEAgLTIxNzksMTggKzIxMDAsMTIgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZh Y3JlbCwKIAlBc3NlcnQoIXByZXN1bHQuc2V0X2FsbF92aXNpYmxlIHx8ICEoKmhhc19scGRlYWRf aXRlbXMpKTsKIAlBc3NlcnQoIXByZXN1bHQuc2V0X2FsbF9mcm96ZW4gfHwgcHJlc3VsdC5zZXRf YWxsX3Zpc2libGUpOwogCi0Jb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyh2 YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1ZmZlcik7Ci0KLQlpZGVudGlmeV9hbmRfZml4X3ZtX2Nv cnJ1cHRpb24odmFjcmVsLT5yZWwsIGJ1ZiwgYmxrbm8sIHBhZ2UsCi0JCQkJCQkJCSAgIHByZXN1 bHQubHBkZWFkX2l0ZW1zLCB2bWJ1ZmZlciwKLQkJCQkJCQkJICAgJm9sZF92bWJpdHMpOwotCiAJ aWYgKCFwcmVzdWx0LnNldF9hbGxfdmlzaWJsZSkKIAkJcmV0dXJuIHByZXN1bHQubmRlbGV0ZWQ7 CiAKIAkvKiBTZXQgdGhlIHZpc2liaWxpdHkgbWFwIGFuZCBwYWdlIHZpc2liaWxpdHkgaGludCAq LworCW9sZF92bWJpdHMgPSBwcmVzdWx0LnZtYml0czsKIAluZXdfdm1iaXRzID0gVklTSUJJTElU WU1BUF9BTExfVklTSUJMRTsKLQogCWlmIChwcmVzdWx0LnNldF9hbGxfZnJvemVuKQogCQluZXdf dm1iaXRzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKIApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4 IDJmZGM1MGI4NjViLi5jNjQ5ZTVmMTk4MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNz L2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtMjYyLDYgKzI2 MiwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVBhcmFtcwogCVJlbGF0aW9uCXJlbGF0 aW9uOwkJLyogcmVsYXRpb24gY29udGFpbmluZyBidWZmZXIgdG8gYmUgcHJ1bmVkICovCiAJQnVm ZmVyCQlidWZmZXI7CQkJLyogYnVmZmVyIHRvIGJlIHBydW5lZCAqLwogCisJLyoKKwkgKiBDYWxs ZXJzIHNob3VsZCBwcm92aWRlIGEgcGlubmVkIHZtYnVmZmVyIGNvcnJlc3BvbmRpbmcgdG8gdGhl IGhlYXAKKwkgKiBibG9jayBpbiBidWZmZXIuIFdlIHdpbGwgY2hlY2sgZm9yIGFuZCByZXBhaXIg YW55IGNvcnJ1cHRpb24gaW4gdGhlIFZNLgorCSAqLworCUJ1ZmZlcgkJdm1idWZmZXI7CisKIAkv KgogCSAqIFRoZSByZWFzb24gcHJ1bmluZyB3YXMgcGVyZm9ybWVkLiAgSXQgaXMgdXNlZCB0byBz ZXQgdGhlIFdBTCByZWNvcmQKIAkgKiBvcGNvZGUgd2hpY2ggaXMgdXNlZCBmb3IgZGVidWdnaW5n IGFuZCBhbmFseXNpcyBwdXJwb3Nlcy4KQEAgLTMyNCw2ICszMzAsMTIgQEAgdHlwZWRlZiBzdHJ1 Y3QgUHJ1bmVGcmVlemVSZXN1bHQKIAlib29sCQlzZXRfYWxsX2Zyb3plbjsKIAlUcmFuc2FjdGlv bklkIHZtX2NvbmZsaWN0X2hvcml6b247CiAKKwkvKgorCSAqIHZtYml0cyBpcyB0aGUgdmFsdWUg b2YgdGhlIHZtYnVmZmVyJ3Mgdm1iaXRzIGF0IHRoZSBiZWdpbm5pbmcgb2YKKwkgKiBwcnVuaW5n LiBJdCBpcyBjbGVhcmVkIGlmIFZNIGNvcnJ1cHRpb24gaXMgZm91bmQgYW5kIGNvcnJlY3RlZC4K KwkgKi8KKwl1aW50OAkJdm1iaXRzOworCiAJLyoKIAkgKiBXaGV0aGVyIG9yIG5vdCB0aGUgcGFn ZSBtYWtlcyByZWwgdHJ1bmNhdGlvbiB1bnNhZmUuICBUaGlzIGlzIHNldCB0bwogCSAqICd0cnVl JywgZXZlbiBpZiB0aGUgcGFnZSBjb250YWlucyBMUF9ERUFEIGl0ZW1zLiAgVkFDVVVNIHdpbGwg cmVtb3ZlCi0tIAoyLjQzLjAKCg== --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0003-Add-pruning-fast-path-for-all-visible-and-all-fr.patch" Content-Disposition: attachment; filename="v37-0003-Add-pruning-fast-path-for-all-visible-and-all-fr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmab7z92 RnJvbSAxYWNmYjE2NDI1YmM5YWRhZmRlODBjNDZmZmQ5N2M5NWI4YTc5NTcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI1IEZlYiAyMDI2IDE2OjQ4OjE5IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2MzcgMDMvMTVdIEFkZCBwcnVuaW5nIGZhc3QgcGF0aCBmb3IgYWxsLXZpc2libGUgYW5k CiBhbGwtZnJvemVuIHBhZ2VzCgpCZWNhdXNlIG9mIHRoZSBTS0lQX1BBR0VTX1RIUkVTSE9MRCBv cHRpbWl6YXRpb24gb3IgYSBzdGFsZSBwcnVuZSBYSUQsCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKCkgY2FuIGJlIGludm9rZWQgZm9yIHBhZ2VzIHdpdGggbm8gcHJ1bmluZyBvcgpmcmVlemlu ZyB3b3JrLiBUbyBhdm9pZCB0aGlzLCBpZiBhIHBhZ2UgaXMgYWxyZWFkeSBhbGwtZnJvemVuIG9y IGl0IGlzCmFsbC12aXNpYmxlIGFuZCBubyBmcmVlemluZyB3aWxsIGJlIGF0dGVtcHRlZCwgd2Ug ZXhpdCBlYXJseS4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdt YWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5jb20+Ci0t LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgfCA3NSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDJhMGQ1NDEzNmI2Li5iMzVlYmRjMTM0ZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTE4NCw2ICsxODQsNyBAQCBzdGF0 aWMgdm9pZCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkJ CQkJCQkgICBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKIAkJCQkJCQkgICBQcnVuZVN0YXRl ICpwcnN0YXRlKTsKIHN0YXRpYyB2b2lkIGhlYXBfZml4X3ZtX2NvcnJ1cHRpb24oUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSk7CitzdGF0aWMgdm9pZCBoZWFwX3BhZ2Vf YnlwYXNzX3BydW5lX2ZyZWV6ZShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZUZyZWV6ZVJlc3Vs dCAqcHJlc3VsdCk7CiBzdGF0aWMgdm9pZCBwcnVuZV9mcmVlemVfcGxhbihQcnVuZVN0YXRlICpw cnN0YXRlLAogCQkJCQkJCSAgT2Zmc2V0TnVtYmVyICpvZmZfbG9jKTsKIHN0YXRpYyBIVFNWX1Jl c3VsdCBoZWFwX3BydW5lX3NhdGlzZmllc192YWN1dW0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKQEAg LTg4Miw2ICs4ODMsNjggQEAgaGVhcF9maXhfdm1fY29ycnVwdGlvbihQcnVuZVN0YXRlICpwcnN0 YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCXByc3RhdGUtPnZtYml0cyA9IDA7CiB9CiAKKy8q CisgKiBJZiB0aGUgcGFnZSBpcyBhbHJlYWR5IGFsbC1mcm96ZW4sIG9yIGFscmVhZHkgYWxsLXZp c2libGUgYW5kIGZyZWV6aW5nCisgKiBpcyBub3QgYmVpbmcgYXR0ZW1wdGVkLCB0aGVyZSBpcyBu byByZW1haW5pbmcgd29yayBhbmQgd2UgY2FuIGJ5cGFzcyB0aGUKKyAqIGV4cGVuc2l2ZSBvdmVy aGVhZCBvZiBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLgorICoKKyAqIFRoaXMgY2FuIGhh cHBlbiB3aGVuIHRoZSBwYWdlIGhhcyBhIHN0YWxlIHBydW5lIGhpbnQsIG9yIGlmIFZBQ1VVTSBp cworICogc2Nhbm5pbmcgYW4gYWxyZWFkeSBhbGwtZnJvemVuIHBhZ2UgZHVlIHRvIFNLSVBfUEFH RVNfVEhSRVNIT0xELgorICoKKyAqIFRoZSBjYWxsZXIgbXVzdCBhbHJlYWR5IGhhdmUgZXhhbWlu ZWQgdGhlIHZpc2liaWxpdHkgbWFwIGFuZCBzYXZlZCB0aGUKKyAqIHN0YXR1cyBmb3IgdGhlIHBh Z2UncyBWTSBiaXRzIGluIHByc3RhdGUtPnZtYml0cy4gQ2FsbGVyIG11c3QgaG9sZCBhCisgKiBj b250ZW50IGxvY2sgb24gdGhlIGhlYXAgcGFnZSBzaW5jZSBpdCB3aWxsIGV4YW1pbmUgbGluZSBw b2ludGVycy4KKyAqCisgKiBCZWZvcmUgY2FsbGluZyBoZWFwX3BhZ2VfYnlwYXNzX3BydW5lX2Zy ZWV6ZSgpLCB0aGUgY2FsbGVyIHNob3VsZCBmaXJzdAorICogY2hlY2sgZm9yIGFuZCBmaXggYW55 IGRpc2NyZXBhbmN5IGJldHdlZW4gdGhlIHBhZ2UtbGV2ZWwgdmlzaWJpbGl0eSBoaW50CisgKiBh bmQgdGhlIHZpc2liaWxpdHkgbWFwLiBPdGhlcndpc2UsIHRoZSBmYXN0IHBhdGggd2lsbCBhbHdh eXMgcHJldmVudCB1cworICogZnJvbSBnZXR0aW5nIHRoZW0gaW4gc3luYy4gTm90ZSB0aGF0IGlm IHRoZXJlIGFyZSB0dXBsZXMgb24gdGhlIHBhZ2UgdGhhdAorICogYXJlIG5vdCB2aXNpYmxlIHRv IGFsbCBidXQgdGhlIFZNIGlzIGluY29ycmVjdGx5IG1hcmtlZAorICogYWxsLXZpc2libGUvYWxs LWZyb3plbiwgd2Ugd2lsbCBub3QgZ2V0IHRoZSBjaGFuY2UgdG8gZml4IHRoYXQgY29ycnVwdGlv bgorICogd2hlbiB1c2luZyB0aGUgZmFzdCBwYXRoLgorICovCitzdGF0aWMgdm9pZAoraGVhcF9w YWdlX2J5cGFzc19wcnVuZV9mcmVlemUoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVGcmVlemVS ZXN1bHQgKnByZXN1bHQpCit7CisJT2Zmc2V0TnVtYmVyIG1heG9mZiA9IFBhZ2VHZXRNYXhPZmZz ZXROdW1iZXIocHJzdGF0ZS0+cGFnZSk7CisJUGFnZQkJcGFnZSA9IHByc3RhdGUtPnBhZ2U7CisK KwlBc3NlcnQocHJzdGF0ZS0+dm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOIHx8CisJ CSAgIChwcnN0YXRlLT52bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFICYmCisJCQkh cHJzdGF0ZS0+YXR0ZW1wdF9mcmVlemUpKTsKKworCS8qIFdlJ2xsIGZpbGwgaW4gcHJlc3VsdCBm b3IgdGhlIGNhbGxlciAqLworCW1lbXNldChwcmVzdWx0LCAwLCBzaXplb2YoUHJ1bmVGcmVlemVS ZXN1bHQpKTsKKworCXByZXN1bHQtPnZtYml0cyA9IHByc3RhdGUtPnZtYml0czsKKworCS8qIENs ZWFyIGFueSBzdGFsZSBwcnVuZSBoaW50ICovCisJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKFBh Z2VHZXRQcnVuZVhpZChwYWdlKSkpCisJeworCQlQYWdlQ2xlYXJQcnVuYWJsZShwYWdlKTsKKwkJ TWFya0J1ZmZlckRpcnR5SGludChwcnN0YXRlLT5idWZmZXIsIHRydWUpOworCX0KKworCWlmIChQ YWdlSXNFbXB0eShwYWdlKSkKKwkJcmV0dXJuOworCisJcHJlc3VsdC0+aGFzdHVwID0gdHJ1ZTsK KworCS8qCisJICogU2luY2UgdGhlIHBhZ2UgaXMgYWxsLXZpc2libGUsIGEgY291bnQgb2YgdGhl IG5vcm1hbCBJdGVtSWRzIG9uIHRoZQorCSAqIHBhZ2Ugc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9y IHZhY3V1bSdzIGxpdmUgdHVwbGUgY291bnQuCisJICovCisJZm9yIChPZmZzZXROdW1iZXIgb2Zm ID0gRmlyc3RPZmZzZXROdW1iZXI7CisJCSBvZmYgPD0gbWF4b2ZmOworCQkgb2ZmID0gT2Zmc2V0 TnVtYmVyTmV4dChvZmYpKQorCXsKKwkJaWYgKEl0ZW1JZElzTm9ybWFsKFBhZ2VHZXRJdGVtSWQo cGFnZSwgb2ZmKSkpCisJCQlwcnN0YXRlLT5saXZlX3R1cGxlcysrOworCX0KKworCXByZXN1bHQt PmxpdmVfdHVwbGVzID0gcHJzdGF0ZS0+bGl2ZV90dXBsZXM7Cit9CisKIC8qCiAgKiBQcnVuZSBh bmQgcmVwYWlyIGZyYWdtZW50YXRpb24gYW5kIHBvdGVudGlhbGx5IGZyZWV6ZSB0dXBsZXMgb24g dGhlCiAgKiBzcGVjaWZpZWQgcGFnZS4KQEAgLTk0NSw2ICsxMDA4LDE4IEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCSFQYWdlSXNBbGxW aXNpYmxlKHByc3RhdGUucGFnZSkpCiAJCWhlYXBfZml4X3ZtX2NvcnJ1cHRpb24oJnByc3RhdGUs IEludmFsaWRPZmZzZXROdW1iZXIpOwogCisJLyoKKwkgKiBJZiB0aGUgcGFnZSBpcyBhbHJlYWR5 IGFsbC1mcm96ZW4sIG9yIGFscmVhZHkgYWxsLXZpc2libGUgd2hlbiBmcmVlemluZworCSAqIGlz IG5vdCBiZWluZyBhdHRlbXB0ZWQsIHdlIGNhbiBleGl0IGVhcmx5LiBEbyB0aGlzIGFmdGVyIGZp eGluZyBhbnkKKwkgKiBkaXNjcmVwYW5jeSBiZXR3ZWVuIHRoZSBwYWdlLWxldmVsIHZpc2liaWxp dHkgaGludCBhbmQgdGhlIFZNLgorCSAqLworCWlmIChwcnN0YXRlLnZtYml0cyAmIFZJU0lCSUxJ VFlNQVBfQUxMX0ZST1pFTiB8fAorCQkocHJzdGF0ZS52bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FM TF9WSVNJQkxFICYmICFwcnN0YXRlLmF0dGVtcHRfZnJlZXplKSkKKwl7CisJCWhlYXBfcGFnZV9i eXBhc3NfcHJ1bmVfZnJlZXplKCZwcnN0YXRlLCBwcmVzdWx0KTsKKwkJcmV0dXJuOworCX0KKwog CS8qCiAJICogRXhhbWluZSBhbGwgbGluZSBwb2ludGVycyBhbmQgdHVwbGUgdmlzaWJpbGl0eSBp bmZvcm1hdGlvbiB0byBkZXRlcm1pbmUKIAkgKiB3aGljaCBsaW5lIHBvaW50ZXJzIHNob3VsZCBj aGFuZ2Ugc3RhdGUgYW5kIHdoaWNoIHR1cGxlcyBtYXkgYmUgZnJvemVuLgotLSAKMi40My4wCgo= --000000000000917517064cc2978d Content-Type: text/x-patch; charset="UTF-8"; name="v37-0004-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Disposition: attachment; filename="v37-0004-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmabbvs3 RnJvbSA2Njk2ZjZjZmExODIxNmFkZTg5NDNjYzI3ZTJjNDZhMWNjYzU1ZTJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IERlYyAyMDI1IDE2OjUxOjA1IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2MzcgMDQvMTVdIFVzZSBHbG9iYWxWaXNTdGF0ZSBpbiB2YWN1dW0gdG8gZGV0ZXJtaW5l IHBhZ2UKIGxldmVsIHZpc2liaWxpdHkKCkR1cmluZyB2YWN1dW0ncyBmaXJzdCBhbmQgdGhpcmQg cGhhc2VzLCB3ZSBleGFtaW5lIHR1cGxlcycgdmlzaWJpbGl0eQp0byBkZXRlcm1pbmUgaWYgd2Ug Y2FuIHNldCB0aGUgcGFnZSBhbGwtdmlzaWJsZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAuCgpQcmV2 aW91c2x5LCB0aGlzIGNoZWNrIGNvbXBhcmVkIHR1cGxlIHhtaW5zIGFnYWluc3QgYSBzaW5nbGUg WElEIGNob3NlbiBhdAp0aGUgc3RhcnQgb2YgdmFjdXVtIChPbGRlc3RYbWluKS4gV2Ugbm93IHVz ZSBHbG9iYWxWaXNTdGF0ZSwgd2hpY2ggYWxzbwplbmFibGVzIGZ1dHVyZSB3b3JrIHRvIHNldCB0 aGUgVk0gZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nLCBzaW5jZSBvcmRpbmFyeQpxdWVyaWVzIGhh dmUgYWNjZXNzIHRvIEdsb2JhbFZpc1N0YXRlIGJ1dCBub3QgT2xkZXN0WG1pbi4KClRoaXMgYWxz byBiZW5lZml0cyB2YWN1dW06IGluIHNvbWUgY2FzZXMsIEdsb2JhbFZpc1N0YXRlIG1heSBhZHZh bmNlCmR1cmluZyBhIHZhY3V1bSwgYWxsb3dpbmcgbW9yZSBwYWdlcyB0byBiZWNvbWUgY29uc2lk ZXJlZCBhbGwtdmlzaWJsZS4KQW5kLCBpbiB0aGUgZnV0dXJlLCB3ZSBjb3VsZCBlYXNpbHkgYWRk IGEgaGV1cmlzdGljIHRvIHVwZGF0ZQpHbG9iYWxWaXNTdGF0ZSBtb3JlIGZyZXF1ZW50bHkgZHVy aW5nIHZhY3V1bXMgb2YgbGFyZ2UgdGFibGVzLgoKT2xkZXN0WG1pbiBpcyBzdGlsbCB1c2VkIGZv ciBmcmVlemluZyBhbmQgYXMgYSBiYWNrc3RvcCB0byBlbnN1cmUgd2UKZG9uJ3QgZnJlZXplIGEg ZGVhZCB0dXBsZSB0aGF0IHdhc24ndCB5ZXQgcHJ1bmFibGUgYWNjb3JkaW5nIHRvCkdsb2JhbFZp c1N0YXRlIGluIHRoZSByYXJlIG9jY3VycmVuY2VzIHdoZXJlIEdsb2JhbFZpc1N0YXRlIG1vdmVz CmJhY2t3YXJkcy4KCkJlY2F1c2UgY29tcGFyaW5nIGEgdHJhbnNhY3Rpb24gSUQgYWdhaW5zdCBH bG9iYWxWaXNTdGF0ZSBpcyBtb3JlCmV4cGVuc2l2ZSB0aGFuIGNvbXBhcmluZyBhZ2FpbnN0IGEg c2luZ2xlIFhJRCwgd2UgZGVmZXIgdGhpcyBjaGVjayB1bnRpbAphZnRlciBzY2FubmluZyBhbGwg dHVwbGVzIG9uIHRoZSBwYWdlLiBUaGVyZWZvcmUsIHdlIHBlcmZvcm0gdGhlCkdsb2JhbFZpc1N0 YXRlIGNoZWNrIG9ubHkgb25jZSBwZXIgcGFnZS4gVGhpcyBpcyBzYWZlIGJlY2F1c2UKdmlzaWJp bGl0eV9jdXRvZmZfeGlkIHJlY29yZHMgdGhlIG5ld2VzdCBsaXZlIHhtaW4gb24gdGhlIHBhZ2U7 CmlmIGl0IGlzIGdsb2JhbGx5IHZpc2libGUsIHRoZW4gdGhlIGVudGlyZSBwYWdlIGlzIGFsbC12 aXNpYmxlLgoKVXNpbmcgR2xvYmFsVmlzU3RhdGUgbWVhbnMgb24tYWNjZXNzIHBydW5pbmcgY2Fu IGFsc28gbWFpbnRhaW4KdmlzaWJpbGl0eV9jdXRvZmZfeGlkLiBUaGlzIGFwcHJvYWNoIHdpbGwg cmVzdWx0IGluIGV4YW1pbmluZyBtb3JlIHR1cGxlCnhtaW5zIHRoYW4gYmVmb3JlOyBob3dldmVy LCB0aGUgYWRkaXRpb25hbCBjb3N0IHNob3VsZCBub3QgYmUKc2lnbmlmaWNhbnQuIEFuZCBkb2lu ZyBzbyB3aWxsIGVuYWJsZSB1cyB0byBzZXQgdGhlIHZpc2liaWxpdHkgbWFwIG9uCmFjY2VzcyBp biB0aGUgZnV0dXJlLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5A Z21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRl PgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0L2JxYzRraDVtaWRmbjQ0Z25qaXFlejNianF2NHpv Z3lkZ3V2ZG40NDZyaXc0NWpjZjN5JTQwNGV6NjZpbDdlYnZrI2M3NTVlZjE1MTUwN2FiYTU4NDcx ZmZhY2E2MDdlNDkzCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxp dHkuYyB8IDIyICsrKysrKysrKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg ICAgICAgICB8IDM3ICsrKysrKystLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jICAgICAgICB8IDUxICsrKysrKysrKysrKystLS0tLS0tLQogc3JjL2luY2x1ZGUv YWNjZXNzL2hlYXBhbS5oICAgICAgICAgICAgICAgICB8ICAyICsKIDQgZmlsZXMgY2hhbmdlZCwg NzIgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKaW5kZXggZmM2NGY0MzQzY2UuLmQ3MGZhYjNhNzYzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKQEAgLTExMzEs NiArMTEzMSwyOCBAQCBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0oSGVhcFR1cGxlIGh0dXAsIFRy YW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAlyZXR1cm4gcmVzOwogfQogCisvKgorICogV3JhcHBl ciBhcm91bmQgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgZm9yIHVzZSB3aGVuIGV4YW1p bmluZyBsaXZlCisgKiB0dXBsZXMuIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gWElEIG1heSBi ZSBjb25zaWRlcmVkIHJ1bm5pbmcgYnkgYXQgbGVhc3QKKyAqIG9uZSBzbmFwc2hvdC4KKyAqCisg KiBUaGlzIGZ1bmN0aW9uIGFsb25lIGlzIGluc3VmZmljaWVudCB0byBkZXRlcm1pbmUgdHVwbGUg dmlzaWJpbGl0eTsgY2FsbGVycworICogbXVzdCBhbHNvIGNvbnNpZGVyIHRoZSBYSUQncyBjb21t aXQgc3RhdHVzLiBJdHMgcHVycG9zZSBpcyBwdXJlbHkgc2VtYW50aWM6CisgKiB3aGVuIGFwcGxp ZWQgdG8gbGl2ZSB0dXBsZXMsIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCgpIGlzIGNoZWNr aW5nCisgKiB3aGV0aGVyIHRoZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24gaXMgc3RpbGwgY29uc2lk ZXJlZCBydW5uaW5nLCBub3Qgd2hldGhlcgorICogdGhlIHR1cGxlIGlzIHJlbW92YWJsZS4gTGl2 ZSB0dXBsZXMgYXJlLCBieSBkZWZpbml0aW9uLCBub3QgcmVtb3ZhYmxlLCBidXQKKyAqIHRoZSBz bmFwc2hvdCBjcml0ZXJpYSBmb3Ig4oCcdHJhbnNhY3Rpb24gc3RpbGwgcnVubmluZ+KAnSBhcmUg aWRlbnRpY2FsIHRvCisgKiB0aG9zZSB1c2VkIGZvciByZW1vdmFsIFhJRHMuCisgKgorICogU2Vl IHRoZSBjb21tZW50IGFib3ZlIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVtGdWxsXVhpZCgpIGZv ciBkZXRhaWxzIG9uIHRoZQorICogcmVxdWlyZWQgcHJlY29uZGl0aW9ucyBmb3IgY2FsbGluZyB0 aGlzIGZ1bmN0aW9uLgorICovCitib29sCitHbG9iYWxWaXNUZXN0WGlkTWF5YmVSdW5uaW5nKEds b2JhbFZpc1N0YXRlICpzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQpCit7CisJcmV0dXJuICFHbG9i YWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoc3RhdGUsIHhpZCk7Cit9CisKIC8qCiAgKiBXb3JrIGhv cnNlIGZvciBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0gYW5kIHNpbWlsYXIgcm91dGluZXMuCiAg KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCBiMzVlYmRjMTM0ZC4uYzVlMDM2 MDUzZDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0xMDI4LDYgKzEwMjgs MTcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFt cywKIAkgKi8KIAlwcnVuZV9mcmVlemVfcGxhbigmcHJzdGF0ZSwgb2ZmX2xvYyk7CiAKKwkvKgor CSAqIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHRoZSBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZSwgaWYg dGhlIG5ld2VzdCB4bWluCisJICogYW1vbmdzdCB0aGVtIG1heSBiZSBjb25zaWRlcmVkIHJ1bm5p bmcgYnkgYW55IHNuYXBzaG90LCB0aGUgcGFnZSBjYW5ub3QKKwkgKiBiZSBhbGwtdmlzaWJsZS4K KwkgKi8KKwlpZiAocHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUgJiYKKwkJVHJhbnNhY3Rpb25JZElz Tm9ybWFsKHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgorCQlHbG9iYWxWaXNUZXN0 WGlkTWF5YmVSdW5uaW5nKHByc3RhdGUudmlzdGVzdCwKKwkJCQkJCQkJCSBwcnN0YXRlLnZpc2li aWxpdHlfY3V0b2ZmX3hpZCkpCisJCXByc3RhdGUuc2V0X2FsbF92aXNpYmxlID0gcHJzdGF0ZS5z ZXRfYWxsX2Zyb3plbiA9IGZhbHNlOworCiAJLyoKIAkgKiBJZiBjaGVja3N1bXMgYXJlIGVuYWJs ZWQsIGNhbGxpbmcgaGVhcF9wcnVuZV9zYXRpc2ZpZXNfdmFjdXVtKCkgd2hpbGUKIAkgKiBjaGVj a2luZyB0dXBsZSB2aXNpYmlsaXR5IGluZm9ybWF0aW9uIGluIHBydW5lX2ZyZWV6ZV9wbGFuKCkg bWF5IGhhdmUKQEAgLTE2OTUsMjkgKzE3MDYsMTUgQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFu Z2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQog CQkJCX0KIAogCQkJCS8qCi0JCQkJICogVGhlIGluc2VydGVyIGRlZmluaXRlbHkgY29tbWl0dGVk LiAgQnV0IGlzIGl0IG9sZCBlbm91Z2gKLQkJCQkgKiB0aGF0IGV2ZXJ5b25lIHNlZXMgaXQgYXMg Y29tbWl0dGVkPyAgQSBGcm96ZW5UcmFuc2FjdGlvbklkCi0JCQkJICogaXMgc2VlbiBhcyBjb21t aXR0ZWQgdG8gZXZlcnlvbmUuICBPdGhlcndpc2UsIHdlIGNoZWNrIGlmCi0JCQkJICogdGhlcmUg aXMgYSBzbmFwc2hvdCB0aGF0IGNvbnNpZGVycyB0aGlzIHhpZCB0byBzdGlsbCBiZQotCQkJCSAq IHJ1bm5pbmcsIGFuZCBpZiBzbywgd2UgZG9uJ3QgY29uc2lkZXIgdGhlIHBhZ2UgYWxsLXZpc2li bGUuCisJCQkJICogVGhlIGluc2VydGVyIGRlZmluaXRlbHkgY29tbWl0dGVkLiBCdXQgd2UgZG9u J3Qga25vdyBpZiBpdAorCQkJCSAqIGlzIG9sZCBlbm91Z2ggdGhhdCBldmVyeW9uZSBzZWVzIGl0 IGFzIGNvbW1pdHRlZC4gTGF0ZXIsCisJCQkJICogYWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdGhlIHR1 cGxlcyBvbiB0aGUgcGFnZSwgd2UnbGwgY2hlY2sgaWYKKwkJCQkgKiB0aGVyZSBpcyBhbnkgc25h cHNob3QgdGhhdCBzdGlsbCBjb25zaWRlcnMgdGhlIG5ld2VzdCB4aWQKKwkJCQkgKiBvbiB0aGUg cGFnZSB0byBiZSBydW5uaW5nLiBJZiBzbywgd2UgZG9uJ3QgY29uc2lkZXIgdGhlCisJCQkJICog cGFnZSBhbGwtdmlzaWJsZS4KIAkJCQkgKi8KIAkJCQl4bWluID0gSGVhcFR1cGxlSGVhZGVyR2V0 WG1pbihodHVwKTsKIAotCQkJCS8qCi0JCQkJICogRm9yIG5vdyBhbHdheXMgdXNlIHByc3RhdGUt PmN1dG9mZnMgZm9yIHRoaXMgdGVzdCwgYmVjYXVzZQotCQkJCSAqIHdlIG9ubHkgdXBkYXRlICdz ZXRfYWxsX3Zpc2libGUnIGFuZCAnc2V0X2FsbF9mcm96ZW4nIHdoZW4KLQkJCQkgKiBmcmVlemlu ZyBpcyByZXF1ZXN0ZWQuIFdlIGNvdWxkIHVzZQotCQkJCSAqIEdsb2JhbFZpc1Rlc3RJc1JlbW92 YWJsZVhpZCBpbnN0ZWFkLCBpZiBhIG5vbi1mcmVlemluZwotCQkJCSAqIGNhbGxlciB3YW50ZWQg dG8gc2V0IHRoZSBWTSBiaXQuCi0JCQkJICovCi0JCQkJQXNzZXJ0KHByc3RhdGUtPmN1dG9mZnMp OwotCQkJCWlmICghVHJhbnNhY3Rpb25JZFByZWNlZGVzKHhtaW4sIHByc3RhdGUtPmN1dG9mZnMt Pk9sZGVzdFhtaW4pKQotCQkJCXsKLQkJCQkJcHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlID0gZmFs c2U7Ci0JCQkJCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7Ci0JCQkJCWJyZWFrOwot CQkJCX0KLQogCQkJCS8qIFRyYWNrIG5ld2VzdCB4bWluIG9uIHBhZ2UuICovCiAJCQkJaWYgKFRy YW5zYWN0aW9uSWRGb2xsb3dzKHhtaW4sIHByc3RhdGUtPnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkg JiYKIAkJCQkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhtaW4pKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jCmluZGV4IDk1NzMyMjY0OGNhLi5hZDg1ZTFlMTczOCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNDYxLDEzICs0NjEsMTMgQEAgc3RhdGljIHZvaWQg ZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCk7CiAKICNpZmRlZiBVU0VfQVNT RVJUX0NIRUNLSU5HCiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRp b24gcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwK KwkJCQkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkJCSBib29sICphbGxf ZnJvemVuLAogCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwK IAkJCQkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKICNlbmRpZgogc3RhdGlj IGJvb2wgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVy IGJ1ZiwKLQkJCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkJCQkJ ICAgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpk ZWFkb2Zmc2V0cywKIAkJCQkJCQkJCQkgICBpbnQgbmRlYWRvZmZzZXRzLAogCQkJCQkJCQkJCSAg IGJvb2wgKmFsbF9mcm96ZW4sCkBAIC0yMDU0LDEzICsyMDU0LDEwIEBAIGxhenlfc2Nhbl9wcnVu ZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJCUFzc2VydChwcmVzdWx0LmxwZGVhZF9pdGVtcyA9PSAw KTsKIAogCQlBc3NlcnQoaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBidWYs Ci0JCQkJCQkJCQkJdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4sICZkZWJ1Z19hbGxfZnJvemVu LAorCQkJCQkJCQkJCXZhY3JlbC0+dmlzdGVzdCwgJmRlYnVnX2FsbF9mcm96ZW4sCiAJCQkJCQkJ CQkJJmRlYnVnX2N1dG9mZiwgJnZhY3JlbC0+b2ZmbnVtKSk7CiAKIAkJQXNzZXJ0KHByZXN1bHQu c2V0X2FsbF9mcm96ZW4gPT0gZGVidWdfYWxsX2Zyb3plbik7Ci0KLQkJQXNzZXJ0KCFUcmFuc2Fj dGlvbklkSXNWYWxpZChkZWJ1Z19jdXRvZmYpIHx8Ci0JCQkgICBkZWJ1Z19jdXRvZmYgPT0gcHJl c3VsdC52bV9jb25mbGljdF9ob3Jpem9uKTsKIAl9CiAjZW5kaWYKIApAQCAtMjgxNiw3ICsyODEz LDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1i ZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJICogZG9uZSBvdXRzaWRlIHRoZSBjcml0aWNhbCBz ZWN0aW9uLgogCSAqLwogCWlmIChoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUodmFjcmVs LT5yZWwsIGJ1ZmZlciwKLQkJCQkJCQkJCSAgIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWluLAor CQkJCQkJCQkJICAgdmFjcmVsLT52aXN0ZXN0LAogCQkJCQkJCQkJICAgZGVhZG9mZnNldHMsIG51 bV9vZmZzZXRzLAogCQkJCQkJCQkJICAgJmFsbF9mcm96ZW4sICZ2aXNpYmlsaXR5X2N1dG9mZl94 aWQsCiAJCQkJCQkJCQkgICAmdmFjcmVsLT5vZmZudW0pKQpAQCAtMzU3NywxNCArMzU3NCwxNCBA QCBkZWFkX2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogICovCiBzdGF0aWMgYm9v bAogaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKLQkJ CQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZp c3Rlc3QsCiAJCQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKIAkJCQkJCSBUcmFuc2FjdGlvbklkICp2 aXNpYmlsaXR5X2N1dG9mZl94aWQsCiAJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51 bSkKIHsKIAogCXJldHVybiBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUocmVsLCBidWYs Ci0JCQkJCQkJCQkJICBPbGRlc3RYbWluLAorCQkJCQkJCQkJCSAgdmlzdGVzdCwKIAkJCQkJCQkJ CQkgIE5VTEwsIDAsCiAJCQkJCQkJCQkJICBhbGxfZnJvemVuLAogCQkJCQkJCQkJCSAgdmlzaWJp bGl0eV9jdXRvZmZfeGlkLApAQCAtMzYwNSw3ICszNjAyLDcgQEAgaGVhcF9wYWdlX2lzX2FsbF92 aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUg cGFnZSBpcyBhbGwtdmlzaWJsZSBvdGhlciB0aGFuIHRoZSBwcm92aWRlZAogICogZGVhZG9mZnNl dHMgYW5kIGZhbHNlIG90aGVyd2lzZS4KICAqCi0gKiBPbGRlc3RYbWluIGlzIHVzZWQgdG8gZGV0 ZXJtaW5lIHZpc2liaWxpdHkuCisgKiB2aXN0ZXN0IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHZpc2li aWxpdHkuCiAgKgogICogT3V0cHV0IHBhcmFtZXRlcnM6CiAgKgpAQCAtMzYyNCw3ICszNjIxLDcg QEAgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKICAq Lwogc3RhdGljIGJvb2wKIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiBy ZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAorCQkJ CQkJCSAgIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAogCQkJCQkJCSAgIE9mZnNldE51bWJlciAq ZGVhZG9mZnNldHMsCiAJCQkJCQkJICAgaW50IG5kZWFkb2Zmc2V0cywKIAkJCQkJCQkgICBib29s ICphbGxfZnJvemVuLApAQCAtMzcwNSw3ICszNzAyLDcgQEAgaGVhcF9wYWdlX3dvdWxkX2JlX2Fs bF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJCQl7CiAJCQkJCVRyYW5zYWN0 aW9uSWQgeG1pbjsKIAotCQkJCQkvKiBDaGVjayBjb21tZW50cyBpbiBsYXp5X3NjYW5fcHJ1bmUu ICovCisJCQkJCS8qIENoZWNrIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwg Y29tbWVudHMgKi8KIAkJCQkJaWYgKCFIZWFwVHVwbGVIZWFkZXJYbWluQ29tbWl0dGVkKHR1cGxl LnRfZGF0YSkpCiAJCQkJCXsKIAkJCQkJCWFsbF92aXNpYmxlID0gZmFsc2U7CkBAIC0zNzE0LDE2 ICszNzExLDE3IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWws IEJ1ZmZlciBidWYsCiAJCQkJCX0KIAogCQkJCQkvKgotCQkJCQkgKiBUaGUgaW5zZXJ0ZXIgZGVm aW5pdGVseSBjb21taXR0ZWQuIEJ1dCBpcyBpdCBvbGQgZW5vdWdoCi0JCQkJCSAqIHRoYXQgZXZl cnlvbmUgc2VlcyBpdCBhcyBjb21taXR0ZWQ/CisJCQkJCSAqIFRoZSBpbnNlcnRlciBkZWZpbml0 ZWx5IGNvbW1pdHRlZC4gQnV0IHdlIGRvbid0IGtub3cgaWYKKwkJCQkJICogaXQgaXMgb2xkIGVu b3VnaCB0aGF0IGV2ZXJ5b25lIHNlZXMgaXQgYXMgY29tbWl0dGVkLgorCQkJCQkgKiBEb24ndCBj aGVjayB0aGF0IG5vdy4KKwkJCQkJICoKKwkJCQkJICogSWYgd2Ugc2NhbiBhbGwgdHVwbGVzIHdp dGhvdXQgZmluZGluZyBvbmUgdGhhdCBwcmV2ZW50cworCQkJCQkgKiB0aGUgcGFnZSBmcm9tIGJl aW5nIGFsbC12aXNpYmxlLCB3ZSB0aGVuIGNoZWNrIHdoZXRoZXIKKwkJCQkJICogYW55IHNuYXBz aG90IHN0aWxsIGNvbnNpZGVycyB0aGUgbmV3ZXN0IFhJRCBvbiB0aGUgcGFnZQorCQkJCQkgKiB0 byBiZSBydW5uaW5nLiBJbiB0aGF0IGNhc2UsIHRoZSBwYWdlIGlzIG5vdCBjb25zaWRlcmVkCisJ CQkJCSAqIGFsbC12aXNpYmxlLgogCQkJCQkgKi8KIAkJCQkJeG1pbiA9IEhlYXBUdXBsZUhlYWRl ckdldFhtaW4odHVwbGUudF9kYXRhKTsKLQkJCQkJaWYgKCFUcmFuc2FjdGlvbklkUHJlY2VkZXMo eG1pbiwgT2xkZXN0WG1pbikpCi0JCQkJCXsKLQkJCQkJCWFsbF92aXNpYmxlID0gZmFsc2U7Ci0J CQkJCQkqYWxsX2Zyb3plbiA9IGZhbHNlOwotCQkJCQkJYnJlYWs7Ci0JCQkJCX0KIAogCQkJCQkv KiBUcmFjayBuZXdlc3QgeG1pbiBvbiBwYWdlLiAqLwogCQkJCQlpZiAoVHJhbnNhY3Rpb25JZEZv bGxvd3MoeG1pbiwgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkgJiYKQEAgLTM3NTIsNiArMzc1MCwx OSBAQCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIg YnVmLAogCQl9CiAJfQkJCQkJCQkvKiBzY2FuIGFsb25nIHBhZ2UgKi8KIAorCS8qCisJICogQWZ0 ZXIgcHJvY2Vzc2luZyBhbGwgdGhlIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLCBpZiB0aGUgbmV3 ZXN0IHhtaW4KKwkgKiBhbW9uZyB0aGVtIG1heSBzdGlsbCBiZSBjb25zaWRlcmVkIHJ1bm5pbmcg YnkgYW55IHNuYXBzaG90LCB0aGUgcGFnZQorCSAqIGNhbm5vdCBiZSBhbGwtdmlzaWJsZS4KKwkg Ki8KKwlpZiAoYWxsX3Zpc2libGUgJiYKKwkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKCp2aXNpYmls aXR5X2N1dG9mZl94aWQpICYmCisJCUdsb2JhbFZpc1Rlc3RYaWRNYXliZVJ1bm5pbmcodmlzdGVz dCwgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkpCisJeworCQlhbGxfdmlzaWJsZSA9IGZhbHNlOwor CQkqYWxsX2Zyb3plbiA9IGZhbHNlOworCX0KKwogCS8qIENsZWFyIHRoZSBvZmZzZXQgaW5mb3Jt YXRpb24gb25jZSB3ZSBoYXZlIHByb2Nlc3NlZCB0aGUgZ2l2ZW4gcGFnZS4gKi8KIAkqbG9nZ2lu Z19vZmZudW0gPSBJbnZhbGlkT2Zmc2V0TnVtYmVyOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5kZXggYzY0 OWU1ZjE5ODAuLmJiYjIyM2RkMGQyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVh cGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC00NzksNiArNDc5LDgg QEAgZXh0ZXJuIFRNX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2ZpZXNVcGRhdGUoSGVhcFR1cGxlIGh0 dXAsIENvbW1hbmRJZCBjdXJjaWQsCiAJCQkJCQkJCQkJICBCdWZmZXIgYnVmZmVyKTsKIGV4dGVy biBIVFNWX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0oSGVhcFR1cGxlIGh0dXAsIFRy YW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAkJCQkJCQkJCQkJQnVmZmVyIGJ1ZmZlcik7CisKK2V4 dGVybiBib29sIEdsb2JhbFZpc1Rlc3RYaWRNYXliZVJ1bm5pbmcoR2xvYmFsVmlzU3RhdGUgKnN0 YXRlLCBUcmFuc2FjdGlvbklkIHhpZCk7CiBleHRlcm4gSFRTVl9SZXN1bHQgSGVhcFR1cGxlU2F0 aXNmaWVzVmFjdXVtSG9yaXpvbihIZWFwVHVwbGUgaHR1cCwgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJ CQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKmRlYWRfYWZ0ZXIpOwogZXh0ZXJuIHZvaWQgSGVhcFR1 cGxlU2V0SGludEJpdHMoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLCBCdWZmZXIgYnVmZmVyLAotLSAK Mi40My4wCgo= --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0005-Keep-newest-live-XID-up-to-date-even-if-page-not.patch" Content-Disposition: attachment; filename="v37-0005-Keep-newest-live-XID-up-to-date-even-if-page-not.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmabgmk4 RnJvbSBiYTY4ZWZhODk2MTBlNDVhMTUzNTkxYWY4NzViOTIxNWJjYTBlN2M3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI4IEZlYiAyMDI2IDE2OjA2OjUxIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2MzcgMDUvMTVdIEtlZXAgbmV3ZXN0IGxpdmUgWElEIHVwLXRvLWRhdGUgZXZlbiBpZiBw YWdlIG5vdAogYWxsLXZpc2libGUKCkR1cmluZyBwcnVuaW5nLCB3ZSBrZWVwIHRyYWNrIG9mIHRo ZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUKcGFnZSB2aXNpYmxlIHRvIGFsbCBy dW5uaW5nIGFuZCBmdXR1cmUgdHJhbnNhY3Rpb25zIHNvIHRoYXQgd2UgY2FuIHVzZQppdCBsYXRl ciBhcyB0aGUgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhlIFZNIGlm IHRoZQpwYWdlIHR1cm5zIG91dCB0byBiZSBhbGwtdmlzaWJsZS4KClByZXZpb3VzbHksIHdlIHN0 b3BwZWQgdXBkYXRpbmcgdGhpcyB2YWx1ZSBvbmNlIHdlIGRldGVybWluZWQgdGhlIHBhZ2UKd2Fz IG5vdCBhbGwtdmlzaWJsZS4gSG93ZXZlciwgbWFpbnRhaW5pbmcgaXQgZXZlbiB3aGVuIHRoZSBw YWdlIGlzIG5vdAphbGwtdmlzaWJsZSBpcyBpbmV4cGVuc2l2ZSBhbmQgbWFrZXMgdGhlIHNuYXBz aG90IGNvbmZsaWN0IGhvcml6b24KY2FsY3VsYXRpb24gY2xlYXJlci4gVGhpcyBndWFyYW50ZWVz IGl0IHdvbid0IGNvbnRhaW4gYSBzdGFsZSB2YWx1ZS4KClNpbmNlIHdlJ2xsIGtlZXAgaXQgdXAg dG8gZGF0ZSBhbGwgdGhlIHRpbWUgbm93IGFueXdheSwgdGhlcmUncyBubwpyZWFzb24gbm90IHRv IG1haW50YWluIGFsbF92aXNpYmxlIGZvciBvbi1hY2Nlc3MgcHJ1bmluZy4gVGhpcyB3aWxsCmFs bG93IHVzIHRvIHNldCB0aGUgVk0gb24tYWNjZXNzIGluIHRoZSBmdXR1cmUuCgpBdXRob3I6IE1l bGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBB bmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxs aS5ldmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2Jx YzRraDVtaWRmbjQ0Z25qaXFlejNianF2NHpvZ3lkZ3V2ZG40NDZyaXc0NWpjZjN5JTQwNGV6NjZp bDdlYnZrCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgIHwgMTI3ICsr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jIHwgIDMwICsrKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwg OTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCBjNWUw MzYwNTNkMy4uZDlhMDZmMzExNWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBA IC0xMjksNiArMTI5LDkgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkvKiBCaXRzIGluIHRoZSB2bWJ1ZmZl ciBmb3IgdGhpcyBoZWFwIHBhZ2UgKi8KIAl1aW50OAkJdm1iaXRzOwogCisJLyogVGhlIG5ld2Vz dCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlICovCisJVHJhbnNhY3Rpb25JZCBuZXdl c3RfbGl2ZV94aWQ7CisKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIAkgKiBJbmZvcm1hdGlvbiBhYm91dCB3aGF0IHdhcyBkb25lCiAJ ICoKQEAgLTE2MCwxMSArMTYzLDYgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkgKiBhbGwtZnJvemVuIGJp dHMgaW4gdGhlIHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSBhZnRlcgog CSAqIHBydW5pbmcuCiAJICoKLQkgKiB2aXNpYmlsaXR5X2N1dG9mZl94aWQgaXMgdGhlIG5ld2Vz dCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLgotCSAqIFRoZSBjYWxsZXIgY2FuIHVz ZSBpdCBhcyB0aGUgY29uZmxpY3QgaG9yaXpvbiwgd2hlbiBzZXR0aW5nIHRoZSBWTQotCSAqIGJp dHMuICBJdCBpcyBvbmx5IHZhbGlkIGlmIHdlIGZyb3plIHNvbWUgdHVwbGVzLCBhbmQgc2V0X2Fs bF9mcm96ZW4gaXMKLQkgKiB0cnVlLgotCSAqCiAJICogTk9URTogc2V0X2FsbF92aXNpYmxlIGFu ZCBzZXRfYWxsX2Zyb3plbiBpbml0aWFsbHkgZG9uJ3QgaW5jbHVkZQogCSAqIExQX0RFQUQgaXRl bXMuIFRoYXQncyBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIHRv CiAJICogdXNlIHRoZW0gdG8gZGVjaWRlIHdoZXRoZXIgdG8gZnJlZXplIHRoZSBwYWdlIG9yIG5v dC4gIFRoZQpAQCAtMTc0LDcgKzE3Miw2IEBAIHR5cGVkZWYgc3RydWN0CiAJICovCiAJYm9vbAkJ c2V0X2FsbF92aXNpYmxlOwogCWJvb2wJCXNldF9hbGxfZnJvemVuOwotCVRyYW5zYWN0aW9uSWQg dmlzaWJpbGl0eV9jdXRvZmZfeGlkOwogfSBQcnVuZVN0YXRlOwogCiAvKiBMb2NhbCBmdW5jdGlv bnMgKi8KQEAgLTQzNSw1MyArNDMyLDM1IEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6 ZVBhcmFtcyAqcGFyYW1zLAogCXByc3RhdGUtPmRlYWRvZmZzZXRzID0gcHJlc3VsdC0+ZGVhZG9m ZnNldHM7CiAKIAkvKgotCSAqIFZhY3V1bSBtYXkgdXBkYXRlIHRoZSBWTSBhZnRlciB3ZSdyZSBk b25lLiAgV2UgY2FuIGtlZXAgdHJhY2sgb2YKLQkgKiB3aGV0aGVyIHRoZSBwYWdlIHdpbGwgYmUg YWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4gYWZ0ZXIgcHJ1bmluZyBhbmQKLQkgKiBmcmVlemlu ZyB0byBoZWxwIHRoZSBjYWxsZXIgdG8gZG8gdGhhdC4KLQkgKgotCSAqIEN1cnJlbnRseSwgb25s eSBWQUNVVU0gc2V0cyB0aGUgVk0gYml0cy4gIFRvIHNhdmUgdGhlIGVmZm9ydCwgb25seSBkbwot CSAqIHRoZSBib29ra2VlcGluZyBpZiB0aGUgY2FsbGVyIG5lZWRzIGl0LiAgQ3VycmVudGx5LCB0 aGF0J3MgdGllZCB0bwotCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUsIGJ1dCBpdCBjb3VsZCBi ZSBhIHNlcGFyYXRlIGZsYWcgaWYgeW91IHdhbnRlZAotCSAqIHRvIHVwZGF0ZSB0aGUgVk0gYml0 cyB3aXRob3V0IGFsc28gZnJlZXppbmcgb3IgZnJlZXplIHdpdGhvdXQgYWxzbwotCSAqIHNldHRp bmcgdGhlIFZNIGJpdHMuCisJICogV2UgdHJhY2sgd2hldGhlciB0aGUgcGFnZSB3aWxsIGJlIGFs bC12aXNpYmxlL2FsbC1mcm96ZW4gYXQgdGhlIGVuZCBvZgorCSAqIHBydW5pbmcgYW5kIGZyZWV6 aW5nLiBXaGlsZSBleGFtaW5pbmcgdHVwbGUgdmlzaWJpbGl0eSwgd2UnbGwgc2V0CisJICogc2V0 X2FsbF92aXNpYmxlIHRvIGZhbHNlIGlmIHRoZXJlIGFyZSB0dXBsZXMgb24gdGhlIHBhZ2Ugbm90 IHZpc2libGUgdG8KKwkgKiBhbGwgcnVubmluZyBhbmQgZnV0dXJlIHRyYW5zYWN0aW9ucy4gc2V0 X2FsbF92aXNpYmxlIGlzIGFsd2F5cworCSAqIG1haW50YWluZWQgYnV0IG9ubHkgVkFDVVVNIHdp bGwgc2V0IHRoZSBWTSBpZiB0aGUgcGFnZSBlbmRzIHVwIGJlaW5nCisJICogYWxsLXZpc2libGUu CiAJICoKLQkgKiBJbiBhZGRpdGlvbiB0byB0ZWxsaW5nIHRoZSBjYWxsZXIgd2hldGhlciBpdCBj YW4gc2V0IHRoZSBWTSBiaXQsIHdlCi0JICogYWxzbyB1c2UgJ3NldF9hbGxfdmlzaWJsZScgYW5k ICdzZXRfYWxsX2Zyb3plbicgZm9yIG91ciBvd24KLQkgKiBkZWNpc2lvbi1tYWtpbmcuIElmIHRo ZSB3aG9sZSBwYWdlIHdvdWxkIGJlY29tZSBmcm96ZW4sIHdlIGNvbnNpZGVyCi0JICogb3Bwb3J0 dW5pc3RpY2FsbHkgZnJlZXppbmcgdHVwbGVzLiAgV2Ugd2lsbCBub3QgYmUgYWJsZSB0byBmcmVl emUgdGhlCi0JICogd2hvbGUgcGFnZSBpZiB0aGVyZSBhcmUgdHVwbGVzIHByZXNlbnQgdGhhdCBh cmUgbm90IHZpc2libGUgdG8gZXZlcnlvbmUKLQkgKiBvciBpZiB0aGVyZSBhcmUgZGVhZCB0dXBs ZXMgd2hpY2ggYXJlIG5vdCB5ZXQgcmVtb3ZhYmxlLiAgSG93ZXZlciwgZGVhZAotCSAqIHR1cGxl cyB3aGljaCB3aWxsIGJlIHJlbW92ZWQgYnkgdGhlIGVuZCBvZiB2YWN1dW1pbmcgc2hvdWxkIG5v dAotCSAqIHByZWNsdWRlIHVzIGZyb20gb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXppbmcuICBCZWNh dXNlIG9mIHRoYXQsIHdlIGRvCi0JICogbm90IGltbWVkaWF0ZWx5IGNsZWFyIHNldF9hbGxfdmlz aWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gd2hlbiB3ZSBzZWUKLQkgKiBMUF9ERUFEIGl0ZW1zLiAg V2UgZml4IHRoYXQgYWZ0ZXIgc2Nhbm5pbmcgdGhlIGxpbmUgcG9pbnRlcnMuIFdlIG11c3QKLQkg KiBjb3JyZWN0IHNldF9hbGxfdmlzaWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gYmVmb3JlIHdlIHJl dHVybiB0aGVtIHRvIHRoZQotCSAqIGNhbGxlciwgc28gdGhhdCB0aGUgY2FsbGVyIGRvZXNuJ3Qg c2V0IHRoZSBWTSBiaXRzIGluY29ycmVjdGx5LgorCSAqIFdlIGFsc28ga2VlcCB0cmFjayBvZiB0 aGUgbmV3ZXN0IGxpdmUgWElELCB3aGljaCBpcyB1c2VkIHRvIGNhbGN1bGF0ZQorCSAqIHRoZSBz bmFwc2hvdCBjb25mbGljdCBob3Jpem9uIGZvciBhIFdBTCByZWNvcmQgc2V0dGluZyB0aGUgVk0u CiAJICovCi0JaWYgKHByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQotCXsKLQkJcHJzdGF0ZS0+c2V0 X2FsbF92aXNpYmxlID0gdHJ1ZTsKLQkJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSB0cnVlOwot CX0KLQllbHNlCi0JewotCQkvKgotCQkgKiBJbml0aWFsaXppbmcgdG8gZmFsc2UgYWxsb3dzIHNr aXBwaW5nIHRoZSB3b3JrIHRvIHVwZGF0ZSB0aGVtIGluCi0JCSAqIGhlYXBfcHJ1bmVfcmVjb3Jk X3VuY2hhbmdlZF9scF9ub3JtYWwoKS4KLQkJICovCi0JCXByc3RhdGUtPnNldF9hbGxfdmlzaWJs ZSA9IGZhbHNlOwotCQlwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOwotCX0KKwlwcnN0 YXRlLT5zZXRfYWxsX3Zpc2libGUgPSB0cnVlOworCXByc3RhdGUtPm5ld2VzdF9saXZlX3hpZCA9 IEludmFsaWRUcmFuc2FjdGlvbklkOwogCiAJLyoKLQkgKiBUaGUgdmlzaWJpbGl0eSBjdXRvZmYg eGlkIGlzIHRoZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUKLQkgKiBwYWdlLiAg SW4gdGhlIGNvbW1vbiBjYXNlLCB0aGlzIHdpbGwgYmUgc2V0IGFzIHRoZSBjb25mbGljdCBob3Jp em9uIHRoZQotCSAqIGNhbGxlciBjYW4gdXNlIGZvciB1cGRhdGluZyB0aGUgVk0uICBJZiwgYXQg dGhlIGVuZCBvZiBmcmVlemluZyBhbmQKLQkgKiBwcnVuaW5nLCB0aGUgcGFnZSBpcyBhbGwtZnJv emVuLCB0aGVyZSBpcyBubyBwb3NzaWJpbGl0eSB0aGF0IGFueQotCSAqIHJ1bm5pbmcgdHJhbnNh Y3Rpb24gb24gdGhlIHN0YW5kYnkgZG9lcyBub3Qgc2VlIHR1cGxlcyBvbiB0aGUgcGFnZSBhcwot CSAqIGFsbC12aXNpYmxlLCBzbyB0aGUgY29uZmxpY3QgaG9yaXpvbiByZW1haW5zIEludmFsaWRU cmFuc2FjdGlvbklkLgorCSAqIEN1cnJlbnRseSwgb25seSBWQUNVVU0gcGVyZm9ybXMgZnJlZXpp bmcsIGJ1dCBvdGhlciBjYWxsZXJzIG1heSBpbiB0aGUKKwkgKiBmdXR1cmUuIE90aGVyIGNhbGxl cnMgbXVzdCBpbml0aWFsaXplIHByc3RhdGUuc2V0X2FsbF9mcm96ZW4gdG8gZmFsc2UsCisJICog c2luY2Ugd2Ugd2lsbCBub3QgY2FsbCBoZWFwX3ByZXBhcmVfZnJlZXplX3R1cGxlKCkgZm9yIGVh Y2ggdHVwbGUuCisJICoKKwkgKiBXZSBvbmx5IGNvbnNpZGVyIG9wcG9ydHVuaXN0aWMgZnJlZXpp bmcgaWYgdGhlIHBhZ2Ugd291bGQgYmVjb21lCisJICogYWxsLWZyb3plbiwgb3IgaWYgaXQgd291 bGQgYmUgYWxsLWZyb3plbiBleGNlcHQgZm9yIGRlYWQgdHVwbGVzIHRoYXQKKwkgKiBWQUNVVU0g d2lsbCByZW1vdmUuCisJICoKKwkgKiBEZWFkIHR1cGxlcyB0aGF0IHdpbGwgYmUgcmVtb3ZlZCBi eSB0aGUgZW5kIG9mIHZhY3V1bSBzaG91bGQgbm90CisJICogcHJldmVudCBvcHBvcnR1bmlzdGlj IGZyZWV6aW5nLiBUaGVyZWZvcmUsIHdlIGRvIG5vdCBjbGVhcgorCSAqIHNldF9hbGxfdmlzaWJs ZSBhbmQgc2V0X2FsbF9mcm96ZW4gd2hlbiB3ZSBlbmNvdW50ZXIgTFBfREVBRCBpdGVtcy4KKwkg KiBJbnN0ZWFkLCB3ZSBjb3JyZWN0IHRoZW0gYWZ0ZXIgZGVjaWRpbmcgd2hldGhlciB0byBmcmVl emUsIGJ1dCBiZWZvcmUKKwkgKiB1cGRhdGluZyB0aGUgVk0sIHRvIGF2b2lkIHNldHRpbmcgdGhl IFZNIGJpdHMgaW5jb3JyZWN0bHkuCiAJICovCi0JcHJzdGF0ZS0+dmlzaWJpbGl0eV9jdXRvZmZf eGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSBw cnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZSA/IHRydWUgOiBmYWxzZTsKIH0KIAogLyoKQEAgLTcxMSw3 ICs2OTAsNiBAQCBoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoYm9vbCBkaWRfdHVwbGVfaGludF9mcGks CiAJaWYgKCFwcnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCUFzc2VydCghcHJzdGF0ZS0+ c2V0X2FsbF9mcm96ZW4gJiYgcHJzdGF0ZS0+bmZyb3plbiA9PSAwKTsKLQkJQXNzZXJ0KHByc3Rh dGUtPmxwZGVhZF9pdGVtcyA9PSAwIHx8ICFwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUpOwogCQly ZXR1cm4gZmFsc2U7CiAJfQogCkBAIC05NjYsOSArOTQ0LDggQEAgaGVhcF9wYWdlX2J5cGFzc19w cnVuZV9mcmVlemUoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1 bHQpCiAgKiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBwYXNzZWQsIHdlIGFsc28g c2V0CiAgKiBwcmVzdWx0LT5zZXRfYWxsX3Zpc2libGUgYW5kIHByZXN1bHQtPnNldF9hbGxfZnJv emVuIGFmdGVyIGRldGVybWluaW5nCiAgKiB3aGV0aGVyIG9yIG5vdCB0byBvcHBvcnR1bmlzdGlj YWxseSBmcmVlemUsIHRvIGluZGljYXRlIGlmIHRoZSBWTSBiaXRzIGNhbgotICogYmUgc2V0LiAg VGhleSBhcmUgYWx3YXlzIHNldCB0byBmYWxzZSB3aGVuIHRoZSBIRUFQX1BBR0VfUFJVTkVfRlJF RVpFCi0gKiBvcHRpb24gaXMgbm90IHBhc3NlZCwgYmVjYXVzZSBhdCB0aGUgbW9tZW50IG9ubHkg Y2FsbGVycyB0aGF0IGFsc28gZnJlZXplCi0gKiBuZWVkIHRoYXQgaW5mb3JtYXRpb24uCisgKiBi ZSBzZXQuICdhbGwtZnJvemVuJyBpcyBhbHdheXMgc2V0IHRvIGZhbHNlIHdoZW4gdGhlIEhFQVBf UEFHRV9QUlVORV9GUkVFWkUKKyAqIG9wdGlvbiBpcyBub3QgcGFzc2VkLgogICoKICAqIHByZXN1 bHQgY29udGFpbnMgb3V0cHV0IHBhcmFtZXRlcnMgbmVlZGVkIGJ5IGNhbGxlcnMsIHN1Y2ggYXMg dGhlIG51bWJlciBvZgogICogdHVwbGVzIHJlbW92ZWQgYW5kIHRoZSBvZmZzZXRzIG9mIGRlYWQg aXRlbXMgb24gdGhlIHBhZ2UgYWZ0ZXIgcHJ1bmluZy4KQEAgLTEwMzQsOSArMTAxMSw5IEBAIGhl YXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJICog YmUgYWxsLXZpc2libGUuCiAJICovCiAJaWYgKHByc3RhdGUuc2V0X2FsbF92aXNpYmxlICYmCi0J CVRyYW5zYWN0aW9uSWRJc05vcm1hbChwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkgJiYK KwkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKHByc3RhdGUubmV3ZXN0X2xpdmVfeGlkKSAmJgogCQlH bG9iYWxWaXNUZXN0WGlkTWF5YmVSdW5uaW5nKHByc3RhdGUudmlzdGVzdCwKLQkJCQkJCQkJCSBw cnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkpCisJCQkJCQkJCQkgcHJzdGF0ZS5uZXdlc3Rf bGl2ZV94aWQpKQogCQlwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSA9IHByc3RhdGUuc2V0X2FsbF9m cm96ZW4gPSBmYWxzZTsKIAogCS8qCkBAIC0xMTg3LDcgKzExNjQsNyBAQCBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCWlmIChwcmVzdWx0LT5z ZXRfYWxsX2Zyb3plbikKIAkJcHJlc3VsdC0+dm1fY29uZmxpY3RfaG9yaXpvbiA9IEludmFsaWRU cmFuc2FjdGlvbklkOwogCWVsc2UKLQkJcHJlc3VsdC0+dm1fY29uZmxpY3RfaG9yaXpvbiA9IHBy c3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkOworCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jp em9uID0gcHJzdGF0ZS5uZXdlc3RfbGl2ZV94aWQ7CiAKIAlwcmVzdWx0LT5scGRlYWRfaXRlbXMg PSBwcnN0YXRlLmxwZGVhZF9pdGVtczsKIAkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJy YXkgd2FzIGFscmVhZHkgZmlsbGVkIGluICovCkBAIC0xNjQ3LDYgKzE2MjQsNyBAQCBzdGF0aWMg dm9pZAogaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpw cnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogewogCUhlYXBUdXBsZUhlYWRlciBodHVwOwor CVRyYW5zYWN0aW9uSWQgeG1pbjsKIAlQYWdlCQlwYWdlID0gcHJzdGF0ZS0+cGFnZTsKIAogCUFz c2VydCghcHJzdGF0ZS0+cHJvY2Vzc2VkW29mZm51bV0pOwpAQCAtMTY5NCwzMiArMTY3MiwyNyBA QCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3Rh dGUsIE9mZnNldE51bWJlciBvZmZudW0pCiAJCQkgKiBTZWUgU2V0SGludEJpdHMgZm9yIG1vcmUg aW5mby4gIENoZWNrIHRoYXQgdGhlIHR1cGxlIGlzIGhpbnRlZAogCQkJICogeG1pbi1jb21taXR0 ZWQgYmVjYXVzZSBvZiB0aGF0LgogCQkJICovCi0JCQlpZiAocHJzdGF0ZS0+c2V0X2FsbF92aXNp YmxlKQorCQkJaWYgKCFIZWFwVHVwbGVIZWFkZXJYbWluQ29tbWl0dGVkKGh0dXApKQogCQkJewot CQkJCVRyYW5zYWN0aW9uSWQgeG1pbjsKKwkJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBm YWxzZTsKKwkJCQlwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOworCQkJCWJyZWFrOwor CQkJfQogCi0JCQkJaWYgKCFIZWFwVHVwbGVIZWFkZXJYbWluQ29tbWl0dGVkKGh0dXApKQotCQkJ CXsKLQkJCQkJcHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlID0gZmFsc2U7Ci0JCQkJCXByc3RhdGUt PnNldF9hbGxfZnJvemVuID0gZmFsc2U7Ci0JCQkJCWJyZWFrOwotCQkJCX0KKwkJCS8qCisJCQkg KiBUaGUgaW5zZXJ0ZXIgZGVmaW5pdGVseSBjb21taXR0ZWQuIEJ1dCB3ZSBkb24ndCBrbm93IGlm IGl0IGlzCisJCQkgKiBvbGQgZW5vdWdoIHRoYXQgZXZlcnlvbmUgc2VlcyBpdCBhcyBjb21taXR0 ZWQuIExhdGVyLCBhZnRlcgorCQkJICogcHJvY2Vzc2luZyBhbGwgdGhlIHR1cGxlcyBvbiB0aGUg cGFnZSwgd2UnbGwgY2hlY2sgaWYgdGhlcmUgaXMKKwkJCSAqIGFueSBzbmFwc2hvdCB0aGF0IHN0 aWxsIGNvbnNpZGVycyB0aGUgbmV3ZXN0IHhpZCBvbiB0aGUgcGFnZSB0bworCQkJICogYmUgcnVu bmluZy4gSWYgc28sIHdlIGRvbid0IGNvbnNpZGVyIHRoZSBwYWdlIGFsbC12aXNpYmxlLgorCQkJ ICovCisJCQl4bWluID0gSGVhcFR1cGxlSGVhZGVyR2V0WG1pbihodHVwKTsKIAotCQkJCS8qCi0J CQkJICogVGhlIGluc2VydGVyIGRlZmluaXRlbHkgY29tbWl0dGVkLiBCdXQgd2UgZG9uJ3Qga25v dyBpZiBpdAotCQkJCSAqIGlzIG9sZCBlbm91Z2ggdGhhdCBldmVyeW9uZSBzZWVzIGl0IGFzIGNv bW1pdHRlZC4gTGF0ZXIsCi0JCQkJICogYWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdGhlIHR1cGxlcyBv biB0aGUgcGFnZSwgd2UnbGwgY2hlY2sgaWYKLQkJCQkgKiB0aGVyZSBpcyBhbnkgc25hcHNob3Qg dGhhdCBzdGlsbCBjb25zaWRlcnMgdGhlIG5ld2VzdCB4aWQKLQkJCQkgKiBvbiB0aGUgcGFnZSB0 byBiZSBydW5uaW5nLiBJZiBzbywgd2UgZG9uJ3QgY29uc2lkZXIgdGhlCi0JCQkJICogcGFnZSBh bGwtdmlzaWJsZS4KLQkJCQkgKi8KLQkJCQl4bWluID0gSGVhcFR1cGxlSGVhZGVyR2V0WG1pbiho dHVwKTsKKwkJCS8qIFRyYWNrIG5ld2VzdCB4bWluIG9uIHBhZ2UuICovCisJCQlpZiAoVHJhbnNh Y3Rpb25JZEZvbGxvd3MoeG1pbiwgcHJzdGF0ZS0+bmV3ZXN0X2xpdmVfeGlkKSAmJgorCQkJCVRy YW5zYWN0aW9uSWRJc05vcm1hbCh4bWluKSkKKwkJCQlwcnN0YXRlLT5uZXdlc3RfbGl2ZV94aWQg PSB4bWluOwogCi0JCQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KLQkJCQlpZiAo VHJhbnNhY3Rpb25JZEZvbGxvd3MoeG1pbiwgcHJzdGF0ZS0+dmlzaWJpbGl0eV9jdXRvZmZfeGlk KSAmJgotCQkJCQlUcmFuc2FjdGlvbklkSXNOb3JtYWwoeG1pbikpCi0JCQkJCXByc3RhdGUtPnZp c2liaWxpdHlfY3V0b2ZmX3hpZCA9IHhtaW47Ci0JCQl9CiAJCQlicmVhazsKIAogCQljYXNlIEhF QVBUVVBMRV9SRUNFTlRMWV9ERUFEOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmlu ZGV4IGFkODVlMWUxNzM4Li4yMzQwMmU3ZTI2YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYwpAQCAtNDYzLDcgKzQ2Myw3IEBAIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfY2xlYW51 cChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGljIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNp YmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJCQkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAq dmlzdGVzdCwKIAkJCQkJCQkJCSBib29sICphbGxfZnJvemVuLAotCQkJCQkJCQkJIFRyYW5zYWN0 aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICpu ZXdlc3RfbGl2ZV94aWQsCiAJCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7 CiAjZW5kaWYKIHN0YXRpYyBib29sIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxh dGlvbiByZWwsIEJ1ZmZlciBidWYsCkBAIC00NzEsNyArNDcxLDcgQEAgc3RhdGljIGJvb2wgaGVh cF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJ CQkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAogCQkJCQkJCQkJCSAgIGludCBu ZGVhZG9mZnNldHMsCiAJCQkJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKLQkJCQkJCQkJCQkg ICBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJICAgVHJh bnNhY3Rpb25JZCAqbmV3ZXN0X2xpdmVfeGlkLAogCQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAq bG9nZ2luZ19vZmZudW0pOwogc3RhdGljIHZvaWQgdXBkYXRlX3JlbHN0YXRzX2FsbF9pbmRleGVz KExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgdm9pZCB2YWN1dW1fZXJyb3JfY2FsbGJhY2so dm9pZCAqYXJnKTsKQEAgLTI3ODksNyArMjc4OSw3IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShM VlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCVBh Z2UJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAJT2Zmc2V0TnVtYmVyIHVudXNlZFtN YXhIZWFwVHVwbGVzUGVyUGFnZV07CiAJaW50CQkJbnVudXNlZCA9IDA7Ci0JVHJhbnNhY3Rpb25J ZCB2aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisJVHJhbnNhY3Rpb25JZCBuZXdlc3RfbGl2ZV94aWQ7 CiAJVHJhbnNhY3Rpb25JZCBjb25mbGljdF94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAli b29sCQlhbGxfZnJvemVuOwogCUxWU2F2ZWRFcnJJbmZvIHNhdmVkX2Vycl9pbmZvOwpAQCAtMjgx NSwxNCArMjgxNSwxNCBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVs LCBCbG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAlpZiAoaGVhcF9wYWdlX3dvdWxk X2JlX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBidWZmZXIsCiAJCQkJCQkJCQkgICB2YWNyZWwt PnZpc3Rlc3QsCiAJCQkJCQkJCQkgICBkZWFkb2Zmc2V0cywgbnVtX29mZnNldHMsCi0JCQkJCQkJ CQkgICAmYWxsX2Zyb3plbiwgJnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCSAgICZh bGxfZnJvemVuLCAmbmV3ZXN0X2xpdmVfeGlkLAogCQkJCQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVt KSkKIAl7CiAJCXZtZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsKIAkJaWYgKGFs bF9mcm96ZW4pCiAJCXsKIAkJCXZtZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOwot CQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZCh2aXNpYmlsaXR5X2N1dG9mZl94aWQpKTsK KwkJCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQobmV3ZXN0X2xpdmVfeGlkKSk7CiAJCX0K IAogCQkvKgpAQCAtMjg2Myw3ICsyODYzLDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVs U3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJCXZpc2li aWxpdHltYXBfc2V0X3ZtYml0cyhibGtubywKIAkJCQkJCQkJIHZtYnVmZmVyLCB2bWZsYWdzLAog CQkJCQkJCQkgdmFjcmVsLT5yZWwtPnJkX2xvY2F0b3IpOwotCQljb25mbGljdF94aWQgPSB2aXNp YmlsaXR5X2N1dG9mZl94aWQ7CisJCWNvbmZsaWN0X3hpZCA9IG5ld2VzdF9saXZlX3hpZDsKIAl9 CiAKIAkvKgpAQCAtMzU3Niw3ICszNTc2LDcgQEAgc3RhdGljIGJvb2wKIGhlYXBfcGFnZV9pc19h bGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkgR2xvYmFsVmlzU3Rh dGUgKnZpc3Rlc3QsCiAJCQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKLQkJCQkJCSBUcmFuc2FjdGlv bklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkgVHJhbnNhY3Rpb25JZCAqbmV3ZXN0 X2xpdmVfeGlkLAogCQkJCQkJIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pCiB7CiAKQEAg LTM1ODQsNyArMzU4NCw3IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWws IEJ1ZmZlciBidWYsCiAJCQkJCQkJCQkJICB2aXN0ZXN0LAogCQkJCQkJCQkJCSAgTlVMTCwgMCwK IAkJCQkJCQkJCQkgIGFsbF9mcm96ZW4sCi0JCQkJCQkJCQkJICB2aXNpYmlsaXR5X2N1dG9mZl94 aWQsCisJCQkJCQkJCQkJICBuZXdlc3RfbGl2ZV94aWQsCiAJCQkJCQkJCQkJICBsb2dnaW5nX29m Zm51bSk7CiB9CiAjZW5kaWYKQEAgLTM2MDcsNyArMzYwNyw3IEBAIGhlYXBfcGFnZV9pc19hbGxf dmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAgKiBPdXRwdXQgcGFyYW1ldGVyczoK ICAqCiAgKiAgLSAqYWxsX2Zyb3plbjogdHJ1ZSBpZiBldmVyeSB0dXBsZSBvbiB0aGUgcGFnZSBp cyBmcm96ZW4KLSAqICAtICp2aXNpYmlsaXR5X2N1dG9mZl94aWQ6IG5ld2VzdCB4bWluOyB2YWxp ZCBvbmx5IGlmIHBhZ2UgaXMgYWxsLXZpc2libGUKKyAqICAtICpuZXdlc3RfbGl2ZV94aWQ6IG5l d2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlCiAgKiAgLSAqbG9nZ2luZ19vZmZu dW06IE9mZnNldE51bWJlciBvZiBjdXJyZW50IHR1cGxlIGJlaW5nIHByb2Nlc3NlZDsKICAqICAg ICB1c2VkIGJ5IHZhY3V1bSdzIGVycm9yIGNhbGxiYWNrIHN5c3RlbS4KICAqCkBAIC0zNjI1LDcg KzM2MjUsNyBAQCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBC dWZmZXIgYnVmLAogCQkJCQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCiAJCQkJCQkJ ICAgaW50IG5kZWFkb2Zmc2V0cywKIAkJCQkJCQkgICBib29sICphbGxfZnJvemVuLAotCQkJCQkJ CSAgIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkgICBUcmFu c2FjdGlvbklkICpuZXdlc3RfbGl2ZV94aWQsCiAJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpsb2dn aW5nX29mZm51bSkKIHsKIAlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWYpOwpAQCAtMzYz NSw3ICszNjM1LDcgQEAgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJl bCwgQnVmZmVyIGJ1ZiwKIAlib29sCQlhbGxfdmlzaWJsZSA9IHRydWU7CiAJaW50CQkJbWF0Y2hl ZF9kZWFkX2NvdW50ID0gMDsKIAotCSp2aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZhbGlkVHJh bnNhY3Rpb25JZDsKKwkqbmV3ZXN0X2xpdmVfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJ KmFsbF9mcm96ZW4gPSB0cnVlOwogCiAJQXNzZXJ0KG5kZWFkb2Zmc2V0cyA9PSAwIHx8IGRlYWRv ZmZzZXRzKTsKQEAgLTM3MjQsOSArMzcyNCw5IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlz aWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCQkJCXhtaW4gPSBIZWFwVHVwbGVIZWFk ZXJHZXRYbWluKHR1cGxlLnRfZGF0YSk7CiAKIAkJCQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24g cGFnZS4gKi8KLQkJCQkJaWYgKFRyYW5zYWN0aW9uSWRGb2xsb3dzKHhtaW4sICp2aXNpYmlsaXR5 X2N1dG9mZl94aWQpICYmCisJCQkJCWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCAqbmV3 ZXN0X2xpdmVfeGlkKSAmJgogCQkJCQkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhtaW4pKQotCQkJ CQkJKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCA9IHhtaW47CisJCQkJCQkqbmV3ZXN0X2xpdmVfeGlk ID0geG1pbjsKIAogCQkJCQkvKiBDaGVjayB3aGV0aGVyIHRoaXMgdHVwbGUgaXMgYWxyZWFkeSBm cm96ZW4gb3Igbm90ICovCiAJCQkJCWlmIChhbGxfdmlzaWJsZSAmJiAqYWxsX2Zyb3plbiAmJgpA QCAtMzc1Niw4ICszNzU2LDggQEAgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0 aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkgKiBjYW5ub3QgYmUgYWxsLXZpc2libGUuCiAJICovCiAJ aWYgKGFsbF92aXNpYmxlICYmCi0JCVRyYW5zYWN0aW9uSWRJc05vcm1hbCgqdmlzaWJpbGl0eV9j dXRvZmZfeGlkKSAmJgotCQlHbG9iYWxWaXNUZXN0WGlkTWF5YmVSdW5uaW5nKHZpc3Rlc3QsICp2 aXNpYmlsaXR5X2N1dG9mZl94aWQpKQorCQlUcmFuc2FjdGlvbklkSXNOb3JtYWwoKm5ld2VzdF9s aXZlX3hpZCkgJiYKKwkJR2xvYmFsVmlzVGVzdFhpZE1heWJlUnVubmluZyh2aXN0ZXN0LCAqbmV3 ZXN0X2xpdmVfeGlkKSkKIAl7CiAJCWFsbF92aXNpYmxlID0gZmFsc2U7CiAJCSphbGxfZnJvemVu ID0gZmFsc2U7Ci0tIAoyLjQzLjAKCg== --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0006-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Disposition: attachment; filename="v37-0006-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmabktg5 RnJvbSBiOGU3YmNmM2FkMTEzMmI1OGM3ZjA0NTQ2NWVkNjFkYTNhMDI3NDc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIgRGVjIDIwMjUgMTU6MDc6NDIgLTA1MDAKU3ViamVjdDogW1BB VENIIHYzNyAwNi8xNV0gRWxpbWluYXRlIFhMT0dfSEVBUDJfVklTSUJMRSBmcm9tIHZhY3V1bSBw aGFzZSBJCiBwcnVuZS9mcmVlemUKClZhY3V1bSBubyBsb25nZXIgZW1pdHMgYSBzZXBhcmF0ZSBX QUwgcmVjb3JkIGZvciBlYWNoIHBhZ2Ugc2V0CmFsbC12aXNpYmxlIG9yIGFsbC1mcm96ZW4gZHVy aW5nIHBoYXNlIEkuIEluc3RlYWQsIHZpc2liaWxpdHkgbWFwCnVwZGF0ZXMgYXJlIG5vdyBpbmNs dWRlZCBpbiB0aGUgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTiByZWNvcmQgdGhhdAppcyBh bHJlYWR5IGVtaXR0ZWQgZm9yIHBydW5pbmcgYW5kIGZyZWV6aW5nLgoKUHJldmlvdXNseSwgaGVh cF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSBkZXRlcm1pbmVkIHdoZXRoZXIgYSBwYWdlIHdhcwph bGwtdmlzaWJsZSwgYnV0IHRoZSBjb3JyZXNwb25kaW5nIFZNIGJpdHMgd2VyZSBvbmx5IHNldCBs YXRlciBpbgpsYXp5X3NjYW5fcHJ1bmUoKS4gTm93IHRoZSBWTSBpcyB1cGRhdGVkIGltbWVkaWF0 ZWx5IGluCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCksIGF0IHRoZSBzYW1lIHRpbWUgYXMg dGhlIGhlYXAKbW9kaWZpY2F0aW9ucy4KClRoaXMgY2hhbmdlIGFwcGxpZXMgb25seSB0byB2YWN1 dW0gcGhhc2UgSSwgbm90IHRvIHBydW5pbmcgcGVyZm9ybWVkCmR1cmluZyBub3JtYWwgcGFnZSBh Y2Nlc3MuCgpBdXRob3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmll d2VkLWJ5OiBSb2JlcnQgSGFhcyA8cm9iZXJ0bWhhYXNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTog S2lyaWxsIFJlc2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8g TGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vZmxhdC9DQUFLUnVfWk13Nk5wZF9xbTJLTSUyQkZ3UTNjTU9NeDFEaDNWTWhwOC1WN1NPTHhk SzktZyU0MG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMgIHwgMjYzICsrKysrKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwgMTA3ICstLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtLmggICAgICAgICAgfCAgMzggKystLQogMyBmaWxlcyBjaGFuZ2VkLCAyMDggaW5z ZXJ0aW9ucygrKSwgMjAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFw LmMKaW5kZXggZDlhMDZmMzExNWMuLjQ3OTg5MmIwODA4IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYwpAQCAtNzIsNiArNzIsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlPZmZzZXROdW1i ZXIgbm93dW51c2VkW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAlIZWFwVHVwbGVGcmVlemUgZnJv emVuW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAorCS8qCisJICogc2V0X2FsbF92aXNpYmxlIGFu ZCBzZXRfYWxsX2Zyb3plbiBpbmRpY2F0ZSBpZiB0aGUgYWxsLXZpc2libGUgYW5kCisJICogYWxs LWZyb3plbiBiaXRzIGluIHRoZSB2aXNpYmlsaXR5IG1hcCBjYW4gYmUgc2V0IGZvciB0aGlzIHBh Z2UgYWZ0ZXIKKwkgKiBwcnVuaW5nLgorCSAqCisJICogTk9URTogc2V0X2FsbF92aXNpYmxlIGFu ZCBzZXRfYWxsX2Zyb3plbiBpbml0aWFsbHkgZG9uJ3QgaW5jbHVkZQorCSAqIExQX0RFQUQgaXRl bXMuIFRoYXQncyBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIHRv CisJICogdXNlIHRoZW0gdG8gZGVjaWRlIHdoZXRoZXIgdG8gb3Bwb3J0dW5pc3RpY2FsbHkgZnJl ZXplIHRoZSBwYWdlIG9yIG5vdC4KKwkgKiBUaGUgc2V0X2FsbF92aXNpYmxlIGFuZCBzZXRfYWxs X2Zyb3plbiB2YWx1ZXMgdWx0aW1hdGVseSB1c2VkIHRvIHNldAorCSAqIHRoZSBWTSBhcmUgYWRq dXN0ZWQgdG8gaW5jbHVkZSBMUF9ERUFEIGl0ZW1zIGFmdGVyIHdlIGRldGVybWluZSB3aGV0aGVy CisJICogb3Igbm90IHRvIG9wcG9ydHVuaXN0aWNhbGx5IGZyZWV6ZS4KKwkgKi8KKwlib29sCQlz ZXRfYWxsX3Zpc2libGU7CisJYm9vbAkJc2V0X2FsbF9mcm96ZW47CisKIAkvKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkgKiBXb3JraW5n IHN0YXRlIGZvciBIT1QgY2hhaW4gcHJvY2Vzc2luZwogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTIyLDEyICsxMzcsMTYgQEAg dHlwZWRlZiBzdHJ1Y3QKIAkvKgogCSAqIENhbGxlciBtdXN0IHByb3ZpZGUgYSBwaW5uZWQgdm1i dWZmZXIgY29ycmVzcG9uZGluZyB0byB0aGUgaGVhcCBibG9jawogCSAqIHBhc3NlZCB0byBoZWFw X3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLiBXZSB3aWxsIGZpeCBhbnkgY29ycnVwdGlvbgotCSAq IGZvdW5kIGluIHRoZSBWTS4KKwkgKiBmb3VuZCBpbiB0aGUgVk0gYW5kIHNldCB0aGUgVk0gaWYg dGhlIHBhZ2UgaXMgYWxsLXZpc2libGUvYWxsLWZyb3plbi4KIAkgKi8KIAlCdWZmZXIJCXZtYnVm ZmVyOwogCi0JLyogQml0cyBpbiB0aGUgdm1idWZmZXIgZm9yIHRoaXMgaGVhcCBwYWdlICovCi0J dWludDgJCXZtYml0czsKKwkvKgorCSAqIFRoZSBzdGF0ZSBvZiB0aGUgVk0gYml0cyBhdCB0aGUg YmVnaW5uaW5nIG9mIHBydW5pbmcgYW5kIHRoZSBzdGF0ZSB0aGV5CisJICogd2lsbCBiZSBpbiBh dCB0aGUgZW5kLgorCSAqLworCXVpbnQ4CQlvbGRfdm1iaXRzOworCXVpbnQ4CQluZXdfdm1iaXRz OwogCiAJLyogVGhlIG5ld2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlICovCiAJ VHJhbnNhY3Rpb25JZCBuZXdlc3RfbGl2ZV94aWQ7CkBAIC0xNTcsMjEgKzE3Niw2IEBAIHR5cGVk ZWYgc3RydWN0CiAJICovCiAJaW50CQkJbHBkZWFkX2l0ZW1zOwkvKiBudW1iZXIgb2YgaXRlbXMg aW4gdGhlIGFycmF5ICovCiAJT2Zmc2V0TnVtYmVyICpkZWFkb2Zmc2V0czsJLyogcG9pbnRzIGRp cmVjdGx5IHRvIHByZXN1bHQtPmRlYWRvZmZzZXRzICovCi0KLQkvKgotCSAqIHNldF9hbGxfdmlz aWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gaW5kaWNhdGUgaWYgdGhlIGFsbC12aXNpYmxlIGFuZAot CSAqIGFsbC1mcm96ZW4gYml0cyBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgY2FuIGJlIHNldCBmb3Ig dGhpcyBwYWdlIGFmdGVyCi0JICogcHJ1bmluZy4KLQkgKgotCSAqIE5PVEU6IHNldF9hbGxfdmlz aWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gaW5pdGlhbGx5IGRvbid0IGluY2x1ZGUKLQkgKiBMUF9E RUFEIGl0ZW1zLiBUaGF0J3MgY29udmVuaWVudCBmb3IgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoKSB0bwotCSAqIHVzZSB0aGVtIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGZyZWV6ZSB0aGUgcGFn ZSBvciBub3QuICBUaGUKLQkgKiBzZXRfYWxsX3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIHZh bHVlcyByZXR1cm5lZCB0byB0aGUgY2FsbGVyIGFyZQotCSAqIGFkanVzdGVkIHRvIGluY2x1ZGUg TFBfREVBRCBpdGVtcyBhZnRlciB3ZSBkZXRlcm1pbmUgd2hldGhlciB0bwotCSAqIG9wcG9ydHVu aXN0aWNhbGx5IGZyZWV6ZS4KLQkgKi8KLQlib29sCQlzZXRfYWxsX3Zpc2libGU7Ci0JYm9vbAkJ c2V0X2FsbF9mcm96ZW47CiB9IFBydW5lU3RhdGU7CiAKIC8qIExvY2FsIGZ1bmN0aW9ucyAqLwpA QCAtMjA5LDcgKzIxMyw3IEBAIHN0YXRpYyB2b2lkIHBhZ2VfdmVyaWZ5X3JlZGlyZWN0cyhQYWdl IHBhZ2UpOwogCiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoYm9vbCBkaWRfdHVw bGVfaGludF9mcGksIGJvb2wgZG9fcHJ1bmUsIGJvb2wgZG9faGludF9wcnVuZSwKIAkJCQkJCQkJ ICBQcnVuZVN0YXRlICpwcnN0YXRlKTsKLQorc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfc2V0 X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29uIHJlYXNvbik7CiAKIC8qCiAgKiBP cHRpb25hbGx5IHBydW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBpbiB0aGUgc3BlY2lmaWVk IHBhZ2UuCkBAIC0zNzUsOSArMzc5LDEwIEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6 ZVBhcmFtcyAqcGFyYW1zLAogCiAJQXNzZXJ0KEJ1ZmZlcklzVmFsaWQocGFyYW1zLT52bWJ1ZmZl cikpOwogCXByc3RhdGUtPnZtYnVmZmVyID0gcGFyYW1zLT52bWJ1ZmZlcjsKLQlwcnN0YXRlLT52 bWJpdHMgPSB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocHJzdGF0ZS0+cmVsYXRpb24sCi0JCQkJ CQkJCQkJCSAgIHByc3RhdGUtPmJsb2NrLAotCQkJCQkJCQkJCQkgICAmcHJzdGF0ZS0+dm1idWZm ZXIpOworCXByc3RhdGUtPm5ld192bWJpdHMgPSAwOworCXByc3RhdGUtPm9sZF92bWJpdHMgPSB2 aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocHJzdGF0ZS0+cmVsYXRpb24sCisJCQkJCQkJCQkJCQkg ICBwcnN0YXRlLT5ibG9jaywKKwkJCQkJCQkJCQkJCSAgICZwcnN0YXRlLT52bWJ1ZmZlcik7CiAK IAkvKgogCSAqIE91ciBzdHJhdGVneSBpcyB0byBzY2FuIHRoZSBwYWdlIGFuZCBtYWtlIGxpc3Rz IG9mIGl0ZW1zIHRvIGNoYW5nZSwKQEAgLTg0MCw3ICs4NDUsNyBAQCBoZWFwX2ZpeF92bV9jb3Jy dXB0aW9uKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZudW0pCiAJCVBhZ2VD bGVhckFsbFZpc2libGUocHJzdGF0ZS0+cGFnZSk7CiAJCU1hcmtCdWZmZXJEaXJ0eUhpbnQocHJz dGF0ZS0+YnVmZmVyLCB0cnVlKTsKIAl9Ci0JZWxzZSBpZiAocHJzdGF0ZS0+dm1iaXRzICYgVklT SUJJTElUWU1BUF9WQUxJRF9CSVRTKQorCWVsc2UgaWYgKHByc3RhdGUtPm9sZF92bWJpdHMgJiBW SVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpCiAJewogCQkvKgogCQkgKiBBcyBvZiBQb3N0Z3JlU1FM IDkuMiwgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0IGlmCkBAIC04 NTgsNyArODYzLDQzIEBAIGhlYXBfZml4X3ZtX2NvcnJ1cHRpb24oUHJ1bmVTdGF0ZSAqcHJzdGF0 ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSkKIAogCXZpc2liaWxpdHltYXBfY2xlYXIocHJzdGF0ZS0+ cmVsYXRpb24sIHByc3RhdGUtPmJsb2NrLCBwcnN0YXRlLT52bWJ1ZmZlciwKIAkJCQkJCVZJU0lC SUxJVFlNQVBfVkFMSURfQklUUyk7Ci0JcHJzdGF0ZS0+dm1iaXRzID0gMDsKKwlwcnN0YXRlLT5v bGRfdm1iaXRzID0gMDsKK30KKworLyoKKyAqIERlY2lkZSB3aGV0aGVyIHRvIHNldCB0aGUgdmlz aWJpbGl0eSBtYXAgYml0cyAoYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4pCisgKiBmb3IgaGVh cF9ibGsgdXNpbmcgaW5mb3JtYXRpb24gZnJvbSB0aGUgUHJ1bmVTdGF0ZSBhbmQgVk0uCisgKgor ICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBzZXQgdGhlIFZNIGJpdHMgb3IgcGFn ZS1sZXZlbCB2aXNpYmlsaXR5CisgKiBoaW50LCBQRF9BTExfVklTSUJMRS4KKyAqCisgKiBSZXR1 cm5zIHRydWUgaWYgb25lIG9yIGJvdGggVk0gYml0cyBzaG91bGQgYmUgc2V0IGFuZCBmYWxzZSBv dGhlcndpc2UuCisgKi8KK3N0YXRpYyBib29sCitoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVT dGF0ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFzb24gcmVhc29uKQoreworCS8qCisJICogVGhvdWdoIG9u LWFjY2VzcyBwcnVuaW5nIG1haW50YWlucyBwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUsIHdlIGRv bid0CisJICogY29uc2lkZXIgc2V0dGluZyB0aGUgVk0uCisJICovCisJaWYgKHJlYXNvbiA9PSBQ UlVORV9PTl9BQ0NFU1MpCisJCXJldHVybiBmYWxzZTsKKworCWlmICghcHJzdGF0ZS0+c2V0X2Fs bF92aXNpYmxlKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwcnN0YXRlLT5uZXdfdm1iaXRzID0gVklT SUJJTElUWU1BUF9BTExfVklTSUJMRTsKKworCWlmIChwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbikK KwkJcHJzdGF0ZS0+bmV3X3ZtYml0cyB8PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU47CisKKwlp ZiAocHJzdGF0ZS0+bmV3X3ZtYml0cyA9PSBwcnN0YXRlLT5vbGRfdm1iaXRzKQorCXsKKwkJcHJz dGF0ZS0+bmV3X3ZtYml0cyA9IDA7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1 ZTsKIH0KIAogLyoKQEAgLTg4NywxNSArOTI4LDEzIEBAIGhlYXBfcGFnZV9ieXBhc3NfcHJ1bmVf ZnJlZXplKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0KQog CU9mZnNldE51bWJlciBtYXhvZmYgPSBQYWdlR2V0TWF4T2Zmc2V0TnVtYmVyKHByc3RhdGUtPnBh Z2UpOwogCVBhZ2UJCXBhZ2UgPSBwcnN0YXRlLT5wYWdlOwogCi0JQXNzZXJ0KHByc3RhdGUtPnZt Yml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiB8fAotCQkgICAocHJzdGF0ZS0+dm1iaXRz ICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSAmJgorCUFzc2VydChwcnN0YXRlLT5vbGRfdm1i aXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOIHx8CisJCSAgIChwcnN0YXRlLT5vbGRfdm1i aXRzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSAmJgogCQkJIXByc3RhdGUtPmF0dGVtcHRf ZnJlZXplKSk7CiAKIAkvKiBXZSdsbCBmaWxsIGluIHByZXN1bHQgZm9yIHRoZSBjYWxsZXIgKi8K IAltZW1zZXQocHJlc3VsdCwgMCwgc2l6ZW9mKFBydW5lRnJlZXplUmVzdWx0KSk7CiAKLQlwcmVz dWx0LT52bWJpdHMgPSBwcnN0YXRlLT52bWJpdHM7Ci0KIAkvKiBDbGVhciBhbnkgc3RhbGUgcHJ1 bmUgaGludCAqLwogCWlmIChUcmFuc2FjdGlvbklkSXNWYWxpZChQYWdlR2V0UHJ1bmVYaWQocGFn ZSkpKQogCXsKQEAgLTkyNSw3ICs5NjQsOCBAQCBoZWFwX3BhZ2VfYnlwYXNzX3BydW5lX2ZyZWV6 ZShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCkKIAogLyoK ICAqIFBydW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXpl IHR1cGxlcyBvbiB0aGUKLSAqIHNwZWNpZmllZCBwYWdlLgorICogc3BlY2lmaWVkIHBhZ2UuIElm IHRoZSBwYWdlJ3MgdmlzaWJpbGl0eSBzdGF0dXMgaGFzIGNoYW5nZWQsIHVwZGF0ZSBpdCBpbgor ICogdGhlIFZNLgogICoKICAqIENhbGxlciBtdXN0IGhhdmUgcGluIGFuZCBidWZmZXIgY2xlYW51 cCBsb2NrIG9uIHRoZSBwYWdlLiAgTm90ZSB0aGF0IHdlCiAgKiBkb24ndCB1cGRhdGUgdGhlIEZT TSBpbmZvcm1hdGlvbiBmb3IgcGFnZSBvbiBjYWxsZXIncyBiZWhhbGYuICBDYWxsZXIgbWlnaHQK QEAgLTk0MCwxMiArOTgwLDEwIEBAIGhlYXBfcGFnZV9ieXBhc3NfcHJ1bmVfZnJlZXplKFBydW5l U3RhdGUgKnByc3RhdGUsIFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0KQogICogdHVwbGVzIGlm IGl0J3MgcmVxdWlyZWQgaW4gb3JkZXIgdG8gYWR2YW5jZSByZWxmcm96ZW54aWQgLyByZWxtaW5t eGlkLCBvcgogICogaWYgaXQncyBjb25zaWRlcmVkIGFkdmFudGFnZW91cyBmb3Igb3ZlcmFsbCBz eXN0ZW0gcGVyZm9ybWFuY2UgdG8gZG8gc28KICAqIG5vdy4gIFRoZSAncGFyYW1zLmN1dG9mZnMn LCAncHJlc3VsdCcsICduZXdfcmVsZnJvemVuX3hpZCcgYW5kCi0gKiAnbmV3X3JlbG1pbl9teGlk JyBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIHdoZW4gZnJlZXppbmcuICBXaGVuCi0gKiBIRUFQX1BB R0VfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBwYXNzZWQsIHdlIGFsc28gc2V0Ci0gKiBwcmVzdWx0 LT5zZXRfYWxsX3Zpc2libGUgYW5kIHByZXN1bHQtPnNldF9hbGxfZnJvemVuIGFmdGVyIGRldGVy bWluaW5nCi0gKiB3aGV0aGVyIG9yIG5vdCB0byBvcHBvcnR1bmlzdGljYWxseSBmcmVlemUsIHRv IGluZGljYXRlIGlmIHRoZSBWTSBiaXRzIGNhbgotICogYmUgc2V0LiAnYWxsLWZyb3plbicgaXMg YWx3YXlzIHNldCB0byBmYWxzZSB3aGVuIHRoZSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFCi0gKiBv cHRpb24gaXMgbm90IHBhc3NlZC4KKyAqICduZXdfcmVsbWluX214aWQnIGFyZ3VtZW50cyBhcmUg cmVxdWlyZWQgd2hlbiBmcmVlemluZy4KKyAqCisgKiBBIHZtYnVmZmVyIGNvcnJlc3BvbmRpbmcg dG8gdGhlIGhlYXAgcGFnZSBpcyBhbHNvIGlzIHBhc3NlZCBhbmQgaWYgdGhlIHBhZ2UKKyAqIGlz IGZvdW5kIHRvIGJlIGFsbC12aXNpYmxlL2FsbC1mcm96ZW4sIHdlIHdpbGwgc2V0IGl0IGluIHRo ZSBWTS4KICAqCiAgKiBwcmVzdWx0IGNvbnRhaW5zIG91dHB1dCBwYXJhbWV0ZXJzIG5lZWRlZCBi eSBjYWxsZXJzLCBzdWNoIGFzIHRoZSBudW1iZXIgb2YKICAqIHR1cGxlcyByZW1vdmVkIGFuZCB0 aGUgb2Zmc2V0cyBvZiBkZWFkIGl0ZW1zIG9uIHRoZSBwYWdlIGFmdGVyIHBydW5pbmcuCkBAIC05 NzMsMTUgKzEwMTEsMTcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQ YXJhbXMgKnBhcmFtcywKIAlib29sCQlkb19mcmVlemU7CiAJYm9vbAkJZG9fcHJ1bmU7CiAJYm9v bAkJZG9faGludF9wcnVuZTsKKwlib29sCQlkb19zZXRfdm07CiAJYm9vbAkJZGlkX3R1cGxlX2hp bnRfZnBpOwogCWludDY0CQlmcGlfYmVmb3JlID0gcGdXYWxVc2FnZS53YWxfZnBpOworCVRyYW5z YWN0aW9uSWQgY29uZmxpY3RfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKIAkvKiBJbml0 aWFsaXplIHByc3RhdGUgKi8KIAlwcnVuZV9mcmVlemVfc2V0dXAocGFyYW1zLAogCQkJCQkgICBu ZXdfcmVsZnJvemVuX3hpZCwgbmV3X3JlbG1pbl9teGlkLAogCQkJCQkgICBwcmVzdWx0LCAmcHJz dGF0ZSk7CiAKLQlpZiAoKHByc3RhdGUudm1iaXRzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRT KSAmJgorCWlmICgocHJzdGF0ZS5vbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRT KSAmJgogCQkhUGFnZUlzQWxsVmlzaWJsZShwcnN0YXRlLnBhZ2UpKQogCQloZWFwX2ZpeF92bV9j b3JydXB0aW9uKCZwcnN0YXRlLCBJbnZhbGlkT2Zmc2V0TnVtYmVyKTsKIApAQCAtOTkwLDggKzEw MzAsOCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFy YW1zLAogCSAqIGlzIG5vdCBiZWluZyBhdHRlbXB0ZWQsIHdlIGNhbiBleGl0IGVhcmx5LiBEbyB0 aGlzIGFmdGVyIGZpeGluZyBhbnkKIAkgKiBkaXNjcmVwYW5jeSBiZXR3ZWVuIHRoZSBwYWdlLWxl dmVsIHZpc2liaWxpdHkgaGludCBhbmQgdGhlIFZNLgogCSAqLwotCWlmIChwcnN0YXRlLnZtYml0 cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiB8fAotCQkocHJzdGF0ZS52bWJpdHMgJiBWSVNJ QklMSVRZTUFQX0FMTF9WSVNJQkxFICYmICFwcnN0YXRlLmF0dGVtcHRfZnJlZXplKSkKKwlpZiAo cHJzdGF0ZS5vbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOIHx8CisJCShwcnN0 YXRlLm9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFICYmICFwcnN0YXRlLmF0 dGVtcHRfZnJlZXplKSkKIAl7CiAJCWhlYXBfcGFnZV9ieXBhc3NfcHJ1bmVfZnJlZXplKCZwcnN0 YXRlLCBwcmVzdWx0KTsKIAkJcmV0dXJuOwpAQCAtMTA2MSw2ICsxMTAxLDMwIEBAIGhlYXBfcGFn ZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCXByc3RhdGUu c2V0X2FsbF92aXNpYmxlID0gcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJQXNz ZXJ0KCFwcnN0YXRlLnNldF9hbGxfZnJvemVuIHx8IHByc3RhdGUuc2V0X2FsbF92aXNpYmxlKTsK KwlBc3NlcnQoIXByc3RhdGUuc2V0X2FsbF92aXNpYmxlIHx8IChwcnN0YXRlLmxwZGVhZF9pdGVt cyA9PSAwKSk7CisKKwlkb19zZXRfdm0gPSBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oJnByc3RhdGUs IHBhcmFtcy0+cmVhc29uKTsKKworCS8qCisJICogbmV3X3ZtYml0cyBzaG91bGQgYmUgMCByZWdh cmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIGlzCisJICogYWxsLXZpc2libGUgaWYg d2UgZG8gbm90IGludGVuZCB0byBzZXQgdGhlIFZNLgorCSAqLworCUFzc2VydChkb19zZXRfdm0g fHwgcHJzdGF0ZS5uZXdfdm1iaXRzID09IDApOworCisJLyoKKwkgKiBUaGUgc25hcHNob3QgY29u ZmxpY3QgaG9yaXpvbiBmb3IgdGhlIHdob2xlIHJlY29yZCBpcyB0aGUgbW9zdAorCSAqIGNvbnNl cnZhdGl2ZSAobmV3ZXN0KSBob3Jpem9uIHJlcXVpcmVkIGJ5IGFueSBjaGFuZ2UgaW4gdGhlIHJl Y29yZC4KKwkgKi8KKwlpZiAoZG9fc2V0X3ZtKQorCQljb25mbGljdF94aWQgPSBwcnN0YXRlLm5l d2VzdF9saXZlX3hpZDsKKwlpZiAoZG9fZnJlZXplICYmIFRyYW5zYWN0aW9uSWRGb2xsb3dzKHBy c3RhdGUucGFnZWZyei5GcmVlemVQYWdlQ29uZmxpY3RYaWQsIGNvbmZsaWN0X3hpZCkpCisJCWNv bmZsaWN0X3hpZCA9IHByc3RhdGUucGFnZWZyei5GcmVlemVQYWdlQ29uZmxpY3RYaWQ7CisJaWYg KGRvX3BydW5lICYmIFRyYW5zYWN0aW9uSWRGb2xsb3dzKHByc3RhdGUubGF0ZXN0X3hpZF9yZW1v dmVkLCBjb25mbGljdF94aWQpKQorCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmxhdGVzdF94aWRf cmVtb3ZlZDsKKworCS8qIExvY2sgdm1idWZmZXIgYmVmb3JlIGVudGVyaW5nIGEgY3JpdGljYWwg c2VjdGlvbiAqLworCWlmIChkb19zZXRfdm0pCisJCUxvY2tCdWZmZXIocHJzdGF0ZS52bWJ1ZmZl ciwgQlVGRkVSX0xPQ0tfRVhDTFVTSVZFKTsKIAogCS8qIEFueSBlcnJvciB3aGlsZSBhcHBseWlu ZyB0aGUgY2hhbmdlcyBpcyBjcml0aWNhbCAqLwogCVNUQVJUX0NSSVRfU0VDVElPTigpOwpAQCAt MTA4MiwxNCArMTE0NiwxNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6 ZVBhcmFtcyAqcGFyYW1zLAogCiAJCS8qCiAJCSAqIElmIHRoYXQncyBhbGwgd2UgaGFkIHRvIGRv IHRvIHRoZSBwYWdlLCB0aGlzIGlzIGEgbm9uLVdBTC1sb2dnZWQKLQkJICogaGludC4gIElmIHdl IGFyZSBnb2luZyB0byBmcmVlemUgb3IgcHJ1bmUgdGhlIHBhZ2UsIHdlIHdpbGwgbWFyawotCQkg KiB0aGUgYnVmZmVyIGRpcnR5IGJlbG93LgorCQkgKiBoaW50LiAgSWYgd2UgYXJlIGdvaW5nIHRv IGZyZWV6ZSBvciBwcnVuZSB0aGUgcGFnZSBvciBzZXQKKwkJICogUERfQUxMX1ZJU0lCTEUsIHdl IHdpbGwgbWFyayB0aGUgYnVmZmVyIGRpcnR5IGJlbG93LgorCQkgKgorCQkgKiBTZXR0aW5nIFBE X0FMTF9WSVNJQkxFIGlzIGZ1bGx5IFdBTC1sb2dnZWQgYmVjYXVzZSBpdCBpcyBmb3JiaWRkZW4K KwkJICogZm9yIHRoZSBWTSB0byBiZSBzZXQgYW5kIFBEX0FMTF9WSVNJQkxFIHRvIGJlIGNsZWFy LgogCQkgKi8KLQkJaWYgKCFkb19mcmVlemUgJiYgIWRvX3BydW5lKQorCQlpZiAoIWRvX2ZyZWV6 ZSAmJiAhZG9fcHJ1bmUgJiYgIWRvX3NldF92bSkKIAkJCU1hcmtCdWZmZXJEaXJ0eUhpbnQocHJz dGF0ZS5idWZmZXIsIHRydWUpOwogCX0KIAotCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUpCisJ aWYgKGRvX3BydW5lIHx8IGRvX2ZyZWV6ZSB8fCBkb19zZXRfdm0pCiAJewogCQkvKiBBcHBseSB0 aGUgcGxhbm5lZCBpdGVtIGNoYW5nZXMgYW5kIHJlcGFpciBwYWdlIGZyYWdtZW50YXRpb24uICov CiAJCWlmIChkb19wcnVuZSkKQEAgLTExMDMsNiArMTE3MCwyNyBAQCBoZWFwX3BhZ2VfcHJ1bmVf YW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQlpZiAoZG9fZnJlZXplKQog CQkJaGVhcF9mcmVlemVfcHJlcGFyZWRfdHVwbGVzKHByc3RhdGUuYnVmZmVyLCBwcnN0YXRlLmZy b3plbiwgcHJzdGF0ZS5uZnJvemVuKTsKIAorCQkvKiBTZXQgdGhlIHZpc2liaWxpdHkgbWFwIGFu ZCBwYWdlIHZpc2liaWxpdHkgaGludCAqLworCQlpZiAoZG9fc2V0X3ZtKQorCQl7CisJCQkvKgor CQkJICogV2hpbGUgaXQgaXMgdmFsaWQgZm9yIFBEX0FMTF9WSVNJQkxFIHRvIGJlIHNldCB3aGVu IHRoZQorCQkJICogY29ycmVzcG9uZGluZyBWTSBiaXQgaXMgY2xlYXIsIHdlIHN0cm9uZ2x5IHBy ZWZlciB0byBrZWVwIHRoZW0KKwkJCSAqIGluIHN5bmMuCisJCQkgKgorCQkJICogVGhlIGhlYXAg YnVmZmVyIG11c3QgYmUgbWFya2VkIGRpcnR5IGJlZm9yZSBhZGRpbmcgaXQgdG8gdGhlCisJCQkg KiBXQUwgY2hhaW4gd2hlbiBzZXR0aW5nIHRoZSBWTS4gV2UgZG9uJ3Qgd29ycnkgYWJvdXQKKwkJ CSAqIHVubmVjZXNzYXJpbHkgZGlydHlpbmcgdGhlIGhlYXAgYnVmZmVyIGlmIFBEX0FMTF9WSVNJ QkxFIGlzCisJCQkgKiBhbHJlYWR5IHNldCwgdGhvdWdoLiBJdCBpcyBleHRyZW1lbHkgcmFyZSB0 byBoYXZlIGEgY2xlYW4gaGVhcAorCQkJICogYnVmZmVyIHdpdGggUERfQUxMX1ZJU0lCTEUgYWxy ZWFkeSBzZXQgYW5kIHRoZSBWTSBiaXRzIGNsZWFyLAorCQkJICogc28gdGhlcmUgaXMgbm8gcG9p bnQgaW4gb3B0aW1pemluZyBpdC4KKwkJCSAqLworCQkJUGFnZVNldEFsbFZpc2libGUocHJzdGF0 ZS5wYWdlKTsKKwkJCVBhZ2VDbGVhclBydW5hYmxlKHByc3RhdGUucGFnZSk7CisJCQl2aXNpYmls aXR5bWFwX3NldF92bWJpdHMocHJzdGF0ZS5ibG9jaywgcHJzdGF0ZS52bWJ1ZmZlciwgcHJzdGF0 ZS5uZXdfdm1iaXRzLAorCQkJCQkJCQkJIHByc3RhdGUucmVsYXRpb24tPnJkX2xvY2F0b3IpOwor CQl9CisKIAkJTWFya0J1ZmZlckRpcnR5KHByc3RhdGUuYnVmZmVyKTsKIAogCQkvKgpAQCAtMTEx MCwyOSArMTE5OCwxMiBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBh cmFtcyAqcGFyYW1zLAogCQkgKi8KIAkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocHJzdGF0ZS5yZWxh dGlvbikpCiAJCXsKLQkJCS8qCi0JCQkgKiBUaGUgc25hcHNob3RDb25mbGljdEhvcml6b24gZm9y IHRoZSB3aG9sZSByZWNvcmQgc2hvdWxkIGJlIHRoZQotCQkJICogbW9zdCBjb25zZXJ2YXRpdmUg b2YgYWxsIHRoZSBob3Jpem9ucyBjYWxjdWxhdGVkIGZvciBhbnkgb2YgdGhlCi0JCQkgKiBwb3Nz aWJsZSBtb2RpZmljYXRpb25zLiBJZiB0aGlzIHJlY29yZCB3aWxsIHBydW5lIHR1cGxlcywgYW55 Ci0JCQkgKiBxdWVyaWVzIG9uIHRoZSBzdGFuZGJ5IG9sZGVyIHRoYW4gdGhlIG5ld2VzdCB4aWQg b2YgdGhlIG1vc3QKLQkJCSAqIHJlY2VudGx5IHJlbW92ZWQgdHVwbGUgdGhpcyByZWNvcmQgd2ls bCBwcnVuZSB3aWxsIGNvbmZsaWN0LiBJZgotCQkJICogdGhpcyByZWNvcmQgd2lsbCBmcmVlemUg dHVwbGVzLCBhbnkgcXVlcmllcyBvbiB0aGUgc3RhbmRieSB3aXRoCi0JCQkgKiB4aWRzIG9sZGVy IHRoYW4gdGhlIG5ld2VzdCB0dXBsZSB0aGlzIHJlY29yZCB3aWxsIGZyZWV6ZSB3aWxsCi0JCQkg KiBjb25mbGljdC4KLQkJCSAqLwotCQkJVHJhbnNhY3Rpb25JZCBjb25mbGljdF94aWQ7Ci0KLQkJ CWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyhwcnN0YXRlLnBhZ2VmcnouRnJlZXplUGFnZUNvbmZs aWN0WGlkLAotCQkJCQkJCQkJIHByc3RhdGUubGF0ZXN0X3hpZF9yZW1vdmVkKSkKLQkJCQljb25m bGljdF94aWQgPSBwcnN0YXRlLnBhZ2VmcnouRnJlZXplUGFnZUNvbmZsaWN0WGlkOwotCQkJZWxz ZQotCQkJCWNvbmZsaWN0X3hpZCA9IHByc3RhdGUubGF0ZXN0X3hpZF9yZW1vdmVkOwotCiAJCQls b2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKHByc3RhdGUucmVsYXRpb24sIHByc3RhdGUuYnVmZmVy LAotCQkJCQkJCQkJICBJbnZhbGlkQnVmZmVyLAkvKiB2bWJ1ZmZlciAqLwotCQkJCQkJCQkJICAw LAkvKiB2bWZsYWdzICovCisJCQkJCQkJCQkgIGRvX3NldF92bSA/IHByc3RhdGUudm1idWZmZXIg OiBJbnZhbGlkQnVmZmVyLAorCQkJCQkJCQkJICBkb19zZXRfdm0gPyBwcnN0YXRlLm5ld192bWJp dHMgOiAwLAogCQkJCQkJCQkJICBjb25mbGljdF94aWQsCi0JCQkJCQkJCQkgIHRydWUsIHBhcmFt cy0+cmVhc29uLAorCQkJCQkJCQkJICB0cnVlLCAvKiBjbGVhbnVwIGxvY2sgKi8KKwkJCQkJCQkJ CSAgcGFyYW1zLT5yZWFzb24sCiAJCQkJCQkJCQkgIHByc3RhdGUuZnJvemVuLCBwcnN0YXRlLm5m cm96ZW4sCiAJCQkJCQkJCQkgIHByc3RhdGUucmVkaXJlY3RlZCwgcHJzdGF0ZS5ucmVkaXJlY3Rl ZCwKIAkJCQkJCQkJCSAgcHJzdGF0ZS5ub3dkZWFkLCBwcnN0YXRlLm5kZWFkLApAQCAtMTE0Miwz MyArMTIxMyw2NyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFt cyAqcGFyYW1zLAogCiAJRU5EX0NSSVRfU0VDVElPTigpOwogCisJaWYgKGRvX3NldF92bSkKKwkJ TG9ja0J1ZmZlcihwcnN0YXRlLnZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCisJLyoK KwkgKiBEdXJpbmcgaXRzIHNlY29uZCBwYXNzIG92ZXIgdGhlIGhlYXAsIFZBQ1VVTSBjYWxscwor CSAqIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZSgpIHRvIGRldGVybWluZSB3aGV0aGVy IGEgcGFnZSBpcworCSAqIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuLiBUaGUgbG9naWMgaGVy ZSBpcyBzaW1pbGFyLiBBZnRlciBjb21wbGV0aW5nCisJICogcHJ1bmluZyBhbmQgZnJlZXppbmcs IHVzZSBhbiBhc3NlcnRpb24gdG8gdmVyaWZ5IHRoYXQgb3VyIHJlc3VsdHMKKwkgKiByZW1haW4g Y29uc2lzdGVudCB3aXRoIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZSgpLgorCSAqLwor I2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKwlpZiAocHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUp CisJeworCQlUcmFuc2FjdGlvbklkIGRlYnVnX2N1dG9mZjsKKwkJYm9vbAkJZGVidWdfYWxsX2Zy b3plbjsKKworCQlBc3NlcnQocHJzdGF0ZS5scGRlYWRfaXRlbXMgPT0gMCk7CisKKwkJQXNzZXJ0 KGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShwcnN0YXRlLnJlbGF0aW9uLCBwcnN0YXRlLmJ1ZmZl ciwKKwkJCQkJCQkJCQlwcnN0YXRlLnZpc3Rlc3QsCisJCQkJCQkJCQkJJmRlYnVnX2FsbF9mcm96 ZW4sCisJCQkJCQkJCQkJJmRlYnVnX2N1dG9mZiwgb2ZmX2xvYykpOworCisJCS8qCisJCSAqIEl0 J3MgcG9zc2libGUgdGhlIHBhZ2UgaXMgY29tcG9zZWQgZW50aXJlbHkgb2YgZnJvemVuIHR1cGxl cyBidXQgaXMKKwkJICogbm90IHNldCBhbGwtZnJvemVuIGluIHRoZSBWTSBhbmQgZGlkIG5vdCBw YXNzCisJCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUuIEluIHRoaXMgY2FzZSwgaXQncyBwb3Nz aWJsZQorCQkgKiBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKSBmaW5kcyB0aGUgcGFnZSBjb21w bGV0ZWx5IGZyb3plbiwgZXZlbgorCQkgKiB0aG91Z2ggcHJzdGF0ZS5hbGxfZnJvemVuIGlzIGZh bHNlLgorCQkgKi8KKwkJQXNzZXJ0KCFwcnN0YXRlLnNldF9hbGxfZnJvemVuIHx8IGRlYnVnX2Fs bF9mcm96ZW4pOworCX0KKyNlbmRpZgorCiAJLyogQ29weSBpbmZvcm1hdGlvbiBiYWNrIGZvciBj YWxsZXIgKi8KIAlwcmVzdWx0LT5uZGVsZXRlZCA9IHByc3RhdGUubmRlbGV0ZWQ7CiAJcHJlc3Vs dC0+bm5ld2xwZGVhZCA9IHByc3RhdGUubmRlYWQ7CiAJcHJlc3VsdC0+bmZyb3plbiA9IHByc3Rh dGUubmZyb3plbjsKIAlwcmVzdWx0LT5saXZlX3R1cGxlcyA9IHByc3RhdGUubGl2ZV90dXBsZXM7 CiAJcHJlc3VsdC0+cmVjZW50bHlfZGVhZF90dXBsZXMgPSBwcnN0YXRlLnJlY2VudGx5X2RlYWRf dHVwbGVzOwotCXByZXN1bHQtPnNldF9hbGxfdmlzaWJsZSA9IHByc3RhdGUuc2V0X2FsbF92aXNp YmxlOwotCXByZXN1bHQtPnNldF9hbGxfZnJvemVuID0gcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbjsK IAlwcmVzdWx0LT5oYXN0dXAgPSBwcnN0YXRlLmhhc3R1cDsKLQlwcmVzdWx0LT52bWJpdHMgPSBw cnN0YXRlLnZtYml0czsKLQotCS8qCi0JICogRm9yIGNhbGxlcnMgcGxhbm5pbmcgdG8gdXBkYXRl IHRoZSB2aXNpYmlsaXR5IG1hcCwgdGhlIGNvbmZsaWN0IGhvcml6b24KLQkgKiBmb3IgdGhhdCBy ZWNvcmQgbXVzdCBiZSB0aGUgbmV3ZXN0IHhtaW4gb24gdGhlIHBhZ2UuICBIb3dldmVyLCBpZiB0 aGUKLQkgKiBwYWdlIGlzIGNvbXBsZXRlbHkgZnJvemVuLCB0aGVyZSBjYW4gYmUgbm8gY29uZmxp Y3QgYW5kIHRoZQotCSAqIHZtX2NvbmZsaWN0X2hvcml6b24gc2hvdWxkIHJlbWFpbiBJbnZhbGlk VHJhbnNhY3Rpb25JZC4gIFRoaXMgaW5jbHVkZXMKLQkgKiB0aGUgY2FzZSB0aGF0IHdlIGp1c3Qg ZnJvemUgYWxsIHRoZSB0dXBsZXM7IHRoZSBwcnVuZS1mcmVlemUgcmVjb3JkCi0JICogaW5jbHVk ZWQgdGhlIGNvbmZsaWN0IFhJRCBhbHJlYWR5IHNvIHRoZSBjYWxsZXIgZG9lc24ndCBuZWVkIGl0 LgotCSAqLwotCWlmIChwcmVzdWx0LT5zZXRfYWxsX2Zyb3plbikKLQkJcHJlc3VsdC0+dm1fY29u ZmxpY3RfaG9yaXpvbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwotCWVsc2UKLQkJcHJlc3VsdC0+ dm1fY29uZmxpY3RfaG9yaXpvbiA9IHByc3RhdGUubmV3ZXN0X2xpdmVfeGlkOwogCiAJcHJlc3Vs dC0+bHBkZWFkX2l0ZW1zID0gcHJzdGF0ZS5scGRlYWRfaXRlbXM7CiAJLyogdGhlIHByZXN1bHQt PmRlYWRvZmZzZXRzIGFycmF5IHdhcyBhbHJlYWR5IGZpbGxlZCBpbiAqLwogCisJcHJlc3VsdC0+ bmV3X2FsbF92aXNpYmxlX3BhZ2VzID0gMDsKKwlwcmVzdWx0LT5uZXdfYWxsX2Zyb3plbl9wYWdl cyA9IDA7CisJcHJlc3VsdC0+bmV3X2FsbF92aXNpYmxlX2Zyb3plbl9wYWdlcyA9IDA7CisJaWYg KGRvX3NldF92bSkKKwl7CisJCWlmICgocHJzdGF0ZS5vbGRfdm1iaXRzICYgVklTSUJJTElUWU1B UF9BTExfVklTSUJMRSkgPT0gMCkKKwkJeworCQkJcHJlc3VsdC0+bmV3X2FsbF92aXNpYmxlX3Bh Z2VzID0gMTsKKwkJCWlmIChwcnN0YXRlLnNldF9hbGxfZnJvemVuKQorCQkJCXByZXN1bHQtPm5l d19hbGxfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPSAxOworCQl9CisJCWVsc2UgaWYgKChwcnN0YXRl Lm9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pID09IDAgJiYKKwkJCQkgcHJz dGF0ZS5zZXRfYWxsX2Zyb3plbikKKwkJCXByZXN1bHQtPm5ld19hbGxfZnJvemVuX3BhZ2VzID0g MTsKKwl9CisKIAlpZiAocHJzdGF0ZS5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCWlmIChwcmVzdWx0 LT5uZnJvemVuID4gMCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCAyMzQw MmU3ZTI2Yy4uNmI1MjEwZDYzOTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMK QEAgLTQ1OSwxMyArNDU5LDYgQEAgc3RhdGljIHZvaWQgZGVhZF9pdGVtc19hZGQoTFZSZWxTdGF0 ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgT2Zmc2V0TnVtYmVyICoKIHN0YXRpYyB2b2lk IGRlYWRfaXRlbXNfcmVzZXQoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2b2lkIGRlYWRf aXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwpOwogCi0jaWZkZWYgVVNFX0FTU0VSVF9D SEVDS0lORwotc3RhdGljIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJl bCwgQnVmZmVyIGJ1ZiwKLQkJCQkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKLQkJCQkJ CQkJCSBib29sICphbGxfZnJvemVuLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKm5ld2VzdF9s aXZlX3hpZCwKLQkJCQkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKLSNlbmRp Zgogc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJl bCwgQnVmZmVyIGJ1ZiwKIAkJCQkJCQkJCQkgICBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJ CQkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLApAQCAtMTk5Niw4ICsxOTg5LDYg QEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkJLnZpc3Rlc3QgPSB2YWNy ZWwtPnZpc3Rlc3QsCiAJCS5jdXRvZmZzID0gJnZhY3JlbC0+Y3V0b2ZmcywKIAl9OwotCXVpbnQ4 CQlvbGRfdm1iaXRzID0gMDsKLQl1aW50OAkJbmV3X3ZtYml0cyA9IDA7CiAKIAlBc3NlcnQoQnVm ZmVyR2V0QmxvY2tOdW1iZXIoYnVmKSA9PSBibGtubyk7CiAKQEAgLTIwMzgsMjkgKzIwMjksNiBA QCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQl2YWNyZWwtPm5ld19mcm96 ZW5fdHVwbGVfcGFnZXMrKzsKIAl9CiAKLQkvKgotCSAqIFZBQ1VVTSB3aWxsIGNhbGwgaGVhcF9w YWdlX2lzX2FsbF92aXNpYmxlKCkgZHVyaW5nIHRoZSBzZWNvbmQgcGFzcyBvdmVyCi0JICogdGhl IGhlYXAgdG8gZGV0ZXJtaW5lIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIGZvciB0aGUgcGFn ZSAtLSB0aGlzCi0JICogaXMgYSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIHRoZSBsb2dpYyBmcm9t IHRoaXMgZnVuY3Rpb24uICBOb3cgdGhhdAotCSAqIHdlJ3ZlIGZpbmlzaGVkIHBydW5pbmcgYW5k IGZyZWV6aW5nLCBtYWtlIHN1cmUgdGhhdCB3ZSdyZSBpbiB0b3RhbAotCSAqIGFncmVlbWVudCB3 aXRoIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSgpIHVzaW5nIGFuIGFzc2VydGlvbi4KLQkgKi8K LSNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCi0JaWYgKHByZXN1bHQuc2V0X2FsbF92aXNpYmxl KQotCXsKLQkJVHJhbnNhY3Rpb25JZCBkZWJ1Z19jdXRvZmY7Ci0JCWJvb2wJCWRlYnVnX2FsbF9m cm96ZW47Ci0KLQkJQXNzZXJ0KHByZXN1bHQubHBkZWFkX2l0ZW1zID09IDApOwotCi0JCUFzc2Vy dChoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUodmFjcmVsLT5yZWwsIGJ1ZiwKLQkJCQkJCQkJCQl2 YWNyZWwtPnZpc3Rlc3QsICZkZWJ1Z19hbGxfZnJvemVuLAotCQkJCQkJCQkJCSZkZWJ1Z19jdXRv ZmYsICZ2YWNyZWwtPm9mZm51bSkpOwotCi0JCUFzc2VydChwcmVzdWx0LnNldF9hbGxfZnJvemVu ID09IGRlYnVnX2FsbF9mcm96ZW4pOwotCX0KLSNlbmRpZgotCiAJLyoKIAkgKiBOb3cgc2F2ZSBk ZXRhaWxzIG9mIHRoZSBMUF9ERUFEIGl0ZW1zIGZyb20gdGhlIHBhZ2UgaW4gdmFjcmVsCiAJICov CkBAIC0yMDgxLDYgKzIwNDksMTQgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3Jl bCwKIAl9CiAKIAkvKiBGaW5hbGx5LCBhZGQgcGFnZS1sb2NhbCBjb3VudHMgdG8gd2hvbGUtVkFD VVVNIGNvdW50cyAqLworCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX3BhZ2VzICs9IHByZXN1bHQu bmV3X2FsbF92aXNpYmxlX3BhZ2VzOworCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX2FsbF9mcm96 ZW5fcGFnZXMgKz0gcHJlc3VsdC5uZXdfYWxsX3Zpc2libGVfZnJvemVuX3BhZ2VzOworCXZhY3Jl bC0+bmV3X2FsbF9mcm96ZW5fcGFnZXMgKz0gcHJlc3VsdC5uZXdfYWxsX2Zyb3plbl9wYWdlczsK KworCS8qIENhcHR1cmUgaWYgdGhlIHBhZ2Ugd2FzIG5ld2x5IHNldCBmcm96ZW4gKi8KKwkqdm1f cGFnZV9mcm96ZW4gPSBwcmVzdWx0Lm5ld19hbGxfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPiAwIHx8 CisJCXByZXN1bHQubmV3X2FsbF9mcm96ZW5fcGFnZXMgPiAwOworCiAJdmFjcmVsLT50dXBsZXNf ZGVsZXRlZCArPSBwcmVzdWx0Lm5kZWxldGVkOwogCXZhY3JlbC0+dHVwbGVzX2Zyb3plbiArPSBw cmVzdWx0Lm5mcm96ZW47CiAJdmFjcmVsLT5scGRlYWRfaXRlbXMgKz0gcHJlc3VsdC5scGRlYWRf aXRlbXM7CkBAIC0yMDk0LDcxICsyMDcwLDYgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUg KnZhY3JlbCwKIAkvKiBEaWQgd2UgZmluZCBMUF9ERUFEIGl0ZW1zPyAqLwogCSpoYXNfbHBkZWFk X2l0ZW1zID0gKHByZXN1bHQubHBkZWFkX2l0ZW1zID4gMCk7CiAKLQlBc3NlcnQoIXByZXN1bHQu c2V0X2FsbF92aXNpYmxlIHx8ICEoKmhhc19scGRlYWRfaXRlbXMpKTsKLQlBc3NlcnQoIXByZXN1 bHQuc2V0X2FsbF9mcm96ZW4gfHwgcHJlc3VsdC5zZXRfYWxsX3Zpc2libGUpOwotCi0JaWYgKCFw cmVzdWx0LnNldF9hbGxfdmlzaWJsZSkKLQkJcmV0dXJuIHByZXN1bHQubmRlbGV0ZWQ7Ci0KLQkv KiBTZXQgdGhlIHZpc2liaWxpdHkgbWFwIGFuZCBwYWdlIHZpc2liaWxpdHkgaGludCAqLwotCW9s ZF92bWJpdHMgPSBwcmVzdWx0LnZtYml0czsKLQluZXdfdm1iaXRzID0gVklTSUJJTElUWU1BUF9B TExfVklTSUJMRTsKLQlpZiAocHJlc3VsdC5zZXRfYWxsX2Zyb3plbikKLQkJbmV3X3ZtYml0cyB8 PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU47Ci0KLQkvKiBOb3RoaW5nIHRvIGRvICovCi0JaWYg KG9sZF92bWJpdHMgPT0gbmV3X3ZtYml0cykKLQkJcmV0dXJuIHByZXN1bHQubmRlbGV0ZWQ7Ci0K LQkvKgotCSAqIEl0IHNob3VsZCBuZXZlciBiZSB0aGUgY2FzZSB0aGF0IHRoZSB2aXNpYmlsaXR5 IG1hcCBwYWdlIGlzIHNldCB3aGlsZQotCSAqIHRoZSBwYWdlLWxldmVsIGJpdCBpcyBjbGVhciAo YW5kIGlmIHNvLCB3ZSBjbGVhcmVkIGl0IGFib3ZlKSwgYnV0IHRoZQotCSAqIHJldmVyc2UgaXMg YWxsb3dlZCAoaWYgY2hlY2tzdW1zIGFyZSBub3QgZW5hYmxlZCkuIFJlZ2FyZGxlc3MsIHNldCBi b3RoCi0JICogYml0cyBzbyB0aGF0IHdlIGdldCBiYWNrIGluIHN5bmMuCi0JICoKLQkgKiBUaGUg aGVhcCBidWZmZXIgbXVzdCBiZSBtYXJrZWQgZGlydHkgYmVmb3JlIGFkZGluZyBpdCB0byB0aGUg V0FMIGNoYWluCi0JICogd2hlbiBzZXR0aW5nIHRoZSBWTS4gV2UgZG9uJ3Qgd29ycnkgYWJvdXQg dW5uZWNlc3NhcmlseSBkaXJ0eWluZyB0aGUKLQkgKiBoZWFwIGJ1ZmZlciBpZiBQRF9BTExfVklT SUJMRSBpcyBhbHJlYWR5IHNldCwgdGhvdWdoLiBJdCBpcyBleHRyZW1lbHkKLQkgKiByYXJlIHRv IGhhdmUgYSBjbGVhbiBoZWFwIGJ1ZmZlciB3aXRoIFBEX0FMTF9WSVNJQkxFIGFscmVhZHkgc2V0 IGFuZAotCSAqIHRoZSBWTSBiaXRzIGNsZWFyLCBzbyB0aGVyZSBpcyBubyBwb2ludCBpbiBvcHRp bWl6aW5nIGl0LgotCSAqLwotCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwotCVBhZ2VDbGVhclBy dW5hYmxlKHBhZ2UpOwotCU1hcmtCdWZmZXJEaXJ0eShidWYpOwotCi0JLyoKLQkgKiBJZiB0aGUg cGFnZSBpcyBiZWluZyBzZXQgYWxsLWZyb3plbiwgd2UgcGFzcyBJbnZhbGlkVHJhbnNhY3Rpb25J ZCBhcwotCSAqIHRoZSBjdXRvZmZfeGlkLCBzaW5jZSBhIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6 b24gc3VmZmljaWVudCB0byBtYWtlCi0JICogZXZlcnl0aGluZyBzYWZlIGZvciBSRURPIHdhcyBs b2dnZWQgd2hlbiB0aGUgcGFnZSdzIHR1cGxlcyB3ZXJlIGZyb3plbi4KLQkgKi8KLQlBc3NlcnQo IXByZXN1bHQuc2V0X2FsbF9mcm96ZW4gfHwKLQkJICAgIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHBy ZXN1bHQudm1fY29uZmxpY3RfaG9yaXpvbikpOwotCi0JdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVs LT5yZWwsIGJsa25vLCBidWYsCi0JCQkJCSAgSW52YWxpZFhMb2dSZWNQdHIsCi0JCQkJCSAgdm1i dWZmZXIsIHByZXN1bHQudm1fY29uZmxpY3RfaG9yaXpvbiwKLQkJCQkJICBuZXdfdm1iaXRzKTsK LQotCS8qCi0JICogSWYgdGhlIHBhZ2Ugd2Fzbid0IGFscmVhZHkgc2V0IGFsbC12aXNpYmxlIGFu ZC9vciBhbGwtZnJvemVuIGluIHRoZSBWTSwKLQkgKiBjb3VudCBpdCBhcyBuZXdseSBzZXQgZm9y IGxvZ2dpbmcuCi0JICovCi0JaWYgKChvbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfVklT SUJMRSkgPT0gMCkKLQl7Ci0JCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX3BhZ2VzKys7Ci0JCWlm IChwcmVzdWx0LnNldF9hbGxfZnJvemVuKQotCQl7Ci0JCQl2YWNyZWwtPm5ld19hbGxfdmlzaWJs ZV9hbGxfZnJvemVuX3BhZ2VzKys7Ci0JCQkqdm1fcGFnZV9mcm96ZW4gPSB0cnVlOwotCQl9Ci0J fQotCWVsc2UgaWYgKChvbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSA9PSAw ICYmCi0JCQkgcHJlc3VsdC5zZXRfYWxsX2Zyb3plbikKLQl7Ci0JCXZhY3JlbC0+bmV3X2FsbF9m cm96ZW5fcGFnZXMrKzsKLQkJKnZtX3BhZ2VfZnJvemVuID0gdHJ1ZTsKLQl9Ci0KIAlyZXR1cm4g cHJlc3VsdC5uZGVsZXRlZDsKIH0KIApAQCAtMzU3Miw3ICszNDgzLDcgQEAgZGVhZF9pdGVtc19j bGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCkKICAqIHRoYXQgZXhwZWN0IG5vIExQX0RFQUQgb24g dGhlIHBhZ2UuIEN1cnJlbnRseSBhc3NlcnQtb25seSwgYnV0IHRoZXJlIGlzIG5vCiAgKiByZWFz b24gbm90IHRvIHVzZSBpdCBvdXRzaWRlIG9mIGFzc2VydHMuCiAgKi8KLXN0YXRpYyBib29sCiti b29sCiBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAog CQkJCQkJIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAogCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4s CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvaGVhcGFtLmgKaW5kZXggYmJiMjIzZGQwZDIuLmY3N2EwMDI5MWJiIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbS5oCkBAIC0yNjQsNyArMjY0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVlemVQYXJh bXMKIAogCS8qCiAJICogQ2FsbGVycyBzaG91bGQgcHJvdmlkZSBhIHBpbm5lZCB2bWJ1ZmZlciBj b3JyZXNwb25kaW5nIHRvIHRoZSBoZWFwCi0JICogYmxvY2sgaW4gYnVmZmVyLiBXZSB3aWxsIGNo ZWNrIGZvciBhbmQgcmVwYWlyIGFueSBjb3JydXB0aW9uIGluIHRoZSBWTS4KKwkgKiBibG9jayBp biBidWZmZXIuIFdlIHdpbGwgY2hlY2sgZm9yIGFuZCByZXBhaXIgYW55IGNvcnJ1cHRpb24gaW4g dGhlIFZNCisJICogYW5kIHNldCB0aGUgVk0gYWZ0ZXIgcHJ1bmluZyBpZiB0aGUgcGFnZSBpcyBh bGwtdmlzaWJsZS9hbGwtZnJvemVuLgogCSAqLwogCUJ1ZmZlcgkJdm1idWZmZXI7CiAKQEAgLTI4 MCw4ICsyODEsNyBAQCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVBhcmFtcwogCSAqIEhFQVBf UEFHRV9QUlVORV9NQVJLX1VOVVNFRF9OT1cgaW5kaWNhdGVzIHRoYXQgZGVhZCBpdGVtcyBjYW4g YmUgc2V0CiAJICogTFBfVU5VU0VEIGR1cmluZyBwcnVuaW5nLgogCSAqCi0JICogSEVBUF9QQUdF X1BSVU5FX0ZSRUVaRSBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIGFsc28gZnJlZXplIHR1cGxlcywg YW5kCi0JICogd2lsbCByZXR1cm4gJ2FsbF92aXNpYmxlJywgJ2FsbF9mcm96ZW4nIGZsYWdzIHRv IHRoZSBjYWxsZXIuCisJICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSBpbmRpY2F0ZXMgdGhhdCB3 ZSB3aWxsIGFsc28gZnJlZXplIHR1cGxlcy4KIAkgKi8KIAlpbnQJCQlvcHRpb25zOwogCkBAIC0z MTUsMjYgKzMxNSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVJlc3VsdAogCWludAkJ CXJlY2VudGx5X2RlYWRfdHVwbGVzOwogCiAJLyoKLQkgKiBzZXRfYWxsX3Zpc2libGUgYW5kIHNl dF9hbGxfZnJvemVuIGluZGljYXRlIGlmIHRoZSBhbGwtdmlzaWJsZSBhbmQKLQkgKiBhbGwtZnJv emVuIGJpdHMgaW4gdGhlIHZpc2liaWxpdHkgbWFwIHNob3VsZCBiZSBzZXQgZm9yIHRoaXMgcGFn ZSBhZnRlcgotCSAqIHBydW5pbmcuCi0JICoKLQkgKiB2bV9jb25mbGljdF9ob3Jpem9uIGlzIHRo ZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZS4gIFRoZQotCSAqIGNhbGxl ciBjYW4gdXNlIGl0IGFzIHRoZSBjb25mbGljdCBob3Jpem9uIHdoZW4gc2V0dGluZyB0aGUgVk0g Yml0cy4gIEl0Ci0JICogaXMgb25seSB2YWxpZCBpZiB3ZSBmcm96ZSBzb21lIHR1cGxlcyAobmZy b3plbiA+IDApLCBhbmQgc2V0X2FsbF9mcm96ZW4KLQkgKiBpcyB0cnVlLgotCSAqCi0JICogVGhl c2UgYXJlIG9ubHkgc2V0IGlmIHRoZSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBz ZXQuCi0JICovCi0JYm9vbAkJc2V0X2FsbF92aXNpYmxlOwotCWJvb2wJCXNldF9hbGxfZnJvemVu OwotCVRyYW5zYWN0aW9uSWQgdm1fY29uZmxpY3RfaG9yaXpvbjsKLQotCS8qCi0JICogdm1iaXRz IGlzIHRoZSB2YWx1ZSBvZiB0aGUgdm1idWZmZXIncyB2bWJpdHMgYXQgdGhlIGJlZ2lubmluZyBv ZgotCSAqIHBydW5pbmcuIEl0IGlzIGNsZWFyZWQgaWYgVk0gY29ycnVwdGlvbiBpcyBmb3VuZCBh bmQgY29ycmVjdGVkLgorCSAqIFdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIHdhcyBuZXdseSBzZXQg YWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4gZHVyaW5nCisJICogcGhhc2UgSSBvZiB2YWN1dW1p bmcuCiAJICovCi0JdWludDgJCXZtYml0czsKKwlCbG9ja051bWJlciBuZXdfYWxsX3Zpc2libGVf cGFnZXM7CisJQmxvY2tOdW1iZXIgbmV3X2FsbF92aXNpYmxlX2Zyb3plbl9wYWdlczsKKwlCbG9j a051bWJlciBuZXdfYWxsX2Zyb3plbl9wYWdlczsKIAogCS8qCiAJICogV2hldGhlciBvciBub3Qg dGhlIHBhZ2UgbWFrZXMgcmVsIHRydW5jYXRpb24gdW5zYWZlLiAgVGhpcyBpcyBzZXQgdG8KQEAg LTQ3MSw3ICs0NTcsMTMgQEAgZXh0ZXJuIHZvaWQgbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIC8qIGluIGhlYXAvdmFjdXVtbGF6eS5j ICovCiBleHRlcm4gdm9pZCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLAogCQkJCQkJCWNv bnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsIEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IGJzdHJhdGVneSk7 Ci0KKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCitleHRlcm4gYm9vbCBoZWFwX3BhZ2VfaXNf YWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAorCQkJCQkJCQkJIEdsb2JhbFZp c1N0YXRlICp2aXN0ZXN0LAorCQkJCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCisJCQkJCQkJCQkg VHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJCQkJCQkJIE9mZnNldE51 bWJlciAqbG9nZ2luZ19vZmZudW0pOworI2VuZGlmCiAvKiBpbiBoZWFwL2hlYXBhbV92aXNpYmls aXR5LmMgKi8KIGV4dGVybiBib29sIEhlYXBUdXBsZVNhdGlzZmllc1Zpc2liaWxpdHkoSGVhcFR1 cGxlIGh0dXAsIFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJCSBCdWZmZXIgYnVmZmVyKTsK LS0gCjIuNDMuMAoK --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0007-Eliminate-XLOG_HEAP2_VISIBLE-from-empty-page-vac.patch" Content-Disposition: attachment; filename="v37-0007-Eliminate-XLOG_HEAP2_VISIBLE-from-empty-page-vac.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmabqb36 RnJvbSAwMGM4OWQ5MjgzZDhmY2JkZmM4ZjMwOWEzOTAzZmZjYWNhZDdiMTFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjIxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MzcgMDcvMTVdIEVsaW1pbmF0ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZnJvbSBlbXB0eS1w YWdlIHZhY3V1bQoKQXMgcGFydCBvZiByZW1vdmluZyBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVjb3Jk cywgcGhhc2UgSSBvZiBWQUNVVU0gbm93Cm1hcmtzIGVtcHR5IHBhZ2VzIGFsbC12aXNpYmxlIGlu IGEgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTiByZWNvcmQuCgpBdXRob3I6IE1lbGFuaWUg UGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBSb2JlcnQg SGFhcyA8cm9iZXJ0bWhhYXNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8 YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdt YWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAzNSAr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5k ZXggNmI1MjEwZDYzOTMuLjE0NTFjOTQzNjQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jCkBAIC0xOTAzLDkgKzE5MDMsMTIgQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJl bFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCQkgKi8KIAkJ aWYgKCFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKQogCQl7CisJCQkvKiBMb2NrIHZtYnVmZmVyIGJl Zm9yZSBlbnRlcmluZyBjcml0aWNhbCBzZWN0aW9uICovCisJCQlMb2NrQnVmZmVyKHZtYnVmZmVy LCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOworCiAJCQlTVEFSVF9DUklUX1NFQ1RJT04oKTsKIAot CQkJLyogbWFyayBidWZmZXIgZGlydHkgYmVmb3JlIHdyaXRpbmcgYSBXQUwgcmVjb3JkICovCisJ CQkvKiBNYXJrIGJ1ZmZlciBkaXJ0eSBiZWZvcmUgd3JpdGluZyBhbnkgV0FMIHJlY29yZHMgKi8K IAkJCU1hcmtCdWZmZXJEaXJ0eShidWYpOwogCiAJCQkvKgpAQCAtMTkyMywxMyArMTkyNiwzMyBA QCBsYXp5X3NjYW5fbmV3X29yX2VtcHR5KExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1Ziwg QmxvY2tOdW1iZXIgYmxrbm8sCiAKIAkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwogCQkJUGFn ZUNsZWFyUHJ1bmFibGUocGFnZSk7Ci0JCQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwg Ymxrbm8sIGJ1ZiwKLQkJCQkJCQkgIEludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJCSAgdm1idWZm ZXIsIEludmFsaWRUcmFuc2FjdGlvbklkLAotCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfVklT SUJMRSB8Ci0JCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOworCQkJdmlzaWJpbGl0 eW1hcF9zZXRfdm1iaXRzKGJsa25vLAorCQkJCQkJCQkJIHZtYnVmZmVyLAorCQkJCQkJCQkJIFZJ U0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX0ZS T1pFTiwKKwkJCQkJCQkJCSB2YWNyZWwtPnJlbC0+cmRfbG9jYXRvcik7CisKKwkJCS8qCisJCQkg KiBFbWl0IFdBTCBmb3Igc2V0dGluZyBQRF9BTExfVklTSUJMRSBvbiB0aGUgaGVhcCBwYWdlIGFu ZAorCQkJICogc2V0dGluZyB0aGUgVk0uCisJCQkgKi8KKwkJCWlmIChSZWxhdGlvbk5lZWRzV0FM KHZhY3JlbC0+cmVsKSkKKwkJCQlsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKHZhY3JlbC0+cmVs LCBidWYsCisJCQkJCQkJCQkJICB2bWJ1ZmZlciwKKwkJCQkJCQkJCQkgIFZJU0lCSUxJVFlNQVBf QUxMX1ZJU0lCTEUgfAorCQkJCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOLAorCQkJ CQkJCQkJCSAgSW52YWxpZFRyYW5zYWN0aW9uSWQsIC8qIGNvbmZsaWN0IHhpZCAqLworCQkJCQkJ CQkJCSAgZmFsc2UsCS8qIGNsZWFudXAgbG9jayAqLworCQkJCQkJCQkJCSAgUFJVTkVfVkFDVVVN X1NDQU4sCS8qIHJlYXNvbiAqLworCQkJCQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJCQkJCQkgIE5V TEwsIDAsCisJCQkJCQkJCQkJICBOVUxMLCAwLAorCQkJCQkJCQkJCSAgTlVMTCwgMCk7CisKIAkJ CUVORF9DUklUX1NFQ1RJT04oKTsKIAorCQkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xP Q0tfVU5MT0NLKTsKKwogCQkJLyogQ291bnQgdGhlIG5ld2x5IGFsbC1mcm96ZW4gcGFnZXMgZm9y IGxvZ2dpbmcgKi8KIAkJCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX3BhZ2VzKys7CiAJCQl2YWNy ZWwtPm5ld19hbGxfdmlzaWJsZV9hbGxfZnJvemVuX3BhZ2VzKys7Ci0tIAoyLjQzLjAKCg== --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0008-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Disposition: attachment; filename="v37-0008-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmabuaw7 RnJvbSA2YzM0NGFjYTk1Y2YyMjg1MWMzMDBjOTY1MDlhMzEyYTU4YjE5ZTJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjM2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MzcgMDgvMTVdIFJlbW92ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZW50aXJlbHkKClRoZXJl IGFyZSBubyByZW1haW5pbmcgdXNlcnMgdGhhdCBlbWl0IFhMT0dfSEVBUDJfVklTSUJMRSByZWNv cmRzLCBzbyBpdApjYW4gYmUgcmVtb3ZlZC4gVGhpcyBpbmNsdWRlcyBkZWxldGluZyB0aGUgeGxf aGVhcF92aXNpYmxlIHN0cnVjdCBhbmQKYWxsIGZ1bmN0aW9ucyByZXNwb25zaWJsZSBmb3IgZW1p dHRpbmcgb3IgcmVwbGF5aW5nIFhMT0dfSEVBUDJfVklTSUJMRQpyZWNvcmRzLgoKVGhpcyBjaGFu Z2VzIHRoZSB2aXNpYmlsaXR5IG1hcCBBUEksIHNvIGFueSBleHRlcm5hbCB1c2Vycy9jb25zdW1l cnMgb2YKdGhlIFZNLW9ubHkgV0FMIHJlY29yZCB3aWxsIG5lZWQgdG8gY2hhbmdlLgoKQXV0aG9y OiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1i eTogQW5kcmV5IEJvcm9kaW4gPHg0bW1tQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogQW5k cmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGku ZXZhbi5jaGFvQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1h c2suYyAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAg ICAgIHwgIDU0ICstLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5j ICAgIHwgMTU2ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9wcnVuZWhlYXAuYyAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMgICAgIHwgIDE2ICstLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0 eW1hcC5jICB8IDExMCArLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRl c2MvaGVhcGRlc2MuYyAgIHwgIDEwIC0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2RlY29kZS5jIHwgICAxIC0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAg ICAgfCAgMTIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oICAgICAgICAgfCAg MjAgLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oICAgICAgIHwgIDEzICst CiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCAgIHwgICA5IC0tCiBzcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgIHwgICAxIC0KIDEzIGZpbGVzIGNo YW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDM3MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1hc2suYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vYnVmbWFzay5jCmluZGV4IDFhOWU3YmVhNWQyLi5hNzAwNWI1N2U2MSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKQEAgLTU2LDggKzU2LDggQEAgbWFza19wYWdlX2hpbnRf Yml0cyhQYWdlIHBhZ2UpCiAKIAkvKgogCSAqIER1cmluZyByZXBsYXksIGlmIHRoZSBwYWdlIExT TiBoYXMgYWR2YW5jZWQgcGFzdCBvdXIgWExPRyByZWNvcmQncyBMU04sCi0JICogd2UgZG9uJ3Qg bWFyayB0aGUgcGFnZSBhbGwtdmlzaWJsZS4gU2VlIGhlYXBfeGxvZ192aXNpYmxlKCkgZm9yCi0J ICogZGV0YWlscy4KKwkgKiB3ZSBkb24ndCBtYXJrIHRoZSBwYWdlIGFsbC12aXNpYmxlLiBTZWUg aGVhcF94bG9nX3BydW5lX2ZyZWV6ZSgpIGZvcgorCSAqIG1vcmUgZGV0YWlscy4KIAkgKi8KIAlQ YWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRl eCA3ZmY5YTkzMDg0NC4uMGQ2ZTNiYzc4ODQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBA IC0yNTg5LDExICsyNTg5LDExIEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9u LCBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJewogCQkJUGFnZVNldEFs bFZpc2libGUocGFnZSk7CiAJCQlQYWdlQ2xlYXJQcnVuYWJsZShwYWdlKTsKLQkJCXZpc2liaWxp dHltYXBfc2V0X3ZtYml0cyhCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpLAotCQkJCQkJCQkJ IHZtYnVmZmVyLAotCQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJ CQkJIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwKLQkJCQkJCQkJCSByZWxhdGlvbi0+cmRfbG9j YXRvcik7CisJCQl2aXNpYmlsaXR5bWFwX3NldChCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIp LAorCQkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxF IHwKKwkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwKKwkJCQkJCQkgIHJlbGF0aW9u LT5yZF9sb2NhdG9yKTsKIAkJfQogCiAJCS8qCkBAIC04ODgzLDUwICs4ODgzLDYgQEAgYm90dG9t dXBfc29ydF9hbmRfc2hyaW5rKFRNX0luZGV4RGVsZXRlT3AgKmRlbHN0YXRlKQogCXJldHVybiBu YmxvY2tzZmF2b3JhYmxlOwogfQogCi0vKgotICogUGVyZm9ybSBYTG9nSW5zZXJ0IGZvciBhIGhl YXAtdmlzaWJsZSBvcGVyYXRpb24uICAnYmxvY2snIGlzIHRoZSBibG9jawotICogYmVpbmcgbWFy a2VkIGFsbC12aXNpYmxlLCBhbmQgdm1fYnVmZmVyIGlzIHRoZSBidWZmZXIgY29udGFpbmluZyB0 aGUKLSAqIGNvcnJlc3BvbmRpbmcgdmlzaWJpbGl0eSBtYXAgYmxvY2suICBCb3RoIHNob3VsZCBo YXZlIGFscmVhZHkgYmVlbiBtb2RpZmllZAotICogYW5kIGRpcnRpZWQuCi0gKgotICogc25hcHNo b3RDb25mbGljdEhvcml6b24gY29tZXMgZnJvbSB0aGUgbGFyZ2VzdCB4bWluIG9uIHRoZSBwYWdl IGJlaW5nCi0gKiBtYXJrZWQgYWxsLXZpc2libGUuICBSRURPIHJvdXRpbmUgdXNlcyBpdCB0byBn ZW5lcmF0ZSByZWNvdmVyeSBjb25mbGljdHMuCi0gKgotICogSWYgY2hlY2tzdW1zIG9yIHdhbF9s b2dfaGludHMgYXJlIGVuYWJsZWQsIHdlIG1heSBhbHNvIGdlbmVyYXRlIGEgZnVsbC1wYWdlCi0g KiBpbWFnZSBvZiBoZWFwX2J1ZmZlci4gT3RoZXJ3aXNlLCB3ZSBvcHRpbWl6ZSBhd2F5IHRoZSBG UEkgKGJ5IHNwZWNpZnlpbmcKLSAqIFJFR0JVRl9OT19JTUFHRSBmb3IgdGhlIGhlYXAgYnVmZmVy KSwgaW4gd2hpY2ggY2FzZSB0aGUgY2FsbGVyIHNob3VsZCAqbm90KgotICogdXBkYXRlIHRoZSBo ZWFwIHBhZ2UncyBMU04uCi0gKi8KLVhMb2dSZWNQdHIKLWxvZ19oZWFwX3Zpc2libGUoUmVsYXRp b24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIsCi0JCQkJIFRyYW5z YWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sIHVpbnQ4IHZtZmxhZ3MpCi17Ci0JeGxf aGVhcF92aXNpYmxlIHhscmVjOwotCVhMb2dSZWNQdHIJcmVjcHRyOwotCXVpbnQ4CQlmbGFnczsK LQotCUFzc2VydChCdWZmZXJJc1ZhbGlkKGhlYXBfYnVmZmVyKSk7Ci0JQXNzZXJ0KEJ1ZmZlcklz VmFsaWQodm1fYnVmZmVyKSk7Ci0KLQl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNu YXBzaG90Q29uZmxpY3RIb3Jpem9uOwotCXhscmVjLmZsYWdzID0gdm1mbGFnczsKLQlpZiAoUmVs YXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpKQotCQl4bHJlYy5mbGFncyB8 PSBWSVNJQklMSVRZTUFQX1hMT0dfQ0FUQUxPR19SRUw7Ci0JWExvZ0JlZ2luSW5zZXJ0KCk7Ci0J WExvZ1JlZ2lzdGVyRGF0YSgmeGxyZWMsIFNpemVPZkhlYXBWaXNpYmxlKTsKLQotCVhMb2dSZWdp c3RlckJ1ZmZlcigwLCB2bV9idWZmZXIsIDApOwotCi0JZmxhZ3MgPSBSRUdCVUZfU1RBTkRBUkQ7 Ci0JaWYgKCFYTG9nSGludEJpdElzTmVlZGVkKCkpCi0JCWZsYWdzIHw9IFJFR0JVRl9OT19JTUFH RTsKLQlYTG9nUmVnaXN0ZXJCdWZmZXIoMSwgaGVhcF9idWZmZXIsIGZsYWdzKTsKLQotCXJlY3B0 ciA9IFhMb2dJbnNlcnQoUk1fSEVBUDJfSUQsIFhMT0dfSEVBUDJfVklTSUJMRSk7Ci0KLQlyZXR1 cm4gcmVjcHRyOwotfQotCiAvKgogICogUGVyZm9ybSBYTG9nSW5zZXJ0IGZvciBhIGhlYXAtdXBk YXRlIG9wZXJhdGlvbi4gIENhbGxlciBtdXN0IGFscmVhZHkKICAqIGhhdmUgbW9kaWZpZWQgdGhl IGJ1ZmZlcihzKSBhbmQgbWFya2VkIHRoZW0gZGlydHkuCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtX3hsb2cuYwppbmRleCA2ZDM5YTVmZmY3Yy4uYTgzZjZiMDNkNjkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtMjM5LDcgKzIzOSw3IEBAIGhlYXBfeGxvZ19wcnVu ZV9mcmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCWlmIChQYWdlSXNOZXcodm1wYWdl KSkKIAkJCVBhZ2VJbml0KHZtcGFnZSwgQkxDS1NaLCAwKTsKIAotCQl2aXNpYmlsaXR5bWFwX3Nl dF92bWJpdHMoYmxrbm8sIHZtYnVmZmVyLCB2bWZsYWdzLCBybG9jYXRvcik7CisJCXZpc2liaWxp dHltYXBfc2V0KGJsa25vLCB2bWJ1ZmZlciwgdm1mbGFncywgcmxvY2F0b3IpOwogCiAJCUFzc2Vy dChCdWZmZXJJc0RpcnR5KHZtYnVmZmVyKSk7CiAJCVBhZ2VTZXRMU04odm1wYWdlLCBsc24pOwpA QCAtMjUyLDE0MyArMjUyLDYgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3Rh dGUgKnJlY29yZCkKIAkJWExvZ1JlY29yZFBhZ2VXaXRoRnJlZVNwYWNlKHJsb2NhdG9yLCBibGtu bywgZnJlZXNwYWNlKTsKIH0KIAotLyoKLSAqIFJlcGxheSBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVj b3Jkcy4KLSAqCi0gKiBUaGUgY3JpdGljYWwgaW50ZWdyaXR5IHJlcXVpcmVtZW50IGhlcmUgaXMg dGhhdCB3ZSBtdXN0IG5ldmVyIGVuZCB1cCB3aXRoCi0gKiBhIHNpdHVhdGlvbiB3aGVyZSB0aGUg dmlzaWJpbGl0eSBtYXAgYml0IGlzIHNldCwgYW5kIHRoZSBwYWdlLWxldmVsCi0gKiBQRF9BTExf VklTSUJMRSBiaXQgaXMgY2xlYXIuICBJZiB0aGF0IHdlcmUgdG8gb2NjdXIsIHRoZW4gYSBzdWJz ZXF1ZW50Ci0gKiBwYWdlIG1vZGlmaWNhdGlvbiB3b3VsZCBmYWlsIHRvIGNsZWFyIHRoZSB2aXNp YmlsaXR5IG1hcCBiaXQuCi0gKi8KLXN0YXRpYyB2b2lkCi1oZWFwX3hsb2dfdmlzaWJsZShYTG9n UmVhZGVyU3RhdGUgKnJlY29yZCkKLXsKLQlYTG9nUmVjUHRyCWxzbiA9IHJlY29yZC0+RW5kUmVj UHRyOwotCXhsX2hlYXBfdmlzaWJsZSAqeGxyZWMgPSAoeGxfaGVhcF92aXNpYmxlICopIFhMb2dS ZWNHZXREYXRhKHJlY29yZCk7Ci0JQnVmZmVyCQl2bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7Ci0J QnVmZmVyCQlidWZmZXI7Ci0JUGFnZQkJcGFnZTsKLQlSZWxGaWxlTG9jYXRvciBybG9jYXRvcjsK LQlCbG9ja051bWJlciBibGtubzsKLQlYTG9nUmVkb0FjdGlvbiBhY3Rpb247Ci0KLQlBc3NlcnQo KHhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBfWExPR19WQUxJRF9CSVRTKSA9PSB4bHJlYy0+ ZmxhZ3MpOwotCi0JWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMSwgJnJsb2NhdG9yLCBOVUxM LCAmYmxrbm8pOwotCi0JLyoKLQkgKiBJZiB0aGVyZSBhcmUgYW55IEhvdCBTdGFuZGJ5IHRyYW5z YWN0aW9ucyBydW5uaW5nIHRoYXQgaGF2ZSBhbiB4bWluCi0JICogaG9yaXpvbiBvbGQgZW5vdWdo IHRoYXQgdGhpcyBwYWdlIGlzbid0IGFsbC12aXNpYmxlIGZvciB0aGVtLCB0aGV5Ci0JICogbWln aHQgaW5jb3JyZWN0bHkgZGVjaWRlIHRoYXQgYW4gaW5kZXgtb25seSBzY2FuIGNhbiBza2lwIGEg aGVhcCBmZXRjaC4KLQkgKgotCSAqIE5COiBJdCBtaWdodCBiZSBiZXR0ZXIgdG8gdGhyb3cgc29t ZSBraW5kIG9mICJzb2Z0IiBjb25mbGljdCBoZXJlIHRoYXQKLQkgKiBmb3JjZXMgYW55IGluZGV4 LW9ubHkgc2NhbiB0aGF0IGlzIGluIGZsaWdodCB0byBwZXJmb3JtIGhlYXAgZmV0Y2hlcywKLQkg KiByYXRoZXIgdGhhbiBraWxsaW5nIHRoZSB0cmFuc2FjdGlvbiBvdXRyaWdodC4KLQkgKi8KLQlp ZiAoSW5Ib3RTdGFuZGJ5KQotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4 bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24sCi0JCQkJCQkJCQkJCXhscmVjLT5mbGFncyAm IFZJU0lCSUxJVFlNQVBfWExPR19DQVRBTE9HX1JFTCwKLQkJCQkJCQkJCQkJcmxvY2F0b3IpOwot Ci0JLyoKLQkgKiBSZWFkIHRoZSBoZWFwIHBhZ2UsIGlmIGl0IHN0aWxsIGV4aXN0cy4gSWYgdGhl IGhlYXAgZmlsZSBoYXMgZHJvcHBlZCBvcgotCSAqIHRydW5jYXRlZCBsYXRlciBpbiByZWNvdmVy eSwgd2UgZG9uJ3QgbmVlZCB0byB1cGRhdGUgdGhlIHBhZ2UsIGJ1dCB3ZSdkCi0JICogYmV0dGVy IHN0aWxsIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAuCi0JICovCi0JYWN0aW9uID0gWExvZ1Jl YWRCdWZmZXJGb3JSZWRvKHJlY29yZCwgMSwgJmJ1ZmZlcik7Ci0JaWYgKGFjdGlvbiA9PSBCTEtf TkVFRFNfUkVETykKLQl7Ci0JCS8qCi0JCSAqIFdlIGRvbid0IGJ1bXAgdGhlIExTTiBvZiB0aGUg aGVhcCBwYWdlIHdoZW4gc2V0dGluZyB0aGUgdmlzaWJpbGl0eQotCQkgKiBtYXAgYml0ICh1bmxl c3MgY2hlY2tzdW1zIG9yIHdhbF9oaW50X2JpdHMgaXMgZW5hYmxlZCwgaW4gd2hpY2gKLQkJICog Y2FzZSB3ZSBtdXN0KS4gVGhpcyBleHBvc2VzIHVzIHRvIHRvcm4gcGFnZSBoYXphcmRzLCBidXQg c2luY2UKLQkJICogd2UncmUgbm90IGluc3BlY3RpbmcgdGhlIGV4aXN0aW5nIHBhZ2UgY29udGVu dHMgaW4gYW55IHdheSwgd2UKLQkJICogZG9uJ3QgY2FyZS4KLQkJICovCi0JCXBhZ2UgPSBCdWZm ZXJHZXRQYWdlKGJ1ZmZlcik7Ci0KLQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7Ci0JCVBhZ2VD bGVhclBydW5hYmxlKHBhZ2UpOwotCi0JCWlmIChYTG9nSGludEJpdElzTmVlZGVkKCkpCi0JCQlQ YWdlU2V0TFNOKHBhZ2UsIGxzbik7Ci0KLQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7Ci0JfQot CWVsc2UgaWYgKGFjdGlvbiA9PSBCTEtfUkVTVE9SRUQpCi0JewotCQkvKgotCQkgKiBJZiBoZWFw IGJsb2NrIHdhcyBiYWNrZWQgdXAsIHdlIGFscmVhZHkgcmVzdG9yZWQgaXQgYW5kIHRoZXJlJ3MK LQkJICogbm90aGluZyBtb3JlIHRvIGRvLiAoVGhpcyBjYW4gb25seSBoYXBwZW4gd2l0aCBjaGVj a3N1bXMgb3IKLQkJICogd2FsX2xvZ19oaW50cyBlbmFibGVkLikKLQkJICovCi0JfQotCi0JaWYg KEJ1ZmZlcklzVmFsaWQoYnVmZmVyKSkKLQl7Ci0JCVNpemUJCXNwYWNlID0gUGFnZUdldEZyZWVT cGFjZShCdWZmZXJHZXRQYWdlKGJ1ZmZlcikpOwotCi0JCVVubG9ja1JlbGVhc2VCdWZmZXIoYnVm ZmVyKTsKLQotCQkvKgotCQkgKiBTaW5jZSBGU00gaXMgbm90IFdBTC1sb2dnZWQgYW5kIG9ubHkg dXBkYXRlZCBoZXVyaXN0aWNhbGx5LCBpdAotCQkgKiBlYXNpbHkgYmVjb21lcyBzdGFsZSBpbiBz dGFuZGJ5cy4gIElmIHRoZSBzdGFuZGJ5IGlzIGxhdGVyIHByb21vdGVkCi0JCSAqIGFuZCBydW5z IFZBQ1VVTSwgaXQgd2lsbCBza2lwIHVwZGF0aW5nIGluZGl2aWR1YWwgZnJlZSBzcGFjZQotCQkg KiBmaWd1cmVzIGZvciBwYWdlcyB0aGF0IGJlY2FtZSBhbGwtdmlzaWJsZSAob3IgYWxsLWZyb3pl biwgZGVwZW5kaW5nCi0JCSAqIG9uIHRoZSB2YWN1dW0gbW9kZSwpIHdoaWNoIGlzIHRyb3VibGVz b21lIHdoZW4gRnJlZVNwYWNlTWFwVmFjdXVtCi0JCSAqIHByb3BhZ2F0ZXMgdG9vIG9wdGltaXN0 aWMgZnJlZSBzcGFjZSB2YWx1ZXMgdG8gdXBwZXIgRlNNIGxheWVyczsKLQkJICogbGF0ZXIgaW5z ZXJ0ZXJzIHRyeSB0byB1c2Ugc3VjaCBwYWdlcyBvbmx5IHRvIGZpbmQgb3V0IHRoYXQgdGhleQot CQkgKiBhcmUgdW51c2FibGUuICBUaGlzIGNhbiBjYXVzZSBsb25nIHN0YWxscyB3aGVuIHRoZXJl IGFyZSBtYW55IHN1Y2gKLQkJICogcGFnZXMuCi0JCSAqCi0JCSAqIEZvcmVzdGFsbCB0aG9zZSBw cm9ibGVtcyBieSB1cGRhdGluZyBGU00ncyBpZGVhIGFib3V0IGEgcGFnZSB0aGF0Ci0JCSAqIGlz IGJlY29taW5nIGFsbC12aXNpYmxlIG9yIGFsbC1mcm96ZW4uCi0JCSAqCi0JCSAqIERvIHRoaXMg cmVnYXJkbGVzcyBvZiBhIGZ1bGwtcGFnZSBpbWFnZSBiZWluZyBhcHBsaWVkLCBzaW5jZSB0aGUK LQkJICogRlNNIGRhdGEgaXMgbm90IGluIHRoZSBwYWdlIGFueXdheS4KLQkJICovCi0JCWlmICh4 bHJlYy0+ZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpCi0JCQlYTG9nUmVjb3JkUGFn ZVdpdGhGcmVlU3BhY2UocmxvY2F0b3IsIGJsa25vLCBzcGFjZSk7Ci0JfQotCi0JLyoKLQkgKiBF dmVuIGlmIHdlIHNraXBwZWQgdGhlIGhlYXAgcGFnZSB1cGRhdGUgZHVlIHRvIHRoZSBMU04gaW50 ZXJsb2NrLCBpdCdzCi0JICogc3RpbGwgc2FmZSB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFw LiAgQW55IFdBTCByZWNvcmQgdGhhdCBjbGVhcnMKLQkgKiB0aGUgdmlzaWJpbGl0eSBtYXAgYml0 IGRvZXMgc28gYmVmb3JlIGNoZWNraW5nIHRoZSBwYWdlIExTTiwgc28gYW55Ci0JICogYml0cyB0 aGF0IG5lZWQgdG8gYmUgY2xlYXJlZCB3aWxsIHN0aWxsIGJlIGNsZWFyZWQuCi0JICovCi0JaWYg KFhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVuZGVkKHJlY29yZCwgMCwgUkJNX1pFUk9fT05fRVJS T1IsIGZhbHNlLAotCQkJCQkJCQkJICAmdm1idWZmZXIpID09IEJMS19ORUVEU19SRURPKQotCXsK LQkJUGFnZQkJdm1wYWdlID0gQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlcik7Ci0JCVJlbGF0aW9uCXJl bG47Ci0JCXVpbnQ4CQl2bWJpdHM7Ci0KLQkJLyogaW5pdGlhbGl6ZSB0aGUgcGFnZSBpZiBpdCB3 YXMgcmVhZCBhcyB6ZXJvcyAqLwotCQlpZiAoUGFnZUlzTmV3KHZtcGFnZSkpCi0JCQlQYWdlSW5p dCh2bXBhZ2UsIEJMQ0tTWiwgMCk7Ci0KLQkJLyogcmVtb3ZlIFZJU0lCSUxJVFlNQVBfWExPR18q ICovCi0JCXZtYml0cyA9IHhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsK LQotCQkvKgotCQkgKiBYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZCBsb2NrZWQgdGhlIGJ1 ZmZlci4gQnV0Ci0JCSAqIHZpc2liaWxpdHltYXBfc2V0IHdpbGwgaGFuZGxlIGxvY2tpbmcgaXRz ZWxmLgotCQkgKi8KLQkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsK LQotCQlyZWxuID0gQ3JlYXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3IpOwotCi0JCXZpc2li aWxpdHltYXBfc2V0KHJlbG4sIGJsa25vLCBJbnZhbGlkQnVmZmVyLCBsc24sIHZtYnVmZmVyLAot CQkJCQkJICB4bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24sIHZtYml0cyk7Ci0KLQkJUmVs ZWFzZUJ1ZmZlcih2bWJ1ZmZlcik7Ci0JCUZyZWVGYWtlUmVsY2FjaGVFbnRyeShyZWxuKTsKLQl9 Ci0JZWxzZSBpZiAoQnVmZmVySXNWYWxpZCh2bWJ1ZmZlcikpCi0JCVVubG9ja1JlbGVhc2VCdWZm ZXIodm1idWZmZXIpOwotfQotCiAvKgogICogR2l2ZW4gYW4gImluZm9iaXRzIiBmaWVsZCBmcm9t IGFuIFhMb2cgcmVjb3JkLCBzZXQgdGhlIGNvcnJlY3QgYml0cyBpbiB0aGUKICAqIGdpdmVuIGlu Zm9tYXNrIGFuZCBpbmZvbWFzazIgZm9yIHRoZSB0dXBsZSB0b3VjaGVkIGJ5IHRoZSByZWNvcmQu CkBAIC03NjksOCArNjMyLDggQEAgaGVhcF94bG9nX211bHRpX2luc2VydChYTG9nUmVhZGVyU3Rh dGUgKnJlY29yZCkKIAkgKgogCSAqIER1cmluZyByZWNvdmVyeSwgaG93ZXZlciwgbm8gY29uY3Vy cmVudCB3cml0ZXJzIGV4aXN0LiBUaGVyZWZvcmUsCiAJICogdXBkYXRpbmcgdGhlIFZNIHdpdGhv dXQgaG9sZGluZyB0aGUgaGVhcCBwYWdlIGxvY2sgaXMgc2FmZSBlbm91Z2guIFRoaXMKLQkgKiBz YW1lIGFwcHJvYWNoIGlzIHRha2VuIHdoZW4gcmVwbGF5aW5nIHhsX2hlYXBfdmlzaWJsZSByZWNv cmRzIChzZWUKLQkgKiBoZWFwX3hsb2dfdmlzaWJsZSgpKS4KKwkgKiBzYW1lIGFwcHJvYWNoIGlz IHRha2VuIHdoZW4gcmVwbGF5aW5nIFhMT0dfSEVBUDJfUFJVTkUqIHJlY29yZHMgKHNlZQorCSAq IGhlYXBfeGxvZ19wcnVuZV9mcmVlemUoKSkuCiAJICovCiAJaWYgKCh4bHJlYy0+ZmxhZ3MgJiBY TEhfSU5TRVJUX0FMTF9GUk9aRU5fU0VUKSAmJgogCQlYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRl bmRlZChyZWNvcmQsIDEsIFJCTV9aRVJPX09OX0VSUk9SLCBmYWxzZSwKQEAgLTc4MiwxMSArNjQ1 LDExIEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJ CWlmIChQYWdlSXNOZXcodm1wYWdlKSkKIAkJCVBhZ2VJbml0KHZtcGFnZSwgQkxDS1NaLCAwKTsK IAotCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoYmxrbm8sCi0JCQkJCQkJCSB2bWJ1ZmZlciwK LQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCQkgVklTSUJJTElU WU1BUF9BTExfRlJPWkVOLAotCQkJCQkJCQkgcmxvY2F0b3IpOworCQl2aXNpYmlsaXR5bWFwX3Nl dChibGtubywKKwkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJ U0lCTEUgfAorCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCisJCQkJCQkgIHJsb2Nh dG9yKTsKIAogCQlBc3NlcnQoQnVmZmVySXNEaXJ0eSh2bWJ1ZmZlcikpOwogCQlQYWdlU2V0TFNO KHZtcGFnZSwgbHNuKTsKQEAgLTEzNjcsOSArMTIzMCw2IEBAIGhlYXAyX3JlZG8oWExvZ1JlYWRl clN0YXRlICpyZWNvcmQpCiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUDoK IAkJCWhlYXBfeGxvZ19wcnVuZV9mcmVlemUocmVjb3JkKTsKIAkJCWJyZWFrOwotCQljYXNlIFhM T0dfSEVBUDJfVklTSUJMRToKLQkJCWhlYXBfeGxvZ192aXNpYmxlKHJlY29yZCk7Ci0JCQlicmVh azsKIAkJY2FzZSBYTE9HX0hFQVAyX01VTFRJX0lOU0VSVDoKIAkJCWhlYXBfeGxvZ19tdWx0aV9p bnNlcnQocmVjb3JkKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpp bmRleCA0Nzk4OTJiMDgwOC4uOTRiZTAzNDg1MDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5l aGVhcC5jCkBAIC0xMTg3LDggKzExODcsOCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQ cnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQkJICovCiAJCQlQYWdlU2V0QWxsVmlzaWJsZShw cnN0YXRlLnBhZ2UpOwogCQkJUGFnZUNsZWFyUHJ1bmFibGUocHJzdGF0ZS5wYWdlKTsKLQkJCXZp c2liaWxpdHltYXBfc2V0X3ZtYml0cyhwcnN0YXRlLmJsb2NrLCBwcnN0YXRlLnZtYnVmZmVyLCBw cnN0YXRlLm5ld192bWJpdHMsCi0JCQkJCQkJCQkgcHJzdGF0ZS5yZWxhdGlvbi0+cmRfbG9jYXRv cik7CisJCQl2aXNpYmlsaXR5bWFwX3NldChwcnN0YXRlLmJsb2NrLCBwcnN0YXRlLnZtYnVmZmVy LCBwcnN0YXRlLm5ld192bWJpdHMsCisJCQkJCQkJICBwcnN0YXRlLnJlbGF0aW9uLT5yZF9sb2Nh dG9yKTsKIAkJfQogCiAJCU1hcmtCdWZmZXJEaXJ0eShwcnN0YXRlLmJ1ZmZlcik7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggMTQ1MWM5NDM2NDQuLjhiZDE3OGFlN2U2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0xOTI2LDExICsxOTI2LDExIEBA IGxhenlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBC bG9ja051bWJlciBibGtubywKIAogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCQlQYWdl Q2xlYXJQcnVuYWJsZShwYWdlKTsKLQkJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhibGtubywK LQkJCQkJCQkJCSB2bWJ1ZmZlciwKLQkJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxF IHwKLQkJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCi0JCQkJCQkJCQkgdmFjcmVs LT5yZWwtPnJkX2xvY2F0b3IpOworCQkJdmlzaWJpbGl0eW1hcF9zZXQoYmxrbm8sCisJCQkJCQkJ ICB2bWJ1ZmZlciwKKwkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJ CSAgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOLAorCQkJCQkJCSAgdmFjcmVsLT5yZWwtPnJkX2xv Y2F0b3IpOwogCiAJCQkvKgogCQkJICogRW1pdCBXQUwgZm9yIHNldHRpbmcgUERfQUxMX1ZJU0lC TEUgb24gdGhlIGhlYXAgcGFnZSBhbmQKQEAgLTI3OTQsOSArMjc5NCw5IEBAIGxhenlfdmFjdXVt X2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIg YnVmZmVyLAogCQkgKi8KIAkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCVBhZ2VDbGVhclBy dW5hYmxlKHBhZ2UpOwotCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoYmxrbm8sCi0JCQkJCQkJ CSB2bWJ1ZmZlciwgdm1mbGFncywKLQkJCQkJCQkJIHZhY3JlbC0+cmVsLT5yZF9sb2NhdG9yKTsK KwkJdmlzaWJpbGl0eW1hcF9zZXQoYmxrbm8sCisJCQkJCQkgIHZtYnVmZmVyLCB2bWZsYWdzLAor CQkJCQkJICB2YWNyZWwtPnJlbC0+cmRfbG9jYXRvcik7CiAJCWNvbmZsaWN0X3hpZCA9IG5ld2Vz dF9saXZlX3hpZDsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zp c2liaWxpdHltYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwpp bmRleCBlMjFiOTYyODFhNi4uZjFkYTUyYjIwNjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 aXNpYmlsaXR5bWFwLmMKQEAgLTE0LDggKzE0LDcgQEAKICAqCQl2aXNpYmlsaXR5bWFwX2NsZWFy ICAtIGNsZWFyIGJpdHMgZm9yIG9uZSBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcAogICoJCXZp c2liaWxpdHltYXBfcGluCSAtIHBpbiBhIG1hcCBwYWdlIGZvciBzZXR0aW5nIGEgYml0CiAgKgkJ dmlzaWJpbGl0eW1hcF9waW5fb2sgLSBjaGVjayB3aGV0aGVyIGNvcnJlY3QgbWFwIHBhZ2UgaXMg YWxyZWFkeSBwaW5uZWQKLSAqCQl2aXNpYmlsaXR5bWFwX3NldAkgLSBzZXQgYml0KHMpIGluIGEg cHJldmlvdXNseSBwaW5uZWQgcGFnZSBhbmQgbG9nCi0gKgkJdmlzaWJpbGl0eW1hcF9zZXRfdm1i aXRzIC0gc2V0IGJpdChzKSBpbiBhIHBpbm5lZCBwYWdlCisgKgkJdmlzaWJpbGl0eW1hcF9zZXQJ IC0gc2V0IGJpdChzKSBpbiBhIHByZXZpb3VzbHkgcGlubmVkIHBhZ2UKICAqCQl2aXNpYmlsaXR5 bWFwX2dldF9zdGF0dXMgLSBnZXQgc3RhdHVzIG9mIGJpdHMKICAqCQl2aXNpYmlsaXR5bWFwX2Nv dW50ICAtIGNvdW50IG51bWJlciBvZiBiaXRzIHNldCBpbiB2aXNpYmlsaXR5IG1hcAogICoJCXZp c2liaWxpdHltYXBfcHJlcGFyZV90cnVuY2F0ZSAtCkBAIC0yMjIsMTEyICsyMjEsMTEgQEAgdmlz aWJpbGl0eW1hcF9waW5fb2soQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIHZtYnVmKQogCXJl dHVybiBCdWZmZXJJc1ZhbGlkKHZtYnVmKSAmJiBCdWZmZXJHZXRCbG9ja051bWJlcih2bWJ1Zikg PT0gbWFwQmxvY2s7CiB9CiAKLS8qCi0gKgl2aXNpYmlsaXR5bWFwX3NldCAtIHNldCBiaXQocykg b24gYSBwcmV2aW91c2x5IHBpbm5lZCBwYWdlCi0gKgotICogcmVjcHRyIGlzIHRoZSBMU04gb2Yg dGhlIFhMT0cgcmVjb3JkIHdlJ3JlIHJlcGxheWluZywgaWYgd2UncmUgaW4gcmVjb3ZlcnksCi0g KiBvciBJbnZhbGlkWExvZ1JlY1B0ciBpbiBub3JtYWwgcnVubmluZy4gIFRoZSBWTSBwYWdlIExT TiBpcyBhZHZhbmNlZCB0byB0aGUKLSAqIG9uZSBwcm92aWRlZDsgaW4gbm9ybWFsIHJ1bm5pbmcs IHdlIGdlbmVyYXRlIGEgbmV3IFhMT0cgcmVjb3JkIGFuZCBzZXQgdGhlCi0gKiBwYWdlIExTTiB0 byB0aGF0IHZhbHVlICh0aG91Z2ggdGhlIGhlYXAgcGFnZSdzIExTTiBtYXkgKm5vdCogYmUgdXBk YXRlZDsKLSAqIHNlZSBiZWxvdykuICBjdXRvZmZfeGlkIGlzIHRoZSBsYXJnZXN0IHhtaW4gb24g dGhlIHBhZ2UgYmVpbmcgbWFya2VkCi0gKiBhbGwtdmlzaWJsZTsgaXQgaXMgbmVlZGVkIGZvciBI b3QgU3RhbmRieSwgYW5kIGNhbiBiZSBJbnZhbGlkVHJhbnNhY3Rpb25JZAotICogaWYgdGhlIHBh Z2UgY29udGFpbnMgbm8gdHVwbGVzLiAgSXQgY2FuIGFsc28gYmUgc2V0IHRvIEludmFsaWRUcmFu c2FjdGlvbklkCi0gKiB3aGVuIGEgcGFnZSB0aGF0IGlzIGFscmVhZHkgYWxsLXZpc2libGUgaXMg YmVpbmcgbWFya2VkIGFsbC1mcm96ZW4uCi0gKgotICogQ2FsbGVyIGlzIGV4cGVjdGVkIHRvIHNl dCB0aGUgaGVhcCBwYWdlJ3MgUERfQUxMX1ZJU0lCTEUgYml0IGJlZm9yZSBjYWxsaW5nCi0gKiB0 aGlzIGZ1bmN0aW9uLiBFeGNlcHQgaW4gcmVjb3ZlcnksIGNhbGxlciBzaG91bGQgYWxzbyBwYXNz IHRoZSBoZWFwCi0gKiBidWZmZXIuIFdoZW4gY2hlY2tzdW1zIGFyZSBlbmFibGVkIGFuZCB3ZSdy ZSBub3QgaW4gcmVjb3ZlcnksIHdlIG11c3QgYWRkCi0gKiB0aGUgaGVhcCBidWZmZXIgdG8gdGhl IFdBTCBjaGFpbiB0byBwcm90ZWN0IGl0IGZyb20gYmVpbmcgdG9ybi4KLSAqCi0gKiBZb3UgbXVz dCBwYXNzIGEgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGNvcnJlY3QgbWFwIHBhZ2UgdG8gdGhpcyBm dW5jdGlvbi4KLSAqIENhbGwgdmlzaWJpbGl0eW1hcF9waW4gZmlyc3QgdG8gcGluIHRoZSByaWdo dCBvbmUuIFRoaXMgZnVuY3Rpb24gZG9lc24ndCBkbwotICogYW55IEkvTy4KLSAqLwotdm9pZAot dmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZm ZXIgaGVhcEJ1ZiwKLQkJCQkgIFhMb2dSZWNQdHIgcmVjcHRyLCBCdWZmZXIgdm1CdWYsIFRyYW5z YWN0aW9uSWQgY3V0b2ZmX3hpZCwKLQkJCQkgIHVpbnQ4IGZsYWdzKQotewotCUJsb2NrTnVtYmVy IG1hcEJsb2NrID0gSEVBUEJMS19UT19NQVBCTE9DSyhoZWFwQmxrKTsKLQl1aW50MzIJCW1hcEJ5 dGUgPSBIRUFQQkxLX1RPX01BUEJZVEUoaGVhcEJsayk7Ci0JdWludDgJCW1hcE9mZnNldCA9IEhF QVBCTEtfVE9fT0ZGU0VUKGhlYXBCbGspOwotCVBhZ2UJCXBhZ2U7Ci0JdWludDgJICAgKm1hcDsK LQl1aW50OAkJc3RhdHVzOwotCi0jaWZkZWYgVFJBQ0VfVklTSUJJTElUWU1BUAotCWVsb2coREVC VUcxLCAidm1fc2V0IGZsYWdzIDB4JTAyWCBmb3IgJXMgJWQiLAotCQkgZmxhZ3MsIFJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCksIGhlYXBCbGspOwotI2VuZGlmCi0KLQlBc3NlcnQoSW5SZWNv dmVyeSB8fCAhWExvZ1JlY1B0cklzVmFsaWQocmVjcHRyKSk7Ci0JQXNzZXJ0KEluUmVjb3Zlcnkg fHwgUGFnZUlzQWxsVmlzaWJsZShCdWZmZXJHZXRQYWdlKGhlYXBCdWYpKSk7Ci0JQXNzZXJ0KChm bGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgPT0gZmxhZ3MpOwotCi0JLyogTXVzdCBu ZXZlciBzZXQgYWxsX2Zyb3plbiBiaXQgd2l0aG91dCBhbHNvIHNldHRpbmcgYWxsX3Zpc2libGUg Yml0ICovCi0JQXNzZXJ0KGZsYWdzICE9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7Ci0KLQkv KiBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIHJpZ2h0IGhlYXAgcGFnZSBwaW5uZWQsIGlmIHByZXNl bnQgKi8KLQlpZiAoQnVmZmVySXNWYWxpZChoZWFwQnVmKSAmJiBCdWZmZXJHZXRCbG9ja051bWJl cihoZWFwQnVmKSAhPSBoZWFwQmxrKQotCQllbG9nKEVSUk9SLCAid3JvbmcgaGVhcCBidWZmZXIg cGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0Iik7Ci0KLQlBc3NlcnQoIUJ1ZmZlcklzVmFsaWQo aGVhcEJ1ZikgfHwKLQkJICAgQnVmZmVySXNMb2NrZWRCeU1lSW5Nb2RlKGhlYXBCdWYsIEJVRkZF Ul9MT0NLX0VYQ0xVU0lWRSkpOwotCi0JLyogQ2hlY2sgdGhhdCB3ZSBoYXZlIHRoZSByaWdodCBW TSBwYWdlIHBpbm5lZCAqLwotCWlmICghQnVmZmVySXNWYWxpZCh2bUJ1ZikgfHwgQnVmZmVyR2V0 QmxvY2tOdW1iZXIodm1CdWYpICE9IG1hcEJsb2NrKQotCQllbG9nKEVSUk9SLCAid3JvbmcgVk0g YnVmZmVyIHBhc3NlZCB0byB2aXNpYmlsaXR5bWFwX3NldCIpOwotCi0JcGFnZSA9IEJ1ZmZlckdl dFBhZ2Uodm1CdWYpOwotCW1hcCA9ICh1aW50OCAqKSBQYWdlR2V0Q29udGVudHMocGFnZSk7Ci0J TG9ja0J1ZmZlcih2bUJ1ZiwgQlVGRkVSX0xPQ0tfRVhDTFVTSVZFKTsKLQotCXN0YXR1cyA9ICht YXBbbWFwQnl0ZV0gPj4gbWFwT2Zmc2V0KSAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsKLQlp ZiAoZmxhZ3MgIT0gc3RhdHVzKQotCXsKLQkJU1RBUlRfQ1JJVF9TRUNUSU9OKCk7Ci0KLQkJbWFw W21hcEJ5dGVdIHw9IChmbGFncyA8PCBtYXBPZmZzZXQpOwotCQlNYXJrQnVmZmVyRGlydHkodm1C dWYpOwotCi0JCWlmIChSZWxhdGlvbk5lZWRzV0FMKHJlbCkpCi0JCXsKLQkJCWlmICghWExvZ1Jl Y1B0cklzVmFsaWQocmVjcHRyKSkKLQkJCXsKLQkJCQlBc3NlcnQoIUluUmVjb3ZlcnkpOwotCQkJ CXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUocmVsLCBoZWFwQnVmLCB2bUJ1ZiwgY3V0b2ZmX3hp ZCwgZmxhZ3MpOwotCi0JCQkJLyoKLQkJCQkgKiBJZiBkYXRhIGNoZWNrc3VtcyBhcmUgZW5hYmxl ZCAob3Igd2FsX2xvZ19oaW50cz1vbiksIHdlCi0JCQkJICogbmVlZCB0byBwcm90ZWN0IHRoZSBo ZWFwIHBhZ2UgZnJvbSBiZWluZyB0b3JuLgotCQkJCSAqCi0JCQkJICogSWYgbm90LCB0aGVuIHdl IG11c3QgKm5vdCogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04uIEluCi0JCQkJICogdGhpcyBj YXNlLCB0aGUgRlBJIGZvciB0aGUgaGVhcCBwYWdlIHdhcyBvbWl0dGVkIGZyb20gdGhlCi0JCQkJ ICogV0FMIHJlY29yZCBpbnNlcnRlZCBhYm92ZSwgc28gaXQgd291bGQgYmUgaW5jb3JyZWN0IHRv Ci0JCQkJICogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04uCi0JCQkJICovCi0JCQkJaWYgKFhM b2dIaW50Qml0SXNOZWVkZWQoKSkKLQkJCQl7Ci0JCQkJCVBhZ2UJCWhlYXBQYWdlID0gQnVmZmVy R2V0UGFnZShoZWFwQnVmKTsKLQotCQkJCQlQYWdlU2V0TFNOKGhlYXBQYWdlLCByZWNwdHIpOwot CQkJCX0KLQkJCX0KLQkJCVBhZ2VTZXRMU04ocGFnZSwgcmVjcHRyKTsKLQkJfQotCi0JCUVORF9D UklUX1NFQ1RJT04oKTsKLQl9Ci0KLQlMb2NrQnVmZmVyKHZtQnVmLCBCVUZGRVJfTE9DS19VTkxP Q0spOwotfQotCiAvKgogICogU2V0IFZNICh2aXNpYmlsaXR5IG1hcCkgZmxhZ3MgaW4gdGhlIFZN IGJsb2NrIGluIHZtQnVmLgogICoKICAqIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIGNh bGxlcnMgdGhhdCBsb2cgVk0gY2hhbmdlcyB0b2dldGhlcgogICogd2l0aCB0aGUgaGVhcCBwYWdl IG1vZGlmaWNhdGlvbnMgdGhhdCByZW5kZXJlZCB0aGUgcGFnZSBhbGwtdmlzaWJsZS4KLSAqIENh bGxlcnMgdGhhdCBsb2cgVk0gY2hhbmdlcyBzZXBhcmF0ZWx5IHNob3VsZCB1c2UgdmlzaWJpbGl0 eW1hcF9zZXQoKS4KICAqCiAgKiB2bUJ1ZiBtdXN0IGJlIHBpbm5lZCBhbmQgZXhjbHVzaXZlbHkg bG9ja2VkLCBhbmQgaXQgbXVzdCBjb3ZlciB0aGUgVk0gYml0cwogICogY29ycmVzcG9uZGluZyB0 byBoZWFwQmxrLgpAQCAtMzQzLDkgKzI0MSw5IEBAIHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9u IHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIGhlYXBCdWYsCiAgKiBybG9jYXRvciBp cyB1c2VkIG9ubHkgZm9yIGRlYnVnZ2luZyBtZXNzYWdlcy4KICAqLwogdm9pZAotdmlzaWJpbGl0 eW1hcF9zZXRfdm1iaXRzKEJsb2NrTnVtYmVyIGhlYXBCbGssCi0JCQkJCQkgQnVmZmVyIHZtQnVm LCB1aW50OCBmbGFncywKLQkJCQkJCSBjb25zdCBSZWxGaWxlTG9jYXRvciBybG9jYXRvcikKK3Zp c2liaWxpdHltYXBfc2V0KEJsb2NrTnVtYmVyIGhlYXBCbGssCisJCQkJICBCdWZmZXIgdm1CdWYs IHVpbnQ4IGZsYWdzLAorCQkJCSAgY29uc3QgUmVsRmlsZUxvY2F0b3IgcmxvY2F0b3IpCiB7CiAJ QmxvY2tOdW1iZXIgbWFwQmxvY2sgPSBIRUFQQkxLX1RPX01BUEJMT0NLKGhlYXBCbGspOwogCXVp bnQzMgkJbWFwQnl0ZSA9IEhFQVBCTEtfVE9fTUFQQllURShoZWFwQmxrKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKaW5kZXggMDJhZTkxNjUzYzEuLjc1YWU2ZjlkMzc1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYwpAQCAtMzQ5LDEzICszNDksNiBA QCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJ CX0KIAkJfQogCX0KLQllbHNlIGlmIChpbmZvID09IFhMT0dfSEVBUDJfVklTSUJMRSkKLQl7Ci0J CXhsX2hlYXBfdmlzaWJsZSAqeGxyZWMgPSAoeGxfaGVhcF92aXNpYmxlICopIHJlYzsKLQotCQlh cHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOiAldSwgZmxhZ3M6 IDB4JTAyWCIsCi0JCQkJCQkgeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLCB4bHJlYy0+ ZmxhZ3MpOwotCX0KIAllbHNlIGlmIChpbmZvID09IFhMT0dfSEVBUDJfTVVMVElfSU5TRVJUKQog CXsKIAkJeGxfaGVhcF9tdWx0aV9pbnNlcnQgKnhscmVjID0gKHhsX2hlYXBfbXVsdGlfaW5zZXJ0 ICopIHJlYzsKQEAgLTQ2MSw5ICs0NTQsNiBAQCBoZWFwMl9pZGVudGlmeSh1aW50OCBpbmZvKQog CQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX0NMRUFOVVA6CiAJCQlpZCA9ICJQUlVORV9W QUNVVU1fQ0xFQU5VUCI7CiAJCQlicmVhazsKLQkJY2FzZSBYTE9HX0hFQVAyX1ZJU0lCTEU6Ci0J CQlpZCA9ICJWSVNJQkxFIjsKLQkJCWJyZWFrOwogCQljYXNlIFhMT0dfSEVBUDJfTVVMVElfSU5T RVJUOgogCQkJaWQgPSAiTVVMVElfSU5TRVJUIjsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKaW5kZXggMjFmMDM4NjRhNjYuLjNjMDI3YmNiMmY3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKQEAgLTQ0OCw3ICs0NDgs NiBAQCBoZWFwMl9kZWNvZGUoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LCBYTG9nUmVjb3Jk QnVmZmVyICpidWYpCiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9PTl9BQ0NFU1M6CiAJCWNhc2Ug WExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTjoKIAkJY2FzZSBYTE9HX0hFQVAyX1BSVU5FX1ZB Q1VVTV9DTEVBTlVQOgotCQljYXNlIFhMT0dfSEVBUDJfVklTSUJMRToKIAkJY2FzZSBYTE9HX0hF QVAyX0xPQ0tfVVBEQVRFRDoKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMv c3RhbmRieS5jCmluZGV4IGYzYWQ5MGM3YzdhLi42NmVkNTFhOGFhMSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv aXBjL3N0YW5kYnkuYwpAQCAtNDc3LDEyICs0NzcsMTIgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKIAkg KiBJZiB3ZSBnZXQgcGFzc2VkIEludmFsaWRUcmFuc2FjdGlvbklkIHRoZW4gd2UgZG8gbm90aGlu ZyAobm8gY29uZmxpY3QpLgogCSAqCiAJICogVGhpcyBjYW4gaGFwcGVuIHdoZW4gcmVwbGF5aW5n IGFscmVhZHktYXBwbGllZCBXQUwgcmVjb3JkcyBhZnRlciBhCi0JICogc3RhbmRieSBjcmFzaCBv ciByZXN0YXJ0LCBvciB3aGVuIHJlcGxheWluZyBhbiBYTE9HX0hFQVAyX1ZJU0lCTEUKLQkgKiBy ZWNvcmQgdGhhdCBtYXJrcyBhcyBmcm96ZW4gYSBwYWdlIHdoaWNoIHdhcyBhbHJlYWR5IGFsbC12 aXNpYmxlLiAgSXQncwotCSAqIGFsc28gcXVpdGUgY29tbW9uIHdpdGggcmVjb3JkcyBnZW5lcmF0 ZWQgZHVyaW5nIGluZGV4IGRlbGV0aW9uCi0JICogKG9yaWdpbmFsIGV4ZWN1dGlvbiBvZiB0aGUg ZGVsZXRpb24gY2FuIHJlYXNvbiB0aGF0IGEgcmVjb3ZlcnkgY29uZmxpY3QKLQkgKiB3aGljaCBp cyBzdWZmaWNpZW50IGZvciB0aGUgZGVsZXRpb24gb3BlcmF0aW9uIG11c3QgdGFrZSBwbGFjZSBi ZWZvcmUKLQkgKiByZXBsYXkgb2YgdGhlIGRlbGV0aW9uIHJlY29yZCBpdHNlbGYpLgorCSAqIHN0 YW5kYnkgY3Jhc2ggb3IgcmVzdGFydCwgb3Igd2hlbiByZXBsYXlpbmcgYSByZWNvcmQgdGhhdCBt YXJrcyBhcworCSAqIGZyb3plbiBhIHBhZ2Ugd2hpY2ggd2FzIGFscmVhZHkgbWFya2VkIGFsbC12 aXNpYmxlIGluIHRoZSB2aXNpYmlsaXR5CisJICogbWFwLiAgSXQncyBhbHNvIHF1aXRlIGNvbW1v biB3aXRoIHJlY29yZHMgZ2VuZXJhdGVkIGR1cmluZyBpbmRleAorCSAqIGRlbGV0aW9uIChvcmln aW5hbCBleGVjdXRpb24gb2YgdGhlIGRlbGV0aW9uIGNhbiByZWFzb24gdGhhdCBhIHJlY292ZXJ5 CisJICogY29uZmxpY3Qgd2hpY2ggaXMgc3VmZmljaWVudCBmb3IgdGhlIGRlbGV0aW9uIG9wZXJh dGlvbiBtdXN0IHRha2UgcGxhY2UKKwkgKiBiZWZvcmUgcmVwbGF5IG9mIHRoZSBkZWxldGlvbiBy ZWNvcmQgaXRzZWxmKS4KIAkgKi8KIAlpZiAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uKSkKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNj ZXNzL2hlYXBhbV94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaAppbmRl eCBjZTM1NjZiYTk0OS4uNWVlZDU2N2E4ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW1feGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCkBA IC02MCw3ICs2MCw2IEBACiAjZGVmaW5lIFhMT0dfSEVBUDJfUFJVTkVfT05fQUNDRVNTCQkweDEw CiAjZGVmaW5lIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX1NDQU4JMHgyMAogI2RlZmluZSBYTE9H X0hFQVAyX1BSVU5FX1ZBQ1VVTV9DTEVBTlVQCTB4MzAKLSNkZWZpbmUgWExPR19IRUFQMl9WSVNJ QkxFCQkweDQwCiAjZGVmaW5lIFhMT0dfSEVBUDJfTVVMVElfSU5TRVJUIDB4NTAKICNkZWZpbmUg WExPR19IRUFQMl9MT0NLX1VQREFURUQgMHg2MAogI2RlZmluZSBYTE9HX0hFQVAyX05FV19DSUQJ CTB4NzAKQEAgLTQ0MywyMCArNDQyLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9pbnBsYWNl CiAKICNkZWZpbmUgTWluU2l6ZU9mSGVhcElucGxhY2UJKG9mZnNldG9mKHhsX2hlYXBfaW5wbGFj ZSwgbm1zZ3MpICsgc2l6ZW9mKGludCkpCiAKLS8qCi0gKiBUaGlzIGlzIHdoYXQgd2UgbmVlZCB0 byBrbm93IGFib3V0IHNldHRpbmcgYSB2aXNpYmlsaXR5IG1hcCBiaXQKLSAqCi0gKiBCYWNrdXAg YmxrIDA6IHZpc2liaWxpdHkgbWFwIGJ1ZmZlcgotICogQmFja3VwIGJsayAxOiBoZWFwIGJ1ZmZl cgotICovCi10eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3Zpc2libGUKLXsKLQlUcmFuc2FjdGlvbklk IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwotCXVpbnQ4CQlmbGFnczsKLX0geGxfaGVhcF92aXNp YmxlOwotCi0jZGVmaW5lIFNpemVPZkhlYXBWaXNpYmxlIChvZmZzZXRvZih4bF9oZWFwX3Zpc2li bGUsIGZsYWdzKSArIHNpemVvZih1aW50OCkpCi0KIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfbmV3 X2NpZAogewogCS8qCkBAIC01MDAsMTEgKzQ4NSw2IEBAIGV4dGVybiB2b2lkIGhlYXAyX2Rlc2Mo U3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKIGV4dGVybiBjb25zdCBj aGFyICpoZWFwMl9pZGVudGlmeSh1aW50OCBpbmZvKTsKIGV4dGVybiB2b2lkIGhlYXBfeGxvZ19s b2dpY2FsX3Jld3JpdGUoWExvZ1JlYWRlclN0YXRlICpyKTsKIAotZXh0ZXJuIFhMb2dSZWNQdHIg bG9nX2hlYXBfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBoZWFwX2J1ZmZlciwKLQkJCQkJ CQkJICAgQnVmZmVyIHZtX2J1ZmZlciwKLQkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBzbmFwc2hv dENvbmZsaWN0SG9yaXpvbiwKLQkJCQkJCQkJICAgdWludDggdm1mbGFncyk7Ci0KIC8qIGluIGhl YXBkZXNjLmMsIHNvIGl0IGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBmcm9udGVuZC9iYWNrZW5kIGNv ZGUgKi8KIGV4dGVybiB2b2lkIGhlYXBfeGxvZ19kZXNlcmlhbGl6ZV9wcnVuZV9hbmRfZnJlZXpl KGNoYXIgKmN1cnNvciwgdWludDE2IGZsYWdzLAogCQkJCQkJCQkJCQkJICAgaW50ICpucGxhbnMs IHhsaHBfZnJlZXplX3BsYW4gKipwbGFucywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy92aXNpYmlsaXR5bWFwLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oCmlu ZGV4IDUyY2RlNTZiZTg2Li5lNGUwY2ZhOTg5ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNj ZXNzL3Zpc2liaWxpdHltYXAuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1h cC5oCkBAIC0xNSw3ICsxNSw2IEBACiAjZGVmaW5lIFZJU0lCSUxJVFlNQVBfSAogCiAjaW5jbHVk ZSAiYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgiCi0jaW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZz LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9ibG9jay5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYnVmLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9yZWxmaWxlbG9jYXRvci5oIgpAQCAtMzIsMTUgKzMxLDkgQEAg ZXh0ZXJuIGJvb2wgdmlzaWJpbGl0eW1hcF9jbGVhcihSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVy IGhlYXBCbGssCiBleHRlcm4gdm9pZCB2aXNpYmlsaXR5bWFwX3BpbihSZWxhdGlvbiByZWwsIEJs b2NrTnVtYmVyIGhlYXBCbGssCiAJCQkJCQkJICBCdWZmZXIgKnZtYnVmKTsKIGV4dGVybiBib29s IHZpc2liaWxpdHltYXBfcGluX29rKEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciB2bWJ1Zik7 Ci1leHRlcm4gdm9pZCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsCi0JCQkJCQkJICBC bG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKLQkJCQkJCQkgIFhMb2dSZWNQdHIg cmVjcHRyLAotCQkJCQkJCSAgQnVmZmVyIHZtQnVmLAotCQkJCQkJCSAgVHJhbnNhY3Rpb25JZCBj dXRvZmZfeGlkLAotCQkJCQkJCSAgdWludDggZmxhZ3MpOwotZXh0ZXJuIHZvaWQgdmlzaWJpbGl0 eW1hcF9zZXRfdm1iaXRzKEJsb2NrTnVtYmVyIGhlYXBCbGssCi0JCQkJCQkJCQkgQnVmZmVyIHZt QnVmLCB1aW50OCBmbGFncywKLQkJCQkJCQkJCSBjb25zdCBSZWxGaWxlTG9jYXRvciBybG9jYXRv cik7CitleHRlcm4gdm9pZCB2aXNpYmlsaXR5bWFwX3NldChCbG9ja051bWJlciBoZWFwQmxrLAor CQkJCQkJCSAgQnVmZmVyIHZtQnVmLCB1aW50OCBmbGFncywKKwkJCQkJCQkgIGNvbnN0IFJlbEZp bGVMb2NhdG9yIHJsb2NhdG9yKTsKIGV4dGVybiB1aW50OCB2aXNpYmlsaXR5bWFwX2dldF9zdGF0 dXMoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgKnZtYnVmKTsKIGV4 dGVybiB2b2lkIHZpc2liaWxpdHltYXBfY291bnQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciAq YWxsX3Zpc2libGUsIEJsb2NrTnVtYmVyICphbGxfZnJvemVuKTsKIGV4dGVybiBCbG9ja051bWJl ciB2aXNpYmlsaXR5bWFwX3ByZXBhcmVfdHJ1bmNhdGUoUmVsYXRpb24gcmVsLApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmggYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaAppbmRleCA4OTE1M2IzY2Q5YS4uZTU3OTRjODU1OWUg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCisrKyBi L3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCkBAIC0yMSwxNCArMjEsNSBA QAogI2RlZmluZSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4JMHgwMgogI2RlZmluZSBWSVNJQklM SVRZTUFQX1ZBTElEX0JJVFMJMHgwMwkvKiBPUiBvZiBhbGwgdmFsaWQgdmlzaWJpbGl0eW1hcAog CQkJCQkJCQkJCQkgKiBmbGFncyBiaXRzICovCi0vKgotICogVG8gZGV0ZWN0IHJlY292ZXJ5IGNv bmZsaWN0cyBkdXJpbmcgbG9naWNhbCBkZWNvZGluZyBvbiBhIHN0YW5kYnksIHdlIG5lZWQKLSAq IHRvIGtub3cgaWYgYSB0YWJsZSBpcyBhIHVzZXIgY2F0YWxvZyB0YWJsZS4gRm9yIHRoYXQgd2Ug YWRkIGFuIGFkZGl0aW9uYWwKLSAqIGJpdCBpbnRvIHhsX2hlYXBfdmlzaWJsZS5mbGFncywgaW4g YWRkaXRpb24gdG8gdGhlIGFib3ZlLgotICoKLSAqIE5COiBWSVNJQklMSVRZTUFQX1hMT0dfKiBt YXkgbm90IGJlIHBhc3NlZCB0byB2aXNpYmlsaXR5bWFwX3NldCgpLgotICovCi0jZGVmaW5lIFZJ U0lCSUxJVFlNQVBfWExPR19DQVRBTE9HX1JFTAkweDA0Ci0jZGVmaW5lIFZJU0lCSUxJVFlNQVBf WExPR19WQUxJRF9CSVRTCShWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMgfCBWSVNJQklMSVRZTUFQ X1hMT0dfQ0FUQUxPR19SRUwpCiAKICNlbmRpZgkJCQkJCQkvKiBWSVNJQklMSVRZTUFQREVGU19I ICovCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDNkYTE5ZDQxNDEzLi40NDk0OGQ2ZDYx MSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTQzNjAsNyArNDM2MCw2IEBAIHhsX2hl YXBfcHJ1bmUKIHhsX2hlYXBfcmV3cml0ZV9tYXBwaW5nCiB4bF9oZWFwX3RydW5jYXRlCiB4bF9o ZWFwX3VwZGF0ZQoteGxfaGVhcF92aXNpYmxlCiB4bF9pbnZhbGlkX3BhZ2UKIHhsX2ludmFsaWRf cGFnZV9rZXkKIHhsX2ludmFsaWRhdGlvbnMKLS0gCjIuNDMuMAoK --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0009-Initialize-missing-fields-in-CreateExecutorState.patch" Content-Disposition: attachment; filename="v37-0009-Initialize-missing-fields-in-CreateExecutorState.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmabwr78 RnJvbSA1MmNhMDMzMWRiMGNkZjU4NjcyNTYyYTkxMmRlOTQyMzIxN2FkYWI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTdW4sIDEgTWFyIDIwMjYgMTY6NDg6MTkgLTA1MDAKU3ViamVjdDogW1BB VENIIHYzNyAwOS8xNV0gSW5pdGlhbGl6ZSBtaXNzaW5nIGZpZWxkcyBpbiBDcmVhdGVFeGVjdXRv clN0YXRlKCkKCmQ0N2NiZjQ3NGVjYmQ0NDlhNCBmb3Jnb3QgdG8gaW5pdGlhbGl6ZSBhIGZldyBm aWVsZHMgaXQgaW50cm9kdWNlZCBpbgp0aGUgRVN0YXRlLCBzbyBkbyB0aGF0IG5vdy4KCkF1dGhv cjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQt Ynk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1V0aWxzLmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMKaW5kZXggYTc5NTVlNDc2ZjkuLmNkNGQ1NDUyY2Zi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYwpAQCAtMTE5LDYgKzExOSw5IEBAIENyZWF0ZUV4 ZWN1dG9yU3RhdGUodm9pZCkKIAllc3RhdGUtPmVzX3J0ZXBlcm1pbmZvcyA9IE5JTDsKIAllc3Rh dGUtPmVzX3BsYW5uZWRzdG10ID0gTlVMTDsKIAllc3RhdGUtPmVzX3BhcnRfcHJ1bmVfaW5mb3Mg PSBOSUw7CisJZXN0YXRlLT5lc19wYXJ0X3BydW5lX3N0YXRlcyA9IE5JTDsKKwllc3RhdGUtPmVz X3BhcnRfcHJ1bmVfcmVzdWx0cyA9IE5JTDsKKwllc3RhdGUtPmVzX3VucHJ1bmVkX3JlbGlkcyA9 IE5VTEw7CiAKIAllc3RhdGUtPmVzX2p1bmtGaWx0ZXIgPSBOVUxMOwogCi0tIAoyLjQzLjAKCg== --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0010-Track-which-relations-are-modified-by-a-query.patch" Content-Disposition: attachment; filename="v37-0010-Track-which-relations-are-modified-by-a-query.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmac0q09 RnJvbSA4YWNmMmJiYjg3OGNlNDQ1YTA2MWUwYWIxOGVkY2Q2YjY2MDk5ZTU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTU6MDc6MjQgLTA1MDAKU3ViamVjdDogW1BB VENIIHYzNyAxMC8xNV0gVHJhY2sgd2hpY2ggcmVsYXRpb25zIGFyZSBtb2RpZmllZCBieSBhIHF1 ZXJ5CgpTYXZlIHRoZSByZWxpZHMgaW4gYSBiaXRtYXAgaW4gdGhlIGVzdGF0ZS4gQSBsYXRlciBj b21taXQgd2lsbCBwYXNzIHRoaXMKaW5mb3JtYXRpb24gZG93biB0byBzY2FuIG5vZGVzIHRvIGNv bnRyb2wgd2hldGhlciBvciBub3QgdGhlIHNjYW4gYWxsb3dzCnNldHRpbmcgdGhlIHZpc2liaWxp dHkgbWFwIHdoaWxlIG9uLWFjY2VzcyBwcnVuaW5nLiBXZSBkb24ndCB3YW50IHRvIHNldAp0aGUg dmlzaWJpbGl0eSBtYXAgaWYgdGhlIHF1ZXJ5IGlzIGp1c3QgZ29pbmcgdG8gbW9kaWZ5IHRoZSBw YWdlCmltbWVkaWF0ZWx5IGFmdGVyLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmll cGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFu YXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4K RGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9GNUNERDFCNS02MjhDLTQ0QTEtOUY4NS0z OTU4QzYyNkY2QTklNDBnbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFp bi5jICB8IDE4ICsrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0 aWxzLmMgfCAzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9l eGVjdXRvci9leGVjdXRvci5oICB8ICAzICsrKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVz LmggICAgfCAgNiArKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jCmluZGV4IGJmZDNlYmM2MDFlLi41N2RjZGVkYTA1NiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jCkBAIC05MjAsNiArOTIwLDEwIEBAIEluaXRQbGFuKFF1ZXJ5RGVz YyAqcXVlcnlEZXNjLCBpbnQgZWZsYWdzKQogCQkJCQlicmVhazsKIAkJCX0KIAorCQkJLyogSWYg aXQgaGFzIGEgcm93bWFyaywgdGhlIHJlbGF0aW9uIG1heSBiZSBtb2RpZmllZCAqLworCQkJZXN0 YXRlLT5lc19tb2RpZmllZF9yZWxpZHMgPSBibXNfYWRkX21lbWJlcihlc3RhdGUtPmVzX21vZGlm aWVkX3JlbGlkcywKKwkJCQkJCQkJCQkJCQkJcmMtPnJ0aSk7CisKIAkJCS8qIENoZWNrIHRoYXQg cmVsYXRpb24gaXMgYSBsZWdhbCB0YXJnZXQgZm9yIG1hcmtpbmcgKi8KIAkJCWlmIChyZWxhdGlv bikKIAkJCQlDaGVja1ZhbGlkUm93TWFya1JlbChyZWxhdGlvbiwgcmMtPm1hcmtUeXBlKTsKQEAg LTk5MCw2ICs5OTQsMTAgQEAgSW5pdFBsYW4oUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBlZmxh Z3MpCiAJICovCiAJcGxhbnN0YXRlID0gRXhlY0luaXROb2RlKHBsYW4sIGVzdGF0ZSwgZWZsYWdz KTsKIAorI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKwlDcm9zc0NoZWNrTW9kaWZpZWRSZWxp ZHMoZXN0YXRlKTsKKyNlbmRpZgorCiAJLyoKIAkgKiBHZXQgdGhlIHR1cGxlIGRlc2NyaXB0b3Ig ZGVzY3JpYmluZyB0aGUgdHlwZSBvZiB0dXBsZXMgdG8gcmV0dXJuLgogCSAqLwpAQCAtMzAzMyw2 ICszMDQxLDEyIEBAIEV2YWxQbGFuUXVhbFN0YXJ0KEVQUVN0YXRlICplcHFzdGF0ZSwgUGxhbiAq cGxhblRyZWUpCiAJcmNlc3RhdGUtPmVzX291dHB1dF9jaWQgPSBwYXJlbnRlc3RhdGUtPmVzX291 dHB1dF9jaWQ7CiAJcmNlc3RhdGUtPmVzX3F1ZXJ5RW52ID0gcGFyZW50ZXN0YXRlLT5lc19xdWVy eUVudjsKIAorCS8qCisJICogVXNlIGEgZGVlcCBjb3B5IHRvIGF2b2lkIHN0YWxlIHBvaW50ZXJz IHNpbmNlIGJtc19hZGRfbWVtYmVyKCkgbWF5CisJICogcmVhbGxvY2F0ZSB0aGUgYml0bWFwLgor CSAqLworCXJjZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMgPSBibXNfY29weShwYXJlbnRlc3Rh dGUtPmVzX21vZGlmaWVkX3JlbGlkcyk7CisKIAkvKgogCSAqIFJlc3VsdFJlbEluZm9zIG5lZWRl ZCBieSBzdWJwbGFucyBhcmUgaW5pdGlhbGl6ZWQgZnJvbSBzY3JhdGNoIHdoZW4gdGhlCiAJICog c3VicGxhbnMgdGhlbXNlbHZlcyBhcmUgaW5pdGlhbGl6ZWQuCkBAIC0zMTY1LDYgKzMxNzksMTAg QEAgRXZhbFBsYW5RdWFsU3RhcnQoRVBRU3RhdGUgKmVwcXN0YXRlLCBQbGFuICpwbGFuVHJlZSkK IAkgKi8KIAllcHFzdGF0ZS0+cmVjaGVja3BsYW5zdGF0ZSA9IEV4ZWNJbml0Tm9kZShwbGFuVHJl ZSwgcmNlc3RhdGUsIDApOwogCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCUNyb3NzQ2hl Y2tNb2RpZmllZFJlbGlkcyhyY2VzdGF0ZSk7CisjZW5kaWYKKwogCU1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhvbGRjb250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY1V0aWxzLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYwppbmRleCBjZDRk NTQ1MmNmYi4uMGY4MzY0Yjg3MjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNVdGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jCkBAIC0xMjMs NiArMTIzLDggQEAgQ3JlYXRlRXhlY3V0b3JTdGF0ZSh2b2lkKQogCWVzdGF0ZS0+ZXNfcGFydF9w cnVuZV9yZXN1bHRzID0gTklMOwogCWVzdGF0ZS0+ZXNfdW5wcnVuZWRfcmVsaWRzID0gTlVMTDsK IAorCWVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzID0gTlVMTDsKKwogCWVzdGF0ZS0+ZXNfanVu a0ZpbHRlciA9IE5VTEw7CiAKIAllc3RhdGUtPmVzX291dHB1dF9jaWQgPSAoQ29tbWFuZElkKSAw OwpAQCAtODcxLDYgKzg3MywzMyBAQCBFeGVjR2V0UmFuZ2VUYWJsZVJlbGF0aW9uKEVTdGF0ZSAq ZXN0YXRlLCBJbmRleCBydGksIGJvb2wgaXNSZXN1bHRSZWwpCiAJcmV0dXJuIHJlbDsKIH0KIAor I2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKy8qCisgKiBBc3NlcnQgdGhhdCBlc19tb2RpZmll ZF9yZWxpZHMgaW5jbHVkZXMgYWxsIHBvdGVudGlhbGx5IG1vZGlmaWVkIFJUCisgKiBpbmRleGVz LgorICovCit2b2lkCitDcm9zc0NoZWNrTW9kaWZpZWRSZWxpZHMoRVN0YXRlICplc3RhdGUpCit7 CisJQml0bWFwc2V0ICAqZXhwZWN0ZWQgPSBOVUxMOworCUxpc3RDZWxsICAgKmxjOworCisJZm9y ZWFjaChsYywgZXN0YXRlLT5lc19vcGVuZWRfcmVzdWx0X3JlbGF0aW9ucykKKwl7CisJCVJlc3Vs dFJlbEluZm8gKnJyaSA9IGxmaXJzdF9ub2RlKFJlc3VsdFJlbEluZm8sIGxjKTsKKworCQlleHBl Y3RlZCA9IGJtc19hZGRfbWVtYmVyKGV4cGVjdGVkLCBycmktPnJpX1JhbmdlVGFibGVJbmRleCk7 CisJfQorCWlmIChlc3RhdGUtPmVzX3Jvd21hcmtzKQorCXsKKwkJZm9yIChJbmRleCBydGkgPSAx OyBydGkgPD0gZXN0YXRlLT5lc19yYW5nZV90YWJsZV9zaXplOyBydGkrKykKKwkJCWlmIChlc3Rh dGUtPmVzX3Jvd21hcmtzW3J0aSAtIDFdICE9IE5VTEwpCisJCQkJZXhwZWN0ZWQgPSBibXNfYWRk X21lbWJlcihleHBlY3RlZCwgcnRpKTsKKwl9CisJQXNzZXJ0KGJtc19pc19zdWJzZXQoZXhwZWN0 ZWQsIGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzKSk7Cit9CisjZW5kaWYKKwogLyoKICAqIEV4 ZWNJbml0UmVzdWx0UmVsYXRpb24KICAqCQlPcGVuIHJlbGF0aW9uIGdpdmVuIGJ5IHRoZSBwYXNz ZWQtaW4gUlQgaW5kZXggYW5kIGZpbGwgaXRzCkBAIC04OTYsNiArOTI1LDggQEAgRXhlY0luaXRS ZXN1bHRSZWxhdGlvbihFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5m bywKIAkJZXN0YXRlLT5lc19yZXN1bHRfcmVsYXRpb25zID0gKFJlc3VsdFJlbEluZm8gKiopCiAJ CQlwYWxsb2MwKGVzdGF0ZS0+ZXNfcmFuZ2VfdGFibGVfc2l6ZSAqIHNpemVvZihSZXN1bHRSZWxJ bmZvICopKTsKIAllc3RhdGUtPmVzX3Jlc3VsdF9yZWxhdGlvbnNbcnRpIC0gMV0gPSByZXN1bHRS ZWxJbmZvOworCWVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzID0gYm1zX2FkZF9tZW1iZXIoZXN0 YXRlLT5lc19tb2RpZmllZF9yZWxpZHMsCisJCQkJCQkJCQkJCQlydGkpOwogCiAJLyoKIAkgKiBT YXZpbmcgaW4gdGhlIGxpc3QgYWxsb3dzIHRvIGF2b2lkIG5lZWRsZXNzbHkgdHJhdmVyc2luZyB0 aGUgd2hvbGUKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggYi9z cmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCmluZGV4IGQ0NmJhNTk4OTVkLi4wNWYwMzJi YWVhYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAorKysgYi9z cmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCkBAIC03MDMsNiArNzAzLDkgQEAgZXh0ZXJu IFJlbGF0aW9uIEV4ZWNHZXRSYW5nZVRhYmxlUmVsYXRpb24oRVN0YXRlICplc3RhdGUsIEluZGV4 IHJ0aSwKIAkJCQkJCQkJCQkgIGJvb2wgaXNSZXN1bHRSZWwpOwogZXh0ZXJuIHZvaWQgRXhlY0lu aXRSZXN1bHRSZWxhdGlvbihFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVs SW5mbywKIAkJCQkJCQkJICAgSW5kZXggcnRpKTsKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5H CitleHRlcm4gdm9pZCBDcm9zc0NoZWNrTW9kaWZpZWRSZWxpZHMoRVN0YXRlICplc3RhdGUpOwor I2VuZGlmCiAKIGV4dGVybiBpbnQJZXhlY3V0b3JfZXJycG9zaXRpb24oRVN0YXRlICplc3RhdGUs IGludCBsb2NhdGlvbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggNjNjMDY3ZDVhYWUuLjYx MDM4NWRmMTJiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNjc5LDYgKzY3OSwxMiBAQCB0eXBl ZGVmIHN0cnVjdCBFU3RhdGUKIAkJCQkJCQkJCSAqIEV4ZWNEb0luaXRpYWxQcnVuaW5nKCkgKi8K IAljb25zdCBjaGFyICplc19zb3VyY2VUZXh0OwkvKiBTb3VyY2UgdGV4dCBmcm9tIFF1ZXJ5RGVz YyAqLwogCisJLyoKKwkgKiBSVCBpbmRleGVzIG9mIHJlbGF0aW9ucyBtb2RpZmllZCBieSB0aGUg cXVlcnkgdGhyb3VnaCBhCisJICogVVBEQVRFL0RFTEVURS9JTlNFUlQvTUVSR0Ugb3IgdGFyZ2V0 ZWQgYnkgYSBTRUxFQ1QgRk9SIFVQREFURS4KKwkgKi8KKwlCaXRtYXBzZXQgICplc19tb2RpZmll ZF9yZWxpZHM7CisKIAlKdW5rRmlsdGVyICplc19qdW5rRmlsdGVyOwkvKiB0b3AtbGV2ZWwganVu ayBmaWx0ZXIsIGlmIGFueSAqLwogCiAJLyogSWYgcXVlcnkgY2FuIGluc2VydC9kZWxldGUgdHVw bGVzLCB0aGUgY29tbWFuZCBJRCB0byBtYXJrIHRoZW0gd2l0aCAqLwotLSAKMi40My4wCgo= --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0011-Thread-flags-through-begin-scan-APIs.patch" Content-Disposition: attachment; filename="v37-0011-Thread-flags-through-begin-scan-APIs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmac42d10 RnJvbSBiMWNmNzM2YTM3YjRjNWJhN2JiMzkwNTg1YTcwMDJiOTY5YjhhYmViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MTcgLTA1MDAKU3ViamVjdDogW1BB VENIIHYzNyAxMS8xNV0gVGhyZWFkIGZsYWdzIHRocm91Z2ggYmVnaW4tc2NhbiBBUElzCgpBZGQg YSBmbGFncyBwYXJhbWV0ZXIgdG8gdGhlIGluZGV4X2ZldGNoX2JlZ2luKCkgdGFibGUgQU0gY2Fs bGJhY2sgYW5kCnRoZSBiZWdpbi1zY2FuIGhlbHBlcnMgc28gdGhlIGV4ZWN1dG9yIGNhbiBwYXNz IGNvbnRleHQgZm9yIGJ1aWxkaW5nCnNjYW4gZGVzY3JpcHRvcnMuIFRoaXMgaW50cm9kdWNlcyBh biBleHRlbnNpb24gcG9pbnQgZm9yIGZvbGxvdy11cCB3b3JrCnRvIG1hcmsgcmVsYXRpb25zIGFz IHJlYWQtb25seSBmb3IgdGhlIGN1cnJlbnQgcXVlcnksIHdpdGhvdXQgY2hhbmdpbmcKYmVoYXZp b3IgaW4gdGhpcyBwYXRjaC4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdl bWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5j b20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRjVDREQxQjUtNjI4Qy00NEExLTlG ODUtMzk1OEM2MjZGNkE5JTQwZ21haWwuY29tCi0tLQogY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93 bG9ja3MuYyAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5j ICAgICAgICAgICAgfCAgMyArKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMg ICAgICAgIHwgIDMgKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5j ICB8ICA2ICsrKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMgICAgICAgICAg fCAgNCArKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jICAgICAgICB8ICA2 ICsrKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMgICAgICAgfCAgMiAr LQogc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxlYW0uYyAgICAgICAgfCAgNyArKysrLS0t CiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb25zdHJhaW50LmMgICAgICAgICB8ICAyICstCiBzcmMv YmFja2VuZC9jb21tYW5kcy9jb3B5dG8uYyAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICB8ICA4ICsrKystLS0tCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy90eXBlY21kcy5jICAgICAgICAgICB8ICA0ICsrLS0KIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNJbmRleGluZy5jICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNSZXBsaWNhdGlvbi5jICAgIHwgIDggKysrKy0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVCaXRtYXBIZWFwc2Nhbi5jIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJ bmRleG9ubHlzY2FuLmMgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNj YW4uYyAgICAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAg ICAgICAgfCAgNiArKystLS0KIHNyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMg ICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jICAgICAgICAgIHwg IDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oICAgICAgICAgICAgICAgIHwgIDIgKy0K IHNyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgIHwgMTcgKysrKysrKysr LS0tLS0tLS0KIDIyIGZpbGVzIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdyb3dsb2Nrcy9wZ3Jvd2xvY2tzLmMgYi9jb250 cmliL3Bncm93bG9ja3MvcGdyb3dsb2Nrcy5jCmluZGV4IGY4ODI2OTMzMmI2Li4yN2YwMWQ4MDU1 ZiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYworKysgYi9jb250 cmliL3Bncm93bG9ja3MvcGdyb3dsb2Nrcy5jCkBAIC0xMTQsNyArMTE0LDcgQEAgcGdyb3dsb2Nr cyhQR19GVU5DVElPTl9BUkdTKQogCQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp KTsKIAogCS8qIFNjYW4gdGhlIHJlbGF0aW9uICovCi0Jc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbihy ZWwsIEdldEFjdGl2ZVNuYXBzaG90KCksIDAsIE5VTEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNj YW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMLCAwKTsKIAloc2NhbiA9IChIZWFw U2NhbkRlc2MpIHNjYW47CiAKIAlhdHRpbm1ldGEgPSBUdXBsZURlc2NHZXRBdHRJbk1ldGFkYXRh KHJzaW5mby0+c2V0RGVzYyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9i cmluLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKaW5kZXggMTkwOWMzMjU0YjUu LmEyMjFlMDMyZjVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCkBAIC0yODQyLDcgKzI4NDIsOCBA QCBfYnJpbl9wYXJhbGxlbF9zY2FuX2FuZF9idWlsZChCcmluQnVpbGRTdGF0ZSAqc3RhdGUsCiAJ aW5kZXhJbmZvLT5paV9Db25jdXJyZW50ID0gYnJpbnNoYXJlZC0+aXNjb25jdXJyZW50OwogCiAJ c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChoZWFwLAotCQkJCQkJCQkJUGFyYWxsZWxU YWJsZVNjYW5Gcm9tQnJpblNoYXJlZChicmluc2hhcmVkKSk7CisJCQkJCQkJCQlQYXJhbGxlbFRh YmxlU2NhbkZyb21CcmluU2hhcmVkKGJyaW5zaGFyZWQpLAorCQkJCQkJCQkJMCk7CiAKIAlyZWx0 dXBsZXMgPSB0YWJsZV9pbmRleF9idWlsZF9zY2FuKGhlYXAsIGluZGV4LCBpbmRleEluZm8sIHRy dWUsIHRydWUsCiAJCQkJCQkJCQkgICBicmluYnVpbGRDYWxsYmFja1BhcmFsbGVsLCBzdGF0ZSwg c2Nhbik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYwppbmRleCBjN2UzOGRiZTE5My4uZDQ4 Yzg1ZTg5NWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYwpAQCAtMjA2MSw3ICsyMDYx LDggQEAgX2dpbl9wYXJhbGxlbF9zY2FuX2FuZF9idWlsZChHaW5CdWlsZFN0YXRlICpzdGF0ZSwK IAlpbmRleEluZm8tPmlpX0NvbmN1cnJlbnQgPSBnaW5zaGFyZWQtPmlzY29uY3VycmVudDsKIAog CXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoaGVhcCwKLQkJCQkJCQkJCVBhcmFsbGVs VGFibGVTY2FuRnJvbUdpbkJ1aWxkU2hhcmVkKGdpbnNoYXJlZCkpOworCQkJCQkJCQkJUGFyYWxs ZWxUYWJsZVNjYW5Gcm9tR2luQnVpbGRTaGFyZWQoZ2luc2hhcmVkKSwKKwkJCQkJCQkJCTApOwog CiAJcmVsdHVwbGVzID0gdGFibGVfaW5kZXhfYnVpbGRfc2NhbihoZWFwLCBpbmRleCwgaW5kZXhJ bmZvLCB0cnVlLCBwcm9ncmVzcywKIAkJCQkJCQkJCSAgIGdpbkJ1aWxkQ2FsbGJhY2tQYXJhbGxl bCwgc3RhdGUsIHNjYW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtX2hhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMK aW5kZXggYjZlZDU5Mzg0NzcuLmY0YjE2OWUyYzA0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbV9oYW5kbGVyLmMKQEAgLTc5LDcgKzc5LDcgQEAgaGVhcGFtX3Nsb3RfY2FsbGJhY2tz KFJlbGF0aW9uIHJlbGF0aW9uKQogICovCiAKIHN0YXRpYyBJbmRleEZldGNoVGFibGVEYXRhICoK LWhlYXBhbV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCitoZWFwYW1faW5kZXhfZmV0 Y2hfYmVnaW4oUmVsYXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpCiB7CiAJSW5kZXhGZXRjaEhlYXBE YXRhICpoc2NhbiA9IHBhbGxvYzBfb2JqZWN0KEluZGV4RmV0Y2hIZWFwRGF0YSk7CiAKQEAgLTc2 MSw3ICs3NjEsNyBAQCBoZWFwYW1fcmVsYXRpb25fY29weV9mb3JfY2x1c3RlcihSZWxhdGlvbiBP bGRIZWFwLCBSZWxhdGlvbiBOZXdIZWFwLAogCiAJCXRhYmxlU2NhbiA9IE5VTEw7CiAJCWhlYXBT Y2FuID0gTlVMTDsKLQkJaW5kZXhTY2FuID0gaW5kZXhfYmVnaW5zY2FuKE9sZEhlYXAsIE9sZElu ZGV4LCBTbmFwc2hvdEFueSwgTlVMTCwgMCwgMCk7CisJCWluZGV4U2NhbiA9IGluZGV4X2JlZ2lu c2NhbihPbGRIZWFwLCBPbGRJbmRleCwgU25hcHNob3RBbnksIE5VTEwsIDAsIDAsIDApOwogCQlp bmRleF9yZXNjYW4oaW5kZXhTY2FuLCBOVUxMLCAwLCBOVUxMLCAwKTsKIAl9CiAJZWxzZQpAQCAt NzcwLDcgKzc3MCw3IEBAIGhlYXBhbV9yZWxhdGlvbl9jb3B5X2Zvcl9jbHVzdGVyKFJlbGF0aW9u IE9sZEhlYXAsIFJlbGF0aW9uIE5ld0hlYXAsCiAJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFy YW0oUFJPR1JFU1NfUkVQQUNLX1BIQVNFLAogCQkJCQkJCQkJIFBST0dSRVNTX1JFUEFDS19QSEFT RV9TRVFfU0NBTl9IRUFQKTsKIAotCQl0YWJsZVNjYW4gPSB0YWJsZV9iZWdpbnNjYW4oT2xkSGVh cCwgU25hcHNob3RBbnksIDAsIChTY2FuS2V5KSBOVUxMKTsKKwkJdGFibGVTY2FuID0gdGFibGVf YmVnaW5zY2FuKE9sZEhlYXAsIFNuYXBzaG90QW55LCAwLCAoU2NhbktleSkgTlVMTCwgMCk7CiAJ CWhlYXBTY2FuID0gKEhlYXBTY2FuRGVzYykgdGFibGVTY2FuOwogCQlpbmRleFNjYW4gPSBOVUxM OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jCmluZGV4IDVlODliODZhNjJjLi4xZmU3ZmZiMjQ4 NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMKQEAgLTQ1NSw3ICs0NTUsNyBAQCBzeXN0YWJs ZV9iZWdpbnNjYW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQl9CiAKIAkJc3lzc2Nhbi0+aXNj YW4gPSBpbmRleF9iZWdpbnNjYW4oaGVhcFJlbGF0aW9uLCBpcmVsLAotCQkJCQkJCQkJCSBzbmFw c2hvdCwgTlVMTCwgbmtleXMsIDApOworCQkJCQkJCQkJCSBzbmFwc2hvdCwgTlVMTCwgbmtleXMs IDAsIDApOwogCQlpbmRleF9yZXNjYW4oc3lzc2Nhbi0+aXNjYW4sIGlkeGtleSwgbmtleXMsIE5V TEwsIDApOwogCQlzeXNzY2FuLT5zY2FuID0gTlVMTDsKIApAQCAtNzE2LDcgKzcxNiw3IEBAIHN5 c3RhYmxlX2JlZ2luc2Nhbl9vcmRlcmVkKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJYnN5c3Nj YW4gPSB0cnVlOwogCiAJc3lzc2Nhbi0+aXNjYW4gPSBpbmRleF9iZWdpbnNjYW4oaGVhcFJlbGF0 aW9uLCBpbmRleFJlbGF0aW9uLAotCQkJCQkJCQkJIHNuYXBzaG90LCBOVUxMLCBua2V5cywgMCk7 CisJCQkJCQkJCQkgc25hcHNob3QsIE5VTEwsIG5rZXlzLCAwLCAwKTsKIAlpbmRleF9yZXNjYW4o c3lzc2Nhbi0+aXNjYW4sIGlkeGtleSwgbmtleXMsIE5VTEwsIDApOwogCXN5c3NjYW4tPnNjYW4g PSBOVUxMOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYwppbmRleCA0M2Y2NGEwZTcyMS4u MTgyNzIwODM5NmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFt LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYwpAQCAtMjU3LDcgKzI1 Nyw3IEBAIGluZGV4X2JlZ2luc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJCQkJUmVsYXRp b24gaW5kZXhSZWxhdGlvbiwKIAkJCQlTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQlJbmRleFNjYW5J bnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCi0JCQkJaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlz KQorCQkJCWludCBua2V5cywgaW50IG5vcmRlcmJ5cywgdWludDMyIGZsYWdzKQogewogCUluZGV4 U2NhbkRlc2Mgc2NhbjsKIApAQCAtMjg0LDcgKzI4NCw3IEBAIGluZGV4X2JlZ2luc2NhbihSZWxh dGlvbiBoZWFwUmVsYXRpb24sCiAJc2Nhbi0+aW5zdHJ1bWVudCA9IGluc3RydW1lbnQ7CiAKIAkv KiBwcmVwYXJlIHRvIGZldGNoIGluZGV4IG1hdGNoZXMgZnJvbSB0YWJsZSAqLwotCXNjYW4tPnhz X2hlYXBmZXRjaCA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKGhlYXBSZWxhdGlvbik7CisJc2Nh bi0+eHNfaGVhcGZldGNoID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4oaGVhcFJlbGF0aW9uLCBm bGFncyk7CiAKIAlyZXR1cm4gc2NhbjsKIH0KQEAgLTYxNSw3ICs2MTUsNyBAQCBpbmRleF9iZWdp bnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gaGVhcHJlbCwgUmVsYXRpb24gaW5kZXhyZWwsCiAJc2Nh bi0+aW5zdHJ1bWVudCA9IGluc3RydW1lbnQ7CiAKIAkvKiBwcmVwYXJlIHRvIGZldGNoIGluZGV4 IG1hdGNoZXMgZnJvbSB0YWJsZSAqLwotCXNjYW4tPnhzX2hlYXBmZXRjaCA9IHRhYmxlX2luZGV4 X2ZldGNoX2JlZ2luKGhlYXByZWwpOworCXNjYW4tPnhzX2hlYXBmZXRjaCA9IHRhYmxlX2luZGV4 X2ZldGNoX2JlZ2luKGhlYXByZWwsIDApOwogCiAJcmV0dXJuIHNjYW47CiB9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9uYnRyZWUvbmJ0c29ydC5jCmluZGV4IDY5ZWYxNTI3ZTA2Li5iYzRlZWRiYTRhYyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKQEAgLTE5MjcsNyArMTkyNyw3IEBAIF9idF9wYXJh bGxlbF9zY2FuX2FuZF9zb3J0KEJUU3Bvb2wgKmJ0c3Bvb2wsIEJUU3Bvb2wgKmJ0c3Bvb2wyLAog CWluZGV4SW5mbyA9IEJ1aWxkSW5kZXhJbmZvKGJ0c3Bvb2wtPmluZGV4KTsKIAlpbmRleEluZm8t PmlpX0NvbmN1cnJlbnQgPSBidHNoYXJlZC0+aXNjb25jdXJyZW50OwogCXNjYW4gPSB0YWJsZV9i ZWdpbnNjYW5fcGFyYWxsZWwoYnRzcG9vbC0+aGVhcCwKLQkJCQkJCQkJCVBhcmFsbGVsVGFibGVT Y2FuRnJvbUJUU2hhcmVkKGJ0c2hhcmVkKSk7CisJCQkJCQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZy b21CVFNoYXJlZChidHNoYXJlZCksIDApOwogCXJlbHR1cGxlcyA9IHRhYmxlX2luZGV4X2J1aWxk X3NjYW4oYnRzcG9vbC0+aGVhcCwgYnRzcG9vbC0+aW5kZXgsIGluZGV4SW5mbywKIAkJCQkJCQkJ CSAgIHRydWUsIHByb2dyZXNzLCBfYnRfYnVpbGRfY2FsbGJhY2ssCiAJCQkJCQkJCQkgICAmYnVp bGRzdGF0ZSwgc2Nhbik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFi bGVhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxlYW0uYwppbmRleCBkZmRhMWFm NDEyZS4uYjNhZWVlMzZjZTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90 YWJsZWFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxlYW0uYwpAQCAtMTYz LDEwICsxNjMsMTEgQEAgdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUoUmVsYXRpb24gcmVs LCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sCiB9CiAKIFRhYmxlU2NhbkRlc2MKLXRhYmxl X2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiByZWxhdGlvbiwgUGFyYWxsZWxUYWJsZVNjYW5E ZXNjIHBzY2FuKQordGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJlbGF0aW9uLCBQ YXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sIHVpbnQzMiBmbGFncykKIHsKIAlTbmFwc2hvdAlz bmFwc2hvdDsKLQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9TRVFTQ0FOIHwKKworCWZsYWdzIHw9 IFNPX1RZUEVfU0VRU0NBTiB8CiAJCVNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1dfU1lOQyB8IFNP X0FMTE9XX1BBR0VNT0RFOwogCiAJQXNzZXJ0KFJlbEZpbGVMb2NhdG9yRXF1YWxzKHJlbGF0aW9u LT5yZF9sb2NhdG9yLCBwc2Nhbi0+cGhzX2xvY2F0b3IpKTsKQEAgLTI0OCw3ICsyNDksNyBAQCB0 YWJsZV9pbmRleF9mZXRjaF90dXBsZV9jaGVjayhSZWxhdGlvbiByZWwsCiAJYm9vbAkJZm91bmQ7 CiAKIAlzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKLQlzY2FuID0gdGFibGVf aW5kZXhfZmV0Y2hfYmVnaW4ocmVsKTsKKwlzY2FuID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4o cmVsLCAwKTsKIAlmb3VuZCA9IHRhYmxlX2luZGV4X2ZldGNoX3R1cGxlKHNjYW4sIHRpZCwgc25h cHNob3QsIHNsb3QsICZjYWxsX2FnYWluLAogCQkJCQkJCQkJYWxsX2RlYWQpOwogCXRhYmxlX2lu ZGV4X2ZldGNoX2VuZChzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Nv bnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbnN0cmFpbnQuYwppbmRleCBjYzEx YzQ3YjZmMi4uMzdjZmJkNjM5MzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Nv bnN0cmFpbnQuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb25zdHJhaW50LmMKQEAgLTEw Niw3ICsxMDYsNyBAQCB1bmlxdWVfa2V5X3JlY2hlY2soUEdfRlVOQ1RJT05fQVJHUykKIAkgKi8K IAl0bXB0aWQgPSBjaGVja3RpZDsKIAl7Ci0JCUluZGV4RmV0Y2hUYWJsZURhdGEgKnNjYW4gPSB0 YWJsZV9pbmRleF9mZXRjaF9iZWdpbih0cmlnZGF0YS0+dGdfcmVsYXRpb24pOworCQlJbmRleEZl dGNoVGFibGVEYXRhICpzY2FuID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4odHJpZ2RhdGEtPnRn X3JlbGF0aW9uLCAwKTsKIAkJYm9vbAkJY2FsbF9hZ2FpbiA9IGZhbHNlOwogCiAJCWlmICghdGFi bGVfaW5kZXhfZmV0Y2hfdHVwbGUoc2NhbiwgJnRtcHRpZCwgU25hcHNob3RTZWxmLCBzbG90LApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9jb3B5dG8uYwppbmRleCBkNmVmNzI3NWE2NC4uOTAwMTk5ZGJlMjkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2NvcHl0by5jCkBAIC0xMTU5LDcgKzExNTksNyBAQCBDb3B5UmVsYXRpb25UbyhDb3B5VG9T dGF0ZSBjc3RhdGUsIFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gcm9vdF9yZWwsIHVpbnQ2NCAqcHJv YwogCUF0dHJNYXAgICAgKm1hcCA9IE5VTEw7CiAJVHVwbGVUYWJsZVNsb3QgKnJvb3Rfc2xvdCA9 IE5VTEw7CiAKLQlzY2FuZGVzYyA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIEdldEFjdGl2ZVNuYXBz aG90KCksIDAsIE5VTEwpOworCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgR2V0QWN0 aXZlU25hcHNob3QoKSwgMCwgTlVMTCwgMCk7CiAJc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKHJl bCwgTlVMTCk7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCA4NTI0MmRjYzI0 NS4uMDk3OTZmYTQzMDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC02Mzg4LDcgKzYz ODgsNyBAQCBBVFJld3JpdGVUYWJsZShBbHRlcmVkVGFibGVJbmZvICp0YWIsIE9pZCBPSUROZXdI ZWFwKQogCQkgKiBjaGVja2luZyBhbGwgdGhlIGNvbnN0cmFpbnRzLgogCQkgKi8KIAkJc25hcHNo b3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwotCQlzY2FuID0gdGFi bGVfYmVnaW5zY2FuKG9sZHJlbCwgc25hcHNob3QsIDAsIE5VTEwpOworCQlzY2FuID0gdGFibGVf YmVnaW5zY2FuKG9sZHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIDApOwogCiAJCS8qCiAJCSAqIFN3 aXRjaCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0IGZvciBlYWNoIHR1 cGxlCkBAIC0xMzc2NSw3ICsxMzc2NSw3IEBAIHZhbGlkYXRlRm9yZWlnbktleUNvbnN0cmFpbnQo Y2hhciAqY29ubmFtZSwKIAkgKi8KIAlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0 ZXN0U25hcHNob3QoKSk7CiAJc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKHJlbCwgTlVMTCk7Ci0J c2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIHNuYXBzaG90LCAwLCBOVUxMKTsKKwlzY2FuID0g dGFibGVfYmVnaW5zY2FuKHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIDApOwogCiAJcGVyVHVwQ3h0 ID0gQWxsb2NTZXRDb250ZXh0Q3JlYXRlKEN1cnJlbnRNZW1vcnlDb250ZXh0LAogCQkJCQkJCQkJ ICAidmFsaWRhdGVGb3JlaWduS2V5Q29uc3RyYWludCIsCkBAIC0yMjY2Nyw3ICsyMjY2Nyw3IEBA IE1lcmdlUGFydGl0aW9uc01vdmVSb3dzKExpc3QgKip3cXVldWUsIExpc3QgKm1lcmdpbmdQYXJ0 aXRpb25zLCBSZWxhdGlvbiBuZXdQYXJ0CiAKIAkJLyogU2NhbiB0aHJvdWdoIHRoZSByb3dzLiAq LwogCQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNob3QoKSk7Ci0J CXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4obWVyZ2luZ1BhcnRpdGlvbiwgc25hcHNob3QsIDAsIE5V TEwpOworCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKG1lcmdpbmdQYXJ0aXRpb24sIHNuYXBzaG90 LCAwLCBOVUxMLCAwKTsKIAogCQkvKgogCQkgKiBTd2l0Y2ggdG8gcGVyLXR1cGxlIG1lbW9yeSBj b250ZXh0IGFuZCByZXNldCBpdCBmb3IgZWFjaCB0dXBsZQpAQCAtMjMxMzEsNyArMjMxMzEsNyBA QCBTcGxpdFBhcnRpdGlvbk1vdmVSb3dzKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgUmVs YXRpb24gc3BsaXRSZWwsCiAKIAkvKiBTY2FuIHRocm91Z2ggdGhlIHJvd3MuICovCiAJc25hcHNo b3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwotCXNjYW4gPSB0YWJs ZV9iZWdpbnNjYW4oc3BsaXRSZWwsIHNuYXBzaG90LCAwLCBOVUxMKTsKKwlzY2FuID0gdGFibGVf YmVnaW5zY2FuKHNwbGl0UmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwgMCk7CiAKIAkvKgogCSAqIFN3 aXRjaCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0IGZvciBlYWNoIHR1 cGxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwppbmRleCAzZGFiNmJiNWE3OS4uNTMxNmNlYTdjZWMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwpAQCAtMzE4NSw3ICszMTg1LDcgQEAgdmFsaWRhdGVE b21haW5Ob3ROdWxsQ29uc3RyYWludChPaWQgZG9tYWlub2lkKQogCiAJCS8qIFNjYW4gYWxsIHR1 cGxlcyBpbiB0aGlzIHJlbGF0aW9uICovCiAJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChH ZXRMYXRlc3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbih0ZXN0cmVsLCBz bmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4odGVzdHJlbCwgc25h cHNob3QsIDAsIE5VTEwsIDApOwogCQlzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUodGVzdHJlbCwg TlVMTCk7CiAJCXdoaWxlICh0YWJsZV9zY2FuX2dldG5leHRzbG90KHNjYW4sIEZvcndhcmRTY2Fu RGlyZWN0aW9uLCBzbG90KSkKIAkJewpAQCAtMzI2Niw3ICszMjY2LDcgQEAgdmFsaWRhdGVEb21h aW5DaGVja0NvbnN0cmFpbnQoT2lkIGRvbWFpbm9pZCwgY29uc3QgY2hhciAqY2NiaW4sIExPQ0tN T0RFIGxvY2ttb2QKIAogCQkvKiBTY2FuIGFsbCB0dXBsZXMgaW4gdGhpcyByZWxhdGlvbiAqLwog CQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNob3QoKSk7Ci0JCXNj YW4gPSB0YWJsZV9iZWdpbnNjYW4odGVzdHJlbCwgc25hcHNob3QsIDAsIE5VTEwpOworCQlzY2Fu ID0gdGFibGVfYmVnaW5zY2FuKHRlc3RyZWwsIHNuYXBzaG90LCAwLCBOVUxMLCAwKTsKIAkJc2xv dCA9IHRhYmxlX3Nsb3RfY3JlYXRlKHRlc3RyZWwsIE5VTEwpOwogCQl3aGlsZSAodGFibGVfc2Nh bl9nZXRuZXh0c2xvdChzY2FuLCBGb3J3YXJkU2NhbkRpcmVjdGlvbiwgc2xvdCkpCiAJCXsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKaW5kZXggOWQwNzFlNDk1YzYuLmNiM2U0ZjY3ZWEx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYworKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYwpAQCAtODE1LDcgKzgxNSw3IEBAIGNo ZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludChSZWxhdGlvbiBoZWFwLCBSZWxhdGlv biBpbmRleCwKIHJldHJ5OgogCWNvbmZsaWN0ID0gZmFsc2U7CiAJZm91bmRfc2VsZiA9IGZhbHNl OwotCWluZGV4X3NjYW4gPSBpbmRleF9iZWdpbnNjYW4oaGVhcCwgaW5kZXgsICZEaXJ0eVNuYXBz aG90LCBOVUxMLCBpbmRua2V5YXR0cywgMCk7CisJaW5kZXhfc2NhbiA9IGluZGV4X2JlZ2luc2Nh bihoZWFwLCBpbmRleCwgJkRpcnR5U25hcHNob3QsIE5VTEwsIGluZG5rZXlhdHRzLCAwLCAwKTsK IAlpbmRleF9yZXNjYW4oaW5kZXhfc2Nhbiwgc2NhbmtleXMsIGluZG5rZXlhdHRzLCBOVUxMLCAw KTsKIAogCXdoaWxlIChpbmRleF9nZXRuZXh0X3Nsb3QoaW5kZXhfc2NhbiwgRm9yd2FyZFNjYW5E aXJlY3Rpb24sIGV4aXN0aW5nX3Nsb3QpKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY1JlcGxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRp b24uYwppbmRleCAyNDk3ZWU3ZWRjNS4uNWI4Y2ExYWJmNjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNSZXBsaWNhdGlvbi5jCkBAIC0yMDUsNyArMjA1LDcgQEAgUmVsYXRpb25GaW5kUmVwbFR1 cGxlQnlJbmRleChSZWxhdGlvbiByZWwsIE9pZCBpZHhvaWQsCiAJc2tleV9hdHRvZmYgPSBidWls ZF9yZXBsaW5kZXhfc2Nhbl9rZXkoc2tleSwgcmVsLCBpZHhyZWwsIHNlYXJjaHNsb3QpOwogCiAJ LyogU3RhcnQgYW4gaW5kZXggc2Nhbi4gKi8KLQlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKHJlbCwg aWR4cmVsLCAmc25hcCwgTlVMTCwgc2tleV9hdHRvZmYsIDApOworCXNjYW4gPSBpbmRleF9iZWdp bnNjYW4ocmVsLCBpZHhyZWwsICZzbmFwLCBOVUxMLCBza2V5X2F0dG9mZiwgMCwgMCk7CiAKIHJl dHJ5OgogCWZvdW5kID0gZmFsc2U7CkBAIC0zODMsNyArMzgzLDcgQEAgUmVsYXRpb25GaW5kUmVw bFR1cGxlU2VxKFJlbGF0aW9uIHJlbCwgTG9ja1R1cGxlTW9kZSBsb2NrbW9kZSwKIAogCS8qIFN0 YXJ0IGEgaGVhcCBzY2FuLiAqLwogCUluaXREaXJ0eVNuYXBzaG90KHNuYXApOwotCXNjYW4gPSB0 YWJsZV9iZWdpbnNjYW4ocmVsLCAmc25hcCwgMCwgTlVMTCk7CisJc2NhbiA9IHRhYmxlX2JlZ2lu c2NhbihyZWwsICZzbmFwLCAwLCBOVUxMLCAwKTsKIAlzY2Fuc2xvdCA9IHRhYmxlX3Nsb3RfY3Jl YXRlKHJlbCwgTlVMTCk7CiAKIHJldHJ5OgpAQCAtNjAyLDcgKzYwMiw3IEBAIFJlbGF0aW9uRmlu ZERlbGV0ZWRUdXBsZUluZm9TZXEoUmVsYXRpb24gcmVsLCBUdXBsZVRhYmxlU2xvdCAqc2VhcmNo c2xvdCwKIAkgKiBub3QgeWV0IGNvbW1pdHRlZCBvciB0aG9zZSBqdXN0IGNvbW1pdHRlZCBwcmlv ciB0byB0aGUgc2NhbiBhcmUKIAkgKiBleGNsdWRlZCBpbiB1cGRhdGVfbW9zdF9yZWNlbnRfZGVs ZXRpb25faW5mbygpLgogCSAqLwotCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBTbmFwc2hv dEFueSwgMCwgTlVMTCk7CisJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIFNuYXBzaG90QW55 LCAwLCBOVUxMLCAwKTsKIAlzY2Fuc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKHJlbCwgTlVMTCk7 CiAKIAl0YWJsZV9yZXNjYW4oc2NhbiwgTlVMTCk7CkBAIC02NjYsNyArNjY2LDcgQEAgUmVsYXRp b25GaW5kRGVsZXRlZFR1cGxlSW5mb0J5SW5kZXgoUmVsYXRpb24gcmVsLCBPaWQgaWR4b2lkLAog CSAqIG5vdCB5ZXQgY29tbWl0dGVkIG9yIHRob3NlIGp1c3QgY29tbWl0dGVkIHByaW9yIHRvIHRo ZSBzY2FuIGFyZQogCSAqIGV4Y2x1ZGVkIGluIHVwZGF0ZV9tb3N0X3JlY2VudF9kZWxldGlvbl9p bmZvKCkuCiAJICovCi0Jc2NhbiA9IGluZGV4X2JlZ2luc2NhbihyZWwsIGlkeHJlbCwgU25hcHNo b3RBbnksIE5VTEwsIHNrZXlfYXR0b2ZmLCAwKTsKKwlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKHJl bCwgaWR4cmVsLCBTbmFwc2hvdEFueSwgTlVMTCwgc2tleV9hdHRvZmYsIDAsIDApOwogCiAJaW5k ZXhfcmVzY2FuKHNjYW4sIHNrZXksIHNrZXlfYXR0b2ZmLCBOVUxMLCAwKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwppbmRleCBlMGI2ZGY2NDc2Ny4uYjNiNmRh M2Q3ZTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nh bi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jCkBAIC0x MDgsNyArMTA4LDcgQEAgQml0bWFwVGFibGVTY2FuU2V0dXAoQml0bWFwSGVhcFNjYW5TdGF0ZSAq bm9kZSkKIAkJCXRhYmxlX2JlZ2luc2Nhbl9ibShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24s CiAJCQkJCQkJICAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCSAgIDAs Ci0JCQkJCQkJICAgTlVMTCk7CisJCQkJCQkJICAgTlVMTCwgMCk7CiAJfQogCiAJbm9kZS0+c3Mu c3NfY3VycmVudFNjYW5EZXNjLT5zdC5yc190Ym1pdGVyYXRvciA9IHRibWl0ZXJhdG9yOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKaW5kZXggYzJkMDkzNzQ1MTcuLmNm NGQ5YTRmODMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5 c2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKQEAg LTk0LDcgKzk0LDcgQEAgSW5kZXhPbmx5TmV4dChJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUpCiAJ CQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgICZub2RlLT5pb3NzX0lu c3RydW1lbnQsCiAJCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCi0JCQkJCQkJCSAg IG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMpOworCQkJCQkJCQkgICBub2RlLT5pb3NzX051bU9y ZGVyQnlLZXlzLCAwKTsKIAogCQlub2RlLT5pb3NzX1NjYW5EZXNjID0gc2NhbmRlc2M7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwppbmRleCBhNjE2YWJmZjA0Yy4uYTdhZjJmNjYy OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKQEAgLTExMSw3ICsxMTEsNyBA QCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNf c25hcHNob3QsCiAJCQkJCQkJCSAgICZub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAg bm9kZS0+aXNzX051bVNjYW5LZXlzLAotCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtl eXMpOworCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsIDApOwogCiAJCW5vZGUt Pmlzc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCkBAIC0yMDcsNyArMjA3LDcgQEAgSW5kZXhOZXh0 V2l0aFJlb3JkZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNf c25hcHNob3QsCiAJCQkJCQkJCSAgICZub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAg bm9kZS0+aXNzX051bVNjYW5LZXlzLAotCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtl eXMpOworCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsIDApOwogCiAJCW5vZGUt Pmlzc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlU2Vxc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYwpp bmRleCBhZjNjNzg4Y2U4Yi4uZDlkN2VjMDUxNmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVTZXFzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNj YW4uYwpAQCAtNzEsNyArNzEsNyBAQCBTZXFOZXh0KFNlcVNjYW5TdGF0ZSAqbm9kZSkKIAkJICov CiAJCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlv biwKIAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKLQkJCQkJCQkJICAgMCwgTlVMTCk7 CisJCQkJCQkJCSAgIDAsIE5VTEwsIDApOwogCQlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2Mg PSBzY2FuZGVzYzsKIAl9CiAKQEAgLTM3NCw3ICszNzQsNyBAQCBFeGVjU2VxU2NhbkluaXRpYWxp emVEU00oU2VxU2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3Qp OwogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2Rl X2lkLCBwc2Nhbik7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJdGFibGVfYmVn aW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4pOworCQl0 YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2Nh biwgMCk7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwNyw1ICs0MDcsNSBAQCBFeGVjU2VxU2Nhbklu aXRpYWxpemVXb3JrZXIoU2VxU2NhblN0YXRlICpub2RlLAogCiAJcHNjYW4gPSBzaG1fdG9jX2xv b2t1cChwd2N4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIGZhbHNlKTsK IAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxs ZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2Nhbik7CisJCXRhYmxlX2JlZ2luc2Nh bl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLCAwKTsKIH0KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMgYi9zcmMvYmFj a2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jCmluZGV4IDBjYTMxMmFjMjdkLi5iN2M0ZTZk MTA3MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMuYwor KysgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jCkBAIC0zMzYyLDcgKzMz NjIsNyBAQCBjaGVja19kZWZhdWx0X3BhcnRpdGlvbl9jb250ZW50cyhSZWxhdGlvbiBwYXJlbnQs IFJlbGF0aW9uIGRlZmF1bHRfcmVsLAogCQllY29udGV4dCA9IEdldFBlclR1cGxlRXhwckNvbnRl eHQoZXN0YXRlKTsKIAkJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBz aG90KCkpOwogCQl0dXBzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUocGFydF9yZWwsICZlc3RhdGUt PmVzX3R1cGxlVGFibGUpOwotCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHBhcnRfcmVsLCBzbmFw c2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocGFydF9yZWwsIHNuYXBz aG90LCAwLCBOVUxMLCAwKTsKIAogCQkvKgogCQkgKiBTd2l0Y2ggdG8gcGVyLXR1cGxlIG1lbW9y eSBjb250ZXh0IGFuZCByZXNldCBpdCBmb3IgZWFjaCB0dXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvc2VsZnVu Y3MuYwppbmRleCBkNGRhMGU4ZGVhOS4uNWIyMTY1YzI2N2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxm dW5jcy5jCkBAIC03MTYxLDcgKzcxNjEsNyBAQCBnZXRfYWN0dWFsX3ZhcmlhYmxlX2VuZHBvaW50 KFJlbGF0aW9uIGhlYXBSZWwsCiAKIAlpbmRleF9zY2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXBS ZWwsIGluZGV4UmVsLAogCQkJCQkJCQkgJlNuYXBzaG90Tm9uVmFjdXVtYWJsZSwgTlVMTCwKLQkJ CQkJCQkJIDEsIDApOworCQkJCQkJCQkgMSwgMCwgMCk7CiAJLyogU2V0IGl0IHVwIGZvciBpbmRl eC1vbmx5IHNjYW4gKi8KIAlpbmRleF9zY2FuLT54c193YW50X2l0dXAgPSB0cnVlOwogCWluZGV4 X3Jlc2NhbihpbmRleF9zY2FuLCBzY2Fua2V5cywgMSwgTlVMTCwgMCk7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oCmlu ZGV4IDRjMDQyOWNjNjEzLi4zOTM0ZmE0NDc5MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNj ZXNzL2dlbmFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgKQEAgLTE1Niw3ICsx NTYsNyBAQCBleHRlcm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW4oUmVsYXRpb24gaGVh cFJlbGF0aW9uLAogCQkJCQkJCQkJIFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiAJCQkJCQkJCQkg U25hcHNob3Qgc25hcHNob3QsCiAJCQkJCQkJCQkgSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uICpp bnN0cnVtZW50LAotCQkJCQkJCQkJIGludCBua2V5cywgaW50IG5vcmRlcmJ5cyk7CisJCQkJCQkJ CQkgaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzLCB1aW50MzIgZmxhZ3MpOwogZXh0ZXJuIEluZGV4 U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX2JpdG1hcChSZWxhdGlvbiBpbmRleFJlbGF0aW9uLAog CQkJCQkJCQkJCQlTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCQkJCQkJSW5kZXhTY2FuSW5zdHJ1 bWVudGF0aW9uICppbnN0cnVtZW50LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Rh YmxlYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKaW5kZXggMDYwODQ3NTIyNDUu LmU4ODFlNGY4MmEwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCisr KyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKQEAgLTQyMCw3ICs0MjAsNyBAQCB0eXBl ZGVmIHN0cnVjdCBUYWJsZUFtUm91dGluZQogCSAqCiAJICogVHVwbGVzIGZvciBhbiBpbmRleCBz Y2FuIGNhbiB0aGVuIGJlIGZldGNoZWQgdmlhIGluZGV4X2ZldGNoX3R1cGxlLgogCSAqLwotCXN0 cnVjdCBJbmRleEZldGNoVGFibGVEYXRhICooKmluZGV4X2ZldGNoX2JlZ2luKSAoUmVsYXRpb24g cmVsKTsKKwlzdHJ1Y3QgSW5kZXhGZXRjaFRhYmxlRGF0YSAqKCppbmRleF9mZXRjaF9iZWdpbikg KFJlbGF0aW9uIHJlbCwgdWludDMyIGZsYWdzKTsKIAogCS8qCiAJICogUmVzZXQgaW5kZXggZmV0 Y2guIFR5cGljYWxseSB0aGlzIHdpbGwgcmVsZWFzZSBjcm9zcyBpbmRleCBmZXRjaApAQCAtODk0 LDkgKzg5NCw5IEBAIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24oUmVsYXRpb24gcmVsLCBTbmFwc2hv dCBzbmFwc2hvdCwgaW50IG5rZXlzLAogICovCiBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MK IHRhYmxlX2JlZ2luc2NhbihSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAotCQkJCWlu dCBua2V5cywgU2NhbktleURhdGEgKmtleSkKKwkJCQlpbnQgbmtleXMsIFNjYW5LZXlEYXRhICpr ZXksIHVpbnQzMiBmbGFncykKIHsKLQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9TRVFTQ0FOIHwK KwlmbGFncyB8PSBTT19UWVBFX1NFUVNDQU4gfAogCQlTT19BTExPV19TVFJBVCB8IFNPX0FMTE9X X1NZTkMgfCBTT19BTExPV19QQUdFTU9ERTsKIAogCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29t bW9uKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsKQEAgLTkzOSw5ICs5 MzksOSBAQCB0YWJsZV9iZWdpbnNjYW5fc3RyYXQoUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFw c2hvdCwKICAqLwogc3RhdGljIGlubGluZSBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdpbnNjYW5f Ym0oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKLQkJCQkgICBpbnQgbmtleXMsIFNj YW5LZXlEYXRhICprZXkpCisJCQkJICAgaW50IG5rZXlzLCBTY2FuS2V5RGF0YSAqa2V5LCB1aW50 MzIgZmxhZ3MpCiB7Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX0FM TE9XX1BBR0VNT0RFOworCWZsYWdzIHw9IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX0FMTE9XX1BB R0VNT0RFOwogCiAJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwg bmtleXMsIGtleSwgTlVMTCwgZmxhZ3MpOwogfQpAQCAtMTEzOSw3ICsxMTM5LDggQEAgZXh0ZXJu IHZvaWQgdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUoUmVsYXRpb24gcmVsLAogICogQ2Fs bGVyIG11c3QgaG9sZCBhIHN1aXRhYmxlIGxvY2sgb24gdGhlIHJlbGF0aW9uLgogICovCiBleHRl cm4gVGFibGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRp b24sCi0JCQkJCQkJCQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKTsKKwkJCQkJCQkJ CQkJICBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sCisJCQkJCQkJCQkJCSAgdWludDMyIGZs YWdzKTsKIAogLyoKICAqIEJlZ2luIGEgcGFyYWxsZWwgdGlkIHJhbmdlIHNjYW4uIGBwc2NhbmAg bmVlZHMgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkCkBAIC0xMTc1LDcgKzExNzYsNyBAQCB0YWJs ZV9wYXJhbGxlbHNjYW5fcmVpbml0aWFsaXplKFJlbGF0aW9uIHJlbCwgUGFyYWxsZWxUYWJsZVNj YW5EZXNjIHBzY2FuKQogICogVHVwbGVzIGZvciBhbiBpbmRleCBzY2FuIGNhbiB0aGVuIGJlIGZl dGNoZWQgdmlhIHRhYmxlX2luZGV4X2ZldGNoX3R1cGxlKCkuCiAgKi8KIHN0YXRpYyBpbmxpbmUg SW5kZXhGZXRjaFRhYmxlRGF0YSAqCi10YWJsZV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiBy ZWwpCit0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwsIHVpbnQzMiBmbGFncykK IHsKIAkvKgogCSAqIFdlIGRvbid0IGFsbG93IHNjYW5zIHRvIGJlIHN0YXJ0ZWQgd2hpbGUgQ2hl Y2tYaWRBbGl2ZSBpcyBzZXQsIGV4Y2VwdApAQCAtMTE4NSw3ICsxMTg2LDcgQEAgdGFibGVfaW5k ZXhfZmV0Y2hfYmVnaW4oUmVsYXRpb24gcmVsKQogCWlmICh1bmxpa2VseShUcmFuc2FjdGlvbklk SXNWYWxpZChDaGVja1hpZEFsaXZlKSAmJiAhYnN5c3NjYW4pKQogCQllbG9nKEVSUk9SLCAic2Nh biBzdGFydGVkIGR1cmluZyBsb2dpY2FsIGRlY29kaW5nIik7CiAKLQlyZXR1cm4gcmVsLT5yZF90 YWJsZWFtLT5pbmRleF9mZXRjaF9iZWdpbihyZWwpOworCXJldHVybiByZWwtPnJkX3RhYmxlYW0t PmluZGV4X2ZldGNoX2JlZ2luKHJlbCwgZmxhZ3MpOwogfQogCiAvKgotLSAKMi40My4wCgo= --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0012-Pass-down-information-on-table-modification-to-s.patch" Content-Disposition: attachment; filename="v37-0012-Pass-down-information-on-table-modification-to-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmac72f11 RnJvbSAxYTM2ODVlNGNmMjhmYTA2Njg4NjFlM2U1YjI1Y2ZhN2NiMjE2Yzg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MzMgLTA1MDAKU3ViamVjdDogW1BB VENIIHYzNyAxMi8xNV0gUGFzcyBkb3duIGluZm9ybWF0aW9uIG9uIHRhYmxlIG1vZGlmaWNhdGlv biB0byBzY2FuCiBub2RlCgpQYXNzIGRvd24gaW5mb3JtYXRpb24gdG8gc2VxdWVudGlhbCBzY2Fu LCBpbmRleCBbb25seV0gc2NhbiwgYW5kIGJpdG1hcAp0YWJsZSBzY2FuIG5vZGVzIG9uIHdoZXRo ZXIgb3Igbm90IHRoZSBxdWVyeSBtb2RpZmllcyB0aGUgcmVsYXRpb24gYmVpbmcKc2Nhbm5lZC4g QSBsYXRlciBjb21taXQgd2lsbCB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byB1cGRhdGUgdGhlIFZN CmR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyBvbmx5IGlmIHRoZSByZWxhdGlvbiBpcyBub3QgbW9k aWZpZWQgYnkgdGhlCnF1ZXJ5LgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxh Z2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJh emVsLmRlPgpSZXZpZXdlZC1ieTogQW5kcmV5IEJvcm9kaW4gPHg0bW1tQHlhbmRleC10ZWFtLnJ1 PgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS80Mzc5RkRBMy05NDQ2LTRFMkMtOUMxNS0zMkVGRThENEYz MUIlNDB5YW5kZXgtdGVhbS5ydQotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9o YW5kbGVyLmMgIHwgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2Fu LmMgfCAgOSArKysrKysrLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4u YyAgfCAgOSArKysrKysrLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jICAg ICAgfCAxOCArKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nh bi5jICAgICAgICB8IDI2ICsrKysrKysrKysrKysrKysrKysrLS0tCiBzcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtLmggICAgICAgICAgICAgICB8ICA2ICsrKysrKwogc3JjL2luY2x1ZGUvYWNjZXNz L3RhYmxlYW0uaCAgICAgICAgICAgICAgfCAgMyArKysKIDcgZmlsZXMgY2hhbmdlZCwgNjUgaW5z ZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X2hhbmRsZXIuYwppbmRleCBmNGIxNjllMmMwNC4uMDk4Y2EzMmZhODQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtODYsNiArODYsNyBAQCBoZWFwYW1faW5k ZXhfZmV0Y2hfYmVnaW4oUmVsYXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpCiAJaHNjYW4tPnhzX2Jh c2UucmVsID0gcmVsOwogCWhzY2FuLT54c19jYnVmID0gSW52YWxpZEJ1ZmZlcjsKIAloc2Nhbi0+ eHNfdm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOworCWhzY2FuLT5tb2RpZmllc19iYXNlX3JlbCA9 ICEoZmxhZ3MgJiBTT19ISU5UX1JFTF9SRUFEX09OTFkpOwogCiAJcmV0dXJuICZoc2Nhbi0+eHNf YmFzZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFw c2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKaW5kZXgg YjNiNmRhM2Q3ZTQuLjliY2Y5YTY4MTgzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlQml0bWFwSGVhcHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0 bWFwSGVhcHNjYW4uYwpAQCAtMTA0LDExICsxMDQsMTggQEAgQml0bWFwVGFibGVTY2FuU2V0dXAo Qml0bWFwSGVhcFNjYW5TdGF0ZSAqbm9kZSkKIAkgKi8KIAlpZiAoIW5vZGUtPnNzLnNzX2N1cnJl bnRTY2FuRGVzYykKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSAwOworCisJCWlmICghYm1zX2lzX21l bWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJCSAgIG5v ZGUtPnNzLnBzLnN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpKQorCQkJZmxhZ3MgPSBTT19ISU5U X1JFTF9SRUFEX09OTFk7CisKIAkJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJCXRh YmxlX2JlZ2luc2Nhbl9ibShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJICAg bm9kZS0+c3MucHMuc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCSAgIDAsCi0JCQkJCQkJICAg TlVMTCwgMCk7CisJCQkJCQkJICAgTlVMTCwKKwkJCQkJCQkgICBmbGFncyk7CiAJfQogCiAJbm9k ZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjLT5zdC5yc190Ym1pdGVyYXRvciA9IHRibWl0ZXJhdG9y OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKaW5kZXggY2Y0ZDlhNGY4 MzIuLjJmZTcyNGEzMjNmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5k ZXhvbmx5c2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2Fu LmMKQEAgLTg0LDYgKzg0LDEyIEBAIEluZGV4T25seU5leHQoSW5kZXhPbmx5U2NhblN0YXRlICpu b2RlKQogCiAJaWYgKHNjYW5kZXNjID09IE5VTEwpCiAJeworCQl1aW50MzIJCWZsYWdzID0gMDsK KworCQlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICopIG5vZGUtPnNzLnBzLnBsYW4pLT5zY2Fu cmVsaWQsCisJCQkJCQkgICBlc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcykpCisJCQlmbGFncyA9 IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKKwogCQkvKgogCQkgKiBXZSByZWFjaCBoZXJlIGlmIHRo ZSBpbmRleCBvbmx5IHNjYW4gaXMgbm90IHBhcmFsbGVsLCBvciBpZiB3ZSdyZQogCQkgKiBzZXJp YWxseSBleGVjdXRpbmcgYW4gaW5kZXggb25seSBzY2FuIHRoYXQgd2FzIHBsYW5uZWQgdG8gYmUK QEAgLTk0LDcgKzEwMCw4IEBAIEluZGV4T25seU5leHQoSW5kZXhPbmx5U2NhblN0YXRlICpub2Rl KQogCQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkgICAmbm9kZS0+aW9z c19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5pb3NzX051bVNjYW5LZXlzLAotCQkJCQkJ CQkgICBub2RlLT5pb3NzX051bU9yZGVyQnlLZXlzLCAwKTsKKwkJCQkJCQkJICAgbm9kZS0+aW9z c19OdW1PcmRlckJ5S2V5cywKKwkJCQkJCQkJICAgZmxhZ3MpOwogCiAJCW5vZGUtPmlvc3NfU2Nh bkRlc2MgPSBzY2FuZGVzYzsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZUluZGV4c2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCmluZGV4 IGE3YWYyZjY2MjhhLi44NzMwZGFiNzQ2OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZUluZGV4c2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNj YW4uYwpAQCAtMTAyLDYgKzEwMiwxMiBAQCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5vZGUp CiAKIAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSAwOworCisJ CWlmICghYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxp ZCwKKwkJCQkJCSAgIGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzKSkKKwkJCWZsYWdzID0gU09f SElOVF9SRUxfUkVBRF9PTkxZOworCiAJCS8qCiAJCSAqIFdlIHJlYWNoIGhlcmUgaWYgdGhlIGlu ZGV4IHNjYW4gaXMgbm90IHBhcmFsbGVsLCBvciBpZiB3ZSdyZQogCQkgKiBzZXJpYWxseSBleGVj dXRpbmcgYW4gaW5kZXggc2NhbiB0aGF0IHdhcyBwbGFubmVkIHRvIGJlIHBhcmFsbGVsLgpAQCAt MTExLDcgKzExNyw4IEBAIEluZGV4TmV4dChJbmRleFNjYW5TdGF0ZSAqbm9kZSkKIAkJCQkJCQkJ ICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJICAgJm5vZGUtPmlzc19JbnN0cnVtZW50 LAogCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtU2NhbktleXMsCi0JCQkJCQkJCSAgIG5vZGUtPmlz c19OdW1PcmRlckJ5S2V5cywgMCk7CisJCQkJCQkJCSAgIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5 cywKKwkJCQkJCQkJICAgZmxhZ3MpOwogCiAJCW5vZGUtPmlzc19TY2FuRGVzYyA9IHNjYW5kZXNj OwogCkBAIC0xOTgsNiArMjA1LDEyIEBAIEluZGV4TmV4dFdpdGhSZW9yZGVyKEluZGV4U2NhblN0 YXRlICpub2RlKQogCiAJaWYgKHNjYW5kZXNjID09IE5VTEwpCiAJeworCQl1aW50MzIJCWZsYWdz ID0gMDsKKworCQlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICopIG5vZGUtPnNzLnBzLnBsYW4p LT5zY2FucmVsaWQsCisJCQkJCQkgICBlc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcykpCisJCQlm bGFncyA9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKKwogCQkvKgogCQkgKiBXZSByZWFjaCBoZXJl IGlmIHRoZSBpbmRleCBzY2FuIGlzIG5vdCBwYXJhbGxlbCwgb3IgaWYgd2UncmUKIAkJICogc2Vy aWFsbHkgZXhlY3V0aW5nIGFuIGluZGV4IHNjYW4gdGhhdCB3YXMgcGxhbm5lZCB0byBiZSBwYXJh bGxlbC4KQEAgLTIwNyw3ICsyMjAsOCBAQCBJbmRleE5leHRXaXRoUmVvcmRlcihJbmRleFNjYW5T dGF0ZSAqbm9kZSkKIAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJICAg Jm5vZGUtPmlzc19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtU2NhbktleXMs Ci0JCQkJCQkJCSAgIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywgMCk7CisJCQkJCQkJCSAgIG5v ZGUtPmlzc19OdW1PcmRlckJ5S2V5cywKKwkJCQkJCQkJICAgZmxhZ3MpOwogCiAJCW5vZGUtPmlz c19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlU2Vxc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYwppbmRl eCBkOWQ3ZWMwNTE2YS4uMzM2MzU0OTIyYTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVTZXFzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4u YwpAQCAtNjUsMTMgKzY1LDIwIEBAIFNlcU5leHQoU2VxU2NhblN0YXRlICpub2RlKQogCiAJaWYg KHNjYW5kZXNjID09IE5VTEwpCiAJeworCQl1aW50MzIJCWZsYWdzID0gMDsKKworCQlpZiAoIWJt c19pc19tZW1iZXIoKChTY2FuICopIG5vZGUtPnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJ CQkgICBlc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcykpCisJCQlmbGFncyA9IFNPX0hJTlRfUkVM X1JFQURfT05MWTsKKwogCQkvKgogCQkgKiBXZSByZWFjaCBoZXJlIGlmIHRoZSBzY2FuIGlzIG5v dCBwYXJhbGxlbCwgb3IgaWYgd2UncmUgc2VyaWFsbHkKIAkJICogZXhlY3V0aW5nIGEgc2NhbiB0 aGF0IHdhcyBwbGFubmVkIHRvIGJlIHBhcmFsbGVsLgogCQkgKi8KIAkJc2NhbmRlc2MgPSB0YWJs ZV9iZWdpbnNjYW4obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkgICBlc3Rh dGUtPmVzX3NuYXBzaG90LAotCQkJCQkJCQkgICAwLCBOVUxMLCAwKTsKKwkJCQkJCQkJICAgMCwg TlVMTCwgZmxhZ3MpOworCiAJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9IHNjYW5kZXNj OwogCX0KIApAQCAtMzY3LDE0ICszNzQsMjAgQEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplRFNNKFNl cVNjYW5TdGF0ZSAqbm9kZSwKIHsKIAlFU3RhdGUJICAgKmVzdGF0ZSA9IG5vZGUtPnNzLnBzLnN0 YXRlOwogCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbjsKKwl1aW50MzIJCWZsYWdzID0gMDsK IAogCXBzY2FuID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIG5vZGUtPnBzY2FuX2xlbik7 CiAJdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0 aW9uLAogCQkJCQkJCQkgIHBzY2FuLAogCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3QpOwog CXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lk LCBwc2Nhbik7CisJaWYgKCFibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBub2RlLT5zcy5wcy5wbGFu KS0+c2NhbnJlbGlkLAorCQkJCQkgICBlc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcykpCisJCWZs YWdzID0gU09fSElOVF9SRUxfUkVBRF9PTkxZOworCiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5E ZXNjID0KLQkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxh dGlvbiwgcHNjYW4sIDApOworCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3Nf Y3VycmVudFJlbGF0aW9uLCBwc2NhbiwKKwkJCQkJCQkJIGZsYWdzKTsKIH0KIAogLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpAQCAtNDA0LDggKzQxNywxNSBAQCBFeGVjU2VxU2NhbkluaXRpYWxpemVXb3JrZXIoU2VxU2Nh blN0YXRlICpub2RlLAogCQkJCQkJCVBhcmFsbGVsV29ya2VyQ29udGV4dCAqcHdjeHQpCiB7CiAJ UGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuOworCXVpbnQzMgkJZmxhZ3MgPSAwOworCisJaWYg KCFibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBub2RlLT5zcy5wcy5wbGFuKS0+c2NhbnJlbGlkLAor CQkJCQkgICBub2RlLT5zcy5wcy5zdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzKSkKKwkJZmxhZ3Mg PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CiAKIAlwc2NhbiA9IHNobV90b2NfbG9va3VwKHB3Y3h0 LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgZmFsc2UpOwogCW5vZGUtPnNz LnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5z cy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLCAwKTsKKwkJdGFibGVfYmVnaW5zY2FuX3BhcmFs bGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKKwkJCQkJCQkJIHBzY2FuLAorCQkJCQkJ CQkgZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIv c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IGY3N2EwMDI5MWJiLi5jYWE1ZTliNDIw NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtMTMwLDYgKzEzMCwxMiBAQCB0eXBlZGVmIHN0cnVjdCBJ bmRleEZldGNoSGVhcERhdGEKIAogCS8qIEN1cnJlbnQgaGVhcCBibG9jaydzIGNvcnJlc3BvbmRp bmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgKi8KIAlCdWZmZXIJCXhzX3ZtYnVmZmVyOwor CisJLyoKKwkgKiBTb21lIG9wdGltaXphdGlvbnMgY2FuIG9ubHkgYmUgcGVyZm9ybWVkIGlmIHRo ZSBxdWVyeSBkb2VzIG5vdCBtb2RpZnkKKwkgKiB0aGUgdW5kZXJseWluZyByZWxhdGlvbi4gVHJh Y2sgdGhhdCBoZXJlLgorCSAqLworCWJvb2wJCW1vZGlmaWVzX2Jhc2VfcmVsOwogfSBJbmRleEZl dGNoSGVhcERhdGE7CiAKIC8qIFJlc3VsdCBjb2RlcyBmb3IgSGVhcFR1cGxlU2F0aXNmaWVzVmFj dXVtICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oIGIvc3JjL2lu Y2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAppbmRleCBlODgxZTRmODJhMC4uNTFkZmQxMjIzMDcgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKKysrIGIvc3JjL2luY2x1ZGUv YWNjZXNzL3RhYmxlYW0uaApAQCAtNjMsNiArNjMsOSBAQCB0eXBlZGVmIGVudW0gU2Nhbk9wdGlv bnMKIAogCS8qIHVucmVnaXN0ZXIgc25hcHNob3QgYXQgc2NhbiBlbmQ/ICovCiAJU09fVEVNUF9T TkFQU0hPVCA9IDEgPDwgOSwKKworCS8qIHNldCBpZiB0aGUgcXVlcnkgZG9lc24ndCBtb2RpZnkg dGhlIHJlbGF0aW9uICovCisJU09fSElOVF9SRUxfUkVBRF9PTkxZID0gMSA8PCAxMCwKIH0JCQlT Y2FuT3B0aW9uczsKIAogLyoKLS0gCjIuNDMuMAoK --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0013-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v37-0013-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmacafr12 RnJvbSA1NjI3OGVhNDI3MDRhMTNmYTZhZjM0YmIzZGJiNzk3MTcwMDgwZThiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IEZlYiAyMDI2IDE2OjMzOjQwIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2MzcgMTMvMTVdIEFsbG93IG9uLWFjY2VzcyBwcnVuaW5nIHRvIHNldCBwYWdlcyBhbGwt dmlzaWJsZQoKTWFueSBxdWVyaWVzIGRvIG5vdCBtb2RpZnkgdGhlIHVuZGVybHlpbmcgcmVsYXRp b24uIEZvciBzdWNoIHF1ZXJpZXMsIGlmCm9uLWFjY2VzcyBwcnVuaW5nIG9jY3VycyBkdXJpbmcg dGhlIHNjYW4sIHdlIGNhbiBjaGVjayB3aGV0aGVyIHRoZSBwYWdlCmhhcyBiZWNvbWUgYWxsLXZp c2libGUgYW5kIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAgYWNjb3JkaW5nbHkuClByZXZpb3Vz bHksIG9ubHkgdmFjdXVtIGFuZCBDT1BZIEZSRUVaRSBtYXJrZWQgcGFnZXMgYXMgYWxsLXZpc2li bGUgb3IKYWxsLWZyb3plbi4KClRoaXMgY29tbWl0IGltcGxlbWVudHMgb24tYWNjZXNzIFZNIHNl dHRpbmcgZm9yIHNlcXVlbnRpYWwgc2NhbnMgYXMgd2VsbAphcyBmb3IgdGhlIHVuZGVybHlpbmcg aGVhcCByZWxhdGlvbiBpbiBpbmRleCBzY2FucyBhbmQgYml0bWFwIGhlYXAKc2NhbnMuCgpBdXRo b3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2Vk LWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBLaXJp bGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8 bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9m bGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndRM2NNT014MURoM1ZNaHA4LVY3U09MeGRLOS1n JTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAg ICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRs ZXIuYyAgICAgIHwgIDYgKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAg ICAgICAgICAgfCA0MSArKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBh bS5oICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKy0tCiAuLi4vdC8wMzVfc3RhbmRieV9sb2dp Y2FsX2RlY29kaW5nLnBsICAgICAgICAgfCAgMyArLQogNiBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNl cnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4 IDBkNmUzYmM3ODg0Li5hYmM2ZmU5MDRmYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAg LTYzMyw3ICs2MzMsOCBAQCBoZWFwX3ByZXBhcmVfcGFnZXNjYW4oVGFibGVTY2FuRGVzYyBzc2Nh bikKIAkvKgogCSAqIFBydW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBmb3IgdGhlIHdob2xl IHBhZ2UsIGlmIHBvc3NpYmxlLgogCSAqLwotCWhlYXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNf YmFzZS5yc19yZCwgYnVmZmVyLCAmc2Nhbi0+cnNfdm1idWZmZXIpOworCWhlYXBfcGFnZV9wcnVu ZV9vcHQoc2Nhbi0+cnNfYmFzZS5yc19yZCwgYnVmZmVyLCAmc2Nhbi0+cnNfdm1idWZmZXIsCisJ CQkJCQkoc3NjYW4tPnJzX2ZsYWdzICYgU09fSElOVF9SRUxfUkVBRF9PTkxZKSk7CiAKIAkvKgog CSAqIFdlIG11c3QgaG9sZCBzaGFyZSBsb2NrIG9uIHRoZSBidWZmZXIgY29udGVudCB3aGlsZSBl eGFtaW5pbmcgdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bV9oYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCmlu ZGV4IDA5OGNhMzJmYTg0Li5iOGEyMDEwYzE4OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1faGFuZGxlci5jCkBAIC0xNDcsNyArMTQ3LDggQEAgaGVhcGFtX2luZGV4X2ZldGNoX3R1 cGxlKHN0cnVjdCBJbmRleEZldGNoVGFibGVEYXRhICpzY2FuLAogCQkgKi8KIAkJaWYgKHByZXZf YnVmICE9IGhzY2FuLT54c19jYnVmKQogCQkJaGVhcF9wYWdlX3BydW5lX29wdChoc2Nhbi0+eHNf YmFzZS5yZWwsIGhzY2FuLT54c19jYnVmLAotCQkJCQkJCQkmaHNjYW4tPnhzX3ZtYnVmZmVyKTsK KwkJCQkJCQkJJmhzY2FuLT54c192bWJ1ZmZlciwKKwkJCQkJCQkJIWhzY2FuLT5tb2RpZmllc19i YXNlX3JlbCk7CiAJfQogCiAJLyogT2J0YWluIHNoYXJlLWxvY2sgb24gdGhlIGJ1ZmZlciBzbyB3 ZSBjYW4gZXhhbWluZSB2aXNpYmlsaXR5ICovCkBAIC0yNTQyLDcgKzI1NDMsOCBAQCBCaXRtYXBI ZWFwU2Nhbk5leHRCbG9jayhUYWJsZVNjYW5EZXNjIHNjYW4sCiAJLyoKIAkgKiBQcnVuZSBhbmQg cmVwYWlyIGZyYWdtZW50YXRpb24gZm9yIHRoZSB3aG9sZSBwYWdlLCBpZiBwb3NzaWJsZS4KIAkg Ki8KLQloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX3JkLCBidWZmZXIsICZoc2Nhbi0+cnNf dm1idWZmZXIpOworCWhlYXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfcmQsIGJ1ZmZlciwgJmhz Y2FuLT5yc192bWJ1ZmZlciwKKwkJCQkJCXNjYW4tPnJzX2ZsYWdzICYgU09fSElOVF9SRUxfUkVB RF9PTkxZKTsKIAogCS8qCiAJICogV2UgbXVzdCBob2xkIHNoYXJlIGxvY2sgb24gdGhlIGJ1ZmZl ciBjb250ZW50IHdoaWxlIGV4YW1pbmluZyB0dXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYwppbmRleCA5NGJlMDM0ODUwOS4uOWY1NDVhMWVhZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jCkBAIC00NCw2ICs0NCw4IEBAIHR5cGVkZWYgc3RydWN0CiAJYm9vbAkJbWFy a191bnVzZWRfbm93OwogCS8qIHdoZXRoZXIgdG8gYXR0ZW1wdCBmcmVlemluZyB0dXBsZXMgKi8K IAlib29sCQlhdHRlbXB0X2ZyZWV6ZTsKKwkvKiB3aGV0aGVyIHRvIGF0dGVtcHQgc2V0dGluZyB0 aGUgVk0gKi8KKwlib29sCQlhdHRlbXB0X3NldF92bTsKIAlzdHJ1Y3QgVmFjdXVtQ3V0b2ZmcyAq Y3V0b2ZmczsKIAlSZWxhdGlvbglyZWxhdGlvbjsKIApAQCAtMjEzLDcgKzIxNSw4IEBAIHN0YXRp YyB2b2lkIHBhZ2VfdmVyaWZ5X3JlZGlyZWN0cyhQYWdlIHBhZ2UpOwogCiBzdGF0aWMgYm9vbCBo ZWFwX3BhZ2Vfd2lsbF9mcmVlemUoYm9vbCBkaWRfdHVwbGVfaGludF9mcGksIGJvb2wgZG9fcHJ1 bmUsIGJvb2wgZG9faGludF9wcnVuZSwKIAkJCQkJCQkJICBQcnVuZVN0YXRlICpwcnN0YXRlKTsK LXN0YXRpYyBib29sIGhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRlICpwcnN0YXRlLCBQ cnVuZVJlYXNvbiByZWFzb24pOworc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBy dW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29uIHJlYXNvbiwKKwkJCQkJCQkJICBib29sIGRv X3BydW5lLCBib29sIGRvX2ZyZWV6ZSk7CiAKIC8qCiAgKiBPcHRpb25hbGx5IHBydW5lIGFuZCBy ZXBhaXIgZnJhZ21lbnRhdGlvbiBpbiB0aGUgc3BlY2lmaWVkIHBhZ2UuCkBAIC0yMzMsNyArMjM2 LDggQEAgc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3Rh dGUsIFBydW5lUmVhc29uIHJlYXNvbik7CiAgKiB1bnBpbm5pbmcgKnZtYnVmZmVyLgogICovCiB2 b2lkCi1oZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVy LCBCdWZmZXIgKnZtYnVmZmVyKQoraGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlv biwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlciwKKwkJCQkJYm9vbCByZWxfcmVhZF9v bmx5KQogewogCVBhZ2UJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAJVHJhbnNhY3Rp b25JZCBwcnVuZV94aWQ7CkBAIC0zMTUsNiArMzE5LDggQEAgaGVhcF9wYWdlX3BydW5lX29wdChS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKIAkJCSAq IGN1cnJlbnQgaW1wbGVtZW50YXRpb24uCiAJCQkgKi8KIAkJCXBhcmFtcy5vcHRpb25zID0gMDsK KwkJCWlmIChyZWxfcmVhZF9vbmx5KQorCQkJCXBhcmFtcy5vcHRpb25zID0gSEVBUF9QQUdFX1BS VU5FX1NFVF9WTTsKIAogCQkJaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoJnBhcmFtcywgJnBy ZXN1bHQsICZkdW1teV9vZmZfbG9jLAogCQkJCQkJCQkJICAgTlVMTCwgTlVMTCk7CkBAIC0zNzEs NiArMzc3LDcgQEAgcHJ1bmVfZnJlZXplX3NldHVwKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMs CiAJLyogY3V0b2ZmcyBtdXN0IGJlIHByb3ZpZGVkIGlmIHdlIHdpbGwgYXR0ZW1wdCBmcmVlemlu ZyAqLwogCUFzc2VydCghKHBhcmFtcy0+b3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUp IHx8IHBhcmFtcy0+Y3V0b2Zmcyk7CiAJcHJzdGF0ZS0+YXR0ZW1wdF9mcmVlemUgPSAocGFyYW1z LT5vcHRpb25zICYgSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSkgIT0gMDsKKwlwcnN0YXRlLT5hdHRl bXB0X3NldF92bSA9IChwYXJhbXMtPm9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfU0VUX1ZNKSAh PSAwOwogCXByc3RhdGUtPmN1dG9mZnMgPSBwYXJhbXMtPmN1dG9mZnM7CiAJcHJzdGF0ZS0+cmVs YXRpb24gPSBwYXJhbXMtPnJlbGF0aW9uOwogCXByc3RhdGUtPmJsb2NrID0gQnVmZmVyR2V0Qmxv Y2tOdW1iZXIocGFyYW1zLT5idWZmZXIpOwpAQCAtODczLDIxICs4ODAsMzcgQEAgaGVhcF9maXhf dm1fY29ycnVwdGlvbihQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQog ICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBzZXQgdGhlIFZNIGJpdHMgb3IgcGFn ZS1sZXZlbCB2aXNpYmlsaXR5CiAgKiBoaW50LCBQRF9BTExfVklTSUJMRS4KICAqCisgKiBUaGlz IHNob3VsZCBiZSBjYWxsZWQgb25seSBhZnRlciBkb19mcmVlemUgaGFzIGJlZW4gZGVjaWRlZCAo YW5kIGRvX3BydW5lCisgKiBoYXMgYmVlbiBzZXQpLCBhcyB0aGVzZSBmYWN0b3IgaW50byBvdXIg aGV1cmlzdGljLWJhc2VkIGRlY2lzaW9uLgorICoKICAqIFJldHVybnMgdHJ1ZSBpZiBvbmUgb3Ig Ym90aCBWTSBiaXRzIHNob3VsZCBiZSBzZXQgYW5kIGZhbHNlIG90aGVyd2lzZS4KICAqLwogc3Rh dGljIGJvb2wKLWhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVu ZVJlYXNvbiByZWFzb24pCitoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJzdGF0 ZSwgUHJ1bmVSZWFzb24gcmVhc29uLAorCQkJCQkgIGJvb2wgZG9fcHJ1bmUsIGJvb2wgZG9fZnJl ZXplKQogewotCS8qCi0JICogVGhvdWdoIG9uLWFjY2VzcyBwcnVuaW5nIG1haW50YWlucyBwcnN0 YXRlLT5zZXRfYWxsX3Zpc2libGUsIHdlIGRvbid0Ci0JICogY29uc2lkZXIgc2V0dGluZyB0aGUg Vk0uCi0JICovCi0JaWYgKHJlYXNvbiA9PSBQUlVORV9PTl9BQ0NFU1MpCisJaWYgKCFwcnN0YXRl LT5hdHRlbXB0X3NldF92bSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJaWYgKCFwcnN0YXRlLT5zZXRf YWxsX3Zpc2libGUpCiAJCXJldHVybiBmYWxzZTsKIAorCS8qCisJICogSWYgdGhpcyBpcyBhbiBv bi1hY2Nlc3MgY2FsbCBhbmQgd2UncmUgbm90IGFjdHVhbGx5IHBydW5pbmcsIGF2b2lkCisJICog c2V0dGluZyB0aGUgdmlzaWJpbGl0eSBtYXAgaWYgaXQgd291bGQgbmV3bHkgZGlydHkgdGhlIGhl YXAgcGFnZSBvciwgaWYKKwkgKiB0aGUgcGFnZSBpcyBhbHJlYWR5IGRpcnR5LCBpZiBkb2luZyBz byB3b3VsZCByZXF1aXJlIGluY2x1ZGluZyBhCisJICogZnVsbC1wYWdlIGltYWdlIChGUEkpIG9m IHRoZSBoZWFwIHBhZ2UgaW4gdGhlIFdBTC4gVGhpcyBzaXR1YXRpb24KKwkgKiBzaG91bGQgYmUg cmFyZSwgYXMgb24tYWNjZXNzIHBydW5pbmcgaXMgb25seSBhdHRlbXB0ZWQgd2hlbgorCSAqIHBk X3BydW5lX3hpZCBpcyB2YWxpZC4KKwkgKi8KKwlpZiAocmVhc29uID09IFBSVU5FX09OX0FDQ0VT UyAmJiAhZG9fcHJ1bmUgJiYgIWRvX2ZyZWV6ZSAmJgorCQkoIUJ1ZmZlcklzRGlydHkocHJzdGF0 ZS0+YnVmZmVyKSB8fCBYTG9nQ2hlY2tCdWZmZXJOZWVkc0JhY2t1cChwcnN0YXRlLT5idWZmZXIp KSkKKwl7CisJCXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSA9IGZhbHNlOworCQlwcnN0YXRlLT5z ZXRfYWxsX2Zyb3plbiA9IGZhbHNlOworCQlyZXR1cm4gZmFsc2U7CisJfQorCiAJcHJzdGF0ZS0+ bmV3X3ZtYml0cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CiAKIAlpZiAocHJzdGF0ZS0+ c2V0X2FsbF9mcm96ZW4pCkBAIC0xMTAzLDcgKzExMjYsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5k X2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCUFzc2VydCghcHJzdGF0ZS5zZXRf YWxsX2Zyb3plbiB8fCBwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSk7CiAJQXNzZXJ0KCFwcnN0YXRl LnNldF9hbGxfdmlzaWJsZSB8fCAocHJzdGF0ZS5scGRlYWRfaXRlbXMgPT0gMCkpOwogCi0JZG9f c2V0X3ZtID0gaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKCZwcnN0YXRlLCBwYXJhbXMtPnJlYXNvbik7 CisJZG9fc2V0X3ZtID0gaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKCZwcnN0YXRlLCBwYXJhbXMtPnJl YXNvbiwgZG9fcHJ1bmUsIGRvX2ZyZWV6ZSk7CiAKIAkvKgogCSAqIG5ld192bWJpdHMgc2hvdWxk IGJlIDAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBpcwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDhiZDE3OGFlN2U2Li5kMmNhZTc3YjUyYSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMjAwOCw3ICsyMDA4LDcgQEAgbGF6 eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkJLmJ1ZmZlciA9IGJ1ZiwKIAkJLnZt YnVmZmVyID0gdm1idWZmZXIsCiAJCS5yZWFzb24gPSBQUlVORV9WQUNVVU1fU0NBTiwKLQkJLm9w dGlvbnMgPSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFLAorCQkub3B0aW9ucyA9IEhFQVBfUEFHRV9Q UlVORV9GUkVFWkUgfCBIRUFQX1BBR0VfUFJVTkVfU0VUX1ZNLAogCQkudmlzdGVzdCA9IHZhY3Jl bC0+dmlzdGVzdCwKIAkJLmN1dG9mZnMgPSAmdmFjcmVsLT5jdXRvZmZzLAogCX07CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVh cGFtLmgKaW5kZXggY2FhNWU5YjQyMDYuLjIxYjY0MGQ0NTljIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBA IC00Miw2ICs0Miw3IEBACiAvKiAib3B0aW9ucyIgZmxhZyBiaXRzIGZvciBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZSAqLwogI2RlZmluZSBIRUFQX1BBR0VfUFJVTkVfTUFSS19VTlVTRURfTk9X CQkoMSA8PCAwKQogI2RlZmluZSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFCQkJCSgxIDw8IDEpCisj ZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9TRVRfVk0JCQkJKDEgPDwgMikKIAogdHlwZWRlZiBzdHJ1 Y3QgQnVsa0luc2VydFN0YXRlRGF0YSAqQnVsa0luc2VydFN0YXRlOwogdHlwZWRlZiBzdHJ1Y3Qg R2xvYmFsVmlzU3RhdGUgR2xvYmFsVmlzU3RhdGU7CkBAIC05Niw3ICs5Nyw4IEBAIHR5cGVkZWYg c3RydWN0IEhlYXBTY2FuRGVzY0RhdGEKIAogCS8qCiAJICogRm9yIHNlcXVlbnRpYWwgc2NhbnMg YW5kIGJpdG1hcCBoZWFwIHNjYW5zLiBUaGUgY3VycmVudCBoZWFwIGJsb2NrJ3MKLQkgKiBjb3Jy ZXNwb25kaW5nIHBhZ2UgaW4gdGhlIHZpc2liaWxpdHkgbWFwLgorCSAqIGNvcnJlc3BvbmRpbmcg cGFnZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAuIElmIHRoZSByZWxhdGlvbiBpcyBub3QKKwkgKiBt b2RpZmllZCBieSB0aGUgcXVlcnksIG9uLWFjY2VzcyBwcnVuaW5nIG1heSBzZXQgdGhlIFZNLgog CSAqLwogCUJ1ZmZlcgkJcnNfdm1idWZmZXI7CiAKQEAgLTEyOCw3ICsxMzAsMTEgQEAgdHlwZWRl ZiBzdHJ1Y3QgSW5kZXhGZXRjaEhlYXBEYXRhCiAJICovCiAJQnVmZmVyCQl4c19jYnVmOwogCi0J LyogQ3VycmVudCBoZWFwIGJsb2NrJ3MgY29ycmVzcG9uZGluZyBwYWdlIGluIHRoZSB2aXNpYmls aXR5IG1hcCAqLworCS8qCisJICogQ3VycmVudCBoZWFwIGJsb2NrJ3MgY29ycmVzcG9uZGluZyBw YWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcC4gRm9yCisJICogaW5kZXggc2NhbnMgdGhhdCBkbyBu b3QgbW9kaWZ5IHRoZSB1bmRlcmx5aW5nIGhlYXAgdGFibGUsIG9uLWFjY2VzcworCSAqIHBydW5p bmcgbWF5IHNldCB0aGUgVk0gb24tYWNjZXNzLgorCSAqLwogCUJ1ZmZlcgkJeHNfdm1idWZmZXI7 CiAKIAkvKgpAQCAtNDM5LDcgKzQ0NSw3IEBAIGV4dGVybiBUcmFuc2FjdGlvbklkIGhlYXBfaW5k ZXhfZGVsZXRlX3R1cGxlcyhSZWxhdGlvbiByZWwsCiAKIC8qIGluIGhlYXAvcHJ1bmVoZWFwLmMg Ki8KIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1 ZmZlciBidWZmZXIsCi0JCQkJCQkJCUJ1ZmZlciAqdm1idWZmZXIpOworCQkJCQkJCQlCdWZmZXIg KnZtYnVmZmVyLCBib29sIHJlbF9yZWFkX29ubHkpOwogZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkJCQkJCQkJCSAgIFBy dW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0LAogCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpvZmZf bG9jLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2Fs X2RlY29kaW5nLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2Rl Y29kaW5nLnBsCmluZGV4IGQyNjRhNjk4ZmY2Li5hNTUzNmJhNGZmNiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsCisrKyBiL3Ny Yy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5wbApAQCAtMjk2 LDYgKzI5Niw3IEBAIHdhbF9sZXZlbCA9ICdsb2dpY2FsJwogbWF4X3JlcGxpY2F0aW9uX3Nsb3Rz ID0gNAogbWF4X3dhbF9zZW5kZXJzID0gNAogYXV0b3ZhY3V1bSA9IG9mZgoraG90X3N0YW5kYnlf ZmVlZGJhY2sgPSBvbgogfSk7CiAkbm9kZV9wcmltYXJ5LT5kdW1wX2luZm87CiAkbm9kZV9wcmlt YXJ5LT5zdGFydDsKQEAgLTc0OCw3ICs3NDksNyBAQCBjaGVja19wZ19yZWN2bG9naWNhbF9zdGRl cnIoJGhhbmRsZSwKICRsb2dzdGFydCA9IC1zICRub2RlX3N0YW5kYnktPmxvZ2ZpbGU7CiAKIHJl YWN0aXZlX3Nsb3RzX2NoYW5nZV9oZnNfYW5kX3dhaXRfZm9yX3htaW5zKCdzaGFyZWRfcm93X3Jl bW92YWxfJywKLQknbm9fY29uZmxpY3RfJywgMCwgMSk7CisJJ25vX2NvbmZsaWN0XycsIDEsIDAp OwogCiAjIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgY29uZmxpY3QKIHdhaXRfdW50aWxfdmFj dXVtX2Nhbl9yZW1vdmUoCi0tIAoyLjQzLjAKCg== --000000000000917517064cc2978d Content-Type: text/x-patch; charset="US-ASCII"; name="v37-0014-Avoid-BufferGetPage-calls-in-heap_update.patch" Content-Disposition: attachment; filename="v37-0014-Avoid-BufferGetPage-calls-in-heap_update.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmaceps13 RnJvbSBjYjZiM2IyMmYyYTFiNTZlZTliZGRhOGZkNjA1YWIyYzk1NjU1NWIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDYgTWFyIDIwMjYgMTY6NDY6MDEgLTA1MDAKU3ViamVjdDogW1BB VENIIHYzNyAxNC8xNV0gQXZvaWQgQnVmZmVyR2V0UGFnZSgpIGNhbGxzIGluIGhlYXBfdXBkYXRl KCkKCkJ1ZmZlckdldFBhZ2UoKSBpc24ndCBjaGVhcCBhbmQgaGVhcF91cGRhdGUoKSBjYWxscyBp dCBtdWx0aXBsZSB0aW1lcwp3aGVuIGl0IGNvdWxkIGp1c3Qgc2F2ZSB0aGUgcGFnZSBmcm9tIGEg c2luZ2xlIGNhbGwuIERvIHRoYXQuCldoaWxlIHdlIGFyZSBhdCBpdCwgbWFrZSBzZXBhcmF0ZSB2 YXJpYWJsZXMgZm9yIG9sZCBhbmQgbmV3IHBhZ2UgaW4KaGVhcF94bG9nX3VwZGF0ZSgpLiBJdCdz IGNvbmZ1c2luZyB0byByZXVzZSAicGFnZSIgZm9yIGJvdGggcGFnZXMuCi0tLQogc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICB8IDE3ICsrKysrKysrLS0tLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIHwgMzQgKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggYWJjNmZlOTA0ZmIuLmRiZGY2NTIxYzQy IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtMzMzOSw3ICszMzM5LDggQEAgaGVhcF91 cGRhdGUoUmVsYXRpb24gcmVsYXRpb24sIGNvbnN0IEl0ZW1Qb2ludGVyRGF0YSAqb3RpZCwgSGVh cFR1cGxlIG5ld3R1cCwKIAlIZWFwVHVwbGUJaGVhcHR1cDsKIAlIZWFwVHVwbGUJb2xkX2tleV90 dXBsZSA9IE5VTEw7CiAJYm9vbAkJb2xkX2tleV9jb3BpZWQgPSBmYWxzZTsKLQlQYWdlCQlwYWdl OworCVBhZ2UJCXBhZ2UsCisJCQkJbmV3cGFnZTsKIAlCbG9ja051bWJlciBibG9jazsKIAlNdWx0 aVhhY3RTdGF0dXMgbXhhY3Rfc3RhdHVzOwogCUJ1ZmZlcgkJYnVmZmVyLApAQCAtNDA2NSw2ICs0 MDY2LDggQEAgbDI6CiAJCWhlYXB0dXAgPSBuZXd0dXA7CiAJfQogCisJbmV3cGFnZSA9IEJ1ZmZl ckdldFBhZ2UobmV3YnVmKTsKKwogCS8qCiAJICogV2UncmUgYWJvdXQgdG8gZG8gdGhlIGFjdHVh bCB1cGRhdGUgLS0gY2hlY2sgZm9yIGNvbmZsaWN0IGZpcnN0LCB0bwogCSAqIGF2b2lkIHBvc3Np Ymx5IGhhdmluZyB0byByb2xsIGJhY2sgd29yayB3ZSd2ZSBqdXN0IGRvbmUuCkBAIC00MTc5LDE3 ICs0MTgyLDE3IEBAIGwyOgogCW9sZHR1cC50X2RhdGEtPnRfY3RpZCA9IGhlYXB0dXAtPnRfc2Vs ZjsKIAogCS8qIGNsZWFyIFBEX0FMTF9WSVNJQkxFIGZsYWdzLCByZXNldCBhbGwgdmlzaWJpbGl0 eW1hcCBiaXRzICovCi0JaWYgKFBhZ2VJc0FsbFZpc2libGUoQnVmZmVyR2V0UGFnZShidWZmZXIp KSkKKwlpZiAoUGFnZUlzQWxsVmlzaWJsZShwYWdlKSkKIAl7CiAJCWFsbF92aXNpYmxlX2NsZWFy ZWQgPSB0cnVlOwotCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSk7 CisJCVBhZ2VDbGVhckFsbFZpc2libGUocGFnZSk7CiAJCXZpc2liaWxpdHltYXBfY2xlYXIocmVs YXRpb24sIEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZlciksCiAJCQkJCQkJdm1idWZmZXIsIFZJ U0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CiAJfQotCWlmIChuZXdidWYgIT0gYnVmZmVyICYmIFBh Z2VJc0FsbFZpc2libGUoQnVmZmVyR2V0UGFnZShuZXdidWYpKSkKKwlpZiAobmV3YnVmICE9IGJ1 ZmZlciAmJiBQYWdlSXNBbGxWaXNpYmxlKG5ld3BhZ2UpKQogCXsKIAkJYWxsX3Zpc2libGVfY2xl YXJlZF9uZXcgPSB0cnVlOwotCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKEJ1ZmZlckdldFBhZ2UobmV3 YnVmKSk7CisJCVBhZ2VDbGVhckFsbFZpc2libGUobmV3cGFnZSk7CiAJCXZpc2liaWxpdHltYXBf Y2xlYXIocmVsYXRpb24sIEJ1ZmZlckdldEJsb2NrTnVtYmVyKG5ld2J1ZiksCiAJCQkJCQkJdm1i dWZmZXJfbmV3LCBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwogCX0KQEAgLTQyMjAsOSArNDIy Myw5IEBAIGwyOgogCQkJCQkJCQkgYWxsX3Zpc2libGVfY2xlYXJlZF9uZXcpOwogCQlpZiAobmV3 YnVmICE9IGJ1ZmZlcikKIAkJewotCQkJUGFnZVNldExTTihCdWZmZXJHZXRQYWdlKG5ld2J1Ziks IHJlY3B0cik7CisJCQlQYWdlU2V0TFNOKG5ld3BhZ2UsIHJlY3B0cik7CiAJCX0KLQkJUGFnZVNl dExTTihCdWZmZXJHZXRQYWdlKGJ1ZmZlciksIHJlY3B0cik7CisJCVBhZ2VTZXRMU04ocGFnZSwg cmVjcHRyKTsKIAl9CiAKIAlFTkRfQ1JJVF9TRUNUSU9OKCk7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGVhcGFtX3hsb2cuYwppbmRleCBhODNmNmIwM2Q2OS4uMTMwMmJiMTNlMTggMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNjg1LDcgKzY4NSw4IEBAIGhlYXBfeGxvZ191 cGRhdGUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQsIGJvb2wgaG90X3VwZGF0ZSkKIAlJdGVtUG9p bnRlckRhdGEgbmV3dGlkOwogCUJ1ZmZlcgkJb2J1ZmZlciwKIAkJCQluYnVmZmVyOwotCVBhZ2UJ CXBhZ2U7CisJUGFnZQkJb3BhZ2UsCisJCQkJbnBhZ2U7CiAJT2Zmc2V0TnVtYmVyIG9mZm51bTsK IAlJdGVtSWQJCWxwOwogCUhlYXBUdXBsZURhdGEgb2xkdHVwOwpAQCAtNzQ5LDE1ICs3NTAsMTUg QEAgaGVhcF94bG9nX3VwZGF0ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCwgYm9vbCBob3RfdXBk YXRlKQogCQkJCQkJCQkJICAmb2J1ZmZlcik7CiAJaWYgKG9sZGFjdGlvbiA9PSBCTEtfTkVFRFNf UkVETykKIAl7Ci0JCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKG9idWZmZXIpOworCQlvcGFnZSA9IEJ1 ZmZlckdldFBhZ2Uob2J1ZmZlcik7CiAJCW9mZm51bSA9IHhscmVjLT5vbGRfb2ZmbnVtOwotCQlp ZiAob2ZmbnVtIDwgMSB8fCBvZmZudW0gPiBQYWdlR2V0TWF4T2Zmc2V0TnVtYmVyKHBhZ2UpKQor CQlpZiAob2ZmbnVtIDwgMSB8fCBvZmZudW0gPiBQYWdlR2V0TWF4T2Zmc2V0TnVtYmVyKG9wYWdl KSkKIAkJCWVsb2coUEFOSUMsICJvZmZudW0gb3V0IG9mIHJhbmdlIik7Ci0JCWxwID0gUGFnZUdl dEl0ZW1JZChwYWdlLCBvZmZudW0pOworCQlscCA9IFBhZ2VHZXRJdGVtSWQob3BhZ2UsIG9mZm51 bSk7CiAJCWlmICghSXRlbUlkSXNOb3JtYWwobHApKQogCQkJZWxvZyhQQU5JQywgImludmFsaWQg bHAiKTsKIAotCQlodHVwID0gKEhlYXBUdXBsZUhlYWRlcikgUGFnZUdldEl0ZW0ocGFnZSwgbHAp OworCQlodHVwID0gKEhlYXBUdXBsZUhlYWRlcikgUGFnZUdldEl0ZW0ob3BhZ2UsIGxwKTsKIAog CQlvbGR0dXAudF9kYXRhID0gaHR1cDsKIAkJb2xkdHVwLnRfbGVuID0gSXRlbUlkR2V0TGVuZ3Ro KGxwKTsKQEAgLTc3NiwxMiArNzc3LDEyIEBAIGhlYXBfeGxvZ191cGRhdGUoWExvZ1JlYWRlclN0 YXRlICpyZWNvcmQsIGJvb2wgaG90X3VwZGF0ZSkKIAkJaHR1cC0+dF9jdGlkID0gbmV3dGlkOwog CiAJCS8qIE1hcmsgdGhlIHBhZ2UgYXMgYSBjYW5kaWRhdGUgZm9yIHBydW5pbmcgKi8KLQkJUGFn ZVNldFBydW5hYmxlKHBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7CisJCVBhZ2VTZXRQcnVu YWJsZShvcGFnZSwgWExvZ1JlY0dldFhpZChyZWNvcmQpKTsKIAogCQlpZiAoeGxyZWMtPmZsYWdz ICYgWExIX1VQREFURV9PTERfQUxMX1ZJU0lCTEVfQ0xFQVJFRCkKLQkJCVBhZ2VDbGVhckFsbFZp c2libGUocGFnZSk7CisJCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKG9wYWdlKTsKIAotCQlQYWdlU2V0 TFNOKHBhZ2UsIGxzbik7CisJCVBhZ2VTZXRMU04ob3BhZ2UsIGxzbik7CiAJCU1hcmtCdWZmZXJE aXJ0eShvYnVmZmVyKTsKIAl9CiAKQEAgLTc5Niw4ICs3OTcsOCBAQCBoZWFwX3hsb2dfdXBkYXRl KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkLCBib29sIGhvdF91cGRhdGUpCiAJZWxzZSBpZiAoWExv Z1JlY0dldEluZm8ocmVjb3JkKSAmIFhMT0dfSEVBUF9JTklUX1BBR0UpCiAJewogCQluYnVmZmVy ID0gWExvZ0luaXRCdWZmZXJGb3JSZWRvKHJlY29yZCwgMCk7Ci0JCXBhZ2UgPSBCdWZmZXJHZXRQ YWdlKG5idWZmZXIpOwotCQlQYWdlSW5pdChwYWdlLCBCdWZmZXJHZXRQYWdlU2l6ZShuYnVmZmVy KSwgMCk7CisJCW5wYWdlID0gQnVmZmVyR2V0UGFnZShuYnVmZmVyKTsKKwkJUGFnZUluaXQobnBh Z2UsIEJ1ZmZlckdldFBhZ2VTaXplKG5idWZmZXIpLCAwKTsKIAkJbmV3YWN0aW9uID0gQkxLX05F RURTX1JFRE87CiAJfQogCWVsc2UKQEAgLTgyOSwxMCArODMwLDEwIEBAIGhlYXBfeGxvZ191cGRh dGUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQsIGJvb2wgaG90X3VwZGF0ZSkKIAkJcmVjZGF0YSA9 IFhMb2dSZWNHZXRCbG9ja0RhdGEocmVjb3JkLCAwLCAmZGF0YWxlbik7CiAJCXJlY2RhdGFfZW5k ID0gcmVjZGF0YSArIGRhdGFsZW47CiAKLQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UobmJ1ZmZlcik7 CisJCW5wYWdlID0gQnVmZmVyR2V0UGFnZShuYnVmZmVyKTsKIAogCQlvZmZudW0gPSB4bHJlYy0+ bmV3X29mZm51bTsKLQkJaWYgKFBhZ2VHZXRNYXhPZmZzZXROdW1iZXIocGFnZSkgKyAxIDwgb2Zm bnVtKQorCQlpZiAoUGFnZUdldE1heE9mZnNldE51bWJlcihucGFnZSkgKyAxIDwgb2ZmbnVtKQog CQkJZWxvZyhQQU5JQywgImludmFsaWQgbWF4IG9mZnNldCBudW1iZXIiKTsKIAogCQlpZiAoeGxy ZWMtPmZsYWdzICYgWExIX1VQREFURV9QUkVGSVhfRlJPTV9PTEQpCkBAIC05MDksMTYgKzkxMCwx NyBAQCBoZWFwX3hsb2dfdXBkYXRlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkLCBib29sIGhvdF91 cGRhdGUpCiAJCS8qIE1ha2Ugc3VyZSB0aGVyZSBpcyBubyBmb3J3YXJkIGNoYWluIGxpbmsgaW4g dF9jdGlkICovCiAJCWh0dXAtPnRfY3RpZCA9IG5ld3RpZDsKIAotCQlvZmZudW0gPSBQYWdlQWRk SXRlbShwYWdlLCBodHVwLCBuZXdsZW4sIG9mZm51bSwgdHJ1ZSwgdHJ1ZSk7CisJCW9mZm51bSA9 IFBhZ2VBZGRJdGVtKG5wYWdlLCBodHVwLCBuZXdsZW4sIG9mZm51bSwgdHJ1ZSwgdHJ1ZSk7CiAJ CWlmIChvZmZudW0gPT0gSW52YWxpZE9mZnNldE51bWJlcikKIAkJCWVsb2coUEFOSUMsICJmYWls ZWQgdG8gYWRkIHR1cGxlIik7CiAKIAkJaWYgKHhscmVjLT5mbGFncyAmIFhMSF9VUERBVEVfTkVX X0FMTF9WSVNJQkxFX0NMRUFSRUQpCi0JCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOworCQkJ UGFnZUNsZWFyQWxsVmlzaWJsZShucGFnZSk7CiAKLQkJZnJlZXNwYWNlID0gUGFnZUdldEhlYXBG cmVlU3BhY2UocGFnZSk7IC8qIG5lZWRlZCB0byB1cGRhdGUgRlNNIGJlbG93ICovCisJCS8qIG5l ZWRlZCB0byB1cGRhdGUgRlNNIGJlbG93ICovCisJCWZyZWVzcGFjZSA9IFBhZ2VHZXRIZWFwRnJl ZVNwYWNlKG5wYWdlKTsKIAotCQlQYWdlU2V0TFNOKHBhZ2UsIGxzbik7CisJCVBhZ2VTZXRMU04o bnBhZ2UsIGxzbik7CiAJCU1hcmtCdWZmZXJEaXJ0eShuYnVmZmVyKTsKIAl9CiAKLS0gCjIuNDMu MAoK --000000000000917517064cc2978d Content-Type: text/x-patch; charset="UTF-8"; name="v37-0015-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v37-0015-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmmaci3f14 RnJvbSBhZDY0NDc2YzVhZmI5MTgwYWU5OWJmMjAyNjgxODMzZDlkYmJkZmJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MzcgMTUvMTVdIFNldCBwZF9wcnVuZV94aWQgb24gaW5zZXJ0Ck1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgpOb3cgdGhhdCB2aXNpYmlsaXR5IG1hcCAoVk0pIHVwZGF0ZXMg Y2FuIG9jY3VyIGR1cmluZyByZWFkLW9ubHkgcXVlcmllcywKaXQgbWFrZXMgc2Vuc2UgdG8gYWxz byBzZXQgdGhlIHBhZ2XigJlzIHBkX3BydW5lX3hpZCBoaW50IGR1cmluZyBpbnNlcnRzCmFuZCBv biB0aGUgbmV3IHBhZ2UgZHVyaW5nIHVwZGF0ZXMuCgpUaGlzIGVuYWJsZXMgaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoKSB0byBydW4gYW5kIHNldCB0aGUgVk0KYWxsLXZpc2libGUgYWZ0ZXIg YSBwYWdlIGlzIGZpbGxlZCB3aXRoIG5ld2x5IGluc2VydGVkIHR1cGxlcyB0aGUgZmlyc3QKdGlt ZSBpdCBpcyByZWFkLgoKVGhpcyBjaGFuZ2UgYWxzbyBhZGRyZXNzZXMgYSBsb25nLXN0YW5kaW5n IG5vdGUgaW4gaGVhcF9pbnNlcnQoKSBhbmQKaGVhcF9tdWx0aV9pbnNlcnQoKSwgd2hpY2ggb2Jz ZXJ2ZWQgdGhhdCBzZXR0aW5nIHBkX3BydW5lX3hpZCB3b3VsZApoZWxwIGNsZWFuIHVwIGFib3J0 ZWQgaW5zZXJ0aW9ucyBzb29uZXIuIFdpdGhvdXQgaXQsIHN1Y2ggdHVwbGVzIG1pZ2h0Cmxpbmdl ciB1bnRpbCBWQUNVVU0sIHdoZXJlYXMgbm93IHRoZXkgY2FuIGJlIHBydW5lZCBlYXJsaWVyLgoK VGhlIGluZGV4IGtpbGx0dXBsZXMgdGVzdCBoYWQgdG8gYmUgdXBkYXRlZCB0byByZWZsZWN0IGEg bGFyZ2VyIG51bWJlcgpvZiBoaXRzIGJ5IHNvbWUgYWNjZXNzZXMuIFNpbmNlIHRoZSBwcnVuZV94 aWQgaXMgc2V0IGJ5IHRoZSBmaWxsL2luc2VydApzdGVwLCBvbi1hY2Nlc3MgcHJ1bmluZyBjYW4g aGFwcGVuIGR1cmluZyB0aGUgZmlyc3QgYWNjZXNzIHN0ZXAgKGJlZm9yZQp0aGUgREVMRVRFKS4g VGhpcyBpcyB3aGVuIHRoZSBWTSBpcyBleHRlbmRlZC4gQWZ0ZXIgdGhlIERFTEVURSwgdGhlIG5l eHQKYWNjZXNzIGhpdHMgdGhlIFZNIGJsb2NrIGluc3RlYWQgb2YgZXh0ZW5kaW5nIGl0LiBUaHVz LCBhbiBhZGRpdGlvbmFsCmJ1ZmZlciBoaXQgaXMgY291bnRlZCBmb3IgdGhlIHRhYmxlLgoKQXV0 aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdl ZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6 Ly9wb3N0Z3IuZXMvbS9mbGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndRM2NNT014MURoM1ZN aHA4LVY3U09MeGRLOS1nJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9oZWFwYW0uYyAgICAgICAgICAgICAgfCA0MCArKysrKysrKysrKystLS0tLS0tCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jICAgICAgICAgfCAxOSArKysrKysrKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICAgICAgICAgICB8IDE0ICsrKy0t LS0KIC4uLi9tb2R1bGVzL2luZGV4L2V4cGVjdGVkL2tpbGx0dXBsZXMub3V0ICAgICB8ICA4ICsr LS0KIDQgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCBkYmRmNjUyMWM0Mi4uYzE5OTY0NmIyNWQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC0yMTU2LDYgKzIxNTYsNyBAQCBoZWFwX2luc2Vy dChSZWxhdGlvbiByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAlUcmFu c2FjdGlvbklkIHhpZCA9IEdldEN1cnJlbnRUcmFuc2FjdGlvbklkKCk7CiAJSGVhcFR1cGxlCWhl YXB0dXA7CiAJQnVmZmVyCQlidWZmZXI7CisJUGFnZQkJcGFnZTsKIAlCdWZmZXIJCXZtYnVmZmVy ID0gSW52YWxpZEJ1ZmZlcjsKIAlib29sCQlhbGxfdmlzaWJsZV9jbGVhcmVkID0gZmFsc2U7CiAK QEAgLTIxODIsNiArMjE4Myw4IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFw VHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQkJCQkJCQkJICAgJnZtYnVmZmVyLCBOVUxMLAog CQkJCQkJCQkJICAgMCk7CiAKKwlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOworCiAJLyoK IAkgKiBXZSdyZSBhYm91dCB0byBkbyB0aGUgYWN0dWFsIGluc2VydCAtLSBidXQgY2hlY2sgZm9y IGNvbmZsaWN0IGZpcnN0LCB0bwogCSAqIGF2b2lkIHBvc3NpYmx5IGhhdmluZyB0byByb2xsIGJh Y2sgd29yayB3ZSd2ZSBqdXN0IGRvbmUuCkBAIC0yMjA1LDI1ICsyMjA4LDMwIEBAIGhlYXBfaW5z ZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFwVHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCVJl bGF0aW9uUHV0SGVhcFR1cGxlKHJlbGF0aW9uLCBidWZmZXIsIGhlYXB0dXAsCiAJCQkJCQkgKG9w dGlvbnMgJiBIRUFQX0lOU0VSVF9TUEVDVUxBVElWRSkgIT0gMCk7CiAKLQlpZiAoUGFnZUlzQWxs VmlzaWJsZShCdWZmZXJHZXRQYWdlKGJ1ZmZlcikpKQorCWlmIChQYWdlSXNBbGxWaXNpYmxlKHBh Z2UpKQogCXsKIAkJYWxsX3Zpc2libGVfY2xlYXJlZCA9IHRydWU7Ci0JCVBhZ2VDbGVhckFsbFZp c2libGUoQnVmZmVyR2V0UGFnZShidWZmZXIpKTsKKwkJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdl KTsKIAkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWxhdGlvbiwKIAkJCQkJCQlJdGVtUG9pbnRlckdl dEJsb2NrTnVtYmVyKCYoaGVhcHR1cC0+dF9zZWxmKSksCiAJCQkJCQkJdm1idWZmZXIsIFZJU0lC SUxJVFlNQVBfVkFMSURfQklUUyk7CiAJfQogCiAJLyoKLQkgKiBYWFggU2hvdWxkIHdlIHNldCBQ YWdlU2V0UHJ1bmFibGUgb24gdGhpcyBwYWdlID8KKwkgKiBTZXQgcGRfcHJ1bmVfeGlkIHRvIHRy aWdnZXIgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSBvbmNlIHRoZSBwYWdlCisJICogaXMg ZnVsbCBzbyB0aGF0IHdlIGNhbiBzZXQgdGhlIHBhZ2UgYWxsLXZpc2libGUgaW4gdGhlIFZNIG9u IHRoZSBuZXh0CisJICogcGFnZSBhY2Nlc3MuCiAJICoKLQkgKiBUaGUgaW5zZXJ0aW5nIHRyYW5z YWN0aW9uIG1heSBldmVudHVhbGx5IGFib3J0IHRodXMgbWFraW5nIHRoaXMgdHVwbGUKLQkgKiBE RUFEIGFuZCBoZW5jZSBhdmFpbGFibGUgZm9yIHBydW5pbmcuIFRob3VnaCB3ZSBkb24ndCB3YW50 IHRvIG9wdGltaXplCi0JICogZm9yIGFib3J0cywgaWYgbm8gb3RoZXIgdHVwbGUgaW4gdGhpcyBw YWdlIGlzIFVQREFURWQvREVMRVRFZCwgdGhlCi0JICogYWJvcnRlZCB0dXBsZSB3aWxsIG5ldmVy IGJlIHBydW5lZCB1bnRpbCBuZXh0IHZhY3V1bSBpcyB0cmlnZ2VyZWQuCisJICogU2V0dGluZyBw ZF9wcnVuZV94aWQgaXMgYWxzbyBoYW5keSBpZiB0aGUgaW5zZXJ0aW5nIHRyYW5zYWN0aW9uCisJ ICogZXZlbnR1YWxseSBhYm9ydHMgbWFraW5nIHRoaXMgdHVwbGUgREVBRCBhbmQgaGVuY2UgYXZh aWxhYmxlIGZvcgorCSAqIHBydW5pbmcuIElmIG5vIG90aGVyIHR1cGxlIGluIHRoaXMgcGFnZSBp cyBVUERBVEVkL0RFTEVURWQsIHRoZSBhYm9ydGVkCisJICogdHVwbGUgd291bGQgbmV2ZXIgb3Ro ZXJ3aXNlIGJlIHBydW5lZCB1bnRpbCBuZXh0IHZhY3V1bSBpcyB0cmlnZ2VyZWQuCiAJICoKLQkg KiBJZiB5b3UgZG8gYWRkIFBhZ2VTZXRQcnVuYWJsZSBoZXJlLCBhZGQgaXQgaW4gaGVhcF94bG9n X2luc2VydCB0b28uCisJICogRG9uJ3Qgc2V0IGl0IGlmIHdlIGFyZSBpbiBib290c3RyYXAgbW9k ZSBvciB3ZSBhcmUgaW5zZXJ0aW5nIGEgZnJvemVuCisJICogdHVwbGUuCiAJICovCisJaWYgKFRy YW5zYWN0aW9uSWRJc05vcm1hbCh4aWQpICYmICEob3B0aW9ucyAmIEhFQVBfSU5TRVJUX0ZST1pF TikpCisJCVBhZ2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOwogCiAJTWFya0J1ZmZlckRpcnR5KGJ1 ZmZlcik7CiAKQEAgLTIyMzMsNyArMjI0MSw2IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0 aW9uLCBIZWFwVHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQl4bF9oZWFwX2luc2VydCB4bHJl YzsKIAkJeGxfaGVhcF9oZWFkZXIgeGxoZHI7CiAJCVhMb2dSZWNQdHIJcmVjcHRyOwotCQlQYWdl CQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOwogCQl1aW50OAkJaW5mbyA9IFhMT0dfSEVB UF9JTlNFUlQ7CiAJCWludAkJCWJ1ZmZsYWdzID0gMDsKIApAQCAtMjU5OCw4ICsyNjA1LDEzIEBA IGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xvdCAqKnNs b3RzLCBpbnQgbnR1cGxlcywKIAkJfQogCiAJCS8qCi0JCSAqIFhYWCBTaG91bGQgd2Ugc2V0IFBh Z2VTZXRQcnVuYWJsZSBvbiB0aGlzIHBhZ2UgPyBTZWUgaGVhcF9pbnNlcnQoKQorCQkgKiBTZXQg cGRfcHJ1bmVfeGlkLiBTZWUgaGVhcF9pbnNlcnQoKSBmb3IgbW9yZSBvbiB3aHkgd2UgZG8gdGhp cyB3aGVuCisJCSAqIGluc2VydGluZyB0dXBsZXMuIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpZiB3 ZSBhcmVuJ3QgYWxyZWFkeQorCQkgKiBzZXR0aW5nIHRoZSBwYWdlIGZyb3plbiBpbiB0aGUgVk0u IFdlIGFsc28gZG9uJ3Qgc2V0IGl0IGluCisJCSAqIGJvb3RzdHJhcCBtb2RlLgogCQkgKi8KKwkJ aWYgKCFhbGxfZnJvemVuX3NldCAmJiBUcmFuc2FjdGlvbklkSXNOb3JtYWwoeGlkKSkKKwkJCVBh Z2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOwogCiAJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOwog CkBAIC00MTQxLDEyICs0MTUzLDEyIEBAIGwyOgogCSAqIHRoZSBzdWJzZXF1ZW50IHBhZ2UgcHJ1 bmluZyB3aWxsIGJlIGEgbm8tb3AgYW5kIHRoZSBoaW50IHdpbGwgYmUKIAkgKiBjbGVhcmVkLgog CSAqCi0JICogWFhYIFNob3VsZCB3ZSBzZXQgaGludCBvbiBuZXdidWYgYXMgd2VsbD8gIElmIHRo ZSB0cmFuc2FjdGlvbiBhYm9ydHMsCi0JICogdGhlcmUgd291bGQgYmUgYSBwcnVuYWJsZSB0dXBs ZSBpbiB0aGUgbmV3YnVmOyBidXQgZm9yIG5vdyB3ZSBjaG9vc2UKLQkgKiBub3QgdG8gb3B0aW1p emUgZm9yIGFib3J0cy4gIE5vdGUgdGhhdCBoZWFwX3hsb2dfdXBkYXRlIG11c3QgYmUga2VwdCBp bgotCSAqIHN5bmMgaWYgdGhpcyBkZWNpc2lvbiBjaGFuZ2VzLgorCSAqIFdlIHNldCB0aGUgbmV3 IHBhZ2UgcHJ1bmFibGUgYXMgd2VsbC4gU2VlIGhlYXBfaW5zZXJ0KCkgZm9yIG1vcmUgb24gd2h5 CisJICogd2UgZG8gdGhpcyB3aGVuIGluc2VydGluZyB0dXBsZXMuCiAJICovCiAJUGFnZVNldFBy dW5hYmxlKHBhZ2UsIHhpZCk7CisJaWYgKG5ld2J1ZiAhPSBidWZmZXIpCisJCVBhZ2VTZXRQcnVu YWJsZShuZXdwYWdlLCB4aWQpOwogCiAJaWYgKHVzZV9ob3RfdXBkYXRlKQogCXsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCmluZGV4IDEzMDJiYjEzZTE4Li5mM2Y0MTlkM2RjMSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCkBAIC00NTAsNiArNDUwLDE0IEBA IGhlYXBfeGxvZ19pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJZnJlZXNwYWNl ID0gUGFnZUdldEhlYXBGcmVlU3BhY2UocGFnZSk7IC8qIG5lZWRlZCB0byB1cGRhdGUgRlNNIGJl bG93ICovCiAKKwkJLyoKKwkJICogU2V0IHRoZSBwYWdlIHBydW5hYmxlIHRvIHRyaWdnZXIgb24t YWNjZXNzIHBydW5pbmcgbGF0ZXIsIHdoaWNoIG1heQorCQkgKiBzZXQgdGhlIHBhZ2UgYWxsLXZp c2libGUgaW4gdGhlIFZNLiBTZWUgY29tbWVudHMgaW4gaGVhcF9pbnNlcnQoKS4KKwkJICovCisJ CWlmIChUcmFuc2FjdGlvbklkSXNOb3JtYWwoWExvZ1JlY0dldFhpZChyZWNvcmQpKSAmJgorCQkJ IUhlYXBUdXBsZUhlYWRlclhtaW5Gcm96ZW4oaHR1cCkpCisJCQlQYWdlU2V0UHJ1bmFibGUocGFn ZSwgWExvZ1JlY0dldFhpZChyZWNvcmQpKTsKKwogCQlQYWdlU2V0TFNOKHBhZ2UsIGxzbik7CiAK IAkJaWYgKHhscmVjLT5mbGFncyAmIFhMSF9JTlNFUlRfQUxMX1ZJU0lCTEVfQ0xFQVJFRCkKQEAg LTU5OSwxMiArNjA3LDE5IEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRl ICpyZWNvcmQpCiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NM RUFSRUQpCiAJCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOwogCi0JCS8qIFhMSF9JTlNFUlRf QUxMX0ZST1pFTl9TRVQgaW1wbGllcyB0aGF0IGFsbCB0dXBsZXMgYXJlIHZpc2libGUgKi8KKwkJ LyoKKwkJICogWExIX0lOU0VSVF9BTExfRlJPWkVOX1NFVCBpbXBsaWVzIHRoYXQgYWxsIHR1cGxl cyBhcmUgdmlzaWJsZS4gSWYKKwkJICogd2UgYXJlIG5vdCBzZXR0aW5nIHRoZSBwYWdlIGZyb3pl biwgdGhlbiBzZXQgdGhlIHBhZ2UncyBwcnVuYWJsZQorCQkgKiBoaW50IHNvIHRoYXQgd2UgdHJp Z2dlciBvbi1hY2Nlc3MgcHJ1bmluZyBsYXRlciB3aGljaCBtYXkgc2V0IHRoZQorCQkgKiBwYWdl IGFsbC12aXNpYmxlIGluIHRoZSBWTS4KKwkJICovCiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhf SU5TRVJUX0FMTF9GUk9aRU5fU0VUKQogCQl7CiAJCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsK IAkJCVBhZ2VDbGVhclBydW5hYmxlKHBhZ2UpOwogCQl9CisJCWVsc2UKKwkJCVBhZ2VTZXRQcnVu YWJsZShwYWdlLCBYTG9nUmVjR2V0WGlkKHJlY29yZCkpOwogCiAJCU1hcmtCdWZmZXJEaXJ0eShi dWZmZXIpOwogCX0KQEAgLTkyMSw2ICs5MzYsOCBAQCBoZWFwX3hsb2dfdXBkYXRlKFhMb2dSZWFk ZXJTdGF0ZSAqcmVjb3JkLCBib29sIGhvdF91cGRhdGUpCiAJCWZyZWVzcGFjZSA9IFBhZ2VHZXRI ZWFwRnJlZVNwYWNlKG5wYWdlKTsKIAogCQlQYWdlU2V0TFNOKG5wYWdlLCBsc24pOworCQkvKiBT ZWUgaGVhcF9pbnNlcnQoKSBmb3Igd2h5IHdlIHNldCBwZF9wcnVuZV94aWQgb24gaW5zZXJ0ICov CisJCVBhZ2VTZXRQcnVuYWJsZShucGFnZSwgWExvZ1JlY0dldFhpZChyZWNvcmQpKTsKIAkJTWFy a0J1ZmZlckRpcnR5KG5idWZmZXIpOwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwppbmRleCA5ZjU0NWExZWFmMi4uOWU1MWM5NjFjM2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3By dW5laGVhcC5jCkBAIC0xODQ5LDE2ICsxODQ5LDE0IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hh bmdlZF9scF9ub3JtYWwoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSkK IAkJCXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSA9IGZhbHNlOwogCQkJcHJzdGF0ZS0+c2V0X2Fs bF9mcm96ZW4gPSBmYWxzZTsKIAotCQkJLyogVGhlIHBhZ2Ugc2hvdWxkIG5vdCBiZSBtYXJrZWQg YWxsLXZpc2libGUgKi8KLQkJCWlmIChQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKQotCQkJCWhlYXBf Zml4X3ZtX2NvcnJ1cHRpb24ocHJzdGF0ZSwgb2ZmbnVtKTsKLQogCQkJLyoKLQkJCSAqIElmIHdl IHdhbnRlZCB0byBvcHRpbWl6ZSBmb3IgYWJvcnRzLCB3ZSBtaWdodCBjb25zaWRlciBtYXJraW5n Ci0JCQkgKiB0aGUgcGFnZSBwcnVuYWJsZSB3aGVuIHdlIHNlZSBJTlNFUlRfSU5fUFJPR1JFU1Mu ICBCdXQgd2UKLQkJCSAqIGRvbid0LiAgU2VlIHJlbGF0ZWQgZGVjaXNpb25zIGFib3V0IHdoZW4g dG8gbWFyayB0aGUgcGFnZQotCQkJICogcHJ1bmFibGUgaW4gaGVhcGFtLmMuCisJCQkgKiBUaG91 Z2ggdGhlcmUgaXMgbm90aGluZyAicHJ1bmFibGUiIG9uIHRoZSBwYWdlLCB3ZSBtYWludGFpbgor CQkJICogcGRfcHJ1bmVfeGlkIGZvciBpbnNlcnRzIHNvIHRoYXQgd2UgaGF2ZSB0aGUgb3Bwb3J0 dW5pdHkgdG8KKwkJCSAqIG1hcmsgdGhlbSBhbGwtdmlzaWJsZSBkdXJpbmcgdGhlIG5leHQgcm91 bmQgb2YgcHJ1bmluZy4KIAkJCSAqLworCQkJaGVhcF9wcnVuZV9yZWNvcmRfcHJ1bmFibGUocHJz dGF0ZSwKKwkJCQkJCQkJCSAgIEhlYXBUdXBsZUhlYWRlckdldFhtaW4oaHR1cCksCisJCQkJCQkJ CQkgICBvZmZudW0pOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBIRUFQVFVQTEVfREVMRVRFX0lOX1BS T0dSRVNTOgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmRleC9leHBlY3RlZC9raWxs dHVwbGVzLm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5kZXgvZXhwZWN0ZWQva2lsbHR1cGxlcy5v dXQKaW5kZXggYmU3ZGRkNzU2ZWYuLjcwMDE0NGQ2NzgzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9t b2R1bGVzL2luZGV4L2V4cGVjdGVkL2tpbGx0dXBsZXMub3V0CisrKyBiL3NyYy90ZXN0L21vZHVs ZXMvaW5kZXgvZXhwZWN0ZWQva2lsbHR1cGxlcy5vdXQKQEAgLTU0LDcgKzU0LDcgQEAgc3RlcCBm bHVzaDogU0VMRUNUIEZST00gcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7CiBzdGVwIHJlc3Vs dDogU0VMRUNUIGhlYXBfYmxrc19yZWFkICsgaGVhcF9ibGtzX2hpdCAtIGNvdW50ZXIuaGVhcF9h Y2Nlc3NlcyBBUyBuZXdfaGVhcF9hY2Nlc3NlcyBGUk9NIGNvdW50ZXIsIHBnX3N0YXRpb19hbGxf dGFibGVzIFdIRVJFIHJlbG5hbWUgPSAna2lsbF9wcmlvcl90dXBsZSc7CiBuZXdfaGVhcF9hY2Nl c3NlcwogLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgICAxCisgICAgICAgICAgICAg ICAgMgogKDEgcm93KQogCiBzdGVwIG1lYXN1cmU6IFVQREFURSBjb3VudGVyIFNFVCBoZWFwX2Fj Y2Vzc2VzID0gKFNFTEVDVCBoZWFwX2Jsa3NfcmVhZCArIGhlYXBfYmxrc19oaXQgRlJPTSBwZ19z dGF0aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ2tpbGxfcHJpb3JfdHVwbGUnKTsKQEAg LTEzMCw3ICsxMzAsNyBAQCBzdGVwIGZsdXNoOiBTRUxFQ1QgRlJPTSBwZ19zdGF0X2ZvcmNlX25l eHRfZmx1c2goKTsKIHN0ZXAgcmVzdWx0OiBTRUxFQ1QgaGVhcF9ibGtzX3JlYWQgKyBoZWFwX2Js a3NfaGl0IC0gY291bnRlci5oZWFwX2FjY2Vzc2VzIEFTIG5ld19oZWFwX2FjY2Vzc2VzIEZST00g Y291bnRlciwgcGdfc3RhdGlvX2FsbF90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICdraWxsX3ByaW9y X3R1cGxlJzsKIG5ld19oZWFwX2FjY2Vzc2VzCiAtLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAg ICAgICAgIDEKKyAgICAgICAgICAgICAgICAyCiAoMSByb3cpCiAKIHN0ZXAgbWVhc3VyZTogVVBE QVRFIGNvdW50ZXIgU0VUIGhlYXBfYWNjZXNzZXMgPSAoU0VMRUNUIGhlYXBfYmxrc19yZWFkICsg aGVhcF9ibGtzX2hpdCBGUk9NIHBnX3N0YXRpb19hbGxfdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAn a2lsbF9wcmlvcl90dXBsZScpOwpAQCAtMjgzLDcgKzI4Myw3IEBAIHN0ZXAgZmx1c2g6IFNFTEVD VCBGUk9NIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOwogc3RlcCByZXN1bHQ6IFNFTEVDVCBo ZWFwX2Jsa3NfcmVhZCArIGhlYXBfYmxrc19oaXQgLSBjb3VudGVyLmhlYXBfYWNjZXNzZXMgQVMg bmV3X2hlYXBfYWNjZXNzZXMgRlJPTSBjb3VudGVyLCBwZ19zdGF0aW9fYWxsX3RhYmxlcyBXSEVS RSByZWxuYW1lID0gJ2tpbGxfcHJpb3JfdHVwbGUnOwogbmV3X2hlYXBfYWNjZXNzZXMKIC0tLS0t LS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgMQorICAgICAgICAgICAgICAgIDIKICgxIHJv dykKIAogc3RlcCBtZWFzdXJlOiBVUERBVEUgY291bnRlciBTRVQgaGVhcF9hY2Nlc3NlcyA9IChT RUxFQ1QgaGVhcF9ibGtzX3JlYWQgKyBoZWFwX2Jsa3NfaGl0IEZST00gcGdfc3RhdGlvX2FsbF90 YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICdraWxsX3ByaW9yX3R1cGxlJyk7CkBAIC0zMjksNyArMzI5 LDcgQEAgc3RlcCBmbHVzaDogU0VMRUNUIEZST00gcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7 CiBzdGVwIHJlc3VsdDogU0VMRUNUIGhlYXBfYmxrc19yZWFkICsgaGVhcF9ibGtzX2hpdCAtIGNv dW50ZXIuaGVhcF9hY2Nlc3NlcyBBUyBuZXdfaGVhcF9hY2Nlc3NlcyBGUk9NIGNvdW50ZXIsIHBn X3N0YXRpb19hbGxfdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAna2lsbF9wcmlvcl90dXBsZSc7CiBu ZXdfaGVhcF9hY2Nlc3NlcwogLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgICAxCisg ICAgICAgICAgICAgICAgMgogKDEgcm93KQogCiBzdGVwIG1lYXN1cmU6IFVQREFURSBjb3VudGVy IFNFVCBoZWFwX2FjY2Vzc2VzID0gKFNFTEVDVCBoZWFwX2Jsa3NfcmVhZCArIGhlYXBfYmxrc19o aXQgRlJPTSBwZ19zdGF0aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ2tpbGxfcHJpb3Jf dHVwbGUnKTsKLS0gCjIuNDMuMAoK --000000000000917517064cc2978d--