Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hcsok-00052O-9d for pgsql-hackers@arkaria.postgresql.org; Mon, 17 Jun 2019 14:41:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hcsoj-0006LW-6q for pgsql-hackers@arkaria.postgresql.org; Mon, 17 Jun 2019 14:41:05 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hcsoi-0006LP-St for pgsql-hackers@lists.postgresql.org; Mon, 17 Jun 2019 14:41:04 +0000 Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hcsof-00071N-Cz for pgsql-hackers@postgresql.org; Mon, 17 Jun 2019 14:41:04 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 2C3E4223AD for ; Mon, 17 Jun 2019 10:40:59 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Mon, 17 Jun 2019 10:40:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=WYOMTUcRNoYdjatBieiKAf+my9UFD Oixr3uvSNRH8a0=; b=dNYzGbhCtRRzmCzTI+DjtlYEghrmD4Ps5LnyXjHibxhhs Vy+2dpa2EAy8woS4NWsKP9YpUGrxMwM2Nm1feAs5YcQmlJTmI0oybcfgpHdAas7A /6ptaH018RsruXyK6QgoK3hT5EyA/VcjWmOShZNpaJbRgX2FXBL62AqjEbLAowps QogLD3OWwUm86HGsXdHp/9JHJk1Pog1YQisIu6dKXsei31zs3CJexhr3FUSKv7oJ /XmUAVGnQZ3J5ccdNibI7rBa0xK5lQmH6dMZzLankjk7dyDQw+Mta3Yv0I1XEf8S qUGHT1sOgIjlBTgBPOxDvDUpiVTy6gATvQ/ffIZEA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddrudeijedgkedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffuohfkffgfgggtsehmtderre dtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgv ihhsvghnthhrrghuthesvdhnughquhgrughrrghnthdrtghomheqnecuffhomhgrihhnpe dvnhguqhhurggurhgrnhhtrdgtohhmnecukfhppedvudejrddvgeelrddvvdegrdduleei necurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghuthesvd hnughquhgrughrrghnthdrtghomhenucevlhhushhtvghrufhiiigvpedt X-ME-Proxy: Received: from april.pezone.net (pd9f9e0c4.dip0.t-ipconnect.de [217.249.224.196]) by mail.messagingengine.com (Postfix) with ESMTPA id 2C2CE80063 for ; Mon, 17 Jun 2019 10:40:58 -0400 (EDT) From: Peter Eisentraut Openpgp: preference=signencrypt Autocrypt: addr=peter.eisentraut@2ndquadrant.com; prefer-encrypt=mutual; keydata= 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 3jI= To: pgsql-hackers Subject: Allow an alias to be attached directly to a JOIN ... USING Organization: 2ndQuadrant Message-ID: <454638cf-d563-ab76-a585-2564428062af@2ndquadrant.com> Date: Mon, 17 Jun 2019 16:40:57 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------E95FF15189EFA1FB1EAE5212" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------E95FF15189EFA1FB1EAE5212 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit A small new feature in SQL:2016 allows attaching a table alias to a JOIN/USING construct: ::= USING [ AS ] (The part in brackets is new.) This seems quite useful, and it seems the code would already support this if we allow the grammar to accept this syntax. Patch attached. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------E95FF15189EFA1FB1EAE5212 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Allow-an-alias-to-be-attached-directly-to-a-JOIN-.-U.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Allow-an-alias-to-be-attached-directly-to-a-JOIN-.-U.pa"; filename*1="tch" RnJvbSBlMWM5ZTdiN2ExMmYwZjdhYmE4ZjVjODhhNzkwOWE2MTE3MWRlZTI3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAxNyBKdW4gMjAxOSAxNTozNTozMiArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIEFsbG93IGFuIGFsaWFzIHRvIGJlIGF0dGFjaGVkIGRpcmVjdGx5IHRvIGEg Sk9JTiAuLi4gVVNJTkcKClRoaXMgYWxsb3dzIHNvbWV0aGluZyBsaWtlCgogICAgU0VMRUNU IC4uLiBGUk9NIHQxIEpPSU4gdDIgVVNJTkcgKGEsIGIsIGMpIEFTIHgKCmluc3RlYWQgb2Yg cmVxdWlyaW5nIHBhcmVudGhlc2VzIGZvciB0aGUgYWxpYXMgbGlrZQoKICAgIFNFTEVDVCAu Li4gRlJPTSAodDEgSk9JTiB0MiBVU0lORyAoYSwgYiwgYykpIEFTIHgKCnBlciBTUUw6MjAx NiBmZWF0dXJlIEY0MDQgIlJhbmdlIHZhcmlhYmxlIGZvciBjb21tb24gY29sdW1uIG5hbWVz Ii4KClRoZSBwYXJzZSBhbmFseXNpcyBndXRzIGFscmVhZHkgc3VwcG9ydCB0aGlzLCBzbyB0 aGlzIHBhdGNoIG9ubHkKaGFzIHRvIGFkanVzdCB0aGUgZ3JhbW1hciBhIGJpdC4KLS0tCiBk b2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tl bmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0IHwgIDIgKy0KIHNyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkgICAgICAgICAgICB8IDY5ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgICB8IDE4ICsrKysrKysrCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9qb2luLnNxbCAgICAgICAgfCAgNSArKwogNSBmaWxlcyBj aGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9zZWxl Y3Quc2dtbAppbmRleCAwNmQ2MTFiNjRjLi42MjhiNjdhMTFhIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvc2VsZWN0 LnNnbWwKQEAgLTU5LDcgKzU5LDcgQEAKICAgICBbIExBVEVSQUwgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZnVuY3Rpb25fbmFtZTwvcmVwbGFjZWFibGU+ICggWyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJndW1lbnQ8L3JlcGxhY2VhYmxlPiBbLCAu Li5dIF0gKSBBUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fZGVm aW5pdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKQogICAgIFsgTEFURVJBTCBdIFJPV1Mg RlJPTSggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZ1bmN0aW9uX25hbWU8L3Jl cGxhY2VhYmxlPiAoIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ3VtZW50 PC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdICkgWyBBUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2x1bW5fZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBd IFssIC4uLl0gKQogICAgICAgICAgICAgICAgIFsgV0lUSCBPUkRJTkFMSVRZIF0gWyBbIEFT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFsaWFzPC9yZXBsYWNlYWJsZT4g WyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fYWxpYXM8L3JlcGxh Y2VhYmxlPiBbLCAuLi5dICkgXSBdCi0gICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmZyb21faXRlbTwvcmVwbGFjZWFibGU+IFsgTkFUVVJBTCBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5qb2luX3R5cGU8L3JlcGxhY2VhYmxlPiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT4gWyBPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+am9pbl9jb25kaXRpb248L3JlcGxhY2VhYmxlPiB8 IFVTSU5HICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmpvaW5fY29sdW1uPC9y ZXBsYWNlYWJsZT4gWywgLi4uXSApIF0KKyAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT4gWyBOQVRVUkFMIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmpvaW5fdHlwZTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5mcm9tX2l0ZW08L3JlcGxhY2VhYmxlPiBbIE9OIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5qb2luX2NvbmRpdGlvbjwvcmVwbGFjZWFibGU+ IHwgVVNJTkcgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+am9pbl9jb2x1bW48 L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgWyBBUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+YWxpYXM8L3JlcGxhY2VhYmxlPiBdIF0KIAogPHBocmFzZT5hbmQgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmdyb3VwaW5nX2VsZW1lbnQ8L3JlcGxhY2VhYmxlPiBj YW4gYmUgb25lIG9mOjwvcGhyYXNlPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL3NxbF9mZWF0dXJlcy50eHQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJl cy50eHQKaW5kZXggYWU4NzRmMzhlZS4uMTUxODhlZTk3MCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvc3FsX2ZlYXR1cmVzLnR4dApAQCAtMjY0LDcgKzI2NCw3IEBAIEY0MDEJRXh0ZW5kZWQg am9pbmVkIHRhYmxlCTAyCUZVTEwgT1VURVIgSk9JTglZRVMKIEY0MDEJRXh0ZW5kZWQgam9p bmVkIHRhYmxlCTA0CUNST1NTIEpPSU4JWUVTCQogRjQwMglOYW1lZCBjb2x1bW4gam9pbnMg Zm9yIExPQnMsIGFycmF5cywgYW5kIG11bHRpc2V0cwkJCVlFUwkKIEY0MDMJUGFydGl0aW9u ZWQgam9pbmVkIHRhYmxlcwkJCU5PCQotRjQwNAlSYW5nZSB2YXJpYWJsZSBmb3IgY29tbW9u IGNvbHVtbiBuYW1lcwkJCU5PCQorRjQwNAlSYW5nZSB2YXJpYWJsZSBmb3IgY29tbW9uIGNv bHVtbiBuYW1lcwkJCVlFUwkKIEY0MTEJVGltZSB6b25lIHNwZWNpZmljYXRpb24JCQlZRVMJ ZGlmZmVyZW5jZXMgcmVnYXJkaW5nIGxpdGVyYWwgaW50ZXJwcmV0YXRpb24KIEY0MjEJTmF0 aW9uYWwgY2hhcmFjdGVyCQkJWUVTCQogRjQzMQlSZWFkLW9ubHkgc2Nyb2xsYWJsZSBjdXJz b3JzCQkJWUVTCQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggODMxMWIxZGQ0Ni4uODQ0YTZlYWI4MiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CkBAIC00MzUsNyArNDM1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VS ZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUg KnF1ZXJ5KTsKICV0eXBlIDxsaXN0Pglsb2NrZWRfcmVsc19saXN0CiAldHlwZSA8Ym9vbGVh bj4JYWxsX29yX2Rpc3RpbmN0CiAKLSV0eXBlIDxub2RlPglqb2luX291dGVyIGpvaW5fcXVh bAorJXR5cGUgPG5vZGU+CWpvaW5fb3V0ZXIKICV0eXBlIDxqdHlwZT4Jam9pbl90eXBlCiAK ICV0eXBlIDxsaXN0PglleHRyYWN0X2xpc3Qgb3ZlcmxheV9saXN0IHBvc2l0aW9uX2xpc3QK QEAgLTQ4OCw3ICs0ODgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUg PGl2YWw+CXN1Yl90eXBlIG9wdF9tYXRlcmlhbGl6ZWQKICV0eXBlIDx2YWx1ZT4JTnVtZXJp Y09ubHkKICV0eXBlIDxsaXN0PglOdW1lcmljT25seV9saXN0Ci0ldHlwZSA8YWxpYXM+CWFs aWFzX2NsYXVzZSBvcHRfYWxpYXNfY2xhdXNlCisldHlwZSA8YWxpYXM+CWFsaWFzX2NsYXVz ZSBvcHRfYWxpYXNfY2xhdXNlIG9wdF9hbGlhc19jbGF1c2VfZm9yX2pvaW5fdXNpbmcKICV0 eXBlIDxsaXN0PglmdW5jX2FsaWFzX2NsYXVzZQogJXR5cGUgPHNvcnRieT4Jc29ydGJ5CiAl dHlwZSA8aWVsZW0+CWluZGV4X2VsZW0KQEAgLTExOTY3LDIwICsxMTk2NywyOCBAQCBqb2lu ZWRfdGFibGU6CiAJCQkJCW4tPnF1YWxzID0gTlVMTDsKIAkJCQkJJCQgPSBuOwogCQkJCX0K LQkJCXwgdGFibGVfcmVmIGpvaW5fdHlwZSBKT0lOIHRhYmxlX3JlZiBqb2luX3F1YWwKKwkJ CXwgdGFibGVfcmVmIGpvaW5fdHlwZSBKT0lOIHRhYmxlX3JlZiBPTiBhX2V4cHIKIAkJCQl7 CiAJCQkJCUpvaW5FeHByICpuID0gbWFrZU5vZGUoSm9pbkV4cHIpOwogCQkJCQluLT5qb2lu dHlwZSA9ICQyOwogCQkJCQluLT5pc05hdHVyYWwgPSBmYWxzZTsKIAkJCQkJbi0+bGFyZyA9 ICQxOwogCQkJCQluLT5yYXJnID0gJDQ7Ci0JCQkJCWlmICgkNSAhPSBOVUxMICYmIElzQSgk NSwgTGlzdCkpCi0JCQkJCQluLT51c2luZ0NsYXVzZSA9IChMaXN0ICopICQ1OyAvKiBVU0lO RyBjbGF1c2UgKi8KLQkJCQkJZWxzZQotCQkJCQkJbi0+cXVhbHMgPSAkNTsgLyogT04gY2xh dXNlICovCisJCQkJCW4tPnF1YWxzID0gJDY7CisJCQkJCSQkID0gbjsKKwkJCQl9CisJCQl8 IHRhYmxlX3JlZiBqb2luX3R5cGUgSk9JTiB0YWJsZV9yZWYgVVNJTkcgJygnIG5hbWVfbGlz dCAnKScgb3B0X2FsaWFzX2NsYXVzZV9mb3Jfam9pbl91c2luZworCQkJCXsKKwkJCQkJSm9p bkV4cHIgKm4gPSBtYWtlTm9kZShKb2luRXhwcik7CisJCQkJCW4tPmpvaW50eXBlID0gJDI7 CisJCQkJCW4tPmlzTmF0dXJhbCA9IGZhbHNlOworCQkJCQluLT5sYXJnID0gJDE7CisJCQkJ CW4tPnJhcmcgPSAkNDsKKwkJCQkJbi0+dXNpbmdDbGF1c2UgPSAkNzsKKwkJCQkJbi0+YWxp YXMgPSAkOTsKIAkJCQkJJCQgPSBuOwogCQkJCX0KLQkJCXwgdGFibGVfcmVmIEpPSU4gdGFi bGVfcmVmIGpvaW5fcXVhbAorCQkJfCB0YWJsZV9yZWYgSk9JTiB0YWJsZV9yZWYgT04gYV9l eHByCiAJCQkJewogCQkJCQkvKiBsZXR0aW5nIGpvaW5fdHlwZSByZWR1Y2UgdG8gZW1wdHkg ZG9lc24ndCB3b3JrICovCiAJCQkJCUpvaW5FeHByICpuID0gbWFrZU5vZGUoSm9pbkV4cHIp OwpAQCAtMTE5ODgsMTAgKzExOTk2LDE5IEBAIGpvaW5lZF90YWJsZToKIAkJCQkJbi0+aXNO YXR1cmFsID0gZmFsc2U7CiAJCQkJCW4tPmxhcmcgPSAkMTsKIAkJCQkJbi0+cmFyZyA9ICQz OwotCQkJCQlpZiAoJDQgIT0gTlVMTCAmJiBJc0EoJDQsIExpc3QpKQotCQkJCQkJbi0+dXNp bmdDbGF1c2UgPSAoTGlzdCAqKSAkNDsgLyogVVNJTkcgY2xhdXNlICovCi0JCQkJCWVsc2UK LQkJCQkJCW4tPnF1YWxzID0gJDQ7IC8qIE9OIGNsYXVzZSAqLworCQkJCQluLT5xdWFscyA9 ICQ1OworCQkJCQkkJCA9IG47CisJCQkJfQorCQkJfCB0YWJsZV9yZWYgSk9JTiB0YWJsZV9y ZWYgVVNJTkcgJygnIG5hbWVfbGlzdCAnKScgb3B0X2FsaWFzX2NsYXVzZV9mb3Jfam9pbl91 c2luZworCQkJCXsKKwkJCQkJLyogbGV0dGluZyBqb2luX3R5cGUgcmVkdWNlIHRvIGVtcHR5 IGRvZXNuJ3Qgd29yayAqLworCQkJCQlKb2luRXhwciAqbiA9IG1ha2VOb2RlKEpvaW5FeHBy KTsKKwkJCQkJbi0+am9pbnR5cGUgPSBKT0lOX0lOTkVSOworCQkJCQluLT5pc05hdHVyYWwg PSBmYWxzZTsKKwkJCQkJbi0+bGFyZyA9ICQxOworCQkJCQluLT5yYXJnID0gJDM7CisJCQkJ CW4tPnVzaW5nQ2xhdXNlID0gJDY7CisJCQkJCW4tPmFsaWFzID0gJDg7CiAJCQkJCSQkID0g bjsKIAkJCQl9CiAJCQl8IHRhYmxlX3JlZiBOQVRVUkFMIGpvaW5fdHlwZSBKT0lOIHRhYmxl X3JlZgpAQCAtMTIwNDgsNiArMTIwNjUsMjEgQEAgb3B0X2FsaWFzX2NsYXVzZTogYWxpYXNf Y2xhdXNlCQkJCQkJeyAkJCA9ICQxOyB9CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9 IE5VTEw7IH0KIAkJOwogCisvKgorICogVGhlIGFsaWFzIGNsYXVzZSBhZnRlciBKT0lOIC4u LiBVU0lORyBvbmx5IGFjY2VwdHMgdGhlIEFTIENvbElkIHNwZWxsaW5nLAorICogcGVyIFNR TCBzdGFuZGFyZC4gIChUaGUgZ3JhbW1hciBjb3VsZCBwYXJzZSB0aGUgb3RoZXIgdmFyaWFu dHMsIGJ1dCB0aGV5CisgKiBkb24ndCBzZWVtIHRvIGJlIHVzZWZ1bCwgYW5kIGl0IG1pZ2h0 IGxlYWQgdG8gcGFyc2VyIHByb2JsZW1zIGluIHRoZQorICogZnV0dXJlLikKKyAqLworb3B0 X2FsaWFzX2NsYXVzZV9mb3Jfam9pbl91c2luZzoKKwkJCUFTIENvbElkCisJCQkJeworCQkJ CQkkJCA9IG1ha2VOb2RlKEFsaWFzKTsKKwkJCQkJJCQtPmFsaWFzbmFtZSA9ICQyOworCQkJ CX0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTlVMTDsgfQorCQk7CisKIC8qCiAg KiBmdW5jX2FsaWFzX2NsYXVzZSBjYW4gaW5jbHVkZSBib3RoIGFuIEFsaWFzIGFuZCBhIGNv bGRlZmxpc3QsIHNvIHdlIG1ha2UgaXQKICAqIHJldHVybiBhIDItZWxlbWVudCBsaXN0IHRo YXQgZ2V0cyBkaXNhc3NlbWJsZWQgYnkgY2FsbGluZyBwcm9kdWN0aW9uLgpAQCAtMTIwOTAs MTkgKzEyMTIyLDYgQEAgam9pbl9vdXRlcjogT1VURVJfUAkJCQkJCQkJCXsgJCQgPSBOVUxM OyB9CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0KIAkJOwogCi0vKiBK T0lOIHF1YWxpZmljYXRpb24gY2xhdXNlcwotICogUG9zc2liaWxpdGllcyBhcmU6Ci0gKglV U0lORyAoIGNvbHVtbiBsaXN0ICkgYWxsb3dzIG9ubHkgdW5xdWFsaWZpZWQgY29sdW1uIG5h bWVzLAotICoJCQkJCQkgIHdoaWNoIG11c3QgbWF0Y2ggYmV0d2VlbiB0YWJsZXMuCi0gKglP TiBleHByIGFsbG93cyBtb3JlIGdlbmVyYWwgcXVhbGlmaWNhdGlvbnMuCi0gKgotICogV2Ug cmV0dXJuIFVTSU5HIGFzIGEgTGlzdCBub2RlLCB3aGlsZSBhbiBPTi1leHByIHdpbGwgbm90 IGJlIGEgTGlzdC4KLSAqLwotCi1qb2luX3F1YWw6CVVTSU5HICcoJyBuYW1lX2xpc3QgJykn CQkJCQl7ICQkID0gKE5vZGUgKikgJDM7IH0KLQkJCXwgT04gYV9leHByCQkJCQkJCQl7ICQk ID0gJDI7IH0KLQkJOwotCiAKIHJlbGF0aW9uX2V4cHI6CiAJCQlxdWFsaWZpZWRfbmFtZQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKaW5kZXggMDdlNjMxZDQ1ZS4uNDI1MDI4 ZTgxMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CkBAIC0xNjIxLDYgKzE2 MjEsMjQgQEAgU0VMRUNUICcnIEFTICJ4eHgiLCAqCiAgICAgIHwgNCB8IDEgfCBvbmUgICB8 IDIKICg0IHJvd3MpCiAKKy0tIHRlc3QgYWxpYXNlcworU0VMRUNUICogRlJPTSBKMV9UQkwg Sk9JTiBKMl9UQkwgVVNJTkcgKGkpIFdIRVJFIEoxX1RCTC50ID0gJ29uZSc7ICAtLSBvawor IGkgfCBqIHwgIHQgIHwgayAgCistLS0rLS0tKy0tLS0tKy0tLS0KKyAxIHwgNCB8IG9uZSB8 IC0xCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gSjFfVEJMIEpPSU4gSjJfVEJMIFVTSU5H IChpKSBBUyB4IFdIRVJFIEoxX1RCTC50ID0gJ29uZSc7ICAtLSBlcnJvcgorRVJST1I6ICBp bnZhbGlkIHJlZmVyZW5jZSB0byBGUk9NLWNsYXVzZSBlbnRyeSBmb3IgdGFibGUgImoxX3Ri bCIKK0xJTkUgMTogLi4uQ1QgKiBGUk9NIEoxX1RCTCBKT0lOIEoyX1RCTCBVU0lORyAoaSkg QVMgeCBXSEVSRSBKMV9UQkwudCA9Li4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIFRoZXJlIGlzIGFu IGVudHJ5IGZvciB0YWJsZSAiajFfdGJsIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2Vk IGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KK1NFTEVDVCAqIEZST00gSjFfVEJMIEpP SU4gSjJfVEJMIFVTSU5HIChpKSBBUyB4IFdIRVJFIHgudCA9ICdvbmUnOyAgLS0gb2sKKyBp IHwgaiB8ICB0ICB8IGsgIAorLS0tKy0tLSstLS0tLSstLS0tCisgMSB8IDQgfCBvbmUgfCAt MQorKDEgcm93KQorCiAtLQogLS0gTkFUVVJBTCBKT0lOCiAtLSBJbm5lciBlcXVpLWpvaW4g b24gYWxsIGNvbHVtbnMgd2l0aCB0aGUgc2FtZSBuYW1lCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9qb2luLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pvaW4uc3Fs CmluZGV4IGJmNmQ1YzNhZTQuLjdmZjdmMzBkN2YgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2pvaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pvaW4uc3Fs CkBAIC0xMjYsNiArMTI2LDExIEBAIENSRUFURSBUQUJMRSBKMl9UQkwgKAogICBGUk9NIEox X1RCTCB0MSAoYSwgYiwgYykgSk9JTiBKMl9UQkwgdDIgKGEsIGIpIFVTSU5HIChiKQogICBP UkRFUiBCWSBiLCB0MS5hOwogCistLSB0ZXN0IGFsaWFzZXMKK1NFTEVDVCAqIEZST00gSjFf VEJMIEpPSU4gSjJfVEJMIFVTSU5HIChpKSBXSEVSRSBKMV9UQkwudCA9ICdvbmUnOyAgLS0g b2sKK1NFTEVDVCAqIEZST00gSjFfVEJMIEpPSU4gSjJfVEJMIFVTSU5HIChpKSBBUyB4IFdI RVJFIEoxX1RCTC50ID0gJ29uZSc7ICAtLSBlcnJvcgorU0VMRUNUICogRlJPTSBKMV9UQkwg Sk9JTiBKMl9UQkwgVVNJTkcgKGkpIEFTIHggV0hFUkUgeC50ID0gJ29uZSc7ICAtLSBvawor CiAKIC0tCiAtLSBOQVRVUkFMIEpPSU4KCmJhc2UtY29tbWl0OiA5MWFjZmY3YTUzOGU2ZTZh ODE3NTQ1MGEzOGM3ZmExZDlhMjkwMDExCi0tIAoyLjIyLjAKCg== --------------E95FF15189EFA1FB1EAE5212--