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.94.2) (envelope-from ) id 1v1SyQ-008xW1-RX for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Sep 2025 17:08:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1v1SyP-00Ejhk-Do for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Sep 2025 17:08:09 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v1SyO-00Ejhc-Qk for pgsql-hackers@lists.postgresql.org; Wed, 24 Sep 2025 17:08:09 +0000 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1v1SyF-002fAf-2y for pgsql-hackers@lists.postgresql.org; Wed, 24 Sep 2025 17:08:08 +0000 Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-62ec5f750f7so11905938a12.3 for ; Wed, 24 Sep 2025 10:08:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1758733680; x=1759338480; 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=tN+r5Nl5bFhBkbETI7EB7zQSXJYKbi0Ufnna2SYCrL8=; b=I2nVlYGb99+ZBZUiZV1qqoRw8FD2wlSUHi2OR8d4jRAFsvjgQXqfIx5WLWHXuctoEG n/o/GHY5PHngRgSZK8p2+blcpM1OO1luZ0hluae3+fQ7R8mtBHzEKXY5BcvjkTZqz3re Yg1k9oohh0jv1iaFPrDYtEDvfCsE886W+ntbjS73q0aRJibwBPtMZLtrQKMGoXnkiZeD sb/lUpH9OmBJdGMJMizEO9nYmPhanxiLPggFL9qoVssrBMl/tGre6WKItO6kmG7X5uQo ke0rnZOIh60FifO49U4IQ5nhkSjvGh4N5ORYiTdHsmSPlADD+EyyB7JF0fph3KUS4X74 vO2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758733680; x=1759338480; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=tN+r5Nl5bFhBkbETI7EB7zQSXJYKbi0Ufnna2SYCrL8=; b=P974rs/fK4h61yD8qU6iznMZI+6AZCt6eZ3xo266i6GDCdVZarDMSdM+e+VAJJhoxp y0Es2tx1IjtHOjW14jmRsJ4cRoGOhWroqHxSSIua/j5jQP0XTaQ8kSbttJ99eqMXyOZh tmbOJXq3qGsmY2mv8sk8NBUTRIgYGR+i4jdFBV7H8Lt/YQ7KgzrYVdIPDKYof0tMFsOH qUcnNpRMQJJlQ/Yzq8Qv9GFMUTNx4oHx3S8X5paHeePQYZoQ0f6QCmETqKV0dhfIXfGL 9XXsp6mgGirKPrK90NzFhYGQUZ5wy/kVSU21FH+0b+iC5qzxD8bOo9Oe5BAwlYLzo7Ou C26g== X-Forwarded-Encrypted: i=1; AJvYcCVWL0k1brTZ6GTkPGpdvNjvkrBvHy5K9YZPS37DTEEUpZ5lSwNywbJsbo6CKB+oX5uq+P7CkLM0BdsHuAly@lists.postgresql.org X-Gm-Message-State: AOJu0Yx1h1MOFLYeJwfEQP09r9sjR1WOwrgSrzMRp04O0ayxyviYL7rn zFXFMxDkMAvlfYihEPOnxWoJgrjftQgNeTk9ktuAI6YdORhefivL1aG/r6oIAkwUoDhTnpdjGyf 0lyoBojj8jLWS/T9DO2IUJ2phJtQkOkM= X-Gm-Gg: ASbGncs7VdI8+9Kc9l12WACzExE1qzM2GftNbq25vfU5sfQm8acilAkrQeVmoaTkDMo bfiDEbKj5181Dtm7jPalA7cP53DUtv8BPYxkzBNdxun8fYFw7gxKAkTBC0ciSg25CSBdqL3X3v6 iIfVfCZmKp4Ez+bABDWvX5DFJzPRvk5pRZzuX2cy0D/e6ItKV6UArXPxHyGfv3Fqdi3KcdaX9cO I5VvWR4nrkvShOVgvtwr1KirkY0i5AO48hwNj8sEwvrG+GYbrQ= X-Google-Smtp-Source: AGHT+IHa8QF1lEK992MkOXebwiTPQ5u+uE26IO+qUOkPOZPaJ0LUifLuMq39Mev3cpmiiZNNI2iUTu6TXZU4nqx4kEg= X-Received: by 2002:a05:6402:7d5:b0:61c:7090:c7de with SMTP id 4fb4d7f45d1cf-6349fa1c6a2mr174070a12.13.1758733679673; Wed, 24 Sep 2025 10:07:59 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Melanie Plageman Date: Wed, 24 Sep 2025 13:07:46 -0400 X-Gm-Features: AS18NWC9AN2kpdl41PTBko8R_VfdMJQGonbjnMtp4XH-CWS0pBkeyrrRzLe46BI Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Andres Freund Cc: Robert Haas , Kirill Reshke , Andrey Borodin , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="0000000000003bcecc063f8f18f5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003bcecc063f8f18f5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Sep 18, 2025 at 12:48=E2=80=AFPM Andres Freund = wrote: > > On 2025-09-17 20:10:07 -0400, Melanie Plageman wrote: > > > + /* > > + * Now read and update the VM block. > > + * > > + * Note that the heap relation may have been dropped or truncated= , leading > > + * us to skip updating the heap block due to the LSN interlock. > > I don't fully understand this - how does dropping/truncating the relation= lead > to skipping due to the LSN interlock? Yes, this wasn't right. I misunderstood. What I think it should say is that if the heap update was skipped due to LSN interlock we still have to replay the updates to the VM because each vm page contains bits for multiple heap blocks and if the record included a vm page FPI, subsequent updates to the VM may rely on this FPI to avoid torn pages. We don't condition it on the heap redo having been an FPI, probably because it is not worth it -- but I wonder if that is worth calling out in the comment? Do we also need to replay it when the heap redo returns BLK_NOTFOUND? I assume this can happen in the case of relation dropped or truncated -- but in this case there wouldn't be subsequent records updating the VM for other heap blocks that we need to replay because the other heap blocks won't be found either, right? > > + if (xlrec->flags & XLH_INSERT_ALL_FROZEN_SET && > > + XLogReadBufferForRedoExtended(record, 1, RBM_ZERO_ON_ERRO= R, false, > > + = &vmbuffer) =3D=3D BLK_NEEDS_REDO) > > + { > > Why are we using RBM_ZERO_ON_ERROR here? I know it's copied from > heap_xlog_visible(), but I don't immediately understand (or remember) why= we > do so there either? It has been RBM_ZERO_ON_ERROR since XLogReadBufferForRedoExtended() was introduced here in 2c03216d8311. I think we probably do this because vm_readbuf() passes ReadBuffer() RBM_ZERO_ON_ERROR and has this comment * For reading we use ZERO_ON_ERROR mode, and initialize the page if * necessary. It's always safe to clear bits, so it's better to clear * corrupt pages than error out. Do you think I also should have a comment in heap_xlog_multi_insert()? > > + Page vmpage =3D BufferGetPage(vmbuffer); > > + Relation reln =3D CreateFakeRelcacheEntry(rlocator= ); > > Hm. Do we really need to continue doing this ugly fake relcache stuff? I'= d > really like to eventually get rid of that and given that the new "code sh= ape" > delegates a lot more responsibility to the redo routines, they should hav= e a > fairly easy time not needing a fake relcache? Afaict the relation alread= y is > not used outside of debugging paths? Yes, interestingly we don't have the relname in recovery anyway, so it does all this fake relcache stuff only to convert the relfilenode to a string and uses that. The fake relcache stuff will still be used by visibilitymap_pin() which callers like heap_xlog_delete() use to get the VM page. And I don't think it is worth coming up with a version of that that doesn't use the relcache. But you're right that the Relation is not needed for visibilitymap_set_vmbits(). I've changed it to just take the relation name as a string. > > + /* initialize the page if it was read as zeros */ > > + if (PageIsNew(vmpage)) > > + PageInit(vmpage, BLCKSZ, 0); > > + > > + visibilitymap_set_vmbits(reln, blkno, > > + vmbuffer= , > > + VISIBILI= TYMAP_ALL_VISIBLE | > > + VISIBILI= TYMAP_ALL_FROZEN); > > + > > + /* > > + * It is not possible that the VM was already set for thi= s heap page, > > + * so the vmbuffer must have been modified and marked dir= ty. > > + */ > > I assume that's because we a) checked the LSN interlock b) are replaying > something that needed to newly set the bit? Yes, perhaps it is not worth having the assert since it attracts extra attention to an invariant that is unlikely to be in danger of regression. > Seems 0002 should just be applied... Done > Re 0003: I wonder if it's getting to the point that a struct should be us= ed as > the argument. I have been thinking about this. I have yet to come up with a good idea for a struct name or multiple struct names that seem to fit here. I could move the other output parameters into the PruneFreezeResult and then maybe make some kind of PruneFreezeParameters struct or something? - Melanie --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0002-Reorder-heap_page_prune_and_freeze-parameters.patch" Content-Disposition: attachment; filename="v15-0002-Reorder-heap_page_prune_and_freeze-parameters.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lb9i1 RnJvbSBiY2EzYTljOTc5NTA3YmM2MzExOTNiZDljYTVkMzk1NTZiZWQzODNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDE1IFNlcCAyMDI1IDEyOjA2OjE5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMDIvMjNdIFJlb3JkZXIgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUgcGFyYW1l dGVycwoKTW92ZSByZWFkLW9ubHkgcGFyYW1ldGVycyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBm dW5jdGlvbiwgbWFraW5nIGl0Cm1vcmUgY2xlYXIgd2hpY2ggcGFyYW1ldGVycyBhcmUgaW5wdXRz IGFuZCB3aGljaCBhcmUgaW5wdXQvb3V0cHV0cyBvcgpvdXRwdXRzLiBBbHNvIGNvbnN0LXF1YWxp ZnkgVmFjdXVtQ3V0b2Zmcywgd2hpY2ggaXMgbm90IG1vZGlmaWVkIGluCmhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKCkuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg IHwgNDAgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jIHwgIDYgKysrLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAg ICAgICAgICB8ICA2ICsrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDI1 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5l aGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggZDhlYTBj NzhmNzcuLjI4YmQ2YTU2NzQ5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAt NDMsNyArNDMsNyBAQCB0eXBlZGVmIHN0cnVjdAogCWJvb2wJCW1hcmtfdW51c2VkX25vdzsKIAkv KiB3aGV0aGVyIHRvIGF0dGVtcHQgZnJlZXppbmcgdHVwbGVzICovCiAJYm9vbAkJZnJlZXplOwot CXN0cnVjdCBWYWN1dW1DdXRvZmZzICpjdXRvZmZzOworCWNvbnN0IHN0cnVjdCBWYWN1dW1DdXRv ZmZzICpjdXRvZmZzOwogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAJICogRmllbGRzIGRlc2NyaWJpbmcgd2hhdCB0byBkbyB0byB0 aGUgcGFnZQpAQCAtMjYwLDggKzI2MCw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24g cmVsYXRpb24sIEJ1ZmZlciBidWZmZXIpCiAJCQkgKiBub3QgdGhlIHJlbGF0aW9uIGhhcyBpbmRl eGVzLCBzaW5jZSB3ZSBjYW5ub3Qgc2FmZWx5IGRldGVybWluZQogCQkJICogdGhhdCBkdXJpbmcg b24tYWNjZXNzIHBydW5pbmcgd2l0aCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4KIAkJCSAq LwotCQkJaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUocmVsYXRpb24sIGJ1ZmZlciwgdmlzdGVz dCwgMCwKLQkJCQkJCQkJCSAgIE5VTEwsICZwcmVzdWx0LCBQUlVORV9PTl9BQ0NFU1MsICZkdW1t eV9vZmZfbG9jLCBOVUxMLCBOVUxMKTsKKwkJCWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKHJl bGF0aW9uLCBidWZmZXIsIFBSVU5FX09OX0FDQ0VTUywgMCwgTlVMTCwKKwkJCQkJCQkJCSAgIHZp c3Rlc3QsICZwcmVzdWx0LCAmZHVtbXlfb2ZmX2xvYywgTlVMTCwgTlVMTCk7CiAKIAkJCS8qCiAJ CQkgKiBSZXBvcnQgdGhlIG51bWJlciBvZiB0dXBsZXMgcmVjbGFpbWVkIHRvIHBnc3RhdHMuICBU aGlzIGlzCkBAIC0zMDMsNyArMzAzLDE3IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24g cmVsYXRpb24sIEJ1ZmZlciBidWZmZXIpCiAgKiBhbHNvIG5lZWQgdG8gYWNjb3VudCBmb3IgYSBy ZWR1Y3Rpb24gaW4gdGhlIGxlbmd0aCBvZiB0aGUgbGluZSBwb2ludGVyCiAgKiBhcnJheSBmb2xs b3dpbmcgYXJyYXkgdHJ1bmNhdGlvbiBieSB1cy4KICAqCi0gKiBJZiB0aGUgSEVBUF9QUlVORV9G UkVFWkUgb3B0aW9uIGlzIHNldCwgd2Ugd2lsbCBhbHNvIGZyZWV6ZSB0dXBsZXMgaWYgaXQncwor ICogcmVhc29uIGluZGljYXRlcyB3aHkgdGhlIHBydW5pbmcgaXMgcGVyZm9ybWVkLiAgSXQgaXMg aW5jbHVkZWQgaW4gdGhlIFdBTAorICogcmVjb3JkIGZvciBkZWJ1Z2dpbmcgYW5kIGFuYWx5c2lz IHB1cnBvc2VzLCBidXQgb3RoZXJ3aXNlIGhhcyBubyBlZmZlY3QuCisgKgorICogb3B0aW9uczoK KyAqICAgTUFSS19VTlVTRURfTk9XIGluZGljYXRlcyB0aGF0IGRlYWQgaXRlbXMgY2FuIGJlIHNl dCBMUF9VTlVTRUQgZHVyaW5nCisgKiAgIHBydW5pbmcuCisgKgorICogICBGUkVFWkUgaW5kaWNh dGVzIHRoYXQgd2Ugd2lsbCBhbHNvIGZyZWV6ZSB0dXBsZXMsIGFuZCB3aWxsIHJldHVybgorICog ICAnYWxsX3Zpc2libGUnLCAnYWxsX2Zyb3plbicgZmxhZ3MgdG8gdGhlIGNhbGxlci4KKyAqCisg KiBJZiB0aGUgSEVBUF9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIHNldCwgd2Ugd2lsbCBmcmVlemUg dHVwbGVzIGlmIGl0J3MKICAqIHJlcXVpcmVkIGluIG9yZGVyIHRvIGFkdmFuY2UgcmVsZnJvemVu eGlkIC8gcmVsbWlubXhpZCwgb3IgaWYgaXQncwogICogY29uc2lkZXJlZCBhZHZhbnRhZ2VvdXMg Zm9yIG92ZXJhbGwgc3lzdGVtIHBlcmZvcm1hbmNlIHRvIGRvIHNvIG5vdy4gIFRoZQogICogJ2N1 dG9mZnMnLCAncHJlc3VsdCcsICduZXdfcmVsZnJvemVuX3hpZCcgYW5kICduZXdfcmVsbWluX214 aWQnIGFyZ3VtZW50cwpAQCAtMzEzLDI5ICszMjMsMTkgQEAgaGVhcF9wYWdlX3BydW5lX29wdChS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcikKICAqIEhFQVBfUFJVTkVfRlJFRVpFIG9w dGlvbiBpcyBub3Qgc2V0LCBiZWNhdXNlIGF0IHRoZSBtb21lbnQgb25seSBjYWxsZXJzCiAgKiB0 aGF0IGFsc28gZnJlZXplIG5lZWQgdGhhdCBpbmZvcm1hdGlvbi4KICAqCi0gKiB2aXN0ZXN0IGlz IHVzZWQgdG8gZGlzdGluZ3Vpc2ggd2hldGhlciB0dXBsZXMgYXJlIERFQUQgb3IgUkVDRU5UTFlf REVBRAotICogKHNlZSBoZWFwX3BydW5lX3NhdGlzZmllc192YWN1dW0pLgotICoKLSAqIG9wdGlv bnM6Ci0gKiAgIE1BUktfVU5VU0VEX05PVyBpbmRpY2F0ZXMgdGhhdCBkZWFkIGl0ZW1zIGNhbiBi ZSBzZXQgTFBfVU5VU0VEIGR1cmluZwotICogICBwcnVuaW5nLgotICoKLSAqICAgRlJFRVpFIGlu ZGljYXRlcyB0aGF0IHdlIHdpbGwgYWxzbyBmcmVlemUgdHVwbGVzLCBhbmQgd2lsbCByZXR1cm4K LSAqICAgJ2FsbF92aXNpYmxlJywgJ2FsbF9mcm96ZW4nIGZsYWdzIHRvIHRoZSBjYWxsZXIuCi0g KgogICogY3V0b2ZmcyBjb250YWlucyB0aGUgZnJlZXplIGN1dG9mZnMsIGVzdGFibGlzaGVkIGJ5 IFZBQ1VVTSBhdCB0aGUgYmVnaW5uaW5nCiAgKiBvZiB2YWN1dW1pbmcgdGhlIHJlbGF0aW9uLiAg UmVxdWlyZWQgaWYgSEVBUF9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIHNldC4KICAqIGN1dG9mZnMt Pk9sZGVzdFhtaW4gaXMgYWxzbyB1c2VkIHRvIGRldGVybWluZSBpZiBkZWFkIHR1cGxlcyBhcmUK ICAqIEhFQVBUVVBMRV9SRUNFTlRMWV9ERUFEIG9yIEhFQVBUVVBMRV9ERUFELgogICoKKyAqIHZp c3Rlc3QgaXMgdXNlZCB0byBkaXN0aW5ndWlzaCB3aGV0aGVyIHR1cGxlcyBhcmUgREVBRCBvciBS RUNFTlRMWV9ERUFECisgKiAoc2VlIGhlYXBfcHJ1bmVfc2F0aXNmaWVzX3ZhY3V1bSkuCisgKgog ICogcHJlc3VsdCBjb250YWlucyBvdXRwdXQgcGFyYW1ldGVycyBuZWVkZWQgYnkgY2FsbGVycywg c3VjaCBhcyB0aGUgbnVtYmVyIG9mCiAgKiB0dXBsZXMgcmVtb3ZlZCBhbmQgdGhlIG9mZnNldHMg b2YgZGVhZCBpdGVtcyBvbiB0aGUgcGFnZSBhZnRlciBwcnVuaW5nLgogICogaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoKSBpcyByZXNwb25zaWJsZSBmb3IgaW5pdGlhbGl6aW5nIGl0LiAgUmVx dWlyZWQKICAqIGJ5IGFsbCBjYWxsZXJzLgogICoKLSAqIHJlYXNvbiBpbmRpY2F0ZXMgd2h5IHRo ZSBwcnVuaW5nIGlzIHBlcmZvcm1lZC4gIEl0IGlzIGluY2x1ZGVkIGluIHRoZSBXQUwKLSAqIHJl Y29yZCBmb3IgZGVidWdnaW5nIGFuZCBhbmFseXNpcyBwdXJwb3NlcywgYnV0IG90aGVyd2lzZSBo YXMgbm8gZWZmZWN0LgotICoKICAqIG9mZl9sb2MgaXMgdGhlIG9mZnNldCBsb2NhdGlvbiByZXF1 aXJlZCBieSB0aGUgY2FsbGVyIHRvIHVzZSBpbiBlcnJvcgogICogY2FsbGJhY2suCiAgKgpAQCAt MzQ4LDExICszNDgsMTEgQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlcikKICAqLwogdm9pZAogaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVs YXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCi0JCQkJCQkgICBHbG9iYWxWaXNTdGF0ZSAq dmlzdGVzdCwKKwkJCQkJCSAgIFBydW5lUmVhc29uIHJlYXNvbiwKIAkJCQkJCSAgIGludCBvcHRp b25zLAotCQkJCQkJICAgc3RydWN0IFZhY3V1bUN1dG9mZnMgKmN1dG9mZnMsCisJCQkJCQkgICBj b25zdCBzdHJ1Y3QgVmFjdXVtQ3V0b2ZmcyAqY3V0b2ZmcywKKwkJCQkJCSAgIEdsb2JhbFZpc1N0 YXRlICp2aXN0ZXN0LAogCQkJCQkJICAgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQsCi0JCQkJ CQkgICBQcnVuZVJlYXNvbiByZWFzb24sCiAJCQkJCQkgICBPZmZzZXROdW1iZXIgKm9mZl9sb2Ms CiAJCQkJCQkgICBUcmFuc2FjdGlvbklkICpuZXdfcmVsZnJvemVuX3hpZCwKIAkJCQkJCSAgIE11 bHRpWGFjdElkICpuZXdfcmVsbWluX214aWQpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKaW5kZXggOTgxZDkzODBhOTIuLmRkYzk2Nzc2OTRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jCkBAIC0xOTc0LDggKzE5NzQsMTAgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVs U3RhdGUgKnZhY3JlbCwKIAlpZiAodmFjcmVsLT5uaW5kZXhlcyA9PSAwKQogCQlwcnVuZV9vcHRp b25zIHw9IEhFQVBfUEFHRV9QUlVORV9NQVJLX1VOVVNFRF9OT1c7CiAKLQloZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZShyZWwsIGJ1ZiwgdmFjcmVsLT52aXN0ZXN0LCBwcnVuZV9vcHRpb25zLAot CQkJCQkJCSAgICZ2YWNyZWwtPmN1dG9mZnMsICZwcmVzdWx0LCBQUlVORV9WQUNVVU1fU0NBTiwK KwloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShyZWwsIGJ1ZiwgUFJVTkVfVkFDVVVNX1NDQU4s IHBydW5lX29wdGlvbnMsCisJCQkJCQkJICAgJnZhY3JlbC0+Y3V0b2ZmcywKKwkJCQkJCQkgICB2 YWNyZWwtPnZpc3Rlc3QsCisJCQkJCQkJICAgJnByZXN1bHQsCiAJCQkJCQkJICAgJnZhY3JlbC0+ b2ZmbnVtLAogCQkJCQkJCSAgICZ2YWNyZWwtPk5ld1JlbGZyb3plblhpZCwgJnZhY3JlbC0+TmV3 UmVsbWluTXhpZCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCBhMWRlNDAwYjlhNS4uNjY1ZTBjNzli YWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTM2OCwxMSArMzY4LDExIEBAIGV4dGVybiBUcmFuc2Fj dGlvbklkIGhlYXBfaW5kZXhfZGVsZXRlX3R1cGxlcyhSZWxhdGlvbiByZWwsCiBzdHJ1Y3QgR2xv YmFsVmlzU3RhdGU7CiBleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJl bGF0aW9uLCBCdWZmZXIgYnVmZmVyKTsKIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9hbmRf ZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAotCQkJCQkJCQkJICAgc3Ry dWN0IEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAorCQkJCQkJCQkJICAgUHJ1bmVSZWFzb24gcmVh c29uLAogCQkJCQkJCQkJICAgaW50IG9wdGlvbnMsCi0JCQkJCQkJCQkgICBzdHJ1Y3QgVmFjdXVt Q3V0b2ZmcyAqY3V0b2ZmcywKKwkJCQkJCQkJCSAgIGNvbnN0IHN0cnVjdCBWYWN1dW1DdXRvZmZz ICpjdXRvZmZzLAorCQkJCQkJCQkJICAgc3RydWN0IEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAog CQkJCQkJCQkJICAgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQsCi0JCQkJCQkJCQkgICBQcnVu ZVJlYXNvbiByZWFzb24sCiAJCQkJCQkJCQkgICBPZmZzZXROdW1iZXIgKm9mZl9sb2MsCiAJCQkJ CQkJCQkgICBUcmFuc2FjdGlvbklkICpuZXdfcmVsZnJvemVuX3hpZCwKIAkJCQkJCQkJCSAgIE11 bHRpWGFjdElkICpuZXdfcmVsbWluX214aWQpOwotLSAKMi40My4wCgo= --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0004-Rename-PruneState.freeze-to-attempt_freeze.patch" Content-Disposition: attachment; filename="v15-0004-Rename-PruneState.freeze-to-attempt_freeze.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lb9m3 RnJvbSBiYmY0MDVmNjhhYjA0MmIxYTAxMjQxYTk3MDBhZDM1MDZlYmVhNzg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDMxIEp1bCAyMDI1IDE0OjA3OjUxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMDQvMjNdIFJlbmFtZSBQcnVuZVN0YXRlLmZyZWV6ZSB0byBhdHRlbXB0X2ZyZWV6 ZQoKVGhpcyBtYWtlcyBpdCBtb3JlIGNsZWFyIHRoYXQgdGhpcyBpcyB0byBpbmRpY2F0ZSB0aGUg Y2FsbGVyIHdvdWxkIGxpa2UKaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSB0byBjb25zaWRl ciBmcmVlemluZyB0dXBsZXMgLS0gbm90IHRoYXQgd2UKdWx0aW1hdGVseSB3aWxsIGVuZCB1cCBm cmVlemluZyB0aGVtLgoKQWxzbyByZW5hbWUgbG9jYWwgdmFyaWFibGUgaGludF9iaXRfZnBpIHRv IGRpZF90dXBsZV9oaW50X2ZwaS4gVGhpcwptYWtlcyBpdCBjbGVhciBpdCBpcyBhYm91dCB0dXBs ZSBoaW50cyBhbmQgbm90IHBhZ2UgaGludHMgYW5kIHRoYXQgaXQKaW5kaWNhdGVzIHNvbWV0aGlu ZyB0aGF0IGhhcHBlbmVkIGFuZCBub3Qgc29tZXRoaW5nIHRoYXQgY291bGQgaGFwcGVuLgoKQW5k IHJlbmFtZSBsb2NhbCB2YXJpYWJsZSBkb19oaW50IHRvIGRvX2hpbnRfcHJ1bmUuIFRoaXMgZGlz dGluZ3Vpc2hlcwp0aGUgcHJ1bmFibGUgYW5kIHBhZ2UgZnVsbCBoaW50cyB1c2VkIHRvIGRlY2lk ZSB3aGV0aGVyIG9yIG5vdCB0bwpvbi1hY2Nlc3MgcHJ1bmUgYSBwYWdlIGZyb20gb3RoZXIgcGFn ZS1sZXZlbCBhbmQgdHVwbGUgaGludCBiaXRzLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIHwgMjggKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvcHJ1bmVoZWFwLmMKaW5kZXggZWE4MjE2ZTA2MzIuLjc0MGFhMDdjZDgzIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtNDIsNyArNDIsNyBAQCB0eXBlZGVmIHN0cnVjdAog CS8qIHdoZXRoZXIgb3Igbm90IGRlYWQgaXRlbXMgY2FuIGJlIHNldCBMUF9VTlVTRUQgZHVyaW5n IHBydW5pbmcgKi8KIAlib29sCQltYXJrX3VudXNlZF9ub3c7CiAJLyogd2hldGhlciB0byBhdHRl bXB0IGZyZWV6aW5nIHR1cGxlcyAqLwotCWJvb2wJCWZyZWV6ZTsKKwlib29sCQlhdHRlbXB0X2Zy ZWV6ZTsKIAljb25zdCBzdHJ1Y3QgVmFjdXVtQ3V0b2ZmcyAqY3V0b2ZmczsKIAogCS8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzYx LDE0ICszNjEsMTQgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsCiAJSGVhcFR1cGxlRGF0YSB0dXA7CiAJYm9vbAkJZG9fZnJlZXpl OwogCWJvb2wJCWRvX3BydW5lOwotCWJvb2wJCWRvX2hpbnQ7Ci0JYm9vbAkJaGludF9iaXRfZnBp OworCWJvb2wJCWRvX2hpbnRfcHJ1bmU7CisJYm9vbAkJZGlkX3R1cGxlX2hpbnRfZnBpOwogCWlu dDY0CQlmcGlfYmVmb3JlID0gcGdXYWxVc2FnZS53YWxfZnBpOwogCiAJLyogQ29weSBwYXJhbWV0 ZXJzIHRvIHByc3RhdGUgKi8KIAlwcnN0YXRlLnZpc3Rlc3QgPSB2aXN0ZXN0OwogCXByc3RhdGUu bWFya191bnVzZWRfbm93ID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfTUFSS19VTlVTRURf Tk9XKSAhPSAwOwotCXByc3RhdGUuZnJlZXplID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVf RlJFRVpFKSAhPSAwOworCXByc3RhdGUuYXR0ZW1wdF9mcmVlemUgPSAob3B0aW9ucyAmIEhFQVBf UEFHRV9QUlVORV9GUkVFWkUpICE9IDA7CiAJcHJzdGF0ZS5jdXRvZmZzID0gY3V0b2ZmczsKIAog CS8qCkBAIC0zOTAsNyArMzkwLDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRp b24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAKIAkvKiBpbml0aWFsaXplIHBhZ2UgZnJlZXpp bmcgd29ya2luZyBzdGF0ZSAqLwogCXByc3RhdGUucGFnZWZyei5mcmVlemVfcmVxdWlyZWQgPSBm YWxzZTsKLQlpZiAocHJzdGF0ZS5mcmVlemUpCisJaWYgKHByc3RhdGUuYXR0ZW1wdF9mcmVlemUp CiAJewogCQlBc3NlcnQobmV3X3JlbGZyb3plbl94aWQgJiYgbmV3X3JlbG1pbl9teGlkKTsKIAkJ cHJzdGF0ZS5wYWdlZnJ6LkZyZWV6ZVBhZ2VSZWxmcm96ZW5YaWQgPSAqbmV3X3JlbGZyb3plbl94 aWQ7CkBAIC00MzcsNyArNDM3LDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRp b24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJICogZnVuY3Rpb24sIHdoZW4gd2UgcmV0dXJu IHRoZSB2YWx1ZSB0byB0aGUgY2FsbGVyLCBzbyB0aGF0IHRoZSBjYWxsZXIKIAkgKiBkb2Vzbid0 IHNldCB0aGUgVk0gYml0IGluY29ycmVjdGx5LgogCSAqLwotCWlmIChwcnN0YXRlLmZyZWV6ZSkK KwlpZiAocHJzdGF0ZS5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCXByc3RhdGUuYWxsX3Zpc2libGUg PSB0cnVlOwogCQlwcnN0YXRlLmFsbF9mcm96ZW4gPSB0cnVlOwpAQCAtNTUxLDcgKzU1MSw3IEBA IGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVm ZmVyLAogCSAqIElmIGNoZWNrc3VtcyBhcmUgZW5hYmxlZCwgaGVhcF9wcnVuZV9zYXRpc2ZpZXNf dmFjdXVtKCkgbWF5IGhhdmUgY2F1c2VkCiAJICogYW4gRlBJIHRvIGJlIGVtaXR0ZWQuCiAJICov Ci0JaGludF9iaXRfZnBpID0gZnBpX2JlZm9yZSAhPSBwZ1dhbFVzYWdlLndhbF9mcGk7CisJZGlk X3R1cGxlX2hpbnRfZnBpID0gZnBpX2JlZm9yZSAhPSBwZ1dhbFVzYWdlLndhbF9mcGk7CiAKIAkv KgogCSAqIFByb2Nlc3MgSE9UIGNoYWlucy4KQEAgLTY1OSw3ICs2NTksNyBAQCBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkgKiBw ZF9wcnVuZV94aWQgZmllbGQgb3IgdGhlIHBhZ2Ugd2FzIG1hcmtlZCBmdWxsLCB3ZSB3aWxsIHVw ZGF0ZSB0aGUgaGludAogCSAqIGJpdC4KIAkgKi8KLQlkb19oaW50ID0gKChQYWdlSGVhZGVyKSBw YWdlKS0+cGRfcHJ1bmVfeGlkICE9IHByc3RhdGUubmV3X3BydW5lX3hpZCB8fAorCWRvX2hpbnRf cHJ1bmUgPSAoKFBhZ2VIZWFkZXIpIHBhZ2UpLT5wZF9wcnVuZV94aWQgIT0gcHJzdGF0ZS5uZXdf cHJ1bmVfeGlkIHx8CiAJCVBhZ2VJc0Z1bGwocGFnZSk7CiAKIAkvKgpAQCAtNjY3LDcgKzY2Nyw3 IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIg YnVmZmVyLAogCSAqIHBsYW5zIHdlIHByZXBhcmVkLCBvciBub3QuCiAJICovCiAJZG9fZnJlZXpl ID0gZmFsc2U7Ci0JaWYgKHByc3RhdGUuZnJlZXplKQorCWlmIChwcnN0YXRlLmF0dGVtcHRfZnJl ZXplKQogCXsKIAkJaWYgKHByc3RhdGUucGFnZWZyei5mcmVlemVfcmVxdWlyZWQpCiAJCXsKQEAg LTcwMiwxNCArNzAyLDE0IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJl bGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkJCSAqLwogCQkJCWlmIChSZWxhdGlvbk5lZWRzV0FM KHJlbGF0aW9uKSkKIAkJCQl7Ci0JCQkJCWlmIChoaW50X2JpdF9mcGkpCisJCQkJCWlmIChkaWRf dHVwbGVfaGludF9mcGkpCiAJCQkJCQlkb19mcmVlemUgPSB0cnVlOwogCQkJCQllbHNlIGlmIChk b19wcnVuZSkKIAkJCQkJewogCQkJCQkJaWYgKFhMb2dDaGVja0J1ZmZlck5lZWRzQmFja3VwKGJ1 ZmZlcikpCiAJCQkJCQkJZG9fZnJlZXplID0gdHJ1ZTsKIAkJCQkJfQotCQkJCQllbHNlIGlmIChk b19oaW50KQorCQkJCQllbHNlIGlmIChkb19oaW50X3BydW5lKQogCQkJCQl7CiAJCQkJCQlpZiAo WExvZ0hpbnRCaXRJc05lZWRlZCgpICYmIFhMb2dDaGVja0J1ZmZlck5lZWRzQmFja3VwKGJ1ZmZl cikpCiAJCQkJCQkJZG9fZnJlZXplID0gdHJ1ZTsKQEAgLTc1Miw3ICs3NTIsNyBAQCBoZWFwX3Bh Z2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkv KiBBbnkgZXJyb3Igd2hpbGUgYXBwbHlpbmcgdGhlIGNoYW5nZXMgaXMgY3JpdGljYWwgKi8KIAlT VEFSVF9DUklUX1NFQ1RJT04oKTsKIAotCWlmIChkb19oaW50KQorCWlmIChkb19oaW50X3BydW5l KQogCXsKIAkJLyoKIAkJICogVXBkYXRlIHRoZSBwYWdlJ3MgcGRfcHJ1bmVfeGlkIGZpZWxkIHRv IGVpdGhlciB6ZXJvLCBvciB0aGUgbG93ZXN0CkBAIC04OTMsNyArODkzLDcgQEAgaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJcHJl c3VsdC0+bHBkZWFkX2l0ZW1zID0gcHJzdGF0ZS5scGRlYWRfaXRlbXM7CiAJLyogdGhlIHByZXN1 bHQtPmRlYWRvZmZzZXRzIGFycmF5IHdhcyBhbHJlYWR5IGZpbGxlZCBpbiAqLwogCi0JaWYgKHBy c3RhdGUuZnJlZXplKQorCWlmIChwcnN0YXRlLmF0dGVtcHRfZnJlZXplKQogCXsKIAkJaWYgKHBy ZXN1bHQtPm5mcm96ZW4gPiAwKQogCQl7CkBAIC0xNDc1LDcgKzE0NzUsNyBAQCBoZWFwX3BydW5l X3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0 ZSwgT2Zmc2V0TnVtYgogCX0KIAogCS8qIENvbnNpZGVyIGZyZWV6aW5nIGFueSBub3JtYWwgdHVw bGVzIHdoaWNoIHdpbGwgbm90IGJlIHJlbW92ZWQgKi8KLQlpZiAocHJzdGF0ZS0+ZnJlZXplKQor CWlmIChwcnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCWJvb2wJCXRvdGFsbHlfZnJvemVu OwogCi0tIAoyLjQzLjAKCg== --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0005-Add-helper-for-freeze-determination-to-heap_page.patch" Content-Disposition: attachment; filename="v15-0005-Add-helper-for-freeze-determination-to-heap_page.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lb9n4 RnJvbSA4ZDVkMTgyNDdmYWNhNTZjMTI5MzgzMzMxNjFhYTJkMTllNzAzNDFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE2IFNlcCAyMDI1IDE0OjIyOjEwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMDUvMjNdIEFkZCBoZWxwZXIgZm9yIGZyZWV6ZSBkZXRlcm1pbmF0aW9uIHRvCiBo ZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZQoKQWZ0ZXIgc2Nhbm5pbmcgdGhyb3VnaCB0aGUgbGlu ZSBwb2ludGVycyBvbiB0aGUgaGVhcCBwYWdlIGR1cmluZwp2YWN1dW0ncyBmaXJzdCBwaGFzZSwg d2UgdXNlIHNldmVyYWwgc3RhdHVzZXMgYW5kIGluZm9ybWF0aW9uIHdlCmNvbGxlY3RlZCB0byBk ZXRlcm1pbmUgd2hldGhlciBvciBub3Qgd2Ugd2lsbCB1c2UgdGhlIGZyZWV6ZSBwbGFucyB3ZQph c3NlbWJsZWQuCgpEbyB0aGlzIGluIGEgaGVscGVyIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCi0t LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgfCAxOTkgKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCA4MCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDc0MGFhMDdj ZDgzLi40ZWQ3NGRlNmYyNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTI4 OSw2ICsyODksMTIwIEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1 ZmZlciBidWZmZXIpCiAJfQogfQogCisvKgorICogRGVjaWRlIGlmIHdlIHdhbnQgdG8gZ28gYWhl YWQgd2l0aCBmcmVlemluZyBhY2NvcmRpbmcgdG8gdGhlIGZyZWV6ZSBwbGFucworICogd2UgcHJl cGFyZWQgZm9yIHRoZSBnaXZlbiBoZWFwIGJ1ZmZlciBvciBub3QuIElmIHRoZSBjYWxsZXIgc3Bl Y2lmaWVkIHdlCisgKiBzaG91bGQgbm90IGZyZWV6ZSB0dXBsZXMsIGl0IGV4aXRzIGVhcmx5LiBP dGhlcndpc2UsIGl0IGRvZXMgYSBmZXcKKyAqIHByZS1mcmVlemUgY2hlY2tzLgorICoKKyAqIGRv X3BydW5lLCBkb19oaW50X2Z1bGxfb3JfcHJ1bmFibGUsIGFuZCBkaWRfdHVwbGVfaGludF9mcGkg bXVzdCBhbGwgaGF2ZQorICogYmVlbiBkZWNpZGVkIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rp b24uCisgKgorICogcHJzdGF0ZSBpcyBhbiBpbnB1dC9vdXRwdXQgcGFyYW1ldGVyLgorICoKKyAq IFJldHVybnMgdHJ1ZSBpZiB3ZSBzaG91bGQgdXNlIG91ciBmcmVlemUgcGxhbnMgYW5kIGZyZWV6 ZSB0dXBsZXMgb24gdGhlIHBhZ2UKKyAqIGFuZCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK3N0YXRp YyBib29sCitoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBi dWZmZXIsCisJCQkJCSAgYm9vbCBkaWRfdHVwbGVfaGludF9mcGksCisJCQkJCSAgYm9vbCBkb19w cnVuZSwKKwkJCQkJICBib29sIGRvX2hpbnRfcHJ1bmUsCisJCQkJCSAgUHJ1bmVTdGF0ZSAqcHJz dGF0ZSkKK3sKKwlib29sCQlkb19mcmVlemUgPSBmYWxzZTsKKworCS8qCisJICogSWYgdGhlIGNh bGxlciBzcGVjaWZpZWQgd2Ugc2hvdWxkIG5vdCBhdHRlbXB0IHRvIGZyZWV6ZSBhbnkgdHVwbGVz LAorCSAqIHZhbGlkYXRlIHRoYXQgZXZlcnl0aGluZyBpcyBpbiB0aGUgcmlnaHQgc3RhdGUgYW5k IGV4aXQuCisJICovCisJaWYgKCFwcnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZSkKKwl7CisJCUFzc2Vy dCghcHJzdGF0ZS0+YWxsX2Zyb3plbiAmJiBwcnN0YXRlLT5uZnJvemVuID09IDApOworCQlBc3Nl cnQocHJzdGF0ZS0+bHBkZWFkX2l0ZW1zID09IDAgfHwgIXByc3RhdGUtPmFsbF92aXNpYmxlKTsK KwkJcmV0dXJuIGZhbHNlOworCX0KKworCWlmIChwcnN0YXRlLT5wYWdlZnJ6LmZyZWV6ZV9yZXF1 aXJlZCkKKwl7CisJCS8qCisJCSAqIGhlYXBfcHJlcGFyZV9mcmVlemVfdHVwbGUgaW5kaWNhdGVk IHRoYXQgYXQgbGVhc3Qgb25lIFhJRC9NWElEIGZyb20KKwkJICogYmVmb3JlIEZyZWV6ZUxpbWl0 L011bHRpWGFjdEN1dG9mZiBpcyBwcmVzZW50LiAgTXVzdCBmcmVlemUgdG8KKwkJICogYWR2YW5j ZSByZWxmcm96ZW54aWQvcmVsbWlubXhpZC4KKwkJICovCisJCWRvX2ZyZWV6ZSA9IHRydWU7CisJ fQorCWVsc2UKKwl7CisJCS8qCisJCSAqIE9wcG9ydHVuaXN0aWNhbGx5IGZyZWV6ZSB0aGUgcGFn ZSBpZiB3ZSBhcmUgZ2VuZXJhdGluZyBhbiBGUEkKKwkJICogYW55d2F5IGFuZCBpZiBkb2luZyBz byBtZWFucyB0aGF0IHdlIGNhbiBzZXQgdGhlIHBhZ2UgYWxsLWZyb3plbgorCQkgKiBhZnRlcndh cmRzIChtaWdodCBub3QgaGFwcGVuIHVudGlsIFZBQ1VVTSdzIGZpbmFsIGhlYXAgcGFzcykuCisJ CSAqCisJCSAqIFhYWDogUHJldmlvdXNseSwgd2Uga25ldyBpZiBwcnVuaW5nIGVtaXR0ZWQgYW4g RlBJIGJ5IGNoZWNraW5nCisJCSAqIHBnV2FsVXNhZ2Uud2FsX2ZwaSBiZWZvcmUgYW5kIGFmdGVy IHBydW5pbmcuICBPbmNlIHRoZSBmcmVlemUgYW5kCisJCSAqIHBydW5lIHJlY29yZHMgd2VyZSBj b21iaW5lZCwgdGhpcyBoZXVyaXN0aWMgY291bGRuJ3QgYmUgdXNlZAorCQkgKiBhbnltb3JlLiAg VGhlIG9wcG9ydHVuaXN0aWMgZnJlZXplIGhldXJpc3RpYyBtdXN0IGJlIGltcHJvdmVkOworCQkg KiBob3dldmVyLCBmb3Igbm93LCB0cnkgdG8gYXBwcm94aW1hdGUgdGhlIG9sZCBsb2dpYy4KKwkJ ICovCisJCWlmIChwcnN0YXRlLT5hbGxfZnJvemVuICYmIHByc3RhdGUtPm5mcm96ZW4gPiAwKQor CQl7CisJCQlBc3NlcnQocHJzdGF0ZS0+YWxsX3Zpc2libGUpOworCisJCQkvKgorCQkJICogRnJl ZXppbmcgd291bGQgbWFrZSB0aGUgcGFnZSBhbGwtZnJvemVuLiAgSGF2ZSBhbHJlYWR5IGVtaXR0 ZWQKKwkJCSAqIGFuIEZQSSBvciB3aWxsIGRvIHNvIGFueXdheT8KKwkJCSAqLworCQkJaWYgKFJl bGF0aW9uTmVlZHNXQUwocmVsYXRpb24pKQorCQkJeworCQkJCWlmIChkaWRfdHVwbGVfaGludF9m cGkpCisJCQkJCWRvX2ZyZWV6ZSA9IHRydWU7CisJCQkJZWxzZSBpZiAoZG9fcHJ1bmUpCisJCQkJ eworCQkJCQlpZiAoWExvZ0NoZWNrQnVmZmVyTmVlZHNCYWNrdXAoYnVmZmVyKSkKKwkJCQkJCWRv X2ZyZWV6ZSA9IHRydWU7CisJCQkJfQorCQkJCWVsc2UgaWYgKGRvX2hpbnRfcHJ1bmUpCisJCQkJ eworCQkJCQlpZiAoWExvZ0hpbnRCaXRJc05lZWRlZCgpICYmIFhMb2dDaGVja0J1ZmZlck5lZWRz QmFja3VwKGJ1ZmZlcikpCisJCQkJCQlkb19mcmVlemUgPSB0cnVlOworCQkJCX0KKwkJCX0KKwkJ fQorCX0KKworCWlmIChkb19mcmVlemUpCisJeworCQkvKgorCQkgKiBWYWxpZGF0ZSB0aGUgdHVw bGVzIHdlIHdpbGwgYmUgZnJlZXppbmcgYmVmb3JlIGVudGVyaW5nIHRoZQorCQkgKiBjcml0aWNh bCBzZWN0aW9uLgorCQkgKi8KKwkJaGVhcF9wcmVfZnJlZXplX2NoZWNrcyhidWZmZXIsIHByc3Rh dGUtPmZyb3plbiwgcHJzdGF0ZS0+bmZyb3plbik7CisJfQorCWVsc2UgaWYgKHByc3RhdGUtPm5m cm96ZW4gPiAwKQorCXsKKwkJLyoKKwkJICogVGhlIHBhZ2UgY29udGFpbmVkIHNvbWUgdHVwbGVz IHRoYXQgd2VyZSBub3QgYWxyZWFkeSBmcm96ZW4sIGFuZCB3ZQorCQkgKiBjaG9zZSBub3QgdG8g ZnJlZXplIHRoZW0gbm93LiAgVGhlIHBhZ2Ugd29uJ3QgYmUgYWxsLWZyb3plbiB0aGVuLgorCQkg Ki8KKwkJQXNzZXJ0KCFwcnN0YXRlLT5wYWdlZnJ6LmZyZWV6ZV9yZXF1aXJlZCk7CisKKwkJcHJz dGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOworCQlwcnN0YXRlLT5uZnJvemVuID0gMDsJLyogYXZv aWQgbWlzY291bnRzIGluIGluc3RydW1lbnRhdGlvbiAqLworCX0KKwllbHNlCisJeworCQkvKgor CQkgKiBXZSBoYXZlIG5vIGZyZWV6ZSBwbGFucyB0byBleGVjdXRlLiAgVGhlIHBhZ2UgbWlnaHQg YWxyZWFkeSBiZQorCQkgKiBhbGwtZnJvemVuIChwZXJoYXBzIG9ubHkgZm9sbG93aW5nIHBydW5p bmcpLCB0aG91Z2guICBTdWNoIHBhZ2VzCisJCSAqIGNhbiBiZSBtYXJrZWQgYWxsLWZyb3plbiBp biB0aGUgVk0gYnkgb3VyIGNhbGxlciwgZXZlbiB0aG91Z2ggbm9uZQorCQkgKiBvZiBpdHMgdHVw bGVzIHdlcmUgbmV3bHkgZnJvemVuIGhlcmUuCisJCSAqLworCX0KKworCXJldHVybiBkb19mcmVl emU7Cit9CisKIAogLyoKICAqIFBydW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90 ZW50aWFsbHkgZnJlZXplIHR1cGxlcyBvbiB0aGUKQEAgLTY2Niw4NyArNzgwLDEyIEBAIGhlYXBf cGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAog CSAqIERlY2lkZSBpZiB3ZSB3YW50IHRvIGdvIGFoZWFkIHdpdGggZnJlZXppbmcgYWNjb3JkaW5n IHRvIHRoZSBmcmVlemUKIAkgKiBwbGFucyB3ZSBwcmVwYXJlZCwgb3Igbm90LgogCSAqLwotCWRv X2ZyZWV6ZSA9IGZhbHNlOwotCWlmIChwcnN0YXRlLmF0dGVtcHRfZnJlZXplKQotCXsKLQkJaWYg KHByc3RhdGUucGFnZWZyei5mcmVlemVfcmVxdWlyZWQpCi0JCXsKLQkJCS8qCi0JCQkgKiBoZWFw X3ByZXBhcmVfZnJlZXplX3R1cGxlIGluZGljYXRlZCB0aGF0IGF0IGxlYXN0IG9uZSBYSUQvTVhJ RAotCQkJICogZnJvbSBiZWZvcmUgRnJlZXplTGltaXQvTXVsdGlYYWN0Q3V0b2ZmIGlzIHByZXNl bnQuICBNdXN0Ci0JCQkgKiBmcmVlemUgdG8gYWR2YW5jZSByZWxmcm96ZW54aWQvcmVsbWlubXhp ZC4KLQkJCSAqLwotCQkJZG9fZnJlZXplID0gdHJ1ZTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCS8q Ci0JCQkgKiBPcHBvcnR1bmlzdGljYWxseSBmcmVlemUgdGhlIHBhZ2UgaWYgd2UgYXJlIGdlbmVy YXRpbmcgYW4gRlBJCi0JCQkgKiBhbnl3YXkgYW5kIGlmIGRvaW5nIHNvIG1lYW5zIHRoYXQgd2Ug Y2FuIHNldCB0aGUgcGFnZQotCQkJICogYWxsLWZyb3plbiBhZnRlcndhcmRzIChtaWdodCBub3Qg aGFwcGVuIHVudGlsIFZBQ1VVTSdzIGZpbmFsCi0JCQkgKiBoZWFwIHBhc3MpLgotCQkJICoKLQkJ CSAqIFhYWDogUHJldmlvdXNseSwgd2Uga25ldyBpZiBwcnVuaW5nIGVtaXR0ZWQgYW4gRlBJIGJ5 IGNoZWNraW5nCi0JCQkgKiBwZ1dhbFVzYWdlLndhbF9mcGkgYmVmb3JlIGFuZCBhZnRlciBwcnVu aW5nLiAgT25jZSB0aGUgZnJlZXplCi0JCQkgKiBhbmQgcHJ1bmUgcmVjb3JkcyB3ZXJlIGNvbWJp bmVkLCB0aGlzIGhldXJpc3RpYyBjb3VsZG4ndCBiZQotCQkJICogdXNlZCBhbnltb3JlLiAgVGhl IG9wcG9ydHVuaXN0aWMgZnJlZXplIGhldXJpc3RpYyBtdXN0IGJlCi0JCQkgKiBpbXByb3ZlZDsg aG93ZXZlciwgZm9yIG5vdywgdHJ5IHRvIGFwcHJveGltYXRlIHRoZSBvbGQgbG9naWMuCi0JCQkg Ki8KLQkJCWlmIChwcnN0YXRlLmFsbF9mcm96ZW4gJiYgcHJzdGF0ZS5uZnJvemVuID4gMCkKLQkJ CXsKLQkJCQlBc3NlcnQocHJzdGF0ZS5hbGxfdmlzaWJsZSk7CisJZG9fZnJlZXplID0gaGVhcF9w YWdlX3dpbGxfZnJlZXplKHJlbGF0aW9uLCBidWZmZXIsCisJCQkJCQkJCQkgIGRpZF90dXBsZV9o aW50X2ZwaSwKKwkJCQkJCQkJCSAgZG9fcHJ1bmUsCisJCQkJCQkJCQkgIGRvX2hpbnRfcHJ1bmUs CisJCQkJCQkJCQkgICZwcnN0YXRlKTsKIAotCQkJCS8qCi0JCQkJICogRnJlZXppbmcgd291bGQg bWFrZSB0aGUgcGFnZSBhbGwtZnJvemVuLiAgSGF2ZSBhbHJlYWR5Ci0JCQkJICogZW1pdHRlZCBh biBGUEkgb3Igd2lsbCBkbyBzbyBhbnl3YXk/Ci0JCQkJICovCi0JCQkJaWYgKFJlbGF0aW9uTmVl ZHNXQUwocmVsYXRpb24pKQotCQkJCXsKLQkJCQkJaWYgKGRpZF90dXBsZV9oaW50X2ZwaSkKLQkJ CQkJCWRvX2ZyZWV6ZSA9IHRydWU7Ci0JCQkJCWVsc2UgaWYgKGRvX3BydW5lKQotCQkJCQl7Ci0J CQkJCQlpZiAoWExvZ0NoZWNrQnVmZmVyTmVlZHNCYWNrdXAoYnVmZmVyKSkKLQkJCQkJCQlkb19m cmVlemUgPSB0cnVlOwotCQkJCQl9Ci0JCQkJCWVsc2UgaWYgKGRvX2hpbnRfcHJ1bmUpCi0JCQkJ CXsKLQkJCQkJCWlmIChYTG9nSGludEJpdElzTmVlZGVkKCkgJiYgWExvZ0NoZWNrQnVmZmVyTmVl ZHNCYWNrdXAoYnVmZmVyKSkKLQkJCQkJCQlkb19mcmVlemUgPSB0cnVlOwotCQkJCQl9Ci0JCQkJ fQotCQkJfQotCQl9Ci0JfQotCi0JaWYgKGRvX2ZyZWV6ZSkKLQl7Ci0JCS8qCi0JCSAqIFZhbGlk YXRlIHRoZSB0dXBsZXMgd2Ugd2lsbCBiZSBmcmVlemluZyBiZWZvcmUgZW50ZXJpbmcgdGhlCi0J CSAqIGNyaXRpY2FsIHNlY3Rpb24uCi0JCSAqLwotCQloZWFwX3ByZV9mcmVlemVfY2hlY2tzKGJ1 ZmZlciwgcHJzdGF0ZS5mcm96ZW4sIHByc3RhdGUubmZyb3plbik7Ci0JfQotCWVsc2UgaWYgKHBy c3RhdGUubmZyb3plbiA+IDApCi0JewotCQkvKgotCQkgKiBUaGUgcGFnZSBjb250YWluZWQgc29t ZSB0dXBsZXMgdGhhdCB3ZXJlIG5vdCBhbHJlYWR5IGZyb3plbiwgYW5kIHdlCi0JCSAqIGNob3Nl IG5vdCB0byBmcmVlemUgdGhlbSBub3cuICBUaGUgcGFnZSB3b24ndCBiZSBhbGwtZnJvemVuIHRo ZW4uCi0JCSAqLwotCQlBc3NlcnQoIXByc3RhdGUucGFnZWZyei5mcmVlemVfcmVxdWlyZWQpOwot Ci0JCXByc3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNlOwotCQlwcnN0YXRlLm5mcm96ZW4gPSAwOwkv KiBhdm9pZCBtaXNjb3VudHMgaW4gaW5zdHJ1bWVudGF0aW9uICovCi0JfQotCWVsc2UKLQl7Ci0J CS8qCi0JCSAqIFdlIGhhdmUgbm8gZnJlZXplIHBsYW5zIHRvIGV4ZWN1dGUuICBUaGUgcGFnZSBt aWdodCBhbHJlYWR5IGJlCi0JCSAqIGFsbC1mcm96ZW4gKHBlcmhhcHMgb25seSBmb2xsb3dpbmcg cHJ1bmluZyksIHRob3VnaC4gIFN1Y2ggcGFnZXMKLQkJICogY2FuIGJlIG1hcmtlZCBhbGwtZnJv emVuIGluIHRoZSBWTSBieSBvdXIgY2FsbGVyLCBldmVuIHRob3VnaCBub25lCi0JCSAqIG9mIGl0 cyB0dXBsZXMgd2VyZSBuZXdseSBmcm96ZW4gaGVyZS4KLQkJICovCi0JfQogCiAJQXNzZXJ0KCFw cnN0YXRlLmFsbF9mcm96ZW4gfHwgcHJzdGF0ZS5hbGxfdmlzaWJsZSk7CiAJLyogQW55IGVycm9y IHdoaWxlIGFwcGx5aW5nIHRoZSBjaGFuZ2VzIGlzIGNyaXRpY2FsICovCi0tIAoyLjQzLjAKCg== --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0003-Keep-all_frozen-updated-in-heap_page_prune_and_f.patch" Content-Disposition: attachment; filename="v15-0003-Keep-all_frozen-updated-in-heap_page_prune_and_f.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lb9k2 RnJvbSAwMjZmZTkwOWNjZDM0ZThmN2NhOTJhNTZjODNlOWMyYWFjODEzYTEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDIzIEp1bCAyMDI1IDE2OjAxOjI0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMDMvMjNdIEtlZXAgYWxsX2Zyb3plbiB1cGRhdGVkIGluCiBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZQoKV2UgcHJldmlvdXNseSByZWxpZWQgb24gb25seSB1c2luZyBhbGwtdmlz aWJsZSBhbmQgYWxsLWZyb3plbiB0b2dldGhlcgpidXQgaXQncyBiZXN0IHRvIGtlZXAgdGhlbSBi b3RoIHVwZGF0ZWQuCgpGdXR1cmUgY29tbWl0cyB3aWxsIHNlcGFyYXRlIHVzYWdlIG9mIHRoZXNl IGZpZWxkcywgc28gaXQgaXMgYmVzdCBub3QgdG8KcmVseSBvbiBhbGxfdmlzaWJsZSBmb3IgYWxs X2Zyb3plbidzIHZhbGlkaXR5LgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jICB8IDIxICsrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jIHwgIDkgKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlv bnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5k ZXggMjhiZDZhNTY3NDkuLmVhODIxNmUwNjMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYwpAQCAtMTQyLDEwICsxNDIsNiBAQCB0eXBlZGVmIHN0cnVjdAogCSAqIHdoZXRoZXIgdG8g ZnJlZXplIHRoZSBwYWdlIG9yIG5vdC4gIFRoZSBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbgog CSAqIHZhbHVlcyByZXR1cm5lZCB0byB0aGUgY2FsbGVyIGFyZSBhZGp1c3RlZCB0byBpbmNsdWRl IExQX0RFQUQgaXRlbXMgYXQKIAkgKiB0aGUgZW5kLgotCSAqCi0JICogYWxsX2Zyb3plbiBzaG91 bGQgb25seSBiZSBjb25zaWRlcmVkIHZhbGlkIGlmIGFsbF92aXNpYmxlIGlzIGFsc28gc2V0Owot CSAqIHdlIGRvbid0IGJvdGhlciB0byBjbGVhciB0aGUgYWxsX2Zyb3plbiBmbGFnIGV2ZXJ5IHRp bWUgd2UgY2xlYXIgdGhlCi0JICogYWxsX3Zpc2libGUgZmxhZy4KIAkgKi8KIAlib29sCQlhbGxf dmlzaWJsZTsKIAlib29sCQlhbGxfZnJvemVuOwpAQCAtNjk2LDggKzY5MiwxMCBAQCBoZWFwX3Bh Z2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJ CSAqIHVzZWQgYW55bW9yZS4gIFRoZSBvcHBvcnR1bmlzdGljIGZyZWV6ZSBoZXVyaXN0aWMgbXVz dCBiZQogCQkJICogaW1wcm92ZWQ7IGhvd2V2ZXIsIGZvciBub3csIHRyeSB0byBhcHByb3hpbWF0 ZSB0aGUgb2xkIGxvZ2ljLgogCQkJICovCi0JCQlpZiAocHJzdGF0ZS5hbGxfdmlzaWJsZSAmJiBw cnN0YXRlLmFsbF9mcm96ZW4gJiYgcHJzdGF0ZS5uZnJvemVuID4gMCkKKwkJCWlmIChwcnN0YXRl LmFsbF9mcm96ZW4gJiYgcHJzdGF0ZS5uZnJvemVuID4gMCkKIAkJCXsKKwkJCQlBc3NlcnQocHJz dGF0ZS5hbGxfdmlzaWJsZSk7CisKIAkJCQkvKgogCQkJCSAqIEZyZWV6aW5nIHdvdWxkIG1ha2Ug dGhlIHBhZ2UgYWxsLWZyb3plbi4gIEhhdmUgYWxyZWFkeQogCQkJCSAqIGVtaXR0ZWQgYW4gRlBJ IG9yIHdpbGwgZG8gc28gYW55d2F5PwpAQCAtNzUwLDYgKzc0OCw3IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkgKi8KIAl9 CiAKKwlBc3NlcnQoIXByc3RhdGUuYWxsX2Zyb3plbiB8fCBwcnN0YXRlLmFsbF92aXNpYmxlKTsK IAkvKiBBbnkgZXJyb3Igd2hpbGUgYXBwbHlpbmcgdGhlIGNoYW5nZXMgaXMgY3JpdGljYWwgKi8K IAlTVEFSVF9DUklUX1NFQ1RJT04oKTsKIApAQCAtODE5LDcgKzgxOCw3IEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkJICov CiAJCQlpZiAoZG9fZnJlZXplKQogCQkJewotCQkJCWlmIChwcnN0YXRlLmFsbF92aXNpYmxlICYm IHByc3RhdGUuYWxsX2Zyb3plbikKKwkJCQlpZiAocHJzdGF0ZS5hbGxfZnJvemVuKQogCQkJCQlm cnpfY29uZmxpY3RfaG9yaXpvbiA9IHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkOwogCQkJ CWVsc2UKIAkJCQl7CkBAIC0xMzgyLDcgKzEzODEsNyBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNo YW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVt YgogCiAJCQkJaWYgKCFIZWFwVHVwbGVIZWFkZXJYbWluQ29tbWl0dGVkKGh0dXApKQogCQkJCXsK LQkJCQkJcHJzdGF0ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCQkJcHJzdGF0ZS0+YWxsX3Zp c2libGUgPSBwcnN0YXRlLT5hbGxfZnJvemVuID0gZmFsc2U7CiAJCQkJCWJyZWFrOwogCQkJCX0K IApAQCAtMTQwNCw3ICsxNDAzLDcgQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25v cm1hbChQYWdlIHBhZ2UsIFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWIKIAkJCQlBc3Nl cnQocHJzdGF0ZS0+Y3V0b2Zmcyk7CiAJCQkJaWYgKCFUcmFuc2FjdGlvbklkUHJlY2VkZXMoeG1p biwgcHJzdGF0ZS0+Y3V0b2Zmcy0+T2xkZXN0WG1pbikpCiAJCQkJewotCQkJCQlwcnN0YXRlLT5h bGxfdmlzaWJsZSA9IGZhbHNlOworCQkJCQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IHByc3RhdGUt PmFsbF9mcm96ZW4gPSBmYWxzZTsKIAkJCQkJYnJlYWs7CiAJCQkJfQogCkBAIC0xNDE3LDcgKzE0 MTYsNyBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwg UHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYgogCiAJCWNhc2UgSEVBUFRVUExFX1JFQ0VO VExZX0RFQUQ6CiAJCQlwcnN0YXRlLT5yZWNlbnRseV9kZWFkX3R1cGxlcysrOwotCQkJcHJzdGF0 ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCXByc3RhdGUtPmFsbF92aXNpYmxlID0gcHJzdGF0 ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJCQkvKgogCQkJICogVGhpcyB0dXBsZSB3aWxsIHNv b24gYmVjb21lIERFQUQuICBVcGRhdGUgdGhlIGhpbnQgZmllbGQgc28KQEAgLTE0MzYsNyArMTQz NSw3IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoUGFnZSBwYWdlLCBQ cnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iCiAJCQkgKiBhc3N1bXB0aW9uIGlzIGEgYml0 IHNoYWt5LCBidXQgaXQgaXMgd2hhdCBhY3F1aXJlX3NhbXBsZV9yb3dzKCkKIAkJCSAqIGRvZXMs IHNvIGJlIGNvbnNpc3RlbnQuCiAJCQkgKi8KLQkJCXByc3RhdGUtPmFsbF92aXNpYmxlID0gZmFs c2U7CisJCQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxz ZTsKIAogCQkJLyoKIAkJCSAqIElmIHdlIHdhbnRlZCB0byBvcHRpbWl6ZSBmb3IgYWJvcnRzLCB3 ZSBtaWdodCBjb25zaWRlciBtYXJraW5nCkBAIC0xNDU0LDcgKzE0NTMsNyBAQCBoZWFwX3BydW5l X3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0 ZSwgT2Zmc2V0TnVtYgogCQkJICogd2lsbCBjb21taXQgYW5kIHVwZGF0ZSB0aGUgY291bnRlcnMg YWZ0ZXIgd2UgcmVwb3J0LgogCQkJICovCiAJCQlwcnN0YXRlLT5saXZlX3R1cGxlcysrOwotCQkJ cHJzdGF0ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCXByc3RhdGUtPmFsbF92aXNpYmxlID0g cHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJCQkvKgogCQkJICogVGhpcyB0dXBsZSBt YXkgc29vbiBiZWNvbWUgREVBRC4gIFVwZGF0ZSB0aGUgaGludCBmaWVsZCBzbyB0aGF0CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggZGRjOTY3NzY5NGMuLjUwY2M4OTgwODdm IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0yMDAzLDcgKzIwMDMsNiBA QCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCSAqIGFncmVlbWVudCB3aXRo IGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSgpIHVzaW5nIGFuIGFzc2VydGlvbi4KIAkgKi8KICNp ZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCi0JLyogTm90ZSB0aGF0IGFsbF9mcm96ZW4gdmFsdWUg ZG9lcyBub3QgbWF0dGVyIHdoZW4gIWFsbF92aXNpYmxlICovCiAJaWYgKHByZXN1bHQuYWxsX3Zp c2libGUpCiAJewogCQlUcmFuc2FjdGlvbklkIGRlYnVnX2N1dG9mZjsKQEAgLTIwNTYsNiArMjA1 NSw3IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJKmhhc19scGRlYWRf aXRlbXMgPSAocHJlc3VsdC5scGRlYWRfaXRlbXMgPiAwKTsKIAogCUFzc2VydCghcHJlc3VsdC5h bGxfdmlzaWJsZSB8fCAhKCpoYXNfbHBkZWFkX2l0ZW1zKSk7CisJQXNzZXJ0KCFwcmVzdWx0LmFs bF9mcm96ZW4gfHwgcHJlc3VsdC5hbGxfdmlzaWJsZSk7CiAKIAkvKgogCSAqIEhhbmRsZSBzZXR0 aW5nIHZpc2liaWxpdHkgbWFwIGJpdCBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSAo YXMKQEAgLTIxNjEsMTEgKzIxNjEsMTAgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZh Y3JlbCwKIAogCS8qCiAJICogSWYgdGhlIGFsbC12aXNpYmxlIHBhZ2UgaXMgYWxsLWZyb3plbiBi dXQgbm90IG1hcmtlZCBhcyBzdWNoIHlldCwgbWFyawotCSAqIGl0IGFzIGFsbC1mcm96ZW4uICBO b3RlIHRoYXQgYWxsX2Zyb3plbiBpcyBvbmx5IHZhbGlkIGlmIGFsbF92aXNpYmxlIGlzCi0JICog dHJ1ZSwgc28gd2UgbXVzdCBjaGVjayBib3RoIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuLgor CSAqIGl0IGFzIGFsbC1mcm96ZW4uCiAJICovCi0JZWxzZSBpZiAoYWxsX3Zpc2libGVfYWNjb3Jk aW5nX3RvX3ZtICYmIHByZXN1bHQuYWxsX3Zpc2libGUgJiYKLQkJCSBwcmVzdWx0LmFsbF9mcm96 ZW4gJiYgIVZNX0FMTF9GUk9aRU4odmFjcmVsLT5yZWwsIGJsa25vLCAmdm1idWZmZXIpKQorCWVs c2UgaWYgKGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSAmJiBwcmVzdWx0LmFsbF9mcm96ZW4g JiYKKwkJCSAhVk1fQUxMX0ZST1pFTih2YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1ZmZlcikpCiAJ ewogCQl1aW50OAkJb2xkX3ZtYml0czsKIAotLSAKMi40My4wCgo= --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0001-Eliminate-COPY-FREEZE-use-of-XLOG_HEAP2_VISIBLE.patch" Content-Disposition: attachment; filename="v15-0001-Eliminate-COPY-FREEZE-use-of-XLOG_HEAP2_VISIBLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lb9b0 RnJvbSA1YWU4MWFlNDQyOWIyMWJhYjYwN2EwNTNjODBlNWI5MjE3YjQ4NzUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE3IEp1biAyMDI1IDE3OjIyOjEwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMDEvMjNdIEVsaW1pbmF0ZSBDT1BZIEZSRUVaRSB1c2Ugb2YgWExPR19IRUFQMl9W SVNJQkxFCgpJbnN0ZWFkIG9mIGVtaXR0aW5nIGEgc2VwYXJhdGUgV0FMIFhMT0dfSEVBUDJfVklT SUJMRSByZWNvcmQgZm9yIHNldHRpbmcKYml0cyBpbiB0aGUgVk0sIHNwZWNpZnkgdGhlIGNoYW5n ZXMgdG8gbWFrZSB0byB0aGUgVk0gYmxvY2sgaW4gdGhlClhMT0dfSEVBUDJfTVVMVElfSU5TRVJU IHJlY29yZC4KClRoaXMgaGFsdmVzIHRoZSBudW1iZXIgb2YgV0FMIHJlY29yZHMgZW1pdHRlZCBi eSBDT1BZIEZSRUVaRS4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFu QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFJvYmVydCBIYWFzIDxyb2JlcnRtaGFhc0BnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmll d2VkLWJ5OiBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29tPgpEaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL2ZsYXQvQ0FBS1J1X1pNdzZOcGRfcW0yS00lMkJGd1EzY01P TXgxRGgzVk1ocDgtVjdTT0x4ZEs5LWclNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICB8IDQ0ICsrKysrKysrKystLS0tLS0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgICB8IDU5ICsrKysrKysrKysrKysrKysr KysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIHwgNzAgKysrKysr KysrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNj LmMgIHwgIDUgKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmggICAgICB8ICAz ICsrCiA1IGZpbGVzIGNoYW5nZWQsIDE2MyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IGVkMGMwYzJkYzlmLi43ZjM1NGNhZWMzMSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTI0NjYsNyArMjQ2NiwxMSBAQCBoZWFwX211 bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNsb3QgKipzbG90cywgaW50 IG50dXBsZXMsCiAJCXN0YXJ0aW5nX3dpdGhfZW1wdHlfcGFnZSA9IFBhZ2VHZXRNYXhPZmZzZXRO dW1iZXIocGFnZSkgPT0gMDsKIAogCQlpZiAoc3RhcnRpbmdfd2l0aF9lbXB0eV9wYWdlICYmIChv cHRpb25zICYgSEVBUF9JTlNFUlRfRlJPWkVOKSkKKwkJewogCQkJYWxsX2Zyb3plbl9zZXQgPSB0 cnVlOworCQkJLyogTG9jayB0aGUgdm1idWZmZXIgYmVmb3JlIGVudGVyaW5nIHRoZSBjcml0aWNh bCBzZWN0aW9uICovCisJCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJ VkUpOworCQl9CiAKIAkJLyogTk8gRVJFUE9SVChFUlJPUikgZnJvbSBoZXJlIHRpbGwgY2hhbmdl cyBhcmUgbG9nZ2VkICovCiAJCVNUQVJUX0NSSVRfU0VDVElPTigpOwpAQCAtMjUwNiw3ICsyNTEw LDggQEAgaGVhcF9tdWx0aV9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIFR1cGxlVGFibGVTbG90 ICoqc2xvdHMsIGludCBudHVwbGVzLAogCQkgKiBnb2luZyB0byBhZGQgZnVydGhlciBmcm96ZW4g cm93cyB0byBpdC4KIAkJICoKIAkJICogSWYgd2UncmUgb25seSBhZGRpbmcgYWxyZWFkeSBmcm96 ZW4gcm93cyB0byBhIHByZXZpb3VzbHkgZW1wdHkKLQkJICogcGFnZSwgbWFyayBpdCBhcyBhbGwt dmlzaWJsZS4KKwkJICogcGFnZSwgbWFyayBpdCBhcyBhbGwtZnJvemVuIGFuZCB1cGRhdGUgdGhl IHZpc2liaWxpdHkgbWFwLiBXZSdyZQorCQkgKiBhbHJlYWR5IGhvbGRpbmcgYSBwaW4gb24gdGhl IHZtYnVmZmVyLgogCQkgKi8KIAkJaWYgKFBhZ2VJc0FsbFZpc2libGUocGFnZSkgJiYgIShvcHRp b25zICYgSEVBUF9JTlNFUlRfRlJPWkVOKSkKIAkJewpAQCAtMjUxNyw3ICsyNTIyLDE0IEBAIGhl YXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xvdCAqKnNsb3Rz LCBpbnQgbnR1cGxlcywKIAkJCQkJCQkJdm1idWZmZXIsIFZJU0lCSUxJVFlNQVBfVkFMSURfQklU Uyk7CiAJCX0KIAkJZWxzZSBpZiAoYWxsX2Zyb3plbl9zZXQpCisJCXsKIAkJCVBhZ2VTZXRBbGxW aXNpYmxlKHBhZ2UpOworCQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKEJ1ZmZlckdldEJsb2Nr TnVtYmVyKGJ1ZmZlciksCisJCQkJCQkJCQkgdm1idWZmZXIsCisJCQkJCQkJCQkgVklTSUJJTElU WU1BUF9BTExfVklTSUJMRSB8CisJCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOLAor CQkJCQkJCQkJIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbGF0aW9uKSk7CisJCX0KIAogCQkv KgogCQkgKiBYWFggU2hvdWxkIHdlIHNldCBQYWdlU2V0UHJ1bmFibGUgb24gdGhpcyBwYWdlID8g U2VlIGhlYXBfaW5zZXJ0KCkKQEAgLTI1NjUsNiArMjU3NywxMiBAQCBoZWFwX211bHRpX2luc2Vy dChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNsb3QgKipzbG90cywgaW50IG50dXBsZXMs CiAJCQl4bHJlYy0+ZmxhZ3MgPSAwOwogCQkJaWYgKGFsbF92aXNpYmxlX2NsZWFyZWQpCiAJCQkJ eGxyZWMtPmZsYWdzID0gWExIX0lOU0VSVF9BTExfVklTSUJMRV9DTEVBUkVEOworCisJCQkvKgor CQkJICogV2UgZG9uJ3QgaGF2ZSB0byB3b3JyeSBhYm91dCBpbmNsdWRpbmcgYSBjb25mbGljdCB4 aWQgaW4gdGhlCisJCQkgKiBXQUwgcmVjb3JkIGFzIEhFQVBfSU5TRVJUX0ZST1pFTiBpbnRlbnRp b25hbGx5IHZpb2xhdGVzCisJCQkgKiB2aXNpYmlsaXR5IHJ1bGVzLgorCQkJICovCiAJCQlpZiAo YWxsX2Zyb3plbl9zZXQpCiAJCQkJeGxyZWMtPmZsYWdzID0gWExIX0lOU0VSVF9BTExfRlJPWkVO X1NFVDsKIApAQCAtMjYyNyw3ICsyNjQ1LDEwIEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9u IHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLCBpbnQgbnR1cGxlcywKIAogCQkJWExv Z0JlZ2luSW5zZXJ0KCk7CiAJCQlYTG9nUmVnaXN0ZXJEYXRhKHhscmVjLCB0dXBsZWRhdGEgLSBz Y3JhdGNoLmRhdGEpOworCiAJCQlYTG9nUmVnaXN0ZXJCdWZmZXIoMCwgYnVmZmVyLCBSRUdCVUZf U1RBTkRBUkQgfCBidWZmbGFncyk7CisJCQlpZiAoYWxsX2Zyb3plbl9zZXQpCisJCQkJWExvZ1Jl Z2lzdGVyQnVmZmVyKDEsIHZtYnVmZmVyLCAwKTsKIAogCQkJWExvZ1JlZ2lzdGVyQnVmRGF0YSgw LCB0dXBsZWRhdGEsIHRvdGFsZGF0YWxlbik7CiAKQEAgLTI2MzcsMjYgKzI2NTgsMTcgQEAgaGVh cF9tdWx0aV9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIFR1cGxlVGFibGVTbG90ICoqc2xvdHMs IGludCBudHVwbGVzLAogCQkJcmVjcHRyID0gWExvZ0luc2VydChSTV9IRUFQMl9JRCwgaW5mbyk7 CiAKIAkJCVBhZ2VTZXRMU04ocGFnZSwgcmVjcHRyKTsKKwkJCWlmIChhbGxfZnJvemVuX3NldCkK KwkJCXsKKwkJCQlBc3NlcnQoQnVmZmVySXNEaXJ0eSh2bWJ1ZmZlcikpOworCQkJCVBhZ2VTZXRM U04oQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlciksIHJlY3B0cik7CisJCQl9CiAJCX0KIAogCQlFTkRf Q1JJVF9TRUNUSU9OKCk7CiAKLQkJLyoKLQkJICogSWYgd2UndmUgZnJvemVuIGV2ZXJ5dGhpbmcg b24gdGhlIHBhZ2UsIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eW1hcC4KLQkJICogV2UncmUgYWxyZWFk eSBob2xkaW5nIHBpbiBvbiB0aGUgdm1idWZmZXIuCi0JCSAqLwogCQlpZiAoYWxsX2Zyb3plbl9z ZXQpCi0JCXsKLQkJCS8qCi0JCQkgKiBJdCdzIGZpbmUgdG8gdXNlIEludmFsaWRUcmFuc2FjdGlv bklkIGhlcmUgLSB0aGlzIGlzIG9ubHkgdXNlZAotCQkJICogd2hlbiBIRUFQX0lOU0VSVF9GUk9a RU4gaXMgc3BlY2lmaWVkLCB3aGljaCBpbnRlbnRpb25hbGx5Ci0JCQkgKiB2aW9sYXRlcyB2aXNp YmlsaXR5IHJ1bGVzLgotCQkJICovCi0JCQl2aXNpYmlsaXR5bWFwX3NldChyZWxhdGlvbiwgQnVm ZmVyR2V0QmxvY2tOdW1iZXIoYnVmZmVyKSwgYnVmZmVyLAotCQkJCQkJCSAgSW52YWxpZFhMb2dS ZWNQdHIsIHZtYnVmZmVyLAotCQkJCQkJCSAgSW52YWxpZFRyYW5zYWN0aW9uSWQsCi0JCQkJCQkJ ICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsK LQkJfQorCQkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKIAogCQlV bmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7CiAJCW5kb25lICs9IG50aGlzcGFnZTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCmluZGV4IGNmODQzMjc3OTM4Li43M2FhYWVmOWQ4 ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCkBAIC01NTEsNiArNTUxLDcg QEAgaGVhcF94bG9nX211bHRpX2luc2VydChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAlpbnQJ CQlpOwogCWJvb2wJCWlzaW5pdCA9IChYTG9nUmVjR2V0SW5mbyhyZWNvcmQpICYgWExPR19IRUFQ X0lOSVRfUEFHRSkgIT0gMDsKIAlYTG9nUmVkb0FjdGlvbiBhY3Rpb247CisJQnVmZmVyCQl2bWJ1 ZmZlciA9IEludmFsaWRCdWZmZXI7CiAKIAkvKgogCSAqIEluc2VydGlvbiBkb2Vzbid0IG92ZXJ3 cml0ZSBNVkNDIGRhdGEsIHNvIG5vIGNvbmZsaWN0IHByb2Nlc3NpbmcgaXMKQEAgLTU3MSwxMSAr NTcyLDExIEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAJaWYgKHhscmVjLT5mbGFncyAmIFhMSF9JTlNFUlRfQUxMX1ZJU0lCTEVfQ0xFQVJFRCkKIAl7 CiAJCVJlbGF0aW9uCXJlbG4gPSBDcmVhdGVGYWtlUmVsY2FjaGVFbnRyeShybG9jYXRvcik7Ci0J CUJ1ZmZlcgkJdm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOwogCiAJCXZpc2liaWxpdHltYXBfcGlu KHJlbG4sIGJsa25vLCAmdm1idWZmZXIpOwogCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJlbG4sIGJs a25vLCB2bWJ1ZmZlciwgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKTsKIAkJUmVsZWFzZUJ1ZmZl cih2bWJ1ZmZlcik7CisJCXZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIAkJRnJlZUZha2VSZWxj YWNoZUVudHJ5KHJlbG4pOwogCX0KIApAQCAtNjYyLDYgKzY2Myw2MiBAQCBoZWFwX3hsb2dfbXVs dGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCWlmIChCdWZmZXJJc1ZhbGlkKGJ1 ZmZlcikpCiAJCVVubG9ja1JlbGVhc2VCdWZmZXIoYnVmZmVyKTsKIAorCWJ1ZmZlciA9IEludmFs aWRCdWZmZXI7CisKKwkvKgorCSAqIE5vdyByZWFkIGFuZCB1cGRhdGUgdGhlIFZNIGJsb2NrLgor CSAqCisJICogV2UgbXVzdCByZWRvIGNoYW5nZXMgdG8gdGhlIFZNIGV2ZW4gaWYgdGhlIGhlYXAg cGFnZSB3YXMgc2tpcHBlZCBkdWUgdG8KKwkgKiBMU04gaW50ZXJsb2NrLiBFYWNoIGJsb2NrIG9m IHRoZSBWTSBjb250YWlucyBiaXRzIGZvciBtdWx0aXBsZSBoZWFwCisJICogYmxvY2tzIGFuZCBz dWJzZXF1ZW50IHJlY29yZHMgbWF5IGNvbnRhaW4gdXBkYXRlcyB0byBvdGhlciBiaXRzIGluIHRo aXMKKwkgKiBibG9jay4gSWYgdGhpcyByZWNvcmQgY29udGFpbnMgYW4gRlBJLCBzdWJzZXF1ZW50 IHJlY29yZHMgbWF5IHJlbHkgb24KKwkgKiBpdCBmb3IgcHJvdGVjdGlvbiBhZ2FpbnN0IGEgdG9y biBwYWdlLgorCSAqCisJICogVGhlIGNoYW5nZXMgdG8gdGhlIGhlYXAgcGFnZSBhcmUgcmVwbGF5 ZWQgZmlyc3QgdG8gbWFpbnRhaW4gdGhlCisJICogaW52YXJpYW50IHRoYXQgUERfQUxMX1ZJU0lC TEUgbXVzdCBiZSBzZXQgaWYgdGhlIFZNIGlzIHNldC4KKwkgKgorCSAqIE5vdGUgdGhhdCB0aGUg bG9jayBvbiB0aGUgaGVhcCBwYWdlIHdhcyBkcm9wcGVkIGFib3ZlLiBJbiBub3JtYWwKKwkgKiBv cGVyYXRpb24gdGhpcyB3b3VsZCBuZXZlciBiZSBzYWZlIGJlY2F1c2UgYSBjb25jdXJyZW50IHF1 ZXJ5IGNvdWxkCisJICogbW9kaWZ5IHRoZSBoZWFwIHBhZ2UgYW5kIGNsZWFyIFBEX0FMTF9WSVNJ QkxFIC0tIHZpb2xhdGluZyB0aGUKKwkgKiBpbnZhcmlhbnQgdGhhdCBQRF9BTExfVklTSUJMRSBt dXN0IGJlIHNldCBpZiB0aGUgY29ycmVzcG9uZGluZyBiaXQgaW4KKwkgKiB0aGUgVk0gaXMgc2V0 LgorCSAqCisJICogSW4gcmVjb3ZlcnksIHdlIGV4cGVjdCBubyBvdGhlciB3cml0ZXJzLCBzbyB3 cml0aW5nIHRvIHRoZSBWTSBwYWdlCisJICogd2l0aG91dCBob2xkaW5nIGEgbG9jayBvbiB0aGUg aGVhcCBwYWdlIGlzIGNvbnNpZGVyZWQgc2FmZSBlbm91Z2guIEl0CisJICogaXMgZG9uZSB0aGlz IHdheSB3aGVuIHJlcGxheWluZyB4bF9oZWFwX3Zpc2libGUgcmVjb3JkcyAoc2VlCisJICogaGVh cF94bG9nX3Zpc2libGUoKSkuCisJICovCisJaWYgKHhscmVjLT5mbGFncyAmIFhMSF9JTlNFUlRf QUxMX0ZST1pFTl9TRVQgJiYKKwkJWExvZ1JlYWRCdWZmZXJGb3JSZWRvRXh0ZW5kZWQocmVjb3Jk LCAxLCBSQk1fWkVST19PTl9FUlJPUiwgZmFsc2UsCisJCQkJCQkJCQkgICZ2bWJ1ZmZlcikgPT0g QkxLX05FRURTX1JFRE8pCisJeworCQlQYWdlCQl2bXBhZ2UgPSBCdWZmZXJHZXRQYWdlKHZtYnVm ZmVyKTsKKwkJY2hhcgkgICAqcmVsbmFtZTsKKworCQkvKiBpbml0aWFsaXplIHRoZSBwYWdlIGlm IGl0IHdhcyByZWFkIGFzIHplcm9zICovCisJCWlmIChQYWdlSXNOZXcodm1wYWdlKSkKKwkJCVBh Z2VJbml0KHZtcGFnZSwgQkxDS1NaLCAwKTsKKworCQkvKiBXZSBkb24ndCBoYXZlIHJlbGF0aW9u IG5hbWUgZHVyaW5nIHJlY292ZXJ5LCBzbyB1c2UgcmVsZmlsZW5vZGUgKi8KKwkJcmVsbmFtZSA9 IHBzcHJpbnRmKCIldSIsIHJsb2NhdG9yLnJlbE51bWJlcik7CisJCXZpc2liaWxpdHltYXBfc2V0 X3ZtYml0cyhibGtubywKKwkJCQkJCQkJIHZtYnVmZmVyLAorCQkJCQkJCQkgVklTSUJJTElUWU1B UF9BTExfVklTSUJMRSB8CisJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCisJCQkJ CQkJCSByZWxuYW1lKTsKKworCQkvKgorCQkgKiBJdCBpcyBub3QgcG9zc2libGUgdGhhdCB0aGUg Vk0gd2FzIGFscmVhZHkgc2V0IGZvciB0aGlzIGhlYXAgcGFnZSwKKwkJICogc28gdGhlIHZtYnVm ZmVyIG11c3QgaGF2ZSBiZWVuIG1vZGlmaWVkIGFuZCBtYXJrZWQgZGlydHkuCisJCSAqLworCQlB c3NlcnQoQnVmZmVySXNEaXJ0eSh2bWJ1ZmZlcikpOworCQlQYWdlU2V0TFNOKEJ1ZmZlckdldFBh Z2Uodm1idWZmZXIpLCBsc24pOworCQlwZnJlZShyZWxuYW1lKTsKKwl9CisKKwlpZiAoQnVmZmVy SXNWYWxpZCh2bWJ1ZmZlcikpCisJCVVubG9ja1JlbGVhc2VCdWZmZXIodm1idWZmZXIpOworCiAJ LyoKIAkgKiBJZiB0aGUgcGFnZSBpcyBydW5uaW5nIGxvdyBvbiBmcmVlIHNwYWNlLCB1cGRhdGUg dGhlIEZTTSBhcyB3ZWxsLgogCSAqIEFyYml0cmFyaWx5LCBvdXIgZGVmaW5pdGlvbiBvZiAibG93 IiBpcyBsZXNzIHRoYW4gMjAlLiBXZSBjYW4ndCBkbyBtdWNoCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92aXNpYmlsaXR5bWFwLmMKaW5kZXggNzMwNmMxNmYwNWMuLmIyODQ2MDM5MmI3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCkBAIC0xNCw3ICsxNCw4IEBACiAgKgkJ dmlzaWJpbGl0eW1hcF9jbGVhciAgLSBjbGVhciBiaXRzIGZvciBvbmUgcGFnZSBpbiB0aGUgdmlz aWJpbGl0eSBtYXAKICAqCQl2aXNpYmlsaXR5bWFwX3BpbgkgLSBwaW4gYSBtYXAgcGFnZSBmb3Ig c2V0dGluZyBhIGJpdAogICoJCXZpc2liaWxpdHltYXBfcGluX29rIC0gY2hlY2sgd2hldGhlciBj b3JyZWN0IG1hcCBwYWdlIGlzIGFscmVhZHkgcGlubmVkCi0gKgkJdmlzaWJpbGl0eW1hcF9zZXQJ IC0gc2V0IGEgYml0IGluIGEgcHJldmlvdXNseSBwaW5uZWQgcGFnZQorICoJCXZpc2liaWxpdHlt YXBfc2V0CSAtIHNldCBiaXQocykgaW4gYSBwcmV2aW91c2x5IHBpbm5lZCBwYWdlIGFuZCBsb2cK KyAqCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMgLSBzZXQgYml0KHMpIGluIGEgcGlubmVkIHBh Z2UKICAqCQl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMgLSBnZXQgc3RhdHVzIG9mIGJpdHMKICAq CQl2aXNpYmlsaXR5bWFwX2NvdW50ICAtIGNvdW50IG51bWJlciBvZiBiaXRzIHNldCBpbiB2aXNp YmlsaXR5IG1hcAogICoJCXZpc2liaWxpdHltYXBfcHJlcGFyZV90cnVuY2F0ZSAtCkBAIC0zMjEs NiArMzIyLDczIEBAIHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIg aGVhcEJsaywgQnVmZmVyIGhlYXBCdWYsCiAJcmV0dXJuIHN0YXR1czsKIH0KIAorLyoKKyAqIFNl dCBmbGFncyBpbiB0aGUgVk0gYmxvY2sgY29udGFpbmVkIGluIHRoZSBwYXNzZWQgaW4gdm1CdWYu CisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBmb3IgY2FsbGVycyB3aGljaCBpbmNsdWRlIHRoZSBW TSBjaGFuZ2VzIGluIHRoZSBzYW1lIFdBTAorICogcmVjb3JkIGFzIHRoZSBtb2RpZmljYXRpb25z IG9mIHRoZSBoZWFwIHBhZ2Ugd2hpY2ggcmVuZGVyZWQgaXQgYWxsLXZpc2libGUuCisgKiBDYWxs ZXJzIHNlcGFyYXRlbHkgbG9nZ2luZyB0aGUgVk0gY2hhbmdlcyBzaG91bGQgaW52b2tlIHZpc2li aWxpdHltYXBfc2V0KCkKKyAqIGluc3RlYWQuCisgKgorICogQ2FsbGVyIG11c3QgaGF2ZSBwaW5u ZWQgYW5kIGV4Y2x1c2l2ZSBsb2NrZWQgdGhlIGNvcnJlY3QgYmxvY2sgb2YgdGhlIFZNIGluCisg KiB2bUJ1Zi4gVGhpcyBibG9jayBzaG91bGQgY29udGFpbiB0aGUgVk0gYml0cyBmb3IgdGhlIGdp dmVuIGhlYXBCbGsuCisgKgorICogaGVhcFJlbG5hbWUgaXMgdXNlZCBvbmx5IGZvciBkZWJ1Z2dp bmcgcHVycG9zZXMuCisgKgorICogRHVyaW5nIG5vcm1hbCBvcGVyYXRpb24gKGkuZS4gbm90IHJl Y292ZXJ5KSwgdGhpcyBzaG91bGQgYmUgY2FsbGVkIGluIGEKKyAqIGNyaXRpY2FsIHNlY3Rpb24g d2hpY2ggYWxzbyBtYWtlcyBhbnkgbmVjZXNzYXJ5IGNoYW5nZXMgdG8gdGhlIGhlYXAgcGFnZQor ICogYW5kLCBpZiByZWxldmFudCwgZW1pdHMgV0FMLgorICoKKyAqIENhbGxlciBpcyByZXNwb25z aWJsZSBmb3IgV0FMIGxvZ2dpbmcgdGhlIGNoYW5nZXMgdG8gdGhlIFZNIGJ1ZmZlciBhbmQgZm9y CisgKiBtYWtpbmcgYW55IGNoYW5nZXMgbmVlZGVkIHRvIHRoZSBhc3NvY2lhdGVkIGhlYXAgcGFn ZS4gVGhpcyBpbmNsdWRlcworICogbWFpbnRhaW5pbmcgYW55IGludmFyaWFudHMgc3VjaCBhcyBl bnN1cmluZyB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgaGVhcEJsaworICogaXMgcGlubmVkIGFuZCBl eGNsdXNpdmUgbG9ja2VkLgorICovCit1aW50OAordmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKEJs b2NrTnVtYmVyIGhlYXBCbGssCisJCQkJCQkgQnVmZmVyIHZtQnVmLCB1aW50OCBmbGFncywKKwkJ CQkJCSBjb25zdCBjaGFyICpoZWFwUmVsbmFtZSkKK3sKKwlCbG9ja051bWJlciBtYXBCbG9jayA9 IEhFQVBCTEtfVE9fTUFQQkxPQ0soaGVhcEJsayk7CisJdWludDMyCQltYXBCeXRlID0gSEVBUEJM S19UT19NQVBCWVRFKGhlYXBCbGspOworCXVpbnQ4CQltYXBPZmZzZXQgPSBIRUFQQkxLX1RPX09G RlNFVChoZWFwQmxrKTsKKwlQYWdlCQlwYWdlOworCXVpbnQ4CSAgICptYXA7CisJdWludDgJCXN0 YXR1czsKKworI2lmZGVmIFRSQUNFX1ZJU0lCSUxJVFlNQVAKKwllbG9nKERFQlVHMSwgInZtX3Nl dCBmbGFncyAweCUwMlggZm9yICVzICVkIiwKKwkJIGZsYWdzLCBoZWFwUmVsbmFtZSwgaGVhcEJs ayk7CisjZW5kaWYKKworCS8qIENhbGwgaW4gc2FtZSBjcml0aWNhbCBzZWN0aW9uIHdoZXJlIFdB TCBpcyBlbWl0dGVkLiAqLworCUFzc2VydChJblJlY292ZXJ5IHx8IENyaXRTZWN0aW9uQ291bnQg PiAwKTsKKworCS8qIEZsYWdzIHNob3VsZCBiZSB2YWxpZC4gQWxzbyBuZXZlciBjbGVhciBiaXRz IHdpdGggdGhpcyBmdW5jdGlvbiAqLworCUFzc2VydCgoZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZB TElEX0JJVFMpID09IGZsYWdzKTsKKworCS8qIE11c3QgbmV2ZXIgc2V0IGFsbF9mcm96ZW4gYml0 IHdpdGhvdXQgYWxzbyBzZXR0aW5nIGFsbF92aXNpYmxlIGJpdCAqLworCUFzc2VydChmbGFncyAh PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOworCisJLyogQ2hlY2sgdGhhdCB3ZSBoYXZlIHRo ZSByaWdodCBWTSBwYWdlIHBpbm5lZCAqLworCWlmICghQnVmZmVySXNWYWxpZCh2bUJ1ZikgfHwg QnVmZmVyR2V0QmxvY2tOdW1iZXIodm1CdWYpICE9IG1hcEJsb2NrKQorCQllbG9nKEVSUk9SLCAi d3JvbmcgVk0gYnVmZmVyIHBhc3NlZCB0byB2aXNpYmlsaXR5bWFwX3NldCIpOworCisJQXNzZXJ0 KEJ1ZmZlcklzRXhjbHVzaXZlTG9ja2VkKHZtQnVmKSk7CisKKwlwYWdlID0gQnVmZmVyR2V0UGFn ZSh2bUJ1Zik7CisJbWFwID0gKHVpbnQ4ICopIFBhZ2VHZXRDb250ZW50cyhwYWdlKTsKKworCXN0 YXR1cyA9IChtYXBbbWFwQnl0ZV0gPj4gbWFwT2Zmc2V0KSAmIFZJU0lCSUxJVFlNQVBfVkFMSURf QklUUzsKKwlpZiAoZmxhZ3MgIT0gc3RhdHVzKQorCXsKKwkJbWFwW21hcEJ5dGVdIHw9IChmbGFn cyA8PCBtYXBPZmZzZXQpOworCQlNYXJrQnVmZmVyRGlydHkodm1CdWYpOworCX0KKworCXJldHVy biBzdGF0dXM7Cit9CisKIC8qCiAgKgl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMgLSBnZXQgc3Rh dHVzIG9mIGJpdHMKICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mv aGVhcGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCmluZGV4 IDgyYjYyYzk1ZGU1Li5iNDhkN2RjMWQyNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L3JtZ3JkZXNjL2hlYXBkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hl YXBkZXNjLmMKQEAgLTE2LDYgKzE2LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW1feGxv Zy5oIgogI2luY2x1ZGUgImFjY2Vzcy9ybWdyZGVzY191dGlscy5oIgorI2luY2x1ZGUgImFjY2Vz cy92aXNpYmlsaXR5bWFwZGVmcy5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc3RhbmRieWRlZnMuaCIK IAogLyoKQEAgLTM1NCw2ICszNTUsMTAgQEAgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExv Z1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAibnR1cGxlczog JWQsIGZsYWdzOiAweCUwMlgiLCB4bHJlYy0+bnR1cGxlcywKIAkJCQkJCSB4bHJlYy0+ZmxhZ3Mp OwogCisJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9GUk9aRU5fU0VUKQorCQkJ YXBwZW5kU3RyaW5nSW5mbyhidWYsICIsIHZtX2ZsYWdzOiAweCUwMlgiLAorCQkJCQkJCSBWSVNJ QklMSVRZTUFQX0FMTF9WSVNJQkxFIHwgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKKwogCQlp ZiAoWExvZ1JlY0hhc0Jsb2NrRGF0YShyZWNvcmQsIDApICYmICFpc2luaXQpCiAJCXsKIAkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiLCBvZmZzZXRzOiIpOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNp YmlsaXR5bWFwLmgKaW5kZXggYmUyMWM2ZGQxYTMuLjNkY2YzN2JhMDNmIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vz cy92aXNpYmlsaXR5bWFwLmgKQEAgLTM3LDYgKzM3LDkgQEAgZXh0ZXJuIHVpbnQ4IHZpc2liaWxp dHltYXBfc2V0KFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkgICBCdWZmZXIgdm1CdWYsCiAJCQkJCQkJ ICAgVHJhbnNhY3Rpb25JZCBjdXRvZmZfeGlkLAogCQkJCQkJCSAgIHVpbnQ4IGZsYWdzKTsKK2V4 dGVybiB1aW50OCB2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoQmxvY2tOdW1iZXIgaGVhcEJsaywK KwkJCQkJCQkJCSAgQnVmZmVyIHZtQnVmLCB1aW50OCBmbGFncywKKwkJCQkJCQkJCSAgY29uc3Qg Y2hhciAqaGVhcFJlbG5hbWUpOwogZXh0ZXJuIHVpbnQ4IHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1 cyhSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciAqdm1idWYpOwogZXh0 ZXJuIHZvaWQgdmlzaWJpbGl0eW1hcF9jb3VudChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyICph bGxfdmlzaWJsZSwgQmxvY2tOdW1iZXIgKmFsbF9mcm96ZW4pOwogZXh0ZXJuIEJsb2NrTnVtYmVy IHZpc2liaWxpdHltYXBfcHJlcGFyZV90cnVuY2F0ZShSZWxhdGlvbiByZWwsCi0tIAoyLjQzLjAK Cg== --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0006-Update-PruneState.all_-visible-frozen-sooner-in-.patch" Content-Disposition: attachment; filename="v15-0006-Update-PruneState.all_-visible-frozen-sooner-in-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lb9q5 RnJvbSAzMjIxMzkxYWQ1YjE5NDA4NDcxNWZjYmFjMDc2OTQ4Y2Y3OWRmY2M5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDE1IFNlcCAyMDI1IDE2OjI1OjQ0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMDYvMjNdIFVwZGF0ZSBQcnVuZVN0YXRlLmFsbF9bdmlzaWJsZXxmcm96ZW5dIHNv b25lciBpbgogcHJ1bmluZwoKV2UgZG9uJ3QgY2xlYXIgUHJ1bmVTdGF0ZS5hbGxfdmlzaWJsZSBh bmQgYWxsX2Zyb3plbiBkdXJpbmcgcHJ1bmluZyB3aGVuCndlIHNlZSBMUF9ERUFEIGl0ZW1zIGJl Y2F1c2Ugd2Ugd2FudCB0byBzdGlsbCBvcHBvcnR1bmlzdGljYWxseSBmcmVlemUgYQpwYWdlIGlm IGl0IHdvdWxkIGJlY29tZSBmcm96ZW4gYWZ0ZXIgdmFjdXVtJ3MgdGhpcmQgcGhhc2UuCgpDdXJy ZW50bHksIHRoaXMgaXMgZmluZSBiZWNhdXNlIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkg ZG9lc24ndCBzZXQKUERfQUxMX1ZJU0lCTEUgb3Igc2V0IGJpdHMgaW4gdGhlIFZNLiBJZiB3ZSB3 YW50IHRvIGRvIHRoYXQgaW4gdGhlCmZ1dHVyZSwgd2UgbmVlZCBhbGxfdmlzaWJsZSBhbmQgYWxs X2Zyb3plbiB0byBiZSBhY2N1cmF0ZSBlYXJsaWVyIGluCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKCkuIFRvIGRvIHRoaXMsIHdlIG11c3QgYWxzbyBtb3ZlIHVwCmRldGVybWluYXRpb24gb2Yg dGhlIGZyZWV6ZSBjb25mbGljdCBob3Jpem9uLiBXZSB1c2UgdGhlIHZpc2liaWxpdHkKY3V0b2Zm IHhpZCBldmVuIGlmIHRoZSB3aG9sZSBwYWdlIHdvbid0IGJlIGZyb3plbiB1bnRpbCBhZnRlciB2 YWN1dW0ncwp0aGlyZCBwaGFzZS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYyB8IDk1ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NDUgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYwppbmRleCA0ZWQ3NGRlNmYyNy4uNWU1MzZiZDBkNGQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jCkBAIC0yOTYsNyArMjk2LDkgQEAgaGVhcF9wYWdlX3BydW5lX29wdChS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcikKICAqIHByZS1mcmVlemUgY2hlY2tzLgog ICoKICAqIGRvX3BydW5lLCBkb19oaW50X2Z1bGxfb3JfcHJ1bmFibGUsIGFuZCBkaWRfdHVwbGVf aGludF9mcGkgbXVzdCBhbGwgaGF2ZQotICogYmVlbiBkZWNpZGVkIGJlZm9yZSBjYWxsaW5nIHRo aXMgZnVuY3Rpb24uCisgKiBiZWVuIGRlY2lkZWQgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlv bi4gKmZyel9jb25mbGljdF9ob3Jpem9uIGlzIHNldCB0bworICogdGhlIHNuYXBzaG90IGNvbmZs aWN0IGhvcml6b24gd2UgZm9yIHRoZSBXQUwgcmVjb3JkIHNob3VsZCB3ZSBkZWNpZGUgdG8gZnJl ZXplCisgKiB0dXBsZXMuCiAgKgogICogcHJzdGF0ZSBpcyBhbiBpbnB1dC9vdXRwdXQgcGFyYW1l dGVyLgogICoKQEAgLTMwOCw3ICszMTAsOCBAQCBoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoUmVsYXRp b24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQkJCSAgYm9vbCBkaWRfdHVwbGVfaGludF9m cGksCiAJCQkJCSAgYm9vbCBkb19wcnVuZSwKIAkJCQkJICBib29sIGRvX2hpbnRfcHJ1bmUsCi0J CQkJCSAgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSkKKwkJCQkJICBQcnVuZVN0YXRlICpwcnN0YXRlLAor CQkJCQkgIFRyYW5zYWN0aW9uSWQgKmZyel9jb25mbGljdF9ob3Jpem9uKQogewogCWJvb2wJCWRv X2ZyZWV6ZSA9IGZhbHNlOwogCkBAIC0zNzgsNiArMzgxLDIyIEBAIGhlYXBfcGFnZV93aWxsX2Zy ZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJICogY3JpdGljYWwgc2Vj dGlvbi4KIAkJICovCiAJCWhlYXBfcHJlX2ZyZWV6ZV9jaGVja3MoYnVmZmVyLCBwcnN0YXRlLT5m cm96ZW4sIHByc3RhdGUtPm5mcm96ZW4pOworCisJCS8qCisJCSAqIENhbGN1bGF0ZSB3aGF0IHRo ZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uIHNob3VsZCBiZSBmb3IgYSByZWNvcmQKKwkJICog ZnJlZXppbmcgdHVwbGVzLiBXZSBjYW4gdXNlIHRoZSB2aXNpYmlsaXR5X2N1dG9mZl94aWQgYXMg b3VyIGN1dG9mZgorCQkgKiBmb3IgY29uZmxpY3RzIHdoZW4gdGhlIHdob2xlIHBhZ2UgaXMgZWxp Z2libGUgdG8gYmVjb21lIGFsbC1mcm96ZW4KKwkJICogaW4gdGhlIFZNIG9uY2Ugd2UncmUgZG9u ZSB3aXRoIGl0LiAgT3RoZXJ3aXNlIHdlIGdlbmVyYXRlIGEKKwkJICogY29uc2VydmF0aXZlIGN1 dG9mZiBieSBzdGVwcGluZyBiYWNrIGZyb20gT2xkZXN0WG1pbi4KKwkJICovCisJCWlmIChwcnN0 YXRlLT5hbGxfZnJvemVuKQorCQkJKmZyel9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS0+dmlz aWJpbGl0eV9jdXRvZmZfeGlkOworCQllbHNlCisJCXsKKwkJCS8qIEF2b2lkcyBmYWxzZSBjb25m bGljdHMgd2hlbiBob3Rfc3RhbmRieV9mZWVkYmFjayBpbiB1c2UgKi8KKwkJCSpmcnpfY29uZmxp Y3RfaG9yaXpvbiA9IHByc3RhdGUtPmN1dG9mZnMtPk9sZGVzdFhtaW47CisJCQlUcmFuc2FjdGlv bklkUmV0cmVhdCgqZnJ6X2NvbmZsaWN0X2hvcml6b24pOworCQl9CiAJfQogCWVsc2UgaWYgKHBy c3RhdGUtPm5mcm96ZW4gPiAwKQogCXsKQEAgLTQ3OCw2ICs0OTcsNyBAQCBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAlib29sCQlk b19oaW50X3BydW5lOwogCWJvb2wJCWRpZF90dXBsZV9oaW50X2ZwaTsKIAlpbnQ2NAkJZnBpX2Jl Zm9yZSA9IHBnV2FsVXNhZ2Uud2FsX2ZwaTsKKwlUcmFuc2FjdGlvbklkIGZyel9jb25mbGljdF9o b3Jpem9uID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKIAkvKiBDb3B5IHBhcmFtZXRlcnMgdG8g cHJzdGF0ZSAqLwogCXByc3RhdGUudmlzdGVzdCA9IHZpc3Rlc3Q7CkBAIC01NDYsMTAgKzU2Niwx MCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVy IGJ1ZmZlciwKIAkgKiBhcmUgdHVwbGVzIHByZXNlbnQgdGhhdCBhcmUgbm90IHZpc2libGUgdG8g ZXZlcnlvbmUgb3IgaWYgdGhlcmUgYXJlCiAJICogZGVhZCB0dXBsZXMgd2hpY2ggYXJlIG5vdCB5 ZXQgcmVtb3ZhYmxlLiAgSG93ZXZlciwgZGVhZCB0dXBsZXMgd2hpY2gKIAkgKiB3aWxsIGJlIHJl bW92ZWQgYnkgdGhlIGVuZCBvZiB2YWN1dW1pbmcgc2hvdWxkIG5vdCBwcmVjbHVkZSB1cyBmcm9t Ci0JICogb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXppbmcuICBCZWNhdXNlIG9mIHRoYXQsIHdlIGRv IG5vdCBjbGVhcgotCSAqIGFsbF92aXNpYmxlIHdoZW4gd2Ugc2VlIExQX0RFQUQgaXRlbXMuICBX ZSBmaXggdGhhdCBhdCB0aGUgZW5kIG9mIHRoZQotCSAqIGZ1bmN0aW9uLCB3aGVuIHdlIHJldHVy biB0aGUgdmFsdWUgdG8gdGhlIGNhbGxlciwgc28gdGhhdCB0aGUgY2FsbGVyCi0JICogZG9lc24n dCBzZXQgdGhlIFZNIGJpdCBpbmNvcnJlY3RseS4KKwkgKiBvcHBvcnR1bmlzdGljYWxseSBmcmVl emluZy4gIEJlY2F1c2Ugb2YgdGhhdCwgd2UgZG8gbm90IGltbWVkaWF0ZWx5CisJICogY2xlYXIg YWxsX3Zpc2libGUgd2hlbiB3ZSBzZWUgTFBfREVBRCBpdGVtcy4gIFdlIGZpeCB0aGF0IGFmdGVy CisJICogc2Nhbm5pbmcgdGhlIGxpbmUgcG9pbnRlcnMsIGJlZm9yZSB3ZSByZXR1cm4gdGhlIHZh bHVlIHRvIHRoZSBjYWxsZXIsCisJICogc28gdGhhdCB0aGUgY2FsbGVyIGRvZXNuJ3Qgc2V0IHRo ZSBWTSBiaXQgaW5jb3JyZWN0bHkuCiAJICovCiAJaWYgKHByc3RhdGUuYXR0ZW1wdF9mcmVlemUp CiAJewpAQCAtNzg0LDggKzgwNCwyNCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxh dGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkJCSAgZGlkX3R1cGxlX2hpbnRf ZnBpLAogCQkJCQkJCQkJICBkb19wcnVuZSwKIAkJCQkJCQkJCSAgZG9faGludF9wcnVuZSwKLQkJ CQkJCQkJCSAgJnByc3RhdGUpOworCQkJCQkJCQkJICAmcHJzdGF0ZSwKKwkJCQkJCQkJCSAgJmZy el9jb25mbGljdF9ob3Jpem9uKTsKIAorCS8qCisJICogV2hpbGUgc2Nhbm5pbmcgdGhlIGxpbmUg cG9pbnRlcnMsIHdlIGRpZCBub3QgY2xlYXIKKwkgKiBhbGxfdmlzaWJsZS9hbGxfZnJvemVuIHdo ZW4gZW5jb3VudGVyaW5nIExQX0RFQUQgaXRlbXMgYmVjYXVzZSB3ZQorCSAqIHdhbnRlZCB0aGUg ZGVjaXNpb24gd2hldGhlciBvciBub3QgdG8gZnJlZXplIHRoZSBwYWdlIHRvIGJlIHVuYWZmZWN0 ZWQKKwkgKiBieSB0aGUgc2hvcnQtdGVybSBwcmVzZW5jZSBvZiBMUF9ERUFEIGl0ZW1zLiAgVGhl c2UgTFBfREVBRCBpdGVtcyBhcmUKKwkgKiBlZmZlY3RpdmVseSBhc3N1bWVkIHRvIGJlIExQX1VO VVNFRCBpdGVtcyBpbiB0aGUgbWFraW5nLiAgSXQgZG9lc24ndAorCSAqIG1hdHRlciB3aGljaCB2 YWN1dW0gaGVhcCBwYXNzIChpbml0aWFsIHBhc3Mgb3IgZmluYWwgcGFzcykgZW5kcyB1cAorCSAq IHNldHRpbmcgdGhlIHBhZ2UgYWxsLWZyb3plbiwgYXMgbG9uZyBhcyB0aGUgb25nb2luZyBWQUNV VU0gZG9lcyBpdC4KKwkgKgorCSAqIE5vdyB0aGF0IHdlIGZpbmlzaGVkIGRldGVybWluaW5nIHdo ZXRoZXIgb3Igbm90IHRvIGZyZWV6ZSB0aGUgcGFnZSwKKwkgKiB1cGRhdGUgYWxsX3Zpc2libGUg YW5kIGFsbF9mcm96ZW4gc28gdGhhdCB0aGV5IHJlZmxlY3QgdGhlIHRydWUgc3RhdGUKKwkgKiBv ZiB0aGUgcGFnZSBmb3Igc2V0dGluZyBQRF9BTExfVklTSUJMRSBhbmQgVk0gYml0cy4KKwkgKi8K KwlpZiAocHJzdGF0ZS5scGRlYWRfaXRlbXMgPiAwKQorCQlwcnN0YXRlLmFsbF92aXNpYmxlID0g cHJzdGF0ZS5hbGxfZnJvemVuID0gZmFsc2U7CiAKIAlBc3NlcnQoIXByc3RhdGUuYWxsX2Zyb3pl biB8fCBwcnN0YXRlLmFsbF92aXNpYmxlKTsKIAkvKiBBbnkgZXJyb3Igd2hpbGUgYXBwbHlpbmcg dGhlIGNoYW5nZXMgaXMgY3JpdGljYWwgKi8KQEAgLTg0NiwyNyArODgyLDggQEAgaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQkg KiBvbiB0aGUgc3RhbmRieSB3aXRoIHhpZHMgb2xkZXIgdGhhbiB0aGUgeW91bmdlc3QgdHVwbGUg dGhpcwogCQkJICogcmVjb3JkIHdpbGwgZnJlZXplIHdpbGwgY29uZmxpY3QuCiAJCQkgKi8KLQkJ CVRyYW5zYWN0aW9uSWQgZnJ6X2NvbmZsaWN0X2hvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25J ZDsKIAkJCVRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkOwogCi0JCQkvKgotCQkJICogV2UgY2Fu IHVzZSB0aGUgdmlzaWJpbGl0eV9jdXRvZmZfeGlkIGFzIG91ciBjdXRvZmYgZm9yCi0JCQkgKiBj b25mbGljdHMgd2hlbiB0aGUgd2hvbGUgcGFnZSBpcyBlbGlnaWJsZSB0byBiZWNvbWUgYWxsLWZy b3plbgotCQkJICogaW4gdGhlIFZNIG9uY2Ugd2UncmUgZG9uZSB3aXRoIGl0LiAgT3RoZXJ3aXNl IHdlIGdlbmVyYXRlIGEKLQkJCSAqIGNvbnNlcnZhdGl2ZSBjdXRvZmYgYnkgc3RlcHBpbmcgYmFj ayBmcm9tIE9sZGVzdFhtaW4uCi0JCQkgKi8KLQkJCWlmIChkb19mcmVlemUpCi0JCQl7Ci0JCQkJ aWYgKHByc3RhdGUuYWxsX2Zyb3plbikKLQkJCQkJZnJ6X2NvbmZsaWN0X2hvcml6b24gPSBwcnN0 YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKLQkJCQllbHNlCi0JCQkJewotCQkJCQkvKiBBdm9p ZHMgZmFsc2UgY29uZmxpY3RzIHdoZW4gaG90X3N0YW5kYnlfZmVlZGJhY2sgaW4gdXNlICovCi0J CQkJCWZyel9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS5jdXRvZmZzLT5PbGRlc3RYbWluOwot CQkJCQlUcmFuc2FjdGlvbklkUmV0cmVhdChmcnpfY29uZmxpY3RfaG9yaXpvbik7Ci0JCQkJfQot CQkJfQotCiAJCQlpZiAoVHJhbnNhY3Rpb25JZEZvbGxvd3MoZnJ6X2NvbmZsaWN0X2hvcml6b24s IHByc3RhdGUubGF0ZXN0X3hpZF9yZW1vdmVkKSkKIAkJCQljb25mbGljdF94aWQgPSBmcnpfY29u ZmxpY3RfaG9yaXpvbjsKIAkJCWVsc2UKQEAgLTg5MCwzMCArOTA3LDggQEAgaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJcHJlc3Vs dC0+bmZyb3plbiA9IHByc3RhdGUubmZyb3plbjsKIAlwcmVzdWx0LT5saXZlX3R1cGxlcyA9IHBy c3RhdGUubGl2ZV90dXBsZXM7CiAJcHJlc3VsdC0+cmVjZW50bHlfZGVhZF90dXBsZXMgPSBwcnN0 YXRlLnJlY2VudGx5X2RlYWRfdHVwbGVzOwotCi0JLyoKLQkgKiBJdCB3YXMgY29udmVuaWVudCB0 byBpZ25vcmUgTFBfREVBRCBpdGVtcyBpbiBhbGxfdmlzaWJsZSBlYXJsaWVyIG9uIHRvCi0JICog bWFrZSB0aGUgY2hvaWNlIG9mIHdoZXRoZXIgb3Igbm90IHRvIGZyZWV6ZSB0aGUgcGFnZSB1bmFm ZmVjdGVkIGJ5IHRoZQotCSAqIHNob3J0LXRlcm0gcHJlc2VuY2Ugb2YgTFBfREVBRCBpdGVtcy4g IFRoZXNlIExQX0RFQUQgaXRlbXMgd2VyZQotCSAqIGVmZmVjdGl2ZWx5IGFzc3VtZWQgdG8gYmUg TFBfVU5VU0VEIGl0ZW1zIGluIHRoZSBtYWtpbmcuICBJdCBkb2Vzbid0Ci0JICogbWF0dGVyIHdo aWNoIHZhY3V1bSBoZWFwIHBhc3MgKGluaXRpYWwgcGFzcyBvciBmaW5hbCBwYXNzKSBlbmRzIHVw Ci0JICogc2V0dGluZyB0aGUgcGFnZSBhbGwtZnJvemVuLCBhcyBsb25nIGFzIHRoZSBvbmdvaW5n IFZBQ1VVTSBkb2VzIGl0LgotCSAqCi0JICogTm93IHRoYXQgZnJlZXppbmcgaGFzIGJlZW4gZmlu YWxpemVkLCB1bnNldCBhbGxfdmlzaWJsZSBpZiB0aGVyZSBhcmUKLQkgKiBhbnkgTFBfREVBRCBp dGVtcyBvbiB0aGUgcGFnZS4gIEl0IG5lZWRzIHRvIHJlZmxlY3QgdGhlIHByZXNlbnQgc3RhdGUK LQkgKiBvZiB0aGUgcGFnZSwgYXMgZXhwZWN0ZWQgYnkgb3VyIGNhbGxlci4KLQkgKi8KLQlpZiAo cHJzdGF0ZS5hbGxfdmlzaWJsZSAmJiBwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKQotCXsKLQkJ cHJlc3VsdC0+YWxsX3Zpc2libGUgPSBwcnN0YXRlLmFsbF92aXNpYmxlOwotCQlwcmVzdWx0LT5h bGxfZnJvemVuID0gcHJzdGF0ZS5hbGxfZnJvemVuOwotCX0KLQllbHNlCi0JewotCQlwcmVzdWx0 LT5hbGxfdmlzaWJsZSA9IGZhbHNlOwotCQlwcmVzdWx0LT5hbGxfZnJvemVuID0gZmFsc2U7Ci0J fQotCisJcHJlc3VsdC0+YWxsX3Zpc2libGUgPSBwcnN0YXRlLmFsbF92aXNpYmxlOworCXByZXN1 bHQtPmFsbF9mcm96ZW4gPSBwcnN0YXRlLmFsbF9mcm96ZW47CiAJcHJlc3VsdC0+aGFzdHVwID0g cHJzdGF0ZS5oYXN0dXA7CiAKIAkvKgotLSAKMi40My4wCgo= --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0008-Combine-vacuum-phase-I-VM-update-cases.patch" Content-Disposition: attachment; filename="v15-0008-Combine-vacuum-phase-I-VM-update-cases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lb9s7 RnJvbSA3OGQ4ZmQwYWI4ZWY5NGM5ZGU3ZjNhNGM4ZjMwOGNlMGMyY2JhNTRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDE1IFNlcCAyMDI1IDE3OjQ4OjM4IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMDgvMjNdIENvbWJpbmUgdmFjdXVtIHBoYXNlIEkgVk0gdXBkYXRlIGNhc2VzCgpX ZSB1cGRhdGUgdGhlIFZNIGFmdGVyIHBoYXNlIEkgb2YgdmFjdXVtIC0tIGVpdGhlciBzZXR0aW5n IGJvdGggdGhlIFZNCmJpdHMgd2hlbiBhbGwgYml0cyBhcmUgY3VycmVudGx5IHVuc2V0IG9yIHNl dHRpbmcganVzdCB0aGUgZnJvemVuIGJpdAp3aGVuIHRoZSBhbGwtdmlzaWJsZSBiaXQgaXMgYWxy ZWFkeSBzZXQuCgpUaG9zZSB0d28gY2FzZXMgc2hhcmVkIG11Y2ggb2YgdGhlIHNhbWUgY29kZSAt LSBsZWFkaW5nIHRvIHVubmVjZXNzYXJ5CmR1cGxpY2F0aW9uLiBUaGlzIGNvbW1pdCBjb21iaW5l cyB0aGVtLCB3aGljaCBpcyBzaW1wbGVyIGFuZCBlYXNpZXIgdG8KdW5kZXJzdGFuZC4KLS0tCiBz cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCA2OCArKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDMwOGFiZmYxNmNh Li41YTZiYmJkOTdmMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMjA1 OCwxNSArMjA1OCwyMiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCUFz c2VydCghcHJlc3VsdC5hbGxfZnJvemVuIHx8IHByZXN1bHQuYWxsX3Zpc2libGUpOwogCiAJLyoK LQkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQgYmFzZWQgb24gaW5mb3JtYXRp b24gZnJvbSB0aGUgVk0gKGFzCisJICogSGFuZGxlIHNldHRpbmcgdmlzaWJpbGl0eSBtYXAgYml0 cyBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSAoYXMKIAkgKiBvZiBsYXN0IGhlYXBf dmFjX3NjYW5fbmV4dF9ibG9jaygpIGNhbGwpLCBhbmQgZnJvbSBhbGxfdmlzaWJsZSBhbmQKLQkg KiBhbGxfZnJvemVuIHZhcmlhYmxlcworCSAqIGFsbF9mcm96ZW4gdmFyaWFibGVzLgogCSAqLwot CWlmICghYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtICYmIHByZXN1bHQuYWxsX3Zpc2libGUp CisJaWYgKChwcmVzdWx0LmFsbF92aXNpYmxlICYmICFhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9f dm0pIHx8CisJCShwcmVzdWx0LmFsbF9mcm96ZW4gJiYgIVZNX0FMTF9GUk9aRU4odmFjcmVsLT5y ZWwsIGJsa25vLCAmdm1idWZmZXIpKSkKIAl7CiAJCXVpbnQ4CQlvbGRfdm1iaXRzOwogCQl1aW50 OAkJZmxhZ3MgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwogCisJCS8qCisJCSAqIElmIHRo ZSBwYWdlIGlzIGFsbC1mcm96ZW4sIHdlIGNhbiBwYXNzIEludmFsaWRUcmFuc2FjdGlvbklkIGFz IG91cgorCQkgKiBjdXRvZmZfeGlkLCBzaW5jZSBhIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uIHN1 ZmZpY2llbnQgdG8gbWFrZQorCQkgKiBldmVyeXRoaW5nIHNhZmUgZm9yIFJFRE8gd2FzIGxvZ2dl ZCB3aGVuIHRoZSBwYWdlJ3MgdHVwbGVzIHdlcmUKKwkJICogZnJvemVuLgorCQkgKi8KIAkJaWYg KHByZXN1bHQuYWxsX2Zyb3plbikKIAkJewogCQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxp ZChwcmVzdWx0LnZtX2NvbmZsaWN0X2hvcml6b24pKTsKQEAgLTIwNzksNiArMjA4NiwxMiBAQCBs YXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkJCQkJCQkJICAgZmxhZ3MpOwog CiAJCS8qCisJCSAqIEV2ZW4gaWYgd2UgYXJlIG9ubHkgc2V0dGluZyB0aGUgYWxsLWZyb3plbiBi aXQsIHRoZXJlIGlzIGEgc21hbGwKKwkJICogY2hhbmNlIHRoYXQgdGhlIFZNIHdhcyBtb2RpZmll ZCBzb21ldGltZSBiZXR3ZWVuIHNldHRpbmcKKwkJICogYWxsX3Zpc2libGVfYWNjb3JkaW5nX3Rv X3ZtIGFuZCBjaGVja2luZyB0aGUgdmlzaWJpbGl0eSBkdXJpbmcKKwkJICogcHJ1bmluZy4gQ2hl Y2sgdGhlIHJldHVybiB2YWx1ZSBvZiBvbGRfdm1iaXRzIHRvIGVuc3VyZSB0aGUKKwkJICogdmlz aWJpbGl0eSBtYXAgY291bnRlcnMgdXNlZCBmb3IgbG9nZ2luZyBhcmUgYWNjdXJhdGUuCisJCSAq CiAJCSAqIElmIHRoZSBwYWdlIHdhc24ndCBhbHJlYWR5IHNldCBhbGwtdmlzaWJsZSBhbmQvb3Ig YWxsLWZyb3plbiBpbiB0aGUKIAkJICogVk0sIGNvdW50IGl0IGFzIG5ld2x5IHNldCBmb3IgbG9n Z2luZy4KIAkJICovCkBAIC0yMTAwLDYgKzIxMTMsOCBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxT dGF0ZSAqdmFjcmVsLAogCX0KIAogCS8qCisJICogTm93IGhhbmRsZSB0d28gcG90ZW50aWFsIGNv cnJ1cHRpb24gY2FzZXM6CisJICoKIAkgKiBBcyBvZiBQb3N0Z3JlU1FMIDkuMiwgdGhlIHZpc2li aWxpdHkgbWFwIGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0IGlmIHRoZQogCSAqIHBhZ2UtbGV2ZWwg Yml0IGlzIGNsZWFyLiAgSG93ZXZlciwgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBiaXQgZ290CiAJ ICogY2xlYXJlZCBhZnRlciBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKSB3YXMgY2FsbGVkLCBz byB3ZSBtdXN0IHJlY2hlY2sKQEAgLTIxNDQsNTMgKzIxNTksNiBAQCBsYXp5X3NjYW5fcHJ1bmUo TFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CiAJ fQogCi0JLyoKLQkgKiBJZiB0aGUgYWxsLXZpc2libGUgcGFnZSBpcyBhbGwtZnJvemVuIGJ1dCBu b3QgbWFya2VkIGFzIHN1Y2ggeWV0LCBtYXJrCi0JICogaXQgYXMgYWxsLWZyb3plbi4KLQkgKi8K LQllbHNlIGlmIChhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gJiYgcHJlc3VsdC5hbGxfZnJv emVuICYmCi0JCQkgIVZNX0FMTF9GUk9aRU4odmFjcmVsLT5yZWwsIGJsa25vLCAmdm1idWZmZXIp KQotCXsKLQkJdWludDgJCW9sZF92bWJpdHM7Ci0KLQkJLyoKLQkJICogU2V0IHRoZSBwYWdlIGFs bC1mcm96ZW4gKGFuZCBhbGwtdmlzaWJsZSkgaW4gdGhlIFZNLgotCQkgKgotCQkgKiBXZSBjYW4g cGFzcyBJbnZhbGlkVHJhbnNhY3Rpb25JZCBhcyBvdXIgY3V0b2ZmX3hpZCwgc2luY2UgYQotCQkg KiBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiBzdWZmaWNpZW50IHRvIG1ha2UgZXZlcnl0aGluZyBz YWZlIGZvciBSRURPCi0JCSAqIHdhcyBsb2dnZWQgd2hlbiB0aGUgcGFnZSdzIHR1cGxlcyB3ZXJl IGZyb3plbi4KLQkJICovCi0JCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQocHJlc3VsdC52 bV9jb25mbGljdF9ob3Jpem9uKSk7Ci0JCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3NldCh2 YWNyZWwtPnJlbCwgYmxrbm8sIGJ1ZiwKLQkJCQkJCQkJCSAgIEludmFsaWRYTG9nUmVjUHRyLAot CQkJCQkJCQkJICAgdm1idWZmZXIsIEludmFsaWRUcmFuc2FjdGlvbklkLAotCQkJCQkJCQkJICAg VklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8Ci0JCQkJCQkJCQkgICBWSVNJQklMSVRZTUFQX0FM TF9GUk9aRU4pOwotCi0JCS8qCi0JCSAqIFRoZSBwYWdlIHdhcyBsaWtlbHkgYWxyZWFkeSBzZXQg YWxsLXZpc2libGUgaW4gdGhlIFZNLiBIb3dldmVyLAotCQkgKiB0aGVyZSBpcyBhIHNtYWxsIGNo YW5jZSB0aGF0IGl0IHdhcyBtb2RpZmllZCBzb21ldGltZSBiZXR3ZWVuCi0JCSAqIHNldHRpbmcg YWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtIGFuZCBjaGVja2luZyB0aGUgdmlzaWJpbGl0eQot CQkgKiBkdXJpbmcgcHJ1bmluZy4gQ2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBvbGRfdm1iaXRz IGFueXdheSB0bwotCQkgKiBlbnN1cmUgdGhlIHZpc2liaWxpdHkgbWFwIGNvdW50ZXJzIHVzZWQg Zm9yIGxvZ2dpbmcgYXJlIGFjY3VyYXRlLgotCQkgKi8KLQkJaWYgKChvbGRfdm1iaXRzICYgVklT SUJJTElUWU1BUF9BTExfVklTSUJMRSkgPT0gMCkKLQkJewotCQkJdmFjcmVsLT52bV9uZXdfdmlz aWJsZV9wYWdlcysrOwotCQkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMrKzsK LQkJCSp2bV9wYWdlX2Zyb3plbiA9IHRydWU7Ci0JCX0KLQotCQkvKgotCQkgKiBXZSBhbHJlYWR5 IGNoZWNrZWQgdGhhdCB0aGUgcGFnZSB3YXMgbm90IHNldCBhbGwtZnJvemVuIGluIHRoZSBWTQot CQkgKiBhYm92ZSwgc28gd2UgZG9uJ3QgbmVlZCB0byB0ZXN0IHRoZSB2YWx1ZSBvZiBvbGRfdm1i aXRzLgotCQkgKi8KLQkJZWxzZQotCQl7Ci0JCQl2YWNyZWwtPnZtX25ld19mcm96ZW5fcGFnZXMr KzsKLQkJCSp2bV9wYWdlX2Zyb3plbiA9IHRydWU7Ci0JCX0KLQl9CiAKIAlyZXR1cm4gcHJlc3Vs dC5uZGVsZXRlZDsKIH0KLS0gCjIuNDMuMAoK --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0009-Vacuum-phase-III-set-PD_ALL_VISIBLE-in-vacuum-WA.patch" Content-Disposition: attachment; filename="v15-0009-Vacuum-phase-III-set-PD_ALL_VISIBLE-in-vacuum-WA.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lb9u8 RnJvbSBlNWZiYTYzNDgyZTdkM2JkNDRhOTkxNzczYWMzZGE1MGQyNDAyNzgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE2IFNlcCAyMDI1IDEwOjM5OjMxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMDkvMjNdIFZhY3V1bSBwaGFzZSBJSUkgc2V0IFBEX0FMTF9WSVNJQkxFIGluIHZh Y3V1bSBXQUwKIHJlY29yZAoKSW5zdGVhZCBvZiBzZXR0aW5nIFBEX0FMTF9WSVNJQkxFIG9uIHRo ZSBoZWFwIHBhZ2Ugd2hlbiBzZXR0aW5nIGJpdHMgaW4KdGhlIFZNLCBzZXQgaXQgd2hlbiBmbGlw cGluZyB0aGUgbGluZSBwb2ludGVycyBvbiB0aGUgcGFnZSB0byBMUF9VTlVTRUQuClRoaXMgd2ls bCBhbGxvdyB1cyB0byBvbWl0IHRoZSBoZWFwIHBhZ2UgZnJvbSB0aGUgVk0gV0FMIGNoYWluLgoK VG8gZG8gdGhpcywgd2UgbXVzdCBjaGVjayBpZiB0aGUgcGFnZSB3aWxsIGJlIGFsbC12aXNpYmxl IG9uY2Ugd2UgZmxpcAp0aGUgbGluZSBwb2ludGVycyBiZWZvcmUgd2UgYWN0dWFsbHkgZG8gc28u CgpPbmUgZnVuY3Rpb25hbCBjaGFuZ2UgaXMgdGhhdCBhIHNpbmdsZSBjcml0aWNhbCBzZWN0aW9u IHN1cnJvdW5kcyBib3RoCnRoZSBWTSB1cGRhdGUgYW5kIHRoZSBoZWFwIHVwZGF0ZS4gUHJldmlv dXNseSB0aGV5IHdlcmUgZWFjaCBpbiBhCmNyaXRpY2FsIHNlY3Rpb24sIHNvIHdlIGNvdWxkIGNy YXNoIGFuZCBoYXZlIHNldCBQRF9BTExfVklTSUJMRSBidXQgbm90CnNldCBiaXRzIGluIHRoZSBW TS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAxNDAgKysrKysr KysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKyks IDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA1 YTZiYmJkOTdmMi4uOWJmY2Q2N2E2MWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKQEAgLTQ2NSw2ICs0NjUsMTEgQEAgc3RhdGljIHZvaWQgZGVhZF9pdGVtc19yZXNldChMVlJl bFN0YXRlICp2YWNyZWwpOwogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3Rh dGUgKnZhY3JlbCk7CiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoTFZSZWxT dGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2li aWxpdHlfY3V0b2ZmX3hpZCwgYm9vbCAqYWxsX2Zyb3plbik7CitzdGF0aWMgYm9vbCBoZWFwX3Bh Z2Vfd291bGRfYmVfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAor CQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCisJCQkJCQkJCQkJICAgaW50 IG5kZWFkb2Zmc2V0cywKKwkJCQkJCQkJCQkgICBib29sICphbGxfZnJvemVuLAorCQkJCQkJCQkJ CSAgIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCk7CiBzdGF0aWMgdm9pZCB1 cGRhdGVfcmVsc3RhdHNfYWxsX2luZGV4ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2 b2lkIHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpOwogc3RhdGljIHZvaWQgdXBkYXRl X3ZhY3V1bV9lcnJvcl9pbmZvKExWUmVsU3RhdGUgKnZhY3JlbCwKQEAgLTI3OTMsNiArMjc5OCw3 IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVy IGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCVRyYW5zYWN0aW9uSWQgdmlzaWJpbGl0eV9jdXRvZmZf eGlkOwogCWJvb2wJCWFsbF9mcm96ZW47CiAJTFZTYXZlZEVyckluZm8gc2F2ZWRfZXJyX2luZm87 CisJdWludDgJCXZtZmxhZ3MgPSAwOwogCiAJQXNzZXJ0KHZhY3JlbC0+ZG9faW5kZXhfdmFjdXVt aW5nKTsKIApAQCAtMjgwMyw2ICsyODA5LDE4IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJl bFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJ CSBWQUNVVU1fRVJSQ0JfUEhBU0VfVkFDVVVNX0hFQVAsIGJsa25vLAogCQkJCQkJCSBJbnZhbGlk T2Zmc2V0TnVtYmVyKTsKIAorCWlmIChoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUodmFj cmVsLCBidWZmZXIsCisJCQkJCQkJCQkgICBkZWFkb2Zmc2V0cywgbnVtX29mZnNldHMsCisJCQkJ CQkJCQkgICAmYWxsX2Zyb3plbiwgJnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkpCisJeworCQl2bWZs YWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CisJCWlmIChhbGxfZnJvemVuKQorCQl7 CisJCQl2bWZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKKwkJCUFzc2VydCghVHJh bnNhY3Rpb25JZElzVmFsaWQodmlzaWJpbGl0eV9jdXRvZmZfeGlkKSk7CisJCX0KKwl9CisKIAlT VEFSVF9DUklUX1NFQ1RJT04oKTsKIAogCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX29mZnNldHM7 IGkrKykKQEAgLTI4MjIsNiArMjg0MCwxMyBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxT dGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAkvKiBBdHRl bXB0IHRvIHRydW5jYXRlIGxpbmUgcG9pbnRlciBhcnJheSBub3cgKi8KIAlQYWdlVHJ1bmNhdGVM aW5lUG9pbnRlckFycmF5KHBhZ2UpOwogCisJLyoKKwkgKiBUaGUgcGFnZSB3aWxsIG5ldmVyIGhh dmUgUERfQUxMX1ZJU0lCTEUgYWxyZWFkeSBzZXQsIHNvIGlmIHdlIGFyZQorCSAqIHNldHRpbmcg dGhlIFZNLCB3ZSBtdXN0IHNldCBQRF9BTExfVklTSUJMRSBhcyB3ZWxsLgorCSAqLworCWlmICgo dm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgIT0gMCkKKwkJUGFnZVNldEFsbFZp c2libGUocGFnZSk7CisKIAkvKgogCSAqIE1hcmsgYnVmZmVyIGRpcnR5IGJlZm9yZSB3ZSB3cml0 ZSBXQUwuCiAJICovCkBAIC0yODMzLDcgKzI4NTgsNyBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2Uo TFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAkJ bG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZSh2YWNyZWwtPnJlbCwgYnVmZmVyLAogCQkJCQkJCQkg IEludmFsaWRUcmFuc2FjdGlvbklkLAogCQkJCQkJCQkgIGZhbHNlLAkvKiBubyBjbGVhbnVwIGxv Y2sgcmVxdWlyZWQgKi8KLQkJCQkJCQkJICBmYWxzZSwKKwkJCQkJCQkJICAodm1mbGFncyAmIFZJ U0lCSUxJVFlNQVBfVkFMSURfQklUUykgIT0gMCwKIAkJCQkJCQkJICBQUlVORV9WQUNVVU1fQ0xF QU5VUCwKIAkJCQkJCQkJICBOVUxMLCAwLAkvKiBmcm96ZW4gKi8KIAkJCQkJCQkJICBOVUxMLCAw LAkvKiByZWRpcmVjdGVkICovCkBAIC0yODQyLDM2ICsyODY3LDI2IEBAIGxhenlfdmFjdXVtX2hl YXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVm ZmVyLAogCX0KIAogCS8qCi0JICogRW5kIGNyaXRpY2FsIHNlY3Rpb24sIHNvIHdlIHNhZmVseSBj YW4gZG8gdmlzaWJpbGl0eSB0ZXN0cyAod2hpY2gKLQkgKiBwb3NzaWJseSBuZWVkIHRvIHBlcmZv cm0gSU8gYW5kIGFsbG9jYXRlIG1lbW9yeSEpLiBJZiB3ZSBjcmFzaCBub3cgdGhlCi0JICogcGFn ZSAoaW5jbHVkaW5nIHRoZSBjb3JyZXNwb25kaW5nIHZtIGJpdCkgbWlnaHQgbm90IGJlIG1hcmtl ZCBhbGwKLQkgKiB2aXNpYmxlLCBidXQgdGhhdCdzIGZpbmUuIEEgbGF0ZXIgdmFjdXVtIHdpbGwg Zml4IHRoYXQuCisJICogTm90ZSB0aGF0IHdlIGRvbid0IGVuZCB0aGUgY3JpdGljYWwgc2VjdGlv biB1bnRpbCBhZnRlciBlbWl0dGluZyB0aGUgVk0KKwkgKiByZWNvcmQuIFRoaXMgZW5zdXJlcyBi b3RoIFBEX0FMTF9WSVNJQkxFIGFuZCB0aGUgVk0gYml0cyBhcmUgc2V0IG9yCisJICogdW5zZXQg aW4gdGhlIGV2ZW50IG9mIGEgY3Jhc2guIFdoaWxlIGl0IGlzIGNvcnJlY3QgZm9yIFBEX0FMTF9W SVNJQkxFCisJICogdG8gYmUgc2V0IGFuZCB0aGUgVk0gdG8gYmUgY2xlYXIsIHdlIHNob3VsZCBk byBvdXIgYmVzdCB0byBrZWVwIHRoZXNlCisJICogaW4gc3luYy4gVGhpcyBkb2VzIG1lYW4gdGhh dCB3ZSB3aWxsIHRha2UgYSBsb2NrIG9uIHRoZSBWTSBidWZmZXIKKwkgKiBpbnNpZGUgb2YgYSBj cml0aWNhbCBzZWN0aW9uLCB3aGljaCBpcyBnZW5lcmFsbHkgZGlzY291cmFnZWQuIFRoZXJlIGlz CisJICogcHJlY2VkZW50IGZvciB0aGlzIGluIG90aGVyIGNhbGxlcnMgb2YgdmlzaWJpbGl0eW1h cF9zZXQoKSwgdGhvdWdoLgogCSAqLwotCUVORF9DUklUX1NFQ1RJT04oKTsKIAogCS8qCi0JICog Tm93IHRoYXQgd2UgaGF2ZSByZW1vdmVkIHRoZSBMUF9ERUFEIGl0ZW1zIGZyb20gdGhlIHBhZ2Us IG9uY2UgYWdhaW4KLQkgKiBjaGVjayBpZiB0aGUgcGFnZSBoYXMgYmVjb21lIGFsbC12aXNpYmxl LiAgVGhlIHBhZ2UgaXMgYWxyZWFkeSBtYXJrZWQKLQkgKiBkaXJ0eSwgZXhjbHVzaXZlbHkgbG9j a2VkLCBhbmQsIGlmIG5lZWRlZCwgYSBmdWxsIHBhZ2UgaW1hZ2UgaGFzIGJlZW4KLQkgKiBlbWl0 dGVkLgorCSAqIE5vdyB0aGF0IHdlIGhhdmUgcmVtb3ZlZCB0aGUgTFBfREVBRCBpdGVtcyBmcm9t IHRoZSBwYWdlLCBzZXQgdGhlCisJICogdmlzaWJpbGl0eSBtYXAgaWYgdGhlIHBhZ2UgYmVjYW1l IGFsbC12aXNpYmxlL2FsbC1mcm96ZW4uIENoYW5nZXMgdG8KKwkgKiB0aGUgaGVhcCBwYWdlIGhh dmUgYWxyZWFkeSBiZWVuIGxvZ2dlZC4KIAkgKi8KLQlBc3NlcnQoIVBhZ2VJc0FsbFZpc2libGUo cGFnZSkpOwotCWlmIChoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUodmFjcmVsLCBidWZmZXIsICZ2 aXNpYmlsaXR5X2N1dG9mZl94aWQsCi0JCQkJCQkJCSAmYWxsX2Zyb3plbikpCisJaWYgKCh2bWZs YWdzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSkgIT0gMCkKIAl7Ci0JCXVpbnQ4CQlmbGFn cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7Ci0KLQkJaWYgKGFsbF9mcm96ZW4pCi0JCXsK LQkJCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQodmlzaWJpbGl0eV9jdXRvZmZfeGlkKSk7 Ci0JCQlmbGFncyB8PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU47Ci0JCX0KLQotCQlQYWdlU2V0 QWxsVmlzaWJsZShwYWdlKTsKIAkJdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVsLT5yZWwsIGJsa25v LCBidWZmZXIsCiAJCQkJCQkgIEludmFsaWRYTG9nUmVjUHRyLAogCQkJCQkJICB2bWJ1ZmZlciwg dmlzaWJpbGl0eV9jdXRvZmZfeGlkLAotCQkJCQkJICBmbGFncyk7CisJCQkJCQkgIHZtZmxhZ3Mp OwogCiAJCS8qIENvdW50IHRoZSBuZXdseSBzZXQgVk0gcGFnZSBmb3IgbG9nZ2luZyAqLwogCQl2 YWNyZWwtPnZtX25ld192aXNpYmxlX3BhZ2VzKys7CkBAIC0yODc5LDYgKzI4OTQsOCBAQCBsYXp5 X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywg QnVmZmVyIGJ1ZmZlciwKIAkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzKys7 CiAJfQogCisJRU5EX0NSSVRfU0VDVElPTigpOworCiAJLyogUmV2ZXJ0IHRvIHRoZSBwcmV2aW91 cyBwaGFzZSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICovCiAJcmVzdG9yZV92YWN1 dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7CiB9CkBAIC0zNTQwLDMwICsz NTU3LDc3IEBAIGRlYWRfaXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwpCiB9CiAKIC8q Ci0gKiBDaGVjayBpZiBldmVyeSB0dXBsZSBpbiB0aGUgZ2l2ZW4gcGFnZSBpcyB2aXNpYmxlIHRv IGFsbCBjdXJyZW50IGFuZCBmdXR1cmUKLSAqIHRyYW5zYWN0aW9ucy4gQWxzbyByZXR1cm4gdGhl IHZpc2liaWxpdHlfY3V0b2ZmX3hpZCB3aGljaCBpcyB0aGUgaGlnaGVzdAotICogeG1pbiBhbW9u Z3N0IHRoZSB2aXNpYmxlIHR1cGxlcy4gIFNldCAqYWxsX2Zyb3plbiB0byB0cnVlIGlmIGV2ZXJ5 IHR1cGxlCi0gKiBvbiB0aGlzIHBhZ2UgaXMgZnJvemVuLgotICoKLSAqIFRoaXMgaXMgYSBzdHJp cHBlZCBkb3duIHZlcnNpb24gb2YgbGF6eV9zY2FuX3BydW5lKCkuICBJZiB5b3UgY2hhbmdlCi0g KiBhbnl0aGluZyBoZXJlLCBtYWtlIHN1cmUgdGhhdCBldmVyeXRoaW5nIHN0YXlzIGluIHN5bmMu ICBOb3RlIHRoYXQgYW4KLSAqIGFzc2VydGlvbiBjYWxscyB1cyB0byB2ZXJpZnkgdGhhdCBldmVy eWJvZHkgc3RpbGwgYWdyZWVzLiAgQmUgc3VyZSB0byBhdm9pZAotICogaW50cm9kdWNpbmcgbmV3 IHNpZGUtZWZmZWN0cyBoZXJlLgorICogV3JhcHBlciBmb3IgaGVhcF9wYWdlX3dvdWxkX2JlX2Fs bF92aXNpYmxlKCkgd2hpY2ggY2FuIGJlIHVzZWQgZm9yCisgKiBjYWxsZXJzIHRoYXQgZXhwZWN0 IG5vIExQX0RFQUQgb24gdGhlIHBhZ2UuCiAgKi8KIHN0YXRpYyBib29sCiBoZWFwX3BhZ2VfaXNf YWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJIFRyYW5z YWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKIAkJCQkJCSBib29sICphbGxfZnJvemVu KQogeworCisJcmV0dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZSh2YWNyZWwsIGJ1 ZiwKKwkJCQkJCQkJCQkgIE5VTEwsIDAsCisJCQkJCQkJCQkJICBhbGxfZnJvemVuLAorCQkJCQkJ CQkJCSAgdmlzaWJpbGl0eV9jdXRvZmZfeGlkKTsKK30KKworLyoKKyAqIERldGVybWluZXMgd2hl dGhlciBvciBub3QgdGhlIGhlYXAgcGFnZSBpbiBidWYgaXMgYWxsLXZpc2libGUgb3RoZXIgdGhh bgorICogdGhlIGRlYWQgbGluZSBwb2ludGVycyByZWZlcnJlZCB0byBieSB0aGUgcHJvdmlkZWQg ZGVhZG9mZnNldHMgYXJyYXkuCisgKgorICogZGVhZG9mZnNldHMgYXJlIHRoZSBvZmZzZXRzIHRo ZSBjYWxsZXIga25vd3MgYWJvdXQgYW5kIGFscmVhZHkgcmVtb3ZlZAorICogYXNzb2NpYXRlZCBp bmRleCBlbnRyaWVzLiBWYWN1dW0gd2lsbCBjYWxsIHRoaXMgYmVmb3JlIHNldHRpbmcgdGhvc2Ug bGluZQorICogcG9pbnRlcnMgTFBfVU5VU0VELiBTbywgaWYgdGhlcmUgYXJlIG5vIG5ldyBMUF9E RUFEIGl0ZW1zLCB0aGVuIHRoZSBwYWdlCisgKiBjYW4gYmUgc2V0IGFsbC12aXNpYmxlIGluIHRo ZSBWTSBieSB0aGUgY2FsbGVyLgorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGFnZSBpcyBh bGwtdmlzaWJsZSBvdGhlciB0aGFuIHRoZSBwcm92aWRlZAorICogZGVhZG9mZnNldHMgYW5kIGZh bHNlIG90aGVyd2lzZS4KKyAqCisgKiB2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbiBpcyB1c2Vk IHRvIGRldGVybWluZSB2aXNpYmlsaXR5LgorICoKKyAqICphbGxfZnJvemVuIGlzIGFuIG91dHB1 dCBwYXJhbWV0ZXIgaW5kaWNhdGluZyB0byB0aGUgY2FsbGVyIGlmIGV2ZXJ5IHR1cGxlCisgKiBv biB0aGUgcGFnZSBpcyBmcm96ZW4uCisgKgorICogKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCBpcyBh biBvdXRwdXQgcGFyYW1ldGVyIHdpdGggdGhlIGhpZ2hlc3QgeG1pbiBhbW9uZ3N0IHRoZQorICog dmlzaWJsZSB0dXBsZXMuIEl0IGlzIG9ubHkgdmFsaWQgaWYgdGhlIHBhZ2UgaXMgYWxsLXZpc2li bGUuCisgKgorICogQ2FsbGVycyBsb29raW5nIHRvIHZlcmlmeSB0aGF0IHRoZSBwYWdlIGlzIGFs cmVhZHkgYWxsLXZpc2libGUgY2FuIGNhbGwKKyAqIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSgp LgorICoKKyAqIFRoaXMgaXMgc2ltaWxhciBsb2dpYyB0byB0aGF0IGluIGhlYXBfcHJ1bmVfcmVj b3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoKSBJZgorICogeW91IGNoYW5nZSBhbnl0aGluZyBoZXJl LCBtYWtlIHN1cmUgdGhhdCBldmVyeXRoaW5nIHN0YXlzIGluIHN5bmMuICBOb3RlCisgKiB0aGF0 IGFuIGFzc2VydGlvbiBjYWxscyB1cyB0byB2ZXJpZnkgdGhhdCBldmVyeWJvZHkgc3RpbGwgYWdy ZWVzLiAgQmUgc3VyZQorICogdG8gYXZvaWQgaW50cm9kdWNpbmcgbmV3IHNpZGUtZWZmZWN0cyBo ZXJlLgorICovCitzdGF0aWMgYm9vbAoraGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKExW UmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwKKwkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRl YWRvZmZzZXRzLAorCQkJCQkJCSAgIGludCBuZGVhZG9mZnNldHMsCisJCQkJCQkJICAgYm9vbCAq YWxsX2Zyb3plbiwKKwkJCQkJCQkgICBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94 aWQpCit7CiAJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmKTsKIAlCbG9ja051bWJlciBi bG9ja25vID0gQnVmZmVyR2V0QmxvY2tOdW1iZXIoYnVmKTsKIAlPZmZzZXROdW1iZXIgb2ZmbnVt LAogCQkJCW1heG9mZjsKIAlib29sCQlhbGxfdmlzaWJsZSA9IHRydWU7CisJaW50CQkJbWF0Y2hl ZF9kZWFkX2NvdW50ID0gMDsKIAogCSp2aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZhbGlkVHJh bnNhY3Rpb25JZDsKIAkqYWxsX2Zyb3plbiA9IHRydWU7CiAKKwlBc3NlcnQobmRlYWRvZmZzZXRz ID09IDAgfHwgZGVhZG9mZnNldHMpOworCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCS8q IENvbmZpcm0gaW5wdXQgZGVhZG9mZnNldHNbXSBpcyBzdHJpY3RseSBzb3J0ZWQgKi8KKwlpZiAo bmRlYWRvZmZzZXRzID4gMSkKKwl7CisJCWZvciAoaW50IGkgPSAxOyBpIDwgbmRlYWRvZmZzZXRz OyBpKyspCisJCQlBc3NlcnQoZGVhZG9mZnNldHNbaSAtIDFdIDwgZGVhZG9mZnNldHNbaV0pOwor CX0KKyNlbmRpZgorCiAJbWF4b2ZmID0gUGFnZUdldE1heE9mZnNldE51bWJlcihwYWdlKTsKIAlm b3IgKG9mZm51bSA9IEZpcnN0T2Zmc2V0TnVtYmVyOwogCQkgb2ZmbnVtIDw9IG1heG9mZiAmJiBh bGxfdmlzaWJsZTsKQEAgLTM1OTEsOSArMzY1NSwxNSBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2li bGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCQkgKi8KIAkJaWYgKEl0ZW1JZElz RGVhZChpdGVtaWQpKQogCQl7Ci0JCQlhbGxfdmlzaWJsZSA9IGZhbHNlOwotCQkJKmFsbF9mcm96 ZW4gPSBmYWxzZTsKLQkJCWJyZWFrOworCQkJaWYgKCFkZWFkb2Zmc2V0cyB8fAorCQkJCW1hdGNo ZWRfZGVhZF9jb3VudCA+PSBuZGVhZG9mZnNldHMgfHwKKwkJCQlkZWFkb2Zmc2V0c1ttYXRjaGVk X2RlYWRfY291bnRdICE9IG9mZm51bSkKKwkJCXsKKwkJCQkqYWxsX2Zyb3plbiA9IGFsbF92aXNp YmxlID0gZmFsc2U7CisJCQkJYnJlYWs7CisJCQl9CisJCQltYXRjaGVkX2RlYWRfY291bnQrKzsK KwkJCWNvbnRpbnVlOwogCQl9CiAKIAkJQXNzZXJ0KEl0ZW1JZElzTm9ybWFsKGl0ZW1pZCkpOwot LSAKMi40My4wCgo= --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0007-Set-PD_ALL_VISIBLE-in-heap_page_prune_and_freeze.patch" Content-Disposition: attachment; filename="v15-0007-Set-PD_ALL_VISIBLE-in-heap_page_prune_and_freeze.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lb9r6 RnJvbSA3NTU0ZTZjN2I2ZTlkMTU3MGU0NzNiNWMwOTZlZWU4NGFhYjRmNWRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDE1IFNlcCAyMDI1IDE2OjMyOjM1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMDcvMjNdIFNldCBQRF9BTExfVklTSUJMRSBpbiBoZWFwX3BhZ2VfcHJ1bmVfYW5k X2ZyZWV6ZQoKQWZ0ZXIgcGhhc2UgSSBvZiB2YWN1dW0sIGlmIHRoZSBoZWFwIHBhZ2Ugd2FzIHJl bmRlcmVkIGFsbC12aXNpYmxlLCB3ZQpjYW4gc2V0IGl0IGFzIHN1Y2ggaW4gdGhlIFZNLiBXZSBh bHNvIG11c3Qgc2V0IHRoZSBwYWdlLWxldmVsClBEX0FMTF9WSVNJQkxFIGJpdC4gQnkgc2V0dGlu ZyBQRF9BTExfVklTSUJMRSB3aGlsZSBtYWtpbmcgdGhlIG90aGVyCmNoYW5nZXMgdG8gdGhlIGhl YXAgcGFnZSBpbnN0ZWFkIG9mIHdoaWxlIHVwZGF0aW5nIHRoZSBWTSwgd2UgY2FuIG9taXQKdGhl IGhlYXAgcGFnZSBmcm9tIHRoZSBXQUwgY2hhaW4gZHVyaW5nIHRoZSBWTSB1cGRhdGUuIFRoZSBy ZXN1bHQgaXMKdGhhdCBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9TQ0FOIHJlY29yZHMgaW5jbHVk ZSB1cGRhdGVzIHRvClBEX0FMTF9WSVNJQkxFLgoKVGhpcyBjb21taXQgZG9lc24ndCB5ZXQgcmVt b3ZlIHRoZSBoZWFwIHBhZ2UgZnJvbSB0aGUgV0FMIGNoYWluIGJlY2F1c2UKaXQgZG9lcyBub3Qg Y2hhbmdlIG90aGVyIHVzZXJzIG9mIHZpc2liaWxpdHltYXBfc2V0KCkuCgpPbi1hY2Nlc3MgcHJ1 bmluZyBkb2VzIG5vdCBlbmFibGUgc2V0dGluZyBQRF9BTExfVklTSUJMRS4KCk5vdGUgdGhhdCB0 aGlzIGlzIGNhcmVmdWxseSBjb2RlZCBzdWNoIHRoYXQgaWYgdGhlIG9ubHkgbW9kaWZpY2F0aW9u IHRvCnRoZSBwYWdlIGR1cmluZyBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIGlzIHNldHRp bmcgUERfQUxMX1ZJU0lCTEUKYW5kIGNoZWNrc3Vtcy93YWxfbG9nX2hpbnRzIGFyZSBkaXNhYmxl ZCB3ZSB3aWxsIG5ldmVyIGVtaXQgYSBmdWxsIHBhZ2UKaW1hZ2Ugb2YgdGhlIGhlYXAgcGFnZS4K ClRoaXMgYWxzbyBmaXhlcyBhIGxvbmdzdGFuZGluZyBpc3N1ZSB3aGVyZSwgd2hlbiBjaGVja3N1 bXMvd2FsX2xvZ19oaW50cwphcmUgZW5hYmxlZCwgYW4gYWxsLXZpc2libGUgcGFnZSBiZWluZyBz ZXQgYWxsLWZyb3plbiBtYXkgbm90IG1hcmsgdGhlCmJ1ZmZlciBkaXJ0eSBiZWZvcmUgdmlzaWJp bGl0eW1hcF9zZXQoKSBzdGFtcHMgaXQgd2l0aCB0aGUKeGxfaGVhcF92aXNpYmxlIExTTi4KCkl0 IGlzIG5vdGV3b3J0aHkgdGhhdCB0aGUgY2hlY2tzIGZvciBwYWdlIGNvcnJ1cHRpb24gYW5kIGFu IGluY29uc2lzdGVudApzdGF0ZSBiZXR3ZWVuIHRoZSBoZWFwIHBhZ2UgYW5kIHRoZSBWTSBpbiBs YXp5X3NjYW5fcHJ1bmUoKSBub3cgaGFwcGVuCmFmdGVyIGhhdmluZyBzZXQgUERfQUxMX1ZJU0lC TEUuIFRoYXQgaXMgbm90IGEgZnVuY3Rpb25hbCBjaGFuZ2UgYmVjYXVzZQp0aGUgY29ycnVwdGlv biBjYXNlcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggY2FzZXMgd2hlcmUgd2Ugd291bGQK c2V0IFBEX0FMTF9WSVNJQkxFLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94 bG9nLmMgfCA2MyArKysrKysrKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvcHJ1bmVoZWFwLmMgICB8IDcyICsrKysrKysrKysrKysrKysrKysrKysrKy0tLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICB8IDI5ICstLS0tLS0tLS0tCiBzcmMvaW5j bHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvYWNjZXNz L2hlYXBhbV94bG9nLmggICAgICB8ICAyICsKIDUgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2VydGlv bnMoKyksIDQzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbV94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5j CmluZGV4IDczYWFhZWY5ZDhlLi40ZWExYTE4NmM5OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1feGxvZy5jCkBAIC05MCw2ICs5MCw3IEBAIGhlYXBfeGxvZ19wcnVuZV9mcmVlemUoWExv Z1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCXhsaHBfZnJlZXplX3BsYW4gKnBsYW5zOwogCQlPZmZz ZXROdW1iZXIgKmZyel9vZmZzZXRzOwogCQljaGFyCSAgICpkYXRhcHRyID0gWExvZ1JlY0dldEJs b2NrRGF0YShyZWNvcmQsIDAsICZkYXRhbGVuKTsKKwkJYm9vbAkJZG9fcHJ1bmU7CiAKIAkJaGVh cF94bG9nX2Rlc2VyaWFsaXplX3BydW5lX2FuZF9mcmVlemUoZGF0YXB0ciwgeGxyZWMuZmxhZ3Ms CiAJCQkJCQkJCQkJCSAgICZucGxhbnMsICZwbGFucywgJmZyel9vZmZzZXRzLApAQCAtOTcsMTEg Kzk4LDEzIEBAIGhlYXBfeGxvZ19wcnVuZV9mcmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAJCQkJCQkJCQkJCSAgICZuZGVhZCwgJm5vd2RlYWQsCiAJCQkJCQkJCQkJCSAgICZudW51c2Vk LCAmbm93dW51c2VkKTsKIAorCQlkb19wcnVuZSA9IG5yZWRpcmVjdGVkID4gMCB8fCBuZGVhZCA+ IDAgfHwgbnVudXNlZCA+IDA7CisKIAkJLyoKIAkJICogVXBkYXRlIGFsbCBsaW5lIHBvaW50ZXJz IHBlciB0aGUgcmVjb3JkLCBhbmQgcmVwYWlyIGZyYWdtZW50YXRpb24KIAkJICogaWYgbmVlZGVk LgogCQkgKi8KLQkJaWYgKG5yZWRpcmVjdGVkID4gMCB8fCBuZGVhZCA+IDAgfHwgbnVudXNlZCA+ IDApCisJCWlmIChkb19wcnVuZSkKIAkJCWhlYXBfcGFnZV9wcnVuZV9leGVjdXRlKGJ1ZmZlciwK IAkJCQkJCQkJCSh4bHJlYy5mbGFncyAmIFhMSFBfQ0xFQU5VUF9MT0NLKSA9PSAwLAogCQkJCQkJ CQkJcmVkaXJlY3RlZCwgbnJlZGlyZWN0ZWQsCkBAIC0xMzgsMTcgKzE0MSw1MiBAQCBoZWFwX3hs b2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkvKiBUaGVyZSBzaG91 bGQgYmUgbm8gbW9yZSBkYXRhICovCiAJCUFzc2VydCgoY2hhciAqKSBmcnpfb2Zmc2V0cyA9PSBk YXRhcHRyICsgZGF0YWxlbik7CiAKKwkJLyoKKwkJICogVGhlIGNyaXRpY2FsIGludGVncml0eSBy ZXF1aXJlbWVudCBoZXJlIGlzIHRoYXQgd2UgbXVzdCBuZXZlciBlbmQKKwkJICogdXAgd2l0aCBh IHNpdHVhdGlvbiB3aGVyZSB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IGlzIHNldCwgYW5kIHRoZQor CQkgKiBwYWdlLWxldmVsIFBEX0FMTF9WSVNJQkxFIGJpdCBpcyBjbGVhci4gIElmIHRoYXQgd2Vy ZSB0byBvY2N1ciwKKwkJICogdGhlbiBhIHN1YnNlcXVlbnQgcGFnZSBtb2RpZmljYXRpb24gd291 bGQgZmFpbCB0byBjbGVhciB0aGUKKwkJICogdmlzaWJpbGl0eSBtYXAgYml0LgorCQkgKi8KKwkJ aWYgKHhscmVjLmZsYWdzICYgWExIUF9TRVRfUERfQUxMX1ZJUykKKwkJCVBhZ2VTZXRBbGxWaXNp YmxlKHBhZ2UpOworCiAJCS8qCiAJCSAqIE5vdGU6IHdlIGRvbid0IHdvcnJ5IGFib3V0IHVwZGF0 aW5nIHRoZSBwYWdlJ3MgcHJ1bmFiaWxpdHkgaGludHMuCiAJCSAqIEF0IHdvcnN0IHRoaXMgd2ls bCBjYXVzZSBhbiBleHRyYSBwcnVuZSBjeWNsZSB0byBvY2N1ciBzb29uLgogCQkgKi8KLQotCQlQ YWdlU2V0TFNOKHBhZ2UsIGxzbik7CiAJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOworCisJCS8q CisJCSAqIFdlIGFsd2F5cyBlbWl0IGEgV0FMIHJlY29yZCB3aGVuIHNldHRpbmcgUERfQUxMX1ZJ U0lCTEUsIGJ1dCB3ZSBhcmUKKwkJICogY2FyZWZ1bCBub3QgdG8gZW1pdCBhIGZ1bGwgcGFnZSBp bWFnZSB1bmxlc3MKKwkJICogY2hlY2tzdW1zL3dhbF9sb2dfaGludHMgYXJlIGVuYWJsZWQuIFdl IG9ubHkgc2V0IHRoZSBoZWFwIHBhZ2UgTFNOCisJCSAqIGlmIGZ1bGwgcGFnZSBpbWFnZXMgd2Vy ZSBhbiBvcHRpb24gd2hlbiBlbWl0dGluZyBXQUwuIE90aGVyd2lzZSwKKwkJICogc3Vic2VxdWVu dCBtb2RpZmljYXRpb25zIG9mIHRoZSBwYWdlIG1heSBpbmNvcnJlY3RseSBza2lwIGVtaXR0aW5n CisJCSAqIGEgZnVsbCBwYWdlIGltYWdlLgorCQkgKi8KKwkJaWYgKGRvX3BydW5lIHx8IG5wbGFu cyA+IDAgfHwKKwkJCSh4bHJlYy5mbGFncyAmIFhMSFBfU0VUX1BEX0FMTF9WSVMgJiYgWExvZ0hp bnRCaXRJc05lZWRlZCgpKSkKKwkJCVBhZ2VTZXRMU04ocGFnZSwgbHNuKTsKIAl9CiAKIAkvKgot CSAqIElmIHdlIHJlbGVhc2VkIGFueSBzcGFjZSBvciBsaW5lIHBvaW50ZXJzLCB1cGRhdGUgdGhl IGZyZWUgc3BhY2UgbWFwLgorCSAqIElmIHdlIHJlbGVhc2VkIGFueSBzcGFjZSBvciBsaW5lIHBv aW50ZXJzIG9yIHNldCBQRF9BTExfVklTSUJMRSB1cGRhdGUKKwkgKiB0aGUgZnJlZXNwYWNlIG1h cC4KKwkgKgorCSAqIEV2ZW4gaWYgd2UgYXJlIGp1c3Qgc2V0dGluZyBQRF9BTExfVklTSUJMRSAo YW5kIHRodXMgbm90IGZyZWVpbmcgdXAgYW55CisJICogc3BhY2UpLCB3ZSdsbCBzdGlsbCB1cGRh dGUgdGhlIEZTTSBmb3IgdGhpcyBwYWdlLiBTaW5jZSB0aGUgRlNNIGlzIG5vdAorCSAqIFdBTC1s b2dnZWQgYW5kIG9ubHkgdXBkYXRlZCBoZXVyaXN0aWNhbGx5LCBpdCBlYXNpbHkgYmVjb21lcyBz dGFsZSBpbgorCSAqIHN0YW5kYnlzLiAgSWYgdGhlIHN0YW5kYnkgaXMgbGF0ZXIgcHJvbW90ZWQg YW5kIHJ1bnMgVkFDVVVNLCBpdCB3aWxsCisJICogc2tpcCB1cGRhdGluZyBpbmRpdmlkdWFsIGZy ZWUgc3BhY2UgZmlndXJlcyBmb3IgcGFnZXMgdGhhdCBiZWNhbWUKKwkgKiBhbGwtdmlzaWJsZSAo b3IgYWxsLWZyb3plbiwgZGVwZW5kaW5nIG9uIHRoZSB2YWN1dW0gbW9kZSwpIHdoaWNoIGlzCisJ ICogdHJvdWJsZXNvbWUgd2hlbiBGcmVlU3BhY2VNYXBWYWN1dW0gcHJvcGFnYXRlcyB0b28gb3B0 aW1pc3RpYyBmcmVlCisJICogc3BhY2UgdmFsdWVzIHRvIHVwcGVyIEZTTSBsYXllcnM7IGxhdGVy IGluc2VydGVycyB0cnkgdG8gdXNlIHN1Y2ggcGFnZXMKKwkgKiBvbmx5IHRvIGZpbmQgb3V0IHRo YXQgdGhleSBhcmUgdW51c2FibGUuICBUaGlzIGNhbiBjYXVzZSBsb25nIHN0YWxscworCSAqIHdo ZW4gdGhlcmUgYXJlIG1hbnkgc3VjaCBwYWdlcy4KKwkgKgorCSAqIEZvcmVzdGFsbCB0aG9zZSBw cm9ibGVtcyBieSB1cGRhdGluZyBGU00ncyBpZGVhIGFib3V0IGEgcGFnZSB0aGF0IGlzCisJICog YmVjb21pbmcgYWxsLXZpc2libGUgb3IgYWxsLWZyb3plbi4KIAkgKgogCSAqIERvIHRoaXMgcmVn YXJkbGVzcyBvZiBhIGZ1bGwtcGFnZSBpbWFnZSBiZWluZyBhcHBsaWVkLCBzaW5jZSB0aGUgRlNN CiAJICogZGF0YSBpcyBub3QgaW4gdGhlIHBhZ2UgYW55d2F5LgpAQCAtMTU3LDEwICsxOTUsMTYg QEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAl7CiAJ CWlmICh4bHJlYy5mbGFncyAmIChYTEhQX0hBU19SRURJUkVDVElPTlMgfAogCQkJCQkJICAgWExI UF9IQVNfREVBRF9JVEVNUyB8Ci0JCQkJCQkgICBYTEhQX0hBU19OT1dfVU5VU0VEX0lURU1TKSkK KwkJCQkJCSAgIFhMSFBfSEFTX05PV19VTlVTRURfSVRFTVMgfAorCQkJCQkJICAgWExIUF9TRVRf UERfQUxMX1ZJUykpCiAJCXsKIAkJCVNpemUJCWZyZWVzcGFjZSA9IFBhZ2VHZXRIZWFwRnJlZVNw YWNlKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSk7CiAKKwkJCS8qCisJCQkgKiBXZSB3YW50IHRvIGF2 b2lkIGhvbGRpbmcgYW4gZXhjbHVzaXZlIGxvY2sgb24gdGhlIGhlYXAgYnVmZmVyCisJCQkgKiB3 aGlsZSBkb2luZyBJTywgc28gd2UnbGwgcmVsZWFzZSB0aGUgbG9jayBvbiB0aGUgaGVhcCBidWZm ZXIKKwkJCSAqIGZpcnN0LgorCQkJICovCiAJCQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7 CiAKIAkJCVhMb2dSZWNvcmRQYWdlV2l0aEZyZWVTcGFjZShybG9jYXRvciwgYmxrbm8sIGZyZWVz cGFjZSk7CkBAIC0xNzMsMTAgKzIxNywxMSBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dS ZWFkZXJTdGF0ZSAqcmVjb3JkKQogLyoKICAqIFJlcGxheSBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVj b3Jkcy4KICAqCi0gKiBUaGUgY3JpdGljYWwgaW50ZWdyaXR5IHJlcXVpcmVtZW50IGhlcmUgaXMg dGhhdCB3ZSBtdXN0IG5ldmVyIGVuZCB1cCB3aXRoCi0gKiBhIHNpdHVhdGlvbiB3aGVyZSB0aGUg dmlzaWJpbGl0eSBtYXAgYml0IGlzIHNldCwgYW5kIHRoZSBwYWdlLWxldmVsCi0gKiBQRF9BTExf VklTSUJMRSBiaXQgaXMgY2xlYXIuICBJZiB0aGF0IHdlcmUgdG8gb2NjdXIsIHRoZW4gYSBzdWJz ZXF1ZW50Ci0gKiBwYWdlIG1vZGlmaWNhdGlvbiB3b3VsZCBmYWlsIHRvIGNsZWFyIHRoZSB2aXNp YmlsaXR5IG1hcCBiaXQuCisgKiBJdCBpcyBpbXBlcmF0aXZlIHRoYXQgdGhlIHByZXZpb3VzbHkg ZW1pdHRlZCByZWNvcmQgc2V0IFBEX0FMTF9WSVNJQkxFIG9uCisgKiB0aGUgaGVhcCBwYWdlLiBX ZSBtdXN0IG5ldmVyIGVuZCB1cCB3aXRoIGEgc2l0dWF0aW9uIHdoZXJlIHRoZSB2aXNpYmlsaXR5 CisgKiBtYXAgYml0IGlzIHNldCwgYW5kIHRoZSBwYWdlLWxldmVsIFBEX0FMTF9WSVNJQkxFIGJp dCBpcyBjbGVhci4gIElmIHRoYXQKKyAqIHdlcmUgdG8gb2NjdXIsIHRoZW4gYSBzdWJzZXF1ZW50 IHBhZ2UgbW9kaWZpY2F0aW9uIHdvdWxkIGZhaWwgdG8gY2xlYXIgdGhlCisgKiB2aXNpYmlsaXR5 IG1hcCBiaXQuCiAgKi8KIHN0YXRpYyB2b2lkCiBoZWFwX3hsb2dfdmlzaWJsZShYTG9nUmVhZGVy U3RhdGUgKnJlY29yZCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5l aGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggNWU1MzZi ZDBkNGQuLjliMjUxMzE1NDNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAt NDk1LDYgKzQ5NSw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0 aW9uLCBCdWZmZXIgYnVmZmVyLAogCWJvb2wJCWRvX2ZyZWV6ZTsKIAlib29sCQlkb19wcnVuZTsK IAlib29sCQlkb19oaW50X3BydW5lOworCWJvb2wJCWRvX3NldF9wZF92aXM7CiAJYm9vbAkJZGlk X3R1cGxlX2hpbnRfZnBpOwogCWludDY0CQlmcGlfYmVmb3JlID0gcGdXYWxVc2FnZS53YWxfZnBp OwogCVRyYW5zYWN0aW9uSWQgZnJ6X2NvbmZsaWN0X2hvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rp b25JZDsKQEAgLTgyNCw2ICs4MjUsMjIgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVs YXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCXByc3RhdGUuYWxsX3Zpc2libGUgPSBw cnN0YXRlLmFsbF9mcm96ZW4gPSBmYWxzZTsKIAogCUFzc2VydCghcHJzdGF0ZS5hbGxfZnJvemVu IHx8IHByc3RhdGUuYWxsX3Zpc2libGUpOworCisJLyoKKwkgKiBUaG91Z2ggY2FsbGVycyBzaG91 bGQgc2V0IHRoZSBWTSBpZiBQRF9BTExfVklTSUJMRSBpcyBzZXQgaGVyZSwgaXQgaXMKKwkgKiBh bGxvd2VkIGZvciB0aGUgcGFnZS1sZXZlbCBiaXQgdG8gYmUgc2V0IGFuZCB0aGUgVk0gdG8gYmUg Y2xlYXIuCisJICogU2V0dGluZyBQRF9BTExfVklTSUJMRSB3aGVuIHdlIGFyZSBtYWtpbmcgdGhl IGNoYW5nZXMgdG8gdGhlIHBhZ2UgdGhhdAorCSAqIHJlbmRlciBpdCBhbGwtdmlzaWJsZSBhbGxv d3MgdXMgdG8gb21pdCB0aGUgaGVhcCBwYWdlIGZyb20gdGhlIFdBTAorCSAqIGNoYWluIHdoZW4g bGF0ZXIgdXBkYXRpbmcgdGhlIFZNIC0tIGV2ZW4gd2hlbiBjaGVja3N1bXMvd2FsX2xvZ19oaW50 cworCSAqIGFyZSBlbmFibGVkLgorCSAqLworCWRvX3NldF9wZF92aXMgPSBmYWxzZTsKKwlpZiAo KG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZJUykgIT0gMCkKKwl7CisJCWlmIChw cnN0YXRlLmFsbF92aXNpYmxlICYmICFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKQorCQkJZG9fc2V0 X3BkX3ZpcyA9IHRydWU7CisJfQorCiAJLyogQW55IGVycm9yIHdoaWxlIGFwcGx5aW5nIHRoZSBj aGFuZ2VzIGlzIGNyaXRpY2FsICovCiAJU1RBUlRfQ1JJVF9TRUNUSU9OKCk7CiAKQEAgLTg0NCwx NCArODYxLDE3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9u LCBCdWZmZXIgYnVmZmVyLAogCiAJCS8qCiAJCSAqIElmIHRoYXQncyBhbGwgd2UgaGFkIHRvIGRv IHRvIHRoZSBwYWdlLCB0aGlzIGlzIGEgbm9uLVdBTC1sb2dnZWQKLQkJICogaGludC4gIElmIHdl IGFyZSBnb2luZyB0byBmcmVlemUgb3IgcHJ1bmUgdGhlIHBhZ2UsIHdlIHdpbGwgbWFyawotCQkg KiB0aGUgYnVmZmVyIGRpcnR5IGJlbG93LgorCQkgKiBoaW50LiAgSWYgd2UgYXJlIGdvaW5nIHRv IGZyZWV6ZSBvciBwcnVuZSB0aGUgcGFnZSBvciBzZXQKKwkJICogUERfQUxMX1ZJU0lCTEUsIHdl IHdpbGwgbWFyayB0aGUgYnVmZmVyIGRpcnR5IGJlbG93LgorCQkgKgorCQkgKiBTZXR0aW5nIFBE X0FMTF9WSVNJQkxFIGlzIGZ1bGx5IFdBTC1sb2dnZWQgYmVjYXVzZSBpdCBpcyBmb3JiaWRkZW4K KwkJICogZm9yIHRoZSBWTSB0byBiZSBzZXQgYW5kIFBEX0FMTF9WSVNJQkxFIHRvIGJlIGNsZWFy LgogCQkgKi8KLQkJaWYgKCFkb19mcmVlemUgJiYgIWRvX3BydW5lKQorCQlpZiAoIWRvX2ZyZWV6 ZSAmJiAhZG9fcHJ1bmUgJiYgIWRvX3NldF9wZF92aXMpCiAJCQlNYXJrQnVmZmVyRGlydHlIaW50 KGJ1ZmZlciwgdHJ1ZSk7CiAJfQogCi0JaWYgKGRvX3BydW5lIHx8IGRvX2ZyZWV6ZSkKKwlpZiAo ZG9fcHJ1bmUgfHwgZG9fZnJlZXplIHx8IGRvX3NldF9wZF92aXMpCiAJewogCQkvKiBBcHBseSB0 aGUgcGxhbm5lZCBpdGVtIGNoYW5nZXMgYW5kIHJlcGFpciBwYWdlIGZyYWdtZW50YXRpb24uICov CiAJCWlmIChkb19wcnVuZSkKQEAgLTg2NSw2ICs4ODUsOSBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5k X2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJaWYgKGRvX2ZyZWV6 ZSkKIAkJCWhlYXBfZnJlZXplX3ByZXBhcmVkX3R1cGxlcyhidWZmZXIsIHByc3RhdGUuZnJvemVu LCBwcnN0YXRlLm5mcm96ZW4pOwogCisJCWlmIChkb19zZXRfcGRfdmlzKQorCQkJUGFnZVNldEFs bFZpc2libGUocGFnZSk7CisKIAkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CiAKIAkJLyoKQEAg LTg5MSw3ICs5MTQsOSBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxh dGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAogCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShyZWxh dGlvbiwgYnVmZmVyLAogCQkJCQkJCQkJICBjb25mbGljdF94aWQsCi0JCQkJCQkJCQkgIHRydWUs IHJlYXNvbiwKKwkJCQkJCQkJCSAgdHJ1ZSwKKwkJCQkJCQkJCSAgZG9fc2V0X3BkX3ZpcywKKwkJ CQkJCQkJCSAgcmVhc29uLAogCQkJCQkJCQkJICBwcnN0YXRlLmZyb3plbiwgcHJzdGF0ZS5uZnJv emVuLAogCQkJCQkJCQkJICBwcnN0YXRlLnJlZGlyZWN0ZWQsIHByc3RhdGUubnJlZGlyZWN0ZWQs CiAJCQkJCQkJCQkgIHByc3RhdGUubm93ZGVhZCwgcHJzdGF0ZS5uZGVhZCwKQEAgLTIwNzgsNiAr MjEwMywxMCBAQCBoZWFwX2xvZ19mcmVlemVfcGxhbihIZWFwVHVwbGVGcmVlemUgKnR1cGxlcywg aW50IG50dXBsZXMsCiAgKiByZXBsYXlpbmcgJ3VudXNlZCcgaXRlbXMgZGVwZW5kcyBvbiB3aGV0 aGVyIHRoZXkgd2VyZSBhbGwgcHJldmlvdXNseSBtYXJrZWQKICAqIGFzIGRlYWQuCiAgKgorICog c2V0X3BkX2FsbF92aXMgaW5kaWNhdGVzIHRoYXQgd2Ugc2V0IFBEX0FMTF9WSVNJQkxFIGFuZCB0 aHVzIHNob3VsZCB1cGRhdGUKKyAqIHRoZSBwYWdlIExTTiB3aGVuIGNoZWNrc3Vtcy93YWxfbG9n X2hpbnRzIGFyZSBlbmFibGVkIGV2ZW4gaWYgd2UgZGlkIG5vdAorICogcHJ1bmUgb3IgZnJlZXpl IHR1cGxlcyBvbiB0aGUgcGFnZS4KKyAqCiAgKiBOb3RlOiBUaGlzIGZ1bmN0aW9uIHNjcmliYmxl cyBvbiB0aGUgJ2Zyb3plbicgYXJyYXkuCiAgKgogICogTm90ZTogVGhpcyBpcyBjYWxsZWQgaW4g YSBjcml0aWNhbCBzZWN0aW9uLCBzbyBjYXJlZnVsIHdoYXQgeW91IGRvIGhlcmUuCkBAIC0yMDg2 LDYgKzIxMTUsNyBAQCB2b2lkCiBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJl bGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJICBUcmFuc2FjdGlvbklkIGNvbmZsaWN0X3hp ZCwKIAkJCQkJCSAgYm9vbCBjbGVhbnVwX2xvY2ssCisJCQkJCQkgIGJvb2wgc2V0X3BkX2FsbF92 aXMsCiAJCQkJCQkgIFBydW5lUmVhc29uIHJlYXNvbiwKIAkJCQkJCSAgSGVhcFR1cGxlRnJlZXpl ICpmcm96ZW4sIGludCBuZnJvemVuLAogCQkJCQkJICBPZmZzZXROdW1iZXIgKnJlZGlyZWN0ZWQs IGludCBucmVkaXJlY3RlZCwKQEAgLTIwOTUsNiArMjEyNSw3IEBAIGxvZ19oZWFwX3BydW5lX2Fu ZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJeGxfaGVhcF9wcnVu ZSB4bHJlYzsKIAlYTG9nUmVjUHRyCXJlY3B0cjsKIAl1aW50OAkJaW5mbzsKKwl1aW50OAkJcmVn YnVmX2ZsYWdzOwogCiAJLyogVGhlIGZvbGxvd2luZyBsb2NhbCB2YXJpYWJsZXMgaG9sZCBkYXRh IHJlZ2lzdGVyZWQgaW4gdGhlIFdBTCByZWNvcmQ6ICovCiAJeGxocF9mcmVlemVfcGxhbiBwbGFu c1tNYXhIZWFwVHVwbGVzUGVyUGFnZV07CkBAIC0yMTAzLDggKzIxMzQsMjEgQEAgbG9nX2hlYXBf cHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAl4bGhw X3BydW5lX2l0ZW1zIGRlYWRfaXRlbXM7CiAJeGxocF9wcnVuZV9pdGVtcyB1bnVzZWRfaXRlbXM7 CiAJT2Zmc2V0TnVtYmVyIGZyel9vZmZzZXRzW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKKwlib29s CQlkb19wcnVuZSA9IG5yZWRpcmVjdGVkID4gMCB8fCBuZGVhZCA+IDAgfHwgbnVudXNlZCA+IDA7 CiAKIAl4bHJlYy5mbGFncyA9IDA7CisJcmVnYnVmX2ZsYWdzID0gUkVHQlVGX1NUQU5EQVJEOwor CisJLyoKKwkgKiBXZSBjYW4gYXZvaWQgYW4gRlBJIGlmIHRoZSBvbmx5IG1vZGlmaWNhdGlvbiB3 ZSBhcmUgbWFraW5nIHRvIHRoZSBoZWFwCisJICogcGFnZSBpcyB0byBzZXQgUERfQUxMX1ZJU0lC TEUgYW5kIGNoZWNrc3Vtcy93YWxfbG9nX2hpbnRzIGFyZSBkaXNhYmxlZC4KKwkgKiBOb3RlIHRo YXQgaWYgd2UgZXhwbGljaXRseSBza2lwIGFuIEZQSSwgd2UgbXVzdCBub3Qgc2V0IHRoZSBoZWFw IHBhZ2UKKwkgKiBMU04gbGF0ZXIuCisJICovCisJaWYgKCFkb19wcnVuZSAmJgorCQluZnJvemVu ID09IDAgJiYKKwkJKCFzZXRfcGRfYWxsX3ZpcyB8fCAhWExvZ0hpbnRCaXRJc05lZWRlZCgpKSkK KwkJcmVnYnVmX2ZsYWdzIHw9IFJFR0JVRl9OT19JTUFHRTsKIAogCS8qCiAJICogUHJlcGFyZSBk YXRhIGZvciB0aGUgYnVmZmVyLiAgVGhlIGFycmF5cyBhcmUgbm90IGFjdHVhbGx5IGluIHRoZQpA QCAtMjExMiw3ICsyMTU2LDcgQEAgbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiBy ZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkgKiBwYWdlIGltYWdlLCB0aGUgYXJyYXlzIGNhbiBi ZSBvbWl0dGVkLgogCSAqLwogCVhMb2dCZWdpbkluc2VydCgpOwotCVhMb2dSZWdpc3RlckJ1ZmZl cigwLCBidWZmZXIsIFJFR0JVRl9TVEFOREFSRCk7CisJWExvZ1JlZ2lzdGVyQnVmZmVyKDAsIGJ1 ZmZlciwgcmVnYnVmX2ZsYWdzKTsKIAlpZiAobmZyb3plbiA+IDApCiAJewogCQlpbnQJCQlucGxh bnM7CkBAIC0yMTY5LDYgKzIyMTMsOCBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0 aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIFByZXBhcmUgdGhlIG1haW4geGxfaGVh cF9wcnVuZSByZWNvcmQuICBXZSBhbHJlYWR5IHNldCB0aGUgWExIUF9IQVNfKgogCSAqIGZsYWcg YWJvdmUuCiAJICovCisJaWYgKHNldF9wZF9hbGxfdmlzKQorCQl4bHJlYy5mbGFncyB8PSBYTEhQ X1NFVF9QRF9BTExfVklTOwogCWlmIChSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29k aW5nKHJlbGF0aW9uKSkKIAkJeGxyZWMuZmxhZ3MgfD0gWExIUF9JU19DQVRBTE9HX1JFTDsKIAlp ZiAoVHJhbnNhY3Rpb25JZElzVmFsaWQoY29uZmxpY3RfeGlkKSkKQEAgLTIyMDEsNSArMjI0Nywx NyBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIg YnVmZmVyLAogCX0KIAlyZWNwdHIgPSBYTG9nSW5zZXJ0KFJNX0hFQVAyX0lELCBpbmZvKTsKIAot CVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZShidWZmZXIpLCByZWNwdHIpOworCS8qCisJICogV2Ug bXVzdCBidW1wIHRoZSBwYWdlIExTTiBpZiBwcnVuaW5nIG9yIGZyZWV6aW5nLiBJZiB3ZSBhcmUg b25seQorCSAqIHVwZGF0aW5nIFBEX0FMTF9WSVNJQkxFLCB0aG91Z2gsIHdlIGNhbiBza2lwIGRv aW5nIHRoaXMgdW5sZXNzCisJICogd2FsX2xvZ19oaW50cy9jaGVja3N1bXMgYXJlIGVuYWJsZWQu IFRvcm4gcGFnZXMgYXJlIHBvc3NpYmxlIGlmIHdlCisJICogdXBkYXRlIFBEX0FMTF9WSVNJQkxF IHdpdGhvdXQgYnVtcGluZyB0aGUgTFNOLCBidXQgdGhpcyBpcyBkZWVtZWQgb2theQorCSAqIGZv ciBwYWdlIGhpbnQgdXBkYXRlcy4KKwkgKi8KKwlpZiAoZG9fcHJ1bmUgfHwgbmZyb3plbiA+IDAg fHwKKwkJKHNldF9wZF9hbGxfdmlzICYmIFhMb2dIaW50Qml0SXNOZWVkZWQoKSkpCisJeworCQlB c3NlcnQoQnVmZmVySXNEaXJ0eShidWZmZXIpKTsKKwkJUGFnZVNldExTTihCdWZmZXJHZXRQYWdl KGJ1ZmZlciksIHJlY3B0cik7CisJfQogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j CmluZGV4IDUwY2M4OTgwODdmLi4zMDhhYmZmMTZjYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYwpAQCAtMTk3MCw3ICsxOTcwLDcgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3Rh dGUgKnZhY3JlbCwKIAkgKiB0dXBsZXMuIFBydW5pbmcgd2lsbCBoYXZlIGRldGVybWluZWQgd2hl dGhlciBvciBub3QgdGhlIHBhZ2UgaXMKIAkgKiBhbGwtdmlzaWJsZS4KIAkgKi8KLQlwcnVuZV9v cHRpb25zID0gSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRTsKKwlwcnVuZV9vcHRpb25zID0gSEVBUF9Q QUdFX1BSVU5FX0ZSRUVaRSB8IEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVklTOwogCWlmICh2YWNy ZWwtPm5pbmRleGVzID09IDApCiAJCXBydW5lX29wdGlvbnMgfD0gSEVBUF9QQUdFX1BSVU5FX01B UktfVU5VU0VEX05PVzsKIApAQCAtMjA3MywyMSArMjA3Myw2IEBAIGxhenlfc2Nhbl9wcnVuZShM VlJlbFN0YXRlICp2YWNyZWwsCiAJCQlmbGFncyB8PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU47 CiAJCX0KIAotCQkvKgotCQkgKiBJdCBzaG91bGQgbmV2ZXIgYmUgdGhlIGNhc2UgdGhhdCB0aGUg dmlzaWJpbGl0eSBtYXAgcGFnZSBpcyBzZXQKLQkJICogd2hpbGUgdGhlIHBhZ2UtbGV2ZWwgYml0 IGlzIGNsZWFyLCBidXQgdGhlIHJldmVyc2UgaXMgYWxsb3dlZCAoaWYKLQkJICogY2hlY2tzdW1z IGFyZSBub3QgZW5hYmxlZCkuICBSZWdhcmRsZXNzLCBzZXQgYm90aCBiaXRzIHNvIHRoYXQgd2UK LQkJICogZ2V0IGJhY2sgaW4gc3luYy4KLQkJICoKLQkJICogTkI6IElmIHRoZSBoZWFwIHBhZ2Ug aXMgYWxsLXZpc2libGUgYnV0IHRoZSBWTSBiaXQgaXMgbm90IHNldCwgd2UKLQkJICogZG9uJ3Qg bmVlZCB0byBkaXJ0eSB0aGUgaGVhcCBwYWdlLiAgSG93ZXZlciwgaWYgY2hlY2tzdW1zIGFyZQot CQkgKiBlbmFibGVkLCB3ZSBkbyBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBoZWFwIHBhZ2Ug aXMgZGlydGllZAotCQkgKiBiZWZvcmUgcGFzc2luZyBpdCB0byB2aXNpYmlsaXR5bWFwX3NldCgp LCBiZWNhdXNlIGl0IG1heSBiZSBsb2dnZWQuCi0JCSAqIEdpdmVuIHRoYXQgdGhpcyBzaXR1YXRp b24gc2hvdWxkIG9ubHkgaGFwcGVuIGluIHJhcmUgY2FzZXMgYWZ0ZXIgYQotCQkgKiBjcmFzaCwg aXQgaXMgbm90IHdvcnRoIG9wdGltaXppbmcuCi0JCSAqLwotCQlQYWdlU2V0QWxsVmlzaWJsZShw YWdlKTsKLQkJTWFya0J1ZmZlckRpcnR5KGJ1Zik7CiAJCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5 bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sIGJ1ZiwKIAkJCQkJCQkJCSAgIEludmFsaWRYTG9n UmVjUHRyLAogCQkJCQkJCQkJICAgdm1idWZmZXIsIHByZXN1bHQudm1fY29uZmxpY3RfaG9yaXpv biwKQEAgLTIxNjgsMTcgKzIxNTMsNiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFj cmVsLAogCXsKIAkJdWludDgJCW9sZF92bWJpdHM7CiAKLQkJLyoKLQkJICogQXZvaWQgcmVseWlu ZyBvbiBhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gYXMgYSBwcm94eSBmb3IgdGhlCi0JCSAq IHBhZ2UtbGV2ZWwgUERfQUxMX1ZJU0lCTEUgYml0IGJlaW5nIHNldCwgc2luY2UgaXQgbWlnaHQg aGF2ZSBiZWNvbWUKLQkJICogc3RhbGUgLS0gZXZlbiB3aGVuIGFsbF92aXNpYmxlIGlzIHNldAot CQkgKi8KLQkJaWYgKCFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKQotCQl7Ci0JCQlQYWdlU2V0QWxs VmlzaWJsZShwYWdlKTsKLQkJCU1hcmtCdWZmZXJEaXJ0eShidWYpOwotCQl9Ci0KIAkJLyoKIAkJ ICogU2V0IHRoZSBwYWdlIGFsbC1mcm96ZW4gKGFuZCBhbGwtdmlzaWJsZSkgaW4gdGhlIFZNLgog CQkgKgpAQCAtMjg5MSw2ICsyODY1LDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3Rh dGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJCWxvZ19oZWFw X3BydW5lX2FuZF9mcmVlemUodmFjcmVsLT5yZWwsIGJ1ZmZlciwKIAkJCQkJCQkJICBJbnZhbGlk VHJhbnNhY3Rpb25JZCwKIAkJCQkJCQkJICBmYWxzZSwJLyogbm8gY2xlYW51cCBsb2NrIHJlcXVp cmVkICovCisJCQkJCQkJCSAgZmFsc2UsCiAJCQkJCQkJCSAgUFJVTkVfVkFDVVVNX0NMRUFOVVAs CiAJCQkJCQkJCSAgTlVMTCwgMCwJLyogZnJvemVuICovCiAJCQkJCQkJCSAgTlVMTCwgMCwJLyog cmVkaXJlY3RlZCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIv c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IDY2NWUwYzc5YmFmLi4zNGZlNTYwMzUx MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtNDIsNiArNDIsNyBAQAogLyogIm9wdGlvbnMiIGZsYWcg Yml0cyBmb3IgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUgKi8KICNkZWZpbmUgSEVBUF9QQUdF X1BSVU5FX01BUktfVU5VU0VEX05PVwkJKDEgPDwgMCkKICNkZWZpbmUgSEVBUF9QQUdFX1BSVU5F X0ZSRUVaRQkJCQkoMSA8PCAxKQorI2RlZmluZSBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZJUwkJ CSgxIDw8IDIpCiAKIHR5cGVkZWYgc3RydWN0IEJ1bGtJbnNlcnRTdGF0ZURhdGEgKkJ1bGtJbnNl cnRTdGF0ZTsKIHN0cnVjdCBUdXBsZVRhYmxlU2xvdDsKQEAgLTM4NCw2ICszODUsNyBAQCBleHRl cm4gdm9pZCBoZWFwX2dldF9yb290X3R1cGxlcyhQYWdlIHBhZ2UsIE9mZnNldE51bWJlciAqcm9v dF9vZmZzZXRzKTsKIGV4dGVybiB2b2lkIGxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUoUmVsYXRp b24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQkJCQkJCQkgIFRyYW5zYWN0aW9uSWQgY29u ZmxpY3RfeGlkLAogCQkJCQkJCQkJICBib29sIGNsZWFudXBfbG9jaywKKwkJCQkJCQkJCSAgYm9v bCBzZXRfcGRfYWxsX3ZpcywKIAkJCQkJCQkJCSAgUHJ1bmVSZWFzb24gcmVhc29uLAogCQkJCQkJ CQkJICBIZWFwVHVwbGVGcmVlemUgKmZyb3plbiwgaW50IG5mcm96ZW4sCiAJCQkJCQkJCQkgIE9m ZnNldE51bWJlciAqcmVkaXJlY3RlZCwgaW50IG5yZWRpcmVjdGVkLApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFt X3hsb2cuaAppbmRleCBkNGMwNjI1YjYzMi4uN2QzZmI3NWRkYTcgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFw YW1feGxvZy5oCkBAIC0yOTQsNiArMjk0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9wcnVu ZQogCiAjZGVmaW5lIFNpemVPZkhlYXBQcnVuZSAob2Zmc2V0b2YoeGxfaGVhcF9wcnVuZSwgZmxh Z3MpICsgc2l6ZW9mKHVpbnQ4KSkKIAorI2RlZmluZQkJWExIUF9TRVRfUERfQUxMX1ZJUwkJCSgx IDw8IDApCisKIC8qIHRvIGhhbmRsZSByZWNvdmVyeSBjb25mbGljdCBkdXJpbmcgbG9naWNhbCBk ZWNvZGluZyBvbiBzdGFuZGJ5ICovCiAjZGVmaW5lCQlYTEhQX0lTX0NBVEFMT0dfUkVMCQkJKDEg PDwgMSkKIAotLSAKMi40My4wCgo= --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0010-Log-setting-empty-pages-PD_ALL_VISIBLE-with-XLOG.patch" Content-Disposition: attachment; filename="v15-0010-Log-setting-empty-pages-PD_ALL_VISIBLE-with-XLOG.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lb9w9 RnJvbSAxMTJkZjNkZTY2M2IzY2VlMmE0ZTFiNmMyNjdiYzg4MGEyZDM5YzZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IFNlcCAyMDI1IDE4OjExOjQ5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMTAvMjNdIExvZyBzZXR0aW5nIGVtcHR5IHBhZ2VzIFBEX0FMTF9WSVNJQkxFIHdp dGgKIFhMT0dfSEVBUDJfVkFDVVVNX1NDQU4KClRob3VnaCBub3QgYSBiaWcgd2luIGZvciB0aGlz IHBhcnRpY3VsYXIgY2FzZSwgaWYgd2UgdXNlIHRoZQpYTE9HX0hFQVAyX1ZBQ1VVTV9TQ0FOIHJl Y29yZCB0byBsb2cgc2V0dGluZyBQRF9BTExfVklTSUJMRSBvbiB0aGUgaGVhcApwYWdlIHdlIGNh biBvbWl0IHRoZSBoZWFwIHBhZ2UgZnJvbSB0aGUgV0FMIGNoYWluIHdoZW4gc2V0dGluZyB0aGUK dmlzaWJpbGl0eSBtYXAuIEEgZm9sbG93LW9uIGNvbW1pdCB3aWxsIGFjdHVhbGx5IHJlbW92ZSB0 aGUgaGVhcCBwYWdlCmZyb20gdGhlIFZNIHNldCBXQUwgY2hhaW4uCi0tLQogc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwgNDMgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA5YmZjZDY3YTYxYi4uYzAxNmY4Zjdj MjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTE4NzksMjMgKzE4Nzks MzggQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBi dWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCQl7CiAJCQlTVEFSVF9DUklUX1NFQ1RJT04oKTsKIAot CQkJLyogbWFyayBidWZmZXIgZGlydHkgYmVmb3JlIHdyaXRpbmcgYSBXQUwgcmVjb3JkICovCisJ CQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKIAkJCU1hcmtCdWZmZXJEaXJ0eShidWYpOwogCi0J CQkvKgotCQkJICogSXQncyBwb3NzaWJsZSB0aGF0IGFub3RoZXIgYmFja2VuZCBoYXMgZXh0ZW5k ZWQgdGhlIGhlYXAsCi0JCQkgKiBpbml0aWFsaXplZCB0aGUgcGFnZSwgYW5kIHRoZW4gZmFpbGVk IHRvIFdBTC1sb2cgdGhlIHBhZ2UgZHVlCi0JCQkgKiB0byBhbiBFUlJPUi4gIFNpbmNlIGhlYXAg ZXh0ZW5zaW9uIGlzIG5vdCBXQUwtbG9nZ2VkLCByZWNvdmVyeQotCQkJICogbWlnaHQgdHJ5IHRv IHJlcGxheSBvdXIgcmVjb3JkIHNldHRpbmcgdGhlIHBhZ2UgYWxsLXZpc2libGUgYW5kCi0JCQkg KiBmaW5kIHRoYXQgdGhlIHBhZ2UgaXNuJ3QgaW5pdGlhbGl6ZWQsIHdoaWNoIHdpbGwgY2F1c2Ug YSBQQU5JQy4KLQkJCSAqIFRvIHByZXZlbnQgdGhhdCwgY2hlY2sgd2hldGhlciB0aGUgcGFnZSBo YXMgYmVlbiBwcmV2aW91c2x5Ci0JCQkgKiBXQUwtbG9nZ2VkLCBhbmQgaWYgbm90LCBkbyB0aGF0 IG5vdy4KLQkJCSAqLwotCQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwodmFjcmVsLT5yZWwpICYmCi0J CQkJUGFnZUdldExTTihwYWdlKSA9PSBJbnZhbGlkWExvZ1JlY1B0cikKLQkJCQlsb2dfbmV3cGFn ZV9idWZmZXIoYnVmLCB0cnVlKTsKKwkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHZhY3JlbC0+cmVs KSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIEl0J3MgcG9zc2libGUgdGhhdCBhbm90aGVyIGJhY2tl bmQgaGFzIGV4dGVuZGVkIHRoZSBoZWFwLAorCQkJCSAqIGluaXRpYWxpemVkIHRoZSBwYWdlLCBh bmQgdGhlbiBmYWlsZWQgdG8gV0FMLWxvZyB0aGUgcGFnZQorCQkJCSAqIGR1ZSB0byBhbiBFUlJP Ui4gIFNpbmNlIGhlYXAgZXh0ZW5zaW9uIGlzIG5vdCBXQUwtbG9nZ2VkLAorCQkJCSAqIHJlY292 ZXJ5IG1pZ2h0IHRyeSB0byByZXBsYXkgb3VyIHJlY29yZCBzZXR0aW5nIHRoZSBwYWdlCisJCQkJ ICogYWxsLXZpc2libGUgYW5kIGZpbmQgdGhhdCB0aGUgcGFnZSBpc24ndCBpbml0aWFsaXplZCwg d2hpY2gKKwkJCQkgKiB3aWxsIGNhdXNlIGEgUEFOSUMuIFRvIHByZXZlbnQgdGhhdCwgY2hlY2sg d2hldGhlciB0aGUgcGFnZQorCQkJCSAqIGhhcyBiZWVuIHByZXZpb3VzbHkgV0FMLWxvZ2dlZCwg YW5kIGlmIG5vdCwgZG8gdGhhdCBub3cuCisJCQkJICoKKwkJCQkgKiBPdGhlcndpc2UsIGp1c3Qg ZW1pdCBXQUwgZm9yIHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgb24gdGhlCisJCQkJICogaGVhcCBw YWdlLiBEb2luZyB0aGlzIGluIGEgc2VwYXJhdGUgcmVjb3JkIGZyb20gc2V0dGluZyB0aGUKKwkJ CQkgKiBWTSBhbGxvd3MgdXMgdG8gb21pdCB0aGUgaGVhcCBwYWdlIGZyb20gdGhlIFZNIFdBTCBj aGFpbi4KKwkJCQkgKi8KKwkJCQlpZiAoUGFnZUdldExTTihwYWdlKSA9PSBJbnZhbGlkWExvZ1Jl Y1B0cikKKwkJCQkJbG9nX25ld3BhZ2VfYnVmZmVyKGJ1ZiwgdHJ1ZSk7CisJCQkJZWxzZQorCQkJ CQlsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKHZhY3JlbC0+cmVsLCBidWYsCisJCQkJCQkJCQkJ CSAgSW52YWxpZFRyYW5zYWN0aW9uSWQsIC8qIGNvbmZsaWN0IHhpZCAqLworCQkJCQkJCQkJCQkg IGZhbHNlLAkvKiBjbGVhbnVwIGxvY2sgKi8KKwkJCQkJCQkJCQkJICB0cnVlLCAvKiBzZXRfcGRf YWxsX3ZpcyAqLworCQkJCQkJCQkJCQkgIFBSVU5FX1ZBQ1VVTV9TQ0FOLAkvKiByZWFzb24gKi8K KwkJCQkJCQkJCQkJICBOVUxMLCAwLAorCQkJCQkJCQkJCQkgIE5VTEwsIDAsCisJCQkJCQkJCQkJ CSAgTlVMTCwgMCwKKwkJCQkJCQkJCQkJICBOVUxMLCAwKTsKKwkJCX0KIAotCQkJUGFnZVNldEFs bFZpc2libGUocGFnZSk7CiAJCQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8s IGJ1ZiwKIAkJCQkJCQkgIEludmFsaWRYTG9nUmVjUHRyLAogCQkJCQkJCSAgdm1idWZmZXIsIElu dmFsaWRUcmFuc2FjdGlvbklkLAotLSAKMi40My4wCgo= --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0011-Remove-heap-buffer-from-XLOG_HEAP2_VISIBLE-WAL-c.patch" Content-Disposition: attachment; filename="v15-0011-Remove-heap-buffer-from-XLOG_HEAP2_VISIBLE-WAL-c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lb9y10 RnJvbSBmMTRkYjc0NGVjYjc5YjEyMWQ4ZDBkMzQ4OTM4NGE5M2JkNmFiZjA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE2IFNlcCAyMDI1IDExOjA1OjMwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMTEvMjNdIFJlbW92ZSBoZWFwIGJ1ZmZlciBmcm9tIFhMT0dfSEVBUDJfVklTSUJM RSBXQUwKIGNoYWluCgpOb3cgdGhhdCBhbGwgdXNlcnMgb2YgdmlzaWJpbGl0eW1hcF9zZXQoKSBp bmNsdWRlIHNldHRpbmcgUERfQUxMX1ZJU0lCTEUKaW4gdGhlIFdBTCByZWNvcmQgY2FwdHVyaW5n IG90aGVyIGNoYW5nZXMgdG8gdGhlIGhlYXAgcGFnZSwgd2Ugbm8gbG9uZ2VyCm5lZWQgdG8gaW5j bHVkZSB0aGUgaGVhcCBidWZmZXIgaW4gdGhlIFdBTCBjaGFpbiBmb3Igc2V0dGluZyB0aGUgVk0u Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgIHwgMTYgKy0tLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jICAgfCA3NiArKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAg fCAgNiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIHwgMzEgKy0t LS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmggICAgICAgIHwgIDMgKy0K IHNyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmggICAgICB8ICAyICstCiA2IGZpbGVz IGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDExOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbS5jCmluZGV4IDdmMzU0Y2FlYzMxLi5kNGQ4M2E2ZjlmZSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtLmMKQEAgLTg4MDYsMjEgKzg4MDYsMTQgQEAgYm90dG9tdXBfc29ydF9hbmRf c2hyaW5rKFRNX0luZGV4RGVsZXRlT3AgKmRlbHN0YXRlKQogICoKICAqIHNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uIGNvbWVzIGZyb20gdGhlIGxhcmdlc3QgeG1pbiBvbiB0aGUgcGFnZSBiZWluZwog ICogbWFya2VkIGFsbC12aXNpYmxlLiAgUkVETyByb3V0aW5lIHVzZXMgaXQgdG8gZ2VuZXJhdGUg cmVjb3ZlcnkgY29uZmxpY3RzLgotICoKLSAqIElmIGNoZWNrc3VtcyBvciB3YWxfbG9nX2hpbnRz IGFyZSBlbmFibGVkLCB3ZSBtYXkgYWxzbyBnZW5lcmF0ZSBhIGZ1bGwtcGFnZQotICogaW1hZ2Ug b2YgaGVhcF9idWZmZXIuIE90aGVyd2lzZSwgd2Ugb3B0aW1pemUgYXdheSB0aGUgRlBJIChieSBz cGVjaWZ5aW5nCi0gKiBSRUdCVUZfTk9fSU1BR0UgZm9yIHRoZSBoZWFwIGJ1ZmZlciksIGluIHdo aWNoIGNhc2UgdGhlIGNhbGxlciBzaG91bGQgKm5vdCoKLSAqIHVwZGF0ZSB0aGUgaGVhcCBwYWdl J3MgTFNOLgogICovCiBYTG9nUmVjUHRyCi1sb2dfaGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwg QnVmZmVyIGhlYXBfYnVmZmVyLCBCdWZmZXIgdm1fYnVmZmVyLAorbG9nX2hlYXBfdmlzaWJsZShS ZWxhdGlvbiByZWwsIEJ1ZmZlciB2bV9idWZmZXIsCiAJCQkJIFRyYW5zYWN0aW9uSWQgc25hcHNo b3RDb25mbGljdEhvcml6b24sIHVpbnQ4IHZtZmxhZ3MpCiB7CiAJeGxfaGVhcF92aXNpYmxlIHhs cmVjOwogCVhMb2dSZWNQdHIJcmVjcHRyOwotCXVpbnQ4CQlmbGFnczsKIAotCUFzc2VydChCdWZm ZXJJc1ZhbGlkKGhlYXBfYnVmZmVyKSk7CiAJQXNzZXJ0KEJ1ZmZlcklzVmFsaWQodm1fYnVmZmVy KSk7CiAKIAl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RI b3Jpem9uOwpAQCAtODgyOSwxNCArODgyMiw3IEBAIGxvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24g cmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIsCiAJCXhscmVjLmZsYWdz IHw9IFZJU0lCSUxJVFlNQVBfWExPR19DQVRBTE9HX1JFTDsKIAlYTG9nQmVnaW5JbnNlcnQoKTsK IAlYTG9nUmVnaXN0ZXJEYXRhKCZ4bHJlYywgU2l6ZU9mSGVhcFZpc2libGUpOwotCiAJWExvZ1Jl Z2lzdGVyQnVmZmVyKDAsIHZtX2J1ZmZlciwgMCk7Ci0KLQlmbGFncyA9IFJFR0JVRl9TVEFOREFS RDsKLQlpZiAoIVhMb2dIaW50Qml0SXNOZWVkZWQoKSkKLQkJZmxhZ3MgfD0gUkVHQlVGX05PX0lN QUdFOwotCVhMb2dSZWdpc3RlckJ1ZmZlcigxLCBoZWFwX2J1ZmZlciwgZmxhZ3MpOwotCiAJcmVj cHRyID0gWExvZ0luc2VydChSTV9IRUFQMl9JRCwgWExPR19IRUFQMl9WSVNJQkxFKTsKIAogCXJl dHVybiByZWNwdHI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1f eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCA0ZWEx YTE4NmM5OC4uMmU5ZmRhMGE5YmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cu YwpAQCAtMjI5LDE1ICsyMjksMTIgQEAgaGVhcF94bG9nX3Zpc2libGUoWExvZ1JlYWRlclN0YXRl ICpyZWNvcmQpCiAJWExvZ1JlY1B0cglsc24gPSByZWNvcmQtPkVuZFJlY1B0cjsKIAl4bF9oZWFw X3Zpc2libGUgKnhscmVjID0gKHhsX2hlYXBfdmlzaWJsZSAqKSBYTG9nUmVjR2V0RGF0YShyZWNv cmQpOwogCUJ1ZmZlcgkJdm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOwotCUJ1ZmZlcgkJYnVmZmVy OwotCVBhZ2UJCXBhZ2U7CiAJUmVsRmlsZUxvY2F0b3IgcmxvY2F0b3I7CiAJQmxvY2tOdW1iZXIg Ymxrbm87Ci0JWExvZ1JlZG9BY3Rpb24gYWN0aW9uOwogCiAJQXNzZXJ0KCh4bHJlYy0+ZmxhZ3Mg JiBWSVNJQklMSVRZTUFQX1hMT0dfVkFMSURfQklUUykgPT0geGxyZWMtPmZsYWdzKTsKIAotCVhM b2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDEsICZybG9jYXRvciwgTlVMTCwgJmJsa25vKTsKKwlY TG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmcmxvY2F0b3IsIE5VTEwsICZibGtubyk7CiAK IAkvKgogCSAqIElmIHRoZXJlIGFyZSBhbnkgSG90IFN0YW5kYnkgdHJhbnNhY3Rpb25zIHJ1bm5p bmcgdGhhdCBoYXZlIGFuIHhtaW4KQEAgLTI1NCw3MCArMjUxLDExIEBAIGhlYXBfeGxvZ192aXNp YmxlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkJCQkJCQkJCQlybG9jYXRvcik7CiAKIAkv KgotCSAqIFJlYWQgdGhlIGhlYXAgcGFnZSwgaWYgaXQgc3RpbGwgZXhpc3RzLiBJZiB0aGUgaGVh cCBmaWxlIGhhcyBkcm9wcGVkIG9yCi0JICogdHJ1bmNhdGVkIGxhdGVyIGluIHJlY292ZXJ5LCB3 ZSBkb24ndCBuZWVkIHRvIHVwZGF0ZSB0aGUgcGFnZSwgYnV0IHdlJ2QKLQkgKiBiZXR0ZXIgc3Rp bGwgdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcC4KLQkgKi8KLQlhY3Rpb24gPSBYTG9nUmVhZEJ1 ZmZlckZvclJlZG8ocmVjb3JkLCAxLCAmYnVmZmVyKTsKLQlpZiAoYWN0aW9uID09IEJMS19ORUVE U19SRURPKQotCXsKLQkJLyoKLQkJICogV2UgZG9uJ3QgYnVtcCB0aGUgTFNOIG9mIHRoZSBoZWFw IHBhZ2Ugd2hlbiBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5Ci0JCSAqIG1hcCBiaXQgKHVubGVzcyBj aGVja3N1bXMgb3Igd2FsX2hpbnRfYml0cyBpcyBlbmFibGVkLCBpbiB3aGljaAotCQkgKiBjYXNl IHdlIG11c3QpLiBUaGlzIGV4cG9zZXMgdXMgdG8gdG9ybiBwYWdlIGhhemFyZHMsIGJ1dCBzaW5j ZQotCQkgKiB3ZSdyZSBub3QgaW5zcGVjdGluZyB0aGUgZXhpc3RpbmcgcGFnZSBjb250ZW50cyBp biBhbnkgd2F5LCB3ZQotCQkgKiBkb24ndCBjYXJlLgotCQkgKi8KLQkJcGFnZSA9IEJ1ZmZlckdl dFBhZ2UoYnVmZmVyKTsKLQotCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQotCQlpZiAoWExv Z0hpbnRCaXRJc05lZWRlZCgpKQotCQkJUGFnZVNldExTTihwYWdlLCBsc24pOwotCi0JCU1hcmtC dWZmZXJEaXJ0eShidWZmZXIpOwotCX0KLQllbHNlIGlmIChhY3Rpb24gPT0gQkxLX1JFU1RPUkVE KQotCXsKLQkJLyoKLQkJICogSWYgaGVhcCBibG9jayB3YXMgYmFja2VkIHVwLCB3ZSBhbHJlYWR5 IHJlc3RvcmVkIGl0IGFuZCB0aGVyZSdzCi0JCSAqIG5vdGhpbmcgbW9yZSB0byBkby4gKFRoaXMg Y2FuIG9ubHkgaGFwcGVuIHdpdGggY2hlY2tzdW1zIG9yCi0JCSAqIHdhbF9sb2dfaGludHMgZW5h YmxlZC4pCi0JCSAqLwotCX0KLQotCWlmIChCdWZmZXJJc1ZhbGlkKGJ1ZmZlcikpCi0JewotCQlT aXplCQlzcGFjZSA9IFBhZ2VHZXRGcmVlU3BhY2UoQnVmZmVyR2V0UGFnZShidWZmZXIpKTsKLQot CQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7Ci0KLQkJLyoKLQkJICogU2luY2UgRlNNIGlz IG5vdCBXQUwtbG9nZ2VkIGFuZCBvbmx5IHVwZGF0ZWQgaGV1cmlzdGljYWxseSwgaXQKLQkJICog ZWFzaWx5IGJlY29tZXMgc3RhbGUgaW4gc3RhbmRieXMuICBJZiB0aGUgc3RhbmRieSBpcyBsYXRl ciBwcm9tb3RlZAotCQkgKiBhbmQgcnVucyBWQUNVVU0sIGl0IHdpbGwgc2tpcCB1cGRhdGluZyBp bmRpdmlkdWFsIGZyZWUgc3BhY2UKLQkJICogZmlndXJlcyBmb3IgcGFnZXMgdGhhdCBiZWNhbWUg YWxsLXZpc2libGUgKG9yIGFsbC1mcm96ZW4sIGRlcGVuZGluZwotCQkgKiBvbiB0aGUgdmFjdXVt IG1vZGUsKSB3aGljaCBpcyB0cm91Ymxlc29tZSB3aGVuIEZyZWVTcGFjZU1hcFZhY3V1bQotCQkg KiBwcm9wYWdhdGVzIHRvbyBvcHRpbWlzdGljIGZyZWUgc3BhY2UgdmFsdWVzIHRvIHVwcGVyIEZT TSBsYXllcnM7Ci0JCSAqIGxhdGVyIGluc2VydGVycyB0cnkgdG8gdXNlIHN1Y2ggcGFnZXMgb25s eSB0byBmaW5kIG91dCB0aGF0IHRoZXkKLQkJICogYXJlIHVudXNhYmxlLiAgVGhpcyBjYW4gY2F1 c2UgbG9uZyBzdGFsbHMgd2hlbiB0aGVyZSBhcmUgbWFueSBzdWNoCi0JCSAqIHBhZ2VzLgotCQkg KgotCQkgKiBGb3Jlc3RhbGwgdGhvc2UgcHJvYmxlbXMgYnkgdXBkYXRpbmcgRlNNJ3MgaWRlYSBh Ym91dCBhIHBhZ2UgdGhhdAotCQkgKiBpcyBiZWNvbWluZyBhbGwtdmlzaWJsZSBvciBhbGwtZnJv emVuLgotCQkgKgotCQkgKiBEbyB0aGlzIHJlZ2FyZGxlc3Mgb2YgYSBmdWxsLXBhZ2UgaW1hZ2Ug YmVpbmcgYXBwbGllZCwgc2luY2UgdGhlCi0JCSAqIEZTTSBkYXRhIGlzIG5vdCBpbiB0aGUgcGFn ZSBhbnl3YXkuCi0JCSAqLwotCQlpZiAoeGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJ RF9CSVRTKQotCQkJWExvZ1JlY29yZFBhZ2VXaXRoRnJlZVNwYWNlKHJsb2NhdG9yLCBibGtubywg c3BhY2UpOwotCX0KLQotCS8qCi0JICogRXZlbiBpZiB3ZSBza2lwcGVkIHRoZSBoZWFwIHBhZ2Ug dXBkYXRlIGR1ZSB0byB0aGUgTFNOIGludGVybG9jaywgaXQncwotCSAqIHN0aWxsIHNhZmUgdG8g dXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcC4gIEFueSBXQUwgcmVjb3JkIHRoYXQgY2xlYXJzCi0J ICogdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBkb2VzIHNvIGJlZm9yZSBjaGVja2luZyB0aGUgcGFn ZSBMU04sIHNvIGFueQotCSAqIGJpdHMgdGhhdCBuZWVkIHRvIGJlIGNsZWFyZWQgd2lsbCBzdGls bCBiZSBjbGVhcmVkLgorCSAqIEV2ZW4gaWYgdGhlIGhlYXAgcmVsYXRpb24gd2FzIGRyb3BwZWQg b3IgdHJ1bmNhdGVkIGFuZCB0aGUgcHJldmlvdXNseQorCSAqIGVtaXR0ZWQgcmVjb3JkIHNraXBw ZWQgdGhlIGhlYXAgcGFnZSB1cGRhdGUgZHVlIHRvIHRoaXMgTFNOIGludGVybG9jaywKKwkgKiBp dCdzIHN0aWxsIHNhZmUgdG8gdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcC4gIEFueSBXQUwgcmVj b3JkIHRoYXQKKwkgKiBjbGVhcnMgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBkb2VzIHNvIGJlZm9y ZSBjaGVja2luZyB0aGUgcGFnZSBMU04sIHNvCisJICogYW55IGJpdHMgdGhhdCBuZWVkIHRvIGJl IGNsZWFyZWQgd2lsbCBzdGlsbCBiZSBjbGVhcmVkLgogCSAqLwogCWlmIChYTG9nUmVhZEJ1ZmZl ckZvclJlZG9FeHRlbmRlZChyZWNvcmQsIDAsIFJCTV9aRVJPX09OX0VSUk9SLCBmYWxzZSwKIAkJ CQkJCQkJCSAgJnZtYnVmZmVyKSA9PSBCTEtfTkVFRFNfUkVETykKQEAgLTM0MSw3ICsyNzksNyBA QCBoZWFwX3hsb2dfdmlzaWJsZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAogCQlyZWxuID0g Q3JlYXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3IpOwogCi0JCXZpc2liaWxpdHltYXBfc2V0 KHJlbG4sIGJsa25vLCBJbnZhbGlkQnVmZmVyLCBsc24sIHZtYnVmZmVyLAorCQl2aXNpYmlsaXR5 bWFwX3NldChyZWxuLCBibGtubywgbHNuLCB2bWJ1ZmZlciwKIAkJCQkJCSAgeGxyZWMtPnNuYXBz aG90Q29uZmxpY3RIb3Jpem9uLCB2bWJpdHMpOwogCiAJCVJlbGVhc2VCdWZmZXIodm1idWZmZXIp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IGMwMTZmOGY3YzI1Li43MzVm MWU3NTAxZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMTkxMSw3ICsx OTExLDcgQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZl ciBidWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCQkJCQkJCQkJCQkgIE5VTEwsIDApOwogCQkJfQog Ci0JCQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sIGJ1ZiwKKwkJCXZpc2li aWxpdHltYXBfc2V0KHZhY3JlbC0+cmVsLCBibGtubywKIAkJCQkJCQkgIEludmFsaWRYTG9nUmVj UHRyLAogCQkJCQkJCSAgdm1idWZmZXIsIEludmFsaWRUcmFuc2FjdGlvbklkLAogCQkJCQkJCSAg VklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8CkBAIC0yMTAwLDcgKzIxMDAsNyBAQCBsYXp5X3Nj YW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkJZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9B TExfRlJPWkVOOwogCQl9CiAKLQkJb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfc2V0KHZhY3Jl bC0+cmVsLCBibGtubywgYnVmLAorCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXQodmFj cmVsLT5yZWwsIGJsa25vLAogCQkJCQkJCQkJICAgSW52YWxpZFhMb2dSZWNQdHIsCiAJCQkJCQkJ CQkgICB2bWJ1ZmZlciwgcHJlc3VsdC52bV9jb25mbGljdF9ob3Jpem9uLAogCQkJCQkJCQkJICAg ZmxhZ3MpOwpAQCAtMjg5OCw3ICsyODk4LDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVs U3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJICovCiAJ aWYgKCh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSkgIT0gMCkKIAl7Ci0JCXZp c2liaWxpdHltYXBfc2V0KHZhY3JlbC0+cmVsLCBibGtubywgYnVmZmVyLAorCQl2aXNpYmlsaXR5 bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sCiAJCQkJCQkgIEludmFsaWRYTG9nUmVjUHRyLAog CQkJCQkJICB2bWJ1ZmZlciwgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAogCQkJCQkJICB2bWZsYWdz KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwppbmRleCBiMjg0NjAzOTJi Ny4uMzM1NDFlMzY2NzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2li aWxpdHltYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMK QEAgLTIzMyw5ICsyMzMsNyBAQCB2aXNpYmlsaXR5bWFwX3Bpbl9vayhCbG9ja051bWJlciBoZWFw QmxrLCBCdWZmZXIgdm1idWYpCiAgKiB3aGVuIGEgcGFnZSB0aGF0IGlzIGFscmVhZHkgYWxsLXZp c2libGUgaXMgYmVpbmcgbWFya2VkIGFsbC1mcm96ZW4uCiAgKgogICogQ2FsbGVyIGlzIGV4cGVj dGVkIHRvIHNldCB0aGUgaGVhcCBwYWdlJ3MgUERfQUxMX1ZJU0lCTEUgYml0IGJlZm9yZSBjYWxs aW5nCi0gKiB0aGlzIGZ1bmN0aW9uLiBFeGNlcHQgaW4gcmVjb3ZlcnksIGNhbGxlciBzaG91bGQg YWxzbyBwYXNzIHRoZSBoZWFwCi0gKiBidWZmZXIuIFdoZW4gY2hlY2tzdW1zIGFyZSBlbmFibGVk IGFuZCB3ZSdyZSBub3QgaW4gcmVjb3ZlcnksIHdlIG11c3QgYWRkCi0gKiB0aGUgaGVhcCBidWZm ZXIgdG8gdGhlIFdBTCBjaGFpbiB0byBwcm90ZWN0IGl0IGZyb20gYmVpbmcgdG9ybi4KKyAqIHRo aXMgZnVuY3Rpb24uCiAgKgogICogWW91IG11c3QgcGFzcyBhIGJ1ZmZlciBjb250YWluaW5nIHRo ZSBjb3JyZWN0IG1hcCBwYWdlIHRvIHRoaXMgZnVuY3Rpb24uCiAgKiBDYWxsIHZpc2liaWxpdHlt YXBfcGluIGZpcnN0IHRvIHBpbiB0aGUgcmlnaHQgb25lLiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3Qg ZG8KQEAgLTI0NCw3ICsyNDIsNyBAQCB2aXNpYmlsaXR5bWFwX3Bpbl9vayhCbG9ja051bWJlciBo ZWFwQmxrLCBCdWZmZXIgdm1idWYpCiAgKiBSZXR1cm5zIHRoZSBzdGF0ZSBvZiB0aGUgcGFnZSdz IFZNIGJpdHMgYmVmb3JlIHNldHRpbmcgZmxhZ3MuCiAgKi8KIHVpbnQ4Ci12aXNpYmlsaXR5bWFw X3NldChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAor dmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAogCQkJ CSAgWExvZ1JlY1B0ciByZWNwdHIsIEJ1ZmZlciB2bUJ1ZiwgVHJhbnNhY3Rpb25JZCBjdXRvZmZf eGlkLAogCQkJCSAgdWludDggZmxhZ3MpCiB7CkBAIC0yNjEsMTggKzI1OSwxMSBAQCB2aXNpYmls aXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFw QnVmLAogI2VuZGlmCiAKIAlBc3NlcnQoSW5SZWNvdmVyeSB8fCBYTG9nUmVjUHRySXNJbnZhbGlk KHJlY3B0cikpOwotCUFzc2VydChJblJlY292ZXJ5IHx8IFBhZ2VJc0FsbFZpc2libGUoQnVmZmVy R2V0UGFnZShoZWFwQnVmKSkpOwogCUFzc2VydCgoZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElE X0JJVFMpID09IGZsYWdzKTsKIAogCS8qIE11c3QgbmV2ZXIgc2V0IGFsbF9mcm96ZW4gYml0IHdp dGhvdXQgYWxzbyBzZXR0aW5nIGFsbF92aXNpYmxlIGJpdCAqLwogCUFzc2VydChmbGFncyAhPSBW SVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOwogCi0JLyogQ2hlY2sgdGhhdCB3ZSBoYXZlIHRoZSBy aWdodCBoZWFwIHBhZ2UgcGlubmVkLCBpZiBwcmVzZW50ICovCi0JaWYgKEJ1ZmZlcklzVmFsaWQo aGVhcEJ1ZikgJiYgQnVmZmVyR2V0QmxvY2tOdW1iZXIoaGVhcEJ1ZikgIT0gaGVhcEJsaykKLQkJ ZWxvZyhFUlJPUiwgIndyb25nIGhlYXAgYnVmZmVyIHBhc3NlZCB0byB2aXNpYmlsaXR5bWFwX3Nl dCIpOwotCi0JQXNzZXJ0KCFCdWZmZXJJc1ZhbGlkKGhlYXBCdWYpIHx8IEJ1ZmZlcklzRXhjbHVz aXZlTG9ja2VkKGhlYXBCdWYpKTsKLQogCS8qIENoZWNrIHRoYXQgd2UgaGF2ZSB0aGUgcmlnaHQg Vk0gcGFnZSBwaW5uZWQgKi8KIAlpZiAoIUJ1ZmZlcklzVmFsaWQodm1CdWYpIHx8IEJ1ZmZlckdl dEJsb2NrTnVtYmVyKHZtQnVmKSAhPSBtYXBCbG9jaykKIAkJZWxvZyhFUlJPUiwgIndyb25nIFZN IGJ1ZmZlciBwYXNzZWQgdG8gdmlzaWJpbGl0eW1hcF9zZXQiKTsKQEAgLTI5NCwyMyArMjg1LDcg QEAgdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBC dWZmZXIgaGVhcEJ1ZiwKIAkJCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHJlY3B0cikpCiAJCQl7 CiAJCQkJQXNzZXJ0KCFJblJlY292ZXJ5KTsKLQkJCQlyZWNwdHIgPSBsb2dfaGVhcF92aXNpYmxl KHJlbCwgaGVhcEJ1Ziwgdm1CdWYsIGN1dG9mZl94aWQsIGZsYWdzKTsKLQotCQkJCS8qCi0JCQkJ ICogSWYgZGF0YSBjaGVja3N1bXMgYXJlIGVuYWJsZWQgKG9yIHdhbF9sb2dfaGludHM9b24pLCB3 ZQotCQkJCSAqIG5lZWQgdG8gcHJvdGVjdCB0aGUgaGVhcCBwYWdlIGZyb20gYmVpbmcgdG9ybi4K LQkJCQkgKgotCQkJCSAqIElmIG5vdCwgdGhlbiB3ZSBtdXN0ICpub3QqIHVwZGF0ZSB0aGUgaGVh cCBwYWdlJ3MgTFNOLiBJbgotCQkJCSAqIHRoaXMgY2FzZSwgdGhlIEZQSSBmb3IgdGhlIGhlYXAg cGFnZSB3YXMgb21pdHRlZCBmcm9tIHRoZQotCQkJCSAqIFdBTCByZWNvcmQgaW5zZXJ0ZWQgYWJv dmUsIHNvIGl0IHdvdWxkIGJlIGluY29ycmVjdCB0bwotCQkJCSAqIHVwZGF0ZSB0aGUgaGVhcCBw YWdlJ3MgTFNOLgotCQkJCSAqLwotCQkJCWlmIChYTG9nSGludEJpdElzTmVlZGVkKCkpCi0JCQkJ ewotCQkJCQlQYWdlCQloZWFwUGFnZSA9IEJ1ZmZlckdldFBhZ2UoaGVhcEJ1Zik7Ci0KLQkJCQkJ UGFnZVNldExTTihoZWFwUGFnZSwgcmVjcHRyKTsKLQkJCQl9CisJCQkJcmVjcHRyID0gbG9nX2hl YXBfdmlzaWJsZShyZWwsIHZtQnVmLCBjdXRvZmZfeGlkLCBmbGFncyk7CiAJCQl9CiAJCQlQYWdl U2V0TFNOKHBhZ2UsIHJlY3B0cik7CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW1feGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXgg N2QzZmI3NWRkYTcuLjgyYjhmN2YyYmJjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv aGVhcGFtX3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaApAQCAt NDQwLDcgKzQ0MCw2IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfaW5wbGFjZQogICogVGhpcyBp cyB3aGF0IHdlIG5lZWQgdG8ga25vdyBhYm91dCBzZXR0aW5nIGEgdmlzaWJpbGl0eSBtYXAgYml0 CiAgKgogICogQmFja3VwIGJsayAwOiB2aXNpYmlsaXR5IG1hcCBidWZmZXIKLSAqIEJhY2t1cCBi bGsgMTogaGVhcCBidWZmZXIKICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF92aXNpYmxlCiB7 CkBAIC00OTMsNyArNDkyLDcgQEAgZXh0ZXJuIHZvaWQgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1 ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKmhlYXAyX2lk ZW50aWZ5KHVpbnQ4IGluZm8pOwogZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2xvZ2ljYWxfcmV3cml0 ZShYTG9nUmVhZGVyU3RhdGUgKnIpOwogCi1leHRlcm4gWExvZ1JlY1B0ciBsb2dfaGVhcF92aXNp YmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLAorZXh0ZXJuIFhMb2dSZWNQdHIg bG9nX2hlYXBfdmlzaWJsZShSZWxhdGlvbiByZWwsCiAJCQkJCQkJCSAgIEJ1ZmZlciB2bV9idWZm ZXIsCiAJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCiAJ CQkJCQkJCSAgIHVpbnQ4IHZtZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNz L3Zpc2liaWxpdHltYXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKaW5k ZXggM2RjZjM3YmEwM2YuLmZiYzY5NjA0ZDU3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nl c3MvdmlzaWJpbGl0eW1hcC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFw LmgKQEAgLTMyLDcgKzMyLDcgQEAgZXh0ZXJuIHZvaWQgdmlzaWJpbGl0eW1hcF9waW4oUmVsYXRp b24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAogCQkJCQkJCSAgQnVmZmVyICp2bWJ1Zik7CiBl eHRlcm4gYm9vbCB2aXNpYmlsaXR5bWFwX3Bpbl9vayhCbG9ja051bWJlciBoZWFwQmxrLCBCdWZm ZXIgdm1idWYpOwogZXh0ZXJuIHVpbnQ4IHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwK LQkJCQkJCQkgICBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKKwkJCQkJCQkg ICBCbG9ja051bWJlciBoZWFwQmxrLAogCQkJCQkJCSAgIFhMb2dSZWNQdHIgcmVjcHRyLAogCQkJ CQkJCSAgIEJ1ZmZlciB2bUJ1ZiwKIAkJCQkJCQkgICBUcmFuc2FjdGlvbklkIGN1dG9mZl94aWQs Ci0tIAoyLjQzLjAKCg== --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0012-Make-heap_page_is_all_visible-independent-of-LVR.patch" Content-Disposition: attachment; filename="v15-0012-Make-heap_page_is_all_visible-independent-of-LVR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lba011 RnJvbSAwMTc0YjA2ZTc0YWRlZWRmNDI1YWMxNTljZDA0YjExYzljMzVmZDczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE2IFNlcCAyMDI1IDE1OjM5OjMxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMTIvMjNdIE1ha2UgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlIGluZGVwZW5kZW50 IG9mCiBMVlJlbFN0YXRlCgpGdXR1cmUgY29tbWl0cyB3aWxsIHVzZSB0aGlzIGZ1bmN0aW9uIGlu c2lkZSBvZiBwcnVuZWhlYXAuYyB3aGVyZSB3ZSBkbwpub3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIExW UmVsU3RhdGUuIFdlIG9ubHkgbmVlZCBhIGZldyBwYXJhbWV0ZXJzIGZyb20KdGhlIExWUmVsU3Rh dGUsIHNvIGp1c3QgcGFzcyB0aG9zZSBpbiBleHBsaWNpdGx5LgoKQXV0aG9yOiBNZWxhbmllIFBs YWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogS2lyaWxsIFJl c2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFJvYmVydCBIYWFzIDxy b2JlcnRtaGFhc0BnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxh dC9DQUFLUnVfWk13Nk5wZF9xbTJLTSUyQkZ3UTNjTU9NeDFEaDNWTWhwOC1WN1NPTHhkSzktZyU0 MG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j IHwgNTcgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDM3IGlu c2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYwppbmRleCA3MzVmMWU3NTAxZS4uYTBmMzk4NGUzN2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMKQEAgLTQ2MywxMyArNDYzLDE4IEBAIHN0YXRpYyB2b2lkIGRlYWRfaXRl bXNfYWRkKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIE9mZnNldE51bWJl ciAqCiAJCQkJCQkgICBpbnQgbnVtX29mZnNldHMpOwogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19y ZXNldChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19jbGVhbnVw KExWUmVsU3RhdGUgKnZhY3JlbCk7Ci1zdGF0aWMgYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2li bGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9u SWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwgYm9vbCAqYWxsX2Zyb3plbik7Ci1zdGF0aWMgYm9v bCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZm ZXIgYnVmLAorc3RhdGljIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJl bCwgQnVmZmVyIGJ1ZiwKKwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJ CQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKKwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmls aXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7 CitzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVs LCBCdWZmZXIgYnVmLAorCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAkJ CQkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAogCQkJCQkJCQkJCSAgIGludCBu ZGVhZG9mZnNldHMsCiAJCQkJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKLQkJCQkJCQkJCQkg ICBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQpOworCQkJCQkJCQkJCSAgIFRy YW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCQkgICBPZmZzZXRO dW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKIHN0YXRpYyB2b2lkIHVwZGF0ZV9yZWxzdGF0c19hbGxf aW5kZXhlcyhMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGljIHZvaWQgdmFjdXVtX2Vycm9yX2Nh bGxiYWNrKHZvaWQgKmFyZyk7CiBzdGF0aWMgdm9pZCB1cGRhdGVfdmFjdXVtX2Vycm9yX2luZm8o TFZSZWxTdGF0ZSAqdmFjcmVsLApAQCAtMjAzMCw4ICsyMDM1LDkgQEAgbGF6eV9zY2FuX3BydW5l KExWUmVsU3RhdGUgKnZhY3JlbCwKIAogCQlBc3NlcnQocHJlc3VsdC5scGRlYWRfaXRlbXMgPT0g MCk7CiAKLQkJaWYgKCFoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUodmFjcmVsLCBidWYsCi0JCQkJ CQkJCQkgICZkZWJ1Z19jdXRvZmYsICZkZWJ1Z19hbGxfZnJvemVuKSkKKwkJaWYgKCFoZWFwX3Bh Z2VfaXNfYWxsX3Zpc2libGUodmFjcmVsLT5yZWwsIGJ1ZiwKKwkJCQkJCQkJCSAgdmFjcmVsLT5j dXRvZmZzLk9sZGVzdFhtaW4sICZkZWJ1Z19hbGxfZnJvemVuLAorCQkJCQkJCQkJICAmZGVidWdf Y3V0b2ZmLCAmdmFjcmVsLT5vZmZudW0pKQogCQkJQXNzZXJ0KGZhbHNlKTsKIAogCQlBc3NlcnQo cHJlc3VsdC5hbGxfZnJvemVuID09IGRlYnVnX2FsbF9mcm96ZW4pOwpAQCAtMjgyNCw5ICsyODMw LDExIEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVt YmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJCSBWQUNVVU1fRVJSQ0JfUEhBU0VfVkFD VVVNX0hFQVAsIGJsa25vLAogCQkJCQkJCSBJbnZhbGlkT2Zmc2V0TnVtYmVyKTsKIAotCWlmICho ZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUodmFjcmVsLCBidWZmZXIsCisJaWYgKGhlYXBf cGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZSh2YWNyZWwtPnJlbCwgYnVmZmVyLAorCQkJCQkJCQkJ ICAgdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4sCiAJCQkJCQkJCQkgICBkZWFkb2Zmc2V0cywg bnVtX29mZnNldHMsCi0JCQkJCQkJCQkgICAmYWxsX2Zyb3plbiwgJnZpc2liaWxpdHlfY3V0b2Zm X3hpZCkpCisJCQkJCQkJCQkgICAmYWxsX2Zyb3plbiwgJnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwK KwkJCQkJCQkJCSAgICZ2YWNyZWwtPm9mZm51bSkpCiAJewogCQl2bWZsYWdzIHw9IFZJU0lCSUxJ VFlNQVBfQUxMX1ZJU0lCTEU7CiAJCWlmIChhbGxfZnJvemVuKQpAQCAtMzU3NiwxNSArMzU4NCwx OSBAQCBkZWFkX2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogICogY2FsbGVycyB0 aGF0IGV4cGVjdCBubyBMUF9ERUFEIG9uIHRoZSBwYWdlLgogICovCiBzdGF0aWMgYm9vbAotaGVh cF9wYWdlX2lzX2FsbF92aXNpYmxlKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwKK2hl YXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCisJCQkJCQkg VHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAorCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCiAJCQkJ CQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAotCQkJCQkJIGJvb2wgKmFs bF9mcm96ZW4pCisJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkKIHsKIAotCXJl dHVybiBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUodmFjcmVsLCBidWYsCisJcmV0dXJu IGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShyZWwsIGJ1ZiwKKwkJCQkJCQkJCQkgIE9s ZGVzdFhtaW4sCiAJCQkJCQkJCQkJICBOVUxMLCAwLAogCQkJCQkJCQkJCSAgYWxsX2Zyb3plbiwK LQkJCQkJCQkJCQkgIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCk7CisJCQkJCQkJCQkJICB2aXNpYmls aXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJICBsb2dnaW5nX29mZm51bSk7CiB9CiAKIC8qCkBA IC0zNTk5LDcgKzM2MTEsNyBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAq dmFjcmVsLCBCdWZmZXIgYnVmLAogICogUmV0dXJucyB0cnVlIGlmIHRoZSBwYWdlIGlzIGFsbC12 aXNpYmxlIG90aGVyIHRoYW4gdGhlIHByb3ZpZGVkCiAgKiBkZWFkb2Zmc2V0cyBhbmQgZmFsc2Ug b3RoZXJ3aXNlLgogICoKLSAqIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWluIGlzIHVzZWQgdG8g ZGV0ZXJtaW5lIHZpc2liaWxpdHkuCisgKiBPbGRlc3RYbWluIGlzIHVzZWQgdG8gZGV0ZXJtaW5l IHZpc2liaWxpdHkuCiAgKgogICogKmFsbF9mcm96ZW4gaXMgYW4gb3V0cHV0IHBhcmFtZXRlciBp bmRpY2F0aW5nIHRvIHRoZSBjYWxsZXIgaWYgZXZlcnkgdHVwbGUKICAqIG9uIHRoZSBwYWdlIGlz IGZyb3plbi4KQEAgLTM2MDcsNiArMzYxOSw5IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShM VlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAgKiAqdmlzaWJpbGl0eV9jdXRvZmZfeGlk IGlzIGFuIG91dHB1dCBwYXJhbWV0ZXIgd2l0aCB0aGUgaGlnaGVzdCB4bWluIGFtb25nc3QgdGhl CiAgKiB2aXNpYmxlIHR1cGxlcy4gSXQgaXMgb25seSB2YWxpZCBpZiB0aGUgcGFnZSBpcyBhbGwt dmlzaWJsZS4KICAqCisgKiAqbG9nZ2luZ19vZmZudW0gd2lsbCBoYXZlIHRoZSBPZmZzZXROdW1i ZXIgb2YgdGhlIGN1cnJlbnQgdHVwbGUgYmVpbmcKKyAqIHByb2Nlc3NlZCBmb3IgdmFjdXVtJ3Mg ZXJyb3IgY2FsbGJhY2sgc3lzdGVtLgorICoKICAqIENhbGxlcnMgbG9va2luZyB0byB2ZXJpZnkg dGhhdCB0aGUgcGFnZSBpcyBhbHJlYWR5IGFsbC12aXNpYmxlIGNhbiBjYWxsCiAgKiBoZWFwX3Bh Z2VfaXNfYWxsX3Zpc2libGUoKS4KICAqCkBAIC0zNjE2LDExICszNjMxLDEzIEBAIGhlYXBfcGFn ZV9pc19hbGxfdmlzaWJsZShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAgKiB0byBh dm9pZCBpbnRyb2R1Y2luZyBuZXcgc2lkZS1lZmZlY3RzIGhlcmUuCiAgKi8KIHN0YXRpYyBib29s Ci1oZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZm ZXIgYnVmLAoraGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVm ZmVyIGJ1ZiwKKwkJCQkJCQkgICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCiAJCQkJCQkJICAg T2Zmc2V0TnVtYmVyICpkZWFkb2Zmc2V0cywKIAkJCQkJCQkgICBpbnQgbmRlYWRvZmZzZXRzLAog CQkJCQkJCSAgIGJvb2wgKmFsbF9mcm96ZW4sCi0JCQkJCQkJICAgVHJhbnNhY3Rpb25JZCAqdmlz aWJpbGl0eV9jdXRvZmZfeGlkKQorCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlf Y3V0b2ZmX3hpZCwKKwkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKQogewog CVBhZ2UJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1Zik7CiAJQmxvY2tOdW1iZXIgYmxvY2tubyA9 IEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1Zik7CkBAIC0zNjU1LDcgKzM2NzIsNyBAQCBoZWFwX3Bh Z2Vfd291bGRfYmVfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAog CQkgKiBTZXQgdGhlIG9mZnNldCBudW1iZXIgc28gdGhhdCB3ZSBjYW4gZGlzcGxheSBpdCBhbG9u ZyB3aXRoIGFueQogCQkgKiBlcnJvciB0aGF0IG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmcgdGhp cyB0dXBsZS4KIAkJICovCi0JCXZhY3JlbC0+b2ZmbnVtID0gb2ZmbnVtOworCQkqbG9nZ2luZ19v ZmZudW0gPSBvZmZudW07CiAJCWl0ZW1pZCA9IFBhZ2VHZXRJdGVtSWQocGFnZSwgb2ZmbnVtKTsK IAogCQkvKiBVbnVzZWQgb3IgcmVkaXJlY3QgbGluZSBwb2ludGVycyBhcmUgb2Ygbm8gaW50ZXJl c3QgKi8KQEAgLTM2ODUsOSArMzcwMiw5IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJs ZShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAKIAkJdHVwbGUudF9kYXRhID0gKEhl YXBUdXBsZUhlYWRlcikgUGFnZUdldEl0ZW0ocGFnZSwgaXRlbWlkKTsKIAkJdHVwbGUudF9sZW4g PSBJdGVtSWRHZXRMZW5ndGgoaXRlbWlkKTsKLQkJdHVwbGUudF90YWJsZU9pZCA9IFJlbGF0aW9u R2V0UmVsaWQodmFjcmVsLT5yZWwpOworCQl0dXBsZS50X3RhYmxlT2lkID0gUmVsYXRpb25HZXRS ZWxpZChyZWwpOwogCi0JCXN3aXRjaCAoSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtKCZ0dXBsZSwg dmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4sCisJCXN3aXRjaCAoSGVhcFR1cGxlU2F0aXNmaWVz VmFjdXVtKCZ0dXBsZSwgT2xkZXN0WG1pbiwKIAkJCQkJCQkJCQkgYnVmKSkKIAkJewogCQkJY2Fz ZSBIRUFQVFVQTEVfTElWRToKQEAgLTM3MDgsNyArMzcyNSw3IEBAIGhlYXBfcGFnZV93b3VsZF9i ZV9hbGxfdmlzaWJsZShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAJCQkJCSAqLwog CQkJCQl4bWluID0gSGVhcFR1cGxlSGVhZGVyR2V0WG1pbih0dXBsZS50X2RhdGEpOwogCQkJCQlp ZiAoIVRyYW5zYWN0aW9uSWRQcmVjZWRlcyh4bWluLAotCQkJCQkJCQkJCQkgICB2YWNyZWwtPmN1 dG9mZnMuT2xkZXN0WG1pbikpCisJCQkJCQkJCQkJCSAgIE9sZGVzdFhtaW4pKQogCQkJCQl7CiAJ CQkJCQlhbGxfdmlzaWJsZSA9IGZhbHNlOwogCQkJCQkJKmFsbF9mcm96ZW4gPSBmYWxzZTsKQEAg LTM3NDMsNyArMzc2MCw3IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShMVlJlbFN0 YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAJfQkJCQkJCQkvKiBzY2FuIGFsb25nIHBhZ2UgKi8K IAogCS8qIENsZWFyIHRoZSBvZmZzZXQgaW5mb3JtYXRpb24gb25jZSB3ZSBoYXZlIHByb2Nlc3Nl ZCB0aGUgZ2l2ZW4gcGFnZS4gKi8KLQl2YWNyZWwtPm9mZm51bSA9IEludmFsaWRPZmZzZXROdW1i ZXI7CisJKmxvZ2dpbmdfb2ZmbnVtID0gSW52YWxpZE9mZnNldE51bWJlcjsKIAogCXJldHVybiBh bGxfdmlzaWJsZTsKIH0KLS0gCjIuNDMuMAoK --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0013-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Disposition: attachment; filename="v15-0013-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lba212 RnJvbSBiNmQzOGY1OTM4ZjI2MTRiODllNzZhMzcyY2Y4OGYyYTg1NzIxNmU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IFNlcCAyMDI1IDE1OjUyOjE4IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMTMvMjNdIEVsaW1pbmF0ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZnJvbSB2YWN1dW0g cGhhc2UgSUlJCgpJbnN0ZWFkIG9mIGVtaXR0aW5nIGEgc2VwYXJhdGUgWExPR19IRUFQMl9WSVNJ QkxFIHJlY29yZCBmb3IgZWFjaCBwYWdlCnRoYXQgaXMgcmVuZGVyZWQgYWxsLXZpc2libGUgYnkg dmFjdXVtJ3MgdGhpcmQgcGhhc2UsIGluY2x1ZGUgdGhlCnVwZGF0ZXMgdG8gdGhlIFZNIGluIHRo ZSBhbHJlYWR5IGVtaXR0ZWQgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUApyZWNvcmQu CgpUaGUgdmlzaWJpbGl0eW1hcCBiaXRzIGFyZSBzdG9yZWQgaW4gdGhlIGZsYWdzIG1lbWJlciBv ZiB0aGUKeGxfaGVhcF9wcnVuZSBzdHJ1Y3QuCgpUaGlzIGNhbiBkZWNyZWFzZSB0aGUgbnVtYmVy IG9mIG9mIFdBTCByZWNvcmRzIHZhY3V1bSBwaGFzZSBJSUkgZW1pdHMgYnkKYXMgbXVjaCBhcyBo YWxmLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29t PgpSZXZpZXdlZC1ieTogUm9iZXJ0IEhhYXMgPHJvYmVydG1oYWFzQGdtYWlsLmNvbT4KUmV2aWV3 ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFpbC5jb20+ClJldmlld2VkLWJ5 OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+CkRpc2N1c3Npb246IGh0dHBzOi8v cG9zdGdyLmVzL20vZmxhdC9DQUFLUnVfWk13Nk5wZF9xbTJLTSUyQkZ3UTNjTU9NeDFEaDNWTWhw OC1WN1NPTHhkSzktZyU0MG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX3hsb2cuYyAgfCAxMzQgKysrKysrKysrKysrKysrKysrLS0tLS0tLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgfCAgMzcgKysrKysrLQogc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgfCAgMzggKysrLS0tLQogc3JjL2JhY2tlbmQv YWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMgfCAgMTEgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9o ZWFwYW0uaCAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxv Zy5oICAgICAgIHwgIDI1ICsrKystCiA2IGZpbGVzIGNoYW5nZWQsIDE3NyBpbnNlcnRpb25zKCsp LCA2OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRl eCAyZTlmZGEwYTliZi4uZGNkMGRiYTQ1YTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X3hsb2cuYwpAQCAtMzUsNyArMzUsOSBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFk ZXJTdGF0ZSAqcmVjb3JkKQogCUJ1ZmZlcgkJYnVmZmVyOwogCVJlbEZpbGVMb2NhdG9yIHJsb2Nh dG9yOwogCUJsb2NrTnVtYmVyIGJsa25vOwotCVhMb2dSZWRvQWN0aW9uIGFjdGlvbjsKKwlCdWZm ZXIJCXZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKKwl1aW50OAkJdm1mbGFncyA9IDA7CisJU2l6 ZQkJZnJlZXNwYWNlID0gMDsKIAogCVhMb2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybG9j YXRvciwgTlVMTCwgJmJsa25vKTsKIAltZW1jcHkoJnhscmVjLCBtYWluZGF0YXB0ciwgU2l6ZU9m SGVhcFBydW5lKTsKQEAgLTUwLDExICs1MiwyMiBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhM b2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCUFzc2VydCgoeGxyZWMuZmxhZ3MgJiBYTEhQX0NMRUFO VVBfTE9DSykgIT0gMCB8fAogCQkgICAoeGxyZWMuZmxhZ3MgJiAoWExIUF9IQVNfUkVESVJFQ1RJ T05TIHwgWExIUF9IQVNfREVBRF9JVEVNUykpID09IDApOwogCisJaWYgKHhscmVjLmZsYWdzICYg WExIUF9WTV9BTExfVklTSUJMRSkKKwl7CisJCXZtZmxhZ3MgPSBWSVNJQklMSVRZTUFQX0FMTF9W SVNJQkxFOworCQlpZiAoeGxyZWMuZmxhZ3MgJiBYTEhQX1ZNX0FMTF9GUk9aRU4pCisJCQl2bWZs YWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKKwl9CisKIAkvKgotCSAqIFdlIGFyZSBh Ym91dCB0byByZW1vdmUgYW5kL29yIGZyZWV6ZSB0dXBsZXMuICBJbiBIb3QgU3RhbmRieSBtb2Rl LAotCSAqIGVuc3VyZSB0aGF0IHRoZXJlIGFyZSBubyBxdWVyaWVzIHJ1bm5pbmcgZm9yIHdoaWNo IHRoZSByZW1vdmVkIHR1cGxlcwotCSAqIGFyZSBzdGlsbCB2aXNpYmxlIG9yIHdoaWNoIHN0aWxs IGNvbnNpZGVyIHRoZSBmcm96ZW4geGlkcyBhcyBydW5uaW5nLgotCSAqIFRoZSBjb25mbGljdCBo b3Jpem9uIFhJRCBjb21lcyBhZnRlciB4bF9oZWFwX3BydW5lLgorCSAqIEFmdGVyIHhsX2hlYXBf cHJ1bmUgaXMgdGhlIG9wdGlvbmFsIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24uCisJICoKKwkg KiBJbiBIb3QgU3RhbmRieSBtb2RlLCB3ZSBtdXN0IGVuc3VyZSB0aGF0IHRoZXJlIGFyZSBubyBy dW5uaW5nIHF1ZXJpZXMKKwkgKiB3aGljaCB3b3VsZCBjb25mbGljdCB3aXRoIHRoZSBjaGFuZ2Vz IGluIHRoaXMgcmVjb3JkLiBUaGF0IG1lYW5zIHdlCisJICogY2FuJ3QgcmVwbGF5IHRoaXMgcmVj b3JkIGlmIGl0IHJlbW92ZXMgdHVwbGVzIHRoYXQgYXJlIHN0aWxsIHZpc2libGUgdG8KKwkgKiB0 cmFuc2FjdGlvbnMgb24gdGhlIHN0YW5kYnksIGZyZWV6ZSB0dXBsZXMgd2l0aCB4aWRzIHRoYXQg YXJlIHN0aWxsCisJICogY29uc2lkZXJlZCBydW5uaW5nIG9uIHRoZSBzdGFuZGJ5LCBvciBzZXQg YSBwYWdlIGFzIGFsbC12aXNpYmxlIGluIHRoZQorCSAqIFZNIGlmIGl0IGlzbid0IGFsbC12aXNp YmxlIHRvIGFsbCB0cmFuc2FjdGlvbnMgb24gdGhlIHN0YW5kYnkuCiAJICovCiAJaWYgKCh4bHJl Yy5mbGFncyAmIFhMSFBfSEFTX0NPTkZMSUNUX0hPUklaT04pICE9IDApCiAJewpAQCAtNzEsMTIg Kzg0LDEyIEBAIGhlYXBfeGxvZ19wcnVuZV9mcmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAJfQogCiAJLyoKLQkgKiBJZiB3ZSBoYXZlIGEgZnVsbC1wYWdlIGltYWdlLCByZXN0b3JlIGl0 IGFuZCB3ZSdyZSBkb25lLgorCSAqIElmIHdlIGhhdmUgYSBmdWxsLXBhZ2UgaW1hZ2Ugb2YgdGhl IGhlYXAgYmxvY2ssIHJlc3RvcmUgaXQgYW5kIHdlJ3JlCisJICogZG9uZSB3aXRoIHRoZSBoZWFw IGJsb2NrLgogCSAqLwotCWFjdGlvbiA9IFhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVuZGVkKHJl Y29yZCwgMCwgUkJNX05PUk1BTCwKLQkJCQkJCQkJCQkgICAoeGxyZWMuZmxhZ3MgJiBYTEhQX0NM RUFOVVBfTE9DSykgIT0gMCwKLQkJCQkJCQkJCQkgICAmYnVmZmVyKTsKLQlpZiAoYWN0aW9uID09 IEJMS19ORUVEU19SRURPKQorCWlmIChYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZChyZWNv cmQsIDAsIFJCTV9OT1JNQUwsCisJCQkJCQkJCQkgICh4bHJlYy5mbGFncyAmIFhMSFBfQ0xFQU5V UF9MT0NLKSAhPSAwLAorCQkJCQkJCQkJICAmYnVmZmVyKSA9PSBCTEtfTkVFRFNfUkVETykKIAl7 CiAJCVBhZ2UJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAJCU9mZnNldE51bWJlciAq cmVkaXJlY3RlZDsKQEAgLTEwMCw2ICsxMTMsMTEgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShY TG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAogCQlkb19wcnVuZSA9IG5yZWRpcmVjdGVkID4gMCB8 fCBuZGVhZCA+IDAgfHwgbnVudXNlZCA+IDA7CiAKKwkJLyogRW5zdXJlIHRoZSByZWNvcmQgZG9l cyBzb21ldGhpbmcgKi8KKwkJQXNzZXJ0KGRvX3BydW5lIHx8IG5wbGFucyA+IDAgfHwKKwkJCSAg IHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMgfHwKKwkJCSAgIHhscmVjLmZsYWdz ICYgWExIUF9TRVRfUERfQUxMX1ZJUyk7CisKIAkJLyoKIAkJICogVXBkYXRlIGFsbCBsaW5lIHBv aW50ZXJzIHBlciB0aGUgcmVjb3JkLCBhbmQgcmVwYWlyIGZyYWdtZW50YXRpb24KIAkJICogaWYg bmVlZGVkLgpAQCAtMTQ3LDE1ICsxNjUsMjMgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9n UmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJICogcGFnZS1sZXZlbCBQRF9BTExfVklTSUJMRSBiaXQg aXMgY2xlYXIuICBJZiB0aGF0IHdlcmUgdG8gb2NjdXIsCiAJCSAqIHRoZW4gYSBzdWJzZXF1ZW50 IHBhZ2UgbW9kaWZpY2F0aW9uIHdvdWxkIGZhaWwgdG8gY2xlYXIgdGhlCiAJCSAqIHZpc2liaWxp dHkgbWFwIGJpdC4KKwkJICoKKwkJICogTm90ZTogd2UgZG9uJ3Qgd29ycnkgYWJvdXQgdXBkYXRp bmcgdGhlIHBhZ2UncyBwcnVuYWJpbGl0eSBoaW50cy4KKwkJICogQXQgd29yc3QgdGhpcyB3aWxs IGNhdXNlIGFuIGV4dHJhIHBydW5lIGN5Y2xlIHRvIG9jY3VyIHNvb24uCiAJCSAqLwogCQlpZiAo eGxyZWMuZmxhZ3MgJiBYTEhQX1NFVF9QRF9BTExfVklTKQogCQkJUGFnZVNldEFsbFZpc2libGUo cGFnZSk7CiAKIAkJLyoKLQkJICogTm90ZTogd2UgZG9uJ3Qgd29ycnkgYWJvdXQgdXBkYXRpbmcg dGhlIHBhZ2UncyBwcnVuYWJpbGl0eSBoaW50cy4KLQkJICogQXQgd29yc3QgdGhpcyB3aWxsIGNh dXNlIGFuIGV4dHJhIHBydW5lIGN5Y2xlIHRvIG9jY3VyIHNvb24uCisJCSAqIFdlIG11c3QgbmV2 ZXIgZW5kIHVwIHdpdGggdGhlIFZNIGJpdCBzZXQgYW5kIHRoZSBwYWdlLWxldmVsCisJCSAqIFBE X0FMTF9WSVNJQkxFIGJpdCBjbGVhci4gSWYgdGhhdCB3ZXJlIHRvIG9jY3VyLCBhIHN1YnNlcXVl bnQgcGFnZQorCQkgKiBtb2RpZmljYXRpb24gd291bGQgZmFpbCB0byBjbGVhciB0aGUgVk0gYml0 LgogCQkgKi8KLQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CisJCUFzc2VydCghKHZtZmxhZ3Mg JiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpIHx8IFBhZ2VJc0FsbFZpc2libGUocGFnZSkpOwor CisJCS8qIElmIHRoaXMgcmVjb3JkIG9ubHkgc2V0cyB0aGUgVk0sIG5vIG5lZWQgdG8gZGlydHkg dGhlIGhlYXAgcGFnZSAqLworCQlpZiAoZG9fcHJ1bmUgfHwgbnBsYW5zID4gMCB8fCB4bHJlYy5m bGFncyAmIFhMSFBfU0VUX1BEX0FMTF9WSVMpCisJCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsK IAogCQkvKgogCQkgKiBXZSBhbHdheXMgZW1pdCBhIFdBTCByZWNvcmQgd2hlbiBzZXR0aW5nIFBE X0FMTF9WSVNJQkxFLCBidXQgd2UgYXJlCkBAIC0xNzEsNDcgKzE5Nyw4MSBAQCBoZWFwX3hsb2df cHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCX0KIAogCS8qCi0JICogSWYg d2UgcmVsZWFzZWQgYW55IHNwYWNlIG9yIGxpbmUgcG9pbnRlcnMgb3Igc2V0IFBEX0FMTF9WSVNJ QkxFIHVwZGF0ZQotCSAqIHRoZSBmcmVlc3BhY2UgbWFwLgorCSAqIElmIHdlIHJlbGVhc2VkIGFu eSBzcGFjZSBvciBsaW5lIHBvaW50ZXJzIG9yIHNldCBQRF9BTExfVklTSUJMRSBvciB0aGUKKwkg KiBWTSwgdXBkYXRlIHRoZSBmcmVlc3BhY2UgbWFwLgogCSAqCi0JICogRXZlbiBpZiB3ZSBhcmUg anVzdCBzZXR0aW5nIFBEX0FMTF9WSVNJQkxFIChhbmQgdGh1cyBub3QgZnJlZWluZyB1cCBhbnkK LQkgKiBzcGFjZSksIHdlJ2xsIHN0aWxsIHVwZGF0ZSB0aGUgRlNNIGZvciB0aGlzIHBhZ2UuIFNp bmNlIHRoZSBGU00gaXMgbm90Ci0JICogV0FMLWxvZ2dlZCBhbmQgb25seSB1cGRhdGVkIGhldXJp c3RpY2FsbHksIGl0IGVhc2lseSBiZWNvbWVzIHN0YWxlIGluCi0JICogc3RhbmRieXMuICBJZiB0 aGUgc3RhbmRieSBpcyBsYXRlciBwcm9tb3RlZCBhbmQgcnVucyBWQUNVVU0sIGl0IHdpbGwKLQkg KiBza2lwIHVwZGF0aW5nIGluZGl2aWR1YWwgZnJlZSBzcGFjZSBmaWd1cmVzIGZvciBwYWdlcyB0 aGF0IGJlY2FtZQotCSAqIGFsbC12aXNpYmxlIChvciBhbGwtZnJvemVuLCBkZXBlbmRpbmcgb24g dGhlIHZhY3V1bSBtb2RlLCkgd2hpY2ggaXMKLQkgKiB0cm91Ymxlc29tZSB3aGVuIEZyZWVTcGFj ZU1hcFZhY3V1bSBwcm9wYWdhdGVzIHRvbyBvcHRpbWlzdGljIGZyZWUKLQkgKiBzcGFjZSB2YWx1 ZXMgdG8gdXBwZXIgRlNNIGxheWVyczsgbGF0ZXIgaW5zZXJ0ZXJzIHRyeSB0byB1c2Ugc3VjaCBw YWdlcwotCSAqIG9ubHkgdG8gZmluZCBvdXQgdGhhdCB0aGV5IGFyZSB1bnVzYWJsZS4gIFRoaXMg Y2FuIGNhdXNlIGxvbmcgc3RhbGxzCi0JICogd2hlbiB0aGVyZSBhcmUgbWFueSBzdWNoIHBhZ2Vz LgorCSAqIEV2ZW4gaWYgd2UgYXJlIGp1c3Qgc2V0dGluZyBQRF9BTExfVklTSUJMRSBvciB1cGRh dGluZyB0aGUgVk0gKGFuZCB0aHVzCisJICogbm90IGZyZWVpbmcgdXAgYW55IHNwYWNlKSwgd2Un bGwgc3RpbGwgdXBkYXRlIHRoZSBGU00gZm9yIHRoaXMgcGFnZS4KKwkgKiBTaW5jZSB0aGUgRlNN IGlzIG5vdCBXQUwtbG9nZ2VkIGFuZCBvbmx5IHVwZGF0ZWQgaGV1cmlzdGljYWxseSwgaXQKKwkg KiBlYXNpbHkgYmVjb21lcyBzdGFsZSBpbiBzdGFuZGJ5cy4gIElmIHRoZSBzdGFuZGJ5IGlzIGxh dGVyIHByb21vdGVkIGFuZAorCSAqIHJ1bnMgVkFDVVVNLCBpdCB3aWxsIHNraXAgdXBkYXRpbmcg aW5kaXZpZHVhbCBmcmVlIHNwYWNlIGZpZ3VyZXMgZm9yCisJICogcGFnZXMgdGhhdCBiZWNhbWUg YWxsLXZpc2libGUgKG9yIGFsbC1mcm96ZW4sIGRlcGVuZGluZyBvbiB0aGUgdmFjdXVtCisJICog bW9kZSwpIHdoaWNoIGlzIHRyb3VibGVzb21lIHdoZW4gRnJlZVNwYWNlTWFwVmFjdXVtIHByb3Bh Z2F0ZXMgdG9vCisJICogb3B0aW1pc3RpYyBmcmVlIHNwYWNlIHZhbHVlcyB0byB1cHBlciBGU00g bGF5ZXJzOyBsYXRlciBpbnNlcnRlcnMgdHJ5CisJICogdG8gdXNlIHN1Y2ggcGFnZXMgb25seSB0 byBmaW5kIG91dCB0aGF0IHRoZXkgYXJlIHVudXNhYmxlLiAgVGhpcyBjYW4KKwkgKiBjYXVzZSBs b25nIHN0YWxscyB3aGVuIHRoZXJlIGFyZSBtYW55IHN1Y2ggcGFnZXMuCiAJICoKIAkgKiBGb3Jl c3RhbGwgdGhvc2UgcHJvYmxlbXMgYnkgdXBkYXRpbmcgRlNNJ3MgaWRlYSBhYm91dCBhIHBhZ2Ug dGhhdCBpcwogCSAqIGJlY29taW5nIGFsbC12aXNpYmxlIG9yIGFsbC1mcm96ZW4uCiAJICoKIAkg KiBEbyB0aGlzIHJlZ2FyZGxlc3Mgb2YgYSBmdWxsLXBhZ2UgaW1hZ2UgYmVpbmcgYXBwbGllZCwg c2luY2UgdGhlIEZTTQogCSAqIGRhdGEgaXMgbm90IGluIHRoZSBwYWdlIGFueXdheS4KKwkgKgor CSAqIFdlIHdhbnQgdG8gYXZvaWQgaG9sZGluZyBhbiBleGNsdXNpdmUgbG9jayBvbiB0aGUgaGVh cCBidWZmZXIgd2hpbGUKKwkgKiBkb2luZyBJTyAoZWl0aGVyIG9mIHRoZSBGU00gb3IgdGhlIFZN KSwgc28gd2UnbGwgcmVsZWFzZSB0aGUgbG9jayBvbgorCSAqIHRoZSBoZWFwIGJ1ZmZlciBiZWZv cmUgZG9pbmcgZWl0aGVyLgogCSAqLwogCWlmIChCdWZmZXJJc1ZhbGlkKGJ1ZmZlcikpCiAJewog CQlpZiAoeGxyZWMuZmxhZ3MgJiAoWExIUF9IQVNfUkVESVJFQ1RJT05TIHwKIAkJCQkJCSAgIFhM SFBfSEFTX0RFQURfSVRFTVMgfAogCQkJCQkJICAgWExIUF9IQVNfTk9XX1VOVVNFRF9JVEVNUyB8 Ci0JCQkJCQkgICBYTEhQX1NFVF9QRF9BTExfVklTKSkKLQkJewotCQkJU2l6ZQkJZnJlZXNwYWNl ID0gUGFnZUdldEhlYXBGcmVlU3BhY2UoQnVmZmVyR2V0UGFnZShidWZmZXIpKTsKKwkJCQkJCSAg IFhMSFBfU0VUX1BEX0FMTF9WSVMgfAorCQkJCQkJICAgKHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQ X1ZBTElEX0JJVFMpKSkKKwkJCWZyZWVzcGFjZSA9IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKEJ1ZmZl ckdldFBhZ2UoYnVmZmVyKSk7CiAKLQkJCS8qCi0JCQkgKiBXZSB3YW50IHRvIGF2b2lkIGhvbGRp bmcgYW4gZXhjbHVzaXZlIGxvY2sgb24gdGhlIGhlYXAgYnVmZmVyCi0JCQkgKiB3aGlsZSBkb2lu ZyBJTywgc28gd2UnbGwgcmVsZWFzZSB0aGUgbG9jayBvbiB0aGUgaGVhcCBidWZmZXIKLQkJCSAq IGZpcnN0LgotCQkJICovCi0JCQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7CisJCVVubG9j a1JlbGVhc2VCdWZmZXIoYnVmZmVyKTsKKwl9CisKKwkvKgorCSAqIE5vdyByZWFkIGFuZCB1cGRh dGUgdGhlIFZNIGJsb2NrLgorCSAqCisJICogV2UgbXVzdCByZWRvIGNoYW5nZXMgdG8gdGhlIFZN IGV2ZW4gaWYgdGhlIGhlYXAgcGFnZSB3YXMgc2tpcHBlZCBkdWUgdG8KKwkgKiBMU04gaW50ZXJs b2NrLiBTZWUgY29tbWVudCBpbiBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KCkgZm9yIG1vcmUgZGV0 YWlscworCSAqIG9uIHJlcGxheWluZyBjaGFuZ2VzIHRvIHRoZSBWTS4KKwkgKi8KKwlpZiAodm1m bGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyAmJgorCQlYTG9nUmVhZEJ1ZmZlckZvclJl ZG9FeHRlbmRlZChyZWNvcmQsIDEsCisJCQkJCQkJCQkgIFJCTV9aRVJPX09OX0VSUk9SLAorCQkJ CQkJCQkJICBmYWxzZSwKKwkJCQkJCQkJCSAgJnZtYnVmZmVyKSA9PSBCTEtfTkVFRFNfUkVETykK Kwl7CisJCVBhZ2UJCXZtcGFnZSA9IEJ1ZmZlckdldFBhZ2Uodm1idWZmZXIpOworCQljaGFyCSAg ICpyZWxuYW1lOworCQl1aW50OAkJb2xkX3ZtYml0cyA9IDA7CisKKwkJLyogaW5pdGlhbGl6ZSB0 aGUgcGFnZSBpZiBpdCB3YXMgcmVhZCBhcyB6ZXJvcyAqLworCQlpZiAoUGFnZUlzTmV3KHZtcGFn ZSkpCisJCQlQYWdlSW5pdCh2bXBhZ2UsIEJMQ0tTWiwgMCk7CiAKLQkJCVhMb2dSZWNvcmRQYWdl V2l0aEZyZWVTcGFjZShybG9jYXRvciwgYmxrbm8sIGZyZWVzcGFjZSk7CisJCS8qIFdlIGRvbid0 IGhhdmUgcmVsYXRpb24gbmFtZSBkdXJpbmcgcmVjb3ZlcnksIHNvIHVzZSByZWxmaWxlbm9kZSAq LworCQlyZWxuYW1lID0gcHNwcmludGYoIiV1IiwgcmxvY2F0b3IucmVsTnVtYmVyKTsKKwkJb2xk X3ZtYml0cyA9IHZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhibGtubywgdm1idWZmZXIsIHZtZmxh Z3MsIHJlbG5hbWUpOworCisJCS8qIE9ubHkgc2V0IFZNIHBhZ2UgTFNOIGlmIHdlIG1vZGlmaWVk IHRoZSBwYWdlICovCisJCWlmIChvbGRfdm1iaXRzICE9IHZtZmxhZ3MpCisJCXsKKwkJCUFzc2Vy dChCdWZmZXJJc0RpcnR5KHZtYnVmZmVyKSk7CisJCQlQYWdlU2V0TFNOKEJ1ZmZlckdldFBhZ2Uo dm1idWZmZXIpLCBsc24pOwogCQl9Ci0JCWVsc2UKLQkJCVVubG9ja1JlbGVhc2VCdWZmZXIoYnVm ZmVyKTsKKwkJcGZyZWUocmVsbmFtZSk7CiAJfQorCisJaWYgKEJ1ZmZlcklzVmFsaWQodm1idWZm ZXIpKQorCQlVbmxvY2tSZWxlYXNlQnVmZmVyKHZtYnVmZmVyKTsKKworCWlmIChmcmVlc3BhY2Ug PiAwKQorCQlYTG9nUmVjb3JkUGFnZVdpdGhGcmVlU3BhY2UocmxvY2F0b3IsIGJsa25vLCBmcmVl c3BhY2UpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA5YjI1 MTMxNTQzYi4uOWUwMGZiZjNjZDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBA IC0yMCw2ICsyMCw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL211bHRpeGFjdC5oIgogI2luY2x1ZGUg ImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2cuaCIKKyNpbmNsdWRlICJh Y2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2luc2VydC5o IgogI2luY2x1ZGUgImNvbW1hbmRzL3ZhY3V1bS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2luc3Ry dW1lbnQuaCIKQEAgLTkxMyw2ICs5MTQsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCQljb25mbGljdF94aWQgPSBwcnN0 YXRlLmxhdGVzdF94aWRfcmVtb3ZlZDsKIAogCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShy ZWxhdGlvbiwgYnVmZmVyLAorCQkJCQkJCQkJICBJbnZhbGlkQnVmZmVyLCAwLAogCQkJCQkJCQkJ ICBjb25mbGljdF94aWQsCiAJCQkJCQkJCQkgIHRydWUsCiAJCQkJCQkJCQkgIGRvX3NldF9wZF92 aXMsCkBAIC0yMDg4LDE0ICsyMDkwLDE4IEBAIGhlYXBfbG9nX2ZyZWV6ZV9wbGFuKEhlYXBUdXBs ZUZyZWV6ZSAqdHVwbGVzLCBpbnQgbnR1cGxlcywKICAqCiAgKiBUaGlzIGlzIHVzZWQgZm9yIHNl dmVyYWwgZGlmZmVyZW50IHBhZ2UgbWFpbnRlbmFuY2Ugb3BlcmF0aW9uczoKICAqCi0gKiAtIFBh Z2UgcHJ1bmluZywgaW4gVkFDVVVNJ3MgMXN0IHBhc3Mgb3Igb24gYWNjZXNzOiBTb21lIGl0ZW1z IGFyZQorICogLSBQYWdlIHBydW5pbmcsIGluIHZhY3V1bSBwaGFzZSBJIG9yIG9uLWFjY2Vzczog U29tZSBpdGVtcyBhcmUKICAqICAgcmVkaXJlY3RlZCwgc29tZSBtYXJrZWQgZGVhZCwgYW5kIHNv bWUgcmVtb3ZlZCBhbHRvZ2V0aGVyLgogICoKLSAqIC0gRnJlZXppbmc6IEl0ZW1zIGFyZSBtYXJr ZWQgYXMgJ2Zyb3plbicuCisgKiAtIEZyZWV6aW5nOiBEdXJpbmcgdmFjdXVtIHBoYXNlIEksIGl0 ZW1zIGFyZSBtYXJrZWQgYXMgJ2Zyb3plbicKICAqCi0gKiAtIFZhY3V1bSwgMm5kIHBhc3M6IEl0 ZW1zIHRoYXQgYXJlIGFscmVhZHkgTFBfREVBRCBhcmUgbWFya2VkIGFzIHVudXNlZC4KKyAqIC0g UmVhcGluZzogRHVyaW5nIHZhY3V1bSBwaGFzZSBJSUksIGl0ZW1zIHRoYXQgYXJlIGFscmVhZHkg TFBfREVBRCBhcmUKKyAqICAgbWFya2VkIGFzIHVudXNlZC4KICAqCi0gKiBUaGV5IGhhdmUgZW5v dWdoIGNvbW1vbmFsaXRpZXMgdGhhdCB3ZSB1c2UgYSBzaW5nbGUgV0FMIHJlY29yZCBmb3IgdGhl bQorICogLSBWTSB1cGRhdGVzOiBBZnRlciB2YWN1dW0gcGhhc2UgSUlJLCB0aGUgaGVhcCBwYWdl IG1heSBiZSBtYXJrZWQKKyAqICAgYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4uCisgKgorICog VGhlc2UgY2hhbmdlcyBhbGwgaGFwcGVuIHRvZ2V0aGVyLCBzbyB3ZSB1c2UgYSBzaW5nbGUgV0FM IHJlY29yZCBmb3IgdGhlbQogICogYWxsLgogICoKICAqIElmIHJlcGxheWluZyB0aGUgcmVjb3Jk IHJlcXVpcmVzIGEgY2xlYW51cCBsb2NrLCBwYXNzIGNsZWFudXBfbG9jayA9IHRydWUuCkBAIC0y MTAzLDYgKzIxMDksMTAgQEAgaGVhcF9sb2dfZnJlZXplX3BsYW4oSGVhcFR1cGxlRnJlZXplICp0 dXBsZXMsIGludCBudHVwbGVzLAogICogcmVwbGF5aW5nICd1bnVzZWQnIGl0ZW1zIGRlcGVuZHMg b24gd2hldGhlciB0aGV5IHdlcmUgYWxsIHByZXZpb3VzbHkgbWFya2VkCiAgKiBhcyBkZWFkLgog ICoKKyAqIElmIHRoZSBWTSBpcyBiZWluZyB1cGRhdGVkLCB2bWZsYWdzIHdpbGwgY29udGFpbiB0 aGUgYml0cyB0byBzZXQuIEluIHRoaXMKKyAqIGNhc2UsIHZtYnVmZmVyIHNob3VsZCBhbHJlYWR5 IGhhdmUgYmVlbiB1cGRhdGVkIGFuZCBtYXJrZWQgZGlydHkgYW5kIHNob3VsZAorICogc3RpbGwg YmUgcGlubmVkIGFuZCBsb2NrZWQuCisgKgogICogc2V0X3BkX2FsbF92aXMgaW5kaWNhdGVzIHRo YXQgd2Ugc2V0IFBEX0FMTF9WSVNJQkxFIGFuZCB0aHVzIHNob3VsZCB1cGRhdGUKICAqIHRoZSBw YWdlIExTTiB3aGVuIGNoZWNrc3Vtcy93YWxfbG9nX2hpbnRzIGFyZSBlbmFibGVkIGV2ZW4gaWYg d2UgZGlkIG5vdAogICogcHJ1bmUgb3IgZnJlZXplIHR1cGxlcyBvbiB0aGUgcGFnZS4KQEAgLTIx MTMsNiArMjEyMyw3IEBAIGhlYXBfbG9nX2ZyZWV6ZV9wbGFuKEhlYXBUdXBsZUZyZWV6ZSAqdHVw bGVzLCBpbnQgbnR1cGxlcywKICAqLwogdm9pZAogbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKKwkJCQkJCSAgQnVmZmVyIHZtYnVmZmVy LCB1aW50OCB2bWZsYWdzLAogCQkJCQkJICBUcmFuc2FjdGlvbklkIGNvbmZsaWN0X3hpZCwKIAkJ CQkJCSAgYm9vbCBjbGVhbnVwX2xvY2ssCiAJCQkJCQkgIGJvb2wgc2V0X3BkX2FsbF92aXMsCkBA IC0yMTM5LDYgKzIxNTAsOCBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJl bGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCXhscmVjLmZsYWdzID0gMDsKIAlyZWdidWZfZmxhZ3Mg PSBSRUdCVUZfU1RBTkRBUkQ7CiAKKwlBc3NlcnQoKHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZB TElEX0JJVFMpID09IHZtZmxhZ3MpOworCiAJLyoKIAkgKiBXZSBjYW4gYXZvaWQgYW4gRlBJIGlm IHRoZSBvbmx5IG1vZGlmaWNhdGlvbiB3ZSBhcmUgbWFraW5nIHRvIHRoZSBoZWFwCiAJICogcGFn ZSBpcyB0byBzZXQgUERfQUxMX1ZJU0lCTEUgYW5kIGNoZWNrc3Vtcy93YWxfbG9nX2hpbnRzIGFy ZSBkaXNhYmxlZC4KQEAgLTIxNTcsNiArMjE3MCwxMCBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJl ZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqLwogCVhMb2dCZWdpbklu c2VydCgpOwogCVhMb2dSZWdpc3RlckJ1ZmZlcigwLCBidWZmZXIsIHJlZ2J1Zl9mbGFncyk7CisK KwlpZiAodm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykKKwkJWExvZ1JlZ2lzdGVy QnVmZmVyKDEsIHZtYnVmZmVyLCAwKTsKKwogCWlmIChuZnJvemVuID4gMCkKIAl7CiAJCWludAkJ CW5wbGFuczsKQEAgLTIyMTMsNiArMjIzMCwxMiBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXpl KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIFByZXBhcmUgdGhlIG1haW4g eGxfaGVhcF9wcnVuZSByZWNvcmQuICBXZSBhbHJlYWR5IHNldCB0aGUgWExIUF9IQVNfKgogCSAq IGZsYWcgYWJvdmUuCiAJICovCisJaWYgKHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJ QkxFKQorCXsKKwkJeGxyZWMuZmxhZ3MgfD0gWExIUF9WTV9BTExfVklTSUJMRTsKKwkJaWYgKHZt ZmxhZ3MgJiBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pCisJCQl4bHJlYy5mbGFncyB8PSBYTEhQ X1ZNX0FMTF9GUk9aRU47CisJfQogCWlmIChzZXRfcGRfYWxsX3ZpcykKIAkJeGxyZWMuZmxhZ3Mg fD0gWExIUF9TRVRfUERfQUxMX1ZJUzsKIAlpZiAoUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2lj YWxEZWNvZGluZyhyZWxhdGlvbikpCkBAIC0yMjQ3LDYgKzIyNzAsMTIgQEAgbG9nX2hlYXBfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAl9CiAJcmVj cHRyID0gWExvZ0luc2VydChSTV9IRUFQMl9JRCwgaW5mbyk7CiAKKwlpZiAodm1mbGFncyAmIFZJ U0lCSUxJVFlNQVBfVkFMSURfQklUUykKKwl7CisJCUFzc2VydChCdWZmZXJJc0RpcnR5KHZtYnVm ZmVyKSk7CisJCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlciksIHJlY3B0cik7CisJ fQorCiAJLyoKIAkgKiBXZSBtdXN0IGJ1bXAgdGhlIHBhZ2UgTFNOIGlmIHBydW5pbmcgb3IgZnJl ZXppbmcuIElmIHdlIGFyZSBvbmx5CiAJICogdXBkYXRpbmcgUERfQUxMX1ZJU0lCTEUsIHRob3Vn aCwgd2UgY2FuIHNraXAgZG9pbmcgdGhpcyB1bmxlc3MKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYwppbmRleCBhMGYzOTg0ZTM3Zi4uNTM5ZTUyNjc1NzQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMKQEAgLTE5MDYsNiArMTkwNiw4IEBAIGxhenlfc2Nhbl9uZXdfb3Jf ZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBCbG9ja051bWJlciBibGtubywK IAkJCQkJbG9nX25ld3BhZ2VfYnVmZmVyKGJ1ZiwgdHJ1ZSk7CiAJCQkJZWxzZQogCQkJCQlsb2df aGVhcF9wcnVuZV9hbmRfZnJlZXplKHZhY3JlbC0+cmVsLCBidWYsCisJCQkJCQkJCQkJCSAgSW52 YWxpZEJ1ZmZlciwKKwkJCQkJCQkJCQkJICAwLAogCQkJCQkJCQkJCQkgIEludmFsaWRUcmFuc2Fj dGlvbklkLCAvKiBjb25mbGljdCB4aWQgKi8KIAkJCQkJCQkJCQkJICBmYWxzZSwJLyogY2xlYW51 cCBsb2NrICovCiAJCQkJCQkJCQkJCSAgdHJ1ZSwgLyogc2V0X3BkX2FsbF92aXMgKi8KQEAgLTI4 MTcsNiArMjgxOSw3IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWws IEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCU9mZnNldE51bWJlciB1bnVzZWRb TWF4SGVhcFR1cGxlc1BlclBhZ2VdOwogCWludAkJCW51bnVzZWQgPSAwOwogCVRyYW5zYWN0aW9u SWQgdmlzaWJpbGl0eV9jdXRvZmZfeGlkOworCVRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkID0g SW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJYm9vbAkJYWxsX2Zyb3plbjsKIAlMVlNhdmVkRXJySW5m byBzYXZlZF9lcnJfaW5mbzsKIAl1aW50OAkJdm1mbGFncyA9IDA7CkBAIC0yODQyLDYgKzI4NDUs OSBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJl ciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAkJCXZtZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExf RlJPWkVOOwogCQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZCh2aXNpYmlsaXR5X2N1dG9m Zl94aWQpKTsKIAkJfQorCisJCS8qIFRha2UgdGhlIGxvY2sgb24gdGhlIHZtYnVmZmVyIGJlZm9y ZSBlbnRlcmluZyBhIGNyaXRpY2FsIHNlY3Rpb24gKi8KKwkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwg QlVGRkVSX0xPQ0tfRVhDTFVTSVZFKTsKIAl9CiAKIAlTVEFSVF9DUklUX1NFQ1RJT04oKTsKQEAg LTI4NjgsNyArMjg3NCwxMyBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFj cmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAkgKiBzZXR0aW5nIHRoZSBW TSwgd2UgbXVzdCBzZXQgUERfQUxMX1ZJU0lCTEUgYXMgd2VsbC4KIAkgKi8KIAlpZiAoKHZtZmxh Z3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpICE9IDApCisJewogCQlQYWdlU2V0QWxsVmlz aWJsZShwYWdlKTsKKwkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKGJsa25vLAorCQkJCQkJCQkg dm1idWZmZXIsIHZtZmxhZ3MsCisJCQkJCQkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh2YWNy ZWwtPnJlbCkpOworCQljb25mbGljdF94aWQgPSB2aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisJfQog CiAJLyoKIAkgKiBNYXJrIGJ1ZmZlciBkaXJ0eSBiZWZvcmUgd2Ugd3JpdGUgV0FMLgpAQCAtMjg3 OSw3ICsyODkxLDggQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwg QmxvY2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJaWYgKFJlbGF0aW9uTmVlZHNXQUwo dmFjcmVsLT5yZWwpKQogCXsKIAkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZSh2YWNyZWwtPnJl bCwgYnVmZmVyLAotCQkJCQkJCQkgIEludmFsaWRUcmFuc2FjdGlvbklkLAorCQkJCQkJCQkgIHZt YnVmZmVyLCB2bWZsYWdzLAorCQkJCQkJCQkgIGNvbmZsaWN0X3hpZCwKIAkJCQkJCQkJICBmYWxz ZSwJLyogbm8gY2xlYW51cCBsb2NrIHJlcXVpcmVkICovCiAJCQkJCQkJCSAgKHZtZmxhZ3MgJiBW SVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpICE9IDAsCiAJCQkJCQkJCSAgUFJVTkVfVkFDVVVNX0NM RUFOVVAsCkBAIC0yODg5LDM2ICsyOTAyLDE3IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJl bFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJ CQkgIHVudXNlZCwgbnVudXNlZCk7CiAJfQogCi0JLyoKLQkgKiBOb3RlIHRoYXQgd2UgZG9uJ3Qg ZW5kIHRoZSBjcml0aWNhbCBzZWN0aW9uIHVudGlsIGFmdGVyIGVtaXR0aW5nIHRoZSBWTQotCSAq IHJlY29yZC4gVGhpcyBlbnN1cmVzIGJvdGggUERfQUxMX1ZJU0lCTEUgYW5kIHRoZSBWTSBiaXRz IGFyZSBzZXQgb3IKLQkgKiB1bnNldCBpbiB0aGUgZXZlbnQgb2YgYSBjcmFzaC4gV2hpbGUgaXQg aXMgY29ycmVjdCBmb3IgUERfQUxMX1ZJU0lCTEUKLQkgKiB0byBiZSBzZXQgYW5kIHRoZSBWTSB0 byBiZSBjbGVhciwgd2Ugc2hvdWxkIGRvIG91ciBiZXN0IHRvIGtlZXAgdGhlc2UKLQkgKiBpbiBz eW5jLiBUaGlzIGRvZXMgbWVhbiB0aGF0IHdlIHdpbGwgdGFrZSBhIGxvY2sgb24gdGhlIFZNIGJ1 ZmZlcgotCSAqIGluc2lkZSBvZiBhIGNyaXRpY2FsIHNlY3Rpb24sIHdoaWNoIGlzIGdlbmVyYWxs eSBkaXNjb3VyYWdlZC4gVGhlcmUgaXMKLQkgKiBwcmVjZWRlbnQgZm9yIHRoaXMgaW4gb3RoZXIg Y2FsbGVycyBvZiB2aXNpYmlsaXR5bWFwX3NldCgpLCB0aG91Z2guCi0JICovCisJRU5EX0NSSVRf U0VDVElPTigpOwogCi0JLyoKLQkgKiBOb3cgdGhhdCB3ZSBoYXZlIHJlbW92ZWQgdGhlIExQX0RF QUQgaXRlbXMgZnJvbSB0aGUgcGFnZSwgc2V0IHRoZQotCSAqIHZpc2liaWxpdHkgbWFwIGlmIHRo ZSBwYWdlIGJlY2FtZSBhbGwtdmlzaWJsZS9hbGwtZnJvemVuLiBDaGFuZ2VzIHRvCi0JICogdGhl IGhlYXAgcGFnZSBoYXZlIGFscmVhZHkgYmVlbiBsb2dnZWQuCi0JICovCiAJaWYgKCh2bWZsYWdz ICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSkgIT0gMCkKIAl7Ci0JCXZpc2liaWxpdHltYXBf c2V0KHZhY3JlbC0+cmVsLCBibGtubywKLQkJCQkJCSAgSW52YWxpZFhMb2dSZWNQdHIsCi0JCQkJ CQkgIHZtYnVmZmVyLCB2aXNpYmlsaXR5X2N1dG9mZl94aWQsCi0JCQkJCQkgIHZtZmxhZ3MpOwot CiAJCS8qIENvdW50IHRoZSBuZXdseSBzZXQgVk0gcGFnZSBmb3IgbG9nZ2luZyAqLworCQlMb2Nr QnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOwogCQl2YWNyZWwtPnZtX25ld192 aXNpYmxlX3BhZ2VzKys7CiAJCWlmIChhbGxfZnJvemVuKQogCQkJdmFjcmVsLT52bV9uZXdfdmlz aWJsZV9mcm96ZW5fcGFnZXMrKzsKIAl9CiAKLQlFTkRfQ1JJVF9TRUNUSU9OKCk7Ci0KIAkvKiBS ZXZlcnQgdG8gdGhlIHByZXZpb3VzIHBoYXNlIGluZm9ybWF0aW9uIGZvciBlcnJvciB0cmFjZWJh Y2sgKi8KIAlyZXN0b3JlX3ZhY3V1bV9lcnJvcl9pbmZvKHZhY3JlbCwgJnNhdmVkX2Vycl9pbmZv KTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKaW5kZXggYjQ4ZDdkYzFk MjQuLjFjYjQ0Y2EzMmQzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mv aGVhcGRlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYwpA QCAtMTAzLDcgKzEwMyw3IEBAIHBsYW5fZWxlbV9kZXNjKFN0cmluZ0luZm8gYnVmLCB2b2lkICpw bGFuLCB2b2lkICpkYXRhKQogICogY29kZSwgdGhlIGxhdHRlciBvZiB3aGljaCBpcyB1c2VkIGlu IGZyb250ZW5kIChwZ193YWxkdW1wKSBjb2RlLgogICovCiB2b2lkCi1oZWFwX3hsb2dfZGVzZXJp YWxpemVfcHJ1bmVfYW5kX2ZyZWV6ZShjaGFyICpjdXJzb3IsIHVpbnQ4IGZsYWdzLAoraGVhcF94 bG9nX2Rlc2VyaWFsaXplX3BydW5lX2FuZF9mcmVlemUoY2hhciAqY3Vyc29yLCB1aW50MTYgZmxh Z3MsCiAJCQkJCQkJCQkgICBpbnQgKm5wbGFucywgeGxocF9mcmVlemVfcGxhbiAqKnBsYW5zLAog CQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICoqZnJ6X29mZnNldHMsCiAJCQkJCQkJCQkgICBpbnQg Km5yZWRpcmVjdGVkLCBPZmZzZXROdW1iZXIgKipyZWRpcmVjdGVkLApAQCAtMjg3LDYgKzI4Nywx NSBAQCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkK IAkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIsIGlzQ2F0YWxvZ1JlbDogJWMiLAogCQkJCQkJIHhs cmVjLT5mbGFncyAmIFhMSFBfSVNfQ0FUQUxPR19SRUwgPyAnVCcgOiAnRicpOwogCisJCWlmICh4 bHJlYy0+ZmxhZ3MgJiBYTEhQX1ZNX0FMTF9WSVNJQkxFKQorCQl7CisJCQl1aW50OAkJdm1mbGFn cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CisKKwkJCWlmICh4bHJlYy0+ZmxhZ3MgJiBY TEhQX1ZNX0FMTF9GUk9aRU4pCisJCQkJdm1mbGFncyB8PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9a RU47CisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiwgdm1fZmxhZ3M6IDB4JTAyWCIsIHZtZmxh Z3MpOworCQl9CisKIAkJaWYgKFhMb2dSZWNIYXNCbG9ja0RhdGEocmVjb3JkLCAwKSkKIAkJewog CQkJU2l6ZQkJZGF0YWxlbjsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0u aCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCAzNGZlNTYwMzUxMi4uZTk3YjUz ZjFlZTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMv aW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTM4Myw2ICszODMsNyBAQCBleHRlcm4gdm9pZCBo ZWFwX3BhZ2VfcHJ1bmVfZXhlY3V0ZShCdWZmZXIgYnVmZmVyLCBib29sIGxwX3RydW5jYXRlX29u bHksCiAJCQkJCQkJCQlPZmZzZXROdW1iZXIgKm5vd3VudXNlZCwgaW50IG51bnVzZWQpOwogZXh0 ZXJuIHZvaWQgaGVhcF9nZXRfcm9vdF90dXBsZXMoUGFnZSBwYWdlLCBPZmZzZXROdW1iZXIgKnJv b3Rfb2Zmc2V0cyk7CiBleHRlcm4gdm9pZCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0 aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJCQkJICBCdWZmZXIgdm1idWZmZXIs IHVpbnQ4IHZtZmxhZ3MsCiAJCQkJCQkJCQkgIFRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkLAog CQkJCQkJCQkJICBib29sIGNsZWFudXBfbG9jaywKIAkJCQkJCQkJCSAgYm9vbCBzZXRfcGRfYWxs X3ZpcywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXggODJiOGY3ZjJiYmMuLjgzMzExNGUw YTZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaApAQCAtMjQ5LDcgKzI0OSw3IEBAIHR5cGVk ZWYgc3RydWN0IHhsX2hlYXBfdXBkYXRlCiAgKiBNYWluIGRhdGEgc2VjdGlvbjoKICAqCiAgKgl4 bF9oZWFwX3BydW5lCi0gKgkJdWludDgJCQkJZmxhZ3MKKyAqCQl1aW50MTYJCQkJZmxhZ3MKICAq CVRyYW5zYWN0aW9uSWQJCQlzbmFwc2hvdF9jb25mbGljdF9ob3Jpem9uCiAgKgogICogQmxvY2sg MCBkYXRhIHNlY3Rpb246CkBAIC0yODQsNyArMjg0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVh cF91cGRhdGUKICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9wcnVuZQogewotCXVpbnQ4CQlm bGFnczsKKwl1aW50MTYJCWZsYWdzOwogCiAJLyoKIAkgKiBJZiBYTEhQX0hBU19DT05GTElDVF9I T1JJWk9OIGlzIHNldCwgdGhlIGNvbmZsaWN0IGhvcml6b24gWElEIGZvbGxvd3MsCkBAIC0yOTIs MTEgKzI5MiwxNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3BydW5lCiAJICovCiB9IHhsX2hl YXBfcHJ1bmU7CiAKLSNkZWZpbmUgU2l6ZU9mSGVhcFBydW5lIChvZmZzZXRvZih4bF9oZWFwX3By dW5lLCBmbGFncykgKyBzaXplb2YodWludDgpKQorI2RlZmluZSBTaXplT2ZIZWFwUHJ1bmUgKG9m ZnNldG9mKHhsX2hlYXBfcHJ1bmUsIGZsYWdzKSArIHNpemVvZih1aW50MTYpKQogCiAjZGVmaW5l CQlYTEhQX1NFVF9QRF9BTExfVklTCQkJKDEgPDwgMCkKIAotLyogdG8gaGFuZGxlIHJlY292ZXJ5 IGNvbmZsaWN0IGR1cmluZyBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkgKi8KKy8qCisgKiBU byBoYW5kbGUgcmVjb3ZlcnkgY29uZmxpY3QgZHVyaW5nIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3Rh bmRieSwgd2UgbXVzdCBrbm93CisgKiBpZiB0aGUgdGFibGUgaXMgYSBjYXRhbG9nIHRhYmxlLiBO b3RlIHRoYXQgaW4gdmlzaWJpbGl0eW1hcGRlZnMuaAorICogVklTSUJMSVRZTUFQX1hMT0dfQ0FU QUxPR19SRUwgaXMgYWxzbyBkZWZpbmVkIGFzICgxIDw8IDIpLiB4bF9oZWFwX3BydW5lCisgKiBy ZWNvcmRzIHNob3VsZCB1c2UgWExIUF9JU19DQVRBTE9HX1JFTCwgbm90IFZJU0lCSUxJWVRNQVBf WExPR19DQVRBTE9HX1JFTCAtLQorICogZXZlbiBpZiB0aGV5IG9ubHkgY29udGFpbiB1cGRhdGVz IHRvIHRoZSBWTS4KKyAqLwogI2RlZmluZQkJWExIUF9JU19DQVRBTE9HX1JFTAkJCSgxIDw8IDEp CiAKIC8qCkBAIC0zMzIsNiArMzM4LDE1IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfcHJ1bmUK ICNkZWZpbmUJCVhMSFBfSEFTX0RFQURfSVRFTVMJICAgICAgICAoMSA8PCA2KQogI2RlZmluZQkJ WExIUF9IQVNfTk9XX1VOVVNFRF9JVEVNUyAgICgxIDw8IDcpCiAKKy8qCisgKiBUaGUgeGxfaGVh cF9wcnVuZSByZWNvcmQncyBmbGFncyBtYXkgYWxzbyBjb250YWluIHdoaWNoIFZNIGJpdHMgdG8g c2V0LgorICogeGxfaGVhcF9wcnVuZSBzaG91bGQgYWx3YXlzIHVzZSB0aGUgWExIUF9WTV9BTExf VklTSUJMRSBhbmQKKyAqIFhMSFBfVk1fQUxMX0ZST1pFTiBmbGFncyBhbmQgdHJhbnNsYXRlIHRo ZW0gdG8gdGhlaXIgdmlzaWJpbGl0eW1hcGRlZnMuaAorICogZXF1aXZhbGVudHMsIFZJU0lCSUxJ VFlNQVBfQUxMX1ZJU0lCTEUgYW5kIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTi4KKyAqLworI2Rl ZmluZQkJWExIUF9WTV9BTExfVklTSUJMRQkJCSgxIDw8IDgpCisjZGVmaW5lCQlYTEhQX1ZNX0FM TF9GUk9aRU4JCQkoMSA8PCA5KQorCiAvKgogICogeGxocF9mcmVlemVfcGxhbiBkZXNjcmliZXMg aG93IHRvIGZyZWV6ZSBhIGdyb3VwIG9mIG9uZSBvciBtb3JlIGhlYXAgdHVwbGVzCiAgKiAoYXBw ZWFycyBpbiB4bF9oZWFwX3BydW5lJ3MgeGxocF9mcmVlemVfcGxhbnMgc3ViLXJlY29yZCkKQEAg LTQ5OCw3ICs1MTMsNyBAQCBleHRlcm4gWExvZ1JlY1B0ciBsb2dfaGVhcF92aXNpYmxlKFJlbGF0 aW9uIHJlbCwKIAkJCQkJCQkJICAgdWludDggdm1mbGFncyk7CiAKIC8qIGluIGhlYXBkZXNjLmMs IHNvIGl0IGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBmcm9udGVuZC9iYWNrZW5kIGNvZGUgKi8KLWV4 dGVybiB2b2lkIGhlYXBfeGxvZ19kZXNlcmlhbGl6ZV9wcnVuZV9hbmRfZnJlZXplKGNoYXIgKmN1 cnNvciwgdWludDggZmxhZ3MsCitleHRlcm4gdm9pZCBoZWFwX3hsb2dfZGVzZXJpYWxpemVfcHJ1 bmVfYW5kX2ZyZWV6ZShjaGFyICpjdXJzb3IsIHVpbnQxNiBmbGFncywKIAkJCQkJCQkJCQkJCSAg IGludCAqbnBsYW5zLCB4bGhwX2ZyZWV6ZV9wbGFuICoqcGxhbnMsCiAJCQkJCQkJCQkJCQkgICBP ZmZzZXROdW1iZXIgKipmcnpfb2Zmc2V0cywKIAkJCQkJCQkJCQkJCSAgIGludCAqbnJlZGlyZWN0 ZWQsIE9mZnNldE51bWJlciAqKnJlZGlyZWN0ZWQsCi0tIAoyLjQzLjAKCg== --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0014-Set-empty-pages-all-visible-in-XLOG_HEAP2_PRUNE_.patch" Content-Disposition: attachment; filename="v15-0014-Set-empty-pages-all-visible-in-XLOG_HEAP2_PRUNE_.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lba313 RnJvbSBiMDI0MmI5ODQzNGQ2MWJjYWZmMjM5YTU3MzFmM2QxZTY1ZjMxMGY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IFNlcCAyMDI1IDE2OjA0OjE4IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMTQvMjNdIFNldCBlbXB0eSBwYWdlcyBhbGwtdmlzaWJsZSBpbgogWExPR19IRUFQ Ml9QUlVORV9WQUNVVU1fU0NBTiByZWNvcmQKCkFzIHBhcnQgb2YgYSBwcm9qZWN0IHRvIGVsaW1p bmF0ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVjb3JkcywgZWxpbWluYXRlCnRoZWlyIHVzYWdlIGlu IHBoYXNlIEkgdmFjdXVtIG9mIGVtcHR5IHBhZ2VzLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYyB8IDU2ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggNTM5ZTUyNjc1NzQuLmU4NzIxNzYxMzkyIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0xODgyLDExICsxODgyLDIyIEBAIGxh enlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBCbG9j a051bWJlciBibGtubywKIAkJICovCiAJCWlmICghUGFnZUlzQWxsVmlzaWJsZShwYWdlKSkKIAkJ eworCQkJYm9vbAkJc2V0X3BkX2FsbF92aXMgPSB0cnVlOworCisJCQkvKiBMb2NrIHZtYnVmZmVy IGJlZm9yZSBlbnRlcmluZyBjcml0aWNhbCBzZWN0aW9uICovCisJCQlMb2NrQnVmZmVyKHZtYnVm ZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOworCiAJCQlTVEFSVF9DUklUX1NFQ1RJT04oKTsK IAogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsK IAorCQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKGJsa25vLAorCQkJCQkJCQkJIHZtYnVmZmVy LAorCQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJCQkJIFZJU0lC SUxJVFlNQVBfQUxMX0ZST1pFTiwKKwkJCQkJCQkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh2 YWNyZWwtPnJlbCkpOworCiAJCQlpZiAoUmVsYXRpb25OZWVkc1dBTCh2YWNyZWwtPnJlbCkpCiAJ CQl7CiAJCQkJLyoKQEAgLTE4OTcsMzQgKzE5MDgsMzcgQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0 eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCQkJ CSAqIGFsbC12aXNpYmxlIGFuZCBmaW5kIHRoYXQgdGhlIHBhZ2UgaXNuJ3QgaW5pdGlhbGl6ZWQs IHdoaWNoCiAJCQkJICogd2lsbCBjYXVzZSBhIFBBTklDLiBUbyBwcmV2ZW50IHRoYXQsIGNoZWNr IHdoZXRoZXIgdGhlIHBhZ2UKIAkJCQkgKiBoYXMgYmVlbiBwcmV2aW91c2x5IFdBTC1sb2dnZWQs IGFuZCBpZiBub3QsIGRvIHRoYXQgbm93LgotCQkJCSAqCi0JCQkJICogT3RoZXJ3aXNlLCBqdXN0 IGVtaXQgV0FMIGZvciBzZXR0aW5nIFBEX0FMTF9WSVNJQkxFIG9uIHRoZQotCQkJCSAqIGhlYXAg cGFnZS4gRG9pbmcgdGhpcyBpbiBhIHNlcGFyYXRlIHJlY29yZCBmcm9tIHNldHRpbmcgdGhlCi0J CQkJICogVk0gYWxsb3dzIHVzIHRvIG9taXQgdGhlIGhlYXAgcGFnZSBmcm9tIHRoZSBWTSBXQUwg Y2hhaW4uCiAJCQkJICovCiAJCQkJaWYgKFBhZ2VHZXRMU04ocGFnZSkgPT0gSW52YWxpZFhMb2dS ZWNQdHIpCisJCQkJewogCQkJCQlsb2dfbmV3cGFnZV9idWZmZXIoYnVmLCB0cnVlKTsKLQkJCQll bHNlCi0JCQkJCWxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUodmFjcmVsLT5yZWwsIGJ1ZiwKLQkJ CQkJCQkJCQkJICBJbnZhbGlkQnVmZmVyLAotCQkJCQkJCQkJCQkgIDAsCi0JCQkJCQkJCQkJCSAg SW52YWxpZFRyYW5zYWN0aW9uSWQsIC8qIGNvbmZsaWN0IHhpZCAqLwotCQkJCQkJCQkJCQkgIGZh bHNlLAkvKiBjbGVhbnVwIGxvY2sgKi8KLQkJCQkJCQkJCQkJICB0cnVlLCAvKiBzZXRfcGRfYWxs X3ZpcyAqLwotCQkJCQkJCQkJCQkgIFBSVU5FX1ZBQ1VVTV9TQ0FOLAkvKiByZWFzb24gKi8KLQkJ CQkJCQkJCQkJICBOVUxMLCAwLAotCQkJCQkJCQkJCQkgIE5VTEwsIDAsCi0JCQkJCQkJCQkJCSAg TlVMTCwgMCwKLQkJCQkJCQkJCQkJICBOVUxMLCAwKTsKKwkJCQkJc2V0X3BkX2FsbF92aXMgPSBm YWxzZTsKKwkJCQl9CisKKwkJCQkvKgorCQkJCSAqIEVtaXQgV0FMIGZvciBzZXR0aW5nIFBEX0FM TF9WSVNJQkxFIG9uIHRoZSBoZWFwIHBhZ2UgYW5kCisJCQkJICogc2V0dGluZyB0aGUgVk0uIElm IHdlIGVtaXR0ZWQgYSBuZXcgcGFnZSByZWNvcmQgZm9yIHRoZQorCQkJCSAqIHBhZ2UgYWJvdmUs IHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbgorCQkJCSAqIGlu Y2x1ZGVkIGluIHRoYXQgcmVjb3JkLgorCQkJCSAqLworCQkJCWxvZ19oZWFwX3BydW5lX2FuZF9m cmVlemUodmFjcmVsLT5yZWwsIGJ1ZiwKKwkJCQkJCQkJCQkgIHZtYnVmZmVyLAorCQkJCQkJCQkJ CSAgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8CisJCQkJCQkJCQkJICBWSVNJQklMSVRZTUFQ X0FMTF9GUk9aRU4sCisJCQkJCQkJCQkJICBJbnZhbGlkVHJhbnNhY3Rpb25JZCwgLyogY29uZmxp Y3QgeGlkICovCisJCQkJCQkJCQkJICBmYWxzZSwJLyogY2xlYW51cCBsb2NrICovCisJCQkJCQkJ CQkJICBzZXRfcGRfYWxsX3ZpcywKKwkJCQkJCQkJCQkgIFBSVU5FX1ZBQ1VVTV9TQ0FOLAkvKiBy ZWFzb24gKi8KKwkJCQkJCQkJCQkgIE5VTEwsIDAsCisJCQkJCQkJCQkJICBOVUxMLCAwLAorCQkJ CQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJCQkJCQkgIE5VTEwsIDApOwogCQkJfQogCi0JCQl2aXNp YmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sCi0JCQkJCQkJICBJbnZhbGlkWExvZ1Jl Y1B0ciwKLQkJCQkJCQkgIHZtYnVmZmVyLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCwKLQkJCQkJCQkg IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExf RlJPWkVOKTsKIAkJCUVORF9DUklUX1NFQ1RJT04oKTsKIAorCQkJTG9ja0J1ZmZlcih2bWJ1ZmZl ciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKKwogCQkJLyogQ291bnQgdGhlIG5ld2x5IGFsbC1mcm96 ZW4gcGFnZXMgZm9yIGxvZ2dpbmcgKi8KIAkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfcGFnZXMr KzsKIAkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzKys7Ci0tIAoyLjQzLjAK Cg== --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0016-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Disposition: attachment; filename="v15-0016-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lba615 RnJvbSA1NThkZjY5Y2FmMmM5Nzc5ODk3ODFkYTI3NTdhNGM5MzA3MjhlNTk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IFNlcCAyMDI1IDE3OjI5OjU5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMTYvMjNdIEVsaW1pbmF0ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZnJvbSB2YWN1dW0g cGhhc2UgSQogcHJ1bmUvZnJlZXplCgpJbnN0ZWFkIG9mIGVtaXR0aW5nIGEgc2VwYXJhdGUgV0FM IHJlY29yZCBmb3IgZXZlcnkgYmxvY2sgcmVuZGVyZWQKYWxsLXZpc2libGUvZnJvemVuIGJ5IHZh Y3V1bSdzIHBoYXNlIEksIGluY2x1ZGUgdGhlIGNoYW5nZXMgdG8gdGhlIFZNIGluCnRoZSBYTE9H X0hFQVAyX1BSVU5FX1ZBQ1VVTV9TQ0FOIHJlY29yZCBhbHJlYWR5IGVtaXR0ZWQuCgpUaGlzIGlz IG9ubHkgZW5hYmxlZCBmb3IgdmFjdXVtJ3MgcHJ1bmUvZnJlZXplIHdvcmssIG5vdCBmb3Igb24t YWNjZXNzCnBydW5pbmcuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg fCAxODQgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbS5oICAgICAgICAgfCAgIDMgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTEzIGluc2VydGlvbnMo KyksIDc0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXgg ZTNmOTk2N2UyNmMuLjQ3MzgyMmE4ZTI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwpAQCAtNjYyLDUwICs2NjIsNTggQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRp b24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJcHJzdGF0ZS5kZWFkb2Zmc2V0cyA9IHByZXN1 bHQtPmRlYWRvZmZzZXRzOwogCiAJLyoKLQkgKiBDYWxsZXIgbWF5IHVwZGF0ZSB0aGUgVk0gYWZ0 ZXIgd2UncmUgZG9uZS4gIFdlIGNhbiBrZWVwIHRyYWNrIG9mCi0JICogd2hldGhlciB0aGUgcGFn ZSB3aWxsIGJlIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuIGFmdGVyIHBydW5pbmcgYW5kCi0J ICogZnJlZXppbmcgdG8gaGVscCB0aGUgY2FsbGVyIHRvIGRvIHRoYXQuCisJICogS2VlcCB0cmFj ayBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSB3aWxsIGJlIGFsbC12aXNpYmxlIGFuZAorCSAq IGFsbC1mcm96ZW4gZm9yIHVzZSBpbiBvcHBvcnR1bmlzdGljIGZyZWV6aW5nIGFuZCB0byB1cGRh dGUgdGhlIFZNIGlmCisJICogdGhlIGNhbGxlciByZXF1ZXN0cyBpdC4KIAkgKgotCSAqIEN1cnJl bnRseSwgb25seSBWQUNVVU0gc2V0cyB0aGUgVk0gYml0cy4gIFRvIHNhdmUgdGhlIGVmZm9ydCwg b25seSBkbwotCSAqIHRoZSBib29ra2VlcGluZyBpZiB0aGUgY2FsbGVyIG5lZWRzIGl0LiAgQ3Vy cmVudGx5LCB0aGF0J3MgdGllZCB0bwotCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUsIGJ1dCBp dCBjb3VsZCBiZSBhIHNlcGFyYXRlIGZsYWcgaWYgeW91IHdhbnRlZAotCSAqIHRvIHVwZGF0ZSB0 aGUgVk0gYml0cyB3aXRob3V0IGFsc28gZnJlZXppbmcgb3IgZnJlZXplIHdpdGhvdXQgYWxzbwot CSAqIHNldHRpbmcgdGhlIFZNIGJpdHMuCisJICogQ3VycmVudGx5LCBvbmx5IFZBQ1VVTSBhdHRl bXB0cyBmcmVlemluZy4gQnV0IG90aGVyIGNhbGxlcnMgY291bGQuIFRoZQorCSAqIHZpc2liaWxp dHkgYm9va2tlZXBpbmcgaXMgcmVxdWlyZWQgZm9yIG9wcG9ydHVuaXN0aWMgZnJlZXppbmcgKGlu CisJICogYWRkaXRpb24gdG8gc2V0dGluZyB0aGUgVk0gYml0cykgYmVjYXVzZSB3ZSBvbmx5IGNv bnNpZGVyCisJICogb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXppbmcgdHVwbGVzIGlmIHRoZSB3aG9s ZSBwYWdlIHdvdWxkIGJlY29tZQorCSAqIGFsbC1mcm96ZW4gb3IgaWYgdGhlIHdob2xlIHBhZ2Ug d2lsbCBiZSBmcm96ZW4gZXhjZXB0IGZvciBkZWFkIHR1cGxlcworCSAqIHRoYXQgd2lsbCBiZSBy ZW1vdmVkIGJ5IHZhY3V1bS4gQnV0IGlmIGNvbnNpZGVyX3VwZGF0ZV92bSBpcyBmYWxzZSwKKwkg KiB3ZSdsbCBub3Qgc2V0IHRoZSBWTSBldmVuIGlmIHRoZSBwYWdlIGlzIGRpc2NvdmVyZWQgdG8g YmUgYWxsLXZpc2libGUuCiAJICoKLQkgKiBJbiBhZGRpdGlvbiB0byB0ZWxsaW5nIHRoZSBjYWxs ZXIgd2hldGhlciBpdCBjYW4gc2V0IHRoZSBWTSBiaXQsIHdlCi0JICogYWxzbyB1c2UgJ2FsbF92 aXNpYmxlJyBhbmQgJ2FsbF9mcm96ZW4nIGZvciBvdXIgb3duIGRlY2lzaW9uLW1ha2luZy4gSWYK LQkgKiB0aGUgd2hvbGUgcGFnZSB3b3VsZCBiZWNvbWUgZnJvemVuLCB3ZSBjb25zaWRlciBvcHBv cnR1bmlzdGljYWxseQotCSAqIGZyZWV6aW5nIHR1cGxlcy4gIFdlIHdpbGwgbm90IGJlIGFibGUg dG8gZnJlZXplIHRoZSB3aG9sZSBwYWdlIGlmIHRoZXJlCi0JICogYXJlIHR1cGxlcyBwcmVzZW50 IHRoYXQgYXJlIG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25lIG9yIGlmIHRoZXJlIGFyZQotCSAqIGRl YWQgdHVwbGVzIHdoaWNoIGFyZSBub3QgeWV0IHJlbW92YWJsZS4gIEhvd2V2ZXIsIGRlYWQgdHVw bGVzIHdoaWNoCi0JICogd2lsbCBiZSByZW1vdmVkIGJ5IHRoZSBlbmQgb2YgdmFjdXVtaW5nIHNo b3VsZCBub3QgcHJlY2x1ZGUgdXMgZnJvbQotCSAqIG9wcG9ydHVuaXN0aWNhbGx5IGZyZWV6aW5n LiAgQmVjYXVzZSBvZiB0aGF0LCB3ZSBkbyBub3QgaW1tZWRpYXRlbHkKLQkgKiBjbGVhciBhbGxf dmlzaWJsZSB3aGVuIHdlIHNlZSBMUF9ERUFEIGl0ZW1zLiAgV2UgZml4IHRoYXQgYWZ0ZXIKLQkg KiBzY2FubmluZyB0aGUgbGluZSBwb2ludGVycywgYmVmb3JlIHdlIHJldHVybiB0aGUgdmFsdWUg dG8gdGhlIGNhbGxlciwKLQkgKiBzbyB0aGF0IHRoZSBjYWxsZXIgZG9lc24ndCBzZXQgdGhlIFZN IGJpdCBpbmNvcnJlY3RseS4KKwkgKiBJZiBvbmx5IEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVmlT IGlzIHBhc3NlZCBhbmQgbm90CisJICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSwgcHJzdGF0ZS5h bGxfZnJvemVuIG11c3QgYmUgaW5pdGlhbGl6ZWQgdG8gZmFsc2UKKwkgKiBiZWNhdXNlIHdlIHdp bGwgbm90IGNhbGwgaGVhcF9wcmVwYXJlX2ZyZWV6ZV90dXBsZSgpIG9uIGVhY2ggdHVwbGUuCisJ ICoKKwkgKiBEZWFkIHR1cGxlcyB3aGljaCB3aWxsIGJlIHJlbW92ZWQgYnkgdGhlIGVuZCBvZiB2 YWN1dW1pbmcgc2hvdWxkIG5vdAorCSAqIHByZWNsdWRlIHVzIGZyb20gb3Bwb3J0dW5pc3RpY2Fs bHkgZnJlZXppbmcsIHNvIHdlIGRvIG5vdCBjbGVhcgorCSAqIGFsbF92aXNpYmxlIHdoZW4gd2Ug c2VlIExQX0RFQUQgaXRlbXMuIFdlIGZpeCB0aGF0IGFmdGVyIGRldGVybWluaW5nCisJICogd2hl dGhlciBvciBub3QgdG8gZnJlZXplIGJ1dCBiZWZvcmUgZGVjaWRpbmcgd2hldGhlciBvciBub3Qg dG8gdXBkYXRlCisJICogdGhlIFZNIHNvIHRoYXQgd2UgZG9uJ3Qgc2V0IHRoZSBWTSBiaXQgaW5j b3JyZWN0bHkuCisJICoKKwkgKiBJZiBub3QgZnJlZXppbmcgYW5kIG5vdCB1cGRhdGluZyB0aGUg Vk0sIHdlIGF2b2lkIHRoZSBleHRyYQorCSAqIGJvb2trZWVwaW5nLiBJbml0aWFsaXppbmcgYWxs X3Zpc2libGUgdG8gZmFsc2UgYWxsb3dzIHNraXBwaW5nIHRoZSB3b3JrCisJICogdG8gdXBkYXRl IHRoZW0gaW4gaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbCgpLgogCSAqLwog CWlmIChwcnN0YXRlLmF0dGVtcHRfZnJlZXplKQogCXsKIAkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9 IHRydWU7CiAJCXByc3RhdGUuYWxsX2Zyb3plbiA9IHRydWU7CiAJfQorCWVsc2UgaWYgKChvcHRp b25zICYgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WSVMpICE9IDApCisJeworCQlwcnN0YXRlLmFs bF92aXNpYmxlID0gdHJ1ZTsKKwkJcHJzdGF0ZS5hbGxfZnJvemVuID0gZmFsc2U7CisJfQogCWVs c2UKIAl7Ci0JCS8qCi0JCSAqIEluaXRpYWxpemluZyB0byBmYWxzZSBhbGxvd3Mgc2tpcHBpbmcg dGhlIHdvcmsgdG8gdXBkYXRlIHRoZW0gaW4KLQkJICogaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFu Z2VkX2xwX25vcm1hbCgpLgotCQkgKi8KIAkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IGZhbHNlOwog CQlwcnN0YXRlLmFsbF9mcm96ZW4gPSBmYWxzZTsKIAl9CiAKIAkvKgotCSAqIFRoZSB2aXNpYmls aXR5IGN1dG9mZiB4aWQgaXMgdGhlIG5ld2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZQot CSAqIHBhZ2UuICBJbiB0aGUgY29tbW9uIGNhc2UsIHRoaXMgd2lsbCBiZSBzZXQgYXMgdGhlIGNv bmZsaWN0IGhvcml6b24gdGhlCi0JICogY2FsbGVyIGNhbiB1c2UgZm9yIHVwZGF0aW5nIHRoZSBW TS4gIElmLCBhdCB0aGUgZW5kIG9mIGZyZWV6aW5nIGFuZAotCSAqIHBydW5pbmcsIHRoZSBwYWdl IGlzIGFsbC1mcm96ZW4sIHRoZXJlIGlzIG5vIHBvc3NpYmlsaXR5IHRoYXQgYW55Ci0JICogcnVu bmluZyB0cmFuc2FjdGlvbiBvbiB0aGUgc3RhbmRieSBkb2VzIG5vdCBzZWUgdHVwbGVzIG9uIHRo ZSBwYWdlIGFzCi0JICogYWxsLXZpc2libGUsIHNvIHRoZSBjb25mbGljdCBob3Jpem9uIHJlbWFp bnMgSW52YWxpZFRyYW5zYWN0aW9uSWQuCisJICogVGhlIHZpc2liaWxpdHkgY3V0b2ZmIHhpZCBp cyB0aGUgbmV3ZXN0IHhtaW4gb2YgbGl2ZSwgY29tbWl0dGVkIHR1cGxlcworCSAqIG9sZGVyIHRo YW4gT2xkZXN0WG1pbiBvbiB0aGUgcGFnZS4gVGhpcyBmaWVsZCBpcyBvbmx5IGtlcHQgdXAtdG8t ZGF0ZQorCSAqIGlmIHRoZSBwYWdlIGlzIGFsbC12aXNpYmxlLiBBcyBzb29uIGFzIGEgdHVwbGUg aXMgZW5jb3VudGVyZWQgdGhhdCBpcworCSAqIG5vdCB2aXNpYmxlIHRvIGFsbCwgdGhpcyBmaWVs ZCBpcyB1bm1haW50YWluZWQuIEFzIGxvbmcgYXMgaXQgaXMKKwkgKiBtYWludGFpbmVkLCBpdCBj YW4gYmUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24uCisJ ICogVGhpcyBpcyBtb3N0IGxpa2VseSB0byBoYXBwZW4gd2hlbiB1cGRhdGluZyB0aGUgVk0gYW5k L29yIGZyZWV6aW5nIGFsbAorCSAqIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLiBJdCBpcyB1cGRh dGVkIGJlZm9yZSByZXR1cm5pbmcgdG8gdGhlIGNhbGxlcgorCSAqIGJlY2F1c2UgdmFjdXVtIGRv ZXMgYXNzZXJ0LWJ1aWxkIG9ubHkgdmFsaWRhdGlvbiBvbiB0aGUgcGFnZSB1c2luZyB0aGlzCisJ ICogZmllbGQuCiAJICovCiAJcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZhbGlk VHJhbnNhY3Rpb25JZDsKIApAQCAtOTQzLDE2ICs5NTEsMTUgQEAgaGVhcF9wYWdlX3BydW5lX2Fu ZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJICogdmlzaWJpbGl0 eSBtYXAgYml0cyBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSBhbmQgZnJvbQogCSAq IGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIHZhcmlhYmxlcy4KIAkgKgotCSAqIFRob3VnaCBj YWxsZXJzIHNob3VsZCBzZXQgdGhlIFZNIGlmIFBEX0FMTF9WSVNJQkxFIGlzIHNldCwgaXQgaXMK LQkgKiBhbGxvd2VkIGZvciB0aGUgcGFnZS1sZXZlbCBiaXQgdG8gYmUgc2V0IGFuZCB0aGUgVk0g dG8gYmUgY2xlYXIuIFdlIGxvZwotCSAqIHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgb24gdGhlIGhl YXAgcGFnZSBpbiBhCi0JICogWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTiByZWNvcmQgYW5k IHNldHRpbmcgdGhlIFZNIGJpdHMgaW4gYSBsYXRlcgotCSAqIGVtaXR0ZWQgWExPR19IRUFQMl9W SVNJQkxFIHJlY29yZC4KKwkgKiBJdCBpcyBhbGxvd2VkIGZvciB0aGUgcGFnZS1sZXZlbCBiaXQg dG8gYmUgc2V0IGFuZCB0aGUgVk0gdG8gYmUgY2xlYXIsCisJICogaG93ZXZlciwgd2UgaGF2ZSBh IHN0cm9uZyBwcmVmZXJlbmNlIGZvciBrZWVwaW5nIHRoZW0gaW4gc3luYy4KIAkgKgotCSAqIFNl dHRpbmcgUERfQUxMX1ZJU0lCTEUgd2hlbiB3ZSBhcmUgbWFraW5nIHRoZSBjaGFuZ2VzIHRvIHRo ZSBwYWdlIHRoYXQKLQkgKiByZW5kZXIgaXQgYWxsLXZpc2libGUgYWxsb3dzIHVzIHRvIG9taXQg dGhlIGhlYXAgcGFnZSBmcm9tIHRoZSBXQUwKLQkgKiBjaGFpbiB3aGVuIGxhdGVyIHVwZGF0aW5n IHRoZSBWTSAtLSBldmVuIHdoZW4gY2hlY2tzdW1zL3dhbF9sb2dfaGludHMKLQkgKiBhcmUgZW5h YmxlZC4KKwkgKiBQcmlvciB0byBQb3N0Z3JlcyAxOSwgaXQgd2FzIHBvc3NpYmxlIGZvciB0aGUg cGFnZS1sZXZlbCBiaXQgdG8gYmUgc2V0CisJICogYW5kIHRoZSBWTSBiaXQgdG8gYmUgY2xlYXIu IFRoaXMgY291bGQgaGFwcGVuIGlmIHdlIGNyYXNoZWQgYWZ0ZXIKKwkgKiBzZXR0aW5nIFBEX0FM TF9WSVNJQkxFIGJ1dCBiZWZvcmUgc2V0dGluZyBiaXRzIGluIHRoZSBWTS4KKwkgKgorCSAqIEFz IHN1Y2gsIGl0IGlzIHBvc3NpYmxlIHRvIG9ubHkgdXBkYXRlIHRoZSBWTSB3aGVuIFBEX0FMTF9W SVNJQkxFIGlzCisJICogYWxyZWFkeSBzZXQuCiAJICovCiAJZG9fc2V0X3BkX3ZpcyA9IGZhbHNl OwogCWRvX3NldF92bSA9IGZhbHNlOwpAQCAtOTYxLDYgKzk2OCwxMCBAQCBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkJ CQkgICBibG9ja25vLCBidWZmZXIsIHZtYnVmZmVyLCBibGtfa25vd25fYXYsCiAJCQkJCQkJCQkJ ICAgJnByc3RhdGUsICZuZXdfdm1iaXRzLCAmZG9fc2V0X3BkX3Zpcyk7CiAKKwkvKiBMb2NrIHZt YnVmZmVyIGJlZm9yZSBlbnRlcmluZyBhIGNyaXRpY2FsIHNlY3Rpb24gKi8KKwlpZiAoZG9fc2V0 X3ZtKQorCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOworCiAJ LyogQW55IGVycm9yIHdoaWxlIGFwcGx5aW5nIHRoZSBjaGFuZ2VzIGlzIGNyaXRpY2FsICovCiAJ U1RBUlRfQ1JJVF9TRUNUSU9OKCk7CiAKQEAgLTk5MSw3ICsxMDAyLDcgQEAgaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQlNYXJr QnVmZmVyRGlydHlIaW50KGJ1ZmZlciwgdHJ1ZSk7CiAJfQogCi0JaWYgKGRvX3BydW5lIHx8IGRv X2ZyZWV6ZSB8fCBkb19zZXRfcGRfdmlzKQorCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUgfHwg ZG9fc2V0X3BkX3ZpcyB8fCBkb19zZXRfdm0pCiAJewogCQkvKiBBcHBseSB0aGUgcGxhbm5lZCBp dGVtIGNoYW5nZXMgYW5kIHJlcGFpciBwYWdlIGZyYWdtZW50YXRpb24uICovCiAJCWlmIChkb19w cnVuZSkKQEAgLTEwMDgsMTIgKzEwMTksMzIgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCWlmIChkb19zZXRfcGRfdmlzKQog CQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAKLQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7 CisJCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUgfHwgZG9fc2V0X3BkX3ZpcykKKwkJCU1hcmtC dWZmZXJEaXJ0eShidWZmZXIpOworCisJCWlmIChkb19zZXRfdm0pCisJCXsKKwkJCUFzc2VydChQ YWdlSXNBbGxWaXNpYmxlKHBhZ2UpKTsKKworCQkJb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBf c2V0X3ZtYml0cyhibG9ja25vLAorCQkJCQkJCQkJCQkJICB2bWJ1ZmZlciwgbmV3X3ZtYml0cywK KwkJCQkJCQkJCQkJCSAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKTsKKwkJCWlm IChvbGRfdm1iaXRzID09IG5ld192bWJpdHMpCisJCQl7CisJCQkJTG9ja0J1ZmZlcih2bWJ1ZmZl ciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKKwkJCQkvKiBVbnNldCBzbyB3ZSBkb24ndCBlbWl0IFdB TCBzaW5jZSBubyBjaGFuZ2Ugb2NjdXJyZWQgKi8KKwkJCQlkb19zZXRfdm0gPSBmYWxzZTsKKwkJ CX0KKwkJfQogCiAJCS8qCi0JCSAqIEVtaXQgYSBXQUwgWExPR19IRUFQMl9QUlVORSogcmVjb3Jk IHNob3dpbmcgd2hhdCB3ZSBkaWQKKwkJICogRW1pdCBhIFdBTCBYTE9HX0hFQVAyX1BSVU5FKiBy ZWNvcmQgc2hvd2luZyB3aGF0IHdlIGRpZCBJZiB3ZSB3ZXJlCisJCSAqIG9ubHkgdXBkYXRpbmcg dGhlIFZNIGFuZCBpdCB0dXJucyBvdXQgaXQgd2FzIGFscmVhZHkgc2V0LCB3ZSB3aWxsCisJCSAq IGhhdmUgdW5zZXQgZG9fc2V0X3ZtIGVhcmxpZXIuIEFzIHN1Y2gsIGNoZWNrIGl0IGFnYWluIGJl Zm9yZQorCQkgKiBlbWl0dGluZyB0aGUgcmVjb3JkLgogCQkgKi8KLQkJaWYgKFJlbGF0aW9uTmVl ZHNXQUwocmVsYXRpb24pKQorCQlpZiAoUmVsYXRpb25OZWVkc1dBTChyZWxhdGlvbikgJiYKKwkJ CShkb19wcnVuZSB8fCBkb19mcmVlemUgfHwgZG9fc2V0X3BkX3ZpcyB8fCBkb19zZXRfdm0pKQog CQl7CiAJCQkvKgogCQkJICogVGhlIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uIGZvciB0aGUgd2hv bGUgcmVjb3JkIHNob3VsZCBiZSB0aGUKQEAgLTEwMjUsMTUgKzEwNTYsNDUgQEAgaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQkg KiBvbiB0aGUgc3RhbmRieSB3aXRoIHhpZHMgb2xkZXIgdGhhbiB0aGUgeW91bmdlc3QgdHVwbGUg dGhpcwogCQkJICogcmVjb3JkIHdpbGwgZnJlZXplIHdpbGwgY29uZmxpY3QuCiAJCQkgKi8KLQkJ CVRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkOworCQkJVHJhbnNhY3Rpb25JZCBjb25mbGljdF94 aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAotCQkJaWYgKFRyYW5zYWN0aW9uSWRGb2xsb3dz KGZyel9jb25mbGljdF9ob3Jpem9uLCBwcnN0YXRlLmxhdGVzdF94aWRfcmVtb3ZlZCkpCisJCQkv KgorCQkJICogSWYgd2UgYXJlIHVwZGF0aW5nIHRoZSBWTSwgdGhlIGNvbmZsaWN0IGhvcml6b24g aXMgYWxtb3N0CisJCQkgKiBhbHdheXMgdGhlIHZpc2liaWxpdHkgY3V0b2ZmIFhJRC4KKwkJCSAq CisJCQkgKiBTZXBhcmF0ZWx5LCBpZiB3ZSBhcmUgZnJlZXppbmcgYW55IHR1cGxlcywgYXMgYW4g b3B0aW1pemF0aW9uLAorCQkJICogd2UgY2FuIHVzZSB0aGUgdmlzaWJpbGl0eV9jdXRvZmZfeGlk IGFzIHRoZSBjb25mbGljdCBob3Jpem9uIGlmCisJCQkgKiB0aGUgcGFnZSB3aWxsIGJlIGFsbC1m cm96ZW4uIFRoaXMgaXMgdHJ1ZSBldmVuIGlmIHRoZXJlIGFyZQorCQkJICogTFBfREVBRCBsaW5l IHBvaW50ZXJzIGJlY2F1c2Ugd2UgaWdub3JlZCB0aG9zZSB3aGVuIG1haW50YWluaW5nCisJCQkg KiB0aGUgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLiBUaGlzIHdpbGwgaGF2ZSBiZWVuIGNhbGN1bGF0 ZWQKKwkJCSAqIGVhcmxpZXIgYXMgdGhlIGZyel9jb25mbGljdF9ob3Jpem9uIHdoZW4gd2UgZGV0 ZXJtaW5lZCB3ZSB3b3VsZAorCQkJICogZnJlZXplLgorCQkJICovCisJCQlpZiAoZG9fc2V0X3Zt KQorCQkJCWNvbmZsaWN0X3hpZCA9IHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkOworCQkJ ZWxzZSBpZiAoZG9fZnJlZXplKQogCQkJCWNvbmZsaWN0X3hpZCA9IGZyel9jb25mbGljdF9ob3Jp em9uOwotCQkJZWxzZQorCisJCQkvKgorCQkJICogSWYgd2UgYXJlIHJlbW92aW5nIHR1cGxlcyB3 aXRoIGEgeW91bmdlciB4bWF4IHRoYW4gb3VyIHNvIGZhcgorCQkJICogY2FsY3VsYXRlZCBjb25m bGljdF94aWQsIHdlIG11c3QgdXNlIHRoaXMgYXMgb3VyIGhvcml6b24uCisJCQkgKi8KKwkJCWlm IChUcmFuc2FjdGlvbklkRm9sbG93cyhwcnN0YXRlLmxhdGVzdF94aWRfcmVtb3ZlZCwgY29uZmxp Y3RfeGlkKSkKIAkJCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmxhdGVzdF94aWRfcmVtb3ZlZDsK IAorCQkJLyoKKwkJCSAqIFdlIGNhbiBvbWl0IHRoZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9u IGlmIHdlIGFyZSBub3QgcHJ1bmluZworCQkJICogb3IgZnJlZXppbmcgYW55IHR1cGxlcyBhbmQg YXJlIHNldHRpbmcgYW4gYWxyZWFkeSBhbGwtdmlzaWJsZQorCQkJICogcGFnZSBhbGwtZnJvemVu IGluIHRoZSBWTS4gSW4gdGhpcyBjYXNlLCBhbGwgb2YgdGhlIHR1cGxlcyBvbgorCQkJICogdGhl IHBhZ2UgbXVzdCBhbHJlYWR5IGJlIHZpc2libGUgdG8gYWxsIE1WQ0Mgc25hcHNob3RzIG9uIHRo ZQorCQkJICogc3RhbmRieS4KKwkJCSAqLworCQkJaWYgKCFkb19wcnVuZSAmJiAhZG9fZnJlZXpl ICYmIGRvX3NldF92bSAmJgorCQkJCWJsa19rbm93bl9hdiAmJiAobmV3X3ZtYml0cyAmIFZJU0lC SUxJVFlNQVBfQUxMX0ZST1pFTikpCisJCQkJY29uZmxpY3RfeGlkID0gSW52YWxpZFRyYW5zYWN0 aW9uSWQ7CisKIAkJCWxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUocmVsYXRpb24sIGJ1ZmZlciwK LQkJCQkJCQkJCSAgSW52YWxpZEJ1ZmZlciwgMCwKKwkJCQkJCQkJCSAgdm1idWZmZXIsIG5ld192 bWJpdHMsCiAJCQkJCQkJCQkgIGNvbmZsaWN0X3hpZCwKIAkJCQkJCQkJCSAgdHJ1ZSwKIAkJCQkJ CQkJCSAgZG9fc2V0X3BkX3ZpcywKQEAgLTEwNDcsNiArMTEwOCw5IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCiAJRU5EX0NS SVRfU0VDVElPTigpOwogCisJaWYgKGRvX3NldF92bSkKKwkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwg QlVGRkVSX0xPQ0tfVU5MT0NLKTsKKwogCUFzc2VydCghcHJzdGF0ZS5hbGxfdmlzaWJsZSB8fCAo cHJzdGF0ZS5scGRlYWRfaXRlbXMgPT0gMCkpOwogCiAJLyoKQEAgLTEwNzgsMzIgKzExNDIsNiBA QCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1 ZmZlciwKIAl9CiAjZW5kaWYKIAotCS8qIE5vdyBzZXQgdGhlIFZNICovCi0JaWYgKGRvX3NldF92 bSkKLQl7Ci0JCVRyYW5zYWN0aW9uSWQgdm1fY29uZmxpY3RfaG9yaXpvbjsKLQotCQlBc3NlcnQo KG5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpICE9IDApOwotCi0JCS8qCi0J CSAqIFRoZSBjb25mbGljdCBob3Jpem9uIGZvciB0aGF0IHJlY29yZCBtdXN0IGJlIHRoZSBuZXdl c3QgeG1pbiBvbiB0aGUKLQkJICogcGFnZS4gIEhvd2V2ZXIsIGlmIHRoZSBwYWdlIGlzIGNvbXBs ZXRlbHkgZnJvemVuLCB0aGVyZSBjYW4gYmUgbm8KLQkJICogY29uZmxpY3QgYW5kIHRoZSB2bV9j b25mbGljdF9ob3Jpem9uIHNob3VsZCByZW1haW4KLQkJICogSW52YWxpZFRyYW5zYWN0aW9uSWQu ICBUaGlzIGluY2x1ZGVzIHRoZSBjYXNlIHRoYXQgd2UganVzdCBmcm96ZQotCQkgKiBhbGwgdGhl IHR1cGxlczsgdGhlIHBydW5lLWZyZWV6ZSByZWNvcmQgaW5jbHVkZWQgdGhlIGNvbmZsaWN0IFhJ RAotCQkgKiBhbHJlYWR5IHNvIGEgc25hcHNob3RDb25mbGljdEhvcml6b24gc3VmZmljaWVudCB0 byBtYWtlIGV2ZXJ5dGhpbmcKLQkJICogc2FmZSBmb3IgUkVETyB3YXMgbG9nZ2VkIHdoZW4gdGhl IHBhZ2UncyB0dXBsZXMgd2VyZSBmcm96ZW4uCi0JCSAqLwotCQlpZiAocHJzdGF0ZS5hbGxfZnJv emVuKQotCQkJdm1fY29uZmxpY3RfaG9yaXpvbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwotCQll bHNlCi0JCQl2bV9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94 aWQ7Ci0JCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3NldChyZWxhdGlvbiwgYmxvY2tubywK LQkJCQkJCQkJCSAgIEludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJCQkJICAgdm1idWZmZXIsIHZt X2NvbmZsaWN0X2hvcml6b24sCi0JCQkJCQkJCQkgICBuZXdfdm1iaXRzKTsKLQl9Ci0KIAkvKiBD b3B5IGluZm9ybWF0aW9uIGJhY2sgZm9yIGNhbGxlciAqLwogCXByZXN1bHQtPm5kZWxldGVkID0g cHJzdGF0ZS5uZGVsZXRlZDsKIAlwcmVzdWx0LT5ubmV3bHBkZWFkID0gcHJzdGF0ZS5uZGVhZDsK QEAgLTIyNjEsNyArMjI5OSw3IEBAIGhlYXBfbG9nX2ZyZWV6ZV9wbGFuKEhlYXBUdXBsZUZyZWV6 ZSAqdHVwbGVzLCBpbnQgbnR1cGxlcywKICAqIC0gUmVhcGluZzogRHVyaW5nIHZhY3V1bSBwaGFz ZSBJSUksIGl0ZW1zIHRoYXQgYXJlIGFscmVhZHkgTFBfREVBRCBhcmUKICAqICAgbWFya2VkIGFz IHVudXNlZC4KICAqCi0gKiAtIFZNIHVwZGF0ZXM6IEFmdGVyIHZhY3V1bSBwaGFzZSBJSUksIHRo ZSBoZWFwIHBhZ2UgbWF5IGJlIG1hcmtlZAorICogLSBWTSB1cGRhdGVzOiBBZnRlciB2YWN1dW0g cGhhc2VzIEkgYW5kIElJSSwgdGhlIGhlYXAgcGFnZSBtYXkgYmUgbWFya2VkCiAgKiAgIGFsbC12 aXNpYmxlIGFuZCBhbGwtZnJvemVuLgogICoKICAqIFRoZXNlIGNoYW5nZXMgYWxsIGhhcHBlbiB0 b2dldGhlciwgc28gd2UgdXNlIGEgc2luZ2xlIFdBTCByZWNvcmQgZm9yIHRoZW0KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFw YW0uaAppbmRleCA0OTNkZGVhY2JjMC4uMzk0ZjYyYTIxZTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAg LTIzOSw3ICsyMzksOCBAQCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVJlc3VsdAogCSAqIHZp c2liaWxpdHkgbWFwIGJlZm9yZSB1cGRhdGluZyBpdCBkdXJpbmcgcGhhc2UgSSBvZiB2YWN1dW1p bmcuCiAJICogbmV3X3ZtYml0cyBhcmUgdGhlIHN0YXRlIG9mIHRob3NlIGJpdHMgYWZ0ZXIgcGhh c2UgSSBvZiB2YWN1dW1pbmcuCiAJICoKLQkgKiBUaGVzZSBhcmUgb25seSBzZXQgaWYgdGhlIEhF QVBfUEFHRV9QUlVORV9VUERBVEVfVklTIG9wdGlvbiBpcyBzZXQuCisJICogVGhlc2UgYXJlIG9u bHkgc2V0IGlmIHRoZSBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZJUyBvcHRpb24gaXMgc2V0IGFu ZAorCSAqIHdlIGhhdmUgYWN0dWFsbHkgdXBkYXRlZCB0aGUgVk0uCiAJICovCiAJdWludDgJCW5l d192bWJpdHM7CiAJdWludDgJCW9sZF92bWJpdHM7Ci0tIAoyLjQzLjAKCg== --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0017-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Disposition: attachment; filename="v15-0017-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lba916 RnJvbSAzZDU4OTdmNzQyNDMxODU0Y2ZjOWU1Y2MzMDBhOTJhZTI1NmIzNDk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IFNlcCAyMDI1IDE3OjQyOjU0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMTcvMjNdIFJlbW92ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZW50aXJlbHkKClRoZXJl IGFyZSBub3cgbm8gdXNlcnMgb2YgdGhpcywgc28gZWxpbWluYXRlIGl0IGVudGlyZWx5LgpUaGlz IGluY2x1ZGVzIHRoZSB4bF9oZWFwX3Zpc2libGUgc3RydWN0IGFzIHdlbGwgYXMgYWxsIG9mIHRo ZSBmdW5jdGlvbnMKdXNlZCB0byBlbWl0IGFuZCByZXBsYXkgWExPR19IRUFQMl9WSVNJQkxFIHJl Y29yZHMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMgICAgICB8ICA0 ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAgIHwgNDAgKystLS0t LS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYyAgICB8IDk0ICsrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg ICAgICB8ICA2ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgIHwg MTYgKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jICB8IDg1ICst LS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNj LmMgICB8IDEwIC0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyB8 ICAxIC0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAgICAgfCAxMiArLS0K IHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oICAgICAgICAgfCAxOSAtLS0tLQogc3Jj L2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaCAgICAgICB8IDE1ICsrLS0KIHNyYy9pbmNs dWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oICAgfCAgOSAtLS0KIHNyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgfCAgMSAtCiAxMyBmaWxlcyBjaGFuZ2VkLCA0MSBp bnNlcnRpb25zKCspLCAyNzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL2NvbW1vbi9idWZtYXNrLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1h c2suYwppbmRleCBiYjI2MGNmZmE2OC4uNWYwN2YxNzk0MTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9jb21tb24vYnVmbWFzay5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21t b24vYnVmbWFzay5jCkBAIC01Niw4ICs1Niw4IEBAIG1hc2tfcGFnZV9oaW50X2JpdHMoUGFnZSBw YWdlKQogCiAJLyoKIAkgKiBEdXJpbmcgcmVwbGF5LCBpZiB0aGUgcGFnZSBMU04gaGFzIGFkdmFu Y2VkIHBhc3Qgb3VyIFhMT0cgcmVjb3JkJ3MgTFNOLAotCSAqIHdlIGRvbid0IG1hcmsgdGhlIHBh Z2UgYWxsLXZpc2libGUuIFNlZSBoZWFwX3hsb2dfdmlzaWJsZSgpIGZvcgotCSAqIGRldGFpbHMu CisJICogd2UgZG9uJ3QgbWFyayB0aGUgcGFnZSBhbGwtdmlzaWJsZS4gU2VlIGhlYXBfeGxvZ19w cnVuZV9hbmRfZnJlZXplKCkKKwkgKiBmb3IgbW9yZSBkZXRhaWxzLgogCSAqLwogCVBhZ2VDbGVh ckFsbFZpc2libGUocGFnZSk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IGQ0ZDgz YTZmOWZlLi4xNGEyOTk2YjllZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTI1MjQs MTEgKzI1MjQsMTEgQEAgaGVhcF9tdWx0aV9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIFR1cGxl VGFibGVTbG90ICoqc2xvdHMsIGludCBudHVwbGVzLAogCQllbHNlIGlmIChhbGxfZnJvemVuX3Nl dCkKIAkJewogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7Ci0JCQl2aXNpYmlsaXR5bWFwX3Nl dF92bWJpdHMoQnVmZmVyR2V0QmxvY2tOdW1iZXIoYnVmZmVyKSwKLQkJCQkJCQkJCSB2bWJ1ZmZl ciwKLQkJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKLQkJCQkJCQkJCSBWSVNJ QklMSVRZTUFQX0FMTF9GUk9aRU4sCi0JCQkJCQkJCQkgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo cmVsYXRpb24pKTsKKwkJCXZpc2liaWxpdHltYXBfc2V0KEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1 ZmZlciksCisJCQkJCQkJICB2bWJ1ZmZlciwKKwkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJ U0lCTEUgfAorCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOLAorCQkJCQkJCSAgUmVs YXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKTsKIAkJfQogCiAJCS8qCkBAIC04Nzk4LDM2 ICs4Nzk4LDYgQEAgYm90dG9tdXBfc29ydF9hbmRfc2hyaW5rKFRNX0luZGV4RGVsZXRlT3AgKmRl bHN0YXRlKQogCXJldHVybiBuYmxvY2tzZmF2b3JhYmxlOwogfQogCi0vKgotICogUGVyZm9ybSBY TG9nSW5zZXJ0IGZvciBhIGhlYXAtdmlzaWJsZSBvcGVyYXRpb24uICAnYmxvY2snIGlzIHRoZSBi bG9jawotICogYmVpbmcgbWFya2VkIGFsbC12aXNpYmxlLCBhbmQgdm1fYnVmZmVyIGlzIHRoZSBi dWZmZXIgY29udGFpbmluZyB0aGUKLSAqIGNvcnJlc3BvbmRpbmcgdmlzaWJpbGl0eSBtYXAgYmxv Y2suICBCb3RoIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBtb2RpZmllZAotICogYW5kIGRpcnRp ZWQuCi0gKgotICogc25hcHNob3RDb25mbGljdEhvcml6b24gY29tZXMgZnJvbSB0aGUgbGFyZ2Vz dCB4bWluIG9uIHRoZSBwYWdlIGJlaW5nCi0gKiBtYXJrZWQgYWxsLXZpc2libGUuICBSRURPIHJv dXRpbmUgdXNlcyBpdCB0byBnZW5lcmF0ZSByZWNvdmVyeSBjb25mbGljdHMuCi0gKi8KLVhMb2dS ZWNQdHIKLWxvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgdm1fYnVmZmVyLAot CQkJCSBUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLCB1aW50OCB2bWZsYWdz KQotewotCXhsX2hlYXBfdmlzaWJsZSB4bHJlYzsKLQlYTG9nUmVjUHRyCXJlY3B0cjsKLQotCUFz c2VydChCdWZmZXJJc1ZhbGlkKHZtX2J1ZmZlcikpOwotCi0JeGxyZWMuc25hcHNob3RDb25mbGlj dEhvcml6b24gPSBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKLQl4bHJlYy5mbGFncyA9IHZtZmxh Z3M7Ci0JaWYgKFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKSkKLQkJ eGxyZWMuZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9YTE9HX0NBVEFMT0dfUkVMOwotCVhMb2dCZWdp bkluc2VydCgpOwotCVhMb2dSZWdpc3RlckRhdGEoJnhscmVjLCBTaXplT2ZIZWFwVmlzaWJsZSk7 Ci0JWExvZ1JlZ2lzdGVyQnVmZmVyKDAsIHZtX2J1ZmZlciwgMCk7Ci0JcmVjcHRyID0gWExvZ0lu c2VydChSTV9IRUFQMl9JRCwgWExPR19IRUFQMl9WSVNJQkxFKTsKLQotCXJldHVybiByZWNwdHI7 Ci19Ci0KIC8qCiAgKiBQZXJmb3JtIFhMb2dJbnNlcnQgZm9yIGEgaGVhcC11cGRhdGUgb3BlcmF0 aW9uLiAgQ2FsbGVyIG11c3QgYWxyZWFkeQogICogaGF2ZSBtb2RpZmllZCB0aGUgYnVmZmVyKHMp IGFuZCBtYXJrZWQgdGhlbSBkaXJ0eS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbV94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5j CmluZGV4IGRjZDBkYmE0NWEwLi41MDI1MTdmYTYyZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1feGxvZy5jCkBAIC0yNTYsNyArMjU2LDcgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShY TG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAogCQkvKiBXZSBkb24ndCBoYXZlIHJlbGF0aW9uIG5h bWUgZHVyaW5nIHJlY292ZXJ5LCBzbyB1c2UgcmVsZmlsZW5vZGUgKi8KIAkJcmVsbmFtZSA9IHBz cHJpbnRmKCIldSIsIHJsb2NhdG9yLnJlbE51bWJlcik7Ci0JCW9sZF92bWJpdHMgPSB2aXNpYmls aXR5bWFwX3NldF92bWJpdHMoYmxrbm8sIHZtYnVmZmVyLCB2bWZsYWdzLCByZWxuYW1lKTsKKwkJ b2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfc2V0KGJsa25vLCB2bWJ1ZmZlciwgdm1mbGFncywg cmVsbmFtZSk7CiAKIAkJLyogT25seSBzZXQgVk0gcGFnZSBMU04gaWYgd2UgbW9kaWZpZWQgdGhl IHBhZ2UgKi8KIAkJaWYgKG9sZF92bWJpdHMgIT0gdm1mbGFncykKQEAgLTI3NCw4MSArMjc0LDYg QEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJWExv Z1JlY29yZFBhZ2VXaXRoRnJlZVNwYWNlKHJsb2NhdG9yLCBibGtubywgZnJlZXNwYWNlKTsKIH0K IAotLyoKLSAqIFJlcGxheSBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVjb3Jkcy4KLSAqCi0gKiBJdCBp cyBpbXBlcmF0aXZlIHRoYXQgdGhlIHByZXZpb3VzbHkgZW1pdHRlZCByZWNvcmQgc2V0IFBEX0FM TF9WSVNJQkxFIG9uCi0gKiB0aGUgaGVhcCBwYWdlLiBXZSBtdXN0IG5ldmVyIGVuZCB1cCB3aXRo IGEgc2l0dWF0aW9uIHdoZXJlIHRoZSB2aXNpYmlsaXR5Ci0gKiBtYXAgYml0IGlzIHNldCwgYW5k IHRoZSBwYWdlLWxldmVsIFBEX0FMTF9WSVNJQkxFIGJpdCBpcyBjbGVhci4gIElmIHRoYXQKLSAq IHdlcmUgdG8gb2NjdXIsIHRoZW4gYSBzdWJzZXF1ZW50IHBhZ2UgbW9kaWZpY2F0aW9uIHdvdWxk IGZhaWwgdG8gY2xlYXIgdGhlCi0gKiB2aXNpYmlsaXR5IG1hcCBiaXQuCi0gKi8KLXN0YXRpYyB2 b2lkCi1oZWFwX3hsb2dfdmlzaWJsZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKLXsKLQlYTG9n UmVjUHRyCWxzbiA9IHJlY29yZC0+RW5kUmVjUHRyOwotCXhsX2hlYXBfdmlzaWJsZSAqeGxyZWMg PSAoeGxfaGVhcF92aXNpYmxlICopIFhMb2dSZWNHZXREYXRhKHJlY29yZCk7Ci0JQnVmZmVyCQl2 bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7Ci0JUmVsRmlsZUxvY2F0b3IgcmxvY2F0b3I7Ci0JQmxv Y2tOdW1iZXIgYmxrbm87Ci0KLQlBc3NlcnQoKHhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBf WExPR19WQUxJRF9CSVRTKSA9PSB4bHJlYy0+ZmxhZ3MpOwotCi0JWExvZ1JlY0dldEJsb2NrVGFn KHJlY29yZCwgMCwgJnJsb2NhdG9yLCBOVUxMLCAmYmxrbm8pOwotCi0JLyoKLQkgKiBJZiB0aGVy ZSBhcmUgYW55IEhvdCBTdGFuZGJ5IHRyYW5zYWN0aW9ucyBydW5uaW5nIHRoYXQgaGF2ZSBhbiB4 bWluCi0JICogaG9yaXpvbiBvbGQgZW5vdWdoIHRoYXQgdGhpcyBwYWdlIGlzbid0IGFsbC12aXNp YmxlIGZvciB0aGVtLCB0aGV5Ci0JICogbWlnaHQgaW5jb3JyZWN0bHkgZGVjaWRlIHRoYXQgYW4g aW5kZXgtb25seSBzY2FuIGNhbiBza2lwIGEgaGVhcCBmZXRjaC4KLQkgKgotCSAqIE5COiBJdCBt aWdodCBiZSBiZXR0ZXIgdG8gdGhyb3cgc29tZSBraW5kIG9mICJzb2Z0IiBjb25mbGljdCBoZXJl IHRoYXQKLQkgKiBmb3JjZXMgYW55IGluZGV4LW9ubHkgc2NhbiB0aGF0IGlzIGluIGZsaWdodCB0 byBwZXJmb3JtIGhlYXAgZmV0Y2hlcywKLQkgKiByYXRoZXIgdGhhbiBraWxsaW5nIHRoZSB0cmFu c2FjdGlvbiBvdXRyaWdodC4KLQkgKi8KLQlpZiAoSW5Ib3RTdGFuZGJ5KQotCQlSZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24s Ci0JCQkJCQkJCQkJCXhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBfWExPR19DQVRBTE9HX1JF TCwKLQkJCQkJCQkJCQkJcmxvY2F0b3IpOwotCi0JLyoKLQkgKiBFdmVuIGlmIHRoZSBoZWFwIHJl bGF0aW9uIHdhcyBkcm9wcGVkIG9yIHRydW5jYXRlZCBhbmQgdGhlIHByZXZpb3VzbHkKLQkgKiBl bWl0dGVkIHJlY29yZCBza2lwcGVkIHRoZSBoZWFwIHBhZ2UgdXBkYXRlIGR1ZSB0byB0aGlzIExT TiBpbnRlcmxvY2ssCi0JICogaXQncyBzdGlsbCBzYWZlIHRvIHVwZGF0ZSB0aGUgdmlzaWJpbGl0 eSBtYXAuICBBbnkgV0FMIHJlY29yZCB0aGF0Ci0JICogY2xlYXJzIHRoZSB2aXNpYmlsaXR5IG1h cCBiaXQgZG9lcyBzbyBiZWZvcmUgY2hlY2tpbmcgdGhlIHBhZ2UgTFNOLCBzbwotCSAqIGFueSBi aXRzIHRoYXQgbmVlZCB0byBiZSBjbGVhcmVkIHdpbGwgc3RpbGwgYmUgY2xlYXJlZC4KLQkgKi8K LQlpZiAoWExvZ1JlYWRCdWZmZXJGb3JSZWRvRXh0ZW5kZWQocmVjb3JkLCAwLCBSQk1fWkVST19P Tl9FUlJPUiwgZmFsc2UsCi0JCQkJCQkJCQkgICZ2bWJ1ZmZlcikgPT0gQkxLX05FRURTX1JFRE8p Ci0JewotCQlQYWdlCQl2bXBhZ2UgPSBCdWZmZXJHZXRQYWdlKHZtYnVmZmVyKTsKLQkJUmVsYXRp b24JcmVsbjsKLQkJdWludDgJCXZtYml0czsKLQotCQkvKiBpbml0aWFsaXplIHRoZSBwYWdlIGlm IGl0IHdhcyByZWFkIGFzIHplcm9zICovCi0JCWlmIChQYWdlSXNOZXcodm1wYWdlKSkKLQkJCVBh Z2VJbml0KHZtcGFnZSwgQkxDS1NaLCAwKTsKLQotCQkvKiByZW1vdmUgVklTSUJJTElUWU1BUF9Y TE9HXyogKi8KLQkJdm1iaXRzID0geGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9C SVRTOwotCi0JCS8qCi0JCSAqIFhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVuZGVkIGxvY2tlZCB0 aGUgYnVmZmVyLiBCdXQKLQkJICogdmlzaWJpbGl0eW1hcF9zZXQgd2lsbCBoYW5kbGUgbG9ja2lu ZyBpdHNlbGYuCi0JCSAqLwotCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxP Q0spOwotCi0JCXJlbG4gPSBDcmVhdGVGYWtlUmVsY2FjaGVFbnRyeShybG9jYXRvcik7Ci0KLQkJ dmlzaWJpbGl0eW1hcF9zZXQocmVsbiwgYmxrbm8sIGxzbiwgdm1idWZmZXIsCi0JCQkJCQkgIHhs cmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwgdm1iaXRzKTsKLQotCQlSZWxlYXNlQnVmZmVy KHZtYnVmZmVyKTsKLQkJRnJlZUZha2VSZWxjYWNoZUVudHJ5KHJlbG4pOwotCX0KLQllbHNlIGlm IChCdWZmZXJJc1ZhbGlkKHZtYnVmZmVyKSkKLQkJVW5sb2NrUmVsZWFzZUJ1ZmZlcih2bWJ1ZmZl cik7Ci19Ci0KIC8qCiAgKiBHaXZlbiBhbiAiaW5mb2JpdHMiIGZpZWxkIGZyb20gYW4gWExvZyBy ZWNvcmQsIHNldCB0aGUgY29ycmVjdCBiaXRzIGluIHRoZQogICogZ2l2ZW4gaW5mb21hc2sgYW5k IGluZm9tYXNrMiBmb3IgdGhlIHR1cGxlIHRvdWNoZWQgYnkgdGhlIHJlY29yZC4KQEAgLTcyOCw4 ICs2NTMsOCBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCSAqCiAJICogSW4gcmVjb3ZlcnksIHdlIGV4cGVjdCBubyBvdGhlciB3cml0ZXJzLCBzbyB3 cml0aW5nIHRvIHRoZSBWTSBwYWdlCiAJICogd2l0aG91dCBob2xkaW5nIGEgbG9jayBvbiB0aGUg aGVhcCBwYWdlIGlzIGNvbnNpZGVyZWQgc2FmZSBlbm91Z2guIEl0Ci0JICogaXMgZG9uZSB0aGlz IHdheSB3aGVuIHJlcGxheWluZyB4bF9oZWFwX3Zpc2libGUgcmVjb3JkcyAoc2VlCi0JICogaGVh cF94bG9nX3Zpc2libGUoKSkuCisJICogaXMgZG9uZSB0aGlzIHdheSB3aGVuIHJlcGxheWluZyB4 bF9oZWFwX3BydW5lIHJlY29yZHMgKHNlZQorCSAqIGhlYXBfeGxvZ19wcnVuZV9hbmRfZnJlZXpl KCkpLgogCSAqLwogCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9GUk9aRU5fU0VU ICYmCiAJCVhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVuZGVkKHJlY29yZCwgMSwgUkJNX1pFUk9f T05fRVJST1IsIGZhbHNlLApAQCAtNzQ0LDExICs2NjksMTEgQEAgaGVhcF94bG9nX211bHRpX2lu c2VydChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAogCQkvKiBXZSBkb24ndCBoYXZlIHJlbGF0 aW9uIG5hbWUgZHVyaW5nIHJlY292ZXJ5LCBzbyB1c2UgcmVsZmlsZW5vZGUgKi8KIAkJcmVsbmFt ZSA9IHBzcHJpbnRmKCIldSIsIHJsb2NhdG9yLnJlbE51bWJlcik7Ci0JCXZpc2liaWxpdHltYXBf c2V0X3ZtYml0cyhibGtubywKLQkJCQkJCQkJIHZtYnVmZmVyLAotCQkJCQkJCQkgVklTSUJJTElU WU1BUF9BTExfVklTSUJMRSB8Ci0JCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCi0J CQkJCQkJCSByZWxuYW1lKTsKKwkJdmlzaWJpbGl0eW1hcF9zZXQoYmxrbm8sCisJCQkJCQkgIHZt YnVmZmVyLAorCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKKwkJCQkJCSAgVklT SUJJTElUWU1BUF9BTExfRlJPWkVOLAorCQkJCQkJICByZWxuYW1lKTsKIAogCQkvKgogCQkgKiBJ dCBpcyBub3QgcG9zc2libGUgdGhhdCB0aGUgVk0gd2FzIGFscmVhZHkgc2V0IGZvciB0aGlzIGhl YXAgcGFnZSwKQEAgLTEzMzQsOSArMTI1OSw2IEBAIGhlYXAyX3JlZG8oWExvZ1JlYWRlclN0YXRl ICpyZWNvcmQpCiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUDoKIAkJCWhl YXBfeGxvZ19wcnVuZV9mcmVlemUocmVjb3JkKTsKIAkJCWJyZWFrOwotCQljYXNlIFhMT0dfSEVB UDJfVklTSUJMRToKLQkJCWhlYXBfeGxvZ192aXNpYmxlKHJlY29yZCk7Ci0JCQlicmVhazsKIAkJ Y2FzZSBYTE9HX0hFQVAyX01VTFRJX0lOU0VSVDoKIAkJCWhlYXBfeGxvZ19tdWx0aV9pbnNlcnQo cmVjb3JkKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA0 NzM4MjJhOGUyNi4uZmFmMTAwMmYyNWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5j CkBAIC0xMDI2LDkgKzEwMjYsOSBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlv biByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJewogCQkJQXNzZXJ0KFBhZ2VJc0FsbFZpc2li bGUocGFnZSkpOwogCi0JCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKGJs b2Nrbm8sCi0JCQkJCQkJCQkJCQkgIHZtYnVmZmVyLCBuZXdfdm1iaXRzLAotCQkJCQkJCQkJCQkJ ICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbikpOworCQkJb2xkX3ZtYml0cyA9IHZp c2liaWxpdHltYXBfc2V0KGJsb2Nrbm8sCisJCQkJCQkJCQkJICAgdm1idWZmZXIsIG5ld192bWJp dHMsCisJCQkJCQkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKTsKIAkJ CWlmIChvbGRfdm1iaXRzID09IG5ld192bWJpdHMpCiAJCQl7CiAJCQkJTG9ja0J1ZmZlcih2bWJ1 ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YwppbmRleCBkNzFmMzc1NWRjZS4uZTU5ZWI0MDEzM2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKQEAgLTE4ODcsMTEgKzE4ODcsMTEgQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0 eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCQkJ UGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKIAotCQkJ dmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKGJsa25vLAotCQkJCQkJCQkJIHZtYnVmZmVyLAotCQkJ CQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCQkJIFZJU0lCSUxJVFlN QVBfQUxMX0ZST1pFTiwKLQkJCQkJCQkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh2YWNyZWwt PnJlbCkpOworCQkJdmlzaWJpbGl0eW1hcF9zZXQoYmxrbm8sCisJCQkJCQkJICB2bWJ1ZmZlciwK KwkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJCSAgVklTSUJJTElU WU1BUF9BTExfRlJPWkVOLAorCQkJCQkJCSAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodmFjcmVs LT5yZWwpKTsKIAogCQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwodmFjcmVsLT5yZWwpKQogCQkJewpA QCAtMjc3Niw5ICsyNzc2LDkgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZh Y3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJaWYgKCh2bWZsYWdzICYg VklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKSAhPSAwKQogCXsKIAkJUGFnZVNldEFsbFZpc2libGUo cGFnZSk7Ci0JCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhibGtubywKLQkJCQkJCQkJIHZtYnVm ZmVyLCB2bWZsYWdzLAotCQkJCQkJCQkgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodmFjcmVsLT5y ZWwpKTsKKwkJdmlzaWJpbGl0eW1hcF9zZXQoYmxrbm8sCisJCQkJCQkgIHZtYnVmZmVyLCB2bWZs YWdzLAorCQkJCQkJICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh2YWNyZWwtPnJlbCkpOwogCQlj b25mbGljdF94aWQgPSB2aXNpYmlsaXR5X2N1dG9mZl94aWQ7CiAJfQogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKaW5kZXggMzM1NDFlMzY2NzQuLjg3NTRiNzM3ZTk0IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCkBAIC0xNCw4ICsxNCw3IEBA CiAgKgkJdmlzaWJpbGl0eW1hcF9jbGVhciAgLSBjbGVhciBiaXRzIGZvciBvbmUgcGFnZSBpbiB0 aGUgdmlzaWJpbGl0eSBtYXAKICAqCQl2aXNpYmlsaXR5bWFwX3BpbgkgLSBwaW4gYSBtYXAgcGFn ZSBmb3Igc2V0dGluZyBhIGJpdAogICoJCXZpc2liaWxpdHltYXBfcGluX29rIC0gY2hlY2sgd2hl dGhlciBjb3JyZWN0IG1hcCBwYWdlIGlzIGFscmVhZHkgcGlubmVkCi0gKgkJdmlzaWJpbGl0eW1h cF9zZXQJIC0gc2V0IGJpdChzKSBpbiBhIHByZXZpb3VzbHkgcGlubmVkIHBhZ2UgYW5kIGxvZwot ICoJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyAtIHNldCBiaXQocykgaW4gYSBwaW5uZWQgcGFn ZQorICoJCXZpc2liaWxpdHltYXBfc2V0CSAtIHNldCBiaXQocykgaW4gYSBwcmV2aW91c2x5IHBp bm5lZCBwYWdlCiAgKgkJdmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVzIC0gZ2V0IHN0YXR1cyBvZiBi aXRzCiAgKgkJdmlzaWJpbGl0eW1hcF9jb3VudCAgLSBjb3VudCBudW1iZXIgb2YgYml0cyBzZXQg aW4gdmlzaWJpbGl0eSBtYXAKICAqCQl2aXNpYmlsaXR5bWFwX3ByZXBhcmVfdHJ1bmNhdGUgLQpA QCAtMjIwLDgyICsyMTksNiBAQCB2aXNpYmlsaXR5bWFwX3Bpbl9vayhCbG9ja051bWJlciBoZWFw QmxrLCBCdWZmZXIgdm1idWYpCiAJcmV0dXJuIEJ1ZmZlcklzVmFsaWQodm1idWYpICYmIEJ1ZmZl ckdldEJsb2NrTnVtYmVyKHZtYnVmKSA9PSBtYXBCbG9jazsKIH0KIAotLyoKLSAqCXZpc2liaWxp dHltYXBfc2V0IC0gc2V0IGJpdChzKSBvbiBhIHByZXZpb3VzbHkgcGlubmVkIHBhZ2UKLSAqCi0g KiByZWNwdHIgaXMgdGhlIExTTiBvZiB0aGUgWExPRyByZWNvcmQgd2UncmUgcmVwbGF5aW5nLCBp ZiB3ZSdyZSBpbiByZWNvdmVyeSwKLSAqIG9yIEludmFsaWRYTG9nUmVjUHRyIGluIG5vcm1hbCBy dW5uaW5nLiAgVGhlIFZNIHBhZ2UgTFNOIGlzIGFkdmFuY2VkIHRvIHRoZQotICogb25lIHByb3Zp ZGVkOyBpbiBub3JtYWwgcnVubmluZywgd2UgZ2VuZXJhdGUgYSBuZXcgWExPRyByZWNvcmQgYW5k IHNldCB0aGUKLSAqIHBhZ2UgTFNOIHRvIHRoYXQgdmFsdWUgKHRob3VnaCB0aGUgaGVhcCBwYWdl J3MgTFNOIG1heSAqbm90KiBiZSB1cGRhdGVkOwotICogc2VlIGJlbG93KS4gIGN1dG9mZl94aWQg aXMgdGhlIGxhcmdlc3QgeG1pbiBvbiB0aGUgcGFnZSBiZWluZyBtYXJrZWQKLSAqIGFsbC12aXNp YmxlOyBpdCBpcyBuZWVkZWQgZm9yIEhvdCBTdGFuZGJ5LCBhbmQgY2FuIGJlIEludmFsaWRUcmFu c2FjdGlvbklkCi0gKiBpZiB0aGUgcGFnZSBjb250YWlucyBubyB0dXBsZXMuICBJdCBjYW4gYWxz byBiZSBzZXQgdG8gSW52YWxpZFRyYW5zYWN0aW9uSWQKLSAqIHdoZW4gYSBwYWdlIHRoYXQgaXMg YWxyZWFkeSBhbGwtdmlzaWJsZSBpcyBiZWluZyBtYXJrZWQgYWxsLWZyb3plbi4KLSAqCi0gKiBD YWxsZXIgaXMgZXhwZWN0ZWQgdG8gc2V0IHRoZSBoZWFwIHBhZ2UncyBQRF9BTExfVklTSUJMRSBi aXQgYmVmb3JlIGNhbGxpbmcKLSAqIHRoaXMgZnVuY3Rpb24uCi0gKgotICogWW91IG11c3QgcGFz cyBhIGJ1ZmZlciBjb250YWluaW5nIHRoZSBjb3JyZWN0IG1hcCBwYWdlIHRvIHRoaXMgZnVuY3Rp b24uCi0gKiBDYWxsIHZpc2liaWxpdHltYXBfcGluIGZpcnN0IHRvIHBpbiB0aGUgcmlnaHQgb25l LiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgZG8KLSAqIGFueSBJL08uCi0gKgotICogUmV0dXJucyB0 aGUgc3RhdGUgb2YgdGhlIHBhZ2UncyBWTSBiaXRzIGJlZm9yZSBzZXR0aW5nIGZsYWdzLgotICov Ci11aW50OAotdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFw QmxrLAotCQkJCSAgWExvZ1JlY1B0ciByZWNwdHIsIEJ1ZmZlciB2bUJ1ZiwgVHJhbnNhY3Rpb25J ZCBjdXRvZmZfeGlkLAotCQkJCSAgdWludDggZmxhZ3MpCi17Ci0JQmxvY2tOdW1iZXIgbWFwQmxv Y2sgPSBIRUFQQkxLX1RPX01BUEJMT0NLKGhlYXBCbGspOwotCXVpbnQzMgkJbWFwQnl0ZSA9IEhF QVBCTEtfVE9fTUFQQllURShoZWFwQmxrKTsKLQl1aW50OAkJbWFwT2Zmc2V0ID0gSEVBUEJMS19U T19PRkZTRVQoaGVhcEJsayk7Ci0JUGFnZQkJcGFnZTsKLQl1aW50OAkgICAqbWFwOwotCXVpbnQ4 CQlzdGF0dXM7Ci0KLSNpZmRlZiBUUkFDRV9WSVNJQklMSVRZTUFQCi0JZWxvZyhERUJVRzEsICJ2 bV9zZXQgZmxhZ3MgMHglMDJYIGZvciAlcyAlZCIsCi0JCSBmbGFncywgUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsKSwgaGVhcEJsayk7Ci0jZW5kaWYKLQotCUFzc2VydChJblJlY292ZXJ5IHx8 IFhMb2dSZWNQdHJJc0ludmFsaWQocmVjcHRyKSk7Ci0JQXNzZXJ0KChmbGFncyAmIFZJU0lCSUxJ VFlNQVBfVkFMSURfQklUUykgPT0gZmxhZ3MpOwotCi0JLyogTXVzdCBuZXZlciBzZXQgYWxsX2Zy b3plbiBiaXQgd2l0aG91dCBhbHNvIHNldHRpbmcgYWxsX3Zpc2libGUgYml0ICovCi0JQXNzZXJ0 KGZsYWdzICE9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7Ci0KLQkvKiBDaGVjayB0aGF0IHdl IGhhdmUgdGhlIHJpZ2h0IFZNIHBhZ2UgcGlubmVkICovCi0JaWYgKCFCdWZmZXJJc1ZhbGlkKHZt QnVmKSB8fCBCdWZmZXJHZXRCbG9ja051bWJlcih2bUJ1ZikgIT0gbWFwQmxvY2spCi0JCWVsb2co RVJST1IsICJ3cm9uZyBWTSBidWZmZXIgcGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0Iik7Ci0K LQlwYWdlID0gQnVmZmVyR2V0UGFnZSh2bUJ1Zik7Ci0JbWFwID0gKHVpbnQ4ICopIFBhZ2VHZXRD b250ZW50cyhwYWdlKTsKLQlMb2NrQnVmZmVyKHZtQnVmLCBCVUZGRVJfTE9DS19FWENMVVNJVkUp OwotCi0Jc3RhdHVzID0gKG1hcFttYXBCeXRlXSA+PiBtYXBPZmZzZXQpICYgVklTSUJJTElUWU1B UF9WQUxJRF9CSVRTOwotCWlmIChmbGFncyAhPSBzdGF0dXMpCi0JewotCQlTVEFSVF9DUklUX1NF Q1RJT04oKTsKLQotCQltYXBbbWFwQnl0ZV0gfD0gKGZsYWdzIDw8IG1hcE9mZnNldCk7Ci0JCU1h cmtCdWZmZXJEaXJ0eSh2bUJ1Zik7Ci0KLQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocmVsKSkKLQkJ ewotCQkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQocmVjcHRyKSkKLQkJCXsKLQkJCQlBc3NlcnQo IUluUmVjb3ZlcnkpOwotCQkJCXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUocmVsLCB2bUJ1Ziwg Y3V0b2ZmX3hpZCwgZmxhZ3MpOwotCQkJfQotCQkJUGFnZVNldExTTihwYWdlLCByZWNwdHIpOwot CQl9Ci0KLQkJRU5EX0NSSVRfU0VDVElPTigpOwotCX0KLQotCUxvY2tCdWZmZXIodm1CdWYsIEJV RkZFUl9MT0NLX1VOTE9DSyk7Ci0JcmV0dXJuIHN0YXR1czsKLX0KIAogLyoKICAqIFNldCBmbGFn cyBpbiB0aGUgVk0gYmxvY2sgY29udGFpbmVkIGluIHRoZSBwYXNzZWQgaW4gdm1CdWYuCkBAIC0z MjAsOSArMjQzLDkgQEAgdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJl ciBoZWFwQmxrLAogICogaXMgcGlubmVkIGFuZCBleGNsdXNpdmUgbG9ja2VkLgogICovCiB1aW50 OAotdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKEJsb2NrTnVtYmVyIGhlYXBCbGssCi0JCQkJCQkg QnVmZmVyIHZtQnVmLCB1aW50OCBmbGFncywKLQkJCQkJCSBjb25zdCBjaGFyICpoZWFwUmVsbmFt ZSkKK3Zpc2liaWxpdHltYXBfc2V0KEJsb2NrTnVtYmVyIGhlYXBCbGssCisJCQkJICBCdWZmZXIg dm1CdWYsIHVpbnQ4IGZsYWdzLAorCQkJCSAgY29uc3QgY2hhciAqaGVhcFJlbG5hbWUpCiB7CiAJ QmxvY2tOdW1iZXIgbWFwQmxvY2sgPSBIRUFQQkxLX1RPX01BUEJMT0NLKGhlYXBCbGspOwogCXVp bnQzMgkJbWFwQnl0ZSA9IEhFQVBCTEtfVE9fTUFQQllURShoZWFwQmxrKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKaW5kZXggMWNiNDRjYTMyZDMuLjkzNTA1Y2I4YzU2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYwpAQCAtMzQ5LDEzICszNDksNiBA QCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJ CX0KIAkJfQogCX0KLQllbHNlIGlmIChpbmZvID09IFhMT0dfSEVBUDJfVklTSUJMRSkKLQl7Ci0J CXhsX2hlYXBfdmlzaWJsZSAqeGxyZWMgPSAoeGxfaGVhcF92aXNpYmxlICopIHJlYzsKLQotCQlh cHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOiAldSwgZmxhZ3M6 IDB4JTAyWCIsCi0JCQkJCQkgeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLCB4bHJlYy0+ ZmxhZ3MpOwotCX0KIAllbHNlIGlmIChpbmZvID09IFhMT0dfSEVBUDJfTVVMVElfSU5TRVJUKQog CXsKIAkJeGxfaGVhcF9tdWx0aV9pbnNlcnQgKnhscmVjID0gKHhsX2hlYXBfbXVsdGlfaW5zZXJ0 ICopIHJlYzsKQEAgLTQ2MCw5ICs0NTMsNiBAQCBoZWFwMl9pZGVudGlmeSh1aW50OCBpbmZvKQog CQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX0NMRUFOVVA6CiAJCQlpZCA9ICJQUlVORV9W QUNVVU1fQ0xFQU5VUCI7CiAJCQlicmVhazsKLQkJY2FzZSBYTE9HX0hFQVAyX1ZJU0lCTEU6Ci0J CQlpZCA9ICJWSVNJQkxFIjsKLQkJCWJyZWFrOwogCQljYXNlIFhMT0dfSEVBUDJfTVVMVElfSU5T RVJUOgogCQkJaWQgPSAiTVVMVElfSU5TRVJUIjsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKaW5kZXggY2MwM2YwNzA2ZTkuLjJmZGQ0YWY5MGE4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKQEAgLTQ1NCw3ICs0NTQs NiBAQCBoZWFwMl9kZWNvZGUoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LCBYTG9nUmVjb3Jk QnVmZmVyICpidWYpCiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9PTl9BQ0NFU1M6CiAJCWNhc2Ug WExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTjoKIAkJY2FzZSBYTE9HX0hFQVAyX1BSVU5FX1ZB Q1VVTV9DTEVBTlVQOgotCQljYXNlIFhMT0dfSEVBUDJfVklTSUJMRToKIAkJY2FzZSBYTE9HX0hF QVAyX0xPQ0tfVVBEQVRFRDoKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMv c3RhbmRieS5jCmluZGV4IDQyMjJiZGFiMDc4Li5jNjE5NjQzZTEyMSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv aXBjL3N0YW5kYnkuYwpAQCAtNDc1LDEyICs0NzUsMTIgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKIAkg KiBJZiB3ZSBnZXQgcGFzc2VkIEludmFsaWRUcmFuc2FjdGlvbklkIHRoZW4gd2UgZG8gbm90aGlu ZyAobm8gY29uZmxpY3QpLgogCSAqCiAJICogVGhpcyBjYW4gaGFwcGVuIHdoZW4gcmVwbGF5aW5n IGFscmVhZHktYXBwbGllZCBXQUwgcmVjb3JkcyBhZnRlciBhCi0JICogc3RhbmRieSBjcmFzaCBv ciByZXN0YXJ0LCBvciB3aGVuIHJlcGxheWluZyBhbiBYTE9HX0hFQVAyX1ZJU0lCTEUKLQkgKiBy ZWNvcmQgdGhhdCBtYXJrcyBhcyBmcm96ZW4gYSBwYWdlIHdoaWNoIHdhcyBhbHJlYWR5IGFsbC12 aXNpYmxlLiAgSXQncwotCSAqIGFsc28gcXVpdGUgY29tbW9uIHdpdGggcmVjb3JkcyBnZW5lcmF0 ZWQgZHVyaW5nIGluZGV4IGRlbGV0aW9uCi0JICogKG9yaWdpbmFsIGV4ZWN1dGlvbiBvZiB0aGUg ZGVsZXRpb24gY2FuIHJlYXNvbiB0aGF0IGEgcmVjb3ZlcnkgY29uZmxpY3QKLQkgKiB3aGljaCBp cyBzdWZmaWNpZW50IGZvciB0aGUgZGVsZXRpb24gb3BlcmF0aW9uIG11c3QgdGFrZSBwbGFjZSBi ZWZvcmUKLQkgKiByZXBsYXkgb2YgdGhlIGRlbGV0aW9uIHJlY29yZCBpdHNlbGYpLgorCSAqIHN0 YW5kYnkgY3Jhc2ggb3IgcmVzdGFydCwgb3Igd2hlbiByZXBsYXlpbmcgYSByZWNvcmQgdGhhdCBt YXJrcyBhcworCSAqIGZyb3plbiBhIHBhZ2Ugd2hpY2ggd2FzIGFscmVhZHkgbWFya2VkIGFsbC12 aXNpYmxlIGluIHRoZSB2aXNpYmlsaXR5CisJICogbWFwLiAgSXQncyBhbHNvIHF1aXRlIGNvbW1v biB3aXRoIHJlY29yZHMgZ2VuZXJhdGVkIGR1cmluZyBpbmRleAorCSAqIGRlbGV0aW9uIChvcmln aW5hbCBleGVjdXRpb24gb2YgdGhlIGRlbGV0aW9uIGNhbiByZWFzb24gdGhhdCBhIHJlY292ZXJ5 CisJICogY29uZmxpY3Qgd2hpY2ggaXMgc3VmZmljaWVudCBmb3IgdGhlIGRlbGV0aW9uIG9wZXJh dGlvbiBtdXN0IHRha2UgcGxhY2UKKwkgKiBiZWZvcmUgcmVwbGF5IG9mIHRoZSBkZWxldGlvbiBy ZWNvcmQgaXRzZWxmKS4KIAkgKi8KIAlpZiAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uKSkKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNj ZXNzL2hlYXBhbV94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaAppbmRl eCA4MzMxMTRlMGE2ZS4uNjFjZWFmMmE5OGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW1feGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCkBA IC02MCw3ICs2MCw2IEBACiAjZGVmaW5lIFhMT0dfSEVBUDJfUFJVTkVfT05fQUNDRVNTCQkweDEw CiAjZGVmaW5lIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX1NDQU4JMHgyMAogI2RlZmluZSBYTE9H X0hFQVAyX1BSVU5FX1ZBQ1VVTV9DTEVBTlVQCTB4MzAKLSNkZWZpbmUgWExPR19IRUFQMl9WSVNJ QkxFCQkweDQwCiAjZGVmaW5lIFhMT0dfSEVBUDJfTVVMVElfSU5TRVJUIDB4NTAKICNkZWZpbmUg WExPR19IRUFQMl9MT0NLX1VQREFURUQgMHg2MAogI2RlZmluZSBYTE9HX0hFQVAyX05FV19DSUQJ CTB4NzAKQEAgLTQ1MSwxOSArNDUwLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9pbnBsYWNl CiAKICNkZWZpbmUgTWluU2l6ZU9mSGVhcElucGxhY2UJKG9mZnNldG9mKHhsX2hlYXBfaW5wbGFj ZSwgbm1zZ3MpICsgc2l6ZW9mKGludCkpCiAKLS8qCi0gKiBUaGlzIGlzIHdoYXQgd2UgbmVlZCB0 byBrbm93IGFib3V0IHNldHRpbmcgYSB2aXNpYmlsaXR5IG1hcCBiaXQKLSAqCi0gKiBCYWNrdXAg YmxrIDA6IHZpc2liaWxpdHkgbWFwIGJ1ZmZlcgotICovCi10eXBlZGVmIHN0cnVjdCB4bF9oZWFw X3Zpc2libGUKLXsKLQlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwotCXVp bnQ4CQlmbGFnczsKLX0geGxfaGVhcF92aXNpYmxlOwotCi0jZGVmaW5lIFNpemVPZkhlYXBWaXNp YmxlIChvZmZzZXRvZih4bF9oZWFwX3Zpc2libGUsIGZsYWdzKSArIHNpemVvZih1aW50OCkpCi0K IHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfbmV3X2NpZAogewogCS8qCkBAIC01MDcsMTEgKzQ5Myw2 IEBAIGV4dGVybiB2b2lkIGhlYXAyX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKTsKIGV4dGVybiBjb25zdCBjaGFyICpoZWFwMl9pZGVudGlmeSh1aW50OCBpbmZv KTsKIGV4dGVybiB2b2lkIGhlYXBfeGxvZ19sb2dpY2FsX3Jld3JpdGUoWExvZ1JlYWRlclN0YXRl ICpyKTsKIAotZXh0ZXJuIFhMb2dSZWNQdHIgbG9nX2hlYXBfdmlzaWJsZShSZWxhdGlvbiByZWws Ci0JCQkJCQkJCSAgIEJ1ZmZlciB2bV9idWZmZXIsCi0JCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQg c25hcHNob3RDb25mbGljdEhvcml6b24sCi0JCQkJCQkJCSAgIHVpbnQ4IHZtZmxhZ3MpOwotCiAv KiBpbiBoZWFwZGVzYy5jLCBzbyBpdCBjYW4gYmUgc2hhcmVkIGJldHdlZW4gZnJvbnRlbmQvYmFj a2VuZCBjb2RlICovCiBleHRlcm4gdm9pZCBoZWFwX3hsb2dfZGVzZXJpYWxpemVfcHJ1bmVfYW5k X2ZyZWV6ZShjaGFyICpjdXJzb3IsIHVpbnQxNiBmbGFncywKIAkJCQkJCQkJCQkJCSAgIGludCAq bnBsYW5zLCB4bGhwX2ZyZWV6ZV9wbGFuICoqcGxhbnMsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHlt YXAuaAppbmRleCBmYmM2OTYwNGQ1Ny4uODU5ZTU3OTU0NTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2li aWxpdHltYXAuaApAQCAtMTUsNyArMTUsNiBAQAogI2RlZmluZSBWSVNJQklMSVRZTUFQX0gKIAog I2luY2x1ZGUgImFjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oIgotI2luY2x1ZGUgImFjY2Vzcy94 bG9nZGVmcy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYmxvY2suaCIKICNpbmNsdWRlICJzdG9yYWdl L2J1Zi5oIgogI2luY2x1ZGUgInV0aWxzL3JlbGNhY2hlLmgiCkBAIC0zMSwxNSArMzAsMTEgQEAg ZXh0ZXJuIGJvb2wgdmlzaWJpbGl0eW1hcF9jbGVhcihSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVy IGhlYXBCbGssCiBleHRlcm4gdm9pZCB2aXNpYmlsaXR5bWFwX3BpbihSZWxhdGlvbiByZWwsIEJs b2NrTnVtYmVyIGhlYXBCbGssCiAJCQkJCQkJICBCdWZmZXIgKnZtYnVmKTsKIGV4dGVybiBib29s IHZpc2liaWxpdHltYXBfcGluX29rKEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciB2bWJ1Zik7 Ci1leHRlcm4gdWludDggdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLAotCQkJCQkJCSAg IEJsb2NrTnVtYmVyIGhlYXBCbGssCi0JCQkJCQkJICAgWExvZ1JlY1B0ciByZWNwdHIsCi0JCQkJ CQkJICAgQnVmZmVyIHZtQnVmLAotCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwK LQkJCQkJCQkgICB1aW50OCBmbGFncyk7Ci1leHRlcm4gdWludDggdmlzaWJpbGl0eW1hcF9zZXRf dm1iaXRzKEJsb2NrTnVtYmVyIGhlYXBCbGssCi0JCQkJCQkJCQkgIEJ1ZmZlciB2bUJ1ZiwgdWlu dDggZmxhZ3MsCi0JCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmhlYXBSZWxuYW1lKTsKKworZXh0ZXJu IHVpbnQ4IHZpc2liaWxpdHltYXBfc2V0KEJsb2NrTnVtYmVyIGhlYXBCbGssCisJCQkJCQkJICAg QnVmZmVyIHZtQnVmLCB1aW50OCBmbGFncywKKwkJCQkJCQkgICBjb25zdCBjaGFyICpoZWFwUmVs bmFtZSk7CisKIGV4dGVybiB1aW50OCB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMoUmVsYXRpb24g cmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgKnZtYnVmKTsKIGV4dGVybiB2b2lkIHZp c2liaWxpdHltYXBfY291bnQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciAqYWxsX3Zpc2libGUs IEJsb2NrTnVtYmVyICphbGxfZnJvemVuKTsKIGV4dGVybiBCbG9ja051bWJlciB2aXNpYmlsaXR5 bWFwX3ByZXBhcmVfdHJ1bmNhdGUoUmVsYXRpb24gcmVsLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJp bGl0eW1hcGRlZnMuaAppbmRleCA1YWQ1YzAyMDg3Ny4uZTAxYmNlNGM5OWYgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCisrKyBiL3NyYy9pbmNsdWRl L2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCkBAIC0yMSwxNCArMjEsNSBAQAogI2RlZmluZSBW SVNJQklMSVRZTUFQX0FMTF9GUk9aRU4JMHgwMgogI2RlZmluZSBWSVNJQklMSVRZTUFQX1ZBTElE X0JJVFMJMHgwMwkvKiBPUiBvZiBhbGwgdmFsaWQgdmlzaWJpbGl0eW1hcAogCQkJCQkJCQkJCQkg KiBmbGFncyBiaXRzICovCi0vKgotICogVG8gZGV0ZWN0IHJlY292ZXJ5IGNvbmZsaWN0cyBkdXJp bmcgbG9naWNhbCBkZWNvZGluZyBvbiBhIHN0YW5kYnksIHdlIG5lZWQKLSAqIHRvIGtub3cgaWYg YSB0YWJsZSBpcyBhIHVzZXIgY2F0YWxvZyB0YWJsZS4gRm9yIHRoYXQgd2UgYWRkIGFuIGFkZGl0 aW9uYWwKLSAqIGJpdCBpbnRvIHhsX2hlYXBfdmlzaWJsZS5mbGFncywgaW4gYWRkaXRpb24gdG8g dGhlIGFib3ZlLgotICoKLSAqIE5COiBWSVNJQklMSVRZTUFQX1hMT0dfKiBtYXkgbm90IGJlIHBh c3NlZCB0byB2aXNpYmlsaXR5bWFwX3NldCgpLgotICovCi0jZGVmaW5lIFZJU0lCSUxJVFlNQVBf WExPR19DQVRBTE9HX1JFTAkweDA0Ci0jZGVmaW5lIFZJU0lCSUxJVFlNQVBfWExPR19WQUxJRF9C SVRTCShWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMgfCBWSVNJQklMSVRZTUFQX1hMT0dfQ0FUQUxP R19SRUwpCiAKICNlbmRpZgkJCQkJCQkvKiBWSVNJQklMSVRZTUFQREVGU19IICovCmRpZmYgLS1n aXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CmluZGV4IDNjODBkNDliNjdlLi5kNDAwYzg0MjliMCAxMDA2NDQKLS0t IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKQEAgLTQyNjksNyArNDI2OSw2IEBAIHhsX2hlYXBfcHJ1bmUKIHhs X2hlYXBfcmV3cml0ZV9tYXBwaW5nCiB4bF9oZWFwX3RydW5jYXRlCiB4bF9oZWFwX3VwZGF0ZQot eGxfaGVhcF92aXNpYmxlCiB4bF9pbnZhbGlkX3BhZ2UKIHhsX2ludmFsaWRfcGFnZV9rZXkKIHhs X2ludmFsaWRhdGlvbnMKLS0gCjIuNDMuMAoK --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0018-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisX.patch" Content-Disposition: attachment; filename="v15-0018-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisX.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lbaa17 RnJvbSA3ODIxYjlmZDUwMDFmMWUxZTIwZWMwYzQ4NTc2NTVjYzhiNzgxY2JjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDE4IEp1bCAyMDI1IDE2OjMwOjA0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMTgvMjNdIFJlbmFtZSBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoKSB0bwog R2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKCkKCkN1cnJlbnRseSwgd2Ugb25seSB1c2UgR2xvYmFs VmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgdG8gY2hlY2sgaWYgYQp0dXBsZSdzIHhtYXggaXMgdmlz aWJsZSB0byBhbGwsIG1lYW5pbmcgd2UgY2FuIHJlbW92ZSBpdC4gQnV0IGZ1dHVyZQpjb21taXRz IHdpbGwgdXNlIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCgpIHRvIHRlc3QgaWYgYSB0dXBs ZSdzIHhtaW4KaXMgdmlzaWJsZSB0byBhbGwgZm9yIHRoZSBwdXJwb3NlcyBvZiBkZXRlcm1pbmlu ZyBpZiBzZXR0aW5nIHRoZSBwYWdlCmFsbC12aXNpYmxlIGluIHRoZSBWTS4gSW4gdGhhdCBjYXNl LCBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGNhbGwgdGhlCmZ1bmN0aW9uIEdsb2JhbFZpc1hpZFZp c2libGVUb0FsbCgpLgoKUmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBn bWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHku YyB8ICA2ICsrKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICAg ICB8IDE0ICsrKysrKystLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1 bS5jICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jICAg ICAgICAgfCAxMyArKysrKystLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmggICAg ICAgICAgICAgICAgIHwgIDQgKystLQogNSBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1fdmlzaWJpbGl0eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2li aWxpdHkuYwppbmRleCAwNWY2OTQ2ZmU2MC4uNGViYzhhYmRiZWIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHkuYwpAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAgSGVh cFR1cGxlU2F0aXNmaWVzTm9uVmFjdXVtYWJsZShIZWFwVHVwbGUgaHR1cCwgU25hcHNob3Qgc25h cHNob3QsCiAJewogCQlBc3NlcnQoVHJhbnNhY3Rpb25JZElzVmFsaWQoZGVhZF9hZnRlcikpOwog Ci0JCWlmIChHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoc25hcHNob3QtPnZpc3Rlc3QsIGRl YWRfYWZ0ZXIpKQorCQlpZiAoR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHNuYXBzaG90LT52aXN0 ZXN0LCBkZWFkX2FmdGVyKSkKIAkJCXJlcyA9IEhFQVBUVVBMRV9ERUFEOwogCX0KIAllbHNlCkBA IC0xNTEyLDggKzE1MTIsOCBAQCBIZWFwVHVwbGVJc1N1cmVseURlYWQoSGVhcFR1cGxlIGh0dXAs IEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0KQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBEZWxldGVy IGNvbW1pdHRlZCwgc28gdHVwbGUgaXMgZGVhZCBpZiB0aGUgWElEIGlzIG9sZCBlbm91Z2guICov Ci0JcmV0dXJuIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LAotCQkJCQkJCQkJ ICAgSGVhcFR1cGxlSGVhZGVyR2V0UmF3WG1heCh0dXBsZSkpOworCXJldHVybiBHbG9iYWxWaXNY aWRWaXNpYmxlVG9BbGwodmlzdGVzdCwKKwkJCQkJCQkJCUhlYXBUdXBsZUhlYWRlckdldFJhd1ht YXgodHVwbGUpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXgg ZmFmMTAwMmYyNWYuLjUyZTk1NjE4OWU4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwpAQCAtMjE4LDcgKzIxOCw3IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIpCiAJICovCiAJdmlzdGVzdCA9IEdsb2JhbFZpc1Rlc3RGb3IocmVs YXRpb24pOwogCi0JaWYgKCFHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQodmlzdGVzdCwgcHJ1 bmVfeGlkKSkKKwlpZiAoIUdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCh2aXN0ZXN0LCBwcnVuZV94 aWQpKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtNzI3LDkgKzcyNyw5IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIERldGVy bWluaW5nIEhUU1Ygb25seSBvbmNlIGZvciBlYWNoIHR1cGxlIGlzIHJlcXVpcmVkIGZvciBjb3Jy ZWN0bmVzcywKIAkgKiB0byBkZWFsIHdpdGggY2FzZXMgd2hlcmUgcnVubmluZyBIVFNWIHR3aWNl IGNvdWxkIHJlc3VsdCBpbiBkaWZmZXJlbnQKIAkgKiByZXN1bHRzLiAgRm9yIGV4YW1wbGUsIFJF Q0VOVExZX0RFQUQgY2FuIHR1cm4gdG8gREVBRCBpZiBhbm90aGVyCi0JICogY2hlY2tlZCBpdGVt IGNhdXNlcyBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKCkgdG8gdXBkYXRlIHRoZQot CSAqIGhvcml6b24sIG9yIElOU0VSVF9JTl9QUk9HUkVTUyBjYW4gY2hhbmdlIHRvIERFQUQgaWYg dGhlIGluc2VydGluZwotCSAqIHRyYW5zYWN0aW9uIGFib3J0cy4KKwkgKiBjaGVja2VkIGl0ZW0g Y2F1c2VzIEdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCgpIHRvIHVwZGF0ZSB0aGUgaG9yaXpvbiwK KwkgKiBvciBJTlNFUlRfSU5fUFJPR1JFU1MgY2FuIGNoYW5nZSB0byBERUFEIGlmIHRoZSBpbnNl cnRpbmcgdHJhbnNhY3Rpb24KKwkgKiBhYm9ydHMuCiAJICoKIAkgKiBJdCdzIGFsc28gZ29vZCBm b3IgcGVyZm9ybWFuY2UuIE1vc3QgY29tbW9ubHkgdHVwbGVzIHdpdGhpbiBhIHBhZ2UgYXJlCiAJ ICogc3RvcmVkIGF0IGRlY3JlYXNpbmcgb2Zmc2V0cyAod2hpbGUgdGhlIGl0ZW1zIGFyZSBzdG9y ZWQgYXQgaW5jcmVhc2luZwpAQCAtMTIwMCwxMSArMTIwMCwxMSBAQCBoZWFwX3BydW5lX3NhdGlz Zmllc192YWN1dW0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgSGVhcFR1cGxlIHR1cCwgQnVmZmVyIGJ1 ZmZlcikKIAkgKiBEZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIHR1cGxlIGlzIGNvbnNpZGVy ZWQgZGVhZCB3aGVuIGNvbXBhcmVkCiAJICogd2l0aCB0aGUgcHJvdmlkZWQgR2xvYmFsVmlzU3Rh dGUuIE9uLWFjY2VzcyBwcnVuaW5nIGRvZXMgbm90IHByb3ZpZGUKIAkgKiBWYWN1dW1DdXRvZmZz LiBBbmQgZm9yIHZhY3V1bSwgZXZlbiBpZiB0aGUgdHVwbGUncyB4bWF4IGlzIG5vdCBvbGRlcgot CSAqIHRoYW4gT2xkZXN0WG1pbiwgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgY291bGQg ZmluZCB0aGUgcm93IGRlYWQKLQkgKiBpZiB0aGUgR2xvYmFsVmlzU3RhdGUgaGFzIGJlZW4gdXBk YXRlZCBzaW5jZSB0aGUgYmVnaW5uaW5nIG9mIHZhY3V1bWluZworCSAqIHRoYW4gT2xkZXN0WG1p biwgR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKCkgY291bGQgZmluZCB0aGUgcm93IGRlYWQgaWYK KwkgKiB0aGUgR2xvYmFsVmlzU3RhdGUgaGFzIGJlZW4gdXBkYXRlZCBzaW5jZSB0aGUgYmVnaW5u aW5nIG9mIHZhY3V1bWluZwogCSAqIHRoZSByZWxhdGlvbi4KIAkgKi8KLQlpZiAoR2xvYmFsVmlz VGVzdElzUmVtb3ZhYmxlWGlkKHByc3RhdGUtPnZpc3Rlc3QsIGRlYWRfYWZ0ZXIpKQorCWlmIChH bG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwocHJzdGF0ZS0+dmlzdGVzdCwgZGVhZF9hZnRlcikpCiAJ CXJldHVybiBIRUFQVFVQTEVfREVBRDsKIAogCXJldHVybiByZXM7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Nw Z2lzdC9zcGd2YWN1dW0uYwppbmRleCA4ZjhhMWFkNzc5Ni4uNDk2Y2NhNjk0MTAgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwpAQCAtNTM2LDcgKzUzNiw3IEBAIHZhY3V1bVJl ZGlyZWN0QW5kUGxhY2Vob2xkZXIoUmVsYXRpb24gaW5kZXgsIFJlbGF0aW9uIGhlYXByZWwsIEJ1 ZmZlciBidWZmZXIpCiAJCSAqLwogCQlpZiAoZHQtPnR1cHN0YXRlID09IFNQR0lTVF9SRURJUkVD VCAmJgogCQkJKCFUcmFuc2FjdGlvbklkSXNWYWxpZChkdC0+eGlkKSB8fAotCQkJIEdsb2JhbFZp c1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LCBkdC0+eGlkKSkpCisJCQkgR2xvYmFsVmlzWGlk VmlzaWJsZVRvQWxsKHZpc3Rlc3QsIGR0LT54aWQpKSkKIAkJewogCQkJZHQtPnR1cHN0YXRlID0g U1BHSVNUX1BMQUNFSE9MREVSOwogCQkJQXNzZXJ0KG9wYXF1ZS0+blJlZGlyZWN0aW9uID4gMCk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyBiL3NyYy9i YWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCmluZGV4IDIwMGY3MmM2ZTI1Li5mNjdmMDFj MTdjMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKKysr IGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKQEAgLTQxODEsOCArNDE4MSw3 IEBAIEdsb2JhbFZpc1VwZGF0ZSh2b2lkKQogICogU2VlIGNvbW1lbnQgZm9yIEdsb2JhbFZpc1N0 YXRlIGZvciBkZXRhaWxzLgogICovCiBib29sCi1HbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxs WGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwKLQkJCQkJCQkJRnVsbFRyYW5zYWN0aW9uSWQgZnhp ZCkKK0dsb2JhbFZpc0Z1bGxYaWRWaXNpYmxlVG9BbGwoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBG dWxsVHJhbnNhY3Rpb25JZCBmeGlkKQogewogCS8qCiAJICogSWYgZnhpZCBpcyBvbGRlciB0aGFu IG1heWJlX25lZWRlZCBib3VuZCwgaXQgZGVmaW5pdGVseSBpcyB2aXNpYmxlIHRvCkBAIC00MjIz LDcgKzQyMjIsNyBAQCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKEdsb2JhbFZpc1N0 YXRlICpzdGF0ZSwKICAqIHJlbGZyb3plbnhpZCkuCiAgKi8KIGJvb2wKLUdsb2JhbFZpc1Rlc3RJ c1JlbW92YWJsZVhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKQor R2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgVHJhbnNhY3Rp b25JZCB4aWQpCiB7CiAJRnVsbFRyYW5zYWN0aW9uSWQgZnhpZDsKIApAQCAtNDIzNyw3ICs0MjM2 LDcgQEAgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwg VHJhbnNhY3Rpb25JZCB4aWQpCiAJICovCiAJZnhpZCA9IEZ1bGxYaWRSZWxhdGl2ZVRvKHN0YXRl LT5kZWZpbml0ZWx5X25lZWRlZCwgeGlkKTsKIAotCXJldHVybiBHbG9iYWxWaXNUZXN0SXNSZW1v dmFibGVGdWxsWGlkKHN0YXRlLCBmeGlkKTsKKwlyZXR1cm4gR2xvYmFsVmlzRnVsbFhpZFZpc2li bGVUb0FsbChzdGF0ZSwgZnhpZCk7CiB9CiAKIC8qCkBAIC00MjUxLDEyICs0MjUwLDEyIEBAIEds b2JhbFZpc0NoZWNrUmVtb3ZhYmxlRnVsbFhpZChSZWxhdGlvbiByZWwsIEZ1bGxUcmFuc2FjdGlv bklkIGZ4aWQpCiAKIAlzdGF0ZSA9IEdsb2JhbFZpc1Rlc3RGb3IocmVsKTsKIAotCXJldHVybiBH bG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKHN0YXRlLCBmeGlkKTsKKwlyZXR1cm4gR2xv YmFsVmlzRnVsbFhpZFZpc2libGVUb0FsbChzdGF0ZSwgZnhpZCk7CiB9CiAKIC8qCiAgKiBDb252 ZW5pZW5jZSB3cmFwcGVyIGFyb3VuZCBHbG9iYWxWaXNUZXN0Rm9yKCkgYW5kCi0gKiBHbG9iYWxW aXNUZXN0SXNSZW1vdmFibGVYaWQoKSwgc2VlIHRoZWlyIGNvbW1lbnRzLgorICogR2xvYmFsVmlz VGVzdElzVmlzaWJsZVhpZCgpLCBzZWUgdGhlaXIgY29tbWVudHMuCiAgKi8KIGJvb2wKIEdsb2Jh bFZpc0NoZWNrUmVtb3ZhYmxlWGlkKFJlbGF0aW9uIHJlbCwgVHJhbnNhY3Rpb25JZCB4aWQpCkBA IC00MjY1LDcgKzQyNjQsNyBAQCBHbG9iYWxWaXNDaGVja1JlbW92YWJsZVhpZChSZWxhdGlvbiBy ZWwsIFRyYW5zYWN0aW9uSWQgeGlkKQogCiAJc3RhdGUgPSBHbG9iYWxWaXNUZXN0Rm9yKHJlbCk7 CiAKLQlyZXR1cm4gR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKHN0YXRlLCB4aWQpOworCXJl dHVybiBHbG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwoc3RhdGUsIHhpZCk7CiB9CiAKIC8qCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmggYi9zcmMvaW5jbHVkZS91dGlscy9z bmFwbWdyLmgKaW5kZXggNjA0YzFmOTAyMTYuLmEwZWEyY2ZjZWEyIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS91dGlscy9zbmFwbWdyLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5o CkBAIC0xMDAsOCArMTAwLDggQEAgZXh0ZXJuIGNoYXIgKkV4cG9ydFNuYXBzaG90KFNuYXBzaG90 IHNuYXBzaG90KTsKICAqLwogdHlwZWRlZiBzdHJ1Y3QgR2xvYmFsVmlzU3RhdGUgR2xvYmFsVmlz U3RhdGU7CiBleHRlcm4gR2xvYmFsVmlzU3RhdGUgKkdsb2JhbFZpc1Rlc3RGb3IoUmVsYXRpb24g cmVsKTsKLWV4dGVybiBib29sIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChHbG9iYWxWaXNT dGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKTsKLWV4dGVybiBib29sIEdsb2JhbFZpc1Rl c3RJc1JlbW92YWJsZUZ1bGxYaWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBGdWxsVHJhbnNhY3Rp b25JZCBmeGlkKTsKK2V4dGVybiBib29sIEdsb2JhbFZpc1hpZFZpc2libGVUb0FsbChHbG9iYWxW aXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKTsKK2V4dGVybiBib29sIEdsb2JhbFZp c0Z1bGxYaWRWaXNpYmxlVG9BbGwoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBGdWxsVHJhbnNhY3Rp b25JZCBmeGlkKTsKIGV4dGVybiBib29sIEdsb2JhbFZpc0NoZWNrUmVtb3ZhYmxlWGlkKFJlbGF0 aW9uIHJlbCwgVHJhbnNhY3Rpb25JZCB4aWQpOwogZXh0ZXJuIGJvb2wgR2xvYmFsVmlzQ2hlY2tS ZW1vdmFibGVGdWxsWGlkKFJlbGF0aW9uIHJlbCwgRnVsbFRyYW5zYWN0aW9uSWQgZnhpZCk7CiAK LS0gCjIuNDMuMAoK --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0015-Set-VM-in-heap_page_prune_and_freeze.patch" Content-Disposition: attachment; filename="v15-0015-Set-VM-in-heap_page_prune_and_freeze.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lba414 RnJvbSA3NWEyZDI0ZWQwMjczMzUzMzAyN2I5ZmUxN2YyNTE2MGQyNTI5YjBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE2IFNlcCAyMDI1IDE1OjQ2OjQwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMTUvMjNdIFNldCBWTSBpbiBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZQoKVGhl IGRldGVybWluYXRpb24gYXMgdG8gd2hldGhlciBvciBub3QgdGhlIHBhZ2UgY2FuIGJlIHNldAph bGwtdmlzaWJsZS9hbGwtZnJvemVuIGhhcyBhbHJlYWR5IGJlZW4gZG9uZSBieSB0aGUgZW5kIG9m CmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkuIFZhY3V1bSB3YWl0ZWQgdW50aWwgaXQgcmV0 dXJucyB0bwpsYXp5X3NjYW5fcHJ1bmUoKSB0byBhY3R1YWxseSBzZXQgdGhlIFZNLCB0aG91Z2gu CgpUaGlzIGNvbW1pdCBtb3ZlcyBzZXR0aW5nIHRoZSBWTSBpbnRvIGhlYXBfcGFnZV9wcnVuZV9h bmRfZnJlZXplKCkuClRoZXJlIGFyZSBzdGlsbCB0d28gc2VwYXJhdGUgV0FMIHJlY29yZHMgLS0g b25lIGZvciB0aGUgY2hhbmdlcyB0byB0aGUKaGVhcCBwYWdlIGFuZCBvbmUgZm9yIHRoZSBjaGFu Z2VzIHRvIHRoZSBWTS4gQnV0LCB0aGlzIGlzIGFuIGluY3JlbWVudGFsCnN0ZXAgdG93YXJkIGxv Z2dpbmcgc2V0dGluZyB0aGUgVk0gaW4gdGhlIHNhbWUgV0FMIHJlY29yZCBhcyBwcnVuaW5nIGFu ZApmcmVlemluZy4KCk5vdGUgdGhhdCB0aGlzIGlzIG5vdCB1c2VkIGJ5IG9uLWFjY2VzcyBwcnVu aW5nLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICB8IDIyMSArKysr KysrKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYyB8IDE0NiArKy0tLS0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0u aCAgICAgICAgICB8ICAyNCArLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjIxIGluc2VydGlvbnMoKyks IDE3MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDll MDBmYmYzY2QxLi5lM2Y5OTY3ZTI2YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMK QEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5j bHVkZSAiYWNjZXNzL211bHRpeGFjdC5oIgogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCisj aW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXAuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5o IgogI2luY2x1ZGUgImFjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oIgogI2luY2x1ZGUgImFjY2Vz cy94bG9naW5zZXJ0LmgiCkBAIC0yNTcsNyArMjU4LDkgQEAgaGVhcF9wYWdlX3BydW5lX29wdChS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcikKIAkJCSAqIG5vdCB0aGUgcmVsYXRpb24g aGFzIGluZGV4ZXMsIHNpbmNlIHdlIGNhbm5vdCBzYWZlbHkgZGV0ZXJtaW5lCiAJCQkgKiB0aGF0 IGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyB3aXRoIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9u LgogCQkJICovCi0JCQloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShyZWxhdGlvbiwgYnVmZmVy LCBQUlVORV9PTl9BQ0NFU1MsIDAsIE5VTEwsCisJCQloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6 ZShyZWxhdGlvbiwgYnVmZmVyLAorCQkJCQkJCQkJICAgSW52YWxpZEJ1ZmZlciwgZmFsc2UsCisJ CQkJCQkJCQkgICBQUlVORV9PTl9BQ0NFU1MsIDAsIE5VTEwsCiAJCQkJCQkJCQkgICB2aXN0ZXN0 LCAmcHJlc3VsdCwgJmR1bW15X29mZl9sb2MsIE5VTEwsIE5VTEwpOwogCiAJCQkvKgpAQCAtNDIz LDE2ICs0MjYsMTE1IEBAIGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlciwKIAlyZXR1cm4gZG9fZnJlZXplOwogfQogCisvKgorICogRGV0ZXJtaW5l IHdoZXRoZXIgdG8gc2V0IHRoZSB2aXNpYmlsaXR5IG1hcCBiaXRzIGJhc2VkIG9uIGluZm9ybWF0 aW9uIGZyb20KKyAqIHRoZSBQcnVuZVN0YXRlIGFuZCBibGtfa25vd25fYXYsIHdoaWNoIHNvbWUg Y2FsbGVycyB3aWxsIHByb3ZpZGUgYWZ0ZXIKKyAqIHByZXZpb3VzbHkgZXhhbWluaW5nIHRoaXMg aGVhcCBwYWdlJ3MgVk0gYml0cyAoZS5nLiB2YWN1dW0gZnJvbSB0aGUgbGFzdAorICogaGVhcF92 YWNfc2Nhbl9uZXh0X2Jsb2NrKCkgY2FsbCkuCisgKgorICogVGhpcyBzaG91bGQgYmUgY2FsbGVk IG9ubHkgYWZ0ZXIgZG9fZnJlZXplIGhhcyBiZWVuIGRlY2lkZWQgKGFuZCBkb19wcnVuZQorICog aGFzIGJlZW4gc2V0KSwgYXMgdGhlc2UgZmFjdG9yIGludG8gb3VyIGhldXJpc3RpYy1iYXNlZCBk ZWNpc2lvbi4KKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGNhbGxlciBzaG91bGQgc2V0IG9u ZSBvciBib3RoIG9mIHRoZSBWTSBiaXRzIGFuZCBmYWxzZQorICogb3RoZXJ3aXNlLgorICovCitz dGF0aWMgYm9vbAoraGVhcF9wYWdlX3dpbGxfc2V0X3ZpcyhSZWxhdGlvbiByZWxhdGlvbiwKKwkJ CQkJICAgQmxvY2tOdW1iZXIgaGVhcF9ibGssCisJCQkJCSAgIEJ1ZmZlciBoZWFwX2J1ZiwKKwkJ CQkJICAgQnVmZmVyIHZtYnVmZmVyLAorCQkJCQkgICBib29sIGJsa19rbm93bl9hdiwKKwkJCQkJ ICAgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKKwkJCQkJICAgdWludDggKnZtZmxhZ3MsCisJCQkJCSAg IGJvb2wgKmRvX3NldF9wZF92aXMpCit7CisJUGFnZQkJaGVhcF9wYWdlID0gQnVmZmVyR2V0UGFn ZShoZWFwX2J1Zik7CisJYm9vbAkJZG9fc2V0X3ZtID0gZmFsc2U7CisKKwlpZiAocHJzdGF0ZS0+ YWxsX3Zpc2libGUgJiYgIVBhZ2VJc0FsbFZpc2libGUoaGVhcF9wYWdlKSkKKwkJKmRvX3NldF9w ZF92aXMgPSB0cnVlOworCisJaWYgKChwcnN0YXRlLT5hbGxfdmlzaWJsZSAmJiAhYmxrX2tub3du X2F2KSB8fAorCQkocHJzdGF0ZS0+YWxsX2Zyb3plbiAmJiAhVk1fQUxMX0ZST1pFTihyZWxhdGlv biwgaGVhcF9ibGssICZ2bWJ1ZmZlcikpKQorCXsKKwkJKnZtZmxhZ3MgPSBWSVNJQklMSVRZTUFQ X0FMTF9WSVNJQkxFOworCQlpZiAocHJzdGF0ZS0+YWxsX2Zyb3plbikKKwkJCSp2bWZsYWdzIHw9 IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKKworCQlkb19zZXRfdm0gPSB0cnVlOworCX0KKwor CS8qCisJICogTm93IGhhbmRsZSB0d28gcG90ZW50aWFsIGNvcnJ1cHRpb24gY2FzZXM6CisJICoK KwkgKiBUaGVzZSBkbyBub3QgbmVlZCB0byBoYXBwZW4gaW4gYSBjcml0aWNhbCBzZWN0aW9uIGFu ZCBhcmUgbm90CisJICogV0FMLWxvZ2dlZC4KKwkgKgorCSAqIEFzIG9mIFBvc3RncmVTUUwgOS4y LCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IHNob3VsZCBuZXZlciBiZSBzZXQgaWYgdGhlCisJICog cGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIuICBIb3dldmVyLCBpdCdzIHBvc3NpYmxlIHRoYXQgaW4g dmFjdXVtIHRoZSBiaXQKKwkgKiBnb3QgY2xlYXJlZCBhZnRlciBoZWFwX3ZhY19zY2FuX25leHRf YmxvY2soKSB3YXMgY2FsbGVkLCBzbyB3ZSBtdXN0CisJICogcmVjaGVjayB3aXRoIGJ1ZmZlciBs b2NrIGJlZm9yZSBjb25jbHVkaW5nIHRoYXQgdGhlIFZNIGlzIGNvcnJ1cHQuCisJICovCisJZWxz ZSBpZiAoYmxrX2tub3duX2F2ICYmICFQYWdlSXNBbGxWaXNpYmxlKGhlYXBfcGFnZSkgJiYKKwkJ CSB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocmVsYXRpb24sIGhlYXBfYmxrLCAmdm1idWZmZXIp ICE9IDApCisJeworCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRB X0NPUlJVUFRFRCksCisJCQkJIGVycm1zZygicGFnZSBpcyBub3QgbWFya2VkIGFsbC12aXNpYmxl IGJ1dCB2aXNpYmlsaXR5IG1hcCBiaXQgaXMgc2V0IGluIHJlbGF0aW9uIFwiJXNcIiBwYWdlICV1 IiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbGF0aW9uKSwgaGVhcF9ibGspKSk7 CisKKwkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWxhdGlvbiwgaGVhcF9ibGssIHZtYnVmZmVyLAor CQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CisJfQorCisJLyoKKwkgKiBJdCdzIHBv c3NpYmxlIGZvciB0aGUgdmFsdWUgcmV0dXJuZWQgYnkKKwkgKiBHZXRPbGRlc3ROb25SZW1vdmFi bGVUcmFuc2FjdGlvbklkKCkgdG8gbW92ZSBiYWNrd2FyZHMsIHNvIGl0J3Mgbm90CisJICogd3Jv bmcgZm9yIHVzIHRvIHNlZSB0dXBsZXMgdGhhdCBhcHBlYXIgdG8gbm90IGJlIHZpc2libGUgdG8g ZXZlcnlvbmUKKwkgKiB5ZXQsIHdoaWxlIFBEX0FMTF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LiBU aGUgcmVhbCBzYWZlIHhtaW4gdmFsdWUKKwkgKiBuZXZlciBtb3ZlcyBiYWNrd2FyZHMsIGJ1dCBH ZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2FjdGlvbklkKCkgaXMKKwkgKiBjb25zZXJ2YXRpdmUg YW5kIHNvbWV0aW1lcyByZXR1cm5zIGEgdmFsdWUgdGhhdCdzIHVubmVjZXNzYXJpbHkgc21hbGws CisJICogc28gaWYgd2Ugc2VlIHRoYXQgY29udHJhZGljdGlvbiBpdCBqdXN0IG1lYW5zIHRoYXQg dGhlIHR1cGxlcyB0aGF0IHdlCisJICogdGhpbmsgYXJlIG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25l IHlldCBhY3R1YWxseSBhcmUsIGFuZCB0aGUKKwkgKiBQRF9BTExfVklTSUJMRSBmbGFnIGlzIGNv cnJlY3QuCisJICoKKwkgKiBUaGVyZSBzaG91bGQgbmV2ZXIgYmUgTFBfREVBRCBpdGVtcyBvbiBh IHBhZ2Ugd2l0aCBQRF9BTExfVklTSUJMRSBzZXQsCisJICogaG93ZXZlci4KKwkgKi8KKwllbHNl IGlmIChwcnN0YXRlLT5scGRlYWRfaXRlbXMgPiAwICYmIFBhZ2VJc0FsbFZpc2libGUoaGVhcF9w YWdlKSkKKwl7CisJCWVyZXBvcnQoV0FSTklORywKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFf Q09SUlVQVEVEKSwKKwkJCQkgZXJybXNnKCJwYWdlIGNvbnRhaW5pbmcgTFBfREVBRCBpdGVtcyBp cyBtYXJrZWQgYXMgYWxsLXZpc2libGUgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAorCQkJ CQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pLCBoZWFwX2JsaykpKTsKKworCQlQ YWdlQ2xlYXJBbGxWaXNpYmxlKGhlYXBfcGFnZSk7CisJCU1hcmtCdWZmZXJEaXJ0eShoZWFwX2J1 Zik7CisJCXZpc2liaWxpdHltYXBfY2xlYXIocmVsYXRpb24sIGhlYXBfYmxrLCB2bWJ1ZmZlciwK KwkJCQkJCQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOworCX0KKworCS8qIFdlIHNob3VsZCBv bmx5IHNldCB0aGUgVk0gaWYgUERfQUxMX1ZJU0lCTEUgaXMgc2V0IG9yIHdpbGwgYmUgKi8KKwlB c3NlcnQoIWRvX3NldF92bSB8fCBQYWdlSXNBbGxWaXNpYmxlKGhlYXBfcGFnZSkgfHwgKmRvX3Nl dF9wZF92aXMpOworCisJcmV0dXJuIGRvX3NldF92bTsKK30KIAogLyoKICAqIFBydW5lIGFuZCBy ZXBhaXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXplIHR1cGxlcyBvbiB0aGUK LSAqIHNwZWNpZmllZCBwYWdlLgorICogc3BlY2lmaWVkIHBhZ2UuIElmIHRoZSBwYWdlJ3Mgdmlz aWJpbGl0eSBzdGF0dXMgaGFzIGNoYW5nZWQsIHVwZGF0ZSBpdCBpbgorICogdGhlIFZNLgogICoK ICAqIENhbGxlciBtdXN0IGhhdmUgcGluIGFuZCBidWZmZXIgY2xlYW51cCBsb2NrIG9uIHRoZSBw YWdlLiAgTm90ZSB0aGF0IHdlCiAgKiBkb24ndCB1cGRhdGUgdGhlIEZTTSBpbmZvcm1hdGlvbiBm b3IgcGFnZSBvbiBjYWxsZXIncyBiZWhhbGYuICBDYWxsZXIgbWlnaHQKICAqIGFsc28gbmVlZCB0 byBhY2NvdW50IGZvciBhIHJlZHVjdGlvbiBpbiB0aGUgbGVuZ3RoIG9mIHRoZSBsaW5lIHBvaW50 ZXIKICAqIGFycmF5IGZvbGxvd2luZyBhcnJheSB0cnVuY2F0aW9uIGJ5IHVzLgogICoKKyAqIHZt YnVmZmVyIGlzIHRoZSBidWZmZXIgdGhhdCBtdXN0IGFscmVhZHkgY29udGFpbiBjb250YWluIHRo ZSByZXF1aXJlZCBibG9jaworICogb2YgdGhlIHZpc2liaWxpdHkgbWFwIGlmIHdlIGFyZSB0byB1 cGRhdGUgaXQuIGJsa19rbm93bl9hdiBpcyB0aGUKKyAqIHZpc2liaWxpdHkgc3RhdHVzIG9mIHRo ZSBoZWFwIGJsb2NrIGFzIG9mIHRoZSBsYXN0IGNhbGwgdG8KKyAqIGZpbmRfbmV4dF91bnNraXBw YWJsZV9ibG9jaygpLgorICoKICAqIHJlYXNvbiBpbmRpY2F0ZXMgd2h5IHRoZSBwcnVuaW5nIGlz IHBlcmZvcm1lZC4gIEl0IGlzIGluY2x1ZGVkIGluIHRoZSBXQUwKICAqIHJlY29yZCBmb3IgZGVi dWdnaW5nIGFuZCBhbmFseXNpcyBwdXJwb3NlcywgYnV0IG90aGVyd2lzZSBoYXMgbm8gZWZmZWN0 LgogICoKQEAgLTQ0MywxNSArNTQ1LDIwIEBAIGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShSZWxhdGlv biByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKICAqICAgRlJFRVpFIGluZGljYXRlcyB0aGF0IHdl IHdpbGwgYWxzbyBmcmVlemUgdHVwbGVzLCBhbmQgd2lsbCByZXR1cm4KICAqICAgJ2FsbF92aXNp YmxlJywgJ2FsbF9mcm96ZW4nIGZsYWdzIHRvIHRoZSBjYWxsZXIuCiAgKgotICogSWYgdGhlIEhF QVBfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBzZXQsIHdlIHdpbGwgZnJlZXplIHR1cGxlcyBpZiBp dCdzCisgKiAgIFVQREFURV9WSVMgaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBzZXQgdGhlIHBhZ2Un cyBzdGF0dXMgaW4gdGhlIFZNLgorICoKKyAqIElmIHRoZSBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRp b24gaXMgc2V0LCB3ZSB3aWxsIGFsc28gZnJlZXplIHR1cGxlcyBpZiBpdCdzCiAgKiByZXF1aXJl ZCBpbiBvcmRlciB0byBhZHZhbmNlIHJlbGZyb3plbnhpZCAvIHJlbG1pbm14aWQsIG9yIGlmIGl0 J3MKICAqIGNvbnNpZGVyZWQgYWR2YW50YWdlb3VzIGZvciBvdmVyYWxsIHN5c3RlbSBwZXJmb3Jt YW5jZSB0byBkbyBzbyBub3cuICBUaGUKICAqICdjdXRvZmZzJywgJ3ByZXN1bHQnLCAnbmV3X3Jl bGZyb3plbl94aWQnIGFuZCAnbmV3X3JlbG1pbl9teGlkJyBhcmd1bWVudHMKLSAqIGFyZSByZXF1 aXJlZCB3aGVuIGZyZWV6aW5nLiAgV2hlbiBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0 LCB3ZSBhbHNvCi0gKiBzZXQgcHJlc3VsdC0+YWxsX3Zpc2libGUgYW5kIHByZXN1bHQtPmFsbF9m cm96ZW4gb24gZXhpdCwgdG8gaW5kaWNhdGUgaWYKLSAqIHRoZSBWTSBiaXRzIGNhbiBiZSBzZXQu ICBUaGV5IGFyZSBhbHdheXMgc2V0IHRvIGZhbHNlIHdoZW4gdGhlCi0gKiBIRUFQX1BSVU5FX0ZS RUVaRSBvcHRpb24gaXMgbm90IHNldCwgYmVjYXVzZSBhdCB0aGUgbW9tZW50IG9ubHkgY2FsbGVy cwotICogdGhhdCBhbHNvIGZyZWV6ZSBuZWVkIHRoYXQgaW5mb3JtYXRpb24uCisgKiBhcmUgcmVx dWlyZWQgd2hlbiBmcmVlemluZy4KKyAqCisgKiBJZiBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZJ UyBpcyBzZXQgYW5kIHRoZSB2aXNpYmlsaXR5IHN0YXR1cyBvZiB0aGUgcGFnZQorICogaGFzIGNo YW5nZWQsIHdlIHdpbGwgdXBkYXRlIHRoZSBWTSBhdCB0aGUgc2FtZSB0aW1lIGFzIHBydW5pbmcg YW5kIGZyZWV6aW5nCisgKiB0aGUgaGVhcCBwYWdlLiBXZSB3aWxsIGFsc28gdXBkYXRlIHByZXN1 bHQtPm9sZF92bWJpdHMgYW5kCisgKiBwcmVzdWx0LT5uZXdfdm1iaXRzIHdpdGggdGhlIHN0YXRl IG9mIHRoZSBWTSBiZWZvcmUgYW5kIGFmdGVyIHVwZGF0aW5nIGl0CisgKiBmb3IgdGhlIGNhbGxl ciB0byB1c2UgaW4gYm9va2tlZXBpbmcuCisgKgogICoKICAqIGN1dG9mZnMgY29udGFpbnMgdGhl IGZyZWV6ZSBjdXRvZmZzLCBlc3RhYmxpc2hlZCBieSBWQUNVVU0gYXQgdGhlIGJlZ2lubmluZwog ICogb2YgdmFjdXVtaW5nIHRoZSByZWxhdGlvbi4gIFJlcXVpcmVkIGlmIEhFQVBfUFJVTkVfRlJF RVpFIG9wdGlvbiBpcyBzZXQuCkBAIC00NzgsNiArNTg1LDcgQEAgaGVhcF9wYWdlX3dpbGxfZnJl ZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogICovCiB2b2lkCiBoZWFwX3Bh Z2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKKwkJ CQkJCSAgIEJ1ZmZlciB2bWJ1ZmZlciwgYm9vbCBibGtfa25vd25fYXYsCiAJCQkJCQkgICBQcnVu ZVJlYXNvbiByZWFzb24sCiAJCQkJCQkgICBpbnQgb3B0aW9ucywKIAkJCQkJCSAgIGNvbnN0IHN0 cnVjdCBWYWN1dW1DdXRvZmZzICpjdXRvZmZzLApAQCAtNDk2LDEwICs2MDQsMTMgQEAgaGVhcF9w YWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJ Ym9vbAkJZG9fZnJlZXplOwogCWJvb2wJCWRvX3BydW5lOwogCWJvb2wJCWRvX2hpbnRfcHJ1bmU7 CisJYm9vbAkJZG9fc2V0X3ZtOwogCWJvb2wJCWRvX3NldF9wZF92aXM7CiAJYm9vbAkJZGlkX3R1 cGxlX2hpbnRfZnBpOwogCWludDY0CQlmcGlfYmVmb3JlID0gcGdXYWxVc2FnZS53YWxfZnBpOwog CVRyYW5zYWN0aW9uSWQgZnJ6X2NvbmZsaWN0X2hvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25J ZDsKKwl1aW50OAkJbmV3X3ZtYml0cyA9IDA7CisJdWludDgJCW9sZF92bWJpdHMgPSAwOwogCiAJ LyogQ29weSBwYXJhbWV0ZXJzIHRvIHByc3RhdGUgKi8KIAlwcnN0YXRlLnZpc3Rlc3QgPSB2aXN0 ZXN0OwpAQCAtODI4LDE5ICs5MzksMjcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVs YXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJQXNzZXJ0KCFwcnN0YXRlLmFsbF9mcm96 ZW4gfHwgcHJzdGF0ZS5hbGxfdmlzaWJsZSk7CiAKIAkvKgotCSAqIFRob3VnaCBjYWxsZXJzIHNo b3VsZCBzZXQgdGhlIFZNIGlmIFBEX0FMTF9WSVNJQkxFIGlzIHNldCBoZXJlLCBpdCBpcwotCSAq IGFsbG93ZWQgZm9yIHRoZSBwYWdlLWxldmVsIGJpdCB0byBiZSBzZXQgYW5kIHRoZSBWTSB0byBi ZSBjbGVhci4KKwkgKiBEZXRlcm1pbmUgd2hldGhlciBvciBub3QgdG8gc2V0IHRoZSBwYWdlIGxl dmVsIFBEX0FMTF9WSVNJQkxFIGFuZCB0aGUKKwkgKiB2aXNpYmlsaXR5IG1hcCBiaXRzIGJhc2Vk IG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFZNIGFuZCBmcm9tCisJICogYWxsX3Zpc2libGUgYW5k IGFsbF9mcm96ZW4gdmFyaWFibGVzLgorCSAqCisJICogVGhvdWdoIGNhbGxlcnMgc2hvdWxkIHNl dCB0aGUgVk0gaWYgUERfQUxMX1ZJU0lCTEUgaXMgc2V0LCBpdCBpcworCSAqIGFsbG93ZWQgZm9y IHRoZSBwYWdlLWxldmVsIGJpdCB0byBiZSBzZXQgYW5kIHRoZSBWTSB0byBiZSBjbGVhci4gV2Ug bG9nCisJICogc2V0dGluZyBQRF9BTExfVklTSUJMRSBvbiB0aGUgaGVhcCBwYWdlIGluIGEKKwkg KiBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9TQ0FOIHJlY29yZCBhbmQgc2V0dGluZyB0aGUgVk0g Yml0cyBpbiBhIGxhdGVyCisJICogZW1pdHRlZCBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVjb3JkLgor CSAqCiAJICogU2V0dGluZyBQRF9BTExfVklTSUJMRSB3aGVuIHdlIGFyZSBtYWtpbmcgdGhlIGNo YW5nZXMgdG8gdGhlIHBhZ2UgdGhhdAogCSAqIHJlbmRlciBpdCBhbGwtdmlzaWJsZSBhbGxvd3Mg dXMgdG8gb21pdCB0aGUgaGVhcCBwYWdlIGZyb20gdGhlIFdBTAogCSAqIGNoYWluIHdoZW4gbGF0 ZXIgdXBkYXRpbmcgdGhlIFZNIC0tIGV2ZW4gd2hlbiBjaGVja3N1bXMvd2FsX2xvZ19oaW50cwog CSAqIGFyZSBlbmFibGVkLgogCSAqLwogCWRvX3NldF9wZF92aXMgPSBmYWxzZTsKKwlkb19zZXRf dm0gPSBmYWxzZTsKIAlpZiAoKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZJUykg IT0gMCkKLQl7Ci0JCWlmIChwcnN0YXRlLmFsbF92aXNpYmxlICYmICFQYWdlSXNBbGxWaXNpYmxl KHBhZ2UpKQotCQkJZG9fc2V0X3BkX3ZpcyA9IHRydWU7Ci0JfQorCQlkb19zZXRfdm0gPSBoZWFw X3BhZ2Vfd2lsbF9zZXRfdmlzKHJlbGF0aW9uLAorCQkJCQkJCQkJCSAgIGJsb2Nrbm8sIGJ1ZmZl ciwgdm1idWZmZXIsIGJsa19rbm93bl9hdiwKKwkJCQkJCQkJCQkgICAmcHJzdGF0ZSwgJm5ld192 bWJpdHMsICZkb19zZXRfcGRfdmlzKTsKIAogCS8qIEFueSBlcnJvciB3aGlsZSBhcHBseWluZyB0 aGUgY2hhbmdlcyBpcyBjcml0aWNhbCAqLwogCVNUQVJUX0NSSVRfU0VDVElPTigpOwpAQCAtOTI4 LDI4ICsxMDQ3LDcyIEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0 aW9uLCBCdWZmZXIgYnVmZmVyLAogCiAJRU5EX0NSSVRfU0VDVElPTigpOwogCisJQXNzZXJ0KCFw cnN0YXRlLmFsbF92aXNpYmxlIHx8IChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKSk7CisKKwkv KgorCSAqIFZBQ1VVTSB3aWxsIGNhbGwgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKCkg ZHVyaW5nIHRoZSBzZWNvbmQKKwkgKiBwYXNzIG92ZXIgdGhlIGhlYXAgdG8gZGV0ZXJtaW5lIGFs bF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIGZvciB0aGUgcGFnZQorCSAqIC0tIHRoaXMgaXMgYSBz cGVjaWFsaXplZCB2ZXJzaW9uIG9mIHRoYXQgbG9naWMuIE5vdyB0aGF0IHdlJ3ZlIGZpbmlzaGVk CisJICogcHJ1bmluZyBhbmQgZnJlZXppbmcsIG1ha2Ugc3VyZSB0aGF0IHdlJ3JlIGluIHRvdGFs IGFncmVlbWVudCB3aXRoCisJICogaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKCkgdXNp bmcgYW4gYXNzZXJ0aW9uLgorCSAqLworI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKwlpZiAo cHJzdGF0ZS5hbGxfdmlzaWJsZSkKKwl7CisJCVRyYW5zYWN0aW9uSWQgZGVidWdfY3V0b2ZmOwor CQlib29sCQlkZWJ1Z19hbGxfZnJvemVuOworCisJCUFzc2VydChwcnN0YXRlLmxwZGVhZF9pdGVt cyA9PSAwKTsKKwkJQXNzZXJ0KHByc3RhdGUuY3V0b2Zmcyk7CisKKwkJaWYgKCFoZWFwX3BhZ2Vf aXNfYWxsX3Zpc2libGUocmVsYXRpb24sIGJ1ZmZlciwKKwkJCQkJCQkJCSAgcHJzdGF0ZS5jdXRv ZmZzLT5PbGRlc3RYbWluLAorCQkJCQkJCQkJICAmZGVidWdfYWxsX2Zyb3plbiwKKwkJCQkJCQkJ CSAgJmRlYnVnX2N1dG9mZiwgb2ZmX2xvYykpCisJCQlBc3NlcnQoZmFsc2UpOworCisJCUFzc2Vy dChwcnN0YXRlLmFsbF9mcm96ZW4gPT0gZGVidWdfYWxsX2Zyb3plbik7CisKKwkJQXNzZXJ0KCFU cmFuc2FjdGlvbklkSXNWYWxpZChkZWJ1Z19jdXRvZmYpIHx8CisJCQkgICBkZWJ1Z19jdXRvZmYg PT0gcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQpOworCX0KKyNlbmRpZgorCisJLyogTm93 IHNldCB0aGUgVk0gKi8KKwlpZiAoZG9fc2V0X3ZtKQorCXsKKwkJVHJhbnNhY3Rpb25JZCB2bV9j b25mbGljdF9ob3Jpem9uOworCisJCUFzc2VydCgobmV3X3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBf VkFMSURfQklUUykgIT0gMCk7CisKKwkJLyoKKwkJICogVGhlIGNvbmZsaWN0IGhvcml6b24gZm9y IHRoYXQgcmVjb3JkIG11c3QgYmUgdGhlIG5ld2VzdCB4bWluIG9uIHRoZQorCQkgKiBwYWdlLiAg SG93ZXZlciwgaWYgdGhlIHBhZ2UgaXMgY29tcGxldGVseSBmcm96ZW4sIHRoZXJlIGNhbiBiZSBu bworCQkgKiBjb25mbGljdCBhbmQgdGhlIHZtX2NvbmZsaWN0X2hvcml6b24gc2hvdWxkIHJlbWFp bgorCQkgKiBJbnZhbGlkVHJhbnNhY3Rpb25JZC4gIFRoaXMgaW5jbHVkZXMgdGhlIGNhc2UgdGhh dCB3ZSBqdXN0IGZyb3plCisJCSAqIGFsbCB0aGUgdHVwbGVzOyB0aGUgcHJ1bmUtZnJlZXplIHJl Y29yZCBpbmNsdWRlZCB0aGUgY29uZmxpY3QgWElECisJCSAqIGFscmVhZHkgc28gYSBzbmFwc2hv dENvbmZsaWN0SG9yaXpvbiBzdWZmaWNpZW50IHRvIG1ha2UgZXZlcnl0aGluZworCQkgKiBzYWZl IGZvciBSRURPIHdhcyBsb2dnZWQgd2hlbiB0aGUgcGFnZSdzIHR1cGxlcyB3ZXJlIGZyb3plbi4K KwkJICovCisJCWlmIChwcnN0YXRlLmFsbF9mcm96ZW4pCisJCQl2bV9jb25mbGljdF9ob3Jpem9u ID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJCWVsc2UKKwkJCXZtX2NvbmZsaWN0X2hvcml6b24g PSBwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKKwkJb2xkX3ZtYml0cyA9IHZpc2liaWxp dHltYXBfc2V0KHJlbGF0aW9uLCBibG9ja25vLAorCQkJCQkJCQkJICAgSW52YWxpZFhMb2dSZWNQ dHIsCisJCQkJCQkJCQkgICB2bWJ1ZmZlciwgdm1fY29uZmxpY3RfaG9yaXpvbiwKKwkJCQkJCQkJ CSAgIG5ld192bWJpdHMpOworCX0KKwogCS8qIENvcHkgaW5mb3JtYXRpb24gYmFjayBmb3IgY2Fs bGVyICovCiAJcHJlc3VsdC0+bmRlbGV0ZWQgPSBwcnN0YXRlLm5kZWxldGVkOwogCXByZXN1bHQt Pm5uZXdscGRlYWQgPSBwcnN0YXRlLm5kZWFkOwogCXByZXN1bHQtPm5mcm96ZW4gPSBwcnN0YXRl Lm5mcm96ZW47CiAJcHJlc3VsdC0+bGl2ZV90dXBsZXMgPSBwcnN0YXRlLmxpdmVfdHVwbGVzOwog CXByZXN1bHQtPnJlY2VudGx5X2RlYWRfdHVwbGVzID0gcHJzdGF0ZS5yZWNlbnRseV9kZWFkX3R1 cGxlczsKLQlwcmVzdWx0LT5hbGxfdmlzaWJsZSA9IHByc3RhdGUuYWxsX3Zpc2libGU7Ci0JcHJl c3VsdC0+YWxsX2Zyb3plbiA9IHByc3RhdGUuYWxsX2Zyb3plbjsKIAlwcmVzdWx0LT5oYXN0dXAg PSBwcnN0YXRlLmhhc3R1cDsKLQotCS8qCi0JICogRm9yIGNhbGxlcnMgcGxhbm5pbmcgdG8gdXBk YXRlIHRoZSB2aXNpYmlsaXR5IG1hcCwgdGhlIGNvbmZsaWN0IGhvcml6b24KLQkgKiBmb3IgdGhh dCByZWNvcmQgbXVzdCBiZSB0aGUgbmV3ZXN0IHhtaW4gb24gdGhlIHBhZ2UuICBIb3dldmVyLCBp ZiB0aGUKLQkgKiBwYWdlIGlzIGNvbXBsZXRlbHkgZnJvemVuLCB0aGVyZSBjYW4gYmUgbm8gY29u ZmxpY3QgYW5kIHRoZQotCSAqIHZtX2NvbmZsaWN0X2hvcml6b24gc2hvdWxkIHJlbWFpbiBJbnZh bGlkVHJhbnNhY3Rpb25JZC4gIFRoaXMgaW5jbHVkZXMKLQkgKiB0aGUgY2FzZSB0aGF0IHdlIGp1 c3QgZnJvemUgYWxsIHRoZSB0dXBsZXM7IHRoZSBwcnVuZS1mcmVlemUgcmVjb3JkCi0JICogaW5j bHVkZWQgdGhlIGNvbmZsaWN0IFhJRCBhbHJlYWR5IHNvIHRoZSBjYWxsZXIgZG9lc24ndCBuZWVk IGl0LgotCSAqLwotCWlmIChwcmVzdWx0LT5hbGxfZnJvemVuKQotCQlwcmVzdWx0LT52bV9jb25m bGljdF9ob3Jpem9uID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7Ci0JZWxzZQotCQlwcmVzdWx0LT52 bV9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisJcHJl c3VsdC0+bmV3X3ZtYml0cyA9IG5ld192bWJpdHM7CisJcHJlc3VsdC0+b2xkX3ZtYml0cyA9IG9s ZF92bWJpdHM7CiAKIAlwcmVzdWx0LT5scGRlYWRfaXRlbXMgPSBwcnN0YXRlLmxwZGVhZF9pdGVt czsKIAkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJyYXkgd2FzIGFscmVhZHkgZmlsbGVk IGluICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggZTg3MjE3NjEzOTIu LmQ3MWYzNzU1ZGNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC00NjMs MTEgKzQ2Myw2IEBAIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfYWRkKExWUmVsU3RhdGUgKnZhY3Jl bCwgQmxvY2tOdW1iZXIgYmxrbm8sIE9mZnNldE51bWJlciAqCiAJCQkJCQkgICBpbnQgbnVtX29m ZnNldHMpOwogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19yZXNldChMVlJlbFN0YXRlICp2YWNyZWwp Owogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCk7Ci1z dGF0aWMgYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIg YnVmLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKLQkJCQkJCQkJCSBib29s ICphbGxfZnJvemVuLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2Zm X3hpZCwKLQkJCQkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKIHN0YXRpYyBi b29sIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBi dWYsCiAJCQkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAogCQkJCQkJCQkJCSAg IE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCkBAIC0yMDE1LDcgKzIwMTAsOSBAQCBsYXp5X3Nj YW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCWlmICh2YWNyZWwtPm5pbmRleGVzID09IDAp CiAJCXBydW5lX29wdGlvbnMgfD0gSEVBUF9QQUdFX1BSVU5FX01BUktfVU5VU0VEX05PVzsKIAot CWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKHJlbCwgYnVmLCBQUlVORV9WQUNVVU1fU0NBTiwg cHJ1bmVfb3B0aW9ucywKKwloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShyZWwsIGJ1ZiwKKwkJ CQkJCQkgICB2bWJ1ZmZlciwgYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtLAorCQkJCQkJCSAg IFBSVU5FX1ZBQ1VVTV9TQ0FOLCBwcnVuZV9vcHRpb25zLAogCQkJCQkJCSAgICZ2YWNyZWwtPmN1 dG9mZnMsCiAJCQkJCQkJICAgdmFjcmVsLT52aXN0ZXN0LAogCQkJCQkJCSAgICZwcmVzdWx0LApA QCAtMjAzNiwzMyArMjAzMyw2IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWws CiAJCXZhY3JlbC0+bmV3X2Zyb3plbl90dXBsZV9wYWdlcysrOwogCX0KIAotCS8qCi0JICogVkFD VVVNIHdpbGwgY2FsbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKSBkdXJpbmcgdGhlIHNlY29u ZCBwYXNzIG92ZXIKLQkgKiB0aGUgaGVhcCB0byBkZXRlcm1pbmUgYWxsX3Zpc2libGUgYW5kIGFs bF9mcm96ZW4gZm9yIHRoZSBwYWdlIC0tIHRoaXMKLQkgKiBpcyBhIHNwZWNpYWxpemVkIHZlcnNp b24gb2YgdGhlIGxvZ2ljIGZyb20gdGhpcyBmdW5jdGlvbi4gIE5vdyB0aGF0Ci0JICogd2UndmUg ZmluaXNoZWQgcHJ1bmluZyBhbmQgZnJlZXppbmcsIG1ha2Ugc3VyZSB0aGF0IHdlJ3JlIGluIHRv dGFsCi0JICogYWdyZWVtZW50IHdpdGggaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKCkgdXNpbmcg YW4gYXNzZXJ0aW9uLgotCSAqLwotI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKLQlpZiAocHJl c3VsdC5hbGxfdmlzaWJsZSkKLQl7Ci0JCVRyYW5zYWN0aW9uSWQgZGVidWdfY3V0b2ZmOwotCQli b29sCQlkZWJ1Z19hbGxfZnJvemVuOwotCi0JCUFzc2VydChwcmVzdWx0LmxwZGVhZF9pdGVtcyA9 PSAwKTsKLQotCQlpZiAoIWhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSh2YWNyZWwtPnJlbCwgYnVm LAotCQkJCQkJCQkJICB2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbiwgJmRlYnVnX2FsbF9mcm96 ZW4sCi0JCQkJCQkJCQkgICZkZWJ1Z19jdXRvZmYsICZ2YWNyZWwtPm9mZm51bSkpCi0JCQlBc3Nl cnQoZmFsc2UpOwotCi0JCUFzc2VydChwcmVzdWx0LmFsbF9mcm96ZW4gPT0gZGVidWdfYWxsX2Zy b3plbik7Ci0KLQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChkZWJ1Z19jdXRvZmYpIHx8 Ci0JCQkgICBkZWJ1Z19jdXRvZmYgPT0gcHJlc3VsdC52bV9jb25mbGljdF9ob3Jpem9uKTsKLQl9 Ci0jZW5kaWYKLQogCS8qCiAJICogTm93IHNhdmUgZGV0YWlscyBvZiB0aGUgTFBfREVBRCBpdGVt cyBmcm9tIHRoZSBwYWdlIGluIHZhY3JlbAogCSAqLwpAQCAtMjA5NiwxMTIgKzIwNjYsMjggQEAg bGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkvKiBEaWQgd2UgZmluZCBMUF9E RUFEIGl0ZW1zPyAqLwogCSpoYXNfbHBkZWFkX2l0ZW1zID0gKHByZXN1bHQubHBkZWFkX2l0ZW1z ID4gMCk7CiAKLQlBc3NlcnQoIXByZXN1bHQuYWxsX3Zpc2libGUgfHwgISgqaGFzX2xwZGVhZF9p dGVtcykpOwotCUFzc2VydCghcHJlc3VsdC5hbGxfZnJvemVuIHx8IHByZXN1bHQuYWxsX3Zpc2li bGUpOwotCiAJLyoKLQkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXRzIGJhc2Vk IG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFZNIChhcwotCSAqIG9mIGxhc3QgaGVhcF92YWNfc2Nh bl9uZXh0X2Jsb2NrKCkgY2FsbCksIGFuZCBmcm9tIGFsbF92aXNpYmxlIGFuZAotCSAqIGFsbF9m cm96ZW4gdmFyaWFibGVzLgorCSAqIEZvciB0aGUgcHVycG9zZXMgb2YgbG9nZ2luZywgY291bnQg d2hldGhlciBvciBub3QgdGhlIHBhZ2Ugd2FzIG5ld2x5CisJICogc2V0IGFsbC12aXNpYmxlIGFu ZCwgcG90ZW50aWFsbHksIGFsbC1mcm96ZW4uCiAJICovCi0JaWYgKChwcmVzdWx0LmFsbF92aXNp YmxlICYmICFhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0pIHx8Ci0JCShwcmVzdWx0LmFsbF9m cm96ZW4gJiYgIVZNX0FMTF9GUk9aRU4odmFjcmVsLT5yZWwsIGJsa25vLCAmdm1idWZmZXIpKSkK KwlpZiAoKHByZXN1bHQub2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpID09 IDAgJiYKKwkJKHByZXN1bHQubmV3X3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUp ICE9IDApCiAJewotCQl1aW50OAkJb2xkX3ZtYml0czsKLQkJdWludDgJCWZsYWdzID0gVklTSUJJ TElUWU1BUF9BTExfVklTSUJMRTsKLQotCQkvKgotCQkgKiBJZiB0aGUgcGFnZSBpcyBhbGwtZnJv emVuLCB3ZSBjYW4gcGFzcyBJbnZhbGlkVHJhbnNhY3Rpb25JZCBhcyBvdXIKLQkJICogY3V0b2Zm X3hpZCwgc2luY2UgYSBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiBzdWZmaWNpZW50IHRvIG1ha2UK LQkJICogZXZlcnl0aGluZyBzYWZlIGZvciBSRURPIHdhcyBsb2dnZWQgd2hlbiB0aGUgcGFnZSdz IHR1cGxlcyB3ZXJlCi0JCSAqIGZyb3plbi4KLQkJICovCi0JCWlmIChwcmVzdWx0LmFsbF9mcm96 ZW4pCi0JCXsKLQkJCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQocHJlc3VsdC52bV9jb25m bGljdF9ob3Jpem9uKSk7Ci0JCQlmbGFncyB8PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU47Ci0J CX0KLQotCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVsLT5yZWwsIGJsa25v LAotCQkJCQkJCQkJICAgSW52YWxpZFhMb2dSZWNQdHIsCi0JCQkJCQkJCQkgICB2bWJ1ZmZlciwg cHJlc3VsdC52bV9jb25mbGljdF9ob3Jpem9uLAotCQkJCQkJCQkJICAgZmxhZ3MpOwotCi0JCS8q Ci0JCSAqIEV2ZW4gaWYgd2UgYXJlIG9ubHkgc2V0dGluZyB0aGUgYWxsLWZyb3plbiBiaXQsIHRo ZXJlIGlzIGEgc21hbGwKLQkJICogY2hhbmNlIHRoYXQgdGhlIFZNIHdhcyBtb2RpZmllZCBzb21l dGltZSBiZXR3ZWVuIHNldHRpbmcKLQkJICogYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtIGFu ZCBjaGVja2luZyB0aGUgdmlzaWJpbGl0eSBkdXJpbmcKLQkJICogcHJ1bmluZy4gQ2hlY2sgdGhl IHJldHVybiB2YWx1ZSBvZiBvbGRfdm1iaXRzIHRvIGVuc3VyZSB0aGUKLQkJICogdmlzaWJpbGl0 eSBtYXAgY291bnRlcnMgdXNlZCBmb3IgbG9nZ2luZyBhcmUgYWNjdXJhdGUuCi0JCSAqCi0JCSAq IElmIHRoZSBwYWdlIHdhc24ndCBhbHJlYWR5IHNldCBhbGwtdmlzaWJsZSBhbmQvb3IgYWxsLWZy b3plbiBpbiB0aGUKLQkJICogVk0sIGNvdW50IGl0IGFzIG5ld2x5IHNldCBmb3IgbG9nZ2luZy4K LQkJICovCi0JCWlmICgob2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpID09 IDApCi0JCXsKLQkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfcGFnZXMrKzsKLQkJCWlmIChwcmVz dWx0LmFsbF9mcm96ZW4pCi0JCQl7Ci0JCQkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMrKzsKLQkJCQkqdm1fcGFnZV9mcm96ZW4gPSB0cnVlOwotCQkJfQotCQl9Ci0JCWVsc2Ug aWYgKChvbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSA9PSAwICYmCi0JCQkJ IHByZXN1bHQuYWxsX2Zyb3plbikKKwkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9wYWdlcysrOwor CQlpZiAoKHByZXN1bHQubmV3X3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikgIT0g MCkKIAkJewotCQkJdmFjcmVsLT52bV9uZXdfZnJvemVuX3BhZ2VzKys7CisJCQl2YWNyZWwtPnZt X25ld192aXNpYmxlX2Zyb3plbl9wYWdlcysrOwogCQkJKnZtX3BhZ2VfZnJvemVuID0gdHJ1ZTsK IAkJfQogCX0KLQotCS8qCi0JICogTm93IGhhbmRsZSB0d28gcG90ZW50aWFsIGNvcnJ1cHRpb24g Y2FzZXM6Ci0JICoKLQkgKiBBcyBvZiBQb3N0Z3JlU1FMIDkuMiwgdGhlIHZpc2liaWxpdHkgbWFw IGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0IGlmIHRoZQotCSAqIHBhZ2UtbGV2ZWwgYml0IGlzIGNs ZWFyLiAgSG93ZXZlciwgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBiaXQgZ290Ci0JICogY2xlYXJl ZCBhZnRlciBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKSB3YXMgY2FsbGVkLCBzbyB3ZSBtdXN0 IHJlY2hlY2sKLQkgKiB3aXRoIGJ1ZmZlciBsb2NrIGJlZm9yZSBjb25jbHVkaW5nIHRoYXQgdGhl IFZNIGlzIGNvcnJ1cHQuCi0JICovCi0JZWxzZSBpZiAoYWxsX3Zpc2libGVfYWNjb3JkaW5nX3Rv X3ZtICYmICFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpICYmCi0JCQkgdmlzaWJpbGl0eW1hcF9nZXRf c3RhdHVzKHZhY3JlbC0+cmVsLCBibGtubywgJnZtYnVmZmVyKSAhPSAwKQotCXsKLQkJZXJlcG9y dChXQVJOSU5HLAotCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAotCQkJCSBl cnJtc2coInBhZ2UgaXMgbm90IG1hcmtlZCBhbGwtdmlzaWJsZSBidXQgdmlzaWJpbGl0eSBtYXAg Yml0IGlzIHNldCBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCi0JCQkJCQl2YWNyZWwtPnJl bG5hbWUsIGJsa25vKSkpOwotCi0JCXZpc2liaWxpdHltYXBfY2xlYXIodmFjcmVsLT5yZWwsIGJs a25vLCB2bWJ1ZmZlciwKLQkJCQkJCQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwotCX0KLQot CS8qCi0JICogSXQncyBwb3NzaWJsZSBmb3IgdGhlIHZhbHVlIHJldHVybmVkIGJ5Ci0JICogR2V0 T2xkZXN0Tm9uUmVtb3ZhYmxlVHJhbnNhY3Rpb25JZCgpIHRvIG1vdmUgYmFja3dhcmRzLCBzbyBp dCdzIG5vdAotCSAqIHdyb25nIGZvciB1cyB0byBzZWUgdHVwbGVzIHRoYXQgYXBwZWFyIHRvIG5v dCBiZSB2aXNpYmxlIHRvIGV2ZXJ5b25lCi0JICogeWV0LCB3aGlsZSBQRF9BTExfVklTSUJMRSBp cyBhbHJlYWR5IHNldC4gVGhlIHJlYWwgc2FmZSB4bWluIHZhbHVlCi0JICogbmV2ZXIgbW92ZXMg YmFja3dhcmRzLCBidXQgR2V0T2xkZXN0Tm9uUmVtb3ZhYmxlVHJhbnNhY3Rpb25JZCgpIGlzCi0J ICogY29uc2VydmF0aXZlIGFuZCBzb21ldGltZXMgcmV0dXJucyBhIHZhbHVlIHRoYXQncyB1bm5l Y2Vzc2FyaWx5IHNtYWxsLAotCSAqIHNvIGlmIHdlIHNlZSB0aGF0IGNvbnRyYWRpY3Rpb24gaXQg anVzdCBtZWFucyB0aGF0IHRoZSB0dXBsZXMgdGhhdCB3ZQotCSAqIHRoaW5rIGFyZSBub3Qgdmlz aWJsZSB0byBldmVyeW9uZSB5ZXQgYWN0dWFsbHkgYXJlLCBhbmQgdGhlCi0JICogUERfQUxMX1ZJ U0lCTEUgZmxhZyBpcyBjb3JyZWN0LgotCSAqCi0JICogVGhlcmUgc2hvdWxkIG5ldmVyIGJlIExQ X0RFQUQgaXRlbXMgb24gYSBwYWdlIHdpdGggUERfQUxMX1ZJU0lCTEUgc2V0LAotCSAqIGhvd2V2 ZXIuCi0JICovCi0JZWxzZSBpZiAocHJlc3VsdC5scGRlYWRfaXRlbXMgPiAwICYmIFBhZ2VJc0Fs bFZpc2libGUocGFnZSkpCisJZWxzZSBpZiAoKHByZXN1bHQub2xkX3ZtYml0cyAmIFZJU0lCSUxJ VFlNQVBfQUxMX0ZST1pFTikgPT0gMCAmJgorCQkJIChwcmVzdWx0Lm5ld192bWJpdHMgJiBWSVNJ QklMSVRZTUFQX0FMTF9GUk9aRU4pICE9IDApCiAJewotCQllcmVwb3J0KFdBUk5JTkcsCi0JCQkJ KGVycmNvZGUoRVJSQ09ERV9EQVRBX0NPUlJVUFRFRCksCi0JCQkJIGVycm1zZygicGFnZSBjb250 YWluaW5nIExQX0RFQUQgaXRlbXMgaXMgbWFya2VkIGFzIGFsbC12aXNpYmxlIGluIHJlbGF0aW9u IFwiJXNcIiBwYWdlICV1IiwKLQkJCQkJCXZhY3JlbC0+cmVsbmFtZSwgYmxrbm8pKSk7Ci0KLQkJ UGFnZUNsZWFyQWxsVmlzaWJsZShwYWdlKTsKLQkJTWFya0J1ZmZlckRpcnR5KGJ1Zik7Ci0JCXZp c2liaWxpdHltYXBfY2xlYXIodmFjcmVsLT5yZWwsIGJsa25vLCB2bWJ1ZmZlciwKLQkJCQkJCQlW SVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOworCQlBc3NlcnQoKHByZXN1bHQubmV3X3ZtYml0cyAm IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpICE9IDApOworCQl2YWNyZWwtPnZtX25ld19mcm96 ZW5fcGFnZXMrKzsKKwkJKnZtX3BhZ2VfZnJvemVuID0gdHJ1ZTsKIAl9CiAKLQogCXJldHVybiBw cmVzdWx0Lm5kZWxldGVkOwogfQogCkBAIC0zNTkxLDcgKzM0NzcsNyBAQCBkZWFkX2l0ZW1zX2Ns ZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogICogV3JhcHBlciBmb3IgaGVhcF9wYWdlX3dvdWxk X2JlX2FsbF92aXNpYmxlKCkgd2hpY2ggY2FuIGJlIHVzZWQgZm9yCiAgKiBjYWxsZXJzIHRoYXQg ZXhwZWN0IG5vIExQX0RFQUQgb24gdGhlIHBhZ2UuCiAgKi8KLXN0YXRpYyBib29sCitib29sCiBo ZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJ IFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAkJCQkJCSBib29sICphbGxfZnJvemVuLApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNz L2hlYXBhbS5oCmluZGV4IGU5N2I1M2YxZWU4Li40OTNkZGVhY2JjMCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0u aApAQCAtMjM1LDE5ICsyMzUsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVlemVSZXN1bHQK IAlpbnQJCQlyZWNlbnRseV9kZWFkX3R1cGxlczsKIAogCS8qCi0JICogYWxsX3Zpc2libGUgYW5k IGFsbF9mcm96ZW4gaW5kaWNhdGUgaWYgdGhlIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuCi0J ICogYml0cyBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgY2FuIGJlIHNldCBmb3IgdGhpcyBwYWdlLCBh ZnRlciBwcnVuaW5nLgorCSAqIG9sZF92bWJpdHMgYXJlIHRoZSBzdGF0ZSBvZiB0aGUgYWxsLXZp c2libGUgYW5kIGFsbC1mcm96ZW4gYml0cyBpbiB0aGUKKwkgKiB2aXNpYmlsaXR5IG1hcCBiZWZv cmUgdXBkYXRpbmcgaXQgZHVyaW5nIHBoYXNlIEkgb2YgdmFjdXVtaW5nLgorCSAqIG5ld192bWJp dHMgYXJlIHRoZSBzdGF0ZSBvZiB0aG9zZSBiaXRzIGFmdGVyIHBoYXNlIEkgb2YgdmFjdXVtaW5n LgogCSAqCi0JICogdm1fY29uZmxpY3RfaG9yaXpvbiBpcyB0aGUgbmV3ZXN0IHhtaW4gb2YgbGl2 ZSB0dXBsZXMgb24gdGhlIHBhZ2UuICBUaGUKLQkgKiBjYWxsZXIgY2FuIHVzZSBpdCBhcyB0aGUg Y29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhlIFZNIGJpdHMuICBJdAotCSAqIGlzIG9u bHkgdmFsaWQgaWYgd2UgZnJvemUgc29tZSB0dXBsZXMgKG5mcm96ZW4gPiAwKSwgYW5kIGFsbF9m cm96ZW4gaXMKLQkgKiB0cnVlLgotCSAqCi0JICogVGhlc2UgYXJlIG9ubHkgc2V0IGlmIHRoZSBI RUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0LgorCSAqIFRoZXNlIGFyZSBvbmx5IHNldCBp ZiB0aGUgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WSVMgb3B0aW9uIGlzIHNldC4KIAkgKi8KLQli b29sCQlhbGxfdmlzaWJsZTsKLQlib29sCQlhbGxfZnJvemVuOwotCVRyYW5zYWN0aW9uSWQgdm1f Y29uZmxpY3RfaG9yaXpvbjsKKwl1aW50OAkJbmV3X3ZtYml0czsKKwl1aW50OAkJb2xkX3ZtYml0 czsKIAogCS8qCiAJICogV2hldGhlciBvciBub3QgdGhlIHBhZ2UgbWFrZXMgcmVsIHRydW5jYXRp b24gdW5zYWZlLiAgVGhpcyBpcyBzZXQgdG8KQEAgLTM2OSw2ICszNjQsNyBAQCBleHRlcm4gVHJh bnNhY3Rpb25JZCBoZWFwX2luZGV4X2RlbGV0ZV90dXBsZXMoUmVsYXRpb24gcmVsLAogc3RydWN0 IEdsb2JhbFZpc1N0YXRlOwogZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlv biByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcik7CiBleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVf YW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKKwkJCQkJCQkJCSAg IEJ1ZmZlciB2bWJ1ZmZlciwgYm9vbCBibGtfa25vd25fYXYsCiAJCQkJCQkJCQkgICBQcnVuZVJl YXNvbiByZWFzb24sCiAJCQkJCQkJCQkgICBpbnQgb3B0aW9ucywKIAkJCQkJCQkJCSAgIGNvbnN0 IHN0cnVjdCBWYWN1dW1DdXRvZmZzICpjdXRvZmZzLApAQCAtMzk3LDYgKzM5MywxMiBAQCBleHRl cm4gdm9pZCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZm ZXIgYnVmZmVyLAogZXh0ZXJuIHZvaWQgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwKIAkJ CQkJCQljb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLCBCdWZmZXJBY2Nlc3NTdHJhdGVneSBic3Ry YXRlZ3kpOwogCitleHRlcm4gYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24g cmVsLCBCdWZmZXIgYnVmLAorCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKKwkJ CQkJCQkJCSBib29sICphbGxfZnJvemVuLAorCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2li aWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVt KTsKKwogLyogaW4gaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jICovCiBleHRlcm4gYm9vbCBIZWFw VHVwbGVTYXRpc2ZpZXNWaXNpYmlsaXR5KEhlYXBUdXBsZSBodHVwLCBTbmFwc2hvdCBzbmFwc2hv dCwKIAkJCQkJCQkJCQkgQnVmZmVyIGJ1ZmZlcik7Ci0tIAoyLjQzLjAKCg== --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0020-Inline-TransactionIdFollows-Precedes.patch" Content-Disposition: attachment; filename="v15-0020-Inline-TransactionIdFollows-Precedes.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lbae19 RnJvbSAyYWUyYjAxZGM1MGI3ZGRlNTA0NTE5YzA1NDBlY2U3YWNmODAxMjExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDA5OjU3OjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMjAvMjNdIElubGluZSBUcmFuc2FjdGlvbklkRm9sbG93cy9QcmVjZWRlcygpCgpD YWxsaW5nIHRoZXNlIGZyb20gb24tYWNjZXNzIHBydW5pbmcgY29kZSBoYWQgbm90aWNlYWJsZSBv dmVyaGVhZCBpbiBhCnByb2ZpbGUuIFRoZXJlIGRvZXMgbm90IHNlZW0gdG8gYmUgYSByZWFzb24g bm90IHRvIGlubGluZSB0aGVtLgoKUmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtp cmlsbEBnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHJhbnNhbS5j IHwgNjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL3RyYW5z YW0uaCAgICAgICAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKystLQogMiBmaWxlcyBj aGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90cmFuc2FtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS90cmFuc2FtLmMKaW5kZXggOWEzOTQ1MWEyOWEuLjU1M2Q2NzU2Y2IzIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90cmFuc2FtLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0vdHJhbnNhbS5jCkBAIC0yNzMsNzAgKzI3Myw2IEBAIFRyYW5zYWN0 aW9uSWRBYm9ydFRyZWUoVHJhbnNhY3Rpb25JZCB4aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25J ZCAqeGlkcykKIAkJCQkJCQkgICBUUkFOU0FDVElPTl9TVEFUVVNfQUJPUlRFRCwgSW52YWxpZFhM b2dSZWNQdHIpOwogfQogCi0vKgotICogVHJhbnNhY3Rpb25JZFByZWNlZGVzIC0tLSBpcyBpZDEg bG9naWNhbGx5IDwgaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklkUHJlY2VkZXMoVHJhbnNh Y3Rpb25JZCBpZDEsIFRyYW5zYWN0aW9uSWQgaWQyKQotewotCS8qCi0JICogSWYgZWl0aGVyIElE IGlzIGEgcGVybWFuZW50IFhJRCB0aGVuIHdlIGNhbiBqdXN0IGRvIHVuc2lnbmVkCi0JICogY29t cGFyaXNvbi4gIElmIGJvdGggYXJlIG5vcm1hbCwgZG8gYSBtb2R1bG8tMl4zMiBjb21wYXJpc29u LgotCSAqLwotCWludDMyCQlkaWZmOwotCi0JaWYgKCFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQx KSB8fCAhVHJhbnNhY3Rpb25JZElzTm9ybWFsKGlkMikpCi0JCXJldHVybiAoaWQxIDwgaWQyKTsK LQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBpZDIpOwotCXJldHVybiAoZGlmZiA8IDApOwotfQot Ci0vKgotICogVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMgLS0tIGlzIGlkMSBsb2dpY2Fs bHkgPD0gaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklkUHJlY2VkZXNPckVxdWFscyhUcmFu c2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJCWRpZmY7Ci0KLQlp ZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwo aWQyKSkKLQkJcmV0dXJuIChpZDEgPD0gaWQyKTsKLQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBp ZDIpOwotCXJldHVybiAoZGlmZiA8PSAwKTsKLX0KLQotLyoKLSAqIFRyYW5zYWN0aW9uSWRGb2xs b3dzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID4gaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklk Rm9sbG93cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJ CWRpZmY7Ci0KLQlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlv bklkSXNOb3JtYWwoaWQyKSkKLQkJcmV0dXJuIChpZDEgPiBpZDIpOwotCi0JZGlmZiA9IChpbnQz MikgKGlkMSAtIGlkMik7Ci0JcmV0dXJuIChkaWZmID4gMCk7Ci19Ci0KLS8qCi0gKiBUcmFuc2Fj dGlvbklkRm9sbG93c09yRXF1YWxzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID49IGlkMj8KLSAqLwot Ym9vbAotVHJhbnNhY3Rpb25JZEZvbGxvd3NPckVxdWFscyhUcmFuc2FjdGlvbklkIGlkMSwgVHJh bnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJCWRpZmY7Ci0KLQlpZiAoIVRyYW5zYWN0aW9uSWRJ c05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQyKSkKLQkJcmV0dXJuIChp ZDEgPj0gaWQyKTsKLQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBpZDIpOwotCXJldHVybiAoZGlm ZiA+PSAwKTsKLX0KLQogCiAvKgogICogVHJhbnNhY3Rpb25JZExhdGVzdCAtLS0gZ2V0IGxhdGVz dCBYSUQgYW1vbmcgYSBtYWluIHhhY3QgYW5kIGl0cyBjaGlsZHJlbgpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3RyYW5zYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2FtLmgK aW5kZXggN2Q4MmNkMmViNTYuLmM5ZTIwNDE4Mjc1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvdHJhbnNhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2FtLmgKQEAgLTI1 NSw2ICsyNTUsNzIgQEAgdHlwZWRlZiBzdHJ1Y3QgVHJhbnNhbVZhcmlhYmxlc0RhdGEKIH0gVHJh bnNhbVZhcmlhYmxlc0RhdGE7CiAKIAorCisvKgorICogVHJhbnNhY3Rpb25JZFByZWNlZGVzIC0t LSBpcyBpZDEgbG9naWNhbGx5IDwgaWQyPworICovCitzdGF0aWMgaW5saW5lIGJvb2wKK1RyYW5z YWN0aW9uSWRQcmVjZWRlcyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCit7 CisJLyoKKwkgKiBJZiBlaXRoZXIgSUQgaXMgYSBwZXJtYW5lbnQgWElEIHRoZW4gd2UgY2FuIGp1 c3QgZG8gdW5zaWduZWQKKwkgKiBjb21wYXJpc29uLiAgSWYgYm90aCBhcmUgbm9ybWFsLCBkbyBh IG1vZHVsby0yXjMyIGNvbXBhcmlzb24uCisJICovCisJaW50MzIJCWRpZmY7CisKKwlpZiAoIVRy YW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQyKSkK KwkJcmV0dXJuIChpZDEgPCBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlkMSAtIGlkMik7CisJ cmV0dXJuIChkaWZmIDwgMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklkUHJlY2VkZXNPckVx dWFscyAtLS0gaXMgaWQxIGxvZ2ljYWxseSA8PSBpZDI/CisgKi8KK3N0YXRpYyBpbmxpbmUgYm9v bAorVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMoVHJhbnNhY3Rpb25JZCBpZDEsIFRyYW5z YWN0aW9uSWQgaWQyKQoreworCWludDMyCQlkaWZmOworCisJaWYgKCFUcmFuc2FjdGlvbklkSXNO b3JtYWwoaWQxKSB8fCAhVHJhbnNhY3Rpb25JZElzTm9ybWFsKGlkMikpCisJCXJldHVybiAoaWQx IDw9IGlkMik7CisKKwlkaWZmID0gKGludDMyKSAoaWQxIC0gaWQyKTsKKwlyZXR1cm4gKGRpZmYg PD0gMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklkRm9sbG93cyAtLS0gaXMgaWQxIGxvZ2lj YWxseSA+IGlkMj8KKyAqLworc3RhdGljIGlubGluZSBib29sCitUcmFuc2FjdGlvbklkRm9sbG93 cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCit7CisJaW50MzIJCWRpZmY7 CisKKwlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNO b3JtYWwoaWQyKSkKKwkJcmV0dXJuIChpZDEgPiBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlk MSAtIGlkMik7CisJcmV0dXJuIChkaWZmID4gMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklk Rm9sbG93c09yRXF1YWxzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID49IGlkMj8KKyAqLworc3RhdGlj IGlubGluZSBib29sCitUcmFuc2FjdGlvbklkRm9sbG93c09yRXF1YWxzKFRyYW5zYWN0aW9uSWQg aWQxLCBUcmFuc2FjdGlvbklkIGlkMikKK3sKKwlpbnQzMgkJZGlmZjsKKworCWlmICghVHJhbnNh Y3Rpb25JZElzTm9ybWFsKGlkMSkgfHwgIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDIpKQorCQly ZXR1cm4gKGlkMSA+PSBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlkMSAtIGlkMik7CisJcmV0 dXJuIChkaWZmID49IDApOworfQorCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0KICAqCQlleHRlcm4g ZGVjbGFyYXRpb25zCiAgKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzQsMTAgKzM0MCw2IEBAIGV4 dGVybiBib29sIFRyYW5zYWN0aW9uSWREaWRBYm9ydChUcmFuc2FjdGlvbklkIHRyYW5zYWN0aW9u SWQpOwogZXh0ZXJuIHZvaWQgVHJhbnNhY3Rpb25JZENvbW1pdFRyZWUoVHJhbnNhY3Rpb25JZCB4 aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25JZCAqeGlkcyk7CiBleHRlcm4gdm9pZCBUcmFuc2Fj dGlvbklkQXN5bmNDb21taXRUcmVlKFRyYW5zYWN0aW9uSWQgeGlkLCBpbnQgbnhpZHMsIFRyYW5z YWN0aW9uSWQgKnhpZHMsIFhMb2dSZWNQdHIgbHNuKTsKIGV4dGVybiB2b2lkIFRyYW5zYWN0aW9u SWRBYm9ydFRyZWUoVHJhbnNhY3Rpb25JZCB4aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25JZCAq eGlkcyk7Ci1leHRlcm4gYm9vbCBUcmFuc2FjdGlvbklkUHJlY2VkZXMoVHJhbnNhY3Rpb25JZCBp ZDEsIFRyYW5zYWN0aW9uSWQgaWQyKTsKLWV4dGVybiBib29sIFRyYW5zYWN0aW9uSWRQcmVjZWRl c09yRXF1YWxzKFRyYW5zYWN0aW9uSWQgaWQxLCBUcmFuc2FjdGlvbklkIGlkMik7Ci1leHRlcm4g Ym9vbCBUcmFuc2FjdGlvbklkRm9sbG93cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25J ZCBpZDIpOwotZXh0ZXJuIGJvb2wgVHJhbnNhY3Rpb25JZEZvbGxvd3NPckVxdWFscyhUcmFuc2Fj dGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpOwogZXh0ZXJuIFRyYW5zYWN0aW9uSWQgVHJh bnNhY3Rpb25JZExhdGVzdChUcmFuc2FjdGlvbklkIG1haW54aWQsCiAJCQkJCQkJCQkJIGludCBu eGlkcywgY29uc3QgVHJhbnNhY3Rpb25JZCAqeGlkcyk7CiBleHRlcm4gWExvZ1JlY1B0ciBUcmFu c2FjdGlvbklkR2V0Q29tbWl0TFNOKFRyYW5zYWN0aW9uSWQgeGlkKTsKLS0gCjIuNDMuMAoK --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0021-Unset-all-visible-sooner-if-not-freezing.patch" Content-Disposition: attachment; filename="v15-0021-Unset-all-visible-sooner-if-not-freezing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lbaf20 RnJvbSA3NGNlMjBkYzM5MjkxMmMyZjA2NmM4YzMyODE5YWUyMDZhY2ZkZTdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM1OjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMjEvMjNdIFVuc2V0IGFsbC12aXNpYmxlIHNvb25lciBpZiBub3QgZnJlZXppbmcK CkluIHBydW5lL2ZyZWV6ZSBjb2RlLCB3ZSBkZWxheSB1bnNldHRpbmcgYWxsLXZpc2libGUvYWxs LWZyb3plbiBpbiB0aGUKcHJlc2VuY2Ugb2YgZGVhZCBpdGVtcyB0byBhbGxvdyBvcHBvcnR1bmlz dGljYWxseSBmcmVlemluZyB0dXBsZXMgaWYgdGhlCndob2xlIHBhZ2Ugd291bGQgYmUgZnJvemVu IGV4Y2VwdCBmb3IgdGhvc2UgZGVhZCBpdGVtcyAtLSB3aGljaCBhcmUKcmVtb3ZlZCBsYXRlciBp biB2YWN1dW0ncyB0aGlyZCBwaGFzZS4KCkZ1dHVyZSBjb21taXRzIHdpbGwgYWxsb3cgb24tYWNj ZXNzIHBydW5pbmcgdG8gc2V0IHRoZSBWTSwgd2hpY2ggbWVhbnMKYWxsLXZpc2libGUgd2lsbCBi ZSBpbml0aWFsaXplZCB0byB0cnVlIGluc3RlYWQgb2YgZmFsc2UgYW5kIHdlIHdpbGwgZG8KZXh0 cmEgYm9va2tlZXBpbmcgaW4gaGVhcF9wcnVuZV91bmNoYW5nZWRfbHBfbm9ybWFsKCkgdG8ga2Vl cCB0cmFjayBvZgp3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBpcyBhbGwtdmlzaWJsZS4KCkJlY2F1 c2Ugb24tYWNjZXNzIHBydW5pbmcgd2lsbCBub3QgZnJlZXplIHR1cGxlcywgaXQgbWFrZXMgc2Vu c2UgdG8KdW5zZXQgYWxsLXZpc2libGUgYXMgc29vbiBhcyB3ZSBlbmNvdW50ZXIgYW4gTFBfREVB RCBpdGVtIGFuZAphdm9pZCBjb250aW51ZWQgYm9va2tlZXBpbmcgc2luY2Ugd2Uga25vdyB0aGUg cGFnZSBpcyBub3QgYWxsLXZpc2libGUKYW5kIHdlIHdvbid0IGJlIGFibGUgdG8gcmVtb3ZlIHRo b3NlIGRlYWQgaXRlbXMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg fCAxMCArKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggNjMxMzk0ODg5ZDcu LmU2NGFkZGZkZjVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMTUyMyw4 ICsxNTIzLDExIEBAIGhlYXBfcHJ1bmVfcmVjb3JkX2RlYWQoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwg T2Zmc2V0TnVtYmVyIG9mZm51bSwKIAogCS8qCiAJICogRGVsaWJlcmF0ZWx5IGRlbGF5IHVuc2V0 dGluZyBhbGxfdmlzaWJsZSB1bnRpbCBsYXRlciBkdXJpbmcgcHJ1bmluZy4KLQkgKiBSZW1vdmFi bGUgZGVhZCB0dXBsZXMgc2hvdWxkbid0IHByZWNsdWRlIGZyZWV6aW5nIHRoZSBwYWdlLgorCSAq IFJlbW92YWJsZSBkZWFkIHR1cGxlcyBzaG91bGRuJ3QgcHJlY2x1ZGUgZnJlZXppbmcgdGhlIHBh Z2UuIElmIHdlIHdvbid0CisJICogYXR0ZW1wdCBmcmVlemluZywganVzdCB1bnNldCBhbGwtdmlz aWJsZSBub3csIHRob3VnaC4KIAkgKi8KKwlpZiAoIXByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQor CQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKIAog CS8qIFJlY29yZCB0aGUgZGVhZCBvZmZzZXQgZm9yIHZhY3V1bSAqLwogCXByc3RhdGUtPmRlYWRv ZmZzZXRzW3Byc3RhdGUtPmxwZGVhZF9pdGVtcysrXSA9IG9mZm51bTsKQEAgLTE3NzcsOCArMTc4 MCwxMSBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfZGVhZChQYWdlIHBhZ2UsIFBy dW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlcgogCSAqIFNpbWlsYXJseSwgZG9uJ3QgdW5z ZXQgYWxsX3Zpc2libGUgdW50aWwgbGF0ZXIsIGF0IHRoZSBlbmQgb2YKIAkgKiBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZSgpLiAgVGhpcyB3aWxsIGFsbG93IHVzIHRvIGF0dGVtcHQgdG8gZnJl ZXplCiAJICogdGhlIHBhZ2UgYWZ0ZXIgcHJ1bmluZy4gIEFzIGxvbmcgYXMgd2UgdW5zZXQgaXQg YmVmb3JlIHVwZGF0aW5nIHRoZQotCSAqIHZpc2liaWxpdHkgbWFwLCB0aGlzIHdpbGwgYmUgY29y cmVjdC4KKwkgKiB2aXNpYmlsaXR5IG1hcCwgdGhpcyB3aWxsIGJlIGNvcnJlY3QuIElmIHdlIHdv bid0IGF0dGVtcHQgZnJlZXppbmcsCisJICogdGhvdWdoLCBqdXN0IHVuc2V0IGFsbC12aXNpYmxl IG5vdy4KIAkgKi8KKwlpZiAoIXByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQorCQlwcnN0YXRlLT5h bGxfdmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKIAogCS8qIFJlY29yZCB0 aGUgZGVhZCBvZmZzZXQgZm9yIHZhY3V1bSAqLwogCXByc3RhdGUtPmRlYWRvZmZzZXRzW3Byc3Rh dGUtPmxwZGVhZF9pdGVtcysrXSA9IG9mZm51bTsKLS0gCjIuNDMuMAoK --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0019-Use-GlobalVisState-to-determine-page-level-visib.patch" Content-Disposition: attachment; filename="v15-0019-Use-GlobalVisState-to-determine-page-level-visib.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lbac18 RnJvbSBkYmRlODRlN2Q1NzA2YjA2ZWEyNTJmNzViYzVhYTdiYzM5ZmYyZGVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM4OjI0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMTkvMjNdIFVzZSBHbG9iYWxWaXNTdGF0ZSB0byBkZXRlcm1pbmUgcGFnZSBsZXZl bAogdmlzaWJpbGl0eQoKRHVyaW5nIHBydW5pbmcgYW5kIGR1cmluZyB2YWN1dW0ncyB0aGlyZCBw aGFzZSwgd2UgdHJ5IHRvIGRldGVybWluZSBpZgp0aGUgd2hvbGUgcGFnZSBjYW4gYmUgc2V0IGFs bC12aXNpYmxlIGluIHRoZSB2aXNpYmlsaXR5IG1hcC4gSW5zdGVhZCBvZgp1c2luZyBPbGRlc3RY bWluIHRvIGRldGVybWluZSBpZiBhbGwgdGhlIHR1cGxlcyBvbiBhIHBhZ2UgYXJlIHZpc2libGUg dG8KZXZlcnlvbmUsIHVzZSB0aGUgR2xvYmFsVmlzU3RhdGUuIFRoaXMgYWxsb3dzIHVzIHRvIHN0 YXJ0IHNldHRpbmcgdGhlIFZNCmR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyBpbiBhIGZ1dHVyZSBj b21taXQuCgpJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIEdsb2JhbFZpc1N0YXRlIHRvIGNoYW5nZSBk dXJpbmcgdGhlIGNvdXJzZSBvZiBhCnZhY3V1bS4gSW4gYWxsIGJ1dCBleHRyYW9yZGluYXJ5IGNh c2VzLCBpdCBtb3ZlcyBmb3J3YXJkLCBtZWFuaW5nIG1vcmUKcGFnZXMgY291bGQgcG90ZW50aWFs bHkgYmUgc2V0IGluIHRoZSBWTS4KCkJlY2F1c2UgY29tcGFyaW5nIGEgdHJhbnNhY3Rpb24gSUQg dG8gdGhlIEdsb2JhbFZpc1N0YXRlIHJlcXVpcmVzIG1vcmUKb3BlcmF0aW9ucyB0aGFuIGNvbXBh cmluZyBpdCB0byBhbm90aGVyIHNpbmdsZSB0cmFuc2FjdGlvbiBJRCwgd2Ugbm93CndhaXQgdW50 aWwgYWZ0ZXIgZXhhbWluaW5nIGFsbCB0aGUgdHVwbGVzIG9uIHRoZSBwYWdlIGFuZCBpZiB3ZSBo YXZlCm1haW50YWluZWQgdGhlIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCwgd2UgY29tcGFyZSB0aGF0 IHRvIHRoZQpHbG9iYWxWaXNTdGF0ZSBqdXN0IG9uY2UgcGVyIHBhZ2UuIFRoaXMgd29ya3MgYmVj YXVzZSBpZiB0aGUgcGFnZSBpcwphbGwtdmlzaWJsZSBhbmQgaGFzIGxpdmUsIGNvbW1pdHRlZCB0 dXBsZXMgb24gaXQsIHRoZQp2aXNpYmlsaXR5X2N1dG9mZl94aWQgd2lsbCBjb250YWluIHRoZSBu ZXdlc3QgeG1pbiBvbiB0aGUgcGFnZS4gSWYKZXZlcnlvbmUgY2FuIHNlZSBpdCwgdGhlIHBhZ2Ug aXMgdHJ1bHkgYWxsLXZpc2libGUuCgpEb2luZyB0aGlzIG1heSBtZWFuIHdlIGV4YW1pbmUgbW9y ZSB0dXBsZXMnIHhtaW5zIHRoYW4gYmVmb3JlLCBhcyB3ZSBtYXkKaGF2ZSBzZXQgYWxsX3Zpc2li bGUgdG8gZmFsc2Ugc29vbmVyIHdoZW4gZW5jb3VudGVyaW5nIGEgbGl2ZSB0dXBsZQpuZXdlciB0 aGFuIE9sZGVzdFhtaW4uIEhvd2V2ZXIsIHRoZXNlIGV4dHJhIGNvbXBhcmlzb25zIHdlcmUgZm91 bmQgbm90CnRvIGJlIHNpZ25pZmljYW50IGluIGEgcHJvZmlsZS4KLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jIHwgMjggKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICAgICB8IDQ2ICsrKysrKysrKy0tLS0t LS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICAgICB8IDIw ICsrKystLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgICAgICAgICB8 ICA0ICstCiA0IGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5 LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCmluZGV4IDRl YmM4YWJkYmViLi5lZGQ1MjlkYzNjMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX3Zpc2liaWxpdHkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1fdmlzaWJpbGl0eS5jCkBAIC0xMTg5LDYgKzExODksMzQgQEAgSGVhcFR1cGxlU2F0aXNmaWVz VmFjdXVtKEhlYXBUdXBsZSBodHVwLCBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCiAJcmV0dXJu IHJlczsKIH0KIAorLyoKKyAqIE5lYXJseSB0aGUgc2FtZSBhcyBIZWFwVHVwbGVTYXRpc2ZpZXNW YWN1dW0sIGJ1dCB1c2VzIGEgR2xvYmFsVmlzU3RhdGUgdG8KKyAqIGRldGVybWluZSB3aGV0aGVy IG9yIG5vdCBhIHR1cGxlIGlzIEhFQVBUVVBMRV9ERUFEIE9yCisgKiBIRUFQVFVQTEVfUkVDRU5U TFlfREVBRC4gSXQgc2VydmVzIHRoZSBzYW1lIHB1cnBvc2UgYnV0IGNhbiBiZSB1c2VkIGJ5Cisg KiBjYWxsZXJzIHRoYXQgaGF2ZSBub3QgY2FsY3VsYXRlZCBhIHNpbmdsZSBPbGRlc3RYbWluIHZh bHVlLgorICovCitIVFNWX1Jlc3VsdAorSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtR2xvYmFsVmlz KEhlYXBUdXBsZSBodHVwLCBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKKwkJCQkJCQkJICBCdWZm ZXIgYnVmZmVyKQoreworCVRyYW5zYWN0aW9uSWQgZGVhZF9hZnRlciA9IEludmFsaWRUcmFuc2Fj dGlvbklkOworCUhUU1ZfUmVzdWx0IHJlczsKKworCXJlcyA9IEhlYXBUdXBsZVNhdGlzZmllc1Zh Y3V1bUhvcml6b24oaHR1cCwgYnVmZmVyLCAmZGVhZF9hZnRlcik7CisKKwlpZiAocmVzID09IEhF QVBUVVBMRV9SRUNFTlRMWV9ERUFEKQorCXsKKwkJQXNzZXJ0KFRyYW5zYWN0aW9uSWRJc1ZhbGlk KGRlYWRfYWZ0ZXIpKTsKKworCQlpZiAoR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHZpc3Rlc3Qs IGRlYWRfYWZ0ZXIpKQorCQkJcmVzID0gSEVBUFRVUExFX0RFQUQ7CisJfQorCWVsc2UKKwkJQXNz ZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChkZWFkX2FmdGVyKSk7CisKKwlyZXR1cm4gcmVzOwor fQorCiAvKgogICogV29yayBob3JzZSBmb3IgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtIGFuZCBz aW1pbGFyIHJvdXRpbmVzLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXgg NTJlOTU2MTg5ZTguLjYzMTM5NDg4OWQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwpAQCAtMTM0LDEwICsxMzQsOSBAQCB0eXBlZGVmIHN0cnVjdAogCSAqIGFsbF92aXNpYmxlIGFu ZCBhbGxfZnJvemVuIGluZGljYXRlIGlmIHRoZSBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbgog CSAqIGJpdHMgaW4gdGhlIHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSBh ZnRlciBwcnVuaW5nLgogCSAqCi0JICogdmlzaWJpbGl0eV9jdXRvZmZfeGlkIGlzIHRoZSBuZXdl c3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZS4KLQkgKiBUaGUgY2FsbGVyIGNhbiB1 c2UgaXQgYXMgdGhlIGNvbmZsaWN0IGhvcml6b24sIHdoZW4gc2V0dGluZyB0aGUgVk0KLQkgKiBi aXRzLiAgSXQgaXMgb25seSB2YWxpZCBpZiB3ZSBmcm96ZSBzb21lIHR1cGxlcywgYW5kIGFsbF9m cm96ZW4gaXMKLQkgKiB0cnVlLgorCSAqIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCBpcyB0aGUgbmV3 ZXN0IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuIEl0CisJICogY2FuIGJlIHVzZWQg YXMgdGhlIGNvbmZsaWN0IGhvcml6b24sIHdoZW4gc2V0dGluZyB0aGUgVk0gb3Igd2hlbgorCSAq IGZyZWV6aW5nIGFsbCB0aGUgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuCiAJICoKIAkgKiBOT1RF OiBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBkb24ndCBpbmNsdWRlIExQX0RFQUQgaXRlbXMu ICBUaGF0J3MKIAkgKiBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgp LCB0byB1c2UgdGhlbSB0byBkZWNpZGUKQEAgLTcwNiwxNCArNzA1LDEyIEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCiAJLyoK IAkgKiBUaGUgdmlzaWJpbGl0eSBjdXRvZmYgeGlkIGlzIHRoZSBuZXdlc3QgeG1pbiBvZiBsaXZl LCBjb21taXR0ZWQgdHVwbGVzCi0JICogb2xkZXIgdGhhbiBPbGRlc3RYbWluIG9uIHRoZSBwYWdl LiBUaGlzIGZpZWxkIGlzIG9ubHkga2VwdCB1cC10by1kYXRlCi0JICogaWYgdGhlIHBhZ2UgaXMg YWxsLXZpc2libGUuIEFzIHNvb24gYXMgYSB0dXBsZSBpcyBlbmNvdW50ZXJlZCB0aGF0IGlzCi0J ICogbm90IHZpc2libGUgdG8gYWxsLCB0aGlzIGZpZWxkIGlzIHVubWFpbnRhaW5lZC4gQXMgbG9u ZyBhcyBpdCBpcwotCSAqIG1haW50YWluZWQsIGl0IGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSB0 aGUgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbi4KLQkgKiBUaGlzIGlzIG1vc3QgbGlrZWx5IHRv IGhhcHBlbiB3aGVuIHVwZGF0aW5nIHRoZSBWTSBhbmQvb3IgZnJlZXppbmcgYWxsCi0JICogbGl2 ZSB0dXBsZXMgb24gdGhlIHBhZ2UuIEl0IGlzIHVwZGF0ZWQgYmVmb3JlIHJldHVybmluZyB0byB0 aGUgY2FsbGVyCi0JICogYmVjYXVzZSB2YWN1dW0gZG9lcyBhc3NlcnQtYnVpbGQgb25seSB2YWxp ZGF0aW9uIG9uIHRoZSBwYWdlIHVzaW5nIHRoaXMKLQkgKiBmaWVsZC4KKwkgKiBvbiB0aGUgcGFn ZSBvbGRlciB0aGFuIHRoZSB2aXNpYmlsaXR5IGhvcml6b24gcmVwcmVzZW50ZWQgaW4gdGhlCisJ ICogR2xvYmFsVmlzU3RhdGUuCisJICoKKwkgKiBJZiB3ZSBlbmNvdW50ZXIgYW4gdW5jb21taXR0 ZWQgdHVwbGUsIHRoaXMgZmllbGQgaXMgdW5tYWludGFpbmVkLiBJZgorCSAqIHRoZSBwYWdlIGlz IGJlaW5nIHNldCBhbGwtdmlzaWJsZSBvciB3aGVuIGZyZWV6aW5nIGFsbCBsaXZlIHR1cGxlcyBv bgorCSAqIHRoZSBwYWdlLCBpdCBpcyB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgc25hcHNob3QgY29u ZmxpY3QgaG9yaXpvbi4KIAkgKi8KIAlwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCA9IElu dmFsaWRUcmFuc2FjdGlvbklkOwogCkBAIC05MDksNiArOTA2LDE2IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQlwcnN0YXRl Lm5kZWFkID4gMCB8fAogCQlwcnN0YXRlLm51bnVzZWQgPiAwOwogCisJLyoKKwkgKiBBZnRlciBw cm9jZXNzaW5nIGFsbCB0aGUgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UsIGlmIHRoZSBuZXdlc3Qg eG1pbgorCSAqIGFtb25nc3QgdGhlbSBpcyBub3QgdmlzaWJsZSB0byBldmVyeW9uZSwgdGhlIHBh Z2UgY2Fubm90IGJlCisJICogYWxsLXZpc2libGUuCisJICovCisJaWYgKHByc3RhdGUuYWxsX3Zp c2libGUgJiYKKwkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKHByc3RhdGUudmlzaWJpbGl0eV9jdXRv ZmZfeGlkKSAmJgorCQkhR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHByc3RhdGUudmlzdGVzdCwg cHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQpKQorCQlwcnN0YXRlLmFsbF92aXNpYmxlID0g cHJzdGF0ZS5hbGxfZnJvemVuID0gZmFsc2U7CisKIAkvKgogCSAqIEV2ZW4gaWYgd2UgZG9uJ3Qg cHJ1bmUgYW55dGhpbmcsIGlmIHdlIGZvdW5kIGEgbmV3IHZhbHVlIGZvciB0aGUKIAkgKiBwZF9w cnVuZV94aWQgZmllbGQgb3IgdGhlIHBhZ2Ugd2FzIG1hcmtlZCBmdWxsLCB3ZSB3aWxsIHVwZGF0 ZSB0aGUgaGludApAQCAtMTEzMCw3ICsxMTM3LDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCUFzc2VydChwcnN0YXRlLmN1 dG9mZnMpOwogCiAJCWlmICghaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKHJlbGF0aW9uLCBidWZm ZXIsCi0JCQkJCQkJCQkgIHByc3RhdGUuY3V0b2Zmcy0+T2xkZXN0WG1pbiwKKwkJCQkJCQkJCSAg cHJzdGF0ZS52aXN0ZXN0LAogCQkJCQkJCQkJICAmZGVidWdfYWxsX2Zyb3plbiwKIAkJCQkJCQkJ CSAgJmRlYnVnX2N1dG9mZiwgb2ZmX2xvYykpCiAJCQlBc3NlcnQoZmFsc2UpOwpAQCAtMTY1Niwx OSArMTY2Myw2IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoUGFnZSBw YWdlLCBQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iCiAJCQkJICovCiAJCQkJeG1pbiA9 IEhlYXBUdXBsZUhlYWRlckdldFhtaW4oaHR1cCk7CiAKLQkJCQkvKgotCQkJCSAqIEZvciBub3cg YWx3YXlzIHVzZSBwcnN0YXRlLT5jdXRvZmZzIGZvciB0aGlzIHRlc3QsIGJlY2F1c2UKLQkJCQkg KiB3ZSBvbmx5IHVwZGF0ZSAnYWxsX3Zpc2libGUnIHdoZW4gZnJlZXppbmcgaXMgcmVxdWVzdGVk LiBXZQotCQkJCSAqIGNvdWxkIHVzZSBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQgaW5zdGVh ZCwgaWYgYQotCQkJCSAqIG5vbi1mcmVlemluZyBjYWxsZXIgd2FudGVkIHRvIHNldCB0aGUgVk0g Yml0LgotCQkJCSAqLwotCQkJCUFzc2VydChwcnN0YXRlLT5jdXRvZmZzKTsKLQkJCQlpZiAoIVRy YW5zYWN0aW9uSWRQcmVjZWRlcyh4bWluLCBwcnN0YXRlLT5jdXRvZmZzLT5PbGRlc3RYbWluKSkK LQkJCQl7Ci0JCQkJCXByc3RhdGUtPmFsbF92aXNpYmxlID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9 IGZhbHNlOwotCQkJCQlicmVhazsKLQkJCQl9Ci0KIAkJCQkvKiBUcmFjayBuZXdlc3QgeG1pbiBv biBwYWdlLiAqLwogCQkJCWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCBwcnN0YXRlLT52 aXNpYmlsaXR5X2N1dG9mZl94aWQpICYmCiAJCQkJCVRyYW5zYWN0aW9uSWRJc05vcm1hbCh4bWlu KSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBlNTllYjQwMTMzZC4uZDli ODNmYjYxMTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTQ2NCw3ICs0 NjQsNyBAQCBzdGF0aWMgdm9pZCBkZWFkX2l0ZW1zX2FkZChMVlJlbFN0YXRlICp2YWNyZWwsIEJs b2NrTnVtYmVyIGJsa25vLCBPZmZzZXROdW1iZXIgKgogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19y ZXNldChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19jbGVhbnVw KExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxs X3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJCQkJCSAgIFRyYW5zYWN0 aW9uSWQgT2xkZXN0WG1pbiwKKwkJCQkJCQkJCQkgICBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwK IAkJCQkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAogCQkJCQkJCQkJCSAgIGlu dCBuZGVhZG9mZnNldHMsCiAJCQkJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKQEAgLTI3MzQs NyArMjczNCw3IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJs b2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJCSBJbnZhbGlkT2Zmc2V0TnVt YmVyKTsKIAogCWlmIChoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUodmFjcmVsLT5yZWws IGJ1ZmZlciwKLQkJCQkJCQkJCSAgIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWluLAorCQkJCQkJ CQkJICAgdmFjcmVsLT52aXN0ZXN0LAogCQkJCQkJCQkJICAgZGVhZG9mZnNldHMsIG51bV9vZmZz ZXRzLAogCQkJCQkJCQkJICAgJmFsbF9mcm96ZW4sICZ2aXNpYmlsaXR5X2N1dG9mZl94aWQsCiAJ CQkJCQkJCQkgICAmdmFjcmVsLT5vZmZudW0pKQpAQCAtMzQ3OSwxNCArMzQ3OSwxMyBAQCBkZWFk X2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogICovCiBib29sCiBoZWFwX3BhZ2Vf aXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJIFRyYW5zYWN0 aW9uSWQgT2xkZXN0WG1pbiwKKwkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJ CSBib29sICphbGxfZnJvemVuLAogCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0 b2ZmX3hpZCwKIAkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKQogewogCi0JcmV0 dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShyZWwsIGJ1ZiwKLQkJCQkJCQkJCQkg IE9sZGVzdFhtaW4sCisJcmV0dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShyZWws IGJ1ZiwgdmlzdGVzdCwKIAkJCQkJCQkJCQkgIE5VTEwsIDAsCiAJCQkJCQkJCQkJICBhbGxfZnJv emVuLAogCQkJCQkJCQkJCSAgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLApAQCAtMzUwNSw3ICszNTA0 LDcgQEAgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwK ICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGFnZSBpcyBhbGwtdmlzaWJsZSBvdGhlciB0aGFuIHRo ZSBwcm92aWRlZAogICogZGVhZG9mZnNldHMgYW5kIGZhbHNlIG90aGVyd2lzZS4KICAqCi0gKiBP bGRlc3RYbWluIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHZpc2liaWxpdHkuCisgKiB2aXN0ZXN0IGlz IHVzZWQgdG8gZGV0ZXJtaW5lIHZpc2liaWxpdHkuCiAgKgogICogKmFsbF9mcm96ZW4gaXMgYW4g b3V0cHV0IHBhcmFtZXRlciBpbmRpY2F0aW5nIHRvIHRoZSBjYWxsZXIgaWYgZXZlcnkgdHVwbGUK ICAqIG9uIHRoZSBwYWdlIGlzIGZyb3plbi4KQEAgLTM1MjYsNyArMzUyNSw3IEBAIGhlYXBfcGFn ZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAgKi8KIHN0YXRpYyBi b29sCiBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIg YnVmLAotCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKKwkJCQkJCQkgICBHbG9i YWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRz LAogCQkJCQkJCSAgIGludCBuZGVhZG9mZnNldHMsCiAJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3pl biwKQEAgLTM1OTgsOCArMzU5Nyw4IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShS ZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCXR1cGxlLnRfbGVuID0gSXRlbUlkR2V0TGVuZ3Ro KGl0ZW1pZCk7CiAJCXR1cGxlLnRfdGFibGVPaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbCk7CiAK LQkJc3dpdGNoIChIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0oJnR1cGxlLCBPbGRlc3RYbWluLAot CQkJCQkJCQkJCSBidWYpKQorCQlzd2l0Y2ggKEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bUdsb2Jh bFZpcygmdHVwbGUsIHZpc3Rlc3QsCisJCQkJCQkJCQkJCQkgIGJ1ZikpCiAJCXsKIAkJCWNhc2Ug SEVBUFRVUExFX0xJVkU6CiAJCQkJewpAQCAtMzYxOCw4ICszNjE3LDcgQEAgaGVhcF9wYWdlX3dv dWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJCQkJICogdGhh dCBldmVyeW9uZSBzZWVzIGl0IGFzIGNvbW1pdHRlZD8KIAkJCQkJICovCiAJCQkJCXhtaW4gPSBI ZWFwVHVwbGVIZWFkZXJHZXRYbWluKHR1cGxlLnRfZGF0YSk7Ci0JCQkJCWlmICghVHJhbnNhY3Rp b25JZFByZWNlZGVzKHhtaW4sCi0JCQkJCQkJCQkJCSAgIE9sZGVzdFhtaW4pKQorCQkJCQlpZiAo IUdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCh2aXN0ZXN0LCB4bWluKSkKIAkJCQkJewogCQkJCQkJ YWxsX3Zpc2libGUgPSBmYWxzZTsKIAkJCQkJCSphbGxfZnJvemVuID0gZmFsc2U7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVh cGFtLmgKaW5kZXggMzk0ZjYyYTIxZTUuLjM0ZWUzMjNhNDIzIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBA IC0zOTUsNyArMzk1LDcgQEAgZXh0ZXJuIHZvaWQgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJl bCwKIAkJCQkJCQljb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLCBCdWZmZXJBY2Nlc3NTdHJhdGVn eSBic3RyYXRlZ3kpOwogCiBleHRlcm4gYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVs YXRpb24gcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1p biwKKwkJCQkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkJCSBib29sICph bGxfZnJvemVuLAogCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hp ZCwKIAkJCQkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKQEAgLTQwNyw2ICs0 MDcsOCBAQCBleHRlcm4gVE1fUmVzdWx0IEhlYXBUdXBsZVNhdGlzZmllc1VwZGF0ZShIZWFwVHVw bGUgaHR1cCwgQ29tbWFuZElkIGN1cmNpZCwKIAkJCQkJCQkJCQkgIEJ1ZmZlciBidWZmZXIpOwog ZXh0ZXJuIEhUU1ZfUmVzdWx0IEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bShIZWFwVHVwbGUgaHR1 cCwgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAogCQkJCQkJCQkJCQlCdWZmZXIgYnVmZmVyKTsK K2V4dGVybiBIVFNWX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW1HbG9iYWxWaXMoSGVh cFR1cGxlIGh0dXAsCisJCQkJCQkJCQkJCQkJIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LCBCdWZm ZXIgYnVmZmVyKTsKIGV4dGVybiBIVFNWX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW1I b3Jpem9uKEhlYXBUdXBsZSBodHVwLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJCQkJCQkJICAgVHJh bnNhY3Rpb25JZCAqZGVhZF9hZnRlcik7CiBleHRlcm4gdm9pZCBIZWFwVHVwbGVTZXRIaW50Qml0 cyhIZWFwVHVwbGVIZWFkZXIgdHVwbGUsIEJ1ZmZlciBidWZmZXIsCi0tIAoyLjQzLjAKCg== --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0022-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v15-0022-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lbag21 RnJvbSA4ZGY4Y2YxZDljNWJhYThkMDdlNjIzZTgwZGZhZWI1ZmY0YjI1MjI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM0OjMwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMjIvMjNdIEFsbG93IG9uLWFjY2VzcyBwcnVuaW5nIHRvIHNldCBwYWdlcyBhbGwt dmlzaWJsZQoKTWFueSBxdWVyaWVzIGRvIG5vdCBtb2RpZnkgdGhlIHVuZGVybHlpbmcgcmVsYXRp b24uIEZvciBzdWNoIHF1ZXJpZXMsIGlmCm9uLWFjY2VzcyBwcnVuaW5nIG9jY3VycyBkdXJpbmcg dGhlIHNjYW4sIHdlIGNhbiBjaGVjayB3aGV0aGVyIHRoZSBwYWdlCmhhcyBiZWNvbWUgYWxsLXZp c2libGUgYW5kIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAgYWNjb3JkaW5nbHkuClByZXZpb3Vz bHksIG9ubHkgdmFjdXVtIG1hcmtlZCBwYWdlcyBhcyBhbGwtdmlzaWJsZSBvciBhbGwtZnJvemVu LgoKU3VwcG9ydGluZyB0aGlzIHJlcXVpcmVzIHBhc3NpbmcgaW5mb3JtYXRpb24gYWJvdXQgd2hl dGhlciB0aGUgcmVsYXRpb24KaXMgbW9kaWZpZWQgZnJvbSB0aGUgZXhlY3V0b3IgZG93biB0byB0 aGUgc2NhbiBkZXNjcmlwdG9yLgoKVGhpcyBjb21taXQgaW1wbGVtZW50cyBvbi1hY2Nlc3MgVk0g c2V0dGluZyBmb3Igc2VxdWVudGlhbCBzY2FucyBhcyB3ZWxsCmFzIGZvciB0aGUgdW5kZXJseWlu ZyBoZWFwIHJlbGF0aW9uIGluIGluZGV4IHNjYW5zIGFuZCBiaXRtYXAgaGVhcApzY2Fucy4KLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAgICAgICAgfCAxNSArKyst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jICAgICAgfCAxNSArKyst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgICAgICAgICAgfCA4OSArKysr KysrKysrKysrKy0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jICAgICAg ICAgICAgfCA0NiArKysrKysrKysrCiBzcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5j ICAgICAgICAgICAgfCAzOSArKysrKysrLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YyAgICAgICAgICAgICAgIHwgIDQgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMg ICAgICAgICAgICAgIHwgIDIgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBz Y2FuLmMgICAgIHwgIDcgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYyAg ICAgICAgICB8IDE4ICsrLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMgICAg ICAgICAgICB8IDI0ICsrKy0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCAgICAgICAgICAg ICAgICAgICAgfCAxMSArKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAgICAgICAg ICAgICAgICB8IDI0ICsrKystCiBzcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5oICAgICAgICAg ICAgICAgICAgfCAgNiArKwogc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCAgICAgICAgICAg ICAgICAgIHwgMzAgKysrKysrLQogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAg ICAgICAgICAgIHwgIDYgKysKIC4uLi90LzAzNV9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwg ICAgICAgICB8ICAzICstCiAxNiBmaWxlcyBjaGFuZ2VkLCAyOTIgaW5zZXJ0aW9ucygrKSwgNDcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCAxNGEyOTk2YjllZS4u NjE4MWUzNTVhYWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC01NTUsNiArNTU1LDcg QEAgaGVhcF9wcmVwYXJlX3BhZ2VzY2FuKFRhYmxlU2NhbkRlc2Mgc3NjYW4pCiAJQnVmZmVyCQli dWZmZXIgPSBzY2FuLT5yc19jYnVmOwogCUJsb2NrTnVtYmVyIGJsb2NrID0gc2Nhbi0+cnNfY2Js b2NrOwogCVNuYXBzaG90CXNuYXBzaG90OworCUJ1ZmZlcgkgICAqdm1idWZmZXIgPSBOVUxMOwog CVBhZ2UJCXBhZ2U7CiAJaW50CQkJbGluZXM7CiAJYm9vbAkJYWxsX3Zpc2libGU7CkBAIC01Njks NyArNTcwLDkgQEAgaGVhcF9wcmVwYXJlX3BhZ2VzY2FuKFRhYmxlU2NhbkRlc2Mgc3NjYW4pCiAJ LyoKIAkgKiBQcnVuZSBhbmQgcmVwYWlyIGZyYWdtZW50YXRpb24gZm9yIHRoZSB3aG9sZSBwYWdl LCBpZiBwb3NzaWJsZS4KIAkgKi8KLQloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX2Jhc2Uu cnNfcmQsIGJ1ZmZlcik7CisJaWYgKHNzY2FuLT5yc19mbGFncyAmIFNPX0FMTE9XX1ZNX1NFVCkK KwkJdm1idWZmZXIgPSAmc2Nhbi0+cnNfdm1idWZmZXI7CisJaGVhcF9wYWdlX3BydW5lX29wdChz Y2FuLT5yc19iYXNlLnJzX3JkLCBidWZmZXIsIHZtYnVmZmVyKTsKIAogCS8qCiAJICogV2UgbXVz dCBob2xkIHNoYXJlIGxvY2sgb24gdGhlIGJ1ZmZlciBjb250ZW50IHdoaWxlIGV4YW1pbmluZyB0 dXBsZQpAQCAtMTI0Niw2ICsxMjQ5LDcgQEAgaGVhcF9iZWdpbnNjYW4oUmVsYXRpb24gcmVsYXRp b24sIFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJCQkJCQkgIHNpemVvZihUQk1JdGVyYXRl UmVzdWx0KSk7CiAJfQogCisJc2Nhbi0+cnNfdm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOwogCiAJ cmV0dXJuIChUYWJsZVNjYW5EZXNjKSBzY2FuOwogfQpAQCAtMTI4NCw2ICsxMjg4LDEyIEBAIGhl YXBfcmVzY2FuKFRhYmxlU2NhbkRlc2Mgc3NjYW4sIFNjYW5LZXkga2V5LCBib29sIHNldF9wYXJh bXMsCiAJCXNjYW4tPnJzX2NidWYgPSBJbnZhbGlkQnVmZmVyOwogCX0KIAorCWlmIChCdWZmZXJJ c1ZhbGlkKHNjYW4tPnJzX3ZtYnVmZmVyKSkKKwl7CisJCVJlbGVhc2VCdWZmZXIoc2Nhbi0+cnNf dm1idWZmZXIpOworCQlzY2FuLT5yc192bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CisJfQorCiAJ LyoKIAkgKiBTT19UWVBFX0JJVE1BUFNDQU4gd291bGQgYmUgY2xlYW5lZCB1cCBoZXJlLCBidXQg aXQgZG9lcyBub3QgaG9sZCBhbnkKIAkgKiBhZGRpdGlvbmFsIGRhdGEgdnMgYSBub3JtYWwgSGVh cFNjYW4KQEAgLTEzMTYsNiArMTMyNiw5IEBAIGhlYXBfZW5kc2NhbihUYWJsZVNjYW5EZXNjIHNz Y2FuKQogCWlmIChCdWZmZXJJc1ZhbGlkKHNjYW4tPnJzX2NidWYpKQogCQlSZWxlYXNlQnVmZmVy KHNjYW4tPnJzX2NidWYpOwogCisJaWYgKEJ1ZmZlcklzVmFsaWQoc2Nhbi0+cnNfdm1idWZmZXIp KQorCQlSZWxlYXNlQnVmZmVyKHNjYW4tPnJzX3ZtYnVmZmVyKTsKKwogCS8qCiAJICogTXVzdCBm cmVlIHRoZSByZWFkIHN0cmVhbSBiZWZvcmUgZnJlZWluZyB0aGUgQnVmZmVyQWNjZXNzU3RyYXRl Z3kuCiAJICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFu ZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwppbmRleCBi Y2JhYzg0NGJiNi4uZjA1YjllNDk2OGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X2hhbmRsZXIuYwpAQCAtODUsNiArODUsNyBAQCBoZWFwYW1faW5kZXhfZmV0Y2hfYmVnaW4oUmVs YXRpb24gcmVsKQogCiAJaHNjYW4tPnhzX2Jhc2UucmVsID0gcmVsOwogCWhzY2FuLT54c19jYnVm ID0gSW52YWxpZEJ1ZmZlcjsKKwloc2Nhbi0+eHNfdm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOwog CiAJcmV0dXJuICZoc2Nhbi0+eHNfYmFzZTsKIH0KQEAgLTk5LDYgKzEwMCwxMiBAQCBoZWFwYW1f aW5kZXhfZmV0Y2hfcmVzZXQoSW5kZXhGZXRjaFRhYmxlRGF0YSAqc2NhbikKIAkJUmVsZWFzZUJ1 ZmZlcihoc2Nhbi0+eHNfY2J1Zik7CiAJCWhzY2FuLT54c19jYnVmID0gSW52YWxpZEJ1ZmZlcjsK IAl9CisKKwlpZiAoQnVmZmVySXNWYWxpZChoc2Nhbi0+eHNfdm1idWZmZXIpKQorCXsKKwkJUmVs ZWFzZUJ1ZmZlcihoc2Nhbi0+eHNfdm1idWZmZXIpOworCQloc2Nhbi0+eHNfdm1idWZmZXIgPSBJ bnZhbGlkQnVmZmVyOworCX0KIH0KIAogc3RhdGljIHZvaWQKQEAgLTEzOCw3ICsxNDUsOCBAQCBo ZWFwYW1faW5kZXhfZmV0Y2hfdHVwbGUoc3RydWN0IEluZGV4RmV0Y2hUYWJsZURhdGEgKnNjYW4s CiAJCSAqIFBydW5lIHBhZ2UsIGJ1dCBvbmx5IGlmIHdlIHdlcmVuJ3QgYWxyZWFkeSBvbiB0aGlz IHBhZ2UKIAkJICovCiAJCWlmIChwcmV2X2J1ZiAhPSBoc2Nhbi0+eHNfY2J1ZikKLQkJCWhlYXBf cGFnZV9wcnVuZV9vcHQoaHNjYW4tPnhzX2Jhc2UucmVsLCBoc2Nhbi0+eHNfY2J1Zik7CisJCQlo ZWFwX3BhZ2VfcHJ1bmVfb3B0KGhzY2FuLT54c19iYXNlLnJlbCwgaHNjYW4tPnhzX2NidWYsCisJ CQkJCQkJCXNjYW4tPm1vZGlmaWVzX2Jhc2VfcmVsID8gTlVMTCA6ICZoc2Nhbi0+eHNfdm1idWZm ZXIpOwogCX0KIAogCS8qIE9idGFpbiBzaGFyZS1sb2NrIG9uIHRoZSBidWZmZXIgc28gd2UgY2Fu IGV4YW1pbmUgdmlzaWJpbGl0eSAqLwpAQCAtMjQ3MSw2ICsyNDc5LDcgQEAgQml0bWFwSGVhcFNj YW5OZXh0QmxvY2soVGFibGVTY2FuRGVzYyBzY2FuLAogCVRCTUl0ZXJhdGVSZXN1bHQgKnRibXJl czsKIAlPZmZzZXROdW1iZXIgb2Zmc2V0c1tUQk1fTUFYX1RVUExFU19QRVJfUEFHRV07CiAJaW50 CQkJbm9mZnNldHMgPSAtMTsKKwlCdWZmZXIJICAgKnZtYnVmZmVyID0gTlVMTDsKIAogCUFzc2Vy dChzY2FuLT5yc19mbGFncyAmIFNPX1RZUEVfQklUTUFQU0NBTik7CiAJQXNzZXJ0KGhzY2FuLT5y c19yZWFkX3N0cmVhbSk7CkBAIC0yNTE3LDcgKzI1MjYsOSBAQCBCaXRtYXBIZWFwU2Nhbk5leHRC bG9jayhUYWJsZVNjYW5EZXNjIHNjYW4sCiAJLyoKIAkgKiBQcnVuZSBhbmQgcmVwYWlyIGZyYWdt ZW50YXRpb24gZm9yIHRoZSB3aG9sZSBwYWdlLCBpZiBwb3NzaWJsZS4KIAkgKi8KLQloZWFwX3Bh Z2VfcHJ1bmVfb3B0KHNjYW4tPnJzX3JkLCBidWZmZXIpOworCWlmIChzY2FuLT5yc19mbGFncyAm IFNPX0FMTE9XX1ZNX1NFVCkKKwkJdm1idWZmZXIgPSAmaHNjYW4tPnJzX3ZtYnVmZmVyOworCWhl YXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfcmQsIGJ1ZmZlciwgdm1idWZmZXIpOwogCiAJLyoK IAkgKiBXZSBtdXN0IGhvbGQgc2hhcmUgbG9jayBvbiB0aGUgYnVmZmVyIGNvbnRlbnQgd2hpbGUg ZXhhbWluaW5nIHR1cGxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IGU2NGFk ZGZkZjVkLi4wZDhmZWEzNDZjNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAg LTQ1LDYgKzQ1LDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAlib29sCQltYXJrX3VudXNlZF9ub3c7CiAJ Lyogd2hldGhlciB0byBhdHRlbXB0IGZyZWV6aW5nIHR1cGxlcyAqLwogCWJvb2wJCWF0dGVtcHRf ZnJlZXplOworCS8qIHdoZXRoZXIgb3Igbm90IHRvIGF0dGVtcHQgdXBkYXRpbmcgdGhlIFZNICov CisJYm9vbAkJYXR0ZW1wdF91cGRhdGVfdm07CiAJY29uc3Qgc3RydWN0IFZhY3V1bUN1dG9mZnMg KmN1dG9mZnM7CiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KQEAgLTE4NSw5ICsxODcsMTMgQEAgc3RhdGljIHZvaWQgcGFnZV92ZXJp ZnlfcmVkaXJlY3RzKFBhZ2UgcGFnZSk7CiAgKiBpZiB0aGVyZSdzIG5vdCBhbnkgdXNlIGluIHBy dW5pbmcuCiAgKgogICogQ2FsbGVyIG11c3QgaGF2ZSBwaW4gb24gdGhlIGJ1ZmZlciwgYW5kIG11 c3QgKm5vdCogaGF2ZSBhIGxvY2sgb24gaXQuCisgKgorICogSWYgdm1idWZmZXIgaXMgbm90IE5V TEwsIGl0IGlzIG9rYXkgZm9yIHBydW5pbmcgdG8gc2V0IHRoZSB2aXNpYmlsaXR5IG1hcCBpZgor ICogdGhlIHBhZ2UgaXMgYWxsIHZpc2libGUuIFdlIHdpbGwgdGFrZSBjYXJlIG9mIHBpbm5pbmcg YW5kLCBpZiBuZWVkZWQsCisgKiByZWFkaW5nIGluIHRoZSBwYWdlIG9mIHRoZSB2aXNpYmlsaXR5 IG1hcC4KICAqLwogdm9pZAotaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlcikKK2hlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1 ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIpCiB7CiAJUGFnZQkJcGFnZSA9IEJ1ZmZlckdl dFBhZ2UoYnVmZmVyKTsKIAlUcmFuc2FjdGlvbklkIHBydW5lX3hpZDsKQEAgLTI1MSw2ICsyNTcs MTMgQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZl cikKIAkJewogCQkJT2Zmc2V0TnVtYmVyIGR1bW15X29mZl9sb2M7CiAJCQlQcnVuZUZyZWV6ZVJl c3VsdCBwcmVzdWx0OworCQkJaW50CQkJb3B0aW9ucyA9IDA7CisKKwkJCWlmICh2bWJ1ZmZlcikK KwkJCXsKKwkJCQl2aXNpYmlsaXR5bWFwX3BpbihyZWxhdGlvbiwgQnVmZmVyR2V0QmxvY2tOdW1i ZXIoYnVmZmVyKSwgdm1idWZmZXIpOworCQkJCW9wdGlvbnMgPSBIRUFQX1BBR0VfUFJVTkVfVVBE QVRFX1ZJUzsKKwkJCX0KIAogCQkJLyoKIAkJCSAqIEZvciBub3csIHBhc3MgbWFya191bnVzZWRf bm93IGFzIGZhbHNlIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvcgpAQCAtMjU4LDggKzI3MSw5IEBA IGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIpCiAJ CQkgKiB0aGF0IGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyB3aXRoIHRoZSBjdXJyZW50IGltcGxl bWVudGF0aW9uLgogCQkJICovCiAJCQloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShyZWxhdGlv biwgYnVmZmVyLAotCQkJCQkJCQkJICAgSW52YWxpZEJ1ZmZlciwgZmFsc2UsCi0JCQkJCQkJCQkg ICBQUlVORV9PTl9BQ0NFU1MsIDAsIE5VTEwsCisJCQkJCQkJCQkgICB2bWJ1ZmZlciA/ICp2bWJ1 ZmZlciA6IEludmFsaWRCdWZmZXIsCisJCQkJCQkJCQkgICBmYWxzZSwJLyogYmxrX2tub3duX2F2 ICovCisJCQkJCQkJCQkgICBQUlVORV9PTl9BQ0NFU1MsIG9wdGlvbnMsIE5VTEwsCiAJCQkJCQkJ CQkgICB2aXN0ZXN0LCAmcHJlc3VsdCwgJmR1bW15X29mZl9sb2MsIE5VTEwsIE5VTEwpOwogCiAJ CQkvKgpAQCAtNDQzLDYgKzQ1Nyw4IEBAIGhlYXBfcGFnZV93aWxsX3NldF92aXMoUmVsYXRpb24g cmVsYXRpb24sCiAJCQkJCSAgIEJ1ZmZlciBoZWFwX2J1ZiwKIAkJCQkJICAgQnVmZmVyIHZtYnVm ZmVyLAogCQkJCQkgICBib29sIGJsa19rbm93bl9hdiwKKwkJCQkJICAgUHJ1bmVSZWFzb24gcmVh c29uLAorCQkJCQkgICBib29sIGRvX3BydW5lLCBib29sIGRvX2ZyZWV6ZSwKIAkJCQkJICAgUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwKIAkJCQkJICAgdWludDggKnZtZmxhZ3MsCiAJCQkJCSAgIGJvb2wg KmRvX3NldF9wZF92aXMpCkBAIC00NTAsNiArNDY2LDMyIEBAIGhlYXBfcGFnZV93aWxsX3NldF92 aXMoUmVsYXRpb24gcmVsYXRpb24sCiAJUGFnZQkJaGVhcF9wYWdlID0gQnVmZmVyR2V0UGFnZSho ZWFwX2J1Zik7CiAJYm9vbAkJZG9fc2V0X3ZtID0gZmFsc2U7CiAKKwkqZG9fc2V0X3BkX3ZpcyA9 IGZhbHNlOworCisJaWYgKCFwcnN0YXRlLT5hdHRlbXB0X3VwZGF0ZV92bSkKKwl7CisJCUFzc2Vy dCghcHJzdGF0ZS0+YWxsX3Zpc2libGUgJiYgIXByc3RhdGUtPmFsbF9mcm96ZW4pOworCQlBc3Nl cnQoKnZtZmxhZ3MgPT0gMCk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKgorCSAqIElmIHRo aXMgaXMgYW4gb24tYWNjZXNzIGNhbGwgYW5kIHdlJ3JlIG5vdCBhY3R1YWxseSBwcnVuaW5nLCBh dm9pZAorCSAqIHNldHRpbmcgdGhlIHZpc2liaWxpdHkgbWFwIGlmIGl0IHdvdWxkIG5ld2x5IGRp cnR5IHRoZSBoZWFwIHBhZ2Ugb3IsIGlmCisJICogdGhlIHBhZ2UgaXMgYWxyZWFkeSBkaXJ0eSwg aWYgZG9pbmcgc28gd291bGQgcmVxdWlyZSBpbmNsdWRpbmcgYQorCSAqIGZ1bGwtcGFnZSBpbWFn ZSAoRlBJKSBvZiB0aGUgaGVhcCBwYWdlIGluIHRoZSBXQUwuIFRoaXMgc2l0dWF0aW9uCisJICog c2hvdWxkIGJlIHJhcmUsIGFzIG9uLWFjY2VzcyBwcnVuaW5nIGlzIG9ubHkgYXR0ZW1wdGVkIHdo ZW4KKwkgKiBwZF9wcnVuZV94aWQgaXMgdmFsaWQuCisJICovCisJaWYgKHJlYXNvbiA9PSBQUlVO RV9PTl9BQ0NFU1MgJiYKKwkJcHJzdGF0ZS0+YWxsX3Zpc2libGUgJiYKKwkJIWRvX3BydW5lICYm ICFkb19mcmVlemUgJiYKKwkJKCFCdWZmZXJJc0RpcnR5KGhlYXBfYnVmKSB8fCBYTG9nQ2hlY2tC dWZmZXJOZWVkc0JhY2t1cChoZWFwX2J1ZikpKQorCXsKKwkJcHJzdGF0ZS0+YWxsX3Zpc2libGUg PSBwcnN0YXRlLT5hbGxfZnJvemVuID0gZmFsc2U7CisJCXJldHVybiBmYWxzZTsKKwl9CisKIAlp ZiAocHJzdGF0ZS0+YWxsX3Zpc2libGUgJiYgIVBhZ2VJc0FsbFZpc2libGUoaGVhcF9wYWdlKSkK IAkJKmRvX3NldF9wZF92aXMgPSB0cnVlOwogCkBAIC00NzMsNiArNTE1LDkgQEAgaGVhcF9wYWdl X3dpbGxfc2V0X3ZpcyhSZWxhdGlvbiByZWxhdGlvbiwKIAkgKiBwYWdlLWxldmVsIGJpdCBpcyBj bGVhci4gIEhvd2V2ZXIsIGl0J3MgcG9zc2libGUgdGhhdCBpbiB2YWN1dW0gdGhlIGJpdAogCSAq IGdvdCBjbGVhcmVkIGFmdGVyIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIHdhcyBjYWxsZWQs IHNvIHdlIG11c3QKIAkgKiByZWNoZWNrIHdpdGggYnVmZmVyIGxvY2sgYmVmb3JlIGNvbmNsdWRp bmcgdGhhdCB0aGUgVk0gaXMgY29ycnVwdC4KKwkgKgorCSAqIFhYWDogVGhpcyB3aWxsIG5ldmVy IHRyaWdnZXIgZm9yIG9uLWFjY2VzcyBwcnVuaW5nIGJlY2F1c2UgaXQgcGFzc2VzCisJICogYmxr X2tub3duX2F2IGFzIGZhbHNlLiBTaG91bGQgd2UgcmVtb3ZlIHRoYXQgY29uZGl0aW9uIGhlcmU/ CiAJICovCiAJZWxzZSBpZiAoYmxrX2tub3duX2F2ICYmICFQYWdlSXNBbGxWaXNpYmxlKGhlYXBf cGFnZSkgJiYKIAkJCSB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocmVsYXRpb24sIGhlYXBfYmxr LCAmdm1idWZmZXIpICE9IDApCkBAIC02MTUsNiArNjYwLDcgQEAgaGVhcF9wYWdlX3BydW5lX2Fu ZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJcHJzdGF0ZS52aXN0 ZXN0ID0gdmlzdGVzdDsKIAlwcnN0YXRlLm1hcmtfdW51c2VkX25vdyA9IChvcHRpb25zICYgSEVB UF9QQUdFX1BSVU5FX01BUktfVU5VU0VEX05PVykgIT0gMDsKIAlwcnN0YXRlLmF0dGVtcHRfZnJl ZXplID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFKSAhPSAwOworCXByc3RhdGUu YXR0ZW1wdF91cGRhdGVfdm0gPSAob3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVklT KSAhPSAwOwogCXByc3RhdGUuY3V0b2ZmcyA9IGN1dG9mZnM7CiAKIAkvKgpAQCAtNjkyLDcgKzcz OCw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZm ZXIgYnVmZmVyLAogCQlwcnN0YXRlLmFsbF92aXNpYmxlID0gdHJ1ZTsKIAkJcHJzdGF0ZS5hbGxf ZnJvemVuID0gdHJ1ZTsKIAl9Ci0JZWxzZSBpZiAoKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVf VVBEQVRFX1ZJUykgIT0gMCkKKwllbHNlIGlmIChwcnN0YXRlLmF0dGVtcHRfdXBkYXRlX3ZtKQog CXsKIAkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IHRydWU7CiAJCXByc3RhdGUuYWxsX2Zyb3plbiA9 IGZhbHNlOwpAQCAtOTA2LDYgKzk1MiwxNCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJcHJzdGF0ZS5uZGVhZCA+IDAgfHwK IAkJcHJzdGF0ZS5udW51c2VkID4gMDsKIAorCS8qCisJICogRXZlbiBpZiB3ZSBkb24ndCBwcnVu ZSBhbnl0aGluZywgaWYgd2UgZm91bmQgYSBuZXcgdmFsdWUgZm9yIHRoZQorCSAqIHBkX3BydW5l X3hpZCBmaWVsZCBvciB0aGUgcGFnZSB3YXMgbWFya2VkIGZ1bGwsIHdlIHdpbGwgdXBkYXRlIHRo ZSBoaW50CisJICogYml0LgorCSAqLworCWRvX2hpbnRfcHJ1bmUgPSAoKFBhZ2VIZWFkZXIpIHBh Z2UpLT5wZF9wcnVuZV94aWQgIT0gcHJzdGF0ZS5uZXdfcHJ1bmVfeGlkIHx8CisJCVBhZ2VJc0Z1 bGwocGFnZSk7CisKIAkvKgogCSAqIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHRoZSBsaXZlIHR1cGxl cyBvbiB0aGUgcGFnZSwgaWYgdGhlIG5ld2VzdCB4bWluCiAJICogYW1vbmdzdCB0aGVtIGlzIG5v dCB2aXNpYmxlIHRvIGV2ZXJ5b25lLCB0aGUgcGFnZSBjYW5ub3QgYmUKQEAgLTkxNiwxNCArOTcw LDYgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZl ciBidWZmZXIsCiAJCSFHbG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwocHJzdGF0ZS52aXN0ZXN0LCBw cnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkpCiAJCXByc3RhdGUuYWxsX3Zpc2libGUgPSBw cnN0YXRlLmFsbF9mcm96ZW4gPSBmYWxzZTsKIAotCS8qCi0JICogRXZlbiBpZiB3ZSBkb24ndCBw cnVuZSBhbnl0aGluZywgaWYgd2UgZm91bmQgYSBuZXcgdmFsdWUgZm9yIHRoZQotCSAqIHBkX3By dW5lX3hpZCBmaWVsZCBvciB0aGUgcGFnZSB3YXMgbWFya2VkIGZ1bGwsIHdlIHdpbGwgdXBkYXRl IHRoZSBoaW50Ci0JICogYml0LgotCSAqLwotCWRvX2hpbnRfcHJ1bmUgPSAoKFBhZ2VIZWFkZXIp IHBhZ2UpLT5wZF9wcnVuZV94aWQgIT0gcHJzdGF0ZS5uZXdfcHJ1bmVfeGlkIHx8Ci0JCVBhZ2VJ c0Z1bGwocGFnZSk7Ci0KIAkvKgogCSAqIERlY2lkZSBpZiB3ZSB3YW50IHRvIGdvIGFoZWFkIHdp dGggZnJlZXppbmcgYWNjb3JkaW5nIHRvIHRoZSBmcmVlemUKIAkgKiBwbGFucyB3ZSBwcmVwYXJl ZCwgb3Igbm90LgpAQCAtOTUxLDggKzk5Nyw2IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXpl KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCWlmIChwcnN0YXRlLmxwZGVhZF9p dGVtcyA+IDApCiAJCXByc3RhdGUuYWxsX3Zpc2libGUgPSBwcnN0YXRlLmFsbF9mcm96ZW4gPSBm YWxzZTsKIAotCUFzc2VydCghcHJzdGF0ZS5hbGxfZnJvemVuIHx8IHByc3RhdGUuYWxsX3Zpc2li bGUpOwotCiAJLyoKIAkgKiBEZXRlcm1pbmUgd2hldGhlciBvciBub3QgdG8gc2V0IHRoZSBwYWdl IGxldmVsIFBEX0FMTF9WSVNJQkxFIGFuZCB0aGUKIAkgKiB2aXNpYmlsaXR5IG1hcCBiaXRzIGJh c2VkIG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFZNIGFuZCBmcm9tCkBAIC05NjgsMTIgKzEwMTIs MTIgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZl ciBidWZmZXIsCiAJICogQXMgc3VjaCwgaXQgaXMgcG9zc2libGUgdG8gb25seSB1cGRhdGUgdGhl IFZNIHdoZW4gUERfQUxMX1ZJU0lCTEUgaXMKIAkgKiBhbHJlYWR5IHNldC4KIAkgKi8KLQlkb19z ZXRfcGRfdmlzID0gZmFsc2U7Ci0JZG9fc2V0X3ZtID0gZmFsc2U7Ci0JaWYgKChvcHRpb25zICYg SEVBUF9QQUdFX1BSVU5FX1VQREFURV9WSVMpICE9IDApCi0JCWRvX3NldF92bSA9IGhlYXBfcGFn ZV93aWxsX3NldF92aXMocmVsYXRpb24sCi0JCQkJCQkJCQkJICAgYmxvY2tubywgYnVmZmVyLCB2 bWJ1ZmZlciwgYmxrX2tub3duX2F2LAotCQkJCQkJCQkJCSAgICZwcnN0YXRlLCAmbmV3X3ZtYml0 cywgJmRvX3NldF9wZF92aXMpOworCWRvX3NldF92bSA9IGhlYXBfcGFnZV93aWxsX3NldF92aXMo cmVsYXRpb24sCisJCQkJCQkJCQkgICBibG9ja25vLCBidWZmZXIsIHZtYnVmZmVyLCBibGtfa25v d25fYXYsCisJCQkJCQkJCQkgICByZWFzb24sIGRvX3BydW5lLCBkb19mcmVlemUsCisJCQkJCQkJ CQkgICAmcHJzdGF0ZSwgJm5ld192bWJpdHMsICZkb19zZXRfcGRfdmlzKTsKKworCUFzc2VydCgh cHJzdGF0ZS5hbGxfZnJvemVuIHx8IHByc3RhdGUuYWxsX3Zpc2libGUpOwogCiAJLyogTG9jayB2 bWJ1ZmZlciBiZWZvcmUgZW50ZXJpbmcgYSBjcml0aWNhbCBzZWN0aW9uICovCiAJaWYgKGRvX3Nl dF92bSkKQEAgLTExMzQsNyArMTE3OCw2IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJl bGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQlib29sCQlkZWJ1Z19hbGxfZnJvemVu OwogCiAJCUFzc2VydChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKTsKLQkJQXNzZXJ0KHByc3Rh dGUuY3V0b2Zmcyk7CiAKIAkJaWYgKCFoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUocmVsYXRpb24s IGJ1ZmZlciwKIAkJCQkJCQkJCSAgcHJzdGF0ZS52aXN0ZXN0LApAQCAtMjI5OSw4ICsyMzQyLDgg QEAgaGVhcF9sb2dfZnJlZXplX3BsYW4oSGVhcFR1cGxlRnJlZXplICp0dXBsZXMsIGludCBudHVw bGVzLAogICogLSBSZWFwaW5nOiBEdXJpbmcgdmFjdXVtIHBoYXNlIElJSSwgaXRlbXMgdGhhdCBh cmUgYWxyZWFkeSBMUF9ERUFEIGFyZQogICogICBtYXJrZWQgYXMgdW51c2VkLgogICoKLSAqIC0g Vk0gdXBkYXRlczogQWZ0ZXIgdmFjdXVtIHBoYXNlcyBJIGFuZCBJSUksIHRoZSBoZWFwIHBhZ2Ug bWF5IGJlIG1hcmtlZAotICogICBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbi4KKyAqIC0gVk0g dXBkYXRlczogQWZ0ZXIgdmFjdXVtIHBoYXNlcyBJIGFuZCBJSUkgYW5kIG9uLWFjY2VzcywgdGhl IGhlYXAgcGFnZQorICogICBtYXkgYmUgbWFya2VkIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVu LgogICoKICAqIFRoZXNlIGNoYW5nZXMgYWxsIGhhcHBlbiB0b2dldGhlciwgc28gd2UgdXNlIGEg c2luZ2xlIFdBTCByZWNvcmQgZm9yIHRoZW0KICAqIGFsbC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5k ZXhhbS5jCmluZGV4IDA0OTJkOTJkMjNiLi44ZDU4MmE4ZWFmZCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5k ZXgvaW5kZXhhbS5jCkBAIC0yODksNiArMjg5LDMyIEBAIGluZGV4X2JlZ2luc2NhbihSZWxhdGlv biBoZWFwUmVsYXRpb24sCiAJcmV0dXJuIHNjYW47CiB9CiAKKy8qCisgKiBTaW1pbGFyIHRvIGlu ZGV4X2JlZ2luc2NhbigpLCBidXQgYWxsb3dzIHRoZSBjYWxsZXIgdG8gaW5kaWNhdGUgd2hldGhl ciB0aGUKKyAqIHF1ZXJ5IG1vZGlmaWVzIHRoZSB1bmRlcmx5aW5nIGJhc2UgcmVsYXRpb24uIFRo aXMgaXMgdXNlZCB3aGVuIHRoZSBjYWxsZXIKKyAqIHdhbnRzIHRvIGF0dGVtcHQgbWFya2luZyBw YWdlcyBpbiB0aGUgYmFzZSByZWxhdGlvbiBhcyBhbGwtdmlzaWJsZSBpbiB0aGUKKyAqIHZpc2li aWxpdHkgbWFwIGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZy4KKyAqLworSW5kZXhTY2FuRGVzYwor aW5kZXhfYmVnaW5zY2FuX3Ztc2V0KFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKKwkJCQkJICBSZWxh dGlvbiBpbmRleFJlbGF0aW9uLAorCQkJCQkgIFNuYXBzaG90IHNuYXBzaG90LAorCQkJCQkgIElu ZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKKwkJCQkJICBpbnQgbmtleXMsIGlu dCBub3JkZXJieXMsIGJvb2wgbW9kaWZpZXNfYmFzZV9yZWwpCit7CisJSW5kZXhTY2FuRGVzYyBz Y2FuOworCisJc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFwUmVsYXRpb24sCisJCQkJCQkgICBp bmRleFJlbGF0aW9uLAorCQkJCQkJICAgc25hcHNob3QsCisJCQkJCQkgICBpbnN0cnVtZW50LAor CQkJCQkJICAgbmtleXMsIG5vcmRlcmJ5cyk7CisKKwlzY2FuLT54c19oZWFwZmV0Y2gtPm1vZGlm aWVzX2Jhc2VfcmVsID0gbW9kaWZpZXNfYmFzZV9yZWw7CisKKwlyZXR1cm4gc2NhbjsKK30KKwog LyoKICAqIGluZGV4X2JlZ2luc2Nhbl9iaXRtYXAgLSBzdGFydCBhIHNjYW4gb2YgYW4gaW5kZXgg d2l0aCBhbWdldGJpdG1hcAogICoKQEAgLTYyMCw2ICs2NDYsMjYgQEAgaW5kZXhfYmVnaW5zY2Fu X3BhcmFsbGVsKFJlbGF0aW9uIGhlYXByZWwsIFJlbGF0aW9uIGluZGV4cmVsLAogCXJldHVybiBz Y2FuOwogfQogCisvKgorICogUGFyYWxsZWwgdmVyc2lvbiBvZiBpbmRleF9iZWdpbnNjYW5fdm1z ZXQoKQorICovCitJbmRleFNjYW5EZXNjCitpbmRleF9iZWdpbnNjYW5fcGFyYWxsZWxfdm1zZXQo UmVsYXRpb24gaGVhcHJlbCwgUmVsYXRpb24gaW5kZXhyZWwsCisJCQkJCQkJICAgSW5kZXhTY2Fu SW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAorCQkJCQkJCSAgIGludCBua2V5cywgaW50IG5v cmRlcmJ5cywKKwkJCQkJCQkgICBQYXJhbGxlbEluZGV4U2NhbkRlc2MgcHNjYW4sCisJCQkJCQkJ ICAgYm9vbCBtb2RpZmllc19iYXNlX3JlbCkKK3sKKwlJbmRleFNjYW5EZXNjIHNjYW47CisKKwlz Y2FuID0gaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKGhlYXByZWwsIGluZGV4cmVsLAorCQkJCQkJ CQkJaW5zdHJ1bWVudCwKKwkJCQkJCQkJCW5rZXlzLCBub3JkZXJieXMsCisJCQkJCQkJCQlwc2Nh bik7CisJc2Nhbi0+eHNfaGVhcGZldGNoLT5tb2RpZmllc19iYXNlX3JlbCA9IG1vZGlmaWVzX2Jh c2VfcmVsOworCXJldHVybiBzY2FuOworfQorCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKiBpbmRl eF9nZXRuZXh0X3RpZCAtIGdldCB0aGUgbmV4dCBUSUQgZnJvbSBhIHNjYW4KICAqCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RhYmxlL3RhYmxlYW0uYwppbmRleCBhNTZjNWVjZWIxNC4uNjdkYmY5OWY1YjUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RhYmxlL3RhYmxlYW0uYwpAQCAtNDksNiArNDksMTAgQEAKIGNoYXIJICAgKmRl ZmF1bHRfdGFibGVfYWNjZXNzX21ldGhvZCA9IERFRkFVTFRfVEFCTEVfQUNDRVNTX01FVEhPRDsK IGJvb2wJCXN5bmNocm9uaXplX3NlcXNjYW5zID0gdHJ1ZTsKIAorLyogSGVscGVyIGZvciB0YWJs ZV9iZWdpbnNjYW5fcGFyYWxsZWwoKSBhbmQgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3Ztc2V0 KCkgKi8KK3N0YXRpYyBUYWJsZVNjYW5EZXNjIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF9jb21t b24oUmVsYXRpb24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKKwkJCQkJ CQkJCQkJCQkgdWludDMyIGZsYWdzKTsKKwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBT bG90IGZ1bmN0aW9ucy4KQEAgLTE2MiwxMiArMTY2LDE0IEBAIHRhYmxlX3BhcmFsbGVsc2Nhbl9p bml0aWFsaXplKFJlbGF0aW9uIHJlbCwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAogCX0K IH0KIAotVGFibGVTY2FuRGVzYwotdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJl bGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCisvKgorICogQ29tbW9uIGhlbHBl ciBmb3IgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKCkgYW5kIHRhYmxlX2JlZ2luc2Nhbl9wYXJh bGxlbF92bXNldCgpCisgKi8KK3N0YXRpYyBUYWJsZVNjYW5EZXNjCit0YWJsZV9iZWdpbnNjYW5f cGFyYWxsZWxfY29tbW9uKFJlbGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2Mg cHNjYW4sCisJCQkJCQkJCXVpbnQzMiBmbGFncykKIHsKIAlTbmFwc2hvdAlzbmFwc2hvdDsKLQl1 aW50MzIJCWZsYWdzID0gU09fVFlQRV9TRVFTQ0FOIHwKLQkJU09fQUxMT1dfU1RSQVQgfCBTT19B TExPV19TWU5DIHwgU09fQUxMT1dfUEFHRU1PREU7CiAKIAlBc3NlcnQoUmVsRmlsZUxvY2F0b3JF cXVhbHMocmVsYXRpb24tPnJkX2xvY2F0b3IsIHBzY2FuLT5waHNfbG9jYXRvcikpOwogCkBAIC0x ODgsNiArMTk0LDMxIEBAIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiByZWxhdGlv biwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKQogCQkJCQkJCQkJCQlwc2NhbiwgZmxhZ3Mp OwogfQogCitUYWJsZVNjYW5EZXNjCit0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24g cmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbikKK3sKKwl1aW50MzIJCWZsYWdz ID0gU09fVFlQRV9TRVFTQ0FOIHwKKwkJU09fQUxMT1dfU1RSQVQgfCBTT19BTExPV19TWU5DIHwg U09fQUxMT1dfUEFHRU1PREU7CisKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX2Nv bW1vbihyZWxhdGlvbiwgcHNjYW4sIGZsYWdzKTsKK30KKworLyoKKyAqIFBhcmFsbGVsIHZlcnNp b24gb2YgdGFibGVfYmVnaW5zY2FuX3Ztc2V0KCkKKyAqLworVGFibGVTY2FuRGVzYwordGFibGVf YmVnaW5zY2FuX3BhcmFsbGVsX3Ztc2V0KFJlbGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxl U2NhbkRlc2MgcHNjYW4sCisJCQkJCQkJICAgYm9vbCBtb2RpZmllc19yZWwpCit7CisJdWludDMy CQlmbGFncyA9IFNPX1RZUEVfU0VRU0NBTiB8CisJCVNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1df U1lOQyB8IFNPX0FMTE9XX1BBR0VNT0RFOworCisJaWYgKCFtb2RpZmllc19yZWwpCisJCWZsYWdz IHw9IFNPX0FMTE9XX1ZNX1NFVDsKKworCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxf Y29tbW9uKHJlbGF0aW9uLCBwc2NhbiwgZmxhZ3MpOworfQorCiAKIC8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICAqIEluZGV4IHNjYW4gcmVsYXRlZCBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYwppbmRleCA4MzFjNTVjZTc4Ny4uMTViZTMxOGZkNDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYwpAQCAtOTE2LDYgKzkxNiwxMCBAQCBJbml0UGxhbihRdWVyeURlc2MgKnF1ZXJ5RGVzYywg aW50IGVmbGFncykKIAkJCQkJYnJlYWs7CiAJCQl9CiAKKwkJCS8qIElmIGl0IGhhcyBhIHJvd21h cmssIHRoZSByZWxhdGlvbiBpcyBtb2RpZmllZCAqLworCQkJZXN0YXRlLT5lc19tb2RpZmllZF9y ZWxpZHMgPSBibXNfYWRkX21lbWJlcihlc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcywKKwkJCQkJ CQkJCQkJCQkJcmMtPnJ0aSk7CisKIAkJCS8qIENoZWNrIHRoYXQgcmVsYXRpb24gaXMgYSBsZWdh bCB0YXJnZXQgZm9yIG1hcmtpbmcgKi8KIAkJCWlmIChyZWxhdGlvbikKIAkJCQlDaGVja1ZhbGlk Um93TWFya1JlbChyZWxhdGlvbiwgcmMtPm1hcmtUeXBlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxz LmMKaW5kZXggZmRjNjVjMmI0MmIuLjI4YTA2ZGNkMjQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjVXRpbHMuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRp bHMuYwpAQCAtODkzLDYgKzg5Myw4IEBAIEV4ZWNJbml0UmVzdWx0UmVsYXRpb24oRVN0YXRlICpl c3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCWVzdGF0ZS0+ZXNfcmVzdWx0 X3JlbGF0aW9ucyA9IChSZXN1bHRSZWxJbmZvICoqKQogCQkJcGFsbG9jMChlc3RhdGUtPmVzX3Jh bmdlX3RhYmxlX3NpemUgKiBzaXplb2YoUmVzdWx0UmVsSW5mbyAqKSk7CiAJZXN0YXRlLT5lc19y ZXN1bHRfcmVsYXRpb25zW3J0aSAtIDFdID0gcmVzdWx0UmVsSW5mbzsKKwllc3RhdGUtPmVzX21v ZGlmaWVkX3JlbGlkcyA9IGJtc19hZGRfbWVtYmVyKGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRz LAorCQkJCQkJCQkJCQkJcnRpKTsKIAogCS8qCiAJICogU2F2aW5nIGluIHRoZSBsaXN0IGFsbG93 cyB0byBhdm9pZCBuZWVkbGVzc2x5IHRyYXZlcnNpbmcgdGhlIHdob2xlCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jCmluZGV4IGJmMjRmM2Q3ZmUwLi5hZjZkYjlmNzkx OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKQEAgLTEwNSwx MSArMTA1LDE2IEBAIEJpdG1hcFRhYmxlU2NhblNldHVwKEJpdG1hcEhlYXBTY2FuU3RhdGUgKm5v ZGUpCiAJICovCiAJaWYgKCFub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MpCiAJeworCQlib29s CQltb2RpZmllc19yZWwgPQorCQkJYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMu cGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJCSAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX21vZGlmaWVk X3JlbGlkcyk7CisKIAkJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJCXRhYmxlX2Jl Z2luc2Nhbl9ibShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJICAgbm9kZS0+ c3MucHMuc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCSAgIDAsCi0JCQkJCQkJICAgTlVMTCk7 CisJCQkJCQkJICAgTlVMTCwKKwkJCQkJCQkgICBtb2RpZmllc19yZWwpOwogCX0KIAogCW5vZGUt PnNzLnNzX2N1cnJlbnRTY2FuRGVzYy0+c3QucnNfdGJtaXRlcmF0b3IgPSB0Ym1pdGVyYXRvcjsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwppbmRleCA3ZmNhYTM3ZmU2Mi4uYzJmZmJk M2IwOGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKQEAgLTEwMiwxNiArMTAy LDIyIEBAIEluZGV4TmV4dChJbmRleFNjYW5TdGF0ZSAqbm9kZSkKIAogCWlmIChzY2FuZGVzYyA9 PSBOVUxMKQogCXsKKworCQlib29sCQltb2RpZmllc19iYXNlX3JlbCA9CisJCQlibXNfaXNfbWVt YmVyKCgoU2NhbiAqKSBub2RlLT5zcy5wcy5wbGFuKS0+c2NhbnJlbGlkLAorCQkJCQkJICBlc3Rh dGUtPmVzX21vZGlmaWVkX3JlbGlkcyk7CisKIAkJLyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0 aGUgaW5kZXggc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9yIGlmIHdlJ3JlCiAJCSAqIHNlcmlhbGx5 IGV4ZWN1dGluZyBhbiBpbmRleCBzY2FuIHRoYXQgd2FzIHBsYW5uZWQgdG8gYmUgcGFyYWxsZWwu CiAJCSAqLwotCQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50 UmVsYXRpb24sCi0JCQkJCQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCi0JCQkJCQkJCSAg IGVzdGF0ZS0+ZXNfc25hcHNob3QsCi0JCQkJCQkJCSAgICZub2RlLT5pc3NfSW5zdHJ1bWVudCwK LQkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLAotCQkJCQkJCQkgICBub2RlLT5pc3Nf TnVtT3JkZXJCeUtleXMpOworCQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbl92bXNldChub2Rl LT5zcy5zc19jdXJyZW50UmVsYXRpb24sCisJCQkJCQkJCQkJIG5vZGUtPmlzc19SZWxhdGlvbkRl c2MsCisJCQkJCQkJCQkJIGVzdGF0ZS0+ZXNfc25hcHNob3QsCisJCQkJCQkJCQkJICZub2RlLT5p c3NfSW5zdHJ1bWVudCwKKwkJCQkJCQkJCQkgbm9kZS0+aXNzX051bVNjYW5LZXlzLAorCQkJCQkJ CQkJCSBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsCisJCQkJCQkJCQkJIG1vZGlmaWVzX2Jhc2Vf cmVsKTsKIAogCQlub2RlLT5pc3NfU2NhbkRlc2MgPSBzY2FuZGVzYzsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVTZXFzY2FuLmMKaW5kZXggOTQwNDdkMjk0MzAuLmZkNjkyNzVjMTgxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVTZXFzY2FuLmMKQEAgLTY1LDEzICs2NSwxOCBAQCBTZXFOZXh0KFNlcVNjYW5T dGF0ZSAqbm9kZSkKIAogCWlmIChzY2FuZGVzYyA9PSBOVUxMKQogCXsKKwkJYm9vbAkJbW9kaWZp ZXNfcmVsID0KKwkJCWJtc19pc19tZW1iZXIoKChTY2FuICopIG5vZGUtPnNzLnBzLnBsYW4pLT5z Y2FucmVsaWQsCisJCQkJCQkgIGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzKTsKKwogCQkvKgog CQkgKiBXZSByZWFjaCBoZXJlIGlmIHRoZSBzY2FuIGlzIG5vdCBwYXJhbGxlbCwgb3IgaWYgd2Un cmUgc2VyaWFsbHkKIAkJICogZXhlY3V0aW5nIGEgc2NhbiB0aGF0IHdhcyBwbGFubmVkIHRvIGJl IHBhcmFsbGVsLgogCQkgKi8KLQkJc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW4obm9kZS0+c3Mu c3NfY3VycmVudFJlbGF0aW9uLAotCQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAotCQkJ CQkJCQkgICAwLCBOVUxMKTsKKwkJc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW5fdm1zZXQobm9k ZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAorCQkJCQkJCQkJCSBlc3RhdGUtPmVzX3NuYXBzaG90 LAorCQkJCQkJCQkJCSAwLCBOVUxMLCBtb2RpZmllc19yZWwpOworCiAJCW5vZGUtPnNzLnNzX2N1 cnJlbnRTY2FuRGVzYyA9IHNjYW5kZXNjOwogCX0KIApAQCAtMzY2LDYgKzM3MSw3IEBAIEV4ZWNT ZXFTY2FuSW5pdGlhbGl6ZURTTShTZXFTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkgUGFyYWxsZWxD b250ZXh0ICpwY3h0KQogewogCUVTdGF0ZQkgICAqZXN0YXRlID0gbm9kZS0+c3MucHMuc3RhdGU7 CisJYm9vbAkJbW9kaWZpZXNfcmVsOwogCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbjsKIAog CXBzY2FuID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIG5vZGUtPnBzY2FuX2xlbik7CkBA IC0zNzMsOCArMzc5LDExIEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShTZXFTY2FuU3RhdGUg Km5vZGUsCiAJCQkJCQkJCSAgcHNjYW4sCiAJCQkJCQkJCSAgZXN0YXRlLT5lc19zbmFwc2hvdCk7 CiAJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVf aWQsIHBzY2FuKTsKKwltb2RpZmllc19yZWwgPSBibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBub2Rl LT5zcy5wcy5wbGFuKS0+c2NhbnJlbGlkLAorCQkJCQkJCQkgZXN0YXRlLT5lc19tb2RpZmllZF9y ZWxpZHMpOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nh bl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuKTsKKwkJdGFibGVf YmVnaW5zY2FuX3BhcmFsbGVsX3Ztc2V0KG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNj YW4sCisJCQkJCQkJCQkgICBtb2RpZmllc19yZWwpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MDQs OCArNDEzLDEzIEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZVdvcmtlcihTZXFTY2FuU3RhdGUgKm5v ZGUsCiAJCQkJCQkJUGFyYWxsZWxXb3JrZXJDb250ZXh0ICpwd2N4dCkKIHsKIAlQYXJhbGxlbFRh YmxlU2NhbkRlc2MgcHNjYW47CisJYm9vbAkJbW9kaWZpZXNfcmVsID0KKwkJYm1zX2lzX21lbWJl cigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJICBub2RlLT5z cy5wcy5zdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzKTsKIAogCXBzY2FuID0gc2htX3RvY19sb29r dXAocHdjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBmYWxzZSk7CiAJ bm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVs KG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4pOworCQl0YWJsZV9iZWdpbnNjYW5f cGFyYWxsZWxfdm1zZXQobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAorCQkJCQkJCQkJICAg cHNjYW4sCisJCQkJCQkJCQkgICBtb2RpZmllc19yZWwpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL2dlbmFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaAppbmRleCAw ODMxYzMzYjAzOC4uODc4MjcxMjdkOTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9n ZW5hbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oCkBAIC0xNzQsNiArMTc0LDEx IEBAIGV4dGVybiBJbmRleFNjYW5EZXNjIGluZGV4X2JlZ2luc2NhbihSZWxhdGlvbiBoZWFwUmVs YXRpb24sCiAJCQkJCQkJCQkgU25hcHNob3Qgc25hcHNob3QsCiAJCQkJCQkJCQkgSW5kZXhTY2Fu SW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAogCQkJCQkJCQkJIGludCBua2V5cywgaW50IG5v cmRlcmJ5cyk7CitleHRlcm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW5fdm1zZXQoUmVs YXRpb24gaGVhcFJlbGF0aW9uLAorCQkJCQkJCQkJCSAgIFJlbGF0aW9uIGluZGV4UmVsYXRpb24s CisJCQkJCQkJCQkJICAgU25hcHNob3Qgc25hcHNob3QsCisJCQkJCQkJCQkJICAgSW5kZXhTY2Fu SW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAorCQkJCQkJCQkJCSAgIGludCBua2V5cywgaW50 IG5vcmRlcmJ5cywgYm9vbCBtb2RpZmllc19oZWFwX3JlbCk7CiBleHRlcm4gSW5kZXhTY2FuRGVz YyBpbmRleF9iZWdpbnNjYW5fYml0bWFwKFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiAJCQkJCQkJ CQkJCVNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJCQlJbmRleFNjYW5JbnN0cnVtZW50YXRp b24gKmluc3RydW1lbnQsCkBAIC0yMDAsNiArMjA1LDEyIEBAIGV4dGVybiBJbmRleFNjYW5EZXNj IGluZGV4X2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiBoZWFwcmVsLAogCQkJCQkJCQkJCQkg IEluZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKIAkJCQkJCQkJCQkJICBpbnQg bmtleXMsIGludCBub3JkZXJieXMsCiAJCQkJCQkJCQkJCSAgUGFyYWxsZWxJbmRleFNjYW5EZXNj IHBzY2FuKTsKKworZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVs X3Ztc2V0KFJlbGF0aW9uIGhlYXByZWwsIFJlbGF0aW9uIGluZGV4cmVsLAorCQkJCQkJCQkJCQkJ CUluZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKKwkJCQkJCQkJCQkJCQlpbnQg bmtleXMsIGludCBub3JkZXJieXMsCisJCQkJCQkJCQkJCQkJUGFyYWxsZWxJbmRleFNjYW5EZXNj IHBzY2FuLAorCQkJCQkJCQkJCQkJCWJvb2wgbW9kaWZpZXNfcmVsKTsKIGV4dGVybiBJdGVtUG9p bnRlciBpbmRleF9nZXRuZXh0X3RpZChJbmRleFNjYW5EZXNjIHNjYW4sCiAJCQkJCQkJCQkgU2Nh bkRpcmVjdGlvbiBkaXJlY3Rpb24pOwogc3RydWN0IFR1cGxlVGFibGVTbG90OwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBh bS5oCmluZGV4IDM0ZWUzMjNhNDIzLi45ZGNmOGQyOTQ5NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAt OTQsNiArOTQsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgSGVhcFNjYW5EZXNjRGF0YQogCSAqLwogCVBh cmFsbGVsQmxvY2tUYWJsZVNjYW5Xb3JrZXJEYXRhICpyc19wYXJhbGxlbHdvcmtlcmRhdGE7CiAK KwkvKgorCSAqIEZvciBzZXF1ZW50aWFsIHNjYW5zIGFuZCBiaXRtYXAgaGVhcCBzY2Fucy4gSWYg dGhlIHJlbGF0aW9uIGlzIG5vdAorCSAqIGJlaW5nIG1vZGlmaWVkLCBvbi1hY2Nlc3MgcHJ1bmlu ZyBtYXkgcmVhZCBpbiB0aGUgY3VycmVudCBoZWFwIHBhZ2UncworCSAqIGNvcnJlc3BvbmRpbmcg Vk0gYmxvY2sgdG8gdGhpcyBidWZmZXIuCisJICovCisJQnVmZmVyCQlyc192bWJ1ZmZlcjsKKwog CS8qIHRoZXNlIGZpZWxkcyBvbmx5IHVzZWQgaW4gcGFnZS1hdC1hLXRpbWUgbW9kZSBhbmQgZm9y IGJpdG1hcCBzY2FucyAqLwogCXVpbnQzMgkJcnNfY2luZGV4OwkJLyogY3VycmVudCB0dXBsZSdz IGluZGV4IGluIHZpc3R1cGxlcyAqLwogCXVpbnQzMgkJcnNfbnR1cGxlczsJCS8qIG51bWJlciBv ZiB2aXNpYmxlIHR1cGxlcyBvbiBwYWdlICovCkBAIC0xMTYsOCArMTIzLDE4IEBAIHR5cGVkZWYg c3RydWN0IEluZGV4RmV0Y2hIZWFwRGF0YQogewogCUluZGV4RmV0Y2hUYWJsZURhdGEgeHNfYmFz ZTsJLyogQU0gaW5kZXBlbmRlbnQgcGFydCBvZiB0aGUgZGVzY3JpcHRvciAqLwogCi0JQnVmZmVy CQl4c19jYnVmOwkJLyogY3VycmVudCBoZWFwIGJ1ZmZlciBpbiBzY2FuLCBpZiBhbnkgKi8KLQkv KiBOQjogaWYgeHNfY2J1ZiBpcyBub3QgSW52YWxpZEJ1ZmZlciwgd2UgaG9sZCBhIHBpbiBvbiB0 aGF0IGJ1ZmZlciAqLworCS8qCisJICogQ3VycmVudCBoZWFwIGJ1ZmZlciBpbiBzY2FuLCBpZiBh bnkuIE5COiBpZiB4c19jYnVmIGlzIG5vdAorCSAqIEludmFsaWRCdWZmZXIsIHdlIGhvbGQgYSBw aW4gb24gdGhhdCBidWZmZXIuCisJICovCisJQnVmZmVyCQl4c19jYnVmOworCisJLyoKKwkgKiBG b3IgaW5kZXggc2NhbnMgdGhhdCBkbyBub3QgbW9kaWZ5IHRoZSB1bmRlcmx5aW5nIGhlYXAgdGFi bGUsIG9uLWFjY2VzcworCSAqIHBydW5pbmcgbWF5IHJlYWQgaW4gdGhlIGN1cnJlbnQgaGVhcCBw YWdlJ3MgY29ycmVzcG9uZGluZyBWTSBibG9jayB0bworCSAqIHRoaXMgYnVmZmVyLgorCSAqLwor CUJ1ZmZlcgkJeHNfdm1idWZmZXI7CiB9IEluZGV4RmV0Y2hIZWFwRGF0YTsKIAogLyogUmVzdWx0 IGNvZGVzIGZvciBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0gKi8KQEAgLTM2Myw3ICszODAsOCBA QCBleHRlcm4gVHJhbnNhY3Rpb25JZCBoZWFwX2luZGV4X2RlbGV0ZV90dXBsZXMoUmVsYXRpb24g cmVsLAogCiAvKiBpbiBoZWFwL3BydW5laGVhcC5jICovCiBzdHJ1Y3QgR2xvYmFsVmlzU3RhdGU7 Ci1leHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZm ZXIgYnVmZmVyKTsKK2V4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVs YXRpb24sIEJ1ZmZlciBidWZmZXIsCisJCQkJCQkJCUJ1ZmZlciAqdm1idWZmZXIpOwogZXh0ZXJu IHZvaWQgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZl ciBidWZmZXIsCiAJCQkJCQkJCQkgICBCdWZmZXIgdm1idWZmZXIsIGJvb2wgYmxrX2tub3duX2F2 LAogCQkJCQkJCQkJICAgUHJ1bmVSZWFzb24gcmVhc29uLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvYWNjZXNzL3JlbHNjYW4uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmgKaW5kZXgg YjVlMGZiMzg2YzAuLmY0OTZlMGI0OTM5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv cmVsc2Nhbi5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmgKQEAgLTEyMSw2ICsx MjEsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYWxsZWxCbG9ja1RhYmxlU2NhbldvcmtlckRhdGEg KlBhcmFsbGVsQmxvY2tUYWJsZVNjYW5Xb3JrZXI7CiB0eXBlZGVmIHN0cnVjdCBJbmRleEZldGNo VGFibGVEYXRhCiB7CiAJUmVsYXRpb24JcmVsOworCisJLyoKKwkgKiBTb21lIG9wdGltaXphdGlv bnMgY2FuIG9ubHkgYmUgcGVyZm9ybWVkIGlmIHRoZSBxdWVyeSBkb2VzIG5vdCBtb2RpZnkKKwkg KiB0aGUgdW5kZXJseWluZyByZWxhdGlvbi4gVHJhY2sgdGhhdCBoZXJlLgorCSAqLworCWJvb2wJ CW1vZGlmaWVzX2Jhc2VfcmVsOwogfSBJbmRleEZldGNoVGFibGVEYXRhOwogCiBzdHJ1Y3QgSW5k ZXhTY2FuSW5zdHJ1bWVudGF0aW9uOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Rh YmxlYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKaW5kZXggNzdlYjQxZWI2ZGMu LjZmNWQ0ZjliYjY1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCisr KyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKQEAgLTYyLDYgKzYyLDggQEAgdHlwZWRl ZiBlbnVtIFNjYW5PcHRpb25zCiAKIAkvKiB1bnJlZ2lzdGVyIHNuYXBzaG90IGF0IHNjYW4gZW5k PyAqLwogCVNPX1RFTVBfU05BUFNIT1QgPSAxIDw8IDksCisJLyogd2hldGhlciBvciBub3Qgc2Nh biBzaG91bGQgYXR0ZW1wdCB0byBzZXQgdGhlIFZNICovCisJU09fQUxMT1dfVk1fU0VUID0gMSA8 PCAxMCwKIH0JCQlTY2FuT3B0aW9uczsKIAogLyoKQEAgLTg4MSw2ICs4ODMsMjUgQEAgdGFibGVf YmVnaW5zY2FuKFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsCiAJcmV0dXJuIHJlbC0+ cmRfdGFibGVhbS0+c2Nhbl9iZWdpbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLCBm bGFncyk7CiB9CiAKKy8qCisgKiBTaW1pbGFyIHRvIHRhYmxlX2JlZ2luc2NhbigpLCBidXQgYWxs b3dzIHRoZSBjYWxsZXIgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUKKyAqIHF1ZXJ5IG1vZGlmaWVz IHRoZSByZWxhdGlvbi4gVGhpcyBpcyB1c2VkIHdoZW4gdGhlIGNhbGxlciB3YW50cyB0byBhdHRl bXB0CisgKiBtYXJraW5nIHBhZ2VzIGluIHRoZSByZWxhdGlvbiBhcyBhbGwtdmlzaWJsZSBpbiB0 aGUgdmlzaWJpbGl0eSBtYXAgZHVyaW5nCisgKiBvbi1hY2Nlc3MgcHJ1bmluZy4KKyAqLworc3Rh dGljIGlubGluZSBUYWJsZVNjYW5EZXNjCit0YWJsZV9iZWdpbnNjYW5fdm1zZXQoUmVsYXRpb24g cmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKKwkJCQkJICBpbnQgbmtleXMsIHN0cnVjdCBTY2FuS2V5 RGF0YSAqa2V5LCBib29sIG1vZGlmaWVzX3JlbCkKK3sKKwl1aW50MzIJCWZsYWdzID0gU09fVFlQ RV9TRVFTQ0FOIHwKKwkJU09fQUxMT1dfU1RSQVQgfCBTT19BTExPV19TWU5DIHwgU09fQUxMT1df UEFHRU1PREU7CisKKwlpZiAoIW1vZGlmaWVzX3JlbCkKKwkJZmxhZ3MgfD0gU09fQUxMT1dfVk1f U0VUOworCisJcmV0dXJuIHJlbC0+cmRfdGFibGVhbS0+c2Nhbl9iZWdpbihyZWwsIHNuYXBzaG90 LCBua2V5cywga2V5LCBOVUxMLCBmbGFncyk7Cit9CisKIC8qCiAgKiBMaWtlIHRhYmxlX2JlZ2lu c2NhbigpLCBidXQgZm9yIHNjYW5uaW5nIGNhdGFsb2cuIEl0J2xsIGF1dG9tYXRpY2FsbHkgdXNl IGEKICAqIHNuYXBzaG90IGFwcHJvcHJpYXRlIGZvciBzY2FubmluZyBjYXRhbG9nIHJlbGF0aW9u cy4KQEAgLTkxOCwxMCArOTM5LDEzIEBAIHRhYmxlX2JlZ2luc2Nhbl9zdHJhdChSZWxhdGlvbiBy ZWwsIFNuYXBzaG90IHNuYXBzaG90LAogICovCiBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MK IHRhYmxlX2JlZ2luc2Nhbl9ibShSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAotCQkJ CSAgIGludCBua2V5cywgc3RydWN0IFNjYW5LZXlEYXRhICprZXkpCisJCQkJICAgaW50IG5rZXlz LCBzdHJ1Y3QgU2NhbktleURhdGEgKmtleSwgYm9vbCBtb2RpZmllc19yZWwpCiB7CiAJdWludDMy CQlmbGFncyA9IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOwogCisJaWYg KCFtb2RpZmllc19yZWwpCisJCWZsYWdzIHw9IFNPX0FMTE9XX1ZNX1NFVDsKKwogCXJldHVybiBy ZWwtPnJkX3RhYmxlYW0tPnNjYW5fYmVnaW4ocmVsLCBzbmFwc2hvdCwgbmtleXMsIGtleSwKIAkJ CQkJCQkJCSAgIE5VTEwsIGZsYWdzKTsKIH0KQEAgLTExMzAsNiArMTE1NCwxMCBAQCBleHRlcm4g dm9pZCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZShSZWxhdGlvbiByZWwsCiBleHRlcm4g VGFibGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24s CiAJCQkJCQkJCQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKTsKIAorZXh0ZXJuIFRh YmxlU2NhbkRlc2MgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3Ztc2V0KFJlbGF0aW9uIHJlbGF0 aW9uLAorCQkJCQkJCQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKKwkJCQkJCQkJ CQkJCQlib29sIG1vZGlmaWVzX3JlbCk7CisKIC8qCiAgKiBSZXN0YXJ0IGEgcGFyYWxsZWwgc2Nh bi4gIENhbGwgdGhpcyBpbiB0aGUgbGVhZGVyIHByb2Nlc3MuICBDYWxsZXIgaXMKICAqIHJlc3Bv bnNpYmxlIGZvciBtYWtpbmcgc3VyZSB0aGF0IGFsbCB3b3JrZXJzIGhhdmUgZmluaXNoZWQgdGhl IHNjYW4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggM2E5MjBjYzdkMTcuLmM4NTRiZTkzNDM2IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVk ZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNjc2LDYgKzY3NiwxMiBAQCB0eXBlZGVmIHN0cnVjdCBF U3RhdGUKIAkJCQkJCQkJCSAqIEV4ZWNEb0luaXRpYWxQcnVuaW5nKCkgKi8KIAljb25zdCBjaGFy ICplc19zb3VyY2VUZXh0OwkvKiBTb3VyY2UgdGV4dCBmcm9tIFF1ZXJ5RGVzYyAqLwogCisJLyoK KwkgKiBSVCBpbmRleGVzIG9mIHJlbGF0aW9ucyBtb2RpZmllZCBieSB0aGUgcXVlcnkgZWl0aGVy IHRocm91Z2gKKwkgKiBVUERBVEUvREVMRVRFL0lOU0VSVC9NRVJHRSBvciBTRUxFQ1QgRk9SIFVQ REFURQorCSAqLworCUJpdG1hcHNldCAgKmVzX21vZGlmaWVkX3JlbGlkczsKKwogCUp1bmtGaWx0 ZXIgKmVzX2p1bmtGaWx0ZXI7CS8qIHRvcC1sZXZlbCBqdW5rIGZpbHRlciwgaWYgYW55ICovCiAK IAkvKiBJZiBxdWVyeSBjYW4gaW5zZXJ0L2RlbGV0ZSB0dXBsZXMsIHRoZSBjb21tYW5kIElEIHRv IG1hcmsgdGhlbSB3aXRoICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9z dGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFu ZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwKaW5kZXggYzljMTgyODkyY2YuLmY1YzBjNjViMjYwIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2Rp bmcucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29k aW5nLnBsCkBAIC0yOTYsNiArMjk2LDcgQEAgd2FsX2xldmVsID0gJ2xvZ2ljYWwnCiBtYXhfcmVw bGljYXRpb25fc2xvdHMgPSA0CiBtYXhfd2FsX3NlbmRlcnMgPSA0CiBhdXRvdmFjdXVtID0gb2Zm Citob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9uCiB9KTsKICRub2RlX3ByaW1hcnktPmR1bXBfaW5m bzsKICRub2RlX3ByaW1hcnktPnN0YXJ0OwpAQCAtNzQ1LDcgKzc0Niw3IEBAIGNoZWNrX3BnX3Jl Y3Zsb2dpY2FsX3N0ZGVycigkaGFuZGxlLAogJGxvZ3N0YXJ0ID0gLXMgJG5vZGVfc3RhbmRieS0+ bG9nZmlsZTsKIAogcmVhY3RpdmVfc2xvdHNfY2hhbmdlX2hmc19hbmRfd2FpdF9mb3JfeG1pbnMo J3NoYXJlZF9yb3dfcmVtb3ZhbF8nLAotCSdub19jb25mbGljdF8nLCAwLCAxKTsKKwknbm9fY29u ZmxpY3RfJywgMSwgMCk7CiAKICMgVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBjb25mbGljdAog d2FpdF91bnRpbF92YWN1dW1fY2FuX3JlbW92ZSgKLS0gCjIuNDMuMAoK --0000000000003bcecc063f8f18f5 Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0023-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v15-0023-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfy8lbai22 RnJvbSAzZDMwMjQzYzYwYTM0YjNkZmQ2M2VmZjM4MWU4NjYyNmUwYzQ2NmU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgMjMvMjNdIFNldCBwZF9wcnVuZV94aWQgb24gaW5zZXJ0CgpOb3cgdGhhdCB3ZSBj YW4gc2V0IHRoZSBWTSBkdXJpbmcgcmVhZC1vbmx5IHF1ZXJpZXMsIGl0IG1ha2VzIHNlbnNlIHRv CnN0YXJ0IHNldHRpbmcgdGhlIHBhZ2UgcHJ1bmFibGUgaGludCBvbiBpbnNlcnQuIFRoaXMgd2ls bCBhbGxvdwpoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIHRvIGJlIGNhbGxlZCB3aGVuIHRo ZSBwYWdlIGlzIGZ1bGwgb3IKbW9zdGx5IGZ1bGwuCgpGb3IgeWVhcnMgdGhlcmUgaGFzIGJlZW4g YSBub3RlIGluIGhlYXBfaW5zZXJ0KCkgYW5kIGhlYXBfbXVsdGlfaW5zZXJ0KCkKcG9pbnRpbmcg b3V0IHRoYXQgc2V0dGluZyBwZF9wcnVuZV94aWQgd291bGQgaGVscCBjbGVhbiB1cCBhYm9ydGVk Cmluc2VydGVkIHR1cGxlcyB0aGF0IHdvdWxkIG90aGVyd2lzZSBub3QgYmUgY2xlYW5lZCB1cCB1 bnRpbCB2YWN1dW0uClNvLCB0aGF0J3MgYW5vdGhlciBiZW5lZml0IG9mIHNldHRpbmcgaXQuCgpT ZXR0aW5nIHBkX3BydW5lX3hpZCBvbiBpbnNlcnQgY2F1c2VzIGEgcGFnZSB0byBiZSBwcnVuZWQg YW5kIHRoZW4Kd3JpdHRlbiBvdXQgd2hpY2ggdGhlbiBhZmZlY3RzIHRoZSByZXBvcnRlZCBudW1i ZXIgb2YgaGl0cyBpbiB0aGUKaW5kZXgta2lsbHR1cGxlcyBpc29sYXRpb24gdGVzdC4gVGhpcyBp cyBhIHF1aXJrIG9mIGhvdyBoaXRzIGFyZSB0cmFja2VkCndoaWNoIHNvbWV0aW1lcyBsZWFkcyB0 aGVtIHRvIGJlIGRvdWJsZSBjb3VudGVkLiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZQpmaXhlZCBv ciBjaGFuZ2VkIGluZGVwZW5kZW50bHkuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtLmMgICAgICAgICAgICAgIHwgMjUgKysrKysrKysrKysrKy0tLS0tLQogc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYyAgICAgICAgIHwgMTUgKysrKysrKysrKy0KIC4uLi9p c29sYXRpb24vZXhwZWN0ZWQvaW5kZXgta2lsbHR1cGxlcy5vdXQgICB8ICA2ICsrLS0tCiAzIGZp bGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtLmMKaW5kZXggNjE4MWUzNTVhYWYuLjE3MDQyNjk3MTVlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW0uYwpAQCAtMjEwNCw2ICsyMTA0LDcgQEAgaGVhcF9pbnNlcnQoUmVsYXRp b24gcmVsYXRpb24sIEhlYXBUdXBsZSB0dXAsIENvbW1hbmRJZCBjaWQsCiAJVHJhbnNhY3Rpb25J ZCB4aWQgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25JZCgpOwogCUhlYXBUdXBsZQloZWFwdHVwOwog CUJ1ZmZlcgkJYnVmZmVyOworCVBhZ2UJCXBhZ2U7CiAJQnVmZmVyCQl2bWJ1ZmZlciA9IEludmFs aWRCdWZmZXI7CiAJYm9vbAkJYWxsX3Zpc2libGVfY2xlYXJlZCA9IGZhbHNlOwogCkBAIC0yMTYz LDE1ICsyMTY0LDE5IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFwVHVwbGUg dHVwLCBDb21tYW5kSWQgY2lkLAogCX0KIAogCS8qCi0JICogWFhYIFNob3VsZCB3ZSBzZXQgUGFn ZVNldFBydW5hYmxlIG9uIHRoaXMgcGFnZSA/CisJICogU2V0IHBkX3BydW5lX3hpZCB0byB0cmln Z2VyIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgb25jZSB0aGUgcGFnZQorCSAqIGlzIGZ1 bGwgc28gdGhhdCB3ZSBjYW4gc2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlIGluIHRoZSBWTS4KIAkg KgotCSAqIFRoZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24gbWF5IGV2ZW50dWFsbHkgYWJvcnQgdGh1 cyBtYWtpbmcgdGhpcyB0dXBsZQotCSAqIERFQUQgYW5kIGhlbmNlIGF2YWlsYWJsZSBmb3IgcHJ1 bmluZy4gVGhvdWdoIHdlIGRvbid0IHdhbnQgdG8gb3B0aW1pemUKLQkgKiBmb3IgYWJvcnRzLCBp ZiBubyBvdGhlciB0dXBsZSBpbiB0aGlzIHBhZ2UgaXMgVVBEQVRFZC9ERUxFVEVkLCB0aGUKLQkg KiBhYm9ydGVkIHR1cGxlIHdpbGwgbmV2ZXIgYmUgcHJ1bmVkIHVudGlsIG5leHQgdmFjdXVtIGlz IHRyaWdnZXJlZC4KKwkgKiBTZXR0aW5nIHBkX3BydW5lX3hpZCBpcyBhbHNvIGhhbmR5IGlmIHRo ZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24KKwkgKiBldmVudHVhbGx5IGFib3J0cyBtYWtpbmcgdGhp cyB0dXBsZSBERUFEIGFuZCBoZW5jZSBhdmFpbGFibGUgZm9yCisJICogcHJ1bmluZy4gSWYgbm8g b3RoZXIgdHVwbGUgaW4gdGhpcyBwYWdlIGlzIFVQREFURWQvREVMRVRFZCwgdGhlIGFib3J0ZWQK KwkgKiB0dXBsZSB3b3VsZCBuZXZlciBvdGhlcndpc2UgYmUgcHJ1bmVkIHVudGlsIG5leHQgdmFj dXVtIGlzIHRyaWdnZXJlZC4KIAkgKgotCSAqIElmIHlvdSBkbyBhZGQgUGFnZVNldFBydW5hYmxl IGhlcmUsIGFkZCBpdCBpbiBoZWFwX3hsb2dfaW5zZXJ0IHRvby4KKwkgKiBEb24ndCBzZXQgaXQg aWYgd2UgYXJlIGluIGJvb3RzdHJhcCBtb2RlLCB0aG91Z2guCiAJICovCisJcGFnZSA9IEJ1ZmZl ckdldFBhZ2UoYnVmZmVyKTsKKwlpZiAoVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhpZCkpCisJCVBh Z2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOwogCiAJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CiAK QEAgLTIxODEsNyArMjE4Niw2IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFw VHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQl4bF9oZWFwX2luc2VydCB4bHJlYzsKIAkJeGxf aGVhcF9oZWFkZXIgeGxoZHI7CiAJCVhMb2dSZWNQdHIJcmVjcHRyOwotCQlQYWdlCQlwYWdlID0g QnVmZmVyR2V0UGFnZShidWZmZXIpOwogCQl1aW50OAkJaW5mbyA9IFhMT0dfSEVBUF9JTlNFUlQ7 CiAJCWludAkJCWJ1ZmZsYWdzID0gMDsKIApAQCAtMjU0NSw4ICsyNTQ5LDEzIEBAIGhlYXBfbXVs dGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLCBpbnQg bnR1cGxlcywKIAkJfQogCiAJCS8qCi0JCSAqIFhYWCBTaG91bGQgd2Ugc2V0IFBhZ2VTZXRQcnVu YWJsZSBvbiB0aGlzIHBhZ2UgPyBTZWUgaGVhcF9pbnNlcnQoKQorCQkgKiBTZXQgcGRfcHJ1bmVf eGlkLiBTZWUgaGVhcF9pbnNlcnQoKSBmb3IgbW9yZSBvbiB3aHkgd2UgZG8gdGhpcyB3aGVuCisJ CSAqIGluc2VydGluZyB0dXBsZXMuIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpZiB3ZSBhcmVuJ3Qg YWxyZWFkeQorCQkgKiBzZXR0aW5nIHRoZSBwYWdlIGZyb3plbiBpbiB0aGUgVk0uIFdlIGFsc28g ZG9uJ3Qgc2V0IGl0IGluCisJCSAqIGJvb3RzdHJhcCBtb2RlLgogCQkgKi8KKwkJaWYgKCFhbGxf ZnJvemVuX3NldCAmJiBUcmFuc2FjdGlvbklkSXNOb3JtYWwoeGlkKSkKKwkJCVBhZ2VTZXRQcnVu YWJsZShwYWdlLCB4aWQpOwogCiAJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCA1MDI1MTdmYTYyZS4uOGMyYTRhMmU4NDcg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNDczLDYgKzQ3MywxMiBA QCBoZWFwX3hsb2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWZyZWVzcGFj ZSA9IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKHBhZ2UpOyAvKiBuZWVkZWQgdG8gdXBkYXRlIEZTTSBi ZWxvdyAqLwogCisJCS8qCisJCSAqIFNldCB0aGUgcGFnZSBwcnVuYWJsZSB0byB0cmlnZ2VyIG9u LWFjY2VzcyBwcnVuaW5nIGxhdGVyIHdoaWNoIG1heQorCQkgKiBzZXQgdGhlIHBhZ2UgYWxsLXZp c2libGUgaW4gdGhlIFZNLgorCQkgKi8KKwkJUGFnZVNldFBydW5hYmxlKHBhZ2UsIFhMb2dSZWNH ZXRYaWQocmVjb3JkKSk7CisKIAkJUGFnZVNldExTTihwYWdlLCBsc24pOwogCiAJCWlmICh4bHJl Yy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQpCkBAIC02MjIsOSArNjI4 LDE2IEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJ CWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQpCiAJCQlQ YWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOwogCi0JCS8qIFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9T RVQgaW1wbGllcyB0aGF0IGFsbCB0dXBsZXMgYXJlIHZpc2libGUgKi8KKwkJLyoKKwkJICogWExI X0lOU0VSVF9BTExfRlJPWkVOX1NFVCBpbXBsaWVzIHRoYXQgYWxsIHR1cGxlcyBhcmUgdmlzaWJs ZS4gSWYKKwkJICogd2UgYXJlIG5vdCBzZXR0aW5nIHRoZSBwYWdlIGZyb3plbiwgdGhlbiBzZXQg dGhlIHBhZ2UncyBwcnVuYWJsZQorCQkgKiBoaW50IHNvIHRoYXQgd2UgdHJpZ2dlciBvbi1hY2Nl c3MgcHJ1bmluZyBsYXRlciB3aGljaCBtYXkgc2V0IHRoZQorCQkgKiBwYWdlIGFsbC12aXNpYmxl IGluIHRoZSBWTS4KKwkJICovCiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9G Uk9aRU5fU0VUKQogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CisJCWVsc2UKKwkJCVBhZ2VT ZXRQcnVuYWJsZShwYWdlLCBYTG9nUmVjR2V0WGlkKHJlY29yZCkpOwogCiAJCU1hcmtCdWZmZXJE aXJ0eShidWZmZXIpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9pbmRleC1raWxsdHVwbGVzLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9pbmRl eC1raWxsdHVwbGVzLm91dAppbmRleCBiZTdkZGQ3NTZlZi4uYjI5ZjI0MzRiMDAgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9pbmRleC1raWxsdHVwbGVzLm91dAorKysg Yi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvaW5kZXgta2lsbHR1cGxlcy5vdXQKQEAgLTU0 LDcgKzU0LDcgQEAgc3RlcCBmbHVzaDogU0VMRUNUIEZST00gcGdfc3RhdF9mb3JjZV9uZXh0X2Zs dXNoKCk7CiBzdGVwIHJlc3VsdDogU0VMRUNUIGhlYXBfYmxrc19yZWFkICsgaGVhcF9ibGtzX2hp dCAtIGNvdW50ZXIuaGVhcF9hY2Nlc3NlcyBBUyBuZXdfaGVhcF9hY2Nlc3NlcyBGUk9NIGNvdW50 ZXIsIHBnX3N0YXRpb19hbGxfdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAna2lsbF9wcmlvcl90dXBs ZSc7CiBuZXdfaGVhcF9hY2Nlc3NlcwogLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAg ICAxCisgICAgICAgICAgICAgICAgMgogKDEgcm93KQogCiBzdGVwIG1lYXN1cmU6IFVQREFURSBj b3VudGVyIFNFVCBoZWFwX2FjY2Vzc2VzID0gKFNFTEVDVCBoZWFwX2Jsa3NfcmVhZCArIGhlYXBf Ymxrc19oaXQgRlJPTSBwZ19zdGF0aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ2tpbGxf cHJpb3JfdHVwbGUnKTsKQEAgLTEzMCw3ICsxMzAsNyBAQCBzdGVwIGZsdXNoOiBTRUxFQ1QgRlJP TSBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKIHN0ZXAgcmVzdWx0OiBTRUxFQ1QgaGVhcF9i bGtzX3JlYWQgKyBoZWFwX2Jsa3NfaGl0IC0gY291bnRlci5oZWFwX2FjY2Vzc2VzIEFTIG5ld19o ZWFwX2FjY2Vzc2VzIEZST00gY291bnRlciwgcGdfc3RhdGlvX2FsbF90YWJsZXMgV0hFUkUgcmVs bmFtZSA9ICdraWxsX3ByaW9yX3R1cGxlJzsKIG5ld19oZWFwX2FjY2Vzc2VzCiAtLS0tLS0tLS0t LS0tLS0tLQotICAgICAgICAgICAgICAgIDEKKyAgICAgICAgICAgICAgICAyCiAoMSByb3cpCiAK IHN0ZXAgbWVhc3VyZTogVVBEQVRFIGNvdW50ZXIgU0VUIGhlYXBfYWNjZXNzZXMgPSAoU0VMRUNU IGhlYXBfYmxrc19yZWFkICsgaGVhcF9ibGtzX2hpdCBGUk9NIHBnX3N0YXRpb19hbGxfdGFibGVz IFdIRVJFIHJlbG5hbWUgPSAna2lsbF9wcmlvcl90dXBsZScpOwpAQCAtMjgzLDcgKzI4Myw3IEBA IHN0ZXAgZmx1c2g6IFNFTEVDVCBGUk9NIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOwogc3Rl cCByZXN1bHQ6IFNFTEVDVCBoZWFwX2Jsa3NfcmVhZCArIGhlYXBfYmxrc19oaXQgLSBjb3VudGVy LmhlYXBfYWNjZXNzZXMgQVMgbmV3X2hlYXBfYWNjZXNzZXMgRlJPTSBjb3VudGVyLCBwZ19zdGF0 aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ2tpbGxfcHJpb3JfdHVwbGUnOwogbmV3X2hl YXBfYWNjZXNzZXMKIC0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgMQorICAgICAg ICAgICAgICAgIDIKICgxIHJvdykKIAogc3RlcCBtZWFzdXJlOiBVUERBVEUgY291bnRlciBTRVQg aGVhcF9hY2Nlc3NlcyA9IChTRUxFQ1QgaGVhcF9ibGtzX3JlYWQgKyBoZWFwX2Jsa3NfaGl0IEZS T00gcGdfc3RhdGlvX2FsbF90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICdraWxsX3ByaW9yX3R1cGxl Jyk7Ci0tIAoyLjQzLjAKCg== --0000000000003bcecc063f8f18f5--