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 1s7vqd-008O1z-2a for pgsql-hackers@arkaria.postgresql.org; Fri, 17 May 2024 11:34:04 +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 1s7vqc-00B3oE-Az for pgsql-hackers@arkaria.postgresql.org; Fri, 17 May 2024 11:34:02 +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 1s7vqb-00B3o6-Ul for pgsql-hackers@lists.postgresql.org; Fri, 17 May 2024 11:34:02 +0000 Received: from mail-yb1-xb32.google.com ([2607:f8b0:4864:20::b32]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1s7vqT-000hZ1-Qw for pgsql-hackers@lists.postgresql.org; Fri, 17 May 2024 11:34:01 +0000 Received: by mail-yb1-xb32.google.com with SMTP id 3f1490d57ef6-de5ea7edb90so32095276.1 for ; Fri, 17 May 2024 04:33:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715945632; x=1716550432; 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=UrBFEP9Awj4AQwRgVVCh8fkNFBrPE/2D7Zmt3IZ5JBI=; b=jjZU0gOjRgL6qT3nxjnuF71U2O3QUdBsLL7A9oj+EIjTiBn8cv1TCtYV76G/PCGNar NvHjUXTUeEn/uBgedE4pu6ZV5VG2viV1Tquf8XaTD+DuRc98errpBlN5U3V7SSvak/nv fxBdrjuS5KTb3LHUT/8Q+MtzyrPGXnIkhaMKT4D+YV8ZiVQpADOemoehuv8ClbmPMUC1 tJczCi78ISFSQKzgKafQ31Ac3vnfRcCYG84flVZSp7Vp5oG1w8unUV3f8n6L12xfLnNZ BO8pFHFNclu6YRcBuYfntLTVPmyKMNOI6Aal+0SUP9kQGPMVCL/lxY7d3nuoN7ZvrNor lgTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715945632; x=1716550432; 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=UrBFEP9Awj4AQwRgVVCh8fkNFBrPE/2D7Zmt3IZ5JBI=; b=k2x3rYyG4IknDc2cdW1RY9XKT2um1GMbXEFmHnx4zj6KSeBID1SG89Nd8wGwV8YRZQ lJXCrOr0YsinQSOClrSG94qSgn0uC7KUPnm311TLIJ2l/l5Agdtz8hggdLfp3s1rEPPN KMOG7eX5Xm2g2sBPBBwUJyfpbTSQBqFEVK8lnez/hLUUZhGjKHF0uhkOvw9AB2NC1Gtd SyyuJwclK/4Q7LBvAyFmxy+43CnaHqQqOTtOhU2+T+uBREEAzPS6E5DHKU0nJ5WwnGUb m6AeDx6TTSnVW0dVtv4TyUhyQovKEclV9bEDQj9s3F/IlzKF9YNunSQYce7xGDGi8RrN XbUg== X-Forwarded-Encrypted: i=1; AJvYcCXy4AkXbSPnBPYXvjL3C5M+QknCUxbAh81gVnkYOkGdBsHH9MavYf6LNAqeZXwBQGmcNbBpcwBtAkKxw8oXzwRTpwqzHEVNwW1hD0Ck50uFDiQS X-Gm-Message-State: AOJu0YzDyWNx/HzZv/RHnZ4Utndx27GwUuWu3a/uTqk8IcPfBgFYzLoL OJgebDNrUfAXA7DZZREP3iVbBczEghOM8/oqW3/WATeb8pmkUrN8koA8Fx9gUEWNFMwGaWv9DKo HTkGOyLlPZqt/AnUDONy4oHjq6mY= X-Google-Smtp-Source: AGHT+IG7kp5tRw4RfySMhr4TAV3l0QfRggvx+JCdSbwadHy/QGBhIYTDm80JLoiNwBBM+G7Mg0gQZ5REtdgQyp7o8dI= X-Received: by 2002:a25:844b:0:b0:de6:17eb:3cb5 with SMTP id 3f1490d57ef6-dee4f1b77c1mr20322069276.10.1715945632211; Fri, 17 May 2024 04:33:52 -0700 (PDT) MIME-Version: 1.0 References: <0f655bcd-6487-4179-f9cf-c248efbad510@gmail.com> <41117807-3bea-45bc-a9c0-743c29abff2d@postgrespro.ru> In-Reply-To: From: Alexander Korotkov Date: Fri, 17 May 2024 14:33:40 +0300 Message-ID: Subject: Re: Add SPLIT PARTITION/MERGE PARTITIONS commands To: Pavel Borisov Cc: Justin Pryzby , Dmitry Koval , Alexander Lakhin , pgsql-hackers@lists.postgresql.org, Tomas Vondra , Alvaro Herrera Content-Type: multipart/mixed; boundary="000000000000dd02c40618a4b99b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000dd02c40618a4b99b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Pavel! On Fri, May 17, 2024 at 2:02=E2=80=AFPM Pavel Borisov wrote: > On Fri, 17 May 2024 at 14:05, Alexander Korotkov w= rote: >> >> On Tue, May 14, 2024 at 5:49=E2=80=AFPM Justin Pryzby wrote: >> > On Thu, May 09, 2024 at 12:51:32AM +0300, Alexander Korotkov wrote: >> > > > > However, parent's table extended statistics already covers all i= ts >> > > > > children. >> > > > >> > > > =3D> That's the wrong explanation. It's not that "stats on the pa= rent >> > > > table cover its children". It's that there are two types of stats= : >> > > > stats for the "table hierarchy" and stats for the individual table= . >> > > > That's true for single-column stats as well as for extended stats. >> > > > In both cases, that's indicated by the inh flag in the code and in= the >> > > > catalog. >> > > > >> > > > The right explanation is that extended stats on partitioned tables= are >> > > > not similar to indexes. Indexes on parent table are nothing other= than >> > > > a mechanism to create indexes on the child tables. That's not tru= e for >> > > > stats. >> > > > >> > > > See also my prior messages >> > > > ZiJW1g2nbQs9ekwK@pryzbyj2023 >> > > > Zi5Msg74C61DjJKW@pryzbyj2023 >> > > >> > > Yes, I understand that parents pg_statistic entry with stainherit = =3D=3D >> > > true includes statistics for the children. I tried to express this = by >> > > word "covers". But you're right, this is the wrong explanation. >> > > >> > > Can I, please, ask you to revise the patch? >> > >> > I tried to make this clear but it'd be nice if someone (Tomas/Alvaro?) >> > would check that this says what's wanted. >> >> Thank you! >> >> I've assembled the patches with the pending fixes. >> 0001 =E2=80=93 The patch by Dmitry Koval for fixing detection of name >> collision in SPLIT partition operation. Also, I found that name >> collision detection doesn't work well for MERGE partitions. I've >> added fix for that to this patch as well. >> 0002 -=E2=80=93 Patch for skipping copy of extended statistics. I would >> appreciate more feedback about wording, but I'd like to get a correct >> behavior into the source tree sooner. If the docs and/or comments >> need further improvements, we can fix that later. >> >> I'm going to push both if no objections. > > Thank you for working on this patch set! > > Some minor things: > 0001: > partition_split.sql > 157 +-- Check that detection, that the new partition has the same name as= one of > 158 +-- the merged partitions, works correctly for temporary partitions > Test for split with comment for merge. Maybe better something like: > "Split partition of a temporary table when one of the partitions after sp= lit has the same name as the partition being split" Thank you, fixed as proposed. > 0002: > analgous -> analogous (maybe better using "like" instead of "analogous to= ") > heirarchy -> hierarchy Changed "are not analgous to" to "don't behave like". > alter_table.sgml: > Maybe in documentation it's better not to provide reasoning, just state h= ow it works: > for consistency with CREATE TABLE PARTITION OF -> simi= lar to CREATE TABLE PARTITION OF I'd like to keep this. This is the question, which should naturally arise when you read: "Why this is not just INCLUDING ALL?" ------ Regards, Alexander Korotkov Supabase --000000000000dd02c40618a4b99b Content-Type: application/octet-stream; name="v3-0001-Fix-the-name-collision-detection-in-MERGE-SPLIT-p.patch" Content-Disposition: attachment; filename="v3-0001-Fix-the-name-collision-detection-in-MERGE-SPLIT-p.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lwalps5q0 RnJvbSA2YTY0NTJhMWIyOTBlZGZlNmRhOTE2MTdlNGJiN2VjODI3Nzc0Y2ExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogRnJpLCAxNyBNYXkgMjAyNCAxMjo0NDowOSArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjMgMS8yXSBGaXggdGhlIG5hbWUgY29sbGlzaW9uIGRldGVjdGlvbiBpbiBNRVJHRS9T UExJVAogcGFydGl0aW9uIG9wZXJhdGlvbnMKCkJvdGggTUVSR0UgYW5kIFNQTElUIHBhcnRpdGlv biBvcGVyYXRpb25zIHN1cHBvcnQgdGhlIGNhc2Ugd2hlbiB0aGUgbmFtZSBvZiB0aGUKbmV3IHBh cnRpdGlvbiBtYXRjaGVzIHRoZSBuYW1lIG9mIHRoZSBleGlzdGluZyBwYXJ0aXRpb24gdG8gYmUg bWVyZ2VkL3NwbGl0LgpCdXQgdGhlIG5hbWUgY29sbGlzaW9uIGRldGVjdGlvbiBkb2Vzbid0IGFs d2F5cyB3b3JrIGFzIGludGVuZGVkLiAgVGhlIFNQTElUCnBhcnRpdGlvbiBvcGVyYXRpb24gZmlu ZHMgdGhlIG5hbWVzcGFjZSB0byBzZWFyY2ggZm9yIGFuIGV4aXN0aW5nIHBhcnRpdGlvbgp3aXRo b3V0IHRha2luZyBpbnRvIGFjY291bnQgdGhlIHBhcmVudCdzIHBlcnNpc3RlbmNlLiAgVGhlIE1F UkdFIHBhcnRpdGlvbgpvcGVyYXRpb24gY2hlY2tzIGZvciB0aGUgbmFtZSBjb2xsaXNpb24gd2l0 aCBzaW1wbGUgZXF1YWwoKSBvbiBSYW5nZVZhcidzCnNpbXBseSBpZ25vcmluZyB0aGUgc2VhcmNo X3BhdGguCgpUaGlzIGNvbW1pdCBmaXhlcyB0aGlzIGJlaGF2aW9yIGFzIGZvbGxvd3MuCiAxLiBU aGUgU1BMSVQgcGFydGl0aW9uIG9wZXJhdGlvbiBub3cgZmluZHMgdGhlIG5hbWVzcGFjZSB0byBz ZWFyY2ggZm9yCiAgICBhbiBleGlzdGluZyBwYXJ0aXRpb24gYWNjb3JkaW5nIHRvIHRoZSBwYXJl bnQncyBwZXJzaXN0ZW5jZS4KIDIuIFRoZSBNRVJHRSBwYXJ0aXRpb24gb3BlcmF0aW9uIG5vdyBj aGVja3MgZm9yIHRoZSBuYW1lIGNvbGxpc2lvbiBzaW1pbGFybHkKICAgIHRvIHRoZSBTUExJVCBw YXJ0aXRpb24gb3BlcmF0aW9uIHVzaW5nCiAgICBSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRpb25O YW1lc3BhY2UoKSBhbmQgZ2V0X3JlbG5hbWVfcmVsaWQoKS4KClJlcG9ydGVkLWJ5OiBBbGV4YW5k ZXIgTGFraGluCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vODZiNGYxZTMtMGI1ZC0z MTVjLTkyMjUtMTk4NjBkNjRkNjg1JTQwZ21haWwuY29tCkF1dGhvcjogRG1pdHJ5IEtvdmFsLCBB bGV4YW5kZXIgS29yb3Rrb3YKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAg ICAgICAgICAgICAgfCA2MiArKysrKysrKysrKysrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQgfCAgMyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wYXJ0aXRpb25fc3BsaXQub3V0IHwgIDggKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9w YXJ0aXRpb25fbWVyZ2Uuc3FsICAgICAgfCAgMyArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFy dGl0aW9uX3NwbGl0LnNxbCAgICAgIHwgIDkgKysrCiA1IGZpbGVzIGNoYW5nZWQsIDcyIGluc2Vy dGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXgg MzEzYzc4MmNhZTIuLjdhMDYzY2E4YWUwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAt MjA0MDksNiArMjA0MDksNyBAQCBBVEV4ZWNTcGxpdFBhcnRpdGlvbihMaXN0ICoqd3F1ZXVlLCBB bHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJICogYWdhaW5zdCBjb25jdXJy ZW50IGRyb3AsIGFuZCBtYXJrIHN0bXQtPnJlbGF0aW9uIGFzCiAJCSAqIFJFTFBFUlNJU1RFTkNF X1RFTVAgaWYgYSB0ZW1wb3JhcnkgbmFtZXNwYWNlIGlzIHNlbGVjdGVkLgogCQkgKi8KKwkJc3Bz LT5uYW1lLT5yZWxwZXJzaXN0ZW5jZSA9IHJlbC0+cmRfcmVsLT5yZWxwZXJzaXN0ZW5jZTsKIAkJ bmFtZXNwYWNlSWQgPQogCQkJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKHNw cy0+bmFtZSwgTm9Mb2NrLCBOVUxMKTsKIApAQCAtMjA2MDEsNiArMjA2MDIsOCBAQCBBVEV4ZWNN ZXJnZVBhcnRpdGlvbnMoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxh dGlvbiByZWwsCiAJTGlzdENlbGwgICAqbGlzdHB0cjsKIAlMaXN0CSAgICptZXJnaW5nUGFydGl0 aW9uc0xpc3QgPSBOSUw7CiAJT2lkCQkJZGVmYXVsdFBhcnRPaWQ7CisJT2lkCQkJbmFtZXNwYWNl SWQ7CisJT2lkCQkJZXhpc3RpbmdSZWxpZDsKIAogCS8qCiAJICogTG9jayBhbGwgbWVyZ2VkIHBh cnRpdGlvbnMsIGNoZWNrIHRoZW0gYW5kIGNyZWF0ZSBsaXN0IHdpdGggcGFydGl0aW9ucwpAQCAt MjA2MTcsMTMgKzIwNjIwLDQ4IEBAIEFURXhlY01lcmdlUGFydGl0aW9ucyhMaXN0ICoqd3F1ZXVl LCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJICovCiAJCW1lcmdpbmdQ YXJ0aXRpb24gPSB0YWJsZV9vcGVucnYobmFtZSwgQWNjZXNzRXhjbHVzaXZlTG9jayk7CiAKLQkJ LyoKLQkJICogQ2hlY2tpbmcgdGhhdCB0d28gcGFydGl0aW9ucyBoYXZlIHRoZSBzYW1lIG5hbWUg d2FzIGJlZm9yZSwgaW4KLQkJICogZnVuY3Rpb24gdHJhbnNmb3JtUGFydGl0aW9uQ21kRm9yTWVy Z2UoKS4KLQkJICovCi0JCWlmIChlcXVhbChuYW1lLCBjbWQtPm5hbWUpKQorCQkvKiBTdG9yZSBh IG5leHQgbWVyZ2luZyBwYXJ0aXRpb24gaW50byB0aGUgbGlzdC4gKi8KKwkJbWVyZ2luZ1BhcnRp dGlvbnNMaXN0ID0gbGFwcGVuZChtZXJnaW5nUGFydGl0aW9uc0xpc3QsCisJCQkJCQkJCQkJbWVy Z2luZ1BhcnRpdGlvbik7CisJfQorCisJLyoKKwkgKiBMb29rIHVwIHRoZSBuYW1lc3BhY2UgaW4g d2hpY2ggd2UgYXJlIHN1cHBvc2VkIHRvIGNyZWF0ZSB0aGUgcGFydGl0aW9uLAorCSAqIGNoZWNr IHdlIGhhdmUgcGVybWlzc2lvbiB0byBjcmVhdGUgdGhlcmUsIGxvY2sgaXQgYWdhaW5zdCBjb25j dXJyZW50CisJICogZHJvcCwgYW5kIG1hcmsgc3RtdC0+cmVsYXRpb24gYXMgUkVMUEVSU0lTVEVO Q0VfVEVNUCBpZiBhIHRlbXBvcmFyeQorCSAqIG5hbWVzcGFjZSBpcyBzZWxlY3RlZC4KKwkgKi8K KwljbWQtPm5hbWUtPnJlbHBlcnNpc3RlbmNlID0gcmVsLT5yZF9yZWwtPnJlbHBlcnNpc3RlbmNl OworCW5hbWVzcGFjZUlkID0KKwkJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNl KGNtZC0+bmFtZSwgTm9Mb2NrLCBOVUxMKTsKKworCS8qCisJICogQ2hlY2sgaWYgdGhpcyBuYW1l IGlzIGFscmVhZHkgdGFrZW4uICBUaGlzIGhlbHBzIHVzIHRvIGRldGVjdCB0aGUKKwkgKiBzaXR1 YXRpb24gd2hlbiBvbmUgb2YgdGhlIG1lcmdpbmcgcGFydGl0aW9ucyBoYXMgdGhlIHNhbWUgbmFt ZSBhcyB0aGUKKwkgKiBuZXcgcGFydGl0aW9uLiAgT3RoZXJ3aXNlLCB0aGlzIHdvdWxkIGZhaWwg bGF0ZXIgb24gYW55d2F5IGJ1dCBjYXRjaGluZworCSAqIHRoaXMgaGVyZSBhbGxvd3MgdXMgdG8g ZW1pdCBhIG5pY2VyIGVycm9yIG1lc3NhZ2UuCisJICovCisJZXhpc3RpbmdSZWxpZCA9IGdldF9y ZWxuYW1lX3JlbGlkKGNtZC0+bmFtZS0+cmVsbmFtZSwgbmFtZXNwYWNlSWQpOworCisJaWYgKE9p ZElzVmFsaWQoZXhpc3RpbmdSZWxpZCkpCisJeworCQlSZWxhdGlvbglzYW1lTmFtZVBhcnRpdGlv biA9IE5VTEw7CisKKwkJZm9yZWFjaF9wdHIoUmVsYXRpb25EYXRhLCBtZXJnaW5nUGFydGl0aW9u LCBtZXJnaW5nUGFydGl0aW9uc0xpc3QpCiAJCXsKLQkJCS8qIE9uZSBuZXcgcGFydGl0aW9uIGNh biBoYXZlIHRoZSBzYW1lIG5hbWUgYXMgbWVyZ2VkIHBhcnRpdGlvbi4gKi8KKwkJCWlmIChSZWxh dGlvbkdldFJlbGlkKG1lcmdpbmdQYXJ0aXRpb24pID09IGV4aXN0aW5nUmVsaWQpCisJCQl7CisJ CQkJc2FtZU5hbWVQYXJ0aXRpb24gPSBtZXJnaW5nUGFydGl0aW9uOworCQkJCWJyZWFrOworCQkJ fQorCQl9CisKKwkJaWYgKHNhbWVOYW1lUGFydGl0aW9uKQorCQl7CisJCQkvKgorCQkJICogVGhl IG5ldyBwYXJ0aXRpb24gaGFzIHRoZSBzYW1lIG5hbWUgYXMgb25lIG9mIG1lcmdpbmcKKwkJCSAq IHBhcnRpdGlvbnMuCisJCQkgKi8KIAkJCWNoYXIJCXRtcFJlbE5hbWVbTkFNRURBVEFMRU5dOwog CiAJCQkvKiBHZW5lcmF0ZSB0ZW1wb3JhcnkgbmFtZS4gKi8KQEAgLTIwNjM1LDcgKzIwNjczLDcg QEAgQVRFeGVjTWVyZ2VQYXJ0aXRpb25zKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8g KnRhYiwgUmVsYXRpb24gcmVsLAogCQkJICogaW4gdGhlIGZ1dHVyZSBiZWNhdXNlIHdlJ3JlIGdv aW5nIHRvIGV2ZW50dWFsbHkgZHJvcCB0aGUKIAkJCSAqIGV4aXN0aW5nIHBhcnRpdGlvbiBhbnl3 YXkuCiAJCQkgKi8KLQkJCVJlbmFtZVJlbGF0aW9uSW50ZXJuYWwoUmVsYXRpb25HZXRSZWxpZCht ZXJnaW5nUGFydGl0aW9uKSwKKwkJCVJlbmFtZVJlbGF0aW9uSW50ZXJuYWwoUmVsYXRpb25HZXRS ZWxpZChzYW1lTmFtZVBhcnRpdGlvbiksCiAJCQkJCQkJCSAgIHRtcFJlbE5hbWUsIGZhbHNlLCBm YWxzZSk7CiAKIAkJCS8qCkBAIC0yMDY0NCwxMCArMjA2ODIsMTIgQEAgQVRFeGVjTWVyZ2VQYXJ0 aXRpb25zKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVs LAogCQkJICovCiAJCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOwogCQl9Ci0KLQkJLyogU3Rv cmUgYSBuZXh0IG1lcmdpbmcgcGFydGl0aW9uIGludG8gdGhlIGxpc3QuICovCi0JCW1lcmdpbmdQ YXJ0aXRpb25zTGlzdCA9IGxhcHBlbmQobWVyZ2luZ1BhcnRpdGlvbnNMaXN0LAotCQkJCQkJCQkJ CW1lcmdpbmdQYXJ0aXRpb24pOworCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX1RBQkxFKSwKKwkJCQkJIGVycm1zZygicmVsYXRp b24gXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwgY21kLT5uYW1lLT5yZWxuYW1lKSkpOworCQl9CiAJ fQogCiAJLyogRGV0YWNoIGFsbCBtZXJnZWQgcGFydGl0aW9ucy4gKi8KZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX21lcmdlLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX21lcmdlLm91dAppbmRleCA2MzYxNzMyZDEwNC4uOWM2 N2E0YThiMTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9u X21lcmdlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9tZXJn ZS5vdXQKQEAgLTIxNCw3ICsyMTQsOCBAQCBJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMg KDEzLCAnR2FuZGknLCAgICAzNzcsICAnMjAyMi0wMS0wOScpOwogSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICgxNCwgJ1NtaXRoJywgICAgNTEwLCAgJzIwMjItMDUtMDQnKTsKIC0tIE1l cmdlIHBhcnRpdGlvbnMgKGluY2x1ZGUgREVGQVVMVCBwYXJ0aXRpb24pIGludG8gcGFydGl0aW9u IHdpdGggdGhlIHNhbWUKIC0tIG5hbWUKLUFMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIE1FUkdFIFBB UlRJVElPTlMgKHNhbGVzX2phbjIwMjIsIHNhbGVzX21hcjIwMjIsIHNhbGVzX290aGVycykgSU5U TyBzYWxlc19vdGhlcnM7CitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBNRVJHRSBQQVJUSVRJT05T CisgIChzYWxlc19qYW4yMDIyLCBzYWxlc19tYXIyMDIyLCBwYXJ0aXRpb25zX21lcmdlX3NjaGVt YS5zYWxlc19vdGhlcnMpIElOVE8gc2FsZXNfb3RoZXJzOwogc2VsZWN0ICogZnJvbSBzYWxlc19v dGhlcnM7CiAgc2FsZXNwZXJzb25faWQgfCBzYWxlc3BlcnNvbl9uYW1lIHwgc2FsZXNfYW1vdW50 IHwgc2FsZXNfZGF0ZSAKIC0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wYXJ0aXRpb25fc3BsaXQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0 aXRpb25fc3BsaXQub3V0CmluZGV4IDE0YzRmOTdjOWZmLi5kMDhlYjQ3NzBiYSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fc3BsaXQub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3NwbGl0Lm91dApAQCAtMTU0Nyw2ICsx NTQ3LDE0IEBAIFJFVk9LRSBBTEwgT04gU0NIRU1BIHBhcnRpdGlvbl9zcGxpdF9zY2hlbWEgRlJP TSByZWdyZXNzX3BhcnRpdGlvbl9zcGxpdF9hbGljZTsKIFJFVk9LRSBBTEwgT04gU0NIRU1BIHBh cnRpdGlvbl9zcGxpdF9zY2hlbWEgRlJPTSByZWdyZXNzX3BhcnRpdGlvbl9zcGxpdF9ib2I7CiBE Uk9QIFJPTEUgcmVncmVzc19wYXJ0aXRpb25fc3BsaXRfYWxpY2U7CiBEUk9QIFJPTEUgcmVncmVz c19wYXJ0aXRpb25fc3BsaXRfYm9iOworLS0gU3BsaXQgcGFydGl0aW9uIG9mIGEgdGVtcG9yYXJ5 IHRhYmxlIHdoZW4gb25lIG9mIHRoZSBwYXJ0aXRpb25zIGFmdGVyCistLSBzcGxpdCBoYXMgdGhl IHNhbWUgbmFtZSBhcyB0aGUgcGFydGl0aW9uIGJlaW5nIHNwbGl0CitDUkVBVEUgVEVNUCBUQUJM RSB0IChhIGludCkgUEFSVElUSU9OIEJZIFJBTkdFIChhKTsKK0NSRUFURSBURU1QIFRBQkxFIHRw XzAgUEFSVElUSU9OIE9GIHQgRk9SIFZBTFVFUyBGUk9NICgwKSBUTyAoMik7CitBTFRFUiBUQUJM RSB0IFNQTElUIFBBUlRJVElPTiB0cF8wIElOVE8KKyAgKFBBUlRJVElPTiB0cF8wIEZPUiBWQUxV RVMgRlJPTSAoMCkgVE8gKDEpLAorICAgUEFSVElUSU9OIHRwXzEgRk9SIFZBTFVFUyBGUk9NICgx KSBUTyAoMikpOworRFJPUCBUQUJMRSB0OwogUkVTRVQgc2VhcmNoX3BhdGg7CiAtLQogRFJPUCBT Q0hFTUEgcGFydGl0aW9uX3NwbGl0X3NjaGVtYTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRp b25fbWVyZ2Uuc3FsCmluZGV4IDVhNzQxZWZhMDliLi41NjI0OTczMjAwMiAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX21lcmdlLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uuc3FsCkBAIC0xNDAsNyArMTQwLDggQEAgSU5TRVJU IElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxNCwgJ1NtaXRoJywgICAgNTEwLCAgJzIwMjItMDUt MDQnKTsKIAogLS0gTWVyZ2UgcGFydGl0aW9ucyAoaW5jbHVkZSBERUZBVUxUIHBhcnRpdGlvbikg aW50byBwYXJ0aXRpb24gd2l0aCB0aGUgc2FtZQogLS0gbmFtZQotQUxURVIgVEFCTEUgc2FsZXNf cmFuZ2UgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNfamFuMjAyMiwgc2FsZXNfbWFyMjAyMiwgc2Fs ZXNfb3RoZXJzKSBJTlRPIHNhbGVzX290aGVyczsKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIE1F UkdFIFBBUlRJVElPTlMKKyAgKHNhbGVzX2phbjIwMjIsIHNhbGVzX21hcjIwMjIsIHBhcnRpdGlv bnNfbWVyZ2Vfc2NoZW1hLnNhbGVzX290aGVycykgSU5UTyBzYWxlc19vdGhlcnM7CiAKIHNlbGVj dCAqIGZyb20gc2FsZXNfb3RoZXJzOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9wYXJ0aXRpb25fc3BsaXQuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3Nw bGl0LnNxbAppbmRleCA3MGQ3MDQ5OWVjNi4uZDllMjM1OWNiNzYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9zcGxpdC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcGFydGl0aW9uX3NwbGl0LnNxbApAQCAtOTMxLDYgKzkzMSwxNSBAQCBSRVZPS0UgQUxM IE9OIFNDSEVNQSBwYXJ0aXRpb25fc3BsaXRfc2NoZW1hIEZST00gcmVncmVzc19wYXJ0aXRpb25f c3BsaXRfYm9iOwogRFJPUCBST0xFIHJlZ3Jlc3NfcGFydGl0aW9uX3NwbGl0X2FsaWNlOwogRFJP UCBST0xFIHJlZ3Jlc3NfcGFydGl0aW9uX3NwbGl0X2JvYjsKIAorLS0gU3BsaXQgcGFydGl0aW9u IG9mIGEgdGVtcG9yYXJ5IHRhYmxlIHdoZW4gb25lIG9mIHRoZSBwYXJ0aXRpb25zIGFmdGVyCist LSBzcGxpdCBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgcGFydGl0aW9uIGJlaW5nIHNwbGl0CitD UkVBVEUgVEVNUCBUQUJMRSB0IChhIGludCkgUEFSVElUSU9OIEJZIFJBTkdFIChhKTsKK0NSRUFU RSBURU1QIFRBQkxFIHRwXzAgUEFSVElUSU9OIE9GIHQgRk9SIFZBTFVFUyBGUk9NICgwKSBUTyAo Mik7CitBTFRFUiBUQUJMRSB0IFNQTElUIFBBUlRJVElPTiB0cF8wIElOVE8KKyAgKFBBUlRJVElP TiB0cF8wIEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDEpLAorICAgUEFSVElUSU9OIHRwXzEgRk9S IFZBTFVFUyBGUk9NICgxKSBUTyAoMikpOworRFJPUCBUQUJMRSB0OworCiBSRVNFVCBzZWFyY2hf cGF0aDsKIAogLS0KLS0gCjIuMzkuMyAoQXBwbGUgR2l0LTE0NSkKCg== --000000000000dd02c40618a4b99b Content-Type: application/octet-stream; name="v3-0002-Don-t-copy-extended-statistics-during-MERGE-SPLIT.patch" Content-Disposition: attachment; filename="v3-0002-Don-t-copy-extended-statistics-during-MERGE-SPLIT.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lwalps5x1 RnJvbSBkYzhjMTMyZjFhMGQzOGU4NTM1ZjJkMGQwNWRjYzViMzM1MjdmNWFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogRnJpLCAxNyBNYXkgMjAyNCAxMjo1Njo0NiArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjMgMi8yXSBEb24ndCBjb3B5IGV4dGVuZGVkIHN0YXRpc3RpY3MgZHVyaW5nIE1FUkdF L1NQTElUCiBwYXJ0aXRpb24gb3BlcmF0aW9ucwoKV2hlbiBNRVJHRS9TUExJVCBjcmVhdGVkIG5l dyBwYXJ0aXRpb25zLCBpdCB3YXMgY2xvbmluZyB0aGUgZXh0ZW5kZWQKc3RhdGlzdGljcyBvZiB0 aGUgcGFyZW50IHRhYmxlLgoKSG93ZXZlciwgZXh0ZW5kZWQgc3RhdHMgb24gcGFydGl0aW9uZWQg dGFibGVzIGRvbid0IGJlaGF2ZSBsaWtlCmluZGV4ZXMgb24gcGFydGl0aW9uZWQgdGFibGVzICh3 aGljaCBleGlzdCBvbmx5IHRvIGNyZWF0ZSBwaHlzaWNhbAppbmRleGVzIG9uIGNoaWxkIHRhYmxl cykuICBSYXRoZXIsIGV4dGVuZGVkIHN0YXRzIG9uIGEgcGFyZW50IDEpIGNhdXNlCmV4dGVuZGVk IHN0YXRzIHRvIGJlIGNvbGxlY3RlZCBhbmQgY29tcHV0ZWQgYWNyb3NzIHRoZSB3aG9sZSBwYXJ0 aXRpb24KaGllcmFyY2h5LCBhbmQgMikgZG8gbm90IGNhdXNlIGV4dGVuZGVkIHN0YXRzIHRvIGJl IGNvbXB1dGVkIGZvciB0aGUKaW5kaXZpZHVhbCBwYXJ0aXRpb25zLgoKIkNSRUFURSBUQUJMRSAu Li4gUEFSVElUSU9OIE9GIiBjb21tYW5kIGRvZXNuJ3QgY29weSBleHRlbmRlZApzdGF0aXN0aWNz LiAgVGhpcyBjb21taXQgbWFrZXMgY3JlYXRlUGFydGl0aW9uVGFibGUoKSBiZWhhdmUKY29uc2lz dGVudGx5LgoKUmVwb3J0ZWQtYnk6IEp1c3RpbiBQcnl6YnkKRGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9aaUpXMWcybmJRczlla3dLJTQwcHJ5emJ5ajIwMjMKQXV0aG9yOiBBbGV4YW5k ZXIgS29yb3Rrb3YsIEp1c3RpbiBQcnl6YnkKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Rh YmxlLnNnbWwgfCA5ICsrKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMg IHwgOCArKysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbAppbmRleCA1ZDM1MmFiZjk5MS4uYzA2 MmEzNjg4MGQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwKQEAgLTExNTQsOSArMTE1NCwx MiBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJp Y19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICA8L3BhcmE+CiAgICAgIDxwYXJhPgog ICAgICAgVGhlIG5ldyBwYXJ0aXRpb25zIHdpbGwgYmUgY3JlYXRlZCB0aGUgc2FtZSBhcyB0YWJs ZXMgY3JlYXRlZCB3aXRoIHRoZQotICAgICAgU1FMIGNvbW1hbmQgPGxpdGVyYWw+Q1JFQVRFIFRB QkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRpb25fbmFtZU48L3JlcGxh Y2VhYmxlPiAoTElLRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IElOQ0xVRElORyBBTEwgRVhDTFVESU5HIElOREVYRVMgRVhDTFVESU5HIElERU5USVRZ KTwvbGl0ZXJhbD4uCisgICAgICBTUUwgY29tbWFuZCA8bGl0ZXJhbD5DUkVBVEUgVEFCTEUgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9uYW1lTjwvcmVwbGFjZWFibGU+ IChMSUtFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g SU5DTFVESU5HIEFMTCBFWENMVURJTkcgSU5ERVhFUyBFWENMVURJTkcgSURFTlRJVFkgRVhDTFVE SU5HIFNUQVRJU1RJQ1MpPC9saXRlcmFsPi4KICAgICAgIFRoZSBpbmRleGVzIGFuZCBpZGVudGl0 eSBhcmUgY3JlYXRlZCBsYXRlciwgYWZ0ZXIgbW92aW5nIHRoZSBkYXRhCiAgICAgICBpbnRvIHRo ZSBuZXcgcGFydGl0aW9ucy4KKyAgICAgIEV4dGVuZGVkIHN0YXRpc3RpY3MgYXJlbid0IGNvcGll ZCBmcm9tIHRoZSBwYXJlbnQgdGFibGUsIGZvciBjb25zaXN0ZW5jeSB3aXRoCisgICAgICA8Y29t bWFuZD5DUkVBVEUgVEFCTEUgUEFSVElUSU9OIE9GPC9jb21tYW5kPi4KKwogICAgICAgTmV3IHBh cnRpdGlvbnMgd2lsbCBoYXZlIHRoZSBzYW1lIHRhYmxlIGFjY2VzcyBtZXRob2QgYXMgdGhlIHBh cmVudC4KICAgICAgIElmIHRoZSBwYXJlbnQgdGFibGUgaXMgcGVyc2lzdGVudCB0aGVuIG5ldyBw YXJ0aXRpb25zIGFyZSBjcmVhdGVkCiAgICAgICBwZXJzaXN0ZW50LiAgSWYgdGhlIHBhcmVudCB0 YWJsZSBpcyB0ZW1wb3JhcnkgdGhlbiBuZXcgcGFydGl0aW9ucwpAQCAtMTIyNCw5ICsxMjI3LDEx IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmlj X2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgIDwvcGFyYT4KICAgICAgPHBhcmE+CiAg ICAgICBUaGUgbmV3IHBhcnRpdGlvbiB3aWxsIGJlIGNyZWF0ZWQgdGhlIHNhbWUgYXMgYSB0YWJs ZSBjcmVhdGVkIHdpdGggdGhlCi0gICAgICBTUUwgY29tbWFuZCA8bGl0ZXJhbD5DUkVBVEUgVEFC TEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9uYW1lPC9yZXBsYWNl YWJsZT4gKExJS0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBJTkNMVURJTkcgQUxMIEVYQ0xVRElORyBJTkRFWEVTIEVYQ0xVRElORyBJREVOVElUWSk8 L2xpdGVyYWw+LgorICAgICAgU1FMIGNvbW1hbmQgPGxpdGVyYWw+Q1JFQVRFIFRBQkxFIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRpb25fbmFtZTwvcmVwbGFjZWFibGU+IChM SUtFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gSU5D TFVESU5HIEFMTCBFWENMVURJTkcgSU5ERVhFUyBFWENMVURJTkcgSURFTlRJVFkgRVhDTFVESU5H IFNUQVRJU1RJQ1MpPC9saXRlcmFsPi4KICAgICAgIFRoZSBpbmRleGVzIGFuZCBpZGVudGl0eSBh cmUgY3JlYXRlZCBsYXRlciwgYWZ0ZXIgbW92aW5nIHRoZSBkYXRhCiAgICAgICBpbnRvIHRoZSBu ZXcgcGFydGl0aW9uLgorICAgICAgRXh0ZW5kZWQgc3RhdGlzdGljcyBhcmVuJ3QgY29waWVkIGZy b20gdGhlIHBhcmVudCB0YWJsZSwgZm9yIGNvbnNpc3RlbmN5IHdpdGgKKyAgICAgIDxjb21tYW5k PkNSRUFURSBUQUJMRSBQQVJUSVRJT04gT0Y8L2NvbW1hbmQ+LgogICAgICAgVGhlIG5ldyBwYXJ0 aXRpb24gd2lsbCBoYXZlIHRoZSBzYW1lIHRhYmxlIGFjY2VzcyBtZXRob2QgYXMgdGhlIHBhcmVu dC4KICAgICAgIElmIHRoZSBwYXJlbnQgdGFibGUgaXMgcGVyc2lzdGVudCB0aGVuIHRoZSBuZXcg cGFydGl0aW9uIGlzIGNyZWF0ZWQKICAgICAgIHBlcnNpc3RlbnQuICBJZiB0aGUgcGFyZW50IHRh YmxlIGlzIHRlbXBvcmFyeSB0aGVuIHRoZSBuZXcgcGFydGl0aW9uCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCmluZGV4IDdhMDYzY2E4YWUwLi43YjZjNjliN2E1MiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKQEAgLTIwMjY5LDcgKzIwMjY5LDcgQEAgbW92ZVNwbGl0VGFibGVSb3dzKFJlbGF0 aW9uIHJlbCwgUmVsYXRpb24gc3BsaXRSZWwsIExpc3QgKnBhcnRsaXN0LCBMaXN0ICpuZXdQYXIK ICAqIChuZXdQYXJ0TmFtZSkgbGlrZSB0YWJsZSAobW9kZWxSZWwpCiAgKgogICogRW11bGF0ZXMg Y29tbWFuZDogQ1JFQVRFIFtURU1QXSBUQUJMRSA8bmV3UGFydE5hbWU+IChMSUtFIDxtb2RlbFJl bCdzIG5hbWU+Ci0gKiBJTkNMVURJTkcgQUxMIEVYQ0xVRElORyBJTkRFWEVTIEVYQ0xVRElORyBJ REVOVElUWSkKKyAqIElOQ0xVRElORyBBTEwgRVhDTFVESU5HIElOREVYRVMgRVhDTFVESU5HIElE RU5USVRZIEVYQ0xVRElORyBTVEFUSVNUSUNTKQogICoKICAqIEFsc28sIHRoaXMgZnVuY3Rpb24g c2V0cyB0aGUgbmV3IHBhcnRpdGlvbiBhY2Nlc3MgbWV0aG9kIHNhbWUgYXMgcGFyZW50CiAgKiB0 YWJsZSBhY2Nlc3MgbWV0aG9kcyAoc2ltaWxhcmx5IHRvIENSRUFURSBUQUJMRSAuLi4gUEFSVElU SU9OIE9GKS4gIEl0CkBAIC0yMDMxMyw5ICsyMDMxMywxMSBAQCBjcmVhdGVQYXJ0aXRpb25UYWJs ZShSYW5nZVZhciAqbmV3UGFydE5hbWUsIFJlbGF0aW9uIG1vZGVsUmVsLAogCiAJLyoKIAkgKiBJ bmRleGVzIHdpbGwgYmUgaW5oZXJpdGVkIG9uICJhdHRhY2ggbmV3IHBhcnRpdGlvbnMiIHN0YWdl LCBhZnRlciBkYXRhCi0JICogbW92aW5nLgorCSAqIG1vdmluZy4gIFdlIGFsc28gZG9uJ3QgY29w eSB0aGUgZXh0ZW5kZWQgc3RhdGlzdGljcyBmb3IgY29uc2lzdGVuY3kKKwkgKiB3aXRoIENSRUFU RSBUQUJMRSBQQVJUSVRJT04gT0YuCiAJICovCi0JdGxjLT5vcHRpb25zID0gQ1JFQVRFX1RBQkxF X0xJS0VfQUxMICYgfihDUkVBVEVfVEFCTEVfTElLRV9JTkRFWEVTIHwgQ1JFQVRFX1RBQkxFX0xJ S0VfSURFTlRJVFkpOworCXRsYy0+b3B0aW9ucyA9IENSRUFURV9UQUJMRV9MSUtFX0FMTCAmCisJ CX4oQ1JFQVRFX1RBQkxFX0xJS0VfSU5ERVhFUyB8IENSRUFURV9UQUJMRV9MSUtFX0lERU5USVRZ IHwgQ1JFQVRFX1RBQkxFX0xJS0VfU1RBVElTVElDUyk7CiAJdGxjLT5yZWxhdGlvbk9pZCA9IElu dmFsaWRPaWQ7CiAJY3JlYXRlU3RtdC0+dGFibGVFbHRzID0gbGFwcGVuZChjcmVhdGVTdG10LT50 YWJsZUVsdHMsIHRsYyk7CiAKLS0gCjIuMzkuMyAoQXBwbGUgR2l0LTE0NSkKCg== --000000000000dd02c40618a4b99b--