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 1uGuZH-009nt3-6v for pgsql-hackers@arkaria.postgresql.org; Mon, 19 May 2025 07:05:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uGuZG-00E6nK-8e for pgsql-hackers@arkaria.postgresql.org; Mon, 19 May 2025 07:05:46 +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 1uGuZF-00E6nC-SU for pgsql-hackers@lists.postgresql.org; Mon, 19 May 2025 07:05:45 +0000 Received: from mail-ua1-x92b.google.com ([2607:f8b0:4864:20::92b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uGuZC-002ctG-23 for pgsql-hackers@postgresql.org; Mon, 19 May 2025 07:05:45 +0000 Received: by mail-ua1-x92b.google.com with SMTP id a1e0cc1a2514c-87c04aeef0fso255577241.1 for ; Mon, 19 May 2025 00:05:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747638341; x=1748243141; darn=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=d959+L4A03+Ga5fLjkGg5BaOz6sQgR4axmbBqS2WJWs=; b=V8aHObRu/tbKVyt6+l8Nr67VgX3Ja6ggWhiEG9x/cw6aJLTu4sY25ZKNKDTbvU53bb yeCQAQnjMymzrHEhR/BSeFDGBSHCST50zc+hf4cimlmnTLkW6a4L8T0DCpeWcziaLkP1 leMFx96U1NaW39ahg1/PYxeE169WUvIA18qQa8govHJ5CdBF5BVFj70B/7z/cTk60fZy XSmTGnkxIdL5t/MlXOctGUE9E+jvR3X8cYyZ6R8MyNoX3DtCwgb8Thub+7HZT0bZqfBF zbjVizAX+IXfeZV4pk+XvqIhpf9p5MFhO2JGkFDx9WzQtuQTWUl1dy5d5Fu83afmAbjz 8Jrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747638341; x=1748243141; 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=d959+L4A03+Ga5fLjkGg5BaOz6sQgR4axmbBqS2WJWs=; b=QBc5CG0KdszheaLvGt6bxGOwwAPhtRnizJSNDowt3v2ju/zl1vA0ymhoSDiaFif3Bw 5uQ2qBRANrfhXuihPpTRVEBbQc2dzu0k4/9n46BMCgLiY/nzYMA8siyJPjvvdyV3PDY5 ndfl0I5os7MWQehAFffAizeYiGvDbO1wykFjf0djRtbayvIsinathC/9xJ3YLNZD9pec 7/UY7vJBrb97cO74VxEhQQ4W1rCPYXEyxyPw/aK4HpcKz0G35PGhG5F/+uMTaDSu4JLU Vxg5jQ12wT82K0oqrvAkQNwKhmDKkjcLT91QAuHwhKoEWl+HfDcsaLBOgwqqzAfaxNGV EVsA== X-Gm-Message-State: AOJu0Yy0ZYyTE2KMhuazGk8F/UFKL3pR35D+4OZxXD3oUPSgRSZOwEjb XI5brpmiO4im968uRnW6heGmJCgR2S38hYMos/9MnQmVGNZDK8rgI53t+eSO8Veh0umFW6iZCf0 w4oGcV28zVN1waRbwduhUxHvrW0OPsMg= X-Gm-Gg: ASbGncv5zrigjUyp0fsV7nvZ7SFnwxQzl4w7v+1mgouo9GKYzNcZjEIXZeLDNLov8gl vjO9+KfN/WuPLeIE0OvS8lGAz8EAPG2EA6FuL7/UDpJn5RgFcKTuR+4I2PtLvjr36hyuvCLSuAQ 8zc83XDDbiOUGj8OWmH7zg6ZfTp8Hi0dU7FarkMURiwiY/IvGwLFSHWd/HwdBF X-Google-Smtp-Source: AGHT+IH2xLTAC5mjtGUoakr/XQieVo+otz+Tlu9quMQ5N+DgNXsQ/KxUYRwWvxln9UsrorNDGqmqFbxWXUvtHaQY2lw= X-Received: by 2002:a05:6102:5e85:b0:4c3:6ba1:4129 with SMTP id ada2fe7eead31-4e05375c2f2mr8707207137.20.1747638341063; Mon, 19 May 2025 00:05:41 -0700 (PDT) MIME-Version: 1.0 References: <229413.1741144420@sss.pgh.pa.us> In-Reply-To: From: jian he Date: Mon, 19 May 2025 15:05:04 +0800 X-Gm-Features: AX0GCFtSJFrfR8u0k7zqVsEZMO7mThIQZQpPUfYic3TN5NXZg0LmCIDFM9Dt0Ck Message-ID: Subject: Re: support fast default for domain with constraints To: Tom Lane Cc: PostgreSQL-development Content-Type: multipart/mixed; boundary="00000000000083f965063577c272" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000083f965063577c272 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Mar 24, 2025 at 7:14=E2=80=AFPM jian he wrote: > > v4-0003 table with empty rows aligned with master behavior. > also will do table rewrite if the new column is domain with volatile > check constraints, > so less surprising behavior. I found out that my v4-0003 is wrong. For example, the following ALTER TABLE ADD COLUMN should not fail. CREATE DOMAIN domain5 AS int check(value > 10) default 8; CREATE TABLE t3(a int); ALTER TABLE t3 ADD COLUMN b domain5 default 1; --ok, table rewrite I also reduced the bloated tests. summary of the behavior that is different from master: if domain constraint is not volatile *and* domain's default expression sati= sfy constraint's condition then no need table rewrite. --00000000000083f965063577c272 Content-Type: text/x-patch; charset="US-ASCII"; name="v5-0002-add-function-DomainHaveVolatileConstraints.patch" Content-Disposition: attachment; filename="v5-0002-add-function-DomainHaveVolatileConstraints.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mauqehui0 RnJvbSA4YzM3NjBhYTY0NzczNDEyYjUxMjczNDdjYzU2ZGNjZDAwNDJiNTkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMTkgTWF5IDIwMjUgMTE6MTE6MDEgKzA4MDAKU3ViamVjdDogW1BBVENIIHY1 IDIvM10gYWRkIGZ1bmN0aW9uIERvbWFpbkhhdmVWb2xhdGlsZUNvbnN0cmFpbnRzCgp0aGUgc2ln bmF0dXJlIGlzOgpleHRlcm4gYm9vbCBEb21haW5IYXZlVm9sYXRpbGVDb25zdHJhaW50cyhPaWQg dHlwZV9pZCwgYm9vbCAqaGF2ZV92b2xhdGlsZSk7CgpSZXR1cm5zIHRydWUgaWYgdGhlIERvbWFp biBoYXMgYW55IGNvbnN0cmFpbnRzLiAgSWYgeW91IHdhbnQgY2hlY2sgdGhpcyBkb21haW4KaGF2 ZSBhbnkgdm9sYXRpbGUgY2hlY2sgY29uc3RyYWludHMsIG1ha2Ugc3VyZSBoYXZlX3ZvbGF0aWxl IGlzIG5vdCBOVUxMLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4RV8r aVpCUjFpNDlrX0FIaWdwcFB3TFRKaTZrbThOT3NDN0ZXdktkRW1tWGdAbWFpbC5nbWFpbC5jb20K LS0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS90eXBjYWNoZS5jIHwgNDAgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS91dGlscy90eXBjYWNoZS5oICAgICAgIHwg IDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvdHlwY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L3R5cGNhY2hlLmMKaW5kZXggZjlhZWMzOGExMWYuLjgzZjE5NWQwOWQ5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9jYWNoZS90eXBjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL3R5cGNhY2hlLmMKQEAgLTE1MDAsNiArMTUwMCw0NiBAQCBEb21haW5IYXNDb25zdHJh aW50cyhPaWQgdHlwZV9pZCkKIH0KIAogCisvKgorICogQ2hlY2sgd2hldGhlciBhIGRvbWFpbiBo YXMgYW55IGNvbnN0cmFpbnRzLCBhbmQgZGV0ZXJtaW5lIGlmIGFueSBvZiB0aG9zZQorICogY29u c3RyYWludHMgY29udGFpbiB2b2xhdGlsZSBleHByZXNzaW9ucy4KKyAqCisgKiBUbyBkZXRlY3Qg dm9sYXRpbGUgZXhwcmVzc2lvbnMgd2l0aGluIGRvbWFpbiBjaGVjayBjb25zdHJhaW50cywgZW5z dXJlIHRoYXQKKyAqIGhhdmVfdm9sYXRpbGUgaXMgbm90IE5VTEwuIElmIGhhdmVfdm9sYXRpbGUg aXMgTlVMTCwgdGhlIGJlaGF2aW9yIGlzCisgKiBlcXVpdmFsZW50IHRvIHRoYXQgb2YgRG9tYWlu SGFzQ29uc3RyYWludHMuCisgKi8KK2Jvb2wKK0RvbWFpbkhhdmVWb2xhdGlsZUNvbnN0cmFpbnRz KE9pZCB0eXBlX2lkLCBib29sICpoYXZlX3ZvbGF0aWxlKQoreworCVR5cGVDYWNoZUVudHJ5ICp0 eXBlbnRyeTsKKworCS8qCisJICogTm90ZTogYSBzaWRlIGVmZmVjdCBpcyB0byBjYXVzZSB0aGUg dHlwY2FjaGUncyBkb21haW4gZGF0YSB0byBiZWNvbWUKKwkgKiB2YWxpZC4gIFRoaXMgaXMgZmlu ZSBzaW5jZSB3ZSdsbCBsaWtlbHkgbmVlZCBpdCBzb29uIGlmIHRoZXJlIGlzIGFueS4KKwkgKi8K Kwl0eXBlbnRyeSA9IGxvb2t1cF90eXBlX2NhY2hlKHR5cGVfaWQsIFRZUEVDQUNIRV9ET01BSU5f Q09OU1RSX0lORk8pOworCisJaWYgKHR5cGVudHJ5LT5kb21haW5EYXRhICE9IE5VTEwpCisJewor CQlMaXN0Q2VsbCAgICpsYzsKKworCQlmb3JlYWNoKGxjLCB0eXBlbnRyeS0+ZG9tYWluRGF0YS0+ Y29uc3RyYWludHMpCisJCXsKKwkJCURvbWFpbkNvbnN0cmFpbnRTdGF0ZSAqciA9IChEb21haW5D b25zdHJhaW50U3RhdGUgKikgbGZpcnN0KGxjKTsKKworCQkJaWYgKHItPmNvbnN0cmFpbnR0eXBl ID09IERPTV9DT05TVFJBSU5UX0NIRUNLICYmCisJCQkJY29udGFpbl92b2xhdGlsZV9mdW5jdGlv bnMoKE5vZGUgKikgci0+Y2hlY2tfZXhwcikpCisJCQl7CisJCQkJaWYgKGhhdmVfdm9sYXRpbGUp CisJCQkJCSpoYXZlX3ZvbGF0aWxlID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCQly ZXR1cm4gdHJ1ZTsKKwl9CisJcmV0dXJuIGZhbHNlOworfQorCiAvKgogICogYXJyYXlfZWxlbWVu dF9oYXNfZXF1YWxpdHkgYW5kIGZyaWVuZHMgYXJlIGhlbHBlciByb3V0aW5lcyB0byBjaGVjawog ICogd2hldGhlciB3ZSBzaG91bGQgYmVsaWV2ZSB0aGF0IGFycmF5X2VxIGFuZCByZWxhdGVkIGZ1 bmN0aW9ucyB3aWxsIHdvcmsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3R5cGNhY2hl LmggYi9zcmMvaW5jbHVkZS91dGlscy90eXBjYWNoZS5oCmluZGV4IDFjYjMwZjE4MThjLi5hYTFj ODZlMzVjMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvdHlwY2FjaGUuaAorKysgYi9z cmMvaW5jbHVkZS91dGlscy90eXBjYWNoZS5oCkBAIC0xODQsNiArMTg0LDcgQEAgZXh0ZXJuIHZv aWQgSW5pdERvbWFpbkNvbnN0cmFpbnRSZWYoT2lkIHR5cGVfaWQsIERvbWFpbkNvbnN0cmFpbnRS ZWYgKnJlZiwKIGV4dGVybiB2b2lkIFVwZGF0ZURvbWFpbkNvbnN0cmFpbnRSZWYoRG9tYWluQ29u c3RyYWludFJlZiAqcmVmKTsKIAogZXh0ZXJuIGJvb2wgRG9tYWluSGFzQ29uc3RyYWludHMoT2lk IHR5cGVfaWQpOworZXh0ZXJuIGJvb2wgRG9tYWluSGF2ZVZvbGF0aWxlQ29uc3RyYWludHMoT2lk IHR5cGVfaWQsIGJvb2wgKmhhdmVfdm9sYXRpbGUpOwogCiBleHRlcm4gVHVwbGVEZXNjIGxvb2t1 cF9yb3d0eXBlX3R1cGRlc2MoT2lkIHR5cGVfaWQsIGludDMyIHR5cG1vZCk7CiAKLS0gCjIuMzQu MQoK --00000000000083f965063577c272 Content-Type: text/x-patch; charset="UTF-8"; name="v5-0003-fast-default-for-domain-with-constraints.patch" Content-Disposition: attachment; filename="v5-0003-fast-default-for-domain-with-constraints.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mauqehun2 RnJvbSAwMDNlOWI2YjZlMzQyOWRlMDkxMGQwMWZmNjg0MGY0YmYwZjM2MmM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMTkgTWF5IDIwMjUgMTQ6MTQ6MjggKzA4MDAKU3ViamVjdDogW1BBVENIIHY1 IDMvM10gZmFzdCBkZWZhdWx0IGZvciBkb21haW4gd2l0aCBjb25zdHJhaW50cwpNSU1FLVZlcnNp b246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdAoKVGhpcyBpcyBwcmltYXJpbHkgZG9uZSBieSBldmFsdWF0 aW5nIENvZXJjZVRvRG9tYWluIHdpdGggc29mdCBlcnJvciBzdXBwb3J0LgoKSWYgQ29lcmNlVG9E b21haW4gaXMgZXZhbHVhdGVkIGFzIGZhbHNlIGluIEFURXhlY0FkZENvbHVtbiwgdGhlIGRlZnZh bCBub2RlJ3MKdmFsdWUgY2Fubm90IGJlIGNhc3QgdG8gdGhlIGRvbWFpbiB0eXBlLiBIb3dldmVy LCBpbiBzb21lIGNhc2VzIGxpa2Ugd2hlbiB0aGUKdGFibGUgaXMgZW1wdHksIHdlIGNhbm5vdCBl eHBsaWNpdGx5IGVycm9yIG91dCBpbiBBVEV4ZWNBZGRDb2x1bW4gKFBoYXNlIDIpLgpGb3IgZXhh bXBsZSwgaW1hZ2luZSBhZGQgYSBuZXcgZG9tYWluIGNvbHVtbiB0byBlbXB0eSB4LCBhbmQgdGhl IGNvbHVtbiBkb21haW4Kc3BlY2lmaWNhdGlvbiBpcyBgYENIRUNLKHZhbHVlID4gMTApIERFRkFV TFQgOGBgLiDCoEluIHN1Y2ggc2l0dWF0aW9ucywgdGhlIEFMVEVSClRBQkxFIEFERCBDT0xVTU4g c2hvdWxkIGJlIHN1Y2Nlc3MuCgpUaGFua3MgdG8gY29tbWl0IGFhYWY5NDQ5ZWM2YmU2MmNiMGQz MGVkMzU4OGRjMzg0ZjU2Mjc0YmZbMV0sCkV4cHJTdGF0ZS5lc2NvbnRleHQgKEVycm9yU2F2ZUNv bnRleHQpIHdhcyBhZGRlZCwgYW5kIEV4ZWNFdmFsQ29uc3RyYWludE5vdE51bGwsCkV4ZWNFdmFs Q29uc3RyYWludENoZWNrIHdlcmUgY2hhbmdlZCB0byB1c2UgZXJyc2F2ZSBpbnN0ZWFkIG9mIGhh cmQgZXJyb3IuICBOb3cKd2UgY2FuIGV2YWx1YXRlIENvZXJjZVRvRG9tYWluIGluIGEgc29mdCBl cnJvciB3YXkuCgpIb3dldmVyIHdlIGRvIHRhYmxlIHJld3JpdGUgZm9yIGRvbWFpbiB3aXRoIHZv bGF0aWxlIGNoZWNrIGNvbnN0cmFpbnRzLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQUNKdWZ4RV8raVpCUjFpNDlrX0FIaWdwcFB3TFRKaTZrbThOT3NDN0ZXdktkRW1tWGdAbWFp bC5nbWFpbC5jb20KWzFdOiBodHRwczovL2dpdC5wb3N0Z3Jlc3FsLm9yZy9jZ2l0L3Bvc3RncmVz cWwuZ2l0L2NvbW1pdC8/aWQ9YWFhZjk0NDllYzZiZTYyY2IwZDMwZWQzNTg4ZGMzODRmNTYyNzRi ZgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICB8IDQ1ICsr KysrKysrKysrLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQu b3V0IHwgNTUgKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZmFz dF9kZWZhdWx0LnNxbCAgICAgIHwgNDQgKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdl ZCwgMTI4IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKaW5kZXggNTRhZDM4MjQ3YWEuLmRiYTJlYTc3Y2FkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYwpAQCAtNzQyOSwxNSArNzQyOSw2IEBAIEFURXhlY0FkZENvbHVtbihMaXN0ICoqd3F1 ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkgKiBOVUxMIGlmIHNv LCBzbyB3aXRob3V0IGFueSBtb2RpZmljYXRpb24gb2YgdGhlIHR1cGxlIGRhdGEgd2Ugd2lsbCBn ZXQKIAkgKiB0aGUgZWZmZWN0IG9mIE5VTEwgdmFsdWVzIGluIHRoZSBuZXcgY29sdW1uLgogCSAq Ci0JICogQW4gZXhjZXB0aW9uIG9jY3VycyB3aGVuIHRoZSBuZXcgY29sdW1uIGlzIG9mIGEgZG9t YWluIHR5cGU6IHRoZSBkb21haW4KLQkgKiBtaWdodCBoYXZlIGEgbm90LW51bGwgY29uc3RyYWlu dCwgb3IgYSBjaGVjayBjb25zdHJhaW50IHRoYXQgaW5kaXJlY3RseQotCSAqIHJlamVjdHMgbnVs bHMuICBJZiB0aGVyZSBhcmUgYW55IGRvbWFpbiBjb25zdHJhaW50cyB0aGVuIHdlIGNvbnN0cnVj dAotCSAqIGFuIGV4cGxpY2l0IE5VTEwgZGVmYXVsdCB2YWx1ZSB0aGF0IHdpbGwgYmUgcGFzc2Vk IHRocm91Z2gKLQkgKiBDb2VyY2VUb0RvbWFpbiBwcm9jZXNzaW5nLiAgKFRoaXMgaXMgYSB0YWQg aW5lZmZpY2llbnQsIHNpbmNlIGl0IGNhdXNlcwotCSAqIHJld3JpdGluZyB0aGUgdGFibGUgd2hp Y2ggd2UgcmVhbGx5IHdvdWxkbid0IGhhdmUgdG8gZG87IGJ1dCB3ZSBkbyBpdAotCSAqIHRvIHBy ZXNlcnZlIHRoZSBoaXN0b3JpY2FsIGJlaGF2aW9yIHRoYXQgc3VjaCBhIGZhaWx1cmUgd2lsbCBi ZSByYWlzZWQKLQkgKiBvbmx5IGlmIHRoZSB0YWJsZSBjdXJyZW50bHkgY29udGFpbnMgc29tZSBy b3dzLikKLQkgKgogCSAqIE5vdGU6IHdlIHVzZSBidWlsZF9jb2x1bW5fZGVmYXVsdCwgYW5kIG5v dCBqdXN0IHRoZSBjb29rZWQgZGVmYXVsdAogCSAqIHJldHVybmVkIGJ5IEFkZFJlbGF0aW9uTmV3 Q29uc3RyYWludHMsIHNvIHRoYXQgdGhlIHJpZ2h0IHRoaW5nIGhhcHBlbnMKIAkgKiB3aGVuIGEg ZGF0YXR5cGUncyBkZWZhdWx0IGFwcGxpZXMuCkBAIC03NDU2LDYgKzc0NDcsNyBAQCBBVEV4ZWNB ZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiBy ZWwsCiAJewogCQlib29sCQloYXNfZG9tYWluX2NvbnN0cmFpbnRzOwogCQlib29sCQloYXNfbWlz c2luZyA9IGZhbHNlOworCQlib29sCQloYXNfdm9sYXRpbGUgPSBmYWxzZTsKIAogCQkvKgogCQkg KiBGb3IgYW4gaWRlbnRpdHkgY29sdW1uLCB3ZSBjYW4ndCB1c2UgYnVpbGRfY29sdW1uX2RlZmF1 bHQoKSwKQEAgLTc0NzMsOCArNzQ2NSwxNyBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1 ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCWVsc2UKIAkJCWRlZnZh bCA9IChFeHByICopIGJ1aWxkX2NvbHVtbl9kZWZhdWx0KHJlbCwgYXR0cmlidXRlLT5hdHRudW0p OwogCisJCWhhc19kb21haW5fY29uc3RyYWludHMgPSBEb21haW5IYXZlVm9sYXRpbGVDb25zdHJh aW50cyhhdHRyaWJ1dGUtPmF0dHR5cGlkLCAmaGFzX3ZvbGF0aWxlKTsKKwkJLyoKKwkJICogQWRk aW5nIGNvbHVtbiB3aXRoIHZvbGF0aWxlIGRvbWFpbiBjb25zdHJhaW50IHJlcXVpcmVzIHRhYmxl IHJld3JpdGUKKwkJICovCisJCWlmIChoYXNfdm9sYXRpbGUpCisJCXsKKwkJCUFzc2VydChoYXNf ZG9tYWluX2NvbnN0cmFpbnRzKTsKKwkJCXRhYi0+cmV3cml0ZSB8PSBBVF9SRVdSSVRFX0RFRkFV TFRfVkFMOworCQl9CisKIAkJLyogQnVpbGQgQ29lcmNlVG9Eb21haW4oTlVMTCkgZXhwcmVzc2lv biBpZiBuZWVkZWQgKi8KLQkJaGFzX2RvbWFpbl9jb25zdHJhaW50cyA9IERvbWFpbkhhc0NvbnN0 cmFpbnRzKGF0dHJpYnV0ZS0+YXR0dHlwaWQpOwogCQlpZiAoIWRlZnZhbCAmJiBoYXNfZG9tYWlu X2NvbnN0cmFpbnRzKQogCQl7CiAJCQlPaWQJCQliYXNlVHlwZUlkOwpAQCAtNzUxNiwxNCArNzUx NywxOCBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAq dGFiLCBSZWxhdGlvbiByZWwsCiAJCQkgKiBBdHRlbXB0IHRvIHNraXAgYSBjb21wbGV0ZSB0YWJs ZSByZXdyaXRlIGJ5IHN0b3JpbmcgdGhlCiAJCQkgKiBzcGVjaWZpZWQgREVGQVVMVCB2YWx1ZSBv dXRzaWRlIG9mIHRoZSBoZWFwLiAgVGhpcyBpcyBvbmx5CiAJCQkgKiBhbGxvd2VkIGZvciBwbGFp biByZWxhdGlvbnMgYW5kIG5vbi1nZW5lcmF0ZWQgY29sdW1ucywgYW5kIHRoZQotCQkJICogZGVm YXVsdCBleHByZXNzaW9uIGNhbid0IGJlIHZvbGF0aWxlIChzdGFibGUgaXMgT0spLiAgTm90ZSB0 aGF0Ci0JCQkgKiBjb250YWluX3ZvbGF0aWxlX2Z1bmN0aW9ucyBkZWVtcyBDb2VyY2VUb0RvbWFp biBpbW11dGFibGUsIGJ1dAotCQkJICogaGVyZSB3ZSBjb25zaWRlciB0aGF0IGNvZXJjaW9uIHRv IGEgZG9tYWluIHdpdGggY29uc3RyYWludHMgaXMKLQkJCSAqIHZvbGF0aWxlOyBlbHNlIGl0IG1p Z2h0IGZhaWwgZXZlbiB3aGVuIHRoZSB0YWJsZSBpcyBlbXB0eS4KKwkJCSAqIGRlZmF1bHQgZXhw cmVzc2lvbiBjYW4ndCBiZSB2b2xhdGlsZSAoc3RhYmxlIGlzIE9LKSwgYW5kIHRoZQorCQkJICog ZG9tYWluIGNvbnN0cmFpbnQgY2FuJ3QgYmUgdm9sYXRpbGUgKHN0YWJsZSBpcyBPSykuCisJCQkg KgorCQkJICogTm90ZSB0aGF0IGNvbnRhaW5fdm9sYXRpbGVfZnVuY3Rpb25zIGRlZW1zIENvZXJj ZVRvRG9tYWluCisJCQkgKiBpbW11dGFibGUuICBIb3dldmVyIHdlIGhhdmUgY29tcHV0ZWQgQ29l cmNlVG9Eb21haW4gaXMgdm9sYXRpbGUKKwkJCSAqIG9yIG5vdCB2aWEgRG9tYWluSGF2ZVZvbGF0 aWxlQ29uc3RyYWludHMuIFdlIHVzZSBzb2Z0IGVycm9yCisJCQkgKiBldmFsdWF0aW9uIG9mIENv ZXJjZVRvRG9tYWluLCBpZiBldmFsdWF0aW9uIGZhaWxlZCwgdGhlbiBzZXQKKwkJCSAqIHRhYmxl IHJld3JpdGUgdG8gdHJ1ZS4KIAkJCSAqLwogCQkJaWYgKHJlbC0+cmRfcmVsLT5yZWxraW5kID09 IFJFTEtJTkRfUkVMQVRJT04gJiYKIAkJCQkhY29sRGVmLT5nZW5lcmF0ZWQgJiYKLQkJCQkhaGFz X2RvbWFpbl9jb25zdHJhaW50cyAmJgorCQkJCSFoYXNfdm9sYXRpbGUgJiYKIAkJCQkhY29udGFp bl92b2xhdGlsZV9mdW5jdGlvbnMoKE5vZGUgKikgZGVmdmFsKSkKIAkJCXsKIAkJCQlFU3RhdGUJ ICAgKmVzdGF0ZTsKQEAgLTc1MzMsMTAgKzc1MzgsMTggQEAgQVRFeGVjQWRkQ29sdW1uKExpc3Qg Kip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCiAJCQkJLyog RXZhbHVhdGUgdGhlIGRlZmF1bHQgZXhwcmVzc2lvbiAqLwogCQkJCWVzdGF0ZSA9IENyZWF0ZUV4 ZWN1dG9yU3RhdGUoKTsKLQkJCQlleHByU3RhdGUgPSBFeGVjUHJlcGFyZUV4cHIoZGVmdmFsLCBl c3RhdGUpOworCQkJCWV4cHJTdGF0ZSA9IEV4ZWNQcmVwYXJlRXhwclNhZmUoZGVmdmFsLCBlc3Rh dGUpOworCiAJCQkJbWlzc2luZ3ZhbCA9IEV4ZWNFdmFsRXhwcihleHByU3RhdGUsCiAJCQkJCQkJ CQkJICBHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSksCiAJCQkJCQkJCQkJICAmbWlzc2lu Z0lzTnVsbCk7CisKKwkJCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChleHByU3RhdGUtPmVzY29u dGV4dCkpCisJCQkJeworCQkJCQltaXNzaW5nSXNOdWxsID0gdHJ1ZTsKKwkJCQkJdGFiLT5yZXdy aXRlIHw9IEFUX1JFV1JJVEVfREVGQVVMVF9WQUw7CisJCQkJfQorCiAJCQkJLyogSWYgaXQgdHVy bnMgb3V0IE5VTEwsIG5vdGhpbmcgdG8gZG87IGVsc2Ugc3RvcmUgaXQgKi8KIAkJCQlpZiAoIW1p c3NpbmdJc051bGwpCiAJCQkJewpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9mYXN0X2RlZmF1bHQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1 bHQub3V0CmluZGV4IGNjYmNkZjg0MDNmLi44NjEyMDhhMjY5YSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZmFzdF9kZWZhdWx0Lm91dApAQCAtMzE3LDExICszMTcsNjYgQEAgU0VMRUNU IGEsIGIsIGxlbmd0aChjKSA9IDMgYXMgY19vaywgZCwgZSA+PSAxMCBhcyBlX29rIEZST00gdDI7 CiAgMiB8IDMgfCB0ICAgIHwge1RoaXMsaXMsYWJjZCx0aGUscmVhbCx3b3JsZH0gfCB0CiAoMiBy b3dzKQogCistLS10ZXN0IGZhc3QgZGVmYXVsdCBvdmVyIGRvbWFpbnMgd2l0aCBjb25zdHJhaW50 cworQ1JFQVRFIERPTUFJTiBkb21haW41IEFTIGludCBjaGVjayh2YWx1ZSA+IDEwKSBkZWZhdWx0 IDg7CitDUkVBVEUgRE9NQUlOIGRvbWFpbjYgYXMgaW50IG5vdCBudWxsOworQ1JFQVRFIERPTUFJ TiBkb21haW43IGFzIGludCBjaGVjayh2YWx1ZSA+IDEwKSBERUZBVUxUIHJhbmRvbShtaW49PjEw LCBtYXg9PjEwMCk7CitDUkVBVEUgRE9NQUlOIGRvbWFpbjggYXMgaW50IGNoZWNrKCh2YWx1ZSAr IHJhbmRvbShtaW49PjExOjppbnQsIG1heD0+MTEpKSA+IDEyKTsKKy0tdGVzdHMgd2l0aCBlbXB0 eSB0YWJsZS4KK0NSRUFURSBUQUJMRSB0MyhhIGludCk7CitBTFRFUiBUQUJMRSB0MyBBREQgQ09M VU1OIGIgZG9tYWluNSBkZWZhdWx0IDE7IC0tb2ssIHRhYmxlIHJld3JpdGUKK05PVElDRTogIHJl d3JpdGluZyB0YWJsZSB0MyBmb3IgcmVhc29uIDIKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4g YyBkb21haW42IGRlZmF1bHQgMTEgKyBOVUxMOyAtLW9rLCB0YWJsZSByZXdyaXRlCitOT1RJQ0U6 ICByZXdyaXRpbmcgdGFibGUgdDMgZm9yIHJlYXNvbiAyCitBTFRFUiBUQUJMRSB0MyBBREQgQ09M VU1OIGQgZG9tYWluNyBkZWZhdWx0IDI7IC0tb2ssIHRhYmxlIHJld3JpdGUKK05PVElDRTogIHJl d3JpdGluZyB0YWJsZSB0MyBmb3IgcmVhc29uIDIKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4g ZSBkb21haW44IGRlZmF1bHQgMzsgLS1vaywgdGFibGUgcmV3cml0ZQorTk9USUNFOiAgcmV3cml0 aW5nIHRhYmxlIHQzIGZvciByZWFzb24gMgorRFJPUCBUQUJMRSB0MzsKKy0tdGVzdHMgd2l0aCBu b24tZW1wdHkgdGFibGUuCitDUkVBVEUgVEFCTEUgdDMoYSBpbnQpOworSU5TRVJUIElOVE8gdDMg VkFMVUVTKDEpLCgyKTsKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gYiBkb21haW41OyAtLXRh YmxlIHJld3JpdGUsIHRoZW4gZmFpbAorTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIHQzIGZvciBy ZWFzb24gMgorRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGRvbWFpbjUgdmlvbGF0ZXMgY2hlY2sg Y29uc3RyYWludCAiZG9tYWluNV9jaGVjayIKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gYiBk b21haW42OyAtLXRhYmxlIHJld3JpdGUsIHRoZW4gZmFpbAorTk9USUNFOiAgcmV3cml0aW5nIHRh YmxlIHQzIGZvciByZWFzb24gMgorRVJST1I6ICBkb21haW4gZG9tYWluNiBkb2VzIG5vdCBhbGxv dyBudWxsIHZhbHVlcworQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBiIGRvbWFpbjUgZGVmYXVs dCAxMjsgLS1ubyB0YWJsZSByZXdyaXRlCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGMgZG9t YWluNiBkZWZhdWx0IDEzOyAtLW5vIHRhYmxlIHJld3JpdGUKKy0tbm8gdGFibGUgcmV3cml0ZS4g ZXhwbGljaXQgY29sdW1uIGRlZmF1bHQgZXhwcmVzc2lvbiBvdmVycmlkZSBkb21haW4gZGVmYXVs dAorLS1leHByZXNzaW9uCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGQgZG9tYWluNyBkZWZh dWx0IDE1OworU0VMRUNUIGF0dG51bSwgYXR0bmFtZSwgYXR0aGFzbWlzc2luZywgYXR0aGFzZGVm LCBhdHRtaXNzaW5ndmFsCitGUk9NICBwZ19hdHRyaWJ1dGUKK1dIRVJFIGF0dG51bSA+IDAgQU5E IGF0dHJlbGlkID0gJ3QzJzo6cmVnY2xhc3MgQU5EIGF0dGlzZHJvcHBlZCBpcyBmYWxzZQorQU5E ICAgYXR0aGFzbWlzc2luZworT1JERVIgQlkgYXR0bnVtOworIGF0dG51bSB8IGF0dG5hbWUgfCBh dHRoYXNtaXNzaW5nIHwgYXR0aGFzZGVmIHwgYXR0bWlzc2luZ3ZhbCAKKy0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgICAgICAy IHwgYiAgICAgICB8IHQgICAgICAgICAgICAgfCB0ICAgICAgICAgfCB7MTJ9CisgICAgICAzIHwg YyAgICAgICB8IHQgICAgICAgICAgICAgfCB0ICAgICAgICAgfCB7MTN9CisgICAgICA0IHwgZCAg ICAgICB8IHQgICAgICAgICAgICAgfCB0ICAgICAgICAgfCB7MTV9CisoMyByb3dzKQorCistLXRh YmxlIHJld3JpdGUuIHdlIGFyZSBhcHBseWluZyBkb21haW4gdm9sYXRpbGUgZGVmYXVsdCBleHBy ZXNpb24KK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gZSBkb21haW43OworTk9USUNFOiAgcmV3 cml0aW5nIHRhYmxlIHQzIGZvciByZWFzb24gMgorLS10YWJsZSByZXdyaXRlIGZvciB2b2xhdGls ZSBkb21haW4gY29uc3RyYWludHMuCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGYgZG9tYWlu OCBkZWZhdWx0IDE0OyAtLXRhYmxlIHJld3JpdGUKK05PVElDRTogIHJld3JpdGluZyB0YWJsZSB0 MyBmb3IgcmVhc29uIDIKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gZjEgZG9tYWluODsgLS10 YWJsZSByZXdyaXRlCitOT1RJQ0U6ICByZXdyaXRpbmcgdGFibGUgdDMgZm9yIHJlYXNvbiAyCiBE Uk9QIFRBQkxFIHQyOworRFJPUCBUQUJMRSB0MzsKIERST1AgRE9NQUlOIGRvbWFpbjE7CiBEUk9Q IERPTUFJTiBkb21haW4yOwogRFJPUCBET01BSU4gZG9tYWluMzsKIERST1AgRE9NQUlOIGRvbWFp bjQ7CitEUk9QIERPTUFJTiBkb21haW41OworRFJPUCBET01BSU4gZG9tYWluNjsKK0RST1AgRE9N QUlOIGRvbWFpbjc7CitEUk9QIERPTUFJTiBkb21haW44OwogRFJPUCBGVU5DVElPTiBmb28oSU5U KTsKIC0tIEZhbGwgYmFjayB0byBmdWxsIHJld3JpdGUgZm9yIHZvbGF0aWxlIGV4cHJlc3Npb25z CiBDUkVBVEUgVEFCTEUgVChwayBJTlQgTk9UIE5VTEwgUFJJTUFSWSBLRVkpOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZmFzdF9kZWZhdWx0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwKaW5kZXggMDY4ZGQwYmM4YWEuLmE5OGQ4NmE2MjA0IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mYXN0X2RlZmF1bHQuc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwKQEAgLTI4NywxMSArMjg3LDU1IEBA IE9SREVSIEJZIGF0dG51bTsKIAogU0VMRUNUIGEsIGIsIGxlbmd0aChjKSA9IDMgYXMgY19vaywg ZCwgZSA+PSAxMCBhcyBlX29rIEZST00gdDI7CiAKKy0tLXRlc3QgZmFzdCBkZWZhdWx0IG92ZXIg ZG9tYWlucyB3aXRoIGNvbnN0cmFpbnRzCitDUkVBVEUgRE9NQUlOIGRvbWFpbjUgQVMgaW50IGNo ZWNrKHZhbHVlID4gMTApIGRlZmF1bHQgODsKK0NSRUFURSBET01BSU4gZG9tYWluNiBhcyBpbnQg bm90IG51bGw7CitDUkVBVEUgRE9NQUlOIGRvbWFpbjcgYXMgaW50IGNoZWNrKHZhbHVlID4gMTAp IERFRkFVTFQgcmFuZG9tKG1pbj0+MTAsIG1heD0+MTAwKTsKK0NSRUFURSBET01BSU4gZG9tYWlu OCBhcyBpbnQgY2hlY2soKHZhbHVlICsgcmFuZG9tKG1pbj0+MTE6OmludCwgbWF4PT4xMSkpID4g MTIpOworCistLXRlc3RzIHdpdGggZW1wdHkgdGFibGUuCitDUkVBVEUgVEFCTEUgdDMoYSBpbnQp OworQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBiIGRvbWFpbjUgZGVmYXVsdCAxOyAtLW9rLCB0 YWJsZSByZXdyaXRlCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGMgZG9tYWluNiBkZWZhdWx0 IDExICsgTlVMTDsgLS1vaywgdGFibGUgcmV3cml0ZQorQUxURVIgVEFCTEUgdDMgQUREIENPTFVN TiBkIGRvbWFpbjcgZGVmYXVsdCAyOyAtLW9rLCB0YWJsZSByZXdyaXRlCitBTFRFUiBUQUJMRSB0 MyBBREQgQ09MVU1OIGUgZG9tYWluOCBkZWZhdWx0IDM7IC0tb2ssIHRhYmxlIHJld3JpdGUKK0RS T1AgVEFCTEUgdDM7CisKKy0tdGVzdHMgd2l0aCBub24tZW1wdHkgdGFibGUuCitDUkVBVEUgVEFC TEUgdDMoYSBpbnQpOworSU5TRVJUIElOVE8gdDMgVkFMVUVTKDEpLCgyKTsKKworQUxURVIgVEFC TEUgdDMgQUREIENPTFVNTiBiIGRvbWFpbjU7IC0tdGFibGUgcmV3cml0ZSwgdGhlbiBmYWlsCitB TFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGIgZG9tYWluNjsgLS10YWJsZSByZXdyaXRlLCB0aGVu IGZhaWwKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gYiBkb21haW41IGRlZmF1bHQgMTI7IC0t bm8gdGFibGUgcmV3cml0ZQorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBjIGRvbWFpbjYgZGVm YXVsdCAxMzsgLS1ubyB0YWJsZSByZXdyaXRlCistLW5vIHRhYmxlIHJld3JpdGUuIGV4cGxpY2l0 IGNvbHVtbiBkZWZhdWx0IGV4cHJlc3Npb24gb3ZlcnJpZGUgZG9tYWluIGRlZmF1bHQKKy0tZXhw cmVzc2lvbgorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBkIGRvbWFpbjcgZGVmYXVsdCAxNTsK KworU0VMRUNUIGF0dG51bSwgYXR0bmFtZSwgYXR0aGFzbWlzc2luZywgYXR0aGFzZGVmLCBhdHRt aXNzaW5ndmFsCitGUk9NICBwZ19hdHRyaWJ1dGUKK1dIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJl bGlkID0gJ3QzJzo6cmVnY2xhc3MgQU5EIGF0dGlzZHJvcHBlZCBpcyBmYWxzZQorQU5EICAgYXR0 aGFzbWlzc2luZworT1JERVIgQlkgYXR0bnVtOworCistLXRhYmxlIHJld3JpdGUuIHdlIGFyZSBh cHBseWluZyBkb21haW4gdm9sYXRpbGUgZGVmYXVsdCBleHByZXNpb24KK0FMVEVSIFRBQkxFIHQz IEFERCBDT0xVTU4gZSBkb21haW43OworCistLXRhYmxlIHJld3JpdGUgZm9yIHZvbGF0aWxlIGRv bWFpbiBjb25zdHJhaW50cy4KK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gZiBkb21haW44IGRl ZmF1bHQgMTQ7IC0tdGFibGUgcmV3cml0ZQorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBmMSBk b21haW44OyAtLXRhYmxlIHJld3JpdGUKKwogRFJPUCBUQUJMRSB0MjsKK0RST1AgVEFCTEUgdDM7 CiBEUk9QIERPTUFJTiBkb21haW4xOwogRFJPUCBET01BSU4gZG9tYWluMjsKIERST1AgRE9NQUlO IGRvbWFpbjM7CiBEUk9QIERPTUFJTiBkb21haW40OworRFJPUCBET01BSU4gZG9tYWluNTsKK0RS T1AgRE9NQUlOIGRvbWFpbjY7CitEUk9QIERPTUFJTiBkb21haW43OworRFJPUCBET01BSU4gZG9t YWluODsKIERST1AgRlVOQ1RJT04gZm9vKElOVCk7CiAKIC0tIEZhbGwgYmFjayB0byBmdWxsIHJl d3JpdGUgZm9yIHZvbGF0aWxlIGV4cHJlc3Npb25zCi0tIAoyLjM0LjEKCg== --00000000000083f965063577c272 Content-Type: text/x-patch; charset="US-ASCII"; name="v5-0001-soft-error-variant-of-ExecPrepareExpr-ExecInitExp.patch" Content-Disposition: attachment; filename="v5-0001-soft-error-variant-of-ExecPrepareExpr-ExecInitExp.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mauqehul1 RnJvbSA0MmZkNTA1MDQ1NTZkMjUyOGY0NmExOWQ3YzkwZTZiMjMwOTg2ODM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTWFyIDIwMjUgMTY6MDc6NDYgKzA4MDAKU3ViamVjdDogW1BBVENIIHY1 IDEvM10gc29mdCBlcnJvciB2YXJpYW50IG9mIEV4ZWNQcmVwYXJlRXhwciwgRXhlY0luaXRFeHBy CgpFeGVjSW5pdEV4cHJTYWZlOiBzb2Z0IGVycm9yIG9mIEV4ZWNJbml0RXhwci4KRXhlY1ByZXBh cmVFeHByU2FmZTogc29mdCBlcnJvciBvZiBFeGVjUHJlcGFyZUV4cHIuCkV4ZWNQcmVwYXJlRXhw clNhZmUgaW5pdGlhbGl6ZSBmb3IgZXhwcmVzc2lvbiBleGVjdXRpb24gd2l0aCBzb2Z0IGVycm9y IHN1cHBvcnQuCm5vdCBhbGwgZXhwcmVzc2lvbiBub2RlIHN1cHBvcnQgaXQuIExpa2Ugbm9kZSBD b2VyY2VUb0RvbWFpbiBzdXBwb3J0IGl0LgoKWFhYIG1vcmUgY29tbWVudHMuCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhFXytpWkJSMWk0OWtfQUhpZ3BwUHdMVEppNmtt OE5Pc0M3Rld2S2RFbW1YZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHByLmMgfCA2MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggfCAgMiArKwogMiBmaWxlcyBjaGFuZ2VkLCA2NSBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIu YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggZjE1Njk4NzliNTIuLjkx ODJiYTQ0NmEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTE3MCw2ICsxNzAsNDcgQEAg RXhlY0luaXRFeHByKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KQogCXJldHVybiBzdGF0 ZTsKIH0KIAorLyoKKyAqIEV4ZWNJbml0RXhwclNhZmU6IHNvZnQgZXJyb3IgdmFyaWFudCBvZiBF eGVjSW5pdEV4cHIuCisgKgorICogdXNlIGl0IG9ubHkgZm9yIGV4cHJlc3Npb24gbm9kZXMgc3Vw cG9ydCBzb2Z0IGVycm9ycywgbm90IGFsbCBleHByZXNzaW9uCisgKiBub2RlcyBzdXBwb3J0IGl0 LgorKi8KK0V4cHJTdGF0ZSAqCitFeGVjSW5pdEV4cHJTYWZlKEV4cHIgKm5vZGUsIFBsYW5TdGF0 ZSAqcGFyZW50KQoreworCUV4cHJTdGF0ZSAgKnN0YXRlOworCUV4cHJFdmFsU3RlcCBzY3JhdGNo ID0gezB9OworCisJLyogU3BlY2lhbCBjYXNlOiBOVUxMIGV4cHJlc3Npb24gcHJvZHVjZXMgYSBO VUxMIEV4cHJTdGF0ZSBwb2ludGVyICovCisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIE5V TEw7CisKKwkvKiBJbml0aWFsaXplIEV4cHJTdGF0ZSB3aXRoIGVtcHR5IHN0ZXAgbGlzdCAqLwor CXN0YXRlID0gbWFrZU5vZGUoRXhwclN0YXRlKTsKKwlzdGF0ZS0+ZXhwciA9IG5vZGU7CisJc3Rh dGUtPnBhcmVudCA9IHBhcmVudDsKKwlzdGF0ZS0+ZXh0X3BhcmFtcyA9IE5VTEw7CisJc3RhdGUt PmVzY29udGV4dCA9IG1ha2VOb2RlKEVycm9yU2F2ZUNvbnRleHQpOworCXN0YXRlLT5lc2NvbnRl eHQtPnR5cGUgPSBUX0Vycm9yU2F2ZUNvbnRleHQ7CisJc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jf b2NjdXJyZWQgPSBmYWxzZTsKKwlzdGF0ZS0+ZXNjb250ZXh0LT5kZXRhaWxzX3dhbnRlZCA9IHRy dWU7CisKKwkvKiBJbnNlcnQgc2V0dXAgc3RlcHMgYXMgbmVlZGVkICovCisJRXhlY0NyZWF0ZUV4 cHJTZXR1cFN0ZXBzKHN0YXRlLCAoTm9kZSAqKSBub2RlKTsKKworCS8qIENvbXBpbGUgdGhlIGV4 cHJlc3Npb24gcHJvcGVyICovCisJRXhlY0luaXRFeHByUmVjKG5vZGUsIHN0YXRlLCAmc3RhdGUt PnJlc3ZhbHVlLCAmc3RhdGUtPnJlc251bGwpOworCisJLyogRmluYWxseSwgYXBwZW5kIGEgRE9O RSBzdGVwICovCisJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0RPTkVfUkVUVVJOOworCUV4cHJFdmFs UHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKKworCUV4ZWNSZWFkeUV4cHIoc3RhdGUpOworCisJ cmV0dXJuIHN0YXRlOworfQorCiAvKgogICogRXhlY0luaXRFeHByV2l0aFBhcmFtczogcHJlcGFy ZSBhIHN0YW5kYWxvbmUgZXhwcmVzc2lvbiB0cmVlIGZvciBleGVjdXRpb24KICAqCkBAIC03Nzgs NiArODE5LDI4IEBAIEV4ZWNQcmVwYXJlRXhwcihFeHByICpub2RlLCBFU3RhdGUgKmVzdGF0ZSkK IAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogRXhlY1ByZXBhcmVFeHByU2FmZTogc29mdCBl cnJvciB2YXJpYW50IG9mIEV4ZWNQcmVwYXJlRXhwci4KKyAqCisgKiB1c2UgaXQgd2hlbiBleHBy ZXNzaW9uIG5vZGUgKnN1cHBvcnQqIHNvZnQgZXJyb3IgZXhwcmVzc2lvbiBleGVjdXRpb24uCisg Ki8KK0V4cHJTdGF0ZSAqCitFeGVjUHJlcGFyZUV4cHJTYWZlKEV4cHIgKm5vZGUsIEVTdGF0ZSAq ZXN0YXRlKQoreworCUV4cHJTdGF0ZSAgKnJlc3VsdDsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRl eHQ7CisKKwlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVl cnlfY3h0KTsKKworCW5vZGUgPSBleHByZXNzaW9uX3BsYW5uZXIobm9kZSk7CisKKwlyZXN1bHQg PSBFeGVjSW5pdEV4cHJTYWZlKG5vZGUsIE5VTEwpOworCisJTWVtb3J5Q29udGV4dFN3aXRjaFRv KG9sZGNvbnRleHQpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIEV4ZWNQcmVwYXJl UXVhbCAtLS0gaW5pdGlhbGl6ZSBmb3IgcXVhbCBleGVjdXRpb24gb3V0c2lkZSBhIG5vcm1hbAog ICogUGxhbiB0cmVlIGNvbnRleHQuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9l eGVjdXRvci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAppbmRleCBhZTk5NDA3 ZGI4OS4uYTI2MTYwMDQyZWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1 dG9yLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaApAQCAtMzQ2LDYgKzM0 Niw3IEBAIEV4ZWNQcm9jTm9kZShQbGFuU3RhdGUgKm5vZGUpCiAgKiBwcm90b3R5cGVzIGZyb20g ZnVuY3Rpb25zIGluIGV4ZWNFeHByLmMKICAqLwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRF eHByKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KTsKK2V4dGVybiBFeHByU3RhdGUgKkV4 ZWNJbml0RXhwclNhZmUoRXhwciAqbm9kZSwgUGxhblN0YXRlICpwYXJlbnQpOwogZXh0ZXJuIEV4 cHJTdGF0ZSAqRXhlY0luaXRFeHByV2l0aFBhcmFtcyhFeHByICpub2RlLCBQYXJhbUxpc3RJbmZv IGV4dF9wYXJhbXMpOwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRRdWFsKExpc3QgKnF1YWws IFBsYW5TdGF0ZSAqcGFyZW50KTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0Q2hlY2soTGlz dCAqcXVhbCwgUGxhblN0YXRlICpwYXJlbnQpOwpAQCAtMzk0LDYgKzM5NSw3IEBAIGV4dGVybiBQ cm9qZWN0aW9uSW5mbyAqRXhlY0J1aWxkVXBkYXRlUHJvamVjdGlvbihMaXN0ICp0YXJnZXRMaXN0 LAogCQkJCQkJCQkJCQkJIFR1cGxlVGFibGVTbG90ICpzbG90LAogCQkJCQkJCQkJCQkJIFBsYW5T dGF0ZSAqcGFyZW50KTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNQcmVwYXJlRXhwcihFeHByICpu b2RlLCBFU3RhdGUgKmVzdGF0ZSk7CitleHRlcm4gRXhwclN0YXRlICpFeGVjUHJlcGFyZUV4cHJT YWZlKEV4cHIgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlKTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNQ cmVwYXJlUXVhbChMaXN0ICpxdWFsLCBFU3RhdGUgKmVzdGF0ZSk7CiBleHRlcm4gRXhwclN0YXRl ICpFeGVjUHJlcGFyZUNoZWNrKExpc3QgKnF1YWwsIEVTdGF0ZSAqZXN0YXRlKTsKIGV4dGVybiBM aXN0ICpFeGVjUHJlcGFyZUV4cHJMaXN0KExpc3QgKm5vZGVzLCBFU3RhdGUgKmVzdGF0ZSk7Ci0t IAoyLjM0LjEKCg== --00000000000083f965063577c272--