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 1pnUH1-00065N-6w for pgsql-hackers@arkaria.postgresql.org; Sat, 15 Apr 2023 01:00:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pnUGy-00051C-T9 for pgsql-hackers@arkaria.postgresql.org; Sat, 15 Apr 2023 01:00:12 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pnUGy-000512-BC for pgsql-hackers@lists.postgresql.org; Sat, 15 Apr 2023 01:00:12 +0000 Received: from mail-yb1-xb32.google.com ([2607:f8b0:4864:20::b32]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pnUGt-0006wo-AL for pgsql-hackers@postgresql.org; Sat, 15 Apr 2023 01:00:11 +0000 Received: by mail-yb1-xb32.google.com with SMTP id m14so3242771ybk.4 for ; Fri, 14 Apr 2023 18:00:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681520406; x=1684112406; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=0cwGZgsA70Zyy5Sl8Zf9T1w3Hnots3Jf02vg6H2o7t8=; b=EBPbkBGxGM/K47mrxMelXCnTX4OXNVvQgcjs9vufWj3Dim9/cNsmaTfjXovDV+Y0ZV OF18fgj66a59AqXZz+9ZLriFsgdus+BNjipwbOO5gfvffd5VkME/gMGzt8482vBVcZwi zjmLmY54q5j/aRsTwkVIv9wC7xpNH/wi5EylDeACSe7YKJPJU+KRq0ScXZQDtADkE2ZD N6v26iprAqITaU1I6fs3uU+6dSr5W8ktRs+cHjDWHYDFhiD6L5tAAsJB3c9fbJ9tZ4ne aapZm2GTO9LdQLOTRZDtOuL2XII6NDh5/GesbIXAwRHmISrmyCyakIyu2zXKTnWA1h9n ujJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681520406; x=1684112406; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0cwGZgsA70Zyy5Sl8Zf9T1w3Hnots3Jf02vg6H2o7t8=; b=JPsDvvwt3E2NXof2+xPka3fYL6dTCVIlI3W1AkfIGIpB1ySzAba8fF85yN38CoodCT VcwyWnT8uPpT9kLCHHYsjbNnvqSU6lqmva7AGn1BsSm8Cx4c9ezG8dfPMRSFx1cr77zM RapSAYfWrwFnxNUkX0eDHkc526Y7hxCs/ovB1t2KoPY1E5QzCzYQWSIMzY+fmro5Z9PL KJyok/E/2ZxB6uh3YNc7Xvxc0kU0/nINz9uZn41Clux4WSEgMBWoxWwSPPQOmnDLMEgV S21dUa8GlQAl6wgEsHQXgsK8WDcBF0rluKudd7J0E0CcgMyYZt+PPAHZnyxv4l0S3ASY IagA== X-Gm-Message-State: AAQBX9ds7o8Bh0dzbC/ZXf9Uf7Xyt9Pc+ZBQPYnlc//9ferrm2+mr7Q7 aarbyQtxoGzt2wCQfwofWaPmscKvdaNEDVpLlJE= X-Google-Smtp-Source: AKy350aWzJyRevx/L0vTv8fPS9v9ZKpBoNoFxL59Mi5CsDVunAjHw8vBao7zEVW2mxDtuCtFCuTYZwa1p2zJ49djw9A= X-Received: by 2002:a25:da43:0:b0:b8a:7b2d:6556 with SMTP id n64-20020a25da43000000b00b8a7b2d6556mr5016665ybf.8.1681520406178; Fri, 14 Apr 2023 18:00:06 -0700 (PDT) MIME-Version: 1.0 References: <20230405211534.4skgskbilnxqrmxg@awork3.anarazel.de> <20230406172056.gnp7ohxs4bykrn5z@liskov> <20230406214431.2pkmcogizdamdmzz@liskov> <16845cb1-b228-e157-f293-5892bced9253@enterprisedb.com> In-Reply-To: <16845cb1-b228-e157-f293-5892bced9253@enterprisedb.com> From: David Rowley Date: Sat, 15 Apr 2023 12:59:52 +1200 Message-ID: Subject: Re: Option to not use ringbuffer in VACUUM, using it in failsafe mode To: Peter Eisentraut Cc: Andres Freund , Justin Pryzby , Masahiko Sawada , Bharath Rupireddy , Tom Lane , Peter Geoghegan , pgsql-hackers@postgresql.org, Robert Haas , Melanie Plageman Content-Type: multipart/mixed; boundary="0000000000007e86ea05f9557a2b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007e86ea05f9557a2b Content-Type: text/plain; charset="UTF-8" On Fri, 14 Apr 2023 at 19:20, Peter Eisentraut wrote: > > I came across these new options and had a little bit of trouble figuring > them out from the documentation. Maybe this could be polished a bit. > > vacuumdb --help says > > --buffer-usage-limit=BUFSIZE > > I can guess what a "SIZE" might be, but is "BUFSIZE" different from a > "SIZE"? Maybe simplify here. > > On the vacuumdb man page, the placeholder is > > buffer_usage_limit > > which is yet another way of phrasing it. Maybe also use "size" here? > > The VACUUM man page says > > BUFFER_USAGE_LIMIT [ string ] > > which had me really confused. The detailed description later doesn't > give any further explanation of possible values, except that > 0 is apparently a possible value, which in my mind is > not a string. Then there is a link to guc-vacuum-buffer-usage-limit, > which lifts the mystery that this is really just an integer setting with > possible memory-size units, but it was really hard to figure that out > from the start! > > Moreover, on the VACUUM man page, right below BUFFER_USAGE_LIMIT, it > explains the different kinds of accepted values, and "string" wasn't > added there. Maybe also change this to "size" here and add an > explanation there what kinds of sizes are possible. > > Finally, the locations of the new options in the various documentation > places seems a bit random. The vacuumdb --help output and the man page > appear to be mostly alphabetical, so --buffer-usage-limit should be > after -a/--all. (Also note that right now the option isn't even in the > same place in the --help output versus the man page.) These are all valid points. I've attached a patch aiming to address each of them. > The order of the options on the VACUUM man page doesn't make any sense > anymore. This isn't really the fault of this patch, but maybe it's time > to do a fresh reordering there. Agreed, that likely wasn't a big problem say about 5 years ago when we had far fewer options, but the number has grown quite a bit since then. Right after I fix the points you've mentioned seems a good time to address that. David --0000000000007e86ea05f9557a2b Content-Type: application/octet-stream; name="fix_buffer_usage_limit_docs.patch" Content-Disposition: attachment; filename="fix_buffer_usage_limit_docs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lgh9rkh70 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYW5hbHl6ZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9hbmFseXplLnNnbWwKaW5kZXggOTRlMzBmMWNlNy4uNmYwYmI0NjMxYiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9hbmFseXplLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9h bmFseXplLnNnbWwKQEAgLTI4LDcgKzI4LDcgQEAgQU5BTFlaRSBbIFZFUkJPU0UgXSBbIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9hbmRfY29sdW1uczwvcmVwbGFjZWEKIAog ICAgIFZFUkJPU0UgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVhbjwvcmVw bGFjZWFibGU+IF0KICAgICBTS0lQX0xPQ0tFRCBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5ib29sZWFuPC9yZXBsYWNlYWJsZT4gXQotICAgIEJVRkZFUl9VU0FHRV9MSU1JVCBbIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdHJpbmc8L3JlcGxhY2VhYmxlPiBdCisgICAg QlVGRkVSX1VTQUdFX0xJTUlUIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNpemU8 L3JlcGxhY2VhYmxlPiBdCiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj50YWJsZV9hbmRfY29sdW1uczwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCkBAIC0x MTAsNyArMTEwLDggQEAgQU5BTFlaRSBbIFZFUkJPU0UgXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZV9hbmRfY29sdW1uczwvcmVwbGFjZWEKICAgICAgIDx4cmVmIGxpbmtl bmQ9Imd1Yy12YWN1dW0tYnVmZmVyLXVzYWdlLWxpbWl0Ii8+LiAgSGlnaGVyIHNldHRpbmdzIGNh bgogICAgICAgYWxsb3cgPGNvbW1hbmQ+QU5BTFlaRTwvY29tbWFuZD4gdG8gcnVuIG1vcmUgcXVp Y2tseSwgYnV0IGhhdmluZyB0b28KICAgICAgIGxhcmdlIGEgc2V0dGluZyBtYXkgY2F1c2UgdG9v IG1hbnkgb3RoZXIgdXNlZnVsIHBhZ2VzIHRvIGJlIGV2aWN0ZWQgZnJvbQotICAgICAgc2hhcmVk IGJ1ZmZlcnMuCisgICAgICBzaGFyZWQgYnVmZmVycy4gIFRoZSBtaW5pbXVtIHZhbHVlIGlzIDxs aXRlcmFsPjEyOCBrQjwvbGl0ZXJhbD4gYW5kIHRoZQorICAgICAgbWF4aW11bSB2YWx1ZSBpcyA8 bGl0ZXJhbD4xNiBHQjwvbGl0ZXJhbD4uCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgog ICAgPC92YXJsaXN0ZW50cnk+CkBAIC0xMjksNiArMTMwLDE5IEBAIEFOQUxZWkUgWyBWRVJCT1NF IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfYW5kX2NvbHVtbnM8L3Jl cGxhY2VhCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zaXplPC9y ZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFNw ZWNpZmllcyBhbiBhbW91bnQgb2YgbWVtb3J5IGluIGtpbG9ieXRlcy4gIFNpemVzIG1heSBhbHNv IGJlIHNwZWNpZmllZAorICAgICAgYXMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgc2l6ZSBmb2xs b3dlZCBieSBhbnkgb25lIG9mIHRoZSBmb2xsb3dpbmcKKyAgICAgIG1lbW9yeSB1bml0czogPGxp dGVyYWw+a0I8L2xpdGVyYWw+IChraWxvYnl0ZXMpLCA8bGl0ZXJhbD5NQjwvbGl0ZXJhbD4KKyAg ICAgIChtZWdhYnl0ZXMpLCA8bGl0ZXJhbD5HQjwvbGl0ZXJhbD4gKGdpZ2FieXRlcyksIG9yCisg ICAgICA8bGl0ZXJhbD5UQjwvbGl0ZXJhbD4gKHRlcmFieXRlcykuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAg ICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxh Y2VhYmxlPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL3ZhY3V1bS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi92YWN1dW0uc2dtbAppbmRleCBkZDBm YmI4Y2I3Li41NGY0N2EwYzY0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3ZhY3V1bS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvdmFjdXVtLnNnbWwKQEAgLTM5LDcgKzM5LDcgQEAg VkFDVVVNIFsgRlVMTCBdIFsgRlJFRVpFIF0gWyBWRVJCT1NFIF0gWyBBTkFMWVpFIF0gWyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXQKICAgICBQQVJBTExFTCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+aW50ZWdlcjwvcmVwbGFjZWFibGU+CiAgICAgU0tJUF9EQVRBQkFTRV9TVEFU UyBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5ib29sZWFuPC9yZXBsYWNlYWJsZT4g XQogICAgIE9OTFlfREFUQUJBU0VfU1RBVFMgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+IF0KLSAgICBCVUZGRVJfVVNBR0VfTElNSVQgWyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RyaW5nPC9yZXBsYWNlYWJsZT4gXQorICAgIEJV RkZFUl9VU0FHRV9MSU1JVCBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zaXplPC9y ZXBsYWNlYWJsZT4gXQogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+dGFibGVfYW5kX2NvbHVtbnM8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KIApAQCAtMzY0 LDcgKzM2NCw4IEBAIFZBQ1VVTSBbIEZVTEwgXSBbIEZSRUVaRSBdIFsgVkVSQk9TRSBdIFsgQU5B TFlaRSBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0CiAgICAgICA8eHJlZiBsaW5rZW5k PSJndWMtdmFjdXVtLWJ1ZmZlci11c2FnZS1saW1pdCIvPi4gIEhpZ2hlciBzZXR0aW5ncyBjYW4K ICAgICAgIGFsbG93IDxjb21tYW5kPlZBQ1VVTTwvY29tbWFuZD4gdG8gcnVuIG1vcmUgcXVpY2ts eSwgYnV0IGhhdmluZyB0b28KICAgICAgIGxhcmdlIGEgc2V0dGluZyBtYXkgY2F1c2UgdG9vIG1h bnkgb3RoZXIgdXNlZnVsIHBhZ2VzIHRvIGJlIGV2aWN0ZWQgZnJvbQotICAgICAgc2hhcmVkIGJ1 ZmZlcnMuCisgICAgICBzaGFyZWQgYnVmZmVycy4gIFRoZSBtaW5pbXVtIHZhbHVlIGlzIDxsaXRl cmFsPjEyOCBrQjwvbGl0ZXJhbD4gYW5kIHRoZQorICAgICAgbWF4aW11bSB2YWx1ZSBpcyA8bGl0 ZXJhbD4xNiBHQjwvbGl0ZXJhbD4uCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAg PC92YXJsaXN0ZW50cnk+CkBAIC0zOTIsNiArMzkzLDE5IEBAIFZBQ1VVTSBbIEZVTEwgXSBbIEZS RUVaRSBdIFsgVkVSQk9TRSBdIFsgQU5BTFlaRSBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zaXplPC9yZXBs YWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFNwZWNp ZmllcyBhbiBhbW91bnQgb2YgbWVtb3J5IGluIGtpbG9ieXRlcy4gIFNpemVzIG1heSBhbHNvIGJl IHNwZWNpZmllZAorICAgICAgYXMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgc2l6ZSBmb2xsb3dl ZCBieSBhbnkgb25lIG9mIHRoZSBmb2xsb3dpbmcKKyAgICAgIG1lbW9yeSB1bml0czogPGxpdGVy YWw+a0I8L2xpdGVyYWw+IChraWxvYnl0ZXMpLCA8bGl0ZXJhbD5NQjwvbGl0ZXJhbD4KKyAgICAg IChtZWdhYnl0ZXMpLCA8bGl0ZXJhbD5HQjwvbGl0ZXJhbD4gKGdpZ2FieXRlcyksIG9yCisgICAg ICA8bGl0ZXJhbD5UQjwvbGl0ZXJhbD4gKHRlcmFieXRlcykuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAg PHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2Vh YmxlPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L3ZhY3V1bWRiLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3ZhY3V1bWRiLnNnbWwKaW5kZXggODI4 MGNmMGZiMC4uY2FmOTdhZjIxNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi92YWN1dW1k Yi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvdmFjdXVtZGIuc2dtbApAQCAtMTIxLDYgKzEy MSwxOSBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAg IDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0 aW9uPi0tYnVmZmVyLXVzYWdlLWxpbWl0IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5z aXplPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAg ICAgPHBhcmE+CisgICAgICAgIFNwZWNpZmllcyB0aGUKKyAgICAgICAgPGdsb3NzdGVybSBsaW5r ZW5kPSJnbG9zc2FyeS1idWZmZXItYWNjZXNzLXN0cmF0ZWd5Ij5CdWZmZXIgQWNjZXNzIFN0cmF0 ZWd5PC9nbG9zc3Rlcm0+CisgICAgICAgIHJpbmcgYnVmZmVyIHNpemUgZm9yIGEgZ2l2ZW4gaW52 b2NhdGlvbiBvZiA8YXBwbGljYXRpb24+dmFjdXVtZGI8L2FwcGxpY2F0aW9uPi4KKyAgICAgICAg VGhpcyBzaXplIGlzIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBudW1iZXIgb2Ygc2hhcmVkIGJ1ZmZl cnMgd2hpY2ggd2lsbAorICAgICAgICBiZSByZXVzZWQgYXMgcGFydCBvZiB0aGlzIHN0cmF0ZWd5 LiAgU2VlIDx4cmVmIGxpbmtlbmQ9InNxbC12YWN1dW0iLz4uCisgICAgICAgPC9wYXJhPgorICAg ICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRy eT4KICAgICAgIDx0ZXJtPjxvcHRpb24+PG9wdGlvbmFsPi1kPC9vcHRpb25hbD4gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRibmFtZTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJt PgogICAgICAgPHRlcm0+PG9wdGlvbj48b3B0aW9uYWw+LS1kYm5hbWU9PC9vcHRpb25hbD48cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGJuYW1lPC9yZXBsYWNlYWJsZT48L29wdGlvbj48 L3Rlcm0+CkBAIC0yNzgsMTkgKzI5MSw2IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAg ICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKLSAgICAgPHZhcmxpc3RlbnRy eT4KLSAgICAgIDx0ZXJtPjxvcHRpb24+LS1idWZmZXItdXNhZ2UtbGltaXQgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmJ1ZmZlcl91c2FnZV9saW1pdDwvcmVwbGFjZWFibGU+PC9vcHRp b24+PC90ZXJtPgotICAgICAgPGxpc3RpdGVtPgotICAgICAgIDxwYXJhPgotICAgICAgICBTcGVj aWZpZXMgdGhlCi0gICAgICAgIDxnbG9zc3Rlcm0gbGlua2VuZD0iZ2xvc3NhcnktYnVmZmVyLWFj Y2Vzcy1zdHJhdGVneSI+QnVmZmVyIEFjY2VzcyBTdHJhdGVneTwvZ2xvc3N0ZXJtPgotICAgICAg ICByaW5nIGJ1ZmZlciBzaXplIGZvciBhIGdpdmVuIGludm9jYXRpb24gb2YgPGFwcGxpY2F0aW9u PnZhY3V1bWRiPC9hcHBsaWNhdGlvbj4uCi0gICAgICAgIFRoaXMgc2l6ZSBpcyB1c2VkIHRvIGNh bGN1bGF0ZSB0aGUgbnVtYmVyIG9mIHNoYXJlZCBidWZmZXJzIHdoaWNoIHdpbGwKLSAgICAgICAg YmUgcmV1c2VkIGFzIHBhcnQgb2YgdGhpcyBzdHJhdGVneS4gIFNlZSA8eHJlZiBsaW5rZW5kPSJz cWwtdmFjdXVtIi8+LgotICAgICAgIDwvcGFyYT4KLSAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgIDwv dmFybGlzdGVudHJ5PgotCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgICA8dGVybT48b3B0aW9u Pi1uIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWE8L3JlcGxhY2VhYmxlPjwv b3B0aW9uPjwvdGVybT4KICAgICAgIDx0ZXJtPjxvcHRpb24+LS1zY2hlbWE9PHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9zY3JpcHRzL3ZhY3V1bWRiLmMgYi9zcmMvYmluL3NjcmlwdHMv dmFjdXVtZGIuYwppbmRleCAxMjQxNjQ0ZWQ1Li42ODdhZjljMWYzIDEwMDY0NAotLS0gYS9zcmMv YmluL3NjcmlwdHMvdmFjdXVtZGIuYworKysgYi9zcmMvYmluL3NjcmlwdHMvdmFjdXVtZGIuYwpA QCAtMTEyOCw2ICsxMTI4LDcgQEAgaGVscChjb25zdCBjaGFyICpwcm9nbmFtZSkKIAlwcmludGYo XygiICAlcyBbT1BUSU9OXS4uLiBbREJOQU1FXVxuIiksIHByb2duYW1lKTsKIAlwcmludGYoXygi XG5PcHRpb25zOlxuIikpOwogCXByaW50ZihfKCIgIC1hLCAtLWFsbCAgICAgICAgICAgICAgICAg ICAgICAgdmFjdXVtIGFsbCBkYXRhYmFzZXNcbiIpKTsKKwlwcmludGYoXygiICAgICAgLS1idWZm ZXItdXNhZ2UtbGltaXQ9U0laRSAgIHNpemUgb2YgcmluZyBidWZmZXIgdXNlZCBmb3IgdmFjdXVt XG4iKSk7CiAJcHJpbnRmKF8oIiAgLWQsIC0tZGJuYW1lPURCTkFNRSAgICAgICAgICAgICBkYXRh YmFzZSB0byB2YWN1dW1cbiIpKTsKIAlwcmludGYoXygiICAgICAgLS1kaXNhYmxlLXBhZ2Utc2tp cHBpbmcgICAgIGRpc2FibGUgYWxsIHBhZ2Utc2tpcHBpbmcgYmVoYXZpb3JcbiIpKTsKIAlwcmlu dGYoXygiICAtZSwgLS1lY2hvICAgICAgICAgICAgICAgICAgICAgIHNob3cgdGhlIGNvbW1hbmRz IGJlaW5nIHNlbnQgdG8gdGhlIHNlcnZlclxuIikpOwpAQCAtMTEzNiw3ICsxMTM3LDYgQEAgaGVs cChjb25zdCBjaGFyICpwcm9nbmFtZSkKIAlwcmludGYoXygiICAgICAgLS1mb3JjZS1pbmRleC1j bGVhbnVwICAgICAgIGFsd2F5cyByZW1vdmUgaW5kZXggZW50cmllcyB0aGF0IHBvaW50IHRvIGRl YWQgdHVwbGVzXG4iKSk7CiAJcHJpbnRmKF8oIiAgLWosIC0tam9icz1OVU0gICAgICAgICAgICAg ICAgICB1c2UgdGhpcyBtYW55IGNvbmN1cnJlbnQgY29ubmVjdGlvbnMgdG8gdmFjdXVtXG4iKSk7 CiAJcHJpbnRmKF8oIiAgICAgIC0tbWluLW14aWQtYWdlPU1YSURfQUdFICAgICBtaW5pbXVtIG11 bHRpeGFjdCBJRCBhZ2Ugb2YgdGFibGVzIHRvIHZhY3V1bVxuIikpOwotCXByaW50ZihfKCIgICAg ICAtLWJ1ZmZlci11c2FnZS1saW1pdD1CVUZTSVpFIHNpemUgb2YgcmluZyBidWZmZXIgdXNlZCBm b3IgdmFjdXVtXG4iKSk7CiAJcHJpbnRmKF8oIiAgICAgIC0tbWluLXhpZC1hZ2U9WElEX0FHRSAg ICAgICBtaW5pbXVtIHRyYW5zYWN0aW9uIElEIGFnZSBvZiB0YWJsZXMgdG8gdmFjdXVtXG4iKSk7 CiAJcHJpbnRmKF8oIiAgICAgIC0tbm8taW5kZXgtY2xlYW51cCAgICAgICAgICBkb24ndCByZW1v dmUgaW5kZXggZW50cmllcyB0aGF0IHBvaW50IHRvIGRlYWQgdHVwbGVzXG4iKSk7CiAJcHJpbnRm KF8oIiAgICAgIC0tbm8tcHJvY2Vzcy1tYWluICAgICAgICAgICBza2lwIHRoZSBtYWluIHJlbGF0 aW9uXG4iKSk7Cg== --0000000000007e86ea05f9557a2b--