Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uve2w-00Gfvo-AZ for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Sep 2025 15:44:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uve2v-005h5S-DF for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Sep 2025 15:44:45 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uve2u-005h5K-Qe for pgsql-hackers@lists.postgresql.org; Mon, 08 Sep 2025 15:44:45 +0000 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uve2n-001E8R-1T for pgsql-hackers@lists.postgresql.org; Mon, 08 Sep 2025 15:44:44 +0000 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-61feb87fe26so5440392a12.1 for ; Mon, 08 Sep 2025 08:44:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757346277; x=1757951077; 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=KeJZ97L2XTydcd5ntiXYDzmB0Pc1Qv/aSOGqYCus+Ek=; b=UxeNJlp9UWtJFZSS33p6voYj9qUxEJ3mh3zKIB+OnAWVxA4I8bhTKUAUJQwSvtrkm5 pDE/BkriEOoEaDHWR9jaQhNd/HRcOjN2B8twjidHziwSFqJ4xPATvaa4m9AGI5Y6RpvI 9PqeivTQaB1ldQva4uiYLfliIQ+E18J4d+3oIfZXqXKXkRAvVqAvfP40uQdZWoKEwR6u 1A0p3yXDVfe6pb1G5CUzotNDZy/GmgukaRwvdR5iHIKjkQZTUrqkg0ulvyEbj4oK+deX pbtnI2uMprn88/qm03yNVBZaCVWLkGt1uGncwpPNm0PX559jQag9SHBQUxB3GbyP3Uo/ HmKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757346277; x=1757951077; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=KeJZ97L2XTydcd5ntiXYDzmB0Pc1Qv/aSOGqYCus+Ek=; b=L9luiXp4za2sXb+KKbOp/dR+unT2svtQtuMgCj/8lxCOhT+rSy2CtGM//1dYawGAkm Sxdk4DHNIF4NWdaTLgCgkvhIU/XpUuG1B7bwmEu48VE/17NaDKF1mTmpeP1rlTl6FC0y 4Ak3qWAO4muxRbBZwiARG4RaxwDOPa7GJLYAMej42+zpjjBnl3Ij/LkWQvT1CVZbr7zV eJjbVQezL/hLe5G+DKI8RrFGXqWaM+Ij/3bp+s0LeWVLNM844eP3FMuN4mi043y+LJit iOjeNA9M4O9kacHw4z8aP+hz78bQRyZpIIUvWBHhGt43KmCTXtswMdJvMD/I9q5gLHi2 K0Jg== X-Forwarded-Encrypted: i=1; AJvYcCUiUnIxlq8vEvo7XFHKKfj/y8ywh+kkMlFAxwQ5nHX9MsyvgAijkkja/Tlbha1cN//7VJ+NlaGpkDPMicHf@lists.postgresql.org X-Gm-Message-State: AOJu0Yw0yl4+Yj0H4a925hAidHepLdjwnjQbtk58MFkrYuwwFcegNlqi nOnP151e36CEB7fayk4y60UsN7nANqkdzL5ewj0uCqVYQDStPp4q4quCbqm4afu34wa9ctgJDiq qJU5svrtVkPLlWBrCx9gf2/GtGdWfeUk= X-Gm-Gg: ASbGncuvaMKIrzGJJ0jhDsTdJGKGPmqnjNbxcHaUmt8NFa8qW8hFYxAusi82iCHmuu0 91rSpVmRsNsiKx6MSRwQMeeRmfwg2030pbZyEpTgFQVHwKe08USOh3KYVLKDQrNoXb/38XC0NFv 7+tpC0Fkb3iukKllB9ey3Q8A+TVd34EE5fPOrtbPJ5kBev96DEpvheoQakw8B3/7NXiFkct6eoU JxbIY4+m+BxvJDPJFGD2yQfP/q7UQgYV4ikWEkKRgPW2yrlBA== X-Google-Smtp-Source: AGHT+IHHGfXdr98Nw2TDKBVvOGlK4JS40CkTZ40gQQw1XRQmtojfBnLqD2Ay+oIrhL3C10UgavImZfE6glrVd0sIi3U= X-Received: by 2002:a05:6402:5049:b0:61c:e99d:fdef with SMTP id 4fb4d7f45d1cf-62372bbf6cdmr6884537a12.2.1757346277414; Mon, 08 Sep 2025 08:44:37 -0700 (PDT) MIME-Version: 1.0 References: <87DD95AA-274F-4F4F-BAD9-7738E5B1F905@yandex-team.ru> In-Reply-To: From: Melanie Plageman Date: Mon, 8 Sep 2025 11:44:24 -0400 X-Gm-Features: AS18NWDuyFBgZPwIdSnmy2n8FEHOI9QBnydpoyi6ymmViyKfjd14L5O_fCYJVsY Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Andres Freund Cc: Kirill Reshke , Andrey Borodin , PostgreSQL Hackers , Robert Haas , Heikki Linnakangas Content-Type: multipart/mixed; boundary="0000000000009d4adf063e4c10aa" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009d4adf063e4c10aa Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Sep 5, 2025 at 6:20=E2=80=AFPM Melanie Plageman wrote: > > > On 2025-09-02 19:11:01 -0400, Melanie Plageman wrote: > > > From dd98177294011ee93cac122405516abd89f4e393 Mon Sep 17 00:00:00 200= 1 > > > From: Melanie Plageman > > > Date: Wed, 27 Aug 2025 08:50:15 -0400 > > > Subject: [PATCH v8 01/22] Remove unneeded VM pin from VM replay > > I didn't push it yet because I did a new version that actually > eliminates the asserts in heap_multi_insert() before calling > visibilitymap_set() -- since they are redundant with checks inside > visibilitymap_set(). 0001 of attached v9 is what I plan to push, > barring any objections. I pushed this, so rebased v10 is attached. I've added one new patch: 0002 adds ERRCODE_DATA_CORRUPTED to the existing log messages about VM/data corruption in vacuum. Andrey Borodin earlier suggested this, and I had neglected to include it. - Melanie --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0002-Add-error-codes-to-vacuum-VM-corruption-case-log.patch" Content-Disposition: attachment; filename="v10-0002-Add-error-codes-to-vacuum-VM-corruption-case-log.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8fk1 RnJvbSBiZjFkNGVkMDkwY2E0ZjMwZDM4MmNiOWZmMDI4NTY1OTY3YmVkNWRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDggU2VwIDIwMjUgMTA6MDA6MzQgLTA0MDAKU3ViamVjdDogW1BB VENIIHYxMCAwMi8yMl0gQWRkIGVycm9yIGNvZGVzIHRvIHZhY3V1bSBWTSBjb3JydXB0aW9uIGNh c2UKIGxvZ2dpbmcKCkVuaGFuY2UgdGhlIGxvZyBtZXNzYWdlIGVtaXR0ZWQgd2hlbiB0aGUgaGVh cCBwYWdlIGlzIGZvdW5kIG5vdAp0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIFZNIGR1cmluZyB2 YWN1dW0uCgpQRF9BTExfVklTSUJMRSBtdXN0IG5ldmVyIGJlIGNsZWFyIGlmIHRoZSBWTSBiaXRz IGFyZSBzZXQgZm9yIHRoaXMgcGFnZS4KQW5kIGEgcGFnZSBtYXJrZWQgYWxsLXZpc2libGUgaW4g dGhlIFZNIG11c3Qgbm90IGNvbnRhaW4gZGVhZCBpdGVtcy4KQm90aCBvZiB0aGVzZSBjYXNlcyBh cmUgZWl0aGVyIGRhdGEgY29ycnVwdGlvbiBvciBWTSBjb3JydXB0aW9uLgoKQWRkIEVSUkNPREVf REFUQV9DT1JSVVBURUQgdG8gdGhlIGV4aXN0aW5nIGxvZyBtZXNhZ2UuIFVzaW5nIHRoZQphcHBy b3ByaWF0ZSBlcnJvciBjb2RlcyBtYWtlcyBtb25pdG9yaW5nIG11Y2ggZWFzaWVyLgoKU3VnZ2Vz dGVkLWJ5OiBBbmRyZXkgQm9yb2RpbiA8eDRtbW1AeWFuZGV4LXRlYW0ucnU+CkF1dGhvcjogTWVs YW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0 cHM6Ly9wb3N0Z3IuZXMvbS84N0REOTVBQS0yNzRGLTRGNEYtQkFEOS03NzM4RTVCMUY5MDUlNDB5 YW5kZXgtdGVhbS5ydQotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyB8 IDEyICsrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggOTMyNzAxZDg0 MjAuLjhiZWEwNDU0ZmY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0y MTIxLDggKzIxMjEsMTAgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAll bHNlIGlmIChhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gJiYgIVBhZ2VJc0FsbFZpc2libGUo cGFnZSkgJiYKIAkJCSB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXModmFjcmVsLT5yZWwsIGJsa25v LCAmdm1idWZmZXIpICE9IDApCiAJewotCQllbG9nKFdBUk5JTkcsICJwYWdlIGlzIG5vdCBtYXJr ZWQgYWxsLXZpc2libGUgYnV0IHZpc2liaWxpdHkgbWFwIGJpdCBpcyBzZXQgaW4gcmVsYXRpb24g XCIlc1wiIHBhZ2UgJXUiLAotCQkJIHZhY3JlbC0+cmVsbmFtZSwgYmxrbm8pOworCQllcmVwb3J0 KFdBUk5JTkcsIChlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAorCQkJCQkJICBlcnJt c2coInBhZ2UgaXMgbm90IG1hcmtlZCBhbGwtdmlzaWJsZSBidXQgdmlzaWJpbGl0eSBtYXAgYml0 IGlzIHNldCBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCisJCQkJCQkJCSB2YWNyZWwtPnJl bG5hbWUsIGJsa25vKSkpOworCiAJCXZpc2liaWxpdHltYXBfY2xlYXIodmFjcmVsLT5yZWwsIGJs a25vLCB2bWJ1ZmZlciwKIAkJCQkJCQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwogCX0KQEAg LTIxNDMsOCArMjE0NSwxMCBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAog CSAqLwogCWVsc2UgaWYgKHByZXN1bHQubHBkZWFkX2l0ZW1zID4gMCAmJiBQYWdlSXNBbGxWaXNp YmxlKHBhZ2UpKQogCXsKLQkJZWxvZyhXQVJOSU5HLCAicGFnZSBjb250YWluaW5nIExQX0RFQUQg aXRlbXMgaXMgbWFya2VkIGFzIGFsbC12aXNpYmxlIGluIHJlbGF0aW9uIFwiJXNcIiBwYWdlICV1 IiwKLQkJCSB2YWNyZWwtPnJlbG5hbWUsIGJsa25vKTsKKwkJZXJlcG9ydChXQVJOSU5HLCAoZXJy Y29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKKwkJCQkJCSAgZXJybXNnKCJwYWdlIGNvbnRh aW5pbmcgTFBfREVBRCBpdGVtcyBpcyBtYXJrZWQgYXMgYWxsLXZpc2libGUgaW4gcmVsYXRpb24g XCIlc1wiIHBhZ2UgJXUiLAorCQkJCQkJCQkgdmFjcmVsLT5yZWxuYW1lLCBibGtubykpKTsKKwog CQlQYWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOwogCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKIAkJ dmlzaWJpbGl0eW1hcF9jbGVhcih2YWNyZWwtPnJlbCwgYmxrbm8sIHZtYnVmZmVyLAotLSAKMi40 My4wCgo= --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0003-Eliminate-xl_heap_visible-in-COPY-FREEZE.patch" Content-Disposition: attachment; filename="v10-0003-Eliminate-xl_heap_visible-in-COPY-FREEZE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8fo2 RnJvbSAyYTQxOGQzZGVlMjE3Y2JmNDExZWM5NmE3YTZiOTU4MzEwNzdmODg3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE3IEp1biAyMDI1IDE3OjIyOjEwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMDMvMjJdIEVsaW1pbmF0ZSB4bF9oZWFwX3Zpc2libGUgaW4gQ09QWSBGUkVFWkUK Ckluc3RlYWQgb2YgZW1pdHRpbmcgYSBzZXBhcmF0ZSBXQUwgcmVjb3JkIGZvciBzZXR0aW5nIHRo ZSBWTSBiaXRzIGluCnhsX2hlYXBfdmlzaWJsZSwgc3BlY2lmeSB0aGUgY2hhbmdlcyB0byBtYWtl IHRvIHRoZSBWTSBibG9jayBpbiB0aGUKeGxfaGVhcF9tdWx0aV9pbnNlcnQgcmVjb3JkIGluc3Rl YWQuCgpBdXRob3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29tPgpEaXNj dXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2ZsYXQvQ0FBS1J1X1pNdzZOcGRfcW0yS00lMkJG d1EzY01PTXgxRGgzVk1ocDgtVjdTT0x4ZEs5LWclNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICB8IDQ3ICsrKysrKysrKystLS0tLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jICAgfCA0MyArKysrKysrKysr KysrKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgfCA2NyArKysr KysrKysrKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRl c2MuYyAgfCAgNSArKwogc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaCAgICAgIHwg IDIgKwogNSBmaWxlcyBjaGFuZ2VkLCAxNDQgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCA0YzVhZTIwNWE3YS4uODkzYTczOTAwOWEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC0yNTA0LDkgKzI1MDQsNiBAQCBoZWFwX211 bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNsb3QgKipzbG90cywgaW50 IG50dXBsZXMsCiAJCS8qCiAJCSAqIElmIHRoZSBwYWdlIGlzIGFsbCB2aXNpYmxlLCBuZWVkIHRv IGNsZWFyIHRoYXQsIHVubGVzcyB3ZSdyZSBvbmx5CiAJCSAqIGdvaW5nIHRvIGFkZCBmdXJ0aGVy IGZyb3plbiByb3dzIHRvIGl0LgotCQkgKgotCQkgKiBJZiB3ZSdyZSBvbmx5IGFkZGluZyBhbHJl YWR5IGZyb3plbiByb3dzIHRvIGEgcHJldmlvdXNseSBlbXB0eQotCQkgKiBwYWdlLCBtYXJrIGl0 IGFzIGFsbC12aXNpYmxlLgogCQkgKi8KIAkJaWYgKFBhZ2VJc0FsbFZpc2libGUocGFnZSkgJiYg IShvcHRpb25zICYgSEVBUF9JTlNFUlRfRlJPWkVOKSkKIAkJewpAQCAtMjUxNiw4ICsyNTEzLDIy IEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xvdCAq KnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJCQkJCQkJQnVmZmVyR2V0QmxvY2tOdW1iZXIoYnVmZmVy KSwKIAkJCQkJCQkJdm1idWZmZXIsIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CiAJCX0KKwor CQkvKgorCQkgKiBJZiB3ZSdyZSBvbmx5IGFkZGluZyBhbHJlYWR5IGZyb3plbiByb3dzIHRvIGEg cHJldmlvdXNseSBlbXB0eQorCQkgKiBwYWdlLCBtYXJrIGl0IGFzIGFsbC1mcm96ZW4gYW5kIHVw ZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAuIFdlJ3JlCisJCSAqIGFscmVhZHkgaG9sZGluZyBhIHBp biBvbiB0aGUgdm1idWZmZXIuCisJCSAqLwogCQllbHNlIGlmIChhbGxfZnJvemVuX3NldCkKKwkJ ewogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CisJCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBC VUZGRVJfTE9DS19FWENMVVNJVkUpOworCQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKHJlbGF0 aW9uLAorCQkJCQkJCQkJIEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZlciksCisJCQkJCQkJCQkg dm1idWZmZXIsCisJCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8CisJCQkJCQkJ CQkgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKKwkJfQogCiAJCS8qCiAJCSAqIFhYWCBTaG91 bGQgd2Ugc2V0IFBhZ2VTZXRQcnVuYWJsZSBvbiB0aGlzIHBhZ2UgPyBTZWUgaGVhcF9pbnNlcnQo KQpAQCAtMjU2NSw2ICsyNTc2LDEyIEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0 aW9uLCBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJCXhscmVjLT5mbGFn cyA9IDA7CiAJCQlpZiAoYWxsX3Zpc2libGVfY2xlYXJlZCkKIAkJCQl4bHJlYy0+ZmxhZ3MgPSBY TEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQ7CisKKwkJCS8qCisJCQkgKiBXZSBkb24ndCBo YXZlIHRvIHdvcnJ5IGFib3V0IGluY2x1ZGluZyBhIGNvbmZsaWN0IHhpZCBpbiB0aGUKKwkJCSAq IFdBTCByZWNvcmQgYXMgSEVBUF9JTlNFUlRfRlJPWkVOIGludGVudGlvbmFsbHkgdmlvbGF0ZXMK KwkJCSAqIHZpc2liaWxpdHkgcnVsZXMuCisJCQkgKi8KIAkJCWlmIChhbGxfZnJvemVuX3NldCkK IAkJCQl4bHJlYy0+ZmxhZ3MgPSBYTEhfSU5TRVJUX0FMTF9GUk9aRU5fU0VUOwogCkBAIC0yNjI3 LDcgKzI2NDQsMTAgQEAgaGVhcF9tdWx0aV9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIFR1cGxl VGFibGVTbG90ICoqc2xvdHMsIGludCBudHVwbGVzLAogCiAJCQlYTG9nQmVnaW5JbnNlcnQoKTsK IAkJCVhMb2dSZWdpc3RlckRhdGEoeGxyZWMsIHR1cGxlZGF0YSAtIHNjcmF0Y2guZGF0YSk7CisK IAkJCVhMb2dSZWdpc3RlckJ1ZmZlcigwLCBidWZmZXIsIFJFR0JVRl9TVEFOREFSRCB8IGJ1ZmZs YWdzKTsKKwkJCWlmIChhbGxfZnJvemVuX3NldCkKKwkJCQlYTG9nUmVnaXN0ZXJCdWZmZXIoMSwg dm1idWZmZXIsIDApOwogCiAJCQlYTG9nUmVnaXN0ZXJCdWZEYXRhKDAsIHR1cGxlZGF0YSwgdG90 YWxkYXRhbGVuKTsKIApAQCAtMjYzNywyNiArMjY1NywxNyBAQCBoZWFwX211bHRpX2luc2VydChS ZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNsb3QgKipzbG90cywgaW50IG50dXBsZXMsCiAJ CQlyZWNwdHIgPSBYTG9nSW5zZXJ0KFJNX0hFQVAyX0lELCBpbmZvKTsKIAogCQkJUGFnZVNldExT TihwYWdlLCByZWNwdHIpOworCQkJaWYgKGFsbF9mcm96ZW5fc2V0KQorCQkJeworCQkJCUFzc2Vy dChCdWZmZXJJc0RpcnR5KHZtYnVmZmVyKSk7CisJCQkJUGFnZVNldExTTihCdWZmZXJHZXRQYWdl KHZtYnVmZmVyKSwgcmVjcHRyKTsKKwkJCX0KIAkJfQogCiAJCUVORF9DUklUX1NFQ1RJT04oKTsK IAotCQkvKgotCQkgKiBJZiB3ZSd2ZSBmcm96ZW4gZXZlcnl0aGluZyBvbiB0aGUgcGFnZSwgdXBk YXRlIHRoZSB2aXNpYmlsaXR5bWFwLgotCQkgKiBXZSdyZSBhbHJlYWR5IGhvbGRpbmcgcGluIG9u IHRoZSB2bWJ1ZmZlci4KLQkJICovCiAJCWlmIChhbGxfZnJvemVuX3NldCkKLQkJewotCQkJLyoK LQkJCSAqIEl0J3MgZmluZSB0byB1c2UgSW52YWxpZFRyYW5zYWN0aW9uSWQgaGVyZSAtIHRoaXMg aXMgb25seSB1c2VkCi0JCQkgKiB3aGVuIEhFQVBfSU5TRVJUX0ZST1pFTiBpcyBzcGVjaWZpZWQs IHdoaWNoIGludGVudGlvbmFsbHkKLQkJCSAqIHZpb2xhdGVzIHZpc2liaWxpdHkgcnVsZXMuCi0J CQkgKi8KLQkJCXZpc2liaWxpdHltYXBfc2V0KHJlbGF0aW9uLCBCdWZmZXJHZXRCbG9ja051bWJl cihidWZmZXIpLCBidWZmZXIsCi0JCQkJCQkJICBJbnZhbGlkWExvZ1JlY1B0ciwgdm1idWZmZXIs Ci0JCQkJCQkJICBJbnZhbGlkVHJhbnNhY3Rpb25JZCwKLQkJCQkJCQkgIFZJU0lCSUxJVFlNQVBf QUxMX1ZJU0lCTEUgfCBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOwotCQl9CisJCQlMb2NrQnVm ZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOwogCiAJCVVubG9ja1JlbGVhc2VCdWZm ZXIoYnVmZmVyKTsKIAkJbmRvbmUgKz0gbnRoaXNwYWdlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hl YXBhbV94bG9nLmMKaW5kZXggY2Y4NDMyNzc5MzguLjA4MjBmN2QwNTJkIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKQEAgLTU1MSw2ICs1NTEsNyBAQCBoZWFwX3hsb2dfbXVs dGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCWludAkJCWk7CiAJYm9vbAkJaXNp bml0ID0gKFhMb2dSZWNHZXRJbmZvKHJlY29yZCkgJiBYTE9HX0hFQVBfSU5JVF9QQUdFKSAhPSAw OwogCVhMb2dSZWRvQWN0aW9uIGFjdGlvbjsKKwlCdWZmZXIJCXZtYnVmZmVyID0gSW52YWxpZEJ1 ZmZlcjsKIAogCS8qCiAJICogSW5zZXJ0aW9uIGRvZXNuJ3Qgb3ZlcndyaXRlIE1WQ0MgZGF0YSwg c28gbm8gY29uZmxpY3QgcHJvY2Vzc2luZyBpcwpAQCAtNTcxLDExICs1NzIsMTEgQEAgaGVhcF94 bG9nX211bHRpX2luc2VydChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAlpZiAoeGxyZWMtPmZs YWdzICYgWExIX0lOU0VSVF9BTExfVklTSUJMRV9DTEVBUkVEKQogCXsKIAkJUmVsYXRpb24JcmVs biA9IENyZWF0ZUZha2VSZWxjYWNoZUVudHJ5KHJsb2NhdG9yKTsKLQkJQnVmZmVyCQl2bWJ1ZmZl ciA9IEludmFsaWRCdWZmZXI7CiAKIAkJdmlzaWJpbGl0eW1hcF9waW4ocmVsbiwgYmxrbm8sICZ2 bWJ1ZmZlcik7CiAJCXZpc2liaWxpdHltYXBfY2xlYXIocmVsbiwgYmxrbm8sIHZtYnVmZmVyLCBW SVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwogCQlSZWxlYXNlQnVmZmVyKHZtYnVmZmVyKTsKKwkJ dm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOwogCQlGcmVlRmFrZVJlbGNhY2hlRW50cnkocmVsbik7 CiAJfQogCkBAIC02NjIsNiArNjYzLDQ2IEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJaWYgKEJ1ZmZlcklzVmFsaWQoYnVmZmVyKSkKIAkJVW5sb2Nr UmVsZWFzZUJ1ZmZlcihidWZmZXIpOwogCisJYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKKworCS8q CisJICogTm93IHJlYWQgYW5kIHVwZGF0ZSB0aGUgVk0gYmxvY2suIEV2ZW4gaWYgd2Ugc2tpcHBl ZCB1cGRhdGluZyB0aGUgaGVhcAorCSAqIHBhZ2UgZHVlIHRvIHRoZSBmaWxlIGJlaW5nIGRyb3Bw ZWQgb3IgdHJ1bmNhdGVkIGxhdGVyIGluIHJlY292ZXJ5LCBpdCdzCisJICogc3RpbGwgc2FmZSB0 byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwLiAgQW55IFdBTCByZWNvcmQgdGhhdCBjbGVhcnMK KwkgKiB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IGRvZXMgc28gYmVmb3JlIGNoZWNraW5nIHRoZSBw YWdlIExTTiwgc28gYW55CisJICogYml0cyB0aGF0IG5lZWQgdG8gYmUgY2xlYXJlZCB3aWxsIHN0 aWxsIGJlIGNsZWFyZWQuCisJICoKKwkgKiBJdCBpcyBvbmx5IG9rYXkgdG8gc2V0IHRoZSBWTSBi aXRzIHdpdGhvdXQgaG9sZGluZyB0aGUgaGVhcCBwYWdlIGxvY2sKKwkgKiBiZWNhdXNlIHdlIGNh biBleHBlY3Qgbm8gb3RoZXIgd3JpdGVycyBvZiB0aGlzIHBhZ2UuCisJICovCisJaWYgKHhscmVj LT5mbGFncyAmIFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9TRVQgJiYKKwkJWExvZ1JlYWRCdWZmZXJG b3JSZWRvRXh0ZW5kZWQocmVjb3JkLCAxLCBSQk1fWkVST19PTl9FUlJPUiwgZmFsc2UsCisJCQkJ CQkJCQkgICZ2bWJ1ZmZlcikgPT0gQkxLX05FRURTX1JFRE8pCisJeworCQlQYWdlCQl2bXBhZ2Ug PSBCdWZmZXJHZXRQYWdlKHZtYnVmZmVyKTsKKwkJUmVsYXRpb24JcmVsbiA9IENyZWF0ZUZha2VS ZWxjYWNoZUVudHJ5KHJsb2NhdG9yKTsKKworCQkvKiBpbml0aWFsaXplIHRoZSBwYWdlIGlmIGl0 IHdhcyByZWFkIGFzIHplcm9zICovCisJCWlmIChQYWdlSXNOZXcodm1wYWdlKSkKKwkJCVBhZ2VJ bml0KHZtcGFnZSwgQkxDS1NaLCAwKTsKKworCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMocmVs biwgYmxrbm8sCisJCQkJCQkJCSB2bWJ1ZmZlciwKKwkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxM X1ZJU0lCTEUgfAorCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKKworCQkvKgor CQkgKiBJdCBpcyBub3QgcG9zc2libGUgdGhhdCB0aGUgVk0gd2FzIGFscmVhZHkgc2V0IGZvciB0 aGlzIGhlYXAgcGFnZSwKKwkJICogc28gdGhlIHZtYnVmZmVyIG11c3QgaGF2ZSBiZWVuIG1vZGlm aWVkIGFuZCBtYXJrZWQgZGlydHkuCisJCSAqLworCQlBc3NlcnQoQnVmZmVySXNEaXJ0eSh2bWJ1 ZmZlcikpOworCQlQYWdlU2V0TFNOKEJ1ZmZlckdldFBhZ2Uodm1idWZmZXIpLCBsc24pOworCQlG cmVlRmFrZVJlbGNhY2hlRW50cnkocmVsbik7CisJfQorCisJaWYgKEJ1ZmZlcklzVmFsaWQodm1i dWZmZXIpKQorCQlVbmxvY2tSZWxlYXNlQnVmZmVyKHZtYnVmZmVyKTsKKwogCS8qCiAJICogSWYg dGhlIHBhZ2UgaXMgcnVubmluZyBsb3cgb24gZnJlZSBzcGFjZSwgdXBkYXRlIHRoZSBGU00gYXMg d2VsbC4KIAkgKiBBcmJpdHJhcmlseSwgb3VyIGRlZmluaXRpb24gb2YgImxvdyIgaXMgbGVzcyB0 aGFuIDIwJS4gV2UgY2FuJ3QgZG8gbXVjaApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0 eW1hcC5jCmluZGV4IDczMDZjMTZmMDVjLi5iYjhkZmQ4OTEwYSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3Zpc2liaWxpdHltYXAuYwpAQCAtMTQsNyArMTQsOCBAQAogICoJCXZpc2liaWxpdHlt YXBfY2xlYXIgIC0gY2xlYXIgYml0cyBmb3Igb25lIHBhZ2UgaW4gdGhlIHZpc2liaWxpdHkgbWFw CiAgKgkJdmlzaWJpbGl0eW1hcF9waW4JIC0gcGluIGEgbWFwIHBhZ2UgZm9yIHNldHRpbmcgYSBi aXQKICAqCQl2aXNpYmlsaXR5bWFwX3Bpbl9vayAtIGNoZWNrIHdoZXRoZXIgY29ycmVjdCBtYXAg cGFnZSBpcyBhbHJlYWR5IHBpbm5lZAotICoJCXZpc2liaWxpdHltYXBfc2V0CSAtIHNldCBhIGJp dCBpbiBhIHByZXZpb3VzbHkgcGlubmVkIHBhZ2UKKyAqCQl2aXNpYmlsaXR5bWFwX3NldAkgLSBz ZXQgYml0KHMpIGluIGEgcHJldmlvdXNseSBwaW5uZWQgcGFnZSBhbmQgbG9nCisgKiAgICAgIHZp c2liaWxpdHltYXBfc2V0X3ZtYml0cyAtIHNldCBiaXQocykgaW4gYSBwaW5uZWQgcGFnZQogICoJ CXZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyAtIGdldCBzdGF0dXMgb2YgYml0cwogICoJCXZpc2li aWxpdHltYXBfY291bnQgIC0gY291bnQgbnVtYmVyIG9mIGJpdHMgc2V0IGluIHZpc2liaWxpdHkg bWFwCiAgKgkJdmlzaWJpbGl0eW1hcF9wcmVwYXJlX3RydW5jYXRlIC0KQEAgLTMyMSw2ICszMjIs NzAgQEAgdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxr LCBCdWZmZXIgaGVhcEJ1ZiwKIAlyZXR1cm4gc3RhdHVzOwogfQogCisvKgorICogU2V0IGZsYWdz IGluIHRoZSBWTSBibG9jayBjb250YWluZWQgaW4gdGhlIHBhc3NlZCBpbiB2bUJ1Zi4KKyAqCisg KiBUaGlzIGZ1bmN0aW9uIGlzIGZvciBjYWxsZXJzIHdoaWNoIGluY2x1ZGUgdGhlIFZNIGNoYW5n ZXMgaW4gdGhlIHNhbWUgV0FMCisgKiByZWNvcmQgYXMgdGhlIG1vZGlmaWNhdGlvbnMgb2YgdGhl IGhlYXAgcGFnZSB3aGljaCByZW5kZXJlZCBpdCBhbGwtdmlzaWJsZS4KKyAqIENhbGxlcnMgc2Vw YXJhdGVseSBsb2dnaW5nIHRoZSBWTSBjaGFuZ2VzIHNob3VsZCBpbnZva2UgdmlzaWJpbGl0eW1h cF9zZXQoKQorICogaW5zdGVhZC4KKyAqCisgKiBDYWxsZXIgbXVzdCBoYXZlIHBpbm5lZCBhbmQg ZXhjbHVzaXZlIGxvY2tlZCB0aGUgY29ycmVjdCBibG9jayBvZiB0aGUgVk0gaW4KKyAqIHZtQnVm LiBUaGlzIGJsb2NrIHNob3VsZCBjb250YWluIHRoZSBWTSBiaXRzIGZvciB0aGUgZ2l2ZW4gaGVh cEJsay4KKyAqCisgKiBEdXJpbmcgbm9ybWFsIG9wZXJhdGlvbiAoaS5lLiBub3QgcmVjb3Zlcnkp LCB0aGlzIHNob3VsZCBiZSBjYWxsZWQgaW4gYQorICogY3JpdGljYWwgc2VjdGlvbiB3aGljaCBh bHNvIG1ha2VzIGFueSBuZWNlc3NhcnkgY2hhbmdlcyB0byB0aGUgaGVhcCBwYWdlCisgKiBhbmQs IGlmIHJlbGV2YW50LCBlbWl0cyBXQUwuCisgKgorICogQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZv ciBXQUwgbG9nZ2luZyB0aGUgY2hhbmdlcyB0byB0aGUgVk0gYnVmZmVyIGFuZCBmb3IKKyAqIG1h a2luZyBhbnkgY2hhbmdlcyBuZWVkZWQgdG8gdGhlIGFzc29jaWF0ZWQgaGVhcCBwYWdlLiBUaGlz IGluY2x1ZGVzCisgKiBtYWludGFpbmluZyBhbnkgaW52YXJpYW50cyBzdWNoIGFzIGVuc3VyaW5n IHRoZSBidWZmZXIgY29udGFpbmluZyBoZWFwQmxrCisgKiBpcyBwaW5uZWQgYW5kIGV4Y2x1c2l2 ZSBsb2NrZWQuCisgKi8KK3VpbnQ4Cit2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoUmVsYXRpb24g cmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAorCQkJCQkJIEJ1ZmZlciB2bUJ1ZiwgdWludDggZmxh Z3MpCit7CisJQmxvY2tOdW1iZXIgbWFwQmxvY2sgPSBIRUFQQkxLX1RPX01BUEJMT0NLKGhlYXBC bGspOworCXVpbnQzMgkJbWFwQnl0ZSA9IEhFQVBCTEtfVE9fTUFQQllURShoZWFwQmxrKTsKKwl1 aW50OAkJbWFwT2Zmc2V0ID0gSEVBUEJMS19UT19PRkZTRVQoaGVhcEJsayk7CisJUGFnZQkJcGFn ZTsKKwl1aW50OAkgICAqbWFwOworCXVpbnQ4CQlzdGF0dXM7CisKKyNpZmRlZiBUUkFDRV9WSVNJ QklMSVRZTUFQCisJZWxvZyhERUJVRzEsICJ2bV9zZXQgZmxhZ3MgMHglMDJYIGZvciAlcyAlZCIs CisJCSBmbGFncywgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSwgaGVhcEJsayk7CisjZW5k aWYKKworCS8qIENhbGwgaW4gc2FtZSBjcml0aWNhbCBzZWN0aW9uIHdoZXJlIFdBTCBpcyBlbWl0 dGVkLiAqLworCUFzc2VydChJblJlY292ZXJ5IHx8IENyaXRTZWN0aW9uQ291bnQgPiAwKTsKKwor CS8qIEZsYWdzIHNob3VsZCBiZSB2YWxpZC4gQWxzbyBuZXZlciBjbGVhciBiaXRzIHdpdGggdGhp cyBmdW5jdGlvbiAqLworCUFzc2VydCgoZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMp ID09IGZsYWdzKTsKKworCS8qIE11c3QgbmV2ZXIgc2V0IGFsbF9mcm96ZW4gYml0IHdpdGhvdXQg YWxzbyBzZXR0aW5nIGFsbF92aXNpYmxlIGJpdCAqLworCUFzc2VydChmbGFncyAhPSBWSVNJQklM SVRZTUFQX0FMTF9GUk9aRU4pOworCisJLyogQ2hlY2sgdGhhdCB3ZSBoYXZlIHRoZSByaWdodCBW TSBwYWdlIHBpbm5lZCAqLworCWlmICghQnVmZmVySXNWYWxpZCh2bUJ1ZikgfHwgQnVmZmVyR2V0 QmxvY2tOdW1iZXIodm1CdWYpICE9IG1hcEJsb2NrKQorCQllbG9nKEVSUk9SLCAid3JvbmcgVk0g YnVmZmVyIHBhc3NlZCB0byB2aXNpYmlsaXR5bWFwX3NldCIpOworCisJQXNzZXJ0KEJ1ZmZlcklz RXhjbHVzaXZlTG9ja2VkKHZtQnVmKSk7CisKKwlwYWdlID0gQnVmZmVyR2V0UGFnZSh2bUJ1Zik7 CisJbWFwID0gKHVpbnQ4ICopIFBhZ2VHZXRDb250ZW50cyhwYWdlKTsKKworCXN0YXR1cyA9ICht YXBbbWFwQnl0ZV0gPj4gbWFwT2Zmc2V0KSAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsKKwlp ZiAoZmxhZ3MgIT0gc3RhdHVzKQorCXsKKwkJbWFwW21hcEJ5dGVdIHw9IChmbGFncyA8PCBtYXBP ZmZzZXQpOworCQlNYXJrQnVmZmVyRGlydHkodm1CdWYpOworCX0KKworCXJldHVybiBzdGF0dXM7 Cit9CisKIC8qCiAgKgl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMgLSBnZXQgc3RhdHVzIG9mIGJp dHMKICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2Mu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCmluZGV4IDgyYjYyYzk1 ZGU1Li5iNDhkN2RjMWQyNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNj L2hlYXBkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMK QEAgLTE2LDYgKzE2LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW1feGxvZy5oIgogI2lu Y2x1ZGUgImFjY2Vzcy9ybWdyZGVzY191dGlscy5oIgorI2luY2x1ZGUgImFjY2Vzcy92aXNpYmls aXR5bWFwZGVmcy5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc3RhbmRieWRlZnMuaCIKIAogLyoKQEAg LTM1NCw2ICszNTUsMTAgQEAgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0 YXRlICpyZWNvcmQpCiAJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAibnR1cGxlczogJWQsIGZsYWdz OiAweCUwMlgiLCB4bHJlYy0+bnR1cGxlcywKIAkJCQkJCSB4bHJlYy0+ZmxhZ3MpOwogCisJCWlm ICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9GUk9aRU5fU0VUKQorCQkJYXBwZW5kU3Ry aW5nSW5mbyhidWYsICIsIHZtX2ZsYWdzOiAweCUwMlgiLAorCQkJCQkJCSBWSVNJQklMSVRZTUFQ X0FMTF9WSVNJQkxFIHwgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKKwogCQlpZiAoWExvZ1Jl Y0hhc0Jsb2NrRGF0YShyZWNvcmQsIDApICYmICFpc2luaXQpCiAJCXsKIAkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoYnVmLCAiLCBvZmZzZXRzOiIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv YWNjZXNzL3Zpc2liaWxpdHltYXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFw LmgKaW5kZXggYmUyMWM2ZGQxYTMuLmZjNzA1NmE5MWVhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmls aXR5bWFwLmgKQEAgLTM3LDYgKzM3LDggQEAgZXh0ZXJuIHVpbnQ4IHZpc2liaWxpdHltYXBfc2V0 KFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkgICBCdWZmZXIgdm1CdWYsCiAJCQkJCQkJICAgVHJhbnNh Y3Rpb25JZCBjdXRvZmZfeGlkLAogCQkJCQkJCSAgIHVpbnQ4IGZsYWdzKTsKK2V4dGVybiB1aW50 OCB2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFw QmxrLAorCQkJCQkJCQkJICBCdWZmZXIgdm1CdWYsIHVpbnQ4IGZsYWdzKTsKIGV4dGVybiB1aW50 OCB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFw QmxrLCBCdWZmZXIgKnZtYnVmKTsKIGV4dGVybiB2b2lkIHZpc2liaWxpdHltYXBfY291bnQoUmVs YXRpb24gcmVsLCBCbG9ja051bWJlciAqYWxsX3Zpc2libGUsIEJsb2NrTnVtYmVyICphbGxfZnJv emVuKTsKIGV4dGVybiBCbG9ja051bWJlciB2aXNpYmlsaXR5bWFwX3ByZXBhcmVfdHJ1bmNhdGUo UmVsYXRpb24gcmVsLAotLSAKMi40My4wCgo= --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0001-Remove-unused-xl_heap_prune-member-reason.patch" Content-Disposition: attachment; filename="v10-0001-Remove-unused-xl_heap_prune-member-reason.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8f90 RnJvbSAxN2FhZWE2MWQ2ZDJmMjRkOTI3MWI1Y2QxMjJjN2JhNWMzYTMxY2RkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgU2VwIDIwMjUgMTU6MDI6NTggLTA0MDAKU3ViamVjdDogW1BB VENIIHYxMCAwMS8yMl0gUmVtb3ZlIHVudXNlZCB4bF9oZWFwX3BydW5lIG1lbWJlciwgcmVhc29u CgpmODNkNzA5NzYwZDggcmVmYWN0b3JlZCB4bF9oZWFwX3BydW5lIGFuZCBhZGRlZCBhbiB1bnVz ZWQgbWVtYmVyLApyZWFzb24uIFdoaWxlIFBydW5lUmVhc29uIGlzIHVzZWQgd2hlbiBjb25zdHJ1 Y3RpbmcgdGhpcyBXQUwgcmVjb3JkIHRvCnNldCB0aGUgV0FMIHJlY29yZCBkZWZpbml0aW9uLCBp dCBkb2Vzbid0IG5lZWQgdG8gYmUgc3RvcmVkIGluIGEKc2VwYXJhdGUgZmllbGQgaW4gdGhlIHJl Y29yZC4gUmVtb3ZlIGl0LgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2Vt YW5AZ21haWwuY29tPgpSZXBvcnRlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVs LmRlPgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS90dnZ0Zm94ejV5a3BzY3R4amJ6 eGczbmxkbnpmYzdnZXBscnQyejJzNTRwbWd0bzI3eSU0MGhiaWpzbmRpZnU0NQotLS0KIHNyYy9p bmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oIHwgMSAtCiAxIGZpbGUgY2hhbmdlZCwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oIGIv c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXggMjc3ZGY2YjNjZjAuLmQ0YzA2 MjViNjMyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaAorKysg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaApAQCAtMjg0LDcgKzI4NCw2IEBAIHR5 cGVkZWYgc3RydWN0IHhsX2hlYXBfdXBkYXRlCiAgKi8KIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBf cHJ1bmUKIHsKLQl1aW50OAkJcmVhc29uOwogCXVpbnQ4CQlmbGFnczsKIAogCS8qCi0tIAoyLjQz LjAKCg== --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0004-Make-heap_page_is_all_visible-independent-of-LVR.patch" Content-Disposition: attachment; filename="v10-0004-Make-heap_page_is_all_visible-independent-of-LVR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8fr3 RnJvbSAxOTUzZGU4YWYxYjQ3Y2Q4MzA5ODU5ZGE2NmU3M2YzZWFlY2ViODc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDE1OjQ4OjUxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMDQvMjJdIE1ha2UgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlIGluZGVwZW5kZW50 IG9mCiBMVlJlbFN0YXRlCgpGdXR1cmUgY29tbWl0cyB3aWxsIHVzZSB0aGlzIGZ1bmN0aW9uIGlu c2lkZSBvZiBwcnVuZWhlYXAuYyB3aGVyZSB3ZSBkbwpub3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIExW UmVsU3RhdGUuIFdlIG9ubHkgbmVlZCBhIGZldyBwYXJhbWV0ZXJzIGZyb20KdGhlIExWUmVsU3Rh dGUsIHNvIGp1c3QgcGFzcyB0aG9zZSBpbiBleHBsaWNpdGx5LgoKQXV0aG9yOiBNZWxhbmllIFBs YWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogS2lyaWxsIFJl c2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3Iu ZXMvbS9mbGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndRM2NNT014MURoM1ZNaHA4LVY3U09M eGRLOS1nJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMgfCA0OCArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMzEgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jCmluZGV4IDhiZWEwNDU0ZmY1Li5jMDJlY2EzNmM4OCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNDYzLDggKzQ2MywxMSBAQCBzdGF0aWMgdm9pZCBk ZWFkX2l0ZW1zX2FkZChMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBPZmZz ZXROdW1iZXIgKgogCQkJCQkJICAgaW50IG51bV9vZmZzZXRzKTsKIHN0YXRpYyB2b2lkIGRlYWRf aXRlbXNfcmVzZXQoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNf Y2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwpOwotc3RhdGljIGJvb2wgaGVhcF9wYWdlX2lzX2Fs bF92aXNpYmxlKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwKLQkJCQkJCQkJCSBUcmFu c2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsIGJvb2wgKmFsbF9mcm96ZW4pOworc3Rh dGljIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1 ZiwKKwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkJCQkgYm9vbCAq YWxsX2Zyb3plbiwKKwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94 aWQsCisJCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CiBzdGF0aWMgdm9p ZCB1cGRhdGVfcmVsc3RhdHNfYWxsX2luZGV4ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRp YyB2b2lkIHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpOwogc3RhdGljIHZvaWQgdXBk YXRlX3ZhY3V1bV9lcnJvcl9pbmZvKExWUmVsU3RhdGUgKnZhY3JlbCwKQEAgLTIwMDksOCArMjAx Miw5IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAKIAkJQXNzZXJ0KHBy ZXN1bHQubHBkZWFkX2l0ZW1zID09IDApOwogCi0JCWlmICghaGVhcF9wYWdlX2lzX2FsbF92aXNp YmxlKHZhY3JlbCwgYnVmLAotCQkJCQkJCQkJICAmZGVidWdfY3V0b2ZmLCAmZGVidWdfYWxsX2Zy b3plbikpCisJCWlmICghaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBidWYs CisJCQkJCQkJCQkgIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWluLCAmZGVidWdfYWxsX2Zyb3pl biwKKwkJCQkJCQkJCSAgJmRlYnVnX2N1dG9mZiwgJnZhY3JlbC0+b2ZmbnVtKSkKIAkJCUFzc2Vy dChmYWxzZSk7CiAKIAkJQXNzZXJ0KHByZXN1bHQuYWxsX2Zyb3plbiA9PSBkZWJ1Z19hbGxfZnJv emVuKTsKQEAgLTI5MTAsOCArMjkxNCw4IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0 YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCSAqIGVtaXR0 ZWQuCiAJICovCiAJQXNzZXJ0KCFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKTsKLQlpZiAoaGVhcF9w YWdlX2lzX2FsbF92aXNpYmxlKHZhY3JlbCwgYnVmZmVyLCAmdmlzaWJpbGl0eV9jdXRvZmZfeGlk LAotCQkJCQkJCQkgJmFsbF9mcm96ZW4pKQorCWlmIChoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUo dmFjcmVsLT5yZWwsIGJ1ZmZlciwgdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4sCisJCQkJCQkJ CSAmYWxsX2Zyb3plbiwgJnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwgJnZhY3JlbC0+b2ZmbnVtKSkK IAl7CiAJCXVpbnQ4CQlmbGFncyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CiAKQEAgLTM1 OTQsMTAgKzM1OTgsMTggQEAgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCkK IH0KIAogLyoKLSAqIENoZWNrIGlmIGV2ZXJ5IHR1cGxlIGluIHRoZSBnaXZlbiBwYWdlIGlzIHZp c2libGUgdG8gYWxsIGN1cnJlbnQgYW5kIGZ1dHVyZQotICogdHJhbnNhY3Rpb25zLiBBbHNvIHJl dHVybiB0aGUgdmlzaWJpbGl0eV9jdXRvZmZfeGlkIHdoaWNoIGlzIHRoZSBoaWdoZXN0Ci0gKiB4 bWluIGFtb25nc3QgdGhlIHZpc2libGUgdHVwbGVzLiAgU2V0ICphbGxfZnJvemVuIHRvIHRydWUg aWYgZXZlcnkgdHVwbGUKLSAqIG9uIHRoaXMgcGFnZSBpcyBmcm96ZW4uCisgKiBDaGVjayBpZiBl dmVyeSB0dXBsZSBpbiB0aGUgZ2l2ZW4gcGFnZSBpbiBidWYgaXMgdmlzaWJsZSB0byBhbGwgY3Vy cmVudCBhbmQKKyAqIGZ1dHVyZSB0cmFuc2FjdGlvbnMuCisgKgorICogT2xkZXN0WG1pbiBpcyB1 c2VkIHRvIGRldGVybWluZSB2aXNpYmlsaXR5LgorICoKKyAqIFNldHMgKmFsbF9mcm96ZW4gdG8g dHJ1ZSBpZiBldmVyeSB0dXBsZSBvbiB0aGlzIHBhZ2UgaXMgZnJvemVuLgorICoKKyAqIFNldHMg KnZpc2liaWxpdHlfY3V0b2ZmX3hpZCB0byB0aGUgaGlnaGVzdCB4bWluIGFtb25nc3QgdGhlIHZp c2libGUgdHVwbGVzLgorICogSXQgaXMgb25seSB2YWxpZCBpZiB0aGUgcGFnZSBpcyBhbGwtdmlz aWJsZS4KKyAqCisgKiAqbG9nZ2luZ19vZmZudW0gd2lsbCBoYXZlIHRoZSBPZmZzZXROdW1iZXIg b2YgdGhlIGN1cnJlbnQgdHVwbGUgYmVpbmcKKyAqIHByb2Nlc3NlZCBmb3IgdmFjdXVtJ3MgZXJy b3IgY2FsbGJhY2sgc3lzdGVtLgogICoKICAqIFRoaXMgaXMgYSBzdHJpcHBlZCBkb3duIHZlcnNp b24gb2YgbGF6eV9zY2FuX3BydW5lKCkuICBJZiB5b3UgY2hhbmdlCiAgKiBhbnl0aGluZyBoZXJl LCBtYWtlIHN1cmUgdGhhdCBldmVyeXRoaW5nIHN0YXlzIGluIHN5bmMuICBOb3RlIHRoYXQgYW4K QEAgLTM2MDUsOSArMzYxNywxMSBAQCBkZWFkX2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFj cmVsKQogICogaW50cm9kdWNpbmcgbmV3IHNpZGUtZWZmZWN0cyBoZXJlLgogICovCiBzdGF0aWMg Ym9vbAotaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVy IGJ1ZiwKK2hlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYs CisJCQkJCQkgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAorCQkJCQkJIGJvb2wgKmFsbF9mcm96 ZW4sCiAJCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAotCQkJCQkJ IGJvb2wgKmFsbF9mcm96ZW4pCisJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkK IHsKIAlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWYpOwogCUJsb2NrTnVtYmVyIGJsb2Nr bm8gPSBCdWZmZXJHZXRCbG9ja051bWJlcihidWYpOwpAQCAtMzYzMCw3ICszNjQ0LDcgQEAgaGVh cF9wYWdlX2lzX2FsbF92aXNpYmxlKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwKIAkJ ICogU2V0IHRoZSBvZmZzZXQgbnVtYmVyIHNvIHRoYXQgd2UgY2FuIGRpc3BsYXkgaXQgYWxvbmcg d2l0aCBhbnkKIAkJICogZXJyb3IgdGhhdCBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIHRoaXMg dHVwbGUuCiAJCSAqLwotCQl2YWNyZWwtPm9mZm51bSA9IG9mZm51bTsKKwkJKmxvZ2dpbmdfb2Zm bnVtID0gb2ZmbnVtOwogCQlpdGVtaWQgPSBQYWdlR2V0SXRlbUlkKHBhZ2UsIG9mZm51bSk7CiAK IAkJLyogVW51c2VkIG9yIHJlZGlyZWN0IGxpbmUgcG9pbnRlcnMgYXJlIG9mIG5vIGludGVyZXN0 ICovCkBAIC0zNjU0LDkgKzM2NjgsOSBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoTFZSZWxT dGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCiAJCXR1cGxlLnRfZGF0YSA9IChIZWFwVHVwbGVI ZWFkZXIpIFBhZ2VHZXRJdGVtKHBhZ2UsIGl0ZW1pZCk7CiAJCXR1cGxlLnRfbGVuID0gSXRlbUlk R2V0TGVuZ3RoKGl0ZW1pZCk7Ci0JCXR1cGxlLnRfdGFibGVPaWQgPSBSZWxhdGlvbkdldFJlbGlk KHZhY3JlbC0+cmVsKTsKKwkJdHVwbGUudF90YWJsZU9pZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVs KTsKIAotCQlzd2l0Y2ggKEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bSgmdHVwbGUsIHZhY3JlbC0+ Y3V0b2Zmcy5PbGRlc3RYbWluLAorCQlzd2l0Y2ggKEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bSgm dHVwbGUsIE9sZGVzdFhtaW4sCiAJCQkJCQkJCQkJIGJ1ZikpCiAJCXsKIAkJCWNhc2UgSEVBUFRV UExFX0xJVkU6CkBAIC0zNjc3LDcgKzM2OTEsNyBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUo TFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkgKi8KIAkJCQkJeG1pbiA9IEhl YXBUdXBsZUhlYWRlckdldFhtaW4odHVwbGUudF9kYXRhKTsKIAkJCQkJaWYgKCFUcmFuc2FjdGlv bklkUHJlY2VkZXMoeG1pbiwKLQkJCQkJCQkJCQkJICAgdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFht aW4pKQorCQkJCQkJCQkJCQkgICBPbGRlc3RYbWluKSkKIAkJCQkJewogCQkJCQkJYWxsX3Zpc2li bGUgPSBmYWxzZTsKIAkJCQkJCSphbGxfZnJvemVuID0gZmFsc2U7CkBAIC0zNzEyLDcgKzM3MjYs NyBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIg YnVmLAogCX0JCQkJCQkJLyogc2NhbiBhbG9uZyBwYWdlICovCiAKIAkvKiBDbGVhciB0aGUgb2Zm c2V0IGluZm9ybWF0aW9uIG9uY2Ugd2UgaGF2ZSBwcm9jZXNzZWQgdGhlIGdpdmVuIHBhZ2UuICov Ci0JdmFjcmVsLT5vZmZudW0gPSBJbnZhbGlkT2Zmc2V0TnVtYmVyOworCSpsb2dnaW5nX29mZm51 bSA9IEludmFsaWRPZmZzZXROdW1iZXI7CiAKIAlyZXR1cm4gYWxsX3Zpc2libGU7CiB9Ci0tIAoy LjQzLjAKCg== --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0005-Eliminate-xl_heap_visible-from-vacuum-phase-III.patch" Content-Disposition: attachment; filename="v10-0005-Eliminate-xl_heap_visible-from-vacuum-phase-III.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8fu4 RnJvbSA0MjM0MTEzN2JjZTBhODY1MjNmODY0ZWE1NzM4MGUwMjg1ZjE4Mzk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDEyOjQyOjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMDUvMjJdIEVsaW1pbmF0ZSB4bF9oZWFwX3Zpc2libGUgZnJvbSB2YWN1dW0gcGhh c2UgSUlJCgpJbnN0ZWFkIG9mIGVtaXR0aW5nIGEgc2VwYXJhdGUgeGxfaGVhcF92aXNpYmxlIHJl Y29yZCBmb3IgZWFjaCBwYWdlIHRoYXQKaXMgcmVuZGVyZWQgYWxsLXZpc2libGUgYnkgdmFjdXVt J3MgdGhpcmQgcGhhc2UsIGluY2x1ZGUgdGhlIHVwZGF0ZXMgdG8KdGhlIFZNIGluIHRoZSBhbHJl YWR5IGVtaXR0ZWQgeGxfaGVhcF9wcnVuZSByZWNvcmQuCgpUaGUgdmlzaWJpbGl0eW1hcCBiaXRz IGFyZSBzdG9yZWQgaW4gdGhlIGZsYWdzIG1lbWJlciBvZiB0aGUKeGxfaGVhcF9wcnVuZSByZWNv cmQuCgpBdXRob3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29tPgpSZXZp ZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpEaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL2ZsYXQvQ0FBS1J1X1pNdzZOcGRfcW0yS00lMkJGd1EzY01PTXgx RGgzVk1ocDgtVjdTT0x4ZEs5LWclNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgIHwgMTQ1ICsrKysrKysrKysrKysrKysrKy0tLS0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICAgIHwgIDY2ICsrKysrKysrLS0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgIHwgMTY0ICsrKysrKysrKysrKysr KysrLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jIHwgICA3 ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgICB8ICAgOSArKwogc3Jj L2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmggICAgICAgfCAgMzYgKysrKy0tCiA2IGZpbGVz IGNoYW5nZWQsIDMzMCBpbnNlcnRpb25zKCspLCA5NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCAwODIwZjdkMDUyZC4uMTFjMTE5MjllZDkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtMzUsNyArMzUsOSBAQCBoZWFw X3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCUJ1ZmZlcgkJYnVm ZmVyOwogCVJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yOwogCUJsb2NrTnVtYmVyIGJsa25vOwotCVhM b2dSZWRvQWN0aW9uIGFjdGlvbjsKKwlCdWZmZXIJCXZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsK Kwl1aW50OAkJdm1mbGFncyA9IDA7CisJU2l6ZQkJZnJlZXNwYWNlID0gMDsKIAogCVhMb2dSZWNH ZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybG9jYXRvciwgTlVMTCwgJmJsa25vKTsKIAltZW1jcHko JnhscmVjLCBtYWluZGF0YXB0ciwgU2l6ZU9mSGVhcFBydW5lKTsKQEAgLTUwLDExICs1MiwxNyBA QCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCUFzc2Vy dCgoeGxyZWMuZmxhZ3MgJiBYTEhQX0NMRUFOVVBfTE9DSykgIT0gMCB8fAogCQkgICAoeGxyZWMu ZmxhZ3MgJiAoWExIUF9IQVNfUkVESVJFQ1RJT05TIHwgWExIUF9IQVNfREVBRF9JVEVNUykpID09 IDApOwogCisJdm1mbGFncyA9IHhscmVjLmZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRT OworCiAJLyoKLQkgKiBXZSBhcmUgYWJvdXQgdG8gcmVtb3ZlIGFuZC9vciBmcmVlemUgdHVwbGVz LiAgSW4gSG90IFN0YW5kYnkgbW9kZSwKLQkgKiBlbnN1cmUgdGhhdCB0aGVyZSBhcmUgbm8gcXVl cmllcyBydW5uaW5nIGZvciB3aGljaCB0aGUgcmVtb3ZlZCB0dXBsZXMKLQkgKiBhcmUgc3RpbGwg dmlzaWJsZSBvciB3aGljaCBzdGlsbCBjb25zaWRlciB0aGUgZnJvemVuIHhpZHMgYXMgcnVubmlu Zy4KLQkgKiBUaGUgY29uZmxpY3QgaG9yaXpvbiBYSUQgY29tZXMgYWZ0ZXIgeGxfaGVhcF9wcnVu ZS4KKwkgKiBBZnRlciB4bF9oZWFwX3BydW5lIGlzIHRoZSBvcHRpb25hbCBzbmFwc2hvdCBjb25m bGljdCBob3Jpem9uLgorCSAqCisJICogSW4gSG90IFN0YW5kYnkgbW9kZSwgd2UgbXVzdCBlbnN1 cmUgdGhhdCB0aGVyZSBhcmUgbm8gcnVubmluZyBxdWVyaWVzCisJICogd2hpY2ggd291bGQgY29u ZmxpY3Qgd2l0aCB0aGUgY2hhbmdlcyBpbiB0aGlzIHJlY29yZC4gVGhhdCBtZWFucyB3ZQorCSAq IGNhbid0IHJlcGxheSB0aGlzIHJlY29yZCBpZiBpdCByZW1vdmVzIHR1cGxlcyB0aGF0IGFyZSBz dGlsbCB2aXNpYmxlIHRvCisJICogdHJhbnNhY3Rpb25zIG9uIHRoZSBzdGFuZGJ5LCBmcmVlemUg dHVwbGVzIHdpdGggeGlkcyB0aGF0IGFyZSBzdGlsbAorCSAqIGNvbnNpZGVyZWQgcnVubmluZyBv biB0aGUgc3RhbmRieSwgb3Igc2V0IGEgcGFnZSBhcyBhbGwtdmlzaWJsZSBpbiB0aGUKKwkgKiBW TSBpZiBpdCBpc24ndCBhbGwtdmlzaWJsZSB0byBhbGwgdHJhbnNhY3Rpb25zIG9uIHRoZSBzdGFu ZGJ5LgogCSAqLwogCWlmICgoeGxyZWMuZmxhZ3MgJiBYTEhQX0hBU19DT05GTElDVF9IT1JJWk9O KSAhPSAwKQogCXsKQEAgLTcxLDEyICs3OSwxMiBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhM b2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCX0KIAogCS8qCi0JICogSWYgd2UgaGF2ZSBhIGZ1bGwt cGFnZSBpbWFnZSwgcmVzdG9yZSBpdCBhbmQgd2UncmUgZG9uZS4KKwkgKiBJZiB3ZSBoYXZlIGEg ZnVsbC1wYWdlIGltYWdlIG9mIHRoZSBoZWFwIGJsb2NrLCByZXN0b3JlIGl0IGFuZCB3ZSdyZQor CSAqIGRvbmUgd2l0aCB0aGUgaGVhcCBibG9jay4KIAkgKi8KLQlhY3Rpb24gPSBYTG9nUmVhZEJ1 ZmZlckZvclJlZG9FeHRlbmRlZChyZWNvcmQsIDAsIFJCTV9OT1JNQUwsCi0JCQkJCQkJCQkJICAg KHhscmVjLmZsYWdzICYgWExIUF9DTEVBTlVQX0xPQ0spICE9IDAsCi0JCQkJCQkJCQkJICAgJmJ1 ZmZlcik7Ci0JaWYgKGFjdGlvbiA9PSBCTEtfTkVFRFNfUkVETykKKwlpZiAoWExvZ1JlYWRCdWZm ZXJGb3JSZWRvRXh0ZW5kZWQocmVjb3JkLCAwLCBSQk1fTk9STUFMLAorCQkJCQkJCQkJICAoeGxy ZWMuZmxhZ3MgJiBYTEhQX0NMRUFOVVBfTE9DSykgIT0gMCwKKwkJCQkJCQkJCSAgJmJ1ZmZlcikg PT0gQkxLX05FRURTX1JFRE8pCiAJewogCQlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZm ZXIpOwogCQlPZmZzZXROdW1iZXIgKnJlZGlyZWN0ZWQ7CkBAIC04OSw2ICs5Nyw5IEBAIGhlYXBf eGxvZ19wcnVuZV9mcmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCVNpemUJCWRhdGFs ZW47CiAJCXhsaHBfZnJlZXplX3BsYW4gKnBsYW5zOwogCQlPZmZzZXROdW1iZXIgKmZyel9vZmZz ZXRzOworCQlib29sCQlkb19wcnVuZTsKKwkJYm9vbAkJbWFya19idWZmZXJfZGlydHk7CisJCWJv b2wJCXNldF9oZWFwX2xzbjsKIAkJY2hhcgkgICAqZGF0YXB0ciA9IFhMb2dSZWNHZXRCbG9ja0Rh dGEocmVjb3JkLCAwLCAmZGF0YWxlbik7CiAKIAkJaGVhcF94bG9nX2Rlc2VyaWFsaXplX3BydW5l X2FuZF9mcmVlemUoZGF0YXB0ciwgeGxyZWMuZmxhZ3MsCkBAIC05NywxMSArMTA4LDE4IEBAIGhl YXBfeGxvZ19wcnVuZV9mcmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCQkJCQkJCQkJ CSAgICZuZGVhZCwgJm5vd2RlYWQsCiAJCQkJCQkJCQkJCSAgICZudW51c2VkLCAmbm93dW51c2Vk KTsKIAorCQlkb19wcnVuZSA9IG5yZWRpcmVjdGVkID4gMCB8fCBuZGVhZCA+IDAgfHwgbnVudXNl ZCA+IDA7CisJCXNldF9oZWFwX2xzbiA9IG1hcmtfYnVmZmVyX2RpcnR5ID0gZG9fcHJ1bmUgfHwg bnBsYW5zID4gMDsKKworCQkvKiBFbnN1cmUgdGhlIHJlY29yZCBkb2VzIHNvbWV0aGluZyAqLwor CQlBc3NlcnQoZG9fcHJ1bmUgfHwgbnBsYW5zID4gMCB8fAorCQkJICAgdm1mbGFncyAmIFZJU0lC SUxJVFlNQVBfVkFMSURfQklUUyk7CisKIAkJLyoKIAkJICogVXBkYXRlIGFsbCBsaW5lIHBvaW50 ZXJzIHBlciB0aGUgcmVjb3JkLCBhbmQgcmVwYWlyIGZyYWdtZW50YXRpb24KIAkJICogaWYgbmVl ZGVkLgogCQkgKi8KLQkJaWYgKG5yZWRpcmVjdGVkID4gMCB8fCBuZGVhZCA+IDAgfHwgbnVudXNl ZCA+IDApCisJCWlmIChkb19wcnVuZSkKIAkJCWhlYXBfcGFnZV9wcnVuZV9leGVjdXRlKGJ1ZmZl ciwKIAkJCQkJCQkJCSh4bHJlYy5mbGFncyAmIFhMSFBfQ0xFQU5VUF9MT0NLKSA9PSAwLAogCQkJ CQkJCQkJcmVkaXJlY3RlZCwgbnJlZGlyZWN0ZWQsCkBAIC0xMzgsMzYgKzE1NiwxMTcgQEAgaGVh cF94bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJLyogVGhlcmUg c2hvdWxkIGJlIG5vIG1vcmUgZGF0YSAqLwogCQlBc3NlcnQoKGNoYXIgKikgZnJ6X29mZnNldHMg PT0gZGF0YXB0ciArIGRhdGFsZW4pOwogCisJCS8qCisJCSAqIE5vdyBzZXQgUERfQUxMX1ZJU0lC TEUsIGlmIHJlcXVpcmVkLiBXZSdsbCBvbmx5IGRvIHRoaXMgaWYgd2UgYXJlCisJCSAqIGFsc28g Z29pbmcgdG8gc2V0IGJpdHMgaW4gdGhlIFZNIGxhdGVyLgorCQkgKgorCQkgKiBXZSBtdXN0IG5l dmVyIGVuZCB1cCB3aXRoIHRoZSBWTSBiaXQgc2V0IGFuZCB0aGUgcGFnZS1sZXZlbAorCQkgKiBQ RF9BTExfVklTSUJMRSBiaXQgY2xlYXIuIElmIHRoYXQgd2VyZSB0byBvY2N1ciwgYSBzdWJzZXF1 ZW50IHBhZ2UKKwkJICogbW9kaWZpY2F0aW9uIHdvdWxkIGZhaWwgdG8gY2xlYXIgdGhlIFZNIGJp dC4KKwkJICovCisJCWlmICgodm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgJiYg IVBhZ2VJc0FsbFZpc2libGUocGFnZSkpCisJCXsKKwkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2Up OworCisJCQkvKgorCQkJICogSWYgdGhlIG9ubHkgY2hhbmdlIHRvIHRoZSBoZWFwIHBhZ2UgaXMg c2V0dGluZyBQRF9BTExfVklTSUJMRSwKKwkJCSAqIHdlIGNhbiBhdm9pZCBzZXR0aW5nIHRoZSBw YWdlIExTTiB1bmxlc3MgY2hlY2tzdW1zIG9yCisJCQkgKiB3YWxfbG9nX2hpbnRzIGFyZSBlbmFi bGVkLgorCQkJICovCisJCQlzZXRfaGVhcF9sc24gPSBYTG9nSGludEJpdElzTmVlZGVkKCkgPyB0 cnVlIDogc2V0X2hlYXBfbHNuOworCQkJbWFya19idWZmZXJfZGlydHkgPSB0cnVlOworCQl9CisK IAkJLyoKIAkJICogTm90ZTogd2UgZG9uJ3Qgd29ycnkgYWJvdXQgdXBkYXRpbmcgdGhlIHBhZ2Un cyBwcnVuYWJpbGl0eSBoaW50cy4KIAkJICogQXQgd29yc3QgdGhpcyB3aWxsIGNhdXNlIGFuIGV4 dHJhIHBydW5lIGN5Y2xlIHRvIG9jY3VyIHNvb24uCiAJCSAqLwogCi0JCVBhZ2VTZXRMU04ocGFn ZSwgbHNuKTsKLQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CisJCWlmIChtYXJrX2J1ZmZlcl9k aXJ0eSkKKwkJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOworCQlpZiAoc2V0X2hlYXBfbHNuKQor CQkJUGFnZVNldExTTihwYWdlLCBsc24pOwogCX0KIAogCS8qCi0JICogSWYgd2UgcmVsZWFzZWQg YW55IHNwYWNlIG9yIGxpbmUgcG9pbnRlcnMsIHVwZGF0ZSB0aGUgZnJlZSBzcGFjZSBtYXAuCisJ ICogSWYgd2UgcmVsZWFzZWQgYW55IHNwYWNlIG9yIGxpbmUgcG9pbnRlcnMgb3Igd2lsbCBiZSBz ZXR0aW5nIGEgcGFnZSBpbgorCSAqIHRoZSB2aXNpYmlsaXR5IG1hcCwgbWVhc3VyZSB0aGUgcGFn ZSdzIGZyZWVzcGFjZSB0byBsYXRlciB1cGRhdGUgdGhlCisJICogZnJlZXNwYWNlIG1hcC4KKwkg KgorCSAqIEV2ZW4gaWYgd2UgYXJlIGp1c3QgdXBkYXRpbmcgdGhlIFZNIChhbmQgdGh1cyBub3Qg ZnJlZWluZyB1cCBhbnkKKwkgKiBzcGFjZSksIHdlJ2xsIHN0aWxsIHVwZGF0ZSB0aGUgRlNNIGZv ciB0aGlzIHBhZ2UuIFNpbmNlIEZTTSBpcyBub3QKKwkgKiBXQUwtbG9nZ2VkIGFuZCBvbmx5IHVw ZGF0ZWQgaGV1cmlzdGljYWxseSwgaXQgZWFzaWx5IGJlY29tZXMgc3RhbGUgaW4KKwkgKiBzdGFu ZGJ5cy4gIElmIHRoZSBzdGFuZGJ5IGlzIGxhdGVyIHByb21vdGVkIGFuZCBydW5zIFZBQ1VVTSwg aXQgd2lsbAorCSAqIHNraXAgdXBkYXRpbmcgaW5kaXZpZHVhbCBmcmVlIHNwYWNlIGZpZ3VyZXMg Zm9yIHBhZ2VzIHRoYXQgYmVjYW1lCisJICogYWxsLXZpc2libGUgKG9yIGFsbC1mcm96ZW4sIGRl cGVuZGluZyBvbiB0aGUgdmFjdXVtIG1vZGUsKSB3aGljaCBpcworCSAqIHRyb3VibGVzb21lIHdo ZW4gRnJlZVNwYWNlTWFwVmFjdXVtIHByb3BhZ2F0ZXMgdG9vIG9wdGltaXN0aWMgZnJlZQorCSAq IHNwYWNlIHZhbHVlcyB0byB1cHBlciBGU00gbGF5ZXJzOyBsYXRlciBpbnNlcnRlcnMgdHJ5IHRv IHVzZSBzdWNoIHBhZ2VzCisJICogb25seSB0byBmaW5kIG91dCB0aGF0IHRoZXkgYXJlIHVudXNh YmxlLiAgVGhpcyBjYW4gY2F1c2UgbG9uZyBzdGFsbHMKKwkgKiB3aGVuIHRoZXJlIGFyZSBtYW55 IHN1Y2ggcGFnZXMuCisJICoKKwkgKiBGb3Jlc3RhbGwgdGhvc2UgcHJvYmxlbXMgYnkgdXBkYXRp bmcgRlNNJ3MgaWRlYSBhYm91dCBhIHBhZ2UgdGhhdCBpcworCSAqIGJlY29taW5nIGFsbC12aXNp YmxlIG9yIGFsbC1mcm96ZW4uCiAJICoKIAkgKiBEbyB0aGlzIHJlZ2FyZGxlc3Mgb2YgYSBmdWxs LXBhZ2UgaW1hZ2UgYmVpbmcgYXBwbGllZCwgc2luY2UgdGhlIEZTTQogCSAqIGRhdGEgaXMgbm90 IGluIHRoZSBwYWdlIGFueXdheS4KKwkgKgorCSAqIFdlIHdhbnQgdG8gYXZvaWQgaG9sZGluZyBh biBleGNsdXNpdmUgbG9jayBvbiB0aGUgaGVhcCBidWZmZXIgd2hpbGUKKwkgKiBkb2luZyBJTyAo ZWl0aGVyIG9mIHRoZSBGU00gb3IgdGhlIFZNKSwgc28gd2UnbGwgcmVsZWFzZSB0aGUgbG9jayBv bgorCSAqIHRoZSBoZWFwIGJ1ZmZlciBiZWZvcmUgZG9pbmcgZWl0aGVyLgogCSAqLwogCWlmIChC dWZmZXJJc1ZhbGlkKGJ1ZmZlcikpCiAJewotCQlpZiAoeGxyZWMuZmxhZ3MgJiAoWExIUF9IQVNf UkVESVJFQ1RJT05TIHwKLQkJCQkJCSAgIFhMSFBfSEFTX0RFQURfSVRFTVMgfAotCQkJCQkJICAg WExIUF9IQVNfTk9XX1VOVVNFRF9JVEVNUykpCi0JCXsKLQkJCVNpemUJCWZyZWVzcGFjZSA9IFBh Z2VHZXRIZWFwRnJlZVNwYWNlKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSk7CisJCWlmICgoeGxyZWMu ZmxhZ3MgJiAoWExIUF9IQVNfUkVESVJFQ1RJT05TIHwKKwkJCQkJCQlYTEhQX0hBU19ERUFEX0lU RU1TIHwKKwkJCQkJCQlYTEhQX0hBU19OT1dfVU5VU0VEX0lURU1TKSkgfHwKKwkJCXZtZmxhZ3Mg JiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpCisJCQlmcmVlc3BhY2UgPSBQYWdlR2V0SGVhcEZy ZWVTcGFjZShCdWZmZXJHZXRQYWdlKGJ1ZmZlcikpOworCisJCVVubG9ja1JlbGVhc2VCdWZmZXIo YnVmZmVyKTsKKwl9CisKKwkvKgorCSAqIFJlYWQgYW5kIHVwZGF0ZSB0aGUgVk0gYmxvY2suIEV2 ZW4gaWYgd2Ugc2tpcHBlZCB1cGRhdGluZyB0aGUgaGVhcCBwYWdlCisJICogZHVlIHRvIHRoZSBm aWxlIGJlaW5nIGRyb3BwZWQgb3IgdHJ1bmNhdGVkIGxhdGVyIGluIHJlY292ZXJ5LCBpdCdzCisJ ICogc3RpbGwgc2FmZSB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwLiAgQW55IFdBTCByZWNv cmQgdGhhdCBjbGVhcnMKKwkgKiB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IGRvZXMgc28gYmVmb3Jl IGNoZWNraW5nIHRoZSBwYWdlIExTTiwgc28gYW55CisJICogYml0cyB0aGF0IG5lZWQgdG8gYmUg Y2xlYXJlZCB3aWxsIHN0aWxsIGJlIGNsZWFyZWQuCisJICoKKwkgKiBOb3RlIHRoYXQgaXQgaXMg X29ubHlfIG9rYXkgdGhhdCB3ZSBkbyBub3QgaG9sZCBhIGxvY2sgb24gdGhlIGhlYXAgcGFnZQor CSAqIGJlY2F1c2Ugd2UgYXJlIGluIHJlY292ZXJ5IGFuZCBjYW4gZXhwZWN0IG5vIG90aGVyIHdy aXRlcnMgdG8gY2xlYXIKKwkgKiBQRF9BTExfVklTSUJMRSBiZWZvcmUgd2UgYXJlIGFibGUgdG8g dXBkYXRlIHRoZSBWTS4KKwkgKi8KKwlpZiAodm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURf QklUUyAmJgorCQlYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZChyZWNvcmQsIDEsCisJCQkJ CQkJCQkgIFJCTV9aRVJPX09OX0VSUk9SLAorCQkJCQkJCQkJICBmYWxzZSwKKwkJCQkJCQkJCSAg JnZtYnVmZmVyKSA9PSBCTEtfTkVFRFNfUkVETykKKwl7CisJCVBhZ2UJCXZtcGFnZSA9IEJ1ZmZl ckdldFBhZ2Uodm1idWZmZXIpOworCQl1aW50OAkJb2xkX3ZtYml0cyA9IDA7CisJCVJlbGF0aW9u CXJlbG4gPSBDcmVhdGVGYWtlUmVsY2FjaGVFbnRyeShybG9jYXRvcik7CiAKLQkJCVVubG9ja1Jl bGVhc2VCdWZmZXIoYnVmZmVyKTsKKwkJLyogaW5pdGlhbGl6ZSB0aGUgcGFnZSBpZiBpdCB3YXMg cmVhZCBhcyB6ZXJvcyAqLworCQlpZiAoUGFnZUlzTmV3KHZtcGFnZSkpCisJCQlQYWdlSW5pdCh2 bXBhZ2UsIEJMQ0tTWiwgMCk7CisKKwkJb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfc2V0X3Zt Yml0cyhyZWxuLCBibGtubywgdm1idWZmZXIsIHZtZmxhZ3MpOwogCi0JCQlYTG9nUmVjb3JkUGFn ZVdpdGhGcmVlU3BhY2UocmxvY2F0b3IsIGJsa25vLCBmcmVlc3BhY2UpOworCQkvKiBPbmx5IHNl dCBWTSBwYWdlIExTTiBpZiB3ZSBtb2RpZmllZCB0aGUgcGFnZSAqLworCQlpZiAob2xkX3ZtYml0 cyAhPSB2bWZsYWdzKQorCQl7CisJCQlBc3NlcnQoQnVmZmVySXNEaXJ0eSh2bWJ1ZmZlcikpOwor CQkJUGFnZVNldExTTihCdWZmZXJHZXRQYWdlKHZtYnVmZmVyKSwgbHNuKTsKIAkJfQotCQllbHNl Ci0JCQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7CisKKwkJRnJlZUZha2VSZWxjYWNoZUVu dHJ5KHJlbG4pOwogCX0KKworCWlmIChCdWZmZXJJc1ZhbGlkKHZtYnVmZmVyKSkKKwkJVW5sb2Nr UmVsZWFzZUJ1ZmZlcih2bWJ1ZmZlcik7CisKKwlpZiAoZnJlZXNwYWNlID4gMCkKKwkJWExvZ1Jl Y29yZFBhZ2VXaXRoRnJlZVNwYWNlKHJsb2NhdG9yLCBibGtubywgZnJlZXNwYWNlKTsKIH0KIAog LyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggN2ViZDIyZjAwYTMuLmYwYjMz ZDFiNjk2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMjEsNiArMjEsNyBA QAogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2cuaCIK ICNpbmNsdWRlICJhY2Nlc3MveGxvZ2luc2VydC5oIgorI2luY2x1ZGUgImFjY2Vzcy92aXNpYmls aXR5bWFwZGVmcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3ZhY3V1bS5oIgogI2luY2x1ZGUgImV4 ZWN1dG9yL2luc3RydW1lbnQuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKQEAgLTgzNSw2ICs4 MzYsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVm ZmVyIGJ1ZmZlciwKIAkJCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmxhdGVzdF94aWRfcmVtb3Zl ZDsKIAogCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShyZWxhdGlvbiwgYnVmZmVyLAorCQkJ CQkJCQkJICBJbnZhbGlkQnVmZmVyLCAwLCBmYWxzZSwKIAkJCQkJCQkJCSAgY29uZmxpY3RfeGlk LAogCQkJCQkJCQkJICB0cnVlLCByZWFzb24sCiAJCQkJCQkJCQkgIHByc3RhdGUuZnJvemVuLCBw cnN0YXRlLm5mcm96ZW4sCkBAIC0yMDMwLDE0ICsyMDMyLDE4IEBAIGhlYXBfbG9nX2ZyZWV6ZV9w bGFuKEhlYXBUdXBsZUZyZWV6ZSAqdHVwbGVzLCBpbnQgbnR1cGxlcywKICAqCiAgKiBUaGlzIGlz IHVzZWQgZm9yIHNldmVyYWwgZGlmZmVyZW50IHBhZ2UgbWFpbnRlbmFuY2Ugb3BlcmF0aW9uczoK ICAqCi0gKiAtIFBhZ2UgcHJ1bmluZywgaW4gVkFDVVVNJ3MgMXN0IHBhc3Mgb3Igb24gYWNjZXNz OiBTb21lIGl0ZW1zIGFyZQorICogLSBQYWdlIHBydW5pbmcsIGluIHZhY3V1bSBwaGFzZSBJIG9y IG9uLWFjY2VzczogU29tZSBpdGVtcyBhcmUKICAqICAgcmVkaXJlY3RlZCwgc29tZSBtYXJrZWQg ZGVhZCwgYW5kIHNvbWUgcmVtb3ZlZCBhbHRvZ2V0aGVyLgogICoKLSAqIC0gRnJlZXppbmc6IEl0 ZW1zIGFyZSBtYXJrZWQgYXMgJ2Zyb3plbicuCisgKiAtIEZyZWV6aW5nOiBEdXJpbmcgdmFjdXVt IHBoYXNlIEksIGl0ZW1zIGFyZSBtYXJrZWQgYXMgJ2Zyb3plbicKICAqCi0gKiAtIFZhY3V1bSwg Mm5kIHBhc3M6IEl0ZW1zIHRoYXQgYXJlIGFscmVhZHkgTFBfREVBRCBhcmUgbWFya2VkIGFzIHVu dXNlZC4KKyAqIC0gUmVhcGluZzogRHVyaW5nIHZhY3V1bSBwaGFzZSBJSUksIGl0ZW1zIHRoYXQg YXJlIGFscmVhZHkgTFBfREVBRCBhcmUKKyAqICAgbWFya2VkIGFzIHVudXNlZC4KICAqCi0gKiBU aGV5IGhhdmUgZW5vdWdoIGNvbW1vbmFsaXRpZXMgdGhhdCB3ZSB1c2UgYSBzaW5nbGUgV0FMIHJl Y29yZCBmb3IgdGhlbQorICogLSBWTSB1cGRhdGVzOiBBZnRlciB2YWN1dW0gcGhhc2UgSUlJLCB0 aGUgaGVhcCBwYWdlIG1heSBiZSBtYXJrZWQKKyAqICAgYWxsLXZpc2libGUgYW5kIGFsbC1mcm96 ZW4uCisgKgorICogVGhlc2UgY2hhbmdlcyBhbGwgaGFwcGVuIHRvZ2V0aGVyLCBzbyB3ZSB1c2Ug YSBzaW5nZWwgV0FMIHJlY29yZCBmb3IgdGhlbQogICogYWxsLgogICoKICAqIElmIHJlcGxheWlu ZyB0aGUgcmVjb3JkIHJlcXVpcmVzIGEgY2xlYW51cCBsb2NrLCBwYXNzIGNsZWFudXBfbG9jayA9 IHRydWUuCkBAIC0yMDQ1LDEyICsyMDUxLDIzIEBAIGhlYXBfbG9nX2ZyZWV6ZV9wbGFuKEhlYXBU dXBsZUZyZWV6ZSAqdHVwbGVzLCBpbnQgbnR1cGxlcywKICAqIHJlcGxheWluZyAndW51c2VkJyBp dGVtcyBkZXBlbmRzIG9uIHdoZXRoZXIgdGhleSB3ZXJlIGFsbCBwcmV2aW91c2x5IG1hcmtlZAog ICogYXMgZGVhZC4KICAqCisgKiBJZiB0aGUgVk0gaXMgYmVpbmcgdXBkYXRlZCwgdm1mbGFncyB3 aWxsIGNvbnRhaW4gdGhlIGJpdHMgdG8gc2V0LiBJbiB0aGlzCisgKiBjYXNlLCB2bWJ1ZmZlciBz aG91bGQgYWxyZWFkeSBoYXZlIGJlZW4gdXBkYXRlZCBhbmQgbWFya2VkIGRpcnR5IGFuZCBzaG91 bGQKKyAqIHN0aWxsIGJlIHBpbm5lZCBhbmQgbG9ja2VkLgorICoKKyAqIHNldF9wZF9hbGxfdmlz IGluZGljYXRlcyB0aGF0IHdlIHNldCBQRF9BTExfVklTSUJMRSBhbmQgdGh1cyBzaG91bGQgdXBk YXRlCisgKiB0aGUgcGFnZSBMU04gd2hlbiBjaGVja3N1bXMvd2FsX2xvZ19oaW50cyBhcmUgZW5h YmxlZCBldmVuIGlmIHdlIGRpZCBub3QKKyAqIHBydW5lIG9yIGZyZWV6ZSB0dXBsZXMgb24gdGhl IHBhZ2UuCisgKgogICogTm90ZTogVGhpcyBmdW5jdGlvbiBzY3JpYmJsZXMgb24gdGhlICdmcm96 ZW4nIGFycmF5LgogICoKICAqIE5vdGU6IFRoaXMgaXMgY2FsbGVkIGluIGEgY3JpdGljYWwgc2Vj dGlvbiwgc28gY2FyZWZ1bCB3aGF0IHlvdSBkbyBoZXJlLgogICovCiB2b2lkCiBsb2dfaGVhcF9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJ ICBCdWZmZXIgdm1idWZmZXIsCisJCQkJCQkgIHVpbnQ4IHZtZmxhZ3MsCisJCQkJCQkgIGJvb2wg c2V0X3BkX2FsbF92aXMsCiAJCQkJCQkgIFRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkLAogCQkJ CQkJICBib29sIGNsZWFudXBfbG9jaywKIAkJCQkJCSAgUHJ1bmVSZWFzb24gcmVhc29uLApAQCAt MjA2Miw2ICsyMDc5LDcgQEAgbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxh dGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAl4bF9oZWFwX3BydW5lIHhscmVjOwogCVhMb2dSZWNQdHIJ cmVjcHRyOwogCXVpbnQ4CQlpbmZvOworCXVpbnQ4CQlyZWdidWZfZmxhZ3M7CiAKIAkvKiBUaGUg Zm9sbG93aW5nIGxvY2FsIHZhcmlhYmxlcyBob2xkIGRhdGEgcmVnaXN0ZXJlZCBpbiB0aGUgV0FM IHJlY29yZDogKi8KIAl4bGhwX2ZyZWV6ZV9wbGFuIHBsYW5zW01heEhlYXBUdXBsZXNQZXJQYWdl XTsKQEAgLTIwNzAsOCArMjA4OCwyMSBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0 aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCXhsaHBfcHJ1bmVfaXRlbXMgZGVhZF9pdGVt czsKIAl4bGhwX3BydW5lX2l0ZW1zIHVudXNlZF9pdGVtczsKIAlPZmZzZXROdW1iZXIgZnJ6X29m ZnNldHNbTWF4SGVhcFR1cGxlc1BlclBhZ2VdOworCWJvb2wJCWRvX3BydW5lID0gbnJlZGlyZWN0 ZWQgPiAwIHx8IG5kZWFkID4gMCB8fCBudW51c2VkID4gMDsKKworCUFzc2VydCgodm1mbGFncyAm IFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgPT0gdm1mbGFncyk7CisJeGxyZWMuZmxhZ3MgPSB2 bWZsYWdzOwogCi0JeGxyZWMuZmxhZ3MgPSAwOworCXJlZ2J1Zl9mbGFncyA9IFJFR0JVRl9TVEFO REFSRDsKKworCS8qCisJICogV2UgY2FuIGF2b2lkIGFuIEZQSSBpZiB0aGUgb25seSBtb2RpZmlj YXRpb24gd2UgYXJlIG1ha2luZyB0byB0aGUgaGVhcAorCSAqIHBhZ2UgaXMgdG8gc2V0IFBEX0FM TF9WSVNJQkxFIGFuZCBjaGVja3N1bXMvd2FsX2xvZ19oaW50cyBhcmUgZGlzYWJsZWQuCisJICov CisJaWYgKCFkb19wcnVuZSAmJgorCQluZnJvemVuID09IDAgJiYKKwkJKCFzZXRfcGRfYWxsX3Zp cyB8fCAhWExvZ0hpbnRCaXRJc05lZWRlZCgpKSkKKwkJcmVnYnVmX2ZsYWdzIHw9IFJFR0JVRl9O T19JTUFHRTsKIAogCS8qCiAJICogUHJlcGFyZSBkYXRhIGZvciB0aGUgYnVmZmVyLiAgVGhlIGFy cmF5cyBhcmUgbm90IGFjdHVhbGx5IGluIHRoZQpAQCAtMjA3OSw3ICsyMTEwLDExIEBAIGxvZ19o ZWFwX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJ ICogcGFnZSBpbWFnZSwgdGhlIGFycmF5cyBjYW4gYmUgb21pdHRlZC4KIAkgKi8KIAlYTG9nQmVn aW5JbnNlcnQoKTsKLQlYTG9nUmVnaXN0ZXJCdWZmZXIoMCwgYnVmZmVyLCBSRUdCVUZfU1RBTkRB UkQpOworCVhMb2dSZWdpc3RlckJ1ZmZlcigwLCBidWZmZXIsIHJlZ2J1Zl9mbGFncyk7CisKKwlp ZiAodm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykKKwkJWExvZ1JlZ2lzdGVyQnVm ZmVyKDEsIHZtYnVmZmVyLCAwKTsKKwogCWlmIChuZnJvemVuID4gMCkKIAl7CiAJCWludAkJCW5w bGFuczsKQEAgLTIxNjgsNSArMjIwMywyMiBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJl bGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCX0KIAlyZWNwdHIgPSBYTG9nSW5zZXJ0 KFJNX0hFQVAyX0lELCBpbmZvKTsKIAotCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZShidWZmZXIp LCByZWNwdHIpOworCWlmICh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKQorCXsK KwkJQXNzZXJ0KEJ1ZmZlcklzRGlydHkodm1idWZmZXIpKTsKKwkJUGFnZVNldExTTihCdWZmZXJH ZXRQYWdlKHZtYnVmZmVyKSwgcmVjcHRyKTsKKwl9CisKKwkvKgorCSAqIElmIHBydW5pbmcgb3Ig ZnJlZXppbmcgdHVwbGVzIG9yIHNldHRpbmcgdGhlIHBhZ2UgYWxsLXZpc2libGUgd2hlbgorCSAq IGNoZWNrc3VtcyBvciB3YWxfaGludF9iaXRzIGFyZSBlbmFibGVkLCB3ZSBtdXN0IGJ1bXAgdGhl IExTTi4gVG9ybgorCSAqIHBhZ2VzIGFyZSBwb3NzaWJsZSBpZiB3ZSB1cGRhdGUgUERfQUxMX1ZJ U0lCTEUgd2l0aG91dCBidW1waW5nIHRoZSBMU04sCisJICogYnV0IHRoaXMgaXMgZGVlbWVkIG9r YXkgZm9yIHBhZ2UgaGludCB1cGRhdGVzLgorCSAqLworCWlmIChkb19wcnVuZSB8fCBuZnJvemVu ID4gMCB8fAorCQkoc2V0X3BkX2FsbF92aXMgJiYgWExvZ0hpbnRCaXRJc05lZWRlZCgpKSkKKwl7 CisJCUFzc2VydChCdWZmZXJJc0RpcnR5KGJ1ZmZlcikpOworCQlQYWdlU2V0TFNOKEJ1ZmZlckdl dFBhZ2UoYnVmZmVyKSwgcmVjcHRyKTsKKwl9CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMKaW5kZXggYzAyZWNhMzZjODguLmUzNWNiNjI5MjYxIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jCkBAIC00NjMsMTEgKzQ2MywxMyBAQCBzdGF0aWMgdm9pZCBkZWFkX2l0 ZW1zX2FkZChMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBPZmZzZXROdW1i ZXIgKgogCQkJCQkJICAgaW50IG51bV9vZmZzZXRzKTsKIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNf cmVzZXQoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfY2xlYW51 cChMVlJlbFN0YXRlICp2YWNyZWwpOwotc3RhdGljIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNp YmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKLQkJCQkJCQkJCSBUcmFuc2FjdGlvbklkIE9s ZGVzdFhtaW4sCi0JCQkJCQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKLQkJCQkJCQkJCSBUcmFuc2Fj dGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsCi0JCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICps b2dnaW5nX29mZm51bSk7CitzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2li bGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAorCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQg T2xkZXN0WG1pbiwKKwkJCQkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAorCQkJ CQkJCQkJCSAgIGludCBuZGVhZG9mZnNldHMsCisJCQkJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3pl biwKKwkJCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJ CQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CiBzdGF0aWMgdm9pZCB1 cGRhdGVfcmVsc3RhdHNfYWxsX2luZGV4ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2 b2lkIHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpOwogc3RhdGljIHZvaWQgdXBkYXRl X3ZhY3V1bV9lcnJvcl9pbmZvKExWUmVsU3RhdGUgKnZhY3JlbCwKQEAgLTI4NTAsOCArMjg1Miwx MSBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJl ciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAlPZmZzZXROdW1iZXIgdW51c2VkW01heEhlYXBUdXBs ZXNQZXJQYWdlXTsKIAlpbnQJCQludW51c2VkID0gMDsKIAlUcmFuc2FjdGlvbklkIHZpc2liaWxp dHlfY3V0b2ZmX3hpZDsKKwlUcmFuc2FjdGlvbklkIGNvbmZsaWN0X3hpZCA9IEludmFsaWRUcmFu c2FjdGlvbklkOwogCWJvb2wJCWFsbF9mcm96ZW47CiAJTFZTYXZlZEVyckluZm8gc2F2ZWRfZXJy X2luZm87CisJdWludDgJCXZtZmxhZ3MgPSAwOworCWJvb2wJCXNldF9wZF9hbGxfdmlzID0gZmFs c2U7CiAKIAlBc3NlcnQodmFjcmVsLT5kb19pbmRleF92YWN1dW1pbmcpOwogCkBAIC0yODYyLDYg KzI4NjcsMjAgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxv Y2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJCQkJCQkJIFZBQ1VVTV9FUlJDQl9QSEFT RV9WQUNVVU1fSEVBUCwgYmxrbm8sCiAJCQkJCQkJIEludmFsaWRPZmZzZXROdW1iZXIpOwogCisJ aWYgKGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZSh2YWNyZWwtPnJlbCwgYnVmZmVyLAor CQkJCQkJCQkJICAgdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4sCisJCQkJCQkJCQkgICBkZWFk b2Zmc2V0cywgbnVtX29mZnNldHMsCisJCQkJCQkJCQkgICAmYWxsX2Zyb3plbiwgJnZpc2liaWxp dHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCSAgICZ2YWNyZWwtPm9mZm51bSkpCisJeworCQl2bWZs YWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CisJCWlmIChhbGxfZnJvemVuKQorCQl7 CisJCQl2bWZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKKwkJCUFzc2VydCghVHJh bnNhY3Rpb25JZElzVmFsaWQodmlzaWJpbGl0eV9jdXRvZmZfeGlkKSk7CisJCX0KKwl9CisKIAlT VEFSVF9DUklUX1NFQ1RJT04oKTsKIAogCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX29mZnNldHM7 IGkrKykKQEAgLTI4ODEsNiArMjkwMCwxOCBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxT dGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAkvKiBBdHRl bXB0IHRvIHRydW5jYXRlIGxpbmUgcG9pbnRlciBhcnJheSBub3cgKi8KIAlQYWdlVHJ1bmNhdGVM aW5lUG9pbnRlckFycmF5KHBhZ2UpOwogCisJaWYgKCh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9W QUxJRF9CSVRTKSAhPSAwKQorCXsKKwkJQXNzZXJ0KCFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKTsK KwkJc2V0X3BkX2FsbF92aXMgPSB0cnVlOworCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKKwkJ TG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfRVhDTFVTSVZFKTsKKwkJdmlzaWJpbGl0 eW1hcF9zZXRfdm1iaXRzKHZhY3JlbC0+cmVsLAorCQkJCQkJCQkgYmxrbm8sCisJCQkJCQkJCSB2 bWJ1ZmZlciwgdm1mbGFncyk7CisJCWNvbmZsaWN0X3hpZCA9IHZpc2liaWxpdHlfY3V0b2ZmX3hp ZDsKKwl9CisKIAkvKgogCSAqIE1hcmsgYnVmZmVyIGRpcnR5IGJlZm9yZSB3ZSB3cml0ZSBXQUwu CiAJICovCkBAIC0yODkwLDcgKzI5MjEsMTAgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVs U3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJaWYgKFJl bGF0aW9uTmVlZHNXQUwodmFjcmVsLT5yZWwpKQogCXsKIAkJbG9nX2hlYXBfcHJ1bmVfYW5kX2Zy ZWV6ZSh2YWNyZWwtPnJlbCwgYnVmZmVyLAotCQkJCQkJCQkgIEludmFsaWRUcmFuc2FjdGlvbklk LAorCQkJCQkJCQkgIHZtYnVmZmVyLAorCQkJCQkJCQkgIHZtZmxhZ3MsCisJCQkJCQkJCSAgc2V0 X3BkX2FsbF92aXMsCisJCQkJCQkJCSAgY29uZmxpY3RfeGlkLAogCQkJCQkJCQkgIGZhbHNlLAkv KiBubyBjbGVhbnVwIGxvY2sgcmVxdWlyZWQgKi8KIAkJCQkJCQkJICBQUlVORV9WQUNVVU1fQ0xF QU5VUCwKIAkJCQkJCQkJICBOVUxMLCAwLAkvKiBmcm96ZW4gKi8KQEAgLTI4OTksMzkgKzI5MzMs MTIgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1i ZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJCQkJCQkJCSAgdW51c2VkLCBudW51c2VkKTsKIAl9 CiAKLQkvKgotCSAqIEVuZCBjcml0aWNhbCBzZWN0aW9uLCBzbyB3ZSBzYWZlbHkgY2FuIGRvIHZp c2liaWxpdHkgdGVzdHMgKHdoaWNoCi0JICogcG9zc2libHkgbmVlZCB0byBwZXJmb3JtIElPIGFu ZCBhbGxvY2F0ZSBtZW1vcnkhKS4gSWYgd2UgY3Jhc2ggbm93IHRoZQotCSAqIHBhZ2UgKGluY2x1 ZGluZyB0aGUgY29ycmVzcG9uZGluZyB2bSBiaXQpIG1pZ2h0IG5vdCBiZSBtYXJrZWQgYWxsCi0J ICogdmlzaWJsZSwgYnV0IHRoYXQncyBmaW5lLiBBIGxhdGVyIHZhY3V1bSB3aWxsIGZpeCB0aGF0 LgotCSAqLwogCUVORF9DUklUX1NFQ1RJT04oKTsKIAotCS8qCi0JICogTm93IHRoYXQgd2UgaGF2 ZSByZW1vdmVkIHRoZSBMUF9ERUFEIGl0ZW1zIGZyb20gdGhlIHBhZ2UsIG9uY2UgYWdhaW4KLQkg KiBjaGVjayBpZiB0aGUgcGFnZSBoYXMgYmVjb21lIGFsbC12aXNpYmxlLiAgVGhlIHBhZ2UgaXMg YWxyZWFkeSBtYXJrZWQKLQkgKiBkaXJ0eSwgZXhjbHVzaXZlbHkgbG9ja2VkLCBhbmQsIGlmIG5l ZWRlZCwgYSBmdWxsIHBhZ2UgaW1hZ2UgaGFzIGJlZW4KLQkgKiBlbWl0dGVkLgotCSAqLwotCUFz c2VydCghUGFnZUlzQWxsVmlzaWJsZShwYWdlKSk7Ci0JaWYgKGhlYXBfcGFnZV9pc19hbGxfdmlz aWJsZSh2YWNyZWwtPnJlbCwgYnVmZmVyLCB2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbiwKLQkJ CQkJCQkJICZhbGxfZnJvemVuLCAmdmlzaWJpbGl0eV9jdXRvZmZfeGlkLCAmdmFjcmVsLT5vZmZu dW0pKQorCWlmICgodm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpICE9IDApCiAJ ewotCQl1aW50OAkJZmxhZ3MgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwotCi0JCWlmIChh bGxfZnJvemVuKQotCQl7Ci0JCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHZpc2liaWxp dHlfY3V0b2ZmX3hpZCkpOwotCQkJZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOwot CQl9Ci0KLQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7Ci0JCXZpc2liaWxpdHltYXBfc2V0KHZh Y3JlbC0+cmVsLCBibGtubywgYnVmZmVyLAotCQkJCQkJICBJbnZhbGlkWExvZ1JlY1B0ciwKLQkJ CQkJCSAgdm1idWZmZXIsIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKLQkJCQkJCSAgZmxhZ3MpOwot CiAJCS8qIENvdW50IHRoZSBuZXdseSBzZXQgVk0gcGFnZSBmb3IgbG9nZ2luZyAqLworCQlMb2Nr QnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOwogCQl2YWNyZWwtPnZtX25ld192 aXNpYmxlX3BhZ2VzKys7CiAJCWlmIChhbGxfZnJvemVuKQogCQkJdmFjcmVsLT52bV9uZXdfdmlz aWJsZV9mcm96ZW5fcGFnZXMrKzsKQEAgLTM1OTgsNDAgKzM2MDUsODUgQEAgZGVhZF9pdGVtc19j bGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCkKIH0KIAogLyoKLSAqIENoZWNrIGlmIGV2ZXJ5IHR1 cGxlIGluIHRoZSBnaXZlbiBwYWdlIGluIGJ1ZiBpcyB2aXNpYmxlIHRvIGFsbCBjdXJyZW50IGFu ZAotICogZnV0dXJlIHRyYW5zYWN0aW9ucy4KKyAqIFdyYXBwZXIgZm9yIGhlYXBfcGFnZV93b3Vs ZF9iZV9hbGxfdmlzaWJsZSgpIHdoaWNoIGNhbiBiZSB1c2VkIGZvcgorICogY2FsbGVycyB0aGF0 IGV4cGVjdCBubyBMUF9ERUFEIG9uIHRoZSBwYWdlLgorICovCitib29sCitoZWFwX3BhZ2VfaXNf YWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAorCQkJCQkJIFRyYW5zYWN0aW9u SWQgT2xkZXN0WG1pbiwKKwkJCQkJCSBib29sICphbGxfZnJvemVuLAorCQkJCQkJIFRyYW5zYWN0 aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dp bmdfb2ZmbnVtKQoreworCisJcmV0dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShy ZWwsIGJ1ZiwgT2xkZXN0WG1pbiwKKwkJCQkJCQkJCQkgIE5VTEwsIDAsCisJCQkJCQkJCQkJICBh bGxfZnJvemVuLAorCQkJCQkJCQkJCSAgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJCQkJCQkJ CSAgbG9nZ2luZ19vZmZudW0pOworfQorCisvKgorICogRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5v dCB0aGUgaGVhcCBwYWdlIGluIGJ1ZiBpcyBhbGwtdmlzaWJsZSBvdGhlciB0aGFuCisgKiB0aGUg ZGVhZCBsaW5lIHBvaW50ZXJzIHJlZmVycmVkIHRvIGJ5IHRoZSBwcm92aWRlZCBkZWFkb2Zmc2V0 cyBhcnJheS4KICAqCi0gKiBPbGRlc3RYbWluIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHZpc2liaWxp dHkuCisgKiBkZWFkb2Zmc2V0cyBhcmUgdGhlIG9mZnNldHMgdGhlIGNhbGxlciBrbm93cyBhYm91 dCBhbmQgYWxyZWFkeSByZW1vdmVkCisgKiBhc3NvY2lhdGVkIGluZGV4IGVudHJpZXMuIFZhY3V1 bSB3aWxsIGNhbGwgdGhpcyBiZWZvcmUgc2V0dGluZyB0aG9zZSBsaW5lCisgKiBwb2ludGVycyBM UF9VTlVTRUQuIFNvLCBpZiB0aGVyZSBhcmUgbm8gbmV3IExQX0RFQUQgaXRlbXMsIHRoZW4gdGhl IHBhZ2UKKyAqIGNhbiBiZSBzZXQgYWxsLXZpc2libGUgaW4gdGhlIFZNIGJ5IHRoZSBjYWxsZXIu CisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBwYWdlIGlzIGFsbC12aXNpYmxlIG90aGVyIHRo YW4gdGhlIHByb3ZpZGVkCisgKiBkZWFkb2Zmc2V0cyBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgogICoK LSAqIFNldHMgKmFsbF9mcm96ZW4gdG8gdHJ1ZSBpZiBldmVyeSB0dXBsZSBvbiB0aGlzIHBhZ2Ug aXMgZnJvemVuLgorICogT2xkZXN0WG1pbiBpcyB1c2VkIHRvIGRldGVybWluZSB2aXNpYmlsaXR5 LgogICoKLSAqIFNldHMgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCB0byB0aGUgaGlnaGVzdCB4bWlu IGFtb25nc3QgdGhlIHZpc2libGUgdHVwbGVzLgotICogSXQgaXMgb25seSB2YWxpZCBpZiB0aGUg cGFnZSBpcyBhbGwtdmlzaWJsZS4KKyAqICphbGxfZnJvemVuIGlzIGFuIG91dHB1dCBwYXJhbWV0 ZXIgaW5kaWNhdGluZyB0byB0aGUgY2FsbGVyIGlmIGV2ZXJ5IHR1cGxlCisgKiBvbiB0aGUgcGFn ZSBpcyBmcm96ZW4uCiAgKgogICogKmxvZ2dpbmdfb2ZmbnVtIHdpbGwgaGF2ZSB0aGUgT2Zmc2V0 TnVtYmVyIG9mIHRoZSBjdXJyZW50IHR1cGxlIGJlaW5nCiAgKiBwcm9jZXNzZWQgZm9yIHZhY3V1 bSdzIGVycm9yIGNhbGxiYWNrIHN5c3RlbS4KICAqCi0gKiBUaGlzIGlzIGEgc3RyaXBwZWQgZG93 biB2ZXJzaW9uIG9mIGxhenlfc2Nhbl9wcnVuZSgpLiAgSWYgeW91IGNoYW5nZQotICogYW55dGhp bmcgaGVyZSwgbWFrZSBzdXJlIHRoYXQgZXZlcnl0aGluZyBzdGF5cyBpbiBzeW5jLiAgTm90ZSB0 aGF0IGFuCi0gKiBhc3NlcnRpb24gY2FsbHMgdXMgdG8gdmVyaWZ5IHRoYXQgZXZlcnlib2R5IHN0 aWxsIGFncmVlcy4gIEJlIHN1cmUgdG8gYXZvaWQKLSAqIGludHJvZHVjaW5nIG5ldyBzaWRlLWVm ZmVjdHMgaGVyZS4KKyAqICp2aXNpYmlsaXR5X2N1dG9mZl94aWQgaXMgYW4gb3V0cHV0IHBhcmFt ZXRlciB3aXRoIHRoZSBoaWdoZXN0IHhtaW4gYW1vbmdzdCB0aGUKKyAqIHZpc2libGUgdHVwbGVz LiBJdCBpcyBvbmx5IHZhbGlkIGlmIHRoZSBwYWdlIGlzIGFsbC12aXNpYmxlLgorICoKKyAqIENh bGxlcnMgbG9va2luZyB0byB2ZXJpZnkgdGhhdCB0aGUgcGFnZSBpcyBhbHJlYWR5IGFsbC12aXNp YmxlIGNhbiBjYWxsCisgKiBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKS4KKyAqCisgKiBUaGlz IGlzIHNpbWlsYXIgbG9naWMgdG8gdGhhdCBpbiBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRf bHBfbm9ybWFsKCkgSWYKKyAqIHlvdSBjaGFuZ2UgYW55dGhpbmcgaGVyZSwgbWFrZSBzdXJlIHRo YXQgZXZlcnl0aGluZyBzdGF5cyBpbiBzeW5jLiAgTm90ZQorICogdGhhdCBhbiBhc3NlcnRpb24g Y2FsbHMgdXMgdG8gdmVyaWZ5IHRoYXQgZXZlcnlib2R5IHN0aWxsIGFncmVlcy4gIEJlIHN1cmUK KyAqIHRvIGF2b2lkIGludHJvZHVjaW5nIG5ldyBzaWRlLWVmZmVjdHMgaGVyZS4KICAqLwogc3Rh dGljIGJvb2wKLWhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBi dWYsCi0JCQkJCQkgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAotCQkJCQkJIGJvb2wgKmFsbF9m cm96ZW4sCi0JCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAotCQkJ CQkJIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pCitoZWFwX3BhZ2Vfd291bGRfYmVfYWxs X3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAorCQkJCQkJCSAgIFRyYW5zYWN0aW9u SWQgT2xkZXN0WG1pbiwKKwkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAorCQkJ CQkJCSAgIGludCBuZGVhZG9mZnNldHMsCisJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKKwkJ CQkJCQkgICBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJICAg T2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkKIHsKIAlQYWdlCQlwYWdlID0gQnVmZmVyR2V0 UGFnZShidWYpOwogCUJsb2NrTnVtYmVyIGJsb2Nrbm8gPSBCdWZmZXJHZXRCbG9ja051bWJlcihi dWYpOwogCU9mZnNldE51bWJlciBvZmZudW0sCiAJCQkJbWF4b2ZmOwogCWJvb2wJCWFsbF92aXNp YmxlID0gdHJ1ZTsKKwlpbnQJCQltYXRjaGVkX2RlYWRfY291bnQgPSAwOwogCiAJKnZpc2liaWxp dHlfY3V0b2ZmX3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCSphbGxfZnJvemVuID0gdHJ1 ZTsKIAorCUFzc2VydChuZGVhZG9mZnNldHMgPT0gMCB8fCBkZWFkb2Zmc2V0cyk7CisKKyNpZmRl ZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisJLyogQ29uZmlybSBpbnB1dCBkZWFkb2Zmc2V0c1tdIGlz IHN0cmljdGx5IHNvcnRlZCAqLworCWlmIChuZGVhZG9mZnNldHMgPiAxKQorCXsKKwkJZm9yIChp bnQgaSA9IDE7IGkgPCBuZGVhZG9mZnNldHM7IGkrKykKKwkJCUFzc2VydChkZWFkb2Zmc2V0c1tp IC0gMV0gPCBkZWFkb2Zmc2V0c1tpXSk7CisJfQorI2VuZGlmCisKIAltYXhvZmYgPSBQYWdlR2V0 TWF4T2Zmc2V0TnVtYmVyKHBhZ2UpOwogCWZvciAob2ZmbnVtID0gRmlyc3RPZmZzZXROdW1iZXI7 CiAJCSBvZmZudW0gPD0gbWF4b2ZmICYmIGFsbF92aXNpYmxlOwpAQCAtMzY1OSw5ICszNzExLDE1 IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJ CSAqLwogCQlpZiAoSXRlbUlkSXNEZWFkKGl0ZW1pZCkpCiAJCXsKLQkJCWFsbF92aXNpYmxlID0g ZmFsc2U7Ci0JCQkqYWxsX2Zyb3plbiA9IGZhbHNlOwotCQkJYnJlYWs7CisJCQlpZiAoIWRlYWRv ZmZzZXRzIHx8CisJCQkJbWF0Y2hlZF9kZWFkX2NvdW50ID49IG5kZWFkb2Zmc2V0cyB8fAorCQkJ CWRlYWRvZmZzZXRzW21hdGNoZWRfZGVhZF9jb3VudF0gIT0gb2ZmbnVtKQorCQkJeworCQkJCSph bGxfZnJvemVuID0gYWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCW1h dGNoZWRfZGVhZF9jb3VudCsrOworCQkJY29udGludWU7CiAJCX0KIAogCQlBc3NlcnQoSXRlbUlk SXNOb3JtYWwoaXRlbWlkKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRl c2MvaGVhcGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCmlu ZGV4IGI0OGQ3ZGMxZDI0Li5jOTVkMzBkZmU4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNj L2hlYXBkZXNjLmMKQEAgLTEwMyw3ICsxMDMsNyBAQCBwbGFuX2VsZW1fZGVzYyhTdHJpbmdJbmZv IGJ1Ziwgdm9pZCAqcGxhbiwgdm9pZCAqZGF0YSkKICAqIGNvZGUsIHRoZSBsYXR0ZXIgb2Ygd2hp Y2ggaXMgdXNlZCBpbiBmcm9udGVuZCAocGdfd2FsZHVtcCkgY29kZS4KICAqLwogdm9pZAotaGVh cF94bG9nX2Rlc2VyaWFsaXplX3BydW5lX2FuZF9mcmVlemUoY2hhciAqY3Vyc29yLCB1aW50OCBm bGFncywKK2hlYXBfeGxvZ19kZXNlcmlhbGl6ZV9wcnVuZV9hbmRfZnJlZXplKGNoYXIgKmN1cnNv ciwgdWludDE2IGZsYWdzLAogCQkJCQkJCQkJICAgaW50ICpucGxhbnMsIHhsaHBfZnJlZXplX3Bs YW4gKipwbGFucywKIAkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqKmZyel9vZmZzZXRzLAogCQkJ CQkJCQkJICAgaW50ICpucmVkaXJlY3RlZCwgT2Zmc2V0TnVtYmVyICoqcmVkaXJlY3RlZCwKQEAg LTI3OSw3ICsyNzksNiBAQCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3Rh dGUgKnJlY29yZCkKIAkJCVRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkOwogCiAJCQltZW1jcHko JmNvbmZsaWN0X3hpZCwgcmVjICsgU2l6ZU9mSGVhcFBydW5lLCBzaXplb2YoVHJhbnNhY3Rpb25J ZCkpOwotCiAJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInNuYXBzaG90Q29uZmxpY3RIb3Jpem9u OiAldSIsCiAJCQkJCQkJIGNvbmZsaWN0X3hpZCk7CiAJCX0KQEAgLTI4Nyw2ICsyODYsMTAgQEAg aGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCWFw cGVuZFN0cmluZ0luZm8oYnVmLCAiLCBpc0NhdGFsb2dSZWw6ICVjIiwKIAkJCQkJCSB4bHJlYy0+ ZmxhZ3MgJiBYTEhQX0lTX0NBVEFMT0dfUkVMID8gJ1QnIDogJ0YnKTsKIAorCQlpZiAoeGxyZWMt PmZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKQorCQkJYXBwZW5kU3RyaW5nSW5mbyhi dWYsICIsIHZtX2ZsYWdzOiAweCUwMlgiLAorCQkJCQkJCSB4bHJlYy0+ZmxhZ3MgJiBWSVNJQklM SVRZTUFQX1ZBTElEX0JJVFMpOworCiAJCWlmIChYTG9nUmVjSGFzQmxvY2tEYXRhKHJlY29yZCwg MCkpCiAJCXsKIAkJCVNpemUJCWRhdGFsZW47CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5kZXggYTJiZDVhODk3 ZjguLjhiNDcyOTVlZmEyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC0zNDQsNiArMzQ0LDEyIEBAIGV4 dGVybiB2b2lkIGhlYXBfaW5wbGFjZV91cGRhdGVfYW5kX3VubG9jayhSZWxhdGlvbiByZWxhdGlv biwKIAkJCQkJCQkJCQkgICBCdWZmZXIgYnVmZmVyKTsKIGV4dGVybiB2b2lkIGhlYXBfaW5wbGFj ZV91bmxvY2soUmVsYXRpb24gcmVsYXRpb24sCiAJCQkJCQkJCUhlYXBUdXBsZSBvbGR0dXAsIEJ1 ZmZlciBidWZmZXIpOworCitleHRlcm4gYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVs YXRpb24gcmVsLCBCdWZmZXIgYnVmLAorCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1p biwKKwkJCQkJCQkJCSBib29sICphbGxfZnJvemVuLAorCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQg KnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdf b2ZmbnVtKTsKIGV4dGVybiBib29sIGhlYXBfcHJlcGFyZV9mcmVlemVfdHVwbGUoSGVhcFR1cGxl SGVhZGVyIHR1cGxlLAogCQkJCQkJCQkJICBjb25zdCBzdHJ1Y3QgVmFjdXVtQ3V0b2ZmcyAqY3V0 b2ZmcywKIAkJCQkJCQkJCSAgSGVhcFBhZ2VGcmVlemUgKnBhZ2VmcnosCkBAIC0zODgsNiArMzk0 LDkgQEAgZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX2V4ZWN1dGUoQnVmZmVyIGJ1ZmZlciwg Ym9vbCBscF90cnVuY2F0ZV9vbmx5LAogCQkJCQkJCQkJT2Zmc2V0TnVtYmVyICpub3d1bnVzZWQs IGludCBudW51c2VkKTsKIGV4dGVybiB2b2lkIGhlYXBfZ2V0X3Jvb3RfdHVwbGVzKFBhZ2UgcGFn ZSwgT2Zmc2V0TnVtYmVyICpyb290X29mZnNldHMpOwogZXh0ZXJuIHZvaWQgbG9nX2hlYXBfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKKwkJCQkJCQkJ CSAgQnVmZmVyIHZtYnVmZmVyLAorCQkJCQkJCQkJICB1aW50OCB2bWZsYWdzLAorCQkJCQkJCQkJ ICBib29sIHZtX21vZGlmaWVkX2hlYXBfcGFnZSwKIAkJCQkJCQkJCSAgVHJhbnNhY3Rpb25JZCBj b25mbGljdF94aWQsCiAJCQkJCQkJCQkgIGJvb2wgY2xlYW51cF9sb2NrLAogCQkJCQkJCQkJICBQ cnVuZVJlYXNvbiByZWFzb24sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFt X3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCmluZGV4IGQ0YzA2MjVi NjMyLi5kODUwODU5M2U3YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94 bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKQEAgLTI0OSw3ICsy NDksNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3VwZGF0ZQogICogTWFpbiBkYXRhIHNlY3Rp b246CiAgKgogICoJeGxfaGVhcF9wcnVuZQotICoJCXVpbnQ4CQkJCWZsYWdzCisgKgkJdWludDE2 CQkJCWZsYWdzCiAgKglUcmFuc2FjdGlvbklkCQkJc25hcHNob3RfY29uZmxpY3RfaG9yaXpvbgog ICoKICAqIEJsb2NrIDAgZGF0YSBzZWN0aW9uOgpAQCAtMjg0LDcgKzI4NCw3IEBAIHR5cGVkZWYg c3RydWN0IHhsX2hlYXBfdXBkYXRlCiAgKi8KIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfcHJ1bmUK IHsKLQl1aW50OAkJZmxhZ3M7CisJdWludDE2CQlmbGFnczsKIAogCS8qCiAJICogSWYgWExIUF9I QVNfQ09ORkxJQ1RfSE9SSVpPTiBpcyBzZXQsIHRoZSBjb25mbGljdCBob3Jpem9uIFhJRCBmb2xs b3dzLApAQCAtMjkyLDEwICsyOTIsMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9wcnVuZQog CSAqLwogfSB4bF9oZWFwX3BydW5lOwogCi0jZGVmaW5lIFNpemVPZkhlYXBQcnVuZSAob2Zmc2V0 b2YoeGxfaGVhcF9wcnVuZSwgZmxhZ3MpICsgc2l6ZW9mKHVpbnQ4KSkKKyNkZWZpbmUgU2l6ZU9m SGVhcFBydW5lIChvZmZzZXRvZih4bF9oZWFwX3BydW5lLCBmbGFncykgKyBzaXplb2YodWludDE2 KSkKKworLyoKKyAqIFRoZSB4bF9oZWFwX3BydW5lIHJlY29yZCdzIGZsYWdzIG1heSBhbHNvIGNv bnRhaW4gd2hpY2ggVk0gYml0cyB0byBzZXQuIEFzCisgKiBzdWNoLCAoMSA8PCAwKSBhbmQgKDEg PDwgMSkgYXJlIHJlc2VydmVkIGZvciBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIGFuZAorICog VklTSUJJTElUWU1BUF9BTExfRlJPWkVOLgorICovCiAKLS8qIHRvIGhhbmRsZSByZWNvdmVyeSBj b25mbGljdCBkdXJpbmcgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5ICovCi0jZGVmaW5lCQlY TEhQX0lTX0NBVEFMT0dfUkVMCQkJKDEgPDwgMSkKKy8qCisgKiBUbyBoYW5kbGUgcmVjb3Zlcnkg Y29uZmxpY3QgZHVyaW5nIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieSwgd2UgbXVzdCBrbm93 CisgKiBpZiB0aGUgdGFibGUgaXMgYSBjYXRhbG9nIHRhYmxlLiBOb3RlIHRoYXQgaW4gdmlzaWJp bGl0eW1hcGRlZnMuaAorICogVklTSUJMSVRZTUFQX1hMT0dfQ0FUQUxPR19SRUwgaXMgYWxzbyBk ZWZpbmVkIGFzICgxIDw8IDIpLiB4bF9oZWFwX3BydW5lCisgKiByZWNvcmRzIHNob3VsZCB1c2Ug WExIUF9JU19DQVRBTE9HX1JFTCwgbm90IFZJU0lCSUxJWVRNQVBfWExPR19DQVRBTE9HX1JFTCAt LQorICogZXZlbiBpZiB0aGV5IG9ubHkgY29udGFpbiB1cGRhdGVzIHRvIHRoZSBWTS4KKyAqLwor I2RlZmluZQkJWExIUF9JU19DQVRBTE9HX1JFTAkJCSgxIDw8IDIpCiAKIC8qCiAgKiBEb2VzIHJl cGxheWluZyB0aGUgcmVjb3JkIHJlcXVpcmUgYSBjbGVhbnVwLWxvY2s/CkBAIC0zMDUsNyArMzE3 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9wcnVuZQogICogbWFya3MgTFBfREVBRCBsaW5l IHBvaW50ZXJzIGFzIHVudXNlZCB3aXRob3V0IG1vdmluZyBhbnkgdHVwbGUgZGF0YSwgYW4KICAq IG9yZGluYXJ5IGV4Y2x1c2l2ZSBsb2NrIGlzIHN1ZmZpY2llbnQuCiAgKi8KLSNkZWZpbmUJCVhM SFBfQ0xFQU5VUF9MT0NLCSAgICAgICAoMSA8PCAyKQorI2RlZmluZQkJWExIUF9DTEVBTlVQX0xP Q0sJICAgICAgICgxIDw8IDMpCiAKIC8qCiAgKiBJZiB3ZSByZW1vdmUgb3IgZnJlZXplIGFueSBl bnRyaWVzIHRoYXQgY29udGFpbiB4aWRzLCB3ZSBuZWVkIHRvIGluY2x1ZGUgYQpAQCAtMzEzLDIy ICszMjUsMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9wcnVuZQogICogdGhlcmUgYXJlIG5v IHF1ZXJpZXMgcnVubmluZyBmb3Igd2hpY2ggdGhlIHJlbW92ZWQgdHVwbGVzIGFyZSBzdGlsbAog ICogdmlzaWJsZSwgb3Igd2hpY2ggc3RpbGwgY29uc2lkZXIgdGhlIGZyb3plbiBYSURzIGFzIHJ1 bm5pbmcuCiAgKi8KLSNkZWZpbmUJCVhMSFBfSEFTX0NPTkZMSUNUX0hPUklaT04gICAoMSA8PCAz KQorI2RlZmluZQkJWExIUF9IQVNfQ09ORkxJQ1RfSE9SSVpPTiAgICgxIDw8IDQpCiAKIC8qCiAg KiBJbmRpY2F0ZXMgdGhhdCBhbiB4bGhwX2ZyZWV6ZV9wbGFucyBzdWItcmVjb3JkIGFuZCBvbmUg b3IgbW9yZQogICogeGxocF9mcmVlemVfcGxhbiBzdWItcmVjb3JkcyBhcmUgcHJlc2VudC4KICAq LwotI2RlZmluZQkJWExIUF9IQVNfRlJFRVpFX1BMQU5TCQkoMSA8PCA0KQorI2RlZmluZQkJWExI UF9IQVNfRlJFRVpFX1BMQU5TCQkoMSA8PCA1KQogCiAvKgogICogWExIUF9IQVNfUkVESVJFQ1RJ T05TLCBYTEhQX0hBU19ERUFEX0lURU1TLCBhbmQgWExIUF9IQVNfTk9XX1VOVVNFRF9JVEVNUwog ICogaW5kaWNhdGUgdGhhdCB4bGhwX3BydW5lX2l0ZW1zIHN1Yi1yZWNvcmRzIHdpdGggcmVkaXJl Y3RlZCwgZGVhZCwgYW5kCiAgKiB1bnVzZWQgaXRlbSBvZmZzZXRzIGFyZSBwcmVzZW50LgogICov Ci0jZGVmaW5lCQlYTEhQX0hBU19SRURJUkVDVElPTlMJCSgxIDw8IDUpCi0jZGVmaW5lCQlYTEhQ X0hBU19ERUFEX0lURU1TCSAgICAgICAgKDEgPDwgNikKLSNkZWZpbmUJCVhMSFBfSEFTX05PV19V TlVTRURfSVRFTVMgICAoMSA8PCA3KQorI2RlZmluZQkJWExIUF9IQVNfUkVESVJFQ1RJT05TCQko MSA8PCA2KQorI2RlZmluZQkJWExIUF9IQVNfREVBRF9JVEVNUwkgICAgICAgICgxIDw8IDcpCisj ZGVmaW5lCQlYTEhQX0hBU19OT1dfVU5VU0VEX0lURU1TICAgKDEgPDwgOCkKIAogLyoKICAqIHhs aHBfZnJlZXplX3BsYW4gZGVzY3JpYmVzIGhvdyB0byBmcmVlemUgYSBncm91cCBvZiBvbmUgb3Ig bW9yZSBoZWFwIHR1cGxlcwpAQCAtNDk3LDcgKzUwOSw3IEBAIGV4dGVybiBYTG9nUmVjUHRyIGxv Z19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsCiAJCQkJCQkJ CSAgIHVpbnQ4IHZtZmxhZ3MpOwogCiAvKiBpbiBoZWFwZGVzYy5jLCBzbyBpdCBjYW4gYmUgc2hh cmVkIGJldHdlZW4gZnJvbnRlbmQvYmFja2VuZCBjb2RlICovCi1leHRlcm4gdm9pZCBoZWFwX3hs b2dfZGVzZXJpYWxpemVfcHJ1bmVfYW5kX2ZyZWV6ZShjaGFyICpjdXJzb3IsIHVpbnQ4IGZsYWdz LAorZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2Rlc2VyaWFsaXplX3BydW5lX2FuZF9mcmVlemUoY2hh ciAqY3Vyc29yLCB1aW50MTYgZmxhZ3MsCiAJCQkJCQkJCQkJCQkgICBpbnQgKm5wbGFucywgeGxo cF9mcmVlemVfcGxhbiAqKnBsYW5zLAogCQkJCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICoqZnJ6 X29mZnNldHMsCiAJCQkJCQkJCQkJCQkgICBpbnQgKm5yZWRpcmVjdGVkLCBPZmZzZXROdW1iZXIg KipyZWRpcmVjdGVkLAotLSAKMi40My4wCgo= --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0006-Use-xl_heap_prune-record-for-setting-empty-pages.patch" Content-Disposition: attachment; filename="v10-0006-Use-xl_heap_prune-record-for-setting-empty-pages.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8fx5 RnJvbSBjNTNjNjJiMTg0MTRiYjZkZTI1YmVmNGM0ZTQyODkwNDgyOGRmYTVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDEyOjQyOjE5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMDYvMjJdIFVzZSB4bF9oZWFwX3BydW5lIHJlY29yZCBmb3Igc2V0dGluZyBlbXB0 eSBwYWdlcwogYWxsLXZpc2libGUKCkFzIHBhcnQgb2YgYSBwcm9qZWN0IHRvIGVsaW1pbmF0ZSB4 bF9oZWFwX3Zpc2libGUgcmVjb3JkcywgZWxpbWluYXRlCnRoZWlyIHVzYWdlIGluIHBoYXNlIEkg dmFjdXVtIG9mIGVtcHR5IHBhZ2VzLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5l aGVhcC5jICB8IDE0ICsrKysrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YyB8IDU1ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9o ZWFwYW0uaCAgICAgICAgICB8ICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygr KSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCBm MGIzM2QxYjY5Ni4uMzczOTg2YjIwNGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5j CkBAIC04MzYsNiArODM2LDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24g cmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQkJY29uZmxpY3RfeGlkID0gcHJzdGF0ZS5sYXRl c3RfeGlkX3JlbW92ZWQ7CiAKIAkJCWxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUocmVsYXRpb24s IGJ1ZmZlciwKKwkJCQkJCQkJCSAgZmFsc2UsCiAJCQkJCQkJCQkgIEludmFsaWRCdWZmZXIsIDAs IGZhbHNlLAogCQkJCQkJCQkJICBjb25mbGljdF94aWQsCiAJCQkJCQkJCQkgIHRydWUsIHJlYXNv biwKQEAgLTIwNTUsNiArMjA1Niw5IEBAIGhlYXBfbG9nX2ZyZWV6ZV9wbGFuKEhlYXBUdXBsZUZy ZWV6ZSAqdHVwbGVzLCBpbnQgbnR1cGxlcywKICAqIGNhc2UsIHZtYnVmZmVyIHNob3VsZCBhbHJl YWR5IGhhdmUgYmVlbiB1cGRhdGVkIGFuZCBtYXJrZWQgZGlydHkgYW5kIHNob3VsZAogICogc3Rp bGwgYmUgcGlubmVkIGFuZCBsb2NrZWQuCiAgKgorICogZm9yY2VfaGVhcF9mcGkgaW5kaWNhdGVz IHRoYXQgYSBmdWxsIHBhZ2UgaW1hZ2Ugb2YgdGhlIGhlYXAgYmxvY2sgc2hvdWxkIGJlCisgKiBm b3JjZWQuCisgKgogICogc2V0X3BkX2FsbF92aXMgaW5kaWNhdGVzIHRoYXQgd2Ugc2V0IFBEX0FM TF9WSVNJQkxFIGFuZCB0aHVzIHNob3VsZCB1cGRhdGUKICAqIHRoZSBwYWdlIExTTiB3aGVuIGNo ZWNrc3Vtcy93YWxfbG9nX2hpbnRzIGFyZSBlbmFibGVkIGV2ZW4gaWYgd2UgZGlkIG5vdAogICog cHJ1bmUgb3IgZnJlZXplIHR1cGxlcyBvbiB0aGUgcGFnZS4KQEAgLTIwNjUsNiArMjA2OSw3IEBA IGhlYXBfbG9nX2ZyZWV6ZV9wbGFuKEhlYXBUdXBsZUZyZWV6ZSAqdHVwbGVzLCBpbnQgbnR1cGxl cywKICAqLwogdm9pZAogbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlv biwgQnVmZmVyIGJ1ZmZlciwKKwkJCQkJCSAgYm9vbCBmb3JjZV9oZWFwX2ZwaSwKIAkJCQkJCSAg QnVmZmVyIHZtYnVmZmVyLAogCQkJCQkJICB1aW50OCB2bWZsYWdzLAogCQkJCQkJICBib29sIHNl dF9wZF9hbGxfdmlzLApAQCAtMjA5NSwxMyArMjEwMCwxNiBAQCBsb2dfaGVhcF9wcnVuZV9hbmRf ZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCiAJcmVnYnVmX2ZsYWdz ID0gUkVHQlVGX1NUQU5EQVJEOwogCisJaWYgKGZvcmNlX2hlYXBfZnBpKQorCQlyZWdidWZfZmxh Z3MgfD0gUkVHQlVGX0ZPUkNFX0lNQUdFOworCiAJLyoKIAkgKiBXZSBjYW4gYXZvaWQgYW4gRlBJ IGlmIHRoZSBvbmx5IG1vZGlmaWNhdGlvbiB3ZSBhcmUgbWFraW5nIHRvIHRoZSBoZWFwCiAJICog cGFnZSBpcyB0byBzZXQgUERfQUxMX1ZJU0lCTEUgYW5kIGNoZWNrc3Vtcy93YWxfbG9nX2hpbnRz IGFyZSBkaXNhYmxlZC4KIAkgKi8KLQlpZiAoIWRvX3BydW5lICYmCi0JCW5mcm96ZW4gPT0gMCAm JgotCQkoIXNldF9wZF9hbGxfdmlzIHx8ICFYTG9nSGludEJpdElzTmVlZGVkKCkpKQorCWVsc2Ug aWYgKCFkb19wcnVuZSAmJgorCQkJIG5mcm96ZW4gPT0gMCAmJgorCQkJICghc2V0X3BkX2FsbF92 aXMgfHwgIVhMb2dIaW50Qml0SXNOZWVkZWQoKSkpCiAJCXJlZ2J1Zl9mbGFncyB8PSBSRUdCVUZf Tk9fSU1BR0U7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IGUz NWNiNjI5MjYxLi42N2M4NTNiNTg2YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YwpAQCAtMTg3NywzMyArMTg3Nyw0NyBAQCBsYXp5X3NjYW5fbmV3X29yX2VtcHR5KExWUmVsU3Rh dGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwgQmxvY2tOdW1iZXIgYmxrbm8sCiAJCSAqLwogCQlpZiAo IVBhZ2VJc0FsbFZpc2libGUocGFnZSkpCiAJCXsKKwkJCXVpbnQ4CQluZXdfdm1iaXRzID0gVklT SUJJTElUWU1BUF9BTExfVklTSUJMRSB8CisJCQkJVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOwor CiAJCQlTVEFSVF9DUklUX1NFQ1RJT04oKTsKIAotCQkJLyogbWFyayBidWZmZXIgZGlydHkgYmVm b3JlIHdyaXRpbmcgYSBXQUwgcmVjb3JkICovCisJCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsK IAkJCU1hcmtCdWZmZXJEaXJ0eShidWYpOwogCi0JCQkvKgotCQkJICogSXQncyBwb3NzaWJsZSB0 aGF0IGFub3RoZXIgYmFja2VuZCBoYXMgZXh0ZW5kZWQgdGhlIGhlYXAsCi0JCQkgKiBpbml0aWFs aXplZCB0aGUgcGFnZSwgYW5kIHRoZW4gZmFpbGVkIHRvIFdBTC1sb2cgdGhlIHBhZ2UgZHVlCi0J CQkgKiB0byBhbiBFUlJPUi4gIFNpbmNlIGhlYXAgZXh0ZW5zaW9uIGlzIG5vdCBXQUwtbG9nZ2Vk LCByZWNvdmVyeQotCQkJICogbWlnaHQgdHJ5IHRvIHJlcGxheSBvdXIgcmVjb3JkIHNldHRpbmcg dGhlIHBhZ2UgYWxsLXZpc2libGUgYW5kCi0JCQkgKiBmaW5kIHRoYXQgdGhlIHBhZ2UgaXNuJ3Qg aW5pdGlhbGl6ZWQsIHdoaWNoIHdpbGwgY2F1c2UgYSBQQU5JQy4KLQkJCSAqIFRvIHByZXZlbnQg dGhhdCwgY2hlY2sgd2hldGhlciB0aGUgcGFnZSBoYXMgYmVlbiBwcmV2aW91c2x5Ci0JCQkgKiBX QUwtbG9nZ2VkLCBhbmQgaWYgbm90LCBkbyB0aGF0IG5vdy4KLQkJCSAqLwotCQkJaWYgKFJlbGF0 aW9uTmVlZHNXQUwodmFjcmVsLT5yZWwpICYmCi0JCQkJUGFnZUdldExTTihwYWdlKSA9PSBJbnZh bGlkWExvZ1JlY1B0cikKLQkJCQlsb2dfbmV3cGFnZV9idWZmZXIoYnVmLCB0cnVlKTsKKwkJCUxv Y2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSk7CisJCQl2aXNpYmlsaXR5 bWFwX3NldF92bWJpdHModmFjcmVsLT5yZWwsIGJsa25vLAorCQkJCQkJCQkJIHZtYnVmZmVyLCBu ZXdfdm1iaXRzKTsKKworCQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwodmFjcmVsLT5yZWwpKQorCQkJ eworCQkJCS8qCisJCQkJICogSXQncyBwb3NzaWJsZSB0aGF0IGFub3RoZXIgYmFja2VuZCBoYXMg ZXh0ZW5kZWQgdGhlIGhlYXAsCisJCQkJICogaW5pdGlhbGl6ZWQgdGhlIHBhZ2UsIGFuZCB0aGVu IGZhaWxlZCB0byBXQUwtbG9nIHRoZSBwYWdlCisJCQkJICogZHVlIHRvIGFuIEVSUk9SLiAgU2lu Y2UgaGVhcCBleHRlbnNpb24gaXMgbm90IFdBTC1sb2dnZWQsCisJCQkJICogcmVjb3ZlcnkgbWln aHQgdHJ5IHRvIHJlcGxheSBvdXIgcmVjb3JkIHNldHRpbmcgdGhlIHBhZ2UKKwkJCQkgKiBhbGwt dmlzaWJsZSBhbmQgZmluZCB0aGF0IHRoZSBwYWdlIGlzbid0IGluaXRpYWxpemVkLCB3aGljaAor CQkJCSAqIHdpbGwgY2F1c2UgYSBQQU5JQy4gVG8gcHJldmVudCB0aGF0LCBpZiB0aGUgcGFnZSBo YXNuJ3QKKwkJCQkgKiBiZWVuIHByZXZpb3VzbHkgV0FMLWxvZ2dlZCwgZm9yY2UgYSBoZWFwIEZQ SS4KKwkJCQkgKi8KKwkJCQlsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKHZhY3JlbC0+cmVsLCBi dWYsCisJCQkJCQkJCQkJICBQYWdlR2V0TFNOKHBhZ2UpID09IEludmFsaWRYTG9nUmVjUHRyLAor CQkJCQkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkJCQkJICBuZXdfdm1iaXRzLAorCQkJCQkJCQkJ CSAgdHJ1ZSwKKwkJCQkJCQkJCQkgIEludmFsaWRUcmFuc2FjdGlvbklkLAorCQkJCQkJCQkJCSAg ZmFsc2UsIFBSVU5FX1ZBQ1VVTV9TQ0FOLAorCQkJCQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJCQkJ CQkgIE5VTEwsIDAsCisJCQkJCQkJCQkJICBOVUxMLCAwLAorCQkJCQkJCQkJCSAgTlVMTCwgMCk7 CisJCQl9CiAKLQkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwotCQkJdmlzaWJpbGl0eW1hcF9z ZXQodmFjcmVsLT5yZWwsIGJsa25vLCBidWYsCi0JCQkJCQkJICBJbnZhbGlkWExvZ1JlY1B0ciwK LQkJCQkJCQkgIHZtYnVmZmVyLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCwKLQkJCQkJCQkgIFZJU0lC SUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfRlJPWkVO KTsKIAkJCUVORF9DUklUX1NFQ1RJT04oKTsKIAotCQkJLyogQ291bnQgdGhlIG5ld2x5IGFsbC1m cm96ZW4gcGFnZXMgZm9yIGxvZ2dpbmcgKi8KKwkJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZF Ul9MT0NLX1VOTE9DSyk7CisKKwkJCS8qIENvdW50IHRoZSBuZXdseSBhbGwtZnJvemVuIHBhZ2Vz IGZvciBsb2dnaW5nLiAqLwogCQkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9wYWdlcysrOwogCQkJ dmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMrKzsKIAkJfQpAQCAtMjkyMSw2ICsy OTM1LDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tO dW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJaWYgKFJlbGF0aW9uTmVlZHNXQUwodmFjcmVs LT5yZWwpKQogCXsKIAkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZSh2YWNyZWwtPnJlbCwgYnVm ZmVyLAorCQkJCQkJCQkgIGZhbHNlLAogCQkJCQkJCQkgIHZtYnVmZmVyLAogCQkJCQkJCQkgIHZt ZmxhZ3MsCiAJCQkJCQkJCSAgc2V0X3BkX2FsbF92aXMsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5kZXggOGI0 NzI5NWVmYTIuLmU3MTI5YTY0NGExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVh cGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC0zOTQsNiArMzk0LDcg QEAgZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX2V4ZWN1dGUoQnVmZmVyIGJ1ZmZlciwgYm9v bCBscF90cnVuY2F0ZV9vbmx5LAogCQkJCQkJCQkJT2Zmc2V0TnVtYmVyICpub3d1bnVzZWQsIGlu dCBudW51c2VkKTsKIGV4dGVybiB2b2lkIGhlYXBfZ2V0X3Jvb3RfdHVwbGVzKFBhZ2UgcGFnZSwg T2Zmc2V0TnVtYmVyICpyb290X29mZnNldHMpOwogZXh0ZXJuIHZvaWQgbG9nX2hlYXBfcHJ1bmVf YW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKKwkJCQkJCQkJCSAg Ym9vbCBmb3JjZV9oZWFwX2ZwaSwKIAkJCQkJCQkJCSAgQnVmZmVyIHZtYnVmZmVyLAogCQkJCQkJ CQkJICB1aW50OCB2bWZsYWdzLAogCQkJCQkJCQkJICBib29sIHZtX21vZGlmaWVkX2hlYXBfcGFn ZSwKLS0gCjIuNDMuMAoK --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0009-Find-and-fix-VM-corruption-in-heap_page_prune_an.patch" Content-Disposition: attachment; filename="v10-0009-Find-and-fix-VM-corruption-in-heap_page_prune_an.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8g78 RnJvbSA3NmUxM2MwZWM2ODFlYzFlYWJhMDY1YmMzZTg4ZjcyZTM3YjM3NjIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDE2OjQ1OjU5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMDkvMjJdIEZpbmQgYW5kIGZpeCBWTSBjb3JydXB0aW9uIGluCiBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZQoKRnV0dXJlIGNvbW1pdHMgd2lsbCB1cGRhdGUgdGhlIFZNIGluIHRo ZSBzYW1lIGNyaXRpY2FsIHNlY3Rpb24gYW5kIFdBTApyZWNvcmQgYXMgcHJ1bmluZyBhbmQgZnJl ZXppbmcuIEZvciBlYXNlIG9mIHJldmlldywgdGhpcyBjb21taXQgbWFrZXMKb25lIHN0ZXAgdG93 YXJkIGRvaW5nIHRoaXMuIEl0IG1vdmVzIHRoZSBWTSBjb3JydXB0aW9uIGhhbmRsaW5nIGNhc2Ug dG8KaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYyAgfCA5MSArKysrKysrKysrKysrKysrKysrKysrKysrKystCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCA4MiArKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgfCAgNCArKwogMyBm aWxlcyBjaGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCAzNzM5ODZiMjA0YS4uZTAwMDVjMmQ0ZjIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0yMSw3ICsyMSw3IEBACiAjaW5jbHVk ZSAiYWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgogI2luY2x1ZGUg ImFjY2Vzcy94bG9naW5zZXJ0LmgiCi0jaW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZz LmgiCisjaW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXAuaCIKICNpbmNsdWRlICJjb21tYW5k cy92YWN1dW0uaCIKICNpbmNsdWRlICJleGVjdXRvci9pbnN0cnVtZW50LmgiCiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCkBAIC0xNzcsNiArMTc3LDEzIEBAIHN0YXRpYyB2b2lkIGhlYXBfcHJ1bmVf cmVjb3JkX3VuY2hhbmdlZF9scF9yZWRpcmVjdChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXRO CiAKIHN0YXRpYyB2b2lkIHBhZ2VfdmVyaWZ5X3JlZGlyZWN0cyhQYWdlIHBhZ2UpOwogCitzdGF0 aWMgYm9vbCBpZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24oUmVsYXRpb24gcmVsYXRpb24s CisJCQkJCQkJCQkJICAgQmxvY2tOdW1iZXIgaGVhcF9ibGssCisJCQkJCQkJCQkJICAgQnVmZmVy IGhlYXBfYnVmZmVyLCBQYWdlIGhlYXBfcGFnZSwKKwkJCQkJCQkJCQkgICBib29sIGhlYXBfYmxr X2tub3duX2F2LAorCQkJCQkJCQkJCSAgIGludDY0IG5scGRlYWRfaXRlbXMsCisJCQkJCQkJCQkJ ICAgQnVmZmVyIHZtYnVmZmVyKTsKKwogCiAvKgogICogT3B0aW9uYWxseSBwcnVuZSBhbmQgcmVw YWlyIGZyYWdtZW50YXRpb24gaW4gdGhlIHNwZWNpZmllZCBwYWdlLgpAQCAtMjYxLDcgKzI2OCw5 IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIp CiAJCQkgKiBub3QgdGhlIHJlbGF0aW9uIGhhcyBpbmRleGVzLCBzaW5jZSB3ZSBjYW5ub3Qgc2Fm ZWx5IGRldGVybWluZQogCQkJICogdGhhdCBkdXJpbmcgb24tYWNjZXNzIHBydW5pbmcgd2l0aCB0 aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4KIAkJCSAqLwotCQkJaGVhcF9wYWdlX3BydW5lX2Fu ZF9mcmVlemUocmVsYXRpb24sIGJ1ZmZlciwgdmlzdGVzdCwgMCwKKwkJCWhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKHJlbGF0aW9uLCBidWZmZXIsIGZhbHNlLAorCQkJCQkJCQkJICAgSW52YWxp ZEJ1ZmZlciwKKwkJCQkJCQkJCSAgIHZpc3Rlc3QsIDAsCiAJCQkJCQkJCQkgICBOVUxMLCAmcHJl c3VsdCwgUFJVTkVfT05fQUNDRVNTLCAmZHVtbXlfb2ZmX2xvYywgTlVMTCwgTlVMTCk7CiAKIAkJ CS8qCkBAIC0yOTQsNiArMzAzLDY4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVs YXRpb24sIEJ1ZmZlciBidWZmZXIpCiAJfQogfQogCisvKgorICogV2hlbiB1cGRhdGluZyB0aGUg dmlzaWJpbGl0eSBtYXAgYWZ0ZXIgcGhhc2UgSSBoZWFwIHZhY3V1bWluZywgd2UgdGFrZSB0aGUK KyAqIG9wcG9ydHVuaXR5IHRvIGlkZW50aWZ5IGFuZCBmaXggYW55IFZNIGNvcnJ1cHRpb24uCisg KgorICogaGVhcF9ibGtfa25vd25fYXYgaXMgdGhlIHZpc2liaWxpdHkgc3RhdHVzIG9mIHRoZSBo ZWFwIHBhZ2UgY29sbGVjdGVkCisgKiB3aGlsZSBmaW5kaW5nIHRoZSBuZXh0IHVuc2tpcHBhYmxl IGJsb2NrIGluIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpLgorICovCitzdGF0aWMgYm9vbAor aWRlbnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbGF0aW9uLAorCQkJCQkJ CSAgIEJsb2NrTnVtYmVyIGhlYXBfYmxrLAorCQkJCQkJCSAgIEJ1ZmZlciBoZWFwX2J1ZmZlciwg UGFnZSBoZWFwX3BhZ2UsCisJCQkJCQkJICAgYm9vbCBoZWFwX2Jsa19rbm93bl9hdiwKKwkJCQkJ CQkgICBpbnQ2NCBubHBkZWFkX2l0ZW1zLAorCQkJCQkJCSAgIEJ1ZmZlciB2bWJ1ZmZlcikKK3sK KwkvKgorCSAqIEFzIG9mIFBvc3RncmVTUUwgOS4yLCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IHNo b3VsZCBuZXZlciBiZSBzZXQgaWYgdGhlCisJICogcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIuICBI b3dldmVyLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJpdCBnb3QKKwkgKiBjbGVhcmVkIGFmdGVy IGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIHdhcyBjYWxsZWQsIHNvIHdlIG11c3QgcmVjaGVj aworCSAqIHdpdGggYnVmZmVyIGxvY2sgYmVmb3JlIGNvbmNsdWRpbmcgdGhhdCB0aGUgVk0gaXMg Y29ycnVwdC4KKwkgKi8KKwlpZiAoaGVhcF9ibGtfa25vd25fYXYgJiYgIVBhZ2VJc0FsbFZpc2li bGUoaGVhcF9wYWdlKSAmJgorCQl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocmVsYXRpb24sIGhl YXBfYmxrLCAmdm1idWZmZXIpICE9IDApCisJeworCQllcmVwb3J0KFdBUk5JTkcsIChlcnJjb2Rl KEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAorCQkJCQkJICBlcnJtc2coInBhZ2UgaXMgbm90IG1h cmtlZCBhbGwtdmlzaWJsZSBidXQgdmlzaWJpbGl0eSBtYXAgYml0IGlzIHNldCBpbiByZWxhdGlv biBcIiVzXCIgcGFnZSAldSIsCisJCQkJCQkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxh dGlvbiksIGhlYXBfYmxrKSkpOworCisJCXZpc2liaWxpdHltYXBfY2xlYXIocmVsYXRpb24sIGhl YXBfYmxrLCB2bWJ1ZmZlciwKKwkJCQkJCQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOworCQly ZXR1cm4gdHJ1ZTsKKwl9CisKKwkvKgorCSAqIEl0J3MgcG9zc2libGUgZm9yIHRoZSB2YWx1ZSBy ZXR1cm5lZCBieQorCSAqIEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQoKSB0byBt b3ZlIGJhY2t3YXJkcywgc28gaXQncyBub3QKKwkgKiB3cm9uZyBmb3IgdXMgdG8gc2VlIHR1cGxl cyB0aGF0IGFwcGVhciB0byBub3QgYmUgdmlzaWJsZSB0byBldmVyeW9uZQorCSAqIHlldCwgd2hp bGUgUERfQUxMX1ZJU0lCTEUgaXMgYWxyZWFkeSBzZXQuIFRoZSByZWFsIHNhZmUgeG1pbiB2YWx1 ZQorCSAqIG5ldmVyIG1vdmVzIGJhY2t3YXJkcywgYnV0IEdldE9sZGVzdE5vblJlbW92YWJsZVRy YW5zYWN0aW9uSWQoKSBpcworCSAqIGNvbnNlcnZhdGl2ZSBhbmQgc29tZXRpbWVzIHJldHVybnMg YSB2YWx1ZSB0aGF0J3MgdW5uZWNlc3NhcmlseSBzbWFsbCwKKwkgKiBzbyBpZiB3ZSBzZWUgdGhh dCBjb250cmFkaWN0aW9uIGl0IGp1c3QgbWVhbnMgdGhhdCB0aGUgdHVwbGVzIHRoYXQgd2UKKwkg KiB0aGluayBhcmUgbm90IHZpc2libGUgdG8gZXZlcnlvbmUgeWV0IGFjdHVhbGx5IGFyZSwgYW5k IHRoZQorCSAqIFBEX0FMTF9WSVNJQkxFIGZsYWcgaXMgY29ycmVjdC4KKwkgKgorCSAqIFRoZXJl IHNob3VsZCBuZXZlciBiZSBMUF9ERUFEIGl0ZW1zIG9uIGEgcGFnZSB3aXRoIFBEX0FMTF9WSVNJ QkxFIHNldCwKKwkgKiBob3dldmVyLgorCSAqLworCWlmIChubHBkZWFkX2l0ZW1zID4gMCAmJiBQ YWdlSXNBbGxWaXNpYmxlKGhlYXBfcGFnZSkpCisJeworCQllcmVwb3J0KFdBUk5JTkcsIChlcnJj b2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAorCQkJCQkJICBlcnJtc2coInBhZ2UgY29udGFp bmluZyBMUF9ERUFEIGl0ZW1zIGlzIG1hcmtlZCBhcyBhbGwtdmlzaWJsZSBpbiByZWxhdGlvbiBc IiVzXCIgcGFnZSAldSIsCisJCQkJCQkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlv biksIGhlYXBfYmxrKSkpOworCisJCVBhZ2VDbGVhckFsbFZpc2libGUoaGVhcF9wYWdlKTsKKwkJ TWFya0J1ZmZlckRpcnR5KGhlYXBfYnVmZmVyKTsKKwkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWxh dGlvbiwgaGVhcF9ibGssIHZtYnVmZmVyLAorCQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklU Uyk7CisJCXJldHVybiB0cnVlOworCX0KKworCXJldHVybiBmYWxzZTsKK30KIAogLyoKICAqIFBy dW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXplIHR1cGxl cyBvbiB0aGUKQEAgLTMxNCw2ICszODUsMTAgQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlv biByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcikKICAqIEhFQVBfUFJVTkVfRlJFRVpFIG9wdGlvbiBp cyBub3Qgc2V0LCBiZWNhdXNlIGF0IHRoZSBtb21lbnQgb25seSBjYWxsZXJzCiAgKiB0aGF0IGFs c28gZnJlZXplIG5lZWQgdGhhdCBpbmZvcm1hdGlvbi4KICAqCisgKiBibGtfa25vd25fYXYgaXMg dGhlIHZpc2liaWxpdHkgc3RhdHVzIG9mIHRoZSBoZWFwIGJsb2NrIGFzIG9mIHRoZSBsYXN0IGNh bGwKKyAqIHRvIGZpbmRfbmV4dF91bnNraXBwYWJsZV9ibG9jaygpLiB2bWJ1ZmZlciBpcyB0aGUg YnVmZmVyIHRoYXQgbWF5IGFscmVhZHkKKyAqIGNvbnRhaW4gdGhlIHJlcXVpcmVkIGJsb2NrIG9m IHRoZSB2aXNpYmlsaXR5IG1hcC4KKyAqCiAgKiB2aXN0ZXN0IGlzIHVzZWQgdG8gZGlzdGluZ3Vp c2ggd2hldGhlciB0dXBsZXMgYXJlIERFQUQgb3IgUkVDRU5UTFlfREVBRAogICogKHNlZSBoZWFw X3BydW5lX3NhdGlzZmllc192YWN1dW0pLgogICoKQEAgLTM0OSw2ICs0MjQsOCBAQCBoZWFwX3Bh Z2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyKQogICovCiB2b2lk CiBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1 ZmZlciwKKwkJCQkJCSAgIGJvb2wgYmxrX2tub3duX2F2LAorCQkJCQkJICAgQnVmZmVyIHZtYnVm ZmVyLAogCQkJCQkJICAgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJCQkJCQkgICBpbnQgb3B0 aW9ucywKIAkJCQkJCSAgIHN0cnVjdCBWYWN1dW1DdXRvZmZzICpjdXRvZmZzLApAQCAtODk3LDYg Kzk3NCwxNiBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlciwKIAlwcmVzdWx0LT5scGRlYWRfaXRlbXMgPSBwcnN0YXRlLmxwZGVhZF9p dGVtczsKIAkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJyYXkgd2FzIGFscmVhZHkgZmls bGVkIGluICovCiAKKwkvKgorCSAqIENsZWFyIGFueSBWTSBjb3JydXB0aW9uLiBUaGlzIGRvZXMg bm90IG5lZWQgdG8gYmUgZG9uZSBpbiBhIGNyaXRpY2FsCisJICogc2VjdGlvbi4KKwkgKi8KKwlw cmVzdWx0LT52bV9jb3JydXB0aW9uID0gZmFsc2U7CisJaWYgKG9wdGlvbnMgJiBIRUFQX1BBR0Vf UFJVTkVfVVBEQVRFX1ZNKQorCQlwcmVzdWx0LT52bV9jb3JydXB0aW9uID0gaWRlbnRpZnlfYW5k X2ZpeF92bV9jb3JydXB0aW9uKHJlbGF0aW9uLAorCQkJCQkJCQkJCQkJCQkJCWJsb2Nrbm8sIGJ1 ZmZlciwgcGFnZSwKKwkJCQkJCQkJCQkJCQkJCQlibGtfa25vd25fYXYsCisJCQkJCQkJCQkJCQkJ CQkJcHJzdGF0ZS5scGRlYWRfaXRlbXMsIHZtYnVmZmVyKTsKIAlpZiAocHJzdGF0ZS5mcmVlemUp CiAJewogCQlpZiAocHJlc3VsdC0+bmZyb3plbiA+IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMKaW5kZXggYzFhZTNhMzU1YzguLjMyMmU1NGM4MDNmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmFjdXVtbGF6eS5jCkBAIC00MzAsMTIgKzQzMCw2IEBAIHN0YXRpYyB2b2lkIGZpbmRf bmV4dF91bnNraXBwYWJsZV9ibG9jayhMVlJlbFN0YXRlICp2YWNyZWwsIGJvb2wgKnNraXBzYWxs dmlzKTsKIHN0YXRpYyBib29sIGxhenlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFj cmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCQkgICBCbG9ja051bWJlciBibGtubywgUGFnZSBwYWdl LAogCQkJCQkJCQkgICBib29sIHNoYXJlbG9jaywgQnVmZmVyIHZtYnVmZmVyKTsKLXN0YXRpYyBi b29sIGlkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihSZWxhdGlvbiByZWxhdGlvbiwKLQkJ CQkJCQkJCQkgICBCbG9ja051bWJlciBoZWFwX2JsaywKLQkJCQkJCQkJCQkgICBCdWZmZXIgaGVh cF9idWZmZXIsIFBhZ2UgaGVhcF9wYWdlLAotCQkJCQkJCQkJCSAgIGJvb2wgaGVhcF9ibGtfa25v d25fYXYsCi0JCQkJCQkJCQkJICAgaW50NjQgbmxwZGVhZF9pdGVtcywKLQkJCQkJCQkJCQkgICBC dWZmZXIgdm1idWZmZXIpOwogc3RhdGljIGludAlsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAq dmFjcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCUJsb2NrTnVtYmVyIGJsa25vLCBQYWdlIHBhZ2Us CiAJCQkJCQkJQnVmZmVyIHZtYnVmZmVyLCBib29sIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192 bSwKQEAgLTE5MzgsNzAgKzE5MzIsNiBAQCBsYXp5X3NjYW5fbmV3X29yX2VtcHR5KExWUmVsU3Rh dGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwgQmxvY2tOdW1iZXIgYmxrbm8sCiAJcmV0dXJuIGZhbHNl OwogfQogCi0vKgotICogV2hlbiB1cGRhdGluZyB0aGUgdmlzaWJpbGl0eSBtYXAgYWZ0ZXIgcGhh c2UgSSBoZWFwIHZhY3V1bWluZywgd2UgdGFrZSB0aGUKLSAqIG9wcG9ydHVuaXR5IHRvIGlkZW50 aWZ5IGFuZCBmaXggYW55IFZNIGNvcnJ1cHRpb24uCi0gKgotICogaGVhcF9ibGtfa25vd25fYXYg aXMgdGhlIHZpc2liaWxpdHkgc3RhdHVzIG9mIHRoZSBoZWFwIHBhZ2UgY29sbGVjdGVkCi0gKiB3 aGlsZSBmaW5kaW5nIHRoZSBuZXh0IHVuc2tpcHBhYmxlIGJsb2NrIGluIGhlYXBfdmFjX3NjYW5f bmV4dF9ibG9jaygpLgotICovCi1zdGF0aWMgYm9vbAotaWRlbnRpZnlfYW5kX2ZpeF92bV9jb3Jy dXB0aW9uKFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCSAgIEJsb2NrTnVtYmVyIGhlYXBfYmxr LAotCQkJCQkJCSAgIEJ1ZmZlciBoZWFwX2J1ZmZlciwgUGFnZSBoZWFwX3BhZ2UsCi0JCQkJCQkJ ICAgYm9vbCBoZWFwX2Jsa19rbm93bl9hdiwKLQkJCQkJCQkgICBpbnQ2NCBubHBkZWFkX2l0ZW1z LAotCQkJCQkJCSAgIEJ1ZmZlciB2bWJ1ZmZlcikKLXsKLQkvKgotCSAqIEFzIG9mIFBvc3RncmVT UUwgOS4yLCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IHNob3VsZCBuZXZlciBiZSBzZXQgaWYgdGhl Ci0JICogcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIuICBIb3dldmVyLCBpdCdzIHBvc3NpYmxlIHRo YXQgdGhlIGJpdCBnb3QKLQkgKiBjbGVhcmVkIGFmdGVyIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9j aygpIHdhcyBjYWxsZWQsIHNvIHdlIG11c3QgcmVjaGVjawotCSAqIHdpdGggYnVmZmVyIGxvY2sg YmVmb3JlIGNvbmNsdWRpbmcgdGhhdCB0aGUgVk0gaXMgY29ycnVwdC4KLQkgKi8KLQlpZiAoaGVh cF9ibGtfa25vd25fYXYgJiYgIVBhZ2VJc0FsbFZpc2libGUoaGVhcF9wYWdlKSAmJgotCQl2aXNp YmlsaXR5bWFwX2dldF9zdGF0dXMocmVsYXRpb24sIGhlYXBfYmxrLCAmdm1idWZmZXIpICE9IDAp Ci0JewotCQllcmVwb3J0KFdBUk5JTkcsIChlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQp LAotCQkJCQkJICBlcnJtc2coInBhZ2UgaXMgbm90IG1hcmtlZCBhbGwtdmlzaWJsZSBidXQgdmlz aWJpbGl0eSBtYXAgYml0IGlzIHNldCBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCi0JCQkJ CQkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbiksIGhlYXBfYmxrKSkpOwotCi0J CXZpc2liaWxpdHltYXBfY2xlYXIocmVsYXRpb24sIGhlYXBfYmxrLCB2bWJ1ZmZlciwKLQkJCQkJ CQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwotCQlyZXR1cm4gdHJ1ZTsKLQl9Ci0KLQkvKgot CSAqIEl0J3MgcG9zc2libGUgZm9yIHRoZSB2YWx1ZSByZXR1cm5lZCBieQotCSAqIEdldE9sZGVz dE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQoKSB0byBtb3ZlIGJhY2t3YXJkcywgc28gaXQncyBu b3QKLQkgKiB3cm9uZyBmb3IgdXMgdG8gc2VlIHR1cGxlcyB0aGF0IGFwcGVhciB0byBub3QgYmUg dmlzaWJsZSB0byBldmVyeW9uZQotCSAqIHlldCwgd2hpbGUgUERfQUxMX1ZJU0lCTEUgaXMgYWxy ZWFkeSBzZXQuIFRoZSByZWFsIHNhZmUgeG1pbiB2YWx1ZQotCSAqIG5ldmVyIG1vdmVzIGJhY2t3 YXJkcywgYnV0IEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQoKSBpcwotCSAqIGNv bnNlcnZhdGl2ZSBhbmQgc29tZXRpbWVzIHJldHVybnMgYSB2YWx1ZSB0aGF0J3MgdW5uZWNlc3Nh cmlseSBzbWFsbCwKLQkgKiBzbyBpZiB3ZSBzZWUgdGhhdCBjb250cmFkaWN0aW9uIGl0IGp1c3Qg bWVhbnMgdGhhdCB0aGUgdHVwbGVzIHRoYXQgd2UKLQkgKiB0aGluayBhcmUgbm90IHZpc2libGUg dG8gZXZlcnlvbmUgeWV0IGFjdHVhbGx5IGFyZSwgYW5kIHRoZQotCSAqIFBEX0FMTF9WSVNJQkxF IGZsYWcgaXMgY29ycmVjdC4KLQkgKgotCSAqIFRoZXJlIHNob3VsZCBuZXZlciBiZSBMUF9ERUFE IGl0ZW1zIG9uIGEgcGFnZSB3aXRoIFBEX0FMTF9WSVNJQkxFIHNldCwKLQkgKiBob3dldmVyLgot CSAqLwotCWlmIChubHBkZWFkX2l0ZW1zID4gMCAmJiBQYWdlSXNBbGxWaXNpYmxlKGhlYXBfcGFn ZSkpCi0JewotCQllcmVwb3J0KFdBUk5JTkcsIChlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBU RUQpLAotCQkJCQkJICBlcnJtc2coInBhZ2UgY29udGFpbmluZyBMUF9ERUFEIGl0ZW1zIGlzIG1h cmtlZCBhcyBhbGwtdmlzaWJsZSBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCi0JCQkJCQkJ CSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbiksIGhlYXBfYmxrKSkpOwotCi0JCVBh Z2VDbGVhckFsbFZpc2libGUoaGVhcF9wYWdlKTsKLQkJTWFya0J1ZmZlckRpcnR5KGhlYXBfYnVm ZmVyKTsKLQkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWxhdGlvbiwgaGVhcF9ibGssIHZtYnVmZmVy LAotCQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7Ci0JCXJldHVybiB0cnVlOwotCX0K LQotCXJldHVybiBmYWxzZTsKLX0KLQotCiAvKiBxc29ydCBjb21wYXJhdG9yIGZvciBzb3J0aW5n IE9mZnNldE51bWJlcnMgKi8KIHN0YXRpYyBpbnQKIGNtcE9mZnNldE51bWJlcnMoY29uc3Qgdm9p ZCAqYSwgY29uc3Qgdm9pZCAqYikKQEAgLTIwNTksMTEgKzE5ODksMTQgQEAgbGF6eV9zY2FuX3By dW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkgKiB0dXBsZXMuIFBydW5pbmcgd2lsbCBoYXZlIGRl dGVybWluZWQgd2hldGhlciBvciBub3QgdGhlIHBhZ2UgaXMKIAkgKiBhbGwtdmlzaWJsZS4KIAkg Ki8KLQlwcnVuZV9vcHRpb25zID0gSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRTsKKwlwcnVuZV9vcHRp b25zID0gSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSB8IEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVk07 CiAJaWYgKHZhY3JlbC0+bmluZGV4ZXMgPT0gMCkKIAkJcHJ1bmVfb3B0aW9ucyB8PSBIRUFQX1BB R0VfUFJVTkVfTUFSS19VTlVTRURfTk9XOwogCi0JaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUo cmVsLCBidWYsIHZhY3JlbC0+dmlzdGVzdCwgcHJ1bmVfb3B0aW9ucywKKwloZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZShyZWwsIGJ1ZiwKKwkJCQkJCQkgICBhbGxfdmlzaWJsZV9hY2NvcmRpbmdf dG9fdm0sCisJCQkJCQkJICAgdm1idWZmZXIsCisJCQkJCQkJICAgdmFjcmVsLT52aXN0ZXN0LCBw cnVuZV9vcHRpb25zLAogCQkJCQkJCSAgICZ2YWNyZWwtPmN1dG9mZnMsICZwcmVzdWx0LCBQUlVO RV9WQUNVVU1fU0NBTiwKIAkJCQkJCQkgICAmdmFjcmVsLT5vZmZudW0sCiAJCQkJCQkJICAgJnZh Y3JlbC0+TmV3UmVsZnJvemVuWGlkLCAmdmFjcmVsLT5OZXdSZWxtaW5NeGlkKTsKQEAgLTIxNDgs MTAgKzIwODEsOSBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCS8qCiAJ ICogSGFuZGxlIHNldHRpbmcgdmlzaWJpbGl0eSBtYXAgYml0IGJhc2VkIG9uIGluZm9ybWF0aW9u IGZyb20gdGhlIFZNIChhcwogCSAqIG9mIGxhc3QgaGVhcF92YWNfc2Nhbl9uZXh0X2Jsb2NrKCkg Y2FsbCksIGFuZCBmcm9tIGFsbF92aXNpYmxlIGFuZAotCSAqIGFsbF9mcm96ZW4gdmFyaWFibGVz LiBTdGFydCBieSBsb29raW5nIGZvciBhbnkgVk0gY29ycnVwdGlvbi4KKwkgKiBhbGxfZnJvemVu IHZhcmlhYmxlcy4KIAkgKi8KLQlpZiAoaWRlbnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKHZh Y3JlbC0+cmVsLCBibGtubywgYnVmLCBwYWdlLAotCQkJCQkJCQkJICAgYWxsX3Zpc2libGVfYWNj b3JkaW5nX3RvX3ZtLCBwcmVzdWx0LmxwZGVhZF9pdGVtcywgdm1idWZmZXIpKQorCWlmIChwcmVz dWx0LnZtX2NvcnJ1cHRpb24pCiAJewogCQkvKiBEb24ndCB1cGRhdGUgdGhlIFZNIGlmIHdlIGp1 c3QgY2xlYXJlZCBjb3JydXB0aW9uIGluIGl0ICovCiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IGU3 MTI5YTY0NGExLi4wYzdlYjVlNDZmNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtNDIsNiArNDIsNyBA QAogLyogIm9wdGlvbnMiIGZsYWcgYml0cyBmb3IgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUg Ki8KICNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX01BUktfVU5VU0VEX05PVwkJKDEgPDwgMCkKICNk ZWZpbmUgSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRQkJCQkoMSA8PCAxKQorI2RlZmluZSBIRUFQX1BB R0VfUFJVTkVfVVBEQVRFX1ZNCQkJKDEgPDwgMikKIAogdHlwZWRlZiBzdHJ1Y3QgQnVsa0luc2Vy dFN0YXRlRGF0YSAqQnVsa0luc2VydFN0YXRlOwogc3RydWN0IFR1cGxlVGFibGVTbG90OwpAQCAt MjQ3LDYgKzI0OCw3IEBAIHR5cGVkZWYgc3RydWN0IFBydW5lRnJlZXplUmVzdWx0CiAJYm9vbAkJ YWxsX3Zpc2libGU7CiAJYm9vbAkJYWxsX2Zyb3plbjsKIAlUcmFuc2FjdGlvbklkIHZtX2NvbmZs aWN0X2hvcml6b247CisJYm9vbAkJdm1fY29ycnVwdGlvbjsKIAogCS8qCiAJICogV2hldGhlciBv ciBub3QgdGhlIHBhZ2UgbWFrZXMgcmVsIHRydW5jYXRpb24gdW5zYWZlLiAgVGhpcyBpcyBzZXQg dG8KQEAgLTM4MCw2ICszODIsOCBAQCBleHRlcm4gVHJhbnNhY3Rpb25JZCBoZWFwX2luZGV4X2Rl bGV0ZV90dXBsZXMoUmVsYXRpb24gcmVsLAogc3RydWN0IEdsb2JhbFZpc1N0YXRlOwogZXh0ZXJu IHZvaWQgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZl cik7CiBleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxh dGlvbiwgQnVmZmVyIGJ1ZmZlciwKKwkJCQkJCQkJCSAgIGJvb2wgYmxrX2tub3duX2F2LAorCQkJ CQkJCQkJICAgQnVmZmVyIHZtYnVmZmVyLAogCQkJCQkJCQkJICAgc3RydWN0IEdsb2JhbFZpc1N0 YXRlICp2aXN0ZXN0LAogCQkJCQkJCQkJICAgaW50IG9wdGlvbnMsCiAJCQkJCQkJCQkgICBzdHJ1 Y3QgVmFjdXVtQ3V0b2ZmcyAqY3V0b2ZmcywKLS0gCjIuNDMuMAoK --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0008-Combine-vacuum-phase-I-VM-update-cases.patch" Content-Disposition: attachment; filename="v10-0008-Combine-vacuum-phase-I-VM-update-cases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8g57 RnJvbSAyNzFmYTdhNjI0ZjZmZTA3Y2U5NmRjMmE1OWIzZWE1YWU4MzAzMzQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDE2OjM1OjM2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMDgvMjJdIENvbWJpbmUgdmFjdXVtIHBoYXNlIEkgVk0gdXBkYXRlIGNhc2VzCgpX ZSB1cGRhdGUgdGhlIFZNIGFmdGVyIHBoYXNlIEkgb2YgdmFjdXVtIC0tIGVpdGhlciBzZXR0aW5n IGJvdGggdGhlIFZNCmJpdHMgd2hlbiBhbGwgYml0cyBhcmUgY3VycmVudGx5IHVuc2V0IG9yIHNl dHRpbmcganVzdCB0aGUgZnJvemVuIGJpdAp3aGVuIHRoZSBhbGwtdmlzaWJsZSBiaXQgaXMgYWxy ZWFkeSBzZXQuCgpUaG9zZSB0d28gY2FzZXMgc2hhcmVkIG11Y2ggb2YgdGhlIHNhbWUgY29kZSAt LSBsZWFkaW5nIHRvIHVubmVjZXNzYXJ5CmR1cGxpY2F0aW9uLiBUaGlzIGNvbW1pdCBjb21iaW5l cyB0aGVtLCB3aGljaCBpcyBzaW1wbGVyIGFuZCBlYXNpZXIgdG8KdW5kZXJzdGFuZC4KClRoZSBj b21iaW5lZCBjYXNlIGFsc28gaGFwcGVucyB0byBmaXggYSBsb25nc3RhbmRpbmcgYnVnIHdoZXJl IGlmIHdlIGFyZQpvbmx5IHNldHRpbmcgYW4gYWxsLXZpc2libGUgcGFnZSBhbGwtZnJvemVuIGFu ZCBjaGVja3N1bXMvd2FsX2xvZ19oaW50cwphcmUgZW5hYmxlZCwgd2Ugd291bGQgZmFpbCB0byBz ZXQgdGhlIGJ1ZmZlciBkaXJ0eSBiZWZvcmUgc2V0dGluZyB0aGUKcGFnZSBMU04gaW4gdmlzaWJp bGl0eW1hcF9zZXQoKS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMg fCAxMDEgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzIgaW5z ZXJ0aW9ucygrKSwgNjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jCmluZGV4IDJjYzExZTZkNTVkLi5jMWFlM2EzNTVjOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYwpAQCAtMjE1NSwxMSArMjE1NSwyNiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZS ZWxTdGF0ZSAqdmFjcmVsLAogCXsKIAkJLyogRG9uJ3QgdXBkYXRlIHRoZSBWTSBpZiB3ZSBqdXN0 IGNsZWFyZWQgY29ycnVwdGlvbiBpbiBpdCAqLwogCX0KLQllbHNlIGlmICghYWxsX3Zpc2libGVf YWNjb3JkaW5nX3RvX3ZtICYmIHByZXN1bHQuYWxsX3Zpc2libGUpCisKKwkvKgorCSAqIElmIHRo ZSBwYWdlIGlzbid0IHlldCBtYXJrZWQgYWxsLXZpc2libGUgaW4gdGhlIFZNIG9yIGl0IGlzIGFu ZCBuZWVkcworCSAqIHRvIG1lIG1hcmtlZCBhbGwtZnJvemVuLCB1cGRhdGUgdGhlIFZNIE5vdGUg dGhhdCBhbGxfZnJvemVuIGlzIG9ubHkKKwkgKiB2YWxpZCBpZiBhbGxfdmlzaWJsZSBpcyB0cnVl LCBzbyB3ZSBtdXN0IGNoZWNrIGJvdGggYWxsX3Zpc2libGUgYW5kCisJICogYWxsX2Zyb3plbi4K KwkgKi8KKwllbHNlIGlmIChwcmVzdWx0LmFsbF92aXNpYmxlICYmCisJCQkgKCFhbGxfdmlzaWJs ZV9hY2NvcmRpbmdfdG9fdm0gfHwKKwkJCSAgKHByZXN1bHQuYWxsX2Zyb3plbiAmJiAhVk1fQUxM X0ZST1pFTih2YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1ZmZlcikpKSkKIAl7CiAJCXVpbnQ4CQlv bGRfdm1iaXRzOwogCQl1aW50OAkJZmxhZ3MgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwog CisJCS8qCisJCSAqIElmIHRoZSBwYWdlIGlzIGFsbC1mcm96ZW4sIHdlIGNhbiBwYXNzIEludmFs aWRUcmFuc2FjdGlvbklkIGFzIG91cgorCQkgKiBjdXRvZmZfeGlkLCBzaW5jZSBhIHNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uIHN1ZmZpY2llbnQgdG8gbWFrZQorCQkgKiBldmVyeXRoaW5nIHNhZmUg Zm9yIFJFRE8gd2FzIGxvZ2dlZCB3aGVuIHRoZSBwYWdlJ3MgdHVwbGVzIHdlcmUKKwkJICogZnJv emVuLgorCQkgKi8KIAkJaWYgKHByZXN1bHQuYWxsX2Zyb3plbikKIAkJewogCQkJQXNzZXJ0KCFU cmFuc2FjdGlvbklkSXNWYWxpZChwcmVzdWx0LnZtX2NvbmZsaWN0X2hvcml6b24pKTsKQEAgLTIx NzIsMjEgKzIxODcsMjkgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkJ ICogY2hlY2tzdW1zIGFyZSBub3QgZW5hYmxlZCkuICBSZWdhcmRsZXNzLCBzZXQgYm90aCBiaXRz IHNvIHRoYXQgd2UKIAkJICogZ2V0IGJhY2sgaW4gc3luYy4KIAkJICoKLQkJICogTkI6IElmIHRo ZSBoZWFwIHBhZ2UgaXMgYWxsLXZpc2libGUgYnV0IHRoZSBWTSBiaXQgaXMgbm90IHNldCwgd2UK LQkJICogZG9uJ3QgbmVlZCB0byBkaXJ0eSB0aGUgaGVhcCBwYWdlLiAgSG93ZXZlciwgaWYgY2hl Y2tzdW1zIGFyZQotCQkgKiBlbmFibGVkLCB3ZSBkbyBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRo ZSBoZWFwIHBhZ2UgaXMgZGlydGllZAotCQkgKiBiZWZvcmUgcGFzc2luZyBpdCB0byB2aXNpYmls aXR5bWFwX3NldCgpLCBiZWNhdXNlIGl0IG1heSBiZSBsb2dnZWQuCi0JCSAqIEdpdmVuIHRoYXQg dGhpcyBzaXR1YXRpb24gc2hvdWxkIG9ubHkgaGFwcGVuIGluIHJhcmUgY2FzZXMgYWZ0ZXIgYQot CQkgKiBjcmFzaCwgaXQgaXMgbm90IHdvcnRoIG9wdGltaXppbmcuCisJCSAqIElmIHRoZSBoZWFw IHBhZ2UgaXMgYWxsLXZpc2libGUgYnV0IHRoZSBWTSBiaXQgaXMgbm90IHNldCwgd2UgZG9uJ3QK KwkJICogbmVlZCB0byBkaXJ0eSB0aGUgaGVhcCBwYWdlLiAgSG93ZXZlciwgaWYgY2hlY2tzdW1z IGFyZSBlbmFibGVkLCB3ZQorCQkgKiBkbyBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBoZWFw IHBhZ2UgaXMgZGlydGllZCBiZWZvcmUgcGFzc2luZworCQkgKiBpdCB0byB2aXNpYmlsaXR5bWFw X3NldCgpLCBiZWNhdXNlIGl0IG1heSBiZSBsb2dnZWQuCiAJCSAqLwotCQlQYWdlU2V0QWxsVmlz aWJsZShwYWdlKTsKLQkJTWFya0J1ZmZlckRpcnR5KGJ1Zik7CisJCWlmICghUGFnZUlzQWxsVmlz aWJsZShwYWdlKSB8fCBYTG9nSGludEJpdElzTmVlZGVkKCkpCisJCXsKKwkJCVBhZ2VTZXRBbGxW aXNpYmxlKHBhZ2UpOworCQkJTWFya0J1ZmZlckRpcnR5KGJ1Zik7CisJCX0KKwogCQlvbGRfdm1i aXRzID0gdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVsLT5yZWwsIGJsa25vLCBidWYsCiAJCQkJCQkJ CQkgICBJbnZhbGlkWExvZ1JlY1B0ciwKIAkJCQkJCQkJCSAgIHZtYnVmZmVyLCBwcmVzdWx0LnZt X2NvbmZsaWN0X2hvcml6b24sCiAJCQkJCQkJCQkgICBmbGFncyk7CiAKIAkJLyoKKwkJICogRXZl biBpZiB3ZSBhcmUgb25seSBzZXR0aW5nIHRoZSBhbGwtZnJvemVuIGJpdCwgdGhlcmUgaXMgYSBz bWFsbAorCQkgKiBjaGFuY2UgdGhhdCB0aGUgVk0gd2FzIG1vZGlmaWVkIHNvbWV0aW1lIGJldHdl ZW4gc2V0dGluZworCQkgKiBhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gYW5kIGNoZWNraW5n IHRoZSB2aXNpYmlsaXR5IGR1cmluZworCQkgKiBwcnVuaW5nLiBDaGVjayB0aGUgcmV0dXJuIHZh bHVlIG9mIG9sZF92bWJpdHMgdG8gZW5zdXJlIHRoZQorCQkgKiB2aXNpYmlsaXR5IG1hcCBjb3Vu dGVycyB1c2VkIGZvciBsb2dnaW5nIGFyZSBhY2N1cmF0ZS4KKwkJICoKIAkJICogSWYgdGhlIHBh Z2Ugd2Fzbid0IGFscmVhZHkgc2V0IGFsbC12aXNpYmxlIGFuZC9vciBhbGwtZnJvemVuIGluIHRo ZQogCQkgKiBWTSwgY291bnQgaXQgYXMgbmV3bHkgc2V0IGZvciBsb2dnaW5nLgogCQkgKi8KQEAg LTIyMDcsNjYgKzIyMzAsNiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAog CQl9CiAJfQogCi0JLyoKLQkgKiBJZiB0aGUgYWxsLXZpc2libGUgcGFnZSBpcyBhbGwtZnJvemVu IGJ1dCBub3QgbWFya2VkIGFzIHN1Y2ggeWV0LCBtYXJrCi0JICogaXQgYXMgYWxsLWZyb3plbi4g IE5vdGUgdGhhdCBhbGxfZnJvemVuIGlzIG9ubHkgdmFsaWQgaWYgYWxsX3Zpc2libGUgaXMKLQkg KiB0cnVlLCBzbyB3ZSBtdXN0IGNoZWNrIGJvdGggYWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4u Ci0JICovCi0JZWxzZSBpZiAoYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtICYmIHByZXN1bHQu YWxsX3Zpc2libGUgJiYKLQkJCSBwcmVzdWx0LmFsbF9mcm96ZW4gJiYgIVZNX0FMTF9GUk9aRU4o dmFjcmVsLT5yZWwsIGJsa25vLCAmdm1idWZmZXIpKQotCXsKLQkJdWludDgJCW9sZF92bWJpdHM7 Ci0KLQkJLyoKLQkJICogQXZvaWQgcmVseWluZyBvbiBhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9f dm0gYXMgYSBwcm94eSBmb3IgdGhlCi0JCSAqIHBhZ2UtbGV2ZWwgUERfQUxMX1ZJU0lCTEUgYml0 IGJlaW5nIHNldCwgc2luY2UgaXQgbWlnaHQgaGF2ZSBiZWNvbWUKLQkJICogc3RhbGUgLS0gZXZl biB3aGVuIGFsbF92aXNpYmxlIGlzIHNldAotCQkgKi8KLQkJaWYgKCFQYWdlSXNBbGxWaXNpYmxl KHBhZ2UpKQotCQl7Ci0JCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQkJCU1hcmtCdWZmZXJE aXJ0eShidWYpOwotCQl9Ci0KLQkJLyoKLQkJICogU2V0IHRoZSBwYWdlIGFsbC1mcm96ZW4gKGFu ZCBhbGwtdmlzaWJsZSkgaW4gdGhlIFZNLgotCQkgKgotCQkgKiBXZSBjYW4gcGFzcyBJbnZhbGlk VHJhbnNhY3Rpb25JZCBhcyBvdXIgY3V0b2ZmX3hpZCwgc2luY2UgYQotCQkgKiBzbmFwc2hvdENv bmZsaWN0SG9yaXpvbiBzdWZmaWNpZW50IHRvIG1ha2UgZXZlcnl0aGluZyBzYWZlIGZvciBSRURP Ci0JCSAqIHdhcyBsb2dnZWQgd2hlbiB0aGUgcGFnZSdzIHR1cGxlcyB3ZXJlIGZyb3plbi4KLQkJ ICovCi0JCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQocHJlc3VsdC52bV9jb25mbGljdF9o b3Jpem9uKSk7Ci0JCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwg Ymxrbm8sIGJ1ZiwKLQkJCQkJCQkJCSAgIEludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJCQkJICAg dm1idWZmZXIsIEludmFsaWRUcmFuc2FjdGlvbklkLAotCQkJCQkJCQkJICAgVklTSUJJTElUWU1B UF9BTExfVklTSUJMRSB8Ci0JCQkJCQkJCQkgICBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOwot Ci0JCS8qCi0JCSAqIFRoZSBwYWdlIHdhcyBsaWtlbHkgYWxyZWFkeSBzZXQgYWxsLXZpc2libGUg aW4gdGhlIFZNLiBIb3dldmVyLAotCQkgKiB0aGVyZSBpcyBhIHNtYWxsIGNoYW5jZSB0aGF0IGl0 IHdhcyBtb2RpZmllZCBzb21ldGltZSBiZXR3ZWVuCi0JCSAqIHNldHRpbmcgYWxsX3Zpc2libGVf YWNjb3JkaW5nX3RvX3ZtIGFuZCBjaGVja2luZyB0aGUgdmlzaWJpbGl0eQotCQkgKiBkdXJpbmcg cHJ1bmluZy4gQ2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBvbGRfdm1iaXRzIGFueXdheSB0bwot CQkgKiBlbnN1cmUgdGhlIHZpc2liaWxpdHkgbWFwIGNvdW50ZXJzIHVzZWQgZm9yIGxvZ2dpbmcg YXJlIGFjY3VyYXRlLgotCQkgKi8KLQkJaWYgKChvbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9B TExfVklTSUJMRSkgPT0gMCkKLQkJewotCQkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9wYWdlcysr OwotCQkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMrKzsKLQkJCSp2bV9wYWdl X2Zyb3plbiA9IHRydWU7Ci0JCX0KLQotCQkvKgotCQkgKiBXZSBhbHJlYWR5IGNoZWNrZWQgdGhh dCB0aGUgcGFnZSB3YXMgbm90IHNldCBhbGwtZnJvemVuIGluIHRoZSBWTQotCQkgKiBhYm92ZSwg c28gd2UgZG9uJ3QgbmVlZCB0byB0ZXN0IHRoZSB2YWx1ZSBvZiBvbGRfdm1iaXRzLgotCQkgKi8K LQkJZWxzZQotCQl7Ci0JCQl2YWNyZWwtPnZtX25ld19mcm96ZW5fcGFnZXMrKzsKLQkJCSp2bV9w YWdlX2Zyb3plbiA9IHRydWU7Ci0JCX0KLQl9Ci0KIAlyZXR1cm4gcHJlc3VsdC5uZGVsZXRlZDsK IH0KIAotLSAKMi40My4wCgo= --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0010-Keep-all_frozen-updated-too-in-heap_page_prune_a.patch" Content-Disposition: attachment; filename="v10-0010-Keep-all_frozen-updated-too-in-heap_page_prune_a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8g99 RnJvbSAzYWM5NmFhODNiYWQ2YmU3MzQ3YjUxMDNmYjhiMzFkNDJjOTc1ZjJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDIzIEp1bCAyMDI1IDE2OjAxOjI0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMTAvMjJdIEtlZXAgYWxsX2Zyb3plbiB1cGRhdGVkIHRvbyBpbgogaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUKCldlIHByZXZpb3VzbHkgcmVsaWVkIG9uIG9ubHkgdXNpbmcgYWxs LXZpc2libGUgYW5kIGFsbC1mcm96ZW4gdG9nZXRoZXIKYnV0IGl0J3MgYmVzdCB0byBrZWVwIHRo ZW0gYm90aCB1cGRhdGVkLgoKRnV0dXJlIGNvbW1pdHMgd2lsbCBzZXBhcmF0ZSB1c2FnZSBvZiB0 aGVzZSBmaWVsZHMsIHNvIGl0IGlzIGJlc3Qgbm90IHRvCnJlbHkgb24gYWxsX3Zpc2libGUgZm9y IGFsbF9mcm96ZW4ncyB2YWxpZGl0eS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYyB8IDE1ICsrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9u cygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4 IGUwMDA1YzJkNGYyLi4xMGQwMzBmYjNlNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFw LmMKQEAgLTE0MywxMCArMTQzLDYgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkgKiB3aGV0aGVyIHRvIGZy ZWV6ZSB0aGUgcGFnZSBvciBub3QuICBUaGUgYWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4KIAkg KiB2YWx1ZXMgcmV0dXJuZWQgdG8gdGhlIGNhbGxlciBhcmUgYWRqdXN0ZWQgdG8gaW5jbHVkZSBM UF9ERUFEIGl0ZW1zIGF0CiAJICogdGhlIGVuZC4KLQkgKgotCSAqIGFsbF9mcm96ZW4gc2hvdWxk IG9ubHkgYmUgY29uc2lkZXJlZCB2YWxpZCBpZiBhbGxfdmlzaWJsZSBpcyBhbHNvIHNldDsKLQkg KiB3ZSBkb24ndCBib3RoZXIgdG8gY2xlYXIgdGhlIGFsbF9mcm96ZW4gZmxhZyBldmVyeSB0aW1l IHdlIGNsZWFyIHRoZQotCSAqIGFsbF92aXNpYmxlIGZsYWcuCiAJICovCiAJYm9vbAkJYWxsX3Zp c2libGU7CiAJYm9vbAkJYWxsX2Zyb3plbjsKQEAgLTgyOCw2ICs4MjQsNyBAQCBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJICov CiAJfQogCisJQXNzZXJ0KCFwcnN0YXRlLmFsbF9mcm96ZW4gfHwgcHJzdGF0ZS5hbGxfdmlzaWJs ZSk7CiAJLyogQW55IGVycm9yIHdoaWxlIGFwcGx5aW5nIHRoZSBjaGFuZ2VzIGlzIGNyaXRpY2Fs ICovCiAJU1RBUlRfQ1JJVF9TRUNUSU9OKCk7CiAKQEAgLTE0NzIsNyArMTQ2OSw3IEBAIGhlYXBf cHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoUGFnZSBwYWdlLCBQcnVuZVN0YXRlICpw cnN0YXRlLCBPZmZzZXROdW1iCiAKIAkJCQlpZiAoIUhlYXBUdXBsZUhlYWRlclhtaW5Db21taXR0 ZWQoaHR1cCkpCiAJCQkJewotCQkJCQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IGZhbHNlOworCQkJ CQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKIAkJ CQkJYnJlYWs7CiAJCQkJfQogCkBAIC0xNDk0LDcgKzE0OTEsNyBAQCBoZWFwX3BydW5lX3JlY29y ZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zm c2V0TnVtYgogCQkJCUFzc2VydChwcnN0YXRlLT5jdXRvZmZzKTsKIAkJCQlpZiAoIVRyYW5zYWN0 aW9uSWRQcmVjZWRlcyh4bWluLCBwcnN0YXRlLT5jdXRvZmZzLT5PbGRlc3RYbWluKSkKIAkJCQl7 Ci0JCQkJCXByc3RhdGUtPmFsbF92aXNpYmxlID0gZmFsc2U7CisJCQkJCXByc3RhdGUtPmFsbF92 aXNpYmxlID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCQkJCQlicmVhazsKIAkJCQl9 CiAKQEAgLTE1MDcsNyArMTUwNCw3IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9u b3JtYWwoUGFnZSBwYWdlLCBQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iCiAKIAkJY2Fz ZSBIRUFQVFVQTEVfUkVDRU5UTFlfREVBRDoKIAkJCXByc3RhdGUtPnJlY2VudGx5X2RlYWRfdHVw bGVzKys7Ci0JCQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IGZhbHNlOworCQkJcHJzdGF0ZS0+YWxs X3Zpc2libGUgPSBwcnN0YXRlLT5hbGxfZnJvemVuID0gZmFsc2U7CiAKIAkJCS8qCiAJCQkgKiBU aGlzIHR1cGxlIHdpbGwgc29vbiBiZWNvbWUgREVBRC4gIFVwZGF0ZSB0aGUgaGludCBmaWVsZCBz bwpAQCAtMTUyNiw3ICsxNTIzLDcgQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25v cm1hbChQYWdlIHBhZ2UsIFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWIKIAkJCSAqIGFz c3VtcHRpb24gaXMgYSBiaXQgc2hha3ksIGJ1dCBpdCBpcyB3aGF0IGFjcXVpcmVfc2FtcGxlX3Jv d3MoKQogCQkJICogZG9lcywgc28gYmUgY29uc2lzdGVudC4KIAkJCSAqLwotCQkJcHJzdGF0ZS0+ YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCXByc3RhdGUtPmFsbF92aXNpYmxlID0gcHJzdGF0ZS0+ YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJCQkvKgogCQkJICogSWYgd2Ugd2FudGVkIHRvIG9wdGlt aXplIGZvciBhYm9ydHMsIHdlIG1pZ2h0IGNvbnNpZGVyIG1hcmtpbmcKQEAgLTE1NDQsNyArMTU0 MSw3IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoUGFnZSBwYWdlLCBQ cnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iCiAJCQkgKiB3aWxsIGNvbW1pdCBhbmQgdXBk YXRlIHRoZSBjb3VudGVycyBhZnRlciB3ZSByZXBvcnQuCiAJCQkgKi8KIAkJCXByc3RhdGUtPmxp dmVfdHVwbGVzKys7Ci0JCQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IGZhbHNlOworCQkJcHJzdGF0 ZS0+YWxsX3Zpc2libGUgPSBwcnN0YXRlLT5hbGxfZnJvemVuID0gZmFsc2U7CiAKIAkJCS8qCiAJ CQkgKiBUaGlzIHR1cGxlIG1heSBzb29uIGJlY29tZSBERUFELiAgVXBkYXRlIHRoZSBoaW50IGZp ZWxkIHNvIHRoYXQKLS0gCjIuNDMuMAoK --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0007-Combine-lazy_scan_prune-VM-corruption-cases.patch" Content-Disposition: attachment; filename="v10-0007-Combine-lazy_scan_prune-VM-corruption-cases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8g16 RnJvbSA4NDQ1N2QwOTBlMGYxNzZlODRmMTRmYWRmOTViMDk1NzIyZDFlNzY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDE2OjA0OjAzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMDcvMjJdIENvbWJpbmUgbGF6eV9zY2FuX3BydW5lIFZNIGNvcnJ1cHRpb24gY2Fz ZXMKCmxhenlfc2Nhbl9wcnVuZSgpIHVwZGF0ZXMgdGhlIHZpc2liaWxpdHkgbWFwIGFmdGVyIHBo YXNlIEkgb2YgaGVhcAp2YWN1dW1pbmcuIEl0IGFsc28gY2hlY2tzIGFuZCBmaXhlcyBjb3JydXB0 aW9uIGluIHRoZSBWTS4gVGhlIGNvcnJ1cHRpb24KY2FzZXMgd2hlcmUgbWl4ZWQgaW4gd2l0aCB0 aGUgbm9ybWFsIHZpc2liaWxpdHkgbWFwIHVwZGF0ZSBjYXNlcy4KCkNhcmVmdWwgc3R1ZHkgb2Yg dGhlIG9yZGVyaW5nIG9mIHRoZSBjdXJyZW50IGxvZ2ljIHJldmVhbHMgdGhhdCB0aGUKY29ycnVw dGlvbiBjYXNlcyBjYW4gYmUgcmVvcmRlcmVkIGFuZCBleHRyYWN0ZWQgaW50byBhIHNlcGFyYXRl CmZ1bmN0aW9uLiBUaGlzIHNob3VsZCByZXN1bHQgaW4gbm8gYWRkaXRpb25hbCBvdmVyaGVhZCB3 aGVuIGNvbXBhcmVkIHRvCnByZXZpb3VzIGV4ZWN1dGlvbi4KClRoaXMgcmVvcmRlcmluZyBtYWtl cyBpdCBjbGVhciB3aGljaCBjYXNlcyBhcmUgYWJvdXQgY29ycnVwdGlvbiBhbmQKd2hpY2ggY2Fz ZXMgYXJlIG5vcm1hbCBWTSB1cGRhdGVzLiBTZXBhcmF0aW5nIHRoZW0gYWxzbyBtYWtlcyBpdApw b3NzaWJsZSB0byBjb21iaW5lIHRoZSBub3JtYWwgY2FzZXMgaW4gYSBmdXR1cmUgY29tbWl0LiBU aGlzIHdpbGwgbWFrZQp0aGUgbG9naWMgZWFzaWVyIHRvIHVuZGVyc3RhbmQgYW5kIGFsbG93IGZv ciBmdXJ0aGVyIHNlcGFyYXRpb24gb2YgdGhlCmxvZ2ljIHRvIGFsbG93IHVwZGF0aW5nIHRoZSBW TSBpbiB0aGUgc2FtZSByZWNvcmQgYXMgcHJ1bmluZyBhbmQKZnJlZXppbmcgaW4gcGhhc2UgSS4K LS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAxMjIgKysrKysrKysr KysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgNDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDY3Yzg1 M2I1ODZhLi4yY2MxMWU2ZDU1ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpA QCAtNDMwLDYgKzQzMCwxMiBAQCBzdGF0aWMgdm9pZCBmaW5kX25leHRfdW5za2lwcGFibGVfYmxv Y2soTFZSZWxTdGF0ZSAqdmFjcmVsLCBib29sICpza2lwc2FsbHZpcyk7CiBzdGF0aWMgYm9vbCBs YXp5X3NjYW5fbmV3X29yX2VtcHR5KExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwKIAkJ CQkJCQkJICAgQmxvY2tOdW1iZXIgYmxrbm8sIFBhZ2UgcGFnZSwKIAkJCQkJCQkJICAgYm9vbCBz aGFyZWxvY2ssIEJ1ZmZlciB2bWJ1ZmZlcik7CitzdGF0aWMgYm9vbCBpZGVudGlmeV9hbmRfZml4 X3ZtX2NvcnJ1cHRpb24oUmVsYXRpb24gcmVsYXRpb24sCisJCQkJCQkJCQkJICAgQmxvY2tOdW1i ZXIgaGVhcF9ibGssCisJCQkJCQkJCQkJICAgQnVmZmVyIGhlYXBfYnVmZmVyLCBQYWdlIGhlYXBf cGFnZSwKKwkJCQkJCQkJCQkgICBib29sIGhlYXBfYmxrX2tub3duX2F2LAorCQkJCQkJCQkJCSAg IGludDY0IG5scGRlYWRfaXRlbXMsCisJCQkJCQkJCQkJICAgQnVmZmVyIHZtYnVmZmVyKTsKIHN0 YXRpYyBpbnQJbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwK IAkJCQkJCQlCbG9ja051bWJlciBibGtubywgUGFnZSBwYWdlLAogCQkJCQkJCUJ1ZmZlciB2bWJ1 ZmZlciwgYm9vbCBhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0sCkBAIC0xOTMyLDYgKzE5Mzgs NzAgQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBi dWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCXJldHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIFdoZW4g dXBkYXRpbmcgdGhlIHZpc2liaWxpdHkgbWFwIGFmdGVyIHBoYXNlIEkgaGVhcCB2YWN1dW1pbmcs IHdlIHRha2UgdGhlCisgKiBvcHBvcnR1bml0eSB0byBpZGVudGlmeSBhbmQgZml4IGFueSBWTSBj b3JydXB0aW9uLgorICoKKyAqIGhlYXBfYmxrX2tub3duX2F2IGlzIHRoZSB2aXNpYmlsaXR5IHN0 YXR1cyBvZiB0aGUgaGVhcCBwYWdlIGNvbGxlY3RlZAorICogd2hpbGUgZmluZGluZyB0aGUgbmV4 dCB1bnNraXBwYWJsZSBibG9jayBpbiBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKS4KKyAqLwor c3RhdGljIGJvb2wKK2lkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihSZWxhdGlvbiByZWxh dGlvbiwKKwkJCQkJCQkgICBCbG9ja051bWJlciBoZWFwX2JsaywKKwkJCQkJCQkgICBCdWZmZXIg aGVhcF9idWZmZXIsIFBhZ2UgaGVhcF9wYWdlLAorCQkJCQkJCSAgIGJvb2wgaGVhcF9ibGtfa25v d25fYXYsCisJCQkJCQkJICAgaW50NjQgbmxwZGVhZF9pdGVtcywKKwkJCQkJCQkgICBCdWZmZXIg dm1idWZmZXIpCit7CisJLyoKKwkgKiBBcyBvZiBQb3N0Z3JlU1FMIDkuMiwgdGhlIHZpc2liaWxp dHkgbWFwIGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0IGlmIHRoZQorCSAqIHBhZ2UtbGV2ZWwgYml0 IGlzIGNsZWFyLiAgSG93ZXZlciwgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBiaXQgZ290CisJICog Y2xlYXJlZCBhZnRlciBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKSB3YXMgY2FsbGVkLCBzbyB3 ZSBtdXN0IHJlY2hlY2sKKwkgKiB3aXRoIGJ1ZmZlciBsb2NrIGJlZm9yZSBjb25jbHVkaW5nIHRo YXQgdGhlIFZNIGlzIGNvcnJ1cHQuCisJICovCisJaWYgKGhlYXBfYmxrX2tub3duX2F2ICYmICFQ YWdlSXNBbGxWaXNpYmxlKGhlYXBfcGFnZSkgJiYKKwkJdmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVz KHJlbGF0aW9uLCBoZWFwX2JsaywgJnZtYnVmZmVyKSAhPSAwKQorCXsKKwkJZXJlcG9ydChXQVJO SU5HLCAoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKKwkJCQkJCSAgZXJybXNnKCJw YWdlIGlzIG5vdCBtYXJrZWQgYWxsLXZpc2libGUgYnV0IHZpc2liaWxpdHkgbWFwIGJpdCBpcyBz ZXQgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAorCQkJCQkJCQkgUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsYXRpb24pLCBoZWFwX2JsaykpKTsKKworCQl2aXNpYmlsaXR5bWFwX2NsZWFy KHJlbGF0aW9uLCBoZWFwX2Jsaywgdm1idWZmZXIsCisJCQkJCQkJVklTSUJJTElUWU1BUF9WQUxJ RF9CSVRTKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJLyoKKwkgKiBJdCdzIHBvc3NpYmxlIGZv ciB0aGUgdmFsdWUgcmV0dXJuZWQgYnkKKwkgKiBHZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2Fj dGlvbklkKCkgdG8gbW92ZSBiYWNrd2FyZHMsIHNvIGl0J3Mgbm90CisJICogd3JvbmcgZm9yIHVz IHRvIHNlZSB0dXBsZXMgdGhhdCBhcHBlYXIgdG8gbm90IGJlIHZpc2libGUgdG8gZXZlcnlvbmUK KwkgKiB5ZXQsIHdoaWxlIFBEX0FMTF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LiBUaGUgcmVhbCBz YWZlIHhtaW4gdmFsdWUKKwkgKiBuZXZlciBtb3ZlcyBiYWNrd2FyZHMsIGJ1dCBHZXRPbGRlc3RO b25SZW1vdmFibGVUcmFuc2FjdGlvbklkKCkgaXMKKwkgKiBjb25zZXJ2YXRpdmUgYW5kIHNvbWV0 aW1lcyByZXR1cm5zIGEgdmFsdWUgdGhhdCdzIHVubmVjZXNzYXJpbHkgc21hbGwsCisJICogc28g aWYgd2Ugc2VlIHRoYXQgY29udHJhZGljdGlvbiBpdCBqdXN0IG1lYW5zIHRoYXQgdGhlIHR1cGxl cyB0aGF0IHdlCisJICogdGhpbmsgYXJlIG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25lIHlldCBhY3R1 YWxseSBhcmUsIGFuZCB0aGUKKwkgKiBQRF9BTExfVklTSUJMRSBmbGFnIGlzIGNvcnJlY3QuCisJ ICoKKwkgKiBUaGVyZSBzaG91bGQgbmV2ZXIgYmUgTFBfREVBRCBpdGVtcyBvbiBhIHBhZ2Ugd2l0 aCBQRF9BTExfVklTSUJMRSBzZXQsCisJICogaG93ZXZlci4KKwkgKi8KKwlpZiAobmxwZGVhZF9p dGVtcyA+IDAgJiYgUGFnZUlzQWxsVmlzaWJsZShoZWFwX3BhZ2UpKQorCXsKKwkJZXJlcG9ydChX QVJOSU5HLCAoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKKwkJCQkJCSAgZXJybXNn KCJwYWdlIGNvbnRhaW5pbmcgTFBfREVBRCBpdGVtcyBpcyBtYXJrZWQgYXMgYWxsLXZpc2libGUg aW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAorCQkJCQkJCQkgUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVsYXRpb24pLCBoZWFwX2JsaykpKTsKKworCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKGhl YXBfcGFnZSk7CisJCU1hcmtCdWZmZXJEaXJ0eShoZWFwX2J1ZmZlcik7CisJCXZpc2liaWxpdHlt YXBfY2xlYXIocmVsYXRpb24sIGhlYXBfYmxrLCB2bWJ1ZmZlciwKKwkJCQkJCQlWSVNJQklMSVRZ TUFQX1ZBTElEX0JJVFMpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9 CisKKwogLyogcXNvcnQgY29tcGFyYXRvciBmb3Igc29ydGluZyBPZmZzZXROdW1iZXJzICovCiBz dGF0aWMgaW50CiBjbXBPZmZzZXROdW1iZXJzKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIp CkBAIC0yMDc4LDkgKzIxNDgsMTQgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3Jl bCwKIAkvKgogCSAqIEhhbmRsZSBzZXR0aW5nIHZpc2liaWxpdHkgbWFwIGJpdCBiYXNlZCBvbiBp bmZvcm1hdGlvbiBmcm9tIHRoZSBWTSAoYXMKIAkgKiBvZiBsYXN0IGhlYXBfdmFjX3NjYW5fbmV4 dF9ibG9jaygpIGNhbGwpLCBhbmQgZnJvbSBhbGxfdmlzaWJsZSBhbmQKLQkgKiBhbGxfZnJvemVu IHZhcmlhYmxlcworCSAqIGFsbF9mcm96ZW4gdmFyaWFibGVzLiBTdGFydCBieSBsb29raW5nIGZv ciBhbnkgVk0gY29ycnVwdGlvbi4KIAkgKi8KLQlpZiAoIWFsbF92aXNpYmxlX2FjY29yZGluZ190 b192bSAmJiBwcmVzdWx0LmFsbF92aXNpYmxlKQorCWlmIChpZGVudGlmeV9hbmRfZml4X3ZtX2Nv cnJ1cHRpb24odmFjcmVsLT5yZWwsIGJsa25vLCBidWYsIHBhZ2UsCisJCQkJCQkJCQkgICBhbGxf dmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0sIHByZXN1bHQubHBkZWFkX2l0ZW1zLCB2bWJ1ZmZlcikp CisJeworCQkvKiBEb24ndCB1cGRhdGUgdGhlIFZNIGlmIHdlIGp1c3QgY2xlYXJlZCBjb3JydXB0 aW9uIGluIGl0ICovCisJfQorCWVsc2UgaWYgKCFhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0g JiYgcHJlc3VsdC5hbGxfdmlzaWJsZSkKIAl7CiAJCXVpbnQ4CQlvbGRfdm1iaXRzOwogCQl1aW50 OAkJZmxhZ3MgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwpAQCAtMjEzMiw0OSArMjIwNyw2 IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJCX0KIAl9CiAKLQkvKgot CSAqIEFzIG9mIFBvc3RncmVTUUwgOS4yLCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IHNob3VsZCBu ZXZlciBiZSBzZXQgaWYgdGhlCi0JICogcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIuICBIb3dldmVy LCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJpdCBnb3QKLQkgKiBjbGVhcmVkIGFmdGVyIGhlYXBf dmFjX3NjYW5fbmV4dF9ibG9jaygpIHdhcyBjYWxsZWQsIHNvIHdlIG11c3QgcmVjaGVjawotCSAq IHdpdGggYnVmZmVyIGxvY2sgYmVmb3JlIGNvbmNsdWRpbmcgdGhhdCB0aGUgVk0gaXMgY29ycnVw dC4KLQkgKi8KLQllbHNlIGlmIChhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gJiYgIVBhZ2VJ c0FsbFZpc2libGUocGFnZSkgJiYKLQkJCSB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXModmFjcmVs LT5yZWwsIGJsa25vLCAmdm1idWZmZXIpICE9IDApCi0JewotCQllcmVwb3J0KFdBUk5JTkcsIChl cnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAotCQkJCQkJICBlcnJtc2coInBhZ2UgaXMg bm90IG1hcmtlZCBhbGwtdmlzaWJsZSBidXQgdmlzaWJpbGl0eSBtYXAgYml0IGlzIHNldCBpbiBy ZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCi0JCQkJCQkJCSB2YWNyZWwtPnJlbG5hbWUsIGJsa25v KSkpOwotCi0JCXZpc2liaWxpdHltYXBfY2xlYXIodmFjcmVsLT5yZWwsIGJsa25vLCB2bWJ1ZmZl ciwKLQkJCQkJCQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwotCX0KLQotCS8qCi0JICogSXQn cyBwb3NzaWJsZSBmb3IgdGhlIHZhbHVlIHJldHVybmVkIGJ5Ci0JICogR2V0T2xkZXN0Tm9uUmVt b3ZhYmxlVHJhbnNhY3Rpb25JZCgpIHRvIG1vdmUgYmFja3dhcmRzLCBzbyBpdCdzIG5vdAotCSAq IHdyb25nIGZvciB1cyB0byBzZWUgdHVwbGVzIHRoYXQgYXBwZWFyIHRvIG5vdCBiZSB2aXNpYmxl IHRvIGV2ZXJ5b25lCi0JICogeWV0LCB3aGlsZSBQRF9BTExfVklTSUJMRSBpcyBhbHJlYWR5IHNl dC4gVGhlIHJlYWwgc2FmZSB4bWluIHZhbHVlCi0JICogbmV2ZXIgbW92ZXMgYmFja3dhcmRzLCBi dXQgR2V0T2xkZXN0Tm9uUmVtb3ZhYmxlVHJhbnNhY3Rpb25JZCgpIGlzCi0JICogY29uc2VydmF0 aXZlIGFuZCBzb21ldGltZXMgcmV0dXJucyBhIHZhbHVlIHRoYXQncyB1bm5lY2Vzc2FyaWx5IHNt YWxsLAotCSAqIHNvIGlmIHdlIHNlZSB0aGF0IGNvbnRyYWRpY3Rpb24gaXQganVzdCBtZWFucyB0 aGF0IHRoZSB0dXBsZXMgdGhhdCB3ZQotCSAqIHRoaW5rIGFyZSBub3QgdmlzaWJsZSB0byBldmVy eW9uZSB5ZXQgYWN0dWFsbHkgYXJlLCBhbmQgdGhlCi0JICogUERfQUxMX1ZJU0lCTEUgZmxhZyBp cyBjb3JyZWN0LgotCSAqCi0JICogVGhlcmUgc2hvdWxkIG5ldmVyIGJlIExQX0RFQUQgaXRlbXMg b24gYSBwYWdlIHdpdGggUERfQUxMX1ZJU0lCTEUgc2V0LAotCSAqIGhvd2V2ZXIuCi0JICovCi0J ZWxzZSBpZiAocHJlc3VsdC5scGRlYWRfaXRlbXMgPiAwICYmIFBhZ2VJc0FsbFZpc2libGUocGFn ZSkpCi0JewotCQllcmVwb3J0KFdBUk5JTkcsIChlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBU RUQpLAotCQkJCQkJICBlcnJtc2coInBhZ2UgY29udGFpbmluZyBMUF9ERUFEIGl0ZW1zIGlzIG1h cmtlZCBhcyBhbGwtdmlzaWJsZSBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCi0JCQkJCQkJ CSB2YWNyZWwtPnJlbG5hbWUsIGJsa25vKSkpOwotCi0JCVBhZ2VDbGVhckFsbFZpc2libGUocGFn ZSk7Ci0JCU1hcmtCdWZmZXJEaXJ0eShidWYpOwotCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHZhY3Jl bC0+cmVsLCBibGtubywgdm1idWZmZXIsCi0JCQkJCQkJVklTSUJJTElUWU1BUF9WQUxJRF9CSVRT KTsKLQl9Ci0KIAkvKgogCSAqIElmIHRoZSBhbGwtdmlzaWJsZSBwYWdlIGlzIGFsbC1mcm96ZW4g YnV0IG5vdCBtYXJrZWQgYXMgc3VjaCB5ZXQsIG1hcmsKIAkgKiBpdCBhcyBhbGwtZnJvemVuLiAg Tm90ZSB0aGF0IGFsbF9mcm96ZW4gaXMgb25seSB2YWxpZCBpZiBhbGxfdmlzaWJsZSBpcwotLSAK Mi40My4wCgo= --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0012-Eliminate-xl_heap_visible-from-vacuum-phase-I-pr.patch" Content-Disposition: attachment; filename="v10-0012-Eliminate-xl_heap_visible-from-vacuum-phase-I-pr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8ge11 RnJvbSBhNWJlMzg0ZTc4MDZmZTcyYzE4YTU0ZGYxYTYzN2NmOTNkMTZhMGI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDEyOjQxOjAwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMTIvMjJdIEVsaW1pbmF0ZSB4bF9oZWFwX3Zpc2libGUgZnJvbSB2YWN1dW0gcGhh c2UgSQogcHJ1bmUvZnJlZXplCgpJbnN0ZWFkIG9mIGVtaXR0aW5nIGEgc2VwYXJhdGUgV0FMIHJl Y29yZCBmb3IgZXZlcnkgYmxvY2sgcmVuZGVyZWQKYWxsLXZpc2libGUvZnJvemVuIGJ5IHZhY3V1 bSdzIHBoYXNlIEksIGluY2x1ZGUgdGhlIGNoYW5nZXMgdG8gdGhlIFZNIGluCnRoZSB4bF9oZWFw X3BydW5lIHJlY29yZCBhbHJlYWR5IGVtaXR0ZWQuCgpUaGlzIGlzIG9ubHkgZW5hYmxlZCBmb3Ig dmFjdXVtJ3MgcHJ1bmUvZnJlZXplIHdvcmssIG5vdCBmb3Igb24tYWNjZXNzCnBydW5pbmcuCi0t LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgIHwgNDU2ICsrKysrKysrKysr KysrKystLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwg IDMwIC0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgfCAgMTUgKy0KIDMg ZmlsZXMgY2hhbmdlZCwgMjc5IGluc2VydGlvbnMoKyksIDIyMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDlmZDI1ZDBkNTAxLi5hNDE1ZGIyYzAxZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTQ0LDYgKzQ0LDEzIEBAIHR5cGVk ZWYgc3RydWN0CiAJYm9vbAkJbWFya191bnVzZWRfbm93OwogCS8qIHdoZXRoZXIgdG8gYXR0ZW1w dCBmcmVlemluZyB0dXBsZXMgKi8KIAlib29sCQlmcmVlemU7CisKKwkvKgorCSAqIFdoZXRoZXIg b3Igbm90IHRvIGNvbnNpZGVyIHVwZGF0aW5nIHRoZSBWTS4gVGhlcmUgaXMgc29tZSBib29ra2Vl cGluZworCSAqIHRoYXQgbXVzdCBiZSBtYWludGFpbmVkIGlmIHdlIHdvdWxkIGxpa2UgdG8gdXBk YXRlIHRoZSBWTS4KKwkgKi8KKwlib29sCQljb25zaWRlcl91cGRhdGVfdm07CisKIAlzdHJ1Y3Qg VmFjdXVtQ3V0b2ZmcyAqY3V0b2ZmczsKIAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTA4LDggKzExNSw5IEBAIHR5cGVkZWYg c3RydWN0CiAJICoKIAkgKiBUaGVzZSBmaWVsZHMgYXJlIG5vdCB1c2VkIGJ5IHBydW5pbmcgaXRz ZWxmIGZvciB0aGUgbW9zdCBwYXJ0LCBidXQgYXJlCiAJICogdXNlZCB0byBjb2xsZWN0IGluZm9y bWF0aW9uIGFib3V0IHdoYXQgd2FzIHBydW5lZCBhbmQgd2hhdCBzdGF0ZSB0aGUKLQkgKiBwYWdl IGlzIGluIGFmdGVyIHBydW5pbmcsIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgY2FsbGVyLiAgVGhl eSBhcmUKLQkgKiBjb3BpZWQgdG8gdGhlIGNhbGxlcidzIFBydW5lRnJlZXplUmVzdWx0IGF0IHRo ZSBlbmQuCisJICogcGFnZSBpcyBpbiBhZnRlciBwcnVuaW5nIHRvIHVzZSB3aGVuIHVwZGF0aW5n IHRoZSB2aXNpYmlsaXR5IG1hcCBhbmQKKwkgKiBmb3IgdGhlIGJlbmVmaXQgb2YgdGhlIGNhbGxl ci4gIFRoZXkgYXJlIGNvcGllZCB0byB0aGUgY2FsbGVyJ3MKKwkgKiBQcnVuZUZyZWV6ZVJlc3Vs dCBhdCB0aGUgZW5kLgogCSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIAkgKi8KIApAQCAtMTM4LDExICsxNDYsMTAgQEAgdHlwZWRlZiBz dHJ1Y3QKIAkgKiBiaXRzLiAgSXQgaXMgb25seSB2YWxpZCBpZiB3ZSBmcm96ZSBzb21lIHR1cGxl cywgYW5kIGFsbF9mcm96ZW4gaXMKIAkgKiB0cnVlLgogCSAqCi0JICogTk9URTogYWxsX3Zpc2li bGUgYW5kIGFsbF9mcm96ZW4gZG9uJ3QgaW5jbHVkZSBMUF9ERUFEIGl0ZW1zLiAgVGhhdCdzCi0J ICogY29udmVuaWVudCBmb3IgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSwgdG8gdXNlIHRo ZW0gdG8gZGVjaWRlCi0JICogd2hldGhlciB0byBmcmVlemUgdGhlIHBhZ2Ugb3Igbm90LiAgVGhl IGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuCi0JICogdmFsdWVzIHJldHVybmVkIHRvIHRoZSBj YWxsZXIgYXJlIGFkanVzdGVkIHRvIGluY2x1ZGUgTFBfREVBRCBpdGVtcyBhdAotCSAqIHRoZSBl bmQuCisJICogTk9URTogYWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4gZG9uJ3QgaW5jbHVkZSBM UF9ERUFEIGl0ZW1zIHVudGlsCisJICogZGlyZWN0bHkgYmVmb3JlIHVwZGF0aW5nIHRoZSBWTS4g V2UgaWdub3JlIExQX0RFQUQgaXRlbXMgd2hlbiBkZWNpZGluZworCSAqIHdoZXRoZXIgb3Igbm90 IHRvIG9wcG9ydHVuaXN0aWNhbGx5IGZyZWV6ZSBhbmQgd2hlbiBkZXRlcm1pbmluZyB0aGUKKwkg KiBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uIHJlcXVpcmVkIHdoZW4gZnJlZXppbmcgdHVwbGVz LgogCSAqLwogCWJvb2wJCWFsbF92aXNpYmxlOwogCWJvb2wJCWFsbF9mcm96ZW47CkBAIC0zNzUs MTIgKzM4MiwxNSBAQCBpZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24oUmVsYXRpb24gcmVs YXRpb24sCiAgKiBJZiB0aGUgSEVBUF9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIHNldCwgd2Ugd2ls bCBhbHNvIGZyZWV6ZSB0dXBsZXMgaWYgaXQncwogICogcmVxdWlyZWQgaW4gb3JkZXIgdG8gYWR2 YW5jZSByZWxmcm96ZW54aWQgLyByZWxtaW5teGlkLCBvciBpZiBpdCdzCiAgKiBjb25zaWRlcmVk IGFkdmFudGFnZW91cyBmb3Igb3ZlcmFsbCBzeXN0ZW0gcGVyZm9ybWFuY2UgdG8gZG8gc28gbm93 LiAgVGhlCi0gKiAnY3V0b2ZmcycsICdwcmVzdWx0JywgJ25ld19yZWxmcm96ZW5feGlkJyBhbmQg J25ld19yZWxtaW5fbXhpZCcgYXJndW1lbnRzCi0gKiBhcmUgcmVxdWlyZWQgd2hlbiBmcmVlemlu Zy4gIFdoZW4gSEVBUF9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIHNldCwgd2UgYWxzbwotICogc2V0 IHByZXN1bHQtPmFsbF92aXNpYmxlIGFuZCBwcmVzdWx0LT5hbGxfZnJvemVuIG9uIGV4aXQsIHRv IGluZGljYXRlIGlmCi0gKiB0aGUgVk0gYml0cyBjYW4gYmUgc2V0LiAgVGhleSBhcmUgYWx3YXlz IHNldCB0byBmYWxzZSB3aGVuIHRoZQotICogSEVBUF9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIG5v dCBzZXQsIGJlY2F1c2UgYXQgdGhlIG1vbWVudCBvbmx5IGNhbGxlcnMKLSAqIHRoYXQgYWxzbyBm cmVlemUgbmVlZCB0aGF0IGluZm9ybWF0aW9uLgorICogJ2N1dG9mZnMnLCAnbmV3X3JlbGZyb3pl bl94aWQnIGFuZCAnbmV3X3JlbG1pbl9teGlkJyBhcmd1bWVudHMgYXJlIHJlcXVpcmVkCisgKiB3 aGVuIGZyZWV6aW5nLgorICoKKyAqIElmIEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVk0gaXMgc2V0 IGFuZCB0aGUgdmlzaWJpbGl0eSBzdGF0dXMgb2YgdGhlIHBhZ2UKKyAqIGhhcyBjaGFuZ2VkLCB3 ZSB3aWxsIHVwZGF0ZSB0aGUgVk0gYXQgdGhlIHNhbWUgdGltZSBhcyBwcnVuaW5nIGFuZCBmcmVl emluZworICogdGhlIGhlYXAgcGFnZS4gV2Ugd2lsbCBhbHNvIHVwZGF0ZSBwcmVzdWx0LT5vbGRf dm1iaXRzIGFuZAorICogcHJlc3VsdC0+bmV3X3ZtYml0cyB3aXRoIHRoZSBzdGF0ZSBvZiB0aGUg Vk0gYmVmb3JlIGFuZCBhZnRlciB1cGRhdGluZyBpdAorICogZm9yIHRoZSBjYWxsZXIgdG8gdXNl IGluIGJvb2trZWVwaW5nLiBOb3RlIHRoYXQgbmV3IGFuZCBvbGRfdm1iaXRzIHdpbGwgYmUKKyAq IDAgaWYgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTSBpcyBub3Qgc2V0LgogICoKICAqIGJsa19r bm93bl9hdiBpcyB0aGUgdmlzaWJpbGl0eSBzdGF0dXMgb2YgdGhlIGhlYXAgYmxvY2sgYXMgb2Yg dGhlIGxhc3QgY2FsbAogICogdG8gZmluZF9uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrKCkuIHZtYnVm ZmVyIGlzIHRoZSBidWZmZXIgdGhhdCBtYXkgYWxyZWFkeQpAQCAtMzk2LDYgKzQwNiw4IEBAIGlk ZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihSZWxhdGlvbiByZWxhdGlvbiwKICAqICAgRlJF RVpFIGluZGljYXRlcyB0aGF0IHdlIHdpbGwgYWxzbyBmcmVlemUgdHVwbGVzLCBhbmQgd2lsbCBy ZXR1cm4KICAqICAgJ2FsbF92aXNpYmxlJywgJ2FsbF9mcm96ZW4nIGZsYWdzIHRvIHRoZSBjYWxs ZXIuCiAgKgorICogICBVUERBVEVfVk0gaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBzZXQgdGhlIHBh Z2UncyBzdGF0dXMgaW4gdGhlIFZNLgorICoKICAqIGN1dG9mZnMgY29udGFpbnMgdGhlIGZyZWV6 ZSBjdXRvZmZzLCBlc3RhYmxpc2hlZCBieSBWQUNVVU0gYXQgdGhlIGJlZ2lubmluZwogICogb2Yg dmFjdXVtaW5nIHRoZSByZWxhdGlvbi4gIFJlcXVpcmVkIGlmIEhFQVBfUFJVTkVfRlJFRVpFIG9w dGlvbiBpcyBzZXQuCiAgKiBjdXRvZmZzLT5PbGRlc3RYbWluIGlzIGFsc28gdXNlZCB0byBkZXRl cm1pbmUgaWYgZGVhZCB0dXBsZXMgYXJlCkBAIC00NDAsMTggKzQ1MiwyNCBAQCBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAlIZWFw VHVwbGVEYXRhIHR1cDsKIAlib29sCQlkb19mcmVlemU7CiAJYm9vbAkJZG9fcHJ1bmU7Ci0JYm9v bAkJZG9faGludDsKKwlib29sCQlkb19oaW50X2Z1bGxfb3JfcHJ1bmFibGU7CisJYm9vbAkJZG9f c2V0X3ZtOwogCXVpbnQ4CQl2bWZsYWdzID0gMDsKIAl1aW50OAkJb2xkX3ZtYml0cyA9IDA7CiAJ Ym9vbAkJaGludF9iaXRfZnBpOwogCWludDY0CQlmcGlfYmVmb3JlID0gcGdXYWxVc2FnZS53YWxf ZnBpOworCWJvb2wJCWFsbF9mcm96ZW5fZXhjZXB0X2xwX2RlYWQgPSBmYWxzZTsKKwlib29sCQlz ZXRfcGRfYWxsX3Zpc2libGUgPSBmYWxzZTsKIAogCS8qIENvcHkgcGFyYW1ldGVycyB0byBwcnN0 YXRlICovCiAJcHJzdGF0ZS52aXN0ZXN0ID0gdmlzdGVzdDsKIAlwcnN0YXRlLm1hcmtfdW51c2Vk X25vdyA9IChvcHRpb25zICYgSEVBUF9QQUdFX1BSVU5FX01BUktfVU5VU0VEX05PVykgIT0gMDsK IAlwcnN0YXRlLmZyZWV6ZSA9IChvcHRpb25zICYgSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSkgIT0g MDsKKwlwcnN0YXRlLmNvbnNpZGVyX3VwZGF0ZV92bSA9IChvcHRpb25zICYgSEVBUF9QQUdFX1BS VU5FX1VQREFURV9WTSkgIT0gMDsKIAlwcnN0YXRlLmN1dG9mZnMgPSBjdXRvZmZzOwogCisJQXNz ZXJ0KCFwcnN0YXRlLmNvbnNpZGVyX3VwZGF0ZV92bSB8fCB2bWJ1ZmZlcik7CisKIAkvKgogCSAq IE91ciBzdHJhdGVneSBpcyB0byBzY2FuIHRoZSBwYWdlIGFuZCBtYWtlIGxpc3RzIG9mIGl0ZW1z IHRvIGNoYW5nZSwKIAkgKiB0aGVuIGFwcGx5IHRoZSBjaGFuZ2VzIHdpdGhpbiBhIGNyaXRpY2Fs IHNlY3Rpb24uICBUaGlzIGtlZXBzIGFzIG11Y2gKQEAgLTQ5Niw1MCArNTE0LDU3IEBAIGhlYXBf cGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAog CXByc3RhdGUuZGVhZG9mZnNldHMgPSBwcmVzdWx0LT5kZWFkb2Zmc2V0czsKIAogCS8qCi0JICog Q2FsbGVyIG1heSB1cGRhdGUgdGhlIFZNIGFmdGVyIHdlJ3JlIGRvbmUuICBXZSBjYW4ga2VlcCB0 cmFjayBvZgotCSAqIHdoZXRoZXIgdGhlIHBhZ2Ugd2lsbCBiZSBhbGwtdmlzaWJsZSBhbmQgYWxs LWZyb3plbiBhZnRlciBwcnVuaW5nIGFuZAotCSAqIGZyZWV6aW5nIHRvIGhlbHAgdGhlIGNhbGxl ciB0byBkbyB0aGF0LgorCSAqIEtlZXAgdHJhY2sgb2Ygd2hldGhlciBvciBub3QgdGhlIHBhZ2Ug d2lsbCBiZSBhbGwtdmlzaWJsZSBhbmQKKwkgKiBhbGwtZnJvemVuIGZvciB1c2UgaW4gb3Bwb3J0 dW5pc3RpYyBmcmVlemluZyBhbmQgdG8gdXBkYXRlIHRoZSBWTSBpZgorCSAqIHRoZSBjYWxsZXIg cmVxdWVzdHMgaXQuCisJICoKKwkgKiBDdXJyZW50bHksIG9ubHkgVkFDVVVNIGF0dGVtcHRzIGZy ZWV6aW5nIGFuZCBzZXR0aW5nIHRoZSBWTSBiaXRzLiBCdXQKKwkgKiBvdGhlciBjYWxsZXJzIGNv dWxkIGRvIGVpdGhlciBvbmUuIFRoZSB2aXNpYmlsaXR5IGJvb2trZWVwaW5nIGlzCisJICogcmVx dWlyZWQgZm9yIG9wcG9ydHVuaXN0aWMgZnJlZXppbmcgKGluIGFkZGl0aW9uIHRvIHNldHRpbmcg dGhlIFZNCisJICogYml0cykgYmVjYXVzZSB3ZSBvbmx5IGNvbnNpZGVyIG9wcG9ydHVuaXN0aWNh bGx5IGZyZWV6aW5nIHR1cGxlcyBpZiB0aGUKKwkgKiB3aG9sZSBwYWdlIHdvdWxkIGJlY29tZSBh bGwtZnJvemVuIG9yIGlmIHRoZSB3aG9sZSBwYWdlIHdpbGwgYmUgZnJvemVuCisJICogZXhjZXB0 IGZvciBkZWFkIHR1cGxlcyB0aGF0IHdpbGwgYmUgcmVtb3ZlZCBieSB2YWN1dW0uCiAJICoKLQkg KiBDdXJyZW50bHksIG9ubHkgVkFDVVVNIHNldHMgdGhlIFZNIGJpdHMuICBUbyBzYXZlIHRoZSBl ZmZvcnQsIG9ubHkgZG8KLQkgKiB0aGUgYm9va2tlZXBpbmcgaWYgdGhlIGNhbGxlciBuZWVkcyBp dC4gIEN1cnJlbnRseSwgdGhhdCdzIHRpZWQgdG8KLQkgKiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpF LCBidXQgaXQgY291bGQgYmUgYSBzZXBhcmF0ZSBmbGFnIGlmIHlvdSB3YW50ZWQKLQkgKiB0byB1 cGRhdGUgdGhlIFZNIGJpdHMgd2l0aG91dCBhbHNvIGZyZWV6aW5nIG9yIGZyZWV6ZSB3aXRob3V0 IGFsc28KLQkgKiBzZXR0aW5nIHRoZSBWTSBiaXRzLgorCSAqIElmIG9ubHkgdXBkYXRpbmcgdGhl IFZNLCB3ZSBtdXN0IGluaXRpYWxpemUgYWxsX2Zyb3plbiB0byBmYWxzZSwgYXMKKwkgKiBoZWFw X3ByZXBhcmVfZnJlZXplX3R1cGxlKCkgd2lsbCBub3QgYmUgY2FsbGVkIGZvciBlYWNoIHR1cGxl IG9uIHRoZQorCSAqIHBhZ2UgYW5kIHdlIHdpbGwgbm90IGVuZCB1cCBjb3JyZWN0bHkgc2V0dGlu ZyBpdCB0byBmYWxzZSBsYXRlci4KIAkgKgotCSAqIEluIGFkZGl0aW9uIHRvIHRlbGxpbmcgdGhl IGNhbGxlciB3aGV0aGVyIGl0IGNhbiBzZXQgdGhlIFZNIGJpdCwgd2UKLQkgKiBhbHNvIHVzZSAn YWxsX3Zpc2libGUnIGFuZCAnYWxsX2Zyb3plbicgZm9yIG91ciBvd24gZGVjaXNpb24tbWFraW5n LiBJZgotCSAqIHRoZSB3aG9sZSBwYWdlIHdvdWxkIGJlY29tZSBmcm96ZW4sIHdlIGNvbnNpZGVy IG9wcG9ydHVuaXN0aWNhbGx5Ci0JICogZnJlZXppbmcgdHVwbGVzLiAgV2Ugd2lsbCBub3QgYmUg YWJsZSB0byBmcmVlemUgdGhlIHdob2xlIHBhZ2UgaWYgdGhlcmUKLQkgKiBhcmUgdHVwbGVzIHBy ZXNlbnQgdGhhdCBhcmUgbm90IHZpc2libGUgdG8gZXZlcnlvbmUgb3IgaWYgdGhlcmUgYXJlCi0J ICogZGVhZCB0dXBsZXMgd2hpY2ggYXJlIG5vdCB5ZXQgcmVtb3ZhYmxlLiAgSG93ZXZlciwgZGVh ZCB0dXBsZXMgd2hpY2gKLQkgKiB3aWxsIGJlIHJlbW92ZWQgYnkgdGhlIGVuZCBvZiB2YWN1dW1p bmcgc2hvdWxkIG5vdCBwcmVjbHVkZSB1cyBmcm9tCi0JICogb3Bwb3J0dW5pc3RpY2FsbHkgZnJl ZXppbmcuICBCZWNhdXNlIG9mIHRoYXQsIHdlIGRvIG5vdCBjbGVhcgotCSAqIGFsbF92aXNpYmxl IHdoZW4gd2Ugc2VlIExQX0RFQUQgaXRlbXMuICBXZSBmaXggdGhhdCBhdCB0aGUgZW5kIG9mIHRo ZQotCSAqIGZ1bmN0aW9uLCB3aGVuIHdlIHJldHVybiB0aGUgdmFsdWUgdG8gdGhlIGNhbGxlciwg c28gdGhhdCB0aGUgY2FsbGVyCi0JICogZG9lc24ndCBzZXQgdGhlIFZNIGJpdCBpbmNvcnJlY3Rs eS4KKwkgKiBEZWFkIHR1cGxlcyB3aGljaCB3aWxsIGJlIHJlbW92ZWQgYnkgdGhlIGVuZCBvZiB2 YWN1dW1pbmcgc2hvdWxkIG5vdAorCSAqIHByZWNsdWRlIHVzIGZyb20gb3Bwb3J0dW5pc3RpY2Fs bHkgZnJlZXppbmcsIHNvIHdlIGRvIG5vdCBjbGVhcgorCSAqIGFsbF92aXNpYmxlIHdoZW4gd2Ug c2VlIExQX0RFQUQgaXRlbXMuIFdlIGZpeCB0aGF0IGFmdGVyIGRldGVybWluaW5nCisJICogd2hl dGhlciBvciBub3QgdG8gZnJlZXplIGJ1dCBiZWZvcmUgZGVjaWRpbmcgd2hldGhlciBvciBub3Qg dG8gdXBkYXRlCisJICogdGhlIFZNIHNvIHRoYXQgd2UgZG9uJ3Qgc2V0IHRoZSBWTSBiaXQgaW5j b3JyZWN0bHkuCisJICoKKwkgKiBJZiBub3QgZnJlZXppbmcgb3IgdXBkYXRpbmcgdGhlIFZNLCB3 ZSBvdGhlcndpc2UgYXZvaWQgdGhlIGV4dHJhCisJICogYm9va2tlZXBpbmcuIEluaXRpYWxpemlu ZyBhbGxfdmlzaWJsZSB0byBmYWxzZSBhbGxvd3Mgc2tpcHBpbmcgdGhlIHdvcmsKKwkgKiB0byB1 cGRhdGUgdGhlbSBpbiBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKCkuCiAJ ICovCiAJaWYgKHByc3RhdGUuZnJlZXplKQogCXsKIAkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IHRy dWU7CiAJCXByc3RhdGUuYWxsX2Zyb3plbiA9IHRydWU7CiAJfQorCWVsc2UgaWYgKHByc3RhdGUu Y29uc2lkZXJfdXBkYXRlX3ZtKQorCXsKKwkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IHRydWU7CisJ CXByc3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNlOworCX0KIAllbHNlCiAJewotCQkvKgotCQkgKiBJ bml0aWFsaXppbmcgdG8gZmFsc2UgYWxsb3dzIHNraXBwaW5nIHRoZSB3b3JrIHRvIHVwZGF0ZSB0 aGVtIGluCi0JCSAqIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoKS4KLQkJ ICovCiAJCXByc3RhdGUuYWxsX3Zpc2libGUgPSBmYWxzZTsKIAkJcHJzdGF0ZS5hbGxfZnJvemVu ID0gZmFsc2U7CiAJfQogCiAJLyoKLQkgKiBUaGUgdmlzaWJpbGl0eSBjdXRvZmYgeGlkIGlzIHRo ZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUKLQkgKiBwYWdlLiAgSW4gdGhlIGNv bW1vbiBjYXNlLCB0aGlzIHdpbGwgYmUgc2V0IGFzIHRoZSBjb25mbGljdCBob3Jpem9uIHRoZQot CSAqIGNhbGxlciBjYW4gdXNlIGZvciB1cGRhdGluZyB0aGUgVk0uICBJZiwgYXQgdGhlIGVuZCBv ZiBmcmVlemluZyBhbmQKLQkgKiBwcnVuaW5nLCB0aGUgcGFnZSBpcyBhbGwtZnJvemVuLCB0aGVy ZSBpcyBubyBwb3NzaWJpbGl0eSB0aGF0IGFueQotCSAqIHJ1bm5pbmcgdHJhbnNhY3Rpb24gb24g dGhlIHN0YW5kYnkgZG9lcyBub3Qgc2VlIHR1cGxlcyBvbiB0aGUgcGFnZSBhcwotCSAqIGFsbC12 aXNpYmxlLCBzbyB0aGUgY29uZmxpY3QgaG9yaXpvbiByZW1haW5zIEludmFsaWRUcmFuc2FjdGlv bklkLgorCSAqIFRoZSB2aXNpYmlsaXR5IGN1dG9mZiB4aWQgaXMgdGhlIG5ld2VzdCB4bWluIG9m IGxpdmUsIGNvbW1pdHRlZCB0dXBsZXMKKwkgKiBvbGRlciB0aGFuIE9sZGVzdFhtaW4gb24gdGhl IHBhZ2UuIFRoaXMgZmllbGQgaXMgb25seSBrZXB0IHVwLXRvLWRhdGUKKwkgKiBpZiB0aGUgcGFn ZSBpcyBhbGwtdmlzaWJsZS4gQXMgc29vbiBhcyBhIHR1cGxlIGlzIGVuY291bnRlcmVkIHRoYXQg aXMKKwkgKiBub3QgdmlzaWJsZSB0byBhbGwsIHRoaXMgZmllbGQgaXMgdW5tYWludGFpbmVkLiBB cyBsb25nIGFzIGl0IGlzCisJICogbWFpbnRhaW5lZCwgaXQgY2FuIGJlIHVzZWQgdG8gY2FsY3Vs YXRlIHRoZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uLgorCSAqIFRoaXMgaXMgbW9zdCBsaWtl bHkgdG8gaGFwcGVuIHdoZW4gdXBkYXRpbmcgdGhlIFZNIGFuZC9vciBmcmVlemluZyBhbGwKKwkg KiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZS4gSXQgaXMgdXBkYXRlZCBiZWZvcmUgcmV0dXJuaW5n IHRvIHRoZSBjYWxsZXIKKwkgKiBiZWNhdXNlIHZhY3V1bSBkb2VzIGFzc2VydC1idWlsZCBvbmx5 IHZhbGlkYXRpb24gb24gdGhlIHBhZ2UgdXNpbmcgdGhpcworCSAqIGZpZWxkLgogCSAqLwogCXBy c3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKQEAg LTczNywxMCArNzYyLDExIEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJl bGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCiAJLyoKIAkgKiBFdmVuIGlmIHdlIGRvbid0IHBydW5l IGFueXRoaW5nLCBpZiB3ZSBmb3VuZCBhIG5ldyB2YWx1ZSBmb3IgdGhlCi0JICogcGRfcHJ1bmVf eGlkIGZpZWxkIG9yIHRoZSBwYWdlIHdhcyBtYXJrZWQgZnVsbCwgd2Ugd2lsbCB1cGRhdGUgdGhl IGhpbnQKLQkgKiBiaXQuCisJICogcGRfcHJ1bmVfeGlkIGZpZWxkIG9yIHRoZSBwYWdlIHdhcyBt YXJrZWQgZnVsbCwgd2Ugd2lsbCB1cGRhdGUgdGhvc2UKKwkgKiBoaW50IGJpdHMuCiAJICovCi0J ZG9faGludCA9ICgoUGFnZUhlYWRlcikgcGFnZSktPnBkX3BydW5lX3hpZCAhPSBwcnN0YXRlLm5l d19wcnVuZV94aWQgfHwKKwlkb19oaW50X2Z1bGxfb3JfcHJ1bmFibGUgPQorCQkoKFBhZ2VIZWFk ZXIpIHBhZ2UpLT5wZF9wcnVuZV94aWQgIT0gcHJzdGF0ZS5uZXdfcHJ1bmVfeGlkIHx8CiAJCVBh Z2VJc0Z1bGwocGFnZSk7CiAKIAkvKgpAQCAtNzg4LDcgKzgxNCw3IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJaWYg KFhMb2dDaGVja0J1ZmZlck5lZWRzQmFja3VwKGJ1ZmZlcikpCiAJCQkJCQkJZG9fZnJlZXplID0g dHJ1ZTsKIAkJCQkJfQotCQkJCQllbHNlIGlmIChkb19oaW50KQorCQkJCQllbHNlIGlmIChkb19o aW50X2Z1bGxfb3JfcHJ1bmFibGUpCiAJCQkJCXsKIAkJCQkJCWlmIChYTG9nSGludEJpdElzTmVl ZGVkKCkgJiYgWExvZ0NoZWNrQnVmZmVyTmVlZHNCYWNrdXAoYnVmZmVyKSkKIAkJCQkJCQlkb19m cmVlemUgPSB0cnVlOwpAQCAtODI3LDExICs4NTMsODQgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9m cmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCSAqLwogCX0KIAorCS8q CisJICogSXQgd2FzIGNvbnZlbmllbnQgdG8gaWdub3JlIExQX0RFQUQgaXRlbXMgaW4gYWxsX3Zp c2libGUgZWFybGllciBvbiB0bworCSAqIG1ha2UgdGhlIGNob2ljZSBvZiB3aGV0aGVyIG9yIG5v dCB0byBmcmVlemUgdGhlIHBhZ2UgdW5hZmZlY3RlZCBieSB0aGUKKwkgKiBzaG9ydC10ZXJtIHBy ZXNlbmNlIG9mIExQX0RFQUQgaXRlbXMuICBUaGVzZSBMUF9ERUFEIGl0ZW1zIHdlcmUKKwkgKiBl ZmZlY3RpdmVseSBhc3N1bWVkIHRvIGJlIExQX1VOVVNFRCBpdGVtcyBpbiB0aGUgbWFraW5nLiAg SXQgZG9lc24ndAorCSAqIG1hdHRlciB3aGljaCB2YWN1dW0gaGVhcCBwYXNzIChpbml0aWFsIHBh c3Mgb3IgZmluYWwgcGFzcykgZW5kcyB1cAorCSAqIHNldHRpbmcgdGhlIHBhZ2UgYWxsLWZyb3pl biwgYXMgbG9uZyBhcyB0aGUgb25nb2luZyBWQUNVVU0gZG9lcyBpdC4KKwkgKgorCSAqIE5vdyB0 aGF0IGZyZWV6aW5nIGhhcyBiZWVuIGZpbmFsaXplZCwgdW5zZXQgYWxsX3Zpc2libGUgaWYgdGhl cmUgYXJlCisJICogYW55IExQX0RFQUQgaXRlbXMgb24gdGhlIHBhZ2UuIEl0IG5lZWRzIHRvIHJl ZmxlY3QgdGhlIHByZXNlbnQgc3RhdGUgb2YKKwkgKiB0aGUgcGFnZSB3aGVuIHVzaW5nIGl0IHRv IGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0byB1cGRhdGUgdGhlIFZNLgorCSAqCisJICogS2Vl cCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSB3YXMgYWxsLWZyb3plbiBleGNlcHQg TFBfREVBRAorCSAqIGl0ZW1zIGZvciB0aGUgcHVycG9zZXMgb2YgY2FsY3VsYXRpbmcgdGhlIHNu YXBzaG90IGNvbmZsaWN0IGhvcml6b24sCisJICogdGhvdWdoLgorCSAqLworCWFsbF9mcm96ZW5f ZXhjZXB0X2xwX2RlYWQgPSBwcnN0YXRlLmFsbF9mcm96ZW47CisJaWYgKHByc3RhdGUubHBkZWFk X2l0ZW1zID4gMCkKKwl7CisJCXByc3RhdGUuYWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJcHJzdGF0 ZS5hbGxfZnJvemVuID0gZmFsc2U7CisJfQorCiAJQXNzZXJ0KCFwcnN0YXRlLmFsbF9mcm96ZW4g fHwgcHJzdGF0ZS5hbGxfdmlzaWJsZSk7CisKKwkvKgorCSAqIEhhbmRsZSBzZXR0aW5nIHZpc2li aWxpdHkgbWFwIGJpdCBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSAoYXMKKwkgKiBv ZiBsYXN0IGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIGNhbGwpLCBhbmQgZnJvbSBhbGxfdmlz aWJsZSBhbmQKKwkgKiBhbGxfZnJvemVuIHZhcmlhYmxlcy4KKwkgKi8KKwlpZiAocHJzdGF0ZS5j b25zaWRlcl91cGRhdGVfdm0pCisJeworCQkvKgorCQkgKiBDbGVhciBhbnkgVk0gY29ycnVwdGlv bi4gVGhpcyBkb2VzIG5vdCBuZWVkIHRvIGJlIGluIGEgY3JpdGljYWwKKwkJICogc2VjdGlvbiwg c28gd2UgZG8gaXQgZmlyc3QuIElmIFBEX0FMTF9WSVNJQkxFIGlzIGluY29ycmVjdGx5IHNldCwK KwkJICogd2UgbWF5IG1hcmsgdGhlIGhlYXAgcGFnZSBidWZmZXIgZGlydHkgaGVyZSBhbmQgY291 bGQgZW5kIHVwIGRvaW5nCisJCSAqIHNvIGFnYWluIGxhdGVyLiBUaGlzIGlzIG5vdCBhIGNvcnJl Y3RuZXNzIGlzc3VlIGFuZCBpcyBpbiB0aGUgcGF0aAorCQkgKiBvZiBWTSBjb3JydXB0aW9uLCBz byB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoZSBleHRyYQorCQkgKiBwZXJmb3JtYW5j ZSBvdmVyaGVhZC4KKwkJICovCisJCWlmIChpZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24o cmVsYXRpb24sCisJCQkJCQkJCQkJICAgYmxvY2tubywgYnVmZmVyLCBwYWdlLAorCQkJCQkJCQkJ CSAgIGJsa19rbm93bl9hdiwgcHJzdGF0ZS5scGRlYWRfaXRlbXMsIHZtYnVmZmVyKSkKKwkJewor CQkJLyogSWYgd2UgZml4IGNvcnJ1cHRpb24sIGRvbid0IHVwZGF0ZSB0aGUgVk0gZnVydGhlciAq LworCQl9CisKKwkJLyogRGV0ZXJtaW5lIGlmIHdlIGFjdHVhbGx5IG5lZWQgdG8gc2V0IHRoZSBW TSBhbmQgd2hpY2ggYml0cyB0byBzZXQuICovCisJCWVsc2UgaWYgKHByc3RhdGUuYWxsX3Zpc2li bGUgJiYKKwkJCQkgKCFibGtfa25vd25fYXYgfHwKKwkJCQkgIChwcnN0YXRlLmFsbF9mcm96ZW4g JiYgIVZNX0FMTF9GUk9aRU4ocmVsYXRpb24sIGJsb2Nrbm8sICZ2bWJ1ZmZlcikpKSkKKwkJewor CQkJdm1mbGFncyB8PSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOworCQkJaWYgKHByc3RhdGUu YWxsX2Zyb3plbikKKwkJCQl2bWZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKKwkJ fQorCX0KKworCWRvX3NldF92bSA9IHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFM7 CisKKwkvKgorCSAqIERvbid0IHNldCBQRF9BTExfVklTSUJMRSB1bmxlc3Mgd2UgYWxzbyBwbGFu IHRvIHNldCB0aGUgVk0uIFdoaWxlIGl0IGlzCisJICogY29ycmVjdCBmb3IgYSBoZWFwIHBhZ2Ug dG8gaGF2ZSBQRF9BTExfVklTSUJMRSBldmVuIGlmIHRoZSBWTSBpcyBub3QKKwkgKiBzZXQsIHdl IHN0cm9uZ2x5IHByZWZlciB0byBrZWVwIHRoZW0gaW4gc3luYy4KKwkgKgorCSAqIFByaW9yIHRv IFBvc3RncmVzIDE5LCBpdCB3YXMgcG9zc2libGUgZm9yIHRoZSBwYWdlLWxldmVsIGJpdCB0byBi ZSBzZXQKKwkgKiBhbmQgdGhlIFZNIGJpdCB0byBiZSBjbGVhci4gVGhpcyBjb3VsZCBoYXBwZW4g aWYgd2UgY3Jhc2hlZCBhZnRlcgorCSAqIHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgYnV0IGJlZm9y ZSBzZXR0aW5nIGJpdHMgaW4gdGhlIFZNLgorCSAqLworCXNldF9wZF9hbGxfdmlzaWJsZSA9IGRv X3NldF92bSAmJiAhUGFnZUlzQWxsVmlzaWJsZShwYWdlKTsKKworCS8qIFNhdmUgdGhlc2UgZm9y IHRoZSBjYWxsZXIgaW4gY2FzZSB3ZSBsYXRlciB6ZXJvIG91dCB2bWZsYWdzICovCisJcHJlc3Vs dC0+bmV3X3ZtYml0cyA9IHZtZmxhZ3M7CisKIAkvKiBBbnkgZXJyb3Igd2hpbGUgYXBwbHlpbmcg dGhlIGNoYW5nZXMgaXMgY3JpdGljYWwgKi8KIAlTVEFSVF9DUklUX1NFQ1RJT04oKTsKIAotCWlm IChkb19oaW50KQorCWlmIChkb19oaW50X2Z1bGxfb3JfcHJ1bmFibGUpCiAJewogCQkvKgogCQkg KiBVcGRhdGUgdGhlIHBhZ2UncyBwZF9wcnVuZV94aWQgZmllbGQgdG8gZWl0aGVyIHplcm8sIG9y IHRoZSBsb3dlc3QKQEAgLTg0NywxNSArOTQ2LDE2IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQlQYWdlQ2xlYXJGdWxsKHBh Z2UpOwogCiAJCS8qCi0JCSAqIElmIHRoYXQncyBhbGwgd2UgaGFkIHRvIGRvIHRvIHRoZSBwYWdl LCB0aGlzIGlzIGEgbm9uLVdBTC1sb2dnZWQKLQkJICogaGludC4gIElmIHdlIGFyZSBnb2luZyB0 byBmcmVlemUgb3IgcHJ1bmUgdGhlIHBhZ2UsIHdlIHdpbGwgbWFyawotCQkgKiB0aGUgYnVmZmVy IGRpcnR5IGJlbG93LgorCQkgKiBJZiB3ZSBhcmUgX29ubHlfIHNldHRpbmcgdGhlIHBydW5lX3hp ZCBvciBQRF9QQUdFX0ZVTEwgaGludCwgdGhlbgorCQkgKiB0aGlzIGlzIGEgbm9uLVdBTC1sb2dn ZWQgaGludC4gIElmIHdlIGFyZSBnb2luZyB0byBmcmVlemUgb3IgcHJ1bmUKKwkJICogdHVwbGVz IG9uIHRoZSBwYWdlIG9yIHNldCBQRF9BTExfVklTSUJMRSwgd2Ugd2lsbCBtYXJrIHRoZSBidWZm ZXIKKwkJICogZGlydHkgYW5kIGVtaXQgV0FMIGJlbG93LgogCQkgKi8KLQkJaWYgKCFkb19mcmVl emUgJiYgIWRvX3BydW5lKQorCQlpZiAoIWRvX3BydW5lICYmICFkb19mcmVlemUgJiYgIXNldF9w ZF9hbGxfdmlzaWJsZSkKIAkJCU1hcmtCdWZmZXJEaXJ0eUhpbnQoYnVmZmVyLCB0cnVlKTsKIAl9 CiAKLQlpZiAoZG9fcHJ1bmUgfHwgZG9fZnJlZXplKQorCWlmIChkb19wcnVuZSB8fCBkb19mcmVl emUgfHwgZG9fc2V0X3ZtKQogCXsKIAkJLyogQXBwbHkgdGhlIHBsYW5uZWQgaXRlbSBjaGFuZ2Vz IGFuZCByZXBhaXIgcGFnZSBmcmFnbWVudGF0aW9uLiAqLwogCQlpZiAoZG9fcHJ1bmUpCkBAIC04 NjksMTIgKzk2OSw0OCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxh dGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJaWYgKGRvX2ZyZWV6ZSkKIAkJCWhlYXBfZnJlZXplX3By ZXBhcmVkX3R1cGxlcyhidWZmZXIsIHByc3RhdGUuZnJvemVuLCBwcnN0YXRlLm5mcm96ZW4pOwog Ci0JCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOworCQlpZiAoc2V0X3BkX2FsbF92aXNpYmxlKQor CQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CisKKwkJLyoKKwkJICogV2Ugb25seSBzZXQgUERf QUxMX1ZJU0lCTEUgaWYgd2UgYWxzbyBzZXQgdGhlIFZNLCBhbmQgc2luY2Ugc2V0dGluZworCQkg KiB0aGUgVk0gcmVxdWlyZXMgZW1pdHRpbmcgV0FMLCBNYXJrQnVmZmVyRGlydHlIaW50KCkgaXNu J3QKKwkJICogYXBwcm9wcmlhdGUgaGVyZS4KKwkJICovCisJCWlmIChkb19wcnVuZSB8fCBkb19m cmVlemUgfHwgc2V0X3BkX2FsbF92aXNpYmxlKQorCQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7 CisKKwkJaWYgKGRvX3NldF92bSkKKwkJeworCQkJQXNzZXJ0KFBhZ2VJc0FsbFZpc2libGUocGFn ZSkpOworCQkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfRVhDTFVTSVZFKTsKKwkJ CW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMocmVsYXRpb24sIGJsb2Nrbm8s CisJCQkJCQkJCQkJCQkgIHZtYnVmZmVyLCB2bWZsYWdzKTsKKworCQkJaWYgKG9sZF92bWJpdHMg PT0gdm1mbGFncykKKwkJCXsKKwkJCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19V TkxPQ0spOworCQkJCWRvX3NldF92bSA9IGZhbHNlOworCQkJCS8qIDAgb3V0IHZtZmxhZ3Mgc28g d2UgZG9uJ3QgZW1pdCBXQUwgdG8gdXBkYXRlIHRoZSBWTSAqLworCQkJCXZtZmxhZ3MgPSAwOwor CQkJfQorCQl9CisKKwkJLyoKKwkJICogSXQgc2hvdWxkIG5ldmVyIGJlIHRoZSBjYXNlIHRoYXQg UERfQUxMX1ZJU0lCTEUgaXMgbm90IHNldCBhbmQgdGhlCisJCSAqIFZNIGlzIHNldC4gT3IsIGlm IGl0IHdlcmUsIHdlIHNob3VsZCBoYXZlIGNhdWdodCBpdCBlYXJsaWVyIHdoZW4KKwkJICogZmlu ZGluZyBhbmQgZml4aW5nIFZNIGNvcnJ1cHRpb24uIFNvLCBpZiB3ZSBmb3VuZCBvdXQgdGhlIFZN IHdhcworCQkgKiBhbHJlYWR5IHNldCBhYm92ZSwgd2Ugc2hvdWxkIGhhdmUgZm91bmQgUERfQUxM X1ZJU0lCTEUgc2V0IGVhcmxpZXIuCisJCSAqLworCQlBc3NlcnQoIXNldF9wZF9hbGxfdmlzaWJs ZSB8fCBkb19zZXRfdm0pOwogCiAJCS8qCi0JCSAqIEVtaXQgYSBXQUwgWExPR19IRUFQMl9QUlVO RV9GUkVFWkUgcmVjb3JkIHNob3dpbmcgd2hhdCB3ZSBkaWQKKwkJICogRW1pdCBhIFdBTCBYTE9H X0hFQVAyX1BSVU5FX0ZSRUVaRSByZWNvcmQgc2hvd2luZyB3aGF0IHdlIGRpZC4gSWYKKwkJICog d2Ugd2VyZSBvbmx5IHVwZGF0aW5nIHRoZSBWTSBhbmQgaXQgdHVybnMgb3V0IGl0IHdhcyBhbHJl YWR5IHNldCwKKwkJICogd2Ugd2lsbCBoYXZlIHVuc2V0IGRvX3NldF92bSBlYXJsaWVyLiBBcyBz dWNoLCBjaGVjayBpdCBhZ2FpbgorCQkgKiBiZWZvcmUgZW1pdHRpbmcgdGhlIHJlY29yZC4KIAkJ ICovCi0JCWlmIChSZWxhdGlvbk5lZWRzV0FMKHJlbGF0aW9uKSkKKwkJaWYgKFJlbGF0aW9uTmVl ZHNXQUwocmVsYXRpb24pICYmIChkb19zZXRfdm0gfHwgZG9fcHJ1bmUgfHwgZG9fZnJlZXplKSkK IAkJewogCQkJLyoKIAkJCSAqIFRoZSBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiBmb3IgdGhlIHdo b2xlIHJlY29yZCBzaG91bGQgYmUgdGhlCkBAIC04ODYsMzUgKzEwMjIsNTYgQEAgaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQkg KiBvbiB0aGUgc3RhbmRieSB3aXRoIHhpZHMgb2xkZXIgdGhhbiB0aGUgeW91bmdlc3QgdHVwbGUg dGhpcwogCQkJICogcmVjb3JkIHdpbGwgZnJlZXplIHdpbGwgY29uZmxpY3QuCiAJCQkgKi8KLQkJ CVRyYW5zYWN0aW9uSWQgZnJ6X2NvbmZsaWN0X2hvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25J ZDsKLQkJCVRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkOworCQkJVHJhbnNhY3Rpb25JZCBjb25m bGljdF94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKworCQkJLyoKKwkJCSAqIElmIHdlIGFy ZSB1cGRhdGluZyB0aGUgVk0sIHRoZSBjb25mbGljdCBob3Jpem9uIGlzIGFsbW9zdAorCQkJICog YWx3YXlzIHRoZSB2aXNpYmlsaXR5IGN1dG9mZiBYSUQuCisJCQkgKgorCQkJICogU2VwYXJhdGVs eSwgaWYgd2UgYXJlIGZyZWV6aW5nIGFueSB0dXBsZXMsIGFzIGFuIG9wdGltaXphdGlvbiwKKwkJ CSAqIHdlIGNhbiB1c2UgdGhlIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCBhcyB0aGUgY29uZmxpY3Qg aG9yaXpvbiBpZgorCQkJICogdGhlIHBhZ2Ugd2lsbCBiZSBhbGwtZnJvemVuLiBUaGlzIGlzIHRy dWUgZXZlbiBpZiB0aGVyZSBhcmUKKwkJCSAqIExQX0RFQUQgbGluZSBwb2ludGVycyBiZWNhdXNl IHdlIGlnbm9yZWQgdGhvc2Ugd2hlbiBtYWludGFpbmluZworCQkJICogdGhlIHZpc2liaWxpdHlf Y3V0b2ZmX3hpZC4KKwkJCSAqLworCQkJaWYgKGRvX3NldF92bSB8fCAoZG9fZnJlZXplICYmIGFs bF9mcm96ZW5fZXhjZXB0X2xwX2RlYWQpKQorCQkJCWNvbmZsaWN0X3hpZCA9IHByc3RhdGUudmlz aWJpbGl0eV9jdXRvZmZfeGlkOwogCiAJCQkvKgotCQkJICogV2UgY2FuIHVzZSB0aGUgdmlzaWJp bGl0eV9jdXRvZmZfeGlkIGFzIG91ciBjdXRvZmYgZm9yCi0JCQkgKiBjb25mbGljdHMgd2hlbiB0 aGUgd2hvbGUgcGFnZSBpcyBlbGlnaWJsZSB0byBiZWNvbWUgYWxsLWZyb3plbgotCQkJICogaW4g dGhlIFZNIG9uY2Ugd2UncmUgZG9uZSB3aXRoIGl0LiAgT3RoZXJ3aXNlIHdlIGdlbmVyYXRlIGEK LQkJCSAqIGNvbnNlcnZhdGl2ZSBjdXRvZmYgYnkgc3RlcHBpbmcgYmFjayBmcm9tIE9sZGVzdFht aW4uCisJCQkgKiBPdGhlcndpc2UsIGlmIHdlIGFyZSBmcmVlemluZyBidXQgdGhlIHBhZ2Ugd291 bGQgbm90IGJlCisJCQkgKiBhbGwtZnJvemVuLCB3ZSBoYXZlIHRvIHVzZSB0aGUgbW9yZSBwZXNz aW1pc3RpYyBob3Jpem9uIG9mCisJCQkgKiBPbGRlc3RYbWluLCB3aGljaCBtYXkgYmUgbmV3ZXIg dGhhbiB0aGUgbmV3ZXN0IHR1cGxlIHdlIGZyb3plLgorCQkJICogV2UgY3VycmVudGx5IGRvbid0 IHRyYWNrIHRoZSBuZXdlc3QgdHVwbGUgd2UgZnJvemUuCiAJCQkgKi8KLQkJCWlmIChkb19mcmVl emUpCisJCQllbHNlIGlmIChkb19mcmVlemUpCiAJCQl7Ci0JCQkJaWYgKHByc3RhdGUuYWxsX3Zp c2libGUgJiYgcHJzdGF0ZS5hbGxfZnJvemVuKQotCQkJCQlmcnpfY29uZmxpY3RfaG9yaXpvbiA9 IHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkOwotCQkJCWVsc2UKLQkJCQl7Ci0JCQkJCS8q IEF2b2lkcyBmYWxzZSBjb25mbGljdHMgd2hlbiBob3Rfc3RhbmRieV9mZWVkYmFjayBpbiB1c2Ug Ki8KLQkJCQkJZnJ6X2NvbmZsaWN0X2hvcml6b24gPSBwcnN0YXRlLmN1dG9mZnMtPk9sZGVzdFht aW47Ci0JCQkJCVRyYW5zYWN0aW9uSWRSZXRyZWF0KGZyel9jb25mbGljdF9ob3Jpem9uKTsKLQkJ CQl9CisJCQkJY29uZmxpY3RfeGlkID0gcHJzdGF0ZS5jdXRvZmZzLT5PbGRlc3RYbWluOworCQkJ CVRyYW5zYWN0aW9uSWRSZXRyZWF0KGNvbmZsaWN0X3hpZCk7CiAJCQl9CiAKLQkJCWlmIChUcmFu c2FjdGlvbklkRm9sbG93cyhmcnpfY29uZmxpY3RfaG9yaXpvbiwgcHJzdGF0ZS5sYXRlc3RfeGlk X3JlbW92ZWQpKQotCQkJCWNvbmZsaWN0X3hpZCA9IGZyel9jb25mbGljdF9ob3Jpem9uOwotCQkJ ZWxzZQorCQkJLyoKKwkJCSAqIElmIHdlIGFyZSByZW1vdmluZyB0dXBsZXMgd2l0aCBhIHlvdW5n ZXIgeG1heCB0aGFuIG91ciBzbyBmYXIKKwkJCSAqIGNhbGN1bGF0ZWQgY29uZmxpY3RfeGlkLCB3 ZSBtdXN0IHVzZSB0aGlzIGFzIG91ciBob3Jpem9uLgorCQkJICovCisJCQlpZiAoVHJhbnNhY3Rp b25JZEZvbGxvd3MocHJzdGF0ZS5sYXRlc3RfeGlkX3JlbW92ZWQsIGNvbmZsaWN0X3hpZCkpCiAJ CQkJY29uZmxpY3RfeGlkID0gcHJzdGF0ZS5sYXRlc3RfeGlkX3JlbW92ZWQ7CiAKKwkJCS8qCisJ CQkgKiBXZSBjYW4gb21pdCB0aGUgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbiBpZiB3ZSBhcmUg bm90IHBydW5pbmcKKwkJCSAqIG9yIGZyZWV6aW5nIGFueSB0dXBsZXMgYW5kIGFyZSBzZXR0aW5n IGFuIGFscmVhZHkgYWxsLXZpc2libGUKKwkJCSAqIHBhZ2UgYWxsLWZyb3plbiBpbiB0aGUgVk0u IEluIHRoaXMgY2FzZSwgYWxsIG9mIHRoZSB0dXBsZXMgb24KKwkJCSAqIHRoZSBwYWdlIG11c3Qg YWxyZWFkeSBiZSB2aXNpYmxlIHRvIGFsbCBNVkNDIHNuYXBzaG90cyBvbiB0aGUKKwkJCSAqIHN0 YW5kYnkuCisJCQkgKi8KKwkJCWlmICghZG9fcHJ1bmUgJiYgIWRvX2ZyZWV6ZSAmJiBkb19zZXRf dm0gJiYKKwkJCQlibGtfa25vd25fYXYgJiYgKHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQX0FMTF9G Uk9aRU4pKQorCQkJCWNvbmZsaWN0X3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOworCiAJCQls b2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKHJlbGF0aW9uLCBidWZmZXIsCiAJCQkJCQkJCQkgIGZh bHNlLAotCQkJCQkJCQkJICBJbnZhbGlkQnVmZmVyLCAwLCBmYWxzZSwKKwkJCQkJCQkJCSAgdm1i dWZmZXIsCisJCQkJCQkJCQkgIHZtZmxhZ3MsCisJCQkJCQkJCQkgIHNldF9wZF9hbGxfdmlzaWJs ZSwKIAkJCQkJCQkJCSAgY29uZmxpY3RfeGlkLAogCQkJCQkJCQkJICB0cnVlLCByZWFzb24sCiAJ CQkJCQkJCQkgIHByc3RhdGUuZnJvemVuLCBwcnN0YXRlLm5mcm96ZW4sCkBAIC05MjYsMTI0ICsx MDgzLDU1IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBC dWZmZXIgYnVmZmVyLAogCiAJRU5EX0NSSVRfU0VDVElPTigpOwogCi0JLyogQ29weSBpbmZvcm1h dGlvbiBiYWNrIGZvciBjYWxsZXIgKi8KLQlwcmVzdWx0LT5uZGVsZXRlZCA9IHByc3RhdGUubmRl bGV0ZWQ7Ci0JcHJlc3VsdC0+bm5ld2xwZGVhZCA9IHByc3RhdGUubmRlYWQ7Ci0JcHJlc3VsdC0+ bmZyb3plbiA9IHByc3RhdGUubmZyb3plbjsKLQlwcmVzdWx0LT5saXZlX3R1cGxlcyA9IHByc3Rh dGUubGl2ZV90dXBsZXM7Ci0JcHJlc3VsdC0+cmVjZW50bHlfZGVhZF90dXBsZXMgPSBwcnN0YXRl LnJlY2VudGx5X2RlYWRfdHVwbGVzOwotCi0JLyoKLQkgKiBJdCB3YXMgY29udmVuaWVudCB0byBp Z25vcmUgTFBfREVBRCBpdGVtcyBpbiBhbGxfdmlzaWJsZSBlYXJsaWVyIG9uIHRvCi0JICogbWFr ZSB0aGUgY2hvaWNlIG9mIHdoZXRoZXIgb3Igbm90IHRvIGZyZWV6ZSB0aGUgcGFnZSB1bmFmZmVj dGVkIGJ5IHRoZQotCSAqIHNob3J0LXRlcm0gcHJlc2VuY2Ugb2YgTFBfREVBRCBpdGVtcy4gIFRo ZXNlIExQX0RFQUQgaXRlbXMgd2VyZQotCSAqIGVmZmVjdGl2ZWx5IGFzc3VtZWQgdG8gYmUgTFBf VU5VU0VEIGl0ZW1zIGluIHRoZSBtYWtpbmcuICBJdCBkb2Vzbid0Ci0JICogbWF0dGVyIHdoaWNo IHZhY3V1bSBoZWFwIHBhc3MgKGluaXRpYWwgcGFzcyBvciBmaW5hbCBwYXNzKSBlbmRzIHVwCi0J ICogc2V0dGluZyB0aGUgcGFnZSBhbGwtZnJvemVuLCBhcyBsb25nIGFzIHRoZSBvbmdvaW5nIFZB Q1VVTSBkb2VzIGl0LgotCSAqCi0JICogTm93IHRoYXQgZnJlZXppbmcgaGFzIGJlZW4gZmluYWxp emVkLCB1bnNldCBhbGxfdmlzaWJsZSBpZiB0aGVyZSBhcmUKLQkgKiBhbnkgTFBfREVBRCBpdGVt cyBvbiB0aGUgcGFnZS4gIEl0IG5lZWRzIHRvIHJlZmxlY3QgdGhlIHByZXNlbnQgc3RhdGUKLQkg KiBvZiB0aGUgcGFnZSwgYXMgZXhwZWN0ZWQgZm9yIHVwZGF0aW5nIHRoZSB2aXNpYmlsaXR5IG1h cC4KLQkgKi8KLQlpZiAocHJzdGF0ZS5hbGxfdmlzaWJsZSAmJiBwcnN0YXRlLmxwZGVhZF9pdGVt cyA9PSAwKQotCXsKLQkJcHJlc3VsdC0+YWxsX3Zpc2libGUgPSBwcnN0YXRlLmFsbF92aXNpYmxl OwotCQlwcmVzdWx0LT5hbGxfZnJvemVuID0gcHJzdGF0ZS5hbGxfZnJvemVuOwotCX0KLQllbHNl Ci0JewotCQlwcmVzdWx0LT5hbGxfdmlzaWJsZSA9IGZhbHNlOwotCQlwcmVzdWx0LT5hbGxfZnJv emVuID0gZmFsc2U7Ci0JfQotCi0JcHJlc3VsdC0+aGFzdHVwID0gcHJzdGF0ZS5oYXN0dXA7CisJ aWYgKGRvX3NldF92bSkKKwkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NL KTsKIAotCS8qCi0JICogSWYgdXBkYXRpbmcgdGhlIHZpc2liaWxpdHkgbWFwLCB0aGUgY29uZmxp Y3QgaG9yaXpvbiBmb3IgdGhhdCByZWNvcmQKLQkgKiBtdXN0IGJlIHRoZSBuZXdlc3QgeG1pbiBv biB0aGUgcGFnZS4gIEhvd2V2ZXIsIGlmIHRoZSBwYWdlIGlzCi0JICogY29tcGxldGVseSBmcm96 ZW4sIHRoZXJlIGNhbiBiZSBubyBjb25mbGljdCBhbmQgdGhlIHZtX2NvbmZsaWN0X2hvcml6b24K LQkgKiBzaG91bGQgcmVtYWluIEludmFsaWRUcmFuc2FjdGlvbklkLiAgVGhpcyBpbmNsdWRlcyB0 aGUgY2FzZSB0aGF0IHdlCi0JICoganVzdCBmcm96ZSBhbGwgdGhlIHR1cGxlczsgdGhlIHBydW5l LWZyZWV6ZSByZWNvcmQgaW5jbHVkZWQgdGhlCi0JICogY29uZmxpY3QgWElEIGFscmVhZHkgc28g dGhlIFZNIHVwZGF0ZSByZWNvcmQgZG9lc24ndCBuZWVkIGl0LgotCSAqLwotCWlmIChwcmVzdWx0 LT5hbGxfZnJvemVuKQotCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0gSW52YWxpZFRy YW5zYWN0aW9uSWQ7Ci0JZWxzZQotCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0gcHJz dGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisJQXNzZXJ0KCFwcnN0YXRlLmFsbF92aXNpYmxl IHx8IChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKSk7CiAKIAkvKgotCSAqIEhhbmRsZSBzZXR0 aW5nIHZpc2liaWxpdHkgbWFwIGJpdCBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSAo YXMKLQkgKiBvZiBsYXN0IGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIGNhbGwpLCBhbmQgZnJv bSBhbGxfdmlzaWJsZSBhbmQKLQkgKiBhbGxfZnJvemVuIHZhcmlhYmxlcy4KKwkgKiBWQUNVVU0g d2lsbCBjYWxsIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSgpIGR1cmluZyB0aGUgc2Vjb25kIHBh c3Mgb3ZlcgorCSAqIHRoZSBoZWFwIHRvIGRldGVybWluZSBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zy b3plbiBmb3IgdGhlIHBhZ2UgLS0gdGhpcworCSAqIGlzIGEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBv ZiB0aGUgbG9naWMgZnJvbSB0aGlzIGZ1bmN0aW9uLiAgTm93IHRoYXQKKwkgKiB3ZSd2ZSBmaW5p c2hlZCBwcnVuaW5nIGFuZCBmcmVlemluZywgbWFrZSBzdXJlIHRoYXQgd2UncmUgaW4gdG90YWwK KwkgKiBhZ3JlZW1lbnQgd2l0aCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKSB1c2luZyBhbiBh c3NlcnRpb24uIFdlIHdpbGwKKwkgKiBoYXZlIGFscmVhZHkgc2V0IHRoZSBwYWdlIGluIHRoZSBW TSwgc28gdGhpcyBhc3NlcnRpb24gd2lsbCBvbmx5IGxldAorCSAqIHlvdSBrbm93IHRoYXQgeW91 J3ZlIGFscmVhZHkgZG9uZSBzb21ldGhpbmcgd3JvbmcuCiAJICovCi0JaWYgKG9wdGlvbnMgJiBI RUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZNKQorI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKwlp ZiAocHJzdGF0ZS5hbGxfdmlzaWJsZSkKIAl7Ci0JCWlmIChpZGVudGlmeV9hbmRfZml4X3ZtX2Nv cnJ1cHRpb24ocmVsYXRpb24sCi0JCQkJCQkJCQkJICAgYmxvY2tubywgYnVmZmVyLCBwYWdlLAot CQkJCQkJCQkJCSAgIGJsa19rbm93bl9hdiwKLQkJCQkJCQkJCQkgICBwcnN0YXRlLmxwZGVhZF9p dGVtcywgdm1idWZmZXIpKQotCQl7Ci0JCQkvKiBJZiB3ZSBmaXggY29ycnVwdGlvbiwgZG9uJ3Qg dXBkYXRlIHRoZSBWTSBmdXJ0aGVyICovCi0JCX0KKwkJVHJhbnNhY3Rpb25JZCBkZWJ1Z19jdXRv ZmY7CisJCWJvb2wJCWRlYnVnX2FsbF9mcm96ZW47CiAKLQkJLyoKLQkJICogSWYgdGhlIHBhZ2Ug aXNuJ3QgeWV0IG1hcmtlZCBhbGwtdmlzaWJsZSBpbiB0aGUgVk0gb3IgaXQgaXMgYW5kCi0JCSAq IG5lZWRzIHRvIG1lIG1hcmtlZCBhbGwtZnJvemVuLCB1cGRhdGUgdGhlIFZNIE5vdGUgdGhhdCBh bGxfZnJvemVuCi0JCSAqIGlzIG9ubHkgdmFsaWQgaWYgYWxsX3Zpc2libGUgaXMgdHJ1ZSwgc28g d2UgbXVzdCBjaGVjayBib3RoCi0JCSAqIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuLgotCQkg Ki8KLQkJZWxzZSBpZiAocHJlc3VsdC0+YWxsX3Zpc2libGUgJiYKLQkJCQkgKCFibGtfa25vd25f YXYgfHwKLQkJCQkgIChwcmVzdWx0LT5hbGxfZnJvemVuICYmICFWTV9BTExfRlJPWkVOKHJlbGF0 aW9uLCBibG9ja25vLCAmdm1idWZmZXIpKSkpCi0JCXsKLQkJCUFzc2VydChwcnN0YXRlLmxwZGVh ZF9pdGVtcyA9PSAwKTsKLQkJCXZtZmxhZ3MgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwor CQlBc3NlcnQoY3V0b2Zmcyk7CiAKLQkJCS8qCi0JCQkgKiBJZiB0aGUgcGFnZSBpcyBhbGwtZnJv emVuLCB3ZSBjYW4gcGFzcyBJbnZhbGlkVHJhbnNhY3Rpb25JZCBhcwotCQkJICogb3VyIGN1dG9m Zl94aWQsIHNpbmNlIGEgc25hcHNob3RDb25mbGljdEhvcml6b24gc3VmZmljaWVudCB0bwotCQkJ ICogbWFrZSBldmVyeXRoaW5nIHNhZmUgZm9yIFJFRE8gd2FzIGxvZ2dlZCB3aGVuIHRoZSBwYWdl J3MgdHVwbGVzCi0JCQkgKiB3ZXJlIGZyb3plbi4KLQkJCSAqLwotCQkJaWYgKHByZXN1bHQtPmFs bF9mcm96ZW4pCi0JCQl7Ci0JCQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChwcmVzdWx0 LT52bV9jb25mbGljdF9ob3Jpem9uKSk7Ci0JCQkJdm1mbGFncyB8PSBWSVNJQklMSVRZTUFQX0FM TF9GUk9aRU47Ci0JCQl9CisJCUFzc2VydChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKTsKIAot CQkJLyoKLQkJCSAqIEl0J3MgcG9zc2libGUgZm9yIHRoZSBWTSBiaXQgdG8gYmUgY2xlYXIgYW5k IHRoZSBwYWdlLWxldmVsIGJpdAotCQkJICogdG8gYmUgc2V0IGlmIGNoZWNrc3VtcyBhcmUgbm90 IGVuYWJsZWQuCi0JCQkgKgotCQkJICogQW5kIGV2ZW4gaWYgd2UgYXJlIGp1c3QgcGxhbm5pbmcg dG8gdXBkYXRlIHRoZSBmcm96ZW4gYml0IGluCi0JCQkgKiB0aGUgVk0sIHdlIHNob3VsZG4ndCBy ZWx5IG9uIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSBhcyBhCi0JCQkgKiBwcm94eSBmb3Ig dGhlIHBhZ2UtbGV2ZWwgUERfQUxMX1ZJU0lCTEUgYml0IGJlaW5nIHNldCwgc2luY2UgaXQKLQkJ CSAqIG1pZ2h0IGhhdmUgYmVjb21lIHN0YWxlLgotCQkJICoKLQkJCSAqIElmIHRoZSBoZWFwIHBh Z2UgaXMgYWxsLXZpc2libGUgYnV0IHRoZSBWTSBiaXQgaXMgbm90IHNldCwgd2UKLQkJCSAqIGRv bid0IG5lZWQgdG8gZGlydHkgdGhlIGhlYXAgcGFnZS4gIEhvd2V2ZXIsIGlmIGNoZWNrc3VtcyBh cmUKLQkJCSAqIGVuYWJsZWQsIHdlIGRvIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGhlYXAg cGFnZSBpcyBkaXJ0aWVkCi0JCQkgKiBiZWZvcmUgcGFzc2luZyBpdCB0byB2aXNpYmlsaXR5bWFw X3NldCgpLCBiZWNhdXNlIGl0IG1heSBiZQotCQkJICogbG9nZ2VkLgotCQkJICovCi0JCQlpZiAo IVBhZ2VJc0FsbFZpc2libGUocGFnZSkgfHwgWExvZ0hpbnRCaXRJc05lZWRlZCgpKQotCQkJewot CQkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwotCQkJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIp OwotCQkJfQorCQlpZiAoIWhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShyZWxhdGlvbiwgYnVmZmVy LAorCQkJCQkJCQkJICBjdXRvZmZzLT5PbGRlc3RYbWluLAorCQkJCQkJCQkJICAmZGVidWdfYWxs X2Zyb3plbiwKKwkJCQkJCQkJCSAgJmRlYnVnX2N1dG9mZiwgb2ZmX2xvYykpCisJCQlBc3NlcnQo ZmFsc2UpOwogCi0JCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXQocmVsYXRpb24sIGJs b2Nrbm8sIGJ1ZmZlciwgSW52YWxpZFhMb2dSZWNQdHIsCi0JCQkJCQkJCQkJICAgdm1idWZmZXIs IHByZXN1bHQtPnZtX2NvbmZsaWN0X2hvcml6b24sCi0JCQkJCQkJCQkJICAgdm1mbGFncyk7Ci0J CX0KKwkJQXNzZXJ0KHByc3RhdGUuYWxsX2Zyb3plbiA9PSBkZWJ1Z19hbGxfZnJvemVuKTsKKwor CQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKGRlYnVnX2N1dG9mZikgfHwKKwkJCSAgIGRl YnVnX2N1dG9mZiA9PSBwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCk7CiAJfQorI2VuZGlm CiAKKwkvKiBDb3B5IGluZm9ybWF0aW9uIGJhY2sgZm9yIGNhbGxlciAqLworCXByZXN1bHQtPm5k ZWxldGVkID0gcHJzdGF0ZS5uZGVsZXRlZDsKKwlwcmVzdWx0LT5ubmV3bHBkZWFkID0gcHJzdGF0 ZS5uZGVhZDsKKwlwcmVzdWx0LT5uZnJvemVuID0gcHJzdGF0ZS5uZnJvemVuOworCXByZXN1bHQt PmxpdmVfdHVwbGVzID0gcHJzdGF0ZS5saXZlX3R1cGxlczsKKwlwcmVzdWx0LT5yZWNlbnRseV9k ZWFkX3R1cGxlcyA9IHByc3RhdGUucmVjZW50bHlfZGVhZF90dXBsZXM7CisJcHJlc3VsdC0+b2xk X3ZtYml0cyA9IG9sZF92bWJpdHM7CisJLyogbmV3X3ZtYml0cyB3YXMgc2V0IGFib3ZlICovCisJ cHJlc3VsdC0+aGFzdHVwID0gcHJzdGF0ZS5oYXN0dXA7CiAJcHJlc3VsdC0+bHBkZWFkX2l0ZW1z ID0gcHJzdGF0ZS5scGRlYWRfaXRlbXM7CiAJLyogdGhlIHByZXN1bHQtPmRlYWRvZmZzZXRzIGFy cmF5IHdhcyBhbHJlYWR5IGZpbGxlZCBpbiAqLwogCi0JcHJlc3VsdC0+b2xkX3ZtYml0cyA9IG9s ZF92bWJpdHM7Ci0JcHJlc3VsdC0+bmV3X3ZtYml0cyA9IHZtZmxhZ3M7Ci0KIAlpZiAocHJzdGF0 ZS5mcmVlemUpCiAJewogCQlpZiAocHJlc3VsdC0+bmZyb3plbiA+IDApCkBAIC0xNjI1LDcgKzE3 MTMsMTIgQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQYWdlIHBhZ2Us IFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWIKIAkJCWJyZWFrOwogCX0KIAotCS8qIENv bnNpZGVyIGZyZWV6aW5nIGFueSBub3JtYWwgdHVwbGVzIHdoaWNoIHdpbGwgbm90IGJlIHJlbW92 ZWQgKi8KKwkvKgorCSAqIENvbnNpZGVyIGZyZWV6aW5nIGFueSBub3JtYWwgdHVwbGVzIHdoaWNo IHdpbGwgbm90IGJlIHJlbW92ZWQuCisJICogUmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB3 ZSB3YW50IHRvIGZyZWV6ZSB0aGUgdHVwbGVzLCBpZiB3ZSB3YW50CisJICogdG8gdXBkYXRlIHRo ZSBWTSwgd2UgaGF2ZSB0byBjYWxsIGhlYXBfcHJlcGFyZV9mcmVlemVfdHVwbGUoKSBvbiBldmVy eQorCSAqIHR1cGxlIHRvIGtub3cgd2hldGhlciBvciBub3QgdGhlIHBhZ2Ugd2lsbCBiZSB0b3Rh bGx5IGZyb3plbi4KKwkgKi8KIAlpZiAocHJzdGF0ZS0+ZnJlZXplKQogCXsKIAkJYm9vbAkJdG90 YWxseV9mcm96ZW47CkBAIC0yMTg4LDcgKzIyODEsNyBAQCBoZWFwX2xvZ19mcmVlemVfcGxhbihI ZWFwVHVwbGVGcmVlemUgKnR1cGxlcywgaW50IG50dXBsZXMsCiAgKiAtIFJlYXBpbmc6IER1cmlu ZyB2YWN1dW0gcGhhc2UgSUlJLCBpdGVtcyB0aGF0IGFyZSBhbHJlYWR5IExQX0RFQUQgYXJlCiAg KiAgIG1hcmtlZCBhcyB1bnVzZWQuCiAgKgotICogLSBWTSB1cGRhdGVzOiBBZnRlciB2YWN1dW0g cGhhc2UgSUlJLCB0aGUgaGVhcCBwYWdlIG1heSBiZSBtYXJrZWQKKyAqIC0gVk0gdXBkYXRlczog QWZ0ZXIgdmFjdXVtIHBoYXNlcyBJIGFuZCBJSUksIHRoZSBoZWFwIHBhZ2UgbWF5IGJlIG1hcmtl ZAogICogICBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbi4KICAqCiAgKiBUaGVzZSBjaGFuZ2Vz IGFsbCBoYXBwZW4gdG9nZXRoZXIsIHNvIHdlIHVzZSBhIHNpbmdlbCBXQUwgcmVjb3JkIGZvciB0 aGVtCkBAIC0yMjQyLDYgKzIzMzUsNyBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0 aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCU9mZnNldE51bWJlciBmcnpfb2Zmc2V0c1tN YXhIZWFwVHVwbGVzUGVyUGFnZV07CiAJYm9vbAkJZG9fcHJ1bmUgPSBucmVkaXJlY3RlZCA+IDAg fHwgbmRlYWQgPiAwIHx8IG51bnVzZWQgPiAwOwogCisJQXNzZXJ0KGRvX3BydW5lIHx8IG5mcm96 ZW4gPiAwIHx8IHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwogCUFzc2VydCgo dm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgPT0gdm1mbGFncyk7CiAJeGxyZWMu ZmxhZ3MgPSB2bWZsYWdzOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXgg MDVkM2QyYTMyNjcuLjc1YzEwYmEyMGM2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jCkBAIC0yMDEzLDM0ICsyMDEzLDYgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZh Y3JlbCwKIAkJdmFjcmVsLT5uZXdfZnJvemVuX3R1cGxlX3BhZ2VzKys7CiAJfQogCi0JLyoKLQkg KiBWQUNVVU0gd2lsbCBjYWxsIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSgpIGR1cmluZyB0aGUg c2Vjb25kIHBhc3Mgb3ZlcgotCSAqIHRoZSBoZWFwIHRvIGRldGVybWluZSBhbGxfdmlzaWJsZSBh bmQgYWxsX2Zyb3plbiBmb3IgdGhlIHBhZ2UgLS0gdGhpcwotCSAqIGlzIGEgc3BlY2lhbGl6ZWQg dmVyc2lvbiBvZiB0aGUgbG9naWMgZnJvbSB0aGlzIGZ1bmN0aW9uLiAgTm93IHRoYXQKLQkgKiB3 ZSd2ZSBmaW5pc2hlZCBwcnVuaW5nIGFuZCBmcmVlemluZywgbWFrZSBzdXJlIHRoYXQgd2UncmUg aW4gdG90YWwKLQkgKiBhZ3JlZW1lbnQgd2l0aCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKSB1 c2luZyBhbiBhc3NlcnRpb24uCi0JICovCi0jaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwotCS8q IE5vdGUgdGhhdCBhbGxfZnJvemVuIHZhbHVlIGRvZXMgbm90IG1hdHRlciB3aGVuICFhbGxfdmlz aWJsZSAqLwotCWlmIChwcmVzdWx0LmFsbF92aXNpYmxlKQotCXsKLQkJVHJhbnNhY3Rpb25JZCBk ZWJ1Z19jdXRvZmY7Ci0JCWJvb2wJCWRlYnVnX2FsbF9mcm96ZW47Ci0KLQkJQXNzZXJ0KHByZXN1 bHQubHBkZWFkX2l0ZW1zID09IDApOwotCi0JCWlmICghaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxl KHZhY3JlbC0+cmVsLCBidWYsCi0JCQkJCQkJCQkgIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWlu LCAmZGVidWdfYWxsX2Zyb3plbiwKLQkJCQkJCQkJCSAgJmRlYnVnX2N1dG9mZiwgJnZhY3JlbC0+ b2ZmbnVtKSkKLQkJCUFzc2VydChmYWxzZSk7Ci0KLQkJQXNzZXJ0KHByZXN1bHQuYWxsX2Zyb3pl biA9PSBkZWJ1Z19hbGxfZnJvemVuKTsKLQotCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlk KGRlYnVnX2N1dG9mZikgfHwKLQkJCSAgIGRlYnVnX2N1dG9mZiA9PSBwcmVzdWx0LnZtX2NvbmZs aWN0X2hvcml6b24pOwotCX0KLSNlbmRpZgotCiAJLyoKIAkgKiBOb3cgc2F2ZSBkZXRhaWxzIG9m IHRoZSBMUF9ERUFEIGl0ZW1zIGZyb20gdGhlIHBhZ2UgaW4gdmFjcmVsCiAJICovCkBAIC0yMDc0 LDggKzIwNDYsNiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCS8qIERp ZCB3ZSBmaW5kIExQX0RFQUQgaXRlbXM/ICovCiAJKmhhc19scGRlYWRfaXRlbXMgPSAocHJlc3Vs dC5scGRlYWRfaXRlbXMgPiAwKTsKIAotCUFzc2VydCghcHJlc3VsdC5hbGxfdmlzaWJsZSB8fCAh KCpoYXNfbHBkZWFkX2l0ZW1zKSk7Ci0KIAkvKgogCSAqIEZvciB0aGUgcHVycG9zZXMgb2YgbG9n Z2luZywgY291bnQgd2hldGhlciBvciBub3QgdGhlIHBhZ2Ugd2FzIG5ld2x5CiAJICogc2V0IGFs bC12aXNpYmxlIGFuZCwgcG90ZW50aWFsbHksIGFsbC1mcm96ZW4uCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5k ZXggYjg1NjQ4NDU2ZTkuLjBiOWJiMWM5YjEzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC0yMzUsMTkg KzIzNSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVJlc3VsdAogCWludAkJCXJlY2Vu dGx5X2RlYWRfdHVwbGVzOwogCiAJLyoKLQkgKiBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBp bmRpY2F0ZSB0aGUgc3RhdHVzIG9mIHRoZSBwYWdlIGFzIHJlZmxlY3RlZAotCSAqIGluIHRoZSB2 aXNpYmlsaXR5IG1hcCBhZnRlciBwcnVuaW5nLCBmcmVlemluZywgYW5kIHNldHRpbmcgYW55IHBh Z2VzCi0JICogYWxsLXZpc2libGUgaW4gdGhlIHZpc2liaWxpdHkgbWFwLgorCSAqIG9sZF92bWJp dHMgYXJlIHRoZSBzdGF0ZSBvZiB0aGUgYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4gYml0cyBp biB0aGUKKwkgKiB2aXNpYmlsaXR5IG1hcCBiZWZvcmUgdXBkYXRpbmcgaXQgZHVyaW5nIHBoYXNl IEkgb2YgdmFjdXVtaW5nLgorCSAqIG5ld192bWJpdHMgYXJlIHRoZSBzdGF0ZSBvZiB0aG9zZSBi aXRzIGFmdGVyIHBoYXNlIEkgb2YgdmFjdXVtaW5nLgogCSAqCi0JICogdm1fY29uZmxpY3RfaG9y aXpvbiBpcyB0aGUgbmV3ZXN0IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UKLQkgKiAo b2xkZXIgdGhhbiBPbGRlc3RYbWluKS4gIEl0IHdpbGwgb25seSBiZSB2YWxpZCBpZiB3ZSBkaWQg bm90IHNldCB0aGUKLQkgKiBwYWdlIGFsbC1mcm96ZW4gaW4gdGhlIFZNLgotCSAqCi0JICogVGhl c2UgYXJlIG9ubHkgc2V0IGlmIHRoZSBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0Lgor CSAqIFRoZXNlIGFyZSBvbmx5IHNldCBpZiB0aGUgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTSBv cHRpb24gaXMgc2V0LgogCSAqLwotCWJvb2wJCWFsbF92aXNpYmxlOwotCWJvb2wJCWFsbF9mcm96 ZW47Ci0JVHJhbnNhY3Rpb25JZCB2bV9jb25mbGljdF9ob3Jpem9uOwogCXVpbnQ4CQlvbGRfdm1i aXRzOwogCXVpbnQ4CQluZXdfdm1iaXRzOwogCi0tIAoyLjQzLjAKCg== --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0011-Update-VM-in-pruneheap.c.patch" Content-Disposition: attachment; filename="v10-0011-Update-VM-in-pruneheap.c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8gc10 RnJvbSBkNTg4MzhhYzNlYTYxYTEwYjA3Yzc5MjYxMGU2ZmRkMjNmNWVmNDg3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgSnVuIDIwMjUgMTE6MDQ6MTQgLTA0MDAKU3ViamVjdDogW1BB VENIIHYxMCAxMS8yMl0gVXBkYXRlIFZNIGluIHBydW5laGVhcC5jCgpBcyBhIHN0ZXAgdG93YXJk IHVwZGF0aW5nIHRoZSBWTSBpbiB0aGUgc2FtZSBjcml0aWNhbCBzZWN0aW9uIGFuZCBXQUwKcmVj b3JkIGFzIHBydW5pbmcgYW5kIGZyZWV6aW5nIChkdXJpbmcgcGhhc2UgSSBvZiB2YWN1dW1pbmcp LCBmaXJzdCBtb3ZlCnRoZSBWTSB1cGRhdGUgKHN0aWxsIGluIGl0cyBvd24gY3JpdGljYWwgc2Vj dGlvbiBhbmQgV0FMIHJlY29yZCkgaW50bwpoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLiBU aGlzIG1ha2VzIHJldmlldyBlYXNpZXIuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMgIHwgOTkgKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwgOTggKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgfCAxNSArKystLQogMyBmaWxl cyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgMTA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggMTBkMDMwZmIzZTcuLjlmZDI1ZDBkNTAxIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMzY0LDcgKzM2NCw4IEBAIGlkZW50aWZ5 X2FuZF9maXhfdm1fY29ycnVwdGlvbihSZWxhdGlvbiByZWxhdGlvbiwKIAogLyoKICAqIFBydW5l IGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXplIHR1cGxlcyBv biB0aGUKLSAqIHNwZWNpZmllZCBwYWdlLgorICogc3BlY2lmaWVkIHBhZ2UuIElmIHRoZSBwYWdl J3MgdmlzaWJpbGl0eSBzdGF0dXMgaGFzIGNoYW5nZWQsIHVwZGF0ZSBpdCBpbgorICogdGhlIFZN LgogICoKICAqIENhbGxlciBtdXN0IGhhdmUgcGluIGFuZCBidWZmZXIgY2xlYW51cCBsb2NrIG9u IHRoZSBwYWdlLiAgTm90ZSB0aGF0IHdlCiAgKiBkb24ndCB1cGRhdGUgdGhlIEZTTSBpbmZvcm1h dGlvbiBmb3IgcGFnZSBvbiBjYWxsZXIncyBiZWhhbGYuICBDYWxsZXIgbWlnaHQKQEAgLTQ0MCw2 ICs0NDEsOCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlciwKIAlib29sCQlkb19mcmVlemU7CiAJYm9vbAkJZG9fcHJ1bmU7CiAJYm9v bAkJZG9faGludDsKKwl1aW50OAkJdm1mbGFncyA9IDA7CisJdWludDgJCW9sZF92bWJpdHMgPSAw OwogCWJvb2wJCWhpbnRfYml0X2ZwaTsKIAlpbnQ2NAkJZnBpX2JlZm9yZSA9IHBnV2FsVXNhZ2Uu d2FsX2ZwaTsKIApAQCAtOTQwLDcgKzk0Myw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXpl KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqCiAJICogTm93IHRoYXQgZnJl ZXppbmcgaGFzIGJlZW4gZmluYWxpemVkLCB1bnNldCBhbGxfdmlzaWJsZSBpZiB0aGVyZSBhcmUK IAkgKiBhbnkgTFBfREVBRCBpdGVtcyBvbiB0aGUgcGFnZS4gIEl0IG5lZWRzIHRvIHJlZmxlY3Qg dGhlIHByZXNlbnQgc3RhdGUKLQkgKiBvZiB0aGUgcGFnZSwgYXMgZXhwZWN0ZWQgYnkgb3VyIGNh bGxlci4KKwkgKiBvZiB0aGUgcGFnZSwgYXMgZXhwZWN0ZWQgZm9yIHVwZGF0aW5nIHRoZSB2aXNp YmlsaXR5IG1hcC4KIAkgKi8KIAlpZiAocHJzdGF0ZS5hbGxfdmlzaWJsZSAmJiBwcnN0YXRlLmxw ZGVhZF9pdGVtcyA9PSAwKQogCXsKQEAgLTk1NiwzMSArOTU5LDkxIEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCXByZXN1bHQt Pmhhc3R1cCA9IHByc3RhdGUuaGFzdHVwOwogCiAJLyoKLQkgKiBGb3IgY2FsbGVycyBwbGFubmlu ZyB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwLCB0aGUgY29uZmxpY3QgaG9yaXpvbgotCSAq IGZvciB0aGF0IHJlY29yZCBtdXN0IGJlIHRoZSBuZXdlc3QgeG1pbiBvbiB0aGUgcGFnZS4gIEhv d2V2ZXIsIGlmIHRoZQotCSAqIHBhZ2UgaXMgY29tcGxldGVseSBmcm96ZW4sIHRoZXJlIGNhbiBi ZSBubyBjb25mbGljdCBhbmQgdGhlCi0JICogdm1fY29uZmxpY3RfaG9yaXpvbiBzaG91bGQgcmVt YWluIEludmFsaWRUcmFuc2FjdGlvbklkLiAgVGhpcyBpbmNsdWRlcwotCSAqIHRoZSBjYXNlIHRo YXQgd2UganVzdCBmcm96ZSBhbGwgdGhlIHR1cGxlczsgdGhlIHBydW5lLWZyZWV6ZSByZWNvcmQK LQkgKiBpbmNsdWRlZCB0aGUgY29uZmxpY3QgWElEIGFscmVhZHkgc28gdGhlIGNhbGxlciBkb2Vz bid0IG5lZWQgaXQuCisJICogSWYgdXBkYXRpbmcgdGhlIHZpc2liaWxpdHkgbWFwLCB0aGUgY29u ZmxpY3QgaG9yaXpvbiBmb3IgdGhhdCByZWNvcmQKKwkgKiBtdXN0IGJlIHRoZSBuZXdlc3QgeG1p biBvbiB0aGUgcGFnZS4gIEhvd2V2ZXIsIGlmIHRoZSBwYWdlIGlzCisJICogY29tcGxldGVseSBm cm96ZW4sIHRoZXJlIGNhbiBiZSBubyBjb25mbGljdCBhbmQgdGhlIHZtX2NvbmZsaWN0X2hvcml6 b24KKwkgKiBzaG91bGQgcmVtYWluIEludmFsaWRUcmFuc2FjdGlvbklkLiAgVGhpcyBpbmNsdWRl cyB0aGUgY2FzZSB0aGF0IHdlCisJICoganVzdCBmcm96ZSBhbGwgdGhlIHR1cGxlczsgdGhlIHBy dW5lLWZyZWV6ZSByZWNvcmQgaW5jbHVkZWQgdGhlCisJICogY29uZmxpY3QgWElEIGFscmVhZHkg c28gdGhlIFZNIHVwZGF0ZSByZWNvcmQgZG9lc24ndCBuZWVkIGl0LgogCSAqLwogCWlmIChwcmVz dWx0LT5hbGxfZnJvemVuKQogCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0gSW52YWxp ZFRyYW5zYWN0aW9uSWQ7CiAJZWxzZQogCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0g cHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7CiAKLQlwcmVzdWx0LT5scGRlYWRfaXRlbXMg PSBwcnN0YXRlLmxwZGVhZF9pdGVtczsKLQkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJy YXkgd2FzIGFscmVhZHkgZmlsbGVkIGluICovCi0KIAkvKgotCSAqIENsZWFyIGFueSBWTSBjb3Jy dXB0aW9uLiBUaGlzIGRvZXMgbm90IG5lZWQgdG8gYmUgZG9uZSBpbiBhIGNyaXRpY2FsCi0JICog c2VjdGlvbi4KKwkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQgYmFzZWQgb24g aW5mb3JtYXRpb24gZnJvbSB0aGUgVk0gKGFzCisJICogb2YgbGFzdCBoZWFwX3ZhY19zY2FuX25l eHRfYmxvY2soKSBjYWxsKSwgYW5kIGZyb20gYWxsX3Zpc2libGUgYW5kCisJICogYWxsX2Zyb3pl biB2YXJpYWJsZXMuCiAJICovCi0JcHJlc3VsdC0+dm1fY29ycnVwdGlvbiA9IGZhbHNlOwogCWlm IChvcHRpb25zICYgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTSkKLQkJcHJlc3VsdC0+dm1fY29y cnVwdGlvbiA9IGlkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihyZWxhdGlvbiwKLQkJCQkJ CQkJCQkJCQkJCQlibG9ja25vLCBidWZmZXIsIHBhZ2UsCi0JCQkJCQkJCQkJCQkJCQkJYmxrX2tu b3duX2F2LAotCQkJCQkJCQkJCQkJCQkJCXByc3RhdGUubHBkZWFkX2l0ZW1zLCB2bWJ1ZmZlcik7 CisJeworCQlpZiAoaWRlbnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKHJlbGF0aW9uLAorCQkJ CQkJCQkJCSAgIGJsb2Nrbm8sIGJ1ZmZlciwgcGFnZSwKKwkJCQkJCQkJCQkgICBibGtfa25vd25f YXYsCisJCQkJCQkJCQkJICAgcHJzdGF0ZS5scGRlYWRfaXRlbXMsIHZtYnVmZmVyKSkKKwkJewor CQkJLyogSWYgd2UgZml4IGNvcnJ1cHRpb24sIGRvbid0IHVwZGF0ZSB0aGUgVk0gZnVydGhlciAq LworCQl9CisKKwkJLyoKKwkJICogSWYgdGhlIHBhZ2UgaXNuJ3QgeWV0IG1hcmtlZCBhbGwtdmlz aWJsZSBpbiB0aGUgVk0gb3IgaXQgaXMgYW5kCisJCSAqIG5lZWRzIHRvIG1lIG1hcmtlZCBhbGwt ZnJvemVuLCB1cGRhdGUgdGhlIFZNIE5vdGUgdGhhdCBhbGxfZnJvemVuCisJCSAqIGlzIG9ubHkg dmFsaWQgaWYgYWxsX3Zpc2libGUgaXMgdHJ1ZSwgc28gd2UgbXVzdCBjaGVjayBib3RoCisJCSAq IGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuLgorCQkgKi8KKwkJZWxzZSBpZiAocHJlc3VsdC0+ YWxsX3Zpc2libGUgJiYKKwkJCQkgKCFibGtfa25vd25fYXYgfHwKKwkJCQkgIChwcmVzdWx0LT5h bGxfZnJvemVuICYmICFWTV9BTExfRlJPWkVOKHJlbGF0aW9uLCBibG9ja25vLCAmdm1idWZmZXIp KSkpCisJCXsKKwkJCUFzc2VydChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKTsKKwkJCXZtZmxh Z3MgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOworCisJCQkvKgorCQkJICogSWYgdGhlIHBh Z2UgaXMgYWxsLWZyb3plbiwgd2UgY2FuIHBhc3MgSW52YWxpZFRyYW5zYWN0aW9uSWQgYXMKKwkJ CSAqIG91ciBjdXRvZmZfeGlkLCBzaW5jZSBhIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uIHN1ZmZp Y2llbnQgdG8KKwkJCSAqIG1ha2UgZXZlcnl0aGluZyBzYWZlIGZvciBSRURPIHdhcyBsb2dnZWQg d2hlbiB0aGUgcGFnZSdzIHR1cGxlcworCQkJICogd2VyZSBmcm96ZW4uCisJCQkgKi8KKwkJCWlm IChwcmVzdWx0LT5hbGxfZnJvemVuKQorCQkJeworCQkJCUFzc2VydCghVHJhbnNhY3Rpb25JZElz VmFsaWQocHJlc3VsdC0+dm1fY29uZmxpY3RfaG9yaXpvbikpOworCQkJCXZtZmxhZ3MgfD0gVklT SUJJTElUWU1BUF9BTExfRlJPWkVOOworCQkJfQorCisJCQkvKgorCQkJICogSXQncyBwb3NzaWJs ZSBmb3IgdGhlIFZNIGJpdCB0byBiZSBjbGVhciBhbmQgdGhlIHBhZ2UtbGV2ZWwgYml0CisJCQkg KiB0byBiZSBzZXQgaWYgY2hlY2tzdW1zIGFyZSBub3QgZW5hYmxlZC4KKwkJCSAqCisJCQkgKiBB bmQgZXZlbiBpZiB3ZSBhcmUganVzdCBwbGFubmluZyB0byB1cGRhdGUgdGhlIGZyb3plbiBiaXQg aW4KKwkJCSAqIHRoZSBWTSwgd2Ugc2hvdWxkbid0IHJlbHkgb24gYWxsX3Zpc2libGVfYWNjb3Jk aW5nX3RvX3ZtIGFzIGEKKwkJCSAqIHByb3h5IGZvciB0aGUgcGFnZS1sZXZlbCBQRF9BTExfVklT SUJMRSBiaXQgYmVpbmcgc2V0LCBzaW5jZSBpdAorCQkJICogbWlnaHQgaGF2ZSBiZWNvbWUgc3Rh bGUuCisJCQkgKgorCQkJICogSWYgdGhlIGhlYXAgcGFnZSBpcyBhbGwtdmlzaWJsZSBidXQgdGhl IFZNIGJpdCBpcyBub3Qgc2V0LCB3ZQorCQkJICogZG9uJ3QgbmVlZCB0byBkaXJ0eSB0aGUgaGVh cCBwYWdlLiAgSG93ZXZlciwgaWYgY2hlY2tzdW1zIGFyZQorCQkJICogZW5hYmxlZCwgd2UgZG8g bmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgaGVhcCBwYWdlIGlzIGRpcnRpZWQKKwkJCSAqIGJl Zm9yZSBwYXNzaW5nIGl0IHRvIHZpc2liaWxpdHltYXBfc2V0KCksIGJlY2F1c2UgaXQgbWF5IGJl CisJCQkgKiBsb2dnZWQuCisJCQkgKi8KKwkJCWlmICghUGFnZUlzQWxsVmlzaWJsZShwYWdlKSB8 fCBYTG9nSGludEJpdElzTmVlZGVkKCkpCisJCQl7CisJCQkJUGFnZVNldEFsbFZpc2libGUocGFn ZSk7CisJCQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CisJCQl9CisKKwkJCW9sZF92bWJpdHMg PSB2aXNpYmlsaXR5bWFwX3NldChyZWxhdGlvbiwgYmxvY2tubywgYnVmZmVyLCBJbnZhbGlkWExv Z1JlY1B0ciwKKwkJCQkJCQkJCQkgICB2bWJ1ZmZlciwgcHJlc3VsdC0+dm1fY29uZmxpY3RfaG9y aXpvbiwKKwkJCQkJCQkJCQkgICB2bWZsYWdzKTsKKwkJfQorCX0KKworCXByZXN1bHQtPmxwZGVh ZF9pdGVtcyA9IHByc3RhdGUubHBkZWFkX2l0ZW1zOworCS8qIHRoZSBwcmVzdWx0LT5kZWFkb2Zm c2V0cyBhcnJheSB3YXMgYWxyZWFkeSBmaWxsZWQgaW4gKi8KKworCXByZXN1bHQtPm9sZF92bWJp dHMgPSBvbGRfdm1iaXRzOworCXByZXN1bHQtPm5ld192bWJpdHMgPSB2bWZsYWdzOworCiAJaWYg KHByc3RhdGUuZnJlZXplKQogCXsKIAkJaWYgKHByZXN1bHQtPm5mcm96ZW4gPiAwKQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDMyMmU1NGM4MDNmLi4wNWQzZDJhMzI2NyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMTk0Nyw3ICsxOTQ3LDggQEAg Y21wT2Zmc2V0TnVtYmVycyhjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQogICogdm1idWZm ZXIgaXMgdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBWTSBibG9jayB3aXRoIHZpc2liaWxpdHkg aW5mb3JtYXRpb24KICAqIGZvciB0aGUgaGVhcCBibG9jaywgYmxrbm8uIGFsbF92aXNpYmxlX2Fj Y29yZGluZ190b192bSBpcyB0aGUgc2F2ZWQKICAqIHZpc2liaWxpdHkgc3RhdHVzIG9mIHRoZSBo ZWFwIGJsb2NrIGxvb2tlZCB1cCBlYXJsaWVyIGJ5IHRoZSBjYWxsZXIuIFdlCi0gKiB3b24ndCBy ZWx5IGVudGlyZWx5IG9uIHRoaXMgc3RhdHVzLCBhcyBpdCBtYXkgYmUgb3V0IG9mIGRhdGUuCisg KiB3b24ndCByZWx5IGVudGlyZWx5IG9uIHRoaXMgc3RhdHVzLCBhcyBpdCBtYXkgYmUgb3V0IG9m IGRhdGUuIFRoZXNlIHdpbGwgYmUKKyAqIHBhc3NlZCBvbiB0byBoZWFwX3BhZ2VfcHJ1bmVfYW5k X2ZyZWV6ZSgpIHRvIHVzZSB3aGlsZSBzZXR0aW5nIHRoZSBWTS4KICAqCiAgKiAqaGFzX2xwZGVh ZF9pdGVtcyBpcyBzZXQgdG8gdHJ1ZSBvciBmYWxzZSBkZXBlbmRpbmcgb24gd2hldGhlciwgdXBv biByZXR1cm4KICAqIGZyb20gdGhpcyBmdW5jdGlvbiwgYW55IExQX0RFQUQgaXRlbXMgYXJlIHN0 aWxsIHByZXNlbnQgb24gdGhlIHBhZ2UuCkBAIC0xOTc2LDYgKzE5NzcsNyBAQCBsYXp5X3NjYW5f cHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCiAJLyoKIAkgKiBQcnVuZSBhbGwgSE9ULXVwZGF0 ZSBjaGFpbnMgYW5kIHBvdGVudGlhbGx5IGZyZWV6ZSB0dXBsZXMgb24gdGhpcyBwYWdlLgorCSAq IFRoZW4sIGlmIHRoZSBwYWdlJ3MgdmlzaWJpbGl0eSBzdGF0dXMgaGFzIGNoYW5nZWQsIHVwZGF0 ZSB0aGUgVk0uCiAJICoKIAkgKiBJZiB0aGUgcmVsYXRpb24gaGFzIG5vIGluZGV4ZXMsIHdlIGNh biBpbW1lZGlhdGVseSBtYXJrIHdvdWxkLWJlIGRlYWQKIAkgKiBpdGVtcyBMUF9VTlVTRUQuCkBA IC0xOTg0LDEwICsxOTg2LDYgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwK IAkgKiBwcmVzdWx0Lm5kZWxldGVkLiAgSXQgc2hvdWxkIG5vdCBiZSBjb25mdXNlZCB3aXRoIHBy ZXN1bHQubHBkZWFkX2l0ZW1zOwogCSAqIHByZXN1bHQubHBkZWFkX2l0ZW1zJ3MgZmluYWwgdmFs dWUgY2FuIGJlIHRob3VnaHQgb2YgYXMgdGhlIG51bWJlciBvZgogCSAqIHR1cGxlcyB0aGF0IHdl cmUgZGVsZXRlZCBmcm9tIGluZGV4ZXMuCi0JICoKLQkgKiBXZSB3aWxsIHVwZGF0ZSB0aGUgVk0g YWZ0ZXIgY29sbGVjdGluZyBMUF9ERUFEIGl0ZW1zIGFuZCBmcmVlemluZwotCSAqIHR1cGxlcy4g UHJ1bmluZyB3aWxsIGhhdmUgZGV0ZXJtaW5lZCB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBpcwot CSAqIGFsbC12aXNpYmxlLgogCSAqLwogCXBydW5lX29wdGlvbnMgPSBIRUFQX1BBR0VfUFJVTkVf RlJFRVpFIHwgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTTsKIAlpZiAodmFjcmVsLT5uaW5kZXhl cyA9PSAwKQpAQCAtMjA3OSw4OCArMjA3NywyNiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0 ZSAqdmFjcmVsLAogCUFzc2VydCghcHJlc3VsdC5hbGxfdmlzaWJsZSB8fCAhKCpoYXNfbHBkZWFk X2l0ZW1zKSk7CiAKIAkvKgotCSAqIEhhbmRsZSBzZXR0aW5nIHZpc2liaWxpdHkgbWFwIGJpdCBi YXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSAoYXMKLQkgKiBvZiBsYXN0IGhlYXBfdmFj X3NjYW5fbmV4dF9ibG9jaygpIGNhbGwpLCBhbmQgZnJvbSBhbGxfdmlzaWJsZSBhbmQKLQkgKiBh bGxfZnJvemVuIHZhcmlhYmxlcy4KKwkgKiBGb3IgdGhlIHB1cnBvc2VzIG9mIGxvZ2dpbmcsIGNv dW50IHdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIHdhcyBuZXdseQorCSAqIHNldCBhbGwtdmlzaWJs ZSBhbmQsIHBvdGVudGlhbGx5LCBhbGwtZnJvemVuLgogCSAqLwotCWlmIChwcmVzdWx0LnZtX2Nv cnJ1cHRpb24pCisJaWYgKChwcmVzdWx0Lm9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9W SVNJQkxFKSA9PSAwICYmCisJCShwcmVzdWx0Lm5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FM TF9WSVNJQkxFKSAhPSAwKQogCXsKLQkJLyogRG9uJ3QgdXBkYXRlIHRoZSBWTSBpZiB3ZSBqdXN0 IGNsZWFyZWQgY29ycnVwdGlvbiBpbiBpdCAqLwotCX0KLQotCS8qCi0JICogSWYgdGhlIHBhZ2Ug aXNuJ3QgeWV0IG1hcmtlZCBhbGwtdmlzaWJsZSBpbiB0aGUgVk0gb3IgaXQgaXMgYW5kIG5lZWRz Ci0JICogdG8gbWUgbWFya2VkIGFsbC1mcm96ZW4sIHVwZGF0ZSB0aGUgVk0gTm90ZSB0aGF0IGFs bF9mcm96ZW4gaXMgb25seQotCSAqIHZhbGlkIGlmIGFsbF92aXNpYmxlIGlzIHRydWUsIHNvIHdl IG11c3QgY2hlY2sgYm90aCBhbGxfdmlzaWJsZSBhbmQKLQkgKiBhbGxfZnJvemVuLgotCSAqLwot CWVsc2UgaWYgKHByZXN1bHQuYWxsX3Zpc2libGUgJiYKLQkJCSAoIWFsbF92aXNpYmxlX2FjY29y ZGluZ190b192bSB8fAotCQkJICAocHJlc3VsdC5hbGxfZnJvemVuICYmICFWTV9BTExfRlJPWkVO KHZhY3JlbC0+cmVsLCBibGtubywgJnZtYnVmZmVyKSkpKQotCXsKLQkJdWludDgJCW9sZF92bWJp dHM7Ci0JCXVpbnQ4CQlmbGFncyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7Ci0KLQkJLyoK LQkJICogSWYgdGhlIHBhZ2UgaXMgYWxsLWZyb3plbiwgd2UgY2FuIHBhc3MgSW52YWxpZFRyYW5z YWN0aW9uSWQgYXMgb3VyCi0JCSAqIGN1dG9mZl94aWQsIHNpbmNlIGEgc25hcHNob3RDb25mbGlj dEhvcml6b24gc3VmZmljaWVudCB0byBtYWtlCi0JCSAqIGV2ZXJ5dGhpbmcgc2FmZSBmb3IgUkVE TyB3YXMgbG9nZ2VkIHdoZW4gdGhlIHBhZ2UncyB0dXBsZXMgd2VyZQotCQkgKiBmcm96ZW4uCi0J CSAqLwotCQlpZiAocHJlc3VsdC5hbGxfZnJvemVuKQotCQl7Ci0JCQlBc3NlcnQoIVRyYW5zYWN0 aW9uSWRJc1ZhbGlkKHByZXN1bHQudm1fY29uZmxpY3RfaG9yaXpvbikpOwotCQkJZmxhZ3MgfD0g VklTSUJJTElUWU1BUF9BTExfRlJPWkVOOwotCQl9Ci0KLQkJLyoKLQkJICogSXQgc2hvdWxkIG5l dmVyIGJlIHRoZSBjYXNlIHRoYXQgdGhlIHZpc2liaWxpdHkgbWFwIHBhZ2UgaXMgc2V0Ci0JCSAq IHdoaWxlIHRoZSBwYWdlLWxldmVsIGJpdCBpcyBjbGVhciwgYnV0IHRoZSByZXZlcnNlIGlzIGFs bG93ZWQgKGlmCi0JCSAqIGNoZWNrc3VtcyBhcmUgbm90IGVuYWJsZWQpLiAgUmVnYXJkbGVzcywg c2V0IGJvdGggYml0cyBzbyB0aGF0IHdlCi0JCSAqIGdldCBiYWNrIGluIHN5bmMuCi0JCSAqCi0J CSAqIElmIHRoZSBoZWFwIHBhZ2UgaXMgYWxsLXZpc2libGUgYnV0IHRoZSBWTSBiaXQgaXMgbm90 IHNldCwgd2UgZG9uJ3QKLQkJICogbmVlZCB0byBkaXJ0eSB0aGUgaGVhcCBwYWdlLiAgSG93ZXZl ciwgaWYgY2hlY2tzdW1zIGFyZSBlbmFibGVkLCB3ZQotCQkgKiBkbyBuZWVkIHRvIG1ha2Ugc3Vy ZSB0aGF0IHRoZSBoZWFwIHBhZ2UgaXMgZGlydGllZCBiZWZvcmUgcGFzc2luZwotCQkgKiBpdCB0 byB2aXNpYmlsaXR5bWFwX3NldCgpLCBiZWNhdXNlIGl0IG1heSBiZSBsb2dnZWQuCi0JCSAqLwot CQlpZiAoIVBhZ2VJc0FsbFZpc2libGUocGFnZSkgfHwgWExvZ0hpbnRCaXRJc05lZWRlZCgpKQot CQl7Ci0JCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQkJCU1hcmtCdWZmZXJEaXJ0eShidWYp OwotCQl9Ci0KLQkJb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfc2V0KHZhY3JlbC0+cmVsLCBi bGtubywgYnVmLAotCQkJCQkJCQkJICAgSW52YWxpZFhMb2dSZWNQdHIsCi0JCQkJCQkJCQkgICB2 bWJ1ZmZlciwgcHJlc3VsdC52bV9jb25mbGljdF9ob3Jpem9uLAotCQkJCQkJCQkJICAgZmxhZ3Mp OwotCi0JCS8qCi0JCSAqIEV2ZW4gaWYgd2UgYXJlIG9ubHkgc2V0dGluZyB0aGUgYWxsLWZyb3pl biBiaXQsIHRoZXJlIGlzIGEgc21hbGwKLQkJICogY2hhbmNlIHRoYXQgdGhlIFZNIHdhcyBtb2Rp ZmllZCBzb21ldGltZSBiZXR3ZWVuIHNldHRpbmcKLQkJICogYWxsX3Zpc2libGVfYWNjb3JkaW5n X3RvX3ZtIGFuZCBjaGVja2luZyB0aGUgdmlzaWJpbGl0eSBkdXJpbmcKLQkJICogcHJ1bmluZy4g Q2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBvbGRfdm1iaXRzIHRvIGVuc3VyZSB0aGUKLQkJICog dmlzaWJpbGl0eSBtYXAgY291bnRlcnMgdXNlZCBmb3IgbG9nZ2luZyBhcmUgYWNjdXJhdGUuCi0J CSAqCi0JCSAqIElmIHRoZSBwYWdlIHdhc24ndCBhbHJlYWR5IHNldCBhbGwtdmlzaWJsZSBhbmQv b3IgYWxsLWZyb3plbiBpbiB0aGUKLQkJICogVk0sIGNvdW50IGl0IGFzIG5ld2x5IHNldCBmb3Ig bG9nZ2luZy4KLQkJICovCi0JCWlmICgob2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJ U0lCTEUpID09IDApCi0JCXsKLQkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfcGFnZXMrKzsKLQkJ CWlmIChwcmVzdWx0LmFsbF9mcm96ZW4pCi0JCQl7Ci0JCQkJdmFjcmVsLT52bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXMrKzsKLQkJCQkqdm1fcGFnZV9mcm96ZW4gPSB0cnVlOwotCQkJfQotCQl9 Ci0JCWVsc2UgaWYgKChvbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSA9PSAw ICYmCi0JCQkJIHByZXN1bHQuYWxsX2Zyb3plbikKKwkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9w YWdlcysrOworCQlpZiAoKHByZXN1bHQubmV3X3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZS T1pFTikgIT0gMCkKIAkJewotCQkJdmFjcmVsLT52bV9uZXdfZnJvemVuX3BhZ2VzKys7CisJCQl2 YWNyZWwtPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcysrOwogCQkJKnZtX3BhZ2VfZnJvemVu ID0gdHJ1ZTsKIAkJfQogCX0KKwllbHNlIGlmICgocHJlc3VsdC5vbGRfdm1iaXRzICYgVklTSUJJ TElUWU1BUF9BTExfRlJPWkVOKSA9PSAwICYmCisJCQkgKHByZXN1bHQubmV3X3ZtYml0cyAmIFZJ U0lCSUxJVFlNQVBfQUxMX0ZST1pFTikgIT0gMCkKKwl7CisJCUFzc2VydCgocHJlc3VsdC5uZXdf dm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSkgIT0gMCk7CisJCXZhY3JlbC0+dm1f bmV3X2Zyb3plbl9wYWdlcysrOworCQkqdm1fcGFnZV9mcm96ZW4gPSB0cnVlOworCX0KIAogCXJl dHVybiBwcmVzdWx0Lm5kZWxldGVkOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNz L2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IDBjN2ViNWU0NmY0 Li5iODU2NDg0NTZlOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisr KyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtMjM1LDIwICsyMzUsMjEgQEAgdHlw ZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVlemVSZXN1bHQKIAlpbnQJCQlyZWNlbnRseV9kZWFkX3R1cGxl czsKIAogCS8qCi0JICogYWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4gaW5kaWNhdGUgaWYgdGhl IGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuCi0JICogYml0cyBpbiB0aGUgdmlzaWJpbGl0eSBt YXAgY2FuIGJlIHNldCBmb3IgdGhpcyBwYWdlLCBhZnRlciBwcnVuaW5nLgorCSAqIGFsbF92aXNp YmxlIGFuZCBhbGxfZnJvemVuIGluZGljYXRlIHRoZSBzdGF0dXMgb2YgdGhlIHBhZ2UgYXMgcmVm bGVjdGVkCisJICogaW4gdGhlIHZpc2liaWxpdHkgbWFwIGFmdGVyIHBydW5pbmcsIGZyZWV6aW5n LCBhbmQgc2V0dGluZyBhbnkgcGFnZXMKKwkgKiBhbGwtdmlzaWJsZSBpbiB0aGUgdmlzaWJpbGl0 eSBtYXAuCiAJICoKLQkgKiB2bV9jb25mbGljdF9ob3Jpem9uIGlzIHRoZSBuZXdlc3QgeG1pbiBv ZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZS4gIFRoZQotCSAqIGNhbGxlciBjYW4gdXNlIGl0IGFz IHRoZSBjb25mbGljdCBob3Jpem9uIHdoZW4gc2V0dGluZyB0aGUgVk0gYml0cy4gIEl0Ci0JICog aXMgb25seSB2YWxpZCBpZiB3ZSBmcm96ZSBzb21lIHR1cGxlcyAobmZyb3plbiA+IDApLCBhbmQg YWxsX2Zyb3plbiBpcwotCSAqIHRydWUuCisJICogdm1fY29uZmxpY3RfaG9yaXpvbiBpcyB0aGUg bmV3ZXN0IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UKKwkgKiAob2xkZXIgdGhhbiBP bGRlc3RYbWluKS4gIEl0IHdpbGwgb25seSBiZSB2YWxpZCBpZiB3ZSBkaWQgbm90IHNldCB0aGUK KwkgKiBwYWdlIGFsbC1mcm96ZW4gaW4gdGhlIFZNLgogCSAqCiAJICogVGhlc2UgYXJlIG9ubHkg c2V0IGlmIHRoZSBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0LgogCSAqLwogCWJvb2wJ CWFsbF92aXNpYmxlOwogCWJvb2wJCWFsbF9mcm96ZW47CiAJVHJhbnNhY3Rpb25JZCB2bV9jb25m bGljdF9ob3Jpem9uOwotCWJvb2wJCXZtX2NvcnJ1cHRpb247CisJdWludDgJCW9sZF92bWJpdHM7 CisJdWludDgJCW5ld192bWJpdHM7CiAKIAkvKgogCSAqIFdoZXRoZXIgb3Igbm90IHRoZSBwYWdl IG1ha2VzIHJlbCB0cnVuY2F0aW9uIHVuc2FmZS4gIFRoaXMgaXMgc2V0IHRvCi0tIAoyLjQzLjAK Cg== --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0014-Remove-xl_heap_visible-entirely.patch" Content-Disposition: attachment; filename="v10-0014-Remove-xl_heap_visible-entirely.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8gj13 RnJvbSBlZGFlODE2NGNjNmNhZjg3ZGZlZWI2MjBhYzAyMTRkZGFkNGUxYjgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDEyOjMwOjQyIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMTQvMjJdIFJlbW92ZSB4bF9oZWFwX3Zpc2libGUgZW50aXJlbHkKClRoZXJlIGFy ZSBub3cgbm8gdXNlcnMgb2YgdGhpcywgc28gZWxpbWluYXRlIGl0IGVudGlyZWx5LgotLS0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vYnVmbWFzay5jICAgICAgfCAgIDMgKy0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICAgfCAgNTQgKy0tLS0tLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgICAgfCAxNTIgKystLS0tLS0tLS0tLS0tLS0t LS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICAgICAgfCAgIDQgKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgICAgfCAgMTAgKy0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyAgfCAxMDkgKy0tLS0tLS0tLS0tLS0t LQogc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMgICB8ICAxMCAtLQogc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyB8ICAgMSAtCiBzcmMvYmFja2Vu ZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMgICAgICAgIHwgIDEyICstCiBzcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtX3hsb2cuaCAgICAgICAgIHwgIDIwIC0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL3Zp c2liaWxpdHltYXAuaCAgICAgICB8ICAxMSArLQogc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxp dHltYXBkZWZzLmggICB8ICAgOSAtLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3Qg ICAgICAgICB8ICAgMSAtCiAxMyBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCAzNjQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZt YXNrLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1hc2suYwppbmRleCBiYjI2MGNm ZmE2OC4uMWZmZjAxMzgzYjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v YnVmbWFzay5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vYnVmbWFzay5jCkBAIC01 Niw4ICs1Niw3IEBAIG1hc2tfcGFnZV9oaW50X2JpdHMoUGFnZSBwYWdlKQogCiAJLyoKIAkgKiBE dXJpbmcgcmVwbGF5LCBpZiB0aGUgcGFnZSBMU04gaGFzIGFkdmFuY2VkIHBhc3Qgb3VyIFhMT0cg cmVjb3JkJ3MgTFNOLAotCSAqIHdlIGRvbid0IG1hcmsgdGhlIHBhZ2UgYWxsLXZpc2libGUuIFNl ZSBoZWFwX3hsb2dfdmlzaWJsZSgpIGZvcgotCSAqIGRldGFpbHMuCisJICogd2UgZG9uJ3QgbWFy ayB0aGUgcGFnZSBhbGwtdmlzaWJsZS4KIAkgKi8KIAlQYWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2Up OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCA4OTNhNzM5MDA5YS4uY2IxNmJiMGNi YmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk ZSAiYWNjZXNzL3ZhbGlkLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXAuaCIKICNp bmNsdWRlICJhY2Nlc3MveGxvZ2luc2VydC5oIgorI2luY2x1ZGUgImFjY2Vzcy94bG9ndXRpbHMu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19kYXRhYmFzZV9kLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdmFjdXVtLmgiCkBAIC0yNTIzLDEx ICsyNTI0LDExIEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRh YmxlU2xvdCAqKnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJewogCQkJUGFnZVNldEFsbFZpc2libGUo cGFnZSk7CiAJCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOwot CQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKHJlbGF0aW9uLAotCQkJCQkJCQkJIEJ1ZmZlckdl dEJsb2NrTnVtYmVyKGJ1ZmZlciksCi0JCQkJCQkJCQkgdm1idWZmZXIsCi0JCQkJCQkJCQkgVklT SUJJTElUWU1BUF9BTExfVklTSUJMRSB8Ci0JCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfRlJP WkVOKTsKKwkJCXZpc2liaWxpdHltYXBfc2V0KHJlbGF0aW9uLAorCQkJCQkJCSAgQnVmZmVyR2V0 QmxvY2tOdW1iZXIoYnVmZmVyKSwKKwkJCQkJCQkgIHZtYnVmZmVyLAorCQkJCQkJCSAgVklTSUJJ TElUWU1BUF9BTExfVklTSUJMRSB8CisJCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4p OwogCQl9CiAKIAkJLyoKQEAgLTg3OTgsNDkgKzg3OTksNiBAQCBib3R0b211cF9zb3J0X2FuZF9z aHJpbmsoVE1fSW5kZXhEZWxldGVPcCAqZGVsc3RhdGUpCiAJcmV0dXJuIG5ibG9ja3NmYXZvcmFi bGU7CiB9CiAKLS8qCi0gKiBQZXJmb3JtIFhMb2dJbnNlcnQgZm9yIGEgaGVhcC12aXNpYmxlIG9w ZXJhdGlvbi4gICdibG9jaycgaXMgdGhlIGJsb2NrCi0gKiBiZWluZyBtYXJrZWQgYWxsLXZpc2li bGUsIGFuZCB2bV9idWZmZXIgaXMgdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZQotICogY29ycmVz cG9uZGluZyB2aXNpYmlsaXR5IG1hcCBibG9jay4gIEJvdGggc2hvdWxkIGhhdmUgYWxyZWFkeSBi ZWVuIG1vZGlmaWVkCi0gKiBhbmQgZGlydGllZC4KLSAqCi0gKiBzbmFwc2hvdENvbmZsaWN0SG9y aXpvbiBjb21lcyBmcm9tIHRoZSBsYXJnZXN0IHhtaW4gb24gdGhlIHBhZ2UgYmVpbmcKLSAqIG1h cmtlZCBhbGwtdmlzaWJsZS4gIFJFRE8gcm91dGluZSB1c2VzIGl0IHRvIGdlbmVyYXRlIHJlY292 ZXJ5IGNvbmZsaWN0cy4KLSAqCi0gKiBJZiBjaGVja3N1bXMgb3Igd2FsX2xvZ19oaW50cyBhcmUg ZW5hYmxlZCwgd2UgbWF5IGFsc28gZ2VuZXJhdGUgYSBmdWxsLXBhZ2UKLSAqIGltYWdlIG9mIGhl YXBfYnVmZmVyLiBPdGhlcndpc2UsIHdlIG9wdGltaXplIGF3YXkgdGhlIEZQSSAoYnkgc3BlY2lm eWluZwotICogUkVHQlVGX05PX0lNQUdFIGZvciB0aGUgaGVhcCBidWZmZXIpLCBpbiB3aGljaCBj YXNlIHRoZSBjYWxsZXIgc2hvdWxkICpub3QqCi0gKiB1cGRhdGUgdGhlIGhlYXAgcGFnZSdzIExT Ti4KLSAqLwotWExvZ1JlY1B0cgotbG9nX2hlYXBfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZl ciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZtX2J1ZmZlciwKLQkJCQkgVHJhbnNhY3Rpb25JZCBzbmFw c2hvdENvbmZsaWN0SG9yaXpvbiwgdWludDggdm1mbGFncykKLXsKLQl4bF9oZWFwX3Zpc2libGUg eGxyZWM7Ci0JWExvZ1JlY1B0cglyZWNwdHI7Ci0JdWludDgJCWZsYWdzOwotCi0JQXNzZXJ0KEJ1 ZmZlcklzVmFsaWQoaGVhcF9idWZmZXIpKTsKLQlBc3NlcnQoQnVmZmVySXNWYWxpZCh2bV9idWZm ZXIpKTsKLQotCXhscmVjLnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uID0gc25hcHNob3RDb25mbGlj dEhvcml6b247Ci0JeGxyZWMuZmxhZ3MgPSB2bWZsYWdzOwotCWlmIChSZWxhdGlvbklzQWNjZXNz aWJsZUluTG9naWNhbERlY29kaW5nKHJlbCkpCi0JCXhscmVjLmZsYWdzIHw9IFZJU0lCSUxJVFlN QVBfWExPR19DQVRBTE9HX1JFTDsKLQlYTG9nQmVnaW5JbnNlcnQoKTsKLQlYTG9nUmVnaXN0ZXJE YXRhKCZ4bHJlYywgU2l6ZU9mSGVhcFZpc2libGUpOwotCi0JWExvZ1JlZ2lzdGVyQnVmZmVyKDAs IHZtX2J1ZmZlciwgMCk7Ci0KLQlmbGFncyA9IFJFR0JVRl9TVEFOREFSRDsKLQlpZiAoIVhMb2dI aW50Qml0SXNOZWVkZWQoKSkKLQkJZmxhZ3MgfD0gUkVHQlVGX05PX0lNQUdFOwotCVhMb2dSZWdp c3RlckJ1ZmZlcigxLCBoZWFwX2J1ZmZlciwgZmxhZ3MpOwotCi0JcmVjcHRyID0gWExvZ0luc2Vy dChSTV9IRUFQMl9JRCwgWExPR19IRUFQMl9WSVNJQkxFKTsKLQotCXJldHVybiByZWNwdHI7Ci19 CiAKIC8qCiAgKiBQZXJmb3JtIFhMb2dJbnNlcnQgZm9yIGEgaGVhcC11cGRhdGUgb3BlcmF0aW9u LiAgQ2FsbGVyIG11c3QgYWxyZWFkeQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMK aW5kZXggMTFjMTE5MjllZDkuLmZmM2FkOGI0Y2QyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hl YXBhbV94bG9nLmMKQEAgLTUzLDYgKzUzLDggQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9n UmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJICAgKHhscmVjLmZsYWdzICYgKFhMSFBfSEFTX1JFRElS RUNUSU9OUyB8IFhMSFBfSEFTX0RFQURfSVRFTVMpKSA9PSAwKTsKIAogCXZtZmxhZ3MgPSB4bHJl Yy5mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsKKwkvKiBNdXN0IG5ldmVyIHNldCBh bGxfZnJvemVuIGJpdCB3aXRob3V0IGFsc28gc2V0dGluZyBhbGxfdmlzaWJsZSBiaXQgKi8KKwlB c3NlcnQodm1mbGFncyAhPSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOwogCiAJLyoKIAkgKiBB ZnRlciB4bF9oZWFwX3BydW5lIGlzIHRoZSBvcHRpb25hbCBzbmFwc2hvdCBjb25mbGljdCBob3Jp em9uLgpAQCAtMjUwLDcgKzI1Miw3IEBAIGhlYXBfeGxvZ19wcnVuZV9mcmVlemUoWExvZ1JlYWRl clN0YXRlICpyZWNvcmQpCiAJCWlmIChQYWdlSXNOZXcodm1wYWdlKSkKIAkJCVBhZ2VJbml0KHZt cGFnZSwgQkxDS1NaLCAwKTsKIAotCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXRfdm1i aXRzKHJlbG4sIGJsa25vLCB2bWJ1ZmZlciwgdm1mbGFncyk7CisJCW9sZF92bWJpdHMgPSB2aXNp YmlsaXR5bWFwX3NldChyZWxuLCBibGtubywgdm1idWZmZXIsIHZtZmxhZ3MpOwogCiAJCS8qIE9u bHkgc2V0IFZNIHBhZ2UgTFNOIGlmIHdlIG1vZGlmaWVkIHRoZSBwYWdlICovCiAJCWlmIChvbGRf dm1iaXRzICE9IHZtZmxhZ3MpCkBAIC0yNjksMTQyICsyNzEsNiBAQCBoZWFwX3hsb2dfcHJ1bmVf ZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlYTG9nUmVjb3JkUGFnZVdpdGhGcmVl U3BhY2UocmxvY2F0b3IsIGJsa25vLCBmcmVlc3BhY2UpOwogfQogCi0vKgotICogUmVwbGF5IFhM T0dfSEVBUDJfVklTSUJMRSByZWNvcmRzLgotICoKLSAqIFRoZSBjcml0aWNhbCBpbnRlZ3JpdHkg cmVxdWlyZW1lbnQgaGVyZSBpcyB0aGF0IHdlIG11c3QgbmV2ZXIgZW5kIHVwIHdpdGgKLSAqIGEg c2l0dWF0aW9uIHdoZXJlIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQgaXMgc2V0LCBhbmQgdGhlIHBh Z2UtbGV2ZWwKLSAqIFBEX0FMTF9WSVNJQkxFIGJpdCBpcyBjbGVhci4gIElmIHRoYXQgd2VyZSB0 byBvY2N1ciwgdGhlbiBhIHN1YnNlcXVlbnQKLSAqIHBhZ2UgbW9kaWZpY2F0aW9uIHdvdWxkIGZh aWwgdG8gY2xlYXIgdGhlIHZpc2liaWxpdHkgbWFwIGJpdC4KLSAqLwotc3RhdGljIHZvaWQKLWhl YXBfeGxvZ192aXNpYmxlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQotewotCVhMb2dSZWNQdHIJ bHNuID0gcmVjb3JkLT5FbmRSZWNQdHI7Ci0JeGxfaGVhcF92aXNpYmxlICp4bHJlYyA9ICh4bF9o ZWFwX3Zpc2libGUgKikgWExvZ1JlY0dldERhdGEocmVjb3JkKTsKLQlCdWZmZXIJCXZtYnVmZmVy ID0gSW52YWxpZEJ1ZmZlcjsKLQlCdWZmZXIJCWJ1ZmZlcjsKLQlQYWdlCQlwYWdlOwotCVJlbEZp bGVMb2NhdG9yIHJsb2NhdG9yOwotCUJsb2NrTnVtYmVyIGJsa25vOwotCVhMb2dSZWRvQWN0aW9u IGFjdGlvbjsKLQotCUFzc2VydCgoeGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9YTE9HX1ZB TElEX0JJVFMpID09IHhscmVjLT5mbGFncyk7Ci0KLQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3Jk LCAxLCAmcmxvY2F0b3IsIE5VTEwsICZibGtubyk7Ci0KLQkvKgotCSAqIElmIHRoZXJlIGFyZSBh bnkgSG90IFN0YW5kYnkgdHJhbnNhY3Rpb25zIHJ1bm5pbmcgdGhhdCBoYXZlIGFuIHhtaW4KLQkg KiBob3Jpem9uIG9sZCBlbm91Z2ggdGhhdCB0aGlzIHBhZ2UgaXNuJ3QgYWxsLXZpc2libGUgZm9y IHRoZW0sIHRoZXkKLQkgKiBtaWdodCBpbmNvcnJlY3RseSBkZWNpZGUgdGhhdCBhbiBpbmRleC1v bmx5IHNjYW4gY2FuIHNraXAgYSBoZWFwIGZldGNoLgotCSAqCi0JICogTkI6IEl0IG1pZ2h0IGJl IGJldHRlciB0byB0aHJvdyBzb21lIGtpbmQgb2YgInNvZnQiIGNvbmZsaWN0IGhlcmUgdGhhdAot CSAqIGZvcmNlcyBhbnkgaW5kZXgtb25seSBzY2FuIHRoYXQgaXMgaW4gZmxpZ2h0IHRvIHBlcmZv cm0gaGVhcCBmZXRjaGVzLAotCSAqIHJhdGhlciB0aGFuIGtpbGxpbmcgdGhlIHRyYW5zYWN0aW9u IG91dHJpZ2h0LgotCSAqLwotCWlmIChJbkhvdFN0YW5kYnkpCi0JCVJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKLQkJCQkJ CQkJCQkJeGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9YTE9HX0NBVEFMT0dfUkVMLAotCQkJ CQkJCQkJCQlybG9jYXRvcik7Ci0KLQkvKgotCSAqIFJlYWQgdGhlIGhlYXAgcGFnZSwgaWYgaXQg c3RpbGwgZXhpc3RzLiBJZiB0aGUgaGVhcCBmaWxlIGhhcyBkcm9wcGVkIG9yCi0JICogdHJ1bmNh dGVkIGxhdGVyIGluIHJlY292ZXJ5LCB3ZSBkb24ndCBuZWVkIHRvIHVwZGF0ZSB0aGUgcGFnZSwg YnV0IHdlJ2QKLQkgKiBiZXR0ZXIgc3RpbGwgdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcC4KLQkg Ki8KLQlhY3Rpb24gPSBYTG9nUmVhZEJ1ZmZlckZvclJlZG8ocmVjb3JkLCAxLCAmYnVmZmVyKTsK LQlpZiAoYWN0aW9uID09IEJMS19ORUVEU19SRURPKQotCXsKLQkJLyoKLQkJICogV2UgZG9uJ3Qg YnVtcCB0aGUgTFNOIG9mIHRoZSBoZWFwIHBhZ2Ugd2hlbiBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5 Ci0JCSAqIG1hcCBiaXQgKHVubGVzcyBjaGVja3N1bXMgb3Igd2FsX2hpbnRfYml0cyBpcyBlbmFi bGVkLCBpbiB3aGljaAotCQkgKiBjYXNlIHdlIG11c3QpLiBUaGlzIGV4cG9zZXMgdXMgdG8gdG9y biBwYWdlIGhhemFyZHMsIGJ1dCBzaW5jZQotCQkgKiB3ZSdyZSBub3QgaW5zcGVjdGluZyB0aGUg ZXhpc3RpbmcgcGFnZSBjb250ZW50cyBpbiBhbnkgd2F5LCB3ZQotCQkgKiBkb24ndCBjYXJlLgot CQkgKi8KLQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKLQotCQlQYWdlU2V0QWxsVmlz aWJsZShwYWdlKTsKLQotCQlpZiAoWExvZ0hpbnRCaXRJc05lZWRlZCgpKQotCQkJUGFnZVNldExT TihwYWdlLCBsc24pOwotCi0JCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOwotCX0KLQllbHNlIGlm IChhY3Rpb24gPT0gQkxLX1JFU1RPUkVEKQotCXsKLQkJLyoKLQkJICogSWYgaGVhcCBibG9jayB3 YXMgYmFja2VkIHVwLCB3ZSBhbHJlYWR5IHJlc3RvcmVkIGl0IGFuZCB0aGVyZSdzCi0JCSAqIG5v dGhpbmcgbW9yZSB0byBkby4gKFRoaXMgY2FuIG9ubHkgaGFwcGVuIHdpdGggY2hlY2tzdW1zIG9y Ci0JCSAqIHdhbF9sb2dfaGludHMgZW5hYmxlZC4pCi0JCSAqLwotCX0KLQotCWlmIChCdWZmZXJJ c1ZhbGlkKGJ1ZmZlcikpCi0JewotCQlTaXplCQlzcGFjZSA9IFBhZ2VHZXRGcmVlU3BhY2UoQnVm ZmVyR2V0UGFnZShidWZmZXIpKTsKLQotCQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7Ci0K LQkJLyoKLQkJICogU2luY2UgRlNNIGlzIG5vdCBXQUwtbG9nZ2VkIGFuZCBvbmx5IHVwZGF0ZWQg aGV1cmlzdGljYWxseSwgaXQKLQkJICogZWFzaWx5IGJlY29tZXMgc3RhbGUgaW4gc3RhbmRieXMu ICBJZiB0aGUgc3RhbmRieSBpcyBsYXRlciBwcm9tb3RlZAotCQkgKiBhbmQgcnVucyBWQUNVVU0s IGl0IHdpbGwgc2tpcCB1cGRhdGluZyBpbmRpdmlkdWFsIGZyZWUgc3BhY2UKLQkJICogZmlndXJl cyBmb3IgcGFnZXMgdGhhdCBiZWNhbWUgYWxsLXZpc2libGUgKG9yIGFsbC1mcm96ZW4sIGRlcGVu ZGluZwotCQkgKiBvbiB0aGUgdmFjdXVtIG1vZGUsKSB3aGljaCBpcyB0cm91Ymxlc29tZSB3aGVu IEZyZWVTcGFjZU1hcFZhY3V1bQotCQkgKiBwcm9wYWdhdGVzIHRvbyBvcHRpbWlzdGljIGZyZWUg c3BhY2UgdmFsdWVzIHRvIHVwcGVyIEZTTSBsYXllcnM7Ci0JCSAqIGxhdGVyIGluc2VydGVycyB0 cnkgdG8gdXNlIHN1Y2ggcGFnZXMgb25seSB0byBmaW5kIG91dCB0aGF0IHRoZXkKLQkJICogYXJl IHVudXNhYmxlLiAgVGhpcyBjYW4gY2F1c2UgbG9uZyBzdGFsbHMgd2hlbiB0aGVyZSBhcmUgbWFu eSBzdWNoCi0JCSAqIHBhZ2VzLgotCQkgKgotCQkgKiBGb3Jlc3RhbGwgdGhvc2UgcHJvYmxlbXMg YnkgdXBkYXRpbmcgRlNNJ3MgaWRlYSBhYm91dCBhIHBhZ2UgdGhhdAotCQkgKiBpcyBiZWNvbWlu ZyBhbGwtdmlzaWJsZSBvciBhbGwtZnJvemVuLgotCQkgKgotCQkgKiBEbyB0aGlzIHJlZ2FyZGxl c3Mgb2YgYSBmdWxsLXBhZ2UgaW1hZ2UgYmVpbmcgYXBwbGllZCwgc2luY2UgdGhlCi0JCSAqIEZT TSBkYXRhIGlzIG5vdCBpbiB0aGUgcGFnZSBhbnl3YXkuCi0JCSAqLwotCQlpZiAoeGxyZWMtPmZs YWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKQotCQkJWExvZ1JlY29yZFBhZ2VXaXRoRnJl ZVNwYWNlKHJsb2NhdG9yLCBibGtubywgc3BhY2UpOwotCX0KLQotCS8qCi0JICogRXZlbiBpZiB3 ZSBza2lwcGVkIHRoZSBoZWFwIHBhZ2UgdXBkYXRlIGR1ZSB0byB0aGUgTFNOIGludGVybG9jaywg aXQncwotCSAqIHN0aWxsIHNhZmUgdG8gdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcC4gIEFueSBX QUwgcmVjb3JkIHRoYXQgY2xlYXJzCi0JICogdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBkb2VzIHNv IGJlZm9yZSBjaGVja2luZyB0aGUgcGFnZSBMU04sIHNvIGFueQotCSAqIGJpdHMgdGhhdCBuZWVk IHRvIGJlIGNsZWFyZWQgd2lsbCBzdGlsbCBiZSBjbGVhcmVkLgotCSAqLwotCWlmIChYTG9nUmVh ZEJ1ZmZlckZvclJlZG9FeHRlbmRlZChyZWNvcmQsIDAsIFJCTV9aRVJPX09OX0VSUk9SLCBmYWxz ZSwKLQkJCQkJCQkJCSAgJnZtYnVmZmVyKSA9PSBCTEtfTkVFRFNfUkVETykKLQl7Ci0JCVBhZ2UJ CXZtcGFnZSA9IEJ1ZmZlckdldFBhZ2Uodm1idWZmZXIpOwotCQlSZWxhdGlvbglyZWxuOwotCQl1 aW50OAkJdm1iaXRzOwotCi0JCS8qIGluaXRpYWxpemUgdGhlIHBhZ2UgaWYgaXQgd2FzIHJlYWQg YXMgemVyb3MgKi8KLQkJaWYgKFBhZ2VJc05ldyh2bXBhZ2UpKQotCQkJUGFnZUluaXQodm1wYWdl LCBCTENLU1osIDApOwotCi0JCS8qIHJlbW92ZSBWSVNJQklMSVRZTUFQX1hMT0dfKiAqLwotCQl2 bWJpdHMgPSB4bHJlYy0+ZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFM7Ci0KLQkJLyoK LQkJICogWExvZ1JlYWRCdWZmZXJGb3JSZWRvRXh0ZW5kZWQgbG9ja2VkIHRoZSBidWZmZXIuIEJ1 dAotCQkgKiB2aXNpYmlsaXR5bWFwX3NldCB3aWxsIGhhbmRsZSBsb2NraW5nIGl0c2VsZi4KLQkJ ICovCi0JCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9MT0NLX1VOTE9DSyk7Ci0KLQkJcmVs biA9IENyZWF0ZUZha2VSZWxjYWNoZUVudHJ5KHJsb2NhdG9yKTsKLQotCQl2aXNpYmlsaXR5bWFw X3NldChyZWxuLCBibGtubywgSW52YWxpZEJ1ZmZlciwgbHNuLCB2bWJ1ZmZlciwKLQkJCQkJCSAg eGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLCB2bWJpdHMpOwotCi0JCVJlbGVhc2VCdWZm ZXIodm1idWZmZXIpOwotCQlGcmVlRmFrZVJlbGNhY2hlRW50cnkocmVsbik7Ci0JfQotCWVsc2Ug aWYgKEJ1ZmZlcklzVmFsaWQodm1idWZmZXIpKQotCQlVbmxvY2tSZWxlYXNlQnVmZmVyKHZtYnVm ZmVyKTsKLX0KLQogLyoKICAqIEdpdmVuIGFuICJpbmZvYml0cyIgZmllbGQgZnJvbSBhbiBYTG9n IHJlY29yZCwgc2V0IHRoZSBjb3JyZWN0IGJpdHMgaW4gdGhlCiAgKiBnaXZlbiBpbmZvbWFzayBh bmQgaW5mb21hc2syIGZvciB0aGUgdHVwbGUgdG91Y2hlZCBieSB0aGUgcmVjb3JkLgpAQCAtNzg1 LDE1ICs2NTEsMTQgQEAgaGVhcF94bG9nX211bHRpX2luc2VydChYTG9nUmVhZGVyU3RhdGUgKnJl Y29yZCkKIAkJaWYgKFBhZ2VJc05ldyh2bXBhZ2UpKQogCQkJUGFnZUluaXQodm1wYWdlLCBCTENL U1osIDApOwogCi0JCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhyZWxuLCBibGtubywKLQkJCQkJ CQkJIHZtYnVmZmVyLAotCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8Ci0JCQkJ CQkJCSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOwotCiAJCS8qCiAJCSAqIEl0IGlzIG5vdCBw b3NzaWJsZSB0aGF0IHRoZSBWTSB3YXMgYWxyZWFkeSBzZXQgZm9yIHRoaXMgaGVhcCBwYWdlLAog CQkgKiBzbyB0aGUgdm1idWZmZXIgbXVzdCBoYXZlIGJlZW4gbW9kaWZpZWQgYW5kIG1hcmtlZCBk aXJ0eS4KIAkJICovCisJCXZpc2liaWxpdHltYXBfc2V0KHJlbG4sIGJsa25vLAorCQkJCQkJICB2 bWJ1ZmZlciwKKwkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8CisJCQkJCQkgIFZJ U0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7CiAJCUFzc2VydChCdWZmZXJJc0RpcnR5KHZtYnVmZmVy KSk7CiAJCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlciksIGxzbik7CiAJCUZyZWVG YWtlUmVsY2FjaGVFbnRyeShyZWxuKTsKQEAgLTEzNzQsOSArMTIzOSw2IEBAIGhlYXAyX3JlZG8o WExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9WQUNVVU1f Q0xFQU5VUDoKIAkJCWhlYXBfeGxvZ19wcnVuZV9mcmVlemUocmVjb3JkKTsKIAkJCWJyZWFrOwot CQljYXNlIFhMT0dfSEVBUDJfVklTSUJMRToKLQkJCWhlYXBfeGxvZ192aXNpYmxlKHJlY29yZCk7 Ci0JCQlicmVhazsKIAkJY2FzZSBYTE9HX0hFQVAyX01VTFRJX0lOU0VSVDoKIAkJCWhlYXBfeGxv Z19tdWx0aV9pbnNlcnQocmVjb3JkKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYwppbmRleCA5NmIyZDU4ZTQwYy4uM2ZlOWRiOTljMGQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jCkBAIC05ODQsOCArOTg0LDggQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9m cmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCXsKIAkJCUFzc2VydChQ YWdlSXNBbGxWaXNpYmxlKHBhZ2UpKTsKIAkJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9M T0NLX0VYQ0xVU0lWRSk7Ci0JCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRz KHJlbGF0aW9uLCBibG9ja25vLAotCQkJCQkJCQkJCQkJICB2bWJ1ZmZlciwgdm1mbGFncyk7CisJ CQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXQocmVsYXRpb24sIGJsb2Nrbm8sCisJCQkJ CQkJCQkJICAgdm1idWZmZXIsIHZtZmxhZ3MpOwogCiAJCQlpZiAob2xkX3ZtYml0cyA9PSB2bWZs YWdzKQogCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDc1YzEwYmEy MGM2Li4yZmY2N2Q3N2NiNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAt MTg4Niw4ICsxODg2LDggQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNy ZWwsIEJ1ZmZlciBidWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCQkJTWFya0J1ZmZlckRpcnR5KGJ1 Zik7CiAKIAkJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSk7Ci0J CQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHModmFjcmVsLT5yZWwsIGJsa25vLAotCQkJCQkJCQkJ IHZtYnVmZmVyLCBuZXdfdm1iaXRzKTsKKwkJCXZpc2liaWxpdHltYXBfc2V0KHZhY3JlbC0+cmVs LCBibGtubywKKwkJCQkJCQkgIHZtYnVmZmVyLCBuZXdfdm1iaXRzKTsKIAogCQkJaWYgKFJlbGF0 aW9uTmVlZHNXQUwodmFjcmVsLT5yZWwpKQogCQkJewpAQCAtMjc1Myw5ICsyNzUzLDkgQEAgbGF6 eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8s IEJ1ZmZlciBidWZmZXIsCiAJCXNldF9wZF9hbGxfdmlzID0gdHJ1ZTsKIAkJUGFnZVNldEFsbFZp c2libGUocGFnZSk7CiAJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lW RSk7Ci0JCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyh2YWNyZWwtPnJlbCwKLQkJCQkJCQkJIGJs a25vLAotCQkJCQkJCQkgdm1idWZmZXIsIHZtZmxhZ3MpOworCQl2aXNpYmlsaXR5bWFwX3NldCh2 YWNyZWwtPnJlbCwKKwkJCQkJCSAgYmxrbm8sCisJCQkJCQkgIHZtYnVmZmVyLCB2bWZsYWdzKTsK IAkJY29uZmxpY3RfeGlkID0gdmlzaWJpbGl0eV9jdXRvZmZfeGlkOwogCX0KIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCmluZGV4IGJiOGRmZDg5MTBhLi5mN2JhZDY4ZmZj NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwpAQCAtMTQsOCArMTQs NyBAQAogICoJCXZpc2liaWxpdHltYXBfY2xlYXIgIC0gY2xlYXIgYml0cyBmb3Igb25lIHBhZ2Ug aW4gdGhlIHZpc2liaWxpdHkgbWFwCiAgKgkJdmlzaWJpbGl0eW1hcF9waW4JIC0gcGluIGEgbWFw IHBhZ2UgZm9yIHNldHRpbmcgYSBiaXQKICAqCQl2aXNpYmlsaXR5bWFwX3Bpbl9vayAtIGNoZWNr IHdoZXRoZXIgY29ycmVjdCBtYXAgcGFnZSBpcyBhbHJlYWR5IHBpbm5lZAotICoJCXZpc2liaWxp dHltYXBfc2V0CSAtIHNldCBiaXQocykgaW4gYSBwcmV2aW91c2x5IHBpbm5lZCBwYWdlIGFuZCBs b2cKLSAqICAgICAgdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzIC0gc2V0IGJpdChzKSBpbiBhIHBp bm5lZCBwYWdlCisgKgkJdmlzaWJpbGl0eW1hcF9zZXQJIC0gc2V0IGJpdChzKSBpbiBhIHByZXZp b3VzbHkgcGlubmVkIHBhZ2UKICAqCQl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMgLSBnZXQgc3Rh dHVzIG9mIGJpdHMKICAqCQl2aXNpYmlsaXR5bWFwX2NvdW50ICAtIGNvdW50IG51bWJlciBvZiBi aXRzIHNldCBpbiB2aXNpYmlsaXR5IG1hcAogICoJCXZpc2liaWxpdHltYXBfcHJlcGFyZV90cnVu Y2F0ZSAtCkBAIC0yMjAsMTA4ICsyMTksNiBAQCB2aXNpYmlsaXR5bWFwX3Bpbl9vayhCbG9ja051 bWJlciBoZWFwQmxrLCBCdWZmZXIgdm1idWYpCiAJcmV0dXJuIEJ1ZmZlcklzVmFsaWQodm1idWYp ICYmIEJ1ZmZlckdldEJsb2NrTnVtYmVyKHZtYnVmKSA9PSBtYXBCbG9jazsKIH0KIAotLyoKLSAq CXZpc2liaWxpdHltYXBfc2V0IC0gc2V0IGJpdChzKSBvbiBhIHByZXZpb3VzbHkgcGlubmVkIHBh Z2UKLSAqCi0gKiByZWNwdHIgaXMgdGhlIExTTiBvZiB0aGUgWExPRyByZWNvcmQgd2UncmUgcmVw bGF5aW5nLCBpZiB3ZSdyZSBpbiByZWNvdmVyeSwKLSAqIG9yIEludmFsaWRYTG9nUmVjUHRyIGlu IG5vcm1hbCBydW5uaW5nLiAgVGhlIFZNIHBhZ2UgTFNOIGlzIGFkdmFuY2VkIHRvIHRoZQotICog b25lIHByb3ZpZGVkOyBpbiBub3JtYWwgcnVubmluZywgd2UgZ2VuZXJhdGUgYSBuZXcgWExPRyBy ZWNvcmQgYW5kIHNldCB0aGUKLSAqIHBhZ2UgTFNOIHRvIHRoYXQgdmFsdWUgKHRob3VnaCB0aGUg aGVhcCBwYWdlJ3MgTFNOIG1heSAqbm90KiBiZSB1cGRhdGVkOwotICogc2VlIGJlbG93KS4gIGN1 dG9mZl94aWQgaXMgdGhlIGxhcmdlc3QgeG1pbiBvbiB0aGUgcGFnZSBiZWluZyBtYXJrZWQKLSAq IGFsbC12aXNpYmxlOyBpdCBpcyBuZWVkZWQgZm9yIEhvdCBTdGFuZGJ5LCBhbmQgY2FuIGJlIElu dmFsaWRUcmFuc2FjdGlvbklkCi0gKiBpZiB0aGUgcGFnZSBjb250YWlucyBubyB0dXBsZXMuICBJ dCBjYW4gYWxzbyBiZSBzZXQgdG8gSW52YWxpZFRyYW5zYWN0aW9uSWQKLSAqIHdoZW4gYSBwYWdl IHRoYXQgaXMgYWxyZWFkeSBhbGwtdmlzaWJsZSBpcyBiZWluZyBtYXJrZWQgYWxsLWZyb3plbi4K LSAqCi0gKiBDYWxsZXIgaXMgZXhwZWN0ZWQgdG8gc2V0IHRoZSBoZWFwIHBhZ2UncyBQRF9BTExf VklTSUJMRSBiaXQgYmVmb3JlIGNhbGxpbmcKLSAqIHRoaXMgZnVuY3Rpb24uIEV4Y2VwdCBpbiBy ZWNvdmVyeSwgY2FsbGVyIHNob3VsZCBhbHNvIHBhc3MgdGhlIGhlYXAKLSAqIGJ1ZmZlci4gV2hl biBjaGVja3N1bXMgYXJlIGVuYWJsZWQgYW5kIHdlJ3JlIG5vdCBpbiByZWNvdmVyeSwgd2UgbXVz dCBhZGQKLSAqIHRoZSBoZWFwIGJ1ZmZlciB0byB0aGUgV0FMIGNoYWluIHRvIHByb3RlY3QgaXQg ZnJvbSBiZWluZyB0b3JuLgotICoKLSAqIFlvdSBtdXN0IHBhc3MgYSBidWZmZXIgY29udGFpbmlu ZyB0aGUgY29ycmVjdCBtYXAgcGFnZSB0byB0aGlzIGZ1bmN0aW9uLgotICogQ2FsbCB2aXNpYmls aXR5bWFwX3BpbiBmaXJzdCB0byBwaW4gdGhlIHJpZ2h0IG9uZS4gVGhpcyBmdW5jdGlvbiBkb2Vz bid0IGRvCi0gKiBhbnkgSS9PLgotICoKLSAqIFJldHVybnMgdGhlIHN0YXRlIG9mIHRoZSBwYWdl J3MgVk0gYml0cyBiZWZvcmUgc2V0dGluZyBmbGFncy4KLSAqLwotdWludDgKLXZpc2liaWxpdHlt YXBfc2V0KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIGhlYXBCdWYs Ci0JCQkJICBYTG9nUmVjUHRyIHJlY3B0ciwgQnVmZmVyIHZtQnVmLCBUcmFuc2FjdGlvbklkIGN1 dG9mZl94aWQsCi0JCQkJICB1aW50OCBmbGFncykKLXsKLQlCbG9ja051bWJlciBtYXBCbG9jayA9 IEhFQVBCTEtfVE9fTUFQQkxPQ0soaGVhcEJsayk7Ci0JdWludDMyCQltYXBCeXRlID0gSEVBUEJM S19UT19NQVBCWVRFKGhlYXBCbGspOwotCXVpbnQ4CQltYXBPZmZzZXQgPSBIRUFQQkxLX1RPX09G RlNFVChoZWFwQmxrKTsKLQlQYWdlCQlwYWdlOwotCXVpbnQ4CSAgICptYXA7Ci0JdWludDgJCXN0 YXR1czsKLQotI2lmZGVmIFRSQUNFX1ZJU0lCSUxJVFlNQVAKLQllbG9nKERFQlVHMSwgInZtX3Nl dCBmbGFncyAweCUwMlggZm9yICVzICVkIiwKLQkJIGZsYWdzLCBSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpLCBoZWFwQmxrKTsKLSNlbmRpZgotCi0JQXNzZXJ0KEluUmVjb3ZlcnkgfHwgWExv Z1JlY1B0cklzSW52YWxpZChyZWNwdHIpKTsKLQlBc3NlcnQoSW5SZWNvdmVyeSB8fCBQYWdlSXNB bGxWaXNpYmxlKEJ1ZmZlckdldFBhZ2UoaGVhcEJ1ZikpKTsKLQlBc3NlcnQoKGZsYWdzICYgVklT SUJJTElUWU1BUF9WQUxJRF9CSVRTKSA9PSBmbGFncyk7Ci0KLQkvKiBNdXN0IG5ldmVyIHNldCBh bGxfZnJvemVuIGJpdCB3aXRob3V0IGFsc28gc2V0dGluZyBhbGxfdmlzaWJsZSBiaXQgKi8KLQlB c3NlcnQoZmxhZ3MgIT0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKLQotCS8qIENoZWNrIHRo YXQgd2UgaGF2ZSB0aGUgcmlnaHQgaGVhcCBwYWdlIHBpbm5lZCwgaWYgcHJlc2VudCAqLwotCWlm IChCdWZmZXJJc1ZhbGlkKGhlYXBCdWYpICYmIEJ1ZmZlckdldEJsb2NrTnVtYmVyKGhlYXBCdWYp ICE9IGhlYXBCbGspCi0JCWVsb2coRVJST1IsICJ3cm9uZyBoZWFwIGJ1ZmZlciBwYXNzZWQgdG8g dmlzaWJpbGl0eW1hcF9zZXQiKTsKLQotCUFzc2VydCghQnVmZmVySXNWYWxpZChoZWFwQnVmKSB8 fCBCdWZmZXJJc0V4Y2x1c2l2ZUxvY2tlZChoZWFwQnVmKSk7Ci0KLQkvKiBDaGVjayB0aGF0IHdl IGhhdmUgdGhlIHJpZ2h0IFZNIHBhZ2UgcGlubmVkICovCi0JaWYgKCFCdWZmZXJJc1ZhbGlkKHZt QnVmKSB8fCBCdWZmZXJHZXRCbG9ja051bWJlcih2bUJ1ZikgIT0gbWFwQmxvY2spCi0JCWVsb2co RVJST1IsICJ3cm9uZyBWTSBidWZmZXIgcGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0Iik7Ci0K LQlwYWdlID0gQnVmZmVyR2V0UGFnZSh2bUJ1Zik7Ci0JbWFwID0gKHVpbnQ4ICopIFBhZ2VHZXRD b250ZW50cyhwYWdlKTsKLQlMb2NrQnVmZmVyKHZtQnVmLCBCVUZGRVJfTE9DS19FWENMVVNJVkUp OwotCi0Jc3RhdHVzID0gKG1hcFttYXBCeXRlXSA+PiBtYXBPZmZzZXQpICYgVklTSUJJTElUWU1B UF9WQUxJRF9CSVRTOwotCWlmIChmbGFncyAhPSBzdGF0dXMpCi0JewotCQlTVEFSVF9DUklUX1NF Q1RJT04oKTsKLQotCQltYXBbbWFwQnl0ZV0gfD0gKGZsYWdzIDw8IG1hcE9mZnNldCk7Ci0JCU1h cmtCdWZmZXJEaXJ0eSh2bUJ1Zik7Ci0KLQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocmVsKSkKLQkJ ewotCQkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQocmVjcHRyKSkKLQkJCXsKLQkJCQlBc3NlcnQo IUluUmVjb3ZlcnkpOwotCQkJCXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUocmVsLCBoZWFwQnVm LCB2bUJ1ZiwgY3V0b2ZmX3hpZCwgZmxhZ3MpOwotCi0JCQkJLyoKLQkJCQkgKiBJZiBkYXRhIGNo ZWNrc3VtcyBhcmUgZW5hYmxlZCAob3Igd2FsX2xvZ19oaW50cz1vbiksIHdlCi0JCQkJICogbmVl ZCB0byBwcm90ZWN0IHRoZSBoZWFwIHBhZ2UgZnJvbSBiZWluZyB0b3JuLgotCQkJCSAqCi0JCQkJ ICogSWYgbm90LCB0aGVuIHdlIG11c3QgKm5vdCogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04u IEluCi0JCQkJICogdGhpcyBjYXNlLCB0aGUgRlBJIGZvciB0aGUgaGVhcCBwYWdlIHdhcyBvbWl0 dGVkIGZyb20gdGhlCi0JCQkJICogV0FMIHJlY29yZCBpbnNlcnRlZCBhYm92ZSwgc28gaXQgd291 bGQgYmUgaW5jb3JyZWN0IHRvCi0JCQkJICogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04uCi0J CQkJICovCi0JCQkJaWYgKFhMb2dIaW50Qml0SXNOZWVkZWQoKSkKLQkJCQl7Ci0JCQkJCVBhZ2UJ CWhlYXBQYWdlID0gQnVmZmVyR2V0UGFnZShoZWFwQnVmKTsKLQotCQkJCQlQYWdlU2V0TFNOKGhl YXBQYWdlLCByZWNwdHIpOwotCQkJCX0KLQkJCX0KLQkJCVBhZ2VTZXRMU04ocGFnZSwgcmVjcHRy KTsKLQkJfQotCi0JCUVORF9DUklUX1NFQ1RJT04oKTsKLQl9Ci0KLQlMb2NrQnVmZmVyKHZtQnVm LCBCVUZGRVJfTE9DS19VTkxPQ0spOwotCXJldHVybiBzdGF0dXM7Ci19Ci0KIC8qCiAgKiBTZXQg ZmxhZ3MgaW4gdGhlIFZNIGJsb2NrIGNvbnRhaW5lZCBpbiB0aGUgcGFzc2VkIGluIHZtQnVmLgog ICoKQEAgLTM0Myw4ICsyNDAsOCBAQCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJs b2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAogICogaXMgcGlubmVkIGFuZCBleGNs dXNpdmUgbG9ja2VkLgogICovCiB1aW50OAotdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKFJlbGF0 aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywKLQkJCQkJCSBCdWZmZXIgdm1CdWYsIHVpbnQ4 IGZsYWdzKQordmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFw QmxrLAorCQkJCSAgQnVmZmVyIHZtQnVmLCB1aW50OCBmbGFncykKIHsKIAlCbG9ja051bWJlciBt YXBCbG9jayA9IEhFQVBCTEtfVE9fTUFQQkxPQ0soaGVhcEJsayk7CiAJdWludDMyCQltYXBCeXRl ID0gSEVBUEJMS19UT19NQVBCWVRFKGhlYXBCbGspOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mv aGVhcGRlc2MuYwppbmRleCBjOTVkMzBkZmU4ZC4uNDc5OThmMWRmMTUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCkBAIC0zNDMsMTMgKzM0Myw2IEBAIGhlYXAyX2Rlc2Mo U3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkJfQogCQl9CiAJfQot CWVsc2UgaWYgKGluZm8gPT0gWExPR19IRUFQMl9WSVNJQkxFKQotCXsKLQkJeGxfaGVhcF92aXNp YmxlICp4bHJlYyA9ICh4bF9oZWFwX3Zpc2libGUgKikgcmVjOwotCi0JCWFwcGVuZFN0cmluZ0lu Zm8oYnVmLCAic25hcHNob3RDb25mbGljdEhvcml6b246ICV1LCBmbGFnczogMHglMDJYIiwKLQkJ CQkJCSB4bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24sIHhscmVjLT5mbGFncyk7Ci0JfQog CWVsc2UgaWYgKGluZm8gPT0gWExPR19IRUFQMl9NVUxUSV9JTlNFUlQpCiAJewogCQl4bF9oZWFw X211bHRpX2luc2VydCAqeGxyZWMgPSAoeGxfaGVhcF9tdWx0aV9pbnNlcnQgKikgcmVjOwpAQCAt NDU0LDkgKzQ0Nyw2IEBAIGhlYXAyX2lkZW50aWZ5KHVpbnQ4IGluZm8pCiAJCWNhc2UgWExPR19I RUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUDoKIAkJCWlkID0gIlBSVU5FX1ZBQ1VVTV9DTEVBTlVQ IjsKIAkJCWJyZWFrOwotCQljYXNlIFhMT0dfSEVBUDJfVklTSUJMRToKLQkJCWlkID0gIlZJU0lC TEUiOwotCQkJYnJlYWs7CiAJCWNhc2UgWExPR19IRUFQMl9NVUxUSV9JTlNFUlQ6CiAJCQlpZCA9 ICJNVUxUSV9JTlNFUlQiOwogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9kZWNvZGUuYwppbmRleCBjYzAzZjA3MDZlOS4uMmZkZDRhZjkwYTggMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKKysrIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYwpAQCAtNDU0LDcgKzQ1NCw2IEBAIGhlYXAyX2Rl Y29kZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIgKmJ1ZikK IAkJY2FzZSBYTE9HX0hFQVAyX1BSVU5FX09OX0FDQ0VTUzoKIAkJY2FzZSBYTE9HX0hFQVAyX1BS VU5FX1ZBQ1VVTV9TQ0FOOgogCQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX0NMRUFOVVA6 Ci0JCWNhc2UgWExPR19IRUFQMl9WSVNJQkxFOgogCQljYXNlIFhMT0dfSEVBUDJfTE9DS19VUERB VEVEOgogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9zdGFuZGJ5LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKaW5k ZXggNDIyMmJkYWIwNzguLmM2MTk2NDNlMTIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9zdGFuZGJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5j CkBAIC00NzUsMTIgKzQ3NSwxMiBAQCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hv dChUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAogCSAqIElmIHdlIGdldCBw YXNzZWQgSW52YWxpZFRyYW5zYWN0aW9uSWQgdGhlbiB3ZSBkbyBub3RoaW5nIChubyBjb25mbGlj dCkuCiAJICoKIAkgKiBUaGlzIGNhbiBoYXBwZW4gd2hlbiByZXBsYXlpbmcgYWxyZWFkeS1hcHBs aWVkIFdBTCByZWNvcmRzIGFmdGVyIGEKLQkgKiBzdGFuZGJ5IGNyYXNoIG9yIHJlc3RhcnQsIG9y IHdoZW4gcmVwbGF5aW5nIGFuIFhMT0dfSEVBUDJfVklTSUJMRQotCSAqIHJlY29yZCB0aGF0IG1h cmtzIGFzIGZyb3plbiBhIHBhZ2Ugd2hpY2ggd2FzIGFscmVhZHkgYWxsLXZpc2libGUuICBJdCdz Ci0JICogYWxzbyBxdWl0ZSBjb21tb24gd2l0aCByZWNvcmRzIGdlbmVyYXRlZCBkdXJpbmcgaW5k ZXggZGVsZXRpb24KLQkgKiAob3JpZ2luYWwgZXhlY3V0aW9uIG9mIHRoZSBkZWxldGlvbiBjYW4g cmVhc29uIHRoYXQgYSByZWNvdmVyeSBjb25mbGljdAotCSAqIHdoaWNoIGlzIHN1ZmZpY2llbnQg Zm9yIHRoZSBkZWxldGlvbiBvcGVyYXRpb24gbXVzdCB0YWtlIHBsYWNlIGJlZm9yZQotCSAqIHJl cGxheSBvZiB0aGUgZGVsZXRpb24gcmVjb3JkIGl0c2VsZikuCisJICogc3RhbmRieSBjcmFzaCBv ciByZXN0YXJ0LCBvciB3aGVuIHJlcGxheWluZyBhIHJlY29yZCB0aGF0IG1hcmtzIGFzCisJICog ZnJvemVuIGEgcGFnZSB3aGljaCB3YXMgYWxyZWFkeSBtYXJrZWQgYWxsLXZpc2libGUgaW4gdGhl IHZpc2liaWxpdHkKKwkgKiBtYXAuICBJdCdzIGFsc28gcXVpdGUgY29tbW9uIHdpdGggcmVjb3Jk cyBnZW5lcmF0ZWQgZHVyaW5nIGluZGV4CisJICogZGVsZXRpb24gKG9yaWdpbmFsIGV4ZWN1dGlv biBvZiB0aGUgZGVsZXRpb24gY2FuIHJlYXNvbiB0aGF0IGEgcmVjb3ZlcnkKKwkgKiBjb25mbGlj dCB3aGljaCBpcyBzdWZmaWNpZW50IGZvciB0aGUgZGVsZXRpb24gb3BlcmF0aW9uIG11c3QgdGFr ZSBwbGFjZQorCSAqIGJlZm9yZSByZXBsYXkgb2YgdGhlIGRlbGV0aW9uIHJlY29yZCBpdHNlbGYp LgogCSAqLwogCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQoc25hcHNob3RDb25mbGljdEhvcml6 b24pKQogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hs b2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCmluZGV4IGQ4NTA4NTkzZTdj Li4zNjcyZjM3MmFhOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9n LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKQEAgLTYwLDcgKzYwLDYg QEAKICNkZWZpbmUgWExPR19IRUFQMl9QUlVORV9PTl9BQ0NFU1MJCTB4MTAKICNkZWZpbmUgWExP R19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTgkweDIwCiAjZGVmaW5lIFhMT0dfSEVBUDJfUFJVTkVf VkFDVVVNX0NMRUFOVVAJMHgzMAotI2RlZmluZSBYTE9HX0hFQVAyX1ZJU0lCTEUJCTB4NDAKICNk ZWZpbmUgWExPR19IRUFQMl9NVUxUSV9JTlNFUlQgMHg1MAogI2RlZmluZSBYTE9HX0hFQVAyX0xP Q0tfVVBEQVRFRCAweDYwCiAjZGVmaW5lIFhMT0dfSEVBUDJfTkVXX0NJRAkJMHg3MApAQCAtNDQ2 LDIwICs0NDUsNiBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX2lucGxhY2UKIAogI2RlZmluZSBN aW5TaXplT2ZIZWFwSW5wbGFjZQkob2Zmc2V0b2YoeGxfaGVhcF9pbnBsYWNlLCBubXNncykgKyBz aXplb2YoaW50KSkKIAotLyoKLSAqIFRoaXMgaXMgd2hhdCB3ZSBuZWVkIHRvIGtub3cgYWJvdXQg c2V0dGluZyBhIHZpc2liaWxpdHkgbWFwIGJpdAotICoKLSAqIEJhY2t1cCBibGsgMDogdmlzaWJp bGl0eSBtYXAgYnVmZmVyCi0gKiBCYWNrdXAgYmxrIDE6IGhlYXAgYnVmZmVyCi0gKi8KLXR5cGVk ZWYgc3RydWN0IHhsX2hlYXBfdmlzaWJsZQotewotCVRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25m bGljdEhvcml6b247Ci0JdWludDgJCWZsYWdzOwotfSB4bF9oZWFwX3Zpc2libGU7Ci0KLSNkZWZp bmUgU2l6ZU9mSGVhcFZpc2libGUgKG9mZnNldG9mKHhsX2hlYXBfdmlzaWJsZSwgZmxhZ3MpICsg c2l6ZW9mKHVpbnQ4KSkKLQogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9uZXdfY2lkCiB7CiAJLyoK QEAgLTUwMywxMSArNDg4LDYgQEAgZXh0ZXJuIHZvaWQgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1 ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKmhlYXAyX2lk ZW50aWZ5KHVpbnQ4IGluZm8pOwogZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2xvZ2ljYWxfcmV3cml0 ZShYTG9nUmVhZGVyU3RhdGUgKnIpOwogCi1leHRlcm4gWExvZ1JlY1B0ciBsb2dfaGVhcF92aXNp YmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLAotCQkJCQkJCQkgICBCdWZmZXIg dm1fYnVmZmVyLAotCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jp em9uLAotCQkJCQkJCQkgICB1aW50OCB2bWZsYWdzKTsKLQogLyogaW4gaGVhcGRlc2MuYywgc28g aXQgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGZyb250ZW5kL2JhY2tlbmQgY29kZSAqLwogZXh0ZXJu IHZvaWQgaGVhcF94bG9nX2Rlc2VyaWFsaXplX3BydW5lX2FuZF9mcmVlemUoY2hhciAqY3Vyc29y LCB1aW50MTYgZmxhZ3MsCiAJCQkJCQkJCQkJCQkgICBpbnQgKm5wbGFucywgeGxocF9mcmVlemVf cGxhbiAqKnBsYW5zLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHlt YXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKaW5kZXggZmM3MDU2YTkx ZWEuLmM1YjFlMWY3YWRiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0 eW1hcC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKQEAgLTE1LDcg KzE1LDYgQEAKICNkZWZpbmUgVklTSUJJTElUWU1BUF9ICiAKICNpbmNsdWRlICJhY2Nlc3Mvdmlz aWJpbGl0eW1hcGRlZnMuaCIKLSNpbmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMuaCIKICNpbmNsdWRl ICJzdG9yYWdlL2Jsb2NrLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWYuaCIKICNpbmNsdWRlICJ1 dGlscy9yZWxjYWNoZS5oIgpAQCAtMzEsMTQgKzMwLDggQEAgZXh0ZXJuIGJvb2wgdmlzaWJpbGl0 eW1hcF9jbGVhcihSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssCiBleHRlcm4gdm9p ZCB2aXNpYmlsaXR5bWFwX3BpbihSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssCiAJ CQkJCQkJICBCdWZmZXIgKnZtYnVmKTsKIGV4dGVybiBib29sIHZpc2liaWxpdHltYXBfcGluX29r KEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciB2bWJ1Zik7Ci1leHRlcm4gdWludDggdmlzaWJp bGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLAotCQkJCQkJCSAgIEJsb2NrTnVtYmVyIGhlYXBCbGss IEJ1ZmZlciBoZWFwQnVmLAotCQkJCQkJCSAgIFhMb2dSZWNQdHIgcmVjcHRyLAotCQkJCQkJCSAg IEJ1ZmZlciB2bUJ1ZiwKLQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIGN1dG9mZl94aWQsCi0JCQkJ CQkJICAgdWludDggZmxhZ3MpOwotZXh0ZXJuIHVpbnQ4IHZpc2liaWxpdHltYXBfc2V0X3ZtYml0 cyhSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssCi0JCQkJCQkJCQkgIEJ1ZmZlciB2 bUJ1ZiwgdWludDggZmxhZ3MpOworZXh0ZXJuIHVpbnQ4IHZpc2liaWxpdHltYXBfc2V0KFJlbGF0 aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywKKwkJCQkJCQkgICBCdWZmZXIgdm1CdWYsIHVp bnQ4IGZsYWdzKTsKIGV4dGVybiB1aW50OCB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMoUmVsYXRp b24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgKnZtYnVmKTsKIGV4dGVybiB2b2lk IHZpc2liaWxpdHltYXBfY291bnQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciAqYWxsX3Zpc2li bGUsIEJsb2NrTnVtYmVyICphbGxfZnJvemVuKTsKIGV4dGVybiBCbG9ja051bWJlciB2aXNpYmls aXR5bWFwX3ByZXBhcmVfdHJ1bmNhdGUoUmVsYXRpb24gcmVsLApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvdmlz aWJpbGl0eW1hcGRlZnMuaAppbmRleCA1YWQ1YzAyMDg3Ny4uZTAxYmNlNGM5OWYgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCisrKyBiL3NyYy9pbmNs dWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCkBAIC0yMSwxNCArMjEsNSBAQAogI2RlZmlu ZSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4JMHgwMgogI2RlZmluZSBWSVNJQklMSVRZTUFQX1ZB TElEX0JJVFMJMHgwMwkvKiBPUiBvZiBhbGwgdmFsaWQgdmlzaWJpbGl0eW1hcAogCQkJCQkJCQkJ CQkgKiBmbGFncyBiaXRzICovCi0vKgotICogVG8gZGV0ZWN0IHJlY292ZXJ5IGNvbmZsaWN0cyBk dXJpbmcgbG9naWNhbCBkZWNvZGluZyBvbiBhIHN0YW5kYnksIHdlIG5lZWQKLSAqIHRvIGtub3cg aWYgYSB0YWJsZSBpcyBhIHVzZXIgY2F0YWxvZyB0YWJsZS4gRm9yIHRoYXQgd2UgYWRkIGFuIGFk ZGl0aW9uYWwKLSAqIGJpdCBpbnRvIHhsX2hlYXBfdmlzaWJsZS5mbGFncywgaW4gYWRkaXRpb24g dG8gdGhlIGFib3ZlLgotICoKLSAqIE5COiBWSVNJQklMSVRZTUFQX1hMT0dfKiBtYXkgbm90IGJl IHBhc3NlZCB0byB2aXNpYmlsaXR5bWFwX3NldCgpLgotICovCi0jZGVmaW5lIFZJU0lCSUxJVFlN QVBfWExPR19DQVRBTE9HX1JFTAkweDA0Ci0jZGVmaW5lIFZJU0lCSUxJVFlNQVBfWExPR19WQUxJ RF9CSVRTCShWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMgfCBWSVNJQklMSVRZTUFQX1hMT0dfQ0FU QUxPR19SRUwpCiAKICNlbmRpZgkJCQkJCQkvKiBWSVNJQklMSVRZTUFQREVGU19IICovCmRpZmYg LS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGExM2U4MTYyODkwLi5iNGM4ODBjMDgzZiAxMDA2NDQK LS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTQyNzMsNyArNDI3Myw2IEBAIHhsX2hlYXBfcHJ1bmUK IHhsX2hlYXBfcmV3cml0ZV9tYXBwaW5nCiB4bF9oZWFwX3RydW5jYXRlCiB4bF9oZWFwX3VwZGF0 ZQoteGxfaGVhcF92aXNpYmxlCiB4bF9pbnZhbGlkX3BhZ2UKIHhsX2ludmFsaWRfcGFnZV9rZXkK IHhsX2ludmFsaWRhdGlvbnMKLS0gCjIuNDMuMAoK --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0013-Rename-PruneState.freeze-to-attempt_freeze.patch" Content-Disposition: attachment; filename="v10-0013-Rename-PruneState.freeze-to-attempt_freeze.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8gh12 RnJvbSAyNzNmODBjOWQ2YmEyOWI5ZjY4OTU4NGE0OGMwZTI4ZTY1MjgwMjg3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDMxIEp1bCAyMDI1IDE0OjA3OjUxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMTMvMjJdIFJlbmFtZSBQcnVuZVN0YXRlLmZyZWV6ZSB0byBhdHRlbXB0X2ZyZWV6 ZQoKVGhpcyBtYWtlcyBpdCBtb3JlIGNsZWFyIHRoYXQgdGhpcyBpcyB0byBpbmRpY2F0ZSB0aGUg Y2FsbGVyIHdvdWxkIGxpa2UKaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSB0byBjb25zaWRl ciBmcmVlemluZyB0dXBsZXMgLS0gbm90IHRoYXQgd2UKdWx0aW1hdGVseSB3aWxsIGVuZCB1cCBm cmVlemluZyB0aGVtLgoKQWxzbyByZW5hbWUgbG9jYWwgdmFyaWFibGUgaGludF9iaXRfZnBpIHRv IGRpZF90dXBsZV9oaW50X2ZwaS4gVGhpcwptYWtlcyBpdCBjbGVhciBpdCBpcyBhYm91dCB0dXBs ZSBoaW50cyBhbmQgbm90IHBhZ2UgaGludHMgYW5kIHRoYXQgaXQKaW5kaWNhdGVzIHNvbWV0aGlu ZyB0aGF0IGhhcHBlbmVkIGFuZCBub3Qgc29tZXRoaW5nIHRoYXQgY291bGQgaGFwcGVuLgotLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIHwgMjAgKysrKysrKysrKy0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IGE0MTVkYjJjMDFlLi45NmIyZDU4 ZTQwYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTQzLDcgKzQzLDcgQEAg dHlwZWRlZiBzdHJ1Y3QKIAkvKiB3aGV0aGVyIG9yIG5vdCBkZWFkIGl0ZW1zIGNhbiBiZSBzZXQg TFBfVU5VU0VEIGR1cmluZyBwcnVuaW5nICovCiAJYm9vbAkJbWFya191bnVzZWRfbm93OwogCS8q IHdoZXRoZXIgdG8gYXR0ZW1wdCBmcmVlemluZyB0dXBsZXMgKi8KLQlib29sCQlmcmVlemU7CisJ Ym9vbAkJYXR0ZW1wdF9mcmVlemU7CiAKIAkvKgogCSAqIFdoZXRoZXIgb3Igbm90IHRvIGNvbnNp ZGVyIHVwZGF0aW5nIHRoZSBWTS4gVGhlcmUgaXMgc29tZSBib29ra2VlcGluZwpAQCAtNDU2LDcg KzQ1Niw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBC dWZmZXIgYnVmZmVyLAogCWJvb2wJCWRvX3NldF92bTsKIAl1aW50OAkJdm1mbGFncyA9IDA7CiAJ dWludDgJCW9sZF92bWJpdHMgPSAwOwotCWJvb2wJCWhpbnRfYml0X2ZwaTsKKwlib29sCQlkaWRf dHVwbGVfaGludF9mcGk7CiAJaW50NjQJCWZwaV9iZWZvcmUgPSBwZ1dhbFVzYWdlLndhbF9mcGk7 CiAJYm9vbAkJYWxsX2Zyb3plbl9leGNlcHRfbHBfZGVhZCA9IGZhbHNlOwogCWJvb2wJCXNldF9w ZF9hbGxfdmlzaWJsZSA9IGZhbHNlOwpAQCAtNDY0LDcgKzQ2NCw3IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCS8qIENvcHkg cGFyYW1ldGVycyB0byBwcnN0YXRlICovCiAJcHJzdGF0ZS52aXN0ZXN0ID0gdmlzdGVzdDsKIAlw cnN0YXRlLm1hcmtfdW51c2VkX25vdyA9IChvcHRpb25zICYgSEVBUF9QQUdFX1BSVU5FX01BUktf VU5VU0VEX05PVykgIT0gMDsKLQlwcnN0YXRlLmZyZWV6ZSA9IChvcHRpb25zICYgSEVBUF9QQUdF X1BSVU5FX0ZSRUVaRSkgIT0gMDsKKwlwcnN0YXRlLmF0dGVtcHRfZnJlZXplID0gKG9wdGlvbnMg JiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFKSAhPSAwOwogCXByc3RhdGUuY29uc2lkZXJfdXBkYXRl X3ZtID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZNKSAhPSAwOwogCXByc3Rh dGUuY3V0b2ZmcyA9IGN1dG9mZnM7CiAKQEAgLTQ4OSw3ICs0ODksNyBAQCBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAogCS8qIGlu aXRpYWxpemUgcGFnZSBmcmVlemluZyB3b3JraW5nIHN0YXRlICovCiAJcHJzdGF0ZS5wYWdlZnJ6 LmZyZWV6ZV9yZXF1aXJlZCA9IGZhbHNlOwotCWlmIChwcnN0YXRlLmZyZWV6ZSkKKwlpZiAocHJz dGF0ZS5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCUFzc2VydChuZXdfcmVsZnJvemVuX3hpZCAmJiBu ZXdfcmVsbWluX214aWQpOwogCQlwcnN0YXRlLnBhZ2VmcnouRnJlZXplUGFnZVJlbGZyb3plblhp ZCA9ICpuZXdfcmVsZnJvemVuX3hpZDsKQEAgLTUzOSw3ICs1MzksNyBAQCBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkgKiBib29r a2VlcGluZy4gSW5pdGlhbGl6aW5nIGFsbF92aXNpYmxlIHRvIGZhbHNlIGFsbG93cyBza2lwcGlu ZyB0aGUgd29yawogCSAqIHRvIHVwZGF0ZSB0aGVtIGluIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hh bmdlZF9scF9ub3JtYWwoKS4KIAkgKi8KLQlpZiAocHJzdGF0ZS5mcmVlemUpCisJaWYgKHByc3Rh dGUuYXR0ZW1wdF9mcmVlemUpCiAJewogCQlwcnN0YXRlLmFsbF92aXNpYmxlID0gdHJ1ZTsKIAkJ cHJzdGF0ZS5hbGxfZnJvemVuID0gdHJ1ZTsKQEAgLTY1Nyw3ICs2NTcsNyBAQCBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkgKiBJ ZiBjaGVja3N1bXMgYXJlIGVuYWJsZWQsIGhlYXBfcHJ1bmVfc2F0aXNmaWVzX3ZhY3V1bSgpIG1h eSBoYXZlIGNhdXNlZAogCSAqIGFuIEZQSSB0byBiZSBlbWl0dGVkLgogCSAqLwotCWhpbnRfYml0 X2ZwaSA9IGZwaV9iZWZvcmUgIT0gcGdXYWxVc2FnZS53YWxfZnBpOworCWRpZF90dXBsZV9oaW50 X2ZwaSA9IGZwaV9iZWZvcmUgIT0gcGdXYWxVc2FnZS53YWxfZnBpOwogCiAJLyoKIAkgKiBQcm9j ZXNzIEhPVCBjaGFpbnMuCkBAIC03NzQsNyArNzc0LDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9m cmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJICogcGxhbnMgd2UgcHJl cGFyZWQsIG9yIG5vdC4KIAkgKi8KIAlkb19mcmVlemUgPSBmYWxzZTsKLQlpZiAocHJzdGF0ZS5m cmVlemUpCisJaWYgKHByc3RhdGUuYXR0ZW1wdF9mcmVlemUpCiAJewogCQlpZiAocHJzdGF0ZS5w YWdlZnJ6LmZyZWV6ZV9yZXF1aXJlZCkKIAkJewpAQCAtODA3LDcgKzgwNyw3IEBAIGhlYXBfcGFn ZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkJ CSAqLwogCQkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHJlbGF0aW9uKSkKIAkJCQl7Ci0JCQkJCWlm IChoaW50X2JpdF9mcGkpCisJCQkJCWlmIChkaWRfdHVwbGVfaGludF9mcGkpCiAJCQkJCQlkb19m cmVlemUgPSB0cnVlOwogCQkJCQllbHNlIGlmIChkb19wcnVuZSkKIAkJCQkJewpAQCAtMTEzMiw3 ICsxMTMyLDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24s IEJ1ZmZlciBidWZmZXIsCiAJcHJlc3VsdC0+bHBkZWFkX2l0ZW1zID0gcHJzdGF0ZS5scGRlYWRf aXRlbXM7CiAJLyogdGhlIHByZXN1bHQtPmRlYWRvZmZzZXRzIGFycmF5IHdhcyBhbHJlYWR5IGZp bGxlZCBpbiAqLwogCi0JaWYgKHByc3RhdGUuZnJlZXplKQorCWlmIChwcnN0YXRlLmF0dGVtcHRf ZnJlZXplKQogCXsKIAkJaWYgKHByZXN1bHQtPm5mcm96ZW4gPiAwKQogCQl7CkBAIC0xNzE5LDcg KzE3MTksNyBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFn ZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYgogCSAqIHRvIHVwZGF0ZSB0aGUgVk0s IHdlIGhhdmUgdG8gY2FsbCBoZWFwX3ByZXBhcmVfZnJlZXplX3R1cGxlKCkgb24gZXZlcnkKIAkg KiB0dXBsZSB0byBrbm93IHdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIHdpbGwgYmUgdG90YWxseSBm cm96ZW4uCiAJICovCi0JaWYgKHByc3RhdGUtPmZyZWV6ZSkKKwlpZiAocHJzdGF0ZS0+YXR0ZW1w dF9mcmVlemUpCiAJewogCQlib29sCQl0b3RhbGx5X2Zyb3plbjsKIAotLSAKMi40My4wCgo= --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0016-Use-GlobalVisState-to-determine-page-level-visib.patch" Content-Disposition: attachment; filename="v10-0016-Use-GlobalVisState-to-determine-page-level-visib.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8gp15 RnJvbSBjMzA1MzIzN2U1ZWU0M2M4YzJhMDIzYjFmNmUxYTAxOGZlNTVkZTJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM4OjI0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMTYvMjJdIFVzZSBHbG9iYWxWaXNTdGF0ZSB0byBkZXRlcm1pbmUgcGFnZSBsZXZl bAogdmlzaWJpbGl0eQoKRHVyaW5nIHBydW5pbmcgYW5kIGR1cmluZyB2YWN1dW0ncyB0aGlyZCBw aGFzZSwgd2UgdHJ5IHRvIGRldGVybWluZSBpZgp0aGUgd2hvbGUgcGFnZSBjYW4gYmUgc2V0IGFs bC12aXNpYmxlIGluIHRoZSB2aXNpYmlsaXR5IG1hcC4gSW5zdGVhZCBvZgp1c2luZyBPbGRlc3RY bWluIHRvIGRldGVybWluZSBpZiBhbGwgdGhlIHR1cGxlcyBvbiBhIHBhZ2UgYXJlIHZpc2libGUg dG8KZXZlcnlvbmUsIHVzZSB0aGUgR2xvYmFsVmlzU3RhdGUuIFRoaXMgYWxsb3dzIHVzIHRvIHN0 YXJ0IHNldHRpbmcgdGhlIFZNCmR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyBpbiBhIGZ1dHVyZSBj b21taXQuCgpJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIEdsb2JhbFZpc1N0YXRlIHRvIGNoYW5nZSBk dXJpbmcgdGhlIGNvdXJzZSBvZiBhCnZhY3V1bS4gSW4gYWxsIGJ1dCBleHRyYW9yZGluYXJ5IGNh c2VzLCBpdCBtb3ZlcyBmb3J3YXJkLCBtZWFuaW5nIG1vcmUKcGFnZXMgY291bGQgcG90ZW50aWFs bHkgYmUgc2V0IGluIHRoZSBWTS4KCkJlY2F1c2UgY29tcGFyaW5nIGEgdHJhbnNhY3Rpb24gSUQg dG8gdGhlIEdsb2JhbFZpc1N0YXRlIHJlcXVpcmVzIG1vcmUKb3BlcmF0aW9ucyB0aGFuIGNvbXBh cmluZyBpdCB0byBhbm90aGVyIHNpbmdsZSB0cmFuc2FjdGlvbiBJRCwgd2Ugbm93CndhaXQgdW50 aWwgYWZ0ZXIgZXhhbWluaW5nIGFsbCB0aGUgdHVwbGVzIG9uIHRoZSBwYWdlIGFuZCBpZiB3ZSBo YXZlCm1haW50YWluZWQgdGhlIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCwgd2UgY29tcGFyZSB0aGF0 IHRvIHRoZQpHbG9iYWxWaXNTdGF0ZSBqdXN0IG9uY2UgcGVyIHBhZ2UuIFRoaXMgd29ya3MgYmVj YXVzZSBpZiB0aGUgcGFnZSBpcwphbGwtdmlzaWJsZSBhbmQgaGFzIGxpdmUsIGNvbW1pdHRlZCB0 dXBsZXMgb24gaXQsIHRoZQp2aXNpYmlsaXR5X2N1dG9mZl94aWQgd2lsbCBjb250YWluIHRoZSBu ZXdlc3QgeG1pbiBvbiB0aGUgcGFnZS4gSWYKZXZlcnlvbmUgY2FuIHNlZSBpdCwgdGhlIHBhZ2Ug aXMgdHJ1bHkgYWxsLXZpc2libGUuCgpEb2luZyB0aGlzIG1heSBtZWFuIHdlIGV4YW1pbmUgbW9y ZSB0dXBsZXMnIHhtaW5zIHRoYW4gYmVmb3JlLCBhcyB3ZSBtYXkKaGF2ZSBzZXQgYWxsX3Zpc2li bGUgdG8gZmFsc2Ugc29vbmVyIHdoZW4gZW5jb3VudGVyaW5nIGEgbGl2ZSB0dXBsZQpuZXdlciB0 aGFuIE9sZGVzdFhtaW4uIEhvd2V2ZXIsIHRoZXNlIGV4dHJhIGNvbXBhcmlzb25zIHdlcmUgZm91 bmQgbm90CnRvIGJlIHNpZ25pZmljYW50IGluIGEgcHJvZmlsZS4KLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jIHwgMjggKysrKysrKysrKysrCiBzcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgICAgICAgIHwgNDggKysrKysrKysrLS0tLS0t LS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgIHwgMTkg KysrKy0tLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAgICAgICAgICAgICAgfCAg NCArLQogNCBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHkuYwppbmRleCA0ZWJj OGFiZGJlYi4uZWRkNTI5ZGMzYzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbV92aXNpYmlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X3Zpc2liaWxpdHkuYwpAQCAtMTE4OSw2ICsxMTg5LDM0IEBAIEhlYXBUdXBsZVNhdGlzZmllc1Zh Y3V1bShIZWFwVHVwbGUgaHR1cCwgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAogCXJldHVybiBy ZXM7CiB9CiAKKy8qCisgKiBOZWFybHkgdGhlIHNhbWUgYXMgSGVhcFR1cGxlU2F0aXNmaWVzVmFj dXVtLCBidXQgdXNlcyBhIEdsb2JhbFZpc1N0YXRlIHRvCisgKiBkZXRlcm1pbmUgd2hldGhlciBv ciBub3QgYSB0dXBsZSBpcyBIRUFQVFVQTEVfREVBRCBPcgorICogSEVBUFRVUExFX1JFQ0VOVExZ X0RFQUQuIEl0IHNlcnZlcyB0aGUgc2FtZSBwdXJwb3NlIGJ1dCBjYW4gYmUgdXNlZCBieQorICog Y2FsbGVycyB0aGF0IGhhdmUgbm90IGNhbGN1bGF0ZWQgYSBzaW5nbGUgT2xkZXN0WG1pbiB2YWx1 ZS4KKyAqLworSFRTVl9SZXN1bHQKK0hlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bUdsb2JhbFZpcyhI ZWFwVHVwbGUgaHR1cCwgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCisJCQkJCQkJCSAgQnVmZmVy IGJ1ZmZlcikKK3sKKwlUcmFuc2FjdGlvbklkIGRlYWRfYWZ0ZXIgPSBJbnZhbGlkVHJhbnNhY3Rp b25JZDsKKwlIVFNWX1Jlc3VsdCByZXM7CisKKwlyZXMgPSBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1 dW1Ib3Jpem9uKGh0dXAsIGJ1ZmZlciwgJmRlYWRfYWZ0ZXIpOworCisJaWYgKHJlcyA9PSBIRUFQ VFVQTEVfUkVDRU5UTFlfREVBRCkKKwl7CisJCUFzc2VydChUcmFuc2FjdGlvbklkSXNWYWxpZChk ZWFkX2FmdGVyKSk7CisKKwkJaWYgKEdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCh2aXN0ZXN0LCBk ZWFkX2FmdGVyKSkKKwkJCXJlcyA9IEhFQVBUVVBMRV9ERUFEOworCX0KKwllbHNlCisJCUFzc2Vy dCghVHJhbnNhY3Rpb25JZElzVmFsaWQoZGVhZF9hZnRlcikpOworCisJcmV0dXJuIHJlczsKK30K KwogLyoKICAqIFdvcmsgaG9yc2UgZm9yIEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bSBhbmQgc2lt aWxhciByb3V0aW5lcy4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDMw NzM2NTE5MTkxLi41ZTg3NDhiMTVlZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMK QEAgLTE0MSwxMCArMTQxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkgKiBhbGxfdmlzaWJsZSBhbmQg YWxsX2Zyb3plbiBpbmRpY2F0ZSBpZiB0aGUgYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4KIAkg KiBiaXRzIGluIHRoZSB2aXNpYmlsaXR5IG1hcCBjYW4gYmUgc2V0IGZvciB0aGlzIHBhZ2UgYWZ0 ZXIgcHJ1bmluZy4KIAkgKgotCSAqIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCBpcyB0aGUgbmV3ZXN0 IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuCi0JICogVGhlIGNhbGxlciBjYW4gdXNl IGl0IGFzIHRoZSBjb25mbGljdCBob3Jpem9uLCB3aGVuIHNldHRpbmcgdGhlIFZNCi0JICogYml0 cy4gIEl0IGlzIG9ubHkgdmFsaWQgaWYgd2UgZnJvemUgc29tZSB0dXBsZXMsIGFuZCBhbGxfZnJv emVuIGlzCi0JICogdHJ1ZS4KKwkgKiB2aXNpYmlsaXR5X2N1dG9mZl94aWQgaXMgdGhlIG5ld2Vz dCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLiBJdAorCSAqIGNhbiBiZSB1c2VkIGFz IHRoZSBjb25mbGljdCBob3Jpem9uLCB3aGVuIHNldHRpbmcgdGhlIFZNIG9yIHdoZW4KKwkgKiBm cmVlemluZyBhbGwgdGhlIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLgogCSAqCiAJICogTk9URTog YWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4gZG9uJ3QgaW5jbHVkZSBMUF9ERUFEIGl0ZW1zIHVu dGlsCiAJICogZGlyZWN0bHkgYmVmb3JlIHVwZGF0aW5nIHRoZSBWTS4gV2UgaWdub3JlIExQX0RF QUQgaXRlbXMgd2hlbiBkZWNpZGluZwpAQCAtNTU3LDE0ICs1NTYsMTIgQEAgaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAKIAkvKgog CSAqIFRoZSB2aXNpYmlsaXR5IGN1dG9mZiB4aWQgaXMgdGhlIG5ld2VzdCB4bWluIG9mIGxpdmUs IGNvbW1pdHRlZCB0dXBsZXMKLQkgKiBvbGRlciB0aGFuIE9sZGVzdFhtaW4gb24gdGhlIHBhZ2Uu IFRoaXMgZmllbGQgaXMgb25seSBrZXB0IHVwLXRvLWRhdGUKLQkgKiBpZiB0aGUgcGFnZSBpcyBh bGwtdmlzaWJsZS4gQXMgc29vbiBhcyBhIHR1cGxlIGlzIGVuY291bnRlcmVkIHRoYXQgaXMKLQkg KiBub3QgdmlzaWJsZSB0byBhbGwsIHRoaXMgZmllbGQgaXMgdW5tYWludGFpbmVkLiBBcyBsb25n IGFzIGl0IGlzCi0JICogbWFpbnRhaW5lZCwgaXQgY2FuIGJlIHVzZWQgdG8gY2FsY3VsYXRlIHRo ZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uLgotCSAqIFRoaXMgaXMgbW9zdCBsaWtlbHkgdG8g aGFwcGVuIHdoZW4gdXBkYXRpbmcgdGhlIFZNIGFuZC9vciBmcmVlemluZyBhbGwKLQkgKiBsaXZl IHR1cGxlcyBvbiB0aGUgcGFnZS4gSXQgaXMgdXBkYXRlZCBiZWZvcmUgcmV0dXJuaW5nIHRvIHRo ZSBjYWxsZXIKLQkgKiBiZWNhdXNlIHZhY3V1bSBkb2VzIGFzc2VydC1idWlsZCBvbmx5IHZhbGlk YXRpb24gb24gdGhlIHBhZ2UgdXNpbmcgdGhpcwotCSAqIGZpZWxkLgorCSAqIG9uIHRoZSBwYWdl IG9sZGVyIHRoYW4gdGhlIHZpc2liaWxpdHkgaG9yaXpvbiByZXByZXNlbnRlZCBpbiB0aGUKKwkg KiBHbG9iYWxWaXNTdGF0ZS4KKwkgKgorCSAqIElmIHdlIGVuY291bnRlciBhbiB1bmNvbW1pdHRl ZCB0dXBsZSwgdGhpcyBmaWVsZCBpcyB1bm1haW50YWluZWQuIElmCisJICogdGhlIHBhZ2UgaXMg YmVpbmcgc2V0IGFsbC12aXNpYmxlIG9yIHdoZW4gZnJlZXppbmcgYWxsIGxpdmUgdHVwbGVzIG9u CisJICogdGhlIHBhZ2UsIGl0IGlzIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBzbmFwc2hvdCBjb25m bGljdCBob3Jpem9uLgogCSAqLwogCXByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkID0gSW52 YWxpZFRyYW5zYWN0aW9uSWQ7CiAKQEAgLTc2MCw2ICs3NTcsMTYgQEAgaGVhcF9wYWdlX3BydW5l X2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCXByc3RhdGUu bmRlYWQgPiAwIHx8CiAJCXByc3RhdGUubnVudXNlZCA+IDA7CiAKKwkvKgorCSAqIEFmdGVyIHBy b2Nlc3NpbmcgYWxsIHRoZSBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZSwgaWYgdGhlIG5ld2VzdCB4 bWluCisJICogYW1vbmdzdCB0aGVtIGlzIG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25lLCB0aGUgcGFn ZSBjYW5ub3QgYmUKKwkgKiBhbGwtdmlzaWJsZS4KKwkgKi8KKwlpZiAocHJzdGF0ZS5hbGxfdmlz aWJsZSAmJgorCQlUcmFuc2FjdGlvbklkSXNOb3JtYWwocHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9m Zl94aWQpICYmCisJCSFHbG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwocHJzdGF0ZS52aXN0ZXN0LCBw cnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkpCisJCXByc3RhdGUuYWxsX3Zpc2libGUgPSBw cnN0YXRlLmFsbF9mcm96ZW4gPSBmYWxzZTsKKwogCS8qCiAJICogRXZlbiBpZiB3ZSBkb24ndCBw cnVuZSBhbnl0aGluZywgaWYgd2UgZm91bmQgYSBuZXcgdmFsdWUgZm9yIHRoZQogCSAqIHBkX3By dW5lX3hpZCBmaWVsZCBvciB0aGUgcGFnZSB3YXMgbWFya2VkIGZ1bGwsIHdlIHdpbGwgdXBkYXRl IHRob3NlCkBAIC0xMTAzLDEyICsxMTEwLDEwIEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXpl KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQlUcmFuc2FjdGlvbklkIGRlYnVn X2N1dG9mZjsKIAkJYm9vbAkJZGVidWdfYWxsX2Zyb3plbjsKIAotCQlBc3NlcnQoY3V0b2Zmcyk7 Ci0KIAkJQXNzZXJ0KHByc3RhdGUubHBkZWFkX2l0ZW1zID09IDApOwogCiAJCWlmICghaGVhcF9w YWdlX2lzX2FsbF92aXNpYmxlKHJlbGF0aW9uLCBidWZmZXIsCi0JCQkJCQkJCQkgIGN1dG9mZnMt Pk9sZGVzdFhtaW4sCisJCQkJCQkJCQkgIHByc3RhdGUudmlzdGVzdCwKIAkJCQkJCQkJCSAgJmRl YnVnX2FsbF9mcm96ZW4sCiAJCQkJCQkJCQkgICZkZWJ1Z19jdXRvZmYsIG9mZl9sb2MpKQogCQkJ QXNzZXJ0KGZhbHNlKTsKQEAgLTE2MzMsMTkgKzE2MzgsNiBAQCBoZWFwX3BydW5lX3JlY29yZF91 bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0 TnVtYgogCQkJCSAqLwogCQkJCXhtaW4gPSBIZWFwVHVwbGVIZWFkZXJHZXRYbWluKGh0dXApOwog Ci0JCQkJLyoKLQkJCQkgKiBGb3Igbm93IGFsd2F5cyB1c2UgcHJzdGF0ZS0+Y3V0b2ZmcyBmb3Ig dGhpcyB0ZXN0LCBiZWNhdXNlCi0JCQkJICogd2Ugb25seSB1cGRhdGUgJ2FsbF92aXNpYmxlJyB3 aGVuIGZyZWV6aW5nIGlzIHJlcXVlc3RlZC4gV2UKLQkJCQkgKiBjb3VsZCB1c2UgR2xvYmFsVmlz VGVzdElzUmVtb3ZhYmxlWGlkIGluc3RlYWQsIGlmIGEKLQkJCQkgKiBub24tZnJlZXppbmcgY2Fs bGVyIHdhbnRlZCB0byBzZXQgdGhlIFZNIGJpdC4KLQkJCQkgKi8KLQkJCQlBc3NlcnQocHJzdGF0 ZS0+Y3V0b2Zmcyk7Ci0JCQkJaWYgKCFUcmFuc2FjdGlvbklkUHJlY2VkZXMoeG1pbiwgcHJzdGF0 ZS0+Y3V0b2Zmcy0+T2xkZXN0WG1pbikpCi0JCQkJewotCQkJCQlwcnN0YXRlLT5hbGxfdmlzaWJs ZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCiAJ CQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KIAkJCQlpZiAoVHJhbnNhY3Rpb25J ZEZvbGxvd3MoeG1pbiwgcHJzdGF0ZS0+dmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgogCQkJCQlU cmFuc2FjdGlvbklkSXNOb3JtYWwoeG1pbikpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKaW5kZXggMmZmNjdkNzdjYjQuLjc1NThhYzY5N2YxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jCkBAIC00NjQsNyArNDY0LDcgQEAgc3RhdGljIHZvaWQgZGVhZF9pdGVtc19h ZGQoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgT2Zmc2V0TnVtYmVyICoK IHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfcmVzZXQoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRp YyB2b2lkIGRlYWRfaXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGljIGJv b2wgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1 ZiwKLQkJCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkJCQkJICAg R2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpkZWFk b2Zmc2V0cywKIAkJCQkJCQkJCQkgICBpbnQgbmRlYWRvZmZzZXRzLAogCQkJCQkJCQkJCSAgIGJv b2wgKmFsbF9mcm96ZW4sCkBAIC0yNzE1LDcgKzI3MTUsNyBAQCBsYXp5X3ZhY3V1bV9oZWFwX3Bh Z2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1ZmZlciwK IAkJCQkJCQkgSW52YWxpZE9mZnNldE51bWJlcik7CiAKIAlpZiAoaGVhcF9wYWdlX3dvdWxkX2Jl X2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBidWZmZXIsCi0JCQkJCQkJCQkgICB2YWNyZWwtPmN1 dG9mZnMuT2xkZXN0WG1pbiwKKwkJCQkJCQkJCSAgIHZhY3JlbC0+dmlzdGVzdCwKIAkJCQkJCQkJ CSAgIGRlYWRvZmZzZXRzLCBudW1fb2Zmc2V0cywKIAkJCQkJCQkJCSAgICZhbGxfZnJvemVuLCAm dmlzaWJpbGl0eV9jdXRvZmZfeGlkLAogCQkJCQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtKSkKQEAg LTM0NTgsMTMgKzM0NTgsMTMgQEAgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3Jl bCkKICAqLwogYm9vbAogaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVm ZmVyIGJ1ZiwKLQkJCQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkgR2xvYmFs VmlzU3RhdGUgKnZpc3Rlc3QsCiAJCQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKIAkJCQkJCSBUcmFu c2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsCiAJCQkJCQkgT2Zmc2V0TnVtYmVyICps b2dnaW5nX29mZm51bSkKIHsKIAotCXJldHVybiBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2li bGUocmVsLCBidWYsIE9sZGVzdFhtaW4sCisJcmV0dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxf dmlzaWJsZShyZWwsIGJ1ZiwgdmlzdGVzdCwKIAkJCQkJCQkJCQkgIE5VTEwsIDAsCiAJCQkJCQkJ CQkJICBhbGxfZnJvemVuLAogCQkJCQkJCQkJCSAgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLApAQCAt MzQ4Myw3ICszNDgzLDcgQEAgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwg QnVmZmVyIGJ1ZiwKICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGFnZSBpcyBhbGwtdmlzaWJsZSBv dGhlciB0aGFuIHRoZSBwcm92aWRlZAogICogZGVhZG9mZnNldHMgYW5kIGZhbHNlIG90aGVyd2lz ZS4KICAqCi0gKiBPbGRlc3RYbWluIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHZpc2liaWxpdHkuCisg KiB2aXN0ZXN0IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHZpc2liaWxpdHkuCiAgKgogICogKmFsbF9m cm96ZW4gaXMgYW4gb3V0cHV0IHBhcmFtZXRlciBpbmRpY2F0aW5nIHRvIHRoZSBjYWxsZXIgaWYg ZXZlcnkgdHVwbGUKICAqIG9uIHRoZSBwYWdlIGlzIGZyb3plbi4KQEAgLTM1MDQsNyArMzUwNCw3 IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAg Ki8KIHN0YXRpYyBib29sCiBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24g cmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKKwkJ CQkJCQkgICBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkgICBPZmZzZXROdW1iZXIg KmRlYWRvZmZzZXRzLAogCQkJCQkJCSAgIGludCBuZGVhZG9mZnNldHMsCiAJCQkJCQkJICAgYm9v bCAqYWxsX2Zyb3plbiwKQEAgLTM1NzYsOCArMzU3Niw4IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9h bGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCXR1cGxlLnRfbGVuID0gSXRl bUlkR2V0TGVuZ3RoKGl0ZW1pZCk7CiAJCXR1cGxlLnRfdGFibGVPaWQgPSBSZWxhdGlvbkdldFJl bGlkKHJlbCk7CiAKLQkJc3dpdGNoIChIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0oJnR1cGxlLCBP bGRlc3RYbWluLAotCQkJCQkJCQkJCSBidWYpKQorCQlzd2l0Y2ggKEhlYXBUdXBsZVNhdGlzZmll c1ZhY3V1bUdsb2JhbFZpcygmdHVwbGUsIHZpc3Rlc3QsCisJCQkJCQkJCQkJCQkgIGJ1ZikpCiAJ CXsKIAkJCWNhc2UgSEVBUFRVUExFX0xJVkU6CiAJCQkJewpAQCAtMzU5Niw4ICszNTk2LDcgQEAg aGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwK IAkJCQkJICogdGhhdCBldmVyeW9uZSBzZWVzIGl0IGFzIGNvbW1pdHRlZD8KIAkJCQkJICovCiAJ CQkJCXhtaW4gPSBIZWFwVHVwbGVIZWFkZXJHZXRYbWluKHR1cGxlLnRfZGF0YSk7Ci0JCQkJCWlm ICghVHJhbnNhY3Rpb25JZFByZWNlZGVzKHhtaW4sCi0JCQkJCQkJCQkJCSAgIE9sZGVzdFhtaW4p KQorCQkJCQlpZiAoIUdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCh2aXN0ZXN0LCB4bWluKSkKIAkJ CQkJewogCQkJCQkJYWxsX3Zpc2libGUgPSBmYWxzZTsKIAkJCQkJCSphbGxfZnJvemVuID0gZmFs c2U7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGVhcGFtLmgKaW5kZXggMGI5YmIxYzliMTMuLjQyNzhmMzUxYmRmIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNz L2hlYXBhbS5oCkBAIC0zNDIsNyArMzQyLDcgQEAgZXh0ZXJuIHZvaWQgaGVhcF9pbnBsYWNlX3Vu bG9jayhSZWxhdGlvbiByZWxhdGlvbiwKIAkJCQkJCQkJSGVhcFR1cGxlIG9sZHR1cCwgQnVmZmVy IGJ1ZmZlcik7CiAKIGV4dGVybiBib29sIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlv biByZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkJCQkgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAor CQkJCQkJCQkJIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAogCQkJCQkJCQkJIGJvb2wgKmFsbF9m cm96ZW4sCiAJCQkJCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAog CQkJCQkJCQkJIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pOwpAQCAtNDE1LDYgKzQxNSw4 IEBAIGV4dGVybiBUTV9SZXN1bHQgSGVhcFR1cGxlU2F0aXNmaWVzVXBkYXRlKEhlYXBUdXBsZSBo dHVwLCBDb21tYW5kSWQgY3VyY2lkLAogCQkJCQkJCQkJCSAgQnVmZmVyIGJ1ZmZlcik7CiBleHRl cm4gSFRTVl9SZXN1bHQgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtKEhlYXBUdXBsZSBodHVwLCBU cmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCiAJCQkJCQkJCQkJCUJ1ZmZlciBidWZmZXIpOworZXh0 ZXJuIEhUU1ZfUmVzdWx0IEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bUdsb2JhbFZpcyhIZWFwVHVw bGUgaHR1cCwKKwkJCQkJCQkJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsIEJ1ZmZlciBi dWZmZXIpOwogZXh0ZXJuIEhUU1ZfUmVzdWx0IEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bUhvcml6 b24oSGVhcFR1cGxlIGh0dXAsIEJ1ZmZlciBidWZmZXIsCiAJCQkJCQkJCQkJCQkgICBUcmFuc2Fj dGlvbklkICpkZWFkX2FmdGVyKTsKIGV4dGVybiB2b2lkIEhlYXBUdXBsZVNldEhpbnRCaXRzKEhl YXBUdXBsZUhlYWRlciB0dXBsZSwgQnVmZmVyIGJ1ZmZlciwKLS0gCjIuNDMuMAoK --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0018-Unset-all-visible-sooner-if-not-freezing.patch" Content-Disposition: attachment; filename="v10-0018-Unset-all-visible-sooner-if-not-freezing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8gu17 RnJvbSAwOWRmMDdlMTc5NGMwNmNiNDM1YzY0MWFkNTcyNTA2NzJlYjE2MjE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM1OjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMTgvMjJdIFVuc2V0IGFsbC12aXNpYmxlIHNvb25lciBpZiBub3QgZnJlZXppbmcK CkluIHBydW5lL2ZyZWV6ZSBjb2RlLCB3ZSBkZWxheSB1bnNldHRpbmcgYWxsLXZpc2libGUvYWxs LWZyb3plbiBpbiB0aGUKcHJlc2VuY2Ugb2YgZGVhZCBpdGVtcyB0byBhbGxvdyBvcHBvcnR1bmlz dGljYWxseSBmcmVlemluZyB0dXBsZXMgaWYgdGhlCndob2xlIHBhZ2Ugd291bGQgYmUgZnJvemVu IGV4Y2VwdCBmb3IgdGhvc2UgZGVhZCBpdGVtcyAtLSB3aGljaCBhcmUKcmVtb3ZlZCBsYXRlciBp biB2YWN1dW0ncyB0aGlyZCBwaGFzZS4KCkZ1dHVyZSBjb21taXRzIHdpbGwgYWxsb3cgb24tYWNj ZXNzIHBydW5pbmcgdG8gc2V0IHRoZSBWTSwgd2hpY2ggbWVhbnMKYWxsLXZpc2libGUgd2lsbCBi ZSBpbml0aWFsaXplZCB0byB0cnVlIGluc3RlYWQgb2YgZmFsc2UgYW5kIHdlIHdpbGwgZG8KZXh0 cmEgYm9va2tlZXBpbmcgaW4gaGVhcF9wcnVuZV91bmNoYW5nZWRfbHBfbm9ybWFsKCkgdG8ga2Vl cCB0cmFjayBvZgp3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBpcyBhbGwtdmlzaWJsZS4KCkJlY2F1 c2Ugb24tYWNjZXNzIHBydW5pbmcgd2lsbCBub3QgZnJlZXplIHR1cGxlcywgaXQgbWFrZXMgc2Vu c2UgdG8KdW5zZXQgYWxsLXZpc2libGUgYXMgc29vbiBhcyB3ZSBlbmNvdW50ZXIgYW4gTFBfREVB RCBpdGVtIGFuZAphdm9pZCBjb250aW51ZWQgYm9va2tlZXBpbmcgc2luY2Ugd2Uga25vdyB0aGUg cGFnZSBpcyBub3QgYWxsLXZpc2libGUKYW5kIHdlIHdvbid0IGJlIGFibGUgdG8gcmVtb3ZlIHRo b3NlIGRlYWQgaXRlbXMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg fCAxMCArKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggNWU4NzQ4YjE1ZWYu LmU2Y2Y0ZGYxN2M1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMTQ5OCw4 ICsxNDk4LDExIEBAIGhlYXBfcHJ1bmVfcmVjb3JkX2RlYWQoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwg T2Zmc2V0TnVtYmVyIG9mZm51bSwKIAogCS8qCiAJICogRGVsaWJlcmF0ZWx5IGRlbGF5IHVuc2V0 dGluZyBhbGxfdmlzaWJsZSB1bnRpbCBsYXRlciBkdXJpbmcgcHJ1bmluZy4KLQkgKiBSZW1vdmFi bGUgZGVhZCB0dXBsZXMgc2hvdWxkbid0IHByZWNsdWRlIGZyZWV6aW5nIHRoZSBwYWdlLgorCSAq IFJlbW92YWJsZSBkZWFkIHR1cGxlcyBzaG91bGRuJ3QgcHJlY2x1ZGUgZnJlZXppbmcgdGhlIHBh Z2UuIElmIHdlIHdvbid0CisJICogYXR0ZW1wdCBmcmVlemluZywganVzdCB1bnNldCBhbGwtdmlz aWJsZSBub3csIHRob3VnaC4KIAkgKi8KKwlpZiAoIXByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQor CQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKIAog CS8qIFJlY29yZCB0aGUgZGVhZCBvZmZzZXQgZm9yIHZhY3V1bSAqLwogCXByc3RhdGUtPmRlYWRv ZmZzZXRzW3Byc3RhdGUtPmxwZGVhZF9pdGVtcysrXSA9IG9mZm51bTsKQEAgLTE3NTcsOCArMTc2 MCwxMSBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfZGVhZChQYWdlIHBhZ2UsIFBy dW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlcgogCSAqIFNpbWlsYXJseSwgZG9uJ3QgdW5z ZXQgYWxsX3Zpc2libGUgdW50aWwgbGF0ZXIsIGF0IHRoZSBlbmQgb2YKIAkgKiBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZSgpLiAgVGhpcyB3aWxsIGFsbG93IHVzIHRvIGF0dGVtcHQgdG8gZnJl ZXplCiAJICogdGhlIHBhZ2UgYWZ0ZXIgcHJ1bmluZy4gIEFzIGxvbmcgYXMgd2UgdW5zZXQgaXQg YmVmb3JlIHVwZGF0aW5nIHRoZQotCSAqIHZpc2liaWxpdHkgbWFwLCB0aGlzIHdpbGwgYmUgY29y cmVjdC4KKwkgKiB2aXNpYmlsaXR5IG1hcCwgdGhpcyB3aWxsIGJlIGNvcnJlY3QuIElmIHdlIHdv bid0IGF0dGVtcHQgZnJlZXppbmcsCisJICogdGhvdWdoLCBqdXN0IHVuc2V0IGFsbC12aXNpYmxl IG5vdy4KIAkgKi8KKwlpZiAoIXByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQorCQlwcnN0YXRlLT5h bGxfdmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKIAogCS8qIFJlY29yZCB0 aGUgZGVhZCBvZmZzZXQgZm9yIHZhY3V1bSAqLwogCXByc3RhdGUtPmRlYWRvZmZzZXRzW3Byc3Rh dGUtPmxwZGVhZF9pdGVtcysrXSA9IG9mZm51bTsKLS0gCjIuNDMuMAoK --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0015-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisX.patch" Content-Disposition: attachment; filename="v10-0015-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisX.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8gm14 RnJvbSA2OWZmNmVlY2ZjYWIxY2VkYWJlYThhMTFmNjFkMmM2ODhmNzAwYTYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDE4IEp1bCAyMDI1IDE2OjMwOjA0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMTUvMjJdIFJlbmFtZSBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoKSB0bwog R2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKCkKCkN1cnJlbnRseSwgd2Ugb25seSB1c2UgR2xvYmFs VmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgdG8gY2hlY2sgaWYgYQp0dXBsZSdzIHhtYXggaXMgdmlz aWJsZSB0byBhbGwsIG1lYW5pbmcgd2UgY2FuIHJlbW92ZSBpdC4gQnV0IGZ1dHVyZQpjb21taXRz IHdpbGwgdXNlIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCgpIHRvIHRlc3QgaWYgYSB0dXBs ZSdzIHhtaW4KaXMgdmlzaWJsZSB0byBhbGwgZm9yIHRoZSBwdXJwb3NlcyBvZiBkZXRlcm1pbmlu ZyBpZiBzZXR0aW5nIHRoZSBwYWdlCmFsbC12aXNpYmxlIGluIHRoZSBWTS4gSW4gdGhhdCBjYXNl LCBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGNhbGwgdGhlCmZ1bmN0aW9uIEdsb2JhbFZpc1hpZFZp c2libGVUb0FsbCgpLgoKUmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBn bWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHku YyB8ICA2ICsrKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICAg ICB8IDE0ICsrKysrKystLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1 bS5jICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jICAg ICAgICAgfCAxMyArKysrKystLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmggICAg ICAgICAgICAgICAgIHwgIDQgKystLQogNSBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1fdmlzaWJpbGl0eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2li aWxpdHkuYwppbmRleCAwNWY2OTQ2ZmU2MC4uNGViYzhhYmRiZWIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHkuYwpAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAgSGVh cFR1cGxlU2F0aXNmaWVzTm9uVmFjdXVtYWJsZShIZWFwVHVwbGUgaHR1cCwgU25hcHNob3Qgc25h cHNob3QsCiAJewogCQlBc3NlcnQoVHJhbnNhY3Rpb25JZElzVmFsaWQoZGVhZF9hZnRlcikpOwog Ci0JCWlmIChHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoc25hcHNob3QtPnZpc3Rlc3QsIGRl YWRfYWZ0ZXIpKQorCQlpZiAoR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHNuYXBzaG90LT52aXN0 ZXN0LCBkZWFkX2FmdGVyKSkKIAkJCXJlcyA9IEhFQVBUVVBMRV9ERUFEOwogCX0KIAllbHNlCkBA IC0xNTEyLDggKzE1MTIsOCBAQCBIZWFwVHVwbGVJc1N1cmVseURlYWQoSGVhcFR1cGxlIGh0dXAs IEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0KQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBEZWxldGVy IGNvbW1pdHRlZCwgc28gdHVwbGUgaXMgZGVhZCBpZiB0aGUgWElEIGlzIG9sZCBlbm91Z2guICov Ci0JcmV0dXJuIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LAotCQkJCQkJCQkJ ICAgSGVhcFR1cGxlSGVhZGVyR2V0UmF3WG1heCh0dXBsZSkpOworCXJldHVybiBHbG9iYWxWaXNY aWRWaXNpYmxlVG9BbGwodmlzdGVzdCwKKwkJCQkJCQkJCUhlYXBUdXBsZUhlYWRlckdldFJhd1ht YXgodHVwbGUpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXgg M2ZlOWRiOTljMGQuLjMwNzM2NTE5MTkxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwpAQCAtMjMxLDcgKzIzMSw3IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIpCiAJICovCiAJdmlzdGVzdCA9IEdsb2JhbFZpc1Rlc3RGb3IocmVs YXRpb24pOwogCi0JaWYgKCFHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQodmlzdGVzdCwgcHJ1 bmVfeGlkKSkKKwlpZiAoIUdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCh2aXN0ZXN0LCBwcnVuZV94 aWQpKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtNTc4LDkgKzU3OCw5IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIERldGVy bWluaW5nIEhUU1Ygb25seSBvbmNlIGZvciBlYWNoIHR1cGxlIGlzIHJlcXVpcmVkIGZvciBjb3Jy ZWN0bmVzcywKIAkgKiB0byBkZWFsIHdpdGggY2FzZXMgd2hlcmUgcnVubmluZyBIVFNWIHR3aWNl IGNvdWxkIHJlc3VsdCBpbiBkaWZmZXJlbnQKIAkgKiByZXN1bHRzLiAgRm9yIGV4YW1wbGUsIFJF Q0VOVExZX0RFQUQgY2FuIHR1cm4gdG8gREVBRCBpZiBhbm90aGVyCi0JICogY2hlY2tlZCBpdGVt IGNhdXNlcyBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKCkgdG8gdXBkYXRlIHRoZQot CSAqIGhvcml6b24sIG9yIElOU0VSVF9JTl9QUk9HUkVTUyBjYW4gY2hhbmdlIHRvIERFQUQgaWYg dGhlIGluc2VydGluZwotCSAqIHRyYW5zYWN0aW9uIGFib3J0cy4KKwkgKiBjaGVja2VkIGl0ZW0g Y2F1c2VzIEdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCgpIHRvIHVwZGF0ZSB0aGUgaG9yaXpvbiwK KwkgKiBvciBJTlNFUlRfSU5fUFJPR1JFU1MgY2FuIGNoYW5nZSB0byBERUFEIGlmIHRoZSBpbnNl cnRpbmcgdHJhbnNhY3Rpb24KKwkgKiBhYm9ydHMuCiAJICoKIAkgKiBJdCdzIGFsc28gZ29vZCBm b3IgcGVyZm9ybWFuY2UuIE1vc3QgY29tbW9ubHkgdHVwbGVzIHdpdGhpbiBhIHBhZ2UgYXJlCiAJ ICogc3RvcmVkIGF0IGRlY3JlYXNpbmcgb2Zmc2V0cyAod2hpbGUgdGhlIGl0ZW1zIGFyZSBzdG9y ZWQgYXQgaW5jcmVhc2luZwpAQCAtMTE3NywxMSArMTE3NywxMSBAQCBoZWFwX3BydW5lX3NhdGlz Zmllc192YWN1dW0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgSGVhcFR1cGxlIHR1cCwgQnVmZmVyIGJ1 ZmZlcikKIAkgKiBEZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIHR1cGxlIGlzIGNvbnNpZGVy ZWQgZGVhZCB3aGVuIGNvbXBhcmVkCiAJICogd2l0aCB0aGUgcHJvdmlkZWQgR2xvYmFsVmlzU3Rh dGUuIE9uLWFjY2VzcyBwcnVuaW5nIGRvZXMgbm90IHByb3ZpZGUKIAkgKiBWYWN1dW1DdXRvZmZz LiBBbmQgZm9yIHZhY3V1bSwgZXZlbiBpZiB0aGUgdHVwbGUncyB4bWF4IGlzIG5vdCBvbGRlcgot CSAqIHRoYW4gT2xkZXN0WG1pbiwgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgY291bGQg ZmluZCB0aGUgcm93IGRlYWQKLQkgKiBpZiB0aGUgR2xvYmFsVmlzU3RhdGUgaGFzIGJlZW4gdXBk YXRlZCBzaW5jZSB0aGUgYmVnaW5uaW5nIG9mIHZhY3V1bWluZworCSAqIHRoYW4gT2xkZXN0WG1p biwgR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKCkgY291bGQgZmluZCB0aGUgcm93IGRlYWQgaWYK KwkgKiB0aGUgR2xvYmFsVmlzU3RhdGUgaGFzIGJlZW4gdXBkYXRlZCBzaW5jZSB0aGUgYmVnaW5u aW5nIG9mIHZhY3V1bWluZwogCSAqIHRoZSByZWxhdGlvbi4KIAkgKi8KLQlpZiAoR2xvYmFsVmlz VGVzdElzUmVtb3ZhYmxlWGlkKHByc3RhdGUtPnZpc3Rlc3QsIGRlYWRfYWZ0ZXIpKQorCWlmIChH bG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwocHJzdGF0ZS0+dmlzdGVzdCwgZGVhZF9hZnRlcikpCiAJ CXJldHVybiBIRUFQVFVQTEVfREVBRDsKIAogCXJldHVybiByZXM7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Nw Z2lzdC9zcGd2YWN1dW0uYwppbmRleCA4ZjhhMWFkNzc5Ni4uNDk2Y2NhNjk0MTAgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwpAQCAtNTM2LDcgKzUzNiw3IEBAIHZhY3V1bVJl ZGlyZWN0QW5kUGxhY2Vob2xkZXIoUmVsYXRpb24gaW5kZXgsIFJlbGF0aW9uIGhlYXByZWwsIEJ1 ZmZlciBidWZmZXIpCiAJCSAqLwogCQlpZiAoZHQtPnR1cHN0YXRlID09IFNQR0lTVF9SRURJUkVD VCAmJgogCQkJKCFUcmFuc2FjdGlvbklkSXNWYWxpZChkdC0+eGlkKSB8fAotCQkJIEdsb2JhbFZp c1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LCBkdC0+eGlkKSkpCisJCQkgR2xvYmFsVmlzWGlk VmlzaWJsZVRvQWxsKHZpc3Rlc3QsIGR0LT54aWQpKSkKIAkJewogCQkJZHQtPnR1cHN0YXRlID0g U1BHSVNUX1BMQUNFSE9MREVSOwogCQkJQXNzZXJ0KG9wYXF1ZS0+blJlZGlyZWN0aW9uID4gMCk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyBiL3NyYy9i YWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCmluZGV4IDIwMGY3MmM2ZTI1Li5mNjdmMDFj MTdjMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKKysr IGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKQEAgLTQxODEsOCArNDE4MSw3 IEBAIEdsb2JhbFZpc1VwZGF0ZSh2b2lkKQogICogU2VlIGNvbW1lbnQgZm9yIEdsb2JhbFZpc1N0 YXRlIGZvciBkZXRhaWxzLgogICovCiBib29sCi1HbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxs WGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwKLQkJCQkJCQkJRnVsbFRyYW5zYWN0aW9uSWQgZnhp ZCkKK0dsb2JhbFZpc0Z1bGxYaWRWaXNpYmxlVG9BbGwoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBG dWxsVHJhbnNhY3Rpb25JZCBmeGlkKQogewogCS8qCiAJICogSWYgZnhpZCBpcyBvbGRlciB0aGFu IG1heWJlX25lZWRlZCBib3VuZCwgaXQgZGVmaW5pdGVseSBpcyB2aXNpYmxlIHRvCkBAIC00MjIz LDcgKzQyMjIsNyBAQCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKEdsb2JhbFZpc1N0 YXRlICpzdGF0ZSwKICAqIHJlbGZyb3plbnhpZCkuCiAgKi8KIGJvb2wKLUdsb2JhbFZpc1Rlc3RJ c1JlbW92YWJsZVhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKQor R2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgVHJhbnNhY3Rp b25JZCB4aWQpCiB7CiAJRnVsbFRyYW5zYWN0aW9uSWQgZnhpZDsKIApAQCAtNDIzNyw3ICs0MjM2 LDcgQEAgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwg VHJhbnNhY3Rpb25JZCB4aWQpCiAJICovCiAJZnhpZCA9IEZ1bGxYaWRSZWxhdGl2ZVRvKHN0YXRl LT5kZWZpbml0ZWx5X25lZWRlZCwgeGlkKTsKIAotCXJldHVybiBHbG9iYWxWaXNUZXN0SXNSZW1v dmFibGVGdWxsWGlkKHN0YXRlLCBmeGlkKTsKKwlyZXR1cm4gR2xvYmFsVmlzRnVsbFhpZFZpc2li bGVUb0FsbChzdGF0ZSwgZnhpZCk7CiB9CiAKIC8qCkBAIC00MjUxLDEyICs0MjUwLDEyIEBAIEds b2JhbFZpc0NoZWNrUmVtb3ZhYmxlRnVsbFhpZChSZWxhdGlvbiByZWwsIEZ1bGxUcmFuc2FjdGlv bklkIGZ4aWQpCiAKIAlzdGF0ZSA9IEdsb2JhbFZpc1Rlc3RGb3IocmVsKTsKIAotCXJldHVybiBH bG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKHN0YXRlLCBmeGlkKTsKKwlyZXR1cm4gR2xv YmFsVmlzRnVsbFhpZFZpc2libGVUb0FsbChzdGF0ZSwgZnhpZCk7CiB9CiAKIC8qCiAgKiBDb252 ZW5pZW5jZSB3cmFwcGVyIGFyb3VuZCBHbG9iYWxWaXNUZXN0Rm9yKCkgYW5kCi0gKiBHbG9iYWxW aXNUZXN0SXNSZW1vdmFibGVYaWQoKSwgc2VlIHRoZWlyIGNvbW1lbnRzLgorICogR2xvYmFsVmlz VGVzdElzVmlzaWJsZVhpZCgpLCBzZWUgdGhlaXIgY29tbWVudHMuCiAgKi8KIGJvb2wKIEdsb2Jh bFZpc0NoZWNrUmVtb3ZhYmxlWGlkKFJlbGF0aW9uIHJlbCwgVHJhbnNhY3Rpb25JZCB4aWQpCkBA IC00MjY1LDcgKzQyNjQsNyBAQCBHbG9iYWxWaXNDaGVja1JlbW92YWJsZVhpZChSZWxhdGlvbiBy ZWwsIFRyYW5zYWN0aW9uSWQgeGlkKQogCiAJc3RhdGUgPSBHbG9iYWxWaXNUZXN0Rm9yKHJlbCk7 CiAKLQlyZXR1cm4gR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKHN0YXRlLCB4aWQpOworCXJl dHVybiBHbG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwoc3RhdGUsIHhpZCk7CiB9CiAKIC8qCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmggYi9zcmMvaW5jbHVkZS91dGlscy9z bmFwbWdyLmgKaW5kZXggNjA0YzFmOTAyMTYuLmEwZWEyY2ZjZWEyIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS91dGlscy9zbmFwbWdyLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5o CkBAIC0xMDAsOCArMTAwLDggQEAgZXh0ZXJuIGNoYXIgKkV4cG9ydFNuYXBzaG90KFNuYXBzaG90 IHNuYXBzaG90KTsKICAqLwogdHlwZWRlZiBzdHJ1Y3QgR2xvYmFsVmlzU3RhdGUgR2xvYmFsVmlz U3RhdGU7CiBleHRlcm4gR2xvYmFsVmlzU3RhdGUgKkdsb2JhbFZpc1Rlc3RGb3IoUmVsYXRpb24g cmVsKTsKLWV4dGVybiBib29sIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChHbG9iYWxWaXNT dGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKTsKLWV4dGVybiBib29sIEdsb2JhbFZpc1Rl c3RJc1JlbW92YWJsZUZ1bGxYaWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBGdWxsVHJhbnNhY3Rp b25JZCBmeGlkKTsKK2V4dGVybiBib29sIEdsb2JhbFZpc1hpZFZpc2libGVUb0FsbChHbG9iYWxW aXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKTsKK2V4dGVybiBib29sIEdsb2JhbFZp c0Z1bGxYaWRWaXNpYmxlVG9BbGwoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBGdWxsVHJhbnNhY3Rp b25JZCBmeGlkKTsKIGV4dGVybiBib29sIEdsb2JhbFZpc0NoZWNrUmVtb3ZhYmxlWGlkKFJlbGF0 aW9uIHJlbCwgVHJhbnNhY3Rpb25JZCB4aWQpOwogZXh0ZXJuIGJvb2wgR2xvYmFsVmlzQ2hlY2tS ZW1vdmFibGVGdWxsWGlkKFJlbGF0aW9uIHJlbCwgRnVsbFRyYW5zYWN0aW9uSWQgZnhpZCk7CiAK LS0gCjIuNDMuMAoK --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0017-Inline-TransactionIdFollows-Precedes.patch" Content-Disposition: attachment; filename="v10-0017-Inline-TransactionIdFollows-Precedes.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8gr16 RnJvbSA2ZDI2MTgxOWY4YjM1OTQ2Njk4YzU0MGI4NzI2MGUzYzQ5ODgzYzBkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDA5OjU3OjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMTcvMjJdIElubGluZSBUcmFuc2FjdGlvbklkRm9sbG93cy9QcmVjZWRlcygpCgpD YWxsaW5nIHRoZXNlIGZyb20gb24tYWNjZXNzIHBydW5pbmcgY29kZSBoYWQgbm90aWNlYWJsZSBv dmVyaGVhZCBpbiBhCnByb2ZpbGUuIFRoZXJlIGRvZXMgbm90IHNlZW0gdG8gYmUgYSByZWFzb24g bm90IHRvIGlubGluZSB0aGVtLgoKUmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtp cmlsbEBnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHJhbnNhbS5j IHwgNjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL3RyYW5z YW0uaCAgICAgICAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKystLQogMiBmaWxlcyBj aGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90cmFuc2FtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS90cmFuc2FtLmMKaW5kZXggOWEzOTQ1MWEyOWEuLjU1M2Q2NzU2Y2IzIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90cmFuc2FtLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0vdHJhbnNhbS5jCkBAIC0yNzMsNzAgKzI3Myw2IEBAIFRyYW5zYWN0 aW9uSWRBYm9ydFRyZWUoVHJhbnNhY3Rpb25JZCB4aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25J ZCAqeGlkcykKIAkJCQkJCQkgICBUUkFOU0FDVElPTl9TVEFUVVNfQUJPUlRFRCwgSW52YWxpZFhM b2dSZWNQdHIpOwogfQogCi0vKgotICogVHJhbnNhY3Rpb25JZFByZWNlZGVzIC0tLSBpcyBpZDEg bG9naWNhbGx5IDwgaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklkUHJlY2VkZXMoVHJhbnNh Y3Rpb25JZCBpZDEsIFRyYW5zYWN0aW9uSWQgaWQyKQotewotCS8qCi0JICogSWYgZWl0aGVyIElE IGlzIGEgcGVybWFuZW50IFhJRCB0aGVuIHdlIGNhbiBqdXN0IGRvIHVuc2lnbmVkCi0JICogY29t cGFyaXNvbi4gIElmIGJvdGggYXJlIG5vcm1hbCwgZG8gYSBtb2R1bG8tMl4zMiBjb21wYXJpc29u LgotCSAqLwotCWludDMyCQlkaWZmOwotCi0JaWYgKCFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQx KSB8fCAhVHJhbnNhY3Rpb25JZElzTm9ybWFsKGlkMikpCi0JCXJldHVybiAoaWQxIDwgaWQyKTsK LQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBpZDIpOwotCXJldHVybiAoZGlmZiA8IDApOwotfQot Ci0vKgotICogVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMgLS0tIGlzIGlkMSBsb2dpY2Fs bHkgPD0gaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklkUHJlY2VkZXNPckVxdWFscyhUcmFu c2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJCWRpZmY7Ci0KLQlp ZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwo aWQyKSkKLQkJcmV0dXJuIChpZDEgPD0gaWQyKTsKLQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBp ZDIpOwotCXJldHVybiAoZGlmZiA8PSAwKTsKLX0KLQotLyoKLSAqIFRyYW5zYWN0aW9uSWRGb2xs b3dzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID4gaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklk Rm9sbG93cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJ CWRpZmY7Ci0KLQlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlv bklkSXNOb3JtYWwoaWQyKSkKLQkJcmV0dXJuIChpZDEgPiBpZDIpOwotCi0JZGlmZiA9IChpbnQz MikgKGlkMSAtIGlkMik7Ci0JcmV0dXJuIChkaWZmID4gMCk7Ci19Ci0KLS8qCi0gKiBUcmFuc2Fj dGlvbklkRm9sbG93c09yRXF1YWxzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID49IGlkMj8KLSAqLwot Ym9vbAotVHJhbnNhY3Rpb25JZEZvbGxvd3NPckVxdWFscyhUcmFuc2FjdGlvbklkIGlkMSwgVHJh bnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJCWRpZmY7Ci0KLQlpZiAoIVRyYW5zYWN0aW9uSWRJ c05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQyKSkKLQkJcmV0dXJuIChp ZDEgPj0gaWQyKTsKLQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBpZDIpOwotCXJldHVybiAoZGlm ZiA+PSAwKTsKLX0KLQogCiAvKgogICogVHJhbnNhY3Rpb25JZExhdGVzdCAtLS0gZ2V0IGxhdGVz dCBYSUQgYW1vbmcgYSBtYWluIHhhY3QgYW5kIGl0cyBjaGlsZHJlbgpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3RyYW5zYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2FtLmgK aW5kZXggN2Q4MmNkMmViNTYuLmM5ZTIwNDE4Mjc1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvdHJhbnNhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2FtLmgKQEAgLTI1 NSw2ICsyNTUsNzIgQEAgdHlwZWRlZiBzdHJ1Y3QgVHJhbnNhbVZhcmlhYmxlc0RhdGEKIH0gVHJh bnNhbVZhcmlhYmxlc0RhdGE7CiAKIAorCisvKgorICogVHJhbnNhY3Rpb25JZFByZWNlZGVzIC0t LSBpcyBpZDEgbG9naWNhbGx5IDwgaWQyPworICovCitzdGF0aWMgaW5saW5lIGJvb2wKK1RyYW5z YWN0aW9uSWRQcmVjZWRlcyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCit7 CisJLyoKKwkgKiBJZiBlaXRoZXIgSUQgaXMgYSBwZXJtYW5lbnQgWElEIHRoZW4gd2UgY2FuIGp1 c3QgZG8gdW5zaWduZWQKKwkgKiBjb21wYXJpc29uLiAgSWYgYm90aCBhcmUgbm9ybWFsLCBkbyBh IG1vZHVsby0yXjMyIGNvbXBhcmlzb24uCisJICovCisJaW50MzIJCWRpZmY7CisKKwlpZiAoIVRy YW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQyKSkK KwkJcmV0dXJuIChpZDEgPCBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlkMSAtIGlkMik7CisJ cmV0dXJuIChkaWZmIDwgMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklkUHJlY2VkZXNPckVx dWFscyAtLS0gaXMgaWQxIGxvZ2ljYWxseSA8PSBpZDI/CisgKi8KK3N0YXRpYyBpbmxpbmUgYm9v bAorVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMoVHJhbnNhY3Rpb25JZCBpZDEsIFRyYW5z YWN0aW9uSWQgaWQyKQoreworCWludDMyCQlkaWZmOworCisJaWYgKCFUcmFuc2FjdGlvbklkSXNO b3JtYWwoaWQxKSB8fCAhVHJhbnNhY3Rpb25JZElzTm9ybWFsKGlkMikpCisJCXJldHVybiAoaWQx IDw9IGlkMik7CisKKwlkaWZmID0gKGludDMyKSAoaWQxIC0gaWQyKTsKKwlyZXR1cm4gKGRpZmYg PD0gMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklkRm9sbG93cyAtLS0gaXMgaWQxIGxvZ2lj YWxseSA+IGlkMj8KKyAqLworc3RhdGljIGlubGluZSBib29sCitUcmFuc2FjdGlvbklkRm9sbG93 cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCit7CisJaW50MzIJCWRpZmY7 CisKKwlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNO b3JtYWwoaWQyKSkKKwkJcmV0dXJuIChpZDEgPiBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlk MSAtIGlkMik7CisJcmV0dXJuIChkaWZmID4gMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklk Rm9sbG93c09yRXF1YWxzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID49IGlkMj8KKyAqLworc3RhdGlj IGlubGluZSBib29sCitUcmFuc2FjdGlvbklkRm9sbG93c09yRXF1YWxzKFRyYW5zYWN0aW9uSWQg aWQxLCBUcmFuc2FjdGlvbklkIGlkMikKK3sKKwlpbnQzMgkJZGlmZjsKKworCWlmICghVHJhbnNh Y3Rpb25JZElzTm9ybWFsKGlkMSkgfHwgIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDIpKQorCQly ZXR1cm4gKGlkMSA+PSBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlkMSAtIGlkMik7CisJcmV0 dXJuIChkaWZmID49IDApOworfQorCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0KICAqCQlleHRlcm4g ZGVjbGFyYXRpb25zCiAgKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzQsMTAgKzM0MCw2IEBAIGV4 dGVybiBib29sIFRyYW5zYWN0aW9uSWREaWRBYm9ydChUcmFuc2FjdGlvbklkIHRyYW5zYWN0aW9u SWQpOwogZXh0ZXJuIHZvaWQgVHJhbnNhY3Rpb25JZENvbW1pdFRyZWUoVHJhbnNhY3Rpb25JZCB4 aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25JZCAqeGlkcyk7CiBleHRlcm4gdm9pZCBUcmFuc2Fj dGlvbklkQXN5bmNDb21taXRUcmVlKFRyYW5zYWN0aW9uSWQgeGlkLCBpbnQgbnhpZHMsIFRyYW5z YWN0aW9uSWQgKnhpZHMsIFhMb2dSZWNQdHIgbHNuKTsKIGV4dGVybiB2b2lkIFRyYW5zYWN0aW9u SWRBYm9ydFRyZWUoVHJhbnNhY3Rpb25JZCB4aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25JZCAq eGlkcyk7Ci1leHRlcm4gYm9vbCBUcmFuc2FjdGlvbklkUHJlY2VkZXMoVHJhbnNhY3Rpb25JZCBp ZDEsIFRyYW5zYWN0aW9uSWQgaWQyKTsKLWV4dGVybiBib29sIFRyYW5zYWN0aW9uSWRQcmVjZWRl c09yRXF1YWxzKFRyYW5zYWN0aW9uSWQgaWQxLCBUcmFuc2FjdGlvbklkIGlkMik7Ci1leHRlcm4g Ym9vbCBUcmFuc2FjdGlvbklkRm9sbG93cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25J ZCBpZDIpOwotZXh0ZXJuIGJvb2wgVHJhbnNhY3Rpb25JZEZvbGxvd3NPckVxdWFscyhUcmFuc2Fj dGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpOwogZXh0ZXJuIFRyYW5zYWN0aW9uSWQgVHJh bnNhY3Rpb25JZExhdGVzdChUcmFuc2FjdGlvbklkIG1haW54aWQsCiAJCQkJCQkJCQkJIGludCBu eGlkcywgY29uc3QgVHJhbnNhY3Rpb25JZCAqeGlkcyk7CiBleHRlcm4gWExvZ1JlY1B0ciBUcmFu c2FjdGlvbklkR2V0Q29tbWl0TFNOKFRyYW5zYWN0aW9uSWQgeGlkKTsKLS0gCjIuNDMuMAoK --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0020-Add-helper-functions-to-heap_page_prune_and_free.patch" Content-Disposition: attachment; filename="v10-0020-Add-helper-functions-to-heap_page_prune_and_free.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8gz19 RnJvbSBhMDIyOWM2NWRjNmU1OTAzM2M2NWYwYTllZmFmNzQ5YTgyNjc4NTUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMwIEp1bCAyMDI1IDE4OjUxOjQzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMjAvMjJdIEFkZCBoZWxwZXIgZnVuY3Rpb25zIHRvIGhlYXBfcGFnZV9wcnVuZV9h bmRfZnJlZXplCgpoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIGhhcyBnb3R0ZW4gcmF0aGVy IGxvbmcuIEl0IGhhcyBzZXZlcmFsCnN0YWdlczoKCjEpIHNldHVwIC0gd2hlcmUgdGhlIFBydW5l U3RhdGVpcyBzZXQgdXAKMikgdHVwbGUgZXhhbWluYXRpb24gLS0gd2hlcmUgdHVwbGVzIGFuZCBs aW5lIHBvaW50ZXJzIGFyZSBleGFtaW5lZCB0bwogICBkZXRlcm1pbmUgd2hhdCBuZWVkcyB0byBi ZSBwcnVuZWQgYW5kIHdoYXQgY291bGQgYmUgZnJvemVuCjMpIGV2YWx1YXRpb24gLS0gd2hlcmUg d2UgZGV0ZXJtaW5lIGJhc2VkIG9uIGNhbGxlciBwcm92aWRlZCBvcHRpb25zLAogICBoZXVyaXN0 aWNzLCBhbmQgc3RhdGUgZ2F0aGVyZWQgZHVyaW5nIHN0YWdlIDIgd2hldGhlciBvciBub3QgdG8K ICAgZnJlZXplIHR1cGxlcyBhbmQgc2V0IHRoZSBwYWdlIGluIHRoZSBWTQo0KSBleGVjdXRpb24g LSB3aGVyZSB0aGUgcGFnZSBjaGFuZ2VzIGFyZSBhY3R1YWxseSBtYWRlIGFuZCBsb2dnZWQKClRo aXMgY29tbWl0IHJlZmFjdG9ycyB0aGUgZXZhbHVhdGlvbiBzdGFnZSBpbnRvIGhlbHBlcnMgd2hp Y2ggcmV0dXJuCndoZXRoZXIgb3Igbm90IHRvIGZyZWV6ZSBhbmQgc2V0IHRoZSBWTS4KCkZvciB0 aGUgcHVycG9zZXMgb2YgY29tbWl0dGluZywgdGhpcyBsaWtlbHkgc2hvdWxkbid0IGJlIGEgc2Vw YXJhdGUKY29tbWl0LiBCdXQgSSdtIG5vdCBzdXJlIHlldCB3aGV0aGVyIGl0IG1ha2VzIG1vcmUg c2Vuc2UgdG8gZG8gdGhpcwpyZWZhY3RvcmluZyBlYXJsaWVyIGluIHRoZSBzZXQgZm9yIGNsYXJp dHkgZm9yIHRoZSByZXZpZXdlci4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYyB8IDQ3MSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg Mjk1IGluc2VydGlvbnMoKyksIDE3NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3By dW5laGVhcC5jCmluZGV4IDBmZWRjYWQyNGM5Li4xYTFhNTUxODU5YiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTE3OSw2ICsxNzksMjIgQEAgc3RhdGljIHZvaWQgaGVhcF9w cnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX3JlZGlyZWN0KFBydW5lU3RhdGUgKnByc3RhdGUsIE9m ZnNldE4KIAogc3RhdGljIHZvaWQgcGFnZV92ZXJpZnlfcmVkaXJlY3RzKFBhZ2UgcGFnZSk7CiAK K3N0YXRpYyBib29sIGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVm ZmVyIGJ1ZmZlciwKKwkJCQkJCQkJICBib29sIGRvX3BydW5lLAorCQkJCQkJCQkgIGJvb2wgZG9f aGludF9mdWxsX29yX3BydW5hYmxlLAorCQkJCQkJCQkgIGJvb2wgZGlkX3R1cGxlX2hpbnRfZnBp LAorCQkJCQkJCQkgIFBydW5lU3RhdGUgKnByc3RhdGUsCisJCQkJCQkJCSAgYm9vbCAqYWxsX2Zy b3plbl9leGNlcHRfbHBfZGVhZCk7CisKK3N0YXRpYyBib29sIGhlYXBfcGFnZV93aWxsX3VwZGF0 ZV92bShSZWxhdGlvbiByZWxhdGlvbiwKKwkJCQkJCQkJCSBCdWZmZXIgYnVmZmVyLCBCbG9ja051 bWJlciBibG9ja25vLCBQYWdlIHBhZ2UsCisJCQkJCQkJCQkgUHJ1bmVSZWFzb24gcmVhc29uLAor CQkJCQkJCQkJIGJvb2wgZG9fcHJ1bmUsIGJvb2wgZG9fZnJlZXplLAorCQkJCQkJCQkJIGJvb2wg YmxrX2tub3duX2F2LAorCQkJCQkJCQkJIFBydW5lU3RhdGUgKnByc3RhdGUsCisJCQkJCQkJCQkg QnVmZmVyICp2bWJ1ZmZlciwgdWludDggKnZtZmxhZ3MsCisJCQkJCQkJCQkgYm9vbCAqc2V0X3Bk X2FsbF92aXNpYmxlKTsKKwogc3RhdGljIGJvb2wgaWRlbnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0 aW9uKFJlbGF0aW9uIHJlbGF0aW9uLAogCQkJCQkJCQkJCSAgIEJsb2NrTnVtYmVyIGhlYXBfYmxr LAogCQkJCQkJCQkJCSAgIEJ1ZmZlciBoZWFwX2J1ZmZlciwgUGFnZSBoZWFwX3BhZ2UsCkBAIC0z ODAsNiArMzk2LDI0OSBAQCBpZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24oUmVsYXRpb24g cmVsYXRpb24sCiAJcmV0dXJuIGZhbHNlOwogfQogCisKKy8qCisgKiBEZXRlcm1pbmUgd2hldGhl ciB0byBzZXQgdGhlIHZpc2liaWxpdHkgbWFwIGJpdHMgYmFzZWQgb24gaW5mb3JtYXRpb24gZnJv bQorICogdGhlIFBydW5lU3RhdGUgYW5kIGJsa19rbm93bl9hdiwgd2hpY2ggc29tZSBjYWxsZXJz IHdpbGwgcHJvdmlkZSBhZnRlcgorICogcHJldmlvdXNseSBleGFtaW5pbmcgdGhpcyBoZWFwIHBh Z2UncyBWTSBiaXRzIChlLmcuIHZhY3V1bSBmcm9tIHRoZSBsYXN0CisgKiBoZWFwX3ZhY19zY2Fu X25leHRfYmxvY2soKSBjYWxsKS4KKyAqCisgKiBXZSBwYXNzIGluIGJsb2Nrbm8gYW5kIHBhZ2Ug ZXZlbiB0aG9zZSBjYW4gYmUgZGVyaXZlZCBmcm9tIGJ1ZmZlciB0byBhdm9pZAorICogZXh0cmEg QnVmZmVyR2V0QmxvY2soKSBhbmQgQnVmZmVyR2V0QmxvY2tOdW1iZXIoKSBjYWxscy4KKyAqCisg KiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgb25seSBhZnRlciBkb19mcmVlemUgaGFzIGJlZW4gZGVj aWRlZCAoYW5kIGRvX3BydW5lCisgKiBoYXMgYmVlbiBzZXQpLCBhcyB0aGVzZSBmYWN0b3IgaW50 byBvdXIgaGV1cmlzdGljLWJhc2VkIGRlY2lzaW9uLgorICoKKyAqIHByc3RhdGUgYW5kIHZtYnVm ZmVyIGFyZSBpbnB1dC9vdXRwdXQgZmllbGRzLiB2bWZsYWdzIGFuZCBhbmQKKyAqIHNldF9wZF9h bGxfdmlzaWJsZSBhcmUgb3V0cHV0IGZpZWxkcy4KKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgdGhl IGNhbGxlciBzaG91bGQgc2V0IG9uZSBvciBib3RoIG9mIHRoZSBWTSBiaXRzIGFuZCBmYWxzZQor ICogb3RoZXJ3aXNlLgorICovCitzdGF0aWMgYm9vbAoraGVhcF9wYWdlX3dpbGxfdXBkYXRlX3Zt KFJlbGF0aW9uIHJlbGF0aW9uLAorCQkJCQkJIEJ1ZmZlciBidWZmZXIsIEJsb2NrTnVtYmVyIGJs b2Nrbm8sIFBhZ2UgcGFnZSwKKwkJCQkJCSBQcnVuZVJlYXNvbiByZWFzb24sCisJCQkJCQkgYm9v bCBkb19wcnVuZSwgYm9vbCBkb19mcmVlemUsCisJCQkJCQkgYm9vbCBibGtfa25vd25fYXYsCisJ CQkJCQkgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKKwkJCQkJCSBCdWZmZXIgKnZtYnVmZmVyLCB1aW50 OCAqdm1mbGFncywKKwkJCQkJCSBib29sICpzZXRfcGRfYWxsX3Zpc2libGUpCit7CisJYm9vbAkJ ZG9fc2V0X3ZtID0gZmFsc2U7CisKKwkvKgorCSAqIElmIHRoZSBjYWxsZXIgc3BlY2lmaWVkIG5v dCB0byB1cGRhdGUgdGhlIFZNLCB2YWxpZGF0ZSBldmVyeXRoaW5nIGlzIGluCisJICogdGhlIHJp Z2h0IHN0YXRlIGFuZCBleGl0LgorCSAqLworCWlmICghcHJzdGF0ZS0+Y29uc2lkZXJfdXBkYXRl X3ZtKQorCXsKKwkJQXNzZXJ0KCFwcnN0YXRlLT5hbGxfdmlzaWJsZSAmJiAhcHJzdGF0ZS0+YWxs X2Zyb3plbik7CisJCS8qIFdlIGRvbid0IHNldCBvbmx5IHRoZSBwYWdlIGxldmVsIHZpc2liaWxp dHkgaGludCAqLworCQlBc3NlcnQoISgqc2V0X3BkX2FsbF92aXNpYmxlKSk7CisJCUFzc2VydCgq dm1mbGFncyA9PSAwKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCS8qCisJICogSWYgdGhpcyBp cyBhbiBvbi1hY2Nlc3MgY2FsbCBhbmQgd2UncmUgbm90IGFjdHVhbGx5IHBydW5pbmcsIGF2b2lk CisJICogc2V0dGluZyB0aGUgdmlzaWJpbGl0eSBtYXAgaWYgaXQgd291bGQgbmV3bHkgZGlydHkg dGhlIGhlYXAgcGFnZSBvciwgaWYKKwkgKiB0aGUgcGFnZSBpcyBhbHJlYWR5IGRpcnR5LCBpZiBk b2luZyBzbyB3b3VsZCByZXF1aXJlIGluY2x1ZGluZyBhCisJICogZnVsbC1wYWdlIGltYWdlIChG UEkpIG9mIHRoZSBoZWFwIHBhZ2UgaW4gdGhlIFdBTC4gVGhpcyBzaXR1YXRpb24KKwkgKiBzaG91 bGQgYmUgcmFyZSwgYXMgb24tYWNjZXNzIHBydW5pbmcgaXMgb25seSBhdHRlbXB0ZWQgd2hlbgor CSAqIHBkX3BydW5lX3hpZCBpcyB2YWxpZC4KKwkgKi8KKwlpZiAocmVhc29uID09IFBSVU5FX09O X0FDQ0VTUyAmJgorCQlwcnN0YXRlLT5jb25zaWRlcl91cGRhdGVfdm0gJiYKKwkJcHJzdGF0ZS0+ YWxsX3Zpc2libGUgJiYKKwkJIWRvX3BydW5lICYmICFkb19mcmVlemUgJiYKKwkJKCFCdWZmZXJJ c0RpcnR5KGJ1ZmZlcikgfHwgWExvZ0NoZWNrQnVmZmVyTmVlZHNCYWNrdXAoYnVmZmVyKSkpCisJ eworCQlwcnN0YXRlLT5jb25zaWRlcl91cGRhdGVfdm0gPSBmYWxzZTsKKwkJcHJzdGF0ZS0+YWxs X3Zpc2libGUgPSBwcnN0YXRlLT5hbGxfZnJvemVuID0gZmFsc2U7CisJfQorCisJQXNzZXJ0KCFw cnN0YXRlLT5hbGxfZnJvemVuIHx8IHByc3RhdGUtPmFsbF92aXNpYmxlKTsKKworCS8qCisJICog Q2xlYXIgYW55IFZNIGNvcnJ1cHRpb24uIFRoaXMgZG9lcyBub3QgbmVlZCB0byBiZSBpbiBhIGNy aXRpY2FsCisJICogc2VjdGlvbiwgc28gd2UgZG8gaXQgZmlyc3QuIElmIFBEX0FMTF9WSVNJQkxF IGlzIGluY29ycmVjdGx5IHNldCwgd2UKKwkgKiBtYXkgbWFyayB0aGUgaGVhcCBwYWdlIGJ1ZmZl ciBkaXJ0eSBoZXJlIGFuZCBjb3VsZCBlbmQgdXAgZG9pbmcgc28KKwkgKiBhZ2FpbiBsYXRlci4g VGhpcyBpcyBub3QgYSBjb3JyZWN0bmVzcyBpc3N1ZSBhbmQgaXMgaW4gdGhlIHBhdGggb2YgVk0K KwkgKiBjb3JydXB0aW9uLCBzbyB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoZSBleHRy YSBwZXJmb3JtYW5jZQorCSAqIG92ZXJoZWFkLgorCSAqLworCWlmIChpZGVudGlmeV9hbmRfZml4 X3ZtX2NvcnJ1cHRpb24ocmVsYXRpb24sCisJCQkJCQkJCQkgICBibG9ja25vLCBidWZmZXIsIHBh Z2UsCisJCQkJCQkJCQkgICBibGtfa25vd25fYXYsIHByc3RhdGUtPmxwZGVhZF9pdGVtcywKKwkJ CQkJCQkJCSAgICp2bWJ1ZmZlcikpCisJeworCQkvKiBJZiB3ZSBmaXggY29ycnVwdGlvbiwgZG9u J3QgdXBkYXRlIHRoZSBWTSBmdXJ0aGVyICovCisJfQorCisJLyogRGV0ZXJtaW5lIGlmIHdlIGFj dHVhbGx5IG5lZWQgdG8gc2V0IHRoZSBWTSBhbmQgd2hpY2ggYml0cyB0byBzZXQuICovCisJZWxz ZSBpZiAocHJzdGF0ZS0+YWxsX3Zpc2libGUgJiYKKwkJCSAoIWJsa19rbm93bl9hdiB8fAorCQkJ ICAocHJzdGF0ZS0+YWxsX2Zyb3plbiAmJiAhVk1fQUxMX0ZST1pFTihyZWxhdGlvbiwgYmxvY2tu bywgdm1idWZmZXIpKSkpCisJeworCQkqdm1mbGFncyB8PSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJ QkxFOworCQlpZiAocHJzdGF0ZS0+YWxsX2Zyb3plbikKKwkJCSp2bWZsYWdzIHw9IFZJU0lCSUxJ VFlNQVBfQUxMX0ZST1pFTjsKKwl9CisKKwlkb19zZXRfdm0gPSAqdm1mbGFncyAmIFZJU0lCSUxJ VFlNQVBfVkFMSURfQklUUzsKKworCS8qCisJICogRG9uJ3Qgc2V0IFBEX0FMTF9WSVNJQkxFIHVu bGVzcyB3ZSBhbHNvIHBsYW4gdG8gc2V0IHRoZSBWTS4gV2hpbGUgaXQgaXMKKwkgKiBjb3JyZWN0 IGZvciBhIGhlYXAgcGFnZSB0byBoYXZlIFBEX0FMTF9WSVNJQkxFIGV2ZW4gaWYgdGhlIFZNIGlz IG5vdAorCSAqIHNldCwgd2Ugc3Ryb25nbHkgcHJlZmVyIHRvIGtlZXAgdGhlbSBpbiBzeW5jLgor CSAqCisJICogUHJpb3IgdG8gUG9zdGdyZXMgMTksIGl0IHdhcyBwb3NzaWJsZSBmb3IgdGhlIHBh Z2UtbGV2ZWwgYml0IHRvIGJlIHNldAorCSAqIGFuZCB0aGUgVk0gYml0IHRvIGJlIGNsZWFyLiBU aGlzIGNvdWxkIGhhcHBlbiBpZiB3ZSBjcmFzaGVkIGFmdGVyCisJICogc2V0dGluZyBQRF9BTExf VklTSUJMRSBidXQgYmVmb3JlIHNldHRpbmcgYml0cyBpbiB0aGUgVk0uCisJICovCisJKnNldF9w ZF9hbGxfdmlzaWJsZSA9IGRvX3NldF92bSAmJiAhUGFnZUlzQWxsVmlzaWJsZShwYWdlKTsKKwly ZXR1cm4gZG9fc2V0X3ZtOworfQorCisvKgorICogRGVjaWRlIGlmIHdlIHdhbnQgdG8gZ28gYWhl YWQgd2l0aCBmcmVlemluZyBhY2NvcmRpbmcgdG8gdGhlIGZyZWV6ZSBwbGFucyB3ZQorICogcHJl cGFyZWQgZm9yIHRoZSBnaXZlbiBidWZmZXIgb3Igbm90LiBJZiB0aGUgY2FsbGVyIHNwZWNpZmll ZCB3ZSBzaG91bGQgbm90CisgKiBmcmVlemUgdHVwbGVzLCBpdCBleGl0cyBlYXJseS4KKyAqCisg KiBkb19wcnVuZSwgZG9faGludF9mdWxsX29yX3BydW5hYmxlLCBhbmQgZGlkX3R1cGxlX2hpbnRf ZnBpIG11c3QgYWxsIGhhdmUKKyAqIGJlZW4gZGVjaWRlZCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1 bmN0aW9uLgorICoKKyAqIHByc3RhdGUgaXMgYW4gaW5wdXQvb3V0cHV0IHBhcmFtZXRlci4gYWxs X2Zyb3plbl9leGNlcHRfbHBfZGVhZCBpcyBzZXQgYW5kCisgKiB1c2VkIGxhdGVyIHRvIGRldGVy bWluZSB0aGUgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbiBmb3IgdGhlIHJlY29yZC4KKyAqCisg KiBSZXR1cm5zIHRydWUgaWYgd2Ugc2hvdWxkIHVzZSBvdXIgZnJlZXplIHBsYW5zIGFuZCBmcmVl emUgdHVwbGVzIG9uIHRoZSBwYWdlCisgKiBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitzdGF0 aWMgYm9vbAoraGVhcF9wYWdlX3dpbGxfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIg YnVmZmVyLAorCQkJCQkgIGJvb2wgZG9fcHJ1bmUsCisJCQkJCSAgYm9vbCBkb19oaW50X2Z1bGxf b3JfcHJ1bmFibGUsCisJCQkJCSAgYm9vbCBkaWRfdHVwbGVfaGludF9mcGksCisJCQkJCSAgUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwKKwkJCQkJICBib29sICphbGxfZnJvemVuX2V4Y2VwdF9scF9kZWFk KQoreworCWJvb2wJCWRvX2ZyZWV6ZSA9IGZhbHNlOworCisJLyoKKwkgKiBJZiB0aGUgY2FsbGVy IHNwZWNpZmllZCB3ZSBzaG91bGQgbm90IGF0dGVtcHQgdG8gZnJlZXplIGFueSB0dXBsZXMsCisJ ICogdmFsaWRhdGUgdGhhdCBldmVyeXRoaW5nIGlzIGluIHRoZSByaWdodCBzdGF0ZSBhbmQgZXhp dC4KKwkgKi8KKwlpZiAoIXByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQorCXsKKwkJQXNzZXJ0KCFw cnN0YXRlLT5hbGxfZnJvemVuICYmIHByc3RhdGUtPm5mcm96ZW4gPT0gMCk7CisJCUFzc2VydChw cnN0YXRlLT5scGRlYWRfaXRlbXMgPT0gMCB8fCAhcHJzdGF0ZS0+YWxsX3Zpc2libGUpOworCQlB c3NlcnQoISgqYWxsX2Zyb3plbl9leGNlcHRfbHBfZGVhZCkpOworCQlyZXR1cm4gZmFsc2U7CisJ fQorCisJaWYgKHByc3RhdGUtPnBhZ2VmcnouZnJlZXplX3JlcXVpcmVkKQorCXsKKwkJLyoKKwkJ ICogaGVhcF9wcmVwYXJlX2ZyZWV6ZV90dXBsZSBpbmRpY2F0ZWQgdGhhdCBhdCBsZWFzdCBvbmUg WElEL01YSUQgZnJvbQorCQkgKiBiZWZvcmUgRnJlZXplTGltaXQvTXVsdGlYYWN0Q3V0b2ZmIGlz IHByZXNlbnQuICBNdXN0IGZyZWV6ZSB0bworCQkgKiBhZHZhbmNlIHJlbGZyb3plbnhpZC9yZWxt aW5teGlkLgorCQkgKi8KKwkJZG9fZnJlZXplID0gdHJ1ZTsKKwl9CisJZWxzZQorCXsKKwkJLyoK KwkJICogT3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXplIHRoZSBwYWdlIGlmIHdlIGFyZSBnZW5lcmF0 aW5nIGFuIEZQSQorCQkgKiBhbnl3YXkgYW5kIGlmIGRvaW5nIHNvIG1lYW5zIHRoYXQgd2UgY2Fu IHNldCB0aGUgcGFnZSBhbGwtZnJvemVuCisJCSAqIGFmdGVyd2FyZHMgKG1pZ2h0IG5vdCBoYXBw ZW4gdW50aWwgVkFDVVVNJ3MgZmluYWwgaGVhcCBwYXNzKS4KKwkJICoKKwkJICogWFhYOiBQcmV2 aW91c2x5LCB3ZSBrbmV3IGlmIHBydW5pbmcgZW1pdHRlZCBhbiBGUEkgYnkgY2hlY2tpbmcKKwkJ ICogcGdXYWxVc2FnZS53YWxfZnBpIGJlZm9yZSBhbmQgYWZ0ZXIgcHJ1bmluZy4gIE9uY2UgdGhl IGZyZWV6ZSBhbmQKKwkJICogcHJ1bmUgcmVjb3JkcyB3ZXJlIGNvbWJpbmVkLCB0aGlzIGhldXJp c3RpYyBjb3VsZG4ndCBiZSB1c2VkCisJCSAqIGFueW1vcmUuICBUaGUgb3Bwb3J0dW5pc3RpYyBm cmVlemUgaGV1cmlzdGljIG11c3QgYmUgaW1wcm92ZWQ7CisJCSAqIGhvd2V2ZXIsIGZvciBub3cs IHRyeSB0byBhcHByb3hpbWF0ZSB0aGUgb2xkIGxvZ2ljLgorCQkgKi8KKwkJaWYgKHByc3RhdGUt PmFsbF92aXNpYmxlICYmIHByc3RhdGUtPmFsbF9mcm96ZW4gJiYgcHJzdGF0ZS0+bmZyb3plbiA+ IDApCisJCXsKKwkJCS8qCisJCQkgKiBGcmVlemluZyB3b3VsZCBtYWtlIHRoZSBwYWdlIGFsbC1m cm96ZW4uICBIYXZlIGFscmVhZHkgZW1pdHRlZAorCQkJICogYW4gRlBJIG9yIHdpbGwgZG8gc28g YW55d2F5PworCQkJICovCisJCQlpZiAoUmVsYXRpb25OZWVkc1dBTChyZWxhdGlvbikpCisJCQl7 CisJCQkJaWYgKGRpZF90dXBsZV9oaW50X2ZwaSkKKwkJCQkJZG9fZnJlZXplID0gdHJ1ZTsKKwkJ CQllbHNlIGlmIChkb19wcnVuZSkKKwkJCQl7CisJCQkJCWlmIChYTG9nQ2hlY2tCdWZmZXJOZWVk c0JhY2t1cChidWZmZXIpKQorCQkJCQkJZG9fZnJlZXplID0gdHJ1ZTsKKwkJCQl9CisJCQkJZWxz ZSBpZiAoZG9faGludF9mdWxsX29yX3BydW5hYmxlKQorCQkJCXsKKwkJCQkJaWYgKFhMb2dIaW50 Qml0SXNOZWVkZWQoKSAmJiBYTG9nQ2hlY2tCdWZmZXJOZWVkc0JhY2t1cChidWZmZXIpKQorCQkJ CQkJZG9fZnJlZXplID0gdHJ1ZTsKKwkJCQl9CisJCQl9CisJCX0KKwl9CisKKwlpZiAoZG9fZnJl ZXplKQorCXsKKwkJLyoKKwkJICogVmFsaWRhdGUgdGhlIHR1cGxlcyB3ZSB3aWxsIGJlIGZyZWV6 aW5nIGJlZm9yZSBlbnRlcmluZyB0aGUKKwkJICogY3JpdGljYWwgc2VjdGlvbi4KKwkJICovCisJ CWhlYXBfcHJlX2ZyZWV6ZV9jaGVja3MoYnVmZmVyLCBwcnN0YXRlLT5mcm96ZW4sIHByc3RhdGUt Pm5mcm96ZW4pOworCX0KKwllbHNlIGlmIChwcnN0YXRlLT5uZnJvemVuID4gMCkKKwl7CisJCS8q CisJCSAqIFRoZSBwYWdlIGNvbnRhaW5lZCBzb21lIHR1cGxlcyB0aGF0IHdlcmUgbm90IGFscmVh ZHkgZnJvemVuLCBhbmQgd2UKKwkJICogY2hvc2Ugbm90IHRvIGZyZWV6ZSB0aGVtIG5vdy4gIFRo ZSBwYWdlIHdvbid0IGJlIGFsbC1mcm96ZW4gdGhlbi4KKwkJICovCisJCUFzc2VydCghcHJzdGF0 ZS0+cGFnZWZyei5mcmVlemVfcmVxdWlyZWQpOworCisJCXByc3RhdGUtPmFsbF9mcm96ZW4gPSBm YWxzZTsKKwkJcHJzdGF0ZS0+bmZyb3plbiA9IDA7CS8qIGF2b2lkIG1pc2NvdW50cyBpbiBpbnN0 cnVtZW50YXRpb24gKi8KKwl9CisJZWxzZQorCXsKKwkJLyoKKwkJICogV2UgaGF2ZSBubyBmcmVl emUgcGxhbnMgdG8gZXhlY3V0ZS4gIFRoZSBwYWdlIG1pZ2h0IGFscmVhZHkgYmUKKwkJICogYWxs LWZyb3plbiAocGVyaGFwcyBvbmx5IGZvbGxvd2luZyBwcnVuaW5nKSwgdGhvdWdoLiAgU3VjaCBw YWdlcworCQkgKiBjYW4gYmUgbWFya2VkIGFsbC1mcm96ZW4gaW4gdGhlIFZNIGJ5IG91ciBjYWxs ZXIsIGV2ZW4gdGhvdWdoIG5vbmUKKwkJICogb2YgaXRzIHR1cGxlcyB3ZXJlIG5ld2x5IGZyb3pl biBoZXJlLgorCQkgKi8KKwl9CisKKwkvKgorCSAqIEl0IHdhcyBjb252ZW5pZW50IHRvIGlnbm9y ZSBMUF9ERUFEIGl0ZW1zIGluIGFsbF92aXNpYmxlIGVhcmxpZXIgb24gdG8KKwkgKiBtYWtlIHRo ZSBjaG9pY2Ugb2Ygd2hldGhlciBvciBub3QgdG8gZnJlZXplIHRoZSBwYWdlIHVuYWZmZWN0ZWQg YnkgdGhlCisJICogc2hvcnQtdGVybSBwcmVzZW5jZSBvZiBMUF9ERUFEIGl0ZW1zLiAgVGhlc2Ug TFBfREVBRCBpdGVtcyB3ZXJlCisJICogZWZmZWN0aXZlbHkgYXNzdW1lZCB0byBiZSBMUF9VTlVT RUQgaXRlbXMgaW4gdGhlIG1ha2luZy4gIEl0IGRvZXNuJ3QKKwkgKiBtYXR0ZXIgd2hpY2ggdmFj dXVtIGhlYXAgcGFzcyAoaW5pdGlhbCBwYXNzIG9yIGZpbmFsIHBhc3MpIGVuZHMgdXAKKwkgKiBz ZXR0aW5nIHRoZSBwYWdlIGFsbC1mcm96ZW4sIGFzIGxvbmcgYXMgdGhlIG9uZ29pbmcgVkFDVVVN IGRvZXMgaXQuCisJICoKKwkgKiBOb3cgdGhhdCBmcmVlemluZyBoYXMgYmVlbiBmaW5hbGl6ZWQs IHVuc2V0IGFsbF92aXNpYmxlIGlmIHRoZXJlIGFyZQorCSAqIGFueSBMUF9ERUFEIGl0ZW1zIG9u IHRoZSBwYWdlLiBJdCBuZWVkcyB0byByZWZsZWN0IHRoZSBwcmVzZW50IHN0YXRlIG9mCisJICog dGhlIHBhZ2Ugd2hlbiB1c2luZyBpdCB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdG8gdXBk YXRlIHRoZSBWTS4KKwkgKgorCSAqIEtlZXAgdHJhY2sgb2Ygd2hldGhlciBvciBub3QgdGhlIHBh Z2Ugd2FzIGFsbC1mcm96ZW4gZXhjZXB0IExQX0RFQUQKKwkgKiBpdGVtcyBmb3IgdGhlIHB1cnBv c2VzIG9mIGNhbGN1bGF0aW5nIHRoZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uLAorCSAqIHRo b3VnaC4KKwkgKi8KKwkqYWxsX2Zyb3plbl9leGNlcHRfbHBfZGVhZCA9IHByc3RhdGUtPmFsbF9m cm96ZW47CisJaWYgKHByc3RhdGUtPmxwZGVhZF9pdGVtcyA+IDApCisJeworCQlwcnN0YXRlLT5h bGxfdmlzaWJsZSA9IGZhbHNlOworCQlwcnN0YXRlLT5hbGxfZnJvemVuID0gZmFsc2U7CisJfQor CisJcmV0dXJuIGRvX2ZyZWV6ZTsKK30KKworCiAvKgogICogUHJ1bmUgYW5kIHJlcGFpciBmcmFn bWVudGF0aW9uIGFuZCBwb3RlbnRpYWxseSBmcmVlemUgdHVwbGVzIG9uIHRoZQogICogc3BlY2lm aWVkIHBhZ2UuIElmIHRoZSBwYWdlJ3MgdmlzaWJpbGl0eSBzdGF0dXMgaGFzIGNoYW5nZWQsIHVw ZGF0ZSBpdCBpbgpAQCAtNzcwLDIwICsxMDI5LDMwIEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCS8qIENsZWFyIHRoZSBvZmZz ZXQgaW5mb3JtYXRpb24gb25jZSB3ZSBoYXZlIHByb2Nlc3NlZCB0aGUgZ2l2ZW4gcGFnZS4gKi8K IAkqb2ZmX2xvYyA9IEludmFsaWRPZmZzZXROdW1iZXI7CiAKLQlkb19wcnVuZSA9IHByc3RhdGUu bnJlZGlyZWN0ZWQgPiAwIHx8Ci0JCXByc3RhdGUubmRlYWQgPiAwIHx8Ci0JCXByc3RhdGUubnVu dXNlZCA+IDA7Ci0KIAkvKgogCSAqIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHRoZSBsaXZlIHR1cGxl cyBvbiB0aGUgcGFnZSwgaWYgdGhlIG5ld2VzdCB4bWluCiAJICogYW1vbmdzdCB0aGVtIGlzIG5v dCB2aXNpYmxlIHRvIGV2ZXJ5b25lLCB0aGUgcGFnZSBjYW5ub3QgYmUKLQkgKiBhbGwtdmlzaWJs ZS4KKwkgKiBhbGwtdmlzaWJsZS4gVGhpcyBtdXN0IGJlIGRvbmUgYmVmb3JlIHdlIGRlY2lkZSB3 aGV0aGVyIG9yIG5vdCB0bworCSAqIG9wcG9ydHVuaXN0aWNhbGx5IGZyZWV6ZSBiZWxvdyBiZWNh dXNlIHdlIGRvIG5vdCB3YW50IHRvCisJICogb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXplIHRoZSBw YWdlIGlmIHRoZXJlIGFyZSBsaXZlIHR1cGxlcyBub3QgdmlzaWJsZQorCSAqIHRvIGV2ZXJ5b25l LCB3aGljaCB3b3VsZCBwcmV2ZW50IHNldHRpbmcgdGhlIHBhZ2UgZnJvemVuIGluIHRoZSBWTS4K IAkgKi8KIAlpZiAocHJzdGF0ZS5hbGxfdmlzaWJsZSAmJgogCQlUcmFuc2FjdGlvbklkSXNOb3Jt YWwocHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQpICYmCiAJCSFHbG9iYWxWaXNYaWRWaXNp YmxlVG9BbGwocHJzdGF0ZS52aXN0ZXN0LCBwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkp CiAJCXByc3RhdGUuYWxsX3Zpc2libGUgPSBwcnN0YXRlLmFsbF9mcm96ZW4gPSBmYWxzZTsKIAor CS8qCisJICogTm93IGRlY2lkZSBiYXNlZCBvbiBpbmZvcm1hdGlvbiBjb2xsZWN0ZWQgd2hpbGUg ZXhhbWluaW5nIGV2ZXJ5IHR1cGxlCisJICogd2hpY2ggYWN0aW9ucyB0byB0YWtlLiBJZiB0aGVy ZSBhcmUgYW55IHBydW5hYmxlIHR1cGxlcywgd2UnbGwgcHJ1bmUKKwkgKiB0aGVtLiBIb3dldmVy LCB3ZSB3aWxsIGRlY2lkZSBiYXNlZCBvbiBvcHRpb25zIHNwZWNpZmllZCBieSB0aGUgY2FsbGVy CisJICogYW5kIHZhcmlvdXMgaGV1cmlzdGljcyB3aGV0aGVyIG9yIG5vdCB0byBmcmVlemUgYW55 IHR1cGxlcyBhbmQgd2hldGhlcgorCSAqIG9yIG5vdCB0aGUgcGFnZSBzaG91bGQgYmUgc2V0IGFs bC12aXNpYmxlL2FsbC1mcm96ZW4gaW4gdGhlIFZNLgorCSAqLworCWRvX3BydW5lID0gcHJzdGF0 ZS5ucmVkaXJlY3RlZCA+IDAgfHwKKwkJcHJzdGF0ZS5uZGVhZCA+IDAgfHwKKwkJcHJzdGF0ZS5u dW51c2VkID4gMDsKKwogCS8qCiAJICogRXZlbiBpZiB3ZSBkb24ndCBwcnVuZSBhbnl0aGluZywg aWYgd2UgZm91bmQgYSBuZXcgdmFsdWUgZm9yIHRoZQogCSAqIHBkX3BydW5lX3hpZCBmaWVsZCBv ciB0aGUgcGFnZSB3YXMgbWFya2VkIGZ1bGwsIHdlIHdpbGwgdXBkYXRlIHRob3NlCkBAIC03OTQs MTgyICsxMDYzLDMyIEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0 aW9uLCBCdWZmZXIgYnVmZmVyLAogCQlQYWdlSXNGdWxsKHBhZ2UpOwogCiAJLyoKLQkgKiBEZWNp ZGUgaWYgd2Ugd2FudCB0byBnbyBhaGVhZCB3aXRoIGZyZWV6aW5nIGFjY29yZGluZyB0byB0aGUg ZnJlZXplCi0JICogcGxhbnMgd2UgcHJlcGFyZWQsIG9yIG5vdC4KLQkgKi8KLQlkb19mcmVlemUg PSBmYWxzZTsKLQlpZiAocHJzdGF0ZS5hdHRlbXB0X2ZyZWV6ZSkKLQl7Ci0JCWlmIChwcnN0YXRl LnBhZ2VmcnouZnJlZXplX3JlcXVpcmVkKQotCQl7Ci0JCQkvKgotCQkJICogaGVhcF9wcmVwYXJl X2ZyZWV6ZV90dXBsZSBpbmRpY2F0ZWQgdGhhdCBhdCBsZWFzdCBvbmUgWElEL01YSUQKLQkJCSAq IGZyb20gYmVmb3JlIEZyZWV6ZUxpbWl0L011bHRpWGFjdEN1dG9mZiBpcyBwcmVzZW50LiAgTXVz dAotCQkJICogZnJlZXplIHRvIGFkdmFuY2UgcmVsZnJvemVueGlkL3JlbG1pbm14aWQuCi0JCQkg Ki8KLQkJCWRvX2ZyZWV6ZSA9IHRydWU7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQkvKgotCQkJICog T3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXplIHRoZSBwYWdlIGlmIHdlIGFyZSBnZW5lcmF0aW5nIGFu IEZQSQotCQkJICogYW55d2F5IGFuZCBpZiBkb2luZyBzbyBtZWFucyB0aGF0IHdlIGNhbiBzZXQg dGhlIHBhZ2UKLQkJCSAqIGFsbC1mcm96ZW4gYWZ0ZXJ3YXJkcyAobWlnaHQgbm90IGhhcHBlbiB1 bnRpbCBWQUNVVU0ncyBmaW5hbAotCQkJICogaGVhcCBwYXNzKS4KLQkJCSAqCi0JCQkgKiBYWFg6 IFByZXZpb3VzbHksIHdlIGtuZXcgaWYgcHJ1bmluZyBlbWl0dGVkIGFuIEZQSSBieSBjaGVja2lu ZwotCQkJICogcGdXYWxVc2FnZS53YWxfZnBpIGJlZm9yZSBhbmQgYWZ0ZXIgcHJ1bmluZy4gIE9u Y2UgdGhlIGZyZWV6ZQotCQkJICogYW5kIHBydW5lIHJlY29yZHMgd2VyZSBjb21iaW5lZCwgdGhp cyBoZXVyaXN0aWMgY291bGRuJ3QgYmUKLQkJCSAqIHVzZWQgYW55bW9yZS4gIFRoZSBvcHBvcnR1 bmlzdGljIGZyZWV6ZSBoZXVyaXN0aWMgbXVzdCBiZQotCQkJICogaW1wcm92ZWQ7IGhvd2V2ZXIs IGZvciBub3csIHRyeSB0byBhcHByb3hpbWF0ZSB0aGUgb2xkIGxvZ2ljLgotCQkJICovCi0JCQlp ZiAocHJzdGF0ZS5hbGxfdmlzaWJsZSAmJiBwcnN0YXRlLmFsbF9mcm96ZW4gJiYgcHJzdGF0ZS5u ZnJvemVuID4gMCkKLQkJCXsKLQkJCQkvKgotCQkJCSAqIEZyZWV6aW5nIHdvdWxkIG1ha2UgdGhl IHBhZ2UgYWxsLWZyb3plbi4gIEhhdmUgYWxyZWFkeQotCQkJCSAqIGVtaXR0ZWQgYW4gRlBJIG9y IHdpbGwgZG8gc28gYW55d2F5PwotCQkJCSAqLwotCQkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHJl bGF0aW9uKSkKLQkJCQl7Ci0JCQkJCWlmIChkaWRfdHVwbGVfaGludF9mcGkpCi0JCQkJCQlkb19m cmVlemUgPSB0cnVlOwotCQkJCQllbHNlIGlmIChkb19wcnVuZSkKLQkJCQkJewotCQkJCQkJaWYg KFhMb2dDaGVja0J1ZmZlck5lZWRzQmFja3VwKGJ1ZmZlcikpCi0JCQkJCQkJZG9fZnJlZXplID0g dHJ1ZTsKLQkJCQkJfQotCQkJCQllbHNlIGlmIChkb19oaW50X2Z1bGxfb3JfcHJ1bmFibGUpCi0J CQkJCXsKLQkJCQkJCWlmIChYTG9nSGludEJpdElzTmVlZGVkKCkgJiYgWExvZ0NoZWNrQnVmZmVy TmVlZHNCYWNrdXAoYnVmZmVyKSkKLQkJCQkJCQlkb19mcmVlemUgPSB0cnVlOwotCQkJCQl9Ci0J CQkJfQotCQkJfQotCQl9Ci0JfQotCi0JaWYgKGRvX2ZyZWV6ZSkKLQl7Ci0JCS8qCi0JCSAqIFZh bGlkYXRlIHRoZSB0dXBsZXMgd2Ugd2lsbCBiZSBmcmVlemluZyBiZWZvcmUgZW50ZXJpbmcgdGhl Ci0JCSAqIGNyaXRpY2FsIHNlY3Rpb24uCi0JCSAqLwotCQloZWFwX3ByZV9mcmVlemVfY2hlY2tz KGJ1ZmZlciwgcHJzdGF0ZS5mcm96ZW4sIHByc3RhdGUubmZyb3plbik7Ci0JfQotCWVsc2UgaWYg KHByc3RhdGUubmZyb3plbiA+IDApCi0JewotCQkvKgotCQkgKiBUaGUgcGFnZSBjb250YWluZWQg c29tZSB0dXBsZXMgdGhhdCB3ZXJlIG5vdCBhbHJlYWR5IGZyb3plbiwgYW5kIHdlCi0JCSAqIGNo b3NlIG5vdCB0byBmcmVlemUgdGhlbSBub3cuICBUaGUgcGFnZSB3b24ndCBiZSBhbGwtZnJvemVu IHRoZW4uCi0JCSAqLwotCQlBc3NlcnQoIXByc3RhdGUucGFnZWZyei5mcmVlemVfcmVxdWlyZWQp OwotCi0JCXByc3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNlOwotCQlwcnN0YXRlLm5mcm96ZW4gPSAw OwkvKiBhdm9pZCBtaXNjb3VudHMgaW4gaW5zdHJ1bWVudGF0aW9uICovCi0JfQotCWVsc2UKLQl7 Ci0JCS8qCi0JCSAqIFdlIGhhdmUgbm8gZnJlZXplIHBsYW5zIHRvIGV4ZWN1dGUuICBUaGUgcGFn ZSBtaWdodCBhbHJlYWR5IGJlCi0JCSAqIGFsbC1mcm96ZW4gKHBlcmhhcHMgb25seSBmb2xsb3dp bmcgcHJ1bmluZyksIHRob3VnaC4gIFN1Y2ggcGFnZXMKLQkJICogY2FuIGJlIG1hcmtlZCBhbGwt ZnJvemVuIGluIHRoZSBWTSBieSBvdXIgY2FsbGVyLCBldmVuIHRob3VnaCBub25lCi0JCSAqIG9m IGl0cyB0dXBsZXMgd2VyZSBuZXdseSBmcm96ZW4gaGVyZS4KLQkJICovCi0JfQotCi0JLyoKLQkg KiBJdCB3YXMgY29udmVuaWVudCB0byBpZ25vcmUgTFBfREVBRCBpdGVtcyBpbiBhbGxfdmlzaWJs ZSBlYXJsaWVyIG9uIHRvCi0JICogbWFrZSB0aGUgY2hvaWNlIG9mIHdoZXRoZXIgb3Igbm90IHRv IGZyZWV6ZSB0aGUgcGFnZSB1bmFmZmVjdGVkIGJ5IHRoZQotCSAqIHNob3J0LXRlcm0gcHJlc2Vu Y2Ugb2YgTFBfREVBRCBpdGVtcy4gIFRoZXNlIExQX0RFQUQgaXRlbXMgd2VyZQotCSAqIGVmZmVj dGl2ZWx5IGFzc3VtZWQgdG8gYmUgTFBfVU5VU0VEIGl0ZW1zIGluIHRoZSBtYWtpbmcuICBJdCBk b2Vzbid0Ci0JICogbWF0dGVyIHdoaWNoIHZhY3V1bSBoZWFwIHBhc3MgKGluaXRpYWwgcGFzcyBv ciBmaW5hbCBwYXNzKSBlbmRzIHVwCi0JICogc2V0dGluZyB0aGUgcGFnZSBhbGwtZnJvemVuLCBh cyBsb25nIGFzIHRoZSBvbmdvaW5nIFZBQ1VVTSBkb2VzIGl0LgotCSAqCi0JICogTm93IHRoYXQg ZnJlZXppbmcgaGFzIGJlZW4gZmluYWxpemVkLCB1bnNldCBhbGxfdmlzaWJsZSBpZiB0aGVyZSBh cmUKLQkgKiBhbnkgTFBfREVBRCBpdGVtcyBvbiB0aGUgcGFnZS4gSXQgbmVlZHMgdG8gcmVmbGVj dCB0aGUgcHJlc2VudCBzdGF0ZSBvZgotCSAqIHRoZSBwYWdlIHdoZW4gdXNpbmcgaXQgdG8gZGV0 ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRvIHVwZGF0ZSB0aGUgVk0uCi0JICoKLQkgKiBLZWVwIHRy YWNrIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIHdhcyBhbGwtZnJvemVuIGV4Y2VwdCBMUF9E RUFECi0JICogaXRlbXMgZm9yIHRoZSBwdXJwb3NlcyBvZiBjYWxjdWxhdGluZyB0aGUgc25hcHNo b3QgY29uZmxpY3QgaG9yaXpvbiwKLQkgKiB0aG91Z2guCisJICogV2UgbXVzdCBkZWNpZGUgd2hl dGhlciBvciBub3QgdG8gZnJlZXplIGJlZm9yZSBkZWNpZGluZyBpZiBhbmQgd2hhdCB0bworCSAq IHNldCBpbiB0aGUgVk0uCiAJICovCi0JYWxsX2Zyb3plbl9leGNlcHRfbHBfZGVhZCA9IHByc3Rh dGUuYWxsX2Zyb3plbjsKLQlpZiAocHJzdGF0ZS5scGRlYWRfaXRlbXMgPiAwKQotCXsKLQkJcHJz dGF0ZS5hbGxfdmlzaWJsZSA9IGZhbHNlOwotCQlwcnN0YXRlLmFsbF9mcm96ZW4gPSBmYWxzZTsK LQl9Ci0KLQkvKgotCSAqIElmIHRoaXMgaXMgYW4gb24tYWNjZXNzIGNhbGwgYW5kIHdlJ3JlIG5v dCBhY3R1YWxseSBwcnVuaW5nLCBhdm9pZAotCSAqIHNldHRpbmcgdGhlIHZpc2liaWxpdHkgbWFw IGlmIGl0IHdvdWxkIG5ld2x5IGRpcnR5IHRoZSBoZWFwIHBhZ2Ugb3IsIGlmCi0JICogdGhlIHBh Z2UgaXMgYWxyZWFkeSBkaXJ0eSwgaWYgZG9pbmcgc28gd291bGQgcmVxdWlyZSBpbmNsdWRpbmcg YQotCSAqIGZ1bGwtcGFnZSBpbWFnZSAoRlBJKSBvZiB0aGUgaGVhcCBwYWdlIGluIHRoZSBXQUwu IFRoaXMgc2l0dWF0aW9uCi0JICogc2hvdWxkIGJlIHJhcmUsIGFzIG9uLWFjY2VzcyBwcnVuaW5n IGlzIG9ubHkgYXR0ZW1wdGVkIHdoZW4KLQkgKiBwZF9wcnVuZV94aWQgaXMgdmFsaWQuCi0JICov Ci0JaWYgKHJlYXNvbiA9PSBQUlVORV9PTl9BQ0NFU1MgJiYKLQkJcHJzdGF0ZS5jb25zaWRlcl91 cGRhdGVfdm0gJiYKLQkJcHJzdGF0ZS5hbGxfdmlzaWJsZSAmJgotCQkhZG9fcHJ1bmUgJiYgIWRv X2ZyZWV6ZSAmJgotCQkoIUJ1ZmZlcklzRGlydHkoYnVmZmVyKSB8fCBYTG9nQ2hlY2tCdWZmZXJO ZWVkc0JhY2t1cChidWZmZXIpKSkKLQl7Ci0JCXByc3RhdGUuY29uc2lkZXJfdXBkYXRlX3ZtID0g ZmFsc2U7Ci0JCXByc3RhdGUuYWxsX3Zpc2libGUgPSBwcnN0YXRlLmFsbF9mcm96ZW4gPSBmYWxz ZTsKLQl9Ci0KLQlBc3NlcnQoIXByc3RhdGUuYWxsX2Zyb3plbiB8fCBwcnN0YXRlLmFsbF92aXNp YmxlKTsKLQotCS8qCi0JICogSGFuZGxlIHNldHRpbmcgdmlzaWJpbGl0eSBtYXAgYml0IGJhc2Vk IG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFZNIChpZgotCSAqIHByb3ZpZGVkLCBlLmcuIGJ5IHZh Y3V1bSBmcm9tIHRoZSBsYXN0IGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpCi0JICogY2FsbCks IGFuZCBmcm9tIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIHZhcmlhYmxlcy4KLQkgKi8KLQlp ZiAocHJzdGF0ZS5jb25zaWRlcl91cGRhdGVfdm0pCi0JewotCQkvKgotCQkgKiBDbGVhciBhbnkg Vk0gY29ycnVwdGlvbi4gVGhpcyBkb2VzIG5vdCBuZWVkIHRvIGJlIGluIGEgY3JpdGljYWwKLQkJ ICogc2VjdGlvbiwgc28gd2UgZG8gaXQgZmlyc3QuIElmIFBEX0FMTF9WSVNJQkxFIGlzIGluY29y cmVjdGx5IHNldCwKLQkJICogd2UgbWF5IG1hcmsgdGhlIGhlYXAgcGFnZSBidWZmZXIgZGlydHkg aGVyZSBhbmQgY291bGQgZW5kIHVwIGRvaW5nCi0JCSAqIHNvIGFnYWluIGxhdGVyLiBUaGlzIGlz IG5vdCBhIGNvcnJlY3RuZXNzIGlzc3VlIGFuZCBpcyBpbiB0aGUgcGF0aAotCQkgKiBvZiBWTSBj b3JydXB0aW9uLCBzbyB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoZSBleHRyYQotCQkg KiBwZXJmb3JtYW5jZSBvdmVyaGVhZC4KLQkJICovCi0JCWlmIChpZGVudGlmeV9hbmRfZml4X3Zt X2NvcnJ1cHRpb24ocmVsYXRpb24sCi0JCQkJCQkJCQkJICAgYmxvY2tubywgYnVmZmVyLCBwYWdl LAotCQkJCQkJCQkJCSAgIGJsa19rbm93bl9hdiwgcHJzdGF0ZS5scGRlYWRfaXRlbXMsIHZtYnVm ZmVyKSkKLQkJewotCQkJLyogSWYgd2UgZml4IGNvcnJ1cHRpb24sIGRvbid0IHVwZGF0ZSB0aGUg Vk0gZnVydGhlciAqLwotCQl9Ci0KLQkJLyogRGV0ZXJtaW5lIGlmIHdlIGFjdHVhbGx5IG5lZWQg dG8gc2V0IHRoZSBWTSBhbmQgd2hpY2ggYml0cyB0byBzZXQuICovCi0JCWVsc2UgaWYgKHByc3Rh dGUuYWxsX3Zpc2libGUgJiYKLQkJCQkgKCFibGtfa25vd25fYXYgfHwKLQkJCQkgIChwcnN0YXRl LmFsbF9mcm96ZW4gJiYgIVZNX0FMTF9GUk9aRU4ocmVsYXRpb24sIGJsb2Nrbm8sICZ2bWJ1ZmZl cikpKSkKLQkJewotCQkJdm1mbGFncyB8PSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwotCQkJ aWYgKHByc3RhdGUuYWxsX2Zyb3plbikKLQkJCQl2bWZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxM X0ZST1pFTjsKLQkJfQotCX0KLQotCWRvX3NldF92bSA9IHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQ X1ZBTElEX0JJVFM7Ci0KLQkvKgotCSAqIERvbid0IHNldCBQRF9BTExfVklTSUJMRSB1bmxlc3Mg d2UgYWxzbyBwbGFuIHRvIHNldCB0aGUgVk0uIFdoaWxlIGl0IGlzCi0JICogY29ycmVjdCBmb3Ig YSBoZWFwIHBhZ2UgdG8gaGF2ZSBQRF9BTExfVklTSUJMRSBldmVuIGlmIHRoZSBWTSBpcyBub3QK LQkgKiBzZXQsIHdlIHN0cm9uZ2x5IHByZWZlciB0byBrZWVwIHRoZW0gaW4gc3luYy4KLQkgKgot CSAqIFByaW9yIHRvIFBvc3RncmVzIDE5LCBpdCB3YXMgcG9zc2libGUgZm9yIHRoZSBwYWdlLWxl dmVsIGJpdCB0byBiZSBzZXQKLQkgKiBhbmQgdGhlIFZNIGJpdCB0byBiZSBjbGVhci4gVGhpcyBj b3VsZCBoYXBwZW4gaWYgd2UgY3Jhc2hlZCBhZnRlcgotCSAqIHNldHRpbmcgUERfQUxMX1ZJU0lC TEUgYnV0IGJlZm9yZSBzZXR0aW5nIGJpdHMgaW4gdGhlIFZNLgotCSAqLwotCXNldF9wZF9hbGxf dmlzaWJsZSA9IGRvX3NldF92bSAmJiAhUGFnZUlzQWxsVmlzaWJsZShwYWdlKTsKKwlkb19mcmVl emUgPSBoZWFwX3BhZ2Vfd2lsbF9mcmVlemUocmVsYXRpb24sIGJ1ZmZlciwKKwkJCQkJCQkJCSAg ZG9fcHJ1bmUsCisJCQkJCQkJCQkgIGRvX2hpbnRfZnVsbF9vcl9wcnVuYWJsZSwKKwkJCQkJCQkJ CSAgZGlkX3R1cGxlX2hpbnRfZnBpLAorCQkJCQkJCQkJICAmcHJzdGF0ZSwKKwkJCQkJCQkJCSAg JmFsbF9mcm96ZW5fZXhjZXB0X2xwX2RlYWQpOworCisJZG9fc2V0X3ZtID0gaGVhcF9wYWdlX3dp bGxfdXBkYXRlX3ZtKHJlbGF0aW9uLAorCQkJCQkJCQkJCSBidWZmZXIsIGJsb2Nrbm8sIHBhZ2Us CisJCQkJCQkJCQkJIHJlYXNvbiwKKwkJCQkJCQkJCQkgZG9fcHJ1bmUsIGRvX2ZyZWV6ZSwKKwkJ CQkJCQkJCQkgYmxrX2tub3duX2F2LAorCQkJCQkJCQkJCSAmcHJzdGF0ZSwKKwkJCQkJCQkJCQkg JnZtYnVmZmVyLAorCQkJCQkJCQkJCSAmdm1mbGFncywgJnNldF9wZF9hbGxfdmlzaWJsZSk7CiAK IAkvKiBTYXZlIHRoZXNlIGZvciB0aGUgY2FsbGVyIGluIGNhc2Ugd2UgbGF0ZXIgemVybyBvdXQg dm1mbGFncyAqLwogCXByZXN1bHQtPm5ld192bWJpdHMgPSB2bWZsYWdzOwogCi0JLyogQW55IGVy cm9yIHdoaWxlIGFwcGx5aW5nIHRoZSBjaGFuZ2VzIGlzIGNyaXRpY2FsICovCisJLyoKKwkgKiBU aW1lIHRvIGFjdHVhbGx5IG1ha2UgdGhlIGNoYW5nZXMgdG8gdGhlIHBhZ2UgYW5kIGxvZyB0aGVt LiBBbnkgZXJyb3IKKwkgKiB3aGlsZSBhcHBseWluZyB0aGUgY2hhbmdlcyBpcyBjcml0aWNhbC4K KwkgKi8KIAlTVEFSVF9DUklUX1NFQ1RJT04oKTsKIAogCWlmIChkb19oaW50X2Z1bGxfb3JfcHJ1 bmFibGUpCi0tIAoyLjQzLjAKCg== --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0019-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v10-0019-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8gw18 RnJvbSA1NjBhY2EzMjlmZmQ3YmZhZmNkYTRmNzNlMzM5YThlZmI3ZGM5YWU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM0OjMwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMTkvMjJdIEFsbG93IG9uLWFjY2VzcyBwcnVuaW5nIHRvIHNldCBwYWdlcyBhbGwt dmlzaWJsZQoKTWFueSBxdWVyaWVzIGRvIG5vdCBtb2RpZnkgdGhlIHVuZGVybHlpbmcgcmVsYXRp b24uIEZvciBzdWNoIHF1ZXJpZXMsIGlmCm9uLWFjY2VzcyBwcnVuaW5nIG9jY3VycyBkdXJpbmcg dGhlIHNjYW4sIHdlIGNhbiBjaGVjayB3aGV0aGVyIHRoZSBwYWdlCmhhcyBiZWNvbWUgYWxsLXZp c2libGUgYW5kIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAgYWNjb3JkaW5nbHkuClByZXZpb3Vz bHksIG9ubHkgdmFjdXVtIG1hcmtlZCBwYWdlcyBhcyBhbGwtdmlzaWJsZSBvciBhbGwtZnJvemVu LgoKU3VwcG9ydGluZyB0aGlzIHJlcXVpcmVzIHBhc3NpbmcgaW5mb3JtYXRpb24gYWJvdXQgd2hl dGhlciB0aGUgcmVsYXRpb24KaXMgbW9kaWZpZWQgZnJvbSB0aGUgZXhlY3V0b3IgZG93biB0byB0 aGUgc2NhbiBkZXNjcmlwdG9yLgoKVGhpcyBjb21taXQgaW1wbGVtZW50cyBvbi1hY2Nlc3MgVk0g c2V0dGluZyBmb3Igc2VxdWVudGlhbCBzY2FucyBhcyB3ZWxsCmFzIGZvciB0aGUgdW5kZXJseWlu ZyBoZWFwIHJlbGF0aW9uIGluIGluZGV4IHNjYW5zIGFuZCBiaXRtYXAgaGVhcApzY2Fucy4KLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAgICAgICAgfCAxNSArKysr LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYyAgICAgIHwgMTUgKysr Ky0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICAgICAgICAgICB8IDY3ICsr KysrKysrKysrKysrLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMgICAg ICAgICAgICB8IDQ2ICsrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJs ZWFtLmMgICAgICAgICAgICB8IDM5ICsrKysrKysrKy0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9l eGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgNCArKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1V0aWxzLmMgICAgICAgICAgICAgIHwgIDIgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJp dG1hcEhlYXBzY2FuLmMgICAgIHwgIDcgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRl eHNjYW4uYyAgICAgICAgICB8IDE4ICsrKy0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vx c2Nhbi5jICAgICAgICAgICAgfCAyNCArKysrKy0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0u aCAgICAgICAgICAgICAgICAgICAgfCAxMSArKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0u aCAgICAgICAgICAgICAgICAgICB8IDI0ICsrKysrKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9yZWxz Y2FuLmggICAgICAgICAgICAgICAgICB8ICA2ICsrCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVh bS5oICAgICAgICAgICAgICAgICAgfCAzMCArKysrKysrKy0KIHNyYy9pbmNsdWRlL25vZGVzL2V4 ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICA2ICsrCiAuLi4vdC8wMzVfc3RhbmRieV9sb2dp Y2FsX2RlY29kaW5nLnBsICAgICAgICAgfCAgNCArLQogMTYgZmlsZXMgY2hhbmdlZCwgMjc4IGlu c2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5k ZXggY2IxNmJiMGNiYmQuLmQwNzY5M2I3MDc1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpA QCAtNTU2LDYgKzU1Niw3IEBAIGhlYXBfcHJlcGFyZV9wYWdlc2NhbihUYWJsZVNjYW5EZXNjIHNz Y2FuKQogCUJ1ZmZlcgkJYnVmZmVyID0gc2Nhbi0+cnNfY2J1ZjsKIAlCbG9ja051bWJlciBibG9j ayA9IHNjYW4tPnJzX2NibG9jazsKIAlTbmFwc2hvdAlzbmFwc2hvdDsKKwlCdWZmZXIJICAgKnZt YnVmZmVyID0gTlVMTDsKIAlQYWdlCQlwYWdlOwogCWludAkJCWxpbmVzOwogCWJvb2wJCWFsbF92 aXNpYmxlOwpAQCAtNTcwLDcgKzU3MSw5IEBAIGhlYXBfcHJlcGFyZV9wYWdlc2NhbihUYWJsZVNj YW5EZXNjIHNzY2FuKQogCS8qCiAJICogUHJ1bmUgYW5kIHJlcGFpciBmcmFnbWVudGF0aW9uIGZv ciB0aGUgd2hvbGUgcGFnZSwgaWYgcG9zc2libGUuCiAJICovCi0JaGVhcF9wYWdlX3BydW5lX29w dChzY2FuLT5yc19iYXNlLnJzX3JkLCBidWZmZXIpOworCWlmIChzc2Nhbi0+cnNfZmxhZ3MgJiBT T19BTExPV19WTV9TRVQpCisJCXZtYnVmZmVyID0gJnNjYW4tPnJzX3ZtYnVmZmVyOworCWhlYXBf cGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfYmFzZS5yc19yZCwgYnVmZmVyLCB2bWJ1ZmZlcik7CiAK IAkvKgogCSAqIFdlIG11c3QgaG9sZCBzaGFyZSBsb2NrIG9uIHRoZSBidWZmZXIgY29udGVudCB3 aGlsZSBleGFtaW5pbmcgdHVwbGUKQEAgLTEyNDcsNiArMTI1MCw3IEBAIGhlYXBfYmVnaW5zY2Fu KFJlbGF0aW9uIHJlbGF0aW9uLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCQkJCQkJCQkJICBz aXplb2YoVEJNSXRlcmF0ZVJlc3VsdCkpOwogCX0KIAorCXNjYW4tPnJzX3ZtYnVmZmVyID0gSW52 YWxpZEJ1ZmZlcjsKIAogCXJldHVybiAoVGFibGVTY2FuRGVzYykgc2NhbjsKIH0KQEAgLTEyODUs NiArMTI4OSwxMiBAQCBoZWFwX3Jlc2NhbihUYWJsZVNjYW5EZXNjIHNzY2FuLCBTY2FuS2V5IGtl eSwgYm9vbCBzZXRfcGFyYW1zLAogCQlzY2FuLT5yc19jYnVmID0gSW52YWxpZEJ1ZmZlcjsKIAl9 CiAKKwlpZiAoQnVmZmVySXNWYWxpZChzY2FuLT5yc192bWJ1ZmZlcikpCisJeworCQlSZWxlYXNl QnVmZmVyKHNjYW4tPnJzX3ZtYnVmZmVyKTsKKwkJc2Nhbi0+cnNfdm1idWZmZXIgPSBJbnZhbGlk QnVmZmVyOworCX0KKwogCS8qCiAJICogU09fVFlQRV9CSVRNQVBTQ0FOIHdvdWxkIGJlIGNsZWFu ZWQgdXAgaGVyZSwgYnV0IGl0IGRvZXMgbm90IGhvbGQgYW55CiAJICogYWRkaXRpb25hbCBkYXRh IHZzIGEgbm9ybWFsIEhlYXBTY2FuCkBAIC0xMzE3LDYgKzEzMjcsOSBAQCBoZWFwX2VuZHNjYW4o VGFibGVTY2FuRGVzYyBzc2NhbikKIAlpZiAoQnVmZmVySXNWYWxpZChzY2FuLT5yc19jYnVmKSkK IAkJUmVsZWFzZUJ1ZmZlcihzY2FuLT5yc19jYnVmKTsKIAorCWlmIChCdWZmZXJJc1ZhbGlkKHNj YW4tPnJzX3ZtYnVmZmVyKSkKKwkJUmVsZWFzZUJ1ZmZlcihzY2FuLT5yc192bWJ1ZmZlcik7CisK IAkvKgogCSAqIE11c3QgZnJlZSB0aGUgcmVhZCBzdHJlYW0gYmVmb3JlIGZyZWVpbmcgdGhlIEJ1 ZmZlckFjY2Vzc1N0cmF0ZWd5LgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtX2hhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9o YW5kbGVyLmMKaW5kZXggYmNiYWM4NDRiYjYuLmYwNWI5ZTQ5NjhkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKQEAgLTg1LDYgKzg1LDcgQEAgaGVhcGFtX2luZGV4 X2ZldGNoX2JlZ2luKFJlbGF0aW9uIHJlbCkKIAogCWhzY2FuLT54c19iYXNlLnJlbCA9IHJlbDsK IAloc2Nhbi0+eHNfY2J1ZiA9IEludmFsaWRCdWZmZXI7CisJaHNjYW4tPnhzX3ZtYnVmZmVyID0g SW52YWxpZEJ1ZmZlcjsKIAogCXJldHVybiAmaHNjYW4tPnhzX2Jhc2U7CiB9CkBAIC05OSw2ICsx MDAsMTIgQEAgaGVhcGFtX2luZGV4X2ZldGNoX3Jlc2V0KEluZGV4RmV0Y2hUYWJsZURhdGEgKnNj YW4pCiAJCVJlbGVhc2VCdWZmZXIoaHNjYW4tPnhzX2NidWYpOwogCQloc2Nhbi0+eHNfY2J1ZiA9 IEludmFsaWRCdWZmZXI7CiAJfQorCisJaWYgKEJ1ZmZlcklzVmFsaWQoaHNjYW4tPnhzX3ZtYnVm ZmVyKSkKKwl7CisJCVJlbGVhc2VCdWZmZXIoaHNjYW4tPnhzX3ZtYnVmZmVyKTsKKwkJaHNjYW4t PnhzX3ZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0x MzgsNyArMTQ1LDggQEAgaGVhcGFtX2luZGV4X2ZldGNoX3R1cGxlKHN0cnVjdCBJbmRleEZldGNo VGFibGVEYXRhICpzY2FuLAogCQkgKiBQcnVuZSBwYWdlLCBidXQgb25seSBpZiB3ZSB3ZXJlbid0 IGFscmVhZHkgb24gdGhpcyBwYWdlCiAJCSAqLwogCQlpZiAocHJldl9idWYgIT0gaHNjYW4tPnhz X2NidWYpCi0JCQloZWFwX3BhZ2VfcHJ1bmVfb3B0KGhzY2FuLT54c19iYXNlLnJlbCwgaHNjYW4t PnhzX2NidWYpOworCQkJaGVhcF9wYWdlX3BydW5lX29wdChoc2Nhbi0+eHNfYmFzZS5yZWwsIGhz Y2FuLT54c19jYnVmLAorCQkJCQkJCQlzY2FuLT5tb2RpZmllc19iYXNlX3JlbCA/IE5VTEwgOiAm aHNjYW4tPnhzX3ZtYnVmZmVyKTsKIAl9CiAKIAkvKiBPYnRhaW4gc2hhcmUtbG9jayBvbiB0aGUg YnVmZmVyIHNvIHdlIGNhbiBleGFtaW5lIHZpc2liaWxpdHkgKi8KQEAgLTI0NzEsNiArMjQ3OSw3 IEBAIEJpdG1hcEhlYXBTY2FuTmV4dEJsb2NrKFRhYmxlU2NhbkRlc2Mgc2NhbiwKIAlUQk1JdGVy YXRlUmVzdWx0ICp0Ym1yZXM7CiAJT2Zmc2V0TnVtYmVyIG9mZnNldHNbVEJNX01BWF9UVVBMRVNf UEVSX1BBR0VdOwogCWludAkJCW5vZmZzZXRzID0gLTE7CisJQnVmZmVyCSAgICp2bWJ1ZmZlciA9 IE5VTEw7CiAKIAlBc3NlcnQoc2Nhbi0+cnNfZmxhZ3MgJiBTT19UWVBFX0JJVE1BUFNDQU4pOwog CUFzc2VydChoc2Nhbi0+cnNfcmVhZF9zdHJlYW0pOwpAQCAtMjUxNyw3ICsyNTI2LDkgQEAgQml0 bWFwSGVhcFNjYW5OZXh0QmxvY2soVGFibGVTY2FuRGVzYyBzY2FuLAogCS8qCiAJICogUHJ1bmUg YW5kIHJlcGFpciBmcmFnbWVudGF0aW9uIGZvciB0aGUgd2hvbGUgcGFnZSwgaWYgcG9zc2libGUu CiAJICovCi0JaGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19yZCwgYnVmZmVyKTsKKwlpZiAo c2Nhbi0+cnNfZmxhZ3MgJiBTT19BTExPV19WTV9TRVQpCisJCXZtYnVmZmVyID0gJmhzY2FuLT5y c192bWJ1ZmZlcjsKKwloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX3JkLCBidWZmZXIsIHZt YnVmZmVyKTsKIAogCS8qCiAJICogV2UgbXVzdCBob2xkIHNoYXJlIGxvY2sgb24gdGhlIGJ1ZmZl ciBjb250ZW50IHdoaWxlIGV4YW1pbmluZyB0dXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYwppbmRleCBlNmNmNGRmMTdjNS4uMGZlZGNhZDI0YzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jCkBAIC0xOTgsOSArMTk4LDEzIEBAIHN0YXRpYyBib29sIGlkZW50aWZ5X2Fu ZF9maXhfdm1fY29ycnVwdGlvbihSZWxhdGlvbiByZWxhdGlvbiwKICAqIGlmIHRoZXJlJ3Mgbm90 IGFueSB1c2UgaW4gcHJ1bmluZy4KICAqCiAgKiBDYWxsZXIgbXVzdCBoYXZlIHBpbiBvbiB0aGUg YnVmZmVyLCBhbmQgbXVzdCAqbm90KiBoYXZlIGEgbG9jayBvbiBpdC4KKyAqCisgKiBJZiB2bWJ1 ZmZlciBpcyBub3QgTlVMTCwgaXQgaXMgb2theSBmb3IgcHJ1bmluZyB0byBzZXQgdGhlIHZpc2li aWxpdHkgbWFwIGlmCisgKiB0aGUgcGFnZSBpcyBhbGwgdmlzaWJsZS4gV2Ugd2lsbCB0YWtlIGNh cmUgb2YgcGlubmluZyBhbmQsIGlmIG5lZWRlZCwKKyAqIHJlYWRpbmcgaW4gdGhlIHBhZ2Ugb2Yg dGhlIHZpc2liaWxpdHkgbWFwLgogICovCiB2b2lkCi1oZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0 aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyKQoraGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlv biByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKIHsKIAlQYWdlCQlw YWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOwogCVRyYW5zYWN0aW9uSWQgcHJ1bmVfeGlkOwpA QCAtMjY0LDYgKzI2OCwxMyBAQCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9u LCBCdWZmZXIgYnVmZmVyKQogCQl7CiAJCQlPZmZzZXROdW1iZXIgZHVtbXlfb2ZmX2xvYzsKIAkJ CVBydW5lRnJlZXplUmVzdWx0IHByZXN1bHQ7CisJCQlpbnQJCQlvcHRpb25zID0gMDsKKworCQkJ aWYgKHZtYnVmZmVyKQorCQkJeworCQkJCXZpc2liaWxpdHltYXBfcGluKHJlbGF0aW9uLCBCdWZm ZXJHZXRCbG9ja051bWJlcihidWZmZXIpLCB2bWJ1ZmZlcik7CisJCQkJb3B0aW9ucyA9IEhFQVBf UEFHRV9QUlVORV9VUERBVEVfVk07CisJCQl9CiAKIAkJCS8qCiAJCQkgKiBGb3Igbm93LCBwYXNz IG1hcmtfdW51c2VkX25vdyBhcyBmYWxzZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3IKQEAgLTI3 MSw5ICsyODIsMTAgQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVm ZmVyIGJ1ZmZlcikKIAkJCSAqIHRoYXQgZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nIHdpdGggdGhl IGN1cnJlbnQgaW1wbGVtZW50YXRpb24uCiAJCQkgKi8KIAkJCWhlYXBfcGFnZV9wcnVuZV9hbmRf ZnJlZXplKHJlbGF0aW9uLCBidWZmZXIsIGZhbHNlLAotCQkJCQkJCQkJICAgSW52YWxpZEJ1ZmZl ciwKLQkJCQkJCQkJCSAgIHZpc3Rlc3QsIDAsCi0JCQkJCQkJCQkgICBOVUxMLCAmcHJlc3VsdCwg UFJVTkVfT05fQUNDRVNTLCAmZHVtbXlfb2ZmX2xvYywgTlVMTCwgTlVMTCk7CisJCQkJCQkJCQkg ICB2bWJ1ZmZlciA/ICp2bWJ1ZmZlciA6IEludmFsaWRCdWZmZXIsCisJCQkJCQkJCQkgICB2aXN0 ZXN0LCBvcHRpb25zLAorCQkJCQkJCQkJICAgTlVMTCwgJnByZXN1bHQsIFBSVU5FX09OX0FDQ0VT UywKKwkJCQkJCQkJCSAgICZkdW1teV9vZmZfbG9jLCBOVUxMLCBOVUxMKTsKIAogCQkJLyoKIAkJ CSAqIFJlcG9ydCB0aGUgbnVtYmVyIG9mIHR1cGxlcyByZWNsYWltZWQgdG8gcGdzdGF0cy4gIFRo aXMgaXMKQEAgLTUxNywxMiArNTI5LDE3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJl bGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIGFsbC1mcm96ZW4gZm9yIHVzZSBp biBvcHBvcnR1bmlzdGljIGZyZWV6aW5nIGFuZCB0byB1cGRhdGUgdGhlIFZNIGlmCiAJICogdGhl IGNhbGxlciByZXF1ZXN0cyBpdC4KIAkgKgotCSAqIEN1cnJlbnRseSwgb25seSBWQUNVVU0gYXR0 ZW1wdHMgZnJlZXppbmcgYW5kIHNldHRpbmcgdGhlIFZNIGJpdHMuIEJ1dAotCSAqIG90aGVyIGNh bGxlcnMgY291bGQgZG8gZWl0aGVyIG9uZS4gVGhlIHZpc2liaWxpdHkgYm9va2tlZXBpbmcgaXMK LQkgKiByZXF1aXJlZCBmb3Igb3Bwb3J0dW5pc3RpYyBmcmVlemluZyAoaW4gYWRkaXRpb24gdG8g c2V0dGluZyB0aGUgVk0KLQkgKiBiaXRzKSBiZWNhdXNlIHdlIG9ubHkgY29uc2lkZXIgb3Bwb3J0 dW5pc3RpY2FsbHkgZnJlZXppbmcgdHVwbGVzIGlmIHRoZQotCSAqIHdob2xlIHBhZ2Ugd291bGQg YmVjb21lIGFsbC1mcm96ZW4gb3IgaWYgdGhlIHdob2xlIHBhZ2Ugd2lsbCBiZSBmcm96ZW4KLQkg KiBleGNlcHQgZm9yIGRlYWQgdHVwbGVzIHRoYXQgd2lsbCBiZSByZW1vdmVkIGJ5IHZhY3V1bS4K KwkgKiBDdXJyZW50bHksIG9ubHkgVkFDVVVNIGF0dGVtcHRzIGZyZWV6aW5nLiBCdXQgb3RoZXIg Y2FsbGVycyBjb3VsZC4gVGhlCisJICogdmlzaWJpbGl0eSBib29ra2VlcGluZyBpcyByZXF1aXJl ZCBmb3Igb3Bwb3J0dW5pc3RpYyBmcmVlemluZyAoaW4KKwkgKiBhZGRpdGlvbiB0byBzZXR0aW5n IHRoZSBWTSBiaXRzKSBiZWNhdXNlIHdlIG9ubHkgY29uc2lkZXIKKwkgKiBvcHBvcnR1bmlzdGlj YWxseSBmcmVlemluZyB0dXBsZXMgaWYgdGhlIHdob2xlIHBhZ2Ugd291bGQgYmVjb21lCisJICog YWxsLWZyb3plbiBvciBpZiB0aGUgd2hvbGUgcGFnZSB3aWxsIGJlIGZyb3plbiBleGNlcHQgZm9y IGRlYWQgdHVwbGVzCisJICogdGhhdCB3aWxsIGJlIHJlbW92ZWQgYnkgdmFjdXVtLiBCdXQgaWYg Y29uc2lkZXJfdXBkYXRlX3ZtIGlzIGZhbHNlLAorCSAqIHdlJ2xsIG5vdCBzZXQgdGhlIFZNIGV2 ZW4gaWYgdGhlIHBhZ2UgaXMgZGlzY292ZXJlZCB0byBiZSBhbGwtdmlzaWJsZS4KKwkgKgorCSAq IElmIG9ubHkgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTSBpcyBwYXNzZWQgYW5kIG5vdAorCSAq IEhFQVBfUEFHRV9QUlVORV9GUkVFWkUsIHByc3RhdGUuYWxsX2Zyb3plbiBtdXN0IGJlIGluaXRp YWxpemVkIHRvIGZhbHNlCisJICogYmVjYXVzZSB3ZSB3aWxsIG5vdCBjYWxsIGhlYXBfcHJlcGFy ZV9mcmVlemVfdHVwbGUoKSBvbiBlYWNoIHR1cGxlLgogCSAqCiAJICogSWYgb25seSB1cGRhdGlu ZyB0aGUgVk0sIHdlIG11c3QgaW5pdGlhbGl6ZSBhbGxfZnJvemVuIHRvIGZhbHNlLCBhcwogCSAq IGhlYXBfcHJlcGFyZV9mcmVlemVfdHVwbGUoKSB3aWxsIG5vdCBiZSBjYWxsZWQgZm9yIGVhY2gg dHVwbGUgb24gdGhlCkBAIC01MzQsNyArNTUxLDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJICogd2hldGhlciBvciBub3Qg dG8gZnJlZXplIGJ1dCBiZWZvcmUgZGVjaWRpbmcgd2hldGhlciBvciBub3QgdG8gdXBkYXRlCiAJ ICogdGhlIFZNIHNvIHRoYXQgd2UgZG9uJ3Qgc2V0IHRoZSBWTSBiaXQgaW5jb3JyZWN0bHkuCiAJ ICoKLQkgKiBJZiBub3QgZnJlZXppbmcgb3IgdXBkYXRpbmcgdGhlIFZNLCB3ZSBvdGhlcndpc2Ug YXZvaWQgdGhlIGV4dHJhCisJICogSWYgbm90IGZyZWV6aW5nIGFuZCBub3QgdXBkYXRpbmcgdGhl IFZNLCB3ZSBhdm9pZCB0aGUgZXh0cmEKIAkgKiBib29ra2VlcGluZy4gSW5pdGlhbGl6aW5nIGFs bF92aXNpYmxlIHRvIGZhbHNlIGFsbG93cyBza2lwcGluZyB0aGUgd29yawogCSAqIHRvIHVwZGF0 ZSB0aGVtIGluIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoKS4KIAkgKi8K QEAgLTg4MywxMiArOTAwLDMwIEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9u IHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQlwcnN0YXRlLmFsbF9mcm96ZW4gPSBmYWxzZTsK IAl9CiAKKwkvKgorCSAqIElmIHRoaXMgaXMgYW4gb24tYWNjZXNzIGNhbGwgYW5kIHdlJ3JlIG5v dCBhY3R1YWxseSBwcnVuaW5nLCBhdm9pZAorCSAqIHNldHRpbmcgdGhlIHZpc2liaWxpdHkgbWFw IGlmIGl0IHdvdWxkIG5ld2x5IGRpcnR5IHRoZSBoZWFwIHBhZ2Ugb3IsIGlmCisJICogdGhlIHBh Z2UgaXMgYWxyZWFkeSBkaXJ0eSwgaWYgZG9pbmcgc28gd291bGQgcmVxdWlyZSBpbmNsdWRpbmcg YQorCSAqIGZ1bGwtcGFnZSBpbWFnZSAoRlBJKSBvZiB0aGUgaGVhcCBwYWdlIGluIHRoZSBXQUwu IFRoaXMgc2l0dWF0aW9uCisJICogc2hvdWxkIGJlIHJhcmUsIGFzIG9uLWFjY2VzcyBwcnVuaW5n IGlzIG9ubHkgYXR0ZW1wdGVkIHdoZW4KKwkgKiBwZF9wcnVuZV94aWQgaXMgdmFsaWQuCisJICov CisJaWYgKHJlYXNvbiA9PSBQUlVORV9PTl9BQ0NFU1MgJiYKKwkJcHJzdGF0ZS5jb25zaWRlcl91 cGRhdGVfdm0gJiYKKwkJcHJzdGF0ZS5hbGxfdmlzaWJsZSAmJgorCQkhZG9fcHJ1bmUgJiYgIWRv X2ZyZWV6ZSAmJgorCQkoIUJ1ZmZlcklzRGlydHkoYnVmZmVyKSB8fCBYTG9nQ2hlY2tCdWZmZXJO ZWVkc0JhY2t1cChidWZmZXIpKSkKKwl7CisJCXByc3RhdGUuY29uc2lkZXJfdXBkYXRlX3ZtID0g ZmFsc2U7CisJCXByc3RhdGUuYWxsX3Zpc2libGUgPSBwcnN0YXRlLmFsbF9mcm96ZW4gPSBmYWxz ZTsKKwl9CisKIAlBc3NlcnQoIXByc3RhdGUuYWxsX2Zyb3plbiB8fCBwcnN0YXRlLmFsbF92aXNp YmxlKTsKIAogCS8qCi0JICogSGFuZGxlIHNldHRpbmcgdmlzaWJpbGl0eSBtYXAgYml0IGJhc2Vk IG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFZNIChhcwotCSAqIG9mIGxhc3QgaGVhcF92YWNfc2Nh bl9uZXh0X2Jsb2NrKCkgY2FsbCksIGFuZCBmcm9tIGFsbF92aXNpYmxlIGFuZAotCSAqIGFsbF9m cm96ZW4gdmFyaWFibGVzLgorCSAqIEhhbmRsZSBzZXR0aW5nIHZpc2liaWxpdHkgbWFwIGJpdCBi YXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSAoaWYKKwkgKiBwcm92aWRlZCwgZS5nLiBi eSB2YWN1dW0gZnJvbSB0aGUgbGFzdCBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKQorCSAqIGNh bGwpLCBhbmQgZnJvbSBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiB2YXJpYWJsZXMuCiAJICov CiAJaWYgKHByc3RhdGUuY29uc2lkZXJfdXBkYXRlX3ZtKQogCXsKQEAgLTIyNzksOCArMjMxNCw4 IEBAIGhlYXBfbG9nX2ZyZWV6ZV9wbGFuKEhlYXBUdXBsZUZyZWV6ZSAqdHVwbGVzLCBpbnQgbnR1 cGxlcywKICAqIC0gUmVhcGluZzogRHVyaW5nIHZhY3V1bSBwaGFzZSBJSUksIGl0ZW1zIHRoYXQg YXJlIGFscmVhZHkgTFBfREVBRCBhcmUKICAqICAgbWFya2VkIGFzIHVudXNlZC4KICAqCi0gKiAt IFZNIHVwZGF0ZXM6IEFmdGVyIHZhY3V1bSBwaGFzZXMgSSBhbmQgSUlJLCB0aGUgaGVhcCBwYWdl IG1heSBiZSBtYXJrZWQKLSAqICAgYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4uCisgKiAtIFZN IHVwZGF0ZXM6IEFmdGVyIHZhY3V1bSBwaGFzZXMgSSBhbmQgSUlJIGFuZCBvbi1hY2Nlc3MsIHRo ZSBoZWFwIHBhZ2UKKyAqICAgbWF5IGJlIG1hcmtlZCBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3pl bi4KICAqCiAgKiBUaGVzZSBjaGFuZ2VzIGFsbCBoYXBwZW4gdG9nZXRoZXIsIHNvIHdlIHVzZSBh IHNpbmdlbCBXQUwgcmVjb3JkIGZvciB0aGVtCiAgKiBhbGwuCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2lu ZGV4YW0uYwppbmRleCA4NmQxMWY0ZWM3OS4uNDYwM2VjZTA5YmQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2lu ZGV4L2luZGV4YW0uYwpAQCAtMjg5LDYgKzI4OSwzMiBAQCBpbmRleF9iZWdpbnNjYW4oUmVsYXRp b24gaGVhcFJlbGF0aW9uLAogCXJldHVybiBzY2FuOwogfQogCisvKgorICogU2ltaWxhciB0byBp bmRleF9iZWdpbnNjYW4oKSwgYnV0IGFsbG93cyB0aGUgY2FsbGVyIHRvIGluZGljYXRlIHdoZXRo ZXIgdGhlCisgKiBxdWVyeSBtb2RpZmllcyB0aGUgdW5kZXJseWluZyBiYXNlIHJlbGF0aW9uLiBU aGlzIGlzIHVzZWQgd2hlbiB0aGUgY2FsbGVyCisgKiB3YW50cyB0byBhdHRlbXB0IG1hcmtpbmcg cGFnZXMgaW4gdGhlIGJhc2UgcmVsYXRpb24gYXMgYWxsLXZpc2libGUgaW4gdGhlCisgKiB2aXNp YmlsaXR5IG1hcCBkdXJpbmcgb24tYWNjZXNzIHBydW5pbmcuCisgKi8KK0luZGV4U2NhbkRlc2MK K2luZGV4X2JlZ2luc2Nhbl92bXNldChSZWxhdGlvbiBoZWFwUmVsYXRpb24sCisJCQkJCSAgUmVs YXRpb24gaW5kZXhSZWxhdGlvbiwKKwkJCQkJICBTbmFwc2hvdCBzbmFwc2hvdCwKKwkJCQkJICBJ bmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCisJCQkJCSAgaW50IG5rZXlzLCBp bnQgbm9yZGVyYnlzLCBib29sIG1vZGlmaWVzX2Jhc2VfcmVsKQoreworCUluZGV4U2NhbkRlc2Mg c2NhbjsKKworCXNjYW4gPSBpbmRleF9iZWdpbnNjYW4oaGVhcFJlbGF0aW9uLAorCQkJCQkJICAg aW5kZXhSZWxhdGlvbiwKKwkJCQkJCSAgIHNuYXBzaG90LAorCQkJCQkJICAgaW5zdHJ1bWVudCwK KwkJCQkJCSAgIG5rZXlzLCBub3JkZXJieXMpOworCisJc2Nhbi0+eHNfaGVhcGZldGNoLT5tb2Rp Zmllc19iYXNlX3JlbCA9IG1vZGlmaWVzX2Jhc2VfcmVsOworCisJcmV0dXJuIHNjYW47Cit9CisK IC8qCiAgKiBpbmRleF9iZWdpbnNjYW5fYml0bWFwIC0gc3RhcnQgYSBzY2FuIG9mIGFuIGluZGV4 IHdpdGggYW1nZXRiaXRtYXAKICAqCkBAIC02MjAsNiArNjQ2LDI2IEBAIGluZGV4X2JlZ2luc2Nh bl9wYXJhbGxlbChSZWxhdGlvbiBoZWFwcmVsLCBSZWxhdGlvbiBpbmRleHJlbCwKIAlyZXR1cm4g c2NhbjsKIH0KIAorLyoKKyAqIFBhcmFsbGVsIHZlcnNpb24gb2YgaW5kZXhfYmVnaW5zY2FuX3Zt c2V0KCkKKyAqLworSW5kZXhTY2FuRGVzYworaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsX3Ztc2V0 KFJlbGF0aW9uIGhlYXByZWwsIFJlbGF0aW9uIGluZGV4cmVsLAorCQkJCQkJCSAgIEluZGV4U2Nh bkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKKwkJCQkJCQkgICBpbnQgbmtleXMsIGludCBu b3JkZXJieXMsCisJCQkJCQkJICAgUGFyYWxsZWxJbmRleFNjYW5EZXNjIHBzY2FuLAorCQkJCQkJ CSAgIGJvb2wgbW9kaWZpZXNfYmFzZV9yZWwpCit7CisJSW5kZXhTY2FuRGVzYyBzY2FuOworCisJ c2NhbiA9IGluZGV4X2JlZ2luc2Nhbl9wYXJhbGxlbChoZWFwcmVsLCBpbmRleHJlbCwKKwkJCQkJ CQkJCWluc3RydW1lbnQsCisJCQkJCQkJCQlua2V5cywgbm9yZGVyYnlzLAorCQkJCQkJCQkJcHNj YW4pOworCXNjYW4tPnhzX2hlYXBmZXRjaC0+bW9kaWZpZXNfYmFzZV9yZWwgPSBtb2RpZmllc19i YXNlX3JlbDsKKwlyZXR1cm4gc2NhbjsKK30KKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICogaW5k ZXhfZ2V0bmV4dF90aWQgLSBnZXQgdGhlIG5leHQgVElEIGZyb20gYSBzY2FuCiAgKgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxlYW0uYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90YWJsZS90YWJsZWFtLmMKaW5kZXggYTU2YzVlY2ViMTQuLjY3ZGJmOTlmNWI1IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKQEAgLTQ5LDYgKzQ5LDEwIEBACiBjaGFyCSAgICpk ZWZhdWx0X3RhYmxlX2FjY2Vzc19tZXRob2QgPSBERUZBVUxUX1RBQkxFX0FDQ0VTU19NRVRIT0Q7 CiBib29sCQlzeW5jaHJvbml6ZV9zZXFzY2FucyA9IHRydWU7CiAKKy8qIEhlbHBlciBmb3IgdGFi bGVfYmVnaW5zY2FuX3BhcmFsbGVsKCkgYW5kIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF92bXNl dCgpICovCitzdGF0aWMgVGFibGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfY29t bW9uKFJlbGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sCisJCQkJ CQkJCQkJCQkJIHVpbnQzMiBmbGFncyk7CisKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICog U2xvdCBmdW5jdGlvbnMuCkBAIC0xNjIsMTIgKzE2NiwxNCBAQCB0YWJsZV9wYXJhbGxlbHNjYW5f aW5pdGlhbGl6ZShSZWxhdGlvbiByZWwsIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKIAl9 CiB9CiAKLVRhYmxlU2NhbkRlc2MKLXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiBy ZWxhdGlvbiwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKQorLyoKKyAqIENvbW1vbiBoZWxw ZXIgZm9yIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbCgpIGFuZCB0YWJsZV9iZWdpbnNjYW5fcGFy YWxsZWxfdm1zZXQoKQorICovCitzdGF0aWMgVGFibGVTY2FuRGVzYwordGFibGVfYmVnaW5zY2Fu X3BhcmFsbGVsX2NvbW1vbihSZWxhdGlvbiByZWxhdGlvbiwgUGFyYWxsZWxUYWJsZVNjYW5EZXNj IHBzY2FuLAorCQkJCQkJCQl1aW50MzIgZmxhZ3MpCiB7CiAJU25hcHNob3QJc25hcHNob3Q7Ci0J dWludDMyCQlmbGFncyA9IFNPX1RZUEVfU0VRU0NBTiB8Ci0JCVNPX0FMTE9XX1NUUkFUIHwgU09f QUxMT1dfU1lOQyB8IFNPX0FMTE9XX1BBR0VNT0RFOwogCiAJQXNzZXJ0KFJlbEZpbGVMb2NhdG9y RXF1YWxzKHJlbGF0aW9uLT5yZF9sb2NhdG9yLCBwc2Nhbi0+cGhzX2xvY2F0b3IpKTsKIApAQCAt MTg4LDYgKzE5NCwzMSBAQCB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRp b24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbikKIAkJCQkJCQkJCQkJcHNjYW4sIGZsYWdz KTsKIH0KIAorVGFibGVTY2FuRGVzYwordGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9u IHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCit7CisJdWludDMyCQlmbGFn cyA9IFNPX1RZUEVfU0VRU0NBTiB8CisJCVNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1dfU1lOQyB8 IFNPX0FMTE9XX1BBR0VNT0RFOworCisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF9j b21tb24ocmVsYXRpb24sIHBzY2FuLCBmbGFncyk7Cit9CisKKy8qCisgKiBQYXJhbGxlbCB2ZXJz aW9uIG9mIHRhYmxlX2JlZ2luc2Nhbl92bXNldCgpCisgKi8KK1RhYmxlU2NhbkRlc2MKK3RhYmxl X2JlZ2luc2Nhbl9wYXJhbGxlbF92bXNldChSZWxhdGlvbiByZWxhdGlvbiwgUGFyYWxsZWxUYWJs ZVNjYW5EZXNjIHBzY2FuLAorCQkJCQkJCSAgIGJvb2wgbW9kaWZpZXNfcmVsKQoreworCXVpbnQz MgkJZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4gfAorCQlTT19BTExPV19TVFJBVCB8IFNPX0FMTE9X X1NZTkMgfCBTT19BTExPV19QQUdFTU9ERTsKKworCWlmICghbW9kaWZpZXNfcmVsKQorCQlmbGFn cyB8PSBTT19BTExPV19WTV9TRVQ7CisKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVs X2NvbW1vbihyZWxhdGlvbiwgcHNjYW4sIGZsYWdzKTsKK30KKwogCiAvKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgKiBJbmRleCBzY2FuIHJlbGF0ZWQgZnVuY3Rpb25zLgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNN YWluLmMKaW5kZXggZmYxMmUyZTEzNjQuLjJlMDQ3NGM5NDhhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNN YWluLmMKQEAgLTkxNiw2ICs5MTYsMTAgQEAgSW5pdFBsYW4oUXVlcnlEZXNjICpxdWVyeURlc2Ms IGludCBlZmxhZ3MpCiAJCQkJCWJyZWFrOwogCQkJfQogCisJCQkvKiBJZiBpdCBoYXMgYSByb3dt YXJrLCB0aGUgcmVsYXRpb24gaXMgbW9kaWZpZWQgKi8KKwkJCWVzdGF0ZS0+ZXNfbW9kaWZpZWRf cmVsaWRzID0gYm1zX2FkZF9tZW1iZXIoZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMsCisJCQkJ CQkJCQkJCQkJCXJjLT5ydGkpOworCiAJCQkvKiBDaGVjayB0aGF0IHJlbGF0aW9uIGlzIGEgbGVn YWwgdGFyZ2V0IGZvciBtYXJraW5nICovCiAJCQlpZiAocmVsYXRpb24pCiAJCQkJQ2hlY2tWYWxp ZFJvd01hcmtSZWwocmVsYXRpb24sIHJjLT5tYXJrVHlwZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjVXRpbHMuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGls cy5jCmluZGV4IGZkYzY1YzJiNDJiLi4yOGEwNmRjZDI0NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0 aWxzLmMKQEAgLTg5Myw2ICs4OTMsOCBAQCBFeGVjSW5pdFJlc3VsdFJlbGF0aW9uKEVTdGF0ZSAq ZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCQllc3RhdGUtPmVzX3Jlc3Vs dF9yZWxhdGlvbnMgPSAoUmVzdWx0UmVsSW5mbyAqKikKIAkJCXBhbGxvYzAoZXN0YXRlLT5lc19y YW5nZV90YWJsZV9zaXplICogc2l6ZW9mKFJlc3VsdFJlbEluZm8gKikpOwogCWVzdGF0ZS0+ZXNf cmVzdWx0X3JlbGF0aW9uc1tydGkgLSAxXSA9IHJlc3VsdFJlbEluZm87CisJZXN0YXRlLT5lc19t b2RpZmllZF9yZWxpZHMgPSBibXNfYWRkX21lbWJlcihlc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlk cywKKwkJCQkJCQkJCQkJCXJ0aSk7CiAKIAkvKgogCSAqIFNhdmluZyBpbiB0aGUgbGlzdCBhbGxv d3MgdG8gYXZvaWQgbmVlZGxlc3NseSB0cmF2ZXJzaW5nIHRoZSB3aG9sZQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwppbmRleCBiZjI0ZjNkN2ZlMC4uYWY2ZGI5Zjc5 MTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jCkBAIC0xMDUs MTEgKzEwNSwxNiBAQCBCaXRtYXBUYWJsZVNjYW5TZXR1cChCaXRtYXBIZWFwU2NhblN0YXRlICpu b2RlKQogCSAqLwogCWlmICghbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjKQogCXsKKwkJYm9v bAkJbW9kaWZpZXNfcmVsID0KKwkJCWJtc19pc19tZW1iZXIoKChTY2FuICopIG5vZGUtPnNzLnBz LnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCQkgIG5vZGUtPnNzLnBzLnN0YXRlLT5lc19tb2RpZmll ZF9yZWxpZHMpOworCiAJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCQl0YWJsZV9i ZWdpbnNjYW5fYm0obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCSAgIG5vZGUt PnNzLnBzLnN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkgICAwLAotCQkJCQkJCSAgIE5VTEwp OworCQkJCQkJCSAgIE5VTEwsCisJCQkJCQkJICAgbW9kaWZpZXNfcmVsKTsKIAl9CiAKIAlub2Rl LT5zcy5zc19jdXJyZW50U2NhbkRlc2MtPnN0LnJzX3RibWl0ZXJhdG9yID0gdGJtaXRlcmF0b3I7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKaW5kZXggN2ZjYWEzN2ZlNjIuLmMyZmZi ZDNiMDhlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC0xMDIsMTYgKzEw MiwyMiBAQCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAKIAlpZiAoc2NhbmRlc2Mg PT0gTlVMTCkKIAl7CisKKwkJYm9vbAkJbW9kaWZpZXNfYmFzZV9yZWwgPQorCQkJYm1zX2lzX21l bWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJCSAgZXN0 YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpOworCiAJCS8qCiAJCSAqIFdlIHJlYWNoIGhlcmUgaWYg dGhlIGluZGV4IHNjYW4gaXMgbm90IHBhcmFsbGVsLCBvciBpZiB3ZSdyZQogCQkgKiBzZXJpYWxs eSBleGVjdXRpbmcgYW4gaW5kZXggc2NhbiB0aGF0IHdhcyBwbGFubmVkIHRvIGJlIHBhcmFsbGVs LgogCQkgKi8KLQkJc2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW4obm9kZS0+c3Muc3NfY3VycmVu dFJlbGF0aW9uLAotCQkJCQkJCQkgICBub2RlLT5pc3NfUmVsYXRpb25EZXNjLAotCQkJCQkJCQkg ICBlc3RhdGUtPmVzX3NuYXBzaG90LAotCQkJCQkJCQkgICAmbm9kZS0+aXNzX0luc3RydW1lbnQs Ci0JCQkJCQkJCSAgIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKLQkJCQkJCQkJICAgbm9kZS0+aXNz X051bU9yZGVyQnlLZXlzKTsKKwkJc2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW5fdm1zZXQobm9k ZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAorCQkJCQkJCQkJCSBub2RlLT5pc3NfUmVsYXRpb25E ZXNjLAorCQkJCQkJCQkJCSBlc3RhdGUtPmVzX3NuYXBzaG90LAorCQkJCQkJCQkJCSAmbm9kZS0+ aXNzX0luc3RydW1lbnQsCisJCQkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKKwkJCQkJ CQkJCQkgbm9kZS0+aXNzX051bU9yZGVyQnlLZXlzLAorCQkJCQkJCQkJCSBtb2RpZmllc19iYXNl X3JlbCk7CiAKIAkJbm9kZS0+aXNzX1NjYW5EZXNjID0gc2NhbmRlc2M7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlU2Vxc2Nhbi5jCmluZGV4IDk0MDQ3ZDI5NDMwLi5mZDY5Mjc1YzE4MSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlU2Vxc2Nhbi5jCkBAIC02NSwxMyArNjUsMTggQEAgU2VxTmV4dChTZXFTY2Fu U3RhdGUgKm5vZGUpCiAKIAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJCWJvb2wJCW1vZGlm aWVzX3JlbCA9CisJCQlibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBub2RlLT5zcy5wcy5wbGFuKS0+ c2NhbnJlbGlkLAorCQkJCQkJICBlc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcyk7CisKIAkJLyoK IAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUgc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9yIGlmIHdl J3JlIHNlcmlhbGx5CiAJCSAqIGV4ZWN1dGluZyBhIHNjYW4gdGhhdCB3YXMgcGxhbm5lZCB0byBi ZSBwYXJhbGxlbC4KIAkJICovCi0JCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuKG5vZGUtPnNz LnNzX2N1cnJlbnRSZWxhdGlvbiwKLQkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKLQkJ CQkJCQkJICAgMCwgTlVMTCk7CisJCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuX3Ztc2V0KG5v ZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKKwkJCQkJCQkJCQkgZXN0YXRlLT5lc19zbmFwc2hv dCwKKwkJCQkJCQkJCQkgMCwgTlVMTCwgbW9kaWZpZXNfcmVsKTsKKwogCQlub2RlLT5zcy5zc19j dXJyZW50U2NhbkRlc2MgPSBzY2FuZGVzYzsKIAl9CiAKQEAgLTM2Niw2ICszNzEsNyBAQCBFeGVj U2VxU2NhbkluaXRpYWxpemVEU00oU2VxU2NhblN0YXRlICpub2RlLAogCQkJCQkJIFBhcmFsbGVs Q29udGV4dCAqcGN4dCkKIHsKIAlFU3RhdGUJICAgKmVzdGF0ZSA9IG5vZGUtPnNzLnBzLnN0YXRl OworCWJvb2wJCW1vZGlmaWVzX3JlbDsKIAlQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW47CiAK IAlwc2NhbiA9IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLCBub2RlLT5wc2Nhbl9sZW4pOwpA QCAtMzczLDggKzM3OSwxMSBAQCBFeGVjU2VxU2NhbkluaXRpYWxpemVEU00oU2VxU2NhblN0YXRl ICpub2RlLAogCQkJCQkJCQkgIHBzY2FuLAogCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3Qp OwogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2Rl X2lkLCBwc2Nhbik7CisJbW9kaWZpZXNfcmVsID0gYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9k ZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJCQkJIGVzdGF0ZS0+ZXNfbW9kaWZpZWRf cmVsaWRzKTsKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdpbnNj YW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2Nhbik7CisJCXRhYmxl X2JlZ2luc2Nhbl9wYXJhbGxlbF92bXNldChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBz Y2FuLAorCQkJCQkJCQkJICAgbW9kaWZpZXNfcmVsKTsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDA0 LDggKzQxMywxMyBAQCBFeGVjU2VxU2NhbkluaXRpYWxpemVXb3JrZXIoU2VxU2NhblN0YXRlICpu b2RlLAogCQkJCQkJCVBhcmFsbGVsV29ya2VyQ29udGV4dCAqcHdjeHQpCiB7CiAJUGFyYWxsZWxU YWJsZVNjYW5EZXNjIHBzY2FuOworCWJvb2wJCW1vZGlmaWVzX3JlbCA9CisJCWJtc19pc19tZW1i ZXIoKChTY2FuICopIG5vZGUtPnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCSAgbm9kZS0+ c3MucHMuc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcyk7CiAKIAlwc2NhbiA9IHNobV90b2NfbG9v a3VwKHB3Y3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgZmFsc2UpOwog CW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxl bChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuKTsKKwkJdGFibGVfYmVnaW5zY2Fu X3BhcmFsbGVsX3Ztc2V0KG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKKwkJCQkJCQkJCSAg IHBzY2FuLAorCQkJCQkJCQkJICAgbW9kaWZpZXNfcmVsKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2FjY2Vzcy9nZW5hbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgKaW5kZXgg NWIyYWIxODFiNWYuLmJmMjcyYzJjMzdmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv Z2VuYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaApAQCAtMTgwLDYgKzE4MCwx MSBAQCBleHRlcm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW4oUmVsYXRpb24gaGVhcFJl bGF0aW9uLAogCQkJCQkJCQkJIFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJIEluZGV4U2Nh bkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKIAkJCQkJCQkJCSBpbnQgbmtleXMsIGludCBu b3JkZXJieXMpOworZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX3Ztc2V0KFJl bGF0aW9uIGhlYXBSZWxhdGlvbiwKKwkJCQkJCQkJCQkgICBSZWxhdGlvbiBpbmRleFJlbGF0aW9u LAorCQkJCQkJCQkJCSAgIFNuYXBzaG90IHNuYXBzaG90LAorCQkJCQkJCQkJCSAgIEluZGV4U2Nh bkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKKwkJCQkJCQkJCQkgICBpbnQgbmtleXMsIGlu dCBub3JkZXJieXMsIGJvb2wgbW9kaWZpZXNfaGVhcF9yZWwpOwogZXh0ZXJuIEluZGV4U2NhbkRl c2MgaW5kZXhfYmVnaW5zY2FuX2JpdG1hcChSZWxhdGlvbiBpbmRleFJlbGF0aW9uLAogCQkJCQkJ CQkJCQlTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCQkJCQkJSW5kZXhTY2FuSW5zdHJ1bWVudGF0 aW9uICppbnN0cnVtZW50LApAQCAtMjA2LDYgKzIxMSwxMiBAQCBleHRlcm4gSW5kZXhTY2FuRGVz YyBpbmRleF9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gaGVhcHJlbCwKIAkJCQkJCQkJCQkJ ICBJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCiAJCQkJCQkJCQkJCSAgaW50 IG5rZXlzLCBpbnQgbm9yZGVyYnlzLAogCQkJCQkJCQkJCQkgIFBhcmFsbGVsSW5kZXhTY2FuRGVz YyBwc2Nhbik7CisKK2V4dGVybiBJbmRleFNjYW5EZXNjIGluZGV4X2JlZ2luc2Nhbl9wYXJhbGxl bF92bXNldChSZWxhdGlvbiBoZWFwcmVsLCBSZWxhdGlvbiBpbmRleHJlbCwKKwkJCQkJCQkJCQkJ CQlJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCisJCQkJCQkJCQkJCQkJaW50 IG5rZXlzLCBpbnQgbm9yZGVyYnlzLAorCQkJCQkJCQkJCQkJCVBhcmFsbGVsSW5kZXhTY2FuRGVz YyBwc2NhbiwKKwkJCQkJCQkJCQkJCQlib29sIG1vZGlmaWVzX3JlbCk7CiBleHRlcm4gSXRlbVBv aW50ZXIgaW5kZXhfZ2V0bmV4dF90aWQoSW5kZXhTY2FuRGVzYyBzY2FuLAogCQkJCQkJCQkJIFNj YW5EaXJlY3Rpb24gZGlyZWN0aW9uKTsKIHN0cnVjdCBUdXBsZVRhYmxlU2xvdDsKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFw YW0uaAppbmRleCA0Mjc4ZjM1MWJkZi4uMTZmNzkwNGEyMWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAg LTk0LDYgKzk0LDEzIEBAIHR5cGVkZWYgc3RydWN0IEhlYXBTY2FuRGVzY0RhdGEKIAkgKi8KIAlQ YXJhbGxlbEJsb2NrVGFibGVTY2FuV29ya2VyRGF0YSAqcnNfcGFyYWxsZWx3b3JrZXJkYXRhOwog CisJLyoKKwkgKiBGb3Igc2VxdWVudGlhbCBzY2FucyBhbmQgYml0bWFwIGhlYXAgc2NhbnMuIElm IHRoZSByZWxhdGlvbiBpcyBub3QKKwkgKiBiZWluZyBtb2RpZmllZCwgb24tYWNjZXNzIHBydW5p bmcgbWF5IHJlYWQgaW4gdGhlIGN1cnJlbnQgaGVhcCBwYWdlJ3MKKwkgKiBjb3JyZXNwb25kaW5n IFZNIGJsb2NrIHRvIHRoaXMgYnVmZmVyLgorCSAqLworCUJ1ZmZlcgkJcnNfdm1idWZmZXI7CisK IAkvKiB0aGVzZSBmaWVsZHMgb25seSB1c2VkIGluIHBhZ2UtYXQtYS10aW1lIG1vZGUgYW5kIGZv ciBiaXRtYXAgc2NhbnMgKi8KIAl1aW50MzIJCXJzX2NpbmRleDsJCS8qIGN1cnJlbnQgdHVwbGUn cyBpbmRleCBpbiB2aXN0dXBsZXMgKi8KIAl1aW50MzIJCXJzX250dXBsZXM7CQkvKiBudW1iZXIg b2YgdmlzaWJsZSB0dXBsZXMgb24gcGFnZSAqLwpAQCAtMTE2LDggKzEyMywxOCBAQCB0eXBlZGVm IHN0cnVjdCBJbmRleEZldGNoSGVhcERhdGEKIHsKIAlJbmRleEZldGNoVGFibGVEYXRhIHhzX2Jh c2U7CS8qIEFNIGluZGVwZW5kZW50IHBhcnQgb2YgdGhlIGRlc2NyaXB0b3IgKi8KIAotCUJ1ZmZl cgkJeHNfY2J1ZjsJCS8qIGN1cnJlbnQgaGVhcCBidWZmZXIgaW4gc2NhbiwgaWYgYW55ICovCi0J LyogTkI6IGlmIHhzX2NidWYgaXMgbm90IEludmFsaWRCdWZmZXIsIHdlIGhvbGQgYSBwaW4gb24g dGhhdCBidWZmZXIgKi8KKwkvKgorCSAqIEN1cnJlbnQgaGVhcCBidWZmZXIgaW4gc2NhbiwgaWYg YW55LiBOQjogaWYgeHNfY2J1ZiBpcyBub3QKKwkgKiBJbnZhbGlkQnVmZmVyLCB3ZSBob2xkIGEg cGluIG9uIHRoYXQgYnVmZmVyLgorCSAqLworCUJ1ZmZlcgkJeHNfY2J1ZjsKKworCS8qCisJICog Rm9yIGluZGV4IHNjYW5zIHRoYXQgZG8gbm90IG1vZGlmeSB0aGUgdW5kZXJseWluZyBoZWFwIHRh YmxlLCBvbi1hY2Nlc3MKKwkgKiBwcnVuaW5nIG1heSByZWFkIGluIHRoZSBjdXJyZW50IGhlYXAg cGFnZSdzIGNvcnJlc3BvbmRpbmcgVk0gYmxvY2sgdG8KKwkgKiB0aGlzIGJ1ZmZlci4KKwkgKi8K KwlCdWZmZXIJCXhzX3ZtYnVmZmVyOwogfSBJbmRleEZldGNoSGVhcERhdGE7CiAKIC8qIFJlc3Vs dCBjb2RlcyBmb3IgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtICovCkBAIC0zNzQsNyArMzkxLDgg QEAgZXh0ZXJuIFRyYW5zYWN0aW9uSWQgaGVhcF9pbmRleF9kZWxldGVfdHVwbGVzKFJlbGF0aW9u IHJlbCwKIAogLyogaW4gaGVhcC9wcnVuZWhlYXAuYyAqLwogc3RydWN0IEdsb2JhbFZpc1N0YXRl OwotZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVm ZmVyIGJ1ZmZlcik7CitleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJl bGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJCQlCdWZmZXIgKnZtYnVmZmVyKTsKIGV4dGVy biB2b2lkIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZm ZXIgYnVmZmVyLAogCQkJCQkJCQkJICAgYm9vbCBibGtfa25vd25fYXYsCiAJCQkJCQkJCQkgICBC dWZmZXIgdm1idWZmZXIsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5o IGIvc3JjL2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaAppbmRleCBiNWUwZmIzODZjMC4uZjQ5NmUw YjQ5MzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmgKKysrIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaApAQCAtMTIxLDYgKzEyMSwxMiBAQCB0eXBlZGVmIHN0 cnVjdCBQYXJhbGxlbEJsb2NrVGFibGVTY2FuV29ya2VyRGF0YSAqUGFyYWxsZWxCbG9ja1RhYmxl U2NhbldvcmtlcjsKIHR5cGVkZWYgc3RydWN0IEluZGV4RmV0Y2hUYWJsZURhdGEKIHsKIAlSZWxh dGlvbglyZWw7CisKKwkvKgorCSAqIFNvbWUgb3B0aW1pemF0aW9ucyBjYW4gb25seSBiZSBwZXJm b3JtZWQgaWYgdGhlIHF1ZXJ5IGRvZXMgbm90IG1vZGlmeQorCSAqIHRoZSB1bmRlcmx5aW5nIHJl bGF0aW9uLiBUcmFjayB0aGF0IGhlcmUuCisJICovCisJYm9vbAkJbW9kaWZpZXNfYmFzZV9yZWw7 CiB9IEluZGV4RmV0Y2hUYWJsZURhdGE7CiAKIHN0cnVjdCBJbmRleFNjYW5JbnN0cnVtZW50YXRp b247CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL3RhYmxlYW0uaAppbmRleCBiMmNlMzVlMmEzNC4uZTMxYzIxY2Y4ZWIgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL3RhYmxlYW0uaApAQCAtNjIsNiArNjIsOCBAQCB0eXBlZGVmIGVudW0gU2Nhbk9wdGlvbnMK IAogCS8qIHVucmVnaXN0ZXIgc25hcHNob3QgYXQgc2NhbiBlbmQ/ICovCiAJU09fVEVNUF9TTkFQ U0hPVCA9IDEgPDwgOSwKKwkvKiB3aGV0aGVyIG9yIG5vdCBzY2FuIHNob3VsZCBhdHRlbXB0IHRv IHNldCB0aGUgVk0gKi8KKwlTT19BTExPV19WTV9TRVQgPSAxIDw8IDEwLAogfQkJCVNjYW5PcHRp b25zOwogCiAvKgpAQCAtODgxLDYgKzg4MywyNSBAQCB0YWJsZV9iZWdpbnNjYW4oUmVsYXRpb24g cmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAlyZXR1cm4gcmVsLT5yZF90YWJsZWFtLT5zY2FuX2Jl Z2luKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsKIH0KIAorLyoKKyAq IFNpbWlsYXIgdG8gdGFibGVfYmVnaW5zY2FuKCksIGJ1dCBhbGxvd3MgdGhlIGNhbGxlciB0byBp bmRpY2F0ZSB3aGV0aGVyIHRoZQorICogcXVlcnkgbW9kaWZpZXMgdGhlIHJlbGF0aW9uLiBUaGlz IGlzIHVzZWQgd2hlbiB0aGUgY2FsbGVyIHdhbnRzIHRvIGF0dGVtcHQKKyAqIG1hcmtpbmcgcGFn ZXMgaW4gdGhlIHJlbGF0aW9uIGFzIGFsbC12aXNpYmxlIGluIHRoZSB2aXNpYmlsaXR5IG1hcCBk dXJpbmcKKyAqIG9uLWFjY2VzcyBwcnVuaW5nLgorICovCitzdGF0aWMgaW5saW5lIFRhYmxlU2Nh bkRlc2MKK3RhYmxlX2JlZ2luc2Nhbl92bXNldChSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBz aG90LAorCQkJCQkgIGludCBua2V5cywgc3RydWN0IFNjYW5LZXlEYXRhICprZXksIGJvb2wgbW9k aWZpZXNfcmVsKQoreworCXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4gfAorCQlTT19B TExPV19TVFJBVCB8IFNPX0FMTE9XX1NZTkMgfCBTT19BTExPV19QQUdFTU9ERTsKKworCWlmICgh bW9kaWZpZXNfcmVsKQorCQlmbGFncyB8PSBTT19BTExPV19WTV9TRVQ7CisKKwlyZXR1cm4gcmVs LT5yZF90YWJsZWFtLT5zY2FuX2JlZ2luKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEws IGZsYWdzKTsKK30KKwogLyoKICAqIExpa2UgdGFibGVfYmVnaW5zY2FuKCksIGJ1dCBmb3Igc2Nh bm5pbmcgY2F0YWxvZy4gSXQnbGwgYXV0b21hdGljYWxseSB1c2UgYQogICogc25hcHNob3QgYXBw cm9wcmlhdGUgZm9yIHNjYW5uaW5nIGNhdGFsb2cgcmVsYXRpb25zLgpAQCAtOTE4LDEwICs5Mzks MTMgQEAgdGFibGVfYmVnaW5zY2FuX3N0cmF0KFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNo b3QsCiAgKi8KIHN0YXRpYyBpbmxpbmUgVGFibGVTY2FuRGVzYwogdGFibGVfYmVnaW5zY2FuX2Jt KFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsCi0JCQkJICAgaW50IG5rZXlzLCBzdHJ1 Y3QgU2NhbktleURhdGEgKmtleSkKKwkJCQkgICBpbnQgbmtleXMsIHN0cnVjdCBTY2FuS2V5RGF0 YSAqa2V5LCBib29sIG1vZGlmaWVzX3JlbCkKIHsKIAl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9C SVRNQVBTQ0FOIHwgU09fQUxMT1dfUEFHRU1PREU7CiAKKwlpZiAoIW1vZGlmaWVzX3JlbCkKKwkJ ZmxhZ3MgfD0gU09fQUxMT1dfVk1fU0VUOworCiAJcmV0dXJuIHJlbC0+cmRfdGFibGVhbS0+c2Nh bl9iZWdpbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LAogCQkJCQkJCQkJICAgTlVMTCwgZmxh Z3MpOwogfQpAQCAtMTEzMCw2ICsxMTU0LDEwIEBAIGV4dGVybiB2b2lkIHRhYmxlX3BhcmFsbGVs c2Nhbl9pbml0aWFsaXplKFJlbGF0aW9uIHJlbCwKIGV4dGVybiBUYWJsZVNjYW5EZXNjIHRhYmxl X2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiByZWxhdGlvbiwKIAkJCQkJCQkJCQkJICBQYXJh bGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pOwogCitleHRlcm4gVGFibGVTY2FuRGVzYyB0YWJsZV9i ZWdpbnNjYW5fcGFyYWxsZWxfdm1zZXQoUmVsYXRpb24gcmVsYXRpb24sCisJCQkJCQkJCQkJCQkJ UGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAorCQkJCQkJCQkJCQkJCWJvb2wgbW9kaWZpZXNf cmVsKTsKKwogLyoKICAqIFJlc3RhcnQgYSBwYXJhbGxlbCBzY2FuLiAgQ2FsbCB0aGlzIGluIHRo ZSBsZWFkZXIgcHJvY2Vzcy4gIENhbGxlciBpcwogICogcmVzcG9uc2libGUgZm9yIG1ha2luZyBz dXJlIHRoYXQgYWxsIHdvcmtlcnMgaGF2ZSBmaW5pc2hlZCB0aGUgc2NhbgpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9k ZXMuaAppbmRleCBkZTc4MjAxNGIyZC4uODM5YzFiZTFkN2MgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5o CkBAIC02NzgsNiArNjc4LDEyIEBAIHR5cGVkZWYgc3RydWN0IEVTdGF0ZQogCQkJCQkJCQkJICog RXhlY0RvSW5pdGlhbFBydW5pbmcoKSAqLwogCWNvbnN0IGNoYXIgKmVzX3NvdXJjZVRleHQ7CS8q IFNvdXJjZSB0ZXh0IGZyb20gUXVlcnlEZXNjICovCiAKKwkvKgorCSAqIFJUIGluZGV4ZXMgb2Yg cmVsYXRpb25zIG1vZGlmaWVkIGJ5IHRoZSBxdWVyeSBlaXRoZXIgdGhyb3VnaAorCSAqIFVQREFU RS9ERUxFVEUvSU5TRVJUL01FUkdFIG9yIFNFTEVDVCBGT1IgVVBEQVRFCisJICovCisJQml0bWFw c2V0ICAqZXNfbW9kaWZpZWRfcmVsaWRzOworCiAJSnVua0ZpbHRlciAqZXNfanVua0ZpbHRlcjsJ LyogdG9wLWxldmVsIGp1bmsgZmlsdGVyLCBpZiBhbnkgKi8KIAogCS8qIElmIHF1ZXJ5IGNhbiBp bnNlcnQvZGVsZXRlIHR1cGxlcywgdGhlIGNvbW1hbmQgSUQgdG8gbWFyayB0aGVtIHdpdGggKi8K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNv ZGluZy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGlu Zy5wbAppbmRleCBjOWMxODI4OTJjZi4uODcwZjAzYmRkNzkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5wbAorKysgYi9zcmMvdGVz dC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwKQEAgLTEwLDYgKzEw LDcgQEAgdXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7CiB1c2UgUG9zdGdyZVNRTDo6VGVz dDo6VXRpbHM7CiB1c2UgVGltZTo6SGlSZXMgcXcodXNsZWVwKTsKIHVzZSBUZXN0OjpNb3JlOwor dXNlIFRpbWU6OkhpUmVzIHF3KHVzbGVlcCk7CiAKIGlmICgkRU5We2VuYWJsZV9pbmplY3Rpb25f cG9pbnRzfSBuZSAneWVzJykKIHsKQEAgLTI5Niw2ICsyOTcsNyBAQCB3YWxfbGV2ZWwgPSAnbG9n aWNhbCcKIG1heF9yZXBsaWNhdGlvbl9zbG90cyA9IDQKIG1heF93YWxfc2VuZGVycyA9IDQKIGF1 dG92YWN1dW0gPSBvZmYKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24KIH0pOwogJG5vZGVfcHJp bWFyeS0+ZHVtcF9pbmZvOwogJG5vZGVfcHJpbWFyeS0+c3RhcnQ7CkBAIC03NDUsNyArNzQ3LDcg QEAgY2hlY2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsCiAkbG9nc3RhcnQgPSAtcyAk bm9kZV9zdGFuZGJ5LT5sb2dmaWxlOwogCiByZWFjdGl2ZV9zbG90c19jaGFuZ2VfaGZzX2FuZF93 YWl0X2Zvcl94bWlucygnc2hhcmVkX3Jvd19yZW1vdmFsXycsCi0JJ25vX2NvbmZsaWN0XycsIDAs IDEpOworCSdub19jb25mbGljdF8nLCAxLCAwKTsKIAogIyBUaGlzIHNob3VsZCBub3QgdHJpZ2dl ciBhIGNvbmZsaWN0CiB3YWl0X3VudGlsX3ZhY3V1bV9jYW5fcmVtb3ZlKAotLSAKMi40My4wCgo= --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0021-Reorder-heap_page_prune_and_freeze-parameters.patch" Content-Disposition: attachment; filename="v10-0021-Reorder-heap_page_prune_and_freeze-parameters.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8h120 RnJvbSAzZWIyN2VkYWIxZDdhNWRkNDVlMTY3OGExYThhNTE1MGQ2MjA3MDZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDMxIEp1bCAyMDI1IDEyOjA4OjE4IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMjEvMjJdIFJlb3JkZXIgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUgcGFyYW1l dGVycwoKUmVvcmRlciBwYXJhbWV0ZXJzIHNvIHRoYXQgYWxsIG9mIHRoZSBvdXRwdXQgcGFyYW1l dGVycyBhcmUgdG9nZXRoZXIgYXQKdGhlIGVuZCBvZiB0aGUgcGFyYW1ldGVyIGxpc3QuCi0tLQog c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgIHwgMzggKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwgIDYg KystLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAgICAgICB8ICA0ICstLQogMyBm aWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDFhMWE1NTE4NTliLi40Mzc3NjczZTNhNCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTI5NywxMCArMjk3LDEwIEBAIGhlYXBf cGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAq dm1idWZmZXIpCiAJCQkgKiBub3QgdGhlIHJlbGF0aW9uIGhhcyBpbmRleGVzLCBzaW5jZSB3ZSBj YW5ub3Qgc2FmZWx5IGRldGVybWluZQogCQkJICogdGhhdCBkdXJpbmcgb24tYWNjZXNzIHBydW5p bmcgd2l0aCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4KIAkJCSAqLwotCQkJaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUocmVsYXRpb24sIGJ1ZmZlciwgZmFsc2UsCisJCQloZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZShyZWxhdGlvbiwgYnVmZmVyLCBvcHRpb25zLCBmYWxzZSwKIAkJCQkJ CQkJCSAgIHZtYnVmZmVyID8gKnZtYnVmZmVyIDogSW52YWxpZEJ1ZmZlciwKLQkJCQkJCQkJCSAg IHZpc3Rlc3QsIG9wdGlvbnMsCi0JCQkJCQkJCQkgICBOVUxMLCAmcHJlc3VsdCwgUFJVTkVfT05f QUNDRVNTLAorCQkJCQkJCQkJICAgdmlzdGVzdCwKKwkJCQkJCQkJCSAgIE5VTEwsIFBSVU5FX09O X0FDQ0VTUywgJnByZXN1bHQsCiAJCQkJCQkJCQkgICAmZHVtbXlfb2ZmX2xvYywgTlVMTCwgTlVM TCk7CiAKIAkJCS8qCkBAIC02NDksNiArNjQ5LDE1IEBAIGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKICAqIGFsc28gbmVlZCB0byBhY2NvdW50 IGZvciBhIHJlZHVjdGlvbiBpbiB0aGUgbGVuZ3RoIG9mIHRoZSBsaW5lIHBvaW50ZXIKICAqIGFy cmF5IGZvbGxvd2luZyBhcnJheSB0cnVuY2F0aW9uIGJ5IHVzLgogICoKKyAqIG9wdGlvbnM6Cisg KiAgIE1BUktfVU5VU0VEX05PVyBpbmRpY2F0ZXMgdGhhdCBkZWFkIGl0ZW1zIGNhbiBiZSBzZXQg TFBfVU5VU0VEIGR1cmluZworICogICBwcnVuaW5nLgorICoKKyAqICAgRlJFRVpFIGluZGljYXRl cyB0aGF0IHdlIHdpbGwgYWxzbyBmcmVlemUgdHVwbGVzLCBhbmQgd2lsbCByZXR1cm4KKyAqICAg J2FsbF92aXNpYmxlJywgJ2FsbF9mcm96ZW4nIGZsYWdzIHRvIHRoZSBjYWxsZXIuCisgKgorICog ICBVUERBVEVfVk0gaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBzZXQgdGhlIHBhZ2UncyBzdGF0dXMg aW4gdGhlIFZNLgorICoKICAqIElmIHRoZSBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0 LCB3ZSB3aWxsIGFsc28gZnJlZXplIHR1cGxlcyBpZiBpdCdzCiAgKiByZXF1aXJlZCBpbiBvcmRl ciB0byBhZHZhbmNlIHJlbGZyb3plbnhpZCAvIHJlbG1pbm14aWQsIG9yIGlmIGl0J3MKICAqIGNv bnNpZGVyZWQgYWR2YW50YWdlb3VzIGZvciBvdmVyYWxsIHN5c3RlbSBwZXJmb3JtYW5jZSB0byBk byBzbyBub3cuICBUaGUKQEAgLTY2NywzMCArNjc2LDIxIEBAIGhlYXBfcGFnZV93aWxsX2ZyZWV6 ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKICAqIGNvbnRhaW4gdGhlIHJlcXVp cmVkIGJsb2NrIG9mIHRoZSB2aXNpYmlsaXR5IG1hcC4KICAqCiAgKiB2aXN0ZXN0IGlzIHVzZWQg dG8gZGlzdGluZ3Vpc2ggd2hldGhlciB0dXBsZXMgYXJlIERFQUQgb3IgUkVDRU5UTFlfREVBRAot ICogKHNlZSBoZWFwX3BydW5lX3NhdGlzZmllc192YWN1dW0pLgotICoKLSAqIG9wdGlvbnM6Ci0g KiAgIE1BUktfVU5VU0VEX05PVyBpbmRpY2F0ZXMgdGhhdCBkZWFkIGl0ZW1zIGNhbiBiZSBzZXQg TFBfVU5VU0VEIGR1cmluZwotICogICBwcnVuaW5nLgotICoKLSAqICAgRlJFRVpFIGluZGljYXRl cyB0aGF0IHdlIHdpbGwgYWxzbyBmcmVlemUgdHVwbGVzLCBhbmQgd2lsbCByZXR1cm4KLSAqICAg J2FsbF92aXNpYmxlJywgJ2FsbF9mcm96ZW4nIGZsYWdzIHRvIHRoZSBjYWxsZXIuCi0gKgotICog ICBVUERBVEVfVk0gaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBzZXQgdGhlIHBhZ2UncyBzdGF0dXMg aW4gdGhlIFZNLgorICogKHNlZSBoZWFwX3BydW5lX3NhdGlzZmllc192YWN1dW0pLiBJdCBpcyBh biBpbnB1dCBwYXJhbWV0ZXIuCiAgKgogICogY3V0b2ZmcyBjb250YWlucyB0aGUgZnJlZXplIGN1 dG9mZnMsIGVzdGFibGlzaGVkIGJ5IFZBQ1VVTSBhdCB0aGUgYmVnaW5uaW5nCiAgKiBvZiB2YWN1 dW1pbmcgdGhlIHJlbGF0aW9uLiAgUmVxdWlyZWQgaWYgSEVBUF9QUlVORV9GUkVFWkUgb3B0aW9u IGlzIHNldC4KICAqIGN1dG9mZnMtPk9sZGVzdFhtaW4gaXMgYWxzbyB1c2VkIHRvIGRldGVybWlu ZSBpZiBkZWFkIHR1cGxlcyBhcmUKLSAqIEhFQVBUVVBMRV9SRUNFTlRMWV9ERUFEIG9yIEhFQVBU VVBMRV9ERUFELgorICogSEVBUFRVUExFX1JFQ0VOVExZX0RFQUQgb3IgSEVBUFRVUExFX0RFQUQu IEl0IGlzIGFuIGlucHV0IHBhcmFtZXRlci4KKyAqCisgKiByZWFzb24gaW5kaWNhdGVzIHdoeSB0 aGUgcHJ1bmluZyBpcyBwZXJmb3JtZWQuICBJdCBpcyBpbmNsdWRlZCBpbiB0aGUgV0FMCisgKiBy ZWNvcmQgZm9yIGRlYnVnZ2luZyBhbmQgYW5hbHlzaXMgcHVycG9zZXMsIGJ1dCBvdGhlcndpc2Ug aGFzIG5vIGVmZmVjdC4KICAqCiAgKiBwcmVzdWx0IGNvbnRhaW5zIG91dHB1dCBwYXJhbWV0ZXJz IG5lZWRlZCBieSBjYWxsZXJzLCBzdWNoIGFzIHRoZSBudW1iZXIgb2YKICAqIHR1cGxlcyByZW1v dmVkIGFuZCB0aGUgb2Zmc2V0cyBvZiBkZWFkIGl0ZW1zIG9uIHRoZSBwYWdlIGFmdGVyIHBydW5p bmcuCiAgKiBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIGlzIHJlc3BvbnNpYmxlIGZvciBp bml0aWFsaXppbmcgaXQuICBSZXF1aXJlZAogICogYnkgYWxsIGNhbGxlcnMuCiAgKgotICogcmVh c29uIGluZGljYXRlcyB3aHkgdGhlIHBydW5pbmcgaXMgcGVyZm9ybWVkLiAgSXQgaXMgaW5jbHVk ZWQgaW4gdGhlIFdBTAotICogcmVjb3JkIGZvciBkZWJ1Z2dpbmcgYW5kIGFuYWx5c2lzIHB1cnBv c2VzLCBidXQgb3RoZXJ3aXNlIGhhcyBubyBlZmZlY3QuCi0gKgogICogb2ZmX2xvYyBpcyB0aGUg b2Zmc2V0IGxvY2F0aW9uIHJlcXVpcmVkIGJ5IHRoZSBjYWxsZXIgdG8gdXNlIGluIGVycm9yCiAg KiBjYWxsYmFjay4KICAqCkBAIC03MDMsMTMgKzcwMywxMyBAQCBoZWFwX3BhZ2Vfd2lsbF9mcmVl emUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAgKi8KIHZvaWQKIGhlYXBfcGFn ZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJ CQkJICAgaW50IG9wdGlvbnMsCiAJCQkJCQkgICBib29sIGJsa19rbm93bl9hdiwKIAkJCQkJCSAg IEJ1ZmZlciB2bWJ1ZmZlciwKIAkJCQkJCSAgIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAotCQkJ CQkJICAgaW50IG9wdGlvbnMsCiAJCQkJCQkgICBzdHJ1Y3QgVmFjdXVtQ3V0b2ZmcyAqY3V0b2Zm cywKLQkJCQkJCSAgIFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0LAogCQkJCQkJICAgUHJ1bmVS ZWFzb24gcmVhc29uLAorCQkJCQkJICAgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQsCiAJCQkJ CQkgICBPZmZzZXROdW1iZXIgKm9mZl9sb2MsCiAJCQkJCQkgICBUcmFuc2FjdGlvbklkICpuZXdf cmVsZnJvemVuX3hpZCwKIAkJCQkJCSAgIE11bHRpWGFjdElkICpuZXdfcmVsbWluX214aWQpCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggNzU1OGFjNjk3ZjEuLjk5YjljYWIw OTc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0xOTkxLDExICsxOTkx LDExIEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJaWYgKHZhY3JlbC0+ bmluZGV4ZXMgPT0gMCkKIAkJcHJ1bmVfb3B0aW9ucyB8PSBIRUFQX1BBR0VfUFJVTkVfTUFSS19V TlVTRURfTk9XOwogCi0JaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUocmVsLCBidWYsCisJaGVh cF9wYWdlX3BydW5lX2FuZF9mcmVlemUocmVsLCBidWYsIHBydW5lX29wdGlvbnMsCiAJCQkJCQkJ ICAgYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtLAogCQkJCQkJCSAgIHZtYnVmZmVyLAotCQkJ CQkJCSAgIHZhY3JlbC0+dmlzdGVzdCwgcHJ1bmVfb3B0aW9ucywKLQkJCQkJCQkgICAmdmFjcmVs LT5jdXRvZmZzLCAmcHJlc3VsdCwgUFJVTkVfVkFDVVVNX1NDQU4sCisJCQkJCQkJICAgdmFjcmVs LT52aXN0ZXN0LAorCQkJCQkJCSAgICZ2YWNyZWwtPmN1dG9mZnMsIFBSVU5FX1ZBQ1VVTV9TQ0FO LCAmcHJlc3VsdCwKIAkJCQkJCQkgICAmdmFjcmVsLT5vZmZudW0sCiAJCQkJCQkJICAgJnZhY3Jl bC0+TmV3UmVsZnJvemVuWGlkLCAmdmFjcmVsLT5OZXdSZWxtaW5NeGlkKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBh bS5oCmluZGV4IDE2Zjc5MDRhMjFlLi4wYzRlNTYwNzYyNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAt Mzk0LDEzICszOTQsMTMgQEAgc3RydWN0IEdsb2JhbFZpc1N0YXRlOwogZXh0ZXJuIHZvaWQgaGVh cF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJ CQkJQnVmZmVyICp2bWJ1ZmZlcik7CiBleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2Zy ZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKKwkJCQkJCQkJCSAgIGludCBv cHRpb25zLAogCQkJCQkJCQkJICAgYm9vbCBibGtfa25vd25fYXYsCiAJCQkJCQkJCQkgICBCdWZm ZXIgdm1idWZmZXIsCiAJCQkJCQkJCQkgICBzdHJ1Y3QgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3Qs Ci0JCQkJCQkJCQkgICBpbnQgb3B0aW9ucywKIAkJCQkJCQkJCSAgIHN0cnVjdCBWYWN1dW1DdXRv ZmZzICpjdXRvZmZzLAotCQkJCQkJCQkJICAgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQsCiAJ CQkJCQkJCQkgICBQcnVuZVJlYXNvbiByZWFzb24sCisJCQkJCQkJCQkgICBQcnVuZUZyZWV6ZVJl c3VsdCAqcHJlc3VsdCwKIAkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqb2ZmX2xvYywKIAkJCQkJ CQkJCSAgIFRyYW5zYWN0aW9uSWQgKm5ld19yZWxmcm96ZW5feGlkLAogCQkJCQkJCQkJICAgTXVs dGlYYWN0SWQgKm5ld19yZWxtaW5fbXhpZCk7Ci0tIAoyLjQzLjAKCg== --0000000000009d4adf063e4c10aa Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0022-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v10-0022-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfbak8h321 RnJvbSBkNmVhNGMzYWYxZDNiNmNlNDVmMDIxOWI2YmMyMzM4Njc2MjliMjFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMjIvMjJdIFNldCBwZF9wcnVuZV94aWQgb24gaW5zZXJ0CgpOb3cgdGhhdCB3ZSBj YW4gc2V0IHRoZSBWTSBkdXJpbmcgcmVhZC1vbmx5IHF1ZXJpZXMsIGl0IG1ha2VzIHNlbnNlIHRv CnN0YXJ0IHNldHRpbmcgdGhlIHBhZ2UgcHJ1bmFibGUgaGludCBvbiBpbnNlcnQuIFRoaXMgd2ls bCBhbGxvdwpoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIHRvIGJlIGNhbGxlZCB3aGVuIHRo ZSBwYWdlIGlzIGZ1bGwgb3IKbW9zdGx5IGZ1bGwuCgpGb3IgeWVhcnMgdGhlcmUgaGFzIGJlZW4g YSBub3RlIGluIGhlYXBfaW5zZXJ0KCkgYW5kIGhlYXBfbXVsdGlfaW5zZXJ0KCkKcG9pbnRpbmcg b3V0IHRoYXQgc2V0dGluZyBwZF9wcnVuZV94aWQgd291bGQgaGVscCBjbGVhbiB1cCBhYm9ydGVk Cmluc2VydGVkIHR1cGxlcyB0aGF0IHdvdWxkIG90aGVyd2lzZSBub3QgYmUgY2xlYW5lZCB1cCB1 bnRpbCB2YWN1dW0uClNvLCB0aGF0J3MgYW5vdGhlciBiZW5lZml0IG9mIHNldHRpbmcgaXQuCgpT ZXR0aW5nIHBkX3BydW5lX3hpZCBvbiBpbnNlcnQgY2F1c2VzIGEgcGFnZSB0byBiZSBwcnVuZWQg YW5kIHRoZW4Kd3JpdHRlbiBvdXQgd2hpY2ggdGhlbiBhZmZlY3RzIHRoZSByZXBvcnRlZCBudW1i ZXIgb2YgaGl0cyBpbiB0aGUKaW5kZXgta2lsbHR1cGxlcyBpc29sYXRpb24gdGVzdC4gVGhpcyBp cyBhIHF1aXJrIG9mIGhvdyBoaXRzIGFyZSB0cmFja2VkCndoaWNoIHNvbWV0aW1lcyBsZWFkcyB0 aGVtIHRvIGJlIGRvdWJsZSBjb3VudGVkLiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZQpmaXhlZCBv ciBjaGFuZ2VkIGluZGVwZW5kZW50bHkuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtLmMgICAgICAgICAgICAgIHwgMjUgKysrKysrKysrKysrKy0tLS0tLQogc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYyAgICAgICAgIHwgMTUgKysrKysrKysrKy0KIC4uLi9p c29sYXRpb24vZXhwZWN0ZWQvaW5kZXgta2lsbHR1cGxlcy5vdXQgICB8ICA2ICsrLS0tCiAzIGZp bGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtLmMKaW5kZXggZDA3NjkzYjcwNzUuLjAyYWEyMzgzYzUwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW0uYwpAQCAtMjEwNSw2ICsyMTA1LDcgQEAgaGVhcF9pbnNlcnQoUmVsYXRp b24gcmVsYXRpb24sIEhlYXBUdXBsZSB0dXAsIENvbW1hbmRJZCBjaWQsCiAJVHJhbnNhY3Rpb25J ZCB4aWQgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25JZCgpOwogCUhlYXBUdXBsZQloZWFwdHVwOwog CUJ1ZmZlcgkJYnVmZmVyOworCVBhZ2UJCXBhZ2U7CiAJQnVmZmVyCQl2bWJ1ZmZlciA9IEludmFs aWRCdWZmZXI7CiAJYm9vbAkJYWxsX3Zpc2libGVfY2xlYXJlZCA9IGZhbHNlOwogCkBAIC0yMTY0 LDE1ICsyMTY1LDE5IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFwVHVwbGUg dHVwLCBDb21tYW5kSWQgY2lkLAogCX0KIAogCS8qCi0JICogWFhYIFNob3VsZCB3ZSBzZXQgUGFn ZVNldFBydW5hYmxlIG9uIHRoaXMgcGFnZSA/CisJICogU2V0IHBkX3BydW5lX3hpZCB0byB0cmln Z2VyIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgb25jZSB0aGUgcGFnZQorCSAqIGlzIGZ1 bGwgc28gdGhhdCB3ZSBjYW4gc2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlIGluIHRoZSBWTS4KIAkg KgotCSAqIFRoZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24gbWF5IGV2ZW50dWFsbHkgYWJvcnQgdGh1 cyBtYWtpbmcgdGhpcyB0dXBsZQotCSAqIERFQUQgYW5kIGhlbmNlIGF2YWlsYWJsZSBmb3IgcHJ1 bmluZy4gVGhvdWdoIHdlIGRvbid0IHdhbnQgdG8gb3B0aW1pemUKLQkgKiBmb3IgYWJvcnRzLCBp ZiBubyBvdGhlciB0dXBsZSBpbiB0aGlzIHBhZ2UgaXMgVVBEQVRFZC9ERUxFVEVkLCB0aGUKLQkg KiBhYm9ydGVkIHR1cGxlIHdpbGwgbmV2ZXIgYmUgcHJ1bmVkIHVudGlsIG5leHQgdmFjdXVtIGlz IHRyaWdnZXJlZC4KKwkgKiBTZXR0aW5nIHBkX3BydW5lX3hpZCBpcyBhbHNvIGhhbmR5IGlmIHRo ZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24KKwkgKiBldmVudHVhbGx5IGFib3J0cyBtYWtpbmcgdGhp cyB0dXBsZSBERUFEIGFuZCBoZW5jZSBhdmFpbGFibGUgZm9yCisJICogcHJ1bmluZy4gSWYgbm8g b3RoZXIgdHVwbGUgaW4gdGhpcyBwYWdlIGlzIFVQREFURWQvREVMRVRFZCwgdGhlIGFib3J0ZWQK KwkgKiB0dXBsZSB3b3VsZCBuZXZlciBvdGhlcndpc2UgYmUgcHJ1bmVkIHVudGlsIG5leHQgdmFj dXVtIGlzIHRyaWdnZXJlZC4KIAkgKgotCSAqIElmIHlvdSBkbyBhZGQgUGFnZVNldFBydW5hYmxl IGhlcmUsIGFkZCBpdCBpbiBoZWFwX3hsb2dfaW5zZXJ0IHRvby4KKwkgKiBEb24ndCBzZXQgaXQg aWYgd2UgYXJlIGluIGJvb3RzdHJhcCBtb2RlLCB0aG91Z2guCiAJICovCisJcGFnZSA9IEJ1ZmZl ckdldFBhZ2UoYnVmZmVyKTsKKwlpZiAoVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhpZCkpCisJCVBh Z2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOwogCiAJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CiAK QEAgLTIxODIsNyArMjE4Nyw2IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFw VHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQl4bF9oZWFwX2luc2VydCB4bHJlYzsKIAkJeGxf aGVhcF9oZWFkZXIgeGxoZHI7CiAJCVhMb2dSZWNQdHIJcmVjcHRyOwotCQlQYWdlCQlwYWdlID0g QnVmZmVyR2V0UGFnZShidWZmZXIpOwogCQl1aW50OAkJaW5mbyA9IFhMT0dfSEVBUF9JTlNFUlQ7 CiAJCWludAkJCWJ1ZmZsYWdzID0gMDsKIApAQCAtMjU0NSw4ICsyNTQ5LDEzIEBAIGhlYXBfbXVs dGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLCBpbnQg bnR1cGxlcywKIAkJfQogCiAJCS8qCi0JCSAqIFhYWCBTaG91bGQgd2Ugc2V0IFBhZ2VTZXRQcnVu YWJsZSBvbiB0aGlzIHBhZ2UgPyBTZWUgaGVhcF9pbnNlcnQoKQorCQkgKiBTZXQgcGRfcHJ1bmVf eGlkLiBTZWUgaGVhcF9pbnNlcnQoKSBmb3IgbW9yZSBvbiB3aHkgd2UgZG8gdGhpcyB3aGVuCisJ CSAqIGluc2VydGluZyB0dXBsZXMuIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpZiB3ZSBhcmVuJ3Qg YWxyZWFkeQorCQkgKiBzZXR0aW5nIHRoZSBwYWdlIGZyb3plbiBpbiB0aGUgVk0uIFdlIGFsc28g ZG9uJ3Qgc2V0IGl0IGluCisJCSAqIGJvb3RzdHJhcCBtb2RlLgogCQkgKi8KKwkJaWYgKCFhbGxf ZnJvemVuX3NldCAmJiBUcmFuc2FjdGlvbklkSXNOb3JtYWwoeGlkKSkKKwkJCVBhZ2VTZXRQcnVu YWJsZShwYWdlLCB4aWQpOwogCiAJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCBmZjNhZDhiNGNkMi4uZTdkNzgwNDg3MWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNDcwLDYgKzQ3MCwxMiBA QCBoZWFwX3hsb2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWZyZWVzcGFj ZSA9IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKHBhZ2UpOyAvKiBuZWVkZWQgdG8gdXBkYXRlIEZTTSBi ZWxvdyAqLwogCisJCS8qCisJCSAqIFNldCB0aGUgcGFnZSBwcnVuYWJsZSB0byB0cmlnZ2VyIG9u LWFjY2VzcyBwcnVuaW5nIGxhdGVyIHdoaWNoIG1heQorCQkgKiBzZXQgdGhlIHBhZ2UgYWxsLXZp c2libGUgaW4gdGhlIFZNLgorCQkgKi8KKwkJUGFnZVNldFBydW5hYmxlKHBhZ2UsIFhMb2dSZWNH ZXRYaWQocmVjb3JkKSk7CisKIAkJUGFnZVNldExTTihwYWdlLCBsc24pOwogCiAJCWlmICh4bHJl Yy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQpCkBAIC02MTksOSArNjI1 LDE2IEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJ CWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQpCiAJCQlQ YWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOwogCi0JCS8qIFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9T RVQgaW1wbGllcyB0aGF0IGFsbCB0dXBsZXMgYXJlIHZpc2libGUgKi8KKwkJLyoKKwkJICogWExI X0lOU0VSVF9BTExfRlJPWkVOX1NFVCBpbXBsaWVzIHRoYXQgYWxsIHR1cGxlcyBhcmUgdmlzaWJs ZS4gSWYKKwkJICogd2UgYXJlIG5vdCBzZXR0aW5nIHRoZSBwYWdlIGZyb3plbiwgdGhlbiBzZXQg dGhlIHBhZ2UncyBwcnVuYWJsZQorCQkgKiBoaW50IHNvIHRoYXQgd2UgdHJpZ2dlciBvbi1hY2Nl c3MgcHJ1bmluZyBsYXRlciB3aGljaCBtYXkgc2V0IHRoZQorCQkgKiBwYWdlIGFsbC12aXNpYmxl IGluIHRoZSBWTS4KKwkJICovCiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9G Uk9aRU5fU0VUKQogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CisJCWVsc2UKKwkJCVBhZ2VT ZXRQcnVuYWJsZShwYWdlLCBYTG9nUmVjR2V0WGlkKHJlY29yZCkpOwogCiAJCU1hcmtCdWZmZXJE aXJ0eShidWZmZXIpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9pbmRleC1raWxsdHVwbGVzLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9pbmRl eC1raWxsdHVwbGVzLm91dAppbmRleCBiZTdkZGQ3NTZlZi4uYjI5ZjI0MzRiMDAgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9pbmRleC1raWxsdHVwbGVzLm91dAorKysg Yi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvaW5kZXgta2lsbHR1cGxlcy5vdXQKQEAgLTU0 LDcgKzU0LDcgQEAgc3RlcCBmbHVzaDogU0VMRUNUIEZST00gcGdfc3RhdF9mb3JjZV9uZXh0X2Zs dXNoKCk7CiBzdGVwIHJlc3VsdDogU0VMRUNUIGhlYXBfYmxrc19yZWFkICsgaGVhcF9ibGtzX2hp dCAtIGNvdW50ZXIuaGVhcF9hY2Nlc3NlcyBBUyBuZXdfaGVhcF9hY2Nlc3NlcyBGUk9NIGNvdW50 ZXIsIHBnX3N0YXRpb19hbGxfdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAna2lsbF9wcmlvcl90dXBs ZSc7CiBuZXdfaGVhcF9hY2Nlc3NlcwogLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAg ICAxCisgICAgICAgICAgICAgICAgMgogKDEgcm93KQogCiBzdGVwIG1lYXN1cmU6IFVQREFURSBj b3VudGVyIFNFVCBoZWFwX2FjY2Vzc2VzID0gKFNFTEVDVCBoZWFwX2Jsa3NfcmVhZCArIGhlYXBf Ymxrc19oaXQgRlJPTSBwZ19zdGF0aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ2tpbGxf cHJpb3JfdHVwbGUnKTsKQEAgLTEzMCw3ICsxMzAsNyBAQCBzdGVwIGZsdXNoOiBTRUxFQ1QgRlJP TSBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKIHN0ZXAgcmVzdWx0OiBTRUxFQ1QgaGVhcF9i bGtzX3JlYWQgKyBoZWFwX2Jsa3NfaGl0IC0gY291bnRlci5oZWFwX2FjY2Vzc2VzIEFTIG5ld19o ZWFwX2FjY2Vzc2VzIEZST00gY291bnRlciwgcGdfc3RhdGlvX2FsbF90YWJsZXMgV0hFUkUgcmVs bmFtZSA9ICdraWxsX3ByaW9yX3R1cGxlJzsKIG5ld19oZWFwX2FjY2Vzc2VzCiAtLS0tLS0tLS0t LS0tLS0tLQotICAgICAgICAgICAgICAgIDEKKyAgICAgICAgICAgICAgICAyCiAoMSByb3cpCiAK IHN0ZXAgbWVhc3VyZTogVVBEQVRFIGNvdW50ZXIgU0VUIGhlYXBfYWNjZXNzZXMgPSAoU0VMRUNU IGhlYXBfYmxrc19yZWFkICsgaGVhcF9ibGtzX2hpdCBGUk9NIHBnX3N0YXRpb19hbGxfdGFibGVz IFdIRVJFIHJlbG5hbWUgPSAna2lsbF9wcmlvcl90dXBsZScpOwpAQCAtMjgzLDcgKzI4Myw3IEBA IHN0ZXAgZmx1c2g6IFNFTEVDVCBGUk9NIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOwogc3Rl cCByZXN1bHQ6IFNFTEVDVCBoZWFwX2Jsa3NfcmVhZCArIGhlYXBfYmxrc19oaXQgLSBjb3VudGVy LmhlYXBfYWNjZXNzZXMgQVMgbmV3X2hlYXBfYWNjZXNzZXMgRlJPTSBjb3VudGVyLCBwZ19zdGF0 aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ2tpbGxfcHJpb3JfdHVwbGUnOwogbmV3X2hl YXBfYWNjZXNzZXMKIC0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgMQorICAgICAg ICAgICAgICAgIDIKICgxIHJvdykKIAogc3RlcCBtZWFzdXJlOiBVUERBVEUgY291bnRlciBTRVQg aGVhcF9hY2Nlc3NlcyA9IChTRUxFQ1QgaGVhcF9ibGtzX3JlYWQgKyBoZWFwX2Jsa3NfaGl0IEZS T00gcGdfc3RhdGlvX2FsbF90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICdraWxsX3ByaW9yX3R1cGxl Jyk7Ci0tIAoyLjQzLjAKCg== --0000000000009d4adf063e4c10aa--