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 1t2XIS-004l9p-Ir for pgsql-hackers@arkaria.postgresql.org; Sun, 20 Oct 2024 14:52:45 +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 1t2XIQ-00GGLl-G2 for pgsql-hackers@arkaria.postgresql.org; Sun, 20 Oct 2024 14:52:42 +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.94.2) (envelope-from ) id 1t2XIO-00GGIz-Uk for pgsql-hackers@lists.postgresql.org; Sun, 20 Oct 2024 14:52:42 +0000 Received: from fout-a6-smtp.messagingengine.com ([103.168.172.149]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t2XIM-001r9S-98 for pgsql-hackers@lists.postgresql.org; Sun, 20 Oct 2024 14:52:40 +0000 Received: from phl-compute-11.internal (phl-compute-11.phl.internal [10.202.2.51]) by mailfout.phl.internal (Postfix) with ESMTP id CBDD9138012F; Sun, 20 Oct 2024 10:52:36 -0400 (EDT) Received: from phl-imap-02 ([10.202.2.81]) by phl-compute-11.internal (MEProxy); Sun, 20 Oct 2024 10:52:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=compiler.org; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729435956; x=1729522356; bh=zFGXlRsrdu XmU0cJp7g1SQI4fiQX7UQtmIw4Bl0+u/g=; b=jboEhmVGvHrEosesGpYRcGT9Xu QfSzNdawWuEjWM+35M08HBE1r8ardXFZGcEFReQWvsq91FYscAWn+3dhjIxY9teb nnpy/RgUyX/2UiUPKeYHT6IbTlGnbBreas97u/xZF9wTUtr7hvRUj/1exwCNmabn oZvh85KOJwxL2wy1PKNFooQB3ybx+FreLuaghv0Y3FbBvx3jG3HCO1j3bNxyy45D g+82zwsi98H0Am+TB3+oqBqZ6UihmPvj3y4KkGp9v3nXnrr3ndfT5mcko49uYGqL zmudewD2QW9oAYmz181OCTuVP7QbSp8PaxKuf4eiyAyRA2i3W1z3BERcdV1Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729435956; x=1729522356; bh=zFGXlRsrduXmU0cJp7g1SQI4fiQX 7UQtmIw4Bl0+u/g=; b=eDfAyxmSLzW87I275BZhbD3ybslHGog1AFKfRibragzf QIdO3W3voe0nWnK1WqLy0b4lbAEB4FLg2ljT7aJTpKdWYHUEBRuoddr5sistaB0D OQPDUJB72Su+oCcIbSoe2NHPTCXreR5pSXcmKsEtwEdDqWahxPboFNAXoBFSt1j6 WONGBHEqV6vVkTo8/vDjksrTBgA6sofHXauCCo+0nq9RwFPojr8OzdHu3L+aUWgS 8YXx14LGDaG6gVgddyNjilkySFSbLYPne2UTdKl3QnbFkZ3U5c7vtyYvpoTCl0/c EM74hK4BhVwDSlWKhMSd4Ren/qZSbz0R5V+jGwhqjw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehjedgkeduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepofggfffhvfevkfgjfhfutgesmhdtreerredttden ucfhrhhomhepfdflohgvlhculfgrtghosghsohhnfdcuoehjohgvlhestghomhhpihhlvg hrrdhorhhgqeenucggtffrrghtthgvrhhnpeffgfelffffvdehhfeigeefieejudejvdei ueevueeggfevueekveeiteehhfetieenucevlhhushhtvghrufhiiigvpedtnecurfgrrh grmhepmhgrihhlfhhrohhmpehjohgvlhestghomhhpihhlvghrrdhorhhgpdhnsggprhgt phhtthhopedvpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegrlhhvhhgvrhhrvg esrghlvhhhrdhnohdqihhprdhorhhgpdhrtghpthhtohepphhgshhqlhdqhhgrtghkvghr sheslhhishhtshdrphhoshhtghhrvghsqhhlrdhorhhg X-ME-Proxy: Feedback-ID: ic6394509:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 1FB04B00068; Sun, 20 Oct 2024 10:52:36 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface MIME-Version: 1.0 Date: Sun, 20 Oct 2024 16:52:15 +0200 From: "Joel Jacobson" To: "Alvaro Herrera" Cc: pgsql-hackers@lists.postgresql.org Message-Id: <306c3ab4-f9d2-4e66-87d0-03d155325f1b@app.fastmail.com> In-Reply-To: <202410201014.dcvfvqdncdds@alvherre.pgsql> References: <202410201014.dcvfvqdncdds@alvherre.pgsql> Subject: Re: Add pg_ownerships and pg_privileges system views Content-Type: multipart/mixed; boundary=76c0b0f1026a4480b38652a314002adb List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --76c0b0f1026a4480b38652a314002adb Content-Type: text/plain Content-Transfer-Encoding: 7bit On Sun, Oct 20, 2024, at 12:14, Alvaro Herrera wrote: > I think the function calls should be in the FROM clause, and restrict the > pg_shdepend rows to only the ones in the current database: Cool. I assume pg_ownerships should be changed in the same way? New patch attached. > Now, depending on pg_shdepend for this means that you don't report > anything for an object until a GRANT to another user has been executed. > For example if you REVOKE some priv from the object owner, nothing is > shown until a GRANT is done for another user (and at that point onwards, > privs by the owner are shown). This seems less than ideal, but I'm not > sure how to do different, other than ditching the use of pg_shdepend > entirely. Hmm, yeah that's a bit awkward. Maybe okay if clearly documented. /Joel --76c0b0f1026a4480b38652a314002adb Content-Disposition: attachment; filename*0="v3-0001-Add-pg_ownerships-and-pg_privileges-system-views.patc"; filename*1="h" Content-Type: application/octet-stream; name="=?UTF-8?Q?v3-0001-Add-pg=5Fownerships-and-pg=5Fprivileges-system-views.p?= =?UTF-8?Q?atch?=" Content-Transfer-Encoding: base64 RnJvbSA1ODczNmE2NGU5ZjViNTBiNDYxZjEwY2E4OWE0NWE3NTczZjY0M2I3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2VsIEpha29ic3NvbiA8Z2l0aHViQGNvbXBpbGVy Lm9yZz4KRGF0ZTogVHVlLCA4IE9jdCAyMDI0IDE4OjM5OjA0ICswMjAwClN1YmplY3Q6IFtQ QVRDSF0gQWRkIHBnX293bmVyc2hpcHMgYW5kIHBnX3ByaXZpbGVnZXMgc3lzdGVtIHZpZXdz LgoKVGhlc2UgbmV3IHZpZXdzIHByb3ZpZGUgYSBtb3JlIGFjY2Vzc2libGUgYW5kIHVzZXIt ZnJpZW5kbHkgd2F5IHRvIHJldHJpZXZlCmluZm9ybWF0aW9uIGFib3V0IG9iamVjdCBvd25l cnNoaXBzIGFuZCBwcml2aWxlZ2VzLgoKVGhlIHZpZXcgcGdfb3duZXJzaGlwcyBwcm92aWRl cyBhY2Nlc3MgdG8gaW5mb3JtYXRpb24gYWJvdXQgb2JqZWN0IG93bmVyc2hpcHMuCgpUaGUg dmlldyBwZ19wcml2aWxlZ2VzIHByb3ZpZGVzIGFjY2VzcyB0byBpbmZvcm1hdGlvbiBhYm91 dCBleHBsaWNpdGx5CmdyYW50ZWQgcHJpdmlsZWdlcyBvbiBkYXRhYmFzZSBvYmplY3RzLiBU aGUgc3BlY2lhbCBncmFudGVlIHZhbHVlICItIiBtZWFucwp0aGUgcHJpdmlsZWdlIGlzIGdy YW50ZWQgdG8gUFVCTElDLgoKRXhhbXBsZSB1c2FnZToKCkNSRUFURSBST0xFIGFsaWNlOwpD UkVBVEUgUk9MRSBib2I7CkNSRUFURSBST0xFIGNhcm9sOwoKQ1JFQVRFIFRBQkxFIGFsaWNl X3RhYmxlICgpOwpBTFRFUiBUQUJMRSBhbGljZV90YWJsZSBPV05FUiBUTyBhbGljZTsKUkVW T0tFIEFMTCBPTiBhbGljZV90YWJsZSBGUk9NIGFsaWNlOwpHUkFOVCBTRUxFQ1QgT04gYWxp Y2VfdGFibGUgVE8gYm9iOwoKQ1JFQVRFIFRBQkxFIGJvYl90YWJsZSAoKTsKQUxURVIgVEFC TEUgYm9iX3RhYmxlIE9XTkVSIFRPIGJvYjsKUkVWT0tFIEFMTCBPTiBib2JfdGFibGUgRlJP TSBib2I7CkdSQU5UIFNFTEVDVCwgVVBEQVRFIE9OIGJvYl90YWJsZSBUTyBjYXJvbDsKClNF TEVDVCAqIEZST00gcGdfb3duZXJzaGlwcyBPUkRFUiBCWSBvd25lcjsKCiBjbGFzc2lkICB8 IG9iamlkIHwgb2Jqc3ViaWQgfCB0eXBlICB8IHNjaGVtYSB8ICAgIG5hbWUgICAgIHwgICAg ICBpZGVudGl0eSAgICAgIHwgb3duZXIKLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0KIHBnX2NsYXNzIHwgMTYzODggfCAgICAgICAgMCB8IHRhYmxlIHwgcHVibGljIHwg YWxpY2VfdGFibGUgfCBwdWJsaWMuYWxpY2VfdGFibGUgfCBhbGljZQogcGdfY2xhc3MgfCAx NjM5MSB8ICAgICAgICAwIHwgdGFibGUgfCBwdWJsaWMgfCBib2JfdGFibGUgICB8IHB1Ymxp Yy5ib2JfdGFibGUgICB8IGJvYgooMiByb3dzKQoKU0VMRUNUICogRlJPTSBwZ19wcml2aWxl Z2VzIE9SREVSIEJZIGdyYW50ZWU7CgogY2xhc3NpZCAgfCBvYmppZCB8IG9ianN1YmlkIHwg dHlwZSAgfCBzY2hlbWEgfCAgICBuYW1lICAgICB8ICAgICAgaWRlbnRpdHkgICAgICB8IGdy YW50b3IgfCBncmFudGVlIHwgcHJpdmlsZWdlX3R5cGUgfCBpc19ncmFudGFibGUKLS0tLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLQogcGdfY2xhc3MgfCAxNjM4OCB8ICAgICAgICAwIHwgdGFi bGUgfCBwdWJsaWMgfCBhbGljZV90YWJsZSB8IHB1YmxpYy5hbGljZV90YWJsZSB8IGFsaWNl ICAgfCBib2IgICAgIHwgU0VMRUNUICAgICAgICAgfCBmCiBwZ19jbGFzcyB8IDE2MzkxIHwg ICAgICAgIDAgfCB0YWJsZSB8IHB1YmxpYyB8IGJvYl90YWJsZSAgIHwgcHVibGljLmJvYl90 YWJsZSAgIHwgYm9iICAgICB8IGNhcm9sICAgfCBTRUxFQ1QgICAgICAgICB8IGYKIHBnX2Ns YXNzIHwgMTYzOTEgfCAgICAgICAgMCB8IHRhYmxlIHwgcHVibGljIHwgYm9iX3RhYmxlICAg fCBwdWJsaWMuYm9iX3RhYmxlICAgfCBib2IgICAgIHwgY2Fyb2wgICB8IFVQREFURSAgICAg ICAgIHwgZgooMyByb3dzKQotLS0KIGRvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCAg ICAgICB8IDI2MCArKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCB8ICA0NyArKysrKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQgIHwgIDM4ICsrKysKIDMgZmlsZXMgY2hhbmdlZCwgMzQ1IGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNn bWwgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKaW5kZXggNjFkMjhlNzAxZi4u ZjA0M2U2NzVkZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbApAQCAtMTExLDYgKzExMSwx NiBAQAogICAgICAgPGVudHJ5Pm1hdGVyaWFsaXplZCB2aWV3czwvZW50cnk+CiAgICAgIDwv cm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0idmlldy1w Zy1vd25lcnNoaXBzIj48c3RydWN0bmFtZT5wZ19vd25lcnNoaXBzPC9zdHJ1Y3RuYW1lPjwv bGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5Pm93bmVyc2hpcHM8L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9InZpZXct cGctcHJpdmlsZWdlcyI+PHN0cnVjdG5hbWU+cGdfcHJpdmlsZWdlczwvc3RydWN0bmFtZT48 L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5wcml2aWxlZ2VzPC9lbnRyeT4KKyAgICAg PC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJ2aWV3 LXBnLXBvbGljaWVzIj48c3RydWN0bmFtZT5wZ19wb2xpY2llczwvc3RydWN0bmFtZT48L2xp bms+PC9lbnRyeT4KICAgICAgIDxlbnRyeT5wb2xpY2llczwvZW50cnk+CkBAIC0xODM5LDYg KzE4NDksMjU2IEBAIFNFTEVDVCAqIEZST00gcGdfbG9ja3MgcGwgTEVGVCBKT0lOIHBnX3By ZXBhcmVkX3hhY3RzIHBweAogCiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0idmlldy1wZy1v d25lcnNoaXBzIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX293bmVyc2hpcHM8L3N0cnVj dG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9InZpZXctcGctb3duZXJzaGlw cyI+CisgICA8cHJpbWFyeT5wZ19vd25lcnNoaXBzPC9wcmltYXJ5PgorICA8L2luZGV4dGVy bT4KKworICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX293bmVyc2hpcHM8 L3N0cnVjdG5hbWU+IHByb3ZpZGVzIGFjY2VzcyB0byBpbmZvcm1hdGlvbiBhYm91dCBvYmpl Y3Qgb3duZXJzaGlwcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3Ry dWN0bmFtZT5wZ19vd25lcnNoaXBzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAg IDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICAgPHN0cnVjdGZpZWxkPmNsYXNzaWQ8L3N0cnVjdGZpZWxk PiA8dHlwZT5yZWdjbGFzczwvdHlwZT4KKyAgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlu a2VuZD0iY2F0YWxvZy1wZy1jbGFzcyI+PHN0cnVjdG5hbWU+cGdfY2xhc3M8L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIDx0eXBlPnJlZ2NsYXNzPC90eXBlPiBP SUQgb2YgdGhlIHN5c3RlbSBjYXRhbG9nIHRoZSBvd25lZCBvYmplY3QgaXMgaW4KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICAgPHN0cnVjdGZpZWxkPm9iamlkPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgorICAgICAgICAocmVmZXJlbmNlcyBhbnkgT0lEIGNvbHVtbikKKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGUgT0lEIG9mIHRoZSBzcGVj aWZpYyBvd25lZCBvYmplY3QKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ b2Jqc3ViaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgRm9yIGEgdGFibGUgY29sdW1uLCB0aGlzIGlzIHRo ZSBjb2x1bW4gbnVtYmVyICh0aGUKKyAgICAgICA8c3RydWN0ZmllbGQ+b2JqaWQ8L3N0cnVj dGZpZWxkPiBhbmQgPHN0cnVjdGZpZWxkPmNsYXNzaWQ8L3N0cnVjdGZpZWxkPiByZWZlciB0 byB0aGUKKyAgICAgICB0YWJsZSBpdHNlbGYpLiAgRm9yIGFsbCBvdGhlciBvYmplY3QgdHlw ZXMsIHRoaXMgY29sdW1uIGlzCisgICAgICAgemVyby4KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgIElkZW50aWZpZXMgdGhlIHR5cGUg b2YgZGF0YWJhc2Ugb2JqZWN0CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnNjaGVtYTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgIFRoZSBzY2hlbWEgbmFtZSB0aGF0IHRoZSBvYmplY3Qg YmVsb25ncyBpbiwgb3IgTlVMTCBmb3Igb2JqZWN0IHR5cGVzIHRoYXQgZG8gbm90IGJlbG9u ZyB0byBzY2hlbWFzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm5hbWU8 L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0aGUgb2JqZWN0LCBxdW90ZWQgaWYgbmVjZXNz YXJ5LCBpZiB0aGUgbmFtZSAoYWxvbmcgd2l0aCBzY2hlbWEgbmFtZSwgaWYgcGVydGluZW50 KSBpcyBzdWZmaWNpZW50IHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBvYmplY3QsIG90aGVy d2lzZSBOVUxMCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmlkZW50aXR5 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgVGhlIGNvbXBsZXRlIG9iamVjdCBpZGVudGl0eSwgd2l0aCB0aGUg cHJlY2lzZSBmb3JtYXQgZGVwZW5kaW5nIG9uIG9iamVjdCB0eXBlLCBhbmQgZWFjaCBuYW1l IHdpdGhpbiB0aGUgZm9ybWF0IGJlaW5nIHNjaGVtYS1xdWFsaWZpZWQgYW5kIHF1b3RlZCBh cyBuZWNlc3NhcnkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b3duZXI8 L3N0cnVjdGZpZWxkPiA8dHlwZT5yZWdyb2xlPC90eXBlPgorICAgICAgIChyZWZlcmVuY2Vz IDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19hdXRo aWQ8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+cm9sbmFtZTwvc3RydWN0Zmll bGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhl IG9iamVjdAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgPC90 Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorCisgPC9zZWN0MT4KKworIDxzZWN0 MSBpZD0idmlldy1wZy1wcml2aWxlZ2VzIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3By aXZpbGVnZXM8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9InZp ZXctcGctcHJpdmlsZWdlcyI+CisgICA8cHJpbWFyeT5wZ19wcml2aWxlZ2VzPC9wcmltYXJ5 PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1l PnBnX3ByaXZpbGVnZXM8L3N0cnVjdG5hbWU+IHByb3ZpZGVzIGFjY2VzcyB0byBpbmZvcm1h dGlvbiBhYm91dCBleHBsaWNpdGx5IGdyYW50ZWQgcHJpdmlsZWdlcyBvbiBkYXRhYmFzZSBv YmplY3RzLgorICAgVGhlIHNwZWNpYWwgPHN0cnVjdG5hbWU+Z3JhbnRlZTwvc3RydWN0bmFt ZT4gdmFsdWUgPGxpdGVyYWw+LTwvbGl0ZXJhbD4gbWVhbnMgdGhlIHByaXZpbGVnZSBpcyBn cmFudGVkIHRvIDxsaXRlcmFsPlBVQkxJQzwvbGl0ZXJhbD4uCisgIDwvcGFyYT4KKworICA8 dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfcHJpdmlsZWdlczwvc3RydWN0bmFt ZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4K KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9k eT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgIDxzdHJ1Y3RmaWVs ZD5jbGFzc2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cmVnY2xhc3M8L3R5cGU+CisgICAgICAg IChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY2xhc3MiPjxzdHJ1Y3Ru YW1lPnBnX2NsYXNzPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3Ry dWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRoZSA8 dHlwZT5yZWdjbGFzczwvdHlwZT4gT0lEIG9mIHRoZSBzeXN0ZW0gY2F0YWxvZyB0aGUgZ3Jh bnRlZCBvYmplY3QgaXMgaW4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICAgPHN0cnVjdGZpZWxk Pm9iamlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgICAocmVmZXJl bmNlcyBhbnkgT0lEIGNvbHVtbikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgICBUaGUgT0lEIG9mIHRoZSBzcGVjaWZpYyBncmFudGVkIG9iamVjdAorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vYmpzdWJpZDwvc3RydWN0ZmllbGQ+IDx0eXBl PmludDQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBGb3Ig YSB0YWJsZSBjb2x1bW4sIHRoaXMgaXMgdGhlIGNvbHVtbiBudW1iZXIgKHRoZQorICAgICAg IDxzdHJ1Y3RmaWVsZD5vYmppZDwvc3RydWN0ZmllbGQ+IGFuZCA8c3RydWN0ZmllbGQ+Y2xh c3NpZDwvc3RydWN0ZmllbGQ+IHJlZmVyIHRvIHRoZQorICAgICAgIHRhYmxlIGl0c2VsZiku ICBGb3IgYWxsIG90aGVyIG9iamVjdCB0eXBlcywgdGhpcyBjb2x1bW4gaXMKKyAgICAgICB6 ZXJvLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50eXBlPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgSWRlbnRpZmllcyB0aGUgdHlwZSBvZiBkYXRhYmFzZSBvYmplY3QKKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgVGhlIHNj aGVtYSBuYW1lIHRoYXQgdGhlIG9iamVjdCBiZWxvbmdzIGluLCBvciBOVUxMIGZvciBvYmpl Y3QgdHlwZXMgdGhhdCBkbyBub3QgYmVsb25nIHRvIHNjaGVtYXMKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+bmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRo ZSBvYmplY3QsIHF1b3RlZCBpZiBuZWNlc3NhcnksIGlmIHRoZSBuYW1lIChhbG9uZyB3aXRo IHNjaGVtYSBuYW1lLCBpZiBwZXJ0aW5lbnQpIGlzIHN1ZmZpY2llbnQgdG8gdW5pcXVlbHkg aWRlbnRpZnkgdGhlIG9iamVjdCwgb3RoZXJ3aXNlIE5VTEwKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+aWRlbnRpdHk8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICBUaGUgY29tcGxldGUg b2JqZWN0IGlkZW50aXR5LCB3aXRoIHRoZSBwcmVjaXNlIGZvcm1hdCBkZXBlbmRpbmcgb24g b2JqZWN0IHR5cGUsIGFuZCBlYWNoIG5hbWUgd2l0aGluIHRoZSBmb3JtYXQgYmVpbmcgc2No ZW1hLXF1YWxpZmllZCBhbmQgcXVvdGVkIGFzIG5lY2Vzc2FyeQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5ncmFudG9yPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cmVncm9s ZTwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0 cnVjdGZpZWxkPnJvbG5hbWU8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIFJvbGUgdGhhdCBncmFudGVkIHRoaXMgcHJpdmlsZWdlCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmdyYW50ZWU8L3N0cnVjdGZpZWxkPiA8 dHlwZT5yZWdyb2xlPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9 ImNhdGFsb2ctcGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19hdXRoaWQ8L3N0cnVjdG5hbWU+ PC9saW5rPi48c3RydWN0ZmllbGQ+cm9sbmFtZTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm9sZSB0byB3aG9tIHByaXZpbGVnZSBpcyBn cmFudGVkCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByaXZpbGVnZV90 eXBlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFR5cGUgb2YgdGhlIHByaXZpbGVnZTogPGxpdGVyYWw+U0VM RUNUPC9saXRlcmFsPiwKKyAgICAgICA8bGl0ZXJhbD5JTlNFUlQ8L2xpdGVyYWw+LCA8bGl0 ZXJhbD5VUERBVEU8L2xpdGVyYWw+LCBvcgorICAgICAgIDxsaXRlcmFsPlJFRkVSRU5DRVM8 L2xpdGVyYWw+CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmlzX2dyYW50 YWJsZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPiBpZiB0aGUg cHJpdmlsZWdlIGlzIGdyYW50YWJsZSwgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+IGlmIG5v dAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+Cisg ICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKworIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9InZp ZXctcGctcG9saWNpZXMiPgogICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfcG9saWNpZXM8L3N0 cnVjdG5hbWU+PC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs CmluZGV4IDM0NTZiODIxYmMuLjNlODVkYjFmN2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5 c3RlbV92aWV3cy5zcWwKQEAgLTYwMSw2ICs2MDEsNTMgQEAgRlJPTQogICAgIHBnX3Noc2Vj bGFiZWwgbAogICAgIEpPSU4gcGdfYXV0aGlkIHJvbCBPTiBsLmNsYXNzb2lkID0gcm9sLnRh Ymxlb2lkIEFORCBsLm9iam9pZCA9IHJvbC5vaWQ7CiAKK0NSRUFURSBWSUVXIHBnX3ByaXZp bGVnZXMgQVMKKyAgICBTRUxFQ1QKKyAgICAgICAgYS5jbGFzc2lkOjpyZWdjbGFzcywKKyAg ICAgICAgYS5vYmppZCwKKyAgICAgICAgYS5vYmpzdWJpZCwKKyAgICAgICAgYS50eXBlLAor ICAgICAgICBhLnNjaGVtYSwKKyAgICAgICAgYS5uYW1lLAorICAgICAgICBhLmlkZW50aXR5 LAorICAgICAgICBhLmdyYW50b3I6OnJlZ3JvbGUsCisgICAgICAgIGEuZ3JhbnRlZTo6cmVn cm9sZSwKKyAgICAgICAgYS5wcml2aWxlZ2VfdHlwZSwKKyAgICAgICAgYS5pc19ncmFudGFi bGUKKyAgICBGUk9NCisgICAgKAorICAgICAgICBTRUxFQ1QKKyAgICAgICAgICAgIHBnX3No ZGVwZW5kLmNsYXNzaWQsCisgICAgICAgICAgICBwZ19zaGRlcGVuZC5vYmppZCwKKyAgICAg ICAgICAgIHBnX3NoZGVwZW5kLm9ianN1YmlkLAorICAgICAgICAgICAgaWRlbnRpZnkuKiwK KyAgICAgICAgICAgIGFjbGV4cGxvZGUuKgorICAgICAgICBGUk9NIHBnX2NhdGFsb2cucGdf c2hkZXBlbmQKKyAgICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2RhdGFiYXNlIE9OIHBnX2Rh dGFiYXNlLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkgQU5EIHBnX2RhdGFiYXNlLm9p ZCA9IHBnX3NoZGVwZW5kLmRiaWQKKyAgICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2F1dGhp ZCBPTiBwZ19hdXRoaWQub2lkID0gcGdfc2hkZXBlbmQucmVmb2JqaWQgQU5EIHBnX3NoZGVw ZW5kLnJlZmNsYXNzaWQgPSAncGdfYXV0aGlkJzo6cmVnY2xhc3MsCisgICAgICAgIExBVEVS QUwgcGdfY2F0YWxvZy5wZ19pZGVudGlmeV9vYmplY3QocGdfc2hkZXBlbmQuY2xhc3NpZCxw Z19zaGRlcGVuZC5vYmppZCxwZ19zaGRlcGVuZC5vYmpzdWJpZCkgQVMgaWRlbnRpZnksCisg ICAgICAgIExBVEVSQUwgcGdfY2F0YWxvZy5hY2xleHBsb2RlKHBnX2NhdGFsb2cucGdfZ2V0 X2FjbChwZ19zaGRlcGVuZC5jbGFzc2lkLHBnX3NoZGVwZW5kLm9iamlkLHBnX3NoZGVwZW5k Lm9ianN1YmlkKSkgQVMgYWNsZXhwbG9kZQorICAgICAgICBXSEVSRSBwZ19zaGRlcGVuZC5k ZXB0eXBlID0gJ2EnIEFORCBwZ19zaGRlcGVuZC5kYmlkID0gKCggU0VMRUNUIHBnX2RhdGFi YXNlXzEub2lkCisgICAgICAgICAgICAgICAgICAgRlJPTSBwZ19kYXRhYmFzZSBwZ19kYXRh YmFzZV8xCisgICAgICAgICAgICAgICAgICBXSEVSRSBwZ19kYXRhYmFzZV8xLmRhdG5hbWUg PSBjdXJyZW50X2RhdGFiYXNlKCkpKQorICAgICkgQVMgYSA7CisKK0NSRUFURSBWSUVXIHBn X293bmVyc2hpcHMgQVMKKyAgICBTRUxFQ1QKKyAgICAgICAgYS5jbGFzc2lkOjpyZWdjbGFz cywKKyAgICAgICAgYS5vYmppZCwKKyAgICAgICAgYS5vYmpzdWJpZCwKKyAgICAgICAgaWRl bnRpZnkuKiwKKyAgICAgICAgYS5yZWZvYmppZDo6cmVncm9sZSBBUyBvd25lcgorICAgIEZS T00gcGdfY2F0YWxvZy5wZ19zaGRlcGVuZCBBUyBhCisgICAgSk9JTiBwZ19jYXRhbG9nLnBn X2RhdGFiYXNlIE9OIHBnX2RhdGFiYXNlLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkg QU5EIHBnX2RhdGFiYXNlLm9pZCA9IGEuZGJpZAorICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19h dXRoaWQgT04gcGdfYXV0aGlkLm9pZCA9IGEucmVmb2JqaWQgQU5EIGEucmVmY2xhc3NpZCA9 ICdwZ19hdXRoaWQnOjpyZWdjbGFzcywKKyAgICBMQVRFUkFMIHBnX2NhdGFsb2cucGdfaWRl bnRpZnlfb2JqZWN0KGEuY2xhc3NpZCwgYS5vYmppZCwgYS5vYmpzdWJpZCkgQVMgaWRlbnRp ZnkKKyAgICBXSEVSRSBhLmRlcHR5cGUgPSAnbycgQU5EIGEuZGJpZCA9ICgoIFNFTEVDVCBw Z19kYXRhYmFzZV8xLm9pZAorICAgICAgICAgIEZST00gcGdfZGF0YWJhc2UgcGdfZGF0YWJh c2VfMQorICAgICAgICAgIFdIRVJFIHBnX2RhdGFiYXNlXzEuZGF0bmFtZSA9IGN1cnJlbnRf ZGF0YWJhc2UoKQorICAgICkpOworCiBDUkVBVEUgVklFVyBwZ19zZXR0aW5ncyBBUwogICAg IFNFTEVDVCAqIEZST00gcGdfc2hvd19hbGxfc2V0dGluZ3MoKSBBUyBBOwogCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDJiNDcwMTNmMTEuLjY5ZjNmMGM1OTcg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xMzk4LDYgKzEzOTgs MTggQEAgcGdfbWF0dmlld3N8IFNFTEVDVCBuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAg ICAgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuIE9OICgobi5vaWQgPSBjLnJlbG5hbWVzcGFj ZSkpKQogICAgICBMRUZUIEpPSU4gcGdfdGFibGVzcGFjZSB0IE9OICgodC5vaWQgPSBjLnJl bHRhYmxlc3BhY2UpKSkKICAgV0hFUkUgKGMucmVsa2luZCA9ICdtJzo6ImNoYXIiKTsKK3Bn X293bmVyc2hpcHN8IFNFTEVDVCAoYS5jbGFzc2lkKTo6cmVnY2xhc3MgQVMgY2xhc3NpZCwK KyAgICBhLm9iamlkLAorICAgIGEub2Jqc3ViaWQsCisgICAgKHBnX2lkZW50aWZ5X29iamVj dChhLmNsYXNzaWQsIGEub2JqaWQsIGEub2Jqc3ViaWQpKS50eXBlIEFTIHR5cGUsCisgICAg KHBnX2lkZW50aWZ5X29iamVjdChhLmNsYXNzaWQsIGEub2JqaWQsIGEub2Jqc3ViaWQpKS5z Y2hlbWEgQVMgc2NoZW1hLAorICAgIChwZ19pZGVudGlmeV9vYmplY3QoYS5jbGFzc2lkLCBh Lm9iamlkLCBhLm9ianN1YmlkKSkubmFtZSBBUyBuYW1lLAorICAgIChwZ19pZGVudGlmeV9v YmplY3QoYS5jbGFzc2lkLCBhLm9iamlkLCBhLm9ianN1YmlkKSkuaWRlbnRpdHkgQVMgaWRl bnRpdHksCisgICAgKGEucmVmb2JqaWQpOjpyZWdyb2xlIEFTIG93bmVyCisgICBGUk9NICgo cGdfc2hkZXBlbmQgYQorICAgICBKT0lOIHBnX2RhdGFiYXNlIE9OICgoKHBnX2RhdGFiYXNl LmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkpIEFORCAocGdfZGF0YWJhc2Uub2lkID0g YS5kYmlkKSkpKQorICAgICBKT0lOIHBnX2F1dGhpZCBPTiAoKChwZ19hdXRoaWQub2lkID0g YS5yZWZvYmppZCkgQU5EIChhLnJlZmNsYXNzaWQgPSAoJ3BnX2F1dGhpZCc6OnJlZ2NsYXNz KTo6b2lkKSkpKQorICBXSEVSRSAoYS5kZXB0eXBlID0gJ28nOjoiY2hhciIpOwogcGdfcG9s aWNpZXN8IFNFTEVDVCBuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICBjLnJlbG5hbWUg QVMgdGFibGVuYW1lLAogICAgIHBvbC5wb2xuYW1lIEFTIHBvbGljeW5hbWUsCkBAIC0xNDQy LDYgKzE0NTQsMzIgQEAgcGdfcHJlcGFyZWRfeGFjdHN8IFNFTEVDVCBwLnRyYW5zYWN0aW9u LAogICAgRlJPTSAoKHBnX3ByZXBhcmVkX3hhY3QoKSBwKHRyYW5zYWN0aW9uLCBnaWQsIHBy ZXBhcmVkLCBvd25lcmlkLCBkYmlkKQogICAgICBMRUZUIEpPSU4gcGdfYXV0aGlkIHUgT04g KChwLm93bmVyaWQgPSB1Lm9pZCkpKQogICAgICBMRUZUIEpPSU4gcGdfZGF0YWJhc2UgZCBP TiAoKHAuZGJpZCA9IGQub2lkKSkpOworcGdfcHJpdmlsZWdlc3wgU0VMRUNUIChjbGFzc2lk KTo6cmVnY2xhc3MgQVMgY2xhc3NpZCwKKyAgICBvYmppZCwKKyAgICBvYmpzdWJpZCwKKyAg ICB0eXBlLAorICAgIHNjaGVtYSwKKyAgICBuYW1lLAorICAgIGlkZW50aXR5LAorICAgIChn cmFudG9yKTo6cmVncm9sZSBBUyBncmFudG9yLAorICAgIChncmFudGVlKTo6cmVncm9sZSBB UyBncmFudGVlLAorICAgIHByaXZpbGVnZV90eXBlLAorICAgIGlzX2dyYW50YWJsZQorICAg RlJPTSAoIFNFTEVDVCBwZ19zaGRlcGVuZC5jbGFzc2lkLAorICAgICAgICAgICAgcGdfc2hk ZXBlbmQub2JqaWQsCisgICAgICAgICAgICBwZ19zaGRlcGVuZC5vYmpzdWJpZCwKKyAgICAg ICAgICAgIChwZ19pZGVudGlmeV9vYmplY3QocGdfc2hkZXBlbmQuY2xhc3NpZCwgcGdfc2hk ZXBlbmQub2JqaWQsIHBnX3NoZGVwZW5kLm9ianN1YmlkKSkudHlwZSBBUyB0eXBlLAorICAg ICAgICAgICAgKHBnX2lkZW50aWZ5X29iamVjdChwZ19zaGRlcGVuZC5jbGFzc2lkLCBwZ19z aGRlcGVuZC5vYmppZCwgcGdfc2hkZXBlbmQub2Jqc3ViaWQpKS5zY2hlbWEgQVMgc2NoZW1h LAorICAgICAgICAgICAgKHBnX2lkZW50aWZ5X29iamVjdChwZ19zaGRlcGVuZC5jbGFzc2lk LCBwZ19zaGRlcGVuZC5vYmppZCwgcGdfc2hkZXBlbmQub2Jqc3ViaWQpKS5uYW1lIEFTIG5h bWUsCisgICAgICAgICAgICAocGdfaWRlbnRpZnlfb2JqZWN0KHBnX3NoZGVwZW5kLmNsYXNz aWQsIHBnX3NoZGVwZW5kLm9iamlkLCBwZ19zaGRlcGVuZC5vYmpzdWJpZCkpLmlkZW50aXR5 IEFTIGlkZW50aXR5LAorICAgICAgICAgICAgKGFjbGV4cGxvZGUocGdfZ2V0X2FjbChwZ19z aGRlcGVuZC5jbGFzc2lkLCBwZ19zaGRlcGVuZC5vYmppZCwgcGdfc2hkZXBlbmQub2Jqc3Vi aWQpKSkuZ3JhbnRvciBBUyBncmFudG9yLAorICAgICAgICAgICAgKGFjbGV4cGxvZGUocGdf Z2V0X2FjbChwZ19zaGRlcGVuZC5jbGFzc2lkLCBwZ19zaGRlcGVuZC5vYmppZCwgcGdfc2hk ZXBlbmQub2Jqc3ViaWQpKSkuZ3JhbnRlZSBBUyBncmFudGVlLAorICAgICAgICAgICAgKGFj bGV4cGxvZGUocGdfZ2V0X2FjbChwZ19zaGRlcGVuZC5jbGFzc2lkLCBwZ19zaGRlcGVuZC5v YmppZCwgcGdfc2hkZXBlbmQub2Jqc3ViaWQpKSkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmls ZWdlX3R5cGUsCisgICAgICAgICAgICAoYWNsZXhwbG9kZShwZ19nZXRfYWNsKHBnX3NoZGVw ZW5kLmNsYXNzaWQsIHBnX3NoZGVwZW5kLm9iamlkLCBwZ19zaGRlcGVuZC5vYmpzdWJpZCkp KS5pc19ncmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlCisgICAgICAgICAgIEZST00gKChwZ19z aGRlcGVuZAorICAgICAgICAgICAgIEpPSU4gcGdfZGF0YWJhc2UgT04gKCgocGdfZGF0YWJh c2UuZGF0bmFtZSA9IGN1cnJlbnRfZGF0YWJhc2UoKSkgQU5EIChwZ19kYXRhYmFzZS5vaWQg PSBwZ19zaGRlcGVuZC5kYmlkKSkpKQorICAgICAgICAgICAgIEpPSU4gcGdfYXV0aGlkIE9O ICgoKHBnX2F1dGhpZC5vaWQgPSBwZ19zaGRlcGVuZC5yZWZvYmppZCkgQU5EIChwZ19zaGRl cGVuZC5yZWZjbGFzc2lkID0gKCdwZ19hdXRoaWQnOjpyZWdjbGFzcyk6Om9pZCkpKSkKKyAg ICAgICAgICBXSEVSRSAocGdfc2hkZXBlbmQuZGVwdHlwZSA9ICdhJzo6ImNoYXIiKSkgYTsK IHBnX3B1YmxpY2F0aW9uX3RhYmxlc3wgU0VMRUNUIHAucHVibmFtZSwKICAgICBuLm5zcG5h bWUgQVMgc2NoZW1hbmFtZSwKICAgICBjLnJlbG5hbWUgQVMgdGFibGVuYW1lLAotLSAKMi40 NS4xCgo= --76c0b0f1026a4480b38652a314002adb--