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 1m6YsA-0001eI-Qc for pgsql-docs@arkaria.postgresql.org; Thu, 22 Jul 2021 13:36:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1m6Ys7-0003jn-NW for pgsql-docs@arkaria.postgresql.org; Thu, 22 Jul 2021 13:36:19 +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 1m6Ys7-0003jf-Bx for pgsql-docs@lists.postgresql.org; Thu, 22 Jul 2021 13:36:19 +0000 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1m6Ys2-0005C7-II for pgsql-docs@lists.postgresql.org; Thu, 22 Jul 2021 13:36:18 +0000 Received: by mail-wm1-x333.google.com with SMTP id p9so1256686wmq.5 for ; Thu, 22 Jul 2021 06:36:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec-at.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version; bh=QjMqqY14XdpddauhGJDinpb79ZeRsjBXvwWwEHer64Y=; b=YMcT4WIFVuxTwFKy9041+ribJPGdJiMkznJjN16hCrSeL0jCY0SgPQG8bUbSLAoVT9 4Ix0ZSkm2m2ZLI6EYh+TFipPNavGhhE8rBBaXHTeHa0G/eZOv95aItbwBCLA/nleQjBk 4xcMOPfoCMxw2E8ZzK3sx0bn02FjeTpMk0aXeGQycUenZ+lCWp+WklhO4USU+AlSlyEd zZYLSvnhNQkbDiVfNpqONCnF2pivExDaM64tdhwUDDhjT+rK8oshRpM5GIfOCpNMY+pF +P4wir12/Fzj/Pi5lVmCm2stNxZWQyc8lumJbU2ndcpCVRs3QQ/sINvNpKi0+JPsNUwV W0vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version; bh=QjMqqY14XdpddauhGJDinpb79ZeRsjBXvwWwEHer64Y=; b=I1jkMNyK+KKbyF5GulLbYaE5O4kNfi7QJNhK9Crl1Bh0dHhwAzB4zD0DWoQR+zTIX3 ELnXcvwnveNAm68Th9wcgDlxXpEt7EaYcwODbDqa6eXXu3/LH+16tEgy1bL43l7bOhkG Y9nLduVkC2gevi45kPbW2vClJGtgGgYTA1h5Xxp2pyPgpVhc0dzatF2UtXSPwNuewWNP PwP1LWTgER3M1Vw6MJGiP3IuDjlSOK0mY/aiF6Qtq4JwNDczBEg9ryQjtv0VAaN2T+rb zXbsUWXvpLytJsBxAPRykeqoo8h0hV3Q2rm2VatoZMmkL+a4VCHuKxQ8JK1TjBRihECN BLnQ== X-Gm-Message-State: AOAM5324OZ1qJ86V9iL9oMe9sfixjdMgtby8sxvkIUU7PxJCOkF5pDji lw80qTPsw4xCvo/jj8e52k1UluLhqtKZrPkP X-Google-Smtp-Source: ABdhPJxWfZgYxNKXYQMePFjn01ujsltxBJBUFTSQQBm/64ayFHInLce9KTDiKCq5Hdl7ca/p+NHASQ== X-Received: by 2002:a1c:f003:: with SMTP id a3mr9471731wmb.82.1626960973281; Thu, 22 Jul 2021 06:36:13 -0700 (PDT) Received: from localhost.localdomain (217-149-170-241.nat.highway.telekom.at. [217.149.170.241]) by smtp.gmail.com with ESMTPSA id e15sm29486609wrp.29.2021.07.22.06.36.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Jul 2021 06:36:12 -0700 (PDT) Message-ID: Subject: Re: Improve documentation for pg_upgrade, standbys and rsync From: Laurenz Albe To: Stephen Frost Cc: pgsql-docs@lists.postgresql.org Date: Thu, 22 Jul 2021 15:36:11 +0200 In-Reply-To: <20210716131744.GA20766@tamriel.snowman.net> References: <22f129004bb66cd91e1dfd3345a9787f5039f3ae.camel@cybertec.at> <20210519143135.GI20766@tamriel.snowman.net> <20210716131744.GA20766@tamriel.snowman.net> Content-Type: multipart/mixed; boundary="=-zt6n5J8WiPOgFdErUqWy" User-Agent: Evolution 3.36.5 (3.36.5-2.fc32) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-zt6n5J8WiPOgFdErUqWy Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Thanks for looking at this! On Fri, 2021-07-16 at 09:17 -0400, Stephen Frost wrote: > > > An additional thing that we should really be mentioning is to tell > > > people to go in and TRUNCATE all of their UNLOGGED tables before going > > > through this process, otherwise the rsync will end up spending a bunch > > > of time copying the files for UNLOGGED relations which you really don't > > > want. > > > > I have thought about that some more, and I am not certain that we should > > unconditionally recommend that. Perhaps the pain of rebuilding the > > unlogged table on the primary would be worse than rsyncing it to the > > standby. > > I disagree entirely. The reason to even consider using this approach is > to minimize the time required to get things back online and there's no > question that having the unlogged tables get rsync'd across would > increase the time required. I am not totally convinced that minimal down time is always more important than keeping your unlogged tables, but I have adapted the patch accordingly. > > The documentation already mentions > > > > "Unfortunately, rsync needlessly copies files associated with temporary > > and unlogged tables because these files don't normally exist on standby > > servers." > > > > I'd say that is good enough, and people can draw their conclusions from > > that. > > I disagree. Instead, we should have explicit steps included which > detail how to find and truncate unlogged tables and what to do to remove > or exclude temporary files once the server is shut down. Ok, done. > > Recommend using the --relative option of rsync for clarity > > and adapt the code samples accordingly. > > Using relative paths makes clearer what is meant by "current > > directory" and "remote_dir". > > I'm not really convinced that this is actually a positive change, though > I don't know that it's really a negative one either. In general, I > prefer fully qualified paths to try and make things very clear about > what's happening, but this is also a bit of an odd case due to hard > links, etc. I normally prefer absolute paths as well. But that is the only way I got it to run, and I think that in this case it adds clarity to have the data directories relative to your current working directory. > > Add a reminder that "standby.signal" needs to be created. > > This makes sense to include, certainly, but it should be an explicit > step, not just a "don't forget" note at the end. I'm not really sure > why we talk about "log shipping" either..? Wouldn't it make more sense > to have something like: > > g. Configure standby servers > > Review the prior configuration of the standby servers and set up the > same configuration in the newly rsync'd directory. > > 1. touch /path/to/replica/standby.signal > 2. Configure restore_command to pull from WAL archive > 3. For streaming replicas, configure primary_conninfo Ok, I have modified the final step like this. That is better than talking about log shipping. Patch V3 attached. Yours, Laurenz Albe --=-zt6n5J8WiPOgFdErUqWy Content-Disposition: attachment; filename="0001-Improve-doc-for-pg_upgrade-and-standby-servers.V3.patch" Content-Type: text/x-patch; name="0001-Improve-doc-for-pg_upgrade-and-standby-servers.V3.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA0MzQ1M2RjNzM3OWY4N2NhNjYzOGM4MGM5ZWM2YmY1MjhmOGUyZTI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogVGh1LCAyMiBKdWwgMjAyMSAxNTozMzo1OSArMDIwMApTdWJqZWN0OiBbUEFUQ0hd IEltcHJvdmUgZG9jIGZvciBwZ191cGdyYWRlIGFuZCBzdGFuZGJ5IHNlcnZlcnMKClJlY29tbWVu ZCB0cnVuY2F0aW5nIG9yIHJlbW92aW5nIHVubG9nZ2VkIGFuZCB0ZW1wb3JhcnkKdGFibGVzIHRv IHNwZWVkIHVwICJyc3luYyIuICBTaW5jZSB0aGlzIGlzIGJlc3QgZG9uZSBpbgp0aGUgc3RlcCAi UHJlcGFyZSBmb3Igc3RhbmRieSBzZXJ2ZXIgdXBncmFkZXMiLCBtb3ZlIHRoYXQKc3RlcCB0byBw cmVjZWRlICJTdG9wIGJvdGggc2VydmVycyIuCgpSZWNvbW1lbmQgdXNpbmcgdGhlIC0tcmVsYXRp dmUgb3B0aW9uIG9mIHJzeW5jIGZvciBjbGFyaXR5CmFuZCBhZGFwdCB0aGUgY29kZSBzYW1wbGVz IGFjY29yZGluZ2x5LgpVc2luZyByZWxhdGl2ZSBwYXRocyBtYWtlcyBjbGVhcmVyIHdoYXQgaXMg bWVhbnQgYnkgImN1cnJlbnQKZGlyZWN0b3J5IiBhbmQgInJlbW90ZV9kaXIiLgoKUmV3cml0ZSB0 aGUgZmluYWwgc3Vic3RlcCB0byBub3QgbWVudGlvbiAibG9nIHNoaXBwaW5nIi4KUmF0aGVyLCBw cm92aWRlIGEgbGlzdCBvZiB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb24gc3RlcHMuCi0tLQog ZG9jL3NyYy9zZ21sL3JlZi9wZ3VwZ3JhZGUuc2dtbCB8IDk2ICsrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDMzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGd1cGdyYWRlLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL3BndXBncmFkZS5zZ21sCmluZGV4IGE4M2M2M2NkOTguLjNjY2IzMTFm ZjcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGd1cGdyYWRlLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9wZ3VwZ3JhZGUuc2dtbApAQCAtMzI0LDYgKzMyNCwzNSBAQCBtYWtlIHBy ZWZpeD0vdXNyL2xvY2FsL3Bnc3FsLm5ldyBpbnN0YWxsCiAgICAgPC9wYXJhPgogICAgPC9zdGVw PgogCisgICA8c3RlcCBpZD0icHJlcGFyZS1zdGFuZGJ5LXVwZ3JhZGUiPgorICAgIDx0aXRsZT5Q cmVwYXJlIGZvciBzdGFuZGJ5IHNlcnZlciB1cGdyYWRlczwvdGl0bGU+CisKKyAgICA8cGFyYT4K KyAgICAgSWYgeW91IGFyZSB1cGdyYWRpbmcgc3RhbmRieSBzZXJ2ZXJzIHVzaW5nIG1ldGhvZHMg b3V0bGluZWQgaW4gc2VjdGlvbiA8eHJlZgorICAgICBsaW5rZW5kPSJwZ3VwZ3JhZGUtc3RlcC1y ZXBsaWNhcyIvPiwgeW91IHNob3VsZCBjb25zaWRlciBkcm9wcGluZyB0ZW1wb3JhcnkKKyAgICAg dGFibGVzIGFuZCB0cnVuY2F0aW5nIHVubG9nZ2VkIHRhYmxlcyBvbiB0aGUgcHJpbWFyeSwgc2lu Y2UgdGhhdCB3aWxsIHNwZWVkIHVwCisgICAgIDxhcHBsaWNhdGlvbj5yc3luYzwvYXBwbGljYXRp b24+IGFuZCBrZWVwIHRoZSBkb3duIHRpbWUgc2hvcnQuCisgICAgIFlvdSBjb3VsZCBydW4gdGhl IGZvbGxvd2luZyA8YXBwbGljYXRpb24+cHNxbDwvYXBwbGljYXRpb24+IGNvbW1hbmRzCisgICAg IGluIGFsbCBkYXRhYmFzZXM6CisKKzxwcm9ncmFtbGlzdGluZz4KK1NFTEVDVCBmb3JtYXQoJ0RS T1AgVEFCTEUgJXMnLCBvaWQ6OnJlZ2NsYXNzKSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbHBlcnNp c3RlbmNlID0gJ3QnIFxnZXhlYworU0VMRUNUIGZvcm1hdCgnVFJVTkNBVEUgJXMnLCBvaWQ6OnJl Z2NsYXNzKSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbHBlcnNpc3RlbmNlID0gJ3UnIFxnZXhlYwor PC9wcm9ncmFtbGlzdGluZz4KKworICAgICBBZnRlciBzdG9wcGluZyB0aGUgcHJpbWFyeSBzZXJ2 ZXJzIGFzIGRlc2NyaWJlZCBpbiB0aGUgZm9sbG93aW5nIHN0ZXAsIHZlcmlmeSB0aGF0CisgICAg IHRoZSBvbGQgc3RhbmRieSBzZXJ2ZXJzIGhhdmUgY2F1Z2h0IHVwIGJ5IHJ1bm5pbmcKKyAgICAg PGFwcGxpY2F0aW9uPnBnX2NvbnRyb2xkYXRhPC9hcHBsaWNhdGlvbj4gYWdhaW5zdCB0aGUgb2xk IHByaW1hcnkgYW5kCisgICAgIHN0YW5kYnkgY2x1c3RlcnMuICBWZXJpZnkgdGhhdCB0aGUgPHF1 b3RlPkxhdGVzdCBjaGVja3BvaW50IGxvY2F0aW9uPC9xdW90ZT4KKyAgICAgdmFsdWVzIG1hdGNo IGluIGFsbCBjbHVzdGVycy4KKyAgICAgKFRoZXJlIHdpbGwgYmUgYSBtaXNtYXRjaCBpZiBvbGQg c3RhbmRieSBzZXJ2ZXJzIHdlcmUgc2h1dCBkb3duCisgICAgIGJlZm9yZSB0aGUgb2xkIHByaW1h cnkgb3IgaWYgdGhlIG9sZCBzdGFuZGJ5IHNlcnZlcnMgYXJlIHN0aWxsIHJ1bm5pbmcuKQorICAg ICBBbHNvLCBtYWtlIHN1cmUgPHZhcm5hbWU+d2FsX2xldmVsPC92YXJuYW1lPiBpcyBub3Qgc2V0 IHRvCisgICAgIDxsaXRlcmFsPm1pbmltYWw8L2xpdGVyYWw+IGluIHRoZSA8ZmlsZW5hbWU+cG9z dGdyZXNxbC5jb25mPC9maWxlbmFtZT4gZmlsZSBvbiB0aGUKKyAgICAgbmV3IHByaW1hcnkgY2x1 c3Rlci4KKyAgICA8L3BhcmE+CisgICA8L3N0ZXA+CisKICAgIDxzdGVwPgogICAgIDx0aXRsZT5T dG9wIGJvdGggc2VydmVyczwvdGl0bGU+CiAKQEAgLTM0OSwyMyArMzc4LDYgQEAgTkVUIFNUT1Ag cG9zdGdyZXNxbC0mbWFqb3J2ZXJzaW9uOwogICAgIDwvcGFyYT4KICAgIDwvc3RlcD4KIAotICAg PHN0ZXA+Ci0gICAgPHRpdGxlPlByZXBhcmUgZm9yIHN0YW5kYnkgc2VydmVyIHVwZ3JhZGVzPC90 aXRsZT4KLQotICAgIDxwYXJhPgotICAgICBJZiB5b3UgYXJlIHVwZ3JhZGluZyBzdGFuZGJ5IHNl cnZlcnMgdXNpbmcgbWV0aG9kcyBvdXRsaW5lZCBpbiBzZWN0aW9uIDx4cmVmCi0gICAgIGxpbmtl bmQ9InBndXBncmFkZS1zdGVwLXJlcGxpY2FzIi8+LCB2ZXJpZnkgdGhhdCB0aGUgb2xkIHN0YW5k YnkKLSAgICAgc2VydmVycyBhcmUgY2F1Z2h0IHVwIGJ5IHJ1bm5pbmcgPGFwcGxpY2F0aW9uPnBn X2NvbnRyb2xkYXRhPC9hcHBsaWNhdGlvbj4KLSAgICAgYWdhaW5zdCB0aGUgb2xkIHByaW1hcnkg YW5kIHN0YW5kYnkgY2x1c3RlcnMuICBWZXJpZnkgdGhhdCB0aGUKLSAgICAgPHF1b3RlPkxhdGVz dCBjaGVja3BvaW50IGxvY2F0aW9uPC9xdW90ZT4gdmFsdWVzIG1hdGNoIGluIGFsbCBjbHVzdGVy cy4KLSAgICAgKFRoZXJlIHdpbGwgYmUgYSBtaXNtYXRjaCBpZiBvbGQgc3RhbmRieSBzZXJ2ZXJz IHdlcmUgc2h1dCBkb3duCi0gICAgIGJlZm9yZSB0aGUgb2xkIHByaW1hcnkgb3IgaWYgdGhlIG9s ZCBzdGFuZGJ5IHNlcnZlcnMgYXJlIHN0aWxsIHJ1bm5pbmcuKQotICAgICBBbHNvLCBtYWtlIHN1 cmUgPHZhcm5hbWU+d2FsX2xldmVsPC92YXJuYW1lPiBpcyBub3Qgc2V0IHRvCi0gICAgIDxsaXRl cmFsPm1pbmltYWw8L2xpdGVyYWw+IGluIHRoZSA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25mPC9m aWxlbmFtZT4gZmlsZSBvbiB0aGUKLSAgICAgbmV3IHByaW1hcnkgY2x1c3Rlci4KLSAgICA8L3Bh cmE+Ci0gICA8L3N0ZXA+Ci0KICAgIDxzdGVwPgogICAgIDx0aXRsZT5SdW4gPGFwcGxpY2F0aW9u PnBnX3VwZ3JhZGU8L2FwcGxpY2F0aW9uPjwvdGl0bGU+CiAKQEAgLTUyOCwyNiArNTQwLDI2IEBA IHBnX3VwZ3JhZGUuZXhlCiAKICAgICAgIDxwYXJhPgogICAgICAgIFdoZW4gdXNpbmcgbGluayBt b2RlLCBzdGFuZGJ5IHNlcnZlcnMgY2FuIGJlIHF1aWNrbHkgdXBncmFkZWQgdXNpbmcKLSAgICAg ICA8YXBwbGljYXRpb24+cnN5bmM8L2FwcGxpY2F0aW9uPi4gIFRvIGFjY29tcGxpc2ggdGhpcywg ZnJvbSBhIGRpcmVjdG9yeSBvbgorICAgICAgIDxhcHBsaWNhdGlvbj5yc3luYzwvYXBwbGljYXRp b24+LiAgVG8gYWNjb21wbGlzaCB0aGlzLCBjaGFuZ2UgaW50byBhIGRpcmVjdG9yeSBvbgogICAg ICAgIHRoZSBwcmltYXJ5IHNlcnZlciB0aGF0IGlzIGFib3ZlIHRoZSBvbGQgYW5kIG5ldyBkYXRh YmFzZSBjbHVzdGVyCi0gICAgICAgZGlyZWN0b3JpZXMsIHJ1biB0aGlzIG9uIHRoZSA8ZW1waGFz aXM+cHJpbWFyeTwvZW1waGFzaXM+IGZvciBlYWNoIHN0YW5kYnkKKyAgICAgICBkaXJlY3Rvcmll cyBhbmQgcnVuIHRoaXMgb24gdGhlIDxlbXBoYXNpcz5wcmltYXJ5PC9lbXBoYXNpcz4gZm9yIGVh Y2ggc3RhbmRieQogICAgICAgIHNlcnZlcjoKIAogPHByb2dyYW1saXN0aW5nPgotcnN5bmMgLS1h cmNoaXZlIC0tZGVsZXRlIC0taGFyZC1saW5rcyAtLXNpemUtb25seSAtLW5vLWluYy1yZWN1cnNp dmUgb2xkX2NsdXN0ZXIgbmV3X2NsdXN0ZXIgcmVtb3RlX2RpcgorcnN5bmMgLS1hcmNoaXZlIC0t ZGVsZXRlIC0taGFyZC1saW5rcyAtLXNpemUtb25seSAtLW5vLWluYy1yZWN1cnNpdmUgLS1yZWxh dGl2ZSBvbGRfY2x1c3RlciBuZXdfY2x1c3RlciByZW1vdGVfZGlyCiA8L3Byb2dyYW1saXN0aW5n PgogCiAgICAgICAgd2hlcmUgPG9wdGlvbj5vbGRfY2x1c3Rlcjwvb3B0aW9uPiBhbmQgPG9wdGlv bj5uZXdfY2x1c3Rlcjwvb3B0aW9uPiBhcmUgcmVsYXRpdmUKICAgICAgICB0byB0aGUgY3VycmVu dCBkaXJlY3Rvcnkgb24gdGhlIHByaW1hcnksIGFuZCA8b3B0aW9uPnJlbW90ZV9kaXI8L29wdGlv bj4KLSAgICAgICBpcyA8ZW1waGFzaXM+YWJvdmU8L2VtcGhhc2lzPiB0aGUgb2xkIGFuZCBuZXcg Y2x1c3RlciBkaXJlY3RvcmllcwotICAgICAgIG9uIHRoZSBzdGFuZGJ5LiAgVGhlIGRpcmVjdG9y eSBzdHJ1Y3R1cmUgdW5kZXIgdGhlIHNwZWNpZmllZAotICAgICAgIGRpcmVjdG9yaWVzIG9uIHRo ZSBwcmltYXJ5IGFuZCBzdGFuZGJ5cyBtdXN0IG1hdGNoLiAgQ29uc3VsdCB0aGUKKyAgICAgICBp cyB0aGUgZGlyZWN0b3J5IG9uIHRoZSBzdGFuZGJ5IHRoYXQgY29ycmVzcG9uZHMgdG8geW91ciBj dXJyZW50IGRpcmVjdG9yeQorICAgICAgIG9uIHRoZSBwcmltYXJ5LiAgVGhlIGRpcmVjdG9yeSBz dHJ1Y3R1cmUgdW5kZXIgdGhlIHNwZWNpZmllZAorICAgICAgIGRpcmVjdG9yaWVzIG9uIHRoZSBw cmltYXJ5IGFuZCBzdGFuZGJ5cyBtdXN0IGJlIHRoZSBzYW1lLiAgQ29uc3VsdCB0aGUKICAgICAg ICA8YXBwbGljYXRpb24+cnN5bmM8L2FwcGxpY2F0aW9uPiBtYW51YWwgcGFnZSBmb3IgZGV0YWls cyBvbiBzcGVjaWZ5aW5nIHRoZQogICAgICAgIHJlbW90ZSBkaXJlY3RvcnksIGUuZy4sCiAKIDxw cm9ncmFtbGlzdGluZz4KLXJzeW5jIC0tYXJjaGl2ZSAtLWRlbGV0ZSAtLWhhcmQtbGlua3MgLS1z aXplLW9ubHkgLS1uby1pbmMtcmVjdXJzaXZlIC9vcHQvUG9zdGdyZVNRTC85LjUgXAotICAgICAg L29wdC9Qb3N0Z3JlU1FMLzkuNiBzdGFuZGJ5LmV4YW1wbGUuY29tOi9vcHQvUG9zdGdyZVNRTAor cnN5bmMgLS1hcmNoaXZlIC0tZGVsZXRlIC0taGFyZC1saW5rcyAtLXNpemUtb25seSAtLW5vLWlu Yy1yZWN1cnNpdmUgLS1yZWxhdGl2ZSA5LjYgMTMgXAorICAgICAgc3RhbmRieS5leGFtcGxlLmNv bTovdmFyL2xpYi9wb3N0Z3Jlc3FsCiA8L3Byb2dyYW1saXN0aW5nPgogCiAgICAgICAgWW91IGNh biB2ZXJpZnkgd2hhdCB0aGUgY29tbWFuZCB3aWxsIGRvIHVzaW5nCkBAIC01NjgsNyArNTgwLDgg QEAgcnN5bmMgLS1hcmNoaXZlIC0tZGVsZXRlIC0taGFyZC1saW5rcyAtLXNpemUtb25seSAtLW5v LWluYy1yZWN1cnNpdmUgL29wdC9Qb3N0Z3IKICAgICAgICBzbWFsbC4pICBUaGlzIHByb3ZpZGVz IHJhcGlkIHN0YW5kYnkgdXBncmFkZXMuICBVbmZvcnR1bmF0ZWx5LAogICAgICAgIDxhcHBsaWNh dGlvbj5yc3luYzwvYXBwbGljYXRpb24+IG5lZWRsZXNzbHkgY29waWVzIGZpbGVzIGFzc29jaWF0 ZWQgd2l0aAogICAgICAgIHRlbXBvcmFyeSBhbmQgdW5sb2dnZWQgdGFibGVzIGJlY2F1c2UgdGhl c2UgZmlsZXMgZG9uJ3Qgbm9ybWFsbHkKLSAgICAgICBleGlzdCBvbiBzdGFuZGJ5IHNlcnZlcnMu CisgICAgICAgZXhpc3Qgb24gc3RhbmRieSBzZXJ2ZXJzLCBzbyB5b3Ugc2hvdWxkIGhhdmUgdHJ1 bmNhdGVkIG9yIGRyb3BwZWQKKyAgICAgICBzdWNoIHRhYmxlcyBhcyBkZXNjcmliZWQgaW4gPHhy ZWYgbGlua2VuZD0icHJlcGFyZS1zdGFuZGJ5LXVwZ3JhZGUiLz4uCiAgICAgICA8L3BhcmE+CiAK ICAgICAgIDxwYXJhPgpAQCAtNTc2LDggKzU4OSw4IEBAIHJzeW5jIC0tYXJjaGl2ZSAtLWRlbGV0 ZSAtLWhhcmQtbGlua3MgLS1zaXplLW9ubHkgLS1uby1pbmMtcmVjdXJzaXZlIC9vcHQvUG9zdGdy CiAgICAgICAgPGFwcGxpY2F0aW9uPnJzeW5jPC9hcHBsaWNhdGlvbj4gY29tbWFuZCBmb3IgZWFj aCB0YWJsZXNwYWNlIGRpcmVjdG9yeSwgZS5nLjoKIAogPHByb2dyYW1saXN0aW5nPgotcnN5bmMg LS1hcmNoaXZlIC0tZGVsZXRlIC0taGFyZC1saW5rcyAtLXNpemUtb25seSAtLW5vLWluYy1yZWN1 cnNpdmUgL3ZvbDEvcGdfdGJsc3AvUEdfOS41XzIwMTUxMDA1MSBcCi0gICAgICAvdm9sMS9wZ190 YmxzcC9QR185LjZfMjAxNjA4MTMxIHN0YW5kYnkuZXhhbXBsZS5jb206L3ZvbDEvcGdfdGJsc3AK K3JzeW5jIC0tYXJjaGl2ZSAtLWRlbGV0ZSAtLWhhcmQtbGlua3MgLS1zaXplLW9ubHkgLS1uby1p bmMtcmVjdXJzaXZlIC0tcmVsYXRpdmUgXAorICAgICAgUEdfOS42XzIwMTYwODEzMSBQR18xM18y MDIwMDcyMDEgc3RhbmRieS5leGFtcGxlLmNvbTovdm9sMS90YmxzcAogPC9wcm9ncmFtbGlzdGlu Zz4KIAogICAgICAgIElmIHlvdSBoYXZlIHJlbG9jYXRlZCA8ZmlsZW5hbWU+cGdfd2FsPC9maWxl bmFtZT4gb3V0c2lkZSB0aGUgZGF0YQpAQCAtNTg3LDEzICs2MDAsMzAgQEAgcnN5bmMgLS1hcmNo aXZlIC0tZGVsZXRlIC0taGFyZC1saW5rcyAtLXNpemUtb25seSAtLW5vLWluYy1yZWN1cnNpdmUg L3ZvbDEvcGdfdGIKICAgICAgPC9zdGVwPgogCiAgICAgIDxzdGVwPgotICAgICAgPHRpdGxlPkNv bmZpZ3VyZSBzdHJlYW1pbmcgcmVwbGljYXRpb24gYW5kIGxvZy1zaGlwcGluZyBzdGFuZGJ5IHNl cnZlcnM8L3RpdGxlPgorICAgICAgPHRpdGxlPkNvbmZpZ3VyZSBzdGFuZGJ5IHNlcnZlcnM8L3Rp dGxlPgogCiAgICAgICA8cGFyYT4KLSAgICAgICBDb25maWd1cmUgdGhlIHNlcnZlcnMgZm9yIGxv ZyBzaGlwcGluZy4gIChZb3UgZG8gbm90IG5lZWQgdG8gcnVuCi0gICAgICAgPGZ1bmN0aW9uPnBn X3N0YXJ0X2JhY2t1cCgpPC9mdW5jdGlvbj4gYW5kIDxmdW5jdGlvbj5wZ19zdG9wX2JhY2t1cCgp PC9mdW5jdGlvbj4KLSAgICAgICBvciB0YWtlIGEgZmlsZSBzeXN0ZW0gYmFja3VwIGFzIHRoZSBz dGFuZGJ5cyBhcmUgc3RpbGwgc3luY2hyb25pemVkCi0gICAgICAgd2l0aCB0aGUgcHJpbWFyeS4p CisgICAgICAgUmV2aWV3IHRoZSBwcmlvciBjb25maWd1cmF0aW9uIG9mIHRoZSBzdGFuZGJ5IHNl cnZlcnMgYW5kIHNldCB1cCB0aGUKKyAgICAgICBzYW1lIGNvbmZpZ3VyYXRpb24gaW4gdGhlIG5l d2x5IDxhcHBsaWNhdGlvbj5yc3luYzwvYXBwbGljYXRpb24+J2VkCisgICAgICAgZGlyZWN0b3J5 LgorCisgICAgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAg PHBhcmE+CisgICAgICAgICAgdG91Y2ggPGZpbGVuYW1lPi9wYXRoL3RvL3JlcGxpY2Evc3RhbmRi eS5zaWduYWw8L2ZpbGVuYW1lPgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVt PgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBjb25maWd1 cmUgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5kPC92YXJuYW1lPiB0byBwdWxsIGZyb20gV0FMIGFy Y2hpdmUKKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPGxp c3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgZm9yIHN0cmVhbWluZyByZXBsaWNh cywgY29uZmlndXJlIDx2YXJuYW1lPnByaW1hcnlfY29ubmluZm88L3Zhcm5hbWU+CisgICAgICAg ICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC9pdGVtaXplZGxpc3Q+CiAg ICAgICA8L3BhcmE+CiAgICAgIDwvc3RlcD4KIAotLSAKMi4yNi4zCgo= --=-zt6n5J8WiPOgFdErUqWy--