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 1tG8wj-001AeD-ON for pgsql-hackers@arkaria.postgresql.org; Wed, 27 Nov 2024 03:42:33 +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 1tG8wi-00BZrr-GL for pgsql-hackers@arkaria.postgresql.org; Wed, 27 Nov 2024 03:42:32 +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 1tG8wi-00BZrj-4i for pgsql-hackers@lists.postgresql.org; Wed, 27 Nov 2024 03:42:32 +0000 Received: from mail-vs1-xe36.google.com ([2607:f8b0:4864:20::e36]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tG8wb-004FyT-B2 for pgsql-hackers@lists.postgresql.org; Wed, 27 Nov 2024 03:42:31 +0000 Received: by mail-vs1-xe36.google.com with SMTP id ada2fe7eead31-4ad4864da5aso1781027137.3 for ; Tue, 26 Nov 2024 19:42:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732678943; x=1733283743; 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=0cPOWVH4zsVZeemdsDec1rzXY9/vUnhsy5PPSjWNyeY=; b=I29ceZKf9NWPNOUaG+JNpDKhyvhkeZD8QZaUBrpvjwCLM53DMN61KPpIig4CLAstU+ TmXlwoD3TaFW8bZrK64adsftgS2gKTZqgZhW+vhgcdtw02/XN3/cpGph4ce7QKowDXFU v9/yG1Lr7+njntyN+Yw8QtvPr9Jop7Ey26kw5fG66e33ihekb4N0Op5AMHWne861r1kV JmVfSx5ZDmb4e66dv2nWgQJF+qjUWp5cX3mpzraC/miTRSn6F/WIxbUiot79ZDKY3EJ3 ioTIeOi52mD4zuCVDPdJ7Na+LgmtNfEzDKzj7HZa6Bb4MtpX2m2Cmgbu/nw2i07r3K/L TSxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732678943; x=1733283743; 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=0cPOWVH4zsVZeemdsDec1rzXY9/vUnhsy5PPSjWNyeY=; b=hKlks6Q81tJRmODbtpUOBvpsuqKzXZj5LWtsqINbqHiUxVKpxsyxj57lM7Ez7SK3wY bKVul8B0ejgoXLcAld0He1UaRmMiRerc54ByuzonqWDpaNJOrsd7nQ6JKBcafzlhUfcr 5/9t0SbnJxYENSc6epVc2mipRXcA2FdxL61nuJiJN74JSit/LjpXKAdUbLO0v0mPsTgP owzKm7UI9hxgk/vkoMXGcZmt+aVkcWYHtdb9xZu3iNFzTr3CWg8JX4oe1XSOAk1dbg5S FkbJavIYjbn4tYO09lO3/WPNfFTjt7mtLECc/Xvu9vZjnOxYTkpoYA8tL/Kga7L+P+7y /yIg== X-Gm-Message-State: AOJu0Yydy8rKsvthGqqd/m+NTmFUPrPO0umfOqpyONB2D+AsVeywYxcQ sdsjxgipIRYHtDpu7652LFtr+r1zkqFxHH3IVZ5vDFJ0uicvYx5GZo0VoG3+TG0iVC/wqngoNSz BrZnRyT0IsBFXkZOKanpm2pDCT70= X-Gm-Gg: ASbGncsDgFrUpkxHMUuSYSGkC0kUVISxUWYj7QYvboKBpuPsUQ0eBoyPde/8K7Ty/Ud PeuMYgJXn+esT6KQXy14IUKYwAYRN5/Q4 X-Google-Smtp-Source: AGHT+IH49xpcBTHFgiQ9NWYcgEe2zbxSQ3BgPWQTCuwrvub9Z8qjKCq+wzzVykkn3wSZVNJhCxjJyrx5aogUii/Jo7k= X-Received: by 2002:a05:6102:b16:b0:4af:2d61:5a7c with SMTP id ada2fe7eead31-4af4496e126mr2591827137.14.1732678943355; Tue, 26 Nov 2024 19:42:23 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: jian he Date: Wed, 27 Nov 2024 11:42:12 +0800 Message-ID: Subject: Re: CREATE SCHEMA ... CREATE DOMAIN support To: Kirill Reshke Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000eddbfb0627dcc0fa" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000eddbfb0627dcc0fa Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Nov 23, 2024 at 1:19=E2=80=AFPM jian he wrote: > > I didn't add a doc entry. I will do it later. hi attached patch with thorough tests and documentation. one issue i still have is: CREATE SCHEMA regress_schema_2 AUTHORIZATION CURRENT_ROLE create domain ss1 as ss create domain ss as text; ERROR: type "ss" does not exist the error message seems not that OK, if we can point out the error position, that would be great. like what we did with create schema create table: CREATE SCHEMA regress_schema_2 AUTHORIZATION CURRENT_ROLE create table t(a int, b x); ERROR: type "x" does not exist LINE 2: create table t(a int, b x); ^ --000000000000eddbfb0627dcc0fa Content-Type: text/x-patch; charset="US-ASCII"; name="v3-0001-support-CREATE-SCHEMA-.-CREATE-DOMAIN.patch" Content-Disposition: attachment; filename="v3-0001-support-CREATE-SCHEMA-.-CREATE-DOMAIN.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3zc93yr0 RnJvbSBkOTVlNzBiZGFhOGIzYjQ0ZDcxNTA3ZDY1NmUzZDdlMWEzZGYyNjQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMjcgTm92IDIwMjQgMTE6Mjc6NDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYz IDEvMV0gc3VwcG9ydCBDUkVBVEUgU0NIRU1BIC4uLiBDUkVBVEUgRE9NQUlOCgpub3cgeW91IGNh bjoKICAgIENSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMyBBVVRIT1JJWkFUSU9OIENVUlJF TlRfUk9MRQogICAgY3JlYXRlIHZpZXcgdGVzdCBhcyBzZWxlY3QgJ2hlbGxvJzo6c3MgYXMgdGVz dAogICAgQ1JFQVRFIHRhYmxlIHQoYSBzcykKICAgIGNyZWF0ZSBkb21haW4gc3MgYXMgdGV4dCBu b3QgbnVsbDsKCnRoZSBkb21haW4gd2lsbCBiZSBjcmVhdGVkIHdpdGhpbiB0aGUgdG8gYmUgY3Jl YXRlZCBzY2hlbWEuCml0J3Mgbm90IGFsbG93ZWQgdG8gbGV0IGRvbWFpbiBjcmVhdGUgd2l0aGlu IGEgZGlmZmVyZW50IHNjaGVtYS4KCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FM ZFNTUGg0alVTRHNXdTNLNThoak82MHduVFJSMER1TzRDS1Jjd2E4RVZ1T1NmWHhnJTQwbWFpbC5n bWFpbC5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCAgICAgICAg IHwgIDIgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgfCAg MSArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgIHwgMjYgKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3NjaGVtYS5vdXQgfCA1 MSArKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9zY2hl bWEuc3FsICAgICAgfCAzMyArKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDExMiBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfc2NoZW1hLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbApp bmRleCBlZDY5Mjk4Y2NjLi4wNmY2MzE0YTViIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9zY2hlbWEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEu c2dtbApAQCAtMTAwLDcgKzEwMCw3IEBAIENSRUFURSBTQ0hFTUEgSUYgTk9UIEVYSVNUUyBBVVRI T1JJWkFUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwCiAgICAgICA8 bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIEFuIFNRTCBzdGF0ZW1lbnQgZGVmaW5p bmcgYW4gb2JqZWN0IHRvIGJlIGNyZWF0ZWQgd2l0aGluIHRoZQotICAgICAgICBzY2hlbWEuIEN1 cnJlbnRseSwgb25seSA8Y29tbWFuZD5DUkVBVEUKKyAgICAgICAgc2NoZW1hLiBDdXJyZW50bHks IG9ubHkgPGNvbW1hbmQ+Q1JFQVRFIERPTUFJTjwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURQog ICAgICAgICBUQUJMRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURSBWSUVXPC9jb21tYW5kPiwg PGNvbW1hbmQ+Q1JFQVRFCiAgICAgICAgIElOREVYPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRF IFNFUVVFTkNFPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCiAgICAgICAgIFRSSUdHRVI8L2Nv bW1hbmQ+IGFuZCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNsYXVz ZXMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CmluZGV4IDY3ZWI5NjM5NmEuLmFkOGQ5MjcwYWMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpA QCAtMTU4NCw2ICsxNTg0LDcgQEAgc2NoZW1hX3N0bXQ6CiAJCQl8IENyZWF0ZVRyaWdTdG10CiAJ CQl8IEdyYW50U3RtdAogCQkJfCBWaWV3U3RtdAorCQkJfCBDcmVhdGVEb21haW5TdG10CiAJCTsK IAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCAwZjMyNGVlNGUzLi5lNWY1Y2Qy MmFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTEwNSw2ICsxMDUsNyBAQCB0 eXBlZGVmIHN0cnVjdAogCUxpc3QJICAgKmluZGV4ZXM7CQkvKiBDUkVBVEUgSU5ERVggaXRlbXMg Ki8KIAlMaXN0CSAgICp0cmlnZ2VyczsJCS8qIENSRUFURSBUUklHR0VSIGl0ZW1zICovCiAJTGlz dAkgICAqZ3JhbnRzOwkJCS8qIEdSQU5UIGl0ZW1zICovCisJTGlzdAkgICAqZG9tYWluczsJCS8q IERPTUFJTiBpdGVtcyAqLwogfSBDcmVhdGVTY2hlbWFTdG10Q29udGV4dDsKIAogCkBAIC00MDM5 LDYgKzQwNDAsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2No ZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAljeHQuaW5kZXhlcyA9IE5JTDsKIAlj eHQudHJpZ2dlcnMgPSBOSUw7CiAJY3h0LmdyYW50cyA9IE5JTDsKKwljeHQuZG9tYWlucyA9IE5J TDsKIAogCS8qCiAJICogUnVuIHRocm91Z2ggZWFjaCBzY2hlbWEgZWxlbWVudCBpbiB0aGUgc2No ZW1hIGVsZW1lbnQgbGlzdC4gU2VwYXJhdGUKQEAgLTQxMDcsNiArNDEwOSwyOSBAQCB0cmFuc2Zv cm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAq c2NoZW1hTmFtZSkKIAkJCQljeHQuZ3JhbnRzID0gbGFwcGVuZChjeHQuZ3JhbnRzLCBlbGVtZW50 KTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBUX0NyZWF0ZURvbWFpblN0bXQ6CisJCQkJeworCQkJ CQlDcmVhdGVEb21haW5TdG10ICplbHAgPSAoQ3JlYXRlRG9tYWluU3RtdCAqKSBlbGVtZW50Owor CQkJCQljaGFyICpkb21haW5fc2NoZW1hID0gTlVMTDsKKworCQkJCQkvKiBET01BSU4ncyBzY2hl bWEgbXVzdCB0aGUgc2FtZSBhcyB0aGUgdG8gYmUgY3JlYXRlZCBzY2hlbWEKKwkJCQkJICogaWYg bGVuZ3RoIG9mIGRvbWFpbm5hbWUgPiAzIHdpbGwgZmFpbCBhdAorCQkJCQkgKiBEZWNvbnN0cnVj dFF1YWxpZmllZE5hbWUsCisJCQkJCSovCisJCQkJCWlmIChsaXN0X2xlbmd0aChlbHAtPmRvbWFp bm5hbWUpID09IDIpCisJCQkJCXsKKwkJCQkJCWRvbWFpbl9zY2hlbWEgPSBzdHJWYWwobGlzdF9u dGgoZWxwLT5kb21haW5uYW1lLCAwKSk7CisJCQkJCQlzZXRTY2hlbWFOYW1lKGN4dC5zY2hlbWFu YW1lLCAmZG9tYWluX3NjaGVtYSk7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAobGlzdF9sZW5ndGgo ZWxwLT5kb21haW5uYW1lKSA9PSAzKQorCQkJCQl7CisJCQkJCQlkb21haW5fc2NoZW1hID0gc3Ry VmFsKGxpc3RfbnRoKGVscC0+ZG9tYWlubmFtZSwgMSkpOworCQkJCQkJc2V0U2NoZW1hTmFtZShj eHQuc2NoZW1hbmFtZSwgJmRvbWFpbl9zY2hlbWEpOworCQkJCQl9CisJCQkJCWN4dC5kb21haW5z ID0gbGFwcGVuZChjeHQuZG9tYWlucywgZWxlbWVudCk7CisJCQkJfQorCQkJCWJyZWFrOworCiAJ CQlkZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIs CiAJCQkJCSAoaW50KSBub2RlVGFnKGVsZW1lbnQpKTsKQEAgLTQxMTQsNiArNDEzOSw3IEBAIHRy YW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBj aGFyICpzY2hlbWFOYW1lKQogCX0KIAogCXJlc3VsdCA9IE5JTDsKKwlyZXN1bHQgPSBsaXN0X2Nv bmNhdChyZXN1bHQsIGN4dC5kb21haW5zKTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQs IGN4dC5zZXF1ZW5jZXMpOwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LnRhYmxl cyk7CiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudmlld3MpOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfc2NoZW1hLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3NjaGVtYS5vdXQKaW5kZXggOTMzMDJhMDdlZi4uZDJi OTc5MTFjYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfc2No ZW1hLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9zY2hlbWEub3V0 CkBAIC01OCw2ICs1OCw1NyBAQCBDUkVBVEUgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzEgQVVUSE9S SVpBVElPTiBDVVJSRU5UX1JPTEUKICAgRVhFQ1VURSBGVU5DVElPTiBzY2hlbWFfdHJpZy5ub19m dW5jKCk7CiBFUlJPUjogIENSRUFURSBzcGVjaWZpZXMgYSBzY2hlbWEgKHNjaGVtYV9ub3RfZXhp c3RpbmcpIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAocmVncmVzc19zY2hl bWFfMSkKIFJFU0VUIFJPTEU7CistLSBDYXNlcyB3aGVyZSB0aGUgc2NoZW1hIGNyZWF0aW9uIHdp dGggZG9tYWluLgorLS1mYWlsLiBjYW5ub3QgY3JlYXRlIGRvbWFpbiB0byBvdGhlciBzY2hlbWEK K0NSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMiBBVVRIT1JJWkFUSU9OIENVUlJFTlRfUk9M RQorICBjcmVhdGUgdGFibGUgdChhIHNzKQorICBjcmVhdGUgZG9tYWluIHB1YmxpYy5zcyBhcyB0 ZXh0IG5vdCBudWxsIGRlZmF1bHQgJ2hlbGxvJyBjb25zdHJhaW50IG5uIGNoZWNrICh2YWx1ZSA8 PiAnaGVsbG8nKTsKK0VSUk9SOiAgQ1JFQVRFIHNwZWNpZmllcyBhIHNjaGVtYSAocHVibGljKSBk aWZmZXJlbnQgZnJvbSB0aGUgb25lIGJlaW5nIGNyZWF0ZWQgKHJlZ3Jlc3Nfc2NoZW1hXzIpCist LWZhaWwuIGNhbm5vdCBjcmVhdGUgZG9tYWluIHRvIG90aGVyIHNjaGVtYQorQ1JFQVRFIFNDSEVN QSByZWdyZXNzX3NjaGVtYV8yIEFVVEhPUklaQVRJT04gQ1VSUkVOVF9ST0xFCisgIGNyZWF0ZSB0 YWJsZSB0KGEgc3MpCisgIGNyZWF0ZSBkb21haW4gcG9zdGdyZXMucHVibGljLnNzIGFzIHRleHQg bm90IG51bGwgZGVmYXVsdCAnaGVsbG8nIGNvbnN0cmFpbnQgbm4gY2hlY2sgKHZhbHVlIDw+ICdo ZWxsbycpOworRVJST1I6ICBDUkVBVEUgc3BlY2lmaWVzIGEgc2NoZW1hIChwdWJsaWMpIGRpZmZl cmVudCBmcm9tIHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAocmVncmVzc19zY2hlbWFfMikKKy0tZmFp bC4gZm9yd2FyZCByZWZlcmVuY2VzLCBuZWVkIHJlb3JkZXIuCitDUkVBVEUgU0NIRU1BIHJlZ3Jl c3Nfc2NoZW1hXzIgQVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKKyAgY3JlYXRlIGRvbWFpbiBz czEgYXMgc3MKKyAgY3JlYXRlIGRvbWFpbiBzcyBhcyB0ZXh0OworRVJST1I6ICB0eXBlICJzcyIg ZG9lcyBub3QgZXhpc3QKKy0tb2ssIHF1YWxpZmllZCBzY2hlbWEgbmFtZSBmb3IgZG9tYWluIHNo b3VsZCBiZSBzYW1lIGFzIHRoZSBjcmVhdGVkIHNjaGVtYS4KK0NSRUFURSBTQ0hFTUEgcmVncmVz c19zY2hlbWFfMiBBVVRIT1JJWkFUSU9OIENVUlJFTlRfUk9MRQorICBjcmVhdGUgdGFibGUgdChh IHJlZ3Jlc3Nfc2NoZW1hXzIuc3MpCisgIGNyZWF0ZSBkb21haW4gcmVncmVzc19zY2hlbWFfMi5z cyBhcyB0ZXh0IG5vdCBudWxsOworXGREIHJlZ3Jlc3Nfc2NoZW1hXzIuKgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIGRvbWFpbnMKKyAgICAgIFNjaGVtYSAgICAgIHwgTmFt ZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBDaGVjayAKKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0KKyByZWdyZXNzX3NjaGVtYV8yIHwgc3MgICB8IHRleHQgfCAgICAgICAgICAg fCBub3QgbnVsbCB8ICAgICAgICAgfCAKKygxIHJvdykKKworLS1vaywgbm8gcXVhbGlmaWVkIHNj aGVtYSBuYW1lIGZvciBkb21haW4uCitDUkVBVEUgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzMgQVVU SE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKKyAgY3JlYXRlIHZpZXcgdGVzdCBhcyBzZWxlY3QgJ2hl bGxvJzo6c3MgYXMgdGVzdAorICBjcmVhdGUgdGFibGUgdChhIHNzMSkKKyAgY3JlYXRlIGRvbWFp biBzcyBhcyB0ZXh0IG5vdCBudWxsCisgIGNyZWF0ZSBkb21haW4gc3MxIGFzIHNzOworXGREIHJl Z3Jlc3Nfc2NoZW1hXzMuKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBkb21haW5zCisgICAgICBTY2hlbWEgICAgICB8IE5hbWUgfCAgICAgICAgVHlwZSAgICAg ICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgQ2hlY2sgCistLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tCisgcmVncmVzc19zY2hlbWFfMyB8IHNzICAgfCB0ZXh0ICAg ICAgICAgICAgICAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgCisgcmVncmVz c19zY2hlbWFfMyB8IHNzMSAgfCByZWdyZXNzX3NjaGVtYV8zLnNzIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgIHwgCisoMiByb3dzKQorCitEUk9QIFNDSEVNQSByZWdyZXNzX3NjaGVt YV8yIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cwor REVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0eXBlIHJlZ3Jlc3Nfc2NoZW1hXzIuc3MKK2Ryb3Ag Y2FzY2FkZXMgdG8gdGFibGUgcmVncmVzc19zY2hlbWFfMi50CitEUk9QIFNDSEVNQSByZWdyZXNz X3NjaGVtYV8zIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDQgb3RoZXIgb2Jq ZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0eXBlIHJlZ3Jlc3Nfc2NoZW1hXzMuc3MK K2Ryb3AgY2FzY2FkZXMgdG8gdHlwZSByZWdyZXNzX3NjaGVtYV8zLnNzMQorZHJvcCBjYXNjYWRl cyB0byB0YWJsZSByZWdyZXNzX3NjaGVtYV8zLnQKK2Ryb3AgY2FzY2FkZXMgdG8gdmlldyByZWdy ZXNzX3NjaGVtYV8zLnRlc3QKIC0tIENhc2VzIHdoZXJlIHRoZSBzY2hlbWEgY3JlYXRpb24gc3Vj Y2VlZHMuCiAtLSBUaGUgc2NoZW1hIGNyZWF0ZWQgbWF0Y2hlcyB0aGUgcm9sZSBuYW1lLgogQ1JF QVRFIFNDSEVNQSBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfY3JlYXRlX3NjaGVtYV9yb2xlCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfc2NoZW1hLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9zY2hlbWEuc3FsCmluZGV4IDFiNzA2NDI0N2EuLjQyMWFhYTQy NGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9zY2hlbWEuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9zY2hlbWEuc3FsCkBAIC00Nyw2ICs0Nywz OSBAQCBDUkVBVEUgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzEgQVVUSE9SSVpBVElPTiBDVVJSRU5U X1JPTEUKICAgRVhFQ1VURSBGVU5DVElPTiBzY2hlbWFfdHJpZy5ub19mdW5jKCk7CiBSRVNFVCBS T0xFOwogCistLSBDYXNlcyB3aGVyZSB0aGUgc2NoZW1hIGNyZWF0aW9uIHdpdGggZG9tYWluLgor CistLWZhaWwuIGNhbm5vdCBjcmVhdGUgZG9tYWluIHRvIG90aGVyIHNjaGVtYQorQ1JFQVRFIFND SEVNQSByZWdyZXNzX3NjaGVtYV8yIEFVVEhPUklaQVRJT04gQ1VSUkVOVF9ST0xFCisgIGNyZWF0 ZSB0YWJsZSB0KGEgc3MpCisgIGNyZWF0ZSBkb21haW4gcHVibGljLnNzIGFzIHRleHQgbm90IG51 bGwgZGVmYXVsdCAnaGVsbG8nIGNvbnN0cmFpbnQgbm4gY2hlY2sgKHZhbHVlIDw+ICdoZWxsbycp OworLS1mYWlsLiBjYW5ub3QgY3JlYXRlIGRvbWFpbiB0byBvdGhlciBzY2hlbWEKK0NSRUFURSBT Q0hFTUEgcmVncmVzc19zY2hlbWFfMiBBVVRIT1JJWkFUSU9OIENVUlJFTlRfUk9MRQorICBjcmVh dGUgdGFibGUgdChhIHNzKQorICBjcmVhdGUgZG9tYWluIHBvc3RncmVzLnB1YmxpYy5zcyBhcyB0 ZXh0IG5vdCBudWxsIGRlZmF1bHQgJ2hlbGxvJyBjb25zdHJhaW50IG5uIGNoZWNrICh2YWx1ZSA8 PiAnaGVsbG8nKTsKKworLS1mYWlsLiBmb3J3YXJkIHJlZmVyZW5jZXMsIG5lZWQgcmVvcmRlci4K K0NSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMiBBVVRIT1JJWkFUSU9OIENVUlJFTlRfUk9M RQorICBjcmVhdGUgZG9tYWluIHNzMSBhcyBzcworICBjcmVhdGUgZG9tYWluIHNzIGFzIHRleHQ7 CisKKy0tb2ssIHF1YWxpZmllZCBzY2hlbWEgbmFtZSBmb3IgZG9tYWluIHNob3VsZCBiZSBzYW1l IGFzIHRoZSBjcmVhdGVkIHNjaGVtYS4KK0NSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMiBB VVRIT1JJWkFUSU9OIENVUlJFTlRfUk9MRQorICBjcmVhdGUgdGFibGUgdChhIHJlZ3Jlc3Nfc2No ZW1hXzIuc3MpCisgIGNyZWF0ZSBkb21haW4gcmVncmVzc19zY2hlbWFfMi5zcyBhcyB0ZXh0IG5v dCBudWxsOworXGREIHJlZ3Jlc3Nfc2NoZW1hXzIuKgorCistLW9rLCBubyBxdWFsaWZpZWQgc2No ZW1hIG5hbWUgZm9yIGRvbWFpbi4KK0NSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMyBBVVRI T1JJWkFUSU9OIENVUlJFTlRfUk9MRQorICBjcmVhdGUgdmlldyB0ZXN0IGFzIHNlbGVjdCAnaGVs bG8nOjpzcyBhcyB0ZXN0CisgIGNyZWF0ZSB0YWJsZSB0KGEgc3MxKQorICBjcmVhdGUgZG9tYWlu IHNzIGFzIHRleHQgbm90IG51bGwKKyAgY3JlYXRlIGRvbWFpbiBzczEgYXMgc3M7CitcZEQgcmVn cmVzc19zY2hlbWFfMy4qCisKK0RST1AgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzIgQ0FTQ0FERTsK K0RST1AgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzMgQ0FTQ0FERTsKKwogLS0gQ2FzZXMgd2hlcmUg dGhlIHNjaGVtYSBjcmVhdGlvbiBzdWNjZWVkcy4KIC0tIFRoZSBzY2hlbWEgY3JlYXRlZCBtYXRj aGVzIHRoZSByb2xlIG5hbWUuCiBDUkVBVEUgU0NIRU1BIEFVVEhPUklaQVRJT04gcmVncmVzc19j cmVhdGVfc2NoZW1hX3JvbGUKLS0gCjIuMzQuMQoK --000000000000eddbfb0627dcc0fa--