Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vT1qZ-00BgvA-0T for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Dec 2025 17:49:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vT1qX-005zqp-2U for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Dec 2025 17:49:58 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vT1pj-005uBJ-0i for pgsql-hackers@lists.postgresql.org; Tue, 09 Dec 2025 17:49:07 +0000 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vT1pd-0045J7-1y for pgsql-hackers@lists.postgresql.org; Tue, 09 Dec 2025 17:49:07 +0000 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-b72b495aa81so887722666b.2 for ; Tue, 09 Dec 2025 09:49:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765302541; x=1765907341; 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=Ba+HOIluifmC24iPotJoX85Dpim7l0cbiWCbFsBRrQY=; b=HZbQ7qyc826a4/f69nPia0AyDdokV88N6udmvAd+ZLzAV2lPG9Hrhj2Ci5hpJEaoE3 5Sf2mpt87F9W8I4KcRaebUGtXYuZ+oOUeDYtuyh6az4vSacw2X/eg0FrAONxnLhykxeY b4HmKhBxN3nahTbaFEzy+1avb+kq9kkQRH+yfY0crmSPaTEkCtpKqEuAwssjulTHlUMJ dnUehE646UkiZ6kDpAPwyQr5nQyl9/hzBdASbKtSMOJqE2UAfG5VGZOEChrJQycXGORU PUOmXr8CsfLNp2nM5MVbWVO4PavTRHzJ16EjDmIQGt/omNbG9vP3NImrmyQ0KIw/cGuv HLxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765302541; x=1765907341; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Ba+HOIluifmC24iPotJoX85Dpim7l0cbiWCbFsBRrQY=; b=r0GrUXZC+ZgGhbAW2Z+OSpUWfgJpY/7pfqQhY6HkuriHwKsZ/QkX3kgQv94J2LHStb ipBGvZHBPfAeArQ7v8eLEQLakSrfC9Q4IRtE9QKNajbD4LRkn+f7EJcEw4u6m0870TaX ymKgzb/HDQdxwzufdYCZkHo9Bj4EFWXFPHRvCl0tXvmmbYHXVUCuKxVINJ7nskRzxitN RLMRGifjNo6tLfyFq/hMoXbw/s5yBJS0YbOhgheXAR/jW8K5LobkayESnRgWNaAOi919 0AjiO2srS1yDFGclXDuJan6IkvnUXl4sEHmTbOgu80lQEIoae4netSWofviBWc84AluI l+nw== X-Forwarded-Encrypted: i=1; AJvYcCV89nqsus6qSA7ZeodWjqBw6zIbZUsI0mjq1pcmlBoXztWX6A0Q1wjCY4V+MN2LCOSHr07fs0nAP5/D7a5j@lists.postgresql.org X-Gm-Message-State: AOJu0Ywzqq/q81RVlh4r1TBPkLe1whD32IHjVn7Wz6J+2Ww9TbrYD35G kLxKqGxvmGEosUGsHhA6RgxhmwY4iigfVzDzX/ABqM24b706ApXLhb7NjJZpNqmW/nHtL41Nd8Q pzRfsHA5jFuLDUSA+R6iyaX667GCY8eM= X-Gm-Gg: ASbGncvoz/Q0esPG5vJa5enXkOdqSajnma8zmGOanwI7Tr0ayEk8Mm32qDR9pvTYsu2 8lRV7jjxFQ6pbFgDL7+WzMvnvnxDMMCf+E8sz1m9u1wDPXl5Ug48fYb5uhWTuNZy7ODNKerVHng tw4HjfJUXQMq3OKsKUngzvI02wF1ff1oybcuxUZkXs+792MJTy7RhQAFQ2Y60njmYqUnlm+VNP6 PJRa//mfXZNQiKYYinDBqhicuIxv+DtSwJ+xoRJ8XBB7KAvQJsPjIQ0tQLE7klQQ//BOc2Y X-Google-Smtp-Source: AGHT+IG9EMF+KYC2n/nfIpuuSi3NbZN/XkWdrI3toyL+sJzszwdtKiB3TMk752ipe+lW1bugE04mI5d+bPK3bzCQCUg= X-Received: by 2002:a17:907:6ea6:b0:b73:5131:c45b with SMTP id a640c23a62f3a-b7a242b1c23mr1205779866b.22.1765302540316; Tue, 09 Dec 2025 09:49:00 -0800 (PST) MIME-Version: 1.0 References: <2wk7jo4m4qwh5sn33pfgerdjfujebbccsmmlownybddbh6nawl@mdyyqpqzxjek> <9B2211B5-14B4-4C22-96BD-F7B32E577DB6@gmail.com> In-Reply-To: <9B2211B5-14B4-4C22-96BD-F7B32E577DB6@gmail.com> From: Melanie Plageman Date: Tue, 9 Dec 2025 12:48:45 -0500 X-Gm-Features: AQt7F2p-RYvfAds8vaJwsBX58-oXKcGvsUVfFFlY0S5c1DcgFhbLYrX8a2IdYRI Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Chao Li Cc: Andres Freund , Kirill Reshke , Robert Haas , Andrey Borodin , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="000000000000d68bb306458886ab" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d68bb306458886ab Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Dec 4, 2025 at 12:11=E2=80=AFAM Chao Li wr= ote: > > I resisted this patch again today. I reviewed 0001-0004, and got a few mo= re comments: Thanks for the review! v24 attached with updates you suggested as well as the bug fix described below. I realized my code didn't mark the heap buffer dirty if we were not modifying it (i.e. only setting the VM). This trips an assert in XLogRegisterBuffer() which requires that all buffers registered with the WAL machinery are marked dirty unless REGBUF_NO_CHANGE is passed. It wasn't possible to hit it in master because we unconditionally dirtied the buffer if we found the VM not set in find_next_unskippable_block() -- even if we made no changes to the heap buffer. But my refactoring only dirtied the heap buffer if we modified it (either pruning/freezing or setting PD_ALL_VISIBLE). In attached v24, I once again always dirty the heap buffer before registering it. We can't skip adding the heap buffer to the WAL chain even if we didn't modify it, because we use it to update the freespace map during recovery. We could pass REGBUF_NO_CHANGE when the heap buffer is completely unmodified. But the delicate special case logic doesn't seem worth the effort to maintain, as the only time the heap buffer should be unmodified is when the VM has been truncated or removed. I added a test to the commit doing this refactoring that would have caught my mistake (0003). I also split the refactoring of the VM setting logic into more commits to help make it clearer (0003-0004). We could technically commit the refactoring commits to master. I had not originally intended to do so since they do not have independent value beyond clarity for the reviewer. In this set 0001 and 0002 are independent. 0003-0007 are all small steps toward the single change in 0007 which combines the VM updates into the same WAL record as pruning and freezing. 0008 and 0009 are removing the rest of XLOG_HEAP2_VISIBLE. 0010 - 0012 are refactoring needed to set the VM during on-access pruning. 0013 - 0015 are small steps toward setting the VM on-access. And 0016 sets the prune xid on insert so we may set the VM on-access for pages that have only new data. > +static bool > +heap_page_will_set_vis(Relation relation, > > Actually, I wanted to comment on the new function name in last round of r= eview, but I guess I missed that. > > I was very confused what =E2=80=9Cset_vis=E2=80=9D means, and finally fig= ured out =E2=80=9Cvis=E2=80=9D should stand for =E2=80=9Cvisibility=E2=80= =9D. Here =E2=80=9Cvis=E2=80=9D actually means =E2=80=9Cvisibility map bits= =E2=80=9D. There is the other =E2=80=9Cvis=E2=80=9D in the last parameter= =E2=80=99s name =E2=80=9Cdo_set_pd_vis=E2=80=9D where the =E2=80=9Cvis=E2= =80=9D should be mean =E2=80=9CPD_ALL_VISIBLE=E2=80=9D bit. So the two =E2= =80=9Cvis=E2=80=9D feels making things confusing. > > How about rename the function to =E2=80=9Cheap_page_will_set_vm_bits=E2= =80=9D, and rename the last parameter to =E2=80=9Cdo_set_all_visible=E2=80= =9D? I named it that way because it was responsible for telling us what we should set the VM to _and_ if we should set PD_ALL_VISIBLE. However, once I corrected the bug mentioned above, we always set PD_ALL_VISIBLE if setting the VM, so I was able to remove this ambiguity. As such I've renamed the function heap_page_will_set_vm() (and removed the last parameter). > + * Decide whether to set the visibility map bits for heap_blk, using > + * information from PruneFreezeResult and all_visible_according_to_vm. T= his > + * function does not actually set the VM bit or page-level hint, > + * PD_ALL_VISIBLE. > + * > + * If it finds that the page-level visibility hint or VM is corrupted, i= t will > + * fix them by clearing the VM bit and page hint. This does not need to = be > + * done in a critical section. > + * > + * Returns true if one or both VM bits should be set, along with the des= ired > + * flags in *new_vmbits. Also indicates via do_set_pd_vis whether > + * PD_ALL_VISIBLE should be set on the heap page. > + */ > ``` > > This function comment mentions PD_ALL_VISIBLE twice, but never mentions A= LL_FROZEN. So =E2=80=9CReturns true if one or both VM bits should be set=E2= =80=9D fells unclear. How about rephrase like "Returns true if the all-visi= ble and/or all-frozen VM bits should be set.=E2=80=9D PD_ALL_VISIBLE is the page-level visibility hint (not the VM bit) and there is no page level frozen hint. It doesn't mention that the VM bits are all-visible and all-frozen, though, so I have modified the comment a bit to make sure the all-frozen bit of the VM is mentioned. > + * Now handle two potential corruption cases: > + * > + * These do not need to happen in a critical section and are not > + * WAL-logged. > + * > + * As of PostgreSQL 9.2, the visibility map bit should never be s= et if the > + * page-level bit is clear. However, it's possible that the bit = got > + * cleared after heap_vac_scan_next_block() was called, so we mus= t recheck > + * with buffer lock before concluding that the VM is corrupt. > + */ > + else if (all_visible_according_to_vm && !PageIsAllVisible(heap_pa= ge) && > + visibilitymap_get_status(relation, heap_blk, &vm= buffer) !=3D 0) > + { > + ereport(WARNING, > + (errcode(ERRCODE_DATA_CORRUPTED), > + errmsg("page is not marked all-visible b= ut visibility map bit is set in relation \"%s\" page %u", > + RelationGetRelationName(r= elation), heap_blk))); > + > + visibilitymap_clear(relation, heap_blk, vmbuffer, > + VISIBILITYMAP_VAL= ID_BITS); > + } > ``` > > Here in the comment and error message, I guess =E2=80=9Cvisibility map bi= t=E2=80=9D refers to =E2=80=9Call visible bit=E2=80=9D, can we be explicit? This is an existing comment in lazy_scan_prune() that I simply moved. It isn't valid for the all-frozen bit to be set unless the all-visible bit is set. I'm not sure whether specifying which bits were set in the warning will help users debug the corruption they are seeing. But I think it is a reasonable suggestion to make. Perhaps it is worth suggesting this (adding the specific vmbits to the warning message) in a separate thread since it is an independent improvement on master? - Melanie --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="US-ASCII"; name="v24-0001-Simplify-vacuum-visibility-assertion.patch" Content-Disposition: attachment; filename="v24-0001-Simplify-vacuum-visibility-assertion.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvdgr60 RnJvbSAwODY1MmUyNjI0MmFjZWI1MDQ4ZDM4NDIwOWI0OWZmNmQ0YjI4N2QzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTA6NDI6NTMgLTA1MDAKU3ViamVjdDogW1BB VENIIHYyNCAwMS8xNl0gU2ltcGxpZnkgdmFjdXVtIHZpc2liaWxpdHkgYXNzZXJ0aW9uCgpQaGFz ZSBJIHZhY3V1bSBnaXZlcyB0aGUgcGFnZSBhIG9uY2Utb3ZlciBhZnRlciBwcnVuaW5nIGFuZCBm cmVlemluZyB0bwpjaGVjayB0aGF0IHRoZSB2YWx1ZXMgb2YgYWxsX3Zpc2libGUgYW5kIGFsbF9m cm96ZW4gYWdyZWUgd2l0aCB0aGUKcmVzdWx0IG9mIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSgp LiBUaGlzIGlzIG1lYW50IHRvIGtlZXAgdGhlIGxvZ2ljIGluCnBoYXNlIEkgZm9yIGRldGVybWlu aW5nIHZpc2liaWxpdHkgaW4gc3luYyB3aXRoIHRoZSBsb2dpYyBpbiBwaGFzZSBJSUkuCgpSZXdy aXRlIHRoZSBhc3NlcnRpb24gdG8gYXZvaWQgYW4gQXNzZXJ0KGZhbHNlKS4KClN1Z2dlc3RlZCBi eSBBbmRyZXMgRnJldW5kLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YyB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggNjViYjA1NjhhODYu Ljk4NGQ1ODc5OTQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0yMDI4 LDEwICsyMDI4LDkgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAogCQlB c3NlcnQocHJlc3VsdC5scGRlYWRfaXRlbXMgPT0gMCk7CiAKLQkJaWYgKCFoZWFwX3BhZ2VfaXNf YWxsX3Zpc2libGUodmFjcmVsLT5yZWwsIGJ1ZiwKLQkJCQkJCQkJCSAgdmFjcmVsLT5jdXRvZmZz Lk9sZGVzdFhtaW4sICZkZWJ1Z19hbGxfZnJvemVuLAotCQkJCQkJCQkJICAmZGVidWdfY3V0b2Zm LCAmdmFjcmVsLT5vZmZudW0pKQotCQkJQXNzZXJ0KGZhbHNlKTsKKwkJQXNzZXJ0KGhlYXBfcGFn ZV9pc19hbGxfdmlzaWJsZSh2YWNyZWwtPnJlbCwgYnVmLAorCQkJCQkJCQkJCXZhY3JlbC0+Y3V0 b2Zmcy5PbGRlc3RYbWluLCAmZGVidWdfYWxsX2Zyb3plbiwKKwkJCQkJCQkJCQkmZGVidWdfY3V0 b2ZmLCAmdmFjcmVsLT5vZmZudW0pKTsKIAogCQlBc3NlcnQocHJlc3VsdC5hbGxfZnJvemVuID09 IGRlYnVnX2FsbF9mcm96ZW4pOwogCi0tIAoyLjQzLjAKCg== --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="US-ASCII"; name="v24-0002-Add-comment-about-PD_ALL_VISIBLE-and-VM-sync.patch" Content-Disposition: attachment; filename="v24-0002-Add-comment-about-PD_ALL_VISIBLE-and-VM-sync.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvdkxm1 RnJvbSAzM2UwNjM3NjFmMzBjMjNjZTkyM2VhNDg1ZWI5Y2I4NmFjZWUyZDkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDggRGVjIDIwMjUgMTc6MzI6NDkgLTA1MDAKU3ViamVjdDogW1BB VENIIHYyNCAwMi8xNl0gQWRkIGNvbW1lbnQgYWJvdXQgUERfQUxMX1ZJU0lCTEUgYW5kIFZNIHN5 bmMKClRoZSBjb21tZW50IGFib3ZlIGhlYXBfeGxvZ192aXNpYmxlKCkgYWJvdXQgdGhlIGNyaXRp Y2FsIGludGVncml0eQpyZXF1aXJlbWVudCBmb3IgUERfQUxMX1ZJU0lCTEUgYW5kIHRoZSB2aXNp YmlsaXR5IG1hcCBzaG91bGQgYWxzbyBiZSBpbgpoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKCkgd2hl cmUgd2Ugc2V0IFBEX0FMTF9WSVNJQkxFLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hl YXBhbV94bG9nLmMgfCA2ICsrKysrKwogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCmluZGV4IDExY2IzZjc0ZGE1Li5hMDlm YjRiODAzYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCkBAIC0xNTcsNiAr MTU3LDEyIEBAIGhlYXBfeGxvZ19wcnVuZV9mcmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAJCS8qIFRoZXJlIHNob3VsZCBiZSBubyBtb3JlIGRhdGEgKi8KIAkJQXNzZXJ0KChjaGFyICop IGZyel9vZmZzZXRzID09IGRhdGFwdHIgKyBkYXRhbGVuKTsKIAorCQkvKgorCQkgKiBUaGUgY3Jp dGljYWwgaW50ZWdyaXR5IHJlcXVpcmVtZW50IGhlcmUgaXMgdGhhdCB3ZSBtdXN0IG5ldmVyIGVu ZAorCQkgKiB1cCB3aXRoIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQgc2V0IGFuZCB0aGUgcGFnZS1s ZXZlbAorCQkgKiBQRF9BTExfVklTSUJMRSBiaXQgdW5zZXQuICBJZiB0aGF0IHdlcmUgdG8gb2Nj dXIsIGEgc3Vic2VxdWVudCBwYWdlCisJCSAqIG1vZGlmaWNhdGlvbiB3b3VsZCBmYWlsIHRvIGNs ZWFyIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQuCisJCSAqLwogCQlpZiAodm1mbGFncyAmIFZJU0lC SUxJVFlNQVBfVkFMSURfQklUUykKIAkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwogCi0tIAoy LjQzLjAKCg== --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="US-ASCII"; name="v24-0003-Combine-visibilitymap_set-cases-in-lazy_scan_pru.patch" Content-Disposition: attachment; filename="v24-0003-Combine-visibilitymap_set-cases-in-lazy_scan_pru.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvdpg12 RnJvbSBlZDg4MDdiNTA5OWEwMDY2ODgxYzhiOGUxNjkwMTAwZmE3MWYyZTkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDggRGVjIDIwMjUgMTU6NDk6NTQgLTA1MDAKU3ViamVjdDogW1BB VENIIHYyNCAwMy8xNl0gQ29tYmluZSB2aXNpYmlsaXR5bWFwX3NldCgpIGNhc2VzIGluCiBsYXp5 X3NjYW5fcHJ1bmUoKQoKVGhlIGhlYXAgYnVmZmVyIGlzIHVuY29uZGl0aW9uYWxseSBhZGRlZCB0 byB0aGUgV0FMIGNoYWluIHdoZW4gc2V0dGluZwp0aGUgVk0sIHNvIGl0IG11c3QgYWx3YXlzIGJl IG1hcmtlZCBkaXJ0eS4KCkluIG9uZSBvZiB0aGUgY2FzZXMgaW4gbGF6eV9zY2FuX3BydW5lKCks IHdlIHRyeSB0byBhdm9pZCBzZXR0aW5nClBEX0FMTF9WSVNJQkxFIGFuZCBtYXJraW5nIHRoZSBi dWZmZXIgZGlydHkgYWdhaW4gaWYgUERfQUxMX1ZJU0lCTEUgaXMKYWxyZWFkeSBzZXQuIFRoZXJl IGlzIGxpdHRsZSBnYWluIGhlcmUsIGFuZCBpZiB3ZSBlbGltaW5hdGUgdGhhdApjb25kaXRpb24s IHdlIGNhbiBlYXNpbHkgY29tYmluZSB0aGUgdHdvIGNhc2VzIHdoaWNoIHNldCB0aGUgVk0gaW4K bGF6eV9zY2FuX3BydW5lKCkuIFRoaXMgaXMgbW9yZSBzdHJhaWdodGZvcndhcmQgYW5kIG1ha2Vz IGl0IGNsZWFyIHRoYXQKdGhlIGhlYXAgYnVmZmVyIG11c3QgYmUgbWFya2VkIGRpcnR5IHNpbmNl IGl0IGlzIGFkZGVkIHRvIHRoZSBXQUwgY2hhaW4uCgpJbiB0aGUgcHJldmlvdXNseSBzZXBhcmF0 ZSBzZWNvbmQgVk0gc2V0IGNhc2UsIHRoZSBoZWFwIGJ1ZmZlciB3b3VsZAphbHdheXMgYmUgZGly dHkgYW55d2F5IC0tIGVpdGhlciBiZWNhdXNlIHdlIGp1c3QgZnJvemUgYSB0dXBsZSBhbmQKbWFy a2VkIHRoZSBidWZmZXIgZGlydHkgb3IgYmVjYXVzZSB3ZSBtb2RpZmllZCB0aGUgYnVmZmVyIGJl dHdlZW4KZmluZF9uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrKCkgYW5kIGhlYXBfcGFnZV9wcnVuZV9h bmRfZnJlZXplKCkgYW5kIHRoZW4KcHJ1bmVkIGl0IGluIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKCkuCgpUaGlzIGNvbW1pdCBhbHNvIGFkZHMgYSB0ZXN0IGNhc2UgdG8gZW5zdXJlIHdlIGRv bid0IGFkZCBjb2RlCnJlc3VsdGluZyBpbiB0aGUgaGVhcCBidWZmZXIgbm90IGJlaW5nIG1hcmtl ZCBkaXJ0eSBiZWZvcmUgYmVpbmcKYWRkZWQgdG8gdGhlIFdBTCBjaGFpbi4KClhYWDogaXMgaXQg b2theSB0byBkbyBhIGNoZWNrcG9pbnQgaW4gdGhlIHBnX3Zpc2liaWxpdHkgdGVzdD8KLS0tCiAu Li4vcGdfdmlzaWJpbGl0eS9leHBlY3RlZC9wZ192aXNpYmlsaXR5Lm91dCAgfCAxMyArKysKIGNv bnRyaWIvcGdfdmlzaWJpbGl0eS9zcWwvcGdfdmlzaWJpbGl0eS5zcWwgICB8ICA5ICsrCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCA5NSArKysrLS0tLS0t LS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDc0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdmlzaWJpbGl0eS9leHBlY3RlZC9wZ192aXNp YmlsaXR5Lm91dCBiL2NvbnRyaWIvcGdfdmlzaWJpbGl0eS9leHBlY3RlZC9wZ192aXNpYmlsaXR5 Lm91dAppbmRleCAwOWZhNTkzM2EzNS4uYWRjMDExNjI4OTUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIv cGdfdmlzaWJpbGl0eS9leHBlY3RlZC9wZ192aXNpYmlsaXR5Lm91dAorKysgYi9jb250cmliL3Bn X3Zpc2liaWxpdHkvZXhwZWN0ZWQvcGdfdmlzaWJpbGl0eS5vdXQKQEAgLTIwNCw2ICsyMDQsMTkg QEAgc2VsZWN0IHBnX3RydW5jYXRlX3Zpc2liaWxpdHlfbWFwKCd0ZXN0X3BhcnRpdGlvbicpOwog IAogKDEgcm93KQogCistLSB0aGUgaGVhcCBidWZmZXIgbXVzdCBiZSBtYXJrZWQgZGlydHkgYmVm b3JlIGFkZGluZyBpdCB0byB0aGUgV0FMIGNoYWluIHdoZW4KKy0tIHNldHRpbmcgdGhlIFZNCitj cmVhdGUgdGFibGUgdGVzdF9oZWFwX2J1ZmZlcl9kaXJ0eShhIGludCk7CitpbnNlcnQgaW50byB0 ZXN0X2hlYXBfYnVmZmVyX2RpcnR5IHZhbHVlcyAoMSk7Cit2YWN1dW0gKGZyZWV6ZSkgdGVzdF9o ZWFwX2J1ZmZlcl9kaXJ0eTsKK2NoZWNrcG9pbnQ7CitzZWxlY3QgcGdfdHJ1bmNhdGVfdmlzaWJp bGl0eV9tYXAoJ3Rlc3RfaGVhcF9idWZmZXJfZGlydHknKTsKKyBwZ190cnVuY2F0ZV92aXNpYmls aXR5X21hcCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwordmFj dXVtIHRlc3RfaGVhcF9idWZmZXJfZGlydHk7CiAtLSB0ZXN0IGNvcHkgZnJlZXplCiBjcmVhdGUg dGFibGUgY29weWZyZWV6ZSAoYSBpbnQsIGIgY2hhcigxNTAwKSk7CiAtLSBsb2FkIGFsbCByb3dz IHZpYSBDT1BZIEZSRUVaRSBhbmQgZW5zdXJlIHRoYXQgYWxsIHBhZ2VzIGFyZSBzZXQgYWxsLXZp c2libGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdmlzaWJpbGl0eS9zcWwvcGdfdmlzaWJpbGl0 eS5zcWwgYi9jb250cmliL3BnX3Zpc2liaWxpdHkvc3FsL3BnX3Zpc2liaWxpdHkuc3FsCmluZGV4 IDVhZjA2ZWM1Yjc2Li4wY2RkMDg3YmFkYiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ192aXNpYmls aXR5L3NxbC9wZ192aXNpYmlsaXR5LnNxbAorKysgYi9jb250cmliL3BnX3Zpc2liaWxpdHkvc3Fs L3BnX3Zpc2liaWxpdHkuc3FsCkBAIC05NCw2ICs5NCwxNSBAQCBzZWxlY3QgY291bnQoKikgPiAw IGZyb20gcGdfdmlzaWJpbGl0eV9tYXBfc3VtbWFyeSgndGVzdF9wYXJ0aXRpb24nKTsKIHNlbGVj dCAqIGZyb20gcGdfY2hlY2tfZnJvemVuKCd0ZXN0X3BhcnRpdGlvbicpOyAtLSBob3BlZnVsbHkg bm9uZQogc2VsZWN0IHBnX3RydW5jYXRlX3Zpc2liaWxpdHlfbWFwKCd0ZXN0X3BhcnRpdGlvbicp OwogCistLSB0aGUgaGVhcCBidWZmZXIgbXVzdCBiZSBtYXJrZWQgZGlydHkgYmVmb3JlIGFkZGlu ZyBpdCB0byB0aGUgV0FMIGNoYWluIHdoZW4KKy0tIHNldHRpbmcgdGhlIFZNCitjcmVhdGUgdGFi bGUgdGVzdF9oZWFwX2J1ZmZlcl9kaXJ0eShhIGludCk7CitpbnNlcnQgaW50byB0ZXN0X2hlYXBf YnVmZmVyX2RpcnR5IHZhbHVlcyAoMSk7Cit2YWN1dW0gKGZyZWV6ZSkgdGVzdF9oZWFwX2J1ZmZl cl9kaXJ0eTsKK2NoZWNrcG9pbnQ7CitzZWxlY3QgcGdfdHJ1bmNhdGVfdmlzaWJpbGl0eV9tYXAo J3Rlc3RfaGVhcF9idWZmZXJfZGlydHknKTsKK3ZhY3V1bSB0ZXN0X2hlYXBfYnVmZmVyX2RpcnR5 OworCiAtLSB0ZXN0IGNvcHkgZnJlZXplCiBjcmVhdGUgdGFibGUgY29weWZyZWV6ZSAoYSBpbnQs IGIgY2hhcigxNTAwKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA5 ODRkNTg3OTk0Ny4uMTQwNDA1NTJlNDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKQEAgLTIwODAsMTUgKzIwODAsMjEgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZh Y3JlbCwKIAkgKiBvZiBsYXN0IGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIGNhbGwpLCBhbmQg ZnJvbSBhbGxfdmlzaWJsZSBhbmQKIAkgKiBhbGxfZnJvemVuIHZhcmlhYmxlcwogCSAqLwotCWlm ICghYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtICYmIHByZXN1bHQuYWxsX3Zpc2libGUpCisJ aWYgKChwcmVzdWx0LmFsbF92aXNpYmxlICYmICFhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0p IHx8CisJCShwcmVzdWx0LmFsbF9mcm96ZW4gJiYgIVZNX0FMTF9GUk9aRU4ocmVsLCBibGtubywg JnZtYnVmZmVyKSkpCiAJewogCQl1aW50OAkJb2xkX3ZtYml0czsKLQkJdWludDgJCWZsYWdzID0g VklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsKKwkJdWludDgJCW5ld192bWJpdHMgPSBWSVNJQklM SVRZTUFQX0FMTF9WSVNJQkxFOwogCiAJCWlmIChwcmVzdWx0LmFsbF9mcm96ZW4pCiAJCXsKKwkJ CS8qCisJCQkgKiBXZSBjYW4gcGFzcyBJbnZhbGlkVHJhbnNhY3Rpb25JZCBhcyBvdXIgY3V0b2Zm X3hpZCwgc2luY2UgYQorCQkJICogc25hcHNob3RDb25mbGljdEhvcml6b24gc3VmZmljaWVudCB0 byBtYWtlIGV2ZXJ5dGhpbmcgc2FmZSBmb3IKKwkJCSAqIFJFRE8gd2FzIGxvZ2dlZCB3aGVuIHRo ZSBwYWdlJ3MgdHVwbGVzIHdlcmUgZnJvemVuLgorCQkJICovCiAJCQlBc3NlcnQoIVRyYW5zYWN0 aW9uSWRJc1ZhbGlkKHByZXN1bHQudm1fY29uZmxpY3RfaG9yaXpvbikpOwotCQkJZmxhZ3MgfD0g VklTSUJJTElUWU1BUF9BTExfRlJPWkVOOworCQkJbmV3X3ZtYml0cyB8PSBWSVNJQklMSVRZTUFQ X0FMTF9GUk9aRU47CiAJCX0KIAogCQkvKgpAQCAtMjA5NywzNiArMjEwMywzNiBAQCBsYXp5X3Nj YW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkgKiBjaGVja3N1bXMgYXJlIG5vdCBlbmFi bGVkKS4gIFJlZ2FyZGxlc3MsIHNldCBib3RoIGJpdHMgc28gdGhhdCB3ZQogCQkgKiBnZXQgYmFj ayBpbiBzeW5jLgogCQkgKgotCQkgKiBOQjogSWYgdGhlIGhlYXAgcGFnZSBpcyBhbGwtdmlzaWJs ZSBidXQgdGhlIFZNIGJpdCBpcyBub3Qgc2V0LCB3ZQotCQkgKiBkb24ndCBuZWVkIHRvIGRpcnR5 IHRoZSBoZWFwIHBhZ2UuICBIb3dldmVyLCBpZiBjaGVja3N1bXMgYXJlCi0JCSAqIGVuYWJsZWQs IHdlIGRvIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGhlYXAgcGFnZSBpcyBkaXJ0aWVkCi0J CSAqIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHZpc2liaWxpdHltYXBfc2V0KCksIGJlY2F1c2UgaXQg bWF5IGJlIGxvZ2dlZC4KLQkJICogR2l2ZW4gdGhhdCB0aGlzIHNpdHVhdGlvbiBzaG91bGQgb25s eSBoYXBwZW4gaW4gcmFyZSBjYXNlcyBhZnRlciBhCi0JCSAqIGNyYXNoLCBpdCBpcyBub3Qgd29y dGggb3B0aW1pemluZy4KKwkJICogVGhlIGhlYXAgcGFnZSBpcyBhZGRlZCB0byB0aGUgV0FMIGNo YWluIGV2ZW4gaWYgaXQgd2Fzbid0IG1vZGlmaWVkLAorCQkgKiBzbyB3ZSBzdGlsbCBuZWVkIHRv IG1hcmsgaXQgZGlydHkuIFRoZSBvbmx5IHNjZW5hcmlvIHdoZXJlIGl0IGlzbid0CisJCSAqIG1v ZGlmaWVkIGluIHBoYXNlIEkgaXMgd2hlbiB0aGUgVk0gd2FzIHRydW5jYXRlZCBvciByZW1vdmVk LCB3aGljaAorCQkgKiBpc24ndCB3b3J0aCBvcHRpbWl6aW5nIGZvci4KIAkJICovCiAJCVBhZ2VT ZXRBbGxWaXNpYmxlKHBhZ2UpOwogCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKIAkJb2xkX3ZtYml0 cyA9IHZpc2liaWxpdHltYXBfc2V0KHZhY3JlbC0+cmVsLCBibGtubywgYnVmLAogCQkJCQkJCQkJ ICAgSW52YWxpZFhMb2dSZWNQdHIsCiAJCQkJCQkJCQkgICB2bWJ1ZmZlciwgcHJlc3VsdC52bV9j b25mbGljdF9ob3Jpem9uLAotCQkJCQkJCQkJICAgZmxhZ3MpOworCQkJCQkJCQkJICAgbmV3X3Zt Yml0cyk7CiAKIAkJLyoKLQkJICogSWYgdGhlIHBhZ2Ugd2Fzbid0IGFscmVhZHkgc2V0IGFsbC12 aXNpYmxlIGFuZC9vciBhbGwtZnJvemVuIGluIHRoZQotCQkgKiBWTSwgY291bnQgaXQgYXMgbmV3 bHkgc2V0IGZvciBsb2dnaW5nLgorCQkgKiBGb3IgdGhlIHB1cnBvc2VzIG9mIGxvZ2dpbmcsIGNv dW50IHdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIHdhcworCQkgKiBuZXdseSBzZXQgYWxsLXZpc2li bGUgYW5kLCBwb3RlbnRpYWxseSwgYWxsLWZyb3plbi4KIAkJICovCi0JCWlmICgob2xkX3ZtYml0 cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpID09IDApCisJCWlmICgob2xkX3ZtYml0cyAm IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpID09IDAgJiYKKwkJCShuZXdfdm1iaXRzICYgVklT SUJJTElUWU1BUF9BTExfVklTSUJMRSkgIT0gMCkKIAkJewogCQkJdmFjcmVsLT52bV9uZXdfdmlz aWJsZV9wYWdlcysrOwotCQkJaWYgKHByZXN1bHQuYWxsX2Zyb3plbikKKwkJCWlmICgobmV3X3Zt Yml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikgIT0gMCkKIAkJCXsKIAkJCQl2YWNyZWwt PnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcysrOwogCQkJCSp2bV9wYWdlX2Zyb3plbiA9IHRy dWU7CiAJCQl9CiAJCX0KIAkJZWxzZSBpZiAoKG9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FM TF9GUk9aRU4pID09IDAgJiYKLQkJCQkgcHJlc3VsdC5hbGxfZnJvemVuKQorCQkJCSAobmV3X3Zt Yml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikgIT0gMCkKIAkJeworCQkJQXNzZXJ0KChu ZXdfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSkgIT0gMCk7CiAJCQl2YWNyZWwt PnZtX25ld19mcm96ZW5fcGFnZXMrKzsKIAkJCSp2bV9wYWdlX2Zyb3plbiA9IHRydWU7CiAJCX0K QEAgLTIxNzcsNjUgKzIxODMsNiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVs LAogCQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CiAJfQogCi0JLyoKLQkgKiBJZiB0 aGUgYWxsLXZpc2libGUgcGFnZSBpcyBhbGwtZnJvemVuIGJ1dCBub3QgbWFya2VkIGFzIHN1Y2gg eWV0LCBtYXJrCi0JICogaXQgYXMgYWxsLWZyb3plbi4KLQkgKi8KLQllbHNlIGlmIChhbGxfdmlz aWJsZV9hY2NvcmRpbmdfdG9fdm0gJiYgcHJlc3VsdC5hbGxfZnJvemVuICYmCi0JCQkgIVZNX0FM TF9GUk9aRU4odmFjcmVsLT5yZWwsIGJsa25vLCAmdm1idWZmZXIpKQotCXsKLQkJdWludDgJCW9s ZF92bWJpdHM7Ci0KLQkJLyoKLQkJICogQXZvaWQgcmVseWluZyBvbiBhbGxfdmlzaWJsZV9hY2Nv cmRpbmdfdG9fdm0gYXMgYSBwcm94eSBmb3IgdGhlCi0JCSAqIHBhZ2UtbGV2ZWwgUERfQUxMX1ZJ U0lCTEUgYml0IGJlaW5nIHNldCwgc2luY2UgaXQgbWlnaHQgaGF2ZSBiZWNvbWUKLQkJICogc3Rh bGUgLS0gZXZlbiB3aGVuIGFsbF92aXNpYmxlIGlzIHNldAotCQkgKi8KLQkJaWYgKCFQYWdlSXNB bGxWaXNpYmxlKHBhZ2UpKQotCQl7Ci0JCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQkJCU1h cmtCdWZmZXJEaXJ0eShidWYpOwotCQl9Ci0KLQkJLyoKLQkJICogU2V0IHRoZSBwYWdlIGFsbC1m cm96ZW4gKGFuZCBhbGwtdmlzaWJsZSkgaW4gdGhlIFZNLgotCQkgKgotCQkgKiBXZSBjYW4gcGFz cyBJbnZhbGlkVHJhbnNhY3Rpb25JZCBhcyBvdXIgY3V0b2ZmX3hpZCwgc2luY2UgYQotCQkgKiBz bmFwc2hvdENvbmZsaWN0SG9yaXpvbiBzdWZmaWNpZW50IHRvIG1ha2UgZXZlcnl0aGluZyBzYWZl IGZvciBSRURPCi0JCSAqIHdhcyBsb2dnZWQgd2hlbiB0aGUgcGFnZSdzIHR1cGxlcyB3ZXJlIGZy b3plbi4KLQkJICovCi0JCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQocHJlc3VsdC52bV9j b25mbGljdF9ob3Jpem9uKSk7Ci0JCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3NldCh2YWNy ZWwtPnJlbCwgYmxrbm8sIGJ1ZiwKLQkJCQkJCQkJCSAgIEludmFsaWRYTG9nUmVjUHRyLAotCQkJ CQkJCQkJICAgdm1idWZmZXIsIEludmFsaWRUcmFuc2FjdGlvbklkLAotCQkJCQkJCQkJICAgVklT SUJJTElUWU1BUF9BTExfVklTSUJMRSB8Ci0JCQkJCQkJCQkgICBWSVNJQklMSVRZTUFQX0FMTF9G Uk9aRU4pOwotCi0JCS8qCi0JCSAqIFRoZSBwYWdlIHdhcyBsaWtlbHkgYWxyZWFkeSBzZXQgYWxs LXZpc2libGUgaW4gdGhlIFZNLiBIb3dldmVyLAotCQkgKiB0aGVyZSBpcyBhIHNtYWxsIGNoYW5j ZSB0aGF0IGl0IHdhcyBtb2RpZmllZCBzb21ldGltZSBiZXR3ZWVuCi0JCSAqIHNldHRpbmcgYWxs X3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtIGFuZCBjaGVja2luZyB0aGUgdmlzaWJpbGl0eQotCQkg KiBkdXJpbmcgcHJ1bmluZy4gQ2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBvbGRfdm1iaXRzIGFu eXdheSB0bwotCQkgKiBlbnN1cmUgdGhlIHZpc2liaWxpdHkgbWFwIGNvdW50ZXJzIHVzZWQgZm9y IGxvZ2dpbmcgYXJlIGFjY3VyYXRlLgotCQkgKi8KLQkJaWYgKChvbGRfdm1iaXRzICYgVklTSUJJ TElUWU1BUF9BTExfVklTSUJMRSkgPT0gMCkKLQkJewotCQkJdmFjcmVsLT52bV9uZXdfdmlzaWJs ZV9wYWdlcysrOwotCQkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMrKzsKLQkJ CSp2bV9wYWdlX2Zyb3plbiA9IHRydWU7Ci0JCX0KLQotCQkvKgotCQkgKiBXZSBhbHJlYWR5IGNo ZWNrZWQgdGhhdCB0aGUgcGFnZSB3YXMgbm90IHNldCBhbGwtZnJvemVuIGluIHRoZSBWTQotCQkg KiBhYm92ZSwgc28gd2UgZG9uJ3QgbmVlZCB0byB0ZXN0IHRoZSB2YWx1ZSBvZiBvbGRfdm1iaXRz LgotCQkgKi8KLQkJZWxzZQotCQl7Ci0JCQl2YWNyZWwtPnZtX25ld19mcm96ZW5fcGFnZXMrKzsK LQkJCSp2bV9wYWdlX2Zyb3plbiA9IHRydWU7Ci0JCX0KLQl9Ci0KIAlyZXR1cm4gcHJlc3VsdC5u ZGVsZXRlZDsKIH0KIAotLSAKMi40My4wCgo= --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="US-ASCII"; name="v24-0004-Refactor-lazy_scan_prune-VM-set-logic-into-helpe.patch" Content-Disposition: attachment; filename="v24-0004-Refactor-lazy_scan_prune-VM-set-logic-into-helpe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyve5r43 RnJvbSA4NDJkZDhkYTBjMzg0NDAzMTVkZTRlMDFiZGEwMjY5NzBiNDJkN2ViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIgRGVjIDIwMjUgMTM6MzY6MzkgLTA1MDAKU3ViamVjdDogW1BB VENIIHYyNCAwNC8xNl0gUmVmYWN0b3IgbGF6eV9zY2FuX3BydW5lKCkgVk0gc2V0IGxvZ2ljIGlu dG8gaGVscGVyCgpXaGlsZSB0aGlzIG1heSBub3QgYmUgYW4gaW1wcm92ZW1lbnQgb24gaXRzIG93 biwgZW5jYXBzdWxhdGluZyB0aGUgbG9naWMKZm9yIGRldGVybWluaW5nIHdoYXQgdG8gc2V0IHRo ZSBWTSBiaXRzIHRvIGluIGEgaGVscGVyIGlzIG9uZSBzdGVwCnRvd2FyZCBzZXR0aW5nIHRoZSBW TSBpbiBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYyB8IDIwOSArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxMjYgaW5zZXJ0aW9ucygrKSwgODMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDE0MDQwNTUyZTQ4Li41Nzc5NTBjMmY3NyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMTkzNCw2ICsxOTM0LDEwNCBA QCBjbXBPZmZzZXROdW1iZXJzKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCiAJcmV0dXJu IHBnX2NtcF91MTYoKihjb25zdCBPZmZzZXROdW1iZXIgKikgYSwgKihjb25zdCBPZmZzZXROdW1i ZXIgKikgYik7CiB9CiAKKworLyoKKyAqIERlY2lkZSB3aGV0aGVyIHRvIHNldCB0aGUgdmlzaWJp bGl0eSBtYXAgYml0cyAoYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4pCisgKiBmb3IgaGVhcF9i bGsgdXNpbmcgaW5mb3JtYXRpb24gZnJvbSBQcnVuZUZyZWV6ZVJlc3VsdCBhbmQKKyAqIGFsbF92 aXNpYmxlX2FjY29yZGluZ190b192bS4gVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBz ZXQgdGhlIFZNCisgKiBiaXRzIG9yIHBhZ2UtbGV2ZWwgdmlzaWJpbGl0eSBoaW50LCBQRF9BTExf VklTSUJMRS4KKyAqCisgKiBJZiBpdCBmaW5kcyB0aGF0IHRoZSBwYWdlLWxldmVsIHZpc2liaWxp dHkgaGludCBvciBWTSBpcyBjb3JydXB0ZWQsIGl0IHdpbGwKKyAqIGZpeCB0aGVtIGJ5IGNsZWFy aW5nIHRoZSBWTSBiaXRzIGFuZCB2aXNpYmlsaXR5IHBhZ2UgaGludC4gVGhpcyBkb2VzIG5vdAor ICogbmVlZCB0byBiZSBkb25lIGluIGEgY3JpdGljYWwgc2VjdGlvbi4KKyAqCisgKiBSZXR1cm5z IHRydWUgaWYgb25lIG9yIGJvdGggVk0gYml0cyBzaG91bGQgYmUgc2V0LCBhbG9uZyB3aXRoIHJl dHVybmluZworICogd2hhdCBiaXRzIHNob3VsZCBiZSBzZXQgaW4gdGhlIFZNIGluICpuZXdfdm1i aXRzLgorICovCitzdGF0aWMgYm9vbAoraGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFJlbGF0aW9uIHJl bGF0aW9uLAorCQkJCQkgIEJsb2NrTnVtYmVyIGhlYXBfYmxrLAorCQkJCQkgIEJ1ZmZlciBoZWFw X2J1ZiwKKwkJCQkJICBCdWZmZXIgdm1idWZmZXIsCisJCQkJCSAgYm9vbCBhbGxfdmlzaWJsZV9h Y2NvcmRpbmdfdG9fdm0sCisJCQkJCSAgY29uc3QgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQs CisJCQkJCSAgdWludDggKm5ld192bWJpdHMpCit7CisJUGFnZQkJaGVhcF9wYWdlID0gQnVmZmVy R2V0UGFnZShoZWFwX2J1Zik7CisKKwkqbmV3X3ZtYml0cyA9IDA7CisKKwkvKgorCSAqIERldGVy bWluZSB3aGF0IHRvIHNldCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0cyB0byBiYXNlZCBvbiBpbmZv cm1hdGlvbgorCSAqIGZyb20gdGhlIFZNIChhcyBvZiBsYXN0IGhlYXBfdmFjX3NjYW5fbmV4dF9i bG9jaygpIGNhbGwpLCBhbmQgZnJvbQorCSAqIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIHZh cmlhYmxlcy4KKwkgKi8KKwlpZiAoKHByZXN1bHQtPmFsbF92aXNpYmxlICYmICFhbGxfdmlzaWJs ZV9hY2NvcmRpbmdfdG9fdm0pIHx8CisJCShwcmVzdWx0LT5hbGxfZnJvemVuICYmICFWTV9BTExf RlJPWkVOKHJlbGF0aW9uLCBoZWFwX2JsaywgJnZtYnVmZmVyKSkpCisJeworCQkqbmV3X3ZtYml0 cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CisJCWlmIChwcmVzdWx0LT5hbGxfZnJvemVu KQorCQl7CisJCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHByZXN1bHQtPnZtX2NvbmZs aWN0X2hvcml6b24pKTsKKwkJCSpuZXdfdm1iaXRzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pF TjsKKwkJfQorCisJCXJldHVybiB0cnVlOworCX0KKworCS8qCisJICogTm93IGhhbmRsZSB0d28g cG90ZW50aWFsIGNvcnJ1cHRpb24gY2FzZXM6CisJICoKKwkgKiBUaGVzZSBkbyBub3QgbmVlZCB0 byBoYXBwZW4gaW4gYSBjcml0aWNhbCBzZWN0aW9uIGFuZCBhcmUgbm90CisJICogV0FMLWxvZ2dl ZC4KKwkgKgorCSAqIEFzIG9mIFBvc3RncmVTUUwgOS4yLCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0 IHNob3VsZCBuZXZlciBiZSBzZXQgaWYgdGhlCisJICogcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIu ICBIb3dldmVyLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJpdCBnb3QKKwkgKiBjbGVhcmVkIGFm dGVyIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIHdhcyBjYWxsZWQsIHNvIHdlIG11c3QgcmVj aGVjaworCSAqIHdpdGggYnVmZmVyIGxvY2sgYmVmb3JlIGNvbmNsdWRpbmcgdGhhdCB0aGUgVk0g aXMgY29ycnVwdC4KKwkgKi8KKwllbHNlIGlmIChhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0g JiYgIVBhZ2VJc0FsbFZpc2libGUoaGVhcF9wYWdlKSAmJgorCQkJIHZpc2liaWxpdHltYXBfZ2V0 X3N0YXR1cyhyZWxhdGlvbiwgaGVhcF9ibGssICZ2bWJ1ZmZlcikgIT0gMCkKKwl7CisJCWVyZXBv cnQoV0FSTklORywKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKKwkJCQkg ZXJybXNnKCJwYWdlIGlzIG5vdCBtYXJrZWQgYWxsLXZpc2libGUgYnV0IHZpc2liaWxpdHkgbWFw IGJpdCBpcyBzZXQgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAorCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pLCBoZWFwX2JsaykpKTsKKworCQl2aXNpYmlsaXR5bWFw X2NsZWFyKHJlbGF0aW9uLCBoZWFwX2Jsaywgdm1idWZmZXIsCisJCQkJCQkJVklTSUJJTElUWU1B UF9WQUxJRF9CSVRTKTsKKwl9CisKKwkvKgorCSAqIEl0J3MgcG9zc2libGUgZm9yIHRoZSB2YWx1 ZSByZXR1cm5lZCBieQorCSAqIEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQoKSB0 byBtb3ZlIGJhY2t3YXJkcywgc28gaXQncyBub3QKKwkgKiB3cm9uZyBmb3IgdXMgdG8gc2VlIHR1 cGxlcyB0aGF0IGFwcGVhciB0byBub3QgYmUgdmlzaWJsZSB0byBldmVyeW9uZQorCSAqIHlldCwg d2hpbGUgUERfQUxMX1ZJU0lCTEUgaXMgYWxyZWFkeSBzZXQuIFRoZSByZWFsIHNhZmUgeG1pbiB2 YWx1ZQorCSAqIG5ldmVyIG1vdmVzIGJhY2t3YXJkcywgYnV0IEdldE9sZGVzdE5vblJlbW92YWJs ZVRyYW5zYWN0aW9uSWQoKSBpcworCSAqIGNvbnNlcnZhdGl2ZSBhbmQgc29tZXRpbWVzIHJldHVy bnMgYSB2YWx1ZSB0aGF0J3MgdW5uZWNlc3NhcmlseSBzbWFsbCwKKwkgKiBzbyBpZiB3ZSBzZWUg dGhhdCBjb250cmFkaWN0aW9uIGl0IGp1c3QgbWVhbnMgdGhhdCB0aGUgdHVwbGVzIHRoYXQgd2UK KwkgKiB0aGluayBhcmUgbm90IHZpc2libGUgdG8gZXZlcnlvbmUgeWV0IGFjdHVhbGx5IGFyZSwg YW5kIHRoZQorCSAqIFBEX0FMTF9WSVNJQkxFIGZsYWcgaXMgY29ycmVjdC4KKwkgKgorCSAqIFRo ZXJlIHNob3VsZCBuZXZlciBiZSBMUF9ERUFEIGl0ZW1zIG9uIGEgcGFnZSB3aXRoIFBEX0FMTF9W SVNJQkxFIHNldCwKKwkgKiBob3dldmVyLgorCSAqLworCWVsc2UgaWYgKHByZXN1bHQtPmxwZGVh ZF9pdGVtcyA+IDAgJiYgUGFnZUlzQWxsVmlzaWJsZShoZWFwX3BhZ2UpKQorCXsKKwkJZXJlcG9y dChXQVJOSU5HLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAorCQkJCSBl cnJtc2coInBhZ2UgY29udGFpbmluZyBMUF9ERUFEIGl0ZW1zIGlzIG1hcmtlZCBhcyBhbGwtdmlz aWJsZSBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShyZWxhdGlvbiksIGhlYXBfYmxrKSkpOworCisJCVBhZ2VDbGVhckFsbFZpc2libGUo aGVhcF9wYWdlKTsKKwkJTWFya0J1ZmZlckRpcnR5KGhlYXBfYnVmKTsKKwkJdmlzaWJpbGl0eW1h cF9jbGVhcihyZWxhdGlvbiwgaGVhcF9ibGssIHZtYnVmZmVyLAorCQkJCQkJCVZJU0lCSUxJVFlN QVBfVkFMSURfQklUUyk7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCiAvKgogICoJbGF6eV9z Y2FuX3BydW5lKCkgLS0gbGF6eV9zY2FuX2hlYXAoKSBwcnVuaW5nIGFuZCBmcmVlemluZy4KICAq CkBAIC0xOTY0LDYgKzIwNjIsOSBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVs LAogCQkJCWJvb2wgKnZtX3BhZ2VfZnJvemVuKQogewogCVJlbGF0aW9uCXJlbCA9IHZhY3JlbC0+ cmVsOworCWJvb2wJCWRvX3NldF92bSA9IGZhbHNlOworCXVpbnQ4CQluZXdfdm1iaXRzID0gMDsK Kwl1aW50OAkJb2xkX3ZtYml0cyA9IDA7CiAJUHJ1bmVGcmVlemVSZXN1bHQgcHJlc3VsdDsKIAlQ cnVuZUZyZWV6ZVBhcmFtcyBwYXJhbXMgPSB7CiAJCS5yZWxhdGlvbiA9IHJlbCwKQEAgLTIwNzUs MzMgKzIxNzYsMjAgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAlBc3Nl cnQoIXByZXN1bHQuYWxsX3Zpc2libGUgfHwgISgqaGFzX2xwZGVhZF9pdGVtcykpOwogCUFzc2Vy dCghcHJlc3VsdC5hbGxfZnJvemVuIHx8IHByZXN1bHQuYWxsX3Zpc2libGUpOwogCi0JLyoKLQkg KiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQgYmFzZWQgb24gaW5mb3JtYXRpb24g ZnJvbSB0aGUgVk0gKGFzCi0JICogb2YgbGFzdCBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKSBj YWxsKSwgYW5kIGZyb20gYWxsX3Zpc2libGUgYW5kCi0JICogYWxsX2Zyb3plbiB2YXJpYWJsZXMK LQkgKi8KLQlpZiAoKHByZXN1bHQuYWxsX3Zpc2libGUgJiYgIWFsbF92aXNpYmxlX2FjY29yZGlu Z190b192bSkgfHwKLQkJKHByZXN1bHQuYWxsX2Zyb3plbiAmJiAhVk1fQUxMX0ZST1pFTihyZWws IGJsa25vLCAmdm1idWZmZXIpKSkKLQl7Ci0JCXVpbnQ4CQlvbGRfdm1iaXRzOwotCQl1aW50OAkJ bmV3X3ZtYml0cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7Ci0KLQkJaWYgKHByZXN1bHQu YWxsX2Zyb3plbikKLQkJewotCQkJLyoKLQkJCSAqIFdlIGNhbiBwYXNzIEludmFsaWRUcmFuc2Fj dGlvbklkIGFzIG91ciBjdXRvZmZfeGlkLCBzaW5jZSBhCi0JCQkgKiBzbmFwc2hvdENvbmZsaWN0 SG9yaXpvbiBzdWZmaWNpZW50IHRvIG1ha2UgZXZlcnl0aGluZyBzYWZlIGZvcgotCQkJICogUkVE TyB3YXMgbG9nZ2VkIHdoZW4gdGhlIHBhZ2UncyB0dXBsZXMgd2VyZSBmcm96ZW4uCi0JCQkgKi8K LQkJCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQocHJlc3VsdC52bV9jb25mbGljdF9ob3Jp em9uKSk7Ci0JCQluZXdfdm1iaXRzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKLQkJfQor CWRvX3NldF92bSA9IGhlYXBfcGFnZV93aWxsX3NldF92bShyZWwsCisJCQkJCQkJCQkgIGJsa25v LAorCQkJCQkJCQkJICBidWYsCisJCQkJCQkJCQkgIHZtYnVmZmVyLAorCQkJCQkJCQkJICBhbGxf dmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0sCisJCQkJCQkJCQkgICZwcmVzdWx0LAorCQkJCQkJCQkJ ICAmbmV3X3ZtYml0cyk7CiAKKwlpZiAoZG9fc2V0X3ZtKQorCXsKIAkJLyoKIAkJICogSXQgc2hv dWxkIG5ldmVyIGJlIHRoZSBjYXNlIHRoYXQgdGhlIHZpc2liaWxpdHkgbWFwIHBhZ2UgaXMgc2V0 CiAJCSAqIHdoaWxlIHRoZSBwYWdlLWxldmVsIGJpdCBpcyBjbGVhciwgYnV0IHRoZSByZXZlcnNl IGlzIGFsbG93ZWQgKGlmCi0JCSAqIGNoZWNrc3VtcyBhcmUgbm90IGVuYWJsZWQpLiAgUmVnYXJk bGVzcywgc2V0IGJvdGggYml0cyBzbyB0aGF0IHdlCi0JCSAqIGdldCBiYWNrIGluIHN5bmMuCisJ CSAqIGNoZWNrc3VtcyBhcmUgbm90IGVuYWJsZWQpLgogCQkgKgogCQkgKiBUaGUgaGVhcCBwYWdl IGlzIGFkZGVkIHRvIHRoZSBXQUwgY2hhaW4gZXZlbiBpZiBpdCB3YXNuJ3QgbW9kaWZpZWQsCiAJ CSAqIHNvIHdlIHN0aWxsIG5lZWQgdG8gbWFyayBpdCBkaXJ0eS4gVGhlIG9ubHkgc2NlbmFyaW8g d2hlcmUgaXQgaXNuJ3QKQEAgLTIxMTQsNzMgKzIyMDIsMjggQEAgbGF6eV9zY2FuX3BydW5lKExW UmVsU3RhdGUgKnZhY3JlbCwKIAkJCQkJCQkJCSAgIEludmFsaWRYTG9nUmVjUHRyLAogCQkJCQkJ CQkJICAgdm1idWZmZXIsIHByZXN1bHQudm1fY29uZmxpY3RfaG9yaXpvbiwKIAkJCQkJCQkJCSAg IG5ld192bWJpdHMpOwotCi0JCS8qCi0JCSAqIEZvciB0aGUgcHVycG9zZXMgb2YgbG9nZ2luZywg Y291bnQgd2hldGhlciBvciBub3QgdGhlIHBhZ2Ugd2FzCi0JCSAqIG5ld2x5IHNldCBhbGwtdmlz aWJsZSBhbmQsIHBvdGVudGlhbGx5LCBhbGwtZnJvemVuLgotCQkgKi8KLQkJaWYgKChvbGRfdm1i aXRzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSkgPT0gMCAmJgotCQkJKG5ld192bWJpdHMg JiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKSAhPSAwKQotCQl7Ci0JCQl2YWNyZWwtPnZtX25l d192aXNpYmxlX3BhZ2VzKys7Ci0JCQlpZiAoKG5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FM TF9GUk9aRU4pICE9IDApCi0JCQl7Ci0JCQkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMrKzsKLQkJCQkqdm1fcGFnZV9mcm96ZW4gPSB0cnVlOwotCQkJfQotCQl9Ci0JCWVsc2Ug aWYgKChvbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSA9PSAwICYmCi0JCQkJ IChuZXdfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSAhPSAwKQotCQl7Ci0JCQlB c3NlcnQoKG5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKSAhPSAwKTsKLQkJ CXZhY3JlbC0+dm1fbmV3X2Zyb3plbl9wYWdlcysrOwotCQkJKnZtX3BhZ2VfZnJvemVuID0gdHJ1 ZTsKLQkJfQogCX0KIAogCS8qCi0JICogQXMgb2YgUG9zdGdyZVNRTCA5LjIsIHRoZSB2aXNpYmls aXR5IG1hcCBiaXQgc2hvdWxkIG5ldmVyIGJlIHNldCBpZiB0aGUKLQkgKiBwYWdlLWxldmVsIGJp dCBpcyBjbGVhci4gIEhvd2V2ZXIsIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgYml0IGdvdAotCSAq IGNsZWFyZWQgYWZ0ZXIgaGVhcF92YWNfc2Nhbl9uZXh0X2Jsb2NrKCkgd2FzIGNhbGxlZCwgc28g d2UgbXVzdCByZWNoZWNrCi0JICogd2l0aCBidWZmZXIgbG9jayBiZWZvcmUgY29uY2x1ZGluZyB0 aGF0IHRoZSBWTSBpcyBjb3JydXB0LgorCSAqIEZvciB0aGUgcHVycG9zZXMgb2YgbG9nZ2luZywg Y291bnQgd2hldGhlciBvciBub3QgdGhlIHBhZ2Ugd2FzIG5ld2x5CisJICogc2V0IGFsbC12aXNp YmxlIGFuZCwgcG90ZW50aWFsbHksIGFsbC1mcm96ZW4uCiAJICovCi0JZWxzZSBpZiAoYWxsX3Zp c2libGVfYWNjb3JkaW5nX3RvX3ZtICYmICFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpICYmCi0JCQkg dmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVzKHZhY3JlbC0+cmVsLCBibGtubywgJnZtYnVmZmVyKSAh PSAwKQorCWlmICgob2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpID09IDAg JiYKKwkJKG5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKSAhPSAwKQogCXsK LQkJZXJlcG9ydChXQVJOSU5HLAotCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQp LAotCQkJCSBlcnJtc2coInBhZ2UgaXMgbm90IG1hcmtlZCBhbGwtdmlzaWJsZSBidXQgdmlzaWJp bGl0eSBtYXAgYml0IGlzIHNldCBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCi0JCQkJCQl2 YWNyZWwtPnJlbG5hbWUsIGJsa25vKSkpOwotCi0JCXZpc2liaWxpdHltYXBfY2xlYXIodmFjcmVs LT5yZWwsIGJsa25vLCB2bWJ1ZmZlciwKLQkJCQkJCQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMp OworCQl2YWNyZWwtPnZtX25ld192aXNpYmxlX3BhZ2VzKys7CisJCWlmICgobmV3X3ZtYml0cyAm IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikgIT0gMCkKKwkJeworCQkJdmFjcmVsLT52bV9uZXdf dmlzaWJsZV9mcm96ZW5fcGFnZXMrKzsKKwkJCSp2bV9wYWdlX2Zyb3plbiA9IHRydWU7CisJCX0K IAl9Ci0KLQkvKgotCSAqIEl0J3MgcG9zc2libGUgZm9yIHRoZSB2YWx1ZSByZXR1cm5lZCBieQot CSAqIEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQoKSB0byBtb3ZlIGJhY2t3YXJk cywgc28gaXQncyBub3QKLQkgKiB3cm9uZyBmb3IgdXMgdG8gc2VlIHR1cGxlcyB0aGF0IGFwcGVh ciB0byBub3QgYmUgdmlzaWJsZSB0byBldmVyeW9uZQotCSAqIHlldCwgd2hpbGUgUERfQUxMX1ZJ U0lCTEUgaXMgYWxyZWFkeSBzZXQuIFRoZSByZWFsIHNhZmUgeG1pbiB2YWx1ZQotCSAqIG5ldmVy IG1vdmVzIGJhY2t3YXJkcywgYnV0IEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQo KSBpcwotCSAqIGNvbnNlcnZhdGl2ZSBhbmQgc29tZXRpbWVzIHJldHVybnMgYSB2YWx1ZSB0aGF0 J3MgdW5uZWNlc3NhcmlseSBzbWFsbCwKLQkgKiBzbyBpZiB3ZSBzZWUgdGhhdCBjb250cmFkaWN0 aW9uIGl0IGp1c3QgbWVhbnMgdGhhdCB0aGUgdHVwbGVzIHRoYXQgd2UKLQkgKiB0aGluayBhcmUg bm90IHZpc2libGUgdG8gZXZlcnlvbmUgeWV0IGFjdHVhbGx5IGFyZSwgYW5kIHRoZQotCSAqIFBE X0FMTF9WSVNJQkxFIGZsYWcgaXMgY29ycmVjdC4KLQkgKgotCSAqIFRoZXJlIHNob3VsZCBuZXZl ciBiZSBMUF9ERUFEIGl0ZW1zIG9uIGEgcGFnZSB3aXRoIFBEX0FMTF9WSVNJQkxFIHNldCwKLQkg KiBob3dldmVyLgotCSAqLwotCWVsc2UgaWYgKHByZXN1bHQubHBkZWFkX2l0ZW1zID4gMCAmJiBQ YWdlSXNBbGxWaXNpYmxlKHBhZ2UpKQorCWVsc2UgaWYgKChvbGRfdm1iaXRzICYgVklTSUJJTElU WU1BUF9BTExfRlJPWkVOKSA9PSAwICYmCisJCQkgKG5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQ X0FMTF9GUk9aRU4pICE9IDApCiAJewotCQllcmVwb3J0KFdBUk5JTkcsCi0JCQkJKGVycmNvZGUo RVJSQ09ERV9EQVRBX0NPUlJVUFRFRCksCi0JCQkJIGVycm1zZygicGFnZSBjb250YWluaW5nIExQ X0RFQUQgaXRlbXMgaXMgbWFya2VkIGFzIGFsbC12aXNpYmxlIGluIHJlbGF0aW9uIFwiJXNcIiBw YWdlICV1IiwKLQkJCQkJCXZhY3JlbC0+cmVsbmFtZSwgYmxrbm8pKSk7Ci0KLQkJUGFnZUNsZWFy QWxsVmlzaWJsZShwYWdlKTsKLQkJTWFya0J1ZmZlckRpcnR5KGJ1Zik7Ci0JCXZpc2liaWxpdHlt YXBfY2xlYXIodmFjcmVsLT5yZWwsIGJsa25vLCB2bWJ1ZmZlciwKLQkJCQkJCQlWSVNJQklMSVRZ TUFQX1ZBTElEX0JJVFMpOworCQlBc3NlcnQoKG5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FM TF9WSVNJQkxFKSAhPSAwKTsKKwkJdmFjcmVsLT52bV9uZXdfZnJvemVuX3BhZ2VzKys7CisJCSp2 bV9wYWdlX2Zyb3plbiA9IHRydWU7CiAJfQogCiAJcmV0dXJuIHByZXN1bHQubmRlbGV0ZWQ7Ci0t IAoyLjQzLjAKCg== --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="UTF-8"; name="v24-0005-Set-the-VM-in-heap_page_prune_and_freeze.patch" Content-Disposition: attachment; filename="v24-0005-Set-the-VM-in-heap_page_prune_and_freeze.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvebzj4 RnJvbSAwZDQ5Y2RkNzgxM2UwMjk3OWI5ZTFiNzJlYjM0NGE5MzY4OGM1ZDZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIgRGVjIDIwMjUgMTU6MDc6NDIgLTA1MDAKU3ViamVjdDogW1BB VENIIHYyNCAwNS8xNl0gU2V0IHRoZSBWTSBpbiBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgp CgpUaGlzIGhhcyBubyBpbmRlcGVuZGVudCBiZW5lZml0LiBJdCBpcyBtZWFudCBmb3IgZWFzZSBv ZiByZXZpZXcuIEFzIG9mCnRoaXMgY29tbWl0LCB0aGVyZSBpcyBzdGlsbCBhIHNlcGFyYXRlIFdB TCByZWNvcmQgZW1pdHRlZCBmb3Igc2V0dGluZwp0aGUgVk0gYWZ0ZXIgcHJ1bmluZyBhbmQgZnJl ZXppbmcuIEJ1dCBpdCBpcyBlYXNpZXIgdG8gcmV2aWV3IGlmIG1vdmluZwp0aGUgbG9naWMgaW50 byBwcnVuZWhlYXAuYyBpcyBzZXBhcmF0ZSBmcm9tIHNldHRpbmcgdGhlIFZNIGluIHRoZSBzYW1l CldBTCByZWNvcmQuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgIHwg MjYzICsrKysrKysrKysrKysrKysrKysrKystLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jIHwgMTQ3ICstLS0tLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbS5oICAgICAgICAgIHwgIDI3ICsrKwogMyBmaWxlcyBjaGFuZ2VkLCAyNTQgaW5zZXJ0aW9u cygrKSwgMTgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5k ZXggY2E0NDIyNWExMGUuLmQ3ZjM2ZTI3NjRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYwpAQCAtMTksNyArMTksNyBAQAogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIK ICNpbmNsdWRlICJhY2Nlc3MvbXVsdGl4YWN0LmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0u aCIKLSNpbmNsdWRlICJhY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCIKKyNpbmNsdWRlICJhY2Nl c3MvdmlzaWJpbGl0eW1hcC5oIgogI2luY2x1ZGUgImFjY2Vzcy94bG9nLmgiCiAjaW5jbHVkZSAi YWNjZXNzL3hsb2dpbnNlcnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy92YWN1dW0uaCIKQEAgLTQ0 LDYgKzQ0LDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAlib29sCQltYXJrX3VudXNlZF9ub3c7CiAJLyog d2hldGhlciB0byBhdHRlbXB0IGZyZWV6aW5nIHR1cGxlcyAqLwogCWJvb2wJCWF0dGVtcHRfZnJl ZXplOworCS8qIHdoZXRoZXIgb3Igbm90IHRvIGF0dGVtcHQgdXBkYXRpbmcgdGhlIFZNICovCisJ Ym9vbAkJYXR0ZW1wdF91cGRhdGVfdm07CiAJc3RydWN0IFZhY3V1bUN1dG9mZnMgKmN1dG9mZnM7 CiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KQEAgLTE0MCwxNiArMTQyLDE3IEBAIHR5cGVkZWYgc3RydWN0CiAJICogYWxsX3Zpc2li bGUgYW5kIGFsbF9mcm96ZW4gaW5kaWNhdGUgaWYgdGhlIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJv emVuCiAJICogYml0cyBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgY2FuIGJlIHNldCBmb3IgdGhpcyBw YWdlIGFmdGVyIHBydW5pbmcuCiAJICoKLQkgKiB2aXNpYmlsaXR5X2N1dG9mZl94aWQgaXMgdGhl IG5ld2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLgotCSAqIFRoZSBjYWxsZXIg Y2FuIHVzZSBpdCBhcyB0aGUgY29uZmxpY3QgaG9yaXpvbiwgd2hlbiBzZXR0aW5nIHRoZSBWTQot CSAqIGJpdHMuICBJdCBpcyBvbmx5IHZhbGlkIGlmIHdlIGZyb3plIHNvbWUgdHVwbGVzLCBhbmQg YWxsX2Zyb3plbiBpcwotCSAqIHRydWUuCisJICogdmlzaWJpbGl0eV9jdXRvZmZfeGlkIGlzIHRo ZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZS4gSXQKKwkgKiBjYW4gYmUg dXNlZCBhcyB0aGUgY29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhlIFZNIG9yIHdoZW4K KwkgKiBmcmVlemluZyBhbGwgdGhlIHR1cGxlcyBvbiB0aGUgcGFnZS4gSXQgaXMgb25seSB2YWxp ZCB3aGVuIGFsbCB0aGUgbGl2ZQorCSAqIHR1cGxlcyBvbiB0aGUgcGFnZSBhcmUgYWxsLXZpc2li bGUuCiAJICoKIAkgKiBOT1RFOiBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBpbml0aWFsbHkg ZG9uJ3QgaW5jbHVkZSBMUF9ERUFEIGl0ZW1zLgogCSAqIFRoYXQncyBjb252ZW5pZW50IGZvciBo ZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIHRvIHVzZSB0aGVtIHRvCi0JICogZGVjaWRlIHdo ZXRoZXIgdG8gZnJlZXplIHRoZSBwYWdlIG9yIG5vdC4gIFRoZSBhbGxfdmlzaWJsZSBhbmQKLQkg KiBhbGxfZnJvemVuIHZhbHVlcyByZXR1cm5lZCB0byB0aGUgY2FsbGVyIGFyZSBhZGp1c3RlZCB0 byBpbmNsdWRlCi0JICogTFBfREVBRCBpdGVtcyBhZnRlciB3ZSBkZXRlcm1pbmUgd2hldGhlciB0 byBvcHBvcnR1bmlzdGljYWxseSBmcmVlemUuCisJICogZGVjaWRlIHdoZXRoZXIgdG8gb3Bwb3J0 dW5pc3RpY2FsbHkgZnJlZXplIHRoZSBwYWdlIG9yIG5vdC4gIFRoZQorCSAqIGFsbF92aXNpYmxl IGFuZCBhbGxfZnJvemVuIHZhbHVlcyB1bHRpbWF0ZWx5IHVzZWQgdG8gc2V0IHRoZSBWTSBhcmUK KwkgKiBhZGp1c3RlZCB0byBpbmNsdWRlIExQX0RFQUQgaXRlbXMgYWZ0ZXIgd2UgZGV0ZXJtaW5l IHdoZXRoZXIgb3Igbm90IHRvCisJICogb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXplLgogCSAqLwog CWJvb2wJCWFsbF92aXNpYmxlOwogCWJvb2wJCWFsbF9mcm96ZW47CkBAIC0xOTEsNiArMTk0LDEz IEBAIHN0YXRpYyB2b2lkIHBhZ2VfdmVyaWZ5X3JlZGlyZWN0cyhQYWdlIHBhZ2UpOwogc3RhdGlj IGJvb2wgaGVhcF9wYWdlX3dpbGxfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVm ZmVyLAogCQkJCQkJCQkgIGJvb2wgZGlkX3R1cGxlX2hpbnRfZnBpLCBib29sIGRvX3BydW5lLCBi b29sIGRvX2hpbnRfcHJ1bmUsCiAJCQkJCQkJCSAgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSk7CitzdGF0 aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUmVsYXRpb24gcmVsYXRpb24sCisJCQkJCQkJ CSAgQmxvY2tOdW1iZXIgaGVhcF9ibGssCisJCQkJCQkJCSAgQnVmZmVyIGhlYXBfYnVmLAorCQkJ CQkJCQkgIEJ1ZmZlciB2bWJ1ZmZlciwKKwkJCQkJCQkJICBib29sIGJsa19rbm93bl9hdiwKKwkJ CQkJCQkJICBjb25zdCBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKKwkJCQkJCQkJICB1aW50 OCAqbmV3X3ZtYml0cyk7CiAKIAogLyoKQEAgLTI4MCw2ICsyOTAsOCBAQCBoZWFwX3BhZ2VfcHJ1 bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyKQogCQkJUHJ1bmVGcmVlemVQ YXJhbXMgcGFyYW1zID0gewogCQkJCS5yZWxhdGlvbiA9IHJlbGF0aW9uLAogCQkJCS5idWZmZXIg PSBidWZmZXIsCisJCQkJLnZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlciwKKwkJCQkuYmxrX2tub3du X2F2ID0gZmFsc2UsCiAJCQkJLnJlYXNvbiA9IFBSVU5FX09OX0FDQ0VTUywKIAkJCQkub3B0aW9u cyA9IDAsCiAJCQkJLnZpc3Rlc3QgPSB2aXN0ZXN0LApAQCAtMzM4LDYgKzM1MCw4IEBAIHBydW5l X2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCS8qIGN1dG9mZnMgbXVz dCBiZSBwcm92aWRlZCBpZiB3ZSB3aWxsIGF0dGVtcHQgZnJlZXppbmcgKi8KIAlBc3NlcnQoIShw YXJhbXMtPm9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFKSB8fCBwYXJhbXMtPmN1dG9m ZnMpOwogCXByc3RhdGUtPmF0dGVtcHRfZnJlZXplID0gKHBhcmFtcy0+b3B0aW9ucyAmIEhFQVBf UEFHRV9QUlVORV9GUkVFWkUpICE9IDA7CisJcHJzdGF0ZS0+YXR0ZW1wdF91cGRhdGVfdm0gPQor CQkocGFyYW1zLT5vcHRpb25zICYgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTSkgIT0gMDsKIAlw cnN0YXRlLT5jdXRvZmZzID0gcGFyYW1zLT5jdXRvZmZzOwogCiAJLyoKQEAgLTM4Niw1MSArNDAw LDU0IEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCXBy c3RhdGUtPmZyel9jb25mbGljdF9ob3Jpem9uID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKIAkv KgotCSAqIFZhY3V1bSBtYXkgdXBkYXRlIHRoZSBWTSBhZnRlciB3ZSdyZSBkb25lLiAgV2UgY2Fu IGtlZXAgdHJhY2sgb2YKLQkgKiB3aGV0aGVyIHRoZSBwYWdlIHdpbGwgYmUgYWxsLXZpc2libGUg YW5kIGFsbC1mcm96ZW4gYWZ0ZXIgcHJ1bmluZyBhbmQKLQkgKiBmcmVlemluZyB0byBoZWxwIHRo ZSBjYWxsZXIgdG8gZG8gdGhhdC4KKwkgKiBUcmFjayB3aGV0aGVyIHRoZSBwYWdlIGNvdWxkIGJl IG1hcmtlZCBhbGwtdmlzaWJsZSBhbmQvb3IgYWxsLWZyb3plbi4KKwkgKiBUaGlzIGluZm9ybWF0 aW9uIGlzIHVzZWQgZm9yIG9wcG9ydHVuaXN0aWMgZnJlZXppbmcgYW5kIGZvciB1cGRhdGluZwor CSAqIHRoZSB2aXNpYmlsaXR5IG1hcCAoVk0pIGlmIHJlcXVlc3RlZCBieSB0aGUgY2FsbGVyLgog CSAqCi0JICogQ3VycmVudGx5LCBvbmx5IFZBQ1VVTSBzZXRzIHRoZSBWTSBiaXRzLiAgVG8gc2F2 ZSB0aGUgZWZmb3J0LCBvbmx5IGRvCi0JICogdGhlIGJvb2trZWVwaW5nIGlmIHRoZSBjYWxsZXIg bmVlZHMgaXQuICBDdXJyZW50bHksIHRoYXQncyB0aWVkIHRvCi0JICogSEVBUF9QQUdFX1BSVU5F X0ZSRUVaRSwgYnV0IGl0IGNvdWxkIGJlIGEgc2VwYXJhdGUgZmxhZyBpZiB5b3Ugd2FudGVkCi0J ICogdG8gdXBkYXRlIHRoZSBWTSBiaXRzIHdpdGhvdXQgYWxzbyBmcmVlemluZyBvciBmcmVlemUg d2l0aG91dCBhbHNvCi0JICogc2V0dGluZyB0aGUgVk0gYml0cy4KKwkgKiBDdXJyZW50bHksIG9u bHkgVkFDVVVNIHBlcmZvcm1zIGZyZWV6aW5nLCBidXQgb3RoZXIgY2FsbGVycyBtYXkgaW4gdGhl CisJICogZnV0dXJlLiBWaXNpYmlsaXR5IGJvb2trZWVwaW5nIGlzIHJlcXVpcmVkIG5vdCBqdXN0 IGZvciBzZXR0aW5nIHRoZSBWTQorCSAqIGJpdHMsIGJ1dCBhbHNvIGZvciBvcHBvcnR1bmlzdGlj IGZyZWV6aW5nOiB3ZSBvbmx5IGNvbnNpZGVyIGZyZWV6aW5nIGlmCisJICogdGhlIHBhZ2Ugd291 bGQgYmVjb21lIGFsbC1mcm96ZW4sIG9yIGlmIGl0IHdvdWxkIGJlIGFsbC1mcm96ZW4gZXhjZXB0 CisJICogZm9yIGRlYWQgdHVwbGVzIHRoYXQgVkFDVVVNIHdpbGwgcmVtb3ZlLiBJZiBhdHRlbXB0 X3VwZGF0ZV92bSBpcyBmYWxzZSwKKwkgKiB3ZSB3aWxsIG5vdCBzZXQgdGhlIFZNIGJpdCBldmVu IGlmIHRoZSBwYWdlIGlzIGZvdW5kIHRvIGJlIGFsbC12aXNpYmxlLgogCSAqCi0JICogSW4gYWRk aXRpb24gdG8gdGVsbGluZyB0aGUgY2FsbGVyIHdoZXRoZXIgaXQgY2FuIHNldCB0aGUgVk0gYml0 LCB3ZQotCSAqIGFsc28gdXNlICdhbGxfdmlzaWJsZScgYW5kICdhbGxfZnJvemVuJyBmb3Igb3Vy IG93biBkZWNpc2lvbi1tYWtpbmcuIElmCi0JICogdGhlIHdob2xlIHBhZ2Ugd291bGQgYmVjb21l IGZyb3plbiwgd2UgY29uc2lkZXIgb3Bwb3J0dW5pc3RpY2FsbHkKLQkgKiBmcmVlemluZyB0dXBs ZXMuICBXZSB3aWxsIG5vdCBiZSBhYmxlIHRvIGZyZWV6ZSB0aGUgd2hvbGUgcGFnZSBpZiB0aGVy ZQotCSAqIGFyZSB0dXBsZXMgcHJlc2VudCB0aGF0IGFyZSBub3QgdmlzaWJsZSB0byBldmVyeW9u ZSBvciBpZiB0aGVyZSBhcmUKLQkgKiBkZWFkIHR1cGxlcyB3aGljaCBhcmUgbm90IHlldCByZW1v dmFibGUuICBIb3dldmVyLCBkZWFkIHR1cGxlcyB3aGljaAotCSAqIHdpbGwgYmUgcmVtb3ZlZCBi eSB0aGUgZW5kIG9mIHZhY3V1bWluZyBzaG91bGQgbm90IHByZWNsdWRlIHVzIGZyb20KLQkgKiBv cHBvcnR1bmlzdGljYWxseSBmcmVlemluZy4gIEJlY2F1c2Ugb2YgdGhhdCwgd2UgZG8gbm90IGlt bWVkaWF0ZWx5Ci0JICogY2xlYXIgYWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4gd2hlbiB3ZSBz ZWUgTFBfREVBRCBpdGVtcy4gIFdlIGZpeAotCSAqIHRoYXQgYWZ0ZXIgc2Nhbm5pbmcgdGhlIGxp bmUgcG9pbnRlcnMuIFdlIG11c3QgY29ycmVjdCBhbGxfdmlzaWJsZSBhbmQKLQkgKiBhbGxfZnJv emVuIGJlZm9yZSB3ZSByZXR1cm4gdGhlbSB0byB0aGUgY2FsbGVyLCBzbyB0aGF0IHRoZSBjYWxs ZXIKLQkgKiBkb2Vzbid0IHNldCB0aGUgVk0gYml0cyBpbmNvcnJlY3RseS4KKwkgKiBJZiBIRUFQ X1BBR0VfUFJVTkVfVVBEQVRFX1ZNIGlzIHBhc3NlZCB3aXRob3V0IEhFQVBfUEFHRV9QUlVORV9G UkVFWkUsCisJICogcHJzdGF0ZS5hbGxfZnJvemVuIG11c3QgYmUgaW5pdGlhbGl6ZWQgdG8gZmFs c2UsIHNpbmNlIHdlIHdpbGwgbm90IGNhbGwKKwkgKiBoZWFwX3ByZXBhcmVfZnJlZXplX3R1cGxl KCkgZm9yIGVhY2ggdHVwbGUuCisJICoKKwkgKiBEZWFkIHR1cGxlcyB0aGF0IHdpbGwgYmUgcmVt b3ZlZCBieSB0aGUgZW5kIG9mIHZhY3V1bSBzaG91bGQgbm90CisJICogcHJldmVudCBvcHBvcnR1 bmlzdGljIGZyZWV6aW5nLiBUaGVyZWZvcmUsIHdlIGRvIG5vdCBjbGVhciBhbGxfdmlzaWJsZQor CSAqIGFuZCBhbGxfZnJvemVuIHdoZW4gd2UgZW5jb3VudGVyIExQX0RFQUQgaXRlbXMuIEluc3Rl YWQsIHdlIGNvcnJlY3QKKwkgKiB0aGVtIGFmdGVyIGRlY2lkaW5nIHdoZXRoZXIgdG8gZnJlZXpl LCBidXQgYmVmb3JlIHVwZGF0aW5nIHRoZSBWTSwgdG8KKwkgKiBhdm9pZCBzZXR0aW5nIHRoZSBW TSBiaXRzIGluY29ycmVjdGx5LgorCSAqCisJICogSWYgbmVpdGhlciBmcmVlemluZyBub3IgVk0g dXBkYXRlcyBhcmUgcmVxdWVzdGVkLCB3ZSBza2lwIHRoZSBleHRyYQorCSAqIGJvb2trZWVwaW5n LiBJbiB0aGlzIGNhc2UsIGluaXRpYWxpemluZyBhbGxfdmlzaWJsZSB0byBmYWxzZSBhbGxvd3MK KwkgKiBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKCkgdG8gYnlwYXNzIHVu bmVjZXNzYXJ5IHdvcmsuCiAJICovCiAJaWYgKHByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQogCXsK IAkJcHJzdGF0ZS0+YWxsX3Zpc2libGUgPSB0cnVlOwogCQlwcnN0YXRlLT5hbGxfZnJvemVuID0g dHJ1ZTsKIAl9CisJZWxzZSBpZiAocHJzdGF0ZS0+YXR0ZW1wdF91cGRhdGVfdm0pCisJeworCQlw cnN0YXRlLT5hbGxfdmlzaWJsZSA9IHRydWU7CisJCXByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxz ZTsKKwl9CiAJZWxzZQogCXsKLQkJLyoKLQkJICogSW5pdGlhbGl6aW5nIHRvIGZhbHNlIGFsbG93 cyBza2lwcGluZyB0aGUgd29yayB0byB1cGRhdGUgdGhlbSBpbgotCQkgKiBoZWFwX3BydW5lX3Jl Y29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKCkuCi0JCSAqLwogCQlwcnN0YXRlLT5hbGxfdmlzaWJs ZSA9IGZhbHNlOwogCQlwcnN0YXRlLT5hbGxfZnJvemVuID0gZmFsc2U7CiAJfQogCiAJLyoKLQkg KiBUaGUgdmlzaWJpbGl0eSBjdXRvZmYgeGlkIGlzIHRoZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1 cGxlcyBvbiB0aGUKLQkgKiBwYWdlLiAgSW4gdGhlIGNvbW1vbiBjYXNlLCB0aGlzIHdpbGwgYmUg c2V0IGFzIHRoZSBjb25mbGljdCBob3Jpem9uIHRoZQotCSAqIGNhbGxlciBjYW4gdXNlIGZvciB1 cGRhdGluZyB0aGUgVk0uICBJZiwgYXQgdGhlIGVuZCBvZiBmcmVlemluZyBhbmQKLQkgKiBwcnVu aW5nLCB0aGUgcGFnZSBpcyBhbGwtZnJvemVuLCB0aGVyZSBpcyBubyBwb3NzaWJpbGl0eSB0aGF0 IGFueQotCSAqIHJ1bm5pbmcgdHJhbnNhY3Rpb24gb24gdGhlIHN0YW5kYnkgZG9lcyBub3Qgc2Vl IHR1cGxlcyBvbiB0aGUgcGFnZSBhcwotCSAqIGFsbC12aXNpYmxlLCBzbyB0aGUgY29uZmxpY3Qg aG9yaXpvbiByZW1haW5zIEludmFsaWRUcmFuc2FjdGlvbklkLgorCSAqIFRoZSB2aXNpYmlsaXR5 IGN1dG9mZiB4aWQgaXMgdGhlIG5ld2VzdCB4bWluIG9mIGxpdmUsIGNvbW1pdHRlZCB0dXBsZXMK KwkgKiBvbGRlciB0aGFuIE9sZGVzdFhtaW4gb24gdGhlIHBhZ2UuIFRoaXMgZmllbGQgaXMgb25s eSBrZXB0IHVwLXRvLWRhdGUKKwkgKiBpZiB0aGUgcGFnZSBpcyBhbGwtdmlzaWJsZS4gQXMgc29v biBhcyBhIHR1cGxlIGlzIGVuY291bnRlcmVkIHRoYXQgaXMKKwkgKiBub3QgdmlzaWJsZSB0byBh bGwsIHRoaXMgZmllbGQgaXMgdW5tYWludGFpbmVkLiBBcyBsb25nIGFzIGl0IGlzCisJICogbWFp bnRhaW5lZCwgaXQgY2FuIGJlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBzbmFwc2hvdCBjb25mbGlj dCBob3Jpem9uCisJICogd2hlbiB1cGRhdGluZyB0aGUgVk0gYW5kL29yIGZyZWV6aW5nIGFsbCB0 aGUgdHVwbGVzIG9uIHRoZSBwYWdlLgogCSAqLwogCXByc3RhdGUtPnZpc2liaWxpdHlfY3V0b2Zm X3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogfQpAQCAtNzY1LDEwICs3ODIsMTE4IEBAIGhl YXBfcGFnZV93aWxsX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAly ZXR1cm4gZG9fZnJlZXplOwogfQogCisvKgorICogRGVjaWRlIHdoZXRoZXIgdG8gc2V0IHRoZSB2 aXNpYmlsaXR5IG1hcCBiaXRzIChhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbikKKyAqIGZvciBo ZWFwX2JsayB1c2luZyBpbmZvcm1hdGlvbiBmcm9tIFBydW5lRnJlZXplUmVzdWx0IGFuZCBibGtf a25vd25fYXYuCisgKiBTb21lIGNhbGxlcnMgbWF5IGFscmVhZHkgaGF2ZSBleGFtaW5lZCB0aGlz IHBhZ2XigJlzIFZNIGJpdHMgKGUuZy4sIFZBQ1VVTSBpbgorICogdGhlIHByZXZpb3VzIGhlYXBf dmFjX3NjYW5fbmV4dF9ibG9jaygpIGNhbGwpIGFuZCBjYW4gcGFzcyB0aGF0IGFsb25nIGFzCisg KiBibGtfa25vd25fYXYuIENhbGxlcnMgdGhhdCBoYXZlIG5vdCBwcmV2aW91c2x5IGNoZWNrZWQg dGhlIHBhZ2UncyBzdGF0dXMgaW4KKyAqIHRoZSBWTSBzaG91bGQgcGFzcyBmYWxzZSBmb3IgYmxr X2tub3duX2F2LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgYWN0dWFsbHkgc2V0IHRo ZSBWTSBiaXRzIG9yIHBhZ2UtbGV2ZWwgdmlzaWJpbGl0eQorICogaGludCwgUERfQUxMX1ZJU0lC TEUuCisgKgorICogSG93ZXZlciwgaWYgaXQgZmluZHMgdGhhdCB0aGUgcGFnZS1sZXZlbCB2aXNp YmlsaXR5IGhpbnQgb3IgVk0gaXMKKyAqIGNvcnJ1cHRlZCwgaXQgd2lsbCBmaXggdGhlbSBieSBj bGVhcmluZyB0aGUgVk0gYml0cyBhbmQgcGFnZSB2aXNpYmlsaXR5CisgKiBoaW50LiBUaGlzIGRv ZXMgbm90IG5lZWQgdG8gYmUgZG9uZSBpbiBhIGNyaXRpY2FsIHNlY3Rpb24uCisgKgorICogUmV0 dXJucyB0cnVlIGlmIG9uZSBvciBib3RoIFZNIGJpdHMgc2hvdWxkIGJlIHNldCwgYWxvbmcgd2l0 aCByZXR1cm5pbmcgdGhlCisgKiBkZXNpcmVkIHdoYXQgYml0cyBzaG91bGQgYmUgc2V0IGluIHRo ZSBWTSBpbiAqbmV3X3ZtYml0cy4KKyAqLworc3RhdGljIGJvb2wKK2hlYXBfcGFnZV93aWxsX3Nl dF92bShSZWxhdGlvbiByZWxhdGlvbiwKKwkJCQkJICBCbG9ja051bWJlciBoZWFwX2JsaywKKwkJ CQkJICBCdWZmZXIgaGVhcF9idWYsCisJCQkJCSAgQnVmZmVyIHZtYnVmZmVyLAorCQkJCQkgIGJv b2wgYmxrX2tub3duX2F2LAorCQkJCQkgIGNvbnN0IFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0 LAorCQkJCQkgIHVpbnQ4ICpuZXdfdm1iaXRzKQoreworCVBhZ2UJCWhlYXBfcGFnZSA9IEJ1ZmZl ckdldFBhZ2UoaGVhcF9idWYpOworCisJKm5ld192bWJpdHMgPSAwOworCisJLyoKKwkgKiBEZXRl cm1pbmUgd2hhdCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0cyBzaG91bGQgYmUgc2V0IHRvIHVzaW5n IHRoZQorCSAqIHZhbHVlcyBvZiBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBkZXRlcm1pbmVk IGR1cmluZworCSAqIHBydW5pbmcvZnJlZXppbmcuCisJICovCisJaWYgKChwcmVzdWx0LT5hbGxf dmlzaWJsZSAmJiAhYmxrX2tub3duX2F2KSB8fAorCQkocHJlc3VsdC0+YWxsX2Zyb3plbiAmJiAh Vk1fQUxMX0ZST1pFTihyZWxhdGlvbiwgaGVhcF9ibGssICZ2bWJ1ZmZlcikpKQorCXsKKwkJKm5l d192bWJpdHMgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOworCQlpZiAocHJlc3VsdC0+YWxs X2Zyb3plbikKKwkJeworCQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChwcmVzdWx0LT52 bV9jb25mbGljdF9ob3Jpem9uKSk7CisJCQkqbmV3X3ZtYml0cyB8PSBWSVNJQklMSVRZTUFQX0FM TF9GUk9aRU47CisJCX0KKworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwkvKgorCSAqIE5vdyBoYW5k bGUgdHdvIHBvdGVudGlhbCBjb3JydXB0aW9uIGNhc2VzOgorCSAqCisJICogVGhlc2UgZG8gbm90 IG5lZWQgdG8gaGFwcGVuIGluIGEgY3JpdGljYWwgc2VjdGlvbiBhbmQgYXJlIG5vdAorCSAqIFdB TC1sb2dnZWQuCisJICoKKwkgKiBBcyBvZiBQb3N0Z3JlU1FMIDkuMiwgdGhlIHZpc2liaWxpdHkg bWFwIGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0IGlmIHRoZQorCSAqIHBhZ2UtbGV2ZWwgYml0IGlz IGNsZWFyLiAgSG93ZXZlciwgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBiaXQgZ290CisJICogY2xl YXJlZCBhZnRlciBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKSB3YXMgY2FsbGVkLCBzbyB3ZSBt dXN0IHJlY2hlY2sKKwkgKiB3aXRoIGJ1ZmZlciBsb2NrIGJlZm9yZSBjb25jbHVkaW5nIHRoYXQg dGhlIFZNIGlzIGNvcnJ1cHQuCisJICoKKwkgKiBDYWxsZXJzIHdoaWNoIGRpZCBub3QgY2hlY2sg dGhlIHZpc2liaWxpdHkgbWFwIGFuZCBkZXRlcm1pbmUKKwkgKiBibGtfa25vd25fYXYgd2lsbCBu b3QgYmUgZWxpZ2libGUgZm9yIHRoaXMsIGhvd2V2ZXIgdGhlIGNvc3Qgb2YKKwkgKiBwb3RlbnRp YWxseSBuZWVkaW5nIHRvIHJlYWQgdGhlIHZpc2liaWxpdHkgbWFwIGZvciBwYWdlcyB0aGF0IGFy ZSBub3QKKwkgKiBhbGwtdmlzaWJsZSBpcyB0b28gaGlnaCB0byBqdXN0aWZ5IGdlbmVyYWxpemlu ZyB0aGUgY2hlY2suCisJICovCisJZWxzZSBpZiAoYmxrX2tub3duX2F2ICYmICFQYWdlSXNBbGxW aXNpYmxlKGhlYXBfcGFnZSkgJiYKKwkJCSB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocmVsYXRp b24sIGhlYXBfYmxrLCAmdm1idWZmZXIpICE9IDApCisJeworCQllcmVwb3J0KFdBUk5JTkcsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBX0NPUlJVUFRFRCksCisJCQkJIGVycm1zZygicGFnZSBp cyBub3QgbWFya2VkIGFsbC12aXNpYmxlIGJ1dCB2aXNpYmlsaXR5IG1hcCBiaXQgaXMgc2V0IGlu IHJlbGF0aW9uIFwiJXNcIiBwYWdlICV1IiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KHJlbGF0aW9uKSwgaGVhcF9ibGspKSk7CisKKwkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWxhdGlv biwgaGVhcF9ibGssIHZtYnVmZmVyLAorCQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7 CisJfQorCisJLyoKKwkgKiBJdCdzIHBvc3NpYmxlIGZvciB0aGUgdmFsdWUgcmV0dXJuZWQgYnkK KwkgKiBHZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2FjdGlvbklkKCkgdG8gbW92ZSBiYWNrd2Fy ZHMsIHNvIGl0J3Mgbm90CisJICogd3JvbmcgZm9yIHVzIHRvIHNlZSB0dXBsZXMgdGhhdCBhcHBl YXIgdG8gbm90IGJlIHZpc2libGUgdG8gZXZlcnlvbmUKKwkgKiB5ZXQsIHdoaWxlIFBEX0FMTF9W SVNJQkxFIGlzIGFscmVhZHkgc2V0LiBUaGUgcmVhbCBzYWZlIHhtaW4gdmFsdWUKKwkgKiBuZXZl ciBtb3ZlcyBiYWNrd2FyZHMsIGJ1dCBHZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2FjdGlvbklk KCkgaXMKKwkgKiBjb25zZXJ2YXRpdmUgYW5kIHNvbWV0aW1lcyByZXR1cm5zIGEgdmFsdWUgdGhh dCdzIHVubmVjZXNzYXJpbHkgc21hbGwsCisJICogc28gaWYgd2Ugc2VlIHRoYXQgY29udHJhZGlj dGlvbiBpdCBqdXN0IG1lYW5zIHRoYXQgdGhlIHR1cGxlcyB0aGF0IHdlCisJICogdGhpbmsgYXJl IG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25lIHlldCBhY3R1YWxseSBhcmUsIGFuZCB0aGUKKwkgKiBQ RF9BTExfVklTSUJMRSBmbGFnIGlzIGNvcnJlY3QuCisJICoKKwkgKiBUaGVyZSBzaG91bGQgbmV2 ZXIgYmUgTFBfREVBRCBpdGVtcyBvbiBhIHBhZ2Ugd2l0aCBQRF9BTExfVklTSUJMRSBzZXQsCisJ ICogaG93ZXZlci4KKwkgKi8KKwllbHNlIGlmIChwcmVzdWx0LT5scGRlYWRfaXRlbXMgPiAwICYm IFBhZ2VJc0FsbFZpc2libGUoaGVhcF9wYWdlKSkKKwl7CisJCWVyZXBvcnQoV0FSTklORywKKwkJ CQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKKwkJCQkgZXJybXNnKCJwYWdlIGNv bnRhaW5pbmcgTFBfREVBRCBpdGVtcyBpcyBtYXJrZWQgYXMgYWxsLXZpc2libGUgaW4gcmVsYXRp b24gXCIlc1wiIHBhZ2UgJXUiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRp b24pLCBoZWFwX2JsaykpKTsKKworCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKGhlYXBfcGFnZSk7CisJ CU1hcmtCdWZmZXJEaXJ0eShoZWFwX2J1Zik7CisJCXZpc2liaWxpdHltYXBfY2xlYXIocmVsYXRp b24sIGhlYXBfYmxrLCB2bWJ1ZmZlciwKKwkJCQkJCQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMp OworCX0KKworCXJldHVybiBmYWxzZTsKK30KKwogCiAvKgogICogUHJ1bmUgYW5kIHJlcGFpciBm cmFnbWVudGF0aW9uIGFuZCBwb3RlbnRpYWxseSBmcmVlemUgdHVwbGVzIG9uIHRoZQotICogc3Bl Y2lmaWVkIHBhZ2UuCisgKiBzcGVjaWZpZWQgcGFnZS4gSWYgdGhlIHBhZ2UncyB2aXNpYmlsaXR5 IHN0YXR1cyBoYXMgY2hhbmdlZCwgdXBkYXRlIGl0IGluCisgKiB0aGUgVk0uCiAgKgogICogQ2Fs bGVyIG11c3QgaGF2ZSBwaW4gYW5kIGJ1ZmZlciBjbGVhbnVwIGxvY2sgb24gdGhlIHBhZ2UuICBO b3RlIHRoYXQgd2UKICAqIGRvbid0IHVwZGF0ZSB0aGUgRlNNIGluZm9ybWF0aW9uIGZvciBwYWdl IG9uIGNhbGxlcidzIGJlaGFsZi4gIENhbGxlciBtaWdodApAQCAtNzgzLDEyICs5MDgsMTMgQEAg aGVhcF9wYWdlX3dpbGxfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAog ICogdHVwbGVzIGlmIGl0J3MgcmVxdWlyZWQgaW4gb3JkZXIgdG8gYWR2YW5jZSByZWxmcm96ZW54 aWQgLyByZWxtaW5teGlkLCBvcgogICogaWYgaXQncyBjb25zaWRlcmVkIGFkdmFudGFnZW91cyBm b3Igb3ZlcmFsbCBzeXN0ZW0gcGVyZm9ybWFuY2UgdG8gZG8gc28KICAqIG5vdy4gIFRoZSAncGFy YW1zLmN1dG9mZnMnLCAncHJlc3VsdCcsICduZXdfcmVsZnJvemVuX3hpZCcgYW5kCi0gKiAnbmV3 X3JlbG1pbl9teGlkJyBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIHdoZW4gZnJlZXppbmcuICBXaGVu Ci0gKiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBwYXNzZWQsIHdlIGFsc28gc2V0 IHByZXN1bHQtPmFsbF92aXNpYmxlCi0gKiBhbmQgcHJlc3VsdC0+YWxsX2Zyb3plbiBhZnRlciBk ZXRlcm1pbmluZyB3aGV0aGVyIG9yIG5vdCB0bwotICogb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXpl LCB0byBpbmRpY2F0ZSBpZiB0aGUgVk0gYml0cyBjYW4gYmUgc2V0LiAgVGhleSBhcmUKLSAqIGFs d2F5cyBzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSBvcHRpb24g aXMgbm90IHBhc3NlZCwKLSAqIGJlY2F1c2UgYXQgdGhlIG1vbWVudCBvbmx5IGNhbGxlcnMgdGhh dCBhbHNvIGZyZWV6ZSBuZWVkIHRoYXQgaW5mb3JtYXRpb24uCisgKiAnbmV3X3JlbG1pbl9teGlk JyBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIHdoZW4gZnJlZXppbmcuCisgKgorICogSWYgSEVBUF9Q QUdFX1BSVU5FX1VQREFURV9WTSBpcyBzZXQgaW4gcGFyYW1zIGFuZCB0aGUgdmlzaWJpbGl0eSBz dGF0dXMgb2YKKyAqIHRoZSBwYWdlIGhhcyBjaGFuZ2VkLCB3ZSB3aWxsIHVwZGF0ZSB0aGUgVk0g YXQgdGhlIHNhbWUgdGltZSBhcyBwcnVuaW5nIGFuZAorICogZnJlZXppbmcgdGhlIGhlYXAgcGFn ZS4gV2Ugd2lsbCBhbHNvIHVwZGF0ZSBwcmVzdWx0LT5vbGRfdm1iaXRzIGFuZAorICogcHJlc3Vs dC0+bmV3X3ZtYml0cyB3aXRoIHRoZSBzdGF0ZSBvZiB0aGUgVk0gYmVmb3JlIGFuZCBhZnRlciB1 cGRhdGluZyBpdAorICogZm9yIHRoZSBjYWxsZXIgdG8gdXNlIGluIGJvb2trZWVwaW5nLgogICoK ICAqIHByZXN1bHQgY29udGFpbnMgb3V0cHV0IHBhcmFtZXRlcnMgbmVlZGVkIGJ5IGNhbGxlcnMs IHN1Y2ggYXMgdGhlIG51bWJlciBvZgogICogdHVwbGVzIHJlbW92ZWQgYW5kIHRoZSBvZmZzZXRz IG9mIGRlYWQgaXRlbXMgb24gdGhlIHBhZ2UgYWZ0ZXIgcHJ1bmluZy4KQEAgLTgxMywxMSArOTM5 LDE0IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJh bXMsCiAJCQkJCQkgICBNdWx0aVhhY3RJZCAqbmV3X3JlbG1pbl9teGlkKQogewogCUJ1ZmZlcgkJ YnVmZmVyID0gcGFyYW1zLT5idWZmZXI7CisJQnVmZmVyCQl2bWJ1ZmZlciA9IHBhcmFtcy0+dm1i dWZmZXI7CiAJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKKwlCbG9ja051bWJl ciBibG9ja25vID0gQnVmZmVyR2V0QmxvY2tOdW1iZXIoYnVmZmVyKTsKIAlQcnVuZVN0YXRlCXBy c3RhdGU7CiAJYm9vbAkJZG9fZnJlZXplOwogCWJvb2wJCWRvX3BydW5lOwogCWJvb2wJCWRvX2hp bnRfcHJ1bmU7CisJYm9vbAkJZG9fc2V0X3ZtOwogCWJvb2wJCWRpZF90dXBsZV9oaW50X2ZwaTsK IAlpbnQ2NAkJZnBpX2JlZm9yZSA9IHBnV2FsVXNhZ2Uud2FsX2ZwaTsKIApAQCAtMTAwMSw2ICsx MTMwLDQ4IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpw YXJhbXMsCiAJCQkqbmV3X3JlbG1pbl9teGlkID0gcHJzdGF0ZS5wYWdlZnJ6Lk5vRnJlZXplUGFn ZVJlbG1pbk14aWQ7CiAJCX0KIAl9CisKKwlwcmVzdWx0LT5uZXdfdm1iaXRzID0gMDsKKwlwcmVz dWx0LT5vbGRfdm1iaXRzID0gMDsKKworCS8qIE5vdyB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFw IGFuZCBQRF9BTExfVklTSUJMRSBoaW50ICovCisJQXNzZXJ0KCFwcnN0YXRlLmFsbF92aXNpYmxl IHx8IChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKSk7CisKKwlkb19zZXRfdm0gPSBmYWxzZTsK KwlpZiAocHJzdGF0ZS5hdHRlbXB0X3VwZGF0ZV92bSkKKwkJZG9fc2V0X3ZtID0gaGVhcF9wYWdl X3dpbGxfc2V0X3ZtKHBhcmFtcy0+cmVsYXRpb24sCisJCQkJCQkJCQkJICBibG9ja25vLAorCQkJ CQkJCQkJCSAgYnVmZmVyLAorCQkJCQkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkJCQkJICBwYXJh bXMtPmJsa19rbm93bl9hdiwKKwkJCQkJCQkJCQkgIHByZXN1bHQsCisJCQkJCQkJCQkJICAmcHJl c3VsdC0+bmV3X3ZtYml0cyk7CisKKwkvKgorCSAqIG5ld192bWJpdHMgc2hvdWxkIGJlIDAgcmVn YXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBpcworCSAqIGFsbC12aXNpYmxlIGlm IHdlIGRvIG5vdCBpbnRlbmQgdG8gc2V0IHRoZSBWTS4KKwkgKi8KKwlBc3NlcnQoZG9fc2V0X3Zt IHx8IHByZXN1bHQtPm5ld192bWJpdHMgPT0gMCk7CisKKwlpZiAoZG9fc2V0X3ZtKQorCXsKKwkJ LyoKKwkJICogSXQgc2hvdWxkIG5ldmVyIGJlIHRoZSBjYXNlIHRoYXQgdGhlIHZpc2liaWxpdHkg bWFwIHBhZ2UgaXMgc2V0CisJCSAqIHdoaWxlIHRoZSBwYWdlLWxldmVsIGJpdCBpcyBjbGVhciwg YnV0IHRoZSByZXZlcnNlIGlzIGFsbG93ZWQgKGlmCisJCSAqIGNoZWNrc3VtcyBhcmUgbm90IGVu YWJsZWQpLgorCQkgKgorCQkgKiBUaGUgaGVhcCBwYWdlIGlzIGFkZGVkIHRvIHRoZSBXQUwgY2hh aW4gZXZlbiBpZiBpdCB3YXNuJ3QgbW9kaWZpZWQsCisJCSAqIHNvIHdlIHN0aWxsIG5lZWQgdG8g bWFyayBpdCBkaXJ0eS4gVGhlIG9ubHkgc2NlbmFyaW8gd2hlcmUgaXQgaXNuJ3QKKwkJICogbW9k aWZpZWQgaW4gcGhhc2UgSSBpcyB3aGVuIHRoZSBWTSB3YXMgdHJ1bmNhdGVkIG9yIHJlbW92ZWQs IHdoaWNoCisJCSAqIGlzbid0IHdvcnRoIG9wdGltaXppbmcgZm9yLgorCQkgKi8KKwkJUGFnZVNl dEFsbFZpc2libGUocGFnZSk7CisJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOworCQlwcmVzdWx0 LT5vbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXQocGFyYW1zLT5yZWxhdGlvbiwgYmxvY2tu bywgYnVmZmVyLAorCQkJCQkJCQkJCQkJSW52YWxpZFhMb2dSZWNQdHIsCisJCQkJCQkJCQkJCQl2 bWJ1ZmZlciwgcHJlc3VsdC0+dm1fY29uZmxpY3RfaG9yaXpvbiwKKwkJCQkJCQkJCQkJCXByZXN1 bHQtPm5ld192bWJpdHMpOworCX0KIH0KIAogCkBAIC0xNDc1LDYgKzE2NDYsOCBAQCBoZWFwX3By dW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJz dGF0ZSwgT2Zmc2V0TnVtYgogCQkJewogCQkJCVRyYW5zYWN0aW9uSWQgeG1pbjsKIAorCQkJCUFz c2VydChwcnN0YXRlLT5hdHRlbXB0X3VwZGF0ZV92bSk7CisKIAkJCQlpZiAoIUhlYXBUdXBsZUhl YWRlclhtaW5Db21taXR0ZWQoaHR1cCkpCiAJCQkJewogCQkJCQlwcnN0YXRlLT5hbGxfdmlzaWJs ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDU3Nzk1MGMy Zjc3Li44NjgyMjc3OGFiYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAt MTkzNSwxMDMgKzE5MzUsNiBAQCBjbXBPZmZzZXROdW1iZXJzKGNvbnN0IHZvaWQgKmEsIGNvbnN0 IHZvaWQgKmIpCiB9CiAKIAotLyoKLSAqIERlY2lkZSB3aGV0aGVyIHRvIHNldCB0aGUgdmlzaWJp bGl0eSBtYXAgYml0cyAoYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4pCi0gKiBmb3IgaGVhcF9i bGsgdXNpbmcgaW5mb3JtYXRpb24gZnJvbSBQcnVuZUZyZWV6ZVJlc3VsdCBhbmQKLSAqIGFsbF92 aXNpYmxlX2FjY29yZGluZ190b192bS4gVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBz ZXQgdGhlIFZNCi0gKiBiaXRzIG9yIHBhZ2UtbGV2ZWwgdmlzaWJpbGl0eSBoaW50LCBQRF9BTExf VklTSUJMRS4KLSAqCi0gKiBJZiBpdCBmaW5kcyB0aGF0IHRoZSBwYWdlLWxldmVsIHZpc2liaWxp dHkgaGludCBvciBWTSBpcyBjb3JydXB0ZWQsIGl0IHdpbGwKLSAqIGZpeCB0aGVtIGJ5IGNsZWFy aW5nIHRoZSBWTSBiaXRzIGFuZCB2aXNpYmlsaXR5IHBhZ2UgaGludC4gVGhpcyBkb2VzIG5vdAot ICogbmVlZCB0byBiZSBkb25lIGluIGEgY3JpdGljYWwgc2VjdGlvbi4KLSAqCi0gKiBSZXR1cm5z IHRydWUgaWYgb25lIG9yIGJvdGggVk0gYml0cyBzaG91bGQgYmUgc2V0LCBhbG9uZyB3aXRoIHJl dHVybmluZwotICogd2hhdCBiaXRzIHNob3VsZCBiZSBzZXQgaW4gdGhlIFZNIGluICpuZXdfdm1i aXRzLgotICovCi1zdGF0aWMgYm9vbAotaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFJlbGF0aW9uIHJl bGF0aW9uLAotCQkJCQkgIEJsb2NrTnVtYmVyIGhlYXBfYmxrLAotCQkJCQkgIEJ1ZmZlciBoZWFw X2J1ZiwKLQkJCQkJICBCdWZmZXIgdm1idWZmZXIsCi0JCQkJCSAgYm9vbCBhbGxfdmlzaWJsZV9h Y2NvcmRpbmdfdG9fdm0sCi0JCQkJCSAgY29uc3QgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQs Ci0JCQkJCSAgdWludDggKm5ld192bWJpdHMpCi17Ci0JUGFnZQkJaGVhcF9wYWdlID0gQnVmZmVy R2V0UGFnZShoZWFwX2J1Zik7Ci0KLQkqbmV3X3ZtYml0cyA9IDA7Ci0KLQkvKgotCSAqIERldGVy bWluZSB3aGF0IHRvIHNldCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0cyB0byBiYXNlZCBvbiBpbmZv cm1hdGlvbgotCSAqIGZyb20gdGhlIFZNIChhcyBvZiBsYXN0IGhlYXBfdmFjX3NjYW5fbmV4dF9i bG9jaygpIGNhbGwpLCBhbmQgZnJvbQotCSAqIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIHZh cmlhYmxlcy4KLQkgKi8KLQlpZiAoKHByZXN1bHQtPmFsbF92aXNpYmxlICYmICFhbGxfdmlzaWJs ZV9hY2NvcmRpbmdfdG9fdm0pIHx8Ci0JCShwcmVzdWx0LT5hbGxfZnJvemVuICYmICFWTV9BTExf RlJPWkVOKHJlbGF0aW9uLCBoZWFwX2JsaywgJnZtYnVmZmVyKSkpCi0JewotCQkqbmV3X3ZtYml0 cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7Ci0JCWlmIChwcmVzdWx0LT5hbGxfZnJvemVu KQotCQl7Ci0JCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHByZXN1bHQtPnZtX2NvbmZs aWN0X2hvcml6b24pKTsKLQkJCSpuZXdfdm1iaXRzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pF TjsKLQkJfQotCi0JCXJldHVybiB0cnVlOwotCX0KLQotCS8qCi0JICogTm93IGhhbmRsZSB0d28g cG90ZW50aWFsIGNvcnJ1cHRpb24gY2FzZXM6Ci0JICoKLQkgKiBUaGVzZSBkbyBub3QgbmVlZCB0 byBoYXBwZW4gaW4gYSBjcml0aWNhbCBzZWN0aW9uIGFuZCBhcmUgbm90Ci0JICogV0FMLWxvZ2dl ZC4KLQkgKgotCSAqIEFzIG9mIFBvc3RncmVTUUwgOS4yLCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0 IHNob3VsZCBuZXZlciBiZSBzZXQgaWYgdGhlCi0JICogcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIu ICBIb3dldmVyLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJpdCBnb3QKLQkgKiBjbGVhcmVkIGFm dGVyIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIHdhcyBjYWxsZWQsIHNvIHdlIG11c3QgcmVj aGVjawotCSAqIHdpdGggYnVmZmVyIGxvY2sgYmVmb3JlIGNvbmNsdWRpbmcgdGhhdCB0aGUgVk0g aXMgY29ycnVwdC4KLQkgKi8KLQllbHNlIGlmIChhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0g JiYgIVBhZ2VJc0FsbFZpc2libGUoaGVhcF9wYWdlKSAmJgotCQkJIHZpc2liaWxpdHltYXBfZ2V0 X3N0YXR1cyhyZWxhdGlvbiwgaGVhcF9ibGssICZ2bWJ1ZmZlcikgIT0gMCkKLQl7Ci0JCWVyZXBv cnQoV0FSTklORywKLQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKLQkJCQkg ZXJybXNnKCJwYWdlIGlzIG5vdCBtYXJrZWQgYWxsLXZpc2libGUgYnV0IHZpc2liaWxpdHkgbWFw IGJpdCBpcyBzZXQgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAotCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pLCBoZWFwX2JsaykpKTsKLQotCQl2aXNpYmlsaXR5bWFw X2NsZWFyKHJlbGF0aW9uLCBoZWFwX2Jsaywgdm1idWZmZXIsCi0JCQkJCQkJVklTSUJJTElUWU1B UF9WQUxJRF9CSVRTKTsKLQl9Ci0KLQkvKgotCSAqIEl0J3MgcG9zc2libGUgZm9yIHRoZSB2YWx1 ZSByZXR1cm5lZCBieQotCSAqIEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQoKSB0 byBtb3ZlIGJhY2t3YXJkcywgc28gaXQncyBub3QKLQkgKiB3cm9uZyBmb3IgdXMgdG8gc2VlIHR1 cGxlcyB0aGF0IGFwcGVhciB0byBub3QgYmUgdmlzaWJsZSB0byBldmVyeW9uZQotCSAqIHlldCwg d2hpbGUgUERfQUxMX1ZJU0lCTEUgaXMgYWxyZWFkeSBzZXQuIFRoZSByZWFsIHNhZmUgeG1pbiB2 YWx1ZQotCSAqIG5ldmVyIG1vdmVzIGJhY2t3YXJkcywgYnV0IEdldE9sZGVzdE5vblJlbW92YWJs ZVRyYW5zYWN0aW9uSWQoKSBpcwotCSAqIGNvbnNlcnZhdGl2ZSBhbmQgc29tZXRpbWVzIHJldHVy bnMgYSB2YWx1ZSB0aGF0J3MgdW5uZWNlc3NhcmlseSBzbWFsbCwKLQkgKiBzbyBpZiB3ZSBzZWUg dGhhdCBjb250cmFkaWN0aW9uIGl0IGp1c3QgbWVhbnMgdGhhdCB0aGUgdHVwbGVzIHRoYXQgd2UK LQkgKiB0aGluayBhcmUgbm90IHZpc2libGUgdG8gZXZlcnlvbmUgeWV0IGFjdHVhbGx5IGFyZSwg YW5kIHRoZQotCSAqIFBEX0FMTF9WSVNJQkxFIGZsYWcgaXMgY29ycmVjdC4KLQkgKgotCSAqIFRo ZXJlIHNob3VsZCBuZXZlciBiZSBMUF9ERUFEIGl0ZW1zIG9uIGEgcGFnZSB3aXRoIFBEX0FMTF9W SVNJQkxFIHNldCwKLQkgKiBob3dldmVyLgotCSAqLwotCWVsc2UgaWYgKHByZXN1bHQtPmxwZGVh ZF9pdGVtcyA+IDAgJiYgUGFnZUlzQWxsVmlzaWJsZShoZWFwX3BhZ2UpKQotCXsKLQkJZXJlcG9y dChXQVJOSU5HLAotCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAotCQkJCSBl cnJtc2coInBhZ2UgY29udGFpbmluZyBMUF9ERUFEIGl0ZW1zIGlzIG1hcmtlZCBhcyBhbGwtdmlz aWJsZSBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCi0JCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShyZWxhdGlvbiksIGhlYXBfYmxrKSkpOwotCi0JCVBhZ2VDbGVhckFsbFZpc2libGUo aGVhcF9wYWdlKTsKLQkJTWFya0J1ZmZlckRpcnR5KGhlYXBfYnVmKTsKLQkJdmlzaWJpbGl0eW1h cF9jbGVhcihyZWxhdGlvbiwgaGVhcF9ibGssIHZtYnVmZmVyLAotCQkJCQkJCVZJU0lCSUxJVFlN QVBfVkFMSURfQklUUyk7Ci0JfQotCi0JcmV0dXJuIGZhbHNlOwotfQotCiAvKgogICoJbGF6eV9z Y2FuX3BydW5lKCkgLS0gbGF6eV9zY2FuX2hlYXAoKSBwcnVuaW5nIGFuZCBmcmVlemluZy4KICAq CkBAIC0yMDYyLDE1ICsxOTY1LDE0IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNy ZWwsCiAJCQkJYm9vbCAqdm1fcGFnZV9mcm96ZW4pCiB7CiAJUmVsYXRpb24JcmVsID0gdmFjcmVs LT5yZWw7Ci0JYm9vbAkJZG9fc2V0X3ZtID0gZmFsc2U7Ci0JdWludDgJCW5ld192bWJpdHMgPSAw OwotCXVpbnQ4CQlvbGRfdm1iaXRzID0gMDsKIAlQcnVuZUZyZWV6ZVJlc3VsdCBwcmVzdWx0Owog CVBydW5lRnJlZXplUGFyYW1zIHBhcmFtcyA9IHsKIAkJLnJlbGF0aW9uID0gcmVsLAogCQkuYnVm ZmVyID0gYnVmLAorCQkudm1idWZmZXIgPSB2bWJ1ZmZlciwKKwkJLmJsa19rbm93bl9hdiA9IGFs bF92aXNpYmxlX2FjY29yZGluZ190b192bSwKIAkJLnJlYXNvbiA9IFBSVU5FX1ZBQ1VVTV9TQ0FO LAotCQkub3B0aW9ucyA9IEhFQVBfUEFHRV9QUlVORV9GUkVFWkUsCisJCS5vcHRpb25zID0gSEVB UF9QQUdFX1BSVU5FX0ZSRUVaRSB8IEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVk0sCiAJCS52aXN0 ZXN0ID0gdmFjcmVsLT52aXN0ZXN0LAogCQkuY3V0b2ZmcyA9ICZ2YWNyZWwtPmN1dG9mZnMsCiAJ fTsKQEAgLTIxNzMsNTUgKzIwNzUsMjQgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZh Y3JlbCwKIAkvKiBEaWQgd2UgZmluZCBMUF9ERUFEIGl0ZW1zPyAqLwogCSpoYXNfbHBkZWFkX2l0 ZW1zID0gKHByZXN1bHQubHBkZWFkX2l0ZW1zID4gMCk7CiAKLQlBc3NlcnQoIXByZXN1bHQuYWxs X3Zpc2libGUgfHwgISgqaGFzX2xwZGVhZF9pdGVtcykpOwotCUFzc2VydCghcHJlc3VsdC5hbGxf ZnJvemVuIHx8IHByZXN1bHQuYWxsX3Zpc2libGUpOwotCi0JZG9fc2V0X3ZtID0gaGVhcF9wYWdl X3dpbGxfc2V0X3ZtKHJlbCwKLQkJCQkJCQkJCSAgYmxrbm8sCi0JCQkJCQkJCQkgIGJ1ZiwKLQkJ CQkJCQkJCSAgdm1idWZmZXIsCi0JCQkJCQkJCQkgIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192 bSwKLQkJCQkJCQkJCSAgJnByZXN1bHQsCi0JCQkJCQkJCQkgICZuZXdfdm1iaXRzKTsKLQotCWlm IChkb19zZXRfdm0pCi0JewotCQkvKgotCQkgKiBJdCBzaG91bGQgbmV2ZXIgYmUgdGhlIGNhc2Ug dGhhdCB0aGUgdmlzaWJpbGl0eSBtYXAgcGFnZSBpcyBzZXQKLQkJICogd2hpbGUgdGhlIHBhZ2Ut bGV2ZWwgYml0IGlzIGNsZWFyLCBidXQgdGhlIHJldmVyc2UgaXMgYWxsb3dlZCAoaWYKLQkJICog Y2hlY2tzdW1zIGFyZSBub3QgZW5hYmxlZCkuCi0JCSAqCi0JCSAqIFRoZSBoZWFwIHBhZ2UgaXMg YWRkZWQgdG8gdGhlIFdBTCBjaGFpbiBldmVuIGlmIGl0IHdhc24ndCBtb2RpZmllZCwKLQkJICog c28gd2Ugc3RpbGwgbmVlZCB0byBtYXJrIGl0IGRpcnR5LiBUaGUgb25seSBzY2VuYXJpbyB3aGVy ZSBpdCBpc24ndAotCQkgKiBtb2RpZmllZCBpbiBwaGFzZSBJIGlzIHdoZW4gdGhlIFZNIHdhcyB0 cnVuY2F0ZWQgb3IgcmVtb3ZlZCwgd2hpY2gKLQkJICogaXNuJ3Qgd29ydGggb3B0aW1pemluZyBm b3IuCi0JCSAqLwotCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQkJTWFya0J1ZmZlckRpcnR5 KGJ1Zik7Ci0JCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxr bm8sIGJ1ZiwKLQkJCQkJCQkJCSAgIEludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJCQkJICAgdm1i dWZmZXIsIHByZXN1bHQudm1fY29uZmxpY3RfaG9yaXpvbiwKLQkJCQkJCQkJCSAgIG5ld192bWJp dHMpOwotCX0KLQogCS8qCiAJICogRm9yIHRoZSBwdXJwb3NlcyBvZiBsb2dnaW5nLCBjb3VudCB3 aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSB3YXMgbmV3bHkKIAkgKiBzZXQgYWxsLXZpc2libGUgYW5k LCBwb3RlbnRpYWxseSwgYWxsLWZyb3plbi4KIAkgKi8KLQlpZiAoKG9sZF92bWJpdHMgJiBWSVNJ QklMSVRZTUFQX0FMTF9WSVNJQkxFKSA9PSAwICYmCi0JCShuZXdfdm1iaXRzICYgVklTSUJJTElU WU1BUF9BTExfVklTSUJMRSkgIT0gMCkKKwlpZiAoKHByZXN1bHQub2xkX3ZtYml0cyAmIFZJU0lC SUxJVFlNQVBfQUxMX1ZJU0lCTEUpID09IDAgJiYKKwkJKHByZXN1bHQubmV3X3ZtYml0cyAmIFZJ U0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpICE9IDApCiAJewogCQl2YWNyZWwtPnZtX25ld192aXNp YmxlX3BhZ2VzKys7Ci0JCWlmICgobmV3X3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pF TikgIT0gMCkKKwkJaWYgKChwcmVzdWx0Lm5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9G Uk9aRU4pICE9IDApCiAJCXsKIAkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2Vz Kys7CiAJCQkqdm1fcGFnZV9mcm96ZW4gPSB0cnVlOwogCQl9CiAJfQotCWVsc2UgaWYgKChvbGRf dm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSA9PSAwICYmCi0JCQkgKG5ld192bWJp dHMgJiBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pICE9IDApCisJZWxzZSBpZiAoKHByZXN1bHQu b2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikgPT0gMCAmJgorCQkJIChwcmVz dWx0Lm5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pICE9IDApCiAJewotCQlB c3NlcnQoKG5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKSAhPSAwKTsKKwkJ QXNzZXJ0KChwcmVzdWx0Lm5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKSAh PSAwKTsKIAkJdmFjcmVsLT52bV9uZXdfZnJvemVuX3BhZ2VzKys7CiAJCSp2bV9wYWdlX2Zyb3pl biA9IHRydWU7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIv c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IDYzMmM0MzMyYThjLi5iYjcxMmM1YjI5 ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtNDIsNiArNDIsNyBAQAogLyogIm9wdGlvbnMiIGZsYWcg Yml0cyBmb3IgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUgKi8KICNkZWZpbmUgSEVBUF9QQUdF X1BSVU5FX01BUktfVU5VU0VEX05PVwkJKDEgPDwgMCkKICNkZWZpbmUgSEVBUF9QQUdFX1BSVU5F X0ZSRUVaRQkJCQkoMSA8PCAxKQorI2RlZmluZSBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZNCQkJ KDEgPDwgMikKIAogdHlwZWRlZiBzdHJ1Y3QgQnVsa0luc2VydFN0YXRlRGF0YSAqQnVsa0luc2Vy dFN0YXRlOwogdHlwZWRlZiBzdHJ1Y3QgR2xvYmFsVmlzU3RhdGUgR2xvYmFsVmlzU3RhdGU7CkBA IC0yMzgsNiArMjM5LDE4IEBAIHR5cGVkZWYgc3RydWN0IFBydW5lRnJlZXplUGFyYW1zCiAJUmVs YXRpb24JcmVsYXRpb247CQkvKiByZWxhdGlvbiBjb250YWluaW5nIGJ1ZmZlciB0byBiZSBwcnVu ZWQgKi8KIAlCdWZmZXIJCWJ1ZmZlcjsJCQkvKiBidWZmZXIgdG8gYmUgcHJ1bmVkICovCiAKKwkv KgorCSAqIHZtYnVmZmVyIGlzIHRoZSBidWZmZXIgdGhhdCBtdXN0IGFscmVhZHkgY29udGFpbiB0 aGUgcmVxdWlyZWQgYmxvY2sgb2YKKwkgKiB0aGUgdmlzaWJpbGl0eSBtYXAgaWYgd2UgYXJlIHRv IHVwZGF0ZSBpdC4gYmxrX2tub3duX2F2IGlzIHRoZQorCSAqIHZpc2liaWxpdHkgc3RhdHVzIG9m IHRoZSBoZWFwIGJsb2NrIGFzIG9mIHRoZSBsYXN0IGNhbGwgdG8KKwkgKiBmaW5kX25leHRfdW5z a2lwcGFibGVfYmxvY2soKS4gQ2FsbGVycyB3aGljaCBkaWQgbm90IGNoZWNrIHRoZQorCSAqIHZp c2liaWxpdHkgbWFwIGFscmVhZHkgc2hvdWxkIHBhc3MgZmFsc2UgZm9yIGJsa19rbm93bl9hdi4g VGhpcyBpcyBvbmx5CisJICogYW4gb3B0aW1pemF0aW9uIGZvciBjYWxsZXJzIHRoYXQgZGlkIGNo ZWNrIHRoZSBWTSBhbmQgd29uJ3QgYWZmZWN0CisJICogY29ycmVjdG5lc3MuCisJICovCisJQnVm ZmVyCQl2bWJ1ZmZlcjsKKwlib29sCQlibGtfa25vd25fYXY7CisKIAkvKgogCSAqIFRoZSByZWFz b24gcHJ1bmluZyB3YXMgcGVyZm9ybWVkLiAgSXQgaXMgdXNlZCB0byBzZXQgdGhlIFdBTCByZWNv cmQKIAkgKiBvcGNvZGUgd2hpY2ggaXMgdXNlZCBmb3IgZGVidWdnaW5nIGFuZCBhbmFseXNpcyBw dXJwb3Nlcy4KQEAgLTI1Miw2ICsyNjUsOSBAQCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVBh cmFtcwogCSAqCiAJICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSBpbmRpY2F0ZXMgdGhhdCB3ZSB3 aWxsIGFsc28gZnJlZXplIHR1cGxlcywgYW5kCiAJICogd2lsbCByZXR1cm4gJ2FsbF92aXNpYmxl JywgJ2FsbF9mcm96ZW4nIGZsYWdzIHRvIHRoZSBjYWxsZXIuCisJICoKKwkgKiBIRUFQX1BBR0Vf UFJVTkVfVVBEQVRFX1ZNIGluZGljYXRlcyB0aGF0IHdlIHdpbGwgc2V0IHRoZSBwYWdlJ3Mgc3Rh dHVzCisJICogaW4gdGhlIFZNLgogCSAqLwogCWludAkJCW9wdGlvbnM7CiAKQEAgLTI5OSw2ICsz MTUsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVlemVSZXN1bHQKIAlib29sCQlhbGxfZnJv emVuOwogCVRyYW5zYWN0aW9uSWQgdm1fY29uZmxpY3RfaG9yaXpvbjsKIAorCS8qCisJICogb2xk X3ZtYml0cyBhcmUgdGhlIHN0YXRlIG9mIHRoZSBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbiBi aXRzIGluIHRoZQorCSAqIHZpc2liaWxpdHkgbWFwIGJlZm9yZSB1cGRhdGluZyBpdCBkdXJpbmcg cGhhc2UgSSBvZiB2YWN1dW1pbmcuCisJICogbmV3X3ZtYml0cyBhcmUgdGhlIHN0YXRlIG9mIHRo b3NlIGJpdHMgYWZ0ZXIgcGhhc2UgSSBvZiB2YWN1dW1pbmcuCisJICoKKwkgKiBUaGVzZSBhcmUg b25seSBzZXQgaWYgdGhlIEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVk0gb3B0aW9uIGlzIHNldCBh bmQKKwkgKiB3ZSBoYXZlIGF0dGVtcHRlZCB0byB1cGRhdGUgdGhlIFZNLgorCSAqLworCXVpbnQ4 CQluZXdfdm1iaXRzOworCXVpbnQ4CQlvbGRfdm1iaXRzOworCiAJLyoKIAkgKiBXaGV0aGVyIG9y IG5vdCB0aGUgcGFnZSBtYWtlcyByZWwgdHJ1bmNhdGlvbiB1bnNhZmUuICBUaGlzIGlzIHNldCB0 bwogCSAqICd0cnVlJywgZXZlbiBpZiB0aGUgcGFnZSBjb250YWlucyBMUF9ERUFEIGl0ZW1zLiAg VkFDVVVNIHdpbGwgcmVtb3ZlCi0tIAoyLjQzLjAKCg== --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="UTF-8"; name="v24-0006-Move-VM-assert-into-prune-freeze-code.patch" Content-Disposition: attachment; filename="v24-0006-Move-VM-assert-into-prune-freeze-code.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvefjj5 RnJvbSAzMGU2YjU0MjA2NjkzODliMGIwZTYxNjk5MDVkMzQ0NDQyZDE3MjY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIgRGVjIDIwMjUgMTU6NTc6MzQgLTA1MDAKU3ViamVjdDogW1BB VENIIHYyNCAwNi8xNl0gTW92ZSBWTSBhc3NlcnQgaW50byBwcnVuZS9mcmVlemUgY29kZQoKVGhp cyBpcyBhIHN0ZXAgdG93YXJkIHNldHRpbmcgdGhlIFZNIGluIHRoZSBzYW1lIFdBTCByZWNvcmQg YXMgcHJ1bmluZwphbmQgZnJlZXppbmcuIEl0IG1vdmVzIHRoZSBjaGVjayBvZiB0aGUgaGVhcCBw YWdlIGludG8gcHJ1bmUvZnJlZXplIGNvZGUKYmVmb3JlIHNldHRpbmcgdGhlIFZNLiBUaGlzIGFs bG93cyB1cyB0byByZW1vdmUgc29tZSBmaWVsZHMgb2YgdGhlClBydW5lRnJlZXplUmVzdWx0Lgot LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICB8IDEzOCArKysrKysrKysr KysrKysrKysrLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyB8 ICA2OCArLS0tLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAg fCAgMjUgKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTA5IGluc2VydGlvbnMoKyksIDEyMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IGQ3ZjM2ZTI3NjRm Li45NmRjOTAyZWMxMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTE5OSw3 ICsxOTksNyBAQCBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUmVsYXRpb24gcmVs YXRpb24sCiAJCQkJCQkJCSAgQnVmZmVyIGhlYXBfYnVmLAogCQkJCQkJCQkgIEJ1ZmZlciB2bWJ1 ZmZlciwKIAkJCQkJCQkJICBib29sIGJsa19rbm93bl9hdiwKLQkJCQkJCQkJICBjb25zdCBQcnVu ZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKKwkJCQkJCQkJICBjb25zdCBQcnVuZVN0YXRlICpwcnN0 YXRlLAogCQkJCQkJCQkgIHVpbnQ4ICpuZXdfdm1iaXRzKTsKIAogCkBAIC03ODQsOSArNzg0LDkg QEAgaGVhcF9wYWdlX3dpbGxfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVy LAogCiAvKgogICogRGVjaWRlIHdoZXRoZXIgdG8gc2V0IHRoZSB2aXNpYmlsaXR5IG1hcCBiaXRz IChhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbikKLSAqIGZvciBoZWFwX2JsayB1c2luZyBpbmZv cm1hdGlvbiBmcm9tIFBydW5lRnJlZXplUmVzdWx0IGFuZCBibGtfa25vd25fYXYuCi0gKiBTb21l IGNhbGxlcnMgbWF5IGFscmVhZHkgaGF2ZSBleGFtaW5lZCB0aGlzIHBhZ2XigJlzIFZNIGJpdHMg KGUuZy4sIFZBQ1VVTSBpbgotICogdGhlIHByZXZpb3VzIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9j aygpIGNhbGwpIGFuZCBjYW4gcGFzcyB0aGF0IGFsb25nIGFzCisgKiBmb3IgaGVhcF9ibGsgdXNp bmcgaW5mb3JtYXRpb24gZnJvbSBQcnVuZVN0YXRlIGFuZCBibGtfa25vd25fYXYuIFNvbWUKKyAq IGNhbGxlcnMgbWF5IGFscmVhZHkgaGF2ZSBleGFtaW5lZCB0aGlzIHBhZ2XigJlzIFZNIGJpdHMg KGUuZy4sIFZBQ1VVTSBpbiB0aGUKKyAqIHByZXZpb3VzIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9j aygpIGNhbGwpIGFuZCBjYW4gcGFzcyB0aGF0IGFsb25nIGFzCiAgKiBibGtfa25vd25fYXYuIENh bGxlcnMgdGhhdCBoYXZlIG5vdCBwcmV2aW91c2x5IGNoZWNrZWQgdGhlIHBhZ2UncyBzdGF0dXMg aW4KICAqIHRoZSBWTSBzaG91bGQgcGFzcyBmYWxzZSBmb3IgYmxrX2tub3duX2F2LgogICoKQEAg LTgwNiwyNyArODA2LDMwIEBAIGhlYXBfcGFnZV93aWxsX3NldF92bShSZWxhdGlvbiByZWxhdGlv biwKIAkJCQkJICBCdWZmZXIgaGVhcF9idWYsCiAJCQkJCSAgQnVmZmVyIHZtYnVmZmVyLAogCQkJ CQkgIGJvb2wgYmxrX2tub3duX2F2LAotCQkJCQkgIGNvbnN0IFBydW5lRnJlZXplUmVzdWx0ICpw cmVzdWx0LAorCQkJCQkgIGNvbnN0IFBydW5lU3RhdGUgKnByc3RhdGUsCiAJCQkJCSAgdWludDgg Km5ld192bWJpdHMpCiB7CiAJUGFnZQkJaGVhcF9wYWdlID0gQnVmZmVyR2V0UGFnZShoZWFwX2J1 Zik7CiAKIAkqbmV3X3ZtYml0cyA9IDA7CiAKKwlpZiAoIXByc3RhdGUtPmF0dGVtcHRfdXBkYXRl X3ZtKQorCXsKKwkJQXNzZXJ0KCFwcnN0YXRlLT5hbGxfdmlzaWJsZSAmJiAhcHJzdGF0ZS0+YWxs X2Zyb3plbik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKIAkvKgogCSAqIERldGVybWluZSB3aGF0 IHRoZSB2aXNpYmlsaXR5IG1hcCBiaXRzIHNob3VsZCBiZSBzZXQgdG8gdXNpbmcgdGhlCiAJICog dmFsdWVzIG9mIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIGRldGVybWluZWQgZHVyaW5nCiAJ ICogcHJ1bmluZy9mcmVlemluZy4KIAkgKi8KLQlpZiAoKHByZXN1bHQtPmFsbF92aXNpYmxlICYm ICFibGtfa25vd25fYXYpIHx8Ci0JCShwcmVzdWx0LT5hbGxfZnJvemVuICYmICFWTV9BTExfRlJP WkVOKHJlbGF0aW9uLCBoZWFwX2JsaywgJnZtYnVmZmVyKSkpCisJaWYgKChwcnN0YXRlLT5hbGxf dmlzaWJsZSAmJiAhYmxrX2tub3duX2F2KSB8fAorCQkocHJzdGF0ZS0+YWxsX2Zyb3plbiAmJiAh Vk1fQUxMX0ZST1pFTihyZWxhdGlvbiwgaGVhcF9ibGssICZ2bWJ1ZmZlcikpKQogCXsKIAkJKm5l d192bWJpdHMgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwotCQlpZiAocHJlc3VsdC0+YWxs X2Zyb3plbikKLQkJewotCQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChwcmVzdWx0LT52 bV9jb25mbGljdF9ob3Jpem9uKSk7CisJCWlmIChwcnN0YXRlLT5hbGxfZnJvemVuKQogCQkJKm5l d192bWJpdHMgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOwotCQl9CiAKIAkJcmV0dXJuIHRy dWU7CiAJfQpAQCAtODczLDcgKzg3Niw3IEBAIGhlYXBfcGFnZV93aWxsX3NldF92bShSZWxhdGlv biByZWxhdGlvbiwKIAkgKiBUaGVyZSBzaG91bGQgbmV2ZXIgYmUgTFBfREVBRCBpdGVtcyBvbiBh IHBhZ2Ugd2l0aCBQRF9BTExfVklTSUJMRSBzZXQsCiAJICogaG93ZXZlci4KIAkgKi8KLQllbHNl IGlmIChwcmVzdWx0LT5scGRlYWRfaXRlbXMgPiAwICYmIFBhZ2VJc0FsbFZpc2libGUoaGVhcF9w YWdlKSkKKwllbHNlIGlmIChwcnN0YXRlLT5scGRlYWRfaXRlbXMgPiAwICYmIFBhZ2VJc0FsbFZp c2libGUoaGVhcF9wYWdlKSkKIAl7CiAJCWVyZXBvcnQoV0FSTklORywKIAkJCQkoZXJyY29kZShF UlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKQEAgLTg4OSw2ICs4OTIsMzAgQEAgaGVhcF9wYWdlX3dp bGxfc2V0X3ZtKFJlbGF0aW9uIHJlbGF0aW9uLAogCXJldHVybiBmYWxzZTsKIH0KIAorI2lmZGVm IFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKworLyoKKyAqIFdyYXBwZXIgZm9yIGhlYXBfcGFnZV93b3Vs ZF9iZV9hbGxfdmlzaWJsZSgpIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBjYWxsZXJzCisgKiB0aGF0 IGV4cGVjdCBubyBMUF9ERUFEIG9uIHRoZSBwYWdlLiBDdXJyZW50bHkgYXNzZXJ0LW9ubHksIGJ1 dCB0aGVyZSBpcyBubworICogcmVhc29uIG5vdCB0byB1c2UgaXQgb3V0c2lkZSBvZiBhc3NlcnRz LgorICovCitzdGF0aWMgYm9vbAoraGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJl bCwgQnVmZmVyIGJ1ZiwKKwkJCQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkg Ym9vbCAqYWxsX2Zyb3plbiwKKwkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9m Zl94aWQsCisJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkKK3sKKworCXJldHVy biBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUocmVsLCBidWYsCisJCQkJCQkJCQkJICBP bGRlc3RYbWluLAorCQkJCQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJCQkJCQkgIGFsbF9mcm96ZW4s CisJCQkJCQkJCQkJICB2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJICBsb2dnaW5n X29mZm51bSk7Cit9CisjZW5kaWYKKwogCiAvKgogICogUHJ1bmUgYW5kIHJlcGFpciBmcmFnbWVu dGF0aW9uIGFuZCBwb3RlbnRpYWxseSBmcmVlemUgdHVwbGVzIG9uIHRoZQpAQCAtOTQyLDYgKzk2 OSw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJh bXMsCiAJQnVmZmVyCQl2bWJ1ZmZlciA9IHBhcmFtcy0+dm1idWZmZXI7CiAJUGFnZQkJcGFnZSA9 IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIAlCbG9ja051bWJlciBibG9ja25vID0gQnVmZmVyR2V0 QmxvY2tOdW1iZXIoYnVmZmVyKTsKKwlUcmFuc2FjdGlvbklkIHZtX2NvbmZsaWN0X2hvcml6b24g PSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAlQcnVuZVN0YXRlCXByc3RhdGU7CiAJYm9vbAkJZG9f ZnJlZXplOwogCWJvb2wJCWRvX3BydW5lOwpAQCAtMTA5NywyMyArMTEyNSw4IEBAIGhlYXBfcGFn ZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJcHJlc3VsdC0+ bmZyb3plbiA9IHByc3RhdGUubmZyb3plbjsKIAlwcmVzdWx0LT5saXZlX3R1cGxlcyA9IHByc3Rh dGUubGl2ZV90dXBsZXM7CiAJcHJlc3VsdC0+cmVjZW50bHlfZGVhZF90dXBsZXMgPSBwcnN0YXRl LnJlY2VudGx5X2RlYWRfdHVwbGVzOwotCXByZXN1bHQtPmFsbF92aXNpYmxlID0gcHJzdGF0ZS5h bGxfdmlzaWJsZTsKLQlwcmVzdWx0LT5hbGxfZnJvemVuID0gcHJzdGF0ZS5hbGxfZnJvemVuOwog CXByZXN1bHQtPmhhc3R1cCA9IHByc3RhdGUuaGFzdHVwOwogCi0JLyoKLQkgKiBGb3IgY2FsbGVy cyBwbGFubmluZyB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwLCB0aGUgY29uZmxpY3QgaG9y aXpvbgotCSAqIGZvciB0aGF0IHJlY29yZCBtdXN0IGJlIHRoZSBuZXdlc3QgeG1pbiBvbiB0aGUg cGFnZS4gIEhvd2V2ZXIsIGlmIHRoZQotCSAqIHBhZ2UgaXMgY29tcGxldGVseSBmcm96ZW4sIHRo ZXJlIGNhbiBiZSBubyBjb25mbGljdCBhbmQgdGhlCi0JICogdm1fY29uZmxpY3RfaG9yaXpvbiBz aG91bGQgcmVtYWluIEludmFsaWRUcmFuc2FjdGlvbklkLiAgVGhpcyBpbmNsdWRlcwotCSAqIHRo ZSBjYXNlIHRoYXQgd2UganVzdCBmcm96ZSBhbGwgdGhlIHR1cGxlczsgdGhlIHBydW5lLWZyZWV6 ZSByZWNvcmQKLQkgKiBpbmNsdWRlZCB0aGUgY29uZmxpY3QgWElEIGFscmVhZHkgc28gdGhlIGNh bGxlciBkb2Vzbid0IG5lZWQgaXQuCi0JICovCi0JaWYgKHByZXN1bHQtPmFsbF9mcm96ZW4pCi0J CXByZXN1bHQtPnZtX2NvbmZsaWN0X2hvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKLQll bHNlCi0JCXByZXN1bHQtPnZtX2NvbmZsaWN0X2hvcml6b24gPSBwcnN0YXRlLnZpc2liaWxpdHlf Y3V0b2ZmX3hpZDsKLQogCXByZXN1bHQtPmxwZGVhZF9pdGVtcyA9IHByc3RhdGUubHBkZWFkX2l0 ZW1zOwogCS8qIHRoZSBwcmVzdWx0LT5kZWFkb2Zmc2V0cyBhcnJheSB3YXMgYWxyZWFkeSBmaWxs ZWQgaW4gKi8KIApAQCAtMTEzNCwxOCArMTE0Nyw2NyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2Zy ZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCXByZXN1bHQtPm5ld192bWJpdHMgPSAw OwogCXByZXN1bHQtPm9sZF92bWJpdHMgPSAwOwogCi0JLyogTm93IHVwZGF0ZSB0aGUgdmlzaWJp bGl0eSBtYXAgYW5kIFBEX0FMTF9WSVNJQkxFIGhpbnQgKi8KKwkvKgorCSAqIElmIHVwZGF0aW5n IHRoZSB2aXNpYmlsaXR5IG1hcCwgdGhlIGNvbmZsaWN0IGhvcml6b24gZm9yIHRoYXQgcmVjb3Jk CisJICogbXVzdCBiZSB0aGUgbmV3ZXN0IHhtaW4gb24gdGhlIHBhZ2UuICBIb3dldmVyLCBpZiB0 aGUgcGFnZSBpcworCSAqIGNvbXBsZXRlbHkgZnJvemVuLCB0aGVyZSBjYW4gYmUgbm8gY29uZmxp Y3QgYW5kIHRoZSB2bV9jb25mbGljdF9ob3Jpem9uCisJICogc2hvdWxkIHJlbWFpbiBJbnZhbGlk VHJhbnNhY3Rpb25JZC4gIFRoaXMgaW5jbHVkZXMgdGhlIGNhc2UgdGhhdCB3ZQorCSAqIGp1c3Qg ZnJvemUgYWxsIHRoZSB0dXBsZXM7IHRoZSBwcnVuZS1mcmVlemUgcmVjb3JkIGluY2x1ZGVkIHRo ZQorCSAqIGNvbmZsaWN0IFhJRCBhbHJlYWR5IHNvIHdlIGRvbid0IG5lZWQgdG8gYWdhaW4uCisJ ICovCisJaWYgKHByc3RhdGUuYWxsX2Zyb3plbikKKwkJdm1fY29uZmxpY3RfaG9yaXpvbiA9IElu dmFsaWRUcmFuc2FjdGlvbklkOworCWVsc2UKKwkJdm1fY29uZmxpY3RfaG9yaXpvbiA9IHByc3Rh dGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkOworCisJLyoKKwkgKiBEdXJpbmcgaXRzIHNlY29uZCBw YXNzIG92ZXIgdGhlIGhlYXAsIFZBQ1VVTSBjYWxscworCSAqIGhlYXBfcGFnZV93b3VsZF9iZV9h bGxfdmlzaWJsZSgpIHRvIGRldGVybWluZSB3aGV0aGVyIGEgcGFnZSBpcworCSAqIGFsbC12aXNp YmxlIGFuZCBhbGwtZnJvemVuLiBUaGUgbG9naWMgaGVyZSBpcyBzaW1pbGFyLiBBZnRlciBjb21w bGV0aW5nCisJICogcHJ1bmluZyBhbmQgZnJlZXppbmcsIHVzZSBhbiBhc3NlcnRpb24gdG8gdmVy aWZ5IHRoYXQgb3VyIHJlc3VsdHMKKwkgKiByZW1haW4gY29uc2lzdGVudCB3aXRoIGhlYXBfcGFn ZV93b3VsZF9iZV9hbGxfdmlzaWJsZSgpLgorCSAqLworI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJ TkcKKwlpZiAocHJzdGF0ZS5hbGxfdmlzaWJsZSkKKwl7CisJCVRyYW5zYWN0aW9uSWQgZGVidWdf Y3V0b2ZmOworCQlib29sCQlkZWJ1Z19hbGxfZnJvemVuOworCisJCUFzc2VydChwcmVzdWx0LT5s cGRlYWRfaXRlbXMgPT0gMCk7CisKKwkJQXNzZXJ0KGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShw YXJhbXMtPnJlbGF0aW9uLCBidWZmZXIsCisJCQkJCQkJCQkJcHJzdGF0ZS5jdXRvZmZzLT5PbGRl c3RYbWluLAorCQkJCQkJCQkJCSZkZWJ1Z19hbGxfZnJvemVuLAorCQkJCQkJCQkJCSZkZWJ1Z19j dXRvZmYsIG9mZl9sb2MpKTsKKworCQlBc3NlcnQocHJzdGF0ZS5hbGxfZnJvemVuID09IGRlYnVn X2FsbF9mcm96ZW4pOworCisJCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQoZGVidWdfY3V0 b2ZmKSB8fAorCQkJICAgZGVidWdfY3V0b2ZmID09IHZtX2NvbmZsaWN0X2hvcml6b24pOworCX0K KyNlbmRpZgorCisJQXNzZXJ0KCFwcnN0YXRlLmFsbF9mcm96ZW4gfHwgcHJzdGF0ZS5hbGxfdmlz aWJsZSk7CiAJQXNzZXJ0KCFwcnN0YXRlLmFsbF92aXNpYmxlIHx8IChwcnN0YXRlLmxwZGVhZF9p dGVtcyA9PSAwKSk7CiAKLQlkb19zZXRfdm0gPSBmYWxzZTsKLQlpZiAocHJzdGF0ZS5hdHRlbXB0 X3VwZGF0ZV92bSkKLQkJZG9fc2V0X3ZtID0gaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKHBhcmFtcy0+ cmVsYXRpb24sCi0JCQkJCQkJCQkJICBibG9ja25vLAotCQkJCQkJCQkJCSAgYnVmZmVyLAotCQkJ CQkJCQkJCSAgdm1idWZmZXIsCi0JCQkJCQkJCQkJICBwYXJhbXMtPmJsa19rbm93bl9hdiwKLQkJ CQkJCQkJCQkgIHByZXN1bHQsCi0JCQkJCQkJCQkJICAmcHJlc3VsdC0+bmV3X3ZtYml0cyk7CisJ LyoKKwkgKiBEZWNpZGUgd2hldGhlciB0byBzZXQgdGhlIHBhZ2UtbGV2ZWwgUERfQUxMX1ZJU0lC TEUgYml0IGFuZCB0aGUgVk0gYml0cworCSAqIGJhc2VkIG9uIGluZm9ybWF0aW9uIGZyb20gdGhl IFZNIGFuZCB0aGUgYWxsX3Zpc2libGUvYWxsX2Zyb3plbiBmbGFncy4KKwkgKgorCSAqIFdoaWxl IGl0IGlzIHZhbGlkIGZvciBQRF9BTExfVklTSUJMRSB0byBiZSBzZXQgd2hlbiB0aGUgY29ycmVz cG9uZGluZworCSAqIFZNIGJpdCBpcyBjbGVhciwgd2Ugc3Ryb25nbHkgcHJlZmVyIHRvIGtlZXAg dGhlbSBpbiBzeW5jLgorCSAqCisJICogQWNjb3JkaW5nbHksIHdlIGFsc28gYWxsb3cgdXBkYXRp bmcgb25seSB0aGUgVk0gd2hlbiBQRF9BTExfVklTSUJMRSBoYXMKKwkgKiBhbHJlYWR5IGJlZW4g c2V0LiBTZXR0aW5nIG9ubHkgdGhlIFZNIGlzIG1vc3QgY29tbW9uIHdoZW4gc2V0dGluZyBhbgor CSAqIGFscmVhZHkgYWxsLXZpc2libGUgcGFnZSBhbGwtZnJvemVuLgorCSAqLworCWRvX3NldF92 bSA9IGhlYXBfcGFnZV93aWxsX3NldF92bShwYXJhbXMtPnJlbGF0aW9uLAorCQkJCQkJCQkJICBi bG9ja25vLAorCQkJCQkJCQkJICBidWZmZXIsCisJCQkJCQkJCQkgIHZtYnVmZmVyLAorCQkJCQkJ CQkJICBwYXJhbXMtPmJsa19rbm93bl9hdiwKKwkJCQkJCQkJCSAgJnByc3RhdGUsCisJCQkJCQkJ CQkgICZwcmVzdWx0LT5uZXdfdm1iaXRzKTsKIAogCS8qCiAJICogbmV3X3ZtYml0cyBzaG91bGQg YmUgMCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIGlzCkBAIC0xMTY5LDcg KzEyMzEsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAq cGFyYW1zLAogCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsKIAkJcHJlc3VsdC0+b2xkX3ZtYml0 cyA9IHZpc2liaWxpdHltYXBfc2V0KHBhcmFtcy0+cmVsYXRpb24sIGJsb2Nrbm8sIGJ1ZmZlciwK IAkJCQkJCQkJCQkJCUludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJCQkJCQkJdm1idWZmZXIsIHBy ZXN1bHQtPnZtX2NvbmZsaWN0X2hvcml6b24sCisJCQkJCQkJCQkJCQl2bWJ1ZmZlciwgdm1fY29u ZmxpY3RfaG9yaXpvbiwKIAkJCQkJCQkJCQkJCXByZXN1bHQtPm5ld192bWJpdHMpOwogCX0KIH0K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA4NjgyMjc3OGFiYy4uOWY0MDRl MDM4NjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTQ2NCwyMCArNDY0 LDYgQEAgc3RhdGljIHZvaWQgZGVhZF9pdGVtc19hZGQoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9j a051bWJlciBibGtubywgT2Zmc2V0TnVtYmVyICoKIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfcmVz ZXQoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfY2xlYW51cChM VlJlbFN0YXRlICp2YWNyZWwpOwogCi0jaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwotc3RhdGlj IGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwK LQkJCQkJCQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCi0JCQkJCQkJCQkgYm9vbCAqYWxs X2Zyb3plbiwKLQkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQs Ci0JCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7Ci0jZW5kaWYKLXN0YXRp YyBib29sIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZl ciBidWYsCi0JCQkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAotCQkJCQkJCQkJ CSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCi0JCQkJCQkJCQkJICAgaW50IG5kZWFkb2Zm c2V0cywKLQkJCQkJCQkJCQkgICBib29sICphbGxfZnJvemVuLAotCQkJCQkJCQkJCSAgIFRyYW5z YWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKLQkJCQkJCQkJCQkgICBPZmZzZXROdW1i ZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKIHN0YXRpYyB2b2lkIHVwZGF0ZV9yZWxzdGF0c19hbGxfaW5k ZXhlcyhMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGljIHZvaWQgdmFjdXVtX2Vycm9yX2NhbGxi YWNrKHZvaWQgKmFyZyk7CiBzdGF0aWMgdm9pZCB1cGRhdGVfdmFjdXVtX2Vycm9yX2luZm8oTFZS ZWxTdGF0ZSAqdmFjcmVsLApAQCAtMjAxNiwzMiArMjAwMiw2IEBAIGxhenlfc2Nhbl9wcnVuZShM VlJlbFN0YXRlICp2YWNyZWwsCiAJCXZhY3JlbC0+bmV3X2Zyb3plbl90dXBsZV9wYWdlcysrOwog CX0KIAotCS8qCi0JICogVkFDVVVNIHdpbGwgY2FsbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUo KSBkdXJpbmcgdGhlIHNlY29uZCBwYXNzIG92ZXIKLQkgKiB0aGUgaGVhcCB0byBkZXRlcm1pbmUg YWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4gZm9yIHRoZSBwYWdlIC0tIHRoaXMKLQkgKiBpcyBh IHNwZWNpYWxpemVkIHZlcnNpb24gb2YgdGhlIGxvZ2ljIGZyb20gdGhpcyBmdW5jdGlvbi4gIE5v dyB0aGF0Ci0JICogd2UndmUgZmluaXNoZWQgcHJ1bmluZyBhbmQgZnJlZXppbmcsIG1ha2Ugc3Vy ZSB0aGF0IHdlJ3JlIGluIHRvdGFsCi0JICogYWdyZWVtZW50IHdpdGggaGVhcF9wYWdlX2lzX2Fs bF92aXNpYmxlKCkgdXNpbmcgYW4gYXNzZXJ0aW9uLgotCSAqLwotI2lmZGVmIFVTRV9BU1NFUlRf Q0hFQ0tJTkcKLQlpZiAocHJlc3VsdC5hbGxfdmlzaWJsZSkKLQl7Ci0JCVRyYW5zYWN0aW9uSWQg ZGVidWdfY3V0b2ZmOwotCQlib29sCQlkZWJ1Z19hbGxfZnJvemVuOwotCi0JCUFzc2VydChwcmVz dWx0LmxwZGVhZF9pdGVtcyA9PSAwKTsKLQotCQlBc3NlcnQoaGVhcF9wYWdlX2lzX2FsbF92aXNp YmxlKHZhY3JlbC0+cmVsLCBidWYsCi0JCQkJCQkJCQkJdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFht aW4sICZkZWJ1Z19hbGxfZnJvemVuLAotCQkJCQkJCQkJCSZkZWJ1Z19jdXRvZmYsICZ2YWNyZWwt Pm9mZm51bSkpOwotCi0JCUFzc2VydChwcmVzdWx0LmFsbF9mcm96ZW4gPT0gZGVidWdfYWxsX2Zy b3plbik7Ci0KLQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChkZWJ1Z19jdXRvZmYpIHx8 Ci0JCQkgICBkZWJ1Z19jdXRvZmYgPT0gcHJlc3VsdC52bV9jb25mbGljdF9ob3Jpem9uKTsKLQl9 Ci0jZW5kaWYKLQogCS8qCiAJICogTm93IHNhdmUgZGV0YWlscyBvZiB0aGUgTFBfREVBRCBpdGVt cyBmcm9tIHRoZSBwYWdlIGluIHZhY3JlbAogCSAqLwpAQCAtMzQ5NiwyOSArMzQ1Niw2IEBAIGRl YWRfaXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwpCiAJdmFjcmVsLT5wdnMgPSBOVUxM OwogfQogCi0jaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwotCi0vKgotICogV3JhcHBlciBmb3Ig aGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKCkgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGNh bGxlcnMKLSAqIHRoYXQgZXhwZWN0IG5vIExQX0RFQUQgb24gdGhlIHBhZ2UuIEN1cnJlbnRseSBh c3NlcnQtb25seSwgYnV0IHRoZXJlIGlzIG5vCi0gKiByZWFzb24gbm90IHRvIHVzZSBpdCBvdXRz aWRlIG9mIGFzc2VydHMuCi0gKi8KLXN0YXRpYyBib29sCi1oZWFwX3BhZ2VfaXNfYWxsX3Zpc2li bGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0 WG1pbiwKLQkJCQkJCSBib29sICphbGxfZnJvemVuLAotCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZp c2liaWxpdHlfY3V0b2ZmX3hpZCwKLQkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVt KQotewotCi0JcmV0dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShyZWwsIGJ1ZiwK LQkJCQkJCQkJCQkgIE9sZGVzdFhtaW4sCi0JCQkJCQkJCQkJICBOVUxMLCAwLAotCQkJCQkJCQkJ CSAgYWxsX2Zyb3plbiwKLQkJCQkJCQkJCQkgIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKLQkJCQkJ CQkJCQkgIGxvZ2dpbmdfb2ZmbnVtKTsKLX0KLSNlbmRpZgogCiAvKgogICogQ2hlY2sgd2hldGhl ciB0aGUgaGVhcCBwYWdlIGluIGJ1ZiBpcyBhbGwtdmlzaWJsZSBleGNlcHQgZm9yIHRoZSBkZWFk CkBAIC0zNTQyLDE1ICszNDc5LDEyIEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlv biByZWwsIEJ1ZmZlciBidWYsCiAgKiAgLSAqbG9nZ2luZ19vZmZudW06IE9mZnNldE51bWJlciBv ZiBjdXJyZW50IHR1cGxlIGJlaW5nIHByb2Nlc3NlZDsKICAqICAgICB1c2VkIGJ5IHZhY3V1bSdz IGVycm9yIGNhbGxiYWNrIHN5c3RlbS4KICAqCi0gKiBDYWxsZXJzIGxvb2tpbmcgdG8gdmVyaWZ5 IHRoYXQgdGhlIHBhZ2UgaXMgYWxyZWFkeSBhbGwtdmlzaWJsZSBjYW4gY2FsbAotICogaGVhcF9w YWdlX2lzX2FsbF92aXNpYmxlKCkuCi0gKgogICogVGhpcyBsb2dpYyBpcyBjbG9zZWx5IHJlbGF0 ZWQgdG8gaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbCgpLgogICogSWYgeW91 IG1vZGlmeSB0aGlzIGZ1bmN0aW9uLCBlbnN1cmUgY29uc2lzdGVuY3kgd2l0aCB0aGF0IGNvZGUu IEFuCiAgKiBhc3NlcnRpb24gY3Jvc3MtY2hlY2tzIHRoYXQgYm90aCByZW1haW4gaW4gYWdyZWVt ZW50LiBEbyBub3QgaW50cm9kdWNlIG5ldwogICogc2lkZS1lZmZlY3RzLgogICovCi1zdGF0aWMg Ym9vbAorYm9vbAogaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwg QnVmZmVyIGJ1ZiwKIAkJCQkJCQkgICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCiAJCQkJCQkJ ICAgT2Zmc2V0TnVtYmVyICpkZWFkb2Zmc2V0cywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCBiYjcxMmM1 YjI5Zi4uMzkyYWY2NTAzZGEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0u aAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTI2Myw4ICsyNjMsNyBAQCB0 eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVBhcmFtcwogCSAqIEhFQVBfUEFHRV9QUlVORV9NQVJL X1VOVVNFRF9OT1cgaW5kaWNhdGVzIHRoYXQgZGVhZCBpdGVtcyBjYW4gYmUgc2V0CiAJICogTFBf VU5VU0VEIGR1cmluZyBwcnVuaW5nLgogCSAqCi0JICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSBp bmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIGFsc28gZnJlZXplIHR1cGxlcywgYW5kCi0JICogd2lsbCBy ZXR1cm4gJ2FsbF92aXNpYmxlJywgJ2FsbF9mcm96ZW4nIGZsYWdzIHRvIHRoZSBjYWxsZXIuCisJ ICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIGFsc28gZnJl ZXplIHR1cGxlcwogCSAqCiAJICogSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTSBpbmRpY2F0ZXMg dGhhdCB3ZSB3aWxsIHNldCB0aGUgcGFnZSdzIHN0YXR1cwogCSAqIGluIHRoZSBWTS4KQEAgLTMw MCwyMSArMjk5LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVlemVSZXN1bHQKIAlpbnQJCQls aXZlX3R1cGxlczsKIAlpbnQJCQlyZWNlbnRseV9kZWFkX3R1cGxlczsKIAotCS8qCi0JICogYWxs X3Zpc2libGUgYW5kIGFsbF9mcm96ZW4gaW5kaWNhdGUgaWYgdGhlIGFsbC12aXNpYmxlIGFuZCBh bGwtZnJvemVuCi0JICogYml0cyBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgY2FuIGJlIHNldCBmb3Ig dGhpcyBwYWdlLCBhZnRlciBwcnVuaW5nLgotCSAqCi0JICogdm1fY29uZmxpY3RfaG9yaXpvbiBp cyB0aGUgbmV3ZXN0IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuICBUaGUKLQkgKiBj YWxsZXIgY2FuIHVzZSBpdCBhcyB0aGUgY29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhl IFZNIGJpdHMuICBJdAotCSAqIGlzIG9ubHkgdmFsaWQgaWYgd2UgZnJvemUgc29tZSB0dXBsZXMg KG5mcm96ZW4gPiAwKSwgYW5kIGFsbF9mcm96ZW4gaXMKLQkgKiB0cnVlLgotCSAqCi0JICogVGhl c2UgYXJlIG9ubHkgc2V0IGlmIHRoZSBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0Lgot CSAqLwotCWJvb2wJCWFsbF92aXNpYmxlOwotCWJvb2wJCWFsbF9mcm96ZW47Ci0JVHJhbnNhY3Rp b25JZCB2bV9jb25mbGljdF9ob3Jpem9uOwotCiAJLyoKIAkgKiBvbGRfdm1iaXRzIGFyZSB0aGUg c3RhdGUgb2YgdGhlIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuIGJpdHMgaW4gdGhlCiAJICog dmlzaWJpbGl0eSBtYXAgYmVmb3JlIHVwZGF0aW5nIGl0IGR1cmluZyBwaGFzZSBJIG9mIHZhY3V1 bWluZy4KQEAgLTQ2MCw2ICs0NDQsMTMgQEAgZXh0ZXJuIHZvaWQgbG9nX2hlYXBfcHJ1bmVfYW5k X2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIC8qIGluIGhlYXAvdmFj dXVtbGF6eS5jICovCiBleHRlcm4gdm9pZCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLAog CQkJCQkJCWNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsIEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IGJz dHJhdGVneSk7CitleHRlcm4gYm9vbCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVs YXRpb24gcmVsLCBCdWZmZXIgYnVmLAorCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgT2xkZXN0 WG1pbiwKKwkJCQkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAorCQkJCQkJCQkJ CSAgIGludCBuZGVhZG9mZnNldHMsCisJCQkJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKKwkJ CQkJCQkJCQkgICBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJ CQkJICAgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CiAKIC8qIGluIGhlYXAvaGVhcGFt X3Zpc2liaWxpdHkuYyAqLwogZXh0ZXJuIGJvb2wgSGVhcFR1cGxlU2F0aXNmaWVzVmlzaWJpbGl0 eShIZWFwVHVwbGUgaHR1cCwgU25hcHNob3Qgc25hcHNob3QsCi0tIAoyLjQzLjAKCg== --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="US-ASCII"; name="v24-0007-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Disposition: attachment; filename="v24-0007-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvek5i6 RnJvbSBiMTkxNjk1YWZjYmE0MzhhZThjNWQxYzNiNGQ1OTM5Yzc2ZDIyYTRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIgRGVjIDIwMjUgMTY6MTY6MjIgLTA1MDAKU3ViamVjdDogW1BB VENIIHYyNCAwNy8xNl0gRWxpbWluYXRlIFhMT0dfSEVBUDJfVklTSUJMRSBmcm9tIHZhY3V1bSBw aGFzZSBJCiBwcnVuZS9mcmVlemUKClZhY3V1bSBubyBsb25nZXIgZW1pdHMgYSBzZXBhcmF0ZSBX QUwgcmVjb3JkIGZvciBlYWNoIHBhZ2Ugc2V0CmFsbC12aXNpYmxlIG9yIGFsbC1mcm96ZW4gZHVy aW5nIHBoYXNlIEkuIEluc3RlYWQsIHZpc2liaWxpdHkgbWFwCnVwZGF0ZXMgYXJlIG5vdyBpbmNs dWRlZCBpbiB0aGUgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTiByZWNvcmQgdGhhdAppcyBh bHJlYWR5IGVtaXR0ZWQgZm9yIHBydW5pbmcgYW5kIGZyZWV6aW5nLgoKUHJldmlvdXNseSwgaGVh cF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSBkZXRlcm1pbmVkIHdoZXRoZXIgYSBwYWdlIHdhcwph bGwtdmlzaWJsZSwgYnV0IHRoZSBjb3JyZXNwb25kaW5nIFZNIGJpdHMgd2VyZSBvbmx5IHNldCBs YXRlciBpbgpsYXp5X3NjYW5fcHJ1bmUoKS4gTm93IHRoZSBWTSBpcyB1cGRhdGVkIGltbWVkaWF0 ZWx5IGluCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCksIGF0IHRoZSBzYW1lIHRpbWUgYXMg dGhlIGhlYXAKbW9kaWZpY2F0aW9ucy4KClRoaXMgY2hhbmdlIGFwcGxpZXMgb25seSB0byB2YWN1 dW0gcGhhc2UgSSwgbm90IHRvIHBydW5pbmcgcGVyZm9ybWVkCmR1cmluZyBub3JtYWwgcGFnZSBh Y2Nlc3MuCgpOT1RFOiBUaGlzIGNvbW1pdCBpcyB0aGUgbWFpbiBjb21taXQgYW5kIGFsbCByZXZp ZXctb25seSBjb21taXRzCnByZWNlZGluZyBpdCB3aWxsIGJlIHNxdWFzaGVkIGludG8gaXQuCgpB dXRob3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmll d2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBS b2JlcnQgSGFhcyA8cm9iZXJ0bWhhYXNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogS2lyaWxsIFJl c2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2 YW4uY2hhb0BnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxhdC9D QUFLUnVfWk13Nk5wZF9xbTJLTSUyQkZ3UTNjTU9NeDFEaDNWTWhwOC1WN1NPTHhkSzktZyU0MG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgfCAy NTUgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE0NCBpbnNl cnRpb25zKCspLCAxMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwppbmRleCA5NmRjOTAyZWMxMi4uNDg5Yjg0ODc1OTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3By dW5laGVhcC5jCkBAIC0xOTQsNiArMTk0LDEyIEBAIHN0YXRpYyB2b2lkIHBhZ2VfdmVyaWZ5X3Jl ZGlyZWN0cyhQYWdlIHBhZ2UpOwogc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfZnJlZXplKFJl bGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJCQkgIGJvb2wgZGlkX3R1cGxl X2hpbnRfZnBpLCBib29sIGRvX3BydW5lLCBib29sIGRvX2hpbnRfcHJ1bmUsCiAJCQkJCQkJCSAg UHJ1bmVTdGF0ZSAqcHJzdGF0ZSk7CitzdGF0aWMgVHJhbnNhY3Rpb25JZCBnZXRfY29uZmxpY3Rf eGlkKGJvb2wgZG9fcHJ1bmUsIGJvb2wgZG9fZnJlZXplLCBib29sIGRvX3NldF92bSwKKwkJCQkJ CQkJCSAgdWludDggbmV3X3ZtYml0cywKKwkJCQkJCQkJCSAgVHJhbnNhY3Rpb25JZCBsYXRlc3Rf eGlkX3JlbW92ZWQsCisJCQkJCQkJCQkgIFRyYW5zYWN0aW9uSWQgZnJ6X2NvbmZsaWN0X2hvcml6 b24sCisJCQkJCQkJCQkgIFRyYW5zYWN0aW9uSWQgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJ CQkJCQkJICBib29sIGJsa19hbHJlYWR5X2F2KTsKIHN0YXRpYyBib29sIGhlYXBfcGFnZV93aWxs X3NldF92bShSZWxhdGlvbiByZWxhdGlvbiwKIAkJCQkJCQkJICBCbG9ja051bWJlciBoZWFwX2Js aywKIAkJCQkJCQkJICBCdWZmZXIgaGVhcF9idWYsCkBAIC03ODIsNiArNzg4LDY0IEBAIGhlYXBf cGFnZV93aWxsX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAlyZXR1 cm4gZG9fZnJlZXplOwogfQogCisvKgorICogQ2FsY3VsYXRlIHRoZSBjb25mbGljdCBob3Jpem9u IGZvciB0aGUgd2hvbGUgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTgorICogb3IgWExPR19I RUFQMl9QUlVORV9PTl9BQ0NFU1MgcmVjb3JkLgorICovCitzdGF0aWMgVHJhbnNhY3Rpb25JZAor Z2V0X2NvbmZsaWN0X3hpZChib29sIGRvX3BydW5lLCBib29sIGRvX2ZyZWV6ZSwgYm9vbCBkb19z ZXRfdm0sIHVpbnQ4IG5ld192bWJpdHMsCisJCQkJIFRyYW5zYWN0aW9uSWQgbGF0ZXN0X3hpZF9y ZW1vdmVkLCBUcmFuc2FjdGlvbklkIGZyel9jb25mbGljdF9ob3Jpem9uLAorCQkJCSBUcmFuc2Fj dGlvbklkIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCwgYm9vbCBibGtfYWxyZWFkeV9hdikKK3sKKwlU cmFuc2FjdGlvbklkIGNvbmZsaWN0X3hpZDsKKworCS8qCisJICogV2UgY2FuIG9taXQgdGhlIHNu YXBzaG90IGNvbmZsaWN0IGhvcml6b24gaWYgd2UgYXJlIG5vdCBwcnVuaW5nIG9yCisJICogZnJl ZXppbmcgYW55IHR1cGxlcyBhbmQgYXJlIHNldHRpbmcgYW4gYWxyZWFkeSBhbGwtdmlzaWJsZSBw YWdlCisJICogYWxsLWZyb3plbiBpbiB0aGUgVk0uIEluIHRoaXMgY2FzZSwgYWxsIG9mIHRoZSB0 dXBsZXMgb24gdGhlIHBhZ2UgbXVzdAorCSAqIGFscmVhZHkgYmUgdmlzaWJsZSB0byBhbGwgTVZD QyBzbmFwc2hvdHMgb24gdGhlIHN0YW5kYnkuCisJICovCisJaWYgKCFkb19wcnVuZSAmJiAhZG9f ZnJlZXplICYmCisJCWRvX3NldF92bSAmJiBibGtfYWxyZWFkeV9hdiAmJiAobmV3X3ZtYml0cyAm IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikpCisJCXJldHVybiBJbnZhbGlkVHJhbnNhY3Rpb25J ZDsKKworCS8qCisJICogVGhlIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uIGZvciB0aGUgd2hvbGUg cmVjb3JkIHNob3VsZCBiZSB0aGUgbW9zdAorCSAqIGNvbnNlcnZhdGl2ZSBvZiBhbGwgdGhlIGhv cml6b25zIGNhbGN1bGF0ZWQgZm9yIGFueSBvZiB0aGUgcG9zc2libGUKKwkgKiBtb2RpZmljYXRp b25zLiAgSWYgdGhpcyByZWNvcmQgd2lsbCBwcnVuZSB0dXBsZXMsIGFueSB0cmFuc2FjdGlvbnMg b24KKwkgKiB0aGUgc3RhbmRieSBvbGRlciB0aGFuIHRoZSB5b3VuZ2VzdCB4bWF4IG9mIHRoZSBt b3N0IHJlY2VudGx5IHJlbW92ZWQKKwkgKiB0dXBsZSB0aGlzIHJlY29yZCB3aWxsIHBydW5lIHdp bGwgY29uZmxpY3QuICBJZiB0aGlzIHJlY29yZCB3aWxsIGZyZWV6ZQorCSAqIHR1cGxlcywgYW55 IHRyYW5zYWN0aW9ucyBvbiB0aGUgc3RhbmRieSB3aXRoIHhpZHMgb2xkZXIgdGhhbiB0aGUKKwkg KiB5b3VuZ2VzdCB0dXBsZSB0aGlzIHJlY29yZCB3aWxsIGZyZWV6ZSB3aWxsIGNvbmZsaWN0Lgor CSAqLworCWNvbmZsaWN0X3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOworCisJLyoKKwkgKiBJ ZiB3ZSBhcmUgdXBkYXRpbmcgdGhlIFZNLCB0aGUgY29uZmxpY3QgaG9yaXpvbiBpcyBhbG1vc3Qg YWx3YXlzIHRoZQorCSAqIHZpc2liaWxpdHkgY3V0b2ZmIFhJRC4KKwkgKgorCSAqIFNlcGFyYXRl bHksIGlmIHdlIGFyZSBmcmVlemluZyBhbnkgdHVwbGVzLCBhcyBhbiBvcHRpbWl6YXRpb24sIHdl IGNhbgorCSAqIHVzZSB0aGUgdmlzaWJpbGl0eV9jdXRvZmZfeGlkIGFzIHRoZSBjb25mbGljdCBo b3Jpem9uIGlmIHRoZSBwYWdlIHdpbGwKKwkgKiBiZSBhbGwtZnJvemVuLiBUaGlzIGlzIHRydWUg ZXZlbiBpZiB0aGVyZSBhcmUgTFBfREVBRCBsaW5lIHBvaW50ZXJzCisJICogYmVjYXVzZSB3ZSBp Z25vcmVkIHRob3NlIHdoZW4gbWFpbnRhaW5pbmcgdGhlIHZpc2liaWxpdHlfY3V0b2ZmX3hpZC4K KwkgKiBUaGlzIHdpbGwgaGF2ZSBiZWVuIGNhbGN1bGF0ZWQgZWFybGllciBhcyB0aGUgZnJ6X2Nv bmZsaWN0X2hvcml6b24gd2hlbgorCSAqIHdlIGRldGVybWluZWQgd2Ugd291bGQgZnJlZXplLgor CSAqLworCWlmIChkb19zZXRfdm0pCisJCWNvbmZsaWN0X3hpZCA9IHZpc2liaWxpdHlfY3V0b2Zm X3hpZDsKKwllbHNlIGlmIChkb19mcmVlemUpCisJCWNvbmZsaWN0X3hpZCA9IGZyel9jb25mbGlj dF9ob3Jpem9uOworCisJLyoKKwkgKiBJZiB3ZSBhcmUgcmVtb3ZpbmcgdHVwbGVzIHdpdGggYSB5 b3VuZ2VyIHhtYXggdGhhbiBvdXIgc28gZmFyCisJICogY2FsY3VsYXRlZCBjb25mbGljdF94aWQs IHdlIG11c3QgdXNlIHRoaXMgYXMgb3VyIGhvcml6b24uCisJICovCisJaWYgKFRyYW5zYWN0aW9u SWRGb2xsb3dzKGxhdGVzdF94aWRfcmVtb3ZlZCwgY29uZmxpY3RfeGlkKSkKKwkJY29uZmxpY3Rf eGlkID0gbGF0ZXN0X3hpZF9yZW1vdmVkOworCisJcmV0dXJuIGNvbmZsaWN0X3hpZDsKK30KKwog LyoKICAqIERlY2lkZSB3aGV0aGVyIHRvIHNldCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0cyAoYWxs LXZpc2libGUgYW5kIGFsbC1mcm96ZW4pCiAgKiBmb3IgaGVhcF9ibGsgdXNpbmcgaW5mb3JtYXRp b24gZnJvbSBQcnVuZVN0YXRlIGFuZCBibGtfa25vd25fYXYuIFNvbWUKQEAgLTk2OSw3ICsxMDMz LDYgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFt cywKIAlCdWZmZXIJCXZtYnVmZmVyID0gcGFyYW1zLT52bWJ1ZmZlcjsKIAlQYWdlCQlwYWdlID0g QnVmZmVyR2V0UGFnZShidWZmZXIpOwogCUJsb2NrTnVtYmVyIGJsb2Nrbm8gPSBCdWZmZXJHZXRC bG9ja051bWJlcihidWZmZXIpOwotCVRyYW5zYWN0aW9uSWQgdm1fY29uZmxpY3RfaG9yaXpvbiA9 IEludmFsaWRUcmFuc2FjdGlvbklkOwogCVBydW5lU3RhdGUJcHJzdGF0ZTsKIAlib29sCQlkb19m cmVlemU7CiAJYm9vbAkJZG9fcHJ1bmU7CkBAIC05NzcsNiArMTA0MCw5IEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJYm9vbAkJZG9fc2V0 X3ZtOwogCWJvb2wJCWRpZF90dXBsZV9oaW50X2ZwaTsKIAlpbnQ2NAkJZnBpX2JlZm9yZSA9IHBn V2FsVXNhZ2Uud2FsX2ZwaTsKKwlUcmFuc2FjdGlvbklkIGNvbmZsaWN0X3hpZCA9IEludmFsaWRU cmFuc2FjdGlvbklkOworCXVpbnQ4CQluZXdfdm1iaXRzID0gMDsKKwl1aW50OAkJb2xkX3ZtYml0 cyA9IDA7CiAKIAkvKiBJbml0aWFsaXplIHByc3RhdGUgKi8KIAlwcnVuZV9mcmVlemVfc2V0dXAo cGFyYW1zLApAQCAtMTAzOCw2ICsxMTA0LDM2IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXpl KFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCXByc3RhdGUuYWxsX3Zpc2libGUgPSBwcnN0 YXRlLmFsbF9mcm96ZW4gPSBmYWxzZTsKIAogCUFzc2VydCghcHJzdGF0ZS5hbGxfZnJvemVuIHx8 IHByc3RhdGUuYWxsX3Zpc2libGUpOworCUFzc2VydCghcHJzdGF0ZS5hbGxfdmlzaWJsZSB8fCAo cHJzdGF0ZS5scGRlYWRfaXRlbXMgPT0gMCkpOworCisJLyoKKwkgKiBEZWNpZGUgd2hldGhlciB0 byBzZXQgdGhlIHBhZ2UtbGV2ZWwgUERfQUxMX1ZJU0lCTEUgYml0IGFuZCB0aGUgVk0gYml0cwor CSAqIGJhc2VkIG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFZNIGFuZCB0aGUgYWxsX3Zpc2libGUv YWxsX2Zyb3plbiBmbGFncy4KKwkgKgorCSAqIFdoaWxlIGl0IGlzIHZhbGlkIGZvciBQRF9BTExf VklTSUJMRSB0byBiZSBzZXQgd2hlbiB0aGUgY29ycmVzcG9uZGluZworCSAqIFZNIGJpdCBpcyBj bGVhciwgd2Ugc3Ryb25nbHkgcHJlZmVyIHRvIGtlZXAgdGhlbSBpbiBzeW5jLgorCSAqCisJICog QWNjb3JkaW5nbHksIHdlIGFsc28gYWxsb3cgdXBkYXRpbmcgb25seSB0aGUgVk0gd2hlbiBQRF9B TExfVklTSUJMRSBoYXMKKwkgKiBhbHJlYWR5IGJlZW4gc2V0LiBTZXR0aW5nIG9ubHkgdGhlIFZN IGlzIG1vc3QgY29tbW9uIHdoZW4gc2V0dGluZyBhbgorCSAqIGFscmVhZHkgYWxsLXZpc2libGUg cGFnZSBhbGwtZnJvemVuLgorCSAqLworCWRvX3NldF92bSA9IGhlYXBfcGFnZV93aWxsX3NldF92 bShwYXJhbXMtPnJlbGF0aW9uLAorCQkJCQkJCQkJICBibG9ja25vLCBidWZmZXIsIHZtYnVmZmVy LCBwYXJhbXMtPmJsa19rbm93bl9hdiwKKwkJCQkJCQkJCSAgJnByc3RhdGUsICZuZXdfdm1iaXRz KTsKKworCS8qCisJICogbmV3X3ZtYml0cyBzaG91bGQgYmUgMCByZWdhcmRsZXNzIG9mIHdoZXRo ZXIgb3Igbm90IHRoZSBwYWdlIGlzCisJICogYWxsLXZpc2libGUgaWYgd2UgZG8gbm90IGludGVu ZCB0byBzZXQgdGhlIFZNLgorCSAqLworCUFzc2VydChkb19zZXRfdm0gfHwgbmV3X3ZtYml0cyA9 PSAwKTsKKworCWNvbmZsaWN0X3hpZCA9IGdldF9jb25mbGljdF94aWQoZG9fcHJ1bmUsIGRvX2Zy ZWV6ZSwgZG9fc2V0X3ZtLCBuZXdfdm1iaXRzLAorCQkJCQkJCQkJcHJzdGF0ZS5sYXRlc3RfeGlk X3JlbW92ZWQsIHByc3RhdGUuZnJ6X2NvbmZsaWN0X2hvcml6b24sCisJCQkJCQkJCQlwcnN0YXRl LnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwgcGFyYW1zLT5ibGtfa25vd25fYXYpOworCisJLyogTG9j ayB2bWJ1ZmZlciBiZWZvcmUgZW50ZXJpbmcgYSBjcml0aWNhbCBzZWN0aW9uICovCisJaWYgKGRv X3NldF92bSkKKwkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfRVhDTFVTSVZFKTsK IAogCS8qIEFueSBlcnJvciB3aGlsZSBhcHBseWluZyB0aGUgY2hhbmdlcyBpcyBjcml0aWNhbCAq LwogCVNUQVJUX0NSSVRfU0VDVElPTigpOwpAQCAtMTA1OSwxNCArMTE1NSwxNyBAQCBoZWFwX3Bh Z2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCiAJCS8qCiAJ CSAqIElmIHRoYXQncyBhbGwgd2UgaGFkIHRvIGRvIHRvIHRoZSBwYWdlLCB0aGlzIGlzIGEgbm9u LVdBTC1sb2dnZWQKLQkJICogaGludC4gIElmIHdlIGFyZSBnb2luZyB0byBmcmVlemUgb3IgcHJ1 bmUgdGhlIHBhZ2UsIHdlIHdpbGwgbWFyawotCQkgKiB0aGUgYnVmZmVyIGRpcnR5IGJlbG93Lgor CQkgKiBoaW50LiAgSWYgd2UgYXJlIGdvaW5nIHRvIGZyZWV6ZSBvciBwcnVuZSB0aGUgcGFnZSBv ciBzZXQKKwkJICogUERfQUxMX1ZJU0lCTEUsIHdlIHdpbGwgbWFyayB0aGUgYnVmZmVyIGRpcnR5 IGJlbG93LgorCQkgKgorCQkgKiBTZXR0aW5nIFBEX0FMTF9WSVNJQkxFIGlzIGZ1bGx5IFdBTC1s b2dnZWQgYmVjYXVzZSBpdCBpcyBmb3JiaWRkZW4KKwkJICogZm9yIHRoZSBWTSB0byBiZSBzZXQg YW5kIFBEX0FMTF9WSVNJQkxFIHRvIGJlIGNsZWFyLgogCQkgKi8KLQkJaWYgKCFkb19mcmVlemUg JiYgIWRvX3BydW5lKQorCQlpZiAoIWRvX2ZyZWV6ZSAmJiAhZG9fcHJ1bmUgJiYgIWRvX3NldF92 bSkKIAkJCU1hcmtCdWZmZXJEaXJ0eUhpbnQoYnVmZmVyLCB0cnVlKTsKIAl9CiAKLQlpZiAoZG9f cHJ1bmUgfHwgZG9fZnJlZXplKQorCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUgfHwgZG9fc2V0 X3ZtKQogCXsKIAkJLyogQXBwbHkgdGhlIHBsYW5uZWQgaXRlbSBjaGFuZ2VzIGFuZCByZXBhaXIg cGFnZSBmcmFnbWVudGF0aW9uLiAqLwogCQlpZiAoZG9fcHJ1bmUpCkBAIC0xMDgwLDYgKzExNzks MTUgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFt cywKIAkJaWYgKGRvX2ZyZWV6ZSkKIAkJCWhlYXBfZnJlZXplX3ByZXBhcmVkX3R1cGxlcyhidWZm ZXIsIHByc3RhdGUuZnJvemVuLCBwcnN0YXRlLm5mcm96ZW4pOwogCisJCWlmIChkb19zZXRfdm0p CisJCXsKKwkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOworCQkJb2xkX3ZtYml0cyA9IHZpc2li aWxpdHltYXBfc2V0X3ZtYml0cyhibG9ja25vLAorCQkJCQkJCQkJCQkJICB2bWJ1ZmZlciwgbmV3 X3ZtYml0cywKKwkJCQkJCQkJCQkJCSAgcGFyYW1zLT5yZWxhdGlvbi0+cmRfbG9jYXRvcik7CisJ CQlBc3NlcnQob2xkX3ZtYml0cyAhPSBuZXdfdm1iaXRzKTsKKwkJfQorCiAJCU1hcmtCdWZmZXJE aXJ0eShidWZmZXIpOwogCiAJCS8qCkBAIC0xMDg3LDI5ICsxMTk1LDEyIEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCSAqLwogCQlpZiAo UmVsYXRpb25OZWVkc1dBTChwYXJhbXMtPnJlbGF0aW9uKSkKIAkJewotCQkJLyoKLQkJCSAqIFRo ZSBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiBmb3IgdGhlIHdob2xlIHJlY29yZCBzaG91bGQgYmUg dGhlCi0JCQkgKiBtb3N0IGNvbnNlcnZhdGl2ZSBvZiBhbGwgdGhlIGhvcml6b25zIGNhbGN1bGF0 ZWQgZm9yIGFueSBvZiB0aGUKLQkJCSAqIHBvc3NpYmxlIG1vZGlmaWNhdGlvbnMuICBJZiB0aGlz IHJlY29yZCB3aWxsIHBydW5lIHR1cGxlcywgYW55Ci0JCQkgKiB0cmFuc2FjdGlvbnMgb24gdGhl IHN0YW5kYnkgb2xkZXIgdGhhbiB0aGUgeW91bmdlc3QgeG1heCBvZiB0aGUKLQkJCSAqIG1vc3Qg cmVjZW50bHkgcmVtb3ZlZCB0dXBsZSB0aGlzIHJlY29yZCB3aWxsIHBydW5lIHdpbGwKLQkJCSAq IGNvbmZsaWN0LiAgSWYgdGhpcyByZWNvcmQgd2lsbCBmcmVlemUgdHVwbGVzLCBhbnkgdHJhbnNh Y3Rpb25zCi0JCQkgKiBvbiB0aGUgc3RhbmRieSB3aXRoIHhpZHMgb2xkZXIgdGhhbiB0aGUgeW91 bmdlc3QgdHVwbGUgdGhpcwotCQkJICogcmVjb3JkIHdpbGwgZnJlZXplIHdpbGwgY29uZmxpY3Qu Ci0JCQkgKi8KLQkJCVRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkOwotCi0JCQlpZiAoVHJhbnNh Y3Rpb25JZEZvbGxvd3MocHJzdGF0ZS5mcnpfY29uZmxpY3RfaG9yaXpvbiwKLQkJCQkJCQkJCSBw cnN0YXRlLmxhdGVzdF94aWRfcmVtb3ZlZCkpCi0JCQkJY29uZmxpY3RfeGlkID0gcHJzdGF0ZS5m cnpfY29uZmxpY3RfaG9yaXpvbjsKLQkJCWVsc2UKLQkJCQljb25mbGljdF94aWQgPSBwcnN0YXRl LmxhdGVzdF94aWRfcmVtb3ZlZDsKLQogCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShwYXJh bXMtPnJlbGF0aW9uLCBidWZmZXIsCi0JCQkJCQkJCQkgIEludmFsaWRCdWZmZXIsCS8qIHZtYnVm ZmVyICovCi0JCQkJCQkJCQkgIDAsCS8qIHZtZmxhZ3MgKi8KKwkJCQkJCQkJCSAgZG9fc2V0X3Zt ID8gdm1idWZmZXIgOiBJbnZhbGlkQnVmZmVyLAorCQkJCQkJCQkJICBkb19zZXRfdm0gPyBuZXdf dm1iaXRzIDogMCwKIAkJCQkJCQkJCSAgY29uZmxpY3RfeGlkLAotCQkJCQkJCQkJICB0cnVlLCBw YXJhbXMtPnJlYXNvbiwKKwkJCQkJCQkJCSAgdHJ1ZSwgLyogY2xlYW51cCBsb2NrICovCisJCQkJ CQkJCQkgIHBhcmFtcy0+cmVhc29uLAogCQkJCQkJCQkJICBwcnN0YXRlLmZyb3plbiwgcHJzdGF0 ZS5uZnJvemVuLAogCQkJCQkJCQkJICBwcnN0YXRlLnJlZGlyZWN0ZWQsIHByc3RhdGUubnJlZGly ZWN0ZWQsCiAJCQkJCQkJCQkgIHByc3RhdGUubm93ZGVhZCwgcHJzdGF0ZS5uZGVhZCwKQEAgLTEx MTksNDYgKzEyMTAsOCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBh cmFtcyAqcGFyYW1zLAogCiAJRU5EX0NSSVRfU0VDVElPTigpOwogCi0JLyogQ29weSBpbmZvcm1h dGlvbiBiYWNrIGZvciBjYWxsZXIgKi8KLQlwcmVzdWx0LT5uZGVsZXRlZCA9IHByc3RhdGUubmRl bGV0ZWQ7Ci0JcHJlc3VsdC0+bm5ld2xwZGVhZCA9IHByc3RhdGUubmRlYWQ7Ci0JcHJlc3VsdC0+ bmZyb3plbiA9IHByc3RhdGUubmZyb3plbjsKLQlwcmVzdWx0LT5saXZlX3R1cGxlcyA9IHByc3Rh dGUubGl2ZV90dXBsZXM7Ci0JcHJlc3VsdC0+cmVjZW50bHlfZGVhZF90dXBsZXMgPSBwcnN0YXRl LnJlY2VudGx5X2RlYWRfdHVwbGVzOwotCXByZXN1bHQtPmhhc3R1cCA9IHByc3RhdGUuaGFzdHVw OwotCi0JcHJlc3VsdC0+bHBkZWFkX2l0ZW1zID0gcHJzdGF0ZS5scGRlYWRfaXRlbXM7Ci0JLyog dGhlIHByZXN1bHQtPmRlYWRvZmZzZXRzIGFycmF5IHdhcyBhbHJlYWR5IGZpbGxlZCBpbiAqLwot Ci0JaWYgKHByc3RhdGUuYXR0ZW1wdF9mcmVlemUpCi0JewotCQlpZiAocHJlc3VsdC0+bmZyb3pl biA+IDApCi0JCXsKLQkJCSpuZXdfcmVsZnJvemVuX3hpZCA9IHByc3RhdGUucGFnZWZyei5GcmVl emVQYWdlUmVsZnJvemVuWGlkOwotCQkJKm5ld19yZWxtaW5fbXhpZCA9IHByc3RhdGUucGFnZWZy ei5GcmVlemVQYWdlUmVsbWluTXhpZDsKLQkJfQotCQllbHNlCi0JCXsKLQkJCSpuZXdfcmVsZnJv emVuX3hpZCA9IHByc3RhdGUucGFnZWZyei5Ob0ZyZWV6ZVBhZ2VSZWxmcm96ZW5YaWQ7Ci0JCQkq bmV3X3JlbG1pbl9teGlkID0gcHJzdGF0ZS5wYWdlZnJ6Lk5vRnJlZXplUGFnZVJlbG1pbk14aWQ7 Ci0JCX0KLQl9Ci0KLQlwcmVzdWx0LT5uZXdfdm1iaXRzID0gMDsKLQlwcmVzdWx0LT5vbGRfdm1i aXRzID0gMDsKLQotCS8qCi0JICogSWYgdXBkYXRpbmcgdGhlIHZpc2liaWxpdHkgbWFwLCB0aGUg Y29uZmxpY3QgaG9yaXpvbiBmb3IgdGhhdCByZWNvcmQKLQkgKiBtdXN0IGJlIHRoZSBuZXdlc3Qg eG1pbiBvbiB0aGUgcGFnZS4gIEhvd2V2ZXIsIGlmIHRoZSBwYWdlIGlzCi0JICogY29tcGxldGVs eSBmcm96ZW4sIHRoZXJlIGNhbiBiZSBubyBjb25mbGljdCBhbmQgdGhlIHZtX2NvbmZsaWN0X2hv cml6b24KLQkgKiBzaG91bGQgcmVtYWluIEludmFsaWRUcmFuc2FjdGlvbklkLiAgVGhpcyBpbmNs dWRlcyB0aGUgY2FzZSB0aGF0IHdlCi0JICoganVzdCBmcm96ZSBhbGwgdGhlIHR1cGxlczsgdGhl IHBydW5lLWZyZWV6ZSByZWNvcmQgaW5jbHVkZWQgdGhlCi0JICogY29uZmxpY3QgWElEIGFscmVh ZHkgc28gd2UgZG9uJ3QgbmVlZCB0byBhZ2Fpbi4KLQkgKi8KLQlpZiAocHJzdGF0ZS5hbGxfZnJv emVuKQotCQl2bV9jb25mbGljdF9ob3Jpem9uID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7Ci0JZWxz ZQotCQl2bV9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7 CisJaWYgKGRvX3NldF92bSkKKwkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5M T0NLKTsKIAogCS8qCiAJICogRHVyaW5nIGl0cyBzZWNvbmQgcGFzcyBvdmVyIHRoZSBoZWFwLCBW QUNVVU0gY2FsbHMKQEAgLTExNzMsNyArMTIyNiw4IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCVRyYW5zYWN0aW9uSWQgZGVidWdfY3V0 b2ZmOwogCQlib29sCQlkZWJ1Z19hbGxfZnJvemVuOwogCi0JCUFzc2VydChwcmVzdWx0LT5scGRl YWRfaXRlbXMgPT0gMCk7CisJCUFzc2VydChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKTsKKwkJ QXNzZXJ0KHByc3RhdGUuY3V0b2Zmcyk7CiAKIAkJQXNzZXJ0KGhlYXBfcGFnZV9pc19hbGxfdmlz aWJsZShwYXJhbXMtPnJlbGF0aW9uLCBidWZmZXIsCiAJCQkJCQkJCQkJcHJzdGF0ZS5jdXRvZmZz LT5PbGRlc3RYbWluLApAQCAtMTE4Myw1NiArMTIzNywzNSBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5k X2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQlBc3NlcnQocHJzdGF0ZS5hbGxf ZnJvemVuID09IGRlYnVnX2FsbF9mcm96ZW4pOwogCiAJCUFzc2VydCghVHJhbnNhY3Rpb25JZElz VmFsaWQoZGVidWdfY3V0b2ZmKSB8fAotCQkJICAgZGVidWdfY3V0b2ZmID09IHZtX2NvbmZsaWN0 X2hvcml6b24pOworCQkJICAgZGVidWdfY3V0b2ZmID09IHByc3RhdGUudmlzaWJpbGl0eV9jdXRv ZmZfeGlkKTsKIAl9CiAjZW5kaWYKIAotCUFzc2VydCghcHJzdGF0ZS5hbGxfZnJvemVuIHx8IHBy c3RhdGUuYWxsX3Zpc2libGUpOwotCUFzc2VydCghcHJzdGF0ZS5hbGxfdmlzaWJsZSB8fCAocHJz dGF0ZS5scGRlYWRfaXRlbXMgPT0gMCkpOwotCi0JLyoKLQkgKiBEZWNpZGUgd2hldGhlciB0byBz ZXQgdGhlIHBhZ2UtbGV2ZWwgUERfQUxMX1ZJU0lCTEUgYml0IGFuZCB0aGUgVk0gYml0cwotCSAq IGJhc2VkIG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFZNIGFuZCB0aGUgYWxsX3Zpc2libGUvYWxs X2Zyb3plbiBmbGFncy4KLQkgKgotCSAqIFdoaWxlIGl0IGlzIHZhbGlkIGZvciBQRF9BTExfVklT SUJMRSB0byBiZSBzZXQgd2hlbiB0aGUgY29ycmVzcG9uZGluZwotCSAqIFZNIGJpdCBpcyBjbGVh ciwgd2Ugc3Ryb25nbHkgcHJlZmVyIHRvIGtlZXAgdGhlbSBpbiBzeW5jLgotCSAqCi0JICogQWNj b3JkaW5nbHksIHdlIGFsc28gYWxsb3cgdXBkYXRpbmcgb25seSB0aGUgVk0gd2hlbiBQRF9BTExf VklTSUJMRSBoYXMKLQkgKiBhbHJlYWR5IGJlZW4gc2V0LiBTZXR0aW5nIG9ubHkgdGhlIFZNIGlz IG1vc3QgY29tbW9uIHdoZW4gc2V0dGluZyBhbgotCSAqIGFscmVhZHkgYWxsLXZpc2libGUgcGFn ZSBhbGwtZnJvemVuLgotCSAqLwotCWRvX3NldF92bSA9IGhlYXBfcGFnZV93aWxsX3NldF92bShw YXJhbXMtPnJlbGF0aW9uLAotCQkJCQkJCQkJICBibG9ja25vLAotCQkJCQkJCQkJICBidWZmZXIs Ci0JCQkJCQkJCQkgIHZtYnVmZmVyLAotCQkJCQkJCQkJICBwYXJhbXMtPmJsa19rbm93bl9hdiwK LQkJCQkJCQkJCSAgJnByc3RhdGUsCi0JCQkJCQkJCQkgICZwcmVzdWx0LT5uZXdfdm1iaXRzKTsK KwkvKiBDb3B5IGluZm9ybWF0aW9uIGJhY2sgZm9yIGNhbGxlciAqLworCXByZXN1bHQtPm5kZWxl dGVkID0gcHJzdGF0ZS5uZGVsZXRlZDsKKwlwcmVzdWx0LT5ubmV3bHBkZWFkID0gcHJzdGF0ZS5u ZGVhZDsKKwlwcmVzdWx0LT5uZnJvemVuID0gcHJzdGF0ZS5uZnJvemVuOworCXByZXN1bHQtPmxp dmVfdHVwbGVzID0gcHJzdGF0ZS5saXZlX3R1cGxlczsKKwlwcmVzdWx0LT5yZWNlbnRseV9kZWFk X3R1cGxlcyA9IHByc3RhdGUucmVjZW50bHlfZGVhZF90dXBsZXM7CisJcHJlc3VsdC0+aGFzdHVw ID0gcHJzdGF0ZS5oYXN0dXA7CisJcHJlc3VsdC0+bmV3X3ZtYml0cyA9IG5ld192bWJpdHM7CisJ cHJlc3VsdC0+b2xkX3ZtYml0cyA9IG9sZF92bWJpdHM7CiAKLQkvKgotCSAqIG5ld192bWJpdHMg c2hvdWxkIGJlIDAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBpcwotCSAq IGFsbC12aXNpYmxlIGlmIHdlIGRvIG5vdCBpbnRlbmQgdG8gc2V0IHRoZSBWTS4KLQkgKi8KLQlB c3NlcnQoZG9fc2V0X3ZtIHx8IHByZXN1bHQtPm5ld192bWJpdHMgPT0gMCk7CisJcHJlc3VsdC0+ bHBkZWFkX2l0ZW1zID0gcHJzdGF0ZS5scGRlYWRfaXRlbXM7CisJLyogdGhlIHByZXN1bHQtPmRl YWRvZmZzZXRzIGFycmF5IHdhcyBhbHJlYWR5IGZpbGxlZCBpbiAqLwogCi0JaWYgKGRvX3NldF92 bSkKKwlpZiAocHJzdGF0ZS5hdHRlbXB0X2ZyZWV6ZSkKIAl7Ci0JCS8qCi0JCSAqIEl0IHNob3Vs ZCBuZXZlciBiZSB0aGUgY2FzZSB0aGF0IHRoZSB2aXNpYmlsaXR5IG1hcCBwYWdlIGlzIHNldAot CQkgKiB3aGlsZSB0aGUgcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIsIGJ1dCB0aGUgcmV2ZXJzZSBp cyBhbGxvd2VkIChpZgotCQkgKiBjaGVja3N1bXMgYXJlIG5vdCBlbmFibGVkKS4KLQkJICoKLQkJ ICogVGhlIGhlYXAgcGFnZSBpcyBhZGRlZCB0byB0aGUgV0FMIGNoYWluIGV2ZW4gaWYgaXQgd2Fz bid0IG1vZGlmaWVkLAotCQkgKiBzbyB3ZSBzdGlsbCBuZWVkIHRvIG1hcmsgaXQgZGlydHkuIFRo ZSBvbmx5IHNjZW5hcmlvIHdoZXJlIGl0IGlzbid0Ci0JCSAqIG1vZGlmaWVkIGluIHBoYXNlIEkg aXMgd2hlbiB0aGUgVk0gd2FzIHRydW5jYXRlZCBvciByZW1vdmVkLCB3aGljaAotCQkgKiBpc24n dCB3b3J0aCBvcHRpbWl6aW5nIGZvci4KLQkJICovCi0JCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2Up OwotCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsKLQkJcHJlc3VsdC0+b2xkX3ZtYml0cyA9IHZp c2liaWxpdHltYXBfc2V0KHBhcmFtcy0+cmVsYXRpb24sIGJsb2Nrbm8sIGJ1ZmZlciwKLQkJCQkJ CQkJCQkJCUludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJCQkJCQkJdm1idWZmZXIsIHZtX2NvbmZs aWN0X2hvcml6b24sCi0JCQkJCQkJCQkJCQlwcmVzdWx0LT5uZXdfdm1iaXRzKTsKKwkJaWYgKHBy ZXN1bHQtPm5mcm96ZW4gPiAwKQorCQl7CisJCQkqbmV3X3JlbGZyb3plbl94aWQgPSBwcnN0YXRl LnBhZ2VmcnouRnJlZXplUGFnZVJlbGZyb3plblhpZDsKKwkJCSpuZXdfcmVsbWluX214aWQgPSBw cnN0YXRlLnBhZ2VmcnouRnJlZXplUGFnZVJlbG1pbk14aWQ7CisJCX0KKwkJZWxzZQorCQl7CisJ CQkqbmV3X3JlbGZyb3plbl94aWQgPSBwcnN0YXRlLnBhZ2VmcnouTm9GcmVlemVQYWdlUmVsZnJv emVuWGlkOworCQkJKm5ld19yZWxtaW5fbXhpZCA9IHByc3RhdGUucGFnZWZyei5Ob0ZyZWV6ZVBh Z2VSZWxtaW5NeGlkOworCQl9CiAJfQogfQogCi0tIAoyLjQzLjAKCg== --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="US-ASCII"; name="v24-0008-Eliminate-XLOG_HEAP2_VISIBLE-from-empty-page-vac.patch" Content-Disposition: attachment; filename="v24-0008-Eliminate-XLOG_HEAP2_VISIBLE-from-empty-page-vac.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvep067 RnJvbSA5ZjEzYTc4YzZiZjVkNmRlZGE3NThiNjIzYjc3OTBjNDUzMTdhZDZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjIxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MjQgMDgvMTZdIEVsaW1pbmF0ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZnJvbSBlbXB0eS1w YWdlIHZhY3V1bQoKQXMgcGFydCBvZiByZW1vdmluZyBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVjb3Jk cywgcGhhc2UgSSBvZiBWQUNVVU0gbm93Cm1hcmtzIGVtcHR5IHBhZ2VzIGFsbC12aXNpYmxlIGlu IGEgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTiByZWNvcmQuCgpBdXRob3I6IE1lbGFuaWUg UGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBSb2JlcnQg SGFhcyA8cm9iZXJ0bWhhYXNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8 YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdt YWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAzNSAr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5k ZXggOWY0MDRlMDM4NjkuLjYxMDc3NzcwOTdkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jCkBAIC0xODcyLDkgKzE4NzIsMTIgQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJl bFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCQkgKi8KIAkJ aWYgKCFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKQogCQl7CisJCQkvKiBMb2NrIHZtYnVmZmVyIGJl Zm9yZSBlbnRlcmluZyBjcml0aWNhbCBzZWN0aW9uICovCisJCQlMb2NrQnVmZmVyKHZtYnVmZmVy LCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOworCiAJCQlTVEFSVF9DUklUX1NFQ1RJT04oKTsKIAot CQkJLyogbWFyayBidWZmZXIgZGlydHkgYmVmb3JlIHdyaXRpbmcgYSBXQUwgcmVjb3JkICovCisJ CQkvKiBNYXJrIGJ1ZmZlciBkaXJ0eSBiZWZvcmUgd3JpdGluZyBhbnkgV0FMIHJlY29yZHMgKi8K IAkJCU1hcmtCdWZmZXJEaXJ0eShidWYpOwogCiAJCQkvKgpAQCAtMTg5MSwxMyArMTg5NCwzMyBA QCBsYXp5X3NjYW5fbmV3X29yX2VtcHR5KExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1Ziwg QmxvY2tOdW1iZXIgYmxrbm8sCiAJCQkJbG9nX25ld3BhZ2VfYnVmZmVyKGJ1ZiwgdHJ1ZSk7CiAK IAkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwotCQkJdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVs LT5yZWwsIGJsa25vLCBidWYsCi0JCQkJCQkJICBJbnZhbGlkWExvZ1JlY1B0ciwKLQkJCQkJCQkg IHZtYnVmZmVyLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCwKLQkJCQkJCQkgIFZJU0lCSUxJVFlNQVBf QUxMX1ZJU0lCTEUgfAotCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKKwkJCXZp c2liaWxpdHltYXBfc2V0X3ZtYml0cyhibGtubywKKwkJCQkJCQkJCSB2bWJ1ZmZlciwKKwkJCQkJ CQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKKwkJCQkJCQkJCSBWSVNJQklMSVRZTUFQ X0FMTF9GUk9aRU4sCisJCQkJCQkJCQkgdmFjcmVsLT5yZWwtPnJkX2xvY2F0b3IpOworCisJCQkv KgorCQkJICogRW1pdCBXQUwgZm9yIHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgb24gdGhlIGhlYXAg cGFnZSBhbmQKKwkJCSAqIHNldHRpbmcgdGhlIFZNLgorCQkJICovCisJCQlpZiAoUmVsYXRpb25O ZWVkc1dBTCh2YWNyZWwtPnJlbCkpCisJCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZSh2YWNy ZWwtPnJlbCwgYnVmLAorCQkJCQkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkJCQkJICBWSVNJQklM SVRZTUFQX0FMTF9WSVNJQkxFIHwKKwkJCQkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pF TiwKKwkJCQkJCQkJCQkgIEludmFsaWRUcmFuc2FjdGlvbklkLCAvKiBjb25mbGljdCB4aWQgKi8K KwkJCQkJCQkJCQkgIGZhbHNlLAkvKiBjbGVhbnVwIGxvY2sgKi8KKwkJCQkJCQkJCQkgIFBSVU5F X1ZBQ1VVTV9TQ0FOLAkvKiByZWFzb24gKi8KKwkJCQkJCQkJCQkgIE5VTEwsIDAsCisJCQkJCQkJ CQkJICBOVUxMLCAwLAorCQkJCQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJCQkJCQkgIE5VTEwsIDAp OworCiAJCQlFTkRfQ1JJVF9TRUNUSU9OKCk7CiAKKwkJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJV RkZFUl9MT0NLX1VOTE9DSyk7CisKIAkJCS8qIENvdW50IHRoZSBuZXdseSBhbGwtZnJvemVuIHBh Z2VzIGZvciBsb2dnaW5nICovCiAJCQl2YWNyZWwtPnZtX25ld192aXNpYmxlX3BhZ2VzKys7CiAJ CQl2YWNyZWwtPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcysrOwotLSAKMi40My4wCgo= --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="US-ASCII"; name="v24-0009-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Disposition: attachment; filename="v24-0009-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvescl8 RnJvbSBmMjFkYzJhZGFiZWNmNjQwNGE3Y2Y5NmMxZTkyNTRkYmU3N2ZhNjEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjM2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MjQgMDkvMTZdIFJlbW92ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZW50aXJlbHkKCkFzIG5v IHJlbWFpbmluZyB1c2VycyBlbWl0IFhMT0dfSEVBUDJfVklTSUJMRSByZWNvcmRzLgpUaGlzIGlu Y2x1ZGVzIGRlbGV0aW5nIHRoZSB4bF9oZWFwX3Zpc2libGUgc3RydWN0IGFuZCBhbGwgZnVuY3Rp b25zCnJlc3BvbnNpYmxlIGZvciBlbWl0dGluZyBvciByZXBsYXlpbmcgWExPR19IRUFQMl9WSVNJ QkxFIHJlY29yZHMuCgpUaGlzIGNoYW5nZXMgdGhlIHZpc2liaWxpdHkgbWFwIEFQSSwgc28gYW55 IGV4dGVybmFsIHVzZXJzL2NvbnN1bWVycyBvZgp0aGUgVk0tb25seSBXQUwgcmVjb3JkIHdpbGwg bmVlZCB0byBjaGFuZ2UuCgpBdXRob3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1h bkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXkgQm9yb2RpbiA8eDRtbW1AeWFuZGV4LXRl YW0ucnU+ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJl dmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9jb21tb24vYnVmbWFzay5jICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICAgfCAgNTQgKy0tLS0tLS0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgICAgfCAxNTUgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICAgICAgfCAgIDYgKy0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgICAgfCAgMTYgKy0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgIHwgMTEyICstLS0tLS0tLS0tLS0tLS0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jICAgfCAgMTAgLS0KIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMgfCAgIDEgLQogc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvc3RhbmRieS5jICAgICAgICB8ICAxMiArLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbV94bG9nLmggICAgICAgICB8ICAyOCArLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJp bGl0eW1hcC5oICAgICAgIHwgIDEzICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1h cGRlZnMuaCAgIHwgICA5IC0tCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAg ICAgIHwgICAxIC0KIDEzIGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDM3NSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1hc2su YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vYnVmbWFzay5jCmluZGV4IGJiMjYwY2ZmYTY4 Li41ZjA3ZjE3OTQxNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZt YXNrLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKQEAgLTU2LDgg KzU2LDggQEAgbWFza19wYWdlX2hpbnRfYml0cyhQYWdlIHBhZ2UpCiAKIAkvKgogCSAqIER1cmlu ZyByZXBsYXksIGlmIHRoZSBwYWdlIExTTiBoYXMgYWR2YW5jZWQgcGFzdCBvdXIgWExPRyByZWNv cmQncyBMU04sCi0JICogd2UgZG9uJ3QgbWFyayB0aGUgcGFnZSBhbGwtdmlzaWJsZS4gU2VlIGhl YXBfeGxvZ192aXNpYmxlKCkgZm9yCi0JICogZGV0YWlscy4KKwkgKiB3ZSBkb24ndCBtYXJrIHRo ZSBwYWdlIGFsbC12aXNpYmxlLiBTZWUgaGVhcF94bG9nX3BydW5lX2FuZF9mcmVlemUoKQorCSAq IGZvciBtb3JlIGRldGFpbHMuCiAJICovCiAJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdlKTsKIH0K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggNGQzODJhMDQzMzguLjNhZDc4YmE0Njk0IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtMjUzOSwxMSArMjUzOSwxMSBAQCBoZWFwX211 bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNsb3QgKipzbG90cywgaW50 IG50dXBsZXMsCiAJCWVsc2UgaWYgKGFsbF9mcm96ZW5fc2V0KQogCQl7CiAJCQlQYWdlU2V0QWxs VmlzaWJsZShwYWdlKTsKLQkJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhCdWZmZXJHZXRCbG9j a051bWJlcihidWZmZXIpLAotCQkJCQkJCQkJIHZtYnVmZmVyLAotCQkJCQkJCQkJIFZJU0lCSUxJ VFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwK LQkJCQkJCQkJCSByZWxhdGlvbi0+cmRfbG9jYXRvcik7CisJCQl2aXNpYmlsaXR5bWFwX3NldChC dWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpLAorCQkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkJ ICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKKwkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxM X0ZST1pFTiwKKwkJCQkJCQkgIHJlbGF0aW9uLT5yZF9sb2NhdG9yKTsKIAkJfQogCiAJCS8qCkBA IC04ODEyLDUwICs4ODEyLDYgQEAgYm90dG9tdXBfc29ydF9hbmRfc2hyaW5rKFRNX0luZGV4RGVs ZXRlT3AgKmRlbHN0YXRlKQogCXJldHVybiBuYmxvY2tzZmF2b3JhYmxlOwogfQogCi0vKgotICog UGVyZm9ybSBYTG9nSW5zZXJ0IGZvciBhIGhlYXAtdmlzaWJsZSBvcGVyYXRpb24uICAnYmxvY2sn IGlzIHRoZSBibG9jawotICogYmVpbmcgbWFya2VkIGFsbC12aXNpYmxlLCBhbmQgdm1fYnVmZmVy IGlzIHRoZSBidWZmZXIgY29udGFpbmluZyB0aGUKLSAqIGNvcnJlc3BvbmRpbmcgdmlzaWJpbGl0 eSBtYXAgYmxvY2suICBCb3RoIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBtb2RpZmllZAotICog YW5kIGRpcnRpZWQuCi0gKgotICogc25hcHNob3RDb25mbGljdEhvcml6b24gY29tZXMgZnJvbSB0 aGUgbGFyZ2VzdCB4bWluIG9uIHRoZSBwYWdlIGJlaW5nCi0gKiBtYXJrZWQgYWxsLXZpc2libGUu ICBSRURPIHJvdXRpbmUgdXNlcyBpdCB0byBnZW5lcmF0ZSByZWNvdmVyeSBjb25mbGljdHMuCi0g KgotICogSWYgY2hlY2tzdW1zIG9yIHdhbF9sb2dfaGludHMgYXJlIGVuYWJsZWQsIHdlIG1heSBh bHNvIGdlbmVyYXRlIGEgZnVsbC1wYWdlCi0gKiBpbWFnZSBvZiBoZWFwX2J1ZmZlci4gT3RoZXJ3 aXNlLCB3ZSBvcHRpbWl6ZSBhd2F5IHRoZSBGUEkgKGJ5IHNwZWNpZnlpbmcKLSAqIFJFR0JVRl9O T19JTUFHRSBmb3IgdGhlIGhlYXAgYnVmZmVyKSwgaW4gd2hpY2ggY2FzZSB0aGUgY2FsbGVyIHNo b3VsZCAqbm90KgotICogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04uCi0gKi8KLVhMb2dSZWNQ dHIKLWxvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1 ZmZlciB2bV9idWZmZXIsCi0JCQkJIFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6 b24sIHVpbnQ4IHZtZmxhZ3MpCi17Ci0JeGxfaGVhcF92aXNpYmxlIHhscmVjOwotCVhMb2dSZWNQ dHIJcmVjcHRyOwotCXVpbnQ4CQlmbGFnczsKLQotCUFzc2VydChCdWZmZXJJc1ZhbGlkKGhlYXBf YnVmZmVyKSk7Ci0JQXNzZXJ0KEJ1ZmZlcklzVmFsaWQodm1fYnVmZmVyKSk7Ci0KLQl4bHJlYy5z bmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwotCXhscmVj LmZsYWdzID0gdm1mbGFnczsKLQlpZiAoUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNv ZGluZyhyZWwpKQotCQl4bHJlYy5mbGFncyB8PSBWSVNJQklMSVRZTUFQX1hMT0dfQ0FUQUxPR19S RUw7Ci0JWExvZ0JlZ2luSW5zZXJ0KCk7Ci0JWExvZ1JlZ2lzdGVyRGF0YSgmeGxyZWMsIFNpemVP ZkhlYXBWaXNpYmxlKTsKLQotCVhMb2dSZWdpc3RlckJ1ZmZlcigwLCB2bV9idWZmZXIsIDApOwot Ci0JZmxhZ3MgPSBSRUdCVUZfU1RBTkRBUkQ7Ci0JaWYgKCFYTG9nSGludEJpdElzTmVlZGVkKCkp Ci0JCWZsYWdzIHw9IFJFR0JVRl9OT19JTUFHRTsKLQlYTG9nUmVnaXN0ZXJCdWZmZXIoMSwgaGVh cF9idWZmZXIsIGZsYWdzKTsKLQotCXJlY3B0ciA9IFhMb2dJbnNlcnQoUk1fSEVBUDJfSUQsIFhM T0dfSEVBUDJfVklTSUJMRSk7Ci0KLQlyZXR1cm4gcmVjcHRyOwotfQotCiAvKgogICogUGVyZm9y bSBYTG9nSW5zZXJ0IGZvciBhIGhlYXAtdXBkYXRlIG9wZXJhdGlvbi4gIENhbGxlciBtdXN0IGFs cmVhZHkKICAqIGhhdmUgbW9kaWZpZWQgdGhlIGJ1ZmZlcihzKSBhbmQgbWFya2VkIHRoZW0gZGly dHkuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCBhMDlmYjRiODAzYS4u YjY2NzM2ZWEyODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94 bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtMjM2 LDcgKzIzNiw3IEBAIGhlYXBfeGxvZ19wcnVuZV9mcmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNv cmQpCiAJCWlmIChQYWdlSXNOZXcodm1wYWdlKSkKIAkJCVBhZ2VJbml0KHZtcGFnZSwgQkxDS1Na LCAwKTsKIAotCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoYmxrbm8sIHZtYnVmZmVyLCB2bWZs YWdzLCBybG9jYXRvcik7CisJCXZpc2liaWxpdHltYXBfc2V0KGJsa25vLCB2bWJ1ZmZlciwgdm1m bGFncywgcmxvY2F0b3IpOwogCiAJCUFzc2VydChCdWZmZXJJc0RpcnR5KHZtYnVmZmVyKSk7CiAJ CVBhZ2VTZXRMU04odm1wYWdlLCBsc24pOwpAQCAtMjQ5LDE0MiArMjQ5LDYgQEAgaGVhcF94bG9n X3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJWExvZ1JlY29yZFBhZ2VX aXRoRnJlZVNwYWNlKHJsb2NhdG9yLCBibGtubywgZnJlZXNwYWNlKTsKIH0KIAotLyoKLSAqIFJl cGxheSBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVjb3Jkcy4KLSAqCi0gKiBUaGUgY3JpdGljYWwgaW50 ZWdyaXR5IHJlcXVpcmVtZW50IGhlcmUgaXMgdGhhdCB3ZSBtdXN0IG5ldmVyIGVuZCB1cCB3aXRo Ci0gKiBhIHNpdHVhdGlvbiB3aGVyZSB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IGlzIHNldCwgYW5k IHRoZSBwYWdlLWxldmVsCi0gKiBQRF9BTExfVklTSUJMRSBiaXQgaXMgY2xlYXIuICBJZiB0aGF0 IHdlcmUgdG8gb2NjdXIsIHRoZW4gYSBzdWJzZXF1ZW50Ci0gKiBwYWdlIG1vZGlmaWNhdGlvbiB3 b3VsZCBmYWlsIHRvIGNsZWFyIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQuCi0gKi8KLXN0YXRpYyB2 b2lkCi1oZWFwX3hsb2dfdmlzaWJsZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKLXsKLQlYTG9n UmVjUHRyCWxzbiA9IHJlY29yZC0+RW5kUmVjUHRyOwotCXhsX2hlYXBfdmlzaWJsZSAqeGxyZWMg PSAoeGxfaGVhcF92aXNpYmxlICopIFhMb2dSZWNHZXREYXRhKHJlY29yZCk7Ci0JQnVmZmVyCQl2 bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7Ci0JQnVmZmVyCQlidWZmZXI7Ci0JUGFnZQkJcGFnZTsK LQlSZWxGaWxlTG9jYXRvciBybG9jYXRvcjsKLQlCbG9ja051bWJlciBibGtubzsKLQlYTG9nUmVk b0FjdGlvbiBhY3Rpb247Ci0KLQlBc3NlcnQoKHhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBf WExPR19WQUxJRF9CSVRTKSA9PSB4bHJlYy0+ZmxhZ3MpOwotCi0JWExvZ1JlY0dldEJsb2NrVGFn KHJlY29yZCwgMSwgJnJsb2NhdG9yLCBOVUxMLCAmYmxrbm8pOwotCi0JLyoKLQkgKiBJZiB0aGVy ZSBhcmUgYW55IEhvdCBTdGFuZGJ5IHRyYW5zYWN0aW9ucyBydW5uaW5nIHRoYXQgaGF2ZSBhbiB4 bWluCi0JICogaG9yaXpvbiBvbGQgZW5vdWdoIHRoYXQgdGhpcyBwYWdlIGlzbid0IGFsbC12aXNp YmxlIGZvciB0aGVtLCB0aGV5Ci0JICogbWlnaHQgaW5jb3JyZWN0bHkgZGVjaWRlIHRoYXQgYW4g aW5kZXgtb25seSBzY2FuIGNhbiBza2lwIGEgaGVhcCBmZXRjaC4KLQkgKgotCSAqIE5COiBJdCBt aWdodCBiZSBiZXR0ZXIgdG8gdGhyb3cgc29tZSBraW5kIG9mICJzb2Z0IiBjb25mbGljdCBoZXJl IHRoYXQKLQkgKiBmb3JjZXMgYW55IGluZGV4LW9ubHkgc2NhbiB0aGF0IGlzIGluIGZsaWdodCB0 byBwZXJmb3JtIGhlYXAgZmV0Y2hlcywKLQkgKiByYXRoZXIgdGhhbiBraWxsaW5nIHRoZSB0cmFu c2FjdGlvbiBvdXRyaWdodC4KLQkgKi8KLQlpZiAoSW5Ib3RTdGFuZGJ5KQotCQlSZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24s Ci0JCQkJCQkJCQkJCXhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBfWExPR19DQVRBTE9HX1JF TCwKLQkJCQkJCQkJCQkJcmxvY2F0b3IpOwotCi0JLyoKLQkgKiBSZWFkIHRoZSBoZWFwIHBhZ2Us IGlmIGl0IHN0aWxsIGV4aXN0cy4gSWYgdGhlIGhlYXAgZmlsZSBoYXMgZHJvcHBlZCBvcgotCSAq IHRydW5jYXRlZCBsYXRlciBpbiByZWNvdmVyeSwgd2UgZG9uJ3QgbmVlZCB0byB1cGRhdGUgdGhl IHBhZ2UsIGJ1dCB3ZSdkCi0JICogYmV0dGVyIHN0aWxsIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBt YXAuCi0JICovCi0JYWN0aW9uID0gWExvZ1JlYWRCdWZmZXJGb3JSZWRvKHJlY29yZCwgMSwgJmJ1 ZmZlcik7Ci0JaWYgKGFjdGlvbiA9PSBCTEtfTkVFRFNfUkVETykKLQl7Ci0JCS8qCi0JCSAqIFdl IGRvbid0IGJ1bXAgdGhlIExTTiBvZiB0aGUgaGVhcCBwYWdlIHdoZW4gc2V0dGluZyB0aGUgdmlz aWJpbGl0eQotCQkgKiBtYXAgYml0ICh1bmxlc3MgY2hlY2tzdW1zIG9yIHdhbF9oaW50X2JpdHMg aXMgZW5hYmxlZCwgaW4gd2hpY2gKLQkJICogY2FzZSB3ZSBtdXN0KS4gVGhpcyBleHBvc2VzIHVz IHRvIHRvcm4gcGFnZSBoYXphcmRzLCBidXQgc2luY2UKLQkJICogd2UncmUgbm90IGluc3BlY3Rp bmcgdGhlIGV4aXN0aW5nIHBhZ2UgY29udGVudHMgaW4gYW55IHdheSwgd2UKLQkJICogZG9uJ3Qg Y2FyZS4KLQkJICovCi0JCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7Ci0KLQkJUGFnZVNl dEFsbFZpc2libGUocGFnZSk7Ci0KLQkJaWYgKFhMb2dIaW50Qml0SXNOZWVkZWQoKSkKLQkJCVBh Z2VTZXRMU04ocGFnZSwgbHNuKTsKLQotCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsKLQl9Ci0J ZWxzZSBpZiAoYWN0aW9uID09IEJMS19SRVNUT1JFRCkKLQl7Ci0JCS8qCi0JCSAqIElmIGhlYXAg YmxvY2sgd2FzIGJhY2tlZCB1cCwgd2UgYWxyZWFkeSByZXN0b3JlZCBpdCBhbmQgdGhlcmUncwot CQkgKiBub3RoaW5nIG1vcmUgdG8gZG8uIChUaGlzIGNhbiBvbmx5IGhhcHBlbiB3aXRoIGNoZWNr c3VtcyBvcgotCQkgKiB3YWxfbG9nX2hpbnRzIGVuYWJsZWQuKQotCQkgKi8KLQl9Ci0KLQlpZiAo QnVmZmVySXNWYWxpZChidWZmZXIpKQotCXsKLQkJU2l6ZQkJc3BhY2UgPSBQYWdlR2V0RnJlZVNw YWNlKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSk7Ci0KLQkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihidWZm ZXIpOwotCi0JCS8qCi0JCSAqIFNpbmNlIEZTTSBpcyBub3QgV0FMLWxvZ2dlZCBhbmQgb25seSB1 cGRhdGVkIGhldXJpc3RpY2FsbHksIGl0Ci0JCSAqIGVhc2lseSBiZWNvbWVzIHN0YWxlIGluIHN0 YW5kYnlzLiAgSWYgdGhlIHN0YW5kYnkgaXMgbGF0ZXIgcHJvbW90ZWQKLQkJICogYW5kIHJ1bnMg VkFDVVVNLCBpdCB3aWxsIHNraXAgdXBkYXRpbmcgaW5kaXZpZHVhbCBmcmVlIHNwYWNlCi0JCSAq IGZpZ3VyZXMgZm9yIHBhZ2VzIHRoYXQgYmVjYW1lIGFsbC12aXNpYmxlIChvciBhbGwtZnJvemVu LCBkZXBlbmRpbmcKLQkJICogb24gdGhlIHZhY3V1bSBtb2RlLCkgd2hpY2ggaXMgdHJvdWJsZXNv bWUgd2hlbiBGcmVlU3BhY2VNYXBWYWN1dW0KLQkJICogcHJvcGFnYXRlcyB0b28gb3B0aW1pc3Rp YyBmcmVlIHNwYWNlIHZhbHVlcyB0byB1cHBlciBGU00gbGF5ZXJzOwotCQkgKiBsYXRlciBpbnNl cnRlcnMgdHJ5IHRvIHVzZSBzdWNoIHBhZ2VzIG9ubHkgdG8gZmluZCBvdXQgdGhhdCB0aGV5Ci0J CSAqIGFyZSB1bnVzYWJsZS4gIFRoaXMgY2FuIGNhdXNlIGxvbmcgc3RhbGxzIHdoZW4gdGhlcmUg YXJlIG1hbnkgc3VjaAotCQkgKiBwYWdlcy4KLQkJICoKLQkJICogRm9yZXN0YWxsIHRob3NlIHBy b2JsZW1zIGJ5IHVwZGF0aW5nIEZTTSdzIGlkZWEgYWJvdXQgYSBwYWdlIHRoYXQKLQkJICogaXMg YmVjb21pbmcgYWxsLXZpc2libGUgb3IgYWxsLWZyb3plbi4KLQkJICoKLQkJICogRG8gdGhpcyBy ZWdhcmRsZXNzIG9mIGEgZnVsbC1wYWdlIGltYWdlIGJlaW5nIGFwcGxpZWQsIHNpbmNlIHRoZQot CQkgKiBGU00gZGF0YSBpcyBub3QgaW4gdGhlIHBhZ2UgYW55d2F5LgotCQkgKi8KLQkJaWYgKHhs cmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykKLQkJCVhMb2dSZWNvcmRQYWdl V2l0aEZyZWVTcGFjZShybG9jYXRvciwgYmxrbm8sIHNwYWNlKTsKLQl9Ci0KLQkvKgotCSAqIEV2 ZW4gaWYgd2Ugc2tpcHBlZCB0aGUgaGVhcCBwYWdlIHVwZGF0ZSBkdWUgdG8gdGhlIExTTiBpbnRl cmxvY2ssIGl0J3MKLQkgKiBzdGlsbCBzYWZlIHRvIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAu ICBBbnkgV0FMIHJlY29yZCB0aGF0IGNsZWFycwotCSAqIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQg ZG9lcyBzbyBiZWZvcmUgY2hlY2tpbmcgdGhlIHBhZ2UgTFNOLCBzbyBhbnkKLQkgKiBiaXRzIHRo YXQgbmVlZCB0byBiZSBjbGVhcmVkIHdpbGwgc3RpbGwgYmUgY2xlYXJlZC4KLQkgKi8KLQlpZiAo WExvZ1JlYWRCdWZmZXJGb3JSZWRvRXh0ZW5kZWQocmVjb3JkLCAwLCBSQk1fWkVST19PTl9FUlJP UiwgZmFsc2UsCi0JCQkJCQkJCQkgICZ2bWJ1ZmZlcikgPT0gQkxLX05FRURTX1JFRE8pCi0Jewot CQlQYWdlCQl2bXBhZ2UgPSBCdWZmZXJHZXRQYWdlKHZtYnVmZmVyKTsKLQkJUmVsYXRpb24JcmVs bjsKLQkJdWludDgJCXZtYml0czsKLQotCQkvKiBpbml0aWFsaXplIHRoZSBwYWdlIGlmIGl0IHdh cyByZWFkIGFzIHplcm9zICovCi0JCWlmIChQYWdlSXNOZXcodm1wYWdlKSkKLQkJCVBhZ2VJbml0 KHZtcGFnZSwgQkxDS1NaLCAwKTsKLQotCQkvKiByZW1vdmUgVklTSUJJTElUWU1BUF9YTE9HXyog Ki8KLQkJdm1iaXRzID0geGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTOwot Ci0JCS8qCi0JCSAqIFhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVuZGVkIGxvY2tlZCB0aGUgYnVm ZmVyLiBCdXQKLQkJICogdmlzaWJpbGl0eW1hcF9zZXQgd2lsbCBoYW5kbGUgbG9ja2luZyBpdHNl bGYuCi0JCSAqLwotCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOwot Ci0JCXJlbG4gPSBDcmVhdGVGYWtlUmVsY2FjaGVFbnRyeShybG9jYXRvcik7Ci0KLQkJdmlzaWJp bGl0eW1hcF9zZXQocmVsbiwgYmxrbm8sIEludmFsaWRCdWZmZXIsIGxzbiwgdm1idWZmZXIsCi0J CQkJCQkgIHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwgdm1iaXRzKTsKLQotCQlSZWxl YXNlQnVmZmVyKHZtYnVmZmVyKTsKLQkJRnJlZUZha2VSZWxjYWNoZUVudHJ5KHJlbG4pOwotCX0K LQllbHNlIGlmIChCdWZmZXJJc1ZhbGlkKHZtYnVmZmVyKSkKLQkJVW5sb2NrUmVsZWFzZUJ1ZmZl cih2bWJ1ZmZlcik7Ci19Ci0KIC8qCiAgKiBHaXZlbiBhbiAiaW5mb2JpdHMiIGZpZWxkIGZyb20g YW4gWExvZyByZWNvcmQsIHNldCB0aGUgY29ycmVjdCBiaXRzIGluIHRoZQogICogZ2l2ZW4gaW5m b21hc2sgYW5kIGluZm9tYXNrMiBmb3IgdGhlIHR1cGxlIHRvdWNoZWQgYnkgdGhlIHJlY29yZC4K QEAgLTc2Miw4ICs2MjYsOCBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKQogCSAqCiAJICogRHVyaW5nIHJlY292ZXJ5LCBob3dldmVyLCBubyBjb25jdXJy ZW50IHdyaXRlcnMgZXhpc3QuIFRoZXJlZm9yZSwKIAkgKiB1cGRhdGluZyB0aGUgVk0gd2l0aG91 dCBob2xkaW5nIHRoZSBoZWFwIHBhZ2UgbG9jayBpcyBzYWZlIGVub3VnaC4gVGhpcwotCSAqIHNh bWUgYXBwcm9hY2ggaXMgdGFrZW4gd2hlbiByZXBsYXlpbmcgeGxfaGVhcF92aXNpYmxlIHJlY29y ZHMgKHNlZQotCSAqIGhlYXBfeGxvZ192aXNpYmxlKCkpLgorCSAqIHNhbWUgYXBwcm9hY2ggaXMg dGFrZW4gd2hlbiByZXBsYXlpbmcgWExPR19IRUFQMl9QUlVORSogcmVjb3JkcyAoc2VlCisJICog aGVhcF94bG9nX3BydW5lX2FuZF9mcmVlemUoKSkuCiAJICovCiAJaWYgKCh4bHJlYy0+ZmxhZ3Mg JiBYTEhfSU5TRVJUX0FMTF9GUk9aRU5fU0VUKSAmJgogCQlYTG9nUmVhZEJ1ZmZlckZvclJlZG9F eHRlbmRlZChyZWNvcmQsIDEsIFJCTV9aRVJPX09OX0VSUk9SLCBmYWxzZSwKQEAgLTc3NSwxMSAr NjM5LDExIEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAJCWlmIChQYWdlSXNOZXcodm1wYWdlKSkKIAkJCVBhZ2VJbml0KHZtcGFnZSwgQkxDS1NaLCAw KTsKIAotCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoYmxrbm8sCi0JCQkJCQkJCSB2bWJ1ZmZl ciwKLQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCQkgVklTSUJJ TElUWU1BUF9BTExfRlJPWkVOLAotCQkJCQkJCQkgcmxvY2F0b3IpOworCQl2aXNpYmlsaXR5bWFw X3NldChibGtubywKKwkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxM X1ZJU0lCTEUgfAorCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCisJCQkJCQkgIHJs b2NhdG9yKTsKIAogCQlBc3NlcnQoQnVmZmVySXNEaXJ0eSh2bWJ1ZmZlcikpOwogCQlQYWdlU2V0 TFNOKHZtcGFnZSwgbHNuKTsKQEAgLTEzNjAsOSArMTIyNCw2IEBAIGhlYXAyX3JlZG8oWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5V UDoKIAkJCWhlYXBfeGxvZ19wcnVuZV9mcmVlemUocmVjb3JkKTsKIAkJCWJyZWFrOwotCQljYXNl IFhMT0dfSEVBUDJfVklTSUJMRToKLQkJCWhlYXBfeGxvZ192aXNpYmxlKHJlY29yZCk7Ci0JCQli cmVhazsKIAkJY2FzZSBYTE9HX0hFQVAyX01VTFRJX0lOU0VSVDoKIAkJCWhlYXBfeGxvZ19tdWx0 aV9pbnNlcnQocmVjb3JkKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwppbmRleCA0ODliODQ4NzU5OS4uYWIzNTRhZGQ3MTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3By dW5laGVhcC5jCkBAIC0xMTgyLDkgKzExODIsOSBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6 ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQlpZiAoZG9fc2V0X3ZtKQogCQl7CiAJCQlQ YWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQkJCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3Nl dF92bWJpdHMoYmxvY2tubywKLQkJCQkJCQkJCQkJCSAgdm1idWZmZXIsIG5ld192bWJpdHMsCi0J CQkJCQkJCQkJCQkgIHBhcmFtcy0+cmVsYXRpb24tPnJkX2xvY2F0b3IpOworCQkJb2xkX3ZtYml0 cyA9IHZpc2liaWxpdHltYXBfc2V0KGJsb2Nrbm8sCisJCQkJCQkJCQkJICAgdm1idWZmZXIsIG5l d192bWJpdHMsCisJCQkJCQkJCQkJICAgcGFyYW1zLT5yZWxhdGlvbi0+cmRfbG9jYXRvcik7CiAJ CQlBc3NlcnQob2xkX3ZtYml0cyAhPSBuZXdfdm1iaXRzKTsKIAkJfQogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMKaW5kZXggNjEwNzc3NzA5N2QuLmI3M2RiZGJlNGVkIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0xODk0LDExICsxODk0LDExIEBAIGxhenlf c2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBCbG9ja051 bWJlciBibGtubywKIAkJCQlsb2dfbmV3cGFnZV9idWZmZXIoYnVmLCB0cnVlKTsKIAogCQkJUGFn ZVNldEFsbFZpc2libGUocGFnZSk7Ci0JCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoYmxrbm8s Ci0JCQkJCQkJCQkgdm1idWZmZXIsCi0JCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfVklTSUJM RSB8Ci0JCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOLAotCQkJCQkJCQkJIHZhY3Jl bC0+cmVsLT5yZF9sb2NhdG9yKTsKKwkJCXZpc2liaWxpdHltYXBfc2V0KGJsa25vLAorCQkJCQkJ CSAgdm1idWZmZXIsCisJCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKKwkJCQkJ CQkgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwKKwkJCQkJCQkgIHZhY3JlbC0+cmVsLT5yZF9s b2NhdG9yKTsKIAogCQkJLyoKIAkJCSAqIEVtaXQgV0FMIGZvciBzZXR0aW5nIFBEX0FMTF9WSVNJ QkxFIG9uIHRoZSBoZWFwIHBhZ2UgYW5kCkBAIC0yNzgwLDkgKzI3ODAsOSBAQCBsYXp5X3ZhY3V1 bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVy IGJ1ZmZlciwKIAkJICogc2V0IFBEX0FMTF9WSVNJQkxFLgogCQkgKi8KIAkJUGFnZVNldEFsbFZp c2libGUocGFnZSk7Ci0JCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhibGtubywKLQkJCQkJCQkJ IHZtYnVmZmVyLCB2bWZsYWdzLAotCQkJCQkJCQkgdmFjcmVsLT5yZWwtPnJkX2xvY2F0b3IpOwor CQl2aXNpYmlsaXR5bWFwX3NldChibGtubywKKwkJCQkJCSAgdm1idWZmZXIsIHZtZmxhZ3MsCisJ CQkJCQkgIHZhY3JlbC0+cmVsLT5yZF9sb2NhdG9yKTsKIAkJY29uZmxpY3RfeGlkID0gdmlzaWJp bGl0eV9jdXRvZmZfeGlkOwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1h cC5jCmluZGV4IGQxNDU4OGU5MmFlLi43OTk3ZTkyNjg3MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3Zpc2liaWxpdHltYXAuYwpAQCAtMTQsOCArMTQsNyBAQAogICoJCXZpc2liaWxpdHltYXBf Y2xlYXIgIC0gY2xlYXIgYml0cyBmb3Igb25lIHBhZ2UgaW4gdGhlIHZpc2liaWxpdHkgbWFwCiAg KgkJdmlzaWJpbGl0eW1hcF9waW4JIC0gcGluIGEgbWFwIHBhZ2UgZm9yIHNldHRpbmcgYSBiaXQK ICAqCQl2aXNpYmlsaXR5bWFwX3Bpbl9vayAtIGNoZWNrIHdoZXRoZXIgY29ycmVjdCBtYXAgcGFn ZSBpcyBhbHJlYWR5IHBpbm5lZAotICoJCXZpc2liaWxpdHltYXBfc2V0CSAtIHNldCBiaXQocykg aW4gYSBwcmV2aW91c2x5IHBpbm5lZCBwYWdlIGFuZCBsb2cKLSAqCQl2aXNpYmlsaXR5bWFwX3Nl dF92bWJpdHMgLSBzZXQgYml0KHMpIGluIGEgcGlubmVkIHBhZ2UKKyAqCQl2aXNpYmlsaXR5bWFw X3NldAkgLSBzZXQgYml0KHMpIGluIGEgcHJldmlvdXNseSBwaW5uZWQgcGFnZQogICoJCXZpc2li aWxpdHltYXBfZ2V0X3N0YXR1cyAtIGdldCBzdGF0dXMgb2YgYml0cwogICoJCXZpc2liaWxpdHlt YXBfY291bnQgIC0gY291bnQgbnVtYmVyIG9mIGJpdHMgc2V0IGluIHZpc2liaWxpdHkgbWFwCiAg KgkJdmlzaWJpbGl0eW1hcF9wcmVwYXJlX3RydW5jYXRlIC0KQEAgLTIyMCwxMDkgKzIxOSw2IEBA IHZpc2liaWxpdHltYXBfcGluX29rKEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciB2bWJ1ZikK IAlyZXR1cm4gQnVmZmVySXNWYWxpZCh2bWJ1ZikgJiYgQnVmZmVyR2V0QmxvY2tOdW1iZXIodm1i dWYpID09IG1hcEJsb2NrOwogfQogCi0vKgotICoJdmlzaWJpbGl0eW1hcF9zZXQgLSBzZXQgYml0 KHMpIG9uIGEgcHJldmlvdXNseSBwaW5uZWQgcGFnZQotICoKLSAqIHJlY3B0ciBpcyB0aGUgTFNO IG9mIHRoZSBYTE9HIHJlY29yZCB3ZSdyZSByZXBsYXlpbmcsIGlmIHdlJ3JlIGluIHJlY292ZXJ5 LAotICogb3IgSW52YWxpZFhMb2dSZWNQdHIgaW4gbm9ybWFsIHJ1bm5pbmcuICBUaGUgVk0gcGFn ZSBMU04gaXMgYWR2YW5jZWQgdG8gdGhlCi0gKiBvbmUgcHJvdmlkZWQ7IGluIG5vcm1hbCBydW5u aW5nLCB3ZSBnZW5lcmF0ZSBhIG5ldyBYTE9HIHJlY29yZCBhbmQgc2V0IHRoZQotICogcGFnZSBM U04gdG8gdGhhdCB2YWx1ZSAodGhvdWdoIHRoZSBoZWFwIHBhZ2UncyBMU04gbWF5ICpub3QqIGJl IHVwZGF0ZWQ7Ci0gKiBzZWUgYmVsb3cpLiAgY3V0b2ZmX3hpZCBpcyB0aGUgbGFyZ2VzdCB4bWlu IG9uIHRoZSBwYWdlIGJlaW5nIG1hcmtlZAotICogYWxsLXZpc2libGU7IGl0IGlzIG5lZWRlZCBm b3IgSG90IFN0YW5kYnksIGFuZCBjYW4gYmUgSW52YWxpZFRyYW5zYWN0aW9uSWQKLSAqIGlmIHRo ZSBwYWdlIGNvbnRhaW5zIG5vIHR1cGxlcy4gIEl0IGNhbiBhbHNvIGJlIHNldCB0byBJbnZhbGlk VHJhbnNhY3Rpb25JZAotICogd2hlbiBhIHBhZ2UgdGhhdCBpcyBhbHJlYWR5IGFsbC12aXNpYmxl IGlzIGJlaW5nIG1hcmtlZCBhbGwtZnJvemVuLgotICoKLSAqIENhbGxlciBpcyBleHBlY3RlZCB0 byBzZXQgdGhlIGhlYXAgcGFnZSdzIFBEX0FMTF9WSVNJQkxFIGJpdCBiZWZvcmUgY2FsbGluZwot ICogdGhpcyBmdW5jdGlvbi4gRXhjZXB0IGluIHJlY292ZXJ5LCBjYWxsZXIgc2hvdWxkIGFsc28g cGFzcyB0aGUgaGVhcAotICogYnVmZmVyLiBXaGVuIGNoZWNrc3VtcyBhcmUgZW5hYmxlZCBhbmQg d2UncmUgbm90IGluIHJlY292ZXJ5LCB3ZSBtdXN0IGFkZAotICogdGhlIGhlYXAgYnVmZmVyIHRv IHRoZSBXQUwgY2hhaW4gdG8gcHJvdGVjdCBpdCBmcm9tIGJlaW5nIHRvcm4uCi0gKgotICogWW91 IG11c3QgcGFzcyBhIGJ1ZmZlciBjb250YWluaW5nIHRoZSBjb3JyZWN0IG1hcCBwYWdlIHRvIHRo aXMgZnVuY3Rpb24uCi0gKiBDYWxsIHZpc2liaWxpdHltYXBfcGluIGZpcnN0IHRvIHBpbiB0aGUg cmlnaHQgb25lLiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgZG8KLSAqIGFueSBJL08uCi0gKgotICog UmV0dXJucyB0aGUgc3RhdGUgb2YgdGhlIHBhZ2UncyBWTSBiaXRzIGJlZm9yZSBzZXR0aW5nIGZs YWdzLgotICovCi11aW50OAotdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051 bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKLQkJCQkgIFhMb2dSZWNQdHIgcmVjcHRyLCBC dWZmZXIgdm1CdWYsIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwKLQkJCQkgIHVpbnQ4IGZsYWdz KQotewotCUJsb2NrTnVtYmVyIG1hcEJsb2NrID0gSEVBUEJMS19UT19NQVBCTE9DSyhoZWFwQmxr KTsKLQl1aW50MzIJCW1hcEJ5dGUgPSBIRUFQQkxLX1RPX01BUEJZVEUoaGVhcEJsayk7Ci0JdWlu dDgJCW1hcE9mZnNldCA9IEhFQVBCTEtfVE9fT0ZGU0VUKGhlYXBCbGspOwotCVBhZ2UJCXBhZ2U7 Ci0JdWludDgJICAgKm1hcDsKLQl1aW50OAkJc3RhdHVzOwotCi0jaWZkZWYgVFJBQ0VfVklTSUJJ TElUWU1BUAotCWVsb2coREVCVUcxLCAidm1fc2V0IGZsYWdzIDB4JTAyWCBmb3IgJXMgJWQiLAot CQkgZmxhZ3MsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksIGhlYXBCbGspOwotI2VuZGlm Ci0KLQlBc3NlcnQoSW5SZWNvdmVyeSB8fCAhWExvZ1JlY1B0cklzVmFsaWQocmVjcHRyKSk7Ci0J QXNzZXJ0KEluUmVjb3ZlcnkgfHwgUGFnZUlzQWxsVmlzaWJsZShCdWZmZXJHZXRQYWdlKGhlYXBC dWYpKSk7Ci0JQXNzZXJ0KChmbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgPT0gZmxh Z3MpOwotCi0JLyogTXVzdCBuZXZlciBzZXQgYWxsX2Zyb3plbiBiaXQgd2l0aG91dCBhbHNvIHNl dHRpbmcgYWxsX3Zpc2libGUgYml0ICovCi0JQXNzZXJ0KGZsYWdzICE9IFZJU0lCSUxJVFlNQVBf QUxMX0ZST1pFTik7Ci0KLQkvKiBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIHJpZ2h0IGhlYXAgcGFn ZSBwaW5uZWQsIGlmIHByZXNlbnQgKi8KLQlpZiAoQnVmZmVySXNWYWxpZChoZWFwQnVmKSAmJiBC dWZmZXJHZXRCbG9ja051bWJlcihoZWFwQnVmKSAhPSBoZWFwQmxrKQotCQllbG9nKEVSUk9SLCAi d3JvbmcgaGVhcCBidWZmZXIgcGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0Iik7Ci0KLQlBc3Nl cnQoIUJ1ZmZlcklzVmFsaWQoaGVhcEJ1ZikgfHwKLQkJICAgQnVmZmVySXNMb2NrZWRCeU1lSW5N b2RlKGhlYXBCdWYsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSkpOwotCi0JLyogQ2hlY2sgdGhhdCB3 ZSBoYXZlIHRoZSByaWdodCBWTSBwYWdlIHBpbm5lZCAqLwotCWlmICghQnVmZmVySXNWYWxpZCh2 bUJ1ZikgfHwgQnVmZmVyR2V0QmxvY2tOdW1iZXIodm1CdWYpICE9IG1hcEJsb2NrKQotCQllbG9n KEVSUk9SLCAid3JvbmcgVk0gYnVmZmVyIHBhc3NlZCB0byB2aXNpYmlsaXR5bWFwX3NldCIpOwot Ci0JcGFnZSA9IEJ1ZmZlckdldFBhZ2Uodm1CdWYpOwotCW1hcCA9ICh1aW50OCAqKSBQYWdlR2V0 Q29udGVudHMocGFnZSk7Ci0JTG9ja0J1ZmZlcih2bUJ1ZiwgQlVGRkVSX0xPQ0tfRVhDTFVTSVZF KTsKLQotCXN0YXR1cyA9IChtYXBbbWFwQnl0ZV0gPj4gbWFwT2Zmc2V0KSAmIFZJU0lCSUxJVFlN QVBfVkFMSURfQklUUzsKLQlpZiAoZmxhZ3MgIT0gc3RhdHVzKQotCXsKLQkJU1RBUlRfQ1JJVF9T RUNUSU9OKCk7Ci0KLQkJbWFwW21hcEJ5dGVdIHw9IChmbGFncyA8PCBtYXBPZmZzZXQpOwotCQlN YXJrQnVmZmVyRGlydHkodm1CdWYpOwotCi0JCWlmIChSZWxhdGlvbk5lZWRzV0FMKHJlbCkpCi0J CXsKLQkJCWlmICghWExvZ1JlY1B0cklzVmFsaWQocmVjcHRyKSkKLQkJCXsKLQkJCQlBc3NlcnQo IUluUmVjb3ZlcnkpOwotCQkJCXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUocmVsLCBoZWFwQnVm LCB2bUJ1ZiwgY3V0b2ZmX3hpZCwgZmxhZ3MpOwotCi0JCQkJLyoKLQkJCQkgKiBJZiBkYXRhIGNo ZWNrc3VtcyBhcmUgZW5hYmxlZCAob3Igd2FsX2xvZ19oaW50cz1vbiksIHdlCi0JCQkJICogbmVl ZCB0byBwcm90ZWN0IHRoZSBoZWFwIHBhZ2UgZnJvbSBiZWluZyB0b3JuLgotCQkJCSAqCi0JCQkJ ICogSWYgbm90LCB0aGVuIHdlIG11c3QgKm5vdCogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04u IEluCi0JCQkJICogdGhpcyBjYXNlLCB0aGUgRlBJIGZvciB0aGUgaGVhcCBwYWdlIHdhcyBvbWl0 dGVkIGZyb20gdGhlCi0JCQkJICogV0FMIHJlY29yZCBpbnNlcnRlZCBhYm92ZSwgc28gaXQgd291 bGQgYmUgaW5jb3JyZWN0IHRvCi0JCQkJICogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04uCi0J CQkJICovCi0JCQkJaWYgKFhMb2dIaW50Qml0SXNOZWVkZWQoKSkKLQkJCQl7Ci0JCQkJCVBhZ2UJ CWhlYXBQYWdlID0gQnVmZmVyR2V0UGFnZShoZWFwQnVmKTsKLQotCQkJCQlQYWdlU2V0TFNOKGhl YXBQYWdlLCByZWNwdHIpOwotCQkJCX0KLQkJCX0KLQkJCVBhZ2VTZXRMU04ocGFnZSwgcmVjcHRy KTsKLQkJfQotCi0JCUVORF9DUklUX1NFQ1RJT04oKTsKLQl9Ci0KLQlMb2NrQnVmZmVyKHZtQnVm LCBCVUZGRVJfTE9DS19VTkxPQ0spOwotCXJldHVybiBzdGF0dXM7Ci19Ci0KIC8qCiAgKiBTZXQg Vk0gKHZpc2liaWxpdHkgbWFwKSBmbGFncyBpbiB0aGUgVk0gYmxvY2sgaW4gdm1CdWYuCiAgKgpA QCAtMzQ0LDkgKzI0MCw5IEBAIHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwgQmxvY2tO dW1iZXIgaGVhcEJsaywgQnVmZmVyIGhlYXBCdWYsCiAgKiBybG9jYXRvciBpcyB1c2VkIG9ubHkg Zm9yIGRlYnVnZ2luZyBtZXNzYWdlcy4KICAqLwogdWludDgKLXZpc2liaWxpdHltYXBfc2V0X3Zt Yml0cyhCbG9ja051bWJlciBoZWFwQmxrLAotCQkJCQkJIEJ1ZmZlciB2bUJ1ZiwgdWludDggZmxh Z3MsCi0JCQkJCQkgY29uc3QgUmVsRmlsZUxvY2F0b3IgcmxvY2F0b3IpCit2aXNpYmlsaXR5bWFw X3NldChCbG9ja051bWJlciBoZWFwQmxrLAorCQkJCSAgQnVmZmVyIHZtQnVmLCB1aW50OCBmbGFn cywKKwkJCQkgIGNvbnN0IFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yKQogewogCUJsb2NrTnVtYmVy IG1hcEJsb2NrID0gSEVBUEJMS19UT19NQVBCTE9DSyhoZWFwQmxrKTsKIAl1aW50MzIJCW1hcEJ5 dGUgPSBIRUFQQkxLX1RPX01BUEJZVEUoaGVhcEJsayk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVz Yy9oZWFwZGVzYy5jCmluZGV4IGNhMjZkMWYwZWQxLi4wODQ2MWZkZjU5MyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKQEAgLTM0OSwxMyArMzQ5LDYgQEAgaGVhcDJfZGVz YyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCQl9CiAJCX0KIAl9 Ci0JZWxzZSBpZiAoaW5mbyA9PSBYTE9HX0hFQVAyX1ZJU0lCTEUpCi0JewotCQl4bF9oZWFwX3Zp c2libGUgKnhscmVjID0gKHhsX2hlYXBfdmlzaWJsZSAqKSByZWM7Ci0KLQkJYXBwZW5kU3RyaW5n SW5mbyhidWYsICJzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjogJXUsIGZsYWdzOiAweCUwMlgiLAot CQkJCQkJIHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwgeGxyZWMtPmZsYWdzKTsKLQl9 CiAJZWxzZSBpZiAoaW5mbyA9PSBYTE9HX0hFQVAyX01VTFRJX0lOU0VSVCkKIAl7CiAJCXhsX2hl YXBfbXVsdGlfaW5zZXJ0ICp4bHJlYyA9ICh4bF9oZWFwX211bHRpX2luc2VydCAqKSByZWM7CkBA IC00NjEsOSArNDU0LDYgQEAgaGVhcDJfaWRlbnRpZnkodWludDggaW5mbykKIAkJY2FzZSBYTE9H X0hFQVAyX1BSVU5FX1ZBQ1VVTV9DTEVBTlVQOgogCQkJaWQgPSAiUFJVTkVfVkFDVVVNX0NMRUFO VVAiOwogCQkJYnJlYWs7Ci0JCWNhc2UgWExPR19IRUFQMl9WSVNJQkxFOgotCQkJaWQgPSAiVklT SUJMRSI7Ci0JCQlicmVhazsKIAkJY2FzZSBYTE9HX0hFQVAyX01VTFRJX0lOU0VSVDoKIAkJCWlk ID0gIk1VTFRJX0lOU0VSVCI7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL2RlY29kZS5jCmluZGV4IGNjMDNmMDcwNmU5Li4yZmRkNGFmOTBhOCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCkBAIC00NTQsNyArNDU0LDYgQEAgaGVhcDJf ZGVjb2RlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVm KQogCQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfT05fQUNDRVNTOgogCQljYXNlIFhMT0dfSEVBUDJf UFJVTkVfVkFDVVVNX1NDQU46CiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5V UDoKLQkJY2FzZSBYTE9HX0hFQVAyX1ZJU0lCTEU6CiAJCWNhc2UgWExPR19IRUFQMl9MT0NLX1VQ REFURUQ6CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvaXBjL3N0YW5kYnkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwpp bmRleCBmYzQ1ZDcyYzc5Yi4uMzY1NTM1OGVkNmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvaXBjL3N0YW5kYnkuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5 LmMKQEAgLTQ3NSwxMiArNDc1LDEyIEBAIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBz aG90KFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCiAJICogSWYgd2UgZ2V0 IHBhc3NlZCBJbnZhbGlkVHJhbnNhY3Rpb25JZCB0aGVuIHdlIGRvIG5vdGhpbmcgKG5vIGNvbmZs aWN0KS4KIAkgKgogCSAqIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHJlcGxheWluZyBhbHJlYWR5LWFw cGxpZWQgV0FMIHJlY29yZHMgYWZ0ZXIgYQotCSAqIHN0YW5kYnkgY3Jhc2ggb3IgcmVzdGFydCwg b3Igd2hlbiByZXBsYXlpbmcgYW4gWExPR19IRUFQMl9WSVNJQkxFCi0JICogcmVjb3JkIHRoYXQg bWFya3MgYXMgZnJvemVuIGEgcGFnZSB3aGljaCB3YXMgYWxyZWFkeSBhbGwtdmlzaWJsZS4gIEl0 J3MKLQkgKiBhbHNvIHF1aXRlIGNvbW1vbiB3aXRoIHJlY29yZHMgZ2VuZXJhdGVkIGR1cmluZyBp bmRleCBkZWxldGlvbgotCSAqIChvcmlnaW5hbCBleGVjdXRpb24gb2YgdGhlIGRlbGV0aW9uIGNh biByZWFzb24gdGhhdCBhIHJlY292ZXJ5IGNvbmZsaWN0Ci0JICogd2hpY2ggaXMgc3VmZmljaWVu dCBmb3IgdGhlIGRlbGV0aW9uIG9wZXJhdGlvbiBtdXN0IHRha2UgcGxhY2UgYmVmb3JlCi0JICog cmVwbGF5IG9mIHRoZSBkZWxldGlvbiByZWNvcmQgaXRzZWxmKS4KKwkgKiBzdGFuZGJ5IGNyYXNo IG9yIHJlc3RhcnQsIG9yIHdoZW4gcmVwbGF5aW5nIGEgcmVjb3JkIHRoYXQgbWFya3MgYXMKKwkg KiBmcm96ZW4gYSBwYWdlIHdoaWNoIHdhcyBhbHJlYWR5IG1hcmtlZCBhbGwtdmlzaWJsZSBpbiB0 aGUgdmlzaWJpbGl0eQorCSAqIG1hcC4gIEl0J3MgYWxzbyBxdWl0ZSBjb21tb24gd2l0aCByZWNv cmRzIGdlbmVyYXRlZCBkdXJpbmcgaW5kZXgKKwkgKiBkZWxldGlvbiAob3JpZ2luYWwgZXhlY3V0 aW9uIG9mIHRoZSBkZWxldGlvbiBjYW4gcmVhc29uIHRoYXQgYSByZWNvdmVyeQorCSAqIGNvbmZs aWN0IHdoaWNoIGlzIHN1ZmZpY2llbnQgZm9yIHRoZSBkZWxldGlvbiBvcGVyYXRpb24gbXVzdCB0 YWtlIHBsYWNlCisJICogYmVmb3JlIHJlcGxheSBvZiB0aGUgZGVsZXRpb24gcmVjb3JkIGl0c2Vs ZikuCiAJICovCiAJaWYgKCFUcmFuc2FjdGlvbklkSXNWYWxpZChzbmFwc2hvdENvbmZsaWN0SG9y aXpvbikpCiAJCXJldHVybjsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1f eGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXggMTZjMmIyZTNj OWMuLjY5Njc4MTg3ODMyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hs b2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaApAQCAtNjAsNyArNjAs NiBAQAogI2RlZmluZSBYTE9HX0hFQVAyX1BSVU5FX09OX0FDQ0VTUwkJMHgxMAogI2RlZmluZSBY TE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9TQ0FOCTB4MjAKICNkZWZpbmUgWExPR19IRUFQMl9QUlVO RV9WQUNVVU1fQ0xFQU5VUAkweDMwCi0jZGVmaW5lIFhMT0dfSEVBUDJfVklTSUJMRQkJMHg0MAog I2RlZmluZSBYTE9HX0hFQVAyX01VTFRJX0lOU0VSVCAweDUwCiAjZGVmaW5lIFhMT0dfSEVBUDJf TE9DS19VUERBVEVEIDB4NjAKICNkZWZpbmUgWExPR19IRUFQMl9ORVdfQ0lECQkweDcwCkBAIC0y OTQsNyArMjkzLDEzIEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfcHJ1bmUKIAogI2RlZmluZSBT aXplT2ZIZWFwUHJ1bmUgKG9mZnNldG9mKHhsX2hlYXBfcHJ1bmUsIGZsYWdzKSArIHNpemVvZih1 aW50MTYpKQogCi0vKiB0byBoYW5kbGUgcmVjb3ZlcnkgY29uZmxpY3QgZHVyaW5nIGxvZ2ljYWwg ZGVjb2Rpbmcgb24gc3RhbmRieSAqLworLyoKKyAqIFRvIGhhbmRsZSByZWNvdmVyeSBjb25mbGlj dCBkdXJpbmcgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5LCB3ZSBtdXN0IGtub3cKKyAqIGlm IHRoZSB0YWJsZSBpcyBhIGNhdGFsb2cgdGFibGUuIE5vdGUgdGhhdCBpbiB2aXNpYmlsaXR5bWFw ZGVmcy5oCisgKiBWSVNJQklMSVRZTUFQX1hMT0dfQ0FUQUxPR19SRUwgaXMgYWxzbyBkZWZpbmVk IGFzICgxIDw8IDIpLiB4bF9oZWFwX3BydW5lCisgKiByZWNvcmRzIHNob3VsZCB1c2UgWExIUF9J U19DQVRBTE9HX1JFTCwgbm90IFZJU0lCSUxJWVRNQVBfWExPR19DQVRBTE9HX1JFTCAtLQorICog ZXZlbiBpZiB0aGV5IG9ubHkgY29udGFpbiB1cGRhdGVzIHRvIHRoZSBWTS4KKyAqLwogI2RlZmlu ZQkJWExIUF9JU19DQVRBTE9HX1JFTAkJCSgxIDw8IDEpCiAKIC8qCkBAIC00NDMsMjAgKzQ0OCw2 IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfaW5wbGFjZQogCiAjZGVmaW5lIE1pblNpemVPZkhl YXBJbnBsYWNlCShvZmZzZXRvZih4bF9oZWFwX2lucGxhY2UsIG5tc2dzKSArIHNpemVvZihpbnQp KQogCi0vKgotICogVGhpcyBpcyB3aGF0IHdlIG5lZWQgdG8ga25vdyBhYm91dCBzZXR0aW5nIGEg dmlzaWJpbGl0eSBtYXAgYml0Ci0gKgotICogQmFja3VwIGJsayAwOiB2aXNpYmlsaXR5IG1hcCBi dWZmZXIKLSAqIEJhY2t1cCBibGsgMTogaGVhcCBidWZmZXIKLSAqLwotdHlwZWRlZiBzdHJ1Y3Qg eGxfaGVhcF92aXNpYmxlCi17Ci0JVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpv bjsKLQl1aW50OAkJZmxhZ3M7Ci19IHhsX2hlYXBfdmlzaWJsZTsKLQotI2RlZmluZSBTaXplT2ZI ZWFwVmlzaWJsZSAob2Zmc2V0b2YoeGxfaGVhcF92aXNpYmxlLCBmbGFncykgKyBzaXplb2YodWlu dDgpKQotCiB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX25ld19jaWQKIHsKIAkvKgpAQCAtNTAwLDEx ICs0OTEsNiBAQCBleHRlcm4gdm9pZCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVh ZGVyU3RhdGUgKnJlY29yZCk7CiBleHRlcm4gY29uc3QgY2hhciAqaGVhcDJfaWRlbnRpZnkodWlu dDggaW5mbyk7CiBleHRlcm4gdm9pZCBoZWFwX3hsb2dfbG9naWNhbF9yZXdyaXRlKFhMb2dSZWFk ZXJTdGF0ZSAqcik7CiAKLWV4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX3Zpc2libGUoUmVsYXRp b24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsCi0JCQkJCQkJCSAgIEJ1ZmZlciB2bV9idWZmZXIs Ci0JCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCi0JCQkJ CQkJCSAgIHVpbnQ4IHZtZmxhZ3MpOwotCiAvKiBpbiBoZWFwZGVzYy5jLCBzbyBpdCBjYW4gYmUg c2hhcmVkIGJldHdlZW4gZnJvbnRlbmQvYmFja2VuZCBjb2RlICovCiBleHRlcm4gdm9pZCBoZWFw X3hsb2dfZGVzZXJpYWxpemVfcHJ1bmVfYW5kX2ZyZWV6ZShjaGFyICpjdXJzb3IsIHVpbnQxNiBm bGFncywKIAkJCQkJCQkJCQkJCSAgIGludCAqbnBsYW5zLCB4bGhwX2ZyZWV6ZV9wbGFuICoqcGxh bnMsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaAppbmRleCBjNmZhMzdiZTk2OC4uMDViYTY3 ODZiNDcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKKysr IGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaApAQCAtMTUsNyArMTUsNiBAQAog I2RlZmluZSBWSVNJQklMSVRZTUFQX0gKIAogI2luY2x1ZGUgImFjY2Vzcy92aXNpYmlsaXR5bWFw ZGVmcy5oIgotI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgogI2luY2x1ZGUgInN0b3JhZ2Uv YmxvY2suaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zi5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcmVs ZmlsZWxvY2F0b3IuaCIKQEAgLTMyLDE1ICszMSw5IEBAIGV4dGVybiBib29sIHZpc2liaWxpdHlt YXBfY2xlYXIoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAogZXh0ZXJuIHZvaWQg dmlzaWJpbGl0eW1hcF9waW4oUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAogCQkJ CQkJCSAgQnVmZmVyICp2bWJ1Zik7CiBleHRlcm4gYm9vbCB2aXNpYmlsaXR5bWFwX3Bpbl9vayhC bG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgdm1idWYpOwotZXh0ZXJuIHVpbnQ4IHZpc2liaWxp dHltYXBfc2V0KFJlbGF0aW9uIHJlbCwKLQkJCQkJCQkgICBCbG9ja051bWJlciBoZWFwQmxrLCBC dWZmZXIgaGVhcEJ1ZiwKLQkJCQkJCQkgICBYTG9nUmVjUHRyIHJlY3B0ciwKLQkJCQkJCQkgICBC dWZmZXIgdm1CdWYsCi0JCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBjdXRvZmZfeGlkLAotCQkJCQkJ CSAgIHVpbnQ4IGZsYWdzKTsKLWV4dGVybiB1aW50OCB2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMo QmxvY2tOdW1iZXIgaGVhcEJsaywKLQkJCQkJCQkJCSAgQnVmZmVyIHZtQnVmLCB1aW50OCBmbGFn cywKLQkJCQkJCQkJCSAgY29uc3QgUmVsRmlsZUxvY2F0b3IgcmxvY2F0b3IpOworZXh0ZXJuIHVp bnQ4IHZpc2liaWxpdHltYXBfc2V0KEJsb2NrTnVtYmVyIGhlYXBCbGssCisJCQkJCQkJICAgQnVm ZmVyIHZtQnVmLCB1aW50OCBmbGFncywKKwkJCQkJCQkgICBjb25zdCBSZWxGaWxlTG9jYXRvciBy bG9jYXRvcik7CiBleHRlcm4gdWludDggdmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVzKFJlbGF0aW9u IHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyICp2bWJ1Zik7CiBleHRlcm4gdm9pZCB2 aXNpYmlsaXR5bWFwX2NvdW50KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgKmFsbF92aXNpYmxl LCBCbG9ja051bWJlciAqYWxsX2Zyb3plbik7CiBleHRlcm4gQmxvY2tOdW1iZXIgdmlzaWJpbGl0 eW1hcF9wcmVwYXJlX3RydW5jYXRlKFJlbGF0aW9uIHJlbCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2li aWxpdHltYXBkZWZzLmgKaW5kZXggNWFkNWMwMjA4NzcuLmUwMWJjZTRjOTlmIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaAorKysgYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaApAQCAtMjEsMTQgKzIxLDUgQEAKICNkZWZpbmUg VklTSUJJTElUWU1BUF9BTExfRlJPWkVOCTB4MDIKICNkZWZpbmUgVklTSUJJTElUWU1BUF9WQUxJ RF9CSVRTCTB4MDMJLyogT1Igb2YgYWxsIHZhbGlkIHZpc2liaWxpdHltYXAKIAkJCQkJCQkJCQkJ ICogZmxhZ3MgYml0cyAqLwotLyoKLSAqIFRvIGRldGVjdCByZWNvdmVyeSBjb25mbGljdHMgZHVy aW5nIGxvZ2ljYWwgZGVjb2Rpbmcgb24gYSBzdGFuZGJ5LCB3ZSBuZWVkCi0gKiB0byBrbm93IGlm IGEgdGFibGUgaXMgYSB1c2VyIGNhdGFsb2cgdGFibGUuIEZvciB0aGF0IHdlIGFkZCBhbiBhZGRp dGlvbmFsCi0gKiBiaXQgaW50byB4bF9oZWFwX3Zpc2libGUuZmxhZ3MsIGluIGFkZGl0aW9uIHRv IHRoZSBhYm92ZS4KLSAqCi0gKiBOQjogVklTSUJJTElUWU1BUF9YTE9HXyogbWF5IG5vdCBiZSBw YXNzZWQgdG8gdmlzaWJpbGl0eW1hcF9zZXQoKS4KLSAqLwotI2RlZmluZSBWSVNJQklMSVRZTUFQ X1hMT0dfQ0FUQUxPR19SRUwJMHgwNAotI2RlZmluZSBWSVNJQklMSVRZTUFQX1hMT0dfVkFMSURf QklUUwkoVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTIHwgVklTSUJJTElUWU1BUF9YTE9HX0NBVEFM T0dfUkVMKQogCiAjZW5kaWYJCQkJCQkJLyogVklTSUJJTElUWU1BUERFRlNfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCA5ZGQ2NWIxMDI1NC4uMTgxOWYzZGJiNzcgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC00MzA2LDcgKzQzMDYsNiBAQCB4bF9oZWFwX3BydW5lCiB4 bF9oZWFwX3Jld3JpdGVfbWFwcGluZwogeGxfaGVhcF90cnVuY2F0ZQogeGxfaGVhcF91cGRhdGUK LXhsX2hlYXBfdmlzaWJsZQogeGxfaW52YWxpZF9wYWdlCiB4bF9pbnZhbGlkX3BhZ2Vfa2V5CiB4 bF9pbnZhbGlkYXRpb25zCi0tIAoyLjQzLjAKCg== --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="UTF-8"; name="v24-0010-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisX.patch" Content-Disposition: attachment; filename="v24-0010-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisX.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvew2h9 RnJvbSAwZTAxNDM4MzZjZWY0ZjQ1ZTg5YTI5ZWJjY2VlZDRhOTRmYmZmMWQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDE4IEp1bCAyMDI1IDE2OjMwOjA0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MjQgMTAvMTZdIFJlbmFtZSBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoKSB0bwog R2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKCkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi aXQKClRoZSBmdW5jdGlvbiBpcyBjdXJyZW50bHkgb25seSB1c2VkIHRvIGNoZWNrIHdoZXRoZXIg YSB0dXBsZeKAmXMgeG1heCBpcwp2aXNpYmxlIHRvIGFsbCB0cmFuc2FjdGlvbnMgKGFuZCB0aHVz IHJlbW92YWJsZSkuIFVwY29taW5nIGNoYW5nZXMgd2lsbAphbHNvIHVzZSBpdCB0byB0ZXN0IHdo ZXRoZXIgYSB0dXBsZeKAmXMgeG1pbiBpcyB2aXNpYmxlIHRvIGFsbCB0bwpkZWNpZGUgaWYgYSBw YWdlIGNhbiBiZSBtYXJrZWQgYWxsLXZpc2libGUgaW4gdGhlIHZpc2liaWxpdHkgbWFwLgoKVGhl IG5ldyBuYW1lLCBHbG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwoKSwgYmV0dGVyIHJlZmxlY3RzIHRo aXMgYnJvYWRlcgpwdXJwb3NlLgoKUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJlc0Bh bmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFp bC5jb20+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgotLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMgfCAgNiArKystLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICAgICAgICAgfCAxMiArKysrKyst LS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMgICAgICAgfCAgMiAr LQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMgICAgICAgICB8IDE3ICsrKysr KysrLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmggICAgICAgICAgICAgICAg IHwgIDQgKystLQogNSBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJp bGl0eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHkuYwppbmRl eCAwNWY2OTQ2ZmU2MC4uNGViYzhhYmRiZWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGVhcGFtX3Zpc2liaWxpdHkuYwpAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAgSGVhcFR1cGxlU2F0aXNm aWVzTm9uVmFjdXVtYWJsZShIZWFwVHVwbGUgaHR1cCwgU25hcHNob3Qgc25hcHNob3QsCiAJewog CQlBc3NlcnQoVHJhbnNhY3Rpb25JZElzVmFsaWQoZGVhZF9hZnRlcikpOwogCi0JCWlmIChHbG9i YWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoc25hcHNob3QtPnZpc3Rlc3QsIGRlYWRfYWZ0ZXIpKQor CQlpZiAoR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHNuYXBzaG90LT52aXN0ZXN0LCBkZWFkX2Fm dGVyKSkKIAkJCXJlcyA9IEhFQVBUVVBMRV9ERUFEOwogCX0KIAllbHNlCkBAIC0xNTEyLDggKzE1 MTIsOCBAQCBIZWFwVHVwbGVJc1N1cmVseURlYWQoSGVhcFR1cGxlIGh0dXAsIEdsb2JhbFZpc1N0 YXRlICp2aXN0ZXN0KQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBEZWxldGVyIGNvbW1pdHRlZCwg c28gdHVwbGUgaXMgZGVhZCBpZiB0aGUgWElEIGlzIG9sZCBlbm91Z2guICovCi0JcmV0dXJuIEds b2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LAotCQkJCQkJCQkJICAgSGVhcFR1cGxl SGVhZGVyR2V0UmF3WG1heCh0dXBsZSkpOworCXJldHVybiBHbG9iYWxWaXNYaWRWaXNpYmxlVG9B bGwodmlzdGVzdCwKKwkJCQkJCQkJCUhlYXBUdXBsZUhlYWRlckdldFJhd1htYXgodHVwbGUpKTsK IH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggYWIzNTRhZGQ3MTEu LjAwMDE2YTBjMWRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMjUyLDcg KzI1Miw3IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBi dWZmZXIpCiAJICovCiAJdmlzdGVzdCA9IEdsb2JhbFZpc1Rlc3RGb3IocmVsYXRpb24pOwogCi0J aWYgKCFHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQodmlzdGVzdCwgcHJ1bmVfeGlkKSkKKwlp ZiAoIUdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCh2aXN0ZXN0LCBwcnVuZV94aWQpKQogCQlyZXR1 cm47CiAKIAkvKgpAQCAtNDg2LDcgKzQ4Niw3IEBAIHBydW5lX2ZyZWV6ZV9wbGFuKE9pZCByZWxv aWQsIEJ1ZmZlciBidWZmZXIsIFBydW5lU3RhdGUgKnByc3RhdGUsCiAJICogRGV0ZXJtaW5pbmcg SFRTViBvbmx5IG9uY2UgZm9yIGVhY2ggdHVwbGUgaXMgcmVxdWlyZWQgZm9yIGNvcnJlY3RuZXNz LAogCSAqIHRvIGRlYWwgd2l0aCBjYXNlcyB3aGVyZSBydW5uaW5nIEhUU1YgdHdpY2UgY291bGQg cmVzdWx0IGluIGRpZmZlcmVudAogCSAqIHJlc3VsdHMuICBGb3IgZXhhbXBsZSwgUkVDRU5UTFlf REVBRCBjYW4gdHVybiB0byBERUFEIGlmIGFub3RoZXIKLQkgKiBjaGVja2VkIGl0ZW0gY2F1c2Vz IEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZUZ1bGxYaWQoKSB0byB1cGRhdGUgdGhlCisJICogY2hl Y2tlZCBpdGVtIGNhdXNlcyBHbG9iYWxWaXNGdWxsWGlkVmlzaWJsZVRvQWxsKCkgdG8gdXBkYXRl IHRoZQogCSAqIGhvcml6b24sIG9yIElOU0VSVF9JTl9QUk9HUkVTUyBjYW4gY2hhbmdlIHRvIERF QUQgaWYgdGhlIGluc2VydGluZwogCSAqIHRyYW5zYWN0aW9uIGFib3J0cy4KIAkgKgpAQCAtMTI5 OSwxMSArMTI5OSwxMSBAQCBoZWFwX3BydW5lX3NhdGlzZmllc192YWN1dW0oUHJ1bmVTdGF0ZSAq cHJzdGF0ZSwgSGVhcFR1cGxlIHR1cCwgQnVmZmVyIGJ1ZmZlcikKIAkgKiBEZXRlcm1pbmUgd2hl dGhlciBvciBub3QgdGhlIHR1cGxlIGlzIGNvbnNpZGVyZWQgZGVhZCB3aGVuIGNvbXBhcmVkCiAJ ICogd2l0aCB0aGUgcHJvdmlkZWQgR2xvYmFsVmlzU3RhdGUuIE9uLWFjY2VzcyBwcnVuaW5nIGRv ZXMgbm90IHByb3ZpZGUKIAkgKiBWYWN1dW1DdXRvZmZzLiBBbmQgZm9yIHZhY3V1bSwgZXZlbiBp ZiB0aGUgdHVwbGUncyB4bWF4IGlzIG5vdCBvbGRlcgotCSAqIHRoYW4gT2xkZXN0WG1pbiwgR2xv YmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgY291bGQgZmluZCB0aGUgcm93IGRlYWQKLQkgKiBp ZiB0aGUgR2xvYmFsVmlzU3RhdGUgaGFzIGJlZW4gdXBkYXRlZCBzaW5jZSB0aGUgYmVnaW5uaW5n IG9mIHZhY3V1bWluZworCSAqIHRoYW4gT2xkZXN0WG1pbiwgR2xvYmFsVmlzWGlkVmlzaWJsZVRv QWxsKCkgY291bGQgZmluZCB0aGUgcm93IGRlYWQgaWYKKwkgKiB0aGUgR2xvYmFsVmlzU3RhdGUg aGFzIGJlZW4gdXBkYXRlZCBzaW5jZSB0aGUgYmVnaW5uaW5nIG9mIHZhY3V1bWluZwogCSAqIHRo ZSByZWxhdGlvbi4KIAkgKi8KLQlpZiAoR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKHByc3Rh dGUtPnZpc3Rlc3QsIGRlYWRfYWZ0ZXIpKQorCWlmIChHbG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwo cHJzdGF0ZS0+dmlzdGVzdCwgZGVhZF9hZnRlcikpCiAJCXJldHVybiBIRUFQVFVQTEVfREVBRDsK IAogCXJldHVybiByZXM7CkBAIC0xNzYyLDcgKzE3NjIsNyBAQCBoZWFwX3BydW5lX3JlY29yZF91 bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0 TnVtYgogCQkJCS8qCiAJCQkJICogRm9yIG5vdyBhbHdheXMgdXNlIHByc3RhdGUtPmN1dG9mZnMg Zm9yIHRoaXMgdGVzdCwgYmVjYXVzZQogCQkJCSAqIHdlIG9ubHkgdXBkYXRlICdhbGxfdmlzaWJs ZScgYW5kICdhbGxfZnJvemVuJyB3aGVuIGZyZWV6aW5nCi0JCQkJICogaXMgcmVxdWVzdGVkLiBX ZSBjb3VsZCB1c2UgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkCisJCQkJICogaXMgcmVxdWVz dGVkLiBXZSBjb3VsZCB1c2UgR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKCkKIAkJCQkgKiBpbnN0 ZWFkLCBpZiBhIG5vbi1mcmVlemluZyBjYWxsZXIgd2FudGVkIHRvIHNldCB0aGUgVk0gYml0Lgog CQkJCSAqLwogCQkJCUFzc2VydChwcnN0YXRlLT5jdXRvZmZzKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3Bn aXN0L3NwZ3ZhY3V1bS5jCmluZGV4IDcxZWYyZTUwMzZmLi4xYzBlYjQyNWVlOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCkBAIC01MzYsNyArNTM2LDcgQEAgdmFjdXVtUmVk aXJlY3RBbmRQbGFjZWhvbGRlcihSZWxhdGlvbiBpbmRleCwgUmVsYXRpb24gaGVhcHJlbCwgQnVm ZmVyIGJ1ZmZlcikKIAkJICovCiAJCWlmIChkdC0+dHVwc3RhdGUgPT0gU1BHSVNUX1JFRElSRUNU ICYmCiAJCQkoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKGR0LT54aWQpIHx8Ci0JCQkgR2xvYmFsVmlz VGVzdElzUmVtb3ZhYmxlWGlkKHZpc3Rlc3QsIGR0LT54aWQpKSkKKwkJCSBHbG9iYWxWaXNYaWRW aXNpYmxlVG9BbGwodmlzdGVzdCwgZHQtPnhpZCkpKQogCQl7CiAJCQlkdC0+dHVwc3RhdGUgPSBT UEdJU1RfUExBQ0VIT0xERVI7CiAJCQlBc3NlcnQob3BhcXVlLT5uUmVkaXJlY3Rpb24gPiAwKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKaW5kZXggMjAwZjcyYzZlMjUuLjIzNWMzYjU4 NGY2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYworKysg Yi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYwpAQCAtNDE4MSw4ICs0MTgxLDcg QEAgR2xvYmFsVmlzVXBkYXRlKHZvaWQpCiAgKiBTZWUgY29tbWVudCBmb3IgR2xvYmFsVmlzU3Rh dGUgZm9yIGRldGFpbHMuCiAgKi8KIGJvb2wKLUdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZUZ1bGxY aWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLAotCQkJCQkJCQlGdWxsVHJhbnNhY3Rpb25JZCBmeGlk KQorR2xvYmFsVmlzRnVsbFhpZFZpc2libGVUb0FsbChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIEZ1 bGxUcmFuc2FjdGlvbklkIGZ4aWQpCiB7CiAJLyoKIAkgKiBJZiBmeGlkIGlzIG9sZGVyIHRoYW4g bWF5YmVfbmVlZGVkIGJvdW5kLCBpdCBkZWZpbml0ZWx5IGlzIHZpc2libGUgdG8KQEAgLTQyMTYs MTQgKzQyMTUsMTQgQEAgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVsbFhpZChHbG9iYWxWaXNT dGF0ZSAqc3RhdGUsCiB9CiAKIC8qCi0gKiBXcmFwcGVyIGFyb3VuZCBHbG9iYWxWaXNUZXN0SXNS ZW1vdmFibGVGdWxsWGlkKCkgZm9yIDMyYml0IHhpZHMuCisgKiBXcmFwcGVyIGFyb3VuZCBHbG9i YWxWaXNGdWxsWGlkVmlzaWJsZVRvQWxsKCkgZm9yIDMyYml0IHhpZHMuCiAgKgogICogSXQgaXMg Y3J1Y2lhbCB0aGF0IHRoaXMgb25seSBnZXRzIGNhbGxlZCBmb3IgeGlkcyBmcm9tIGEgc291cmNl IHRoYXQKICAqIHByb3RlY3RzIGFnYWluc3QgeGlkIHdyYXBhcm91bmRzIChlLmcuIGZyb20gYSB0 YWJsZSBhbmQgdGh1cyBwcm90ZWN0ZWQgYnkKICAqIHJlbGZyb3plbnhpZCkuCiAgKi8KIGJvb2wK LUdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRyYW5z YWN0aW9uSWQgeGlkKQorR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKEdsb2JhbFZpc1N0YXRlICpz dGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQpCiB7CiAJRnVsbFRyYW5zYWN0aW9uSWQgZnhpZDsKIApA QCAtNDIzNywxMiArNDIzNiwxMiBAQCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoR2xvYmFs VmlzU3RhdGUgKnN0YXRlLCBUcmFuc2FjdGlvbklkIHhpZCkKIAkgKi8KIAlmeGlkID0gRnVsbFhp ZFJlbGF0aXZlVG8oc3RhdGUtPmRlZmluaXRlbHlfbmVlZGVkLCB4aWQpOwogCi0JcmV0dXJuIEds b2JhbFZpc1Rlc3RJc1JlbW92YWJsZUZ1bGxYaWQoc3RhdGUsIGZ4aWQpOworCXJldHVybiBHbG9i YWxWaXNGdWxsWGlkVmlzaWJsZVRvQWxsKHN0YXRlLCBmeGlkKTsKIH0KIAogLyoKICAqIENvbnZl bmllbmNlIHdyYXBwZXIgYXJvdW5kIEdsb2JhbFZpc1Rlc3RGb3IoKSBhbmQKLSAqIEdsb2JhbFZp c1Rlc3RJc1JlbW92YWJsZUZ1bGxYaWQoKSwgc2VlIHRoZWlyIGNvbW1lbnRzLgorICogR2xvYmFs VmlzRnVsbFhpZFZpc2libGVUb0FsbCgpLCBzZWUgdGhlaXIgY29tbWVudHMuCiAgKi8KIGJvb2wK IEdsb2JhbFZpc0NoZWNrUmVtb3ZhYmxlRnVsbFhpZChSZWxhdGlvbiByZWwsIEZ1bGxUcmFuc2Fj dGlvbklkIGZ4aWQpCkBAIC00MjUxLDEyICs0MjUwLDEyIEBAIEdsb2JhbFZpc0NoZWNrUmVtb3Zh YmxlRnVsbFhpZChSZWxhdGlvbiByZWwsIEZ1bGxUcmFuc2FjdGlvbklkIGZ4aWQpCiAKIAlzdGF0 ZSA9IEdsb2JhbFZpc1Rlc3RGb3IocmVsKTsKIAotCXJldHVybiBHbG9iYWxWaXNUZXN0SXNSZW1v dmFibGVGdWxsWGlkKHN0YXRlLCBmeGlkKTsKKwlyZXR1cm4gR2xvYmFsVmlzRnVsbFhpZFZpc2li bGVUb0FsbChzdGF0ZSwgZnhpZCk7CiB9CiAKIC8qCiAgKiBDb252ZW5pZW5jZSB3cmFwcGVyIGFy b3VuZCBHbG9iYWxWaXNUZXN0Rm9yKCkgYW5kCi0gKiBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVY aWQoKSwgc2VlIHRoZWlyIGNvbW1lbnRzLgorICogR2xvYmFsVmlzVGVzdElzVmlzaWJsZVhpZCgp LCBzZWUgdGhlaXIgY29tbWVudHMuCiAgKi8KIGJvb2wKIEdsb2JhbFZpc0NoZWNrUmVtb3ZhYmxl WGlkKFJlbGF0aW9uIHJlbCwgVHJhbnNhY3Rpb25JZCB4aWQpCkBAIC00MjY1LDcgKzQyNjQsNyBA QCBHbG9iYWxWaXNDaGVja1JlbW92YWJsZVhpZChSZWxhdGlvbiByZWwsIFRyYW5zYWN0aW9uSWQg eGlkKQogCiAJc3RhdGUgPSBHbG9iYWxWaXNUZXN0Rm9yKHJlbCk7CiAKLQlyZXR1cm4gR2xvYmFs VmlzVGVzdElzUmVtb3ZhYmxlWGlkKHN0YXRlLCB4aWQpOworCXJldHVybiBHbG9iYWxWaXNYaWRW aXNpYmxlVG9BbGwoc3RhdGUsIHhpZCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS91dGlscy9zbmFwbWdyLmggYi9zcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmgKaW5kZXggNjA0 YzFmOTAyMTYuLmEwZWEyY2ZjZWEyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9zbmFw bWdyLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5oCkBAIC0xMDAsOCArMTAwLDgg QEAgZXh0ZXJuIGNoYXIgKkV4cG9ydFNuYXBzaG90KFNuYXBzaG90IHNuYXBzaG90KTsKICAqLwog dHlwZWRlZiBzdHJ1Y3QgR2xvYmFsVmlzU3RhdGUgR2xvYmFsVmlzU3RhdGU7CiBleHRlcm4gR2xv YmFsVmlzU3RhdGUgKkdsb2JhbFZpc1Rlc3RGb3IoUmVsYXRpb24gcmVsKTsKLWV4dGVybiBib29s IEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRyYW5z YWN0aW9uSWQgeGlkKTsKLWV4dGVybiBib29sIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZUZ1bGxY aWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBGdWxsVHJhbnNhY3Rpb25JZCBmeGlkKTsKK2V4dGVy biBib29sIEdsb2JhbFZpc1hpZFZpc2libGVUb0FsbChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRy YW5zYWN0aW9uSWQgeGlkKTsKK2V4dGVybiBib29sIEdsb2JhbFZpc0Z1bGxYaWRWaXNpYmxlVG9B bGwoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBGdWxsVHJhbnNhY3Rpb25JZCBmeGlkKTsKIGV4dGVy biBib29sIEdsb2JhbFZpc0NoZWNrUmVtb3ZhYmxlWGlkKFJlbGF0aW9uIHJlbCwgVHJhbnNhY3Rp b25JZCB4aWQpOwogZXh0ZXJuIGJvb2wgR2xvYmFsVmlzQ2hlY2tSZW1vdmFibGVGdWxsWGlkKFJl bGF0aW9uIHJlbCwgRnVsbFRyYW5zYWN0aW9uSWQgZnhpZCk7CiAKLS0gCjIuNDMuMAoK --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="UTF-8"; name="v24-0011-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Disposition: attachment; filename="v24-0011-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvf7bh10 RnJvbSBmZjVlMjliMDQ5ODBlYjVhZThjOTZmMzI0MjM2ODNkZmMyNmNlYmQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM4OjI0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MjQgMTEvMTZdIFVzZSBHbG9iYWxWaXNTdGF0ZSBpbiB2YWN1dW0gdG8gZGV0ZXJtaW5l IHBhZ2UKIGxldmVsIHZpc2liaWxpdHkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQK CkR1cmluZyB2YWN1dW0ncyBmaXJzdCBhbmQgdGhpcmQgcGhhc2VzLCB3ZSBleGFtaW5lIHR1cGxl cycgdmlzaWJpbGl0eQp0byBkZXRlcm1pbmUgaWYgd2UgY2FuIHNldCB0aGUgcGFnZSBhbGwtdmlz aWJsZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAuCgpQcmV2aW91c2x5LCB0aGlzIGNoZWNrIGNvbXBh cmVkIHR1cGxlIHhtaW5zIGFnYWluc3QgYSBzaW5nbGUgWElEIGNob3NlbiBhdAp0aGUgc3RhcnQg b2YgdmFjdXVtIChPbGRlc3RYbWluKS4gV2Ugbm93IHVzZSBHbG9iYWxWaXNTdGF0ZSwgd2hpY2gg YWxzbwplbmFibGVzIGZ1dHVyZSB3b3JrIHRvIHNldCB0aGUgVk0gZHVyaW5nIG9uLWFjY2VzcyBw cnVuaW5nLCBzaW5jZSBvcmRpbmFyeQpxdWVyaWVzIGhhdmUgYWNjZXNzIHRvIEdsb2JhbFZpc1N0 YXRlIGJ1dCBub3QgT2xkZXN0WG1pbi4KClRoaXMgYWxzbyBiZW5lZml0cyB2YWN1dW0gZGlyZWN0 bHk6IGluIHNvbWUgY2FzZXMsIEdsb2JhbFZpc1N0YXRlIG1heQphZHZhbmNlIGR1cmluZyBhIHZh Y3V1bSwgYWxsb3dpbmcgbW9yZSBwYWdlcyB0byBiZWNvbWUgY29uc2lkZXJlZAphbGwtdmlzaWJs ZS4gQW5kLCBpbiB0aGUgZnV0dXJlLCB3ZSBjb3VsZCBlYXNpbHkgYWRkIGEgaGV1cmlzdGljIHRv CnVwZGF0ZSBHbG9iYWxWaXNTdGF0ZSBtb3JlIGZyZXF1ZW50bHkgZHVyaW5nIHZhY3V1bXMgb2Yg bGFyZ2UgdGFibGVzLiBJbgp0aGUgcmFyZSBjYXNlIHRoYXQgdGhlIEdsb2JhbFZpc1N0YXRlIG1v dmVzIGJhY2t3YXJkLCB2YWN1dW0gZmFsbHMgYmFjawp0byBPbGRlc3RYbWluIHRvIGVuc3VyZSB3 ZSBkb27igJl0IGF0dGVtcHQgdG8gZnJlZXplIGEgZGVhZCB0dXBsZSB0aGF0Cndhc27igJl0IHll dCBwcnVuYWJsZSBhY2NvcmRpbmcgdG8gdGhlIEdsb2JhbFZpc1N0YXRlLgoKQmVjYXVzZSBjb21w YXJpbmcgYSB0cmFuc2FjdGlvbiBJRCBhZ2FpbnN0IEdsb2JhbFZpc1N0YXRlIGlzIG1vcmUKZXhw ZW5zaXZlIHRoYW4gY29tcGFyaW5nIGFnYWluc3QgYSBzaW5nbGUgWElELCB3ZSBkZWZlciB0aGlz IGNoZWNrIHVudGlsCmFmdGVyIHNjYW5uaW5nIGFsbCB0dXBsZXMgb24gdGhlIHBhZ2UuIElmIHZp c2liaWxpdHlfY3V0b2ZmX3hpZCB3YXMKbWFpbnRhaW5lZCwgd2UgcGVyZm9ybSB0aGUgR2xvYmFs VmlzU3RhdGUgY2hlY2sgb25seSBvbmNlIHBlciBwYWdlLgpUaGlzIGlzIHNhZmUgYmVjYXVzZSB2 aXNpYmlsaXR5X2N1dG9mZl94aWQgcmVjb3JkcyB0aGUgbmV3ZXN0IHhtaW4gb24KdGhlIHBhZ2U7 IGlmIGl0IGlzIGdsb2JhbGx5IHZpc2libGUsIHRoZW4gdGhlIGVudGlyZSBwYWdlIGlzIGFsbC12 aXNpYmxlLgoKVGhpcyBhcHByb2FjaCBtYXkgcmVzdWx0IGluIGV4YW1pbmluZyBtb3JlIHR1cGxl IHhtaW5zIHRoYW4gYmVmb3JlLApzaW5jZSB3aXRoIE9sZGVzdFhtaW4gd2UgY291bGQgc29tZXRp bWVzIHJ1bGUgb3V0IHRoZSBwYWdlIGJlaW5nCmFsbC12aXNpYmxlIGVhcmxpZXIuIEhvd2V2ZXIs IHByb2ZpbGluZyBzaG93cyB0aGUgYWRkaXRpb25hbCBjb3N0IGlzIG5vdApzaWduaWZpY2FudC4K ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2Vk LWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgotLS0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMgfCAyOCArKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICAgICB8IDQzICsrKysrKysrKy0tLS0t LS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICAgICB8IDEw ICsrLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgICAgICAgIHwgMTEg KysrLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5 LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCmluZGV4IDRl YmM4YWJkYmViLi5lZGQ1MjlkYzNjMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX3Zpc2liaWxpdHkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1fdmlzaWJpbGl0eS5jCkBAIC0xMTg5LDYgKzExODksMzQgQEAgSGVhcFR1cGxlU2F0aXNmaWVz VmFjdXVtKEhlYXBUdXBsZSBodHVwLCBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCiAJcmV0dXJu IHJlczsKIH0KIAorLyoKKyAqIE5lYXJseSB0aGUgc2FtZSBhcyBIZWFwVHVwbGVTYXRpc2ZpZXNW YWN1dW0sIGJ1dCB1c2VzIGEgR2xvYmFsVmlzU3RhdGUgdG8KKyAqIGRldGVybWluZSB3aGV0aGVy IG9yIG5vdCBhIHR1cGxlIGlzIEhFQVBUVVBMRV9ERUFEIE9yCisgKiBIRUFQVFVQTEVfUkVDRU5U TFlfREVBRC4gSXQgc2VydmVzIHRoZSBzYW1lIHB1cnBvc2UgYnV0IGNhbiBiZSB1c2VkIGJ5Cisg KiBjYWxsZXJzIHRoYXQgaGF2ZSBub3QgY2FsY3VsYXRlZCBhIHNpbmdsZSBPbGRlc3RYbWluIHZh bHVlLgorICovCitIVFNWX1Jlc3VsdAorSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtR2xvYmFsVmlz KEhlYXBUdXBsZSBodHVwLCBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKKwkJCQkJCQkJICBCdWZm ZXIgYnVmZmVyKQoreworCVRyYW5zYWN0aW9uSWQgZGVhZF9hZnRlciA9IEludmFsaWRUcmFuc2Fj dGlvbklkOworCUhUU1ZfUmVzdWx0IHJlczsKKworCXJlcyA9IEhlYXBUdXBsZVNhdGlzZmllc1Zh Y3V1bUhvcml6b24oaHR1cCwgYnVmZmVyLCAmZGVhZF9hZnRlcik7CisKKwlpZiAocmVzID09IEhF QVBUVVBMRV9SRUNFTlRMWV9ERUFEKQorCXsKKwkJQXNzZXJ0KFRyYW5zYWN0aW9uSWRJc1ZhbGlk KGRlYWRfYWZ0ZXIpKTsKKworCQlpZiAoR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHZpc3Rlc3Qs IGRlYWRfYWZ0ZXIpKQorCQkJcmVzID0gSEVBUFRVUExFX0RFQUQ7CisJfQorCWVsc2UKKwkJQXNz ZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChkZWFkX2FmdGVyKSk7CisKKwlyZXR1cm4gcmVzOwor fQorCiAvKgogICogV29yayBob3JzZSBmb3IgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtIGFuZCBz aW1pbGFyIHJvdXRpbmVzLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXgg MDAwMTZhMGMxZGQuLjdlNjI4ZDRhZDU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwpAQCAtNDQ5LDExICs0NDksMTIgQEAgcHJ1bmVfZnJlZXplX3NldHVwKFBydW5lRnJlZXplUGFy YW1zICpwYXJhbXMsCiAKIAkvKgogCSAqIFRoZSB2aXNpYmlsaXR5IGN1dG9mZiB4aWQgaXMgdGhl IG5ld2VzdCB4bWluIG9mIGxpdmUsIGNvbW1pdHRlZCB0dXBsZXMKLQkgKiBvbGRlciB0aGFuIE9s ZGVzdFhtaW4gb24gdGhlIHBhZ2UuIFRoaXMgZmllbGQgaXMgb25seSBrZXB0IHVwLXRvLWRhdGUK LQkgKiBpZiB0aGUgcGFnZSBpcyBhbGwtdmlzaWJsZS4gQXMgc29vbiBhcyBhIHR1cGxlIGlzIGVu Y291bnRlcmVkIHRoYXQgaXMKLQkgKiBub3QgdmlzaWJsZSB0byBhbGwsIHRoaXMgZmllbGQgaXMg dW5tYWludGFpbmVkLiBBcyBsb25nIGFzIGl0IGlzCi0JICogbWFpbnRhaW5lZCwgaXQgY2FuIGJl IHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uCi0JICogd2hl biB1cGRhdGluZyB0aGUgVk0gYW5kL29yIGZyZWV6aW5nIGFsbCB0aGUgdHVwbGVzIG9uIHRoZSBw YWdlLgorCSAqIG9uIHRoZSBwYWdlIG9sZGVyIHRoYW4gdGhlIHZpc2liaWxpdHkgaG9yaXpvbiBy ZXByZXNlbnRlZCBpbiB0aGUKKwkgKiBHbG9iYWxWaXNTdGF0ZS4gVGhpcyBmaWVsZCBpcyBvbmx5 IGtlcHQgdXAtdG8tZGF0ZSBpZiB0aGUgcGFnZSBpcworCSAqIGFsbC12aXNpYmxlLiBBcyBzb29u IGFzIGEgdHVwbGUgaXMgZW5jb3VudGVyZWQgdGhhdCBpcyBub3QgdmlzaWJsZSB0bworCSAqIGFs bCwgdGhpcyBmaWVsZCBpcyB1bm1haW50YWluZWQuIEFzIGxvbmcgYXMgaXQgaXMgbWFpbnRhaW5l ZCwgaXQgY2FuIGJlCisJICogdXNlZCB0byBjYWxjdWxhdGUgdGhlIHNuYXBzaG90IGNvbmZsaWN0 IGhvcml6b24gd2hlbiB1cGRhdGluZyB0aGUgVk0KKwkgKiBhbmQvb3IgZnJlZXppbmcgYWxsIHRo ZSB0dXBsZXMgb24gdGhlIHBhZ2UuCiAJICovCiAJcHJzdGF0ZS0+dmlzaWJpbGl0eV9jdXRvZmZf eGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiB9CkBAIC05NjUsMTQgKzk2NiwxMyBAQCBoZWFw X3BhZ2Vfd2lsbF9zZXRfdm0oUmVsYXRpb24gcmVsYXRpb24sCiAgKi8KIHN0YXRpYyBib29sCiBo ZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJ IFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKKwkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVz dCwKIAkJCQkJCSBib29sICphbGxfZnJvemVuLAogCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2li aWxpdHlfY3V0b2ZmX3hpZCwKIAkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKQog ewogCi0JcmV0dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShyZWwsIGJ1ZiwKLQkJ CQkJCQkJCQkgIE9sZGVzdFhtaW4sCisJcmV0dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlz aWJsZShyZWwsIGJ1ZiwgdmlzdGVzdCwKIAkJCQkJCQkJCQkgIE5VTEwsIDAsCiAJCQkJCQkJCQkJ ICBhbGxfZnJvemVuLAogCQkJCQkJCQkJCSAgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLApAQCAtMTA1 OCw2ICsxMDU4LDE2IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFy YW1zICpwYXJhbXMsCiAJcHJ1bmVfZnJlZXplX3BsYW4oUmVsYXRpb25HZXRSZWxpZChwYXJhbXMt PnJlbGF0aW9uKSwKIAkJCQkJICBidWZmZXIsICZwcnN0YXRlLCBvZmZfbG9jKTsKIAorCS8qCisJ ICogQWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdGhlIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLCBpZiB0 aGUgbmV3ZXN0IHhtaW4KKwkgKiBhbW9uZ3N0IHRoZW0gaXMgbm90IHZpc2libGUgdG8gZXZlcnlv bmUsIHRoZSBwYWdlIGNhbm5vdCBiZQorCSAqIGFsbC12aXNpYmxlLgorCSAqLworCWlmIChwcnN0 YXRlLmFsbF92aXNpYmxlICYmCisJCVRyYW5zYWN0aW9uSWRJc05vcm1hbChwcnN0YXRlLnZpc2li aWxpdHlfY3V0b2ZmX3hpZCkgJiYKKwkJIUdsb2JhbFZpc1hpZFZpc2libGVUb0FsbChwcnN0YXRl LnZpc3Rlc3QsIHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkKSkKKwkJcHJzdGF0ZS5hbGxf dmlzaWJsZSA9IHByc3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNlOworCiAJLyoKIAkgKiBJZiBjaGVj a3N1bXMgYXJlIGVuYWJsZWQsIGNhbGxpbmcgaGVhcF9wcnVuZV9zYXRpc2ZpZXNfdmFjdXVtKCkg d2hpbGUKIAkgKiBjaGVja2luZyB0dXBsZSB2aXNpYmlsaXR5IGluZm9ybWF0aW9uIGluIHBydW5l X2ZyZWV6ZV9wbGFuKCkgbWF5IGhhdmUKQEAgLTEyMjcsMTAgKzEyMzcsOSBAQCBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQlib29sCQlkZWJ1 Z19hbGxfZnJvemVuOwogCiAJCUFzc2VydChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKTsKLQkJ QXNzZXJ0KHByc3RhdGUuY3V0b2Zmcyk7CiAKIAkJQXNzZXJ0KGhlYXBfcGFnZV9pc19hbGxfdmlz aWJsZShwYXJhbXMtPnJlbGF0aW9uLCBidWZmZXIsCi0JCQkJCQkJCQkJcHJzdGF0ZS5jdXRvZmZz LT5PbGRlc3RYbWluLAorCQkJCQkJCQkJCXByc3RhdGUudmlzdGVzdCwKIAkJCQkJCQkJCQkmZGVi dWdfYWxsX2Zyb3plbiwKIAkJCQkJCQkJCQkmZGVidWdfY3V0b2ZmLCBvZmZfbG9jKSk7CiAKQEAg LTE3NTksMjAgKzE3NjgsNiBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFs KFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYgogCQkJCSAqLwogCQkJ CXhtaW4gPSBIZWFwVHVwbGVIZWFkZXJHZXRYbWluKGh0dXApOwogCi0JCQkJLyoKLQkJCQkgKiBG b3Igbm93IGFsd2F5cyB1c2UgcHJzdGF0ZS0+Y3V0b2ZmcyBmb3IgdGhpcyB0ZXN0LCBiZWNhdXNl Ci0JCQkJICogd2Ugb25seSB1cGRhdGUgJ2FsbF92aXNpYmxlJyBhbmQgJ2FsbF9mcm96ZW4nIHdo ZW4gZnJlZXppbmcKLQkJCQkgKiBpcyByZXF1ZXN0ZWQuIFdlIGNvdWxkIHVzZSBHbG9iYWxWaXNY aWRWaXNpYmxlVG9BbGwoKQotCQkJCSAqIGluc3RlYWQsIGlmIGEgbm9uLWZyZWV6aW5nIGNhbGxl ciB3YW50ZWQgdG8gc2V0IHRoZSBWTSBiaXQuCi0JCQkJICovCi0JCQkJQXNzZXJ0KHByc3RhdGUt PmN1dG9mZnMpOwotCQkJCWlmICghVHJhbnNhY3Rpb25JZFByZWNlZGVzKHhtaW4sIHByc3RhdGUt PmN1dG9mZnMtPk9sZGVzdFhtaW4pKQotCQkJCXsKLQkJCQkJcHJzdGF0ZS0+YWxsX3Zpc2libGUg PSBmYWxzZTsKLQkJCQkJcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwotCQkJCQlicmVhazsK LQkJCQl9Ci0KIAkJCQkvKiBUcmFjayBuZXdlc3QgeG1pbiBvbiBwYWdlLiAqLwogCQkJCWlmIChU cmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCBwcnN0YXRlLT52aXNpYmlsaXR5X2N1dG9mZl94aWQp ICYmCiAJCQkJCVRyYW5zYWN0aW9uSWRJc05vcm1hbCh4bWluKSkKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYwppbmRleCBiNzNkYmRiZTRlZC4uNTg3Y2Y5MDZmZTYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTI3MzQsNyArMjczNCw3IEBAIGxhenlfdmFjdXVt X2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIg YnVmZmVyLAogCSAqIGRvbmUgb3V0c2lkZSB0aGUgY3JpdGljYWwgc2VjdGlvbi4KIAkgKi8KIAlp ZiAoaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBidWZmZXIsCi0J CQkJCQkJCQkgICB2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbiwKKwkJCQkJCQkJCSAgIHZhY3Jl bC0+dmlzdGVzdCwKIAkJCQkJCQkJCSAgIGRlYWRvZmZzZXRzLCBudW1fb2Zmc2V0cywKIAkJCQkJ CQkJCSAgICZhbGxfZnJvemVuLCAmdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAogCQkJCQkJCQkJICAg JnZhY3JlbC0+b2ZmbnVtKSkKQEAgLTM0OTMsNyArMzQ5Myw3IEBAIGRlYWRfaXRlbXNfY2xlYW51 cChMVlJlbFN0YXRlICp2YWNyZWwpCiAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHBhZ2UgaXMgYWxs LXZpc2libGUgb3RoZXIgdGhhbiB0aGUgcHJvdmlkZWQKICAqIGRlYWRvZmZzZXRzIGFuZCBmYWxz ZSBvdGhlcndpc2UuCiAgKgotICogT2xkZXN0WG1pbiBpcyB1c2VkIHRvIGRldGVybWluZSB2aXNp YmlsaXR5LgorICogdmlzdGVzdCBpcyB1c2VkIHRvIGRldGVybWluZSB2aXNpYmlsaXR5LgogICoK ICAqIE91dHB1dCBwYXJhbWV0ZXJzOgogICoKQEAgLTM1MDksNyArMzUwOSw3IEBAIGRlYWRfaXRl bXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwpCiAgKi8KIGJvb2wKIGhlYXBfcGFnZV93b3Vs ZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkJICAgVHJh bnNhY3Rpb25JZCBPbGRlc3RYbWluLAorCQkJCQkJCSAgIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0 LAogCQkJCQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCiAJCQkJCQkJICAgaW50IG5k ZWFkb2Zmc2V0cywKIAkJCQkJCQkgICBib29sICphbGxfZnJvemVuLApAQCAtMzU4Myw3ICszNTgz LDcgQEAgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVy IGJ1ZiwKIAogCQkvKiBWaXNpYmlsaXR5IGNoZWNrcyBtYXkgZG8gSU8gb3IgYWxsb2NhdGUgbWVt b3J5ICovCiAJCUFzc2VydChDcml0U2VjdGlvbkNvdW50ID09IDApOwotCQlzd2l0Y2ggKEhlYXBU dXBsZVNhdGlzZmllc1ZhY3V1bSgmdHVwbGUsIE9sZGVzdFhtaW4sIGJ1ZikpCisJCXN3aXRjaCAo SGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtR2xvYmFsVmlzKCZ0dXBsZSwgdmlzdGVzdCwgYnVmKSkK IAkJewogCQkJY2FzZSBIRUFQVFVQTEVfTElWRToKIAkJCQl7CkBAIC0zNjAyLDcgKzM2MDIsNyBA QCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVm LAogCQkJCQkgKiB0aGF0IGV2ZXJ5b25lIHNlZXMgaXQgYXMgY29tbWl0dGVkPwogCQkJCQkgKi8K IAkJCQkJeG1pbiA9IEhlYXBUdXBsZUhlYWRlckdldFhtaW4odHVwbGUudF9kYXRhKTsKLQkJCQkJ aWYgKCFUcmFuc2FjdGlvbklkUHJlY2VkZXMoeG1pbiwgT2xkZXN0WG1pbikpCisJCQkJCWlmICgh R2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHZpc3Rlc3QsIHhtaW4pKQogCQkJCQl7CiAJCQkJCQlh bGxfdmlzaWJsZSA9IGZhbHNlOwogCQkJCQkJKmFsbF9mcm96ZW4gPSBmYWxzZTsKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFw YW0uaAppbmRleCAzOTJhZjY1MDNkYS4uYjZmMWIzZmI0NDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAg LTI3OCwxMCArMjc4LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVlemVQYXJhbXMKIAogCS8q CiAJICogQ29udGFpbnMgdGhlIGN1dG9mZnMgdXNlZCBmb3IgZnJlZXppbmcuIFRoZXkgYXJlIHJl cXVpcmVkIGlmIHRoZQotCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIHNldC4g Y3V0b2Zmcy0+T2xkZXN0WG1pbiBpcyBhbHNvIHVzZWQKLQkgKiB0byBkZXRlcm1pbmUgaWYgZGVh ZCB0dXBsZXMgYXJlIEhFQVBUVVBMRV9SRUNFTlRMWV9ERUFEIG9yCi0JICogSEVBUFRVUExFX0RF QUQuIEN1cnJlbnRseSBvbmx5IHZhY3V1bSBwYXNzZXMgaW4gY3V0b2Zmcy4gVmFjdXVtCi0JICog Y2FsY3VsYXRlcyB0aGVtIG9uY2UsIGF0IHRoZSBiZWdpbm5pbmcgb2YgdmFjdXVtaW5nIHRoZSBy ZWxhdGlvbi4KKwkgKiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBzZXQuIEN1cnJl bnRseSBvbmx5IHZhY3V1bSBwYXNzZXMgaW4KKwkgKiBjdXRvZmZzLiBWYWN1dW0gY2FsY3VsYXRl cyB0aGVtIG9uY2UsIGF0IHRoZSBiZWdpbm5pbmcgb2YgdmFjdXVtaW5nIHRoZQorCSAqIHJlbGF0 aW9uLgogCSAqLwogCXN0cnVjdCBWYWN1dW1DdXRvZmZzICpjdXRvZmZzOwogfSBQcnVuZUZyZWV6 ZVBhcmFtczsKQEAgLTQ0NSw3ICs0NDQsNyBAQCBleHRlcm4gdm9pZCBsb2dfaGVhcF9wcnVuZV9h bmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogZXh0ZXJuIHZvaWQg aGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwKIAkJCQkJCQljb25zdCBWYWN1dW1QYXJhbXMg cGFyYW1zLCBCdWZmZXJBY2Nlc3NTdHJhdGVneSBic3RyYXRlZ3kpOwogZXh0ZXJuIGJvb2wgaGVh cF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKLQkJ CQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkJCQkJICAgR2xvYmFs VmlzU3RhdGUgKnZpc3Rlc3QsCiAJCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpkZWFkb2Zmc2V0 cywKIAkJCQkJCQkJCQkgICBpbnQgbmRlYWRvZmZzZXRzLAogCQkJCQkJCQkJCSAgIGJvb2wgKmFs bF9mcm96ZW4sCkBAIC00NTksNiArNDU4LDggQEAgZXh0ZXJuIFRNX1Jlc3VsdCBIZWFwVHVwbGVT YXRpc2ZpZXNVcGRhdGUoSGVhcFR1cGxlIGh0dXAsIENvbW1hbmRJZCBjdXJjaWQsCiAJCQkJCQkJ CQkJICBCdWZmZXIgYnVmZmVyKTsKIGV4dGVybiBIVFNWX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2Zp ZXNWYWN1dW0oSGVhcFR1cGxlIGh0dXAsIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAkJCQkJ CQkJCQkJQnVmZmVyIGJ1ZmZlcik7CitleHRlcm4gSFRTVl9SZXN1bHQgSGVhcFR1cGxlU2F0aXNm aWVzVmFjdXVtR2xvYmFsVmlzKEhlYXBUdXBsZSBodHVwLAorCQkJCQkJCQkJCQkJCSBHbG9iYWxW aXNTdGF0ZSAqdmlzdGVzdCwgQnVmZmVyIGJ1ZmZlcik7CiBleHRlcm4gSFRTVl9SZXN1bHQgSGVh cFR1cGxlU2F0aXNmaWVzVmFjdXVtSG9yaXpvbihIZWFwVHVwbGUgaHR1cCwgQnVmZmVyIGJ1ZmZl ciwKIAkJCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKmRlYWRfYWZ0ZXIpOwogZXh0ZXJuIHZv aWQgSGVhcFR1cGxlU2V0SGludEJpdHMoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLCBCdWZmZXIgYnVm ZmVyLAotLSAKMi40My4wCgo= --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="UTF-8"; name="v24-0012-Unset-all_visible-sooner-if-not-freezing.patch" Content-Disposition: attachment; filename="v24-0012-Unset-all_visible-sooner-if-not-freezing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvfb1l11 RnJvbSA0ODY5YWQ5NDVkNTgyY2JlN2RkNTdiNWJiNWVmNDU4MTg3YmE0ZjY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE0IE9jdCAyMDI1IDE1OjIyOjM1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MjQgMTIvMTZdIFVuc2V0IGFsbF92aXNpYmxlIHNvb25lciBpZiBub3QgZnJlZXppbmcK TUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCkluIHRoZSBwcnVuZS9mcmVlemUgcGF0 aCwgd2UgY3VycmVudGx5IGRlbGF5IGNsZWFyaW5nIGFsbF92aXNpYmxlIGFuZAphbGxfZnJvemVu IGluIHRoZSBwcmVzZW5jZSBvZiBkZWFkIGl0ZW1zIHRvIGFsbG93IG9wcG9ydHVuaXN0aWMKZnJl ZXppbmcuCgpIb3dldmVyLCBpZiBubyBmcmVlemluZyB3aWxsIGJlIGF0dGVtcHRlZCwgdGhlcmXi gJlzIG5vIG5lZWQgdG8gZGVsYXkuCkNsZWFyaW5nIHRoZSBmbGFncyBlYXJsaWVyIGF2b2lkcyBl eHRyYSBib29ra2VlcGluZyBpbgpoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFs KCkuIFRoaXMgY3VycmVudGx5IGhhcyBubyBydW50aW1lCmVmZmVjdCBiZWNhdXNlIGFsbCBjYWxs ZXJzIHRoYXQgY29uc2lkZXIgc2V0dGluZyB0aGUgVk0gYWxzbyBwcmVwYXJlCmZyZWV6ZSBwbGFu cywgYnV0IHVwY29taW5nIGNoYW5nZXMgd2lsbCBhbGxvdyBvbi1hY2Nlc3MgcHJ1bmluZyB0byBz ZXQKdGhlIFZNIHdpdGhvdXQgZnJlZXppbmcuIFRoZSBleHRyYSBib29ra2VlcGluZyB3YXMgbm90 aWNlYWJsZSBpbiBhCnByb2ZpbGUgb2Ygb24tYWNjZXNzIFZNIHNldHRpbmcuCgpSZXZpZXdlZC1i eTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9wcnVuZWhlYXAuYyB8IDE1ICsrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQs IDEzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYwppbmRleCA3ZTYyOGQ0YWQ1OS4uNGVkMmVmZjVlMDUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jCkBAIC0xNjI1LDggKzE2MjUsMTMgQEAgaGVhcF9wcnVuZV9yZWNvcmRf ZGVhZChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtLAogCS8qCiAJICog RGVsaWJlcmF0ZWx5IGRlbGF5IHVuc2V0dGluZyBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiB1 bnRpbCBsYXRlcgogCSAqIGR1cmluZyBwcnVuaW5nLiBSZW1vdmFibGUgZGVhZCB0dXBsZXMgc2hv dWxkbid0IHByZWNsdWRlIGZyZWV6aW5nIHRoZQotCSAqIHBhZ2UuCisJICogcGFnZS4gSWYgd2Ug d29uJ3QgYXR0ZW1wdCBmcmVlemluZywganVzdCB1bnNldCBhbGwtdmlzaWJsZSBub3csIHRob3Vn aC4KIAkgKi8KKwlpZiAoIXByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQorCXsKKwkJcHJzdGF0ZS0+ YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOworCX0K IAogCS8qIFJlY29yZCB0aGUgZGVhZCBvZmZzZXQgZm9yIHZhY3V1bSAqLwogCXByc3RhdGUtPmRl YWRvZmZzZXRzW3Byc3RhdGUtPmxwZGVhZF9pdGVtcysrXSA9IG9mZm51bTsKQEAgLTE4ODUsOCAr MTg5MCwxNCBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfZGVhZChQYWdlIHBhZ2Us IFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlcgogCSAqIFNpbWlsYXJseSwgZG9uJ3Qg dW5zZXQgYWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4gdW50aWwgbGF0ZXIsIGF0IHRoZQogCSAq IGVuZCBvZiBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLiAgVGhpcyB3aWxsIGFsbG93IHVz IHRvIGF0dGVtcHQgdG8KIAkgKiBmcmVlemUgdGhlIHBhZ2UgYWZ0ZXIgcHJ1bmluZy4gIEFzIGxv bmcgYXMgd2UgdW5zZXQgaXQgYmVmb3JlIHVwZGF0aW5nCi0JICogdGhlIHZpc2liaWxpdHkgbWFw LCB0aGlzIHdpbGwgYmUgY29ycmVjdC4KKwkgKiB0aGUgdmlzaWJpbGl0eSBtYXAsIHRoaXMgd2ls bCBiZSBjb3JyZWN0LiBJZiB3ZSB3b24ndCBhdHRlbXB0IGZyZWV6aW5nLAorCSAqIHRob3VnaCwg anVzdCB1bnNldCBhbGwtdmlzaWJsZSBub3cuCiAJICovCisJaWYgKCFwcnN0YXRlLT5hdHRlbXB0 X2ZyZWV6ZSkKKwl7CisJCXByc3RhdGUtPmFsbF92aXNpYmxlID0gZmFsc2U7CisJCXByc3RhdGUt PmFsbF9mcm96ZW4gPSBmYWxzZTsKKwl9CiAKIAkvKiBSZWNvcmQgdGhlIGRlYWQgb2Zmc2V0IGZv ciB2YWN1dW0gKi8KIAlwcnN0YXRlLT5kZWFkb2Zmc2V0c1twcnN0YXRlLT5scGRlYWRfaXRlbXMr K10gPSBvZmZudW07Ci0tIAoyLjQzLjAKCg== --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="US-ASCII"; name="v24-0013-Track-which-relations-are-modified-by-a-query.patch" Content-Disposition: attachment; filename="v24-0013-Track-which-relations-are-modified-by-a-query.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvfhby12 RnJvbSAwMzFiODBmZjY4OGYzM2MwYmUxNDAzN2Q3YjVlN2EwNmNjOWQ2YWVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTU6MDc6MjQgLTA1MDAKU3ViamVjdDogW1BB VENIIHYyNCAxMy8xNl0gVHJhY2sgd2hpY2ggcmVsYXRpb25zIGFyZSBtb2RpZmllZCBieSBhIHF1 ZXJ5CgpTYXZlIHRoZSByZWxpZHMgaW4gYSBiaXRtYXAgaW4gdGhlIGVzdGF0ZS4gQSBsYXRlciBj b21taXQgd2lsbCBwYXNzIHRoaXMKaW5mb3JtYXRpb24gZG93biB0byBzY2FuIG5vZGVzIHRvIGNv bnRyb2wgd2hldGhlciBvciBub3QgdGhlIHNjYW4gYWxsb3dzCnNldHRpbmcgdGhlIHZpc2liaWxp dHkgbWFwIHdoaWxlIG9uLWFjY2VzcyBwcnVuaW5nLiBXZSBkb24ndCB3YW50IHRvIHNldAp0aGUg dmlzaWJpbGl0eSBtYXAgaWYgdGhlIHF1ZXJ5IGlzIGp1c3QgZ29pbmcgdG8gbW9kaWZ5IHRoZSBw YWdlCmltbWVkaWF0ZWx5IGFmdGVyLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWlu LmMgIHwgNCArKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYyB8IDIgKysKIHNy Yy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgIHwgNiArKysrKysKIDMgZmlsZXMgY2hhbmdl ZCwgMTIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDI3YzllZWM2 OTdiLi4wNjMwYTVhZjc5ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC05MTYsNiArOTE2 LDEwIEBAIEluaXRQbGFuKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZsYWdzKQogCQkJCQli cmVhazsKIAkJCX0KIAorCQkJLyogSWYgaXQgaGFzIGEgcm93bWFyaywgdGhlIHJlbGF0aW9uIGlz IG1vZGlmaWVkICovCisJCQllc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcyA9IGJtc19hZGRfbWVt YmVyKGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzLAorCQkJCQkJCQkJCQkJCQlyYy0+cnRpKTsK KwogCQkJLyogQ2hlY2sgdGhhdCByZWxhdGlvbiBpcyBhIGxlZ2FsIHRhcmdldCBmb3IgbWFya2lu ZyAqLwogCQkJaWYgKHJlbGF0aW9uKQogCQkJCUNoZWNrVmFsaWRSb3dNYXJrUmVsKHJlbGF0aW9u LCByYy0+bWFya1R5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0 aWxzLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYwppbmRleCBmZGM2NWMyYjQy Yi4uMjhhMDZkY2QyNDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGls cy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jCkBAIC04OTMsNiArODkz LDggQEAgRXhlY0luaXRSZXN1bHRSZWxhdGlvbihFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5m byAqcmVzdWx0UmVsSW5mbywKIAkJZXN0YXRlLT5lc19yZXN1bHRfcmVsYXRpb25zID0gKFJlc3Vs dFJlbEluZm8gKiopCiAJCQlwYWxsb2MwKGVzdGF0ZS0+ZXNfcmFuZ2VfdGFibGVfc2l6ZSAqIHNp emVvZihSZXN1bHRSZWxJbmZvICopKTsKIAllc3RhdGUtPmVzX3Jlc3VsdF9yZWxhdGlvbnNbcnRp IC0gMV0gPSByZXN1bHRSZWxJbmZvOworCWVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzID0gYm1z X2FkZF9tZW1iZXIoZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMsCisJCQkJCQkJCQkJCQlydGkp OwogCiAJLyoKIAkgKiBTYXZpbmcgaW4gdGhlIGxpc3QgYWxsb3dzIHRvIGF2b2lkIG5lZWRsZXNz bHkgdHJhdmVyc2luZyB0aGUgd2hvbGUKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4 ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggNjRmZjY5OTY0 MzEuLjdmNjUyMmNlYThlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNjc2LDYgKzY3NiwxMiBA QCB0eXBlZGVmIHN0cnVjdCBFU3RhdGUKIAkJCQkJCQkJCSAqIEV4ZWNEb0luaXRpYWxQcnVuaW5n KCkgKi8KIAljb25zdCBjaGFyICplc19zb3VyY2VUZXh0OwkvKiBTb3VyY2UgdGV4dCBmcm9tIFF1 ZXJ5RGVzYyAqLwogCisJLyoKKwkgKiBSVCBpbmRleGVzIG9mIHJlbGF0aW9ucyBtb2RpZmllZCBi eSB0aGUgcXVlcnkgZWl0aGVyIHRocm91Z2gKKwkgKiBVUERBVEUvREVMRVRFL0lOU0VSVC9NRVJH RSBvciBTRUxFQ1QgRk9SIFVQREFURQorCSAqLworCUJpdG1hcHNldCAgKmVzX21vZGlmaWVkX3Jl bGlkczsKKwogCUp1bmtGaWx0ZXIgKmVzX2p1bmtGaWx0ZXI7CS8qIHRvcC1sZXZlbCBqdW5rIGZp bHRlciwgaWYgYW55ICovCiAKIAkvKiBJZiBxdWVyeSBjYW4gaW5zZXJ0L2RlbGV0ZSB0dXBsZXMs IHRoZSBjb21tYW5kIElEIHRvIG1hcmsgdGhlbSB3aXRoICovCi0tIAoyLjQzLjAKCg== --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="US-ASCII"; name="v24-0014-Pass-down-information-on-table-modification-to-s.patch" Content-Disposition: attachment; filename="v24-0014-Pass-down-information-on-table-modification-to-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvfl7w13 RnJvbSAwMGM2NWZhZDdlODE3YTJhMTBlYzQ3MjcyYmJlOTkwYzUwNTAyMDc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTU6MTI6MTggLTA1MDAKU3ViamVjdDogW1BB VENIIHYyNCAxNC8xNl0gUGFzcyBkb3duIGluZm9ybWF0aW9uIG9uIHRhYmxlIG1vZGlmaWNhdGlv biB0byBzY2FuCiBub2RlCgpQYXNzIGRvd24gaW5mb3JtYXRpb24gdG8gc2VxdWVudGlhbCBzY2Fu LCBpbmRleCBzY2FuLCBhbmQgYml0bWFwIHRhYmxlCnNjYW4gbm9kZXMgb24gd2hldGhlciBvciBu b3QgdGhlIHF1ZXJ5IG1vZGlmaWVzIHRoZSByZWxhdGlvbiBiZWluZwpzY2FubmVkLiBBIGxhdGVy IGNvbW1pdCB3aWxsIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRvIHVwZGF0ZSB0aGUgVk0KZHVyaW5n IG9uLWFjY2VzcyBwcnVuaW5nIG9ubHkgaWYgdGhlIHJlbGF0aW9uIGlzIG5vdCBtb2RpZmllZCBi eSB0aGUKcXVlcnkuCi0tLQogY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYyAgICAgICAg ICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAgICAgICAgICAgfCAg MyArKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMgICAgICAgIHwgIDMgKyst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jICB8ICA3ICsrKy0tLQog c3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMgICAgICAgICAgfCAgNCArKy0tCiBzcmMv YmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jICAgICAgICB8ICA2ICsrKy0tLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQv YWNjZXNzL3RhYmxlL3RhYmxlYW0uYyAgICAgICAgfCAgNyArKystLS0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvbnN0cmFpbnQuYyAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L2NvcHl0by5jICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jICAgICAgICAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMu YyAgICAgICAgICAgfCAgNCArKy0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcu YyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYyAg ICB8ICA4ICsrKy0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5j IHwgIDkgKysrKysrKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMg IHwgIDIgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYyAgICAgIHwgMTEg KysrKysrKystLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAgICAgICAgfCAy NiArKysrKysrKysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRi b3VuZHMuYyAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMgICAg ICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmggICAgICAgICAgICAgICAg fCAgMiArLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgICAgICAgfCAgNiAr KysrKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgIHwgMTkgKysr KysrKysrKy0tLS0tLS0KIDIzIGZpbGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDQ0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdyb3dsb2Nrcy9wZ3Jvd2xvY2tzLmMg Yi9jb250cmliL3Bncm93bG9ja3MvcGdyb3dsb2Nrcy5jCmluZGV4IGY4ODI2OTMzMmI2Li4yN2Yw MWQ4MDU1ZiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYworKysg Yi9jb250cmliL3Bncm93bG9ja3MvcGdyb3dsb2Nrcy5jCkBAIC0xMTQsNyArMTE0LDcgQEAgcGdy b3dsb2NrcyhQR19GVU5DVElPTl9BUkdTKQogCQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShyZWwpKTsKIAogCS8qIFNjYW4gdGhlIHJlbGF0aW9uICovCi0Jc2NhbiA9IHRhYmxlX2JlZ2lu c2NhbihyZWwsIEdldEFjdGl2ZVNuYXBzaG90KCksIDAsIE5VTEwpOworCXNjYW4gPSB0YWJsZV9i ZWdpbnNjYW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMLCAwKTsKIAloc2NhbiA9 IChIZWFwU2NhbkRlc2MpIHNjYW47CiAKIAlhdHRpbm1ldGEgPSBUdXBsZURlc2NHZXRBdHRJbk1l dGFkYXRhKHJzaW5mby0+c2V0RGVzYyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv YnJpbi9icmluLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKaW5kZXggY2IzMzMx OTIxY2IuLmI5NjEzNzg3Yjg1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9i cmluLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCkBAIC0yODQyLDcgKzI4 NDIsOCBAQCBfYnJpbl9wYXJhbGxlbF9zY2FuX2FuZF9idWlsZChCcmluQnVpbGRTdGF0ZSAqc3Rh dGUsCiAJaW5kZXhJbmZvLT5paV9Db25jdXJyZW50ID0gYnJpbnNoYXJlZC0+aXNjb25jdXJyZW50 OwogCiAJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChoZWFwLAotCQkJCQkJCQkJUGFy YWxsZWxUYWJsZVNjYW5Gcm9tQnJpblNoYXJlZChicmluc2hhcmVkKSk7CisJCQkJCQkJCQlQYXJh bGxlbFRhYmxlU2NhbkZyb21CcmluU2hhcmVkKGJyaW5zaGFyZWQpLAorCQkJCQkJCQkJMCk7CiAK IAlyZWx0dXBsZXMgPSB0YWJsZV9pbmRleF9idWlsZF9zY2FuKGhlYXAsIGluZGV4LCBpbmRleElu Zm8sIHRydWUsIHRydWUsCiAJCQkJCQkJCQkgICBicmluYnVpbGRDYWxsYmFja1BhcmFsbGVsLCBz dGF0ZSwgc2Nhbik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2Vy dC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYwppbmRleCBmODdjNjBhMjMw Yy4uNjQ1Njg4ZjkyNDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5z ZXJ0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYwpAQCAtMjA1OCw3 ICsyMDU4LDggQEAgX2dpbl9wYXJhbGxlbF9zY2FuX2FuZF9idWlsZChHaW5CdWlsZFN0YXRlICpz dGF0ZSwKIAlpbmRleEluZm8tPmlpX0NvbmN1cnJlbnQgPSBnaW5zaGFyZWQtPmlzY29uY3VycmVu dDsKIAogCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoaGVhcCwKLQkJCQkJCQkJCVBh cmFsbGVsVGFibGVTY2FuRnJvbUdpbkJ1aWxkU2hhcmVkKGdpbnNoYXJlZCkpOworCQkJCQkJCQkJ UGFyYWxsZWxUYWJsZVNjYW5Gcm9tR2luQnVpbGRTaGFyZWQoZ2luc2hhcmVkKSwKKwkJCQkJCQkJ CTApOwogCiAJcmVsdHVwbGVzID0gdGFibGVfaW5kZXhfYnVpbGRfc2NhbihoZWFwLCBpbmRleCwg aW5kZXhJbmZvLCB0cnVlLCBwcm9ncmVzcywKIAkJCQkJCQkJCSAgIGdpbkJ1aWxkQ2FsbGJhY2tQ YXJhbGxlbCwgc3RhdGUsIHNjYW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX2hhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5k bGVyLmMKaW5kZXggYmNiYWM4NDRiYjYuLmQ3ZmFjOTQ4MjZkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKQEAgLTc5LDEyICs3OSwxMyBAQCBoZWFwYW1fc2xvdF9j YWxsYmFja3MoUmVsYXRpb24gcmVsYXRpb24pCiAgKi8KIAogc3RhdGljIEluZGV4RmV0Y2hUYWJs ZURhdGEgKgotaGVhcGFtX2luZGV4X2ZldGNoX2JlZ2luKFJlbGF0aW9uIHJlbCkKK2hlYXBhbV9p bmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwsIHVpbnQzMiBmbGFncykKIHsKIAlJbmRleEZl dGNoSGVhcERhdGEgKmhzY2FuID0gcGFsbG9jMChzaXplb2YoSW5kZXhGZXRjaEhlYXBEYXRhKSk7 CiAKIAloc2Nhbi0+eHNfYmFzZS5yZWwgPSByZWw7CiAJaHNjYW4tPnhzX2NidWYgPSBJbnZhbGlk QnVmZmVyOworCWhzY2FuLT5tb2RpZmllc19iYXNlX3JlbCA9ICEoZmxhZ3MgJiBTT19ISU5UX1JF TF9SRUFEX09OTFkpOwogCiAJcmV0dXJuICZoc2Nhbi0+eHNfYmFzZTsKIH0KQEAgLTc1Myw3ICs3 NTQsNyBAQCBoZWFwYW1fcmVsYXRpb25fY29weV9mb3JfY2x1c3RlcihSZWxhdGlvbiBPbGRIZWFw LCBSZWxhdGlvbiBOZXdIZWFwLAogCiAJCXRhYmxlU2NhbiA9IE5VTEw7CiAJCWhlYXBTY2FuID0g TlVMTDsKLQkJaW5kZXhTY2FuID0gaW5kZXhfYmVnaW5zY2FuKE9sZEhlYXAsIE9sZEluZGV4LCBT bmFwc2hvdEFueSwgTlVMTCwgMCwgMCk7CisJCWluZGV4U2NhbiA9IGluZGV4X2JlZ2luc2NhbihP bGRIZWFwLCBPbGRJbmRleCwgU25hcHNob3RBbnksIE5VTEwsIDAsIDAsIDApOwogCQlpbmRleF9y ZXNjYW4oaW5kZXhTY2FuLCBOVUxMLCAwLCBOVUxMLCAwKTsKIAl9CiAJZWxzZQpAQCAtNzYyLDcg Kzc2Myw3IEBAIGhlYXBhbV9yZWxhdGlvbl9jb3B5X2Zvcl9jbHVzdGVyKFJlbGF0aW9uIE9sZEhl YXAsIFJlbGF0aW9uIE5ld0hlYXAsCiAJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJP R1JFU1NfQ0xVU1RFUl9QSEFTRSwKIAkJCQkJCQkJCSBQUk9HUkVTU19DTFVTVEVSX1BIQVNFX1NF UV9TQ0FOX0hFQVApOwogCi0JCXRhYmxlU2NhbiA9IHRhYmxlX2JlZ2luc2NhbihPbGRIZWFwLCBT bmFwc2hvdEFueSwgMCwgKFNjYW5LZXkpIE5VTEwpOworCQl0YWJsZVNjYW4gPSB0YWJsZV9iZWdp bnNjYW4oT2xkSGVhcCwgU25hcHNob3RBbnksIDAsIChTY2FuS2V5KSBOVUxMLCAwKTsKIAkJaGVh cFNjYW4gPSAoSGVhcFNjYW5EZXNjKSB0YWJsZVNjYW47CiAJCWluZGV4U2NhbiA9IE5VTEw7CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2luZGV4L2dlbmFtLmMKaW5kZXggYzk2OTE3MDg1YzIuLjlkNDI1NTA0ZTFiIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYwpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHN5c3RhYmxlX2Jl Z2luc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJCX0KIAogCQlzeXNzY2FuLT5pc2NhbiA9 IGluZGV4X2JlZ2luc2NhbihoZWFwUmVsYXRpb24sIGlyZWwsCi0JCQkJCQkJCQkJIHNuYXBzaG90 LCBOVUxMLCBua2V5cywgMCk7CisJCQkJCQkJCQkJIHNuYXBzaG90LCBOVUxMLCBua2V5cywgMCwg MCk7CiAJCWluZGV4X3Jlc2NhbihzeXNzY2FuLT5pc2NhbiwgaWR4a2V5LCBua2V5cywgTlVMTCwg MCk7CiAJCXN5c3NjYW4tPnNjYW4gPSBOVUxMOwogCkBAIC03MDgsNyArNzA4LDcgQEAgc3lzdGFi bGVfYmVnaW5zY2FuX29yZGVyZWQoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCX0KIAogCXN5c3Nj YW4tPmlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXBSZWxhdGlvbiwgaW5kZXhSZWxhdGlvbiwK LQkJCQkJCQkJCSBzbmFwc2hvdCwgTlVMTCwgbmtleXMsIDApOworCQkJCQkJCQkJIHNuYXBzaG90 LCBOVUxMLCBua2V5cywgMCwgMCk7CiAJaW5kZXhfcmVzY2FuKHN5c3NjYW4tPmlzY2FuLCBpZHhr ZXksIG5rZXlzLCBOVUxMLCAwKTsKIAlzeXNzY2FuLT5zY2FuID0gTlVMTDsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9pbmRleC9pbmRleGFtLmMKaW5kZXggMDQ5MmQ5MmQyM2IuLmI1NTIzY2YyYWIxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKQEAgLTI1Nyw3ICsyNTcsNyBAQCBpbmRleF9iZWdpbnNj YW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCVJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiAJ CQkJU25hcHNob3Qgc25hcHNob3QsCiAJCQkJSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uICppbnN0 cnVtZW50LAotCQkJCWludCBua2V5cywgaW50IG5vcmRlcmJ5cykKKwkJCQlpbnQgbmtleXMsIGlu dCBub3JkZXJieXMsIHVpbnQzMiBmbGFncykKIHsKIAlJbmRleFNjYW5EZXNjIHNjYW47CiAKQEAg LTI4NCw3ICsyODQsNyBAQCBpbmRleF9iZWdpbnNjYW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAog CXNjYW4tPmluc3RydW1lbnQgPSBpbnN0cnVtZW50OwogCiAJLyogcHJlcGFyZSB0byBmZXRjaCBp bmRleCBtYXRjaGVzIGZyb20gdGFibGUgKi8KLQlzY2FuLT54c19oZWFwZmV0Y2ggPSB0YWJsZV9p bmRleF9mZXRjaF9iZWdpbihoZWFwUmVsYXRpb24pOworCXNjYW4tPnhzX2hlYXBmZXRjaCA9IHRh YmxlX2luZGV4X2ZldGNoX2JlZ2luKGhlYXBSZWxhdGlvbiwgZmxhZ3MpOwogCiAJcmV0dXJuIHNj YW47CiB9CkBAIC02MTUsNyArNjE1LDcgQEAgaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0 aW9uIGhlYXByZWwsIFJlbGF0aW9uIGluZGV4cmVsLAogCXNjYW4tPmluc3RydW1lbnQgPSBpbnN0 cnVtZW50OwogCiAJLyogcHJlcGFyZSB0byBmZXRjaCBpbmRleCBtYXRjaGVzIGZyb20gdGFibGUg Ki8KLQlzY2FuLT54c19oZWFwZmV0Y2ggPSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwcmVs KTsKKwlzY2FuLT54c19oZWFwZmV0Y2ggPSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwcmVs LCAwKTsKIAogCXJldHVybiBzY2FuOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnRzb3J0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwpp bmRleCA0NTRhZGFlZTdkYy4uMDJhYjAyMzNlNTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0c29ydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 c29ydC5jCkBAIC0xOTI1LDcgKzE5MjUsNyBAQCBfYnRfcGFyYWxsZWxfc2Nhbl9hbmRfc29ydChC VFNwb29sICpidHNwb29sLCBCVFNwb29sICpidHNwb29sMiwKIAlpbmRleEluZm8gPSBCdWlsZElu ZGV4SW5mbyhidHNwb29sLT5pbmRleCk7CiAJaW5kZXhJbmZvLT5paV9Db25jdXJyZW50ID0gYnRz aGFyZWQtPmlzY29uY3VycmVudDsKIAlzY2FuID0gdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKGJ0 c3Bvb2wtPmhlYXAsCi0JCQkJCQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZyb21CVFNoYXJlZChidHNo YXJlZCkpOworCQkJCQkJCQkJUGFyYWxsZWxUYWJsZVNjYW5Gcm9tQlRTaGFyZWQoYnRzaGFyZWQp LCAwKTsKIAlyZWx0dXBsZXMgPSB0YWJsZV9pbmRleF9idWlsZF9zY2FuKGJ0c3Bvb2wtPmhlYXAs IGJ0c3Bvb2wtPmluZGV4LCBpbmRleEluZm8sCiAJCQkJCQkJCQkgICB0cnVlLCBwcm9ncmVzcywg X2J0X2J1aWxkX2NhbGxiYWNrLAogCQkJCQkJCQkJICAgJmJ1aWxkc3RhdGUsIHNjYW4pOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxlYW0uYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKaW5kZXggMWUwOTlmZWJkYzguLmRiMmEzMDJhNDg2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKQEAgLTE2MywxMCArMTYzLDExIEBAIHRhYmxl X3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplKFJlbGF0aW9uIHJlbCwgUGFyYWxsZWxUYWJsZVNjYW5E ZXNjIHBzY2FuLAogfQogCiBUYWJsZVNjYW5EZXNjCi10YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwo UmVsYXRpb24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbikKK3RhYmxlX2Jl Z2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiByZWxhdGlvbiwgUGFyYWxsZWxUYWJsZVNjYW5EZXNj IHBzY2FuLCB1aW50MzIgZmxhZ3MpCiB7CiAJU25hcHNob3QJc25hcHNob3Q7Ci0JdWludDMyCQlm bGFncyA9IFNPX1RZUEVfU0VRU0NBTiB8CisKKwlmbGFncyB8PSBTT19UWVBFX1NFUVNDQU4gfAog CQlTT19BTExPV19TVFJBVCB8IFNPX0FMTE9XX1NZTkMgfCBTT19BTExPV19QQUdFTU9ERTsKIAog CUFzc2VydChSZWxGaWxlTG9jYXRvckVxdWFscyhyZWxhdGlvbi0+cmRfbG9jYXRvciwgcHNjYW4t PnBoc19sb2NhdG9yKSk7CkBAIC0yNDgsNyArMjQ5LDcgQEAgdGFibGVfaW5kZXhfZmV0Y2hfdHVw bGVfY2hlY2soUmVsYXRpb24gcmVsLAogCWJvb2wJCWZvdW5kOwogCiAJc2xvdCA9IHRhYmxlX3Ns b3RfY3JlYXRlKHJlbCwgTlVMTCk7Ci0Jc2NhbiA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKHJl bCk7CisJc2NhbiA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKHJlbCwgMCk7CiAJZm91bmQgPSB0 YWJsZV9pbmRleF9mZXRjaF90dXBsZShzY2FuLCB0aWQsIHNuYXBzaG90LCBzbG90LCAmY2FsbF9h Z2FpbiwKIAkJCQkJCQkJCWFsbF9kZWFkKTsKIAl0YWJsZV9pbmRleF9mZXRjaF9lbmQoc2Nhbik7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb25zdHJhaW50LmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9jb25zdHJhaW50LmMKaW5kZXggMzQ5N2E4MjIxZjIuLjk3YzgyNzhlMzZk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb25zdHJhaW50LmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jCkBAIC0xMDYsNyArMTA2LDcgQEAgdW5pcXVl X2tleV9yZWNoZWNrKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICovCiAJdG1wdGlkID0gY2hlY2t0aWQ7 CiAJewotCQlJbmRleEZldGNoVGFibGVEYXRhICpzY2FuID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVn aW4odHJpZ2RhdGEtPnRnX3JlbGF0aW9uKTsKKwkJSW5kZXhGZXRjaFRhYmxlRGF0YSAqc2NhbiA9 IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKHRyaWdkYXRhLT50Z19yZWxhdGlvbiwgMCk7CiAJCWJv b2wJCWNhbGxfYWdhaW4gPSBmYWxzZTsKIAogCQlpZiAoIXRhYmxlX2luZGV4X2ZldGNoX3R1cGxl KHNjYW4sICZ0bXB0aWQsIFNuYXBzaG90U2VsZiwgc2xvdCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2NvcHl0by5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMKaW5k ZXggY2VmNDUyNTg0ZTUuLjIyYjQ1M2RjNjE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9jb3B5dG8uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5dG8uYwpAQCAtMTE1 Niw3ICsxMTU2LDcgQEAgQ29weVJlbGF0aW9uVG8oQ29weVRvU3RhdGUgY3N0YXRlLCBSZWxhdGlv biByZWwsIFJlbGF0aW9uIHJvb3RfcmVsLCB1aW50NjQgKnByb2MKIAlBdHRyTWFwICAgICptYXAg PSBOVUxMOwogCVR1cGxlVGFibGVTbG90ICpyb290X3Nsb3QgPSBOVUxMOwogCi0Jc2NhbmRlc2Mg PSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMKTsKKwlz Y2FuZGVzYyA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIEdldEFjdGl2ZVNuYXBzaG90KCksIDAsIE5V TEwsIDApOwogCXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShyZWwsIE5VTEwpOwogCiAJLyoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggMDdlNWI5NTc4MmUuLjU4ZGJiZjRkODUxIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNjM0NSw3ICs2MzQ1LDcgQEAgQVRSZXdyaXRlVGFi bGUoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBPaWQgT0lETmV3SGVhcCkKIAkJICogY2hlY2tpbmcg YWxsIHRoZSBjb25zdHJhaW50cy4KIAkJICovCiAJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hv dChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihvbGRyZWws IHNuYXBzaG90LCAwLCBOVUxMKTsKKwkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihvbGRyZWwsIHNu YXBzaG90LCAwLCBOVUxMLCAwKTsKIAogCQkvKgogCQkgKiBTd2l0Y2ggdG8gcGVyLXR1cGxlIG1l bW9yeSBjb250ZXh0IGFuZCByZXNldCBpdCBmb3IgZWFjaCB0dXBsZQpAQCAtMTM3MzAsNyArMTM3 MzAsNyBAQCB2YWxpZGF0ZUZvcmVpZ25LZXlDb25zdHJhaW50KGNoYXIgKmNvbm5hbWUsCiAJICov CiAJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwogCXNs b3QgPSB0YWJsZV9zbG90X2NyZWF0ZShyZWwsIE5VTEwpOwotCXNjYW4gPSB0YWJsZV9iZWdpbnNj YW4ocmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWws IHNuYXBzaG90LCAwLCBOVUxMLCAwKTsKIAogCXBlclR1cEN4dCA9IEFsbG9jU2V0Q29udGV4dENy ZWF0ZShDdXJyZW50TWVtb3J5Q29udGV4dCwKIAkJCQkJCQkJCSAgInZhbGlkYXRlRm9yZWlnbktl eUNvbnN0cmFpbnQiLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKaW5kZXggNDdkNTA0N2ZlOGIuLjA1 NTc1OWNkMzQzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKQEAgLTMxNTcsNyArMzE1Nyw3IEBA IHZhbGlkYXRlRG9tYWluTm90TnVsbENvbnN0cmFpbnQoT2lkIGRvbWFpbm9pZCkKIAogCQkvKiBT Y2FuIGFsbCB0dXBsZXMgaW4gdGhpcyByZWxhdGlvbiAqLwogCQlzbmFwc2hvdCA9IFJlZ2lzdGVy U25hcHNob3QoR2V0TGF0ZXN0U25hcHNob3QoKSk7Ci0JCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4o dGVzdHJlbCwgc25hcHNob3QsIDAsIE5VTEwpOworCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHRl c3RyZWwsIHNuYXBzaG90LCAwLCBOVUxMLCAwKTsKIAkJc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRl KHRlc3RyZWwsIE5VTEwpOwogCQl3aGlsZSAodGFibGVfc2Nhbl9nZXRuZXh0c2xvdChzY2FuLCBG b3J3YXJkU2NhbkRpcmVjdGlvbiwgc2xvdCkpCiAJCXsKQEAgLTMyMzgsNyArMzIzOCw3IEBAIHZh bGlkYXRlRG9tYWluQ2hlY2tDb25zdHJhaW50KE9pZCBkb21haW5vaWQsIGNvbnN0IGNoYXIgKmNj YmluLCBMT0NLTU9ERSBsb2NrbW9kCiAKIAkJLyogU2NhbiBhbGwgdHVwbGVzIGluIHRoaXMgcmVs YXRpb24gKi8KIAkJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90 KCkpOwotCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHRlc3RyZWwsIHNuYXBzaG90LCAwLCBOVUxM KTsKKwkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbih0ZXN0cmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwg MCk7CiAJCXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZSh0ZXN0cmVsLCBOVUxMKTsKIAkJd2hpbGUg KHRhYmxlX3NjYW5fZ2V0bmV4dHNsb3Qoc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIHNsb3Qp KQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCmluZGV4IGRkMzIzYzliOWZkLi5i NDFiZmVjYTI0NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5n LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKQEAgLTgxNiw3ICs4 MTYsNyBAQCBjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnQoUmVsYXRpb24gaGVh cCwgUmVsYXRpb24gaW5kZXgsCiByZXRyeToKIAljb25mbGljdCA9IGZhbHNlOwogCWZvdW5kX3Nl bGYgPSBmYWxzZTsKLQlpbmRleF9zY2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXAsIGluZGV4LCAm RGlydHlTbmFwc2hvdCwgTlVMTCwgaW5kbmtleWF0dHMsIDApOworCWluZGV4X3NjYW4gPSBpbmRl eF9iZWdpbnNjYW4oaGVhcCwgaW5kZXgsICZEaXJ0eVNuYXBzaG90LCBOVUxMLCBpbmRua2V5YXR0 cywgMCwgMCk7CiAJaW5kZXhfcmVzY2FuKGluZGV4X3NjYW4sIHNjYW5rZXlzLCBpbmRua2V5YXR0 cywgTlVMTCwgMCk7CiAKIAl3aGlsZSAoaW5kZXhfZ2V0bmV4dF9zbG90KGluZGV4X3NjYW4sIEZv cndhcmRTY2FuRGlyZWN0aW9uLCBleGlzdGluZ19zbG90KSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1JlcGxpY2F0aW9uLmMKaW5kZXggZGVmMzI3NzRjOTAuLjQ3M2QyMzZlNTUxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYwpAQCAtMjA0LDcgKzIwNCw3IEBAIFJlbGF0aW9u RmluZFJlcGxUdXBsZUJ5SW5kZXgoUmVsYXRpb24gcmVsLCBPaWQgaWR4b2lkLAogCXNrZXlfYXR0 b2ZmID0gYnVpbGRfcmVwbGluZGV4X3NjYW5fa2V5KHNrZXksIHJlbCwgaWR4cmVsLCBzZWFyY2hz bG90KTsKIAogCS8qIFN0YXJ0IGFuIGluZGV4IHNjYW4uICovCi0Jc2NhbiA9IGluZGV4X2JlZ2lu c2NhbihyZWwsIGlkeHJlbCwgJnNuYXAsIE5VTEwsIHNrZXlfYXR0b2ZmLCAwKTsKKwlzY2FuID0g aW5kZXhfYmVnaW5zY2FuKHJlbCwgaWR4cmVsLCAmc25hcCwgTlVMTCwgc2tleV9hdHRvZmYsIDAs IDApOwogCiByZXRyeToKIAlmb3VuZCA9IGZhbHNlOwpAQCAtMzgyLDcgKzM4Miw3IEBAIFJlbGF0 aW9uRmluZFJlcGxUdXBsZVNlcShSZWxhdGlvbiByZWwsIExvY2tUdXBsZU1vZGUgbG9ja21vZGUs CiAKIAkvKiBTdGFydCBhIGhlYXAgc2Nhbi4gKi8KIAlJbml0RGlydHlTbmFwc2hvdChzbmFwKTsK LQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgJnNuYXAsIDAsIE5VTEwpOworCXNjYW4gPSB0 YWJsZV9iZWdpbnNjYW4ocmVsLCAmc25hcCwgMCwgTlVMTCwgMCk7CiAJc2NhbnNsb3QgPSB0YWJs ZV9zbG90X2NyZWF0ZShyZWwsIE5VTEwpOwogCiByZXRyeToKQEAgLTYwMSw3ICs2MDEsNyBAQCBS ZWxhdGlvbkZpbmREZWxldGVkVHVwbGVJbmZvU2VxKFJlbGF0aW9uIHJlbCwgVHVwbGVUYWJsZVNs b3QgKnNlYXJjaHNsb3QsCiAJICogbm90IHlldCBjb21taXR0ZWQgb3IgdGhvc2UganVzdCBjb21t aXR0ZWQgcHJpb3IgdG8gdGhlIHNjYW4gYXJlCiAJICogZXhjbHVkZWQgaW4gdXBkYXRlX21vc3Rf cmVjZW50X2RlbGV0aW9uX2luZm8oKS4KIAkgKi8KLQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJl bCwgU25hcHNob3RBbnksIDAsIE5VTEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBT bmFwc2hvdEFueSwgMCwgTlVMTCwgMCk7CiAJc2NhbnNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShy ZWwsIE5VTEwpOwogCiAJdGFibGVfcmVzY2FuKHNjYW4sIE5VTEwpOwpAQCAtNjY1LDcgKzY2NSw3 IEBAIFJlbGF0aW9uRmluZERlbGV0ZWRUdXBsZUluZm9CeUluZGV4KFJlbGF0aW9uIHJlbCwgT2lk IGlkeG9pZCwKIAkgKiBub3QgeWV0IGNvbW1pdHRlZCBvciB0aG9zZSBqdXN0IGNvbW1pdHRlZCBw cmlvciB0byB0aGUgc2NhbiBhcmUKIAkgKiBleGNsdWRlZCBpbiB1cGRhdGVfbW9zdF9yZWNlbnRf ZGVsZXRpb25faW5mbygpLgogCSAqLwotCXNjYW4gPSBpbmRleF9iZWdpbnNjYW4ocmVsLCBpZHhy ZWwsIFNuYXBzaG90QW55LCBOVUxMLCBza2V5X2F0dG9mZiwgMCk7CisJc2NhbiA9IGluZGV4X2Jl Z2luc2NhbihyZWwsIGlkeHJlbCwgU25hcHNob3RBbnksIE5VTEwsIHNrZXlfYXR0b2ZmLCAwLCAw KTsKIAogCWluZGV4X3Jlc2NhbihzY2FuLCBza2V5LCBza2V5X2F0dG9mZiwgTlVMTCwgMCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKaW5kZXggYmYyNGYzZDdm ZTAuLjBkODU0ZGI1MWExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0 bWFwSGVhcHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNj YW4uYwpAQCAtMTA1LDExICsxMDUsMTggQEAgQml0bWFwVGFibGVTY2FuU2V0dXAoQml0bWFwSGVh cFNjYW5TdGF0ZSAqbm9kZSkKIAkgKi8KIAlpZiAoIW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVz YykKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSAwOworCisJCWlmICghYm1zX2lzX21lbWJlcigoKFNj YW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJCSAgIG5vZGUtPnNzLnBz LnN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpKQorCQkJZmxhZ3MgPSBTT19ISU5UX1JFTF9SRUFE X09OTFk7CisKIAkJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJCXRhYmxlX2JlZ2lu c2Nhbl9ibShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJICAgbm9kZS0+c3Mu cHMuc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCSAgIDAsCi0JCQkJCQkJICAgTlVMTCk7CisJ CQkJCQkJICAgTlVMTCwKKwkJCQkJCQkgICBmbGFncyk7CiAJfQogCiAJbm9kZS0+c3Muc3NfY3Vy cmVudFNjYW5EZXNjLT5zdC5yc190Ym1pdGVyYXRvciA9IHRibWl0ZXJhdG9yOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKaW5kZXggZjQ2NGNjYTk1MDcuLjg3YjA0YjFi ODhlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKQEAgLTk0LDcg Kzk0LDcgQEAgSW5kZXhPbmx5TmV4dChJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUpCiAJCQkJCQkJ CSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgICZub2RlLT5pb3NzX0luc3RydW1l bnQsCiAJCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCi0JCQkJCQkJCSAgIG5vZGUt Pmlvc3NfTnVtT3JkZXJCeUtleXMpOworCQkJCQkJCQkgICBub2RlLT5pb3NzX051bU9yZGVyQnlL ZXlzLCAwKTsKIAogCQlub2RlLT5pb3NzX1NjYW5EZXNjID0gc2NhbmRlc2M7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVJbmRleHNjYW4uYwppbmRleCBmMzY5MjlkZWVjMy4uOTBmOTI5Y2U3NDEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKQEAgLTEwMiw2ICsxMDIsMTIgQEAgSW5k ZXhOZXh0KEluZGV4U2NhblN0YXRlICpub2RlKQogCiAJaWYgKHNjYW5kZXNjID09IE5VTEwpCiAJ eworCQl1aW50MzIJCWZsYWdzID0gMDsKKworCQlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICop IG5vZGUtPnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCQkgICBlc3RhdGUtPmVzX21vZGlm aWVkX3JlbGlkcykpCisJCQlmbGFncyA9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKKwogCQkvKgog CQkgKiBXZSByZWFjaCBoZXJlIGlmIHRoZSBpbmRleCBzY2FuIGlzIG5vdCBwYXJhbGxlbCwgb3Ig aWYgd2UncmUKIAkJICogc2VyaWFsbHkgZXhlY3V0aW5nIGFuIGluZGV4IHNjYW4gdGhhdCB3YXMg cGxhbm5lZCB0byBiZSBwYXJhbGxlbC4KQEAgLTExMSw3ICsxMTcsOCBAQCBJbmRleE5leHQoSW5k ZXhTY2FuU3RhdGUgKm5vZGUpCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJ CQkJCSAgICZub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNj YW5LZXlzLAotCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMpOworCQkJCQkJCQkg ICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsCisJCQkJCQkJCSAgIGZsYWdzKTsKIAogCQlub2Rl LT5pc3NfU2NhbkRlc2MgPSBzY2FuZGVzYzsKIApAQCAtMjA3LDcgKzIxNCw3IEBAIEluZGV4TmV4 dFdpdGhSZW9yZGVyKEluZGV4U2NhblN0YXRlICpub2RlKQogCQkJCQkJCQkgICBlc3RhdGUtPmVz X3NuYXBzaG90LAogCQkJCQkJCQkgICAmbm9kZS0+aXNzX0luc3RydW1lbnQsCiAJCQkJCQkJCSAg IG5vZGUtPmlzc19OdW1TY2FuS2V5cywKLQkJCQkJCQkJICAgbm9kZS0+aXNzX051bU9yZGVyQnlL ZXlzKTsKKwkJCQkJCQkJICAgbm9kZS0+aXNzX051bU9yZGVyQnlLZXlzLCAwKTsKIAogCQlub2Rl LT5pc3NfU2NhbkRlc2MgPSBzY2FuZGVzYzsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZVNlcXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMK aW5kZXggOTQwNDdkMjk0MzAuLjRkMGNiYjlkZWU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlU2Vxc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFz Y2FuLmMKQEAgLTY1LDEzICs2NSwyMCBAQCBTZXFOZXh0KFNlcVNjYW5TdGF0ZSAqbm9kZSkKIAog CWlmIChzY2FuZGVzYyA9PSBOVUxMKQogCXsKKwkJdWludDMyCQlmbGFncyA9IDA7CisKKwkJaWYg KCFibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBub2RlLT5zcy5wcy5wbGFuKS0+c2NhbnJlbGlkLAor CQkJCQkJICAgZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpKQorCQkJZmxhZ3MgPSBTT19ISU5U X1JFTF9SRUFEX09OTFk7CisKIAkJLyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUgc2NhbiBp cyBub3QgcGFyYWxsZWwsIG9yIGlmIHdlJ3JlIHNlcmlhbGx5CiAJCSAqIGV4ZWN1dGluZyBhIHNj YW4gdGhhdCB3YXMgcGxhbm5lZCB0byBiZSBwYXJhbGxlbC4KIAkJICovCiAJCXNjYW5kZXNjID0g dGFibGVfYmVnaW5zY2FuKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJICAg ZXN0YXRlLT5lc19zbmFwc2hvdCwKLQkJCQkJCQkJICAgMCwgTlVMTCk7CisJCQkJCQkJCSAgIDAs IE5VTEwsIGZsYWdzKTsKKwogCQlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPSBzY2FuZGVz YzsKIAl9CiAKQEAgLTM2NywxNCArMzc0LDIwIEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShT ZXFTY2FuU3RhdGUgKm5vZGUsCiB7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBub2RlLT5zcy5wcy5z dGF0ZTsKIAlQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW47CisJdWludDMyCQlmbGFncyA9IDA7 CiAKIAlwc2NhbiA9IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLCBub2RlLT5wc2Nhbl9sZW4p OwogCXRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxh dGlvbiwKIAkJCQkJCQkJICBwc2NhbiwKIAkJCQkJCQkJICBlc3RhdGUtPmVzX3NuYXBzaG90KTsK IAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9p ZCwgcHNjYW4pOworCWlmICghYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxh biktPnNjYW5yZWxpZCwKKwkJCQkJICAgZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpKQorCQlm bGFncyA9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKKwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2Fu RGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVs YXRpb24sIHBzY2FuKTsKKwkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1 cnJlbnRSZWxhdGlvbiwgcHNjYW4sCisJCQkJCQkJCSBmbGFncyk7CiB9CiAKIC8qIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K QEAgLTQwNCw4ICs0MTcsMTUgQEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplV29ya2VyKFNlcVNjYW5T dGF0ZSAqbm9kZSwKIAkJCQkJCQlQYXJhbGxlbFdvcmtlckNvbnRleHQgKnB3Y3h0KQogewogCVBh cmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbjsKKwl1aW50MzIJCWZsYWdzID0gMDsKKworCWlmICgh Ym1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJ CQkJICAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcykpCisJCWZsYWdzID0g U09fSElOVF9SRUxfUkVBRF9PTkxZOwogCiAJcHNjYW4gPSBzaG1fdG9jX2xvb2t1cChwd2N4dC0+ dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIGZhbHNlKTsKIAlub2RlLT5zcy5z c19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Mu c3NfY3VycmVudFJlbGF0aW9uLCBwc2Nhbik7CisJCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChu b2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCisJCQkJCQkJCSBwc2NhbiwKKwkJCQkJCQkJIGZs YWdzKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRz LmMgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jCmluZGV4IDhiYTAzOGM1 ZWY0Li5kM2IzNDBlZTJhNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3Bh cnRib3VuZHMuYworKysgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jCkBA IC0zMzcwLDcgKzMzNzAsNyBAQCBjaGVja19kZWZhdWx0X3BhcnRpdGlvbl9jb250ZW50cyhSZWxh dGlvbiBwYXJlbnQsIFJlbGF0aW9uIGRlZmF1bHRfcmVsLAogCQllY29udGV4dCA9IEdldFBlclR1 cGxlRXhwckNvbnRleHQoZXN0YXRlKTsKIAkJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdl dExhdGVzdFNuYXBzaG90KCkpOwogCQl0dXBzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUocGFydF9y ZWwsICZlc3RhdGUtPmVzX3R1cGxlVGFibGUpOwotCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHBh cnRfcmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocGFy dF9yZWwsIHNuYXBzaG90LCAwLCBOVUxMLCAwKTsKIAogCQkvKgogCQkgKiBTd2l0Y2ggdG8gcGVy LXR1cGxlIG1lbW9yeSBjb250ZXh0IGFuZCByZXNldCBpdCBmb3IgZWFjaCB0dXBsZQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvc2VsZnVuY3MuYwppbmRleCA1NDBhYTk2MjhkNy4uMjg0MzQxNDZlYmEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9zZWxmdW5jcy5jCkBAIC03MTAwLDcgKzcxMDAsNyBAQCBnZXRfYWN0dWFsX3Zhcmlh YmxlX2VuZHBvaW50KFJlbGF0aW9uIGhlYXBSZWwsCiAKIAlpbmRleF9zY2FuID0gaW5kZXhfYmVn aW5zY2FuKGhlYXBSZWwsIGluZGV4UmVsLAogCQkJCQkJCQkgJlNuYXBzaG90Tm9uVmFjdXVtYWJs ZSwgTlVMTCwKLQkJCQkJCQkJIDEsIDApOworCQkJCQkJCQkgMSwgMCwgMCk7CiAJLyogU2V0IGl0 IHVwIGZvciBpbmRleC1vbmx5IHNjYW4gKi8KIAlpbmRleF9zY2FuLT54c193YW50X2l0dXAgPSB0 cnVlOwogCWluZGV4X3Jlc2NhbihpbmRleF9zY2FuLCBzY2Fua2V5cywgMSwgTlVMTCwgMCk7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vz cy9nZW5hbS5oCmluZGV4IDkyMDBhMjJiZDlmLi5kMjlkOWU5MDVmYyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgK QEAgLTE3Nyw3ICsxNzcsNyBAQCBleHRlcm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW4o UmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCQkJCQkJIFJlbGF0aW9uIGluZGV4UmVsYXRpb24s CiAJCQkJCQkJCQkgU25hcHNob3Qgc25hcHNob3QsCiAJCQkJCQkJCQkgSW5kZXhTY2FuSW5zdHJ1 bWVudGF0aW9uICppbnN0cnVtZW50LAotCQkJCQkJCQkJIGludCBua2V5cywgaW50IG5vcmRlcmJ5 cyk7CisJCQkJCQkJCQkgaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzLCB1aW50MzIgZmxhZ3MpOwog ZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX2JpdG1hcChSZWxhdGlvbiBpbmRl eFJlbGF0aW9uLAogCQkJCQkJCQkJCQlTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCQkJCQkJSW5k ZXhTY2FuSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IGI2 ZjFiM2ZiNDQ4Li40ODBhMWJkNjU0ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtMTE5LDYgKzExOSwx MiBAQCB0eXBlZGVmIHN0cnVjdCBJbmRleEZldGNoSGVhcERhdGEKIAogCUJ1ZmZlcgkJeHNfY2J1 ZjsJCS8qIGN1cnJlbnQgaGVhcCBidWZmZXIgaW4gc2NhbiwgaWYgYW55ICovCiAJLyogTkI6IGlm IHhzX2NidWYgaXMgbm90IEludmFsaWRCdWZmZXIsIHdlIGhvbGQgYSBwaW4gb24gdGhhdCBidWZm ZXIgKi8KKworCS8qCisJICogU29tZSBvcHRpbWl6YXRpb25zIGNhbiBvbmx5IGJlIHBlcmZvcm1l ZCBpZiB0aGUgcXVlcnkgZG9lcyBub3QgbW9kaWZ5CisJICogdGhlIHVuZGVybHlpbmcgcmVsYXRp b24uIFRyYWNrIHRoYXQgaGVyZS4KKwkgKi8KKwlib29sCQltb2RpZmllc19iYXNlX3JlbDsKIH0g SW5kZXhGZXRjaEhlYXBEYXRhOwogCiAvKiBSZXN1bHQgY29kZXMgZm9yIEhlYXBUdXBsZVNhdGlz Zmllc1ZhY3V1bSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKaW5kZXggMmZhNzkwYjZiZjUuLmQxMGIxYjAz Y2RiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCisrKyBiL3NyYy9p bmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKQEAgLTYzLDYgKzYzLDggQEAgdHlwZWRlZiBlbnVtIFNj YW5PcHRpb25zCiAKIAkvKiB1bnJlZ2lzdGVyIHNuYXBzaG90IGF0IHNjYW4gZW5kPyAqLwogCVNP X1RFTVBfU05BUFNIT1QgPSAxIDw8IDksCisJLyogc2V0IGlmIHRoZSBxdWVyeSBkb2Vzbid0IG1v ZGlmeSB0aGUgcmVsICovCisJU09fSElOVF9SRUxfUkVBRF9PTkxZID0gMSA8PCAxMCwKIH0JCQlT Y2FuT3B0aW9uczsKIAogLyoKQEAgLTQyMCw3ICs0MjIsNyBAQCB0eXBlZGVmIHN0cnVjdCBUYWJs ZUFtUm91dGluZQogCSAqCiAJICogVHVwbGVzIGZvciBhbiBpbmRleCBzY2FuIGNhbiB0aGVuIGJl IGZldGNoZWQgdmlhIGluZGV4X2ZldGNoX3R1cGxlLgogCSAqLwotCXN0cnVjdCBJbmRleEZldGNo VGFibGVEYXRhICooKmluZGV4X2ZldGNoX2JlZ2luKSAoUmVsYXRpb24gcmVsKTsKKwlzdHJ1Y3Qg SW5kZXhGZXRjaFRhYmxlRGF0YSAqKCppbmRleF9mZXRjaF9iZWdpbikgKFJlbGF0aW9uIHJlbCwg dWludDMyIGZsYWdzKTsKIAogCS8qCiAJICogUmVzZXQgaW5kZXggZmV0Y2guIFR5cGljYWxseSB0 aGlzIHdpbGwgcmVsZWFzZSBjcm9zcyBpbmRleCBmZXRjaApAQCAtODc0LDkgKzg3Niw5IEBAIGV4 dGVybiBUdXBsZVRhYmxlU2xvdCAqdGFibGVfc2xvdF9jcmVhdGUoUmVsYXRpb24gcmVsYXRpb24s IExpc3QgKipyZWdsaXN0KTsKICAqLwogc3RhdGljIGlubGluZSBUYWJsZVNjYW5EZXNjCiB0YWJs ZV9iZWdpbnNjYW4oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKLQkJCQlpbnQgbmtl eXMsIFNjYW5LZXlEYXRhICprZXkpCisJCQkJaW50IG5rZXlzLCBTY2FuS2V5RGF0YSAqa2V5LCB1 aW50MzIgZmxhZ3MpCiB7Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZUEVfU0VRU0NBTiB8CisJZmxh Z3MgfD0gU09fVFlQRV9TRVFTQ0FOIHwKIAkJU09fQUxMT1dfU1RSQVQgfCBTT19BTExPV19TWU5D IHwgU09fQUxMT1dfUEFHRU1PREU7CiAKIAlyZXR1cm4gcmVsLT5yZF90YWJsZWFtLT5zY2FuX2Jl Z2luKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsKQEAgLTkxOSw5ICs5 MjEsOSBAQCB0YWJsZV9iZWdpbnNjYW5fc3RyYXQoUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFw c2hvdCwKICAqLwogc3RhdGljIGlubGluZSBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdpbnNjYW5f Ym0oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKLQkJCQkgICBpbnQgbmtleXMsIFNj YW5LZXlEYXRhICprZXkpCisJCQkJICAgaW50IG5rZXlzLCBTY2FuS2V5RGF0YSAqa2V5LCB1aW50 MzIgZmxhZ3MpCiB7Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX0FM TE9XX1BBR0VNT0RFOworCWZsYWdzIHw9IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX0FMTE9XX1BB R0VNT0RFOwogCiAJcmV0dXJuIHJlbC0+cmRfdGFibGVhbS0+c2Nhbl9iZWdpbihyZWwsIHNuYXBz aG90LCBua2V5cywga2V5LAogCQkJCQkJCQkJICAgTlVMTCwgZmxhZ3MpOwpAQCAtMTEyOCw3ICsx MTMwLDggQEAgZXh0ZXJuIHZvaWQgdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUoUmVsYXRp b24gcmVsLAogICogQ2FsbGVyIG11c3QgaG9sZCBhIHN1aXRhYmxlIGxvY2sgb24gdGhlIHJlbGF0 aW9uLgogICovCiBleHRlcm4gVGFibGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwo UmVsYXRpb24gcmVsYXRpb24sCi0JCQkJCQkJCQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBz Y2FuKTsKKwkJCQkJCQkJCQkJICBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sCisJCQkJCQkJ CQkJCSAgdWludDMyIGZsYWdzKTsKIAogLyoKICAqIEJlZ2luIGEgcGFyYWxsZWwgdGlkIHJhbmdl IHNjYW4uIGBwc2NhbmAgbmVlZHMgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkCkBAIC0xMTY0LDkg KzExNjcsOSBAQCB0YWJsZV9wYXJhbGxlbHNjYW5fcmVpbml0aWFsaXplKFJlbGF0aW9uIHJlbCwg UGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKQogICogVHVwbGVzIGZvciBhbiBpbmRleCBzY2Fu IGNhbiB0aGVuIGJlIGZldGNoZWQgdmlhIHRhYmxlX2luZGV4X2ZldGNoX3R1cGxlKCkuCiAgKi8K IHN0YXRpYyBpbmxpbmUgSW5kZXhGZXRjaFRhYmxlRGF0YSAqCi10YWJsZV9pbmRleF9mZXRjaF9i ZWdpbihSZWxhdGlvbiByZWwpCit0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWws IHVpbnQzMiBmbGFncykKIHsKLQlyZXR1cm4gcmVsLT5yZF90YWJsZWFtLT5pbmRleF9mZXRjaF9i ZWdpbihyZWwpOworCXJldHVybiByZWwtPnJkX3RhYmxlYW0tPmluZGV4X2ZldGNoX2JlZ2luKHJl bCwgZmxhZ3MpOwogfQogCiAvKgotLSAKMi40My4wCgo= --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="US-ASCII"; name="v24-0015-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v24-0015-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvfr0z14 RnJvbSAzNTJlNDc1NmZiNzY0MWEwMTQyYTdlMmExYTA4MjZkODE0MjdiOTM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTU6MjQ6MDggLTA1MDAKU3ViamVjdDogW1BB VENIIHYyNCAxNS8xNl0gQWxsb3cgb24tYWNjZXNzIHBydW5pbmcgdG8gc2V0IHBhZ2VzIGFsbC12 aXNpYmxlCgpNYW55IHF1ZXJpZXMgZG8gbm90IG1vZGlmeSB0aGUgdW5kZXJseWluZyByZWxhdGlv bi4gRm9yIHN1Y2ggcXVlcmllcywgaWYKb24tYWNjZXNzIHBydW5pbmcgb2NjdXJzIGR1cmluZyB0 aGUgc2Nhbiwgd2UgY2FuIGNoZWNrIHdoZXRoZXIgdGhlIHBhZ2UKaGFzIGJlY29tZSBhbGwtdmlz aWJsZSBhbmQgdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcCBhY2NvcmRpbmdseS4KUHJldmlvdXNs eSwgb25seSB2YWN1dW0gYW5kIENPUFkgRlJFRVpFIG1hcmtlZCBwYWdlcyBhcyBhbGwtdmlzaWJs ZSBvcgphbGwtZnJvemVuLgoKVGhpcyBjb21taXQgaW1wbGVtZW50cyBvbi1hY2Nlc3MgVk0gc2V0 dGluZyBmb3Igc2VxdWVudGlhbCBzY2FucyBhcyB3ZWxsCmFzIGZvciB0aGUgdW5kZXJseWluZyBo ZWFwIHJlbGF0aW9uIGluIGluZGV4IHNjYW5zIGFuZCBiaXRtYXAgaGVhcApzY2Fucy4KCkF1dGhv cjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQt Ynk6IEFuZHJlcyBGcmV1bmQgPGFuZHJlc0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IEtpcmls bCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vZmxhdC9DQUFLUnVfWk13Nk5wZF9xbTJLTSUyQkZ3UTNjTU9NeDFEaDNWTWhwOC1W N1NPTHhkSzktZyU0MG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGVhcGFtLmMgICAgICAgICAgICAgIHwgMTUgKysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGVhcGFtX2hhbmRsZXIuYyAgICAgIHwgMTUgKysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMgICAgICAgICAgIHwgNzQgKysrKysrKysrKysrKysrKy0tLQogc3JjL2luY2x1 ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgICAgICAgICAgIHwgMjQgKysrKystCiAuLi4vdC8w MzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsICAgICAgICAgfCAgMyArLQogNSBmaWxlcyBj aGFuZ2VkLCAxMTQgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW0uYwppbmRleCAzYWQ3OGJhNDY5NC4uZWNjMDQzOTBhYzcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbS5jCkBAIC01NzAsNiArNTcwLDcgQEAgaGVhcF9wcmVwYXJlX3BhZ2VzY2FuKFRh YmxlU2NhbkRlc2Mgc3NjYW4pCiAJQnVmZmVyCQlidWZmZXIgPSBzY2FuLT5yc19jYnVmOwogCUJs b2NrTnVtYmVyIGJsb2NrID0gc2Nhbi0+cnNfY2Jsb2NrOwogCVNuYXBzaG90CXNuYXBzaG90Owor CUJ1ZmZlcgkgICAqdm1idWZmZXIgPSBOVUxMOwogCVBhZ2UJCXBhZ2U7CiAJaW50CQkJbGluZXM7 CiAJYm9vbAkJYWxsX3Zpc2libGU7CkBAIC01ODQsNyArNTg1LDkgQEAgaGVhcF9wcmVwYXJlX3Bh Z2VzY2FuKFRhYmxlU2NhbkRlc2Mgc3NjYW4pCiAJLyoKIAkgKiBQcnVuZSBhbmQgcmVwYWlyIGZy YWdtZW50YXRpb24gZm9yIHRoZSB3aG9sZSBwYWdlLCBpZiBwb3NzaWJsZS4KIAkgKi8KLQloZWFw X3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX2Jhc2UucnNfcmQsIGJ1ZmZlcik7CisJaWYgKHNzY2Fu LT5yc19mbGFncyAmIFNPX0hJTlRfUkVMX1JFQURfT05MWSkKKwkJdm1idWZmZXIgPSAmc2Nhbi0+ cnNfdm1idWZmZXI7CisJaGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19iYXNlLnJzX3JkLCBi dWZmZXIsIHZtYnVmZmVyKTsKIAogCS8qCiAJICogV2UgbXVzdCBob2xkIHNoYXJlIGxvY2sgb24g dGhlIGJ1ZmZlciBjb250ZW50IHdoaWxlIGV4YW1pbmluZyB0dXBsZQpAQCAtMTI2MSw2ICsxMjY0 LDcgQEAgaGVhcF9iZWdpbnNjYW4oUmVsYXRpb24gcmVsYXRpb24sIFNuYXBzaG90IHNuYXBzaG90 LAogCQkJCQkJCQkJCQkJCQkgIHNpemVvZihUQk1JdGVyYXRlUmVzdWx0KSk7CiAJfQogCisJc2Nh bi0+cnNfdm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOwogCiAJcmV0dXJuIChUYWJsZVNjYW5EZXNj KSBzY2FuOwogfQpAQCAtMTI5OSw2ICsxMzAzLDEyIEBAIGhlYXBfcmVzY2FuKFRhYmxlU2NhbkRl c2Mgc3NjYW4sIFNjYW5LZXkga2V5LCBib29sIHNldF9wYXJhbXMsCiAJCXNjYW4tPnJzX2NidWYg PSBJbnZhbGlkQnVmZmVyOwogCX0KIAorCWlmIChCdWZmZXJJc1ZhbGlkKHNjYW4tPnJzX3ZtYnVm ZmVyKSkKKwl7CisJCVJlbGVhc2VCdWZmZXIoc2Nhbi0+cnNfdm1idWZmZXIpOworCQlzY2FuLT5y c192bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CisJfQorCiAJLyoKIAkgKiBTT19UWVBFX0JJVE1B UFNDQU4gd291bGQgYmUgY2xlYW5lZCB1cCBoZXJlLCBidXQgaXQgZG9lcyBub3QgaG9sZCBhbnkK IAkgKiBhZGRpdGlvbmFsIGRhdGEgdnMgYSBub3JtYWwgSGVhcFNjYW4KQEAgLTEzMzEsNiArMTM0 MSw5IEBAIGhlYXBfZW5kc2NhbihUYWJsZVNjYW5EZXNjIHNzY2FuKQogCWlmIChCdWZmZXJJc1Zh bGlkKHNjYW4tPnJzX2NidWYpKQogCQlSZWxlYXNlQnVmZmVyKHNjYW4tPnJzX2NidWYpOwogCisJ aWYgKEJ1ZmZlcklzVmFsaWQoc2Nhbi0+cnNfdm1idWZmZXIpKQorCQlSZWxlYXNlQnVmZmVyKHNj YW4tPnJzX3ZtYnVmZmVyKTsKKwogCS8qCiAJICogTXVzdCBmcmVlIHRoZSByZWFkIHN0cmVhbSBi ZWZvcmUgZnJlZWluZyB0aGUgQnVmZmVyQWNjZXNzU3RyYXRlZ3kuCiAJICovCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwppbmRleCBkN2ZhYzk0ODI2ZC4uMjdlMzQ5OGY1 ZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtODUsNiAr ODUsNyBAQCBoZWFwYW1faW5kZXhfZmV0Y2hfYmVnaW4oUmVsYXRpb24gcmVsLCB1aW50MzIgZmxh Z3MpCiAKIAloc2Nhbi0+eHNfYmFzZS5yZWwgPSByZWw7CiAJaHNjYW4tPnhzX2NidWYgPSBJbnZh bGlkQnVmZmVyOworCWhzY2FuLT54c192bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CiAJaHNjYW4t Pm1vZGlmaWVzX2Jhc2VfcmVsID0gIShmbGFncyAmIFNPX0hJTlRfUkVMX1JFQURfT05MWSk7CiAK IAlyZXR1cm4gJmhzY2FuLT54c19iYXNlOwpAQCAtMTAwLDYgKzEwMSwxMiBAQCBoZWFwYW1faW5k ZXhfZmV0Y2hfcmVzZXQoSW5kZXhGZXRjaFRhYmxlRGF0YSAqc2NhbikKIAkJUmVsZWFzZUJ1ZmZl cihoc2Nhbi0+eHNfY2J1Zik7CiAJCWhzY2FuLT54c19jYnVmID0gSW52YWxpZEJ1ZmZlcjsKIAl9 CisKKwlpZiAoQnVmZmVySXNWYWxpZChoc2Nhbi0+eHNfdm1idWZmZXIpKQorCXsKKwkJUmVsZWFz ZUJ1ZmZlcihoc2Nhbi0+eHNfdm1idWZmZXIpOworCQloc2Nhbi0+eHNfdm1idWZmZXIgPSBJbnZh bGlkQnVmZmVyOworCX0KIH0KIAogc3RhdGljIHZvaWQKQEAgLTEzOSw3ICsxNDYsOCBAQCBoZWFw YW1faW5kZXhfZmV0Y2hfdHVwbGUoc3RydWN0IEluZGV4RmV0Y2hUYWJsZURhdGEgKnNjYW4sCiAJ CSAqIFBydW5lIHBhZ2UsIGJ1dCBvbmx5IGlmIHdlIHdlcmVuJ3QgYWxyZWFkeSBvbiB0aGlzIHBh Z2UKIAkJICovCiAJCWlmIChwcmV2X2J1ZiAhPSBoc2Nhbi0+eHNfY2J1ZikKLQkJCWhlYXBfcGFn ZV9wcnVuZV9vcHQoaHNjYW4tPnhzX2Jhc2UucmVsLCBoc2Nhbi0+eHNfY2J1Zik7CisJCQloZWFw X3BhZ2VfcHJ1bmVfb3B0KGhzY2FuLT54c19iYXNlLnJlbCwgaHNjYW4tPnhzX2NidWYsCisJCQkJ CQkJCWhzY2FuLT5tb2RpZmllc19iYXNlX3JlbCA/IE5VTEwgOiAmaHNjYW4tPnhzX3ZtYnVmZmVy KTsKIAl9CiAKIAkvKiBPYnRhaW4gc2hhcmUtbG9jayBvbiB0aGUgYnVmZmVyIHNvIHdlIGNhbiBl eGFtaW5lIHZpc2liaWxpdHkgKi8KQEAgLTI0NzIsNiArMjQ4MCw3IEBAIEJpdG1hcEhlYXBTY2Fu TmV4dEJsb2NrKFRhYmxlU2NhbkRlc2Mgc2NhbiwKIAlUQk1JdGVyYXRlUmVzdWx0ICp0Ym1yZXM7 CiAJT2Zmc2V0TnVtYmVyIG9mZnNldHNbVEJNX01BWF9UVVBMRVNfUEVSX1BBR0VdOwogCWludAkJ CW5vZmZzZXRzID0gLTE7CisJQnVmZmVyCSAgICp2bWJ1ZmZlciA9IE5VTEw7CiAKIAlBc3NlcnQo c2Nhbi0+cnNfZmxhZ3MgJiBTT19UWVBFX0JJVE1BUFNDQU4pOwogCUFzc2VydChoc2Nhbi0+cnNf cmVhZF9zdHJlYW0pOwpAQCAtMjUxOCw3ICsyNTI3LDkgQEAgQml0bWFwSGVhcFNjYW5OZXh0Qmxv Y2soVGFibGVTY2FuRGVzYyBzY2FuLAogCS8qCiAJICogUHJ1bmUgYW5kIHJlcGFpciBmcmFnbWVu dGF0aW9uIGZvciB0aGUgd2hvbGUgcGFnZSwgaWYgcG9zc2libGUuCiAJICovCi0JaGVhcF9wYWdl X3BydW5lX29wdChzY2FuLT5yc19yZCwgYnVmZmVyKTsKKwlpZiAoc2Nhbi0+cnNfZmxhZ3MgJiBT T19ISU5UX1JFTF9SRUFEX09OTFkpCisJCXZtYnVmZmVyID0gJmhzY2FuLT5yc192bWJ1ZmZlcjsK KwloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX3JkLCBidWZmZXIsIHZtYnVmZmVyKTsKIAog CS8qCiAJICogV2UgbXVzdCBob2xkIHNoYXJlIGxvY2sgb24gdGhlIGJ1ZmZlciBjb250ZW50IHdo aWxlIGV4YW1pbmluZyB0dXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA0 ZWQyZWZmNWUwNS4uMTUyMzllMGNiYmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5j CkBAIC0yMDUsNyArMjA1LDkgQEAgc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFJl bGF0aW9uIHJlbGF0aW9uLAogCQkJCQkJCQkgIEJ1ZmZlciBoZWFwX2J1ZiwKIAkJCQkJCQkJICBC dWZmZXIgdm1idWZmZXIsCiAJCQkJCQkJCSAgYm9vbCBibGtfa25vd25fYXYsCi0JCQkJCQkJCSAg Y29uc3QgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKKwkJCQkJCQkJICBQcnVuZVJlYXNvbiByZWFzb24s CisJCQkJCQkJCSAgYm9vbCBkb19wcnVuZSwgYm9vbCBkb19mcmVlemUsCisJCQkJCQkJCSAgUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwKIAkJCQkJCQkJICB1aW50OCAqbmV3X3ZtYml0cyk7CiAKIApAQCAt MjIwLDkgKzIyMiwxMyBAQCBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUmVsYXRp b24gcmVsYXRpb24sCiAgKiBpZiB0aGVyZSdzIG5vdCBhbnkgdXNlIGluIHBydW5pbmcuCiAgKgog ICogQ2FsbGVyIG11c3QgaGF2ZSBwaW4gb24gdGhlIGJ1ZmZlciwgYW5kIG11c3QgKm5vdCogaGF2 ZSBhIGxvY2sgb24gaXQuCisgKgorICogSWYgdm1idWZmZXIgaXMgbm90IE5VTEwsIGl0IGlzIG9r YXkgZm9yIHBydW5pbmcgdG8gc2V0IHRoZSB2aXNpYmlsaXR5IG1hcCBpZgorICogdGhlIHBhZ2Ug aXMgYWxsLXZpc2libGUuIFdlIHdpbGwgdGFrZSBjYXJlIG9mIHBpbm5pbmcgYW5kLCBpZiBuZWVk ZWQsCisgKiByZWFkaW5nIGluIHRoZSBwYWdlIG9mIHRoZSB2aXNpYmlsaXR5IG1hcC4KICAqLwog dm9pZAotaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZl cikKK2hlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIs IEJ1ZmZlciAqdm1idWZmZXIpCiB7CiAJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVy KTsKIAlUcmFuc2FjdGlvbklkIHBydW5lX3hpZDsKQEAgLTMwNCw2ICszMTAsMTMgQEAgaGVhcF9w YWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcikKIAkJCQkuY3V0 b2ZmcyA9IE5VTEwsCiAJCQl9OwogCisJCQlpZiAodm1idWZmZXIpCisJCQl7CisJCQkJdmlzaWJp bGl0eW1hcF9waW4ocmVsYXRpb24sIEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZlciksIHZtYnVm ZmVyKTsKKwkJCQlwYXJhbXMub3B0aW9ucyB8PSBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZNOwor CQkJCXBhcmFtcy52bWJ1ZmZlciA9ICp2bWJ1ZmZlcjsKKwkJCX0KKwogCQkJaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoJnBhcmFtcywgJnByZXN1bHQsICZkdW1teV9vZmZfbG9jLAogCQkJCQkJ CQkJICAgTlVMTCwgTlVMTCk7CiAKQEAgLTg2Miw2ICs4NzUsOSBAQCBnZXRfY29uZmxpY3RfeGlk KGJvb2wgZG9fcHJ1bmUsIGJvb2wgZG9fZnJlZXplLCBib29sIGRvX3NldF92bSwgdWludDggbmV3 X3ZtYml0cwogICogY29ycnVwdGVkLCBpdCB3aWxsIGZpeCB0aGVtIGJ5IGNsZWFyaW5nIHRoZSBW TSBiaXRzIGFuZCBwYWdlIHZpc2liaWxpdHkKICAqIGhpbnQuIFRoaXMgZG9lcyBub3QgbmVlZCB0 byBiZSBkb25lIGluIGEgY3JpdGljYWwgc2VjdGlvbi4KICAqCisgKiBUaGlzIHNob3VsZCBiZSBj YWxsZWQgb25seSBhZnRlciBkb19mcmVlemUgaGFzIGJlZW4gZGVjaWRlZCAoYW5kIGRvX3BydW5l CisgKiBoYXMgYmVlbiBzZXQpLCBhcyB0aGVzZSBmYWN0b3IgaW50byBvdXIgaGV1cmlzdGljLWJh c2VkIGRlY2lzaW9uLgorICoKICAqIFJldHVybnMgdHJ1ZSBpZiBvbmUgb3IgYm90aCBWTSBiaXRz IHNob3VsZCBiZSBzZXQsIGFsb25nIHdpdGggcmV0dXJuaW5nIHRoZQogICogZGVzaXJlZCB3aGF0 IGJpdHMgc2hvdWxkIGJlIHNldCBpbiB0aGUgVk0gaW4gKm5ld192bWJpdHMuCiAgKi8KQEAgLTg3 MSw3ICs4ODcsOSBAQCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUmVsYXRpb24gcmVsYXRpb24sCiAJ CQkJCSAgQnVmZmVyIGhlYXBfYnVmLAogCQkJCQkgIEJ1ZmZlciB2bWJ1ZmZlciwKIAkJCQkJICBi b29sIGJsa19rbm93bl9hdiwKLQkJCQkJICBjb25zdCBQcnVuZVN0YXRlICpwcnN0YXRlLAorCQkJ CQkgIFBydW5lUmVhc29uIHJlYXNvbiwKKwkJCQkJICBib29sIGRvX3BydW5lLCBib29sIGRvX2Zy ZWV6ZSwKKwkJCQkJICBQcnVuZVN0YXRlICpwcnN0YXRlLAogCQkJCQkgIHVpbnQ4ICpuZXdfdm1i aXRzKQogewogCVBhZ2UJCWhlYXBfcGFnZSA9IEJ1ZmZlckdldFBhZ2UoaGVhcF9idWYpOwpAQCAt ODg0LDYgKzkwMiwyNCBAQCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUmVsYXRpb24gcmVsYXRpb24s CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKKwkvKgorCSAqIElmIHRoaXMgaXMgYW4gb24tYWNjZXNz IGNhbGwgYW5kIHdlJ3JlIG5vdCBhY3R1YWxseSBwcnVuaW5nLCBhdm9pZAorCSAqIHNldHRpbmcg dGhlIHZpc2liaWxpdHkgbWFwIGlmIGl0IHdvdWxkIG5ld2x5IGRpcnR5IHRoZSBoZWFwIHBhZ2Ug b3IsIGlmCisJICogdGhlIHBhZ2UgaXMgYWxyZWFkeSBkaXJ0eSwgaWYgZG9pbmcgc28gd291bGQg cmVxdWlyZSBpbmNsdWRpbmcgYQorCSAqIGZ1bGwtcGFnZSBpbWFnZSAoRlBJKSBvZiB0aGUgaGVh cCBwYWdlIGluIHRoZSBXQUwuIFRoaXMgc2l0dWF0aW9uCisJICogc2hvdWxkIGJlIHJhcmUsIGFz IG9uLWFjY2VzcyBwcnVuaW5nIGlzIG9ubHkgYXR0ZW1wdGVkIHdoZW4KKwkgKiBwZF9wcnVuZV94 aWQgaXMgdmFsaWQuCisJICovCisJaWYgKHJlYXNvbiA9PSBQUlVORV9PTl9BQ0NFU1MgJiYKKwkJ cHJzdGF0ZS0+YWxsX3Zpc2libGUgJiYKKwkJIWRvX3BydW5lICYmICFkb19mcmVlemUgJiYKKwkJ KCFCdWZmZXJJc0RpcnR5KGhlYXBfYnVmKSB8fCBYTG9nQ2hlY2tCdWZmZXJOZWVkc0JhY2t1cCho ZWFwX2J1ZikpKQorCXsKKwkJcHJzdGF0ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJcHJzdGF0 ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOworCQlyZXR1cm4gZmFsc2U7CisJfQorCiAJLyoKIAkgKiBE ZXRlcm1pbmUgd2hhdCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0cyBzaG91bGQgYmUgc2V0IHRvIHVz aW5nIHRoZQogCSAqIHZhbHVlcyBvZiBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBkZXRlcm1p bmVkIGR1cmluZwpAQCAtOTA2LDE0ICs5NDIsMTUgQEAgaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFJl bGF0aW9uIHJlbGF0aW9uLAogCSAqIFdBTC1sb2dnZWQuCiAJICoKIAkgKiBBcyBvZiBQb3N0Z3Jl U1FMIDkuMiwgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0IGlmIHRo ZQotCSAqIHBhZ2UtbGV2ZWwgYml0IGlzIGNsZWFyLiAgSG93ZXZlciwgaXQncyBwb3NzaWJsZSB0 aGF0IHRoZSBiaXQgZ290Ci0JICogY2xlYXJlZCBhZnRlciBoZWFwX3ZhY19zY2FuX25leHRfYmxv Y2soKSB3YXMgY2FsbGVkLCBzbyB3ZSBtdXN0IHJlY2hlY2sKLQkgKiB3aXRoIGJ1ZmZlciBsb2Nr IGJlZm9yZSBjb25jbHVkaW5nIHRoYXQgdGhlIFZNIGlzIGNvcnJ1cHQuCisJICogcGFnZS1sZXZl bCBiaXQgaXMgY2xlYXIuICBIb3dldmVyLCBpdCdzIHBvc3NpYmxlIHRoYXQgaW4gdmFjdXVtIHRo ZSBiaXQKKwkgKiBnb3QgY2xlYXJlZCBhZnRlciBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKSB3 YXMgY2FsbGVkLCBzbyB3ZSBtdXN0CisJICogcmVjaGVjayB3aXRoIGJ1ZmZlciBsb2NrIGJlZm9y ZSBjb25jbHVkaW5nIHRoYXQgdGhlIFZNIGlzIGNvcnJ1cHQuCiAJICoKIAkgKiBDYWxsZXJzIHdo aWNoIGRpZCBub3QgY2hlY2sgdGhlIHZpc2liaWxpdHkgbWFwIGFuZCBkZXRlcm1pbmUKIAkgKiBi bGtfa25vd25fYXYgd2lsbCBub3QgYmUgZWxpZ2libGUgZm9yIHRoaXMsIGhvd2V2ZXIgdGhlIGNv c3Qgb2YKIAkgKiBwb3RlbnRpYWxseSBuZWVkaW5nIHRvIHJlYWQgdGhlIHZpc2liaWxpdHkgbWFw IGZvciBwYWdlcyB0aGF0IGFyZSBub3QKLQkgKiBhbGwtdmlzaWJsZSBpcyB0b28gaGlnaCB0byBq dXN0aWZ5IGdlbmVyYWxpemluZyB0aGUgY2hlY2suCisJICogYWxsLXZpc2libGUgaXMgdG9vIGhp Z2ggdG8ganVzdGlmeSBnZW5lcmFsaXppbmcgdGhlIGNoZWNrLiBBIGZ1dHVyZQorCSAqIHZhY3V1 bSB3aWxsIGhhdmUgdG8gdGFrZSBjYXJlIG9mIGZpeGluZyB0aGUgY29ycnVwdGlvbi4KIAkgKi8K IAllbHNlIGlmIChibGtfa25vd25fYXYgJiYgIVBhZ2VJc0FsbFZpc2libGUoaGVhcF9wYWdlKSAm JgogCQkJIHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyhyZWxhdGlvbiwgaGVhcF9ibGssICZ2bWJ1 ZmZlcikgIT0gMCkKQEAgLTExMjksNiArMTE2Niw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJICovCiAJZG9fc2V0X3ZtID0gaGVhcF9w YWdlX3dpbGxfc2V0X3ZtKHBhcmFtcy0+cmVsYXRpb24sCiAJCQkJCQkJCQkgIGJsb2Nrbm8sIGJ1 ZmZlciwgdm1idWZmZXIsIHBhcmFtcy0+YmxrX2tub3duX2F2LAorCQkJCQkJCQkJICBwYXJhbXMt PnJlYXNvbiwgZG9fcHJ1bmUsIGRvX2ZyZWV6ZSwKIAkJCQkJCQkJCSAgJnByc3RhdGUsICZuZXdf dm1iaXRzKTsKIAogCS8qCkBAIC0xMTk1LDE1ICsxMjMzLDMxIEBAIGhlYXBfcGFnZV9wcnVuZV9h bmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCQlvbGRfdm1iaXRzID0gdmlz aWJpbGl0eW1hcF9zZXQoYmxvY2tubywKIAkJCQkJCQkJCQkgICB2bWJ1ZmZlciwgbmV3X3ZtYml0 cywKIAkJCQkJCQkJCQkgICBwYXJhbXMtPnJlbGF0aW9uLT5yZF9sb2NhdG9yKTsKLQkJCUFzc2Vy dChvbGRfdm1iaXRzICE9IG5ld192bWJpdHMpOworCisJCQkvKgorCQkJICogSWYgb24tYWNjZXNz IHBydW5pbmcgc2V0IHRoZSBWTSBpbiBiZXR3ZWVuIHdoZW4gdmFjdXVtIGZpcnN0CisJCQkgKiBj aGVja2VkIHRoZSB2aXNpYmlsaXR5IG1hcCBhbmQgZGV0ZXJtaW5lZCBibGtfa25vd25fYXYgYW5k IHdoZW4KKwkJCSAqIHdlIGFjdHVhbGx5IHBydW5lIHRoZSBwYWdlLCB3ZSBjb3VsZCBlbmQgdXAg dHJ5aW5nIHRvIHNldCB0aGUKKwkJCSAqIFZNIG9ubHkgdG8gZmluZCBpdCBpcyBhbHJlYWR5IHNl dC4KKwkJCSAqLworCQkJaWYgKG9sZF92bWJpdHMgPT0gbmV3X3ZtYml0cykKKwkJCXsKKwkJCQlM b2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCQkJCS8qIFVuc2V0IHNv IHdlIGRvbid0IGVtaXQgV0FMIHNpbmNlIG5vIGNoYW5nZSBvY2N1cmVkICovCisJCQkJZG9fc2V0 X3ZtID0gZmFsc2U7CisJCQl9CiAJCX0KIAogCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsKIAog CQkvKgotCQkgKiBFbWl0IGEgV0FMIFhMT0dfSEVBUDJfUFJVTkUqIHJlY29yZCBzaG93aW5nIHdo YXQgd2UgZGlkCisJCSAqIEVtaXQgYSBXQUwgWExPR19IRUFQMl9QUlVORSogcmVjb3JkIHNob3dp bmcgd2hhdCB3ZSBkaWQuIElmIHdlIHdlcmUKKwkJICogb25seSBwbGFubmluZyB0byB1cGRhdGUg dGhlIFZNLCBhbmQgaXQgdHVybnMgb3V0IHRoYXQgaXQgd2FzCisJCSAqIGFscmVhZHkgc2V0LCB0 aGVyZSBpcyBubyBuZWVkIHRvIGVtaXQgV0FMLiBBcyBzdWNoLCB3ZSBtdXN0IGNoZWNrCisJCSAq IHRoYXQgc29tZSBjaGFuZ2UgaXMgcmVxdWlyZWQgYWdhaW4uCiAJCSAqLwotCQlpZiAoUmVsYXRp b25OZWVkc1dBTChwYXJhbXMtPnJlbGF0aW9uKSkKKwkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocGFy YW1zLT5yZWxhdGlvbikgJiYKKwkJCShkb19wcnVuZSB8fCBkb19mcmVlemUgfHwgZG9fc2V0X3Zt KSkKIAkJewogCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShwYXJhbXMtPnJlbGF0aW9uLCBi dWZmZXIsCiAJCQkJCQkJCQkgIGRvX3NldF92bSA/IHZtYnVmZmVyIDogSW52YWxpZEJ1ZmZlciwK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW0uaAppbmRleCA0ODBhMWJkNjU0Zi4uODk1Mzg2NTI1NjYgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVh cGFtLmgKQEAgLTk1LDYgKzk1LDEzIEBAIHR5cGVkZWYgc3RydWN0IEhlYXBTY2FuRGVzY0RhdGEK IAkgKi8KIAlQYXJhbGxlbEJsb2NrVGFibGVTY2FuV29ya2VyRGF0YSAqcnNfcGFyYWxsZWx3b3Jr ZXJkYXRhOwogCisJLyoKKwkgKiBGb3Igc2VxdWVudGlhbCBzY2FucyBhbmQgYml0bWFwIGhlYXAg c2NhbnMuIElmIHRoZSByZWxhdGlvbiBpcyBub3QKKwkgKiBiZWluZyBtb2RpZmllZCwgb24tYWNj ZXNzIHBydW5pbmcgbWF5IHJlYWQgaW4gdGhlIGN1cnJlbnQgaGVhcCBwYWdlJ3MKKwkgKiBjb3Jy ZXNwb25kaW5nIFZNIGJsb2NrIHRvIHRoaXMgYnVmZmVyLgorCSAqLworCUJ1ZmZlcgkJcnNfdm1i dWZmZXI7CisKIAkvKiB0aGVzZSBmaWVsZHMgb25seSB1c2VkIGluIHBhZ2UtYXQtYS10aW1lIG1v ZGUgYW5kIGZvciBiaXRtYXAgc2NhbnMgKi8KIAl1aW50MzIJCXJzX2NpbmRleDsJCS8qIGN1cnJl bnQgdHVwbGUncyBpbmRleCBpbiB2aXN0dXBsZXMgKi8KIAl1aW50MzIJCXJzX250dXBsZXM7CQkv KiBudW1iZXIgb2YgdmlzaWJsZSB0dXBsZXMgb24gcGFnZSAqLwpAQCAtMTE3LDggKzEyNCwxOCBA QCB0eXBlZGVmIHN0cnVjdCBJbmRleEZldGNoSGVhcERhdGEKIHsKIAlJbmRleEZldGNoVGFibGVE YXRhIHhzX2Jhc2U7CS8qIEFNIGluZGVwZW5kZW50IHBhcnQgb2YgdGhlIGRlc2NyaXB0b3IgKi8K IAotCUJ1ZmZlcgkJeHNfY2J1ZjsJCS8qIGN1cnJlbnQgaGVhcCBidWZmZXIgaW4gc2NhbiwgaWYg YW55ICovCi0JLyogTkI6IGlmIHhzX2NidWYgaXMgbm90IEludmFsaWRCdWZmZXIsIHdlIGhvbGQg YSBwaW4gb24gdGhhdCBidWZmZXIgKi8KKwkvKgorCSAqIEN1cnJlbnQgaGVhcCBidWZmZXIgaW4g c2NhbiwgaWYgYW55LiBOQjogaWYgeHNfY2J1ZiBpcyBub3QKKwkgKiBJbnZhbGlkQnVmZmVyLCB3 ZSBob2xkIGEgcGluIG9uIHRoYXQgYnVmZmVyLgorCSAqLworCUJ1ZmZlcgkJeHNfY2J1ZjsKKwor CS8qCisJICogRm9yIGluZGV4IHNjYW5zIHRoYXQgZG8gbm90IG1vZGlmeSB0aGUgdW5kZXJseWlu ZyBoZWFwIHRhYmxlLCBvbi1hY2Nlc3MKKwkgKiBwcnVuaW5nIG1heSByZWFkIGluIHRoZSBjdXJy ZW50IGhlYXAgcGFnZSdzIGNvcnJlc3BvbmRpbmcgVk0gYmxvY2sgdG8KKwkgKiB0aGlzIGJ1ZmZl ci4KKwkgKi8KKwlCdWZmZXIJCXhzX3ZtYnVmZmVyOwogCiAJLyoKIAkgKiBTb21lIG9wdGltaXph dGlvbnMgY2FuIG9ubHkgYmUgcGVyZm9ybWVkIGlmIHRoZSBxdWVyeSBkb2VzIG5vdCBtb2RpZnkK QEAgLTQyNSw3ICs0NDIsOCBAQCBleHRlcm4gVHJhbnNhY3Rpb25JZCBoZWFwX2luZGV4X2RlbGV0 ZV90dXBsZXMoUmVsYXRpb24gcmVsLAogCQkJCQkJCQkJCQkgIFRNX0luZGV4RGVsZXRlT3AgKmRl bHN0YXRlKTsKIAogLyogaW4gaGVhcC9wcnVuZWhlYXAuYyAqLwotZXh0ZXJuIHZvaWQgaGVhcF9w YWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcik7CitleHRlcm4g dm9pZCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVy LAorCQkJCQkJCQlCdWZmZXIgKnZtYnVmZmVyKTsKIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCQkJCQkJCQkgICBQcnVu ZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKIAkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqb2ZmX2xv YywKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9k ZWNvZGluZy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNv ZGluZy5wbAppbmRleCBlYmUyZmFlMTc4OS4uYmRkOWYwYTYyY2QgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5wbAorKysgYi9zcmMv dGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwKQEAgLTI5Niw2 ICsyOTYsNyBAQCB3YWxfbGV2ZWwgPSAnbG9naWNhbCcKIG1heF9yZXBsaWNhdGlvbl9zbG90cyA9 IDQKIG1heF93YWxfc2VuZGVycyA9IDQKIGF1dG92YWN1dW0gPSBvZmYKK2hvdF9zdGFuZGJ5X2Zl ZWRiYWNrID0gb24KIH0pOwogJG5vZGVfcHJpbWFyeS0+ZHVtcF9pbmZvOwogJG5vZGVfcHJpbWFy eS0+c3RhcnQ7CkBAIC03NDgsNyArNzQ5LDcgQEAgY2hlY2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJy KCRoYW5kbGUsCiAkbG9nc3RhcnQgPSAtcyAkbm9kZV9zdGFuZGJ5LT5sb2dmaWxlOwogCiByZWFj dGl2ZV9zbG90c19jaGFuZ2VfaGZzX2FuZF93YWl0X2Zvcl94bWlucygnc2hhcmVkX3Jvd19yZW1v dmFsXycsCi0JJ25vX2NvbmZsaWN0XycsIDAsIDEpOworCSdub19jb25mbGljdF8nLCAxLCAwKTsK IAogIyBUaGlzIHNob3VsZCBub3QgdHJpZ2dlciBhIGNvbmZsaWN0CiB3YWl0X3VudGlsX3ZhY3V1 bV9jYW5fcmVtb3ZlKAotLSAKMi40My4wCgo= --000000000000d68bb306458886ab Content-Type: text/x-patch; charset="UTF-8"; name="v24-0016-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v24-0016-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyvfudp15 RnJvbSA0NDEyNmI4Y2JmMmY0YTM1M2E4MmQzODBmMWM2MzZkYjcyMDg3ZGI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MjQgMTYvMTZdIFNldCBwZF9wcnVuZV94aWQgb24gaW5zZXJ0Ck1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgpOb3cgdGhhdCB2aXNpYmlsaXR5IG1hcCAoVk0pIHVwZGF0ZXMg Y2FuIG9jY3VyIGR1cmluZyByZWFkLW9ubHkgcXVlcmllcywKaXQgbWFrZXMgc2Vuc2UgdG8gYWxz byBzZXQgdGhlIHBhZ2XigJlzIHBkX3BydW5lX3hpZCBoaW50IGR1cmluZyBpbnNlcnRzLgpUaGlz IGVuYWJsZXMgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSB0byBydW4gYWZ0ZXIgYSBwYWdl IGlzCmZpbGxlZCB3aXRoIG5ld2x5IGluc2VydGVkIHR1cGxlcyB0aGUgZmlyc3QgdGltZSBpdCBp cyByZWFkLgoKVGhpcyBjaGFuZ2UgYWxzbyBhZGRyZXNzZXMgYSBsb25nLXN0YW5kaW5nIG5vdGUg aW4gaGVhcF9pbnNlcnQoKSBhbmQKaGVhcF9tdWx0aV9pbnNlcnQoKSwgd2hpY2ggb2JzZXJ2ZWQg dGhhdCBzZXR0aW5nIHBkX3BydW5lX3hpZCB3b3VsZApoZWxwIGNsZWFuIHVwIGFib3J0ZWQgaW5z ZXJ0aW9ucyBzb29uZXIuIFdpdGhvdXQgaXQsIHN1Y2ggdHVwbGVzIG1pZ2h0CmxpbmdlciB1bnRp bCBWQUNVVU0sIHdoZXJlYXMgbm93IHRoZXkgY2FuIGJlIHBydW5lZCBlYXJsaWVyLgoKU2V0dGlu ZyBwZF9wcnVuZV94aWQgb24gaW5zZXJ0IGNhbiBjYXVzZSBhIHBhZ2UgdG8gYmUgZGlydGllZCBh bmQKd3JpdHRlbiBvdXQgd2hlbiBpdCBwcmV2aW91c2x5IHdvdWxkIG5vdCBoYXZlIGJlZW4sIGFm ZmV0Y3RpbmcgdGhlCnJlcG9ydGVkIG51bWJlciBvZiBoaXRzIGluIHRoZSBpbmRleC1raWxsdHVw bGVzIGlzb2xhdGlvbiB0ZXN0LiBJdCBpcwp1bmNsZWFyIGlmIHRoaXMgaXMgYSBidWcgaW4gdGhl IHdheSBoaXRzIGFyZSB0cmFja2VkLCBhIGZhdWx0eSB0ZXN0CmV4cGVjdGF0aW9uLCBvciBpZiBz aW1wbHkgdXBkYXRpbmcgdGhlIHRlc3QncyBleHBlY3RlZCBvdXRwdXQgaXMKc3VmZmljaWVudCBy ZW1lZGlhdGlvbi4KCmNpLW9zLW9ubHk6Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtLmMgICAgICAgICAgICAgIHwgMjUgKysrKysrKysrKysrKy0tLS0tLQogc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYyAgICAgICAgIHwgMTUgKysrKysrKysrKy0KIC4uLi9t b2R1bGVzL2luZGV4L2V4cGVjdGVkL2tpbGx0dXBsZXMub3V0ICAgICB8ICA2ICsrLS0tCiAzIGZp bGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtLmMKaW5kZXggZWNjMDQzOTBhYzcuLmQ1ZjNmODk3ZGQzIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW0uYwpAQCAtMjExOSw2ICsyMTE5LDcgQEAgaGVhcF9pbnNlcnQoUmVsYXRp b24gcmVsYXRpb24sIEhlYXBUdXBsZSB0dXAsIENvbW1hbmRJZCBjaWQsCiAJVHJhbnNhY3Rpb25J ZCB4aWQgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25JZCgpOwogCUhlYXBUdXBsZQloZWFwdHVwOwog CUJ1ZmZlcgkJYnVmZmVyOworCVBhZ2UJCXBhZ2U7CiAJQnVmZmVyCQl2bWJ1ZmZlciA9IEludmFs aWRCdWZmZXI7CiAJYm9vbAkJYWxsX3Zpc2libGVfY2xlYXJlZCA9IGZhbHNlOwogCkBAIC0yMTc4 LDE1ICsyMTc5LDE5IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFwVHVwbGUg dHVwLCBDb21tYW5kSWQgY2lkLAogCX0KIAogCS8qCi0JICogWFhYIFNob3VsZCB3ZSBzZXQgUGFn ZVNldFBydW5hYmxlIG9uIHRoaXMgcGFnZSA/CisJICogU2V0IHBkX3BydW5lX3hpZCB0byB0cmln Z2VyIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgb25jZSB0aGUgcGFnZQorCSAqIGlzIGZ1 bGwgc28gdGhhdCB3ZSBjYW4gc2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlIGluIHRoZSBWTS4KIAkg KgotCSAqIFRoZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24gbWF5IGV2ZW50dWFsbHkgYWJvcnQgdGh1 cyBtYWtpbmcgdGhpcyB0dXBsZQotCSAqIERFQUQgYW5kIGhlbmNlIGF2YWlsYWJsZSBmb3IgcHJ1 bmluZy4gVGhvdWdoIHdlIGRvbid0IHdhbnQgdG8gb3B0aW1pemUKLQkgKiBmb3IgYWJvcnRzLCBp ZiBubyBvdGhlciB0dXBsZSBpbiB0aGlzIHBhZ2UgaXMgVVBEQVRFZC9ERUxFVEVkLCB0aGUKLQkg KiBhYm9ydGVkIHR1cGxlIHdpbGwgbmV2ZXIgYmUgcHJ1bmVkIHVudGlsIG5leHQgdmFjdXVtIGlz IHRyaWdnZXJlZC4KKwkgKiBTZXR0aW5nIHBkX3BydW5lX3hpZCBpcyBhbHNvIGhhbmR5IGlmIHRo ZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24KKwkgKiBldmVudHVhbGx5IGFib3J0cyBtYWtpbmcgdGhp cyB0dXBsZSBERUFEIGFuZCBoZW5jZSBhdmFpbGFibGUgZm9yCisJICogcHJ1bmluZy4gSWYgbm8g b3RoZXIgdHVwbGUgaW4gdGhpcyBwYWdlIGlzIFVQREFURWQvREVMRVRFZCwgdGhlIGFib3J0ZWQK KwkgKiB0dXBsZSB3b3VsZCBuZXZlciBvdGhlcndpc2UgYmUgcHJ1bmVkIHVudGlsIG5leHQgdmFj dXVtIGlzIHRyaWdnZXJlZC4KIAkgKgotCSAqIElmIHlvdSBkbyBhZGQgUGFnZVNldFBydW5hYmxl IGhlcmUsIGFkZCBpdCBpbiBoZWFwX3hsb2dfaW5zZXJ0IHRvby4KKwkgKiBEb24ndCBzZXQgaXQg aWYgd2UgYXJlIGluIGJvb3RzdHJhcCBtb2RlLCB0aG91Z2guCiAJICovCisJcGFnZSA9IEJ1ZmZl ckdldFBhZ2UoYnVmZmVyKTsKKwlpZiAoVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhpZCkpCisJCVBh Z2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOwogCiAJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CiAK QEAgLTIxOTYsNyArMjIwMSw2IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFw VHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQl4bF9oZWFwX2luc2VydCB4bHJlYzsKIAkJeGxf aGVhcF9oZWFkZXIgeGxoZHI7CiAJCVhMb2dSZWNQdHIJcmVjcHRyOwotCQlQYWdlCQlwYWdlID0g QnVmZmVyR2V0UGFnZShidWZmZXIpOwogCQl1aW50OAkJaW5mbyA9IFhMT0dfSEVBUF9JTlNFUlQ7 CiAJCWludAkJCWJ1ZmZsYWdzID0gMDsKIApAQCAtMjU2MCw4ICsyNTY0LDEzIEBAIGhlYXBfbXVs dGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLCBpbnQg bnR1cGxlcywKIAkJfQogCiAJCS8qCi0JCSAqIFhYWCBTaG91bGQgd2Ugc2V0IFBhZ2VTZXRQcnVu YWJsZSBvbiB0aGlzIHBhZ2UgPyBTZWUgaGVhcF9pbnNlcnQoKQorCQkgKiBTZXQgcGRfcHJ1bmVf eGlkLiBTZWUgaGVhcF9pbnNlcnQoKSBmb3IgbW9yZSBvbiB3aHkgd2UgZG8gdGhpcyB3aGVuCisJ CSAqIGluc2VydGluZyB0dXBsZXMuIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpZiB3ZSBhcmVuJ3Qg YWxyZWFkeQorCQkgKiBzZXR0aW5nIHRoZSBwYWdlIGZyb3plbiBpbiB0aGUgVk0uIFdlIGFsc28g ZG9uJ3Qgc2V0IGl0IGluCisJCSAqIGJvb3RzdHJhcCBtb2RlLgogCQkgKi8KKwkJaWYgKCFhbGxf ZnJvemVuX3NldCAmJiBUcmFuc2FjdGlvbklkSXNOb3JtYWwoeGlkKSkKKwkJCVBhZ2VTZXRQcnVu YWJsZShwYWdlLCB4aWQpOwogCiAJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCBiNjY3MzZlYTI4Mi4uNWM4ZGMyNzE4Y2Ug MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNDQ3LDYgKzQ0NywxMiBA QCBoZWFwX3hsb2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWZyZWVzcGFj ZSA9IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKHBhZ2UpOyAvKiBuZWVkZWQgdG8gdXBkYXRlIEZTTSBi ZWxvdyAqLwogCisJCS8qCisJCSAqIFNldCB0aGUgcGFnZSBwcnVuYWJsZSB0byB0cmlnZ2VyIG9u LWFjY2VzcyBwcnVuaW5nIGxhdGVyIHdoaWNoIG1heQorCQkgKiBzZXQgdGhlIHBhZ2UgYWxsLXZp c2libGUgaW4gdGhlIFZNLgorCQkgKi8KKwkJUGFnZVNldFBydW5hYmxlKHBhZ2UsIFhMb2dSZWNH ZXRYaWQocmVjb3JkKSk7CisKIAkJUGFnZVNldExTTihwYWdlLCBsc24pOwogCiAJCWlmICh4bHJl Yy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQpCkBAIC01OTYsOSArNjAy LDE2IEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJ CWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQpCiAJCQlQ YWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOwogCi0JCS8qIFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9T RVQgaW1wbGllcyB0aGF0IGFsbCB0dXBsZXMgYXJlIHZpc2libGUgKi8KKwkJLyoKKwkJICogWExI X0lOU0VSVF9BTExfRlJPWkVOX1NFVCBpbXBsaWVzIHRoYXQgYWxsIHR1cGxlcyBhcmUgdmlzaWJs ZS4gSWYKKwkJICogd2UgYXJlIG5vdCBzZXR0aW5nIHRoZSBwYWdlIGZyb3plbiwgdGhlbiBzZXQg dGhlIHBhZ2UncyBwcnVuYWJsZQorCQkgKiBoaW50IHNvIHRoYXQgd2UgdHJpZ2dlciBvbi1hY2Nl c3MgcHJ1bmluZyBsYXRlciB3aGljaCBtYXkgc2V0IHRoZQorCQkgKiBwYWdlIGFsbC12aXNpYmxl IGluIHRoZSBWTS4KKwkJICovCiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9G Uk9aRU5fU0VUKQogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CisJCWVsc2UKKwkJCVBhZ2VT ZXRQcnVuYWJsZShwYWdlLCBYTG9nUmVjR2V0WGlkKHJlY29yZCkpOwogCiAJCU1hcmtCdWZmZXJE aXJ0eShidWZmZXIpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5kZXgvZXhw ZWN0ZWQva2lsbHR1cGxlcy5vdXQgYi9zcmMvdGVzdC9tb2R1bGVzL2luZGV4L2V4cGVjdGVkL2tp bGx0dXBsZXMub3V0CmluZGV4IGJlN2RkZDc1NmVmLi5iMjlmMjQzNGIwMCAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvbW9kdWxlcy9pbmRleC9leHBlY3RlZC9raWxsdHVwbGVzLm91dAorKysgYi9zcmMv dGVzdC9tb2R1bGVzL2luZGV4L2V4cGVjdGVkL2tpbGx0dXBsZXMub3V0CkBAIC01NCw3ICs1NCw3 IEBAIHN0ZXAgZmx1c2g6IFNFTEVDVCBGUk9NIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOwog c3RlcCByZXN1bHQ6IFNFTEVDVCBoZWFwX2Jsa3NfcmVhZCArIGhlYXBfYmxrc19oaXQgLSBjb3Vu dGVyLmhlYXBfYWNjZXNzZXMgQVMgbmV3X2hlYXBfYWNjZXNzZXMgRlJPTSBjb3VudGVyLCBwZ19z dGF0aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ2tpbGxfcHJpb3JfdHVwbGUnOwogbmV3 X2hlYXBfYWNjZXNzZXMKIC0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgMQorICAg ICAgICAgICAgICAgIDIKICgxIHJvdykKIAogc3RlcCBtZWFzdXJlOiBVUERBVEUgY291bnRlciBT RVQgaGVhcF9hY2Nlc3NlcyA9IChTRUxFQ1QgaGVhcF9ibGtzX3JlYWQgKyBoZWFwX2Jsa3NfaGl0 IEZST00gcGdfc3RhdGlvX2FsbF90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICdraWxsX3ByaW9yX3R1 cGxlJyk7CkBAIC0xMzAsNyArMTMwLDcgQEAgc3RlcCBmbHVzaDogU0VMRUNUIEZST00gcGdfc3Rh dF9mb3JjZV9uZXh0X2ZsdXNoKCk7CiBzdGVwIHJlc3VsdDogU0VMRUNUIGhlYXBfYmxrc19yZWFk ICsgaGVhcF9ibGtzX2hpdCAtIGNvdW50ZXIuaGVhcF9hY2Nlc3NlcyBBUyBuZXdfaGVhcF9hY2Nl c3NlcyBGUk9NIGNvdW50ZXIsIHBnX3N0YXRpb19hbGxfdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAn a2lsbF9wcmlvcl90dXBsZSc7CiBuZXdfaGVhcF9hY2Nlc3NlcwogLS0tLS0tLS0tLS0tLS0tLS0K LSAgICAgICAgICAgICAgICAxCisgICAgICAgICAgICAgICAgMgogKDEgcm93KQogCiBzdGVwIG1l YXN1cmU6IFVQREFURSBjb3VudGVyIFNFVCBoZWFwX2FjY2Vzc2VzID0gKFNFTEVDVCBoZWFwX2Js a3NfcmVhZCArIGhlYXBfYmxrc19oaXQgRlJPTSBwZ19zdGF0aW9fYWxsX3RhYmxlcyBXSEVSRSBy ZWxuYW1lID0gJ2tpbGxfcHJpb3JfdHVwbGUnKTsKQEAgLTI4Myw3ICsyODMsNyBAQCBzdGVwIGZs dXNoOiBTRUxFQ1QgRlJPTSBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKIHN0ZXAgcmVzdWx0 OiBTRUxFQ1QgaGVhcF9ibGtzX3JlYWQgKyBoZWFwX2Jsa3NfaGl0IC0gY291bnRlci5oZWFwX2Fj Y2Vzc2VzIEFTIG5ld19oZWFwX2FjY2Vzc2VzIEZST00gY291bnRlciwgcGdfc3RhdGlvX2FsbF90 YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICdraWxsX3ByaW9yX3R1cGxlJzsKIG5ld19oZWFwX2FjY2Vz c2VzCiAtLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAgIDEKKyAgICAgICAgICAgICAg ICAyCiAoMSByb3cpCiAKIHN0ZXAgbWVhc3VyZTogVVBEQVRFIGNvdW50ZXIgU0VUIGhlYXBfYWNj ZXNzZXMgPSAoU0VMRUNUIGhlYXBfYmxrc19yZWFkICsgaGVhcF9ibGtzX2hpdCBGUk9NIHBnX3N0 YXRpb19hbGxfdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAna2lsbF9wcmlvcl90dXBsZScpOwotLSAK Mi40My4wCgo= --000000000000d68bb306458886ab--