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 1tgZPI-00BnXH-Du for pgsql-hackers@arkaria.postgresql.org; Sat, 08 Feb 2025 01:13:17 +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 1tgZPG-0079d7-L8 for pgsql-hackers@arkaria.postgresql.org; Sat, 08 Feb 2025 01:13:14 +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 1tgZPG-0079cy-1f for pgsql-hackers@lists.postgresql.org; Sat, 08 Feb 2025 01:13:14 +0000 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tgZPC-004T5H-1G for pgsql-hackers@postgresql.org; Sat, 08 Feb 2025 01:13:13 +0000 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-21f6d2642faso2288535ad.1 for ; Fri, 07 Feb 2025 17:13:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1738977188; x=1739581988; darn=postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=phm/2ADY7unJeU4Sg2suVV5kHrfzbTIiqFaIJm3qbtQ=; b=ZDVbzL4EAwTjojmuim2B/naockSPZbCZcTUtaR37d9tA+wYsFeYH7u5xK4PwWmeIfd /lFumzfPfS6hmzFJg5clYNGDAZhclrxnTa/DhCbuJk1s20mteKBDyPYCIcpjMwtPYV7g D1YAfSbaqcH4AzPqWTZ4s9QLmIv/ssOIpJ802JDHM26ozPI63fwVou1DpwSkgLwLtR1a slawleyz3CQGZw/TWMwUtj6skR93UzDof8NLfR69qFcInB2VspbXghZhZOMF6t94Y60T 1na8GqUQKrQROd6qGzvccvPpd7H2r+dXd41AdrI1o+MfJ6xGeOkuO76DvB0j+H1IhjvX qbog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738977188; x=1739581988; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=phm/2ADY7unJeU4Sg2suVV5kHrfzbTIiqFaIJm3qbtQ=; b=xO46HeH9rVsKr27IrqHdvh2nQ1FkJ0ahBU256nFQB+wP9tcfAnGlRZyTdZBdKpSkDi /2QG2GJHplIlHee4VQh3zwRV/6xt6H4S02UztGvf74AM4iWI5Tf9X5MQqzFV5Dwxg3Fz 8xKpxuGh3mD4XfYC16GcXtLlETqMoHLdD4SEgHNBizDySVkFU6KS5ueyqQkiO/4FO4Q4 btFhU0Ezc/AeFmogcUb/Jb6758BvgiGSgHHQCO7cmKlvGIetKsDRl9NEEyPv0qbw/fEn vxKmlf5Df0WvNdX32VhNnVgyN/p8gztdoKNqEnlfhlPxr1L4zAGSvkg+TZtRlC3xjXS5 oGog== X-Forwarded-Encrypted: i=1; AJvYcCWeoycM8GaDU5ugYd1vAL4fzFXk3NFNw6TgYlVahtU1MBIkrd6efpXyofvnvj4beN464KVZYQ8ygWEGikiz@postgresql.org X-Gm-Message-State: AOJu0Yy9ZZ0DMaeb3Fu/7O1tRfj6isAPGNfGfLeefm29RK9vFkYAKYXd dyK+RDuZmg9Isc39F6IsTmflggluzeeTMmz45gdD0b4Nh690QGq1Jc6+t45akg== X-Gm-Gg: ASbGncuiQzXah99TEt7n/ksiAshSII5D6uVHd9ebAXOQCaTFlVEHb7VD+v+A9cEyUdE n6IKXOpz/MA8E8tB3THLJXkl+1TpjTCmExZ4dBDF0NEbzEDiNtL+lF8FZLQLhuThu5hfiJv920h GlE916QfqgWUkv6bHtw/3IgUOsfsgnefFUQEQbCZ4zL5NJqb+NGLxsd8W9OCSdwg+oLcQ+HtLXc jromhjMBsZRxxP4aHfA9l2SWN/sOZV6FUMnwuFE2x3aVGg3NAdE3AY11CKt1k3vAYiE/bUGOqNy l+Ri13XBZ1clenA2nxy5rGq3WzKHaPgNUZAyPLE6wPaYW84B31oUu5QqqA== X-Google-Smtp-Source: AGHT+IHnkTYbTuVlMvc0kP0bIPpe07JW30bpIIqaNwesLuzRHc6TZCB2Tjzcu54XTg4naCzeU29N1g== X-Received: by 2002:a05:6a20:9f43:b0:1e3:e836:8aea with SMTP id adf61e73a8af0-1ee03a42a0emr10420571637.14.1738977188190; Fri, 07 Feb 2025 17:13:08 -0800 (PST) Received: from jeff-laptop.lan (c-76-102-242-158.hsd1.ca.comcast.net. [76.102.242.158]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-730574176e5sm2848140b3a.63.2025.02.07.17.13.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Feb 2025 17:13:07 -0800 (PST) Message-ID: <09b325921e50bc3a3217fb01d8eb512c89ee36f1.camel@j-davis.com> Subject: Re: Reduce TupleHashEntryData struct size by half From: Jeff Davis To: David Rowley Cc: Heikki Linnakangas , pgsql-hackers@postgresql.org Date: Fri, 07 Feb 2025 17:13:06 -0800 In-Reply-To: References: <817d244237878cebdff0bc363718feaf49a1ea7d.camel@j-davis.com> <0f3e7407-fb19-42c0-ad10-46eace6c1399@iki.fi> <7c3224111d9edcc16e8e3c8242de5a82c4ee2a73.camel@j-davis.com> <7530bd8783b1a78d53a3c70383e38d8da0a5ffe5.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-nvqeBMJeafaW83v1gBVZ" User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-nvqeBMJeafaW83v1gBVZ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, 2025-01-12 at 14:54 +1300, David Rowley wrote: > I wonder if there's some other better way of doing this. Would it be > worth having some function like ExecCopySlotMinimalTuple() that > accepts an additional parameter so that the palloc allocates N more > bytes at the end? Attached a new series that implements this idea. I also added in the change to use the Bump allocator for the tablecxt. In my simple test, the whole patch series reduces HashAgg memory usage by more than 40% and increases speed by a few percent. In your test, patch 0003 seemed to have a regression, but then 0007 made up for it (and maybe a hair faster). I investigated, but the profile was a bit misleading so I'm not clear on why 0003 came out slower. I can investigate further, but the primary purpose of this patch series is reducing memory usage, so as long as the overall series has no regression then I think it's fine. Regards, Jeff Davis --=-nvqeBMJeafaW83v1gBVZ Content-Disposition: attachment; filename="v6-0001-Create-accessor-functions-for-TupleHashEntry.patch" Content-Type: text/x-patch; name="v6-0001-Create-accessor-functions-for-TupleHashEntry.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5YzAxYjlhYzhlMWY1MWQxOWY0YTgzNTIxZmUxZWQ5ODc4MjcwMWYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDEzIEphbiAyMDI1IDE0OjM3OjAyIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2NiAxLzddIENy ZWF0ZSBhY2Nlc3NvciBmdW5jdGlvbnMgZm9yIFR1cGxlSGFzaEVudHJ5LgoKLS0tCiBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjR3JvdXBpbmcuYyB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysr KysrKy0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQWdnLmMgICAgICB8IDIwICsrKysrLS0t LS0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNldE9wLmMgICAgfCAxNyArKysrKy0tLS0t CiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU3VicGxhbi5jICB8ICAyICstCiBzcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oICAgICB8ICAzICsrCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaCAgICAgICB8IDExICsrLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9u cygrKSwgMzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0dyb3VwaW5nLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjR3JvdXBpbmcuYwppbmRl eCAzM2IxMjRmYmIwYS4uNjc2M2MzNTQ1N2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNHcm91cGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNHcm91cGlu Zy5jCkBAIC0yMCw2ICsyMCwxNCBAQAogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUg InV0aWxzL2xzeXNjYWNoZS5oIgogCitzdHJ1Y3QgVHVwbGVIYXNoRW50cnlEYXRhCit7CisJTWlu aW1hbFR1cGxlIGZpcnN0VHVwbGU7CS8qIGNvcHkgb2YgZmlyc3QgdHVwbGUgaW4gdGhpcyBncm91 cCAqLworCXZvaWQJICAgKmFkZGl0aW9uYWw7CQkvKiB1c2VyIGRhdGEgKi8KKwl1aW50MzIJCXN0 YXR1czsJCQkvKiBoYXNoIHN0YXR1cyAqLworCXVpbnQzMgkJaGFzaDsJCQkvKiBoYXNoIHZhbHVl IChjYWNoZWQpICovCit9OworCiBzdGF0aWMgaW50CVR1cGxlSGFzaFRhYmxlTWF0Y2goc3RydWN0 IHR1cGxlaGFzaF9oYXNoICp0YiwgY29uc3QgTWluaW1hbFR1cGxlIHR1cGxlMSwgY29uc3QgTWlu aW1hbFR1cGxlIHR1cGxlMik7CiBzdGF0aWMgaW5saW5lIHVpbnQzMiBUdXBsZUhhc2hUYWJsZUhh c2hfaW50ZXJuYWwoc3RydWN0IHR1cGxlaGFzaF9oYXNoICp0YiwKIAkJCQkJCQkJCQkJCSBjb25z dCBNaW5pbWFsVHVwbGUgdHVwbGUpOwpAQCAtMTk2LDYgKzIwNCw3IEBAIEJ1aWxkVHVwbGVIYXNo VGFibGUoUGxhblN0YXRlICpwYXJlbnQsCiAJaGFzaHRhYmxlLT50YWJfY29sbGF0aW9ucyA9IGNv bGxhdGlvbnM7CiAJaGFzaHRhYmxlLT50YWJsZWN4dCA9IHRhYmxlY3h0OwogCWhhc2h0YWJsZS0+ dGVtcGN4dCA9IHRlbXBjeHQ7CisJaGFzaHRhYmxlLT5hZGRpdGlvbmFsc2l6ZSA9IGFkZGl0aW9u YWxzaXplOwogCWhhc2h0YWJsZS0+dGFibGVzbG90ID0gTlVMTDsJLyogd2lsbCBiZSBtYWRlIG9u IGZpcnN0IGxvb2t1cCAqLwogCWhhc2h0YWJsZS0+aW5wdXRzbG90ID0gTlVMTDsKIAloYXNodGFi bGUtPmluX2hhc2hfZXhwciA9IE5VTEw7CkBAIC0yNzMsNiArMjgyLDM3IEBAIFJlc2V0VHVwbGVI YXNoVGFibGUoVHVwbGVIYXNoVGFibGUgaGFzaHRhYmxlKQogCXR1cGxlaGFzaF9yZXNldChoYXNo dGFibGUtPmhhc2h0YWIpOwogfQogCisvKgorICogUmV0dXJuIHNpemUgb2YgdGhlIGhhc2ggYnVj a2V0LiBVc2VmdWwgZm9yIGVzdGltYXRpbmcgbWVtb3J5IHVzYWdlLgorICovCitzaXplX3QKK1R1 cGxlSGFzaEVudHJ5U2l6ZSh2b2lkKQoreworCXJldHVybiBzaXplb2YoVHVwbGVIYXNoRW50cnlE YXRhKTsKK30KKworLyoKKyAqIFJldHVybiB0dXBsZSBmcm9tIGhhc2ggZW50cnkuCisgKi8KK01p bmltYWxUdXBsZQorVHVwbGVIYXNoRW50cnlHZXRUdXBsZShUdXBsZUhhc2hFbnRyeSBlbnRyeSkK K3sKKwlyZXR1cm4gZW50cnktPmZpcnN0VHVwbGU7Cit9CisKKy8qCisgKiBHZXQgYSBwb2ludGVy IGludG8gdGhlIGFkZGl0aW9uYWwgc3BhY2UgYWxsb2NhdGVkIGZvciB0aGlzIGVudHJ5LiBUaGUK KyAqIGFtb3VudCBvZiBzcGFjZSBhdmFpbGFibGUgaXMgdGhlIGFkZGl0aW9uYWxzaXplIHNwZWNp ZmllZCB0bworICogQnVpbGRUdXBsZUhhc2hUYWJsZSgpLiBJZiBhZGRpdGlvbmFsc2l6ZSB3YXMg c3BlY2lmaWVkIGFzIHplcm8sIG5vCisgKiBhZGRpdGlvbmFsIHNwYWNlIGlzIGF2YWlsYWJsZSBh bmQgdGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZC4KKyAqLwordm9pZCAqCitUdXBs ZUhhc2hFbnRyeUdldEFkZGl0aW9uYWwoVHVwbGVIYXNoRW50cnkgZW50cnkpCit7CisJQXNzZXJ0 KGVudHJ5LT5hZGRpdGlvbmFsICE9IE5VTEwpOworCXJldHVybiBlbnRyeS0+YWRkaXRpb25hbDsK K30KKwogLyoKICAqIEZpbmQgb3IgY3JlYXRlIGEgaGFzaHRhYmxlIGVudHJ5IGZvciB0aGUgdHVw bGUgZ3JvdXAgY29udGFpbmluZyB0aGUKICAqIGdpdmVuIHR1cGxlLiAgVGhlIHR1cGxlIG11c3Qg YmUgdGhlIHNhbWUgdHlwZSBhcyB0aGUgaGFzaHRhYmxlIGVudHJpZXMuCkBAIC00NzksMTEgKzUx OSwxNiBAQCBMb29rdXBUdXBsZUhhc2hFbnRyeV9pbnRlcm5hbChUdXBsZUhhc2hUYWJsZSBoYXNo dGFibGUsIFR1cGxlVGFibGVTbG90ICpzbG90LAogCQl7CiAJCQkvKiBjcmVhdGVkIG5ldyBlbnRy eSAqLwogCQkJKmlzbmV3ID0gdHJ1ZTsKLQkJCS8qIHplcm8gY2FsbGVyIGRhdGEgKi8KLQkJCWVu dHJ5LT5hZGRpdGlvbmFsID0gTlVMTDsKKwogCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKGhhc2h0 YWJsZS0+dGFibGVjeHQpOworCiAJCQkvKiBDb3B5IHRoZSBmaXJzdCB0dXBsZSBpbnRvIHRoZSB0 YWJsZSBjb250ZXh0ICovCiAJCQllbnRyeS0+Zmlyc3RUdXBsZSA9IEV4ZWNDb3B5U2xvdE1pbmlt YWxUdXBsZShzbG90KTsKKworCQkJaWYgKGhhc2h0YWJsZS0+YWRkaXRpb25hbHNpemUgPiAwKQor CQkJCWVudHJ5LT5hZGRpdGlvbmFsID0gcGFsbG9jMChoYXNodGFibGUtPmFkZGl0aW9uYWxzaXpl KTsKKwkJCWVsc2UKKwkJCQllbnRyeS0+YWRkaXRpb25hbCA9IE5VTEw7CiAJCX0KIAl9CiAJZWxz ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUFnZy5jCmluZGV4IDMwMDViNWMwZTNiLi4xOTY0MDc1Mjk2NyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVBZ2cuYwpAQCAtMTcxMyw3ICsxNzEzLDcgQEAgaGFzaF9hZ2dfZW50cnlf c2l6ZShpbnQgbnVtVHJhbnMsIFNpemUgdHVwbGVXaWR0aCwgU2l6ZSB0cmFuc2l0aW9uU3BhY2Up CiAJCXRyYW5zaXRpb25DaHVua1NpemUgPSAwOwogCiAJcmV0dXJuCi0JCXNpemVvZihUdXBsZUhh c2hFbnRyeURhdGEpICsKKwkJVHVwbGVIYXNoRW50cnlTaXplKCkgKwogCQl0dXBsZUNodW5rU2l6 ZSArCiAJCXBlcmdyb3VwQ2h1bmtTaXplICsKIAkJdHJhbnNpdGlvbkNodW5rU2l6ZTsKQEAgLTE5 NTQsNyArMTk1NCw3IEBAIGhhc2hfYWdnX3VwZGF0ZV9tZXRyaWNzKEFnZ1N0YXRlICphZ2dzdGF0 ZSwgYm9vbCBmcm9tX3RhcGUsIGludCBucGFydGl0aW9ucykKIAlpZiAoYWdnc3RhdGUtPmhhc2hf bmdyb3Vwc19jdXJyZW50ID4gMCkKIAl7CiAJCWFnZ3N0YXRlLT5oYXNoZW50cnlzaXplID0KLQkJ CXNpemVvZihUdXBsZUhhc2hFbnRyeURhdGEpICsKKwkJCVR1cGxlSGFzaEVudHJ5U2l6ZSgpICsK IAkJCShoYXNoa2V5X21lbSAvIChkb3VibGUpIGFnZ3N0YXRlLT5oYXNoX25ncm91cHNfY3VycmVu dCk7CiAJfQogfQpAQCAtMjA1NSwxMSArMjA1NSw3IEBAIGluaXRpYWxpemVfaGFzaF9lbnRyeShB Z2dTdGF0ZSAqYWdnc3RhdGUsIFR1cGxlSGFzaFRhYmxlIGhhc2h0YWJsZSwKIAlpZiAoYWdnc3Rh dGUtPm51bXRyYW5zID09IDApCiAJCXJldHVybjsKIAotCXBlcmdyb3VwID0gKEFnZ1N0YXRlUGVy R3JvdXApCi0JCU1lbW9yeUNvbnRleHRBbGxvYyhoYXNodGFibGUtPnRhYmxlY3h0LAotCQkJCQkJ ICAgc2l6ZW9mKEFnZ1N0YXRlUGVyR3JvdXBEYXRhKSAqIGFnZ3N0YXRlLT5udW10cmFucyk7Ci0K LQllbnRyeS0+YWRkaXRpb25hbCA9IHBlcmdyb3VwOworCXBlcmdyb3VwID0gKEFnZ1N0YXRlUGVy R3JvdXApIFR1cGxlSGFzaEVudHJ5R2V0QWRkaXRpb25hbChlbnRyeSk7CiAKIAkvKgogCSAqIElu aXRpYWxpemUgYWdncmVnYXRlcyBmb3IgbmV3IHR1cGxlIGdyb3VwLCBsb29rdXBfaGFzaF9lbnRy aWVzKCkKQEAgLTIxMjMsNyArMjExOSw3IEBAIGxvb2t1cF9oYXNoX2VudHJpZXMoQWdnU3RhdGUg KmFnZ3N0YXRlKQogCQl7CiAJCQlpZiAoaXNuZXcpCiAJCQkJaW5pdGlhbGl6ZV9oYXNoX2VudHJ5 KGFnZ3N0YXRlLCBoYXNodGFibGUsIGVudHJ5KTsKLQkJCXBlcmdyb3VwW3NldG5vXSA9IGVudHJ5 LT5hZGRpdGlvbmFsOworCQkJcGVyZ3JvdXBbc2V0bm9dID0gVHVwbGVIYXNoRW50cnlHZXRBZGRp dGlvbmFsKGVudHJ5KTsKIAkJfQogCQllbHNlCiAJCXsKQEAgLTI2ODEsNyArMjY3Nyw3IEBAIGFn Z19yZWZpbGxfaGFzaF90YWJsZShBZ2dTdGF0ZSAqYWdnc3RhdGUpCiAJCXsKIAkJCWlmIChpc25l dykKIAkJCQlpbml0aWFsaXplX2hhc2hfZW50cnkoYWdnc3RhdGUsIHBlcmhhc2gtPmhhc2h0YWJs ZSwgZW50cnkpOwotCQkJYWdnc3RhdGUtPmhhc2hfcGVyZ3JvdXBbYmF0Y2gtPnNldG5vXSA9IGVu dHJ5LT5hZGRpdGlvbmFsOworCQkJYWdnc3RhdGUtPmhhc2hfcGVyZ3JvdXBbYmF0Y2gtPnNldG5v XSA9IFR1cGxlSGFzaEVudHJ5R2V0QWRkaXRpb25hbChlbnRyeSk7CiAJCQlhZHZhbmNlX2FnZ3Jl Z2F0ZXMoYWdnc3RhdGUpOwogCQl9CiAJCWVsc2UKQEAgLTI3NzMsNyArMjc2OSw3IEBAIGFnZ19y ZXRyaWV2ZV9oYXNoX3RhYmxlX2luX21lbW9yeShBZ2dTdGF0ZSAqYWdnc3RhdGUpCiAJRXhwckNv bnRleHQgKmVjb250ZXh0OwogCUFnZ1N0YXRlUGVyQWdnIHBlcmFnZzsKIAlBZ2dTdGF0ZVBlckdy b3VwIHBlcmdyb3VwOwotCVR1cGxlSGFzaEVudHJ5RGF0YSAqZW50cnk7CisJVHVwbGVIYXNoRW50 cnkgZW50cnk7CiAJVHVwbGVUYWJsZVNsb3QgKmZpcnN0U2xvdDsKIAlUdXBsZVRhYmxlU2xvdCAq cmVzdWx0OwogCUFnZ1N0YXRlUGVySGFzaCBwZXJoYXNoOwpAQCAtMjg0NSw3ICsyODQxLDcgQEAg YWdnX3JldHJpZXZlX2hhc2hfdGFibGVfaW5fbWVtb3J5KEFnZ1N0YXRlICphZ2dzdGF0ZSkKIAkJ ICogVHJhbnNmb3JtIHJlcHJlc2VudGF0aXZlIHR1cGxlIGJhY2sgaW50byBvbmUgd2l0aCB0aGUg cmlnaHQKIAkJICogY29sdW1ucy4KIAkJICovCi0JCUV4ZWNTdG9yZU1pbmltYWxUdXBsZShlbnRy eS0+Zmlyc3RUdXBsZSwgaGFzaHNsb3QsIGZhbHNlKTsKKwkJRXhlY1N0b3JlTWluaW1hbFR1cGxl KFR1cGxlSGFzaEVudHJ5R2V0VHVwbGUoZW50cnkpLCBoYXNoc2xvdCwgZmFsc2UpOwogCQlzbG90 X2dldGFsbGF0dHJzKGhhc2hzbG90KTsKIAogCQlFeGVjQ2xlYXJUdXBsZShmaXJzdFNsb3QpOwpA QCAtMjg2MSw3ICsyODU3LDcgQEAgYWdnX3JldHJpZXZlX2hhc2hfdGFibGVfaW5fbWVtb3J5KEFn Z1N0YXRlICphZ2dzdGF0ZSkKIAkJfQogCQlFeGVjU3RvcmVWaXJ0dWFsVHVwbGUoZmlyc3RTbG90 KTsKIAotCQlwZXJncm91cCA9IChBZ2dTdGF0ZVBlckdyb3VwKSBlbnRyeS0+YWRkaXRpb25hbDsK KwkJcGVyZ3JvdXAgPSAoQWdnU3RhdGVQZXJHcm91cCkgVHVwbGVIYXNoRW50cnlHZXRBZGRpdGlv bmFsKGVudHJ5KTsKIAogCQkvKgogCQkgKiBVc2UgdGhlIHJlcHJlc2VudGF0aXZlIGlucHV0IHR1 cGxlIGZvciBhbnkgcmVmZXJlbmNlcyB0bwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVNldE9wLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2V0T3AuYwppbmRleCA1 YjdmZjljMzc0OC4uMmE1MGQ1NmZjODcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVTZXRPcC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXRPcC5jCkBAIC00 MjUsNiArNDI1LDcgQEAgc2V0b3BfZmlsbF9oYXNoX3RhYmxlKFNldE9wU3RhdGUgKnNldG9wc3Rh dGUpCiAJewogCQlUdXBsZVRhYmxlU2xvdCAqb3V0ZXJzbG90OwogCQlUdXBsZUhhc2hFbnRyeURh dGEgKmVudHJ5OworCQlTZXRPcFN0YXRlUGVyR3JvdXAgcGVyZ3JvdXA7CiAJCWJvb2wJCWlzbmV3 OwogCiAJCW91dGVyc2xvdCA9IEV4ZWNQcm9jTm9kZShvdXRlclBsYW4pOwpAQCAtNDM3LDE2ICs0 MzgsMTYgQEAgc2V0b3BfZmlsbF9oYXNoX3RhYmxlKFNldE9wU3RhdGUgKnNldG9wc3RhdGUpCiAJ CQkJCQkJCQkgb3V0ZXJzbG90LAogCQkJCQkJCQkJICZpc25ldywgTlVMTCk7CiAKKwkJcGVyZ3Jv dXAgPSBUdXBsZUhhc2hFbnRyeUdldEFkZGl0aW9uYWwoZW50cnkpOwogCQkvKiBJZiBuZXcgdHVw bGUgZ3JvdXAsIGluaXRpYWxpemUgY291bnRzIHRvIHplcm8gKi8KIAkJaWYgKGlzbmV3KQogCQl7 Ci0JCQllbnRyeS0+YWRkaXRpb25hbCA9IChTZXRPcFN0YXRlUGVyR3JvdXApCi0JCQkJTWVtb3J5 Q29udGV4dEFsbG9jWmVybyhzZXRvcHN0YXRlLT5oYXNodGFibGUtPnRhYmxlY3h0LAotCQkJCQkJ CQkJICAgc2l6ZW9mKFNldE9wU3RhdGVQZXJHcm91cERhdGEpKTsKKwkJCXBlcmdyb3VwLT5udW1M ZWZ0ID0gMDsKKwkJCXBlcmdyb3VwLT5udW1SaWdodCA9IDA7CiAJCX0KIAogCQkvKiBBZHZhbmNl IHRoZSBjb3VudHMgKi8KLQkJKChTZXRPcFN0YXRlUGVyR3JvdXApIGVudHJ5LT5hZGRpdGlvbmFs KS0+bnVtTGVmdCsrOworCQlwZXJncm91cC0+bnVtTGVmdCsrOwogCiAJCS8qIE11c3QgcmVzZXQg ZXhwcmVzc2lvbiBjb250ZXh0IGFmdGVyIGVhY2ggaGFzaHRhYmxlIGxvb2t1cCAqLwogCQlSZXNl dEV4cHJDb250ZXh0KGVjb250ZXh0KTsKQEAgLTQ3OCw3ICs0NzksNyBAQCBzZXRvcF9maWxsX2hh c2hfdGFibGUoU2V0T3BTdGF0ZSAqc2V0b3BzdGF0ZSkKIAogCQkJLyogQWR2YW5jZSB0aGUgY291 bnRzIGlmIGVudHJ5IGlzIGFscmVhZHkgcHJlc2VudCAqLwogCQkJaWYgKGVudHJ5KQotCQkJCSgo U2V0T3BTdGF0ZVBlckdyb3VwKSBlbnRyeS0+YWRkaXRpb25hbCktPm51bVJpZ2h0Kys7CisJCQkJ KChTZXRPcFN0YXRlUGVyR3JvdXApIFR1cGxlSGFzaEVudHJ5R2V0QWRkaXRpb25hbChlbnRyeSkp LT5udW1SaWdodCsrOwogCiAJCQkvKiBNdXN0IHJlc2V0IGV4cHJlc3Npb24gY29udGV4dCBhZnRl ciBlYWNoIGhhc2h0YWJsZSBsb29rdXAgKi8KIAkJCVJlc2V0RXhwckNvbnRleHQoZWNvbnRleHQp OwpAQCAtNDk2LDcgKzQ5Nyw3IEBAIHNldG9wX2ZpbGxfaGFzaF90YWJsZShTZXRPcFN0YXRlICpz ZXRvcHN0YXRlKQogc3RhdGljIFR1cGxlVGFibGVTbG90ICoKIHNldG9wX3JldHJpZXZlX2hhc2hf dGFibGUoU2V0T3BTdGF0ZSAqc2V0b3BzdGF0ZSkKIHsKLQlUdXBsZUhhc2hFbnRyeURhdGEgKmVu dHJ5OworCVR1cGxlSGFzaEVudHJ5IGVudHJ5OwogCVR1cGxlVGFibGVTbG90ICpyZXN1bHRUdXBs ZVNsb3Q7CiAKIAkvKgpAQCAtNTI2LDEyICs1MjcsMTIgQEAgc2V0b3BfcmV0cmlldmVfaGFzaF90 YWJsZShTZXRPcFN0YXRlICpzZXRvcHN0YXRlKQogCQkgKiBTZWUgaWYgd2Ugc2hvdWxkIGVtaXQg YW55IGNvcGllcyBvZiB0aGlzIHR1cGxlLCBhbmQgaWYgc28gcmV0dXJuCiAJCSAqIHRoZSBmaXJz dCBjb3B5LgogCQkgKi8KLQkJc2V0X291dHB1dF9jb3VudChzZXRvcHN0YXRlLCAoU2V0T3BTdGF0 ZVBlckdyb3VwKSBlbnRyeS0+YWRkaXRpb25hbCk7CisJCXNldF9vdXRwdXRfY291bnQoc2V0b3Bz dGF0ZSwgKFNldE9wU3RhdGVQZXJHcm91cCkgVHVwbGVIYXNoRW50cnlHZXRBZGRpdGlvbmFsKGVu dHJ5KSk7CiAKIAkJaWYgKHNldG9wc3RhdGUtPm51bU91dHB1dCA+IDApCiAJCXsKIAkJCXNldG9w c3RhdGUtPm51bU91dHB1dC0tOwotCQkJcmV0dXJuIEV4ZWNTdG9yZU1pbmltYWxUdXBsZShlbnRy eS0+Zmlyc3RUdXBsZSwKKwkJCXJldHVybiBFeGVjU3RvcmVNaW5pbWFsVHVwbGUoVHVwbGVIYXNo RW50cnlHZXRUdXBsZShlbnRyeSksCiAJCQkJCQkJCQkJIHJlc3VsdFR1cGxlU2xvdCwKIAkJCQkJ CQkJCQkgZmFsc2UpOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl U3VicGxhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVN1YnBsYW4uYwppbmRleCA0OTc2 N2VkNmE1Mi4uZjdmNmZjMmRhMGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVTdWJwbGFuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVN1YnBsYW4uYwpAQCAt NzUzLDcgKzc1Myw3IEBAIGZpbmRQYXJ0aWFsTWF0Y2goVHVwbGVIYXNoVGFibGUgaGFzaHRhYmxl LCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIAl7CiAJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CiAK LQkJRXhlY1N0b3JlTWluaW1hbFR1cGxlKGVudHJ5LT5maXJzdFR1cGxlLCBoYXNodGFibGUtPnRh Ymxlc2xvdCwgZmFsc2UpOworCQlFeGVjU3RvcmVNaW5pbWFsVHVwbGUoVHVwbGVIYXNoRW50cnlH ZXRUdXBsZShlbnRyeSksIGhhc2h0YWJsZS0+dGFibGVzbG90LCBmYWxzZSk7CiAJCWlmICghZXhl Y1R1cGxlc1VuZXF1YWwoc2xvdCwgaGFzaHRhYmxlLT50YWJsZXNsb3QsCiAJCQkJCQkJICAgbnVt Q29scywga2V5Q29sSWR4LAogCQkJCQkJCSAgIGVxZnVuY3Rpb25zLApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1 dG9yLmgKaW5kZXggMzBlMmE4MjM0NmYuLjI2ZDE4NzdiMWYzIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9leGVjdXRvci9leGVjdXRvci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1 dG9yLmgKQEAgLTE0OCw2ICsxNDgsOSBAQCBleHRlcm4gVHVwbGVIYXNoRW50cnkgTG9va3VwVHVw bGVIYXNoRW50cnkoVHVwbGVIYXNoVGFibGUgaGFzaHRhYmxlLAogCQkJCQkJCQkJCSAgIGJvb2wg KmlzbmV3LCB1aW50MzIgKmhhc2gpOwogZXh0ZXJuIHVpbnQzMiBUdXBsZUhhc2hUYWJsZUhhc2go VHVwbGVIYXNoVGFibGUgaGFzaHRhYmxlLAogCQkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKnNsb3Qp OworZXh0ZXJuIHNpemVfdCBUdXBsZUhhc2hFbnRyeVNpemUodm9pZCk7CitleHRlcm4gTWluaW1h bFR1cGxlIFR1cGxlSGFzaEVudHJ5R2V0VHVwbGUoVHVwbGVIYXNoRW50cnkgZW50cnkpOworZXh0 ZXJuIHZvaWQgKlR1cGxlSGFzaEVudHJ5R2V0QWRkaXRpb25hbChUdXBsZUhhc2hFbnRyeSBlbnRy eSk7CiBleHRlcm4gVHVwbGVIYXNoRW50cnkgTG9va3VwVHVwbGVIYXNoRW50cnlIYXNoKFR1cGxl SGFzaFRhYmxlIGhhc2h0YWJsZSwKIAkJCQkJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnNsb3Qs CiAJCQkJCQkJCQkJCSAgIGJvb2wgKmlzbmV3LCB1aW50MzIgaGFzaCk7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rl cy5oCmluZGV4IGUyZDFkYzFlMDY3Li5kNDZjZTliNDk5NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgK QEAgLTgzMSwxNyArODMxLDExIEBAIHR5cGVkZWYgc3RydWN0IEV4ZWNBdXhSb3dNYXJrCiAgKiBw b2ludCB0byB0YWJfaGFzaF9leHByIGFuZCB0YWJfZXFfZnVuYyByZXNwZWN0aXZlbHkuCiAgKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgKi8KK3N0cnVjdCBUdXBsZUhhc2hFbnRyeURhdGE7Cit0eXBlZGVmIHN0cnVjdCBU dXBsZUhhc2hFbnRyeURhdGEgVHVwbGVIYXNoRW50cnlEYXRhOwogdHlwZWRlZiBzdHJ1Y3QgVHVw bGVIYXNoRW50cnlEYXRhICpUdXBsZUhhc2hFbnRyeTsKIHR5cGVkZWYgc3RydWN0IFR1cGxlSGFz aFRhYmxlRGF0YSAqVHVwbGVIYXNoVGFibGU7CiAKLXR5cGVkZWYgc3RydWN0IFR1cGxlSGFzaEVu dHJ5RGF0YQotewotCU1pbmltYWxUdXBsZSBmaXJzdFR1cGxlOwkvKiBjb3B5IG9mIGZpcnN0IHR1 cGxlIGluIHRoaXMgZ3JvdXAgKi8KLQl2b2lkCSAgICphZGRpdGlvbmFsOwkJLyogdXNlciBkYXRh ICovCi0JdWludDMyCQlzdGF0dXM7CQkJLyogaGFzaCBzdGF0dXMgKi8KLQl1aW50MzIJCWhhc2g7 CQkJLyogaGFzaCB2YWx1ZSAoY2FjaGVkKSAqLwotfSBUdXBsZUhhc2hFbnRyeURhdGE7Ci0KIC8q IGRlZmluZSBwYXJhbWV0ZXJzIG5lY2Vzc2FyeSB0byBnZW5lcmF0ZSB0aGUgdHVwbGUgaGFzaCB0 YWJsZSBpbnRlcmZhY2UgKi8KICNkZWZpbmUgU0hfUFJFRklYIHR1cGxlaGFzaAogI2RlZmluZSBT SF9FTEVNRU5UX1RZUEUgVHVwbGVIYXNoRW50cnlEYXRhCkBAIC04NjAsNiArODU0LDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgVHVwbGVIYXNoVGFibGVEYXRhCiAJT2lkCQkgICAqdGFiX2NvbGxhdGlvbnM7 IC8qIGNvbGxhdGlvbnMgZm9yIGhhc2ggYW5kIGNvbXBhcmlzb24gKi8KIAlNZW1vcnlDb250ZXh0 IHRhYmxlY3h0OwkJLyogbWVtb3J5IGNvbnRleHQgY29udGFpbmluZyB0YWJsZSAqLwogCU1lbW9y eUNvbnRleHQgdGVtcGN4dDsJCS8qIGNvbnRleHQgZm9yIGZ1bmN0aW9uIGV2YWx1YXRpb25zICov CisJU2l6ZQkJYWRkaXRpb25hbHNpemU7IC8qIHNpemUgb2YgYWRkaXRpb25hbCBkYXRhICovCiAJ VHVwbGVUYWJsZVNsb3QgKnRhYmxlc2xvdDsJLyogc2xvdCBmb3IgcmVmZXJlbmNpbmcgdGFibGUg ZW50cmllcyAqLwogCS8qIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSBzZXQgdHJhbnNpZW50bHkg Zm9yIGVhY2ggdGFibGUgc2VhcmNoOiAqLwogCVR1cGxlVGFibGVTbG90ICppbnB1dHNsb3Q7CS8q IGN1cnJlbnQgaW5wdXQgdHVwbGUncyBzbG90ICovCi0tIAoyLjM0LjEKCg== --=-nvqeBMJeafaW83v1gBVZ Content-Disposition: attachment; filename="v6-0002-Add-ExecCopySlotMinimalTupleExtra.patch" Content-Type: text/x-patch; name="v6-0002-Add-ExecCopySlotMinimalTupleExtra.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA1ZGIyMzNlMWZkMDI2MzZiMjUzOTlmYTRkYjUyMWZkNDY0ZDNjNTA0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDcgRmViIDIwMjUgMTM6MTQ6NTAgLTA4MDAKU3ViamVjdDogW1BBVENIIHY2IDIvN10gQWRk IEV4ZWNDb3B5U2xvdE1pbmltYWxUdXBsZUV4dHJhKCkuCgpBbGxvd3MgYW4gImV4dHJhIiBhcmd1 bWVudCB0aGF0IGFsbG9jYXRlcyBleHRyYSBtZW1vcnkgYXQgdGhlIGVuZCBvZgp0aGUgTWluaW1h bFR1cGxlLiBUaGlzIGlzIGltcG9ydGFudCBmb3IgY2FsbGVycyB0aGF0IG5lZWQgdG8gc3RvcmUK YWRkaXRpb25hbCBkYXRhLCBidXQgZG8gbm90IHdhbnQgdG8gcGVyZm9ybSBhbiBhZGRpdGlvbmFs IGFsbG9jYXRpb24uCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9oZWFwdHVwbGUuYyAg ICAgIHwgNDMgKysrKysrKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1R1cGxlcy5jICAgICAgICAgIHwgMjQgKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlR2F0aGVyTWVyZ2UuYyAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90 dXBsZXNvcnR2YXJpYW50cy5jIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL3NvcnQvdHVwbGVz dG9yZS5jICAgICAgICB8ICA2ICstLQogc3JjL2luY2x1ZGUvYWNjZXNzL2h0dXBfZGV0YWlscy5o ICAgICAgICAgIHwgIDcgKystLQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvdHVwdGFibGUuaCAgICAg ICAgICAgIHwgMTkgKysrKysrKysrLQogNyBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25zKCsp LCAyOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9u L2hlYXB0dXBsZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9oZWFwdHVwbGUuYwppbmRl eCBiNDNjYjljY2ZmNC4uMzZkZjJiMzFmMmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9jb21tb24vaGVhcHR1cGxlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9oZWFw dHVwbGUuYwpAQCAtMTQ1Miw3ICsxNDUyLDggQEAgaGVhcF9mcmVldHVwbGUoSGVhcFR1cGxlIGh0 dXApCiBNaW5pbWFsVHVwbGUKIGhlYXBfZm9ybV9taW5pbWFsX3R1cGxlKFR1cGxlRGVzYyB0dXBs ZURlc2NyaXB0b3IsCiAJCQkJCQljb25zdCBEYXR1bSAqdmFsdWVzLAotCQkJCQkJY29uc3QgYm9v bCAqaXNudWxsKQorCQkJCQkJY29uc3QgYm9vbCAqaXNudWxsLAorCQkJCQkJU2l6ZSBleHRyYSkK IHsKIAlNaW5pbWFsVHVwbGUgdHVwbGU7CQkJLyogcmV0dXJuIHR1cGxlICovCiAJU2l6ZQkJbGVu LApAQCAtMTQ5Nyw3ICsxNDk4LDEwIEBAIGhlYXBfZm9ybV9taW5pbWFsX3R1cGxlKFR1cGxlRGVz YyB0dXBsZURlc2NyaXB0b3IsCiAJLyoKIAkgKiBBbGxvY2F0ZSBhbmQgemVybyB0aGUgc3BhY2Ug bmVlZGVkLgogCSAqLwotCXR1cGxlID0gKE1pbmltYWxUdXBsZSkgcGFsbG9jMChsZW4pOworCWlm IChleHRyYSA9PSAwKQorCQl0dXBsZSA9IChNaW5pbWFsVHVwbGUpIHBhbGxvYzAobGVuKTsKKwll bHNlCisJCXR1cGxlID0gKE1pbmltYWxUdXBsZSkgcGFsbG9jMChNQVhBTElHTihsZW4pICsgZXh0 cmEpOwogCiAJLyoKIAkgKiBBbmQgZmlsbCBpbiB0aGUgaW5mb3JtYXRpb24uCkBAIC0xNTMzLDEy ICsxNTM3LDIzIEBAIGhlYXBfZnJlZV9taW5pbWFsX3R1cGxlKE1pbmltYWxUdXBsZSBtdHVwKQog ICogVGhlIHJlc3VsdCBpcyBhbGxvY2F0ZWQgaW4gdGhlIGN1cnJlbnQgbWVtb3J5IGNvbnRleHQu CiAgKi8KIE1pbmltYWxUdXBsZQotaGVhcF9jb3B5X21pbmltYWxfdHVwbGUoTWluaW1hbFR1cGxl IG10dXApCitoZWFwX2NvcHlfbWluaW1hbF90dXBsZShNaW5pbWFsVHVwbGUgbXR1cCwgU2l6ZSBl eHRyYSkKIHsKIAlNaW5pbWFsVHVwbGUgcmVzdWx0OwogCi0JcmVzdWx0ID0gKE1pbmltYWxUdXBs ZSkgcGFsbG9jKG10dXAtPnRfbGVuKTsKLQltZW1jcHkocmVzdWx0LCBtdHVwLCBtdHVwLT50X2xl bik7CisJaWYgKGV4dHJhID09IDApCisJeworCQlyZXN1bHQgPSAoTWluaW1hbFR1cGxlKSBwYWxs b2MobXR1cC0+dF9sZW4pOworCQltZW1jcHkocmVzdWx0LCBtdHVwLCBtdHVwLT50X2xlbik7CisJ fQorCWVsc2UKKwl7CisJCVNpemUJCXRvdGFsc2l6ZSA9IE1BWEFMSUdOKG10dXAtPnRfbGVuKSAr IGV4dHJhOworCisJCXJlc3VsdCA9IChNaW5pbWFsVHVwbGUpIHBhbGxvYyh0b3RhbHNpemUpOwor CQltZW1jcHkocmVzdWx0LCBtdHVwLCBtdHVwLT50X2xlbik7CisJCW1lbXNldCgoY2hhciAqKSBy ZXN1bHQgKyBtdHVwLT50X2xlbiwgMCwgdG90YWxzaXplIC0gbXR1cC0+dF9sZW4pOworCX0KIAly ZXR1cm4gcmVzdWx0OwogfQogCkBAIC0xNTc0LDE1ICsxNTg5LDI3IEBAIGhlYXBfdHVwbGVfZnJv bV9taW5pbWFsX3R1cGxlKE1pbmltYWxUdXBsZSBtdHVwKQogICogVGhlIHJlc3VsdCBpcyBhbGxv Y2F0ZWQgaW4gdGhlIGN1cnJlbnQgbWVtb3J5IGNvbnRleHQuCiAgKi8KIE1pbmltYWxUdXBsZQot bWluaW1hbF90dXBsZV9mcm9tX2hlYXBfdHVwbGUoSGVhcFR1cGxlIGh0dXApCittaW5pbWFsX3R1 cGxlX2Zyb21faGVhcF90dXBsZShIZWFwVHVwbGUgaHR1cCwgU2l6ZSBleHRyYSkKIHsKIAlNaW5p bWFsVHVwbGUgcmVzdWx0OwogCXVpbnQzMgkJbGVuOwogCiAJQXNzZXJ0KGh0dXAtPnRfbGVuID4g TUlOSU1BTF9UVVBMRV9PRkZTRVQpOwogCWxlbiA9IGh0dXAtPnRfbGVuIC0gTUlOSU1BTF9UVVBM RV9PRkZTRVQ7Ci0JcmVzdWx0ID0gKE1pbmltYWxUdXBsZSkgcGFsbG9jKGxlbik7Ci0JbWVtY3B5 KHJlc3VsdCwgKGNoYXIgKikgaHR1cC0+dF9kYXRhICsgTUlOSU1BTF9UVVBMRV9PRkZTRVQsIGxl bik7CisJaWYgKGV4dHJhID09IDApCisJeworCQlyZXN1bHQgPSAoTWluaW1hbFR1cGxlKSBwYWxs b2MobGVuKTsKKwkJbWVtY3B5KHJlc3VsdCwgKGNoYXIgKikgaHR1cC0+dF9kYXRhICsgTUlOSU1B TF9UVVBMRV9PRkZTRVQsIGxlbik7CisJfQorCWVsc2UKKwl7CisJCVNpemUJCXRvdGFsc2l6ZSA9 IE1BWEFMSUdOKGxlbikgKyBleHRyYTsKKworCQlyZXN1bHQgPSAoTWluaW1hbFR1cGxlKSBwYWxs b2ModG90YWxzaXplKTsKKwkJbWVtY3B5KHJlc3VsdCwgKGNoYXIgKikgaHR1cC0+dF9kYXRhICsg TUlOSU1BTF9UVVBMRV9PRkZTRVQsIGxlbik7CisJCW1lbXNldCgoY2hhciAqKSByZXN1bHQgKyBs ZW4sIDAsIHRvdGFsc2l6ZSAtIGxlbik7CisJfQorCiAJcmVzdWx0LT50X2xlbiA9IGxlbjsKIAly ZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1R1 cGxlcy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1R1cGxlcy5jCmluZGV4IDdkZTQ5MDQ2 MmQ0Li44ZTAyZDY4ODI0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1R1 cGxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNUdXBsZXMuYwpAQCAtMjk4LDEz ICsyOTgsMTQgQEAgdHRzX3ZpcnR1YWxfY29weV9oZWFwX3R1cGxlKFR1cGxlVGFibGVTbG90ICpz bG90KQogfQogCiBzdGF0aWMgTWluaW1hbFR1cGxlCi10dHNfdmlydHVhbF9jb3B5X21pbmltYWxf dHVwbGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QpCit0dHNfdmlydHVhbF9jb3B5X21pbmltYWxfdHVw bGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIFNpemUgZXh0cmEpCiB7CiAJQXNzZXJ0KCFUVFNfRU1Q VFkoc2xvdCkpOwogCiAJcmV0dXJuIGhlYXBfZm9ybV9taW5pbWFsX3R1cGxlKHNsb3QtPnR0c190 dXBsZURlc2NyaXB0b3IsCiAJCQkJCQkJCSAgIHNsb3QtPnR0c192YWx1ZXMsCi0JCQkJCQkJCSAg IHNsb3QtPnR0c19pc251bGwpOworCQkJCQkJCQkgICBzbG90LT50dHNfaXNudWxsLAorCQkJCQkJ CQkgICBleHRyYSk7CiB9CiAKIApAQCAtNDcyLDE0ICs0NzMsMTQgQEAgdHRzX2hlYXBfY29weV9o ZWFwX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90KQogfQogCiBzdGF0aWMgTWluaW1hbFR1cGxl Ci10dHNfaGVhcF9jb3B5X21pbmltYWxfdHVwbGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QpCit0dHNf aGVhcF9jb3B5X21pbmltYWxfdHVwbGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIFNpemUgZXh0cmEp CiB7CiAJSGVhcFR1cGxlVGFibGVTbG90ICpoc2xvdCA9IChIZWFwVHVwbGVUYWJsZVNsb3QgKikg c2xvdDsKIAogCWlmICghaHNsb3QtPnR1cGxlKQogCQl0dHNfaGVhcF9tYXRlcmlhbGl6ZShzbG90 KTsKIAotCXJldHVybiBtaW5pbWFsX3R1cGxlX2Zyb21faGVhcF90dXBsZShoc2xvdC0+dHVwbGUp OworCXJldHVybiBtaW5pbWFsX3R1cGxlX2Zyb21faGVhcF90dXBsZShoc2xvdC0+dHVwbGUsIGV4 dHJhKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTYwNyw3ICs2MDgsOCBAQCB0dHNfbWluaW1hbF9t YXRlcmlhbGl6ZShUdXBsZVRhYmxlU2xvdCAqc2xvdCkKIAl7CiAJCW1zbG90LT5taW50dXBsZSA9 IGhlYXBfZm9ybV9taW5pbWFsX3R1cGxlKHNsb3QtPnR0c190dXBsZURlc2NyaXB0b3IsCiAJCQkJ CQkJCQkJCQkgIHNsb3QtPnR0c192YWx1ZXMsCi0JCQkJCQkJCQkJCQkgIHNsb3QtPnR0c19pc251 bGwpOworCQkJCQkJCQkJCQkJICBzbG90LT50dHNfaXNudWxsLAorCQkJCQkJCQkJCQkJICAwKTsK IAl9CiAJZWxzZQogCXsKQEAgLTYxNyw3ICs2MTksNyBAQCB0dHNfbWluaW1hbF9tYXRlcmlhbGl6 ZShUdXBsZVRhYmxlU2xvdCAqc2xvdCkKIAkJICogVFRTX0ZMQUdfU0hPVUxERlJFRSBzZXQpLiAg Q29weSB0aGUgbWluaW1hbCB0dXBsZSBpbnRvIHRoZSBnaXZlbgogCQkgKiBzbG90J3MgbWVtb3J5 IGNvbnRleHQuCiAJCSAqLwotCQltc2xvdC0+bWludHVwbGUgPSBoZWFwX2NvcHlfbWluaW1hbF90 dXBsZShtc2xvdC0+bWludHVwbGUpOworCQltc2xvdC0+bWludHVwbGUgPSBoZWFwX2NvcHlfbWlu aW1hbF90dXBsZShtc2xvdC0+bWludHVwbGUsIDApOwogCX0KIAogCXNsb3QtPnR0c19mbGFncyB8 PSBUVFNfRkxBR19TSE9VTERGUkVFOwpAQCAtNjY2LDE0ICs2NjgsMTQgQEAgdHRzX21pbmltYWxf Y29weV9oZWFwX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90KQogfQogCiBzdGF0aWMgTWluaW1h bFR1cGxlCi10dHNfbWluaW1hbF9jb3B5X21pbmltYWxfdHVwbGUoVHVwbGVUYWJsZVNsb3QgKnNs b3QpCit0dHNfbWluaW1hbF9jb3B5X21pbmltYWxfdHVwbGUoVHVwbGVUYWJsZVNsb3QgKnNsb3Qs IFNpemUgZXh0cmEpCiB7CiAJTWluaW1hbFR1cGxlVGFibGVTbG90ICptc2xvdCA9IChNaW5pbWFs VHVwbGVUYWJsZVNsb3QgKikgc2xvdDsKIAogCWlmICghbXNsb3QtPm1pbnR1cGxlKQogCQl0dHNf bWluaW1hbF9tYXRlcmlhbGl6ZShzbG90KTsKIAotCXJldHVybiBoZWFwX2NvcHlfbWluaW1hbF90 dXBsZShtc2xvdC0+bWludHVwbGUpOworCXJldHVybiBoZWFwX2NvcHlfbWluaW1hbF90dXBsZSht c2xvdC0+bWludHVwbGUsIGV4dHJhKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTkyNiw3ICs5Mjgs NyBAQCB0dHNfYnVmZmVyX2hlYXBfY29weV9oZWFwX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90 KQogfQogCiBzdGF0aWMgTWluaW1hbFR1cGxlCi10dHNfYnVmZmVyX2hlYXBfY29weV9taW5pbWFs X3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90KQordHRzX2J1ZmZlcl9oZWFwX2NvcHlfbWluaW1h bF90dXBsZShUdXBsZVRhYmxlU2xvdCAqc2xvdCwgU2l6ZSBleHRyYSkKIHsKIAlCdWZmZXJIZWFw VHVwbGVUYWJsZVNsb3QgKmJzbG90ID0gKEJ1ZmZlckhlYXBUdXBsZVRhYmxlU2xvdCAqKSBzbG90 OwogCkBAIC05MzUsNyArOTM3LDcgQEAgdHRzX2J1ZmZlcl9oZWFwX2NvcHlfbWluaW1hbF90dXBs ZShUdXBsZVRhYmxlU2xvdCAqc2xvdCkKIAlpZiAoIWJzbG90LT5iYXNlLnR1cGxlKQogCQl0dHNf YnVmZmVyX2hlYXBfbWF0ZXJpYWxpemUoc2xvdCk7CiAKLQlyZXR1cm4gbWluaW1hbF90dXBsZV9m cm9tX2hlYXBfdHVwbGUoYnNsb3QtPmJhc2UudHVwbGUpOworCXJldHVybiBtaW5pbWFsX3R1cGxl X2Zyb21faGVhcF90dXBsZShic2xvdC0+YmFzZS50dXBsZSwgZXh0cmEpOwogfQogCiBzdGF0aWMg aW5saW5lIHZvaWQKQEAgLTE4OTUsNyArMTg5Nyw3IEBAIEV4ZWNGZXRjaFNsb3RNaW5pbWFsVHVw bGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJewogCQlpZiAoc2hvdWxkRnJlZSkKIAkJCSpzaG91 bGRGcmVlID0gdHJ1ZTsKLQkJcmV0dXJuIHNsb3QtPnR0c19vcHMtPmNvcHlfbWluaW1hbF90dXBs ZShzbG90KTsKKwkJcmV0dXJuIHNsb3QtPnR0c19vcHMtPmNvcHlfbWluaW1hbF90dXBsZShzbG90 LCAwKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVHYXRo ZXJNZXJnZS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUdhdGhlck1lcmdlLmMKaW5kZXgg MDFhNmUzYTg1NTMuLjE1Zjg0NTk3MDY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlR2F0aGVyTWVyZ2UuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlR2F0aGVy TWVyZ2UuYwpAQCAtNzM1LDcgKzczNSw3IEBAIGdtX3JlYWRuZXh0X3R1cGxlKEdhdGhlck1lcmdl U3RhdGUgKmdtX3N0YXRlLCBpbnQgbnJlYWRlciwgYm9vbCBub3dhaXQsCiAJICogU2luY2Ugd2Un bGwgYmUgYnVmZmVyaW5nIHRoZXNlIGFjcm9zcyBtdWx0aXBsZSBjYWxscywgd2UgbmVlZCB0byBt YWtlIGEKIAkgKiBjb3B5LgogCSAqLwotCXJldHVybiB0dXAgPyBoZWFwX2NvcHlfbWluaW1hbF90 dXBsZSh0dXApIDogTlVMTDsKKwlyZXR1cm4gdHVwID8gaGVhcF9jb3B5X21pbmltYWxfdHVwbGUo dHVwLCAwKSA6IE5VTEw7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9z b3J0L3R1cGxlc29ydHZhcmlhbnRzLmMgYi9zcmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxlc29y dHZhcmlhbnRzLmMKaW5kZXggOTEzYzRlZjQ1NWUuLjAzYmQzZTBkMmYxIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxlc29ydHZhcmlhbnRzLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvc29ydC90dXBsZXNvcnR2YXJpYW50cy5jCkBAIC04OTIsNyArODkyLDcgQEAgdHVw bGVzb3J0X2dldHR1cGxlc2xvdChUdXBsZXNvcnRzdGF0ZSAqc3RhdGUsIGJvb2wgZm9yd2FyZCwg Ym9vbCBjb3B5LAogCQkJKmFiYnJldiA9IHN0dXAuZGF0dW0xOwogCiAJCWlmIChjb3B5KQotCQkJ c3R1cC50dXBsZSA9IGhlYXBfY29weV9taW5pbWFsX3R1cGxlKChNaW5pbWFsVHVwbGUpIHN0dXAu dHVwbGUpOworCQkJc3R1cC50dXBsZSA9IGhlYXBfY29weV9taW5pbWFsX3R1cGxlKChNaW5pbWFs VHVwbGUpIHN0dXAudHVwbGUsIDApOwogCiAJCUV4ZWNTdG9yZU1pbmltYWxUdXBsZSgoTWluaW1h bFR1cGxlKSBzdHVwLnR1cGxlLCBzbG90LCBjb3B5KTsKIAkJcmV0dXJuIHRydWU7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxlc3RvcmUuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL3NvcnQvdHVwbGVzdG9yZS5jCmluZGV4IGQ2MWI2MDEwNTNjLi5jOWFlY2FiOGQ2NiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXN0b3JlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvc29ydC90dXBsZXN0b3JlLmMKQEAgLTc4Nyw3ICs3ODcsNyBAQCB0dXBsZXN0 b3JlX3B1dHZhbHVlcyhUdXBsZXN0b3Jlc3RhdGUgKnN0YXRlLCBUdXBsZURlc2MgdGRlc2MsCiAJ TWluaW1hbFR1cGxlIHR1cGxlOwogCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4 dFN3aXRjaFRvKHN0YXRlLT5jb250ZXh0KTsKIAotCXR1cGxlID0gaGVhcF9mb3JtX21pbmltYWxf dHVwbGUodGRlc2MsIHZhbHVlcywgaXNudWxsKTsKKwl0dXBsZSA9IGhlYXBfZm9ybV9taW5pbWFs X3R1cGxlKHRkZXNjLCB2YWx1ZXMsIGlzbnVsbCwgMCk7CiAJVVNFTUVNKHN0YXRlLCBHZXRNZW1v cnlDaHVua1NwYWNlKHR1cGxlKSk7CiAKIAl0dXBsZXN0b3JlX3B1dHR1cGxlX2NvbW1vbihzdGF0 ZSwgdHVwbGUpOwpAQCAtMTEzOSw3ICsxMTM5LDcgQEAgdHVwbGVzdG9yZV9nZXR0dXBsZXNsb3Qo VHVwbGVzdG9yZXN0YXRlICpzdGF0ZSwgYm9vbCBmb3J3YXJkLAogCXsKIAkJaWYgKGNvcHkgJiYg IXNob3VsZF9mcmVlKQogCQl7Ci0JCQl0dXBsZSA9IGhlYXBfY29weV9taW5pbWFsX3R1cGxlKHR1 cGxlKTsKKwkJCXR1cGxlID0gaGVhcF9jb3B5X21pbmltYWxfdHVwbGUodHVwbGUsIDApOwogCQkJ c2hvdWxkX2ZyZWUgPSB0cnVlOwogCQl9CiAJCUV4ZWNTdG9yZU1pbmltYWxUdXBsZSh0dXBsZSwg c2xvdCwgc2hvdWxkX2ZyZWUpOwpAQCAtMTU5MCw3ICsxNTkwLDcgQEAgY29weXR1cF9oZWFwKFR1 cGxlc3RvcmVzdGF0ZSAqc3RhdGUsIHZvaWQgKnR1cCkKIHsKIAlNaW5pbWFsVHVwbGUgdHVwbGU7 CiAKLQl0dXBsZSA9IG1pbmltYWxfdHVwbGVfZnJvbV9oZWFwX3R1cGxlKChIZWFwVHVwbGUpIHR1 cCk7CisJdHVwbGUgPSBtaW5pbWFsX3R1cGxlX2Zyb21faGVhcF90dXBsZSgoSGVhcFR1cGxlKSB0 dXAsIDApOwogCVVTRU1FTShzdGF0ZSwgR2V0TWVtb3J5Q2h1bmtTcGFjZSh0dXBsZSkpOwogCXJl dHVybiB0dXBsZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9odHVwX2RldGFp bHMuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9odHVwX2RldGFpbHMuaAppbmRleCA2Y2Q0Yjk1YmZk Yi4uYWE5NTdjZjNiMDEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9odHVwX2RldGFp bHMuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaHR1cF9kZXRhaWxzLmgKQEAgLTgzOSwxMSAr ODM5LDEyIEBAIGV4dGVybiB2b2lkIGhlYXBfZGVmb3JtX3R1cGxlKEhlYXBUdXBsZSB0dXBsZSwg VHVwbGVEZXNjIHR1cGxlRGVzYywKIAkJCQkJCQkgIERhdHVtICp2YWx1ZXMsIGJvb2wgKmlzbnVs bCk7CiBleHRlcm4gdm9pZCBoZWFwX2ZyZWV0dXBsZShIZWFwVHVwbGUgaHR1cCk7CiBleHRlcm4g TWluaW1hbFR1cGxlIGhlYXBfZm9ybV9taW5pbWFsX3R1cGxlKFR1cGxlRGVzYyB0dXBsZURlc2Ny aXB0b3IsCi0JCQkJCQkJCQkJCWNvbnN0IERhdHVtICp2YWx1ZXMsIGNvbnN0IGJvb2wgKmlzbnVs bCk7CisJCQkJCQkJCQkJCWNvbnN0IERhdHVtICp2YWx1ZXMsIGNvbnN0IGJvb2wgKmlzbnVsbCwK KwkJCQkJCQkJCQkJU2l6ZSBleHRyYSk7CiBleHRlcm4gdm9pZCBoZWFwX2ZyZWVfbWluaW1hbF90 dXBsZShNaW5pbWFsVHVwbGUgbXR1cCk7Ci1leHRlcm4gTWluaW1hbFR1cGxlIGhlYXBfY29weV9t aW5pbWFsX3R1cGxlKE1pbmltYWxUdXBsZSBtdHVwKTsKK2V4dGVybiBNaW5pbWFsVHVwbGUgaGVh cF9jb3B5X21pbmltYWxfdHVwbGUoTWluaW1hbFR1cGxlIG10dXAsIFNpemUgZXh0cmEpOwogZXh0 ZXJuIEhlYXBUdXBsZSBoZWFwX3R1cGxlX2Zyb21fbWluaW1hbF90dXBsZShNaW5pbWFsVHVwbGUg bXR1cCk7Ci1leHRlcm4gTWluaW1hbFR1cGxlIG1pbmltYWxfdHVwbGVfZnJvbV9oZWFwX3R1cGxl KEhlYXBUdXBsZSBodHVwKTsKK2V4dGVybiBNaW5pbWFsVHVwbGUgbWluaW1hbF90dXBsZV9mcm9t X2hlYXBfdHVwbGUoSGVhcFR1cGxlIGh0dXAsIFNpemUgZXh0cmEpOwogZXh0ZXJuIHNpemVfdCB2 YXJzaXplX2FueSh2b2lkICpwKTsKIGV4dGVybiBIZWFwVHVwbGUgaGVhcF9leHBhbmRfdHVwbGUo SGVhcFR1cGxlIHNvdXJjZVR1cGxlLCBUdXBsZURlc2MgdHVwbGVEZXNjKTsKIGV4dGVybiBNaW5p bWFsVHVwbGUgbWluaW1hbF9leHBhbmRfdHVwbGUoSGVhcFR1cGxlIHNvdXJjZVR1cGxlLCBUdXBs ZURlc2MgdHVwbGVEZXNjKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3R1cHRh YmxlLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci90dXB0YWJsZS5oCmluZGV4IGEwNDRkNzhlNGQw Li5iOTAxZmVmNDFmMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvdHVwdGFibGUu aAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci90dXB0YWJsZS5oCkBAIC0yMTgsOCArMjE4LDEy IEBAIHN0cnVjdCBUdXBsZVRhYmxlU2xvdE9wcwogCSAqIG1lYW5pbmdmdWwgInN5c3RlbSBjb2x1 bW5zIiBpbiB0aGUgY29weS4gVGhlIGNvcHkgaXMgbm90IGJlICJvd25lZCIgYnkKIAkgKiB0aGUg c2xvdCBpLmUuIHRoZSBjYWxsZXIgaGFzIHRvIHRha2UgcmVzcG9uc2liaWxpdHkgdG8gZnJlZSBt ZW1vcnkKIAkgKiBjb25zdW1lZCBieSB0aGUgc2xvdC4KKwkgKgorCSAqIFRoZSBjb3B5IGhhcyAi ZXh0cmEiIGJ5dGVzIChtYXhhbGlnbmVkIGFuZCB6ZXJvZWQpIGF2YWlsYWJsZSBhdCB0aGUKKwkg KiBlbmQsIHdoaWNoIGlzIHVzZWZ1bCBzbyB0aGF0IHNvbWUgY2FsbGVycyBtYXkgc3RvcmUgZXh0 cmEgZGF0YSBhbG9uZworCSAqIHdpdGggdGhlIG1pbmltYWwgdHVwbGUgd2l0aG91dCB0aGUgbmVl ZCBmb3IgYW4gYWRkaXRpb25hbCBhbGxvY2F0aW9uLgogCSAqLwotCU1pbmltYWxUdXBsZSAoKmNv cHlfbWluaW1hbF90dXBsZSkgKFR1cGxlVGFibGVTbG90ICpzbG90KTsKKwlNaW5pbWFsVHVwbGUg KCpjb3B5X21pbmltYWxfdHVwbGUpIChUdXBsZVRhYmxlU2xvdCAqc2xvdCwgU2l6ZSBleHRyYSk7 CiB9OwogCiAvKgpAQCAtNDkxLDcgKzQ5NSwxOCBAQCBFeGVjQ29weVNsb3RIZWFwVHVwbGUoVHVw bGVUYWJsZVNsb3QgKnNsb3QpCiBzdGF0aWMgaW5saW5lIE1pbmltYWxUdXBsZQogRXhlY0NvcHlT bG90TWluaW1hbFR1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90KQogewotCXJldHVybiBzbG90LT50 dHNfb3BzLT5jb3B5X21pbmltYWxfdHVwbGUoc2xvdCk7CisJcmV0dXJuIHNsb3QtPnR0c19vcHMt PmNvcHlfbWluaW1hbF90dXBsZShzbG90LCAwKTsKK30KKworLyoKKyAqIEV4ZWNDb3B5U2xvdE1p bmltYWxUdXBsZUV4dHJhIC0gcmV0dXJuIE1pbmltYWxUdXBsZSBhbGxvY2F0ZWQgaW4gY2FsbGVy J3MKKyAqIGNvbnRleHQsIHdpdGggZXh0cmEgYnl0ZXMgKG1heGFsaWduZWQgYW5kIHplcm9lZCkg YWZ0ZXIgdGhlIGVuZCBvZiB0aGUKKyAqIHR1cGxlLgorICovCitzdGF0aWMgaW5saW5lIE1pbmlt YWxUdXBsZQorRXhlY0NvcHlTbG90TWluaW1hbFR1cGxlRXh0cmEoVHVwbGVUYWJsZVNsb3QgKnNs b3QsIFNpemUgZXh0cmEpCit7CisJcmV0dXJuIHNsb3QtPnR0c19vcHMtPmNvcHlfbWluaW1hbF90 dXBsZShzbG90LCBleHRyYSk7CiB9CiAKIC8qCi0tIAoyLjM0LjEKCg== --=-nvqeBMJeafaW83v1gBVZ Content-Disposition: attachment; filename="v6-0003-Store-additional-data-after-mintuple.patch" Content-Type: text/x-patch; name="v6-0003-Store-additional-data-after-mintuple.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA0NDk1NjNmY2RiYWFkNzZmYTA4NDFjZGI4MmNlNGU0ZjU1ZDc1MTYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDE0IEphbiAyMDI1IDE2OjE3OjAwIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2NiAzLzddIFN0 b3JlIGFkZGl0aW9uYWwgZGF0YSBhZnRlciBtaW50dXBsZQoKLS0tCiBzcmMvYmFja2VuZC9leGVj dXRvci9leGVjR3JvdXBpbmcuYyB8IDI4ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjR3JvdXBpbmcuYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNHcm91cGluZy5jCmluZGV4IDY3NjNjMzU0NTdjLi45MDgzMzIxNmUzYiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0dyb3VwaW5nLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0dyb3VwaW5nLmMKQEAgLTIzLDcgKzIzLDYgQEAKIHN0cnVjdCBU dXBsZUhhc2hFbnRyeURhdGEKIHsKIAlNaW5pbWFsVHVwbGUgZmlyc3RUdXBsZTsJLyogY29weSBv ZiBmaXJzdCB0dXBsZSBpbiB0aGlzIGdyb3VwICovCi0Jdm9pZAkgICAqYWRkaXRpb25hbDsJCS8q IHVzZXIgZGF0YSAqLwogCXVpbnQzMgkJc3RhdHVzOwkJCS8qIGhhc2ggc3RhdHVzICovCiAJdWlu dDMyCQloYXNoOwkJCS8qIGhhc2ggdmFsdWUgKGNhY2hlZCkgKi8KIH07CkBAIC0zMDIsMTUgKzMw MSwxNiBAQCBUdXBsZUhhc2hFbnRyeUdldFR1cGxlKFR1cGxlSGFzaEVudHJ5IGVudHJ5KQogCiAv KgogICogR2V0IGEgcG9pbnRlciBpbnRvIHRoZSBhZGRpdGlvbmFsIHNwYWNlIGFsbG9jYXRlZCBm b3IgdGhpcyBlbnRyeS4gVGhlCi0gKiBhbW91bnQgb2Ygc3BhY2UgYXZhaWxhYmxlIGlzIHRoZSBh ZGRpdGlvbmFsc2l6ZSBzcGVjaWZpZWQgdG8KLSAqIEJ1aWxkVHVwbGVIYXNoVGFibGUoKS4gSWYg YWRkaXRpb25hbHNpemUgd2FzIHNwZWNpZmllZCBhcyB6ZXJvLCBubworICogbWVtb3J5IHdpbGwg YmUgbWF4YWxpZ25lZCBhbmQgemVyb2VkLgorICoKKyAqIFRoZSBhbW91bnQgb2Ygc3BhY2UgYXZh aWxhYmxlIGlzIHRoZSBhZGRpdGlvbmFsc2l6ZSByZXF1ZXN0ZWQgaW4gdGhlIGNhbGwKKyAqIHRv IEJ1aWxkVHVwbGVIYXNoVGFibGUoKS4gSWYgYWRkaXRpb25hbHNpemUgd2FzIHNwZWNpZmllZCBh cyB6ZXJvLCBubwogICogYWRkaXRpb25hbCBzcGFjZSBpcyBhdmFpbGFibGUgYW5kIHRoaXMgZnVu Y3Rpb24gc2hvdWxkIG5vdCBiZSBjYWxsZWQuCiAgKi8KIHZvaWQgKgogVHVwbGVIYXNoRW50cnlH ZXRBZGRpdGlvbmFsKFR1cGxlSGFzaEVudHJ5IGVudHJ5KQogewotCUFzc2VydChlbnRyeS0+YWRk aXRpb25hbCAhPSBOVUxMKTsKLQlyZXR1cm4gZW50cnktPmFkZGl0aW9uYWw7CisJcmV0dXJuIChj aGFyICopIGVudHJ5LT5maXJzdFR1cGxlICsgTUFYQUxJR04oZW50cnktPmZpcnN0VHVwbGUtPnRf bGVuKTsKIH0KIAogLyoKQEAgLTUyMiwxMyArNTIyLDE3IEBAIExvb2t1cFR1cGxlSGFzaEVudHJ5 X2ludGVybmFsKFR1cGxlSGFzaFRhYmxlIGhhc2h0YWJsZSwgVHVwbGVUYWJsZVNsb3QgKnNsb3Qs CiAKIAkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhoYXNodGFibGUtPnRhYmxlY3h0KTsKIAotCQkJ LyogQ29weSB0aGUgZmlyc3QgdHVwbGUgaW50byB0aGUgdGFibGUgY29udGV4dCAqLwotCQkJZW50 cnktPmZpcnN0VHVwbGUgPSBFeGVjQ29weVNsb3RNaW5pbWFsVHVwbGUoc2xvdCk7Ci0KLQkJCWlm IChoYXNodGFibGUtPmFkZGl0aW9uYWxzaXplID4gMCkKLQkJCQllbnRyeS0+YWRkaXRpb25hbCA9 IHBhbGxvYzAoaGFzaHRhYmxlLT5hZGRpdGlvbmFsc2l6ZSk7Ci0JCQllbHNlCi0JCQkJZW50cnkt PmFkZGl0aW9uYWwgPSBOVUxMOworCQkJLyoKKwkJCSAqIENvcHkgdGhlIGZpcnN0IHR1cGxlIGlu dG8gdGhlIHRhYmxlIGNvbnRleHQsIGFuZCByZXF1ZXN0CisJCQkgKiBhZGRpdGlvbmFsc2l6ZSBl eHRyYSBieXRlcyBhdCB0aGUgZW5kIG9mIHRoZSBhbGxvY2F0aW9uLgorCQkJICoKKwkJCSAqIFRo ZSBjYWxsZXIgY2FuIGdldCBhIHBvaW50ZXIgdG8gdGhpcyBkYXRhIHdpdGgKKwkJCSAqIFR1cGxl SGFzaEVudHJ5R2V0QWRkaXRpb25hbCgpLCBhbmQgc3RvcmUgYXJiaXRyYXJ5IGRhdGEgdGhlcmUu CisJCQkgKiBUaGlzIGF2b2lkcyB0aGUgbmVlZCB0byBzdG9yZSBhbiBleHRyYSBwb2ludGVyIG9y IGFsbG9jYXRlIGFuCisJCQkgKiBhZGRpdGlvbmFsIGNodW5rLCB3aGljaCB3b3VsZCB3YXN0ZSBt ZW1vcnkuCisJCQkgKi8KKwkJCWVudHJ5LT5maXJzdFR1cGxlID0gRXhlY0NvcHlTbG90TWluaW1h bFR1cGxlRXh0cmEoc2xvdCwKKwkJCQkJCQkJCQkJCQkJCSAgaGFzaHRhYmxlLT5hZGRpdGlvbmFs c2l6ZSk7CiAJCX0KIAl9CiAJZWxzZQotLSAKMi4zNC4xCgo= --=-nvqeBMJeafaW83v1gBVZ Content-Disposition: attachment; filename="v6-0004-simplehash-don-t-require-a-status-field.patch" Content-Type: text/x-patch; name="v6-0004-simplehash-don-t-require-a-status-field.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAyYzI1MDZmMTRhZGM1MTYyNWI1NzdlY2VjZWYzNmI2ZmViMTU5YTIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDE1IE5vdiAyMDI0IDEyOjIxOjA0IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2NiA0LzddIHNp bXBsZWhhc2g6IGRvbid0IHJlcXVpcmUgYSAic3RhdHVzIiBmaWVsZC4KCkNhbGxlcnMgbWF5IGRl ZmluZSBTSF9FTlRSWV9JU19FTVBUWSgpLCBTSF9FTlRSWV9TRVRfRU1QVFkoKSwgYW5kClNIX0VO VFJZX1NFVF9JTl9VU0UoKSBhcyBhbiBhbHRlcm5hdGl2ZSwgd2hpY2ggY2FuIGFsbG93IGZvciBh IG1vcmUKY29tcGFjdCBlbnRyeSBzaXplLiBUaGF0IHJlZHVjZXMgdGhlIG1lbW9yeSBvdmVyaGVh ZCwgZXNwZWNpYWxseSB3aGVuCnRoZSBoYXNoIHRhYmxlIGlzIHNwYXJzZS4KLS0tCiBzcmMvaW5j bHVkZS9saWIvc2ltcGxlaGFzaC5oIHwgNjggKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbGliL3NpbXBsZWhhc2guaCBiL3NyYy9pbmNsdWRl L2xpYi9zaW1wbGVoYXNoLmgKaW5kZXggMzI3Mjc0YzIzNDAuLjBiOWIwY2RmZGUwIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9saWIvc2ltcGxlaGFzaC5oCisrKyBiL3NyYy9pbmNsdWRlL2xpYi9z aW1wbGVoYXNoLmgKQEAgLTUwLDkgKzUwLDE4IEBACiAgKgkgIC0gU0hfSEFTSF9LRVkodGFibGUs IGtleSkgLSBnZW5lcmF0ZSBoYXNoIGZvciB0aGUga2V5CiAgKgkgIC0gU0hfU1RPUkVfSEFTSCAt IGlmIGRlZmluZWQgdGhlIGhhc2ggaXMgc3RvcmVkIGluIHRoZSBlbGVtZW50cwogICoJICAtIFNI X0dFVF9IQVNIKHRiLCBhKSAtIHJldHVybiB0aGUgZmllbGQgdG8gc3RvcmUgdGhlIGhhc2ggaW4K KyAqCSAgLSBTSF9FTlRSWV9JU19FTVBUWSh0YiwgYSkgLSByZXR1cm4gdHJ1ZSBpZiB0aGUgZW50 cnkgaXMgZW1wdHkKKyAqCSAgLSBTSF9FTlRSWV9TRVRfRU1QVFkodGIsIGEpIC0gc2V0IGVudHJ5 IHRvIGVtcHR5CisgKgkgIC0gU0hfRU5UUllfU0VUX0lOX1VTRSh0YiwgYSkgLSBzZXQgZW50cnkg dG8gImluIHVzZSIKICAqCiAgKgkgIFRoZSBlbGVtZW50IHR5cGUgaXMgcmVxdWlyZWQgdG8gY29u dGFpbiBhICJzdGF0dXMiIG1lbWJlciB0aGF0IGNhbiBzdG9yZQotICoJICB0aGUgcmFuZ2Ugb2Yg dmFsdWVzIGRlZmluZWQgaW4gdGhlIFNIX1NUQVRVUyBlbnVtLgorICoJICB0aGUgcmFuZ2Ugb2Yg dmFsdWVzIGRlZmluZWQgaW4gdGhlIFNIX1NUQVRVUyBlbnVtLiBBbHRlcm5hdGl2ZWx5LAorICoJ ICBjYWxsZXJzIG1heSBkZWZpbmUgYWxsIG9mIFNIX0VOVFJZX0lTX0VNUFRZLCBTSF9FTlRSWV9T RVRfRU1QVFksCisgKgkgIFNIX0VOVFJZX1NFVF9JTl9VU0UgdG8gYWxsb3cgZm9yIGEgbW9yZSBj b21wYWN0IGVudHJ5IHNpemUuIEZvciBleGFtcGxlLAorICoJICBpZiB0aGUgU0hfRUxFTUVOVF9U WVBFIGNvbnRhaW5zIGEgcG9pbnRlciwgdGhlIGNhbGxlciBtYXkgZGVjaWRlIHRoYXQKKyAqCSAg dGhlIGVudHJ5IGlzIGVtcHR5IGlmIHRoZSBwb2ludGVyIGlzIE5VTEwgYW5kICJpbiB1c2UiIGlm IHRoZSBwb2ludGVyIGlzCisgKgkgIG5vbi1OVUxMLiBOQjogaWYgdGhlIGVudGlyZSBlbnRyeSBp cyB6ZXJvLCB0aGVuIFNIX0VOVFJZX0lTX0VNUFRZKCkKKyAqCSAgKm11c3QqIGV2YWx1YXRlIHRv IHRydWUuCiAgKgogICoJICBXaGlsZSBTSF9TVE9SRV9IQVNIIChhbmQgc3Vic2VxdWVudGx5IFNI X0dFVF9IQVNIKSBhcmUgb3B0aW9uYWwsIGJlY2F1c2UKICAqCSAgdGhlIGhhc2ggdGFibGUgaW1w bGVtZW50YXRpb24gbmVlZHMgdG8gY29tcGFyZSBoYXNoZXMgdG8gbW92ZSBlbGVtZW50cwpAQCAt Mjc3LDYgKzI4NiwxOCBAQCBTSF9TQ09QRSB2b2lkIFNIX1NUQVQoU0hfVFlQRSAqIHRiKTsKICNk ZWZpbmUgU0hfR1JPV19NSU5fRklMTEZBQ1RPUiAwLjEKICNlbmRpZgogCisjaWZuZGVmIFNIX0VO VFJZX0lTX0VNUFRZCisjZGVmaW5lIFNIX0VOVFJZX0lTX0VNUFRZKHRiLCBhKSAoKGEpLT5zdGF0 dXMgPT0gU0hfU1RBVFVTX0VNUFRZKQorI2VuZGlmCisKKyNpZm5kZWYgU0hfRU5UUllfU0VUX0VN UFRZCisjZGVmaW5lIFNIX0VOVFJZX1NFVF9FTVBUWSh0YiwgYSkgZG8geyAoYSktPnN0YXR1cyA9 IFNIX1NUQVRVU19FTVBUWTsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjaWZuZGVmIFNIX0VOVFJZ X1NFVF9JTl9VU0UKKyNkZWZpbmUgU0hfRU5UUllfU0VUX0lOX1VTRSh0YiwgYSkgZG8geyAoYSkt PnN0YXR1cyA9IFNIX1NUQVRVU19JTl9VU0U7IH0gd2hpbGUgKDApCisjZW5kaWYKKwogI2lmZGVm IFNIX1NUT1JFX0hBU0gKICNkZWZpbmUgU0hfQ09NUEFSRV9LRVlTKHRiLCBhaGFzaCwgYWtleSwg YikgKGFoYXNoID09IFNIX0dFVF9IQVNIKHRiLCBiKSAmJiBTSF9FUVVBTCh0YiwgYi0+U0hfS0VZ LCBha2V5KSkKICNlbHNlCkBAIC01NDAsNyArNTYxLDcgQEAgU0hfR1JPVyhTSF9UWVBFICogdGIs IHVpbnQ2NCBuZXdzaXplKQogCQl1aW50MzIJCWhhc2g7CiAJCXVpbnQzMgkJb3B0aW1hbDsKIAot CQlpZiAob2xkZW50cnktPnN0YXR1cyAhPSBTSF9TVEFUVVNfSU5fVVNFKQorCQlpZiAoU0hfRU5U UllfSVNfRU1QVFkodGIsIG9sZGVudHJ5KSkKIAkJewogCQkJc3RhcnRlbGVtID0gaTsKIAkJCWJy ZWFrOwpAQCAtNTYyLDcgKzU4Myw3IEBAIFNIX0dST1coU0hfVFlQRSAqIHRiLCB1aW50NjQgbmV3 c2l6ZSkKIAl7CiAJCVNIX0VMRU1FTlRfVFlQRSAqb2xkZW50cnkgPSAmb2xkZGF0YVtjb3B5ZWxl bV07CiAKLQkJaWYgKG9sZGVudHJ5LT5zdGF0dXMgPT0gU0hfU1RBVFVTX0lOX1VTRSkKKwkJaWYg KCFTSF9FTlRSWV9JU19FTVBUWSh0Yiwgb2xkZW50cnkpKQogCQl7CiAJCQl1aW50MzIJCWhhc2g7 CiAJCQl1aW50MzIJCXN0YXJ0ZWxlbTI7CkBAIC01NzgsNyArNTk5LDcgQEAgU0hfR1JPVyhTSF9U WVBFICogdGIsIHVpbnQ2NCBuZXdzaXplKQogCQkJewogCQkJCW5ld2VudHJ5ID0gJm5ld2RhdGFb Y3VyZWxlbV07CiAKLQkJCQlpZiAobmV3ZW50cnktPnN0YXR1cyA9PSBTSF9TVEFUVVNfRU1QVFkp CisJCQkJaWYgKFNIX0VOVFJZX0lTX0VNUFRZKHRiLCBuZXdlbnRyeSkpCiAJCQkJewogCQkJCQli cmVhazsKIAkJCQl9CkBAIC02NDksMTQgKzY3MCwxNCBAQCByZXN0YXJ0OgogCQlTSF9FTEVNRU5U X1RZUEUgKmVudHJ5ID0gJmRhdGFbY3VyZWxlbV07CiAKIAkJLyogYW55IGVtcHR5IGJ1Y2tldCBj YW4gZGlyZWN0bHkgYmUgdXNlZCAqLwotCQlpZiAoZW50cnktPnN0YXR1cyA9PSBTSF9TVEFUVVNf RU1QVFkpCisJCWlmIChTSF9FTlRSWV9JU19FTVBUWSh0YiwgZW50cnkpKQogCQl7CiAJCQl0Yi0+ bWVtYmVycysrOwogCQkJZW50cnktPlNIX0tFWSA9IGtleTsKICNpZmRlZiBTSF9TVE9SRV9IQVNI CiAJCQlTSF9HRVRfSEFTSCh0YiwgZW50cnkpID0gaGFzaDsKICNlbmRpZgotCQkJZW50cnktPnN0 YXR1cyA9IFNIX1NUQVRVU19JTl9VU0U7CisJCQlTSF9FTlRSWV9TRVRfSU5fVVNFKHRiLCBlbnRy eSk7CiAJCQkqZm91bmQgPSBmYWxzZTsKIAkJCXJldHVybiBlbnRyeTsKIAkJfQpAQCAtNjcxLDcg KzY5Miw3IEBAIHJlc3RhcnQ6CiAKIAkJaWYgKFNIX0NPTVBBUkVfS0VZUyh0YiwgaGFzaCwga2V5 LCBlbnRyeSkpCiAJCXsKLQkJCUFzc2VydChlbnRyeS0+c3RhdHVzID09IFNIX1NUQVRVU19JTl9V U0UpOworCQkJQXNzZXJ0KCFTSF9FTlRSWV9JU19FTVBUWSh0YiwgZW50cnkpKTsKIAkJCSpmb3Vu ZCA9IHRydWU7CiAJCQlyZXR1cm4gZW50cnk7CiAJCX0KQEAgLTY5NSw3ICs3MTYsNyBAQCByZXN0 YXJ0OgogCQkJCWVtcHR5ZWxlbSA9IFNIX05FWFQodGIsIGVtcHR5ZWxlbSwgc3RhcnRlbGVtKTsK IAkJCQllbXB0eWVudHJ5ID0gJmRhdGFbZW1wdHllbGVtXTsKIAotCQkJCWlmIChlbXB0eWVudHJ5 LT5zdGF0dXMgPT0gU0hfU1RBVFVTX0VNUFRZKQorCQkJCWlmIChTSF9FTlRSWV9JU19FTVBUWSh0 YiwgZW1wdHllbnRyeSkpCiAJCQkJewogCQkJCQlsYXN0ZW50cnkgPSBlbXB0eWVudHJ5OwogCQkJ CQlicmVhazsKQEAgLTc0NCw3ICs3NjUsNyBAQCByZXN0YXJ0OgogI2lmZGVmIFNIX1NUT1JFX0hB U0gKIAkJCVNIX0dFVF9IQVNIKHRiLCBlbnRyeSkgPSBoYXNoOwogI2VuZGlmCi0JCQllbnRyeS0+ c3RhdHVzID0gU0hfU1RBVFVTX0lOX1VTRTsKKwkJCVNIX0VOVFJZX1NFVF9JTl9VU0UodGIsIGVu dHJ5KTsKIAkJCSpmb3VuZCA9IGZhbHNlOwogCQkJcmV0dXJuIGVudHJ5OwogCQl9CkBAIC04MDYs MTMgKzgyNywxMSBAQCBTSF9MT09LVVBfSEFTSF9JTlRFUk5BTChTSF9UWVBFICogdGIsIFNIX0tF WV9UWVBFIGtleSwgdWludDMyIGhhc2gpCiAJewogCQlTSF9FTEVNRU5UX1RZUEUgKmVudHJ5ID0g JnRiLT5kYXRhW2N1cmVsZW1dOwogCi0JCWlmIChlbnRyeS0+c3RhdHVzID09IFNIX1NUQVRVU19F TVBUWSkKKwkJaWYgKFNIX0VOVFJZX0lTX0VNUFRZKHRiLCBlbnRyeSkpCiAJCXsKIAkJCXJldHVy biBOVUxMOwogCQl9CiAKLQkJQXNzZXJ0KGVudHJ5LT5zdGF0dXMgPT0gU0hfU1RBVFVTX0lOX1VT RSk7Ci0KIAkJaWYgKFNIX0NPTVBBUkVfS0VZUyh0YiwgaGFzaCwga2V5LCBlbnRyeSkpCiAJCQly ZXR1cm4gZW50cnk7CiAKQEAgLTg2NCwxMCArODgzLDEwIEBAIFNIX0RFTEVURShTSF9UWVBFICog dGIsIFNIX0tFWV9UWVBFIGtleSkKIAl7CiAJCVNIX0VMRU1FTlRfVFlQRSAqZW50cnkgPSAmdGIt PmRhdGFbY3VyZWxlbV07CiAKLQkJaWYgKGVudHJ5LT5zdGF0dXMgPT0gU0hfU1RBVFVTX0VNUFRZ KQorCQlpZiAoU0hfRU5UUllfSVNfRU1QVFkodGIsIGVudHJ5KSkKIAkJCXJldHVybiBmYWxzZTsK IAotCQlpZiAoZW50cnktPnN0YXR1cyA9PSBTSF9TVEFUVVNfSU5fVVNFICYmCisJCWlmICghU0hf RU5UUllfSVNfRU1QVFkodGIsIGVudHJ5KSAmJgogCQkJU0hfQ09NUEFSRV9LRVlTKHRiLCBoYXNo LCBrZXksIGVudHJ5KSkKIAkJewogCQkJU0hfRUxFTUVOVF9UWVBFICpsYXN0ZW50cnkgPSBlbnRy eTsKQEAgLTg5MCw5ICs5MDksOSBAQCBTSF9ERUxFVEUoU0hfVFlQRSAqIHRiLCBTSF9LRVlfVFlQ RSBrZXkpCiAJCQkJY3VyZWxlbSA9IFNIX05FWFQodGIsIGN1cmVsZW0sIHN0YXJ0ZWxlbSk7CiAJ CQkJY3VyZW50cnkgPSAmdGItPmRhdGFbY3VyZWxlbV07CiAKLQkJCQlpZiAoY3VyZW50cnktPnN0 YXR1cyAhPSBTSF9TVEFUVVNfSU5fVVNFKQorCQkJCWlmIChTSF9FTlRSWV9JU19FTVBUWSh0Yiwg Y3VyZW50cnkpKQogCQkJCXsKLQkJCQkJbGFzdGVudHJ5LT5zdGF0dXMgPSBTSF9TVEFUVVNfRU1Q VFk7CisJCQkJCVNIX0VOVFJZX1NFVF9FTVBUWSh0YiwgbGFzdGVudHJ5KTsKIAkJCQkJYnJlYWs7 CiAJCQkJfQogCkBAIC05MDIsNyArOTIxLDcgQEAgU0hfREVMRVRFKFNIX1RZUEUgKiB0YiwgU0hf S0VZX1RZUEUga2V5KQogCQkJCS8qIGN1cnJlbnQgaXMgYXQgb3B0aW1hbCBwb3NpdGlvbiwgZG9u ZSAqLwogCQkJCWlmIChjdXJvcHRpbWFsID09IGN1cmVsZW0pCiAJCQkJewotCQkJCQlsYXN0ZW50 cnktPnN0YXR1cyA9IFNIX1NUQVRVU19FTVBUWTsKKwkJCQkJU0hfRU5UUllfU0VUX0VNUFRZKHRi LCBsYXN0ZW50cnkpOwogCQkJCQlicmVhazsKIAkJCQl9CiAKQEAgLTk1Myw5ICs5NzIsOSBAQCBT SF9ERUxFVEVfSVRFTShTSF9UWVBFICogdGIsIFNIX0VMRU1FTlRfVFlQRSAqIGVudHJ5KQogCQlj dXJlbGVtID0gU0hfTkVYVCh0YiwgY3VyZWxlbSwgc3RhcnRlbGVtKTsKIAkJY3VyZW50cnkgPSAm dGItPmRhdGFbY3VyZWxlbV07CiAKLQkJaWYgKGN1cmVudHJ5LT5zdGF0dXMgIT0gU0hfU1RBVFVT X0lOX1VTRSkKKwkJaWYgKFNIX0VOVFJZX0lTX0VNUFRZKHRiLCBjdXJlbnRyeSkpCiAJCXsKLQkJ CWxhc3RlbnRyeS0+c3RhdHVzID0gU0hfU1RBVFVTX0VNUFRZOworCQkJU0hfRU5UUllfU0VUX0VN UFRZKHRiLCBsYXN0ZW50cnkpOwogCQkJYnJlYWs7CiAJCX0KIApAQCAtOTY1LDcgKzk4NCw3IEBA IFNIX0RFTEVURV9JVEVNKFNIX1RZUEUgKiB0YiwgU0hfRUxFTUVOVF9UWVBFICogZW50cnkpCiAJ CS8qIGN1cnJlbnQgaXMgYXQgb3B0aW1hbCBwb3NpdGlvbiwgZG9uZSAqLwogCQlpZiAoY3Vyb3B0 aW1hbCA9PSBjdXJlbGVtKQogCQl7Ci0JCQlsYXN0ZW50cnktPnN0YXR1cyA9IFNIX1NUQVRVU19F TVBUWTsKKwkJCVNIX0VOVFJZX1NFVF9FTVBUWSh0YiwgbGFzdGVudHJ5KTsKIAkJCWJyZWFrOwog CQl9CiAKQEAgLTk5Myw3ICsxMDEyLDcgQEAgU0hfU1RBUlRfSVRFUkFURShTSF9UWVBFICogdGIs IFNIX0lURVJBVE9SICogaXRlcikKIAl7CiAJCVNIX0VMRU1FTlRfVFlQRSAqZW50cnkgPSAmdGIt PmRhdGFbaV07CiAKLQkJaWYgKGVudHJ5LT5zdGF0dXMgIT0gU0hfU1RBVFVTX0lOX1VTRSkKKwkJ aWYgKFNIX0VOVFJZX0lTX0VNUFRZKHRiLCBlbnRyeSkpCiAJCXsKIAkJCXN0YXJ0ZWxlbSA9IGk7 CiAJCQlicmVhazsKQEAgLTEwNTUsNyArMTA3NCw3IEBAIFNIX0lURVJBVEUoU0hfVFlQRSAqIHRi LCBTSF9JVEVSQVRPUiAqIGl0ZXIpCiAKIAkJaWYgKChpdGVyLT5jdXIgJiB0Yi0+c2l6ZW1hc2sp ID09IChpdGVyLT5lbmQgJiB0Yi0+c2l6ZW1hc2spKQogCQkJaXRlci0+ZG9uZSA9IHRydWU7Ci0J CWlmIChlbGVtLT5zdGF0dXMgPT0gU0hfU1RBVFVTX0lOX1VTRSkKKwkJaWYgKCFTSF9FTlRSWV9J U19FTVBUWSh0YiwgZWxlbSkpCiAJCXsKIAkJCXJldHVybiBlbGVtOwogCQl9CkBAIC0xMDkxLDcg KzExMTAsNyBAQCBTSF9TVEFUKFNIX1RZUEUgKiB0YikKIAogCQllbGVtID0gJnRiLT5kYXRhW2ld OwogCi0JCWlmIChlbGVtLT5zdGF0dXMgIT0gU0hfU1RBVFVTX0lOX1VTRSkKKwkJaWYgKFNIX0VO VFJZX0lTX0VNUFRZKHRiLCBlbGVtKSkKIAkJCWNvbnRpbnVlOwogCiAJCWhhc2ggPSBTSF9FTlRS WV9IQVNIKHRiLCBlbGVtKTsKQEAgLTExNDksNiArMTE2OCw5IEBAIFNIX1NUQVQoU0hfVFlQRSAq IHRiKQogI3VuZGVmIFNIX0tFWQogI3VuZGVmIFNIX0VMRU1FTlRfVFlQRQogI3VuZGVmIFNIX0hB U0hfS0VZCisjdW5kZWYgU0hfRU5UUllfSVNfRU1QVFkKKyN1bmRlZiBTSF9FTlRSWV9TRVRfRU1Q VFkKKyN1bmRlZiBTSF9FTlRSWV9TRVRfSU5fVVNFCiAjdW5kZWYgU0hfU0NPUEUKICN1bmRlZiBT SF9ERUNMQVJFCiAjdW5kZWYgU0hfREVGSU5FCi0tIAoyLjM0LjEKCg== --=-nvqeBMJeafaW83v1gBVZ Content-Disposition: attachment; filename*0=v6-0005-TupleHashTable-reduce-overhead-by-removing-status.pat; filename*1=ch Content-Type: text/x-patch; name="v6-0005-TupleHashTable-reduce-overhead-by-removing-status.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjN2JjZGM4NDkzMTM3YjE1YjNiOGY3YjlmOWJiZmU4YjVlNjQwZTllIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDE1IE5vdiAyMDI0IDEzOjAzOjMyIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2NiA1LzddIFR1 cGxlSGFzaFRhYmxlOiByZWR1Y2Ugb3ZlcmhlYWQgYnkgcmVtb3ZpbmcgInN0YXR1cyIKIGZpZWxk LgoKTWFrZSB1c2Ugb2YgbmV3IHNpbXBsZWhhc2ggQVBJIGludHJvZHVjZWQgaW4gY29tbWl0IDEy MzQ1Njc4OTAuCgpCZWNhdXNlIE5VTEwgbm93IG1lYW5zIHRoYXQgdGhlIGVudHJ5IGlzIGVtcHR5 LCB1c2UgYSB1bmlxdWUgZHVtbXkKcG9pbnRlciB0byByZWZlciB0byB0aGUgaW5wdXRzbG90IGlu c3RlYWQuIEl0IGFsc28gbWFrZXMgdGhlIGNvZGUgbW9yZQpyZWFkYWJsZS4KLS0tCiBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjR3JvdXBpbmcuYyB8IDMzICsrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0dyb3VwaW5nLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjR3JvdXBpbmcuYwppbmRleCA5MDgzMzIxNmUzYi4uN2Y0MWIw MzMyNGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNHcm91cGluZy5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNHcm91cGluZy5jCkBAIC0yMyw3ICsyMyw2IEBA CiBzdHJ1Y3QgVHVwbGVIYXNoRW50cnlEYXRhCiB7CiAJTWluaW1hbFR1cGxlIGZpcnN0VHVwbGU7 CS8qIGNvcHkgb2YgZmlyc3QgdHVwbGUgaW4gdGhpcyBncm91cCAqLwotCXVpbnQzMgkJc3RhdHVz OwkJCS8qIGhhc2ggc3RhdHVzICovCiAJdWludDMyCQloYXNoOwkJCS8qIGhhc2ggdmFsdWUgKGNh Y2hlZCkgKi8KIH07CiAKQEAgLTM0LDYgKzMzLDE0IEBAIHN0YXRpYyBpbmxpbmUgVHVwbGVIYXNo RW50cnkgTG9va3VwVHVwbGVIYXNoRW50cnlfaW50ZXJuYWwoVHVwbGVIYXNoVGFibGUgaGFzaHRh CiAJCQkJCQkJCQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpzbG90LAogCQkJCQkJCQkJCQkJCQkg ICBib29sICppc25ldywgdWludDMyIGhhc2gpOwogCisvKgorICogQ3JlYXRlIGEgZHVtbXkgcG9p bnRlciB1c2VkIHRvIG1lYW4gdGhlIGlucHV0IHNsb3QuIFRoZSBwb2ludGVyIHdpbGwgb25seQor ICogYmUgdXNlZCBmb3IgY29tcGFyaXNvbiBhbmQgbmV2ZXIgZGVyZWZlcmVuY2VkLCBhbmQgbXVz dCBub3QgYmUgZXF1YWwgdG8gYQorICogdmFsaWQgcG9pbnRlci4gRGlzdGluY3QgZnJvbSBOVUxM LCBiZWNhdXNlIE5VTEwgbWVhbnMgdGhhdCB0aGUgaGFzaCBlbnRyeQorICogaXRzZWxmIGlzIGVt cHR5LgorICovCitjb25zdCBzdGF0aWMgTWluaW1hbFR1cGxlIEZJUlNUVFVQTEVfSU5QVVRTTE9U ID0gKE1pbmltYWxUdXBsZSkgMHgxOworCiAvKgogICogRGVmaW5lIHBhcmFtZXRlcnMgZm9yIHR1 cGxlIGhhc2ggdGFibGUgY29kZSBnZW5lcmF0aW9uLiBUaGUgaW50ZXJmYWNlIGlzCiAgKiAqYWxz byogZGVjbGFyZWQgaW4gZXhlY25vZGVzLmggKHRvIGdlbmVyYXRlIHRoZSB0eXBlcywgd2hpY2gg YXJlIGV4dGVybmFsbHkKQEAgLTQ4LDYgKzU1LDkgQEAgc3RhdGljIGlubGluZSBUdXBsZUhhc2hF bnRyeSBMb29rdXBUdXBsZUhhc2hFbnRyeV9pbnRlcm5hbChUdXBsZUhhc2hUYWJsZSBoYXNodGEK ICNkZWZpbmUgU0hfU0NPUEUgZXh0ZXJuCiAjZGVmaW5lIFNIX1NUT1JFX0hBU0gKICNkZWZpbmUg U0hfR0VUX0hBU0godGIsIGEpIGEtPmhhc2gKKyNkZWZpbmUgU0hfRU5UUllfSVNfRU1QVFkodGIs IGEpICgoYSktPmZpcnN0VHVwbGUgPT0gTlVMTCkKKyNkZWZpbmUgU0hfRU5UUllfU0VUX0VNUFRZ KHRiLCBhKSBkbyB7IChhKS0+Zmlyc3RUdXBsZSA9IE5VTEw7IH0gd2hpbGUgKDApCisjZGVmaW5l IFNIX0VOVFJZX1NFVF9JTl9VU0UodGIsIGEpIEFzc2VydCgoYSktPmZpcnN0VHVwbGUgIT0gTlVM TCkKICNkZWZpbmUgU0hfREVGSU5FCiAjaW5jbHVkZSAibGliL3NpbXBsZWhhc2guaCIKIApAQCAt MzQ0LDcgKzM1NCw3IEBAIExvb2t1cFR1cGxlSGFzaEVudHJ5KFR1cGxlSGFzaFRhYmxlIGhhc2h0 YWJsZSwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJaGFzaHRhYmxlLT5pbl9oYXNoX2V4cHIgPSBo YXNodGFibGUtPnRhYl9oYXNoX2V4cHI7CiAJaGFzaHRhYmxlLT5jdXJfZXFfZnVuYyA9IGhhc2h0 YWJsZS0+dGFiX2VxX2Z1bmM7CiAKLQlsb2NhbF9oYXNoID0gVHVwbGVIYXNoVGFibGVIYXNoX2lu dGVybmFsKGhhc2h0YWJsZS0+aGFzaHRhYiwgTlVMTCk7CisJbG9jYWxfaGFzaCA9IFR1cGxlSGFz aFRhYmxlSGFzaF9pbnRlcm5hbChoYXNodGFibGUtPmhhc2h0YWIsIEZJUlNUVFVQTEVfSU5QVVRT TE9UKTsKIAllbnRyeSA9IExvb2t1cFR1cGxlSGFzaEVudHJ5X2ludGVybmFsKGhhc2h0YWJsZSwg c2xvdCwgaXNuZXcsIGxvY2FsX2hhc2gpOwogCiAJaWYgKGhhc2ggIT0gTlVMTCkKQEAgLTM3Miw3 ICszODIsOCBAQCBUdXBsZUhhc2hUYWJsZUhhc2goVHVwbGVIYXNoVGFibGUgaGFzaHRhYmxlLCBU dXBsZVRhYmxlU2xvdCAqc2xvdCkKIAkvKiBOZWVkIHRvIHJ1biB0aGUgaGFzaCBmdW5jdGlvbnMg aW4gc2hvcnQtbGl2ZWQgY29udGV4dCAqLwogCW9sZENvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dp dGNoVG8oaGFzaHRhYmxlLT50ZW1wY3h0KTsKIAotCWhhc2ggPSBUdXBsZUhhc2hUYWJsZUhhc2hf aW50ZXJuYWwoaGFzaHRhYmxlLT5oYXNodGFiLCBOVUxMKTsKKwloYXNoID0gVHVwbGVIYXNoVGFi bGVIYXNoX2ludGVybmFsKGhhc2h0YWJsZS0+aGFzaHRhYiwKKwkJCQkJCQkJCSAgIEZJUlNUVFVQ TEVfSU5QVVRTTE9UKTsKIAogCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRDb250ZXh0KTsKIApA QCAtNDMzLDcgKzQ0NCw3IEBAIEZpbmRUdXBsZUhhc2hFbnRyeShUdXBsZUhhc2hUYWJsZSBoYXNo dGFibGUsIFR1cGxlVGFibGVTbG90ICpzbG90LAogCWhhc2h0YWJsZS0+Y3VyX2VxX2Z1bmMgPSBl cWNvbXA7CiAKIAkvKiBTZWFyY2ggdGhlIGhhc2ggdGFibGUgKi8KLQlrZXkgPSBOVUxMOwkJCQkJ LyogZmxhZyB0byByZWZlcmVuY2UgaW5wdXRzbG90ICovCisJa2V5ID0gRklSU1RUVVBMRV9JTlBV VFNMT1Q7CiAJZW50cnkgPSB0dXBsZWhhc2hfbG9va3VwKGhhc2h0YWJsZS0+aGFzaHRhYiwga2V5 KTsKIAlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkQ29udGV4dCk7CiAKQEAgLTQ0MSw5ICs0NTIs OSBAQCBGaW5kVHVwbGVIYXNoRW50cnkoVHVwbGVIYXNoVGFibGUgaGFzaHRhYmxlLCBUdXBsZVRh YmxlU2xvdCAqc2xvdCwKIH0KIAogLyoKLSAqIElmIHR1cGxlIGlzIE5VTEwsIHVzZSB0aGUgaW5w dXQgc2xvdCBpbnN0ZWFkLiBUaGlzIGNvbnZlbnRpb24gYXZvaWRzIHRoZQotICogbmVlZCB0byBt YXRlcmlhbGl6ZSB2aXJ0dWFsIGlucHV0IHR1cGxlcyB1bmxlc3MgdGhleSBhY3R1YWxseSBuZWVk IHRvIGdldAotICogY29waWVkIGludG8gdGhlIHRhYmxlLgorICogSWYgdHVwbGUgaXMgRklSU1RU VVBMRV9JTlBVVFNMT1QsIHVzZSB0aGUgaW5wdXQgc2xvdCBpbnN0ZWFkLiBUaGlzCisgKiBjb252 ZW50aW9uIGF2b2lkcyB0aGUgbmVlZCB0byBtYXRlcmlhbGl6ZSB2aXJ0dWFsIGlucHV0IHR1cGxl cyB1bmxlc3MgdGhleQorICogYWN0dWFsbHkgbmVlZCB0byBnZXQgY29waWVkIGludG8gdGhlIHRh YmxlLgogICoKICAqIEFsc28sIHRoZSBjYWxsZXIgbXVzdCBzZWxlY3QgYW4gYXBwcm9wcmlhdGUg bWVtb3J5IGNvbnRleHQgZm9yIHJ1bm5pbmcKICAqIHRoZSBoYXNoIGZ1bmN0aW9ucy4KQEAgLTQ1 Nyw3ICs0NjgsNyBAQCBUdXBsZUhhc2hUYWJsZUhhc2hfaW50ZXJuYWwoc3RydWN0IHR1cGxlaGFz aF9oYXNoICp0YiwKIAlUdXBsZVRhYmxlU2xvdCAqc2xvdDsKIAlib29sCQlpc251bGw7CiAKLQlp ZiAodHVwbGUgPT0gTlVMTCkKKwlpZiAodHVwbGUgPT0gRklSU1RUVVBMRV9JTlBVVFNMT1QpCiAJ ewogCQkvKiBQcm9jZXNzIHRoZSBjdXJyZW50IGlucHV0IHR1cGxlIGZvciB0aGUgdGFibGUgKi8K IAkJaGFzaHRhYmxlLT5leHByY29udGV4dC0+ZWN4dF9pbm5lcnR1cGxlID0gaGFzaHRhYmxlLT5p bnB1dHNsb3Q7CkBAIC01MDQsNyArNTE1LDcgQEAgTG9va3VwVHVwbGVIYXNoRW50cnlfaW50ZXJu YWwoVHVwbGVIYXNoVGFibGUgaGFzaHRhYmxlLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIAlib29s CQlmb3VuZDsKIAlNaW5pbWFsVHVwbGUga2V5OwogCi0Ja2V5ID0gTlVMTDsJCQkJCS8qIGZsYWcg dG8gcmVmZXJlbmNlIGlucHV0c2xvdCAqLworCWtleSA9IEZJUlNUVFVQTEVfSU5QVVRTTE9UOwog CiAJaWYgKGlzbmV3KQogCXsKQEAgLTU2MCwxMCArNTcxLDEwIEBAIFR1cGxlSGFzaFRhYmxlTWF0 Y2goc3RydWN0IHR1cGxlaGFzaF9oYXNoICp0YiwgY29uc3QgTWluaW1hbFR1cGxlIHR1cGxlMSwg Y29uc3QKIAkgKiBMb29rdXBUdXBsZUhhc2hFbnRyeSdzIGR1bW15IFR1cGxlSGFzaEVudHJ5RGF0 YS4gIFRoZSBvdGhlciBkaXJlY3Rpb24KIAkgKiBjb3VsZCBiZSBzdXBwb3J0ZWQgdG9vLCBidXQg aXMgbm90IGN1cnJlbnRseSByZXF1aXJlZC4KIAkgKi8KLQlBc3NlcnQodHVwbGUxICE9IE5VTEwp OworCUFzc2VydCh0dXBsZTEgJiYgdHVwbGUxICE9IEZJUlNUVFVQTEVfSU5QVVRTTE9UKTsKIAlz bG90MSA9IGhhc2h0YWJsZS0+dGFibGVzbG90OwogCUV4ZWNTdG9yZU1pbmltYWxUdXBsZSh0dXBs ZTEsIHNsb3QxLCBmYWxzZSk7Ci0JQXNzZXJ0KHR1cGxlMiA9PSBOVUxMKTsKKwlBc3NlcnQodHVw bGUyID09IEZJUlNUVFVQTEVfSU5QVVRTTE9UKTsKIAlzbG90MiA9IGhhc2h0YWJsZS0+aW5wdXRz bG90OwogCiAJLyogRm9yIGNyb3NzdHlwZSBjb21wYXJpc29ucywgdGhlIGlucHV0c2xvdCBtdXN0 IGJlIGZpcnN0ICovCi0tIAoyLjM0LjEKCg== --=-nvqeBMJeafaW83v1gBVZ Content-Disposition: attachment; filename*0=v6-0006-Pack-TupleHashEntryData-and-AggStatePerGroupData.patc; filename*1=h Content-Type: text/x-patch; name="v6-0006-Pack-TupleHashEntryData-and-AggStatePerGroupData.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA2NGIwNDljZDg1MGMyZTljNjA1NzRkZWY2MTg5NjdlYjdmMGMwMzQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDE1IE5vdiAyMDI0IDE4OjUyOjA2IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2NiA2LzddIFBh Y2sgVHVwbGVIYXNoRW50cnlEYXRhIGFuZCBBZ2dTdGF0ZVBlckdyb3VwRGF0YS4KCi0tLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0dyb3VwaW5nLmMgfCA2ICsrKysrLQogc3JjL2luY2x1ZGUv ZXhlY3V0b3Ivbm9kZUFnZy5oICAgICAgfCA2ICsrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxMCBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNHcm91cGluZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0dyb3VwaW5n LmMKaW5kZXggN2Y0MWIwMzMyNGYuLmNlYTI4Y2U0YmQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjR3JvdXBpbmcuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj R3JvdXBpbmcuYwpAQCAtMjQsNyArMjQsMTEgQEAgc3RydWN0IFR1cGxlSGFzaEVudHJ5RGF0YQog ewogCU1pbmltYWxUdXBsZSBmaXJzdFR1cGxlOwkvKiBjb3B5IG9mIGZpcnN0IHR1cGxlIGluIHRo aXMgZ3JvdXAgKi8KIAl1aW50MzIJCWhhc2g7CQkJLyogaGFzaCB2YWx1ZSAoY2FjaGVkKSAqLwot fTsKK30KKyNpZmRlZiBwZ19hdHRyaWJ1dGVfcGFja2VkCisJCQlwZ19hdHRyaWJ1dGVfcGFja2Vk KCkKKyNlbmRpZgorCQkgICA7CiAKIHN0YXRpYyBpbnQJVHVwbGVIYXNoVGFibGVNYXRjaChzdHJ1 Y3QgdHVwbGVoYXNoX2hhc2ggKnRiLCBjb25zdCBNaW5pbWFsVHVwbGUgdHVwbGUxLCBjb25zdCBN aW5pbWFsVHVwbGUgdHVwbGUyKTsKIHN0YXRpYyBpbmxpbmUgdWludDMyIFR1cGxlSGFzaFRhYmxl SGFzaF9pbnRlcm5hbChzdHJ1Y3QgdHVwbGVoYXNoX2hhc2ggKnRiLApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvZXhlY3V0b3Ivbm9kZUFnZy5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZUFn Zy5oCmluZGV4IDM0YjgyZDBmNWQxLi5jYjc1NmE5MTJhNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3Ivbm9kZUFnZy5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVBZ2cu aApAQCAtMjY0LDcgKzI2NCwxMSBAQCB0eXBlZGVmIHN0cnVjdCBBZ2dTdGF0ZVBlckdyb3VwRGF0 YQogCSAqIE5VTEwgYW5kIG5vdCBhdXRvLXJlcGxhY2UgaXQgd2l0aCBhIGxhdGVyIGlucHV0IHZh bHVlLiBPbmx5IHRoZSBmaXJzdAogCSAqIG5vbi1OVUxMIGlucHV0IHdpbGwgYmUgYXV0by1zdWJz dGl0dXRlZC4KIAkgKi8KLX0gQWdnU3RhdGVQZXJHcm91cERhdGE7Cit9CisjaWZkZWYgcGdfYXR0 cmlidXRlX3BhY2tlZAorCQkJcGdfYXR0cmlidXRlX3BhY2tlZCgpCisjZW5kaWYKK0FnZ1N0YXRl UGVyR3JvdXBEYXRhOwogCiAvKgogICogQWdnU3RhdGVQZXJQaGFzZURhdGEgLSBwZXItZ3JvdXBp bmctc2V0LXBoYXNlIHN0YXRlCi0tIAoyLjM0LjEKCg== --=-nvqeBMJeafaW83v1gBVZ Content-Disposition: attachment; filename*0=v6-0007-HashAgg-use-Bump-allocator-for-hash-TupleHashTabl.pat; filename*1=ch Content-Type: text/x-patch; name="v6-0007-HashAgg-use-Bump-allocator-for-hash-TupleHashTabl.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3ZTMyNGRlNDc5OTk4YjhiNzczMTg1ZGI5NDZlODc4OGJjNmE5MjAxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDggSmFuIDIwMjUgMTE6NDY6MzUgLTA4MDAKU3ViamVjdDogW1BBVENIIHY2IDcvN10gSGFz aEFnZzogdXNlIEJ1bXAgYWxsb2NhdG9yIGZvciBoYXNoIFR1cGxlSGFzaFRhYmxlCiBlbnRyaWVz LgoKVGhlIGVudHJpZXMgYXJlbid0IGZyZWVkIHVudGlsIHRoZSBlbnRpcmUgaGFzaCB0YWJsZSBp cyBkZXN0cm95ZWQsIHNvCnVzZSB0aGUgQnVtcCBhbGxvY2F0b3IgdG8gaW1wcm92ZSBhbGxvY2F0 aW9uIHNwZWVkLCBhdm9pZCB3YXN0aW5nCnNwYWNlIG9uIHRoZSBjaHVuayBoZWFkZXIsIGFuZCBh dm9pZCB3YXN0aW5nIHNwYWNlIGR1ZSB0byB0aGUKcG93ZXItb2YtdHdvIGFsbG9jYXRpb25zLgoK RGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUFwSER2cXYxYU5CNGNNMzZGelJ3aXZY ckV2Qk9fTHNHX2VRM25xRFhUakVDYWF0T1FAbWFpbC5nbWFpbC5jb20KUmV2aWV3ZWQtYnk6IERh dmlkIFJvd2xleQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYyAgICAgICAgICAg ICB8IDExMCArKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rl cy5oICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncm91 cGluZ3NldHMub3V0IHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ncm91cGluZ3NldHMu c3FsICAgICAgfCAgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgMjIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jCmluZGV4IDE5NjQwNzUyOTY3Li5kNWJl ZDllYzQ4ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYwpAQCAtNDA1LDYgKzQwNSw3IEBAIHN0YXRp YyB2b2lkIGJ1aWxkX2hhc2hfdGFibGVzKEFnZ1N0YXRlICphZ2dzdGF0ZSk7CiBzdGF0aWMgdm9p ZCBidWlsZF9oYXNoX3RhYmxlKEFnZ1N0YXRlICphZ2dzdGF0ZSwgaW50IHNldG5vLCBsb25nIG5i dWNrZXRzKTsKIHN0YXRpYyB2b2lkIGhhc2hhZ2dfcmVjb21waWxlX2V4cHJlc3Npb25zKEFnZ1N0 YXRlICphZ2dzdGF0ZSwgYm9vbCBtaW5zbG90LAogCQkJCQkJCQkJCSAgYm9vbCBudWxsY2hlY2sp Oworc3RhdGljIHZvaWQgaGFzaF9jcmVhdGVfbWVtb3J5KEFnZ1N0YXRlICphZ2dzdGF0ZSk7CiBz dGF0aWMgbG9uZyBoYXNoX2Nob29zZV9udW1fYnVja2V0cyhkb3VibGUgaGFzaGVudHJ5c2l6ZSwK IAkJCQkJCQkJCWxvbmcgbmdyb3VwcywgU2l6ZSBtZW1vcnkpOwogc3RhdGljIGludAloYXNoX2No b29zZV9udW1fcGFydGl0aW9ucyhkb3VibGUgaW5wdXRfZ3JvdXBzLApAQCAtMTUwMyw3ICsxNTA0 LDcgQEAgYnVpbGRfaGFzaF90YWJsZShBZ2dTdGF0ZSAqYWdnc3RhdGUsIGludCBzZXRubywgbG9u ZyBuYnVja2V0cykKIHsKIAlBZ2dTdGF0ZVBlckhhc2ggcGVyaGFzaCA9ICZhZ2dzdGF0ZS0+cGVy aGFzaFtzZXRub107CiAJTWVtb3J5Q29udGV4dCBtZXRhY3h0ID0gYWdnc3RhdGUtPmhhc2hfbWV0 YWN4dDsKLQlNZW1vcnlDb250ZXh0IGhhc2hjeHQgPSBhZ2dzdGF0ZS0+aGFzaGNvbnRleHQtPmVj eHRfcGVyX3R1cGxlX21lbW9yeTsKKwlNZW1vcnlDb250ZXh0IHRhYmxlY3h0ID0gYWdnc3RhdGUt Pmhhc2hfdGFibGVjeHQ7CiAJTWVtb3J5Q29udGV4dCB0bXBjeHQgPSBhZ2dzdGF0ZS0+dG1wY29u dGV4dC0+ZWN4dF9wZXJfdHVwbGVfbWVtb3J5OwogCVNpemUJCWFkZGl0aW9uYWxzaXplOwogCkBA IC0xNTI5LDcgKzE1MzAsNyBAQCBidWlsZF9oYXNoX3RhYmxlKEFnZ1N0YXRlICphZ2dzdGF0ZSwg aW50IHNldG5vLCBsb25nIG5idWNrZXRzKQogCQkJCQkJCQkJCQkgbmJ1Y2tldHMsCiAJCQkJCQkJ CQkJCSBhZGRpdGlvbmFsc2l6ZSwKIAkJCQkJCQkJCQkJIG1ldGFjeHQsCi0JCQkJCQkJCQkJCSBo YXNoY3h0LAorCQkJCQkJCQkJCQkgdGFibGVjeHQsCiAJCQkJCQkJCQkJCSB0bXBjeHQsCiAJCQkJ CQkJCQkJCSBET19BR0dTUExJVF9TS0lQRklOQUwoYWdnc3RhdGUtPmFnZ3NwbGl0KSk7CiB9CkBA IC0xNzAwLDE1ICsxNzAxLDI0IEBAIGhhc2hfYWdnX2VudHJ5X3NpemUoaW50IG51bVRyYW5zLCBT aXplIHR1cGxlV2lkdGgsIFNpemUgdHJhbnNpdGlvblNwYWNlKQogCQkJCQkJCSB0dXBsZVdpZHRo KTsKIAlTaXplCQlwZXJncm91cFNpemUgPSBudW1UcmFucyAqIHNpemVvZihBZ2dTdGF0ZVBlckdy b3VwRGF0YSk7CiAKLQl0dXBsZUNodW5rU2l6ZSA9IENIVU5LSERSU1ogKyB0dXBsZVNpemU7Ci0K LQlpZiAocGVyZ3JvdXBTaXplID4gMCkKLQkJcGVyZ3JvdXBDaHVua1NpemUgPSBDSFVOS0hEUlNa ICsgcGVyZ3JvdXBTaXplOwotCWVsc2UKLQkJcGVyZ3JvdXBDaHVua1NpemUgPSAwOworCS8qCisJ ICogRW50cmllcyB1c2UgdGhlIEJ1bXAgYWxsb2NhdG9yLCBzbyB0aGUgY2h1bmsgc2l6ZXMgYXJl IHRoZSBzYW1lIGFzIHRoZQorCSAqIHJlcXVlc3RlZCBzaXplcy4KKwkgKi8KKwl0dXBsZUNodW5r U2l6ZSA9IHR1cGxlU2l6ZTsKKwlwZXJncm91cENodW5rU2l6ZSA9IHBlcmdyb3VwU2l6ZTsKIAor CS8qCisJICogVHJhbnNpdGlvbiB2YWx1ZXMgdXNlIEFsbG9jU2V0LCB3aGljaCBoYXMgYSBjaHVu ayBoZWFkZXIgYW5kIGFsc28gdXNlcworCSAqIHBvd2VyLW9mLXR3byBhbGxvY2F0aW9ucy4KKwkg Ki8KIAlpZiAodHJhbnNpdGlvblNwYWNlID4gMCkKLQkJdHJhbnNpdGlvbkNodW5rU2l6ZSA9IENI VU5LSERSU1ogKyB0cmFuc2l0aW9uU3BhY2U7CisJeworCQlTaXplCQlwb3cyID0gKFNpemUpIDEg PDwgbXlfbG9nMih0cmFuc2l0aW9uU3BhY2UpOworCisJCS8qIHVzZSBNYXggdG8gcHJvdGVjdCBh Z2FpbnN0IG92ZXJmbG93ICovCisJCXRyYW5zaXRpb25DaHVua1NpemUgPSBNYXgoQ0hVTktIRFJT WiArIHBvdzIsIHRyYW5zaXRpb25TcGFjZSk7CisJfQogCWVsc2UKIAkJdHJhbnNpdGlvbkNodW5r U2l6ZSA9IDA7CiAKQEAgLTE4NTgsMTUgKzE4NjgsMTggQEAgaGFzaF9hZ2dfY2hlY2tfbGltaXRz KEFnZ1N0YXRlICphZ2dzdGF0ZSkKIAl1aW50NjQJCW5ncm91cHMgPSBhZ2dzdGF0ZS0+aGFzaF9u Z3JvdXBzX2N1cnJlbnQ7CiAJU2l6ZQkJbWV0YV9tZW0gPSBNZW1vcnlDb250ZXh0TWVtQWxsb2Nh dGVkKGFnZ3N0YXRlLT5oYXNoX21ldGFjeHQsCiAJCQkJCQkJCQkJCQkJIHRydWUpOwotCVNpemUJ CWhhc2hrZXlfbWVtID0gTWVtb3J5Q29udGV4dE1lbUFsbG9jYXRlZChhZ2dzdGF0ZS0+aGFzaGNv bnRleHQtPmVjeHRfcGVyX3R1cGxlX21lbW9yeSwKLQkJCQkJCQkJCQkJCQkJdHJ1ZSk7CisJU2l6 ZQkJZW50cnlfbWVtID0gTWVtb3J5Q29udGV4dE1lbUFsbG9jYXRlZChhZ2dzdGF0ZS0+aGFzaF90 YWJsZWN4dCwKKwkJCQkJCQkJCQkJCQkgIHRydWUpOworCVNpemUJCXR2YWxfbWVtID0gTWVtb3J5 Q29udGV4dE1lbUFsbG9jYXRlZChhZ2dzdGF0ZS0+aGFzaGNvbnRleHQtPmVjeHRfcGVyX3R1cGxl X21lbW9yeSwKKwkJCQkJCQkJCQkJCQkgdHJ1ZSk7CisJU2l6ZQkJdG90YWxfbWVtID0gbWV0YV9t ZW0gKyBlbnRyeV9tZW0gKyB0dmFsX21lbTsKIAogCS8qCiAJICogRG9uJ3Qgc3BpbGwgdW5sZXNz IHRoZXJlJ3MgYXQgbGVhc3Qgb25lIGdyb3VwIGluIHRoZSBoYXNoIHRhYmxlIHNvIHdlCiAJICog Y2FuIGJlIHN1cmUgdG8gbWFrZSBwcm9ncmVzcyBldmVuIGluIGVkZ2UgY2FzZXMuCiAJICovCiAJ aWYgKGFnZ3N0YXRlLT5oYXNoX25ncm91cHNfY3VycmVudCA+IDAgJiYKLQkJKG1ldGFfbWVtICsg aGFzaGtleV9tZW0gPiBhZ2dzdGF0ZS0+aGFzaF9tZW1fbGltaXQgfHwKKwkJKHRvdGFsX21lbSA+ IGFnZ3N0YXRlLT5oYXNoX21lbV9saW1pdCB8fAogCQkgbmdyb3VwcyA+IGFnZ3N0YXRlLT5oYXNo X25ncm91cHNfbGltaXQpKQogCXsKIAkJaGFzaF9hZ2dfZW50ZXJfc3BpbGxfbW9kZShhZ2dzdGF0 ZSk7CkBAIC0xOTE3LDYgKzE5MzAsNyBAQCBzdGF0aWMgdm9pZAogaGFzaF9hZ2dfdXBkYXRlX21l dHJpY3MoQWdnU3RhdGUgKmFnZ3N0YXRlLCBib29sIGZyb21fdGFwZSwgaW50IG5wYXJ0aXRpb25z KQogewogCVNpemUJCW1ldGFfbWVtOworCVNpemUJCWVudHJ5X21lbTsKIAlTaXplCQloYXNoa2V5 X21lbTsKIAlTaXplCQlidWZmZXJfbWVtOwogCVNpemUJCXRvdGFsX21lbTsKQEAgLTE5MjgsNyAr MTk0MiwxMCBAQCBoYXNoX2FnZ191cGRhdGVfbWV0cmljcyhBZ2dTdGF0ZSAqYWdnc3RhdGUsIGJv b2wgZnJvbV90YXBlLCBpbnQgbnBhcnRpdGlvbnMpCiAJLyogbWVtb3J5IGZvciB0aGUgaGFzaCB0 YWJsZSBpdHNlbGYgKi8KIAltZXRhX21lbSA9IE1lbW9yeUNvbnRleHRNZW1BbGxvY2F0ZWQoYWdn c3RhdGUtPmhhc2hfbWV0YWN4dCwgdHJ1ZSk7CiAKLQkvKiBtZW1vcnkgZm9yIHRoZSBncm91cCBr ZXlzIGFuZCB0cmFuc2l0aW9uIHN0YXRlcyAqLworCS8qIG1lbW9yeSBmb3IgaGFzaCBlbnRyaWVz ICovCisJZW50cnlfbWVtID0gTWVtb3J5Q29udGV4dE1lbUFsbG9jYXRlZChhZ2dzdGF0ZS0+aGFz aF90YWJsZWN4dCwgdHJ1ZSk7CisKKwkvKiBtZW1vcnkgZm9yIGJ5cmVmIHRyYW5zaXRpb24gc3Rh dGVzICovCiAJaGFzaGtleV9tZW0gPSBNZW1vcnlDb250ZXh0TWVtQWxsb2NhdGVkKGFnZ3N0YXRl LT5oYXNoY29udGV4dC0+ZWN4dF9wZXJfdHVwbGVfbWVtb3J5LCB0cnVlKTsKIAogCS8qIG1lbW9y eSBmb3IgcmVhZC93cml0ZSB0YXBlIGJ1ZmZlcnMsIGlmIHNwaWxsZWQgKi8KQEAgLTE5MzcsNyAr MTk1NCw3IEBAIGhhc2hfYWdnX3VwZGF0ZV9tZXRyaWNzKEFnZ1N0YXRlICphZ2dzdGF0ZSwgYm9v bCBmcm9tX3RhcGUsIGludCBucGFydGl0aW9ucykKIAkJYnVmZmVyX21lbSArPSBIQVNIQUdHX1JF QURfQlVGRkVSX1NJWkU7CiAKIAkvKiB1cGRhdGUgcGVhayBtZW0gKi8KLQl0b3RhbF9tZW0gPSBt ZXRhX21lbSArIGhhc2hrZXlfbWVtICsgYnVmZmVyX21lbTsKKwl0b3RhbF9tZW0gPSBtZXRhX21l bSArIGVudHJ5X21lbSArIGhhc2hrZXlfbWVtICsgYnVmZmVyX21lbTsKIAlpZiAodG90YWxfbWVt ID4gYWdnc3RhdGUtPmhhc2hfbWVtX3BlYWspCiAJCWFnZ3N0YXRlLT5oYXNoX21lbV9wZWFrID0g dG90YWxfbWVtOwogCkBAIC0xOTU5LDYgKzE5NzYsNTggQEAgaGFzaF9hZ2dfdXBkYXRlX21ldHJp Y3MoQWdnU3RhdGUgKmFnZ3N0YXRlLCBib29sIGZyb21fdGFwZSwgaW50IG5wYXJ0aXRpb25zKQog CX0KIH0KIAorLyoKKyAqIENyZWF0ZSBtZW1vcnkgY29udGV4dHMgdXNlZCBmb3IgaGFzaCBhZ2dy ZWdhdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK2hhc2hfY3JlYXRlX21lbW9yeShBZ2dTdGF0ZSAq YWdnc3RhdGUpCit7CisJU2l6ZQkJbWluQ29udGV4dFNpemUgPSBBTExPQ1NFVF9ERUZBVUxUX01J TlNJWkU7CisJU2l6ZQkJaW5pdEJsb2NrU2l6ZSA9IEFMTE9DU0VUX0RFRkFVTFRfSU5JVFNJWkU7 CisJU2l6ZQkJbWF4QmxvY2tTaXplID0gQUxMT0NTRVRfREVGQVVMVF9NQVhTSVpFOworCisJLyoK KwkgKiBUaGUgaGFzaGNvbnRleHQncyBwZXItdHVwbGUgbWVtb3J5IHdpbGwgYmUgdXNlZCBmb3Ig YnlyZWYgdHJhbnNpdGlvbgorCSAqIHZhbHVlcyBhbmQgcmV0dXJuZWQgYnkgQWdnQ2hlY2tDYWxs Q29udGV4dCgpLgorCSAqLworCWFnZ3N0YXRlLT5oYXNoY29udGV4dCA9IENyZWF0ZVdvcmtFeHBy Q29udGV4dChhZ2dzdGF0ZS0+c3MucHMuc3RhdGUpOworCisJLyoKKwkgKiBUaGUgbWV0YSBjb250 ZXh0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIGJ1Y2tldCBhcnJheSBvZgorCSAqIFR1cGxlSGFzaEVu dHJ5RGF0YSAob3IgYXJyYXlzLCBpbiB0aGUgY2FzZSBvZiBncm91cGluZyBzZXRzKS4gQXMgdGhl CisJICogaGFzaCB0YWJsZSBncm93cywgdGhlIGJ1Y2tldCBhcnJheSB3aWxsIGRvdWJsZSBpbiBz aXplIGFuZCB0aGUgb2xkIG9uZQorCSAqIHdpbGwgYmUgZnJlZWQsIHNvIGFuIEFsbG9jU2V0IGlz IGFwcHJvcHJpYXRlLiBGb3IgbGFyZ2UgYnVja2V0IGFycmF5cywKKwkgKiB0aGUgbGFyZ2UgYWxs b2NhdGlvbiBwYXRoIHdpbGwgYmUgdXNlZCwgc28gaXQncyBub3Qgd29ydGggd29ycnlpbmcKKwkg KiBhYm91dCB3YXN0aW5nIHNwYWNlIGR1ZSB0byBwb3dlci1vZi10d28gYWxsb2NhdGlvbnMuCisJ ICovCisJYWdnc3RhdGUtPmhhc2hfbWV0YWN4dCA9IEFsbG9jU2V0Q29udGV4dENyZWF0ZShhZ2dz dGF0ZS0+c3MucHMuc3RhdGUtPmVzX3F1ZXJ5X2N4dCwKKwkJCQkJCQkJCQkJCSAgICJIYXNoQWdn IG1ldGEgY29udGV4dCIsCisJCQkJCQkJCQkJCQkgICBBTExPQ1NFVF9ERUZBVUxUX1NJWkVTKTsK KworCS8qCisJICogVGhlIGhhc2ggZW50cmllcyB0aGVtc2VsdmVzLCB3aGljaCBpbmNsdWRlIHRo ZSBncm91cGluZyBrZXkKKwkgKiAoZmlyc3RUdXBsZSkgYW5kIHBlcmdyb3VwIGRhdGEsIGFyZSBz dG9yZWQgaW4gdGhlIHRhYmxlIGNvbnRleHQuIFRoZQorCSAqIGJ1bXAgYWxsb2NhdG9yIGNhbiBi ZSB1c2VkIGJlY2F1c2UgdGhlIGVudHJpZXMgYXJlIG5vdCBmcmVlZCB1bnRpbCB0aGUKKwkgKiBl bnRpcmUgaGFzaCB0YWJsZSBpcyByZXNldC4gVGhlIGJ1bXAgYWxsb2NhdG9yIGlzIGZhc3RlciBm b3IKKwkgKiBhbGxvY2F0aW9ucyBhbmQgYXZvaWRzIHdhc3Rpbmcgc3BhY2Ugb24gdGhlIGNodW5r IGhlYWRlciBvcgorCSAqIHBvd2VyLW9mLXR3byBhbGxvY2F0aW9ucy4KKwkgKgorCSAqIExpa2Ug Q3JlYXRlV29ya0V4cHJDb250ZXh0KCksIHVzZSBzbWFsbGVyIHNpemluZ3MgZm9yIHNtYWxsZXIg d29ya19tZW0sCisJICogdG8gYXZvaWQgbGFyZ2UganVtcHMgaW4gbWVtb3J5IHVzYWdlLgorCSAq LworCXdoaWxlICgxNiAqIG1heEJsb2NrU2l6ZSA+IHdvcmtfbWVtICogMTAyNEwpCisJCW1heEJs b2NrU2l6ZSA+Pj0gMTsKKworCWlmIChtYXhCbG9ja1NpemUgPCBBTExPQ1NFVF9ERUZBVUxUX0lO SVRTSVpFKQorCQltYXhCbG9ja1NpemUgPSBBTExPQ1NFVF9ERUZBVUxUX0lOSVRTSVpFOworCisJ YWdnc3RhdGUtPmhhc2hfdGFibGVjeHQgPSBCdW1wQ29udGV4dENyZWF0ZShhZ2dzdGF0ZS0+c3Mu cHMuc3RhdGUtPmVzX3F1ZXJ5X2N4dCwKKwkJCQkJCQkJCQkJCSJIYXNoQWdnIHRhYmxlIGNvbnRl eHQiLAorCQkJCQkJCQkJCQkJbWluQ29udGV4dFNpemUsIGluaXRCbG9ja1NpemUsCisJCQkJCQkJ CQkJCQltYXhCbG9ja1NpemUpOworCit9CisKIC8qCiAgKiBDaG9vc2UgYSByZWFzb25hYmxlIG51 bWJlciBvZiBidWNrZXRzIGZvciB0aGUgaW5pdGlhbCBoYXNoIHRhYmxlIHNpemUuCiAgKi8KQEAg LTI2MTgsNiArMjY4Nyw3IEBAIGFnZ19yZWZpbGxfaGFzaF90YWJsZShBZ2dTdGF0ZSAqYWdnc3Rh dGUpCiAKIAkvKiBmcmVlIG1lbW9yeSBhbmQgcmVzZXQgaGFzaCB0YWJsZXMgKi8KIAlSZVNjYW5F eHByQ29udGV4dChhZ2dzdGF0ZS0+aGFzaGNvbnRleHQpOworCU1lbW9yeUNvbnRleHRSZXNldChh Z2dzdGF0ZS0+aGFzaF90YWJsZWN4dCk7CiAJZm9yIChpbnQgc2V0bm8gPSAwOyBzZXRubyA8IGFn Z3N0YXRlLT5udW1faGFzaGVzOyBzZXRubysrKQogCQlSZXNldFR1cGxlSGFzaFRhYmxlKGFnZ3N0 YXRlLT5wZXJoYXNoW3NldG5vXS5oYXNodGFibGUpOwogCkBAIC0zMjg1LDcgKzMzNTUsNyBAQCBF eGVjSW5pdEFnZyhBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCX0KIAog CWlmICh1c2VfaGFzaGluZykKLQkJYWdnc3RhdGUtPmhhc2hjb250ZXh0ID0gQ3JlYXRlV29ya0V4 cHJDb250ZXh0KGVzdGF0ZSk7CisJCWhhc2hfY3JlYXRlX21lbW9yeShhZ2dzdGF0ZSk7CiAKIAlF eGVjQXNzaWduRXhwckNvbnRleHQoZXN0YXRlLCAmYWdnc3RhdGUtPnNzLnBzKTsKIApAQCAtMzU4 MCw5ICszNjUwLDYgQEAgRXhlY0luaXRBZ2coQWdnICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50 IGVmbGFncykKIAkJUGxhbgkgICAqb3V0ZXJwbGFuID0gb3V0ZXJQbGFuKG5vZGUpOwogCQl1aW50 NjQJCXRvdGFsR3JvdXBzID0gMDsKIAotCQlhZ2dzdGF0ZS0+aGFzaF9tZXRhY3h0ID0gQWxsb2NT ZXRDb250ZXh0Q3JlYXRlKGFnZ3N0YXRlLT5zcy5wcy5zdGF0ZS0+ZXNfcXVlcnlfY3h0LAotCQkJ CQkJCQkJCQkJCSAgICJIYXNoQWdnIG1ldGEgY29udGV4dCIsCi0JCQkJCQkJCQkJCQkJICAgQUxM T0NTRVRfREVGQVVMVF9TSVpFUyk7CiAJCWFnZ3N0YXRlLT5oYXNoX3NwaWxsX3JzbG90ID0gRXhl Y0luaXRFeHRyYVR1cGxlU2xvdChlc3RhdGUsIHNjYW5EZXNjLAogCQkJCQkJCQkJCQkJCQkJJlRU U09wc01pbmltYWxUdXBsZSk7CiAJCWFnZ3N0YXRlLT5oYXNoX3NwaWxsX3dzbG90ID0gRXhlY0lu aXRFeHRyYVR1cGxlU2xvdChlc3RhdGUsIHNjYW5EZXNjLApAQCAtNDMyNyw2ICs0Mzk0LDEyIEBA IEV4ZWNFbmRBZ2coQWdnU3RhdGUgKm5vZGUpCiAJCU1lbW9yeUNvbnRleHREZWxldGUobm9kZS0+ aGFzaF9tZXRhY3h0KTsKIAkJbm9kZS0+aGFzaF9tZXRhY3h0ID0gTlVMTDsKIAl9CisJaWYgKG5v ZGUtPmhhc2hfdGFibGVjeHQgIT0gTlVMTCkKKwl7CisJCU1lbW9yeUNvbnRleHREZWxldGUobm9k ZS0+aGFzaF90YWJsZWN4dCk7CisJCW5vZGUtPmhhc2hfdGFibGVjeHQgPSBOVUxMOworCX0KKwog CiAJZm9yICh0cmFuc25vID0gMDsgdHJhbnNubyA8IG5vZGUtPm51bXRyYW5zOyB0cmFuc25vKysp CiAJewpAQCAtNDQ0Myw2ICs0NTE2LDcgQEAgRXhlY1JlU2NhbkFnZyhBZ2dTdGF0ZSAqbm9kZSkK IAkJbm9kZS0+aGFzaF9uZ3JvdXBzX2N1cnJlbnQgPSAwOwogCiAJCVJlU2NhbkV4cHJDb250ZXh0 KG5vZGUtPmhhc2hjb250ZXh0KTsKKwkJTWVtb3J5Q29udGV4dFJlc2V0KG5vZGUtPmhhc2hfdGFi bGVjeHQpOwogCQkvKiBSZWJ1aWxkIGFuIGVtcHR5IGhhc2ggdGFibGUgKi8KIAkJYnVpbGRfaGFz aF90YWJsZXMobm9kZSk7CiAJCW5vZGUtPnRhYmxlX2ZpbGxlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaAppbmRleCBkNDZjZTliNDk5Ni4uOTk5ZDA2YWE1NzAgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rl cy5oCkBAIC0yNTU4LDcgKzI1NTgsOCBAQCB0eXBlZGVmIHN0cnVjdCBBZ2dTdGF0ZQogCS8qIHRo ZXNlIGZpZWxkcyBhcmUgdXNlZCBpbiBBR0dfSEFTSEVEIGFuZCBBR0dfTUlYRUQgbW9kZXM6ICov CiAJYm9vbAkJdGFibGVfZmlsbGVkOwkvKiBoYXNoIHRhYmxlIGZpbGxlZCB5ZXQ/ICovCiAJaW50 CQkJbnVtX2hhc2hlczsKLQlNZW1vcnlDb250ZXh0IGhhc2hfbWV0YWN4dDsgLyogbWVtb3J5IGZv ciBoYXNoIHRhYmxlIGl0c2VsZiAqLworCU1lbW9yeUNvbnRleHQgaGFzaF9tZXRhY3h0OyAvKiBt ZW1vcnkgZm9yIGhhc2ggdGFibGUgYnVja2V0IGFycmF5ICovCisJTWVtb3J5Q29udGV4dCBoYXNo X3RhYmxlY3h0OwkvKiBtZW1vcnkgZm9yIGhhc2ggdGFibGUgZW50cmllcyAqLwogCXN0cnVjdCBM b2dpY2FsVGFwZVNldCAqaGFzaF90YXBlc2V0OwkvKiB0YXBlIHNldCBmb3IgaGFzaCBzcGlsbCB0 YXBlcyAqLwogCXN0cnVjdCBIYXNoQWdnU3BpbGwgKmhhc2hfc3BpbGxzOwkvKiBIYXNoQWdnU3Bp bGwgZm9yIGVhY2ggZ3JvdXBpbmcgc2V0LAogCQkJCQkJCQkJCSAqIGV4aXN0cyBvbmx5IGR1cmlu ZyBmaXJzdCBwYXNzICovCkBAIC0yNTg0LDcgKzI1ODUsNyBAQCB0eXBlZGVmIHN0cnVjdCBBZ2dT dGF0ZQogCQkJCQkJCQkJCSAqIHBlci1ncm91cCBwb2ludGVycyAqLwogCiAJLyogc3VwcG9ydCBm b3IgZXZhbHVhdGlvbiBvZiBhZ2cgaW5wdXQgZXhwcmVzc2lvbnM6ICovCi0jZGVmaW5lIEZJRUxE Tk9fQUdHU1RBVEVfQUxMX1BFUkdST1VQUyA1MworI2RlZmluZSBGSUVMRE5PX0FHR1NUQVRFX0FM TF9QRVJHUk9VUFMgNTQKIAlBZ2dTdGF0ZVBlckdyb3VwICphbGxfcGVyZ3JvdXBzOwkvKiBhcnJh eSBvZiBmaXJzdCAtPnBlcmdyb3VwcywgdGhhbgogCQkJCQkJCQkJCSAqIC0+aGFzaF9wZXJncm91 cCAqLwogCVNoYXJlZEFnZ0luZm8gKnNoYXJlZF9pbmZvOyAvKiBvbmUgZW50cnkgcGVyIHdvcmtl ciAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncm91cGluZ3NldHMu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncm91cGluZ3NldHMub3V0CmluZGV4IGQ3 YzliNDQ2MDVkLi4wZTg2ZTMxZmU5MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ncm91cGluZ3NldHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3Jv dXBpbmdzZXRzLm91dApAQCAtMTcxMSw3ICsxNzExLDcgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQog ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHRlbmsxCiAoOSByb3dzKQogCi1zZXQgd29ya19tZW0g PSAnMzg0a0InOworc2V0IHdvcmtfbWVtID0gJzI1NmtCJzsKIGV4cGxhaW4gKGNvc3RzIG9mZikK ICAgc2VsZWN0IHVuaXF1ZTEsCiAgICAgICAgICBjb3VudCh0d28pLCBjb3VudChmb3VyKSwgY291 bnQodGVuKSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyb3VwaW5nc2V0cy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncm91cGluZ3NldHMuc3FsCmluZGV4IDIxY2QzMTIx OTQwLi4xMGYzYzM2ZDVjNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JvdXBp bmdzZXRzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncm91cGluZ3NldHMuc3FsCkBA IC00NjcsNyArNDY3LDcgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogICAgICAgICAgY291bnQoKikK ICAgICBmcm9tIHRlbmsxIGdyb3VwIGJ5IGdyb3VwaW5nIHNldHMgKHVuaXF1ZTEsaHVuZHJlZCx0 ZW4sZm91cix0d28pOwogCi1zZXQgd29ya19tZW0gPSAnMzg0a0InOworc2V0IHdvcmtfbWVtID0g JzI1NmtCJzsKIGV4cGxhaW4gKGNvc3RzIG9mZikKICAgc2VsZWN0IHVuaXF1ZTEsCiAgICAgICAg ICBjb3VudCh0d28pLCBjb3VudChmb3VyKSwgY291bnQodGVuKSwKLS0gCjIuMzQuMQoK --=-nvqeBMJeafaW83v1gBVZ--