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.98.2) (envelope-from ) id 1xBGM4-000000036dI-45XU for pgsql-hackers@arkaria.postgresql.org; Mon, 28 Sep 2026 18:45:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.98.2) (envelope-from ) id 1xBGM3-0000000AtyB-3SuE for pgsql-hackers@arkaria.postgresql.org; Mon, 28 Sep 2026 18:45:35 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1xBGM3-0000000Aty3-0clH for pgsql-hackers@lists.postgresql.org; Mon, 28 Sep 2026 18:45:35 +0000 Received: from mail-vs2-x2a.google.com ([2a00:1450:4864:3a::2a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1xBGLz-00000001jYz-1UwX for pgsql-hackers@postgresql.org; Mon, 28 Sep 2026 18:45:34 +0000 Received: by mail-vs2-x2a.google.com with SMTP id 71dfb90a1353d-5cda0838062so1668819e0c.1 for ; Mon, 28 Sep 2026 11:45:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790621130; x=1791225930; darn=postgresql.org; h=in-reply-to:references:cc:to:from:subject:message-id:date :mime-version:content-type:from:to:cc:subject:date:message-id :reply-to:content-type; bh=n+942VT7sVR6SUC1g6E50iVBBeROvrSLNhrj/Cciv98=; b=Fi5pR4wq5aL/H0JugGyNEkeuUH2N6l6gpLeSKBr4vqIqidncncT9vr8/VlnVxzUxLL 2TJmXFIO1/z4+3KVIVIya8wdFW4rjNTMeQcQrKEw/g47lr21T2cPbQ9xrPnzuKPpFTDt uizbU0krLaUWEDbVCdXijML3gM/035vXCHtJjX/AKmgi7+2cBvKuM0EZl8Al8bpD/pd6 o6Uu44C9s2njW0H9temVa8+bw0td1ENW2HP+Q3SO3eoRZvflNL4aCHlwglQ9fZWQlDX1 bfOE7b028jIG0FEp+bKekVZ3ZEsG7ksUBYmDwrNf+wYS6Xjb5o4Ly1N7mmahFXtO0SDe RHVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790621130; x=1791225930; h=in-reply-to:references:cc:to:from:subject:message-id:date :mime-version:content-type:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=n+942VT7sVR6SUC1g6E50iVBBeROvrSLNhrj/Cciv98=; b=bDinX3Ah3ftSoSX8OaftMQSlL0Zt0sFoivcZonvC94pAHw7DaRSKmCrPf9iRAf8qge eblS7X/M0BHRQiG2iJ+4YaDnrPXhNeDi3vYt48I7D/kx8xEgck1GbgX83neAyAOwFJmJ JXIb7OkdW6sav3JmJxHbTaK3gjJ0t65/EkbLSzySBs7g5buDRuWV0nc8vOou9q6E4xNx /dFE0eaQX0UYaHhA0waT+uUvLEEpS85wDCe9SucJzdlU7utBsW1Ogq7K1LXN9IaNJuP5 q/ZBbR8ZhhH4+jtDBtuKKTBQZq5BJD8C1lJYAsMS15kaWDWR4Pws3PAFeST96MP7SsTn nE6Q== X-Gm-Message-State: AFq9FYIz2sIxcot1ItH6DRT0RvXuFmBvUiw++jbUa4TLA+oHazQ44MPS 3b4HG4gauB05LUUg3L4IW2vaOsroimfLunhJQ0IJe+53l/2wvProcTxv X-Gm-Gg: AYBFou32+N/NpcB1pOM0djMJQK/rWt3Un3/1+X7TU5zpiCjUxsC7MId+uGP7fFWAazr DXlhQNPRoRK7FaCsbRXvxfp2GxjkASL24rpn+VDZ53Z+AMpmZNrSQJx5Wy66qH1BxJMilhs33OR pxcASPkwEhfFInc1ocaT5O9FitCKcQDKvH4f6AZt9g7zjKedsZs6FyemYT3yiFFlNKFyOZVDDAp +91YAEok5rnYzckyKlPV3fMUvMxq0krC3sjFjoJp6QndH7ZXqhWG/QM3xDG5Vs80KIZV9IS62WD k/hlOKCl4gejo139sUxQuN47+g1eYbMLmA3zjmmVOqzne/jikN9i/wSJ4rrsXu5entA4QwI2NKO MZHAuvf1QkQwkxIMP0URJSr0vnxXAWw2qiR0ekjWRQWATcJ8NWimGWutEHJDhpBFHiTmK5h433U hl8D+g1J87mhL5tUkS+X5Cd0q7ZtSPcA60ZqSXgBEgS3C2C3s/h/3v+dlG6Dn7EzFdJ2PQFtGHw ZVjZrmxADwGr8+AUUbO X-Received: by 2002:a05:6122:8b13:b0:5c9:c435:e927 with SMTP id 71dfb90a1353d-5cb090264e6mr6323820e0c.1.1790621129879; Mon, 28 Sep 2026 11:45:29 -0700 (PDT) Received: from localhost ([2804:14d:32a7:4273:ac6b:aaa4:756e:c2eb]) by smtp.gmail.com with ESMTPSA id 71dfb90a1353d-5cde587a790sm9852322e0c.9.2026.09.28.11.45.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 28 Sep 2026 11:45:29 -0700 (PDT) Content-Type: multipart/mixed; boundary=5b05c703de7eecfd7578033ba6731599e50e57b3c0a0867c83fd5829dee6 Mime-Version: 1.0 Date: Mon, 28 Sep 2026 15:45:26 -0300 Message-Id: Subject: Re: [PATCH v1] Fix for Bug#19724 - ALTER TYPE ... ALTER ATTRIBUTE triggers internal error for base type of domain with check From: "Matheus Alcantara" To: "Ayush Tiwari" , "Nitin Motiani" Cc: X-Mailer: aerc 0.21.0 References: In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --5b05c703de7eecfd7578033ba6731599e50e57b3c0a0867c83fd5829dee6 Content-Type: multipart/alternative; boundary=1a78cfa0a07829ccd5bbd922a8c372d85ada51d625ab11d136693ad5c47f --1a78cfa0a07829ccd5bbd922a8c372d85ada51d625ab11d136693ad5c47f Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8 Hi, I've reviewed and tested Nitin's v1 as well, and it works as expected. The reported case and the variants I tried go through, and the rebuilt constraint is still enforced. For a domain constraint the relid only decides which relation gets locked and which work queue entry gets the AT_ReAddDomainConstraint command, so tab->relid seems right to me. On Mon Sep 28, 2026 at 11:31 AM -03, Ayush Tiwari wrote: > Thanks for working on this. Switching to tab->relid looks right to me, > since a domain constraint doesn't belong to any relation anyway. > > I think there's still a problem when a table that uses the domain gets > rewritten by the same ALTER, though. The re-added constraint is > validated right away in phase 2, before phase 3 has rewritten those > tables, so their old rows are read with the new tuple descriptor. With > the patch this crashes for me: > Yes, I found the same problem while testing v1, plus a second one. Both date back to af20e2d72 and can already be hit on master with a domain over a composite type, but with v1 they are reachable for any domain whose check expression references a composite type. 1. Re-added domain constraints are validated before the rewrite. As you describe, AT_ReAddDomainConstraint calls AlterDomainAddConstraint(), which validates the constraint immediately, while tables using the domain may still be pending a rewrite. A simple way to see it: create function show(int) returns bool language plpgsql as $$ begin raise notice 'domain check sees value %', $1; return true; end= $$; create table t (c int); create domain dt as int check (show(value) and (null::t).c is null); alter table t add column d dt; insert into t values (1, 5), (2, 7); alter table t alter column c type bigint; NOTICE: domain check sees value 0 NOTICE: domain check sees value 700 Depending on the data this gives garbage values, spurious "contains values that violate the new constraint" errors, errors like "type with OID 4294967295 does not exist" (domain over composite, on master), or a crash like in your example. 2. Rebuilding the constraint requires ownership of the domain. AlterDomainAddConstraint() calls checkDomainOwner(), so if another user's domain has a constraint that depends on your type, you can't alter your own type: -- as alice create type rt as (i int); -- as bob create domain dt as int check ((row(value)::rt).i > 0); -- as alice alter type rt alter attribute i type bigint; ERROR: must be owner of type dt Since types grant USAGE to PUBLIC by default, any user can create such a dependency. The matching drop is done without permission checks, and rebuilding another user's table CHECK constraint doesn't check ownership either. A related case: if the constraint has a comment, it is restored via CommentObject(), which also requires ownership. That affects table constraints too, even without domains: -- as bob create table tt (x int constraint k check ((row(x)::rt).i > 0)); comment on constraint k on tt is 'hi'; -- as alice alter type rt alter attribute i type bigint; ERROR: must be owner of relation tt > create table dtab (i int); > create domain dtext as text check ((row(1)::dtab).i > 0 and md5(value) <> > ''); > create table dtab_child (t dtext) inherits (dtab); > insert into dtab_child values (1, repeat('x', 200)); > alter table dtab alter column i type bigint; > > On master it just fails with the elog. (FWIW master, and 14 too as far > as I checked, can already crash like this with a domain over the > parent's rowtype stored in the child, so it's not entirely new.) > > Maybe the constraint could be re-added as NOT VALID in phase 2, and then > validated once phase 3 is done, e.g. with AlterDomainValidateConstraint() > next to the FK checks at the end of ATRewriteTables()? > I considered that, but I think it's simpler to skip validation when re-adding, remember the new constraint's OID in the work queue entry, and call validateDomainCheckConstraint() on it once all tables have been rewritten. My reasons: - AlterDomainValidateConstraint() also calls checkDomainOwner(), so it has issue 2 as well. Unlike AlterDomainAddConstraint() it has no is_readd flag, so we'd need to add a new parameter to it too. - It looks up the domain and the constraint by name. Using the OID avoids resolving the names again in phase 3; ATPostAlterTypeCleanup() already works from OIDs for similar reasons. - We'd still need to remember which constraints were valid before the rebuild, so that a NOT VALID constraint isn't validated. That's the same bookkeeping as queuing the OID.=20 - The FK validation loop skips relations without storage. For ALTER TYPE on a standalone composite type the only work queue entry is the type itself, so validating there would silently skip it. For example, with a stored value of 40000, changing an attribute from int to smallint must still fail with "smallint out of range". The new loop on the attached 0002 patch runs over the whole work queue for this reason. One more thing I noticed, not addressed by these patches: if a domain check uses ROW(value)::t and a column of the domain is later added to t, the deparsed constraint becomes ROW(VALUE, NULL)::t. Re-parsing that coerces the NULL to the domain itself, so the rebuilt constraint refers to its own domain and fails with "stack depth limit exceeded". The same happens with a hand-written ALTER DOMAIN ... ADD CONSTRAINT using ROW(value, null)::t, so it's not specific to this code path, which is why the tests use (null::t).c instead. Attached are: - v2-0001: Nitin's v1, unchanged. - v2-0002: validate re-added domain constraints after the rewrites (issue 1). - v2-0003: don't require ownership when rebuilding constraints and their comments (issue 2). -- Matheus Alcantara EDB: https://www.enterprisedb.com --1a78cfa0a07829ccd5bbd922a8c372d85ada51d625ab11d136693ad5c47f-- --5b05c703de7eecfd7578033ba6731599e50e57b3c0a0867c83fd5829dee6 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0001-Fix-ALTER-TYPE-.-ALTER-ATTRIBUTE-on-types-used-in.patch Content-Type: text/plain; charset=utf-8; name=v2-0001-Fix-ALTER-TYPE-.-ALTER-ATTRIBUTE-on-types-used-in.patch RnJvbSBlYjYxMTJjN2U4MWViMmRlMDAyN2IwMTZhZTI3ZTA4YWJmODY0NDdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBNb3RpYW5pIDxuaXRpbm1vdGlhbmlAZ29vZ2xlLmNv bT4KRGF0ZTogTW9uLCAyOCBTZXAgMjAyNiAxMjo0OTozMyArMDAwMApTdWJqZWN0OiBbUEFUQ0gg djIgMS8zXSBGaXggQUxURVIgVFlQRSAuLi4gQUxURVIgQVRUUklCVVRFIG9uIHR5cGVzIHVzZWQg aW4KIGRvbWFpbiBjb25zdHJhaW50cy4KCkNvbW1pdCBhZjIwZTJkNzIgdXBkYXRlZCBBTFRFUiBU QUJMRSAvIFRZUEUgdG8gcmVidWlsZCBkb21haW4gY29uc3RyYWludHMKd2hlbiBhbiBhdHRyaWJ1 dGUgb2YgYSBjb21wb3NpdGUgdHlwZSBpcyBhbHRlcmVkLiBIb3dldmVyLCBpdCBhc3N1bWVkIHRo YXQKdGhlIGRvbWFpbidzIGJhc2UgdHlwZSB3YXMgYWx3YXlzIHRoZSBjb21wb3NpdGUgdHlwZSBi ZWluZyBhbHRlcmVkLCBjYWxsaW5nCmdldF90eXBfdHlwcmVsaWQoZ2V0QmFzZVR5cGUoY29uLT5j b250eXBpZCkpLiBJZiB0aGUgZG9tYWluIHdhcyBkZWZpbmVkCm92ZXIgYSBzY2FsYXIgdHlwZSAo c3VjaCBhcyBpbnQgb3IgZmxvYXQ4KSB3aG9zZSBDSEVDSyBleHByZXNzaW9uIHJlZmVyZW5jZWQK dGhlIGNvbXBvc2l0ZSB0eXBlLCBnZXRfdHlwX3R5cHJlbGlkKCkgcmV0dXJuZWQgSW52YWxpZE9p ZCwgdHJpZ2dlcmluZwphbiBpbnRlcm5hbCAiY291bGQgbm90IGlkZW50aWZ5IHJlbGF0aW9uIGFz c29jaWF0ZWQgd2l0aCBjb25zdHJhaW50IiBlcnJvci4KCkZpeCBieSBhdHRhY2hpbmcgdGhlIGRl ZmVycmVkIGRvbWFpbiBjb25zdHJhaW50IHJlYnVpbGQgY29tbWFuZCB0byB0aGUKdGFibGUgYmVp bmcgYWx0ZXJlZCAodGFiLT5yZWxpZCkgcmF0aGVyIHRoYW4gYXR0ZW1wdGluZyB0byBkZXJpdmUg YSByZWxhdGlvbgpPSUQgZnJvbSB0aGUgZG9tYWluJ3MgYmFzZSB0eXBlLiBEb21haW5zIGRvIG5v dCBoYXZlIHBnX2NsYXNzIHJlbGF0aW9ucyBvZgp0aGVpciBvd24sIGFuZCB0aGUgcmVidWlsZCBj b21tYW5kIChBbHRlckRvbWFpblN0bXQpIGlzIHNlbGYtY29udGFpbmVkLgoKUmVwb3J0ZWQtYnk6 IEFsZXhhbmRlciBMYWtoaW4KQnVnOiAjMTk3MjQKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyAgICAgfCAxMCArKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZG9t YWluLm91dCB8IDUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2RvbWFpbi5zcWwgICAgICB8IDMzICsrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBj aGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKaW5kZXggMDI3NGQ4OTJmMmUuLmM4YmMxOTNhMmFiIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYwpAQCAtMTYxNDEsMTAgKzE2MTQxLDEyIEBAIEFUUG9zdEFsdGVyVHlwZUNsZWFu dXAoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBMT0NLTU9ERSBsb2NrbW9k ZSkKIAkJCXJlbGlkID0gY29uLT5jb25yZWxpZDsKIAkJZWxzZQogCQl7Ci0JCQkvKiBtdXN0IGJl IGEgZG9tYWluIGNvbnN0cmFpbnQgKi8KLQkJCXJlbGlkID0gZ2V0X3R5cF90eXByZWxpZChnZXRC YXNlVHlwZShjb24tPmNvbnR5cGlkKSk7Ci0JCQlpZiAoIU9pZElzVmFsaWQocmVsaWQpKQotCQkJ CWVsb2coRVJST1IsICJjb3VsZCBub3QgaWRlbnRpZnkgcmVsYXRpb24gYXNzb2NpYXRlZCB3aXRo IGNvbnN0cmFpbnQgJXUiLCBvbGRJZCk7CisJCQkvKgorCQkJICogTXVzdCBiZSBhIGRvbWFpbiBj b25zdHJhaW50LiAgRG9tYWlucyBkb24ndCBoYXZlIHRoZWlyIG93bgorCQkJICogcmVsYXRpb25z LCBzbyBhdHRhY2ggdGhlIHJlYnVpbGQgc3RlcCB0byB0aGUgdGFibGUgYmVpbmcKKwkJCSAqIGFs dGVyZWQuCisJCQkgKi8KKwkJCXJlbGlkID0gdGFiLT5yZWxpZDsKIAkJfQogCQljb25mcmVsaWQg PSBjb24tPmNvbmZyZWxpZDsKIAkJY29uaXNsb2NhbCA9IGNvbi0+Y29uaXNsb2NhbDsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZG9tYWluLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZG9tYWluLm91dAppbmRleCA2MmE0OGE1MjNhMi4uZGU2MGE5MGMwNDUg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZG9tYWluLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RvbWFpbi5vdXQKQEAgLTQzMiw2ICs0MzIsNTYgQEAg c2VsZWN0IGNvbm5hbWUsIG9ial9kZXNjcmlwdGlvbihvaWQsICdwZ19jb25zdHJhaW50JykgZnJv bSBwZ19jb25zdHJhaW50CiAKIGRyb3AgdHlwZSBjb21wdHlwZSBjYXNjYWRlOwogTk9USUNFOiAg ZHJvcCBjYXNjYWRlcyB0byB0eXBlIGRjb21wdHlwZQorLS0gcmVncmVzc2lvbiB0ZXN0cyBmb3Ig YnVnICMxOTcyNAorLS0gdGVzdCBzY2VuYXJpbyBmcm9tIGJ1ZyByZXBvcnQsIHBsdXMgZmFpbHVy ZSB3aGVuIGNoYW5naW5nIGludCB0byB0ZXh0CitjcmVhdGUgdHlwZSBydCBhcyAoaSBpbnQpOwor Y3JlYXRlIGRvbWFpbiBkdCBhcyBpbnQgY2hlY2sgKChyb3codmFsdWUpOjpydCkuaSA+IDApOwor YWx0ZXIgdHlwZSBydCBhbHRlciBhdHRyaWJ1dGUgaSB0eXBlIHRleHQ7ICAtLSBmYWlsCitFUlJP UjogIG9wZXJhdG9yIGRvZXMgbm90IGV4aXN0OiB0ZXh0ID4gaW50ZWdlcgorREVUQUlMOiAgTm8g b3BlcmF0b3Igb2YgdGhhdCBuYW1lIGFjY2VwdHMgdGhlIGdpdmVuIGFyZ3VtZW50IHR5cGVzLgor SElOVDogIFlvdSBtaWdodCBuZWVkIHRvIGFkZCBleHBsaWNpdCB0eXBlIGNhc3RzLgorYWx0ZXIg dHlwZSBydCBhbHRlciBhdHRyaWJ1dGUgaSB0eXBlIGJpZ2ludDsKK3NlbGVjdCAxOjpkdDsKKyBk dCAKKy0tLS0KKyAgMQorKDEgcm93KQorCitzZWxlY3QgKC0xKTo6ZHQ7ICAtLSBmYWlsCitFUlJP UjogIHZhbHVlIGZvciBkb21haW4gZHQgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZHRfY2hl Y2siCitkcm9wIGRvbWFpbiBkdDsKK2Ryb3AgdHlwZSBydCBjYXNjYWRlOworLS0gdGVzdCBzaWxs eSBleGFtcGxlIGZyb20gVG9tIExhbmUncyAyMDE3IGVtYWlsIChkb21haW4gb3ZlciBmbG9hdDgp CitjcmVhdGUgdHlwZSBjb21wdHlwZSBhcyAociBmbG9hdDgsIGkgZmxvYXQ4KTsKK2NyZWF0ZSBk b21haW4gc2lsbHkgYXMgZmxvYXQ4IGNoZWNrICgocm93KHZhbHVlLCAwKTo6Y29tcHR5cGUpLnIg PiAwKTsKK2FsdGVyIHR5cGUgY29tcHR5cGUgYWx0ZXIgYXR0cmlidXRlIHIgdHlwZSBiaWdpbnQ7 CitzZWxlY3QgMS4wOjpzaWxseTsKKyBzaWxseSAKKy0tLS0tLS0KKyAgICAgMQorKDEgcm93KQor CitzZWxlY3QgKC0xLjApOjpzaWxseTsgIC0tIGZhaWwKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFp biBzaWxseSB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJzaWxseV9jaGVjayIKK2Ryb3AgZG9t YWluIHNpbGx5OworZHJvcCB0eXBlIGNvbXB0eXBlIGNhc2NhZGU7CistLSB0ZXN0IGRvbWFpbiBj b25zdHJhaW50IHJlZmVyZW5jaW5nIG11bHRpcGxlIGNvbXBvc2l0ZSB0eXBlcworY3JlYXRlIHR5 cGUgcjEgYXMgKGEgaW50KTsKK2NyZWF0ZSB0eXBlIHIyIGFzIChiIGludCk7CitjcmVhdGUgZG9t YWluIGR0X211bHRpIGFzIGludCBjaGVjayAoKHJvdyh2YWx1ZSk6OnIxKS5hID4gMCBhbmQgKHJv dyh2YWx1ZSk6OnIyKS5iID4gMCk7CithbHRlciB0eXBlIHIxIGFsdGVyIGF0dHJpYnV0ZSBhIHR5 cGUgYmlnaW50OworYWx0ZXIgdHlwZSByMiBhbHRlciBhdHRyaWJ1dGUgYiB0eXBlIGJpZ2ludDsK K3NlbGVjdCAxOjpkdF9tdWx0aTsKKyBkdF9tdWx0aSAKKy0tLS0tLS0tLS0KKyAgICAgICAgMQor KDEgcm93KQorCitzZWxlY3QgKC0xKTo6ZHRfbXVsdGk7ICAtLSBmYWlsCitFUlJPUjogIHZhbHVl IGZvciBkb21haW4gZHRfbXVsdGkgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZHRfbXVsdGlf Y2hlY2siCitkcm9wIGRvbWFpbiBkdF9tdWx0aTsKK2Ryb3AgdHlwZSByMSBjYXNjYWRlOworZHJv cCB0eXBlIHIyIGNhc2NhZGU7CiAtLSBUZXN0IGRvbWFpbnMgb3ZlciBhcnJheXMgb2YgY29tcG9z aXRlCiBjcmVhdGUgdHlwZSBjb21wdHlwZSBhcyAociBmbG9hdDgsIGkgZmxvYXQ4KTsKIGNyZWF0 ZSBkb21haW4gZGNvbXB0eXBlYSBhcyBjb21wdHlwZVtdOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZG9tYWluLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RvbWFpbi5zcWwK aW5kZXggYjhmNWE2Mzk3MTIuLjEyNDBmOTQyMmJkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9kb21haW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RvbWFpbi5zcWwK QEAgLTIxOSw2ICsyMTksMzkgQEAgc2VsZWN0IGNvbm5hbWUsIG9ial9kZXNjcmlwdGlvbihvaWQs ICdwZ19jb25zdHJhaW50JykgZnJvbSBwZ19jb25zdHJhaW50CiAKIGRyb3AgdHlwZSBjb21wdHlw ZSBjYXNjYWRlOwogCistLSByZWdyZXNzaW9uIHRlc3RzIGZvciBidWcgIzE5NzI0CisKKy0tIHRl c3Qgc2NlbmFyaW8gZnJvbSBidWcgcmVwb3J0LCBwbHVzIGZhaWx1cmUgd2hlbiBjaGFuZ2luZyBp bnQgdG8gdGV4dAorY3JlYXRlIHR5cGUgcnQgYXMgKGkgaW50KTsKK2NyZWF0ZSBkb21haW4gZHQg YXMgaW50IGNoZWNrICgocm93KHZhbHVlKTo6cnQpLmkgPiAwKTsKK2FsdGVyIHR5cGUgcnQgYWx0 ZXIgYXR0cmlidXRlIGkgdHlwZSB0ZXh0OyAgLS0gZmFpbAorYWx0ZXIgdHlwZSBydCBhbHRlciBh dHRyaWJ1dGUgaSB0eXBlIGJpZ2ludDsKK3NlbGVjdCAxOjpkdDsKK3NlbGVjdCAoLTEpOjpkdDsg IC0tIGZhaWwKK2Ryb3AgZG9tYWluIGR0OworZHJvcCB0eXBlIHJ0IGNhc2NhZGU7CisKKy0tIHRl c3Qgc2lsbHkgZXhhbXBsZSBmcm9tIFRvbSBMYW5lJ3MgMjAxNyBlbWFpbCAoZG9tYWluIG92ZXIg ZmxvYXQ4KQorY3JlYXRlIHR5cGUgY29tcHR5cGUgYXMgKHIgZmxvYXQ4LCBpIGZsb2F0OCk7Citj cmVhdGUgZG9tYWluIHNpbGx5IGFzIGZsb2F0OCBjaGVjayAoKHJvdyh2YWx1ZSwgMCk6OmNvbXB0 eXBlKS5yID4gMCk7CithbHRlciB0eXBlIGNvbXB0eXBlIGFsdGVyIGF0dHJpYnV0ZSByIHR5cGUg YmlnaW50Oworc2VsZWN0IDEuMDo6c2lsbHk7CitzZWxlY3QgKC0xLjApOjpzaWxseTsgIC0tIGZh aWwKK2Ryb3AgZG9tYWluIHNpbGx5OworZHJvcCB0eXBlIGNvbXB0eXBlIGNhc2NhZGU7CisKKy0t IHRlc3QgZG9tYWluIGNvbnN0cmFpbnQgcmVmZXJlbmNpbmcgbXVsdGlwbGUgY29tcG9zaXRlIHR5 cGVzCitjcmVhdGUgdHlwZSByMSBhcyAoYSBpbnQpOworY3JlYXRlIHR5cGUgcjIgYXMgKGIgaW50 KTsKK2NyZWF0ZSBkb21haW4gZHRfbXVsdGkgYXMgaW50IGNoZWNrICgocm93KHZhbHVlKTo6cjEp LmEgPiAwIGFuZCAocm93KHZhbHVlKTo6cjIpLmIgPiAwKTsKK2FsdGVyIHR5cGUgcjEgYWx0ZXIg YXR0cmlidXRlIGEgdHlwZSBiaWdpbnQ7CithbHRlciB0eXBlIHIyIGFsdGVyIGF0dHJpYnV0ZSBi IHR5cGUgYmlnaW50Oworc2VsZWN0IDE6OmR0X211bHRpOworc2VsZWN0ICgtMSk6OmR0X211bHRp OyAgLS0gZmFpbAorZHJvcCBkb21haW4gZHRfbXVsdGk7Citkcm9wIHR5cGUgcjEgY2FzY2FkZTsK K2Ryb3AgdHlwZSByMiBjYXNjYWRlOworCiAKIC0tIFRlc3QgZG9tYWlucyBvdmVyIGFycmF5cyBv ZiBjb21wb3NpdGUKIAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --5b05c703de7eecfd7578033ba6731599e50e57b3c0a0867c83fd5829dee6 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0002-Validate-re-added-domain-constraints-after-ALTER-.patch Content-Type: text/plain; charset=utf-8; name=v2-0002-Validate-re-added-domain-constraints-after-ALTER-.patch RnJvbSA5OWY4Y2JiOTE0NGFkM2E2ZGViNWVkMTEwYjM0MjZlZmEyNzhmNTIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoZXVzIEFsY2FudGFyYSA8bXRocy5kZXZAcG0ubWU+CkRh dGU6IE1vbiwgMjggU2VwIDIwMjYgMTU6MDU6MzYgLTAzMDAKU3ViamVjdDogW1BBVENIIHYyIDIv M10gVmFsaWRhdGUgcmUtYWRkZWQgZG9tYWluIGNvbnN0cmFpbnRzIGFmdGVyIEFMVEVSIFRBQkxF CiByZXdyaXRlcwoKV2hlbiBBTFRFUiBUQUJMRSAuLi4gQUxURVIgQ09MVU1OIFRZUEUgKG9yIEFM VEVSIFRZUEUgLi4uIEFMVEVSCkFUVFJJQlVURSkgcmVidWlsZHMgYSBkb21haW4gQ0hFQ0sgY29u c3RyYWludCB3aG9zZSBleHByZXNzaW9uIGRlcGVuZHMKb24gdGhlIGFsdGVyZWQgY29sdW1uLCB0 aGUgY29uc3RyYWludCB3YXMgcmUtYWRkZWQgdGhyb3VnaApBbHRlckRvbWFpbkFkZENvbnN0cmFp bnQoKSwgd2hpY2ggdmFsaWRhdGVzIGl0IGltbWVkaWF0ZWx5IGFnYWluc3QgYWxsCmNvbHVtbnMg b2YgdGhlIGRvbWFpbi4gVGhhdCBoYXBwZW5zIGR1cmluZyBQaGFzZSAyLCBiZWZvcmUgUGhhc2Ug MyBoYXMKcmV3cml0dGVuIHRoZSBhZmZlY3RlZCB0YWJsZXMsIHNvIGFueSB0YWJsZSB0aGF0IGlz IHBlbmRpbmcgYSByZXdyaXRlCmFuZCBoYXMgYSBjb2x1bW4gb2YgdGhlIGRvbWFpbiB3YXMgc2Nh bm5lZCB1c2luZyBpdHMgbmV3IHR1cGxlCmRlc2NyaXB0b3Igb3ZlciBpdHMgb2xkIGhlYXAuIFRo aXMgY291bGQgcHJvZHVjZSBnYXJiYWdlIHZhbHVlcywKc3B1cmlvdXMgImNvbnRhaW5zIHZhbHVl cyB0aGF0IHZpb2xhdGUgdGhlIG5ldyBjb25zdHJhaW50IiBlcnJvcnMsIG9yCndvcnNlLCBlLmcu ICJ0eXBlIHdpdGggT0lEIDQyOTQ5NjcyOTUgZG9lcyBub3QgZXhpc3QiIHdoZW4gdGhlIGRvbWFp biBpcwpvdmVyIGEgY29tcG9zaXRlIHR5cGUuCgpGaXggYnkgc2tpcHBpbmcgdmFsaWRhdGlvbiBp biBBbHRlckRvbWFpbkFkZENvbnN0cmFpbnQoKSB3aGVuIHJlLWFkZGluZwphIGNvbnN0cmFpbnQs IGFuZCBpbnN0ZWFkIGhhdmluZyBBVEV4ZWNDbWQoKSByZW1lbWJlciB0aGUgcmVidWlsdApjb25z dHJhaW50IHNvIHRoYXQgQVRSZXdyaXRlVGFibGVzKCkgdmFsaWRhdGVzIGl0IG9uY2UgYWxsIHRh YmxlcyBoYXZlCmJlZW4gcmV3cml0dGVuLiBDb25zdHJhaW50cyB0aGF0IHdlcmUgTk9UIFZBTElE IGFyZSBub3QgdmFsaWRhdGVkLCBhcwpiZWZvcmUuCgpUaGlzIHByb2JsZW0gZGF0ZXMgYmFjayB0 byBhZjIwZTJkNzIsIHdoaWNoIGFkZGVkIHJlYnVpbGRpbmcgb2YgZG9tYWluCmNvbnN0cmFpbnRz LCBidXQgd2FzIHByZXZpb3VzbHkgb25seSByZWFjaGFibGUgd2l0aCBkb21haW5zIG92ZXIKY29t cG9zaXRlIHR5cGVzLCBzaW5jZSBvdGhlciBkb21haW5zIGhpdCB0aGUgImNvdWxkIG5vdCBpZGVu dGlmeQpyZWxhdGlvbiBhc3NvY2lhdGVkIHdpdGggY29uc3RyYWludCIgZXJyb3IgaW5zdGVhZC4K LS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgfCA1NiArKysrKysrKysr KysrKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jICAgICAgfCAxMSArKy0tCiBz cmMvaW5jbHVkZS9jb21tYW5kcy90eXBlY21kcy5oICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2RvbWFpbi5vdXQgfCA5OSArKysrKysrKysrKysrKysrKysrKysrKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9kb21haW4uc3FsICAgICAgfCA2MyArKysrKysrKysrKysr KysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMjIxIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBjOGJjMTkzYTJhYi4uMTBjN2EzYTVmOGUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xOTgsNiArMTk4LDggQEAgdHlwZWRlZiBz dHJ1Y3QgQWx0ZXJlZFRhYmxlSW5mbwogCWJvb2wJCWNoZ1BlcnNpc3RlbmNlOyAvKiBUIGlmIFNF VCBMT0dHRUQvVU5MT0dHRUQgaXMgdXNlZCAqLwogCWNoYXIJCW5ld3JlbHBlcnNpc3RlbmNlOwkv KiBpZiBhYm92ZSBpcyB0cnVlICovCiAJRXhwcgkgICAqcGFydGl0aW9uX2NvbnN0cmFpbnQ7CS8q IGZvciBhdHRhY2ggcGFydGl0aW9uIHZhbGlkYXRpb24gKi8KKwkvKiBPSURzIG9mIHJlLWFkZGVk IGRvbWFpbiBDSEVDSyBjb25zdHJhaW50cyB0byB2YWxpZGF0ZSBpbiBQaGFzZSAzICovCisJTGlz dAkgICAqZG9tYWluX2NvbnN0cmFpbnRzOwogCS8qIHRydWUsIGlmIHZhbGlkYXRpbmcgZGVmYXVs dCBkdWUgdG8gc29tZSBvdGhlciBhdHRhY2gvZGV0YWNoICovCiAJYm9vbAkJdmFsaWRhdGVfZGVm YXVsdDsKIAkvKiBPYmplY3RzIHRvIHJlYnVpbGQgYWZ0ZXIgY29tcGxldGluZyBBTFRFUiBUWVBF IG9wZXJhdGlvbnMgKi8KQEAgLTU1MzUsMTEgKzU1MzcsMjUgQEAgQVRFeGVjQ21kKExpc3QgKip3 cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwKIAkJCWJyZWFrOwogCQljYXNlIEFUX1JlQWRk RG9tYWluQ29uc3RyYWludDoJLyogUmUtYWRkIHByZS1leGlzdGluZyBkb21haW4gY2hlY2sKIAkJ CQkJCQkJCQkgKiBjb25zdHJhaW50ICovCi0JCQlhZGRyZXNzID0KLQkJCQlBbHRlckRvbWFpbkFk ZENvbnN0cmFpbnQoKChBbHRlckRvbWFpblN0bXQgKikgY21kLT5kZWYpLT50eXBlTmFtZSwKLQkJ CQkJCQkJCQkgKChBbHRlckRvbWFpblN0bXQgKikgY21kLT5kZWYpLT5kZWYsCi0JCQkJCQkJCQkJ IE5VTEwsIHRydWUpOwotCQkJYnJlYWs7CisJCQl7CisJCQkJQWx0ZXJEb21haW5TdG10ICpzdG10 ID0gKEFsdGVyRG9tYWluU3RtdCAqKSBjbWQtPmRlZjsKKwkJCQlDb25zdHJhaW50ICpjb24gPSBj YXN0Tm9kZShDb25zdHJhaW50LCBzdG10LT5kZWYpOworCQkJCU9iamVjdEFkZHJlc3MgY29uc3Ry QWRkcjsKKworCQkJCWFkZHJlc3MgPSBBbHRlckRvbWFpbkFkZENvbnN0cmFpbnQoc3RtdC0+dHlw ZU5hbWUsIHN0bXQtPmRlZiwKKwkJCQkJCQkJCQkJCSAgICZjb25zdHJBZGRyLCB0cnVlKTsKKwor CQkJCS8qCisJCQkJICogQWx0ZXJEb21haW5BZGRDb25zdHJhaW50IGRvZXNuJ3QgdmFsaWRhdGUg cmUtYWRkZWQKKwkJCQkgKiBjb25zdHJhaW50cywgc2luY2UgdGFibGVzIHVzaW5nIHRoZSBkb21h aW4gbWF5IG5vdCBoYXZlCisJCQkJICogYmVlbiByZXdyaXR0ZW4geWV0LiBUZWxsIFBoYXNlIDMg dG8gZG8gaXQuCisJCQkJICovCisJCQkJaWYgKCFjb24tPnNraXBfdmFsaWRhdGlvbikKKwkJCQkJ dGFiLT5kb21haW5fY29uc3RyYWludHMgPQorCQkJCQkJbGFwcGVuZF9vaWQodGFiLT5kb21haW5f Y29uc3RyYWludHMsCisJCQkJCQkJCQljb25zdHJBZGRyLm9iamVjdElkKTsKKwkJCQlicmVhazsK KwkJCX0KIAkJY2FzZSBBVF9SZUFkZENvbW1lbnQ6CS8qIFJlLWFkZCBleGlzdGluZyBjb21tZW50 ICovCiAJCQlhZGRyZXNzID0gQ29tbWVudE9iamVjdCgoQ29tbWVudFN0bXQgKikgY21kLT5kZWYp OwogCQkJYnJlYWs7CkBAIC02MTYwLDYgKzYxNzYsMzYgQEAgQVRSZXdyaXRlVGFibGVzKEFsdGVy VGFibGVTdG10ICpwYXJzZXRyZWUsIExpc3QgKip3cXVldWUsIExPQ0tNT0RFIGxvY2ttb2RlLAog CQkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwogCX0KIAorCS8qCisJICogVmFsaWRhdGUgcmUt YWRkZWQgZG9tYWluIENIRUNLIGNvbnN0cmFpbnRzLiAgVGhpcyBtdXN0IHdhaXQgdW50aWwgYWxs CisJICogdGFibGVzIGhhdmUgYmVlbiByZXdyaXR0ZW4sIHNpbmNlIGFueSBvZiB0aGVtIG1pZ2h0 IGNvbnRhaW4gY29sdW1ucyBvZgorCSAqIHRoZSBkb21haW4uIERvbid0IHNraXAgcmVsYXRpb25z IHdpdGhvdXQgc3RvcmFnZSBzaW5jZSB0aGUgd29yayBxdWV1ZQorCSAqIGVudHJ5IG1pZ2h0IGJl IGZvciBhIHN0YW5kYWxvbmUgY29tcG9zaXRlIHR5cGUuCisJICovCisJZm9yZWFjaChsdGFiLCAq d3F1ZXVlKQorCXsKKwkJQWx0ZXJlZFRhYmxlSW5mbyAqdGFiID0gKEFsdGVyZWRUYWJsZUluZm8g KikgbGZpcnN0KGx0YWIpOworCisJCWZvcmVhY2hfb2lkKGNvbm9pZCwgdGFiLT5kb21haW5fY29u c3RyYWludHMpCisJCXsKKwkJCUhlYXBUdXBsZQl0dXA7CisJCQlGb3JtX3BnX2NvbnN0cmFpbnQg Y29uOworCQkJRGF0dW0JCWNvbmJpbjsKKworCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENPTlNU Uk9JRCwgT2JqZWN0SWRHZXREYXR1bShjb25vaWQpKTsKKwkJCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXApKQorCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb25zdHJh aW50ICV1IiwgY29ub2lkKTsKKwkJCWNvbiA9IChGb3JtX3BnX2NvbnN0cmFpbnQpIEdFVFNUUlVD VCh0dXApOworCisJCQljb25iaW4gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKENPTlNUUk9JRCwg dHVwLAorCQkJCQkJCQkJCQlBbnVtX3BnX2NvbnN0cmFpbnRfY29uYmluKTsKKwkJCXZhbGlkYXRl RG9tYWluQ2hlY2tDb25zdHJhaW50KGNvbi0+Y29udHlwaWQsCisJCQkJCQkJCQkJICBUZXh0RGF0 dW1HZXRDU3RyaW5nKGNvbmJpbikpOworCisJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJfQor CX0KKwogCS8qIEZpbmFsbHksIHJ1biBhbnkgYWZ0ZXJTdG10cyB0aGF0IHdlcmUgcXVldWVkIHVw ICovCiAJZm9yZWFjaChsdGFiLCAqd3F1ZXVlKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmlu ZGV4IDk5YTBhZTIyMjhlLi5kMDM0OTA3OWExZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBA IC0xMjgsNyArMTI4LDYgQEAgc3RhdGljIE9pZAlmaW5kVHlwZVN1YnNjcmlwdGluZ0Z1bmN0aW9u KExpc3QgKnByb2NuYW1lLCBPaWQgdHlwZU9pZCk7CiBzdGF0aWMgT2lkCWZpbmRSYW5nZVN1Yk9w Y2xhc3MoTGlzdCAqb3BjbmFtZSwgT2lkIHN1YnR5cGUpOwogc3RhdGljIE9pZAlmaW5kUmFuZ2VD YW5vbmljYWxGdW5jdGlvbihMaXN0ICpwcm9jbmFtZSwgT2lkIHR5cGVPaWQpOwogc3RhdGljIE9p ZAlmaW5kUmFuZ2VTdWJ0eXBlRGlmZkZ1bmN0aW9uKExpc3QgKnByb2NuYW1lLCBPaWQgc3VidHlw ZSk7Ci1zdGF0aWMgdm9pZCB2YWxpZGF0ZURvbWFpbkNoZWNrQ29uc3RyYWludChPaWQgZG9tYWlu b2lkLCBjb25zdCBjaGFyICpjY2Jpbik7CiBzdGF0aWMgdm9pZCB2YWxpZGF0ZURvbWFpbk5vdE51 bGxDb25zdHJhaW50KE9pZCBkb21haW5vaWQpOwogc3RhdGljIExpc3QgKmdldF9yZWxzX3dpdGhf ZG9tYWluKE9pZCBkb21haW5PaWQsIExPQ0tNT0RFIGxvY2ttb2RlKTsKIHN0YXRpYyB2b2lkIGNo ZWNrRW51bU93bmVyKEhlYXBUdXBsZSB0dXApOwpAQCAtMzAyOSwxMyArMzAyOCwxNyBAQCBBbHRl ckRvbWFpbkFkZENvbnN0cmFpbnQoTGlzdCAqbmFtZXMsIE5vZGUgKm5ld0NvbnN0cmFpbnQsCiAJ CQkJCQkJCQkJIGNvbnN0ciwgTmFtZVN0cih0eXBUdXAtPnR5cG5hbWUpLCBjb25zdHJBZGRyLAog CQkJCQkJCQkJCSBpc19yZWFkZCk7CiAKLQogCQkvKgogCQkgKiBJZiByZXF1ZXN0ZWQgdG8gdmFs aWRhdGUgdGhlIGNvbnN0cmFpbnQsIHRlc3QgYWxsIHZhbHVlcyBzdG9yZWQgaW4KIAkJICogdGhl IGF0dHJpYnV0ZXMgYmFzZWQgb24gdGhlIGRvbWFpbiB0aGUgY29uc3RyYWludCBpcyBiZWluZyBh ZGRlZAogCQkgKiB0by4KKwkJICoKKwkJICogV2hlbiByZS1hZGRpbmcgYSBjb25zdHJhaW50IGR1 cmluZyBBTFRFUiBUQUJMRSwgdGhlIHRhYmxlcyB1c2luZworCQkgKiB0aGUgZG9tYWluIG1pZ2h0 IG5vdCBoYXZlIGJlZW4gcmV3cml0dGVuIHRvIG1hdGNoIHRoZWlyIG5ldworCQkgKiBjYXRhbG9n IGRlZmluaXRpb25zIHlldCwgc28gdGhlIGNhbGxlciBtdXN0IGRvIHRoZSB2YWxpZGF0aW9uIGFm dGVyCisJCSAqIGl0cyByZXdyaXRlIHBoYXNlIGluc3RlYWQuCiAJCSAqLwotCQlpZiAoIWNvbnN0 ci0+c2tpcF92YWxpZGF0aW9uKQorCQlpZiAoIWNvbnN0ci0+c2tpcF92YWxpZGF0aW9uICYmICFp c19yZWFkZCkKIAkJCXZhbGlkYXRlRG9tYWluQ2hlY2tDb25zdHJhaW50KGRvbWFpbm9pZCwgY2Ni aW4pOwogCiAJCS8qCkBAIC0zMjQ5LDcgKzMyNTIsNyBAQCB2YWxpZGF0ZURvbWFpbk5vdE51bGxD b25zdHJhaW50KE9pZCBkb21haW5vaWQpCiAgKiBWZXJpZnkgdGhhdCBhbGwgY29sdW1ucyBjdXJy ZW50bHkgdXNpbmcgdGhlIGRvbWFpbiBzYXRpc2Z5IHRoZSBnaXZlbiBjaGVjawogICogY29uc3Ry YWludCBleHByZXNzaW9uLgogICovCi1zdGF0aWMgdm9pZAordm9pZAogdmFsaWRhdGVEb21haW5D aGVja0NvbnN0cmFpbnQoT2lkIGRvbWFpbm9pZCwgY29uc3QgY2hhciAqY2NiaW4pCiB7CiAJRXhw cgkgICAqZXhwciA9IChFeHByICopIHN0cmluZ1RvTm9kZShjY2Jpbik7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jb21tYW5kcy90eXBlY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHlw ZWNtZHMuaAppbmRleCAyMTEyYjRhZGRkMi4uYTA2NzY1MWY2ZjkgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3R5cGVjbWRzLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHlw ZWNtZHMuaApAQCAtMzgsNiArMzgsNyBAQCBleHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRlckRvbWFp bkFkZENvbnN0cmFpbnQoTGlzdCAqbmFtZXMsIE5vZGUgKm5ld0NvbnN0cmFpbnQsCiAJCQkJCQkJ CQkJCSAgT2JqZWN0QWRkcmVzcyAqY29uc3RyQWRkciwKIAkJCQkJCQkJCQkJICBib29sIGlzX3Jl YWRkKTsKIGV4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyRG9tYWluVmFsaWRhdGVDb25zdHJhaW50 KExpc3QgKm5hbWVzLCBjb25zdCBjaGFyICpjb25zdHJOYW1lKTsKK2V4dGVybiB2b2lkIHZhbGlk YXRlRG9tYWluQ2hlY2tDb25zdHJhaW50KE9pZCBkb21haW5vaWQsIGNvbnN0IGNoYXIgKmNjYmlu KTsKIGV4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyRG9tYWluRHJvcENvbnN0cmFpbnQoTGlzdCAq bmFtZXMsIGNvbnN0IGNoYXIgKmNvbnN0ck5hbWUsCiAJCQkJCQkJCQkJCSAgIERyb3BCZWhhdmlv ciBiZWhhdmlvciwgYm9vbCBtaXNzaW5nX29rKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9kb21haW4ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kb21h aW4ub3V0CmluZGV4IGRlNjBhOTBjMDQ1Li4xNGYyYzkyODcwMCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9kb21haW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZG9tYWluLm91dApAQCAtNDgyLDYgKzQ4MiwxMDUgQEAgRVJST1I6ICB2YWx1ZSBmb3Ig ZG9tYWluIGR0X211bHRpIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImR0X211bHRpX2NoZWNr IgogZHJvcCBkb21haW4gZHRfbXVsdGk7CiBkcm9wIHR5cGUgcjEgY2FzY2FkZTsKIGRyb3AgdHlw ZSByMiBjYXNjYWRlOworLS0gQSBkb21haW4gY29uc3RyYWludCByZWJ1aWx0IGJ5IEFMVEVSIENP TFVNTiBUWVBFIG11c3Qgbm90IGJlIHZhbGlkYXRlZAorLS0gdW50aWwgdGFibGVzIHVzaW5nIHRo ZSBkb21haW4gaGF2ZSBiZWVuIHJld3JpdHRlbi4gIChUaGVzZSB0ZXN0cyBhdm9pZAorLS0gUk9X KHZhbHVlKTo6ZG9tcndfdCwgc2luY2UgdGhlIHJlYnVpbHQgZXhwcmVzc2lvbiB3b3VsZCB0aGVu IGNvbnRhaW4gYQorLS0gTlVMTCBjb2VyY2VkIHRvIHRoZSBkb21haW4gaXRzZWxmLikKK2NyZWF0 ZSBmdW5jdGlvbiBkb21yd19zaG93KGludCkgcmV0dXJucyBib29sIGxhbmd1YWdlIHBscGdzcWwg YXMKKyAgJCQgYmVnaW4gcmFpc2Ugbm90aWNlICdkb21haW4gY2hlY2sgc2VlcyB2YWx1ZSAlJywg JDE7IHJldHVybiB0cnVlOyBlbmQgJCQ7CitjcmVhdGUgdGFibGUgZG9tcndfdCAoYyBpbnQpOwor Y3JlYXRlIGRvbWFpbiBkb21yd19kdCBhcyBpbnQKKyAgY2hlY2sgKGRvbXJ3X3Nob3codmFsdWUp IGFuZCAobnVsbDo6ZG9tcndfdCkuYyBpcyBudWxsKTsKK2FsdGVyIHRhYmxlIGRvbXJ3X3QgYWRk IGNvbHVtbiBkIGRvbXJ3X2R0OworaW5zZXJ0IGludG8gZG9tcndfdCB2YWx1ZXMgKDEsIDUpLCAo MiwgNyk7CitOT1RJQ0U6ICBkb21haW4gY2hlY2sgc2VlcyB2YWx1ZSA1CitOT1RJQ0U6ICBkb21h aW4gY2hlY2sgc2VlcyB2YWx1ZSA3CithbHRlciB0YWJsZSBkb21yd190IGFsdGVyIGNvbHVtbiBj IHR5cGUgYmlnaW50OyAgLS0gc2hvdWxkIHNlZSA1IGFuZCA3CitOT1RJQ0U6ICBkb21haW4gY2hl Y2sgc2VlcyB2YWx1ZSA1CitOT1RJQ0U6ICBkb21haW4gY2hlY2sgc2VlcyB2YWx1ZSA3CitzZWxl Y3QgKiBmcm9tIGRvbXJ3X3Q7CisgYyB8IGQgCistLS0rLS0tCisgMSB8IDUKKyAyIHwgNworKDIg cm93cykKKworc2VsZWN0IGNvbnZhbGlkYXRlZCBmcm9tIHBnX2NvbnN0cmFpbnQgd2hlcmUgY29u dHlwaWQgPSAnZG9tcndfZHQnOjpyZWd0eXBlOworIGNvbnZhbGlkYXRlZCAKKy0tLS0tLS0tLS0t LS0tCisgdAorKDEgcm93KQorCitkcm9wIGRvbWFpbiBkb21yd19kdCBjYXNjYWRlOworTk9USUNF OiAgZHJvcCBjYXNjYWRlcyB0byBjb2x1bW4gZCBvZiB0YWJsZSBkb21yd190Citkcm9wIHRhYmxl IGRvbXJ3X3Q7CistLSBzYW1lLCBkb21haW4gb3ZlciBjb21wb3NpdGUKK2NyZWF0ZSB0eXBlIGRv bXJ3X2N0IGFzIChqIGludCk7CitjcmVhdGUgdGFibGUgZG9tcndfdCAoYyBpbnQpOworY3JlYXRl IGRvbWFpbiBkb21yd19kdCBhcyBkb21yd19jdAorICBjaGVjayAoZG9tcndfc2hvdygodmFsdWUp LmopIGFuZCAobnVsbDo6ZG9tcndfdCkuYyBpcyBudWxsKTsKK2FsdGVyIHRhYmxlIGRvbXJ3X3Qg YWRkIGNvbHVtbiBkIGRvbXJ3X2R0OworaW5zZXJ0IGludG8gZG9tcndfdCB2YWx1ZXMgKDEsIHJv dyg1KSksICgyLCByb3coNykpOworTk9USUNFOiAgZG9tYWluIGNoZWNrIHNlZXMgdmFsdWUgNQor Tk9USUNFOiAgZG9tYWluIGNoZWNrIHNlZXMgdmFsdWUgNworYWx0ZXIgdGFibGUgZG9tcndfdCBh bHRlciBjb2x1bW4gYyB0eXBlIGJpZ2ludDsgIC0tIHNob3VsZCBzZWUgNSBhbmQgNworTk9USUNF OiAgZG9tYWluIGNoZWNrIHNlZXMgdmFsdWUgNQorTk9USUNFOiAgZG9tYWluIGNoZWNrIHNlZXMg dmFsdWUgNworc2VsZWN0ICogZnJvbSBkb21yd190OworIGMgfCAgZCAgCistLS0rLS0tLS0KKyAx IHwgKDUpCisgMiB8ICg3KQorKDIgcm93cykKKworZHJvcCBkb21haW4gZG9tcndfZHQgY2FzY2Fk ZTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gY29sdW1uIGQgb2YgdGFibGUgZG9tcndfdAor ZHJvcCB0YWJsZSBkb21yd190OworZHJvcCB0eXBlIGRvbXJ3X2N0OworZHJvcCBmdW5jdGlvbiBk b21yd19zaG93KGludCk7CistLSBkb21haW4gY29sdW1uIGluIGFuIGluaGVyaXRhbmNlIGNoaWxk IHRoYXQgaXMgcmV3cml0dGVuIGJ5IHJlY3Vyc2lvbgorY3JlYXRlIHRhYmxlIGRvbXJ3X3AgKGMg aW50KTsKK2NyZWF0ZSBkb21haW4gZG9tcndfZHQgYXMgaW50IGNoZWNrICgocm93KHZhbHVlKTo6 ZG9tcndfcCkuYyA+IDApOworY3JlYXRlIHRhYmxlIGRvbXJ3X2NoIChkIGRvbXJ3X2R0KSBpbmhl cml0cyAoZG9tcndfcCk7CitpbnNlcnQgaW50byBkb21yd19jaCB2YWx1ZXMgKDEsIDUpLCAoMiwg Nyk7CithbHRlciB0YWJsZSBkb21yd19wIGFsdGVyIGNvbHVtbiBjIHR5cGUgYmlnaW50Oworc2Vs ZWN0ICogZnJvbSBkb21yd19jaDsKKyBjIHwgZCAKKy0tLSstLS0KKyAxIHwgNQorIDIgfCA3Ciso MiByb3dzKQorCitkcm9wIGRvbWFpbiBkb21yd19kdCBjYXNjYWRlOworTk9USUNFOiAgZHJvcCBj YXNjYWRlcyB0byBjb2x1bW4gZCBvZiB0YWJsZSBkb21yd19jaAorZHJvcCB0YWJsZSBkb21yd19w IGNhc2NhZGU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGRvbXJ3X2NoCistLSBh IHJlYnVpbHQgY29uc3RyYWludCB0aGF0IHJlamVjdHMgc3RvcmVkIHZhbHVlcyBtdXN0IHN0aWxs IGJlIGVuZm9yY2VkLAorLS0gZXZlbiB3aGVuIHRoZSBhbHRlcmVkIG9iamVjdCBpcyBhIHN0YW5k YWxvbmUgY29tcG9zaXRlIHR5cGUKK2NyZWF0ZSB0eXBlIGRvbXJ3X3J0IGFzIChpIGludCk7Citj cmVhdGUgZG9tYWluIGRvbXJ3X2R0IGFzIGludCBjaGVjayAoKHJvdyh2YWx1ZSk6OmRvbXJ3X3J0 KS5pIGlzIG5vdCBudWxsKTsKK2NyZWF0ZSB0YWJsZSBkb21yd191ICh4IGRvbXJ3X2R0KTsKK2lu c2VydCBpbnRvIGRvbXJ3X3UgdmFsdWVzICg0MDAwMCk7CithbHRlciB0eXBlIGRvbXJ3X3J0IGFs dGVyIGF0dHJpYnV0ZSBpIHR5cGUgc21hbGxpbnQ7ICAtLSBmYWlsCitFUlJPUjogIHNtYWxsaW50 IG91dCBvZiByYW5nZQorZHJvcCB0YWJsZSBkb21yd191OworLS0gYSBOT1QgVkFMSUQgY29uc3Ry YWludCBpcyBub3QgdmFsaWRhdGVkIGFuZCBzdGF5cyBOT1QgVkFMSUQKK2FsdGVyIGRvbWFpbiBk b21yd19kdCBkcm9wIGNvbnN0cmFpbnQgZG9tcndfZHRfY2hlY2s7CitjcmVhdGUgdGFibGUgZG9t cndfdSAoeCBkb21yd19kdCk7CitpbnNlcnQgaW50byBkb21yd191IHZhbHVlcyAoNDAwMDApOwor YWx0ZXIgZG9tYWluIGRvbXJ3X2R0IGFkZCBjb25zdHJhaW50IGRvbXJ3X252CisgIGNoZWNrICgo cm93KHZhbHVlKTo6ZG9tcndfcnQpLmkgaXMgbm90IG51bGwpIG5vdCB2YWxpZDsKK2FsdGVyIHR5 cGUgZG9tcndfcnQgYWx0ZXIgYXR0cmlidXRlIGkgdHlwZSBzbWFsbGludDsKK3NlbGVjdCBwZ19n ZXRfY29uc3RyYWludGRlZihvaWQpLCBjb252YWxpZGF0ZWQgZnJvbSBwZ19jb25zdHJhaW50Cisg IHdoZXJlIGNvbnR5cGlkID0gJ2RvbXJ3X2R0Jzo6cmVndHlwZTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAgICAgICAgICB8IGNv bnZhbGlkYXRlZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBDSEVDSyAoKChST1co KFZBTFVFKTo6c21hbGxpbnQpOjpkb21yd19ydCkuaSBJUyBOT1QgTlVMTCkpIE5PVCBWQUxJRCB8 IGYKKygxIHJvdykKKworZHJvcCB0YWJsZSBkb21yd191OworZHJvcCBkb21haW4gZG9tcndfZHQ7 Citkcm9wIHR5cGUgZG9tcndfcnQ7CiAtLSBUZXN0IGRvbWFpbnMgb3ZlciBhcnJheXMgb2YgY29t cG9zaXRlCiBjcmVhdGUgdHlwZSBjb21wdHlwZSBhcyAociBmbG9hdDgsIGkgZmxvYXQ4KTsKIGNy ZWF0ZSBkb21haW4gZGNvbXB0eXBlYSBhcyBjb21wdHlwZVtdOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvZG9tYWluLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RvbWFpbi5z cWwKaW5kZXggMTI0MGY5NDIyYmQuLmI2ZTQ1MmQ2ZWJiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9kb21haW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RvbWFpbi5z cWwKQEAgLTI1Miw2ICsyNTIsNjkgQEAgZHJvcCBkb21haW4gZHRfbXVsdGk7CiBkcm9wIHR5cGUg cjEgY2FzY2FkZTsKIGRyb3AgdHlwZSByMiBjYXNjYWRlOwogCistLSBBIGRvbWFpbiBjb25zdHJh aW50IHJlYnVpbHQgYnkgQUxURVIgQ09MVU1OIFRZUEUgbXVzdCBub3QgYmUgdmFsaWRhdGVkCist LSB1bnRpbCB0YWJsZXMgdXNpbmcgdGhlIGRvbWFpbiBoYXZlIGJlZW4gcmV3cml0dGVuLiAgKFRo ZXNlIHRlc3RzIGF2b2lkCistLSBST1codmFsdWUpOjpkb21yd190LCBzaW5jZSB0aGUgcmVidWls dCBleHByZXNzaW9uIHdvdWxkIHRoZW4gY29udGFpbiBhCistLSBOVUxMIGNvZXJjZWQgdG8gdGhl IGRvbWFpbiBpdHNlbGYuKQorY3JlYXRlIGZ1bmN0aW9uIGRvbXJ3X3Nob3coaW50KSByZXR1cm5z IGJvb2wgbGFuZ3VhZ2UgcGxwZ3NxbCBhcworICAkJCBiZWdpbiByYWlzZSBub3RpY2UgJ2RvbWFp biBjaGVjayBzZWVzIHZhbHVlICUnLCAkMTsgcmV0dXJuIHRydWU7IGVuZCAkJDsKK2NyZWF0ZSB0 YWJsZSBkb21yd190IChjIGludCk7CitjcmVhdGUgZG9tYWluIGRvbXJ3X2R0IGFzIGludAorICBj aGVjayAoZG9tcndfc2hvdyh2YWx1ZSkgYW5kIChudWxsOjpkb21yd190KS5jIGlzIG51bGwpOwor YWx0ZXIgdGFibGUgZG9tcndfdCBhZGQgY29sdW1uIGQgZG9tcndfZHQ7CitpbnNlcnQgaW50byBk b21yd190IHZhbHVlcyAoMSwgNSksICgyLCA3KTsKK2FsdGVyIHRhYmxlIGRvbXJ3X3QgYWx0ZXIg Y29sdW1uIGMgdHlwZSBiaWdpbnQ7ICAtLSBzaG91bGQgc2VlIDUgYW5kIDcKK3NlbGVjdCAqIGZy b20gZG9tcndfdDsKK3NlbGVjdCBjb252YWxpZGF0ZWQgZnJvbSBwZ19jb25zdHJhaW50IHdoZXJl IGNvbnR5cGlkID0gJ2RvbXJ3X2R0Jzo6cmVndHlwZTsKK2Ryb3AgZG9tYWluIGRvbXJ3X2R0IGNh c2NhZGU7Citkcm9wIHRhYmxlIGRvbXJ3X3Q7CisKKy0tIHNhbWUsIGRvbWFpbiBvdmVyIGNvbXBv c2l0ZQorY3JlYXRlIHR5cGUgZG9tcndfY3QgYXMgKGogaW50KTsKK2NyZWF0ZSB0YWJsZSBkb21y d190IChjIGludCk7CitjcmVhdGUgZG9tYWluIGRvbXJ3X2R0IGFzIGRvbXJ3X2N0CisgIGNoZWNr IChkb21yd19zaG93KCh2YWx1ZSkuaikgYW5kIChudWxsOjpkb21yd190KS5jIGlzIG51bGwpOwor YWx0ZXIgdGFibGUgZG9tcndfdCBhZGQgY29sdW1uIGQgZG9tcndfZHQ7CitpbnNlcnQgaW50byBk b21yd190IHZhbHVlcyAoMSwgcm93KDUpKSwgKDIsIHJvdyg3KSk7CithbHRlciB0YWJsZSBkb21y d190IGFsdGVyIGNvbHVtbiBjIHR5cGUgYmlnaW50OyAgLS0gc2hvdWxkIHNlZSA1IGFuZCA3Citz ZWxlY3QgKiBmcm9tIGRvbXJ3X3Q7Citkcm9wIGRvbWFpbiBkb21yd19kdCBjYXNjYWRlOworZHJv cCB0YWJsZSBkb21yd190OworZHJvcCB0eXBlIGRvbXJ3X2N0OworZHJvcCBmdW5jdGlvbiBkb21y d19zaG93KGludCk7CisKKy0tIGRvbWFpbiBjb2x1bW4gaW4gYW4gaW5oZXJpdGFuY2UgY2hpbGQg dGhhdCBpcyByZXdyaXR0ZW4gYnkgcmVjdXJzaW9uCitjcmVhdGUgdGFibGUgZG9tcndfcCAoYyBp bnQpOworY3JlYXRlIGRvbWFpbiBkb21yd19kdCBhcyBpbnQgY2hlY2sgKChyb3codmFsdWUpOjpk b21yd19wKS5jID4gMCk7CitjcmVhdGUgdGFibGUgZG9tcndfY2ggKGQgZG9tcndfZHQpIGluaGVy aXRzIChkb21yd19wKTsKK2luc2VydCBpbnRvIGRvbXJ3X2NoIHZhbHVlcyAoMSwgNSksICgyLCA3 KTsKK2FsdGVyIHRhYmxlIGRvbXJ3X3AgYWx0ZXIgY29sdW1uIGMgdHlwZSBiaWdpbnQ7CitzZWxl Y3QgKiBmcm9tIGRvbXJ3X2NoOworZHJvcCBkb21haW4gZG9tcndfZHQgY2FzY2FkZTsKK2Ryb3Ag dGFibGUgZG9tcndfcCBjYXNjYWRlOworCistLSBhIHJlYnVpbHQgY29uc3RyYWludCB0aGF0IHJl amVjdHMgc3RvcmVkIHZhbHVlcyBtdXN0IHN0aWxsIGJlIGVuZm9yY2VkLAorLS0gZXZlbiB3aGVu IHRoZSBhbHRlcmVkIG9iamVjdCBpcyBhIHN0YW5kYWxvbmUgY29tcG9zaXRlIHR5cGUKK2NyZWF0 ZSB0eXBlIGRvbXJ3X3J0IGFzIChpIGludCk7CitjcmVhdGUgZG9tYWluIGRvbXJ3X2R0IGFzIGlu dCBjaGVjayAoKHJvdyh2YWx1ZSk6OmRvbXJ3X3J0KS5pIGlzIG5vdCBudWxsKTsKK2NyZWF0ZSB0 YWJsZSBkb21yd191ICh4IGRvbXJ3X2R0KTsKK2luc2VydCBpbnRvIGRvbXJ3X3UgdmFsdWVzICg0 MDAwMCk7CithbHRlciB0eXBlIGRvbXJ3X3J0IGFsdGVyIGF0dHJpYnV0ZSBpIHR5cGUgc21hbGxp bnQ7ICAtLSBmYWlsCitkcm9wIHRhYmxlIGRvbXJ3X3U7CisKKy0tIGEgTk9UIFZBTElEIGNvbnN0 cmFpbnQgaXMgbm90IHZhbGlkYXRlZCBhbmQgc3RheXMgTk9UIFZBTElECithbHRlciBkb21haW4g ZG9tcndfZHQgZHJvcCBjb25zdHJhaW50IGRvbXJ3X2R0X2NoZWNrOworY3JlYXRlIHRhYmxlIGRv bXJ3X3UgKHggZG9tcndfZHQpOworaW5zZXJ0IGludG8gZG9tcndfdSB2YWx1ZXMgKDQwMDAwKTsK K2FsdGVyIGRvbWFpbiBkb21yd19kdCBhZGQgY29uc3RyYWludCBkb21yd19udgorICBjaGVjayAo KHJvdyh2YWx1ZSk6OmRvbXJ3X3J0KS5pIGlzIG5vdCBudWxsKSBub3QgdmFsaWQ7CithbHRlciB0 eXBlIGRvbXJ3X3J0IGFsdGVyIGF0dHJpYnV0ZSBpIHR5cGUgc21hbGxpbnQ7CitzZWxlY3QgcGdf Z2V0X2NvbnN0cmFpbnRkZWYob2lkKSwgY29udmFsaWRhdGVkIGZyb20gcGdfY29uc3RyYWludAor ICB3aGVyZSBjb250eXBpZCA9ICdkb21yd19kdCc6OnJlZ3R5cGU7Citkcm9wIHRhYmxlIGRvbXJ3 X3U7Citkcm9wIGRvbWFpbiBkb21yd19kdDsKK2Ryb3AgdHlwZSBkb21yd19ydDsKKwogCiAtLSBU ZXN0IGRvbWFpbnMgb3ZlciBhcnJheXMgb2YgY29tcG9zaXRlCiAKLS0gCjIuNTAuMSAoQXBwbGUg R2l0LTE1NSkKCg== --5b05c703de7eecfd7578033ba6731599e50e57b3c0a0867c83fd5829dee6 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0003-Don-t-require-ownership-when-rebuilding-constrain.patch Content-Type: text/plain; charset=utf-8; name=v2-0003-Don-t-require-ownership-when-rebuilding-constrain.patch RnJvbSBiZjc4YWI2YTMyYzVlMjc1NzI1ODhjZmE1ODY3ZWQ0ZTZmMjA0OWI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoZXVzIEFsY2FudGFyYSA8bXRocy5kZXZAcG0ubWU+CkRh dGU6IE1vbiwgMjggU2VwIDIwMjYgMTU6MTg6NTYgLTAzMDAKU3ViamVjdDogW1BBVENIIHYyIDMv M10gRG9uJ3QgcmVxdWlyZSBvd25lcnNoaXAgd2hlbiByZWJ1aWxkaW5nIGNvbnN0cmFpbnRzIGlu CiBBTFRFUiBUQUJMRQoKV2hlbiBBTFRFUiBUQUJMRSAuLi4gQUxURVIgQ09MVU1OIFRZUEUgKG9y IEFMVEVSIFRZUEUgLi4uIEFMVEVSCkFUVFJJQlVURSkgcmVidWlsZHMgYSBjb25zdHJhaW50IHRo YXQgZGVwZW5kcyBvbiB0aGUgYWx0ZXJlZCBjb2x1bW4sCml0IGRyb3BzIHRoZSBjb25zdHJhaW50 IGFuZCByZS1jcmVhdGVzIGl0IGZyb20gaXRzIHNhdmVkIGRlZmluaXRpb24uCkZvciBkb21haW4g Q0hFQ0sgY29uc3RyYWludHMgdGhlIHJlLWNyZWF0aW9uIGdvZXMgdGhyb3VnaApBbHRlckRvbWFp bkFkZENvbnN0cmFpbnQoKSwgd2hpY2ggY2FsbHMgY2hlY2tEb21haW5Pd25lcigpLCBhbmQgYW55 CmNvbW1lbnQgb24gYSB0YWJsZSBvciBkb21haW4gY29uc3RyYWludCBpcyByZXN0b3JlZCB3aXRo CkNvbW1lbnRPYmplY3QoKSwgd2hpY2ggcmVxdWlyZXMgb3duZXJzaGlwIG9mIHRoZSBjb25zdHJh aW50J3MgdGFibGUgb3IKZG9tYWluLiAgU28gYSB1c2VyIGFsdGVyaW5nIGEgdHlwZSBvciB0YWJs ZSB0aGV5IG93biB3b3VsZCBmYWlsIHdpdGgKIm11c3QgYmUgb3duZXIgb2YgdHlwZSAuLi4iIG9y ICJtdXN0IGJlIG93bmVyIG9mIHJlbGF0aW9uIC4uLiIgaWYKYW5vdGhlciB1c2VyJ3MgZG9tYWlu IG9yIHRhYmxlIGhhcyBhIGNvbnN0cmFpbnQgdGhhdCBkZXBlbmRzIG9uIGl0LgpTaW5jZSB0eXBl cyBncmFudCBVU0FHRSB0byBQVUJMSUMgYnkgZGVmYXVsdCwgYW55IHVzZXIgY291bGQgY3JlYXRl CnN1Y2ggYSBkZXBlbmRlbmN5IGFuZCBibG9jayB0aGUgb3duZXIgZnJvbSBhbHRlcmluZyB0aGVp ciBvd24gdHlwZS4KClRoZXNlIGNoZWNrcyBkb24ndCBtYWtlIHNlbnNlIGhlcmU6IHRoZSB1c2Vy IGlzbid0IGNob29zaW5nIHRvIGFkZCBhCmNvbnN0cmFpbnQgb3IgY29tbWVudCwganVzdCByZXN0 b3Jpbmcgb25lcyB0aGF0IGFscmVhZHkgZXhpc3RlZCwgYW5kCnRoZSBtYXRjaGluZyBkcm9wIGlz IGFscmVhZHkgZG9uZSB3aXRob3V0IGFueSBwZXJtaXNzaW9uIGNoZWNrcy4KUmVidWlsZGluZyBh IHRhYmxlIGNvbnN0cmFpbnQgd2l0aG91dCBhIGNvbW1lbnQgYWxzbyBkb2Vzbid0IGNoZWNrCm93 bmVyc2hpcC4KCkZpeCBieSBza2lwcGluZyB0aGUgb3duZXJzaGlwIGNoZWNrIGluIEFsdGVyRG9t YWluQWRkQ29uc3RyYWludCgpIHdoZW4KaXNfcmVhZGQgaXMgc2V0LCBhcyB3ZSBhbHJlYWR5IGRv IGZvciB0aGUgVVNBR0UgY2hlY2sgb24gdHlwZXMgdXNlZApieSB0aGUgZXhwcmVzc2lvbiwgYW5k IGJ5IHJlc3RvcmluZyBjb21tZW50cyBkaXJlY3RseSB3aXRoCkNyZWF0ZUNvbW1lbnRzKCkgaW5z dGVhZCBvZiBDb21tZW50T2JqZWN0KCkuCgpUaGUgZG9tYWluIHBhcnQgb2YgdGhpcyBkYXRlcyBi YWNrIHRvIGFmMjBlMmQ3Miwgd2hpY2ggYWRkZWQKcmVidWlsZGluZyBvZiBkb21haW4gY29uc3Ry YWludHMuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgIHwgMjIgKysr KysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYyAgICAgIHwgMTgg KysrKysrKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kb21haW4ub3V0IHwgMzgg KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZG9tYWlu LnNxbCAgICAgIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwg MTAzIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMu YwppbmRleCAxMGM3YTNhNWY4ZS4uYTZjMWQ0M2NjMGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCkBAIC01NTU3LDcgKzU1NTcsMjcgQEAgQVRFeGVjQ21kKExpc3QgKip3cXVldWUsIEFsdGVy ZWRUYWJsZUluZm8gKnRhYiwKIAkJCQlicmVhazsKIAkJCX0KIAkJY2FzZSBBVF9SZUFkZENvbW1l bnQ6CS8qIFJlLWFkZCBleGlzdGluZyBjb21tZW50ICovCi0JCQlhZGRyZXNzID0gQ29tbWVudE9i amVjdCgoQ29tbWVudFN0bXQgKikgY21kLT5kZWYpOworCQkJeworCQkJCUNvbW1lbnRTdG10ICpz dG10ID0gKENvbW1lbnRTdG10ICopIGNtZC0+ZGVmOworCQkJCVJlbGF0aW9uCWNvbXJlbDsKKwor CQkJCS8qCisJCQkJICogRG9uJ3QgdXNlIENvbW1lbnRPYmplY3QoKSwgc2luY2UgdGhhdCByZXF1 aXJlcyBvd25lcnNoaXAgb2YKKwkJCQkgKiB0aGUgY29uc3RyYWludCdzIHRhYmxlIG9yIGRvbWFp biwgd2hpY2ggdGhlIHVzZXIgYWx0ZXJpbmcgYQorCQkJCSAqIGNvbHVtbiB0aGUgY29uc3RyYWlu dCBkZXBlbmRzIG9uIG5lZWQgbm90IGhhdmUuIFdlJ3JlIGp1c3QKKwkJCQkgKiByZXN0b3Jpbmcg YSBjb21tZW50IHRoYXQgYWxyZWFkeSBleGlzdGVkLgorCQkJCSAqLworCQkJCUFzc2VydChzdG10 LT5vYmp0eXBlID09IE9CSkVDVF9UQUJDT05TVFJBSU5UIHx8CisJCQkJCSAgIHN0bXQtPm9ianR5 cGUgPT0gT0JKRUNUX0RPTUNPTlNUUkFJTlQpOworCQkJCWFkZHJlc3MgPSBnZXRfb2JqZWN0X2Fk ZHJlc3Moc3RtdC0+b2JqdHlwZSwgc3RtdC0+b2JqZWN0LAorCQkJCQkJCQkJCQkgJmNvbXJlbCwK KwkJCQkJCQkJCQkJIFNoYXJlVXBkYXRlRXhjbHVzaXZlTG9jaywKKwkJCQkJCQkJCQkJIGZhbHNl KTsKKwkJCQlDcmVhdGVDb21tZW50cyhhZGRyZXNzLm9iamVjdElkLCBhZGRyZXNzLmNsYXNzSWQs CisJCQkJCQkJICAgYWRkcmVzcy5vYmplY3RTdWJJZCwgc3RtdC0+Y29tbWVudCk7CisJCQkJaWYg KGNvbXJlbCAhPSBOVUxMKQorCQkJCQlyZWxhdGlvbl9jbG9zZShjb21yZWwsIE5vTG9jayk7CisJ CQl9CiAJCQlicmVhazsKIAkJY2FzZSBBVF9BZGRJbmRleENvbnN0cmFpbnQ6IC8qIEFERCBDT05T VFJBSU5UIFVTSU5HIElOREVYICovCiAJCQlhZGRyZXNzID0gQVRFeGVjQWRkSW5kZXhDb25zdHJh aW50KHRhYiwgcmVsLCAoSW5kZXhTdG10ICopIGNtZC0+ZGVmLApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRz LmMKaW5kZXggZDAzNDkwNzlhMWUuLjY5Y2RmZDg3YTc5IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90eXBlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRz LmMKQEAgLTMwMDQsOCArMzAwNCwxNiBAQCBBbHRlckRvbWFpbkFkZENvbnN0cmFpbnQoTGlzdCAq bmFtZXMsIE5vZGUgKm5ld0NvbnN0cmFpbnQsCiAJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciB0eXBlICV1IiwgZG9tYWlub2lkKTsKIAl0eXBUdXAgPSAoRm9ybV9wZ190eXBl KSBHRVRTVFJVQ1QodHVwKTsKIAotCS8qIENoZWNrIGl0J3MgYSBkb21haW4gYW5kIGNoZWNrIHVz ZXIgaGFzIHBlcm1pc3Npb24gZm9yIEFMVEVSIERPTUFJTiAqLwotCWNoZWNrRG9tYWluT3duZXIo dHVwKTsKKwkvKgorCSAqIENoZWNrIGl0J3MgYSBkb21haW4gYW5kIGNoZWNrIHVzZXIgaGFzIHBl cm1pc3Npb24gZm9yIEFMVEVSIERPTUFJTi4KKwkgKiBXaGVuIHJlLWFkZGluZyBhIGNvbnN0cmFp bnQgZHVyaW5nIEFMVEVSIFRBQkxFLCBza2lwIHRoZSBwZXJtaXNzaW9uCisJICogY2hlY2sgc2lu Y2UgdGhlIGNvbnN0cmFpbnQgYWxyZWFkeSBleGlzdGVkLCBhbmQgdGhlIHVzZXIgYWx0ZXJpbmcg YQorCSAqIGNvbHVtbiBpdCBkZXBlbmRzIG9uIG5lZWQgbm90IG93biB0aGUgZG9tYWluLgorCSAq LworCWlmIChpc19yZWFkZCkKKwkJQXNzZXJ0KHR5cFR1cC0+dHlwdHlwZSA9PSBUWVBUWVBFX0RP TUFJTik7CisJZWxzZQorCQljaGVja0RvbWFpbk93bmVyKHR1cCk7CiAKIAlpZiAoIUlzQShuZXdD b25zdHJhaW50LCBDb25zdHJhaW50KSkKIAkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2Rl IHR5cGU6ICVkIiwKQEAgLTMwMzQsOSArMzA0Miw5IEBAIEFsdGVyRG9tYWluQWRkQ29uc3RyYWlu dChMaXN0ICpuYW1lcywgTm9kZSAqbmV3Q29uc3RyYWludCwKIAkJICogdG8uCiAJCSAqCiAJCSAq IFdoZW4gcmUtYWRkaW5nIGEgY29uc3RyYWludCBkdXJpbmcgQUxURVIgVEFCTEUsIHRoZSB0YWJs ZXMgdXNpbmcKLQkJICogdGhlIGRvbWFpbiBtaWdodCBub3QgaGF2ZSBiZWVuIHJld3JpdHRlbiB0 byBtYXRjaCB0aGVpciBuZXcKLQkJICogY2F0YWxvZyBkZWZpbml0aW9ucyB5ZXQsIHNvIHRoZSBj YWxsZXIgbXVzdCBkbyB0aGUgdmFsaWRhdGlvbiBhZnRlcgotCQkgKiBpdHMgcmV3cml0ZSBwaGFz ZSBpbnN0ZWFkLgorCQkgKiB0aGUgZG9tYWluIG1pZ2h0IG5vdCBoYXZlIGJlZW4gcmV3cml0dGVu IHRvIG1hdGNoIHRoZWlyIG5ldyBjYXRhbG9nCisJCSAqIGRlZmluaXRpb25zIHlldCwgc28gdGhl IGNhbGxlciBtdXN0IGRvIHRoZSB2YWxpZGF0aW9uIGFmdGVyIGl0cworCQkgKiByZXdyaXRlIHBo YXNlIGluc3RlYWQuCiAJCSAqLwogCQlpZiAoIWNvbnN0ci0+c2tpcF92YWxpZGF0aW9uICYmICFp c19yZWFkZCkKIAkJCXZhbGlkYXRlRG9tYWluQ2hlY2tDb25zdHJhaW50KGRvbWFpbm9pZCwgY2Ni aW4pOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kb21haW4ub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kb21haW4ub3V0CmluZGV4IDE0ZjJjOTI4NzAwLi5l NDljNWRhY2FiMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kb21haW4u b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZG9tYWluLm91dApAQCAtNTgxLDYg KzU4MSw0NCBAQCBzZWxlY3QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSwgY29udmFsaWRhdGVk IGZyb20gcGdfY29uc3RyYWludAogZHJvcCB0YWJsZSBkb21yd191OwogZHJvcCBkb21haW4gZG9t cndfZHQ7CiBkcm9wIHR5cGUgZG9tcndfcnQ7CistLSBSZWJ1aWxkaW5nIGEgY29uc3RyYWludCAo YW5kIGl0cyBjb21tZW50KSBvd25lZCBieSBzb21lb25lIGVsc2UgbXVzdCBub3QKKy0tIHJlcXVp cmUgb3duZXJzaGlwIG9mIHRoZSBjb25zdHJhaW50J3MgZG9tYWluIG9yIHRhYmxlCitjcmVhdGUg cm9sZSByZWdyZXNzX2RvbXJ3X3R5cGVvd25lcjsKK2NyZWF0ZSByb2xlIHJlZ3Jlc3NfZG9tcndf Y29ub3duZXI7CitncmFudCBjcmVhdGUgb24gc2NoZW1hIHB1YmxpYyB0byByZWdyZXNzX2RvbXJ3 X3R5cGVvd25lciwgcmVncmVzc19kb21yd19jb25vd25lcjsKK3NldCByb2xlIHJlZ3Jlc3NfZG9t cndfdHlwZW93bmVyOworY3JlYXRlIHR5cGUgZG9tcndfcnQgYXMgKGkgaW50KTsKK3NldCByb2xl IHJlZ3Jlc3NfZG9tcndfY29ub3duZXI7CitjcmVhdGUgZG9tYWluIGRvbXJ3X2R0MSBhcyBpbnQK KyAgY29uc3RyYWludCBkb21yd19kdDFfY2hlY2sgY2hlY2sgKChyb3codmFsdWUpOjpkb21yd19y dCkuaSA+IDApOworY29tbWVudCBvbiBjb25zdHJhaW50IGRvbXJ3X2R0MV9jaGVjayBvbiBkb21h aW4gZG9tcndfZHQxIGlzICdkb21haW4gb3ZlciBpbnQnOworY3JlYXRlIGRvbWFpbiBkb21yd19k dDIgYXMgZG9tcndfcnQKKyAgY29uc3RyYWludCBkb21yd19kdDJfY2hlY2sgY2hlY2sgKCh2YWx1 ZSkuaSA+IDApOworY29tbWVudCBvbiBjb25zdHJhaW50IGRvbXJ3X2R0Ml9jaGVjayBvbiBkb21h aW4gZG9tcndfZHQyIGlzICdkb21haW4gb3ZlciBjb21wb3NpdGUnOworY3JlYXRlIHRhYmxlIGRv bXJ3X3QgKHggaW50CisgIGNvbnN0cmFpbnQgZG9tcndfdF9jaGVjayBjaGVjayAoKHJvdyh4KTo6 ZG9tcndfcnQpLmkgPiAwKSk7Citjb21tZW50IG9uIGNvbnN0cmFpbnQgZG9tcndfdF9jaGVjayBv biBkb21yd190IGlzICd0YWJsZSBjb25zdHJhaW50JzsKK3NldCByb2xlIHJlZ3Jlc3NfZG9tcndf dHlwZW93bmVyOworYWx0ZXIgdHlwZSBkb21yd19ydCBhbHRlciBhdHRyaWJ1dGUgaSB0eXBlIGJp Z2ludDsKK3Jlc2V0IHJvbGU7CitzZWxlY3QgY29ubmFtZSwgcGdfZ2V0X2NvbnN0cmFpbnRkZWYo b2lkKSwgb2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX2NvbnN0cmFpbnQnKQorICBmcm9tIHBnX2Nv bnN0cmFpbnQgd2hlcmUgY29ubmFtZSBsaWtlICdkb21yd1xfJScgb3JkZXIgYnkgY29ubmFtZTsK KyAgICAgY29ubmFtZSAgICAgfCAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAg ICAgICAgICAgICAgfCAgICBvYmpfZGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIGRvbXJ3X2R0MV9jaGVjayB8IENIRUNLICgoKFJPVygoVkFMVUUp OjpiaWdpbnQpOjpkb21yd19ydCkuaSA+IDApKSB8IGRvbWFpbiBvdmVyIGludAorIGRvbXJ3X2R0 Ml9jaGVjayB8IENIRUNLICgoKFZBTFVFKS5pID4gMCkpICAgICAgICAgICAgICAgICAgICAgICAg ICB8IGRvbWFpbiBvdmVyIGNvbXBvc2l0ZQorIGRvbXJ3X3RfY2hlY2sgICB8IENIRUNLICgoKFJP VygoeCk6OmJpZ2ludCk6OmRvbXJ3X3J0KS5pID4gMCkpICAgICB8IHRhYmxlIGNvbnN0cmFpbnQK KygzIHJvd3MpCisKK3NlbGVjdCAoLTEpOjpkb21yd19kdDE7ICAtLSBmYWlsCitFUlJPUjogIHZh bHVlIGZvciBkb21haW4gZG9tcndfZHQxIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImRvbXJ3 X2R0MV9jaGVjayIKK2Ryb3AgdGFibGUgZG9tcndfdDsKK2Ryb3AgZG9tYWluIGRvbXJ3X2R0MTsK K2Ryb3AgZG9tYWluIGRvbXJ3X2R0MjsKK2Ryb3AgdHlwZSBkb21yd19ydDsKK3Jldm9rZSBjcmVh dGUgb24gc2NoZW1hIHB1YmxpYyBmcm9tIHJlZ3Jlc3NfZG9tcndfdHlwZW93bmVyLCByZWdyZXNz X2RvbXJ3X2Nvbm93bmVyOworZHJvcCByb2xlIHJlZ3Jlc3NfZG9tcndfdHlwZW93bmVyOworZHJv cCByb2xlIHJlZ3Jlc3NfZG9tcndfY29ub3duZXI7CiAtLSBUZXN0IGRvbWFpbnMgb3ZlciBhcnJh eXMgb2YgY29tcG9zaXRlCiBjcmVhdGUgdHlwZSBjb21wdHlwZSBhcyAociBmbG9hdDgsIGkgZmxv YXQ4KTsKIGNyZWF0ZSBkb21haW4gZGNvbXB0eXBlYSBhcyBjb21wdHlwZVtdOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZG9tYWluLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2RvbWFpbi5zcWwKaW5kZXggYjZlNDUyZDZlYmIuLmU5MTRiNjkxM2VlIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9kb21haW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2RvbWFpbi5zcWwKQEAgLTMxNSw2ICszMTUsMzcgQEAgZHJvcCB0YWJsZSBkb21yd191OwogZHJv cCBkb21haW4gZG9tcndfZHQ7CiBkcm9wIHR5cGUgZG9tcndfcnQ7CiAKKy0tIFJlYnVpbGRpbmcg YSBjb25zdHJhaW50IChhbmQgaXRzIGNvbW1lbnQpIG93bmVkIGJ5IHNvbWVvbmUgZWxzZSBtdXN0 IG5vdAorLS0gcmVxdWlyZSBvd25lcnNoaXAgb2YgdGhlIGNvbnN0cmFpbnQncyBkb21haW4gb3Ig dGFibGUKK2NyZWF0ZSByb2xlIHJlZ3Jlc3NfZG9tcndfdHlwZW93bmVyOworY3JlYXRlIHJvbGUg cmVncmVzc19kb21yd19jb25vd25lcjsKK2dyYW50IGNyZWF0ZSBvbiBzY2hlbWEgcHVibGljIHRv IHJlZ3Jlc3NfZG9tcndfdHlwZW93bmVyLCByZWdyZXNzX2RvbXJ3X2Nvbm93bmVyOworc2V0IHJv bGUgcmVncmVzc19kb21yd190eXBlb3duZXI7CitjcmVhdGUgdHlwZSBkb21yd19ydCBhcyAoaSBp bnQpOworc2V0IHJvbGUgcmVncmVzc19kb21yd19jb25vd25lcjsKK2NyZWF0ZSBkb21haW4gZG9t cndfZHQxIGFzIGludAorICBjb25zdHJhaW50IGRvbXJ3X2R0MV9jaGVjayBjaGVjayAoKHJvdyh2 YWx1ZSk6OmRvbXJ3X3J0KS5pID4gMCk7Citjb21tZW50IG9uIGNvbnN0cmFpbnQgZG9tcndfZHQx X2NoZWNrIG9uIGRvbWFpbiBkb21yd19kdDEgaXMgJ2RvbWFpbiBvdmVyIGludCc7CitjcmVhdGUg ZG9tYWluIGRvbXJ3X2R0MiBhcyBkb21yd19ydAorICBjb25zdHJhaW50IGRvbXJ3X2R0Ml9jaGVj ayBjaGVjayAoKHZhbHVlKS5pID4gMCk7Citjb21tZW50IG9uIGNvbnN0cmFpbnQgZG9tcndfZHQy X2NoZWNrIG9uIGRvbWFpbiBkb21yd19kdDIgaXMgJ2RvbWFpbiBvdmVyIGNvbXBvc2l0ZSc7Citj cmVhdGUgdGFibGUgZG9tcndfdCAoeCBpbnQKKyAgY29uc3RyYWludCBkb21yd190X2NoZWNrIGNo ZWNrICgocm93KHgpOjpkb21yd19ydCkuaSA+IDApKTsKK2NvbW1lbnQgb24gY29uc3RyYWludCBk b21yd190X2NoZWNrIG9uIGRvbXJ3X3QgaXMgJ3RhYmxlIGNvbnN0cmFpbnQnOworc2V0IHJvbGUg cmVncmVzc19kb21yd190eXBlb3duZXI7CithbHRlciB0eXBlIGRvbXJ3X3J0IGFsdGVyIGF0dHJp YnV0ZSBpIHR5cGUgYmlnaW50OworcmVzZXQgcm9sZTsKK3NlbGVjdCBjb25uYW1lLCBwZ19nZXRf Y29uc3RyYWludGRlZihvaWQpLCBvYmpfZGVzY3JpcHRpb24ob2lkLCAncGdfY29uc3RyYWludCcp CisgIGZyb20gcGdfY29uc3RyYWludCB3aGVyZSBjb25uYW1lIGxpa2UgJ2RvbXJ3XF8lJyBvcmRl ciBieSBjb25uYW1lOworc2VsZWN0ICgtMSk6OmRvbXJ3X2R0MTsgIC0tIGZhaWwKK2Ryb3AgdGFi bGUgZG9tcndfdDsKK2Ryb3AgZG9tYWluIGRvbXJ3X2R0MTsKK2Ryb3AgZG9tYWluIGRvbXJ3X2R0 MjsKK2Ryb3AgdHlwZSBkb21yd19ydDsKK3Jldm9rZSBjcmVhdGUgb24gc2NoZW1hIHB1YmxpYyBm cm9tIHJlZ3Jlc3NfZG9tcndfdHlwZW93bmVyLCByZWdyZXNzX2RvbXJ3X2Nvbm93bmVyOworZHJv cCByb2xlIHJlZ3Jlc3NfZG9tcndfdHlwZW93bmVyOworZHJvcCByb2xlIHJlZ3Jlc3NfZG9tcndf Y29ub3duZXI7CisKIAogLS0gVGVzdCBkb21haW5zIG92ZXIgYXJyYXlzIG9mIGNvbXBvc2l0ZQog Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --5b05c703de7eecfd7578033ba6731599e50e57b3c0a0867c83fd5829dee6--