Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1maiBf-00017J-EV for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Oct 2021 17:37:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1maiBe-00047v-3W for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Oct 2021 17:37:06 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1maiBd-00047m-Qb for pgsql-hackers@lists.postgresql.org; Wed, 13 Oct 2021 17:37:05 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1maiBa-0001sH-70 for pgsql-hackers@postgresql.org; Wed, 13 Oct 2021 17:37:05 +0000 Received: from hrk.local (p2388012-ipbf1027funabasi.chiba.ocn.ne.jp [118.6.6.12]) by oss.nttdata.com (Postfix) with ESMTPSA id B426D6077E; Thu, 14 Oct 2021 02:36:56 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.3 at oss.nttdata.com Subject: Re: Improve the HINT message of the ALTER command for postgres_fdw To: Bharath Rupireddy Cc: bt21masumurak , Daniel Gustafsson , pgsql-hackers References: <557d06cebe19081bfcc83ee2affc98d3@oss.nttdata.com> <250E9750-57EA-45BA-82A4-787CC61F7309@yesql.se> <46864d7a8ca6c2faeb2f9a7a401d47c0@oss.nttdata.com> <595194b4-20e1-58a5-4413-c0c7a1aee004@oss.nttdata.com> From: Fujii Masao Message-ID: <4dbda741-2e88-fd07-c2a6-396d776ccf20@oss.nttdata.com> Date: Thu, 14 Oct 2021 02:36:56 +0900 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------E5A317C1E4C002D871720076" Content-Language: en-US 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. --------------E5A317C1E4C002D871720076 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2021/10/13 14:00, Bharath Rupireddy wrote: > On Tue, Oct 12, 2021 at 11:11 PM Fujii Masao > wrote: >> BTW, I found file_fdw.c, dblink.c, postgres_fdw/option.c and foreign.c >> use different error codes for the same error message as follows. >> They should use the same error code? If yes, ISTM that >> ERRCODE_FDW_INVALID_OPTION_NAME is better because >> the error message is "invalid option ...". >> >> - ERRCODE_FDW_INVALID_OPTION_NAME (file_fdw.c) >> - ERRCODE_FDW_OPTION_NAME_NOT_FOUND (dblink.c) >> - ERRCODE_FDW_INVALID_OPTION_NAME (postgres_fdw/option.c) >> - ERRCODE_SYNTAX_ERROR (foreign.c) > > Good catch. ERRCODE_FDW_INVALID_OPTION_NAME seems reasonable to me. I > think we can remove the error code ERRCODE_FDW_OPTION_NAME_NOT_FOUND > (it is being used only by dblink.c), instead use > ERRCODE_FDW_INVALID_OPTION_NAME for all option parsing and > validations. Alvaro told me the difference of those error codes as follows at [1]. This makes me think that ERRCODE_FDW_OPTION_NAME_NOT_FOUND is more proper for the error message. Thought? ----------------------- in SQL/MED compare GetServerOptByName: INVALID OPTION NAME is used when the buffer length does not match the option name length; OPTION NAME NOT FOUND is used when an option of that name is not found ----------------------- [1] https://twitter.com/alvherre/status/1447991206286348302 Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION --------------E5A317C1E4C002D871720076 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="alter_foreign_data_wrapper_options_v3.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="alter_foreign_data_wrapper_options_v3.patch" ZGlmZiAtLWdpdCBhL2NvbnRyaWIvZGJsaW5rL2RibGluay5jIGIvY29udHJpYi9kYmxpbmsv ZGJsaW5rLmMKaW5kZXggM2EwYmVhYTg4ZS4uYzhiMGI0ZmYzZiAxMDA2NDQKLS0tIGEvY29u dHJpYi9kYmxpbmsvZGJsaW5rLmMKKysrIGIvY29udHJpYi9kYmxpbmsvZGJsaW5rLmMKQEAg LTIwNTQsOCArMjA1NCwxMCBAQCBkYmxpbmtfZmR3X3ZhbGlkYXRvcihQR19GVU5DVElPTl9B UkdTKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRFdfT1BU SU9OX05BTUVfTk9UX0ZPVU5EKSwKIAkJCQkJIGVycm1zZygiaW52YWxpZCBvcHRpb24gXCIl c1wiIiwgZGVmLT5kZWZuYW1lKSwKLQkJCQkJIGVycmhpbnQoIlZhbGlkIG9wdGlvbnMgaW4g dGhpcyBjb250ZXh0IGFyZTogJXMiLAotCQkJCQkJCSBidWYuZGF0YSkpKTsKKwkJCQkJIGJ1 Zi5sZW4gPiAwCisJCQkJCSA/IGVycmhpbnQoIlZhbGlkIG9wdGlvbnMgaW4gdGhpcyBjb250 ZXh0IGFyZTogJXMiLAorCQkJCQkJCSAgIGJ1Zi5kYXRhKQorCQkJCQkgOiBlcnJoaW50KCJU aGVyZSBhcmUgbm8gdmFsaWQgb3B0aW9ucyBpbiB0aGlzIGNvbnRleHQuIikpKTsKIAkJfQog CX0KIApkaWZmIC0tZ2l0IGEvY29udHJpYi9kYmxpbmsvZXhwZWN0ZWQvZGJsaW5rLm91dCBi L2NvbnRyaWIvZGJsaW5rL2V4cGVjdGVkL2RibGluay5vdXQKaW5kZXggNjUxNmQ0ZjEzMS4u OTFjYmQ3NDRhOSAxMDA2NDQKLS0tIGEvY29udHJpYi9kYmxpbmsvZXhwZWN0ZWQvZGJsaW5r Lm91dAorKysgYi9jb250cmliL2RibGluay9leHBlY3RlZC9kYmxpbmsub3V0CkBAIC05MTcs NiArOTE3LDEwIEBAIFJFVk9LRSBFWEVDVVRFIE9OIEZVTkNUSU9OIGRibGlua19jb25uZWN0 X3UodGV4dCwgdGV4dCkgRlJPTSByZWdyZXNzX2RibGlua191c2VyCiBEUk9QIFVTRVIgcmVn cmVzc19kYmxpbmtfdXNlcjsKIERST1AgVVNFUiBNQVBQSU5HIEZPUiBwdWJsaWMgU0VSVkVS IGZkdGVzdDsKIERST1AgU0VSVkVSIGZkdGVzdDsKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBG T1JFSUdOIERBVEEgV1JBUFBFUiBkYmxpbmtfZmR3IE9QVElPTlMgKG5vbmV4aXN0ZW50ICdm ZHcnKTsKK0VSUk9SOiAgaW52YWxpZCBvcHRpb24gIm5vbmV4aXN0ZW50IgorSElOVDogIFRo ZXJlIGFyZSBubyB2YWxpZCBvcHRpb25zIGluIHRoaXMgY29udGV4dC4KIC0tIHRlc3QgYXN5 bmNocm9ub3VzIG5vdGlmaWNhdGlvbnMKIFNFTEVDVCBkYmxpbmtfY29ubmVjdChjb25uZWN0 aW9uX3BhcmFtZXRlcnMoKSk7CiAgZGJsaW5rX2Nvbm5lY3QgCmRpZmYgLS1naXQgYS9jb250 cmliL2RibGluay9zcWwvZGJsaW5rLnNxbCBiL2NvbnRyaWIvZGJsaW5rL3NxbC9kYmxpbmsu c3FsCmluZGV4IDNlOTZiOTg1NzEuLjdhNzE4MTdkNjUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIv ZGJsaW5rL3NxbC9kYmxpbmsuc3FsCisrKyBiL2NvbnRyaWIvZGJsaW5rL3NxbC9kYmxpbmsu c3FsCkBAIC00NjMsNiArNDYzLDkgQEAgRFJPUCBVU0VSIHJlZ3Jlc3NfZGJsaW5rX3VzZXI7 CiBEUk9QIFVTRVIgTUFQUElORyBGT1IgcHVibGljIFNFUlZFUiBmZHRlc3Q7CiBEUk9QIFNF UlZFUiBmZHRlc3Q7CiAKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBGT1JFSUdOIERBVEEgV1JB UFBFUiBkYmxpbmtfZmR3IE9QVElPTlMgKG5vbmV4aXN0ZW50ICdmZHcnKTsKKwogLS0gdGVz dCBhc3luY2hyb25vdXMgbm90aWZpY2F0aW9ucwogU0VMRUNUIGRibGlua19jb25uZWN0KGNv bm5lY3Rpb25fcGFyYW1ldGVycygpKTsKIApkaWZmIC0tZ2l0IGEvY29udHJpYi9maWxlX2Zk dy9maWxlX2Zkdy5jIGIvY29udHJpYi9maWxlX2Zkdy9maWxlX2Zkdy5jCmluZGV4IDJjMmYx NDlmYjAuLmY2M2MxZmZhNjMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZmlsZV9mZHcvZmlsZV9m ZHcuYworKysgYi9jb250cmliL2ZpbGVfZmR3L2ZpbGVfZmR3LmMKQEAgLTIyOSw3ICsyMjks NyBAQCBmaWxlX2Zkd192YWxpZGF0b3IoUEdfRlVOQ1RJT05fQVJHUykKIAkJCX0KIAogCQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRFdfSU5WQUxJRF9PUFRJ T05fTkFNRSksCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkRXX09QVElPTl9OQU1FX05PVF9G T1VORCksCiAJCQkJCSBlcnJtc2coImludmFsaWQgb3B0aW9uIFwiJXNcIiIsIGRlZi0+ZGVm bmFtZSksCiAJCQkJCSBidWYubGVuID4gMAogCQkJCQkgPyBlcnJoaW50KCJWYWxpZCBvcHRp b25zIGluIHRoaXMgY29udGV4dCBhcmU6ICVzIiwKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9z dGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgYi9jb250cmliL3Bvc3RncmVz X2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CmluZGV4IDQ0YzQzNjdiOGYuLmZkMTQx YTBmYTUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3Rn cmVzX2Zkdy5vdXQKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdy ZXNfZmR3Lm91dApAQCAtMTA3NDYsNyArMTA3NDYsNyBAQCBEUk9QIFRBQkxFIGpvaW5fdGJs OwogQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKERST1AgYXN5bmNfY2FwYWJsZSk7 CiBBTFRFUiBTRVJWRVIgbG9vcGJhY2syIE9QVElPTlMgKERST1AgYXN5bmNfY2FwYWJsZSk7 CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0IGludmFsaWQgc2VydmVyIGFuZCBmb3JlaWdu IHRhYmxlIG9wdGlvbnMKKy0tIHRlc3QgaW52YWxpZCBzZXJ2ZXIsIGZvcmVpZ24gdGFibGUg YW5kIGZvcmVpZ24gZGF0YSB3cmFwcGVyIG9wdGlvbnMKIC0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0t IEludmFsaWQgZmR3X3N0YXJ0dXBfY29zdCBvcHRpb24KIENSRUFURSBTRVJWRVIgaW52X3Nj c3QgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcG9zdGdyZXNfZmR3CkBAIC0xMDc2NCwzICsxMDc2 NCw3IEBAIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3IgaW50ZWdlciBvcHRpb24gImZldGNo X3NpemUiOiAxMDAkJSQjJCMKIENSRUFURSBGT1JFSUdOIFRBQkxFIGludl9ic3ogKGMxIGlu dCApCiAJU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKGJhdGNoX3NpemUgJzEwMCQlJCMkIycp OwogRVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBpbnRlZ2VyIG9wdGlvbiAiYmF0Y2hfc2l6 ZSI6IDEwMCQlJCMkIworLS0gTm8gb3B0aW9uIGlzIGFsbG93ZWQgdG8gYmUgc3BlY2lmaWVk IGF0IGZvcmVpZ24gZGF0YSB3cmFwcGVyIGxldmVsCitBTFRFUiBGT1JFSUdOIERBVEEgV1JB UFBFUiBwb3N0Z3Jlc19mZHcgT1BUSU9OUyAobm9uZXhpc3RlbnQgJ2ZkdycpOworRVJST1I6 ICBpbnZhbGlkIG9wdGlvbiAibm9uZXhpc3RlbnQiCitISU5UOiAgVGhlcmUgYXJlIG5vIHZh bGlkIG9wdGlvbnMgaW4gdGhpcyBjb250ZXh0LgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0 Z3Jlc19mZHcvb3B0aW9uLmMgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9vcHRpb24uYwppbmRl eCA1YmIxYWY0MDg0Li42ODUzOGY4OWRiIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVz X2Zkdy9vcHRpb24uYworKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9vcHRpb24uYwpAQCAt MTA1LDEwICsxMDUsMTIgQEAgcG9zdGdyZXNfZmR3X3ZhbGlkYXRvcihQR19GVU5DVElPTl9B UkdTKQogCQkJfQogCiAJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RF X0ZEV19JTlZBTElEX09QVElPTl9OQU1FKSwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRFdf T1BUSU9OX05BTUVfTk9UX0ZPVU5EKSwKIAkJCQkJIGVycm1zZygiaW52YWxpZCBvcHRpb24g XCIlc1wiIiwgZGVmLT5kZWZuYW1lKSwKLQkJCQkJIGVycmhpbnQoIlZhbGlkIG9wdGlvbnMg aW4gdGhpcyBjb250ZXh0IGFyZTogJXMiLAotCQkJCQkJCSBidWYuZGF0YSkpKTsKKwkJCQkJ IGJ1Zi5sZW4gPiAwCisJCQkJCSA/IGVycmhpbnQoIlZhbGlkIG9wdGlvbnMgaW4gdGhpcyBj b250ZXh0IGFyZTogJXMiLAorCQkJCQkJCSAgIGJ1Zi5kYXRhKQorCQkJCQkgOiBlcnJoaW50 KCJUaGVyZSBhcmUgbm8gdmFsaWQgb3B0aW9ucyBpbiB0aGlzIGNvbnRleHQuIikpKTsKIAkJ fQogCiAJCS8qCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdy ZXNfZmR3LnNxbCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3Fs CmluZGV4IGU3Yjg2OWY4Y2UuLjQzYzMwZDQ5MmQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9z dGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNf ZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCkBAIC0zNDA5LDcgKzM0MDksNyBAQCBBTFRFUiBT RVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoRFJPUCBhc3luY19jYXBhYmxlKTsKIEFMVEVSIFNF UlZFUiBsb29wYmFjazIgT1BUSU9OUyAoRFJPUCBhc3luY19jYXBhYmxlKTsKIAogLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gdGVzdCBpbnZhbGlkIHNlcnZlciBhbmQgZm9yZWlnbiB0YWJsZSBv cHRpb25zCistLSB0ZXN0IGludmFsaWQgc2VydmVyLCBmb3JlaWduIHRhYmxlIGFuZCBmb3Jl aWduIGRhdGEgd3JhcHBlciBvcHRpb25zCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBJbnZhbGlk IGZkd19zdGFydHVwX2Nvc3Qgb3B0aW9uCiBDUkVBVEUgU0VSVkVSIGludl9zY3N0IEZPUkVJ R04gREFUQSBXUkFQUEVSIHBvc3RncmVzX2ZkdwpAQCAtMzQyMywzICszNDIzLDYgQEAgQ1JF QVRFIEZPUkVJR04gVEFCTEUgaW52X2ZzeiAoYzEgaW50ICkKIC0tIEludmFsaWQgYmF0Y2hf c2l6ZSBvcHRpb24KIENSRUFURSBGT1JFSUdOIFRBQkxFIGludl9ic3ogKGMxIGludCApCiAJ U0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKGJhdGNoX3NpemUgJzEwMCQlJCMkIycpOworCist LSBObyBvcHRpb24gaXMgYWxsb3dlZCB0byBiZSBzcGVjaWZpZWQgYXQgZm9yZWlnbiBkYXRh IHdyYXBwZXIgbGV2ZWwKK0FMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIHBvc3RncmVzX2Zk dyBPUFRJT05TIChub25leGlzdGVudCAnZmR3Jyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9mb3JlaWduL2ZvcmVpZ24uYyBiL3NyYy9iYWNrZW5kL2ZvcmVpZ24vZm9yZWlnbi5jCmlu ZGV4IDU1NjRkYzNhMWUuLjNkOGM1ZTEwMzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Zv cmVpZ24vZm9yZWlnbi5jCisrKyBiL3NyYy9iYWNrZW5kL2ZvcmVpZ24vZm9yZWlnbi5jCkBA IC02NjgsMTAgKzY2OCwxMiBAQCBwb3N0Z3Jlc3FsX2Zkd192YWxpZGF0b3IoUEdfRlVOQ1RJ T05fQVJHUykKIAkJCQkJCQkJCSBvcHQtPm9wdG5hbWUpOwogCiAJCQllcmVwb3J0KEVSUk9S LAotCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCShlcnJjb2Rl KEVSUkNPREVfRkRXX09QVElPTl9OQU1FX05PVF9GT1VORCksCiAJCQkJCSBlcnJtc2coImlu dmFsaWQgb3B0aW9uIFwiJXNcIiIsIGRlZi0+ZGVmbmFtZSksCi0JCQkJCSBlcnJoaW50KCJW YWxpZCBvcHRpb25zIGluIHRoaXMgY29udGV4dCBhcmU6ICVzIiwKLQkJCQkJCQkgYnVmLmRh dGEpKSk7CisJCQkJCSBidWYubGVuID4gMAorCQkJCQkgPyBlcnJoaW50KCJWYWxpZCBvcHRp b25zIGluIHRoaXMgY29udGV4dCBhcmU6ICVzIiwKKwkJCQkJCQkgICBidWYuZGF0YSkKKwkJ CQkJIDogZXJyaGludCgiVGhlcmUgYXJlIG5vIHZhbGlkIG9wdGlvbnMgaW4gdGhpcyBjb250 ZXh0LiIpKSk7CiAKIAkJCVBHX1JFVFVSTl9CT09MKGZhbHNlKTsKIAkJfQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0CmluZGV4IDQyNjA4MGFlMzku LmE2YTY4ZDFmYTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9y ZWlnbl9kYXRhLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25f ZGF0YS5vdXQKQEAgLTEwMCw2ICsxMDAsOSBAQCBMSU5FIDE6IC4uLkdOIERBVEEgV1JBUFBF UiB0ZXN0X2ZkdyBIQU5ETEVSIHRlc3RfZmR3X2hhbmRsZXIgSEFORExFUiBpbi4uLgogQ1JF QVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIHRlc3RfZmR3IEhBTkRMRVIgdGVzdF9mZHdfaGFu ZGxlcjsKIERST1AgRk9SRUlHTiBEQVRBIFdSQVBQRVIgdGVzdF9mZHc7CiAtLSBBTFRFUiBG T1JFSUdOIERBVEEgV1JBUFBFUgorQUxURVIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgZm9vIE9Q VElPTlMgKG5vbmV4aXN0ZW50ICdmZHcnKTsgICAgICAgICAtLSBFUlJPUgorRVJST1I6ICBp bnZhbGlkIG9wdGlvbiAibm9uZXhpc3RlbnQiCitISU5UOiAgVGhlcmUgYXJlIG5vIHZhbGlk IG9wdGlvbnMgaW4gdGhpcyBjb250ZXh0LgogQUxURVIgRk9SRUlHTiBEQVRBIFdSQVBQRVIg Zm9vOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gRVJST1IKIEVSUk9SOiAgc3lu dGF4IGVycm9yIGF0IG9yIG5lYXIgIjsiCiBMSU5FIDE6IEFMVEVSIEZPUkVJR04gREFUQSBX UkFQUEVSIGZvbzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25f ZGF0YS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JlaWduX2RhdGEuc3FsCmluZGV4 IDczZjlmNjIxZDguLmE2NWY0ZmZkY2EgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2ZvcmVpZ25fZGF0YS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yZWln bl9kYXRhLnNxbApAQCAtNTksNiArNTksOCBAQCBDUkVBVEUgRk9SRUlHTiBEQVRBIFdSQVBQ RVIgdGVzdF9mZHcgSEFORExFUiB0ZXN0X2Zkd19oYW5kbGVyOwogRFJPUCBGT1JFSUdOIERB VEEgV1JBUFBFUiB0ZXN0X2ZkdzsKIAogLS0gQUxURVIgRk9SRUlHTiBEQVRBIFdSQVBQRVIK K0FMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIGZvbyBPUFRJT05TIChub25leGlzdGVudCAn ZmR3Jyk7ICAgICAgICAgLS0gRVJST1IKKwogQUxURVIgRk9SRUlHTiBEQVRBIFdSQVBQRVIg Zm9vOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gRVJST1IKIEFMVEVSIEZPUkVJ R04gREFUQSBXUkFQUEVSIGZvbyBWQUxJREFUT1IgYmFyOyAgICAgICAgICAgICAgIC0tIEVS Uk9SCiBBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUiBmb28gTk8gVkFMSURBVE9SOwo= --------------E5A317C1E4C002D871720076--