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 1pRJAu-0007kX-3X for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Feb 2023 20:42:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pRJAs-0001pc-55 for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Feb 2023 20:42:14 +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 1pRJAr-0001pS-QJ for pgsql-hackers@lists.postgresql.org; Sun, 12 Feb 2023 20:42:13 +0000 Received: from relay8-d.mail.gandi.net ([217.70.183.201]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pRJAk-0000Ah-2k for pgsql-hackers@postgresql.org; Sun, 12 Feb 2023 20:42:12 +0000 Received: (Authenticated sender: adsend@dunslane.net) by mail.gandi.net (Postfix) with ESMTPSA id EF26C1BF205; Sun, 12 Feb 2023 20:41:58 +0000 (UTC) Content-Type: multipart/mixed; boundary="------------6bbYrVJdL6UcDySvtinT4Bkh" Message-ID: <22af2c75-73a6-beab-e376-0e56cbe9a97d@dunslane.net> Date: Sun, 12 Feb 2023 15:41:56 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: Re: run pgindent on a regular basis / scripted manner Content-Language: en-US To: Tom Lane Cc: Jelte Fennema , "shiy.fnst@fujitsu.com" , Robert Haas , Justin Pryzby , Andres Freund , Noah Misch , Peter Geoghegan , Bruce Momjian , Magnus Hagander , Alvaro Herrera , Stephen Frost , Jesse Zhang , "pgsql-hackers@postgresql.org" References: <2009472.1675532231@sss.pgh.pa.us> <3d67bc80-4de2-5ba8-e272-e4ad2e59ba04@dunslane.net> <4ac8f263-f1bb-faa5-a307-1fffe00f0e3e@dunslane.net> <0f074818-b01a-799f-3c74-5fb5deab1d23@dunslane.net> <1d66447e-a77b-ca0d-90a0-782800e85383@dunslane.net> <390e7b04-11f3-f715-7a7d-d1a9077fbea8@dunslane.net> <00885533-! ff96-2a95-7911-329c873b3029@dunslane.net> <842819.1676219054@sss.pgh.pa.us> From: Andrew Dunstan In-Reply-To: <842819.1676219054@sss.pgh.pa.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. --------------6bbYrVJdL6UcDySvtinT4Bkh Content-Type: multipart/alternative; boundary="------------r30E00qKpGyEslvD36VmTHKU" --------------r30E00qKpGyEslvD36VmTHKU Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 2023-02-12 Su 11:24, Tom Lane wrote: > Andrew Dunstan writes: >> ... then you could do >>     pgindent `git dirty` >> The only danger would be if there were no dirty files. Maybe we need a >> switch to inhibit using the current directory if there are no command >> line files. > It seems like "indent the whole tree" is about to become a minority > use-case. Maybe instead of continuing to privilege that case, we > should say that it's invoked by some new switch like --all-files, > and without that only the stuff identified by command-line arguments > gets processed. > > I don't think we need --all-files. The attached gets rid of the build and code-base cruft, which is now in any case obsolete given we've put pg_bsd_indent in our code base. So the way to spell this instead of "pgindent --all-files" would be "pgindent ." I added a warning if there are no files at all specified. cheers andrew -- Andrew Dunstan EDB:https://www.enterprisedb.com --------------r30E00qKpGyEslvD36VmTHKU Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit


On 2023-02-12 Su 11:24, Tom Lane wrote:
Andrew Dunstan <andrew@dunslane.net> writes:
... then you could do
     pgindent `git dirty`
The only danger would be if there were no dirty files. Maybe we need a 
switch to inhibit using the current directory if there are no command 
line files.
It seems like "indent the whole tree" is about to become a minority
use-case.  Maybe instead of continuing to privilege that case, we
should say that it's invoked by some new switch like --all-files,
and without that only the stuff identified by command-line arguments
gets processed.

			


I don't think we need --all-files. The attached gets rid of the build and code-base cruft, which is now in any case obsolete given we've put pg_bsd_indent in our code base. So the way to spell this instead of "pgindent --all-files" would be "pgindent ."

I added a warning if there are no files at all specified.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com
--------------r30E00qKpGyEslvD36VmTHKU-- --------------6bbYrVJdL6UcDySvtinT4Bkh Content-Type: text/x-patch; charset=UTF-8; name="pgindent-remove-build-and-code-base.patch" Content-Disposition: attachment; filename="pgindent-remove-build-and-code-base.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC9wZ2luZGVudCBiL3NyYy90b29scy9w Z2luZGVudC9wZ2luZGVudAppbmRleCBhNzkzOTcxZTA3Li5iMDk4Y2VmMDJhIDEwMDc1NQot LS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3BnaW5kZW50CkBAIC0yMSw3ICsyMSw3IEBAIG15ICRpbmRlbnRfb3B0cyA9CiAKIG15 ICRkZXZudWxsID0gRmlsZTo6U3BlYy0+ZGV2bnVsbDsKIAotbXkgKCR0eXBlZGVmc19maWxl LCAkdHlwZWRlZl9zdHIsICRjb2RlX2Jhc2UsCitteSAoJHR5cGVkZWZzX2ZpbGUsICR0eXBl ZGVmX3N0ciwKIAlAZXhjbHVkZXMsICAgICAgJGluZGVudCwgICAgICAkYnVpbGQsCiAJJHNo b3dfZGlmZiwgICAgICRzaWxlbnRfZGlmZiwgJGhlbHAsCiAJQGNvbW1pdHMsKTsKQEAgLTMz LDEwICszMyw4IEBAIG15ICVvcHRpb25zID0gKAogCSJjb21taXQ9cyIgICAgICAgICAgID0+ IFxAY29tbWl0cywKIAkidHlwZWRlZnM9cyIgICAgICAgICA9PiBcJHR5cGVkZWZzX2ZpbGUs CiAJImxpc3Qtb2YtdHlwZWRlZnM9cyIgPT4gXCR0eXBlZGVmX3N0ciwKLQkiY29kZS1iYXNl PXMiICAgICAgICA9PiBcJGNvZGVfYmFzZSwKIAkiZXhjbHVkZXM9cyIgICAgICAgICA9PiBc QGV4Y2x1ZGVzLAogCSJpbmRlbnQ9cyIgICAgICAgICAgID0+IFwkaW5kZW50LAotCSJidWls ZCIgICAgICAgICAgICAgID0+IFwkYnVpbGQsCiAJInNob3ctZGlmZiIgICAgICAgICAgPT4g XCRzaG93X2RpZmYsCiAJInNpbGVudC1kaWZmIiAgICAgICAgPT4gXCRzaWxlbnRfZGlmZiwp OwogR2V0T3B0aW9ucyglb3B0aW9ucykgfHwgdXNhZ2UoImJhZCBjb21tYW5kIGxpbmUgYXJn dW1lbnQiKTsKQEAgLTQ2LDIyICs0NCwxNiBAQCB1c2FnZSgpIGlmICRoZWxwOwogdXNhZ2Uo IkNhbm5vdCBoYXZlIGJvdGggLS1zaWxlbnQtZGlmZiBhbmQgLS1zaG93LWRpZmYiKQogICBp ZiAkc2lsZW50X2RpZmYgJiYgJHNob3dfZGlmZjsKIAotdXNhZ2UoIkNhbm5vdCB1c2UgLS1j b21taXQgd2l0aCAtLWNvZGUtYmFzZSBvciBjb21tYW5kIGxpbmUgZmlsZSBsaXN0IikKLSAg aWYgKEBjb21taXRzICYmICgkY29kZV9iYXNlIHx8IEBBUkdWKSk7Cit1c2FnZSgiQ2Fubm90 IHVzZSAtLWNvbW1pdCB3aXRoIGNvbW1hbmQgbGluZSBmaWxlIGxpc3QiKQorICBpZiAoQGNv bW1pdHMgJiYgQEFSR1YpOwogCi1ydW5fYnVpbGQoJGNvZGVfYmFzZSkgaWYgKCRidWlsZCk7 Ci0KLSMgY29tbWFuZCBsaW5lIG9wdGlvbiB3aW5zLCB0aGVuIGVudmlyb25tZW50ICh3aGlj aCBpcyBob3cgLS1idWlsZCBzZXRzIGl0KSAsCi0jIHRoZW4gbG9jYXRpb25zLiBiYXNlZCBv biBjdXJyZW50IGRpciwgdGhlbiBkZWZhdWx0IGxvY2F0aW9uCisjIGNvbW1hbmQgbGluZSBv cHRpb24gd2lucywgdGhlbiBlbnZpcm9ubWVudCwgdGhlbiBsb2NhdGlvbnMgYmFzZWQgb24g Y3VycmVudAorIyBkaXIsIHRoZW4gZGVmYXVsdCBsb2NhdGlvbgogJHR5cGVkZWZzX2ZpbGUg fHw9ICRFTlZ7UEdUWVBFREVGU307CiAKLSMgYnVpbGQgbW9kZSBzZXRzIFBHSU5ERU5UCisj IGdldCBpbmRlbnQgbG9jYXRpb24gZm9yIGVudmlyb25tZW50IG9yIGRlZmF1bHQKICRpbmRl bnQgfHw9ICRFTlZ7UEdJTkRFTlR9IHx8ICRFTlZ7SU5ERU5UfSB8fCAicGdfYnNkX2luZGVu dCI7CiAKLSMgaWYgbm8gbm9uLW9wdGlvbiBhcmd1bWVudHMgb3IgY29tbWl0cyBhcmUgZ2l2 ZW4sIGRlZmF1bHQgdG8gbG9va2luZyBpbiB0aGUKLSMgY3VycmVudCBkaXJlY3RvcnkKLSRj b2RlX2Jhc2UgfHw9ICcuJyB1bmxlc3MgKEBBUkdWIHx8IEBjb21taXRzKTsKLQogbXkgJHNv dXJjZWRpciA9IGxvY2F0ZV9zb3VyY2VkaXIoKTsKIAogIyBpZiBpdCdzIHRoZSBiYXNlIG9m IGEgcG9zdGdyZXMgdHJlZSwgd2Ugd2lsbCBleGNsdWRlIHRoZSBmaWxlcwpAQCAtMTIxLDgg KzExMyw3IEBAIHN1YiBjaGVja19pbmRlbnQKIHN1YiBsb2NhdGVfc291cmNlZGlyCiB7CiAJ IyB0cnkgZmFpcmx5IGhhcmQgdG8gbG9jYXRlIHRoZSBzb3VyY2VkaXIKLQlteSAkd2hlcmUg PSAkY29kZV9iYXNlIHx8ICcuJzsKLQlteSAkc3ViID0gIiR3aGVyZS9zcmMvdG9vbHMvcGdp bmRlbnQiOworCW15ICRzdWIgPSAiLi9zcmMvdG9vbHMvcGdpbmRlbnQiOwogCXJldHVybiAk c3ViIGlmIC1kICRzdWI7CiAJIyB0cnkgdG8gZmluZCBpdCBmcm9tIGFuIGFuY2VzdG9yIGRp cmVjdG9yeQogCSRzdWIgPSAiLi4vc3JjL3Rvb2xzL3BnaW5kZW50IjsKQEAgLTMyMCw3MiAr MzExLDYgQEAgc3ViIHNob3dfZGlmZgogCXJldHVybiAkZGlmZjsKIH0KIAotc3ViIHJ1bl9i dWlsZAotewotCWV2YWwgInVzZSBMV1A6OlNpbXBsZTsiOyAgICAjIyBubyBjcml0aWMgKFBy b2hpYml0U3RyaW5neUV2YWwpOwotCi0JbXkgJGNvZGVfYmFzZSA9IHNoaWZ0IHx8ICcuJzsK LQlteSAkc2F2ZV9kaXIgPSBnZXRjd2QoKTsKLQotCSMgbG9vayBmb3IgdGhlIGNvZGUgcm9v dAotCWZvcmVhY2ggKDEgLi4gNSkKLQl7Ci0JCWxhc3QgaWYgLWQgIiRjb2RlX2Jhc2Uvc3Jj L3Rvb2xzL3BnaW5kZW50IjsKLQkJJGNvZGVfYmFzZSA9ICIkY29kZV9iYXNlLy4uIjsKLQl9 Ci0KLQlkaWUgImNhbm5vdCBsb2NhdGUgc3JjL3Rvb2xzL3BnaW5kZW50IGRpcmVjdG9yeSBp biBcIiRjb2RlX2Jhc2VcIlxuIgotCSAgdW5sZXNzIC1kICIkY29kZV9iYXNlL3NyYy90b29s cy9wZ2luZGVudCI7Ci0KLQljaGRpciAiJGNvZGVfYmFzZS9zcmMvdG9vbHMvcGdpbmRlbnQi OwotCi0JbXkgJHR5cGVkZWZzX2xpc3RfdXJsID0KLQkgICJodHRwczovL2J1aWxkZmFybS5w b3N0Z3Jlc3FsLm9yZy9jZ2ktYmluL3R5cGVkZWZzLnBsIjsKLQotCW15ICRydiA9IGdldHN0 b3JlKCR0eXBlZGVmc19saXN0X3VybCwgInRtcF90eXBlZGVmcy5saXN0Iik7Ci0KLQlkaWUg ImNhbm5vdCBmZXRjaCB0eXBlZGVmcyBsaXN0IGZyb20gJHR5cGVkZWZzX2xpc3RfdXJsXG4i Ci0JICB1bmxlc3MgaXNfc3VjY2VzcygkcnYpOwotCi0JJEVOVntQR1RZUEVERUZTfSA9IGFi c19wYXRoKCd0bXBfdHlwZWRlZnMubGlzdCcpOwotCi0JbXkgJGluZGVudHJlcG8gPSAiaHR0 cHM6Ly9naXQucG9zdGdyZXNxbC5vcmcvZ2l0L3BnX2JzZF9pbmRlbnQuZ2l0IjsKLQlzeXN0 ZW0oImdpdCBjbG9uZSAkaW5kZW50cmVwbyA+JGRldm51bGwgMj4mMSIpOwotCWRpZSAiY291 bGQgbm90IGZldGNoIHBnX2JzZF9pbmRlbnQgc291cmNlcyBmcm9tICRpbmRlbnRyZXBvXG4i Ci0JICB1bmxlc3MgJD8gPT0gMDsKLQotCWNoZGlyICJwZ19ic2RfaW5kZW50IiB8fCBkaWU7 Ci0Jc3lzdGVtKCJtYWtlIGFsbCBjaGVjayA+JGRldm51bGwiKTsKLQlkaWUgImNvdWxkIG5v dCBidWlsZCBwZ19ic2RfaW5kZW50IGZyb20gc291cmNlXG4iCi0JICB1bmxlc3MgJD8gPT0g MDsKLQotCSRFTlZ7UEdJTkRFTlR9ID0gYWJzX3BhdGgoJ3BnX2JzZF9pbmRlbnQnKTsKLQot CWNoZGlyICRzYXZlX2RpcjsKLQlyZXR1cm47Ci19Ci0KLXN1YiBidWlsZF9jbGVhbgotewot CW15ICRjb2RlX2Jhc2UgPSBzaGlmdCB8fCAnLic7Ci0KLQkjIGxvb2sgZm9yIHRoZSBjb2Rl IHJvb3QKLQlmb3JlYWNoICgxIC4uIDUpCi0JewotCQlsYXN0IGlmIC1kICIkY29kZV9iYXNl L3NyYy90b29scy9wZ2luZGVudCI7Ci0JCSRjb2RlX2Jhc2UgPSAiJGNvZGVfYmFzZS8uLiI7 Ci0JfQotCi0JZGllICJjYW5ub3QgbG9jYXRlIHNyYy90b29scy9wZ2luZGVudCBkaXJlY3Rv cnkgaW4gXCIkY29kZV9iYXNlXCJcbiIKLQkgIHVubGVzcyAtZCAiJGNvZGVfYmFzZS9zcmMv dG9vbHMvcGdpbmRlbnQiOwotCi0JY2hkaXIgIiRjb2RlX2Jhc2UiOwotCi0Jc3lzdGVtKCJy bSAtcmYgc3JjL3Rvb2xzL3BnaW5kZW50L3BnX2JzZF9pbmRlbnQiKTsKLQlzeXN0ZW0oInJt IC1mIHNyYy90b29scy9wZ2luZGVudC90bXBfdHlwZWRlZnMubGlzdCIpOwotCXJldHVybjsK LX0KLQogc3ViIHVzYWdlCiB7CiAJbXkgJG1lc3NhZ2UgID0gc2hpZnQ7CkBAIC0zOTcsMTAg KzMyMiw4IEBAIE9wdGlvbnM6CiAJLS1jb21taXQ9Z2l0cmVmICAgICAgICAgdXNlIGZpbGVz IG1vZGlmaWVkIGJ5IHRoZSBuYW1lZCBjb21taXQKIAktLXR5cGVkZWZzPUZJTEUgICAgICAg ICBmaWxlIGNvbnRhaW5pbmcgYSBsaXN0IG9mIHR5cGVkZWZzCiAJLS1saXN0LW9mLXR5cGVk ZWZzPVNUUiAgc3RyaW5nIGNvbnRhaW5pbmcgdHlwZWRlZnMsIHNwYWNlIHNlcGFyYXRlZAot CS0tY29kZS1iYXNlPURJUiAgICAgICAgIHBhdGggdG8gdGhlIGJhc2Ugb2YgUG9zdGdyZVNR TCBzb3VyY2UgY29kZQogCS0tZXhjbHVkZXM9UEFUSCAgICAgICAgIGZpbGUgY29udGFpbmlu ZyBsaXN0IG9mIGZpbGVuYW1lIHBhdHRlcm5zIHRvIGlnbm9yZQogCS0taW5kZW50PVBBVEgg ICAgICAgICAgIHBhdGggdG8gcGdfYnNkX2luZGVudCBwcm9ncmFtCi0JLS1idWlsZCAgICAg ICAgICAgICAgICAgYnVpbGQgdGhlIHBnX2JzZF9pbmRlbnQgcHJvZ3JhbQogCS0tc2hvdy1k aWZmICAgICAgICAgICAgIHNob3cgdGhlIGNoYW5nZXMgdGhhdCB3b3VsZCBiZSBtYWRlCiAJ LS1zaWxlbnQtZGlmZiAgICAgICAgICAgZXhpdCB3aXRoIHN0YXR1cyAyIGlmIGFueSBjaGFu Z2VzIHdvdWxkIGJlIG1hZGUKIFRoZSAtLWV4Y2x1ZGVzIGFuZCAtLWNvbW1pdCBvcHRpb25z IGNhbiBiZSBnaXZlbiBtb3JlIHRoYW4gb25jZS4KQEAgLTQyMyw4ICszNDYsNiBAQCAkZmls dGVyZWRfdHlwZWRlZnNfZmggPSBsb2FkX3R5cGVkZWZzKCk7CiAKIGNoZWNrX2luZGVudCgp OwogCi1idWlsZF9jbGVhbigkY29kZV9iYXNlKSBpZiAkYnVpbGQ7Ci0KIG15ICR3YW50ZWQg PSBzdWIKIHsKIAlteSAoJGRldiwgJGlubywgJG1vZGUsICRubGluaywgJHVpZCwgJGdpZCk7 CkBAIC00MzQsOSArMzU1LDYgQEAgbXkgJHdhbnRlZCA9IHN1YgogCSAgJiYgcHVzaChAZmls ZXMsICRGaWxlOjpGaW5kOjpuYW1lKTsKIH07CiAKLSMgZ2V0IHRoZSBsaXN0IG9mIGZpbGVz IHVuZGVyIGNvZGUgYmFzZSwgaWYgaXQncyBzZXQKLUZpbGU6OkZpbmQ6OmZpbmQoe3dhbnRl ZCA9PiAkd2FudGVkIH0sICRjb2RlX2Jhc2UpIGlmICRjb2RlX2Jhc2U7Ci0KICMgYW55IG5v bi1vcHRpb24gYXJndW1lbnRzIGFyZSBmaWxlcyBvciBkaXJlY3RvcmllcyB0byBiZSBwcm9j ZXNzZWQKIEZpbGU6OkZpbmQ6OmZpbmQoe3dhbnRlZCA9PiAkd2FudGVkfSwgQEFSR1YpIGlm IEBBUkdWOwogCkBAIC00NTAsNiArMzY4LDggQEAgZm9yZWFjaCBteSAkY29tbWl0IChAY29t bWl0cykKIAlwdXNoKEBmaWxlcyxAYWZmZWN0ZWQpOwogfQogCit3YXJuICJObyBmaWxlcyB0 byBwcm9jZXNzIiB1bmxlc3MgQGZpbGVzOworCiAjIHJlbW92ZSBleGNsdWRlZCBmaWxlcyBm cm9tIHRoZSBmaWxlIGxpc3QKIHByb2Nlc3NfZXhjbHVkZSgpOwogCmRpZmYgLS1naXQgYS9z cmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQubWFuIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3Bn aW5kZW50Lm1hbgppbmRleCA3NDA2Nzk0YmEzLi5mZTQxMWVlNjk5IDEwMDY0NAotLS0gYS9z cmMvdG9vbHMvcGdpbmRlbnQvcGdpbmRlbnQubWFuCisrKyBiL3NyYy90b29scy9wZ2luZGVu dC9wZ2luZGVudC5tYW4KQEAgLTgsMTQgKzgsOSBAQCBZb3UgY2FuIHNlZSBhbGwgdGhlIG9w dGlvbnMgYnkgcnVubmluZzoKIAlwZ2luZGVudCAtLWhlbHAKIAogSW4gaXRzIHNpbXBsZXN0 IGZvcm0sIGlmIGFsbCB0aGUgcmVxdWlyZWQgb2JqZWN0cyBhcmUgaW5zdGFsbGVkLCBzaW1w bHkgcnVuCi1pdCB3aXRob3V0IGFueSBwYXJhbWV0ZXJzIGF0IHRoZSB0b3Agb2YgdGhlIHNv dXJjZSB0cmVlIHlvdSB3YW50IHRvIHByb2Nlc3MuCitpdCBhdCB0aGUgdG9wIG9mIHRoZSBz b3VyY2UgdHJlZSB5b3Ugd2FudCB0byBwcm9jZXNzIGxpa2UgdGhpczoKIAotCXBnaW5kZW50 Ci0KLUlmIHlvdSBkb24ndCBoYXZlIGFsbCB0aGUgcmVxdWlyZW1lbnRzIGluc3RhbGxlZCwg cGdpbmRlbnQgd2lsbCBmZXRjaCBhbmQgYnVpbGQKLXRoZW0gZm9yIHlvdSwgaWYgeW91J3Jl IGluIGEgUG9zdGdyZVNRTCBzb3VyY2UgdHJlZToKLQotCXBnaW5kZW50IC0tYnVpbGQKKwlw Z2luZGVudCAuCiAKIElmIHlvdXIgcGdfYnNkX2luZGVudCBwcm9ncmFtIGlzIG5vdCBpbnN0 YWxsZWQgaW4geW91ciBwYXRoLCB5b3UgY2FuIHNwZWNpZnkKIGl0IGJ5IHNldHRpbmcgdGhl IGVudmlyb25tZW50IHZhcmlhYmxlIElOREVOVCwgb3IgUEdJTkRFTlQsIG9yIGJ5IGdpdmlu ZyB0aGUKQEAgLTI4LDkgKzIzLDYgQEAgc3BlY2lmaWVkIHVzaW5nIHRoZSBQR1RZUEVERUZT IGVudmlyb25tZW50IHZhcmlhYmxlLCBvciB2aWEgdGhlIGNvbW1hbmQgbGluZQogLS10eXBl ZGVmcyBvcHRpb24uIElmIG5laXRoZXIgaXMgdXNlZCwgaXQgd2lsbCBsb29rIGZvciBpdCB3 aXRoaW4gdGhlCiBjdXJyZW50IHNvdXJjZSB0cmVlLCBvciBpbiAvdXNyL2xvY2FsL2V0Yy90 eXBlZGVmcy5saXN0LgogCi1JZiB5b3Ugd2FudCB0byBpbmRlbnQgYSBzb3VyY2UgdHJlZSBv dGhlciB0aGFuIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LAoteW91IGNhbiBzcGVj aWZ5IGl0IHZpYSB0aGUgLS1jb2RlLWJhc2UgY29tbWFuZCBsaW5lIG9wdGlvbi4KLQogV2Ug ZG9uJ3Qgd2FudCB0byBpbmRlbnQgY2VydGFpbiBmaWxlcyBpbiB0aGUgUG9zdGdyZVNRTCBz b3VyY2UuIHBnaW5kZW50CiB3aWxsIGhvbm9yIGEgZmlsZSBjb250YWluaW5nIGEgbGlzdCBv ZiBwYXR0ZXJucyBvZiBmaWxlcyB0byBhdm9pZC4gVGhpcwogZmlsZSBjYW4gYmUgc3BlY2lm aWVkIHVzaW5nIHRoZSAtLWV4Y2x1ZGVzIGNvbW1hbmQgbGluZSBvcHRpb24uIElmIGluZGVu dGluZwo= --------------6bbYrVJdL6UcDySvtinT4Bkh--