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 1qowDs-003YFe-6x for pgsql-hackers@arkaria.postgresql.org; Sat, 07 Oct 2023 01:35:16 +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 1qowDq-00Dv9h-0b for pgsql-hackers@arkaria.postgresql.org; Sat, 07 Oct 2023 01:35:14 +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 1qowDp-00Dv9W-Js for pgsql-hackers@lists.postgresql.org; Sat, 07 Oct 2023 01:35:14 +0000 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qowDn-000gyA-Jp for pgsql-hackers@lists.postgresql.org; Sat, 07 Oct 2023 01:35:13 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id BDF32E0002; Sat, 7 Oct 2023 01:35:07 +0000 (UTC) Content-Type: multipart/mixed; boundary="------------P04DY1SYpQk0wwUU0HQp2TV9" Message-ID: Date: Sat, 7 Oct 2023 02:35:06 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Add support for AT LOCAL Content-Language: en-US To: Michael Paquier Cc: cary huang , pgsql-hackers@lists.postgresql.org References: <8e25dec4-5667-c1a5-6581-167d710c2182@postgresfriends.org> <169541920143.2315938.17412414971559687288.pgcf@coridan.postgresql.org> From: Vik Fearing In-Reply-To: X-GND-Sasl: vik@postgresfriends.org List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------P04DY1SYpQk0wwUU0HQp2TV9 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/6/23 07:05, Michael Paquier wrote: > > I haven't yet finished my review of the patch, still looking at it. I realized that my regression tests are not exercising what I originally intended them to after this change. They are supposed to show that calling the function explicitly or using AT LOCAL is correctly reproduced by ruleutils.c. The attached v4 changes the regression tests (and nothing else). -- Vik Fearing --------------P04DY1SYpQk0wwUU0HQp2TV9 Content-Type: text/x-patch; charset=UTF-8; name="v4-0001-Add-support-for-AT-LOCAL.patch" Content-Disposition: attachment; filename="v4-0001-Add-support-for-AT-LOCAL.patch" Content-Transfer-Encoding: base64 RnJvbSAwMzI3MzIxNGYwMzIwZTM0N2EwYjAxMjc2M2RjODJjZDkxYWU2Nzc1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWaWsgRmVhcmluZyA8dmlrQHBvc3RncmVzZnJpZW5k cy5vcmc+CkRhdGU6IFdlZCwgNCBPY3QgMjAyMyAxNTo0NjozOCArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjRdIEFkZCBzdXBwb3J0IGZvciBBVCBMT0NBTAoKV2hlbiBjb252ZXJ0aW5nIGEg dGltZXN0YW1wIHRvL2Zyb20gd2l0aC93aXRob3V0IHRpbWUgem9uZSwgdGhlIFNRTApTdGFu ZGFyZCBzcGVjaWZpZXMgYW4gQVQgTE9DQUwgdmFyaWFudCBvZiBBVCBUSU1FIFpPTkUgd2hp Y2ggdXNlcyB0aGUKc2Vzc2lvbidzIHRpbWUgem9uZS4KLS0tCiBkb2Mvc3JjL3NnbWwvZnVu Yy5zZ21sICAgICAgICAgICAgICAgICAgICB8IDEzICsrKysrKysKIHNyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgICAgICAgICAgICAgICAgIHwgIDcgKysrKwogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgfCAgOSArKysrKwogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3RpbWVzdGFtcC5jICAgICAgICAgfCAyMCArKysrKysrKysrCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICB8ICA2ICsrKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC90aW1lc3RhbXB0ei5vdXQgfCA0NyArKysrKysrKysrKysrKysrKysr KysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGltZXN0YW1wdHouc3FsICAgICAgfCAyMSAr KysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDEyMyBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwK aW5kZXggZjFhZDY0YzNkNi4uNmJjNjE3MDVhOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2Z1bmMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0xMDYxOSwxMiAr MTA2MTksMTYgQEAgU0VMRUNUIGRhdGVfYmluKCcxNSBtaW51dGVzJywgVElNRVNUQU1QICcy MDIwLTAyLTExIDE1OjQ0OjE3JywgVElNRVNUQU1QICcyMDAxLTAKICAgIDwvaW5kZXh0ZXJt PgogCiAgICA8aW5kZXh0ZXJtPgogICAgIDxwcmltYXJ5PkFUIFRJTUUgWk9ORTwvcHJpbWFy eT4KICAgIDwvaW5kZXh0ZXJtPgogCisgICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PkFU IExPQ0FMPC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKICAgIDxwYXJhPgogICAgIFRo ZSA8bGl0ZXJhbD5BVCBUSU1FIFpPTkU8L2xpdGVyYWw+IG9wZXJhdG9yIGNvbnZlcnRzIHRp bWUKICAgICBzdGFtcCA8ZW1waGFzaXM+d2l0aG91dDwvZW1waGFzaXM+IHRpbWUgem9uZSB0 by9mcm9tCiAgICAgdGltZSBzdGFtcCA8ZW1waGFzaXM+d2l0aDwvZW1waGFzaXM+IHRpbWUg em9uZSwgYW5kCiAgICAgPHR5cGU+dGltZSB3aXRoIHRpbWUgem9uZTwvdHlwZT4gdmFsdWVz IHRvIGRpZmZlcmVudCB0aW1lCiAgICAgem9uZXMuIDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9u cy1kYXRldGltZS16b25lY29udmVydC10YWJsZSIvPiBzaG93cyBpdHMKQEAgLTEwNzA3LDI0 ICsxMDcxMSwzMyBAQCBTRUxFQ1QgZGF0ZV9iaW4oJzE1IG1pbnV0ZXMnLCBUSU1FU1RBTVAg JzIwMjAtMDItMTEgMTU6NDQ6MTcnLCBUSU1FU1RBTVAgJzIwMDEtMAogICAgIEluIHRoZSB0 ZXh0IGNhc2UsIGEgdGltZSB6b25lIG5hbWUgY2FuIGJlIHNwZWNpZmllZCBpbiBhbnkgb2Yg dGhlIHdheXMKICAgICBkZXNjcmliZWQgaW4gPHhyZWYgbGlua2VuZD0iZGF0YXR5cGUtdGlt ZXpvbmVzIi8+LgogICAgIFRoZSBpbnRlcnZhbCBjYXNlIGlzIG9ubHkgdXNlZnVsIGZvciB6 b25lcyB0aGF0IGhhdmUgZml4ZWQgb2Zmc2V0cyBmcm9tCiAgICAgVVRDLCBzbyBpdCBpcyBu b3QgdmVyeSBjb21tb24gaW4gcHJhY3RpY2UuCiAgICA8L3BhcmE+CiAKKyAgIDxwYXJhPgor ICAgIFRoZSBzeW50YXggPGxpdGVyYWw+QVQgTE9DQUw8L2xpdGVyYWw+IG1heSBiZSB1c2Vk IGFzIHNob3J0aGFuZCBmb3IgPGxpdGVyYWw+QVQgVElNRSBaT05FCisgICAgPHJlcGxhY2Vh YmxlPmxvY2FsPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+LCB3aGVyZSA8cmVwbGFjZWFibGU+ bG9jYWw8L3JlcGxhY2VhYmxlPiBpcyB0aGUKKyAgICBzZXNzaW9uJ3MgPHZhcm5hbWU+VGlt ZVpvbmU8L3Zhcm5hbWU+IHZhbHVlLgorICAgPC9wYXJhPgorCiAgICA8cGFyYT4KICAgICBF eGFtcGxlcyAoYXNzdW1pbmcgdGhlIGN1cnJlbnQgPHhyZWYgbGlua2VuZD0iZ3VjLXRpbWV6 b25lIi8+IHNldHRpbmcKICAgICBpcyA8bGl0ZXJhbD5BbWVyaWNhL0xvc19BbmdlbGVzPC9s aXRlcmFsPik6CiA8c2NyZWVuPgogU0VMRUNUIFRJTUVTVEFNUCAnMjAwMS0wMi0xNiAyMDoz ODo0MCcgQVQgVElNRSBaT05FICdBbWVyaWNhL0RlbnZlcic7CiA8bGluZWFubm90YXRpb24+ UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxjb21wdXRlcm91dHB1dD4yMDAxLTAyLTE2IDE5 OjM4OjQwLTA4PC9jb21wdXRlcm91dHB1dD4KIAogU0VMRUNUIFRJTUVTVEFNUCBXSVRIIFRJ TUUgWk9ORSAnMjAwMS0wMi0xNiAyMDozODo0MC0wNScgQVQgVElNRSBaT05FICdBbWVyaWNh L0RlbnZlcic7CiA8bGluZWFubm90YXRpb24+UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxj b21wdXRlcm91dHB1dD4yMDAxLTAyLTE2IDE4OjM4OjQwPC9jb21wdXRlcm91dHB1dD4KIAog U0VMRUNUIFRJTUVTVEFNUCAnMjAwMS0wMi0xNiAyMDozODo0MCcgQVQgVElNRSBaT05FICdB c2lhL1Rva3lvJyBBVCBUSU1FIFpPTkUgJ0FtZXJpY2EvQ2hpY2Fnbyc7CiA8bGluZWFubm90 YXRpb24+UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxjb21wdXRlcm91dHB1dD4yMDAxLTAy LTE2IDA1OjM4OjQwPC9jb21wdXRlcm91dHB1dD4KKworU0VMRUNUIFRJTUVTVEFNUCBXSVRI IFRJTUUgWk9ORSAnMjAwMS0wMi0xNiAyMDozODo0MC0wNScgQVQgTE9DQUw7Cis8bGluZWFu bm90YXRpb24+UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxjb21wdXRlcm91dHB1dD4yMDAx LTAyLTE2IDE3OjM4OjQwPC9jb21wdXRlcm91dHB1dD4KIDwvc2NyZWVuPgogICAgIFRoZSBm aXJzdCBleGFtcGxlIGFkZHMgYSB0aW1lIHpvbmUgdG8gYSB2YWx1ZSB0aGF0IGxhY2tzIGl0 LCBhbmQKICAgICBkaXNwbGF5cyB0aGUgdmFsdWUgdXNpbmcgdGhlIGN1cnJlbnQgPHZhcm5h bWU+VGltZVpvbmU8L3Zhcm5hbWU+CiAgICAgc2V0dGluZy4gIFRoZSBzZWNvbmQgZXhhbXBs ZSBzaGlmdHMgdGhlIHRpbWUgc3RhbXAgd2l0aCB0aW1lIHpvbmUgdmFsdWUKICAgICB0byB0 aGUgc3BlY2lmaWVkIHRpbWUgem9uZSwgYW5kIHJldHVybnMgdGhlIHZhbHVlIHdpdGhvdXQg YSB0aW1lIHpvbmUuCiAgICAgVGhpcyBhbGxvd3Mgc3RvcmFnZSBhbmQgZGlzcGxheSBvZiB2 YWx1ZXMgZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGU1 NmNiZTc3Y2IuLjUwZWQ1MDRlNWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMTQ1MDUsMTIgKzE0 NTA1LDE5IEBAIGFfZXhwcjoJCWNfZXhwcgkJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCXsK IAkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlRnVuY0NhbGwoU3lzdGVtRnVuY05hbWUoInRpbWV6 b25lIiksCiAJCQkJCQkJCQkJCSAgIGxpc3RfbWFrZTIoJDUsICQxKSwKIAkJCQkJCQkJCQkJ ICAgQ09FUkNFX1NRTF9TWU5UQVgsCiAJCQkJCQkJCQkJCSAgIEAyKTsKIAkJCQl9CisJCQl8 IGFfZXhwciBBVCBMT0NBTAkJCQkJCSVwcmVjIEFUCisJCQkJeworCQkJCQkkJCA9IChOb2Rl ICopIG1ha2VGdW5jQ2FsbChTeXN0ZW1GdW5jTmFtZSgidGltZXpvbmUiKSwKKwkJCQkJCQkJ CQkJICAgbGlzdF9tYWtlMSgkMSksCisJCQkJCQkJCQkJCSAgIENPRVJDRV9TUUxfU1lOVEFY LAorCQkJCQkJCQkJCQkgICAtMSk7CisJCQkJfQogCQkvKgogCQkgKiBUaGVzZSBvcGVyYXRv cnMgbXVzdCBiZSBjYWxsZWQgb3V0IGV4cGxpY2l0bHkgaW4gb3JkZXIgdG8gbWFrZSB1c2UK IAkJICogb2YgYmlzb24ncyBhdXRvbWF0aWMgb3BlcmF0b3ItcHJlY2VkZW5jZSBoYW5kbGlu Zy4gIEFsbCBvdGhlcgogCQkgKiBvcGVyYXRvciBuYW1lcyBhcmUgaGFuZGxlZCBieSB0aGUg Z2VuZXJpYyBwcm9kdWN0aW9ucyB1c2luZyAiT3AiLAogCQkgKiBiZWxvdzsgYW5kIGFsbCB0 aG9zZSBvcGVyYXRvcnMgd2lsbCBoYXZlIHRoZSBzYW1lIHByZWNlZGVuY2UuCiAJCSAqCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggNDQyMjA1MzgyZS4uOWQxYjBiMTNi MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMTAzNDQsMTIgKzEwMzQ0 LDIxIEBAIGdldF9mdW5jX3NxbF9zeW50YXgoRnVuY0V4cHIgKmV4cHIsIGRlcGFyc2VfY29u dGV4dCAqY29udGV4dCkKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIEFUIFRJ TUUgWk9ORSAiKTsKIAkJCWdldF9ydWxlX2V4cHJfcGFyZW4oKE5vZGUgKikgbGluaXRpYWwo ZXhwci0+YXJncyksIGNvbnRleHQsIGZhbHNlLAogCQkJCQkJCQkoTm9kZSAqKSBleHByKTsK IAkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKIAkJCXJldHVybiB0cnVlOwog CisJCWNhc2UgRl9USU1FWk9ORV9USU1FU1RBTVA6CisJCWNhc2UgRl9USU1FWk9ORV9USU1F U1RBTVBUWjoKKwkJCS8qIEFUIExPQ0FMICovCisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihi dWYsICcoJyk7CisJCQlnZXRfcnVsZV9leHByX3BhcmVuKChOb2RlICopIGxpbml0aWFsKGV4 cHItPmFyZ3MpLCBjb250ZXh0LCBmYWxzZSwKKwkJCQkJCQkJKE5vZGUgKikgZXhwcik7CisJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBBVCBMT0NBTCkiKTsKKwkJCXJldHVy biB0cnVlOworCiAJCWNhc2UgRl9PVkVSTEFQU19USU1FU1RBTVBUWl9JTlRFUlZBTF9USU1F U1RBTVBUWl9JTlRFUlZBTDoKIAkJY2FzZSBGX09WRVJMQVBTX1RJTUVTVEFNUFRaX0lOVEVS VkFMX1RJTUVTVEFNUFRaX1RJTUVTVEFNUFRaOgogCQljYXNlIEZfT1ZFUkxBUFNfVElNRVNU QU1QVFpfVElNRVNUQU1QVFpfVElNRVNUQU1QVFpfSU5URVJWQUw6CiAJCWNhc2UgRl9PVkVS TEFQU19USU1FU1RBTVBUWl9USU1FU1RBTVBUWl9USU1FU1RBTVBUWl9USU1FU1RBTVBUWjoK IAkJY2FzZSBGX09WRVJMQVBTX1RJTUVTVEFNUF9JTlRFUlZBTF9USU1FU1RBTVBfSU5URVJW QUw6CiAJCWNhc2UgRl9PVkVSTEFQU19USU1FU1RBTVBfSU5URVJWQUxfVElNRVNUQU1QX1RJ TUVTVEFNUDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwppbmRleCAwZTUwYWFlYzVh Li5lMTcyZTkwNjE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0 YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC01OTE4 LDYgKzU5MTgsMjYgQEAgZ2VuZXJhdGVfc2VyaWVzX3RpbWVzdGFtcHR6KFBHX0ZVTkNUSU9O X0FSR1MpCiAKIERhdHVtCiBnZW5lcmF0ZV9zZXJpZXNfdGltZXN0YW1wdHpfYXRfem9uZShQ R19GVU5DVElPTl9BUkdTKQogewogCXJldHVybiBnZW5lcmF0ZV9zZXJpZXNfdGltZXN0YW1w dHpfaW50ZXJuYWwoZmNpbmZvKTsKIH0KKworLyogdGltZXN0YW1wX2F0X2xvY2FsKCkKKyAq IHRpbWVzdGFtcHR6X2F0X2xvY2FsKCkKKyAqCisgKiBUaGUgcmVncmVzc2lvbiB0ZXN0cyBk byBub3QgbGlrZSB0d28gZnVuY3Rpb25zIHdpdGggdGhlIHNhbWUgcHJvYXJncyBhbmQKKyAq IHByb3NyYyBidXQgZGlmZmVyZW50IHByb25hbWUsIGJ1dCB0aGUgZ3JhbW1hciBmb3IgQVQg TE9DQUwgbmVlZHMgYW4KKyAqIG92ZXJsb2FkZWQgbmFtZSB0byBoYW5kbGUgYm90aCB0eXBl cyBvZiB0aW1lc3RhbXAsIHNvIHdlIG1ha2Ugc2ltcGxlCisgKiB3cmFwcGVycyBmb3IgaXQu CisgKi8KK0RhdHVtCit0aW1lc3RhbXBfYXRfbG9jYWwoUEdfRlVOQ1RJT05fQVJHUykKK3sK KwlyZXR1cm4gdGltZXN0YW1wX3RpbWVzdGFtcHR6KGZjaW5mbyk7Cit9CisKK0RhdHVtCit0 aW1lc3RhbXB0el9hdF9sb2NhbChQR19GVU5DVElPTl9BUkdTKQoreworCXJldHVybiB0aW1l c3RhbXB0el90aW1lc3RhbXAoZmNpbmZvKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 CmluZGV4IGYwYjdiOWNiZDguLjIxNjQ1YjYzYTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdApAQCAtMjMxNiwxMiArMjMxNiwxOCBAQAogeyBvaWQgPT4gJzExNTgnLCBkZXNjciA9 PiAnY29udmVydCBVTklYIGVwb2NoIHRvIHRpbWVzdGFtcHR6JywKICAgcHJvbmFtZSA9PiAn dG9fdGltZXN0YW1wJywgcHJvcmV0dHlwZSA9PiAndGltZXN0YW1wdHonLAogICBwcm9hcmd0 eXBlcyA9PiAnZmxvYXQ4JywgcHJvc3JjID0+ICdmbG9hdDhfdGltZXN0YW1wdHonIH0sCiB7 IG9pZCA9PiAnMTE1OScsIGRlc2NyID0+ICdhZGp1c3QgdGltZXN0YW1wIHRvIG5ldyB0aW1l IHpvbmUnLAogICBwcm9uYW1lID0+ICd0aW1lem9uZScsIHByb3JldHR5cGUgPT4gJ3RpbWVz dGFtcCcsCiAgIHByb2FyZ3R5cGVzID0+ICd0ZXh0IHRpbWVzdGFtcHR6JywgcHJvc3JjID0+ ICd0aW1lc3RhbXB0el96b25lJyB9LAoreyBvaWQgPT4gJzkxNTknLCBkZXNjciA9PiAnYWRq dXN0IHRpbWVzdGFtcCB0byBsb2NhbCB0aW1lIHpvbmUnLAorICBwcm9uYW1lID0+ICd0aW1l em9uZScsIHByb3JldHR5cGUgPT4gJ3RpbWVzdGFtcCcsCisgIHByb2FyZ3R5cGVzID0+ICd0 aW1lc3RhbXB0eicsIHByb3NyYyA9PiAndGltZXN0YW1wdHpfYXRfbG9jYWwnIH0sCit7IG9p ZCA9PiAnOTE2MCcsIGRlc2NyID0+ICdhZGp1c3QgdGltZXN0YW1wIHRvIGxvY2FsIHRpbWUg em9uZScsCisgIHByb25hbWUgPT4gJ3RpbWV6b25lJywgcHJvcmV0dHlwZSA9PiAndGltZXN0 YW1wdHonLAorICBwcm9hcmd0eXBlcyA9PiAndGltZXN0YW1wJywgcHJvc3JjID0+ICd0aW1l c3RhbXBfYXRfbG9jYWwnIH0sCiAKIHsgb2lkID0+ICcxMTYwJywgZGVzY3IgPT4gJ0kvTycs CiAgIHByb25hbWUgPT4gJ2ludGVydmFsX2luJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9y ZXR0eXBlID0+ICdpbnRlcnZhbCcsCiAgIHByb2FyZ3R5cGVzID0+ICdjc3RyaW5nIG9pZCBp bnQ0JywgcHJvc3JjID0+ICdpbnRlcnZhbF9pbicgfSwKIHsgb2lkID0+ICcxMTYxJywgZGVz Y3IgPT4gJ0kvTycsCiAgIHByb25hbWUgPT4gJ2ludGVydmFsX291dCcsIHByb3ZvbGF0aWxl ID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnY3N0cmluZycsCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3RpbWVzdGFtcHR6Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvdGltZXN0YW1wdHoub3V0CmluZGV4IDBkZDJmZTJjODIuLjY0ZmRjNjRhMTQg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGltZXN0YW1wdHoub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGltZXN0YW1wdHoub3V0CkBAIC0z MTMyLDEyICszMTMyLDU5IEBAIFNFTEVDVCAnMjAxNC0xMC0yNSAyMjowMDowMSBVVEMnOjp0 aW1lc3RhbXB0eiBBVCBUSU1FIFpPTkUgJ01TSyc7CiBTRUxFQ1QgJzIwMTQtMTAtMjUgMjM6 MDA6MDAgVVRDJzo6dGltZXN0YW1wdHogQVQgVElNRSBaT05FICdNU0snOwogICAgICAgICAg dGltZXpvbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgU3VuIE9j dCAyNiAwMjowMDowMCAyMDE0CiAoMSByb3cpCiAKKy0tCistLSBUZXN0IExPQ0FMIHRpbWUg em9uZQorLS0KK0JFR0lOOworU0VUIExPQ0FMIFRJTUUgWk9ORSAnRXVyb3BlL1BhcmlzJzsK K1ZBTFVFUyAoQ0FTVCgnMTk3OC0wNy0wNyAxOTozOCBBbWVyaWNhL05ld19Zb3JrJyBBUyBU SU1FU1RBTVAgV0lUSCBUSU1FIFpPTkUpIEFUIExPQ0FMKTsKKyAgICAgICAgIGNvbHVtbjEg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNhdCBKdWwgMDggMDE6 Mzg6MDAgMTk3OAorKDEgcm93KQorCitWQUxVRVMgKFRJTUVTVEFNUCAnMTk3OC0wNy0wNyAx OTozOCcgQVQgTE9DQUwpOworICAgICAgICAgICAgY29sdW1uMSAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEZyaSBKdWwgMDcgMTk6Mzg6MDAgMTk3 OCBDRVNUCisoMSByb3cpCisKK1NFVCBMT0NBTCBUSU1FIFpPTkUgJ0F1c3RyYWxpYS9TeWRu ZXknOworVkFMVUVTIChDQVNUKCcxOTc4LTA3LTA3IDE5OjM4IEFtZXJpY2EvTmV3X1lvcmsn IEFTIFRJTUVTVEFNUCBXSVRIIFRJTUUgWk9ORSkgQVQgTE9DQUwpOworICAgICAgICAgY29s dW1uMSAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2F0IEp1bCAw OCAwOTozODowMCAxOTc4CisoMSByb3cpCisKK1ZBTFVFUyAoVElNRVNUQU1QICcxOTc4LTA3 LTA3IDE5OjM4JyBBVCBMT0NBTCk7CisgICAgICAgICAgICBjb2x1bW4xICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgRnJpIEp1bCAwNyAxOTozODow MCAxOTc4IEFFU1QKKygxIHJvdykKKworUkVTRVQgVElNRSBaT05FOworQ1JFQVRFIFZJRVcg bG9jYWxfdGltZV96b25lIEFTCisgICAgVkFMVUVTIChDQVNUKCcxOTc4LTA3LTA3IDE5OjM4 IEFtZXJpY2EvTmV3X1lvcmsnIEFTIFRJTUVTVEFNUCBXSVRIIFRJTUUgWk9ORSkgQVQgTE9D QUwsCisgICAgICAgICAgICB0aW1lem9uZShDQVNUKCcxOTc4LTA3LTA3IDE5OjM4IEFtZXJp Y2EvTmV3X1lvcmsnIEFTIFRJTUVTVEFNUCBXSVRIIFRJTUUgWk9ORSkpLAorICAgICAgICAg ICAgVElNRVNUQU1QICcxOTc4LTA3LTA3IDE5OjM4JyBBVCBMT0NBTCwKKyAgICAgICAgICAg IHRpbWV6b25lKFRJTUVTVEFNUCAnMTk3OC0wNy0wNyAxOTozOCcpKTsKK1xzdiBsb2NhbF90 aW1lX3pvbmUKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLmxvY2FsX3RpbWVfem9u ZSBBUworIFZBTFVFUyAoKCdGcmkgSnVsIDA3IDE2OjM4OjAwIDE5NzggUERUJzo6dGltZXN0 YW1wIHdpdGggdGltZSB6b25lIEFUIExPQ0FMKSx0aW1lem9uZSgnRnJpIEp1bCAwNyAxNjoz ODowMCAxOTc4IFBEVCc6OnRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSksKCdGcmkgSnVsIDA3 IDE5OjM4OjAwIDE5NzgnOjp0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgQVQgTE9DQUwp LHRpbWV6b25lKCdGcmkgSnVsIDA3IDE5OjM4OjAwIDE5NzgnOjp0aW1lc3RhbXAgd2l0aG91 dCB0aW1lIHpvbmUpKQorVEFCTEUgbG9jYWxfdGltZV96b25lOworICAgICAgICAgY29sdW1u MSAgICAgICAgICB8ICAgICAgICAgY29sdW1uMiAgICAgICAgICB8ICAgICAgICAgICBjb2x1 bW4zICAgICAgICAgICAgfCAgICAgICAgICAgY29sdW1uNCAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEZyaSBKdWwgMDcgMTY6Mzg6MDAgMTk3OCB8IEZyaSBKdWwgMDcgMTY6Mzg6MDAgMTk3 OCB8IEZyaSBKdWwgMDcgMTk6Mzg6MDAgMTk3OCBQRFQgfCBGcmkgSnVsIDA3IDE5OjM4OjAw IDE5NzggUERUCisoMSByb3cpCisKK0RST1AgVklFVyBsb2NhbF90aW1lX3pvbmU7CitDT01N SVQ7CiAtLQogLS0gVGVzdCB0aGF0IEFUIFRJTUUgWk9ORSBpc24ndCBtaXNvcHRpbWl6ZWQg d2hlbiB1c2luZyBhbiBpbmRleCAoYnVnICMxNDUwNCkKIC0tCiBjcmVhdGUgdGVtcCB0YWJs ZSB0bXB0eiAoZjEgdGltZXN0YW1wdHogcHJpbWFyeSBrZXkpOwogaW5zZXJ0IGludG8gdG1w dHogdmFsdWVzICgnMjAxNy0wMS0xOCAwMDowMCswMCcpOwogZXhwbGFpbiAoY29zdHMgb2Zm KQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGltZXN0YW1wdHouc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvdGltZXN0YW1wdHouc3FsCmluZGV4IDY5YjM2ZDA0MjAu LjUzYjU4NzhlMjEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpbWVzdGFt cHR6LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90aW1lc3RhbXB0ei5zcWwKQEAg LTYwOCwxMiArNjA4LDMzIEBAIFNFTEVDVCAnMjAxMS0wMy0yNyAwMDowMDowMCBVVEMnOjp0 aW1lc3RhbXB0eiBBVCBUSU1FIFpPTkUgJ01TSyc7CiBTRUxFQ1QgJzIwMTQtMTAtMjUgMjE6 MDA6MDAgVVRDJzo6dGltZXN0YW1wdHogQVQgVElNRSBaT05FICdNU0snOwogU0VMRUNUICcy MDE0LTEwLTI1IDIxOjU5OjU5IFVUQyc6OnRpbWVzdGFtcHR6IEFUIFRJTUUgWk9ORSAnTVNL JzsKIFNFTEVDVCAnMjAxNC0xMC0yNSAyMjowMDowMCBVVEMnOjp0aW1lc3RhbXB0eiBBVCBU SU1FIFpPTkUgJ01TSyc7CiBTRUxFQ1QgJzIwMTQtMTAtMjUgMjI6MDA6MDEgVVRDJzo6dGlt ZXN0YW1wdHogQVQgVElNRSBaT05FICdNU0snOwogU0VMRUNUICcyMDE0LTEwLTI1IDIzOjAw OjAwIFVUQyc6OnRpbWVzdGFtcHR6IEFUIFRJTUUgWk9ORSAnTVNLJzsKIAorLS0KKy0tIFRl c3QgTE9DQUwgdGltZSB6b25lCistLQorQkVHSU47CitTRVQgTE9DQUwgVElNRSBaT05FICdF dXJvcGUvUGFyaXMnOworVkFMVUVTIChDQVNUKCcxOTc4LTA3LTA3IDE5OjM4IEFtZXJpY2Ev TmV3X1lvcmsnIEFTIFRJTUVTVEFNUCBXSVRIIFRJTUUgWk9ORSkgQVQgTE9DQUwpOworVkFM VUVTIChUSU1FU1RBTVAgJzE5NzgtMDctMDcgMTk6MzgnIEFUIExPQ0FMKTsKK1NFVCBMT0NB TCBUSU1FIFpPTkUgJ0F1c3RyYWxpYS9TeWRuZXknOworVkFMVUVTIChDQVNUKCcxOTc4LTA3 LTA3IDE5OjM4IEFtZXJpY2EvTmV3X1lvcmsnIEFTIFRJTUVTVEFNUCBXSVRIIFRJTUUgWk9O RSkgQVQgTE9DQUwpOworVkFMVUVTIChUSU1FU1RBTVAgJzE5NzgtMDctMDcgMTk6MzgnIEFU IExPQ0FMKTsKK1JFU0VUIFRJTUUgWk9ORTsKK0NSRUFURSBWSUVXIGxvY2FsX3RpbWVfem9u ZSBBUworICAgIFZBTFVFUyAoQ0FTVCgnMTk3OC0wNy0wNyAxOTozOCBBbWVyaWNhL05ld19Z b3JrJyBBUyBUSU1FU1RBTVAgV0lUSCBUSU1FIFpPTkUpIEFUIExPQ0FMLAorICAgICAgICAg ICAgdGltZXpvbmUoQ0FTVCgnMTk3OC0wNy0wNyAxOTozOCBBbWVyaWNhL05ld19Zb3JrJyBB UyBUSU1FU1RBTVAgV0lUSCBUSU1FIFpPTkUpKSwKKyAgICAgICAgICAgIFRJTUVTVEFNUCAn MTk3OC0wNy0wNyAxOTozOCcgQVQgTE9DQUwsCisgICAgICAgICAgICB0aW1lem9uZShUSU1F U1RBTVAgJzE5NzgtMDctMDcgMTk6MzgnKSk7Citcc3YgbG9jYWxfdGltZV96b25lCitUQUJM RSBsb2NhbF90aW1lX3pvbmU7CitEUk9QIFZJRVcgbG9jYWxfdGltZV96b25lOworQ09NTUlU OworCiAtLQogLS0gVGVzdCB0aGF0IEFUIFRJTUUgWk9ORSBpc24ndCBtaXNvcHRpbWl6ZWQg d2hlbiB1c2luZyBhbiBpbmRleCAoYnVnICMxNDUwNCkKIC0tCiBjcmVhdGUgdGVtcCB0YWJs ZSB0bXB0eiAoZjEgdGltZXN0YW1wdHogcHJpbWFyeSBrZXkpOwogaW5zZXJ0IGludG8gdG1w dHogdmFsdWVzICgnMjAxNy0wMS0xOCAwMDowMCswMCcpOwogZXhwbGFpbiAoY29zdHMgb2Zm KQoKYmFzZS1jb21taXQ6IGZmYjY5YjIzMTE1YTFjYTFkODFmN2UyNzNkNTBiNzUxNTRhZTdi MGIKLS0gCjIuMzQuMQoK --------------P04DY1SYpQk0wwUU0HQp2TV9--