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 1rGKWz-00EkXz-L3 for pgsql-hackers@arkaria.postgresql.org; Thu, 21 Dec 2023 15:00:13 +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 1rGKWy-00AHEB-Cd for pgsql-hackers@arkaria.postgresql.org; Thu, 21 Dec 2023 15:00:12 +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 1rGKWy-00AHE3-0F for pgsql-hackers@lists.postgresql.org; Thu, 21 Dec 2023 15:00:12 +0000 Received: from mail-lf1-x134.google.com ([2a00:1450:4864:20::134]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rGKWq-00DBwI-Kw for pgsql-hackers@postgresql.org; Thu, 21 Dec 2023 15:00:11 +0000 Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-50e3901c2e2so1130895e87.0 for ; Thu, 21 Dec 2023 07:00:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1703170804; x=1703775604; darn=postgresql.org; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=UmcQDZWKIqPQdiGpB1zzP/coWs8lFTlw6/DSXrFzjQE=; b=DzJH67jpF2VPWZrVgiLxRw+JTBUEoF8/b+sWKDuw12K66OtPPzJOTxx60+If/tOiX4 7jVvVjiCh25FWeaDjL/6/ZV5K4Qg2N2mhO093JgQLYdM3vIRqbrvm+YNNYPj4g3odIBd nbeeznwFBidOoUofERpHvE6ErSdaFzZ16v88d9XB46UvW6dpCL6kNIUeahU13Cn+UGYJ Rt00MnYTrpIJwQ2SUnB32KkllqDaM3NM8qmkKJ6aimR6uqxB9dWOM84OhuHYTeoHu2XH ftZkkLUU90zvB6hIZ7pJO/kodcewof5BlqyAKniDxSS6ZRzSL+ixAs7vBvpgKwmLkQ1n N1zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703170804; x=1703775604; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=UmcQDZWKIqPQdiGpB1zzP/coWs8lFTlw6/DSXrFzjQE=; b=fNIkDuzLfT5pP40rSCbm/5mehvvvdcnMRK6vHOR9wjHGBECf6uqnEapW2U9vrHU3PH OP+Vk2PU03oXRfGYCEHHwIMWyQ9aOaBs0y4U+Ik7cMwFakkuHPFWRohYzQmMVjyNhiP8 2VrtHcQDj0bfhRzZ53C2cmGUVSHEvQKrBVmYMqhzMvc9JO1ss0gLrtFWDJ6ApgBmmdNG 1Gr0wgTR8gKaqdlJVr3ziKRjj1C0+ea4+e8Md2lj+qqqqff9RceAH8aJVZbD40sk1Nkp eiCI6wrC0mWDFfK8jd5ltoCxmQv8D1jEJGE+1MNX2eAmKJF8GaqOThT2tSdMGZYTtOM+ x05A== X-Gm-Message-State: AOJu0YyV4RJHDkm12nB5n/L+cvCOp3a21dgUzgIdS4dmgjFtALQHmPE2 rxSRI1p0/WRTOtmbAFr3V/b7H6DN7tpkrg== X-Google-Smtp-Source: AGHT+IFIWu/Hi0uuxGkrmHIOUlqUe9vDVCz8cL26dSycES3VZh++rH+DBwbb4OaYLFfDg08uIlzf9g== X-Received: by 2002:a05:6512:3f1c:b0:50d:1e51:507b with SMTP id y28-20020a0565123f1c00b0050d1e51507bmr11085632lfa.44.1703170803498; Thu, 21 Dec 2023 07:00:03 -0800 (PST) Received: from [1.0.0.7] ([178.155.20.121]) by smtp.gmail.com with ESMTPSA id p5-20020a056512312500b0050e3ff85833sm286061lfd.251.2023.12.21.07.00.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 Dec 2023 07:00:02 -0800 (PST) Content-Type: multipart/mixed; boundary="------------zdEgpcIM04aiyyI10uamNhYn" Message-ID: Date: Thu, 21 Dec 2023 18:00:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: trying again to get incremental backup Content-Language: en-US To: Robert Haas Cc: Jakub Wartak , Alvaro Herrera , Andres Freund , Peter Eisentraut , Dilip Kumar , "pgsql-hackers@postgresql.org" References: <061cccf7-0cac-804f-4c2a-9d6da8e3848b@gmail.com> From: Alexander Lakhin In-Reply-To: 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. --------------zdEgpcIM04aiyyI10uamNhYn Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 21.12.2023 15:07, Robert Haas wrote: > On Wed, Dec 20, 2023 at 11:00 PM Alexander Lakhin wrote: >> I've found several typos/inconsistencies introduced with 174c48050 and >> dc2123400. Maybe you would want to fix them, while on it?: > That's an impressively long list of mistakes in something I thought > I'd been careful about. Sigh. > > I don't suppose you could provide these corrections in the form of a > patch? I don't really want to run these sed commands across the entire > tree and then try to figure out what's what... Please look at the attached patch; it corrects all 29 items ("recods" fixed in two places), but maybe you find some substitutions wrong... I've also observed that those commits introduced new warnings: $ CC=gcc-12 CPPFLAGS="-Wtype-limits" ./configure -q && make -s -j8 reconstruct.c: In function ‘read_bytes’: reconstruct.c:511:24: warning: comparison of unsigned expression in ‘< 0’ is always false [-Wtype-limits]   511 |                 if (rb < 0)       |                        ^ reconstruct.c: In function ‘write_reconstructed_file’: reconstruct.c:650:40: warning: comparison of unsigned expression in ‘< 0’ is always false [-Wtype-limits]   650 |                                 if (rb < 0)       |                                        ^ reconstruct.c:662:32: warning: comparison of unsigned expression in ‘< 0’ is always false [-Wtype-limits]   662 |                         if (wb < 0) There are also two deadcode.DeadStores complaints from clang. First one is about:         /*          * Align the wait time to prevent drift. This doesn't really matter,          * but we'd like the warnings about how long we've been waiting to say          * 10 seconds, 20 seconds, 30 seconds, 40 seconds ... without ever          * drifting to something that is not a multiple of ten.          */         timeout_in_ms -=             TimestampDifferenceMilliseconds(current_time, initial_time) %             timeout_in_ms; It looks like this timeout is really not used. And the minor one (similar to many existing, maybe doesn't deserve fixing): walsummarizer.c:808:5: warning: Value stored to 'summary_end_lsn' is never read [deadcode.DeadStores]                                         summary_end_lsn = private_data->read_upto;                                         ^ ~~~~~~~~~~~~~~~~~~~~~~~ >> Also, a comment above MaybeRemoveOldWalSummaries() basically repeats a >> comment above redo_pointer_at_last_summary_removal declaration, but >> perhaps it should say about removing summaries instead? > Wow, yeah. Thanks, will fix. Thank you for paying attention to it! Best regards, Alexander --------------zdEgpcIM04aiyyI10uamNhYn Content-Type: text/x-patch; charset=UTF-8; name="fix-typos.patch" Content-Disposition: attachment; filename="fix-typos.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfYmFzZWJhY2t1cC5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9wZ19iYXNlYmFja3VwLnNnbWwKaW5kZXggN2MxODNhNWNmZC4uZTQx MWRkYmY0NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19iYXNlYmFja3VwLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19iYXNlYmFja3VwLnNnbWwKQEAgLTIxMyw3 ICsyMTMsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogICAgICA8dmFybGlzdGVu dHJ5PgogICAgICAgPHRlcm0+PG9wdGlvbj4taSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+b2xkX21hbmlmZXN0X2ZpbGU8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4K LSAgICAgIDx0ZXJtPjxvcHRpb24+LS1pbmNyZW1lbnRhbD08cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+b2xkX21lYW5pZmVzdF9maWxlPC9yZXBsYWNlYWJsZT48L29wdGlvbj48 L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0taW5jcmVtZW50YWw9PHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm9sZF9tYW5pZmVzdF9maWxlPC9yZXBsYWNlYWJsZT48L29w dGlvbj48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAg IFBlcmZvcm1zIGFuIDxsaW5rIGxpbmtlbmQ9ImJhY2t1cC1pbmNyZW1lbnRhbC1iYWNrdXAi PmluY3JlbWVudGFsCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2NvbWJpbmVi YWNrdXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfY29tYmluZWJhY2t1cC5zZ21sCmlu ZGV4IGUxY2IzMTYwN2UuLjhhMGE2MDBjMmIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvcGdfY29tYmluZWJhY2t1cC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfY29t YmluZWJhY2t1cC5zZ21sCkBAIC04Myw3ICs4Myw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRh dGlvbgogICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgogICAgICAgICBUaGUgPG9w dGlvbj4tbjwvb3B0aW9uPi88b3B0aW9uPi0tZHJ5LXJ1bjwvb3B0aW9uPiBvcHRpb24gaW5z dHJ1Y3RzCi0gICAgICAgIDxjb21tYW5kPnBnX2NvbWluZWJhY2t1cDwvY29tbWFuZD4gdG8g ZmlndXJlIG91dCB3aGF0IHdvdWxkIGJlIGRvbmUKKyAgICAgICAgPGNvbW1hbmQ+cGdfY29t YmluZWJhY2t1cDwvY29tbWFuZD4gdG8gZmlndXJlIG91dCB3aGF0IHdvdWxkIGJlIGRvbmUK ICAgICAgICAgd2l0aG91dCBhY3R1YWxseSBjcmVhdGluZyB0aGUgdGFyZ2V0IGRpcmVjdG9y eSBvciBhbnkgb3V0cHV0IGZpbGVzLgogICAgICAgICBJdCBpcyBwYXJ0aWN1bGFybHkgdXNl ZnVsIGluIGNvbWJpbmF0aW9uIHdpdGggPG9wdGlvbj4tLWRlYnVnPC9vcHRpb24+LgogICAg ICAgIDwvcGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2JhY2t1cC9iYXNlYmFja3Vw X2luY3JlbWVudGFsLmMgYi9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cF9pbmNyZW1l bnRhbC5jCmluZGV4IDFlNWE1YWMzM2EuLjQyYmJlNTY0ZTIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2JhY2t1cC9iYXNlYmFja3VwX2luY3JlbWVudGFsLmMKKysrIGIvc3JjL2JhY2tl bmQvYmFja3VwL2Jhc2ViYWNrdXBfaW5jcmVtZW50YWwuYwpAQCAtMTU4LDcgKzE1OCw3IEBA IENyZWF0ZUluY3JlbWVudGFsQmFja3VwSW5mbyhNZW1vcnlDb250ZXh0IG1jeHQpCiAKIC8q CiAgKiBCZWZvcmUgdGFraW5nIGFuIGluY3JlbWVudGFsIGJhY2t1cCwgdGhlIGNhbGxlciBt dXN0IHN1cHBseSB0aGUgYmFja3VwCi0gKiBtYW5pZmVzdCBmcm9tIGEgcHJpb3IgYmFja3Vw LiBFYWNoIGNodW5rIG9mIG1hbmlmZXN0IGRhdGEgcmVjaWV2ZWQKKyAqIG1hbmlmZXN0IGZy b20gYSBwcmlvciBiYWNrdXAuIEVhY2ggY2h1bmsgb2YgbWFuaWZlc3QgZGF0YSByZWNlaXZl ZAogICogZnJvbSB0aGUgY2xpZW50IHNob3VsZCBiZSBwYXNzZWQgdG8gdGhpcyBmdW5jdGlv bi4KICAqLwogdm9pZApAQCAtNDYyLDcgKzQ2Miw3IEBAIFByZXBhcmVGb3JJbmNyZW1lbnRh bEJhY2t1cChJbmNyZW1lbnRhbEJhY2t1cEluZm8gKmliLAogCQkJKytkZWFkY3ljbGVzOwog CiAJCS8qCi0JCSAqIElmIHdlJ3ZlIG1hbmFnZWQgdG8gd2FpdCBmb3IgYW4gZW50aXJlIG1p bnV0ZSB3aXRob3QgdGhlIFdBTAorCQkgKiBJZiB3ZSd2ZSBtYW5hZ2VkIHRvIHdhaXQgZm9y IGFuIGVudGlyZSBtaW51dGUgd2l0aG91dCB0aGUgV0FMCiAJCSAqIHN1bW1hcml6ZXIgYWJz b3JiaW5nIGEgc2luZ2xlIFdBTCByZWNvcmQsIGVycm9yIG91dDsgcHJvYmFibHkKIAkJICog c29tZXRoaW5nIGlzIHdyb25nLgogCQkgKgpAQCAtNDczLDcgKzQ3Myw3IEBAIFByZXBhcmVG b3JJbmNyZW1lbnRhbEJhY2t1cChJbmNyZW1lbnRhbEJhY2t1cEluZm8gKmliLAogCQkgKiBs aWtlbHkgdG8gY2F0Y2ggYSByZWFzb25hYmxlIG51bWJlciBvZiB0aGUgdGhpbmdzIHRoYXQg Y2FuIGdvIHdyb25nCiAJCSAqIGluIHByYWN0aWNlIChlLmcuIHRoZSBzdW1tYXJpemVyIHBy b2Nlc3MgaXMgY29tcGxldGVseSBodW5nLCBzYXkKIAkJICogYmVjYXVzZSBzb21lYm9keSBo b29rZWQgdXAgYSBkZWJ1Z2dlciB0byBpdCBvciBzb21ldGhpbmcpIHdpdGhvdXQKLQkJICog Z2l2aW5nIHVwIHRvbyBxdWlja2x5IHdoZW4gdGhlIHN5dGVtIGlzIGp1c3Qgc2xvdy4KKwkJ ICogZ2l2aW5nIHVwIHRvbyBxdWlja2x5IHdoZW4gdGhlIHN5c3RlbSBpcyBqdXN0IHNsb3cu CiAJCSAqLwogCQlpZiAoZGVhZGN5Y2xlcyA+PSA2KQogCQkJZXJlcG9ydChFUlJPUiwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2JhY2t1cC93YWxzdW1tYXJ5ZnVuY3MuYyBiL3NyYy9i YWNrZW5kL2JhY2t1cC93YWxzdW1tYXJ5ZnVuY3MuYwppbmRleCBhMWY2OWFkNGJhLi5mOTY0 OTE1MzRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9iYWNrdXAvd2Fsc3VtbWFyeWZ1bmNz LmMKKysrIGIvc3JjL2JhY2tlbmQvYmFja3VwL3dhbHN1bW1hcnlmdW5jcy5jCkBAIC05Miw3 ICs5Miw3IEBAIHBnX3dhbF9zdW1tYXJ5X2NvbnRlbnRzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ CQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQllcnJt c2coImludmFsaWQgdGltZWxpbmUgJWxsZCIsIChsb25nIGxvbmcpIHJhd190bGkpKTsKIAot CS8qIFByZXBhcmUgdG8gcmVhZCB0aGUgc3BlY2lmaWVkIFdBTCBzdW1tcnkgZmlsZS4gKi8K KwkvKiBQcmVwYXJlIHRvIHJlYWQgdGhlIHNwZWNpZmllZCBXQUwgc3VtbWFyeSBmaWxlLiAq LwogCXdzLnRsaSA9IChUaW1lTGluZUlEKSByYXdfdGxpOwogCXdzLnN0YXJ0X2xzbiA9IFBH X0dFVEFSR19MU04oMSk7CiAJd3MuZW5kX2xzbiA9IFBHX0dFVEFSR19MU04oMik7CkBAIC0x NDMsNyArMTQzLDcgQEAgcGdfd2FsX3N1bW1hcnlfY29udGVudHMoUEdfRlVOQ1RJT05fQVJH UykKIAkJCX0KIAogCQkJLyoKLQkJCSAqIElmIHRoZSBsaW1pdCBibG9jayBpcyBub3QgSW52 YWxpZEJsb2NrTnVtYmVyLCBlbWl0IGFuIGV4dGEgcm93CisJCQkgKiBJZiB0aGUgbGltaXQg YmxvY2sgaXMgbm90IEludmFsaWRCbG9ja051bWJlciwgZW1pdCBhbiBleHRyYSByb3cKIAkJ CSAqIHdpdGggdGhhdCBibG9jayBudW1iZXIgYW5kIGxpbWl0X2Jsb2NrID0gdHJ1ZS4KIAkJ CSAqCiAJCQkgKiBUaGVyZSBpcyBubyBwb2ludCBpbiBkb2luZyB0aGlzIHdoZW4gdGhlIGxp bWl0X2Jsb2NrIGlzCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3dhbHN1 bW1hcml6ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvd2Fsc3VtbWFyaXplci5jCmlu ZGV4IDlmYTE1NTM0OWUuLjA3MWQyYzBkNTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bv c3RtYXN0ZXIvd2Fsc3VtbWFyaXplci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIv d2Fsc3VtbWFyaXplci5jCkBAIC04Nyw3ICs4Nyw3IEBAIHR5cGVkZWYgc3RydWN0CiAJWExv Z1JlY1B0cglwZW5kaW5nX2xzbjsKIAogCS8qCi0JICogVGhpcyBmaWVsZCBoYW5kbGVzIGl0 cyBvd24gc3luY2hyb25pemF0b24uCisJICogVGhpcyBmaWVsZCBoYW5kbGVzIGl0cyBvd24g c3luY2hyb25pemF0aW9uLgogCSAqLwogCUNvbmRpdGlvblZhcmlhYmxlIHN1bW1hcnlfZmls ZV9jdjsKIH0gV2FsU3VtbWFyaXplckRhdGE7CkBAIC0xMTcsNyArMTE3LDcgQEAgc3RhdGlj IGxvbmcgc2xlZXBfcXVhbnRhID0gMTsKIC8qCiAgKiBUaGUgc2xlZXAgdGltZSB3aWxsIGFs d2F5cyBiZSBhIG11bHRpcGxlIG9mIDIwMG1zIGFuZCB3aWxsIG5vdCBleGNlZWQKICAqIHRo aXJ0eSBzZWNvbmRzICgxNTAgKiAyMDAgPSAzMCAqIDEwMDApLiBOb3RlIHRoYXQgdGhlIHRp bWVvdXQgaGVyZSBuZWVkcwotICogdG8gYmUgc3Vic3RudGlhbGx5IGxlc3MgdGhhbiB0aGUg bWF4aW11bSBhbW91bnQgb2YgdGltZSBmb3Igd2hpY2ggYW4KKyAqIHRvIGJlIHN1YnN0YW50 aWFsbHkgbGVzcyB0aGFuIHRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lIGZvciB3aGljaCBh bgogICogaW5jcmVtZW50YWwgYmFja3VwIHdpbGwgd2FpdCBmb3IgdGhpcyBwcm9jZXNzIHRv IGNhdGNoIHVwLiBPdGhlcndpc2UsIGFuCiAgKiBpbmNyZW1lbnRhbCBiYWNrdXAgbWlnaHQg dGltZSBvdXQgb24gYW4gaWRsZSBzeXN0ZW0ganVzdCBiZWNhdXNlIHdlIHNsZWVwCiAgKiBm b3IgdG9vIGxvbmcuCkBAIC0yMTIsNyArMjEyLDcgQEAgV2FsU3VtbWFyaXplck1haW4odm9p ZCkKIAkvKgogCSAqIFdpdGhpbiB0aGlzIGZ1bmN0aW9uLCAnY3VycmVudF9sc24nIGFuZCAn Y3VycmVudF90bGknIHJlZmVyIHRvIHRoZQogCSAqIHBvaW50IGZyb20gd2hpY2ggdGhlIG5l eHQgV0FMIHN1bW1hcnkgZmlsZSBzaG91bGQgc3RhcnQuICdleGFjdCcgaXMKLQkgKiB0cnVl IGlmICdjdXJyZW50X2xzbicgaXMga25vd24gdG8gYmUgdGhlIHN0YXJ0IG9mIGEgV0FMIHJl Y29kIG9yIFdBTAorCSAqIHRydWUgaWYgJ2N1cnJlbnRfbHNuJyBpcyBrbm93biB0byBiZSB0 aGUgc3RhcnQgb2YgYSBXQUwgcmVjb3JkIG9yIFdBTAogCSAqIHNlZ21lbnQsIGFuZCBmYWxz ZSBpZiBpdCBtaWdodCBiZSBpbiB0aGUgbWlkZGxlIG9mIGEgcmVjb3JkIHNvbWVwbGFjZS4K IAkgKgogCSAqICdzd2l0Y2hfbHNuJyBhbmQgJ3N3aXRjaF90bGknLCBpZiBzZXQsIGFyZSB0 aGUgTFNOIGF0IHdoaWNoIHdlIG5lZWQgdG8KQEAgLTI5Nyw3ICsyOTcsNyBAQCBXYWxTdW1t YXJpemVyTWFpbih2b2lkKQogCiAJCS8qCiAJCSAqIFNsZWVwIGZvciAxMCBzZWNvbmRzIGJl Zm9yZSBhdHRlbXB0aW5nIHRvIHJlc3VtZSBvcGVyYXRpb25zIGluCi0JCSAqIG9yZGVyIHRv IGF2b2lkIGV4Y2Vzc2luZyBsb2dnaW5nLgorCQkgKiBvcmRlciB0byBhdm9pZCBleGNlc3Np dmUgbG9nZ2luZy4KIAkJICoKIAkJICogTWFueSBvZiB0aGUgbGlrZWx5IGVycm9yIGNvbmRp dGlvbnMgYXJlIHRoaW5ncyB0aGF0IHdpbGwgcmVwZWF0CiAJCSAqIGV2ZXJ5IHRpbWUuIEZv ciBleGFtcGxlLCBpZiB0aGUgV0FMIGNhbid0IGJlIHJlYWQgb3IgdGhlIHN1bW1hcnkKQEAg LTQ0OSw3ICs0NDksNyBAQCBHZXRPbGRlc3RVbnN1bW1hcml6ZWRMU04oVGltZUxpbmVJRCAq dGxpLCBib29sICpsc25faXNfZXhhY3QsCiAJCXJldHVybiBJbnZhbGlkWExvZ1JlY1B0cjsK IAogCS8qCi0JICogVW5sZXNzIHdlIG5lZWQgdG8gcmVzZXQgdGhlIHBlbmRpbmdfbHNuLCB3 ZSBpbml0YWxseSBhY3F1aXJlIHRoZSBsb2NrCisJICogVW5sZXNzIHdlIG5lZWQgdG8gcmVz ZXQgdGhlIHBlbmRpbmdfbHNuLCB3ZSBpbml0aWFsbHkgYWNxdWlyZSB0aGUgbG9jawogCSAq IGluIHNoYXJlZCBtb2RlIGFuZCB0cnkgdG8gZmV0Y2ggdGhlIHJlcXVpcmVkIGluZm9ybWF0 aW9uLiBJZiB3ZSBhY3F1aXJlCiAJICogaW4gc2hhcmVkIG1vZGUgYW5kIGZpbmQgdGhhdCB0 aGUgZGF0YSBzdHJ1Y3R1cmUgaGFzbid0IGJlZW4KIAkgKiBpbml0aWFsaXplZCwgd2UgcmVh Y3F1aXJlIHRoZSBsb2NrIGluIGV4Y2x1c2l2ZSBtb2RlIHNvIHRoYXQgd2UgY2FuCkBAIC02 OTksNyArNjk5LDcgQEAgSGFuZGxlV2FsU3VtbWFyaXplckludGVycnVwdHModm9pZCkKICAq CiAgKiAnc3RhcnRfbHNuJyBpcyB0aGUgcG9pbnQgYXQgd2hpY2ggd2Ugc2hvdWxkIHN0YXJ0 IHN1bW1hcml6aW5nLiBJZiB0aGlzCiAgKiB2YWx1ZSBjb21lcyBmcm9tIHRoZSBlbmQgTFNO IG9mIHRoZSBwcmV2aW91cyByZWNvcmQgYXMgcmV0dXJuZWQgYnkgdGhlCi0gKiB4bG9ncmFk ZXIgbWFjaGluZXJ5LCAnZXhhY3QnIHNob3VsZCBiZSB0cnVlOyBvdGhlcndpc2UsICdleGFj dCcgc2hvdWxkCisgKiB4bG9ncmVhZGVyIG1hY2hpbmVyeSwgJ2V4YWN0JyBzaG91bGQgYmUg dHJ1ZTsgb3RoZXJ3aXNlLCAnZXhhY3QnIHNob3VsZAogICogYmUgZmFsc2UsIGFuZCB0aGlz IGZ1bmN0aW9uIHdpbGwgc2VhcmNoIGZvcndhcmQgZm9yIHRoZSBzdGFydCBvZiBhIHZhbGlk CiAgKiBXQUwgcmVjb3JkLgogICoKQEAgLTg3Miw3ICs4NzIsNyBAQCBTdW1tYXJpemVXQUwo VGltZUxpbmVJRCB0bGksIFhMb2dSZWNQdHIgc3RhcnRfbHNuLCBib29sIGV4YWN0LAogCQkJ eGxvZ3JlYWRlci0+UmVhZFJlY1B0ciA+PSBzd2l0Y2hfbHNuKQogCQl7CiAJCQkvKgotCQkJ ICogV29vcHMhIFdlJ3ZlIHJlYWQgYSByZWNvcmQgdGhhdCAqc3RhcnRzKiBhZnRlciB0aGUg c3dpdGNoIExTTiwKKwkJCSAqIFdob29wcyEgV2UndmUgcmVhZCBhIHJlY29yZCB0aGF0ICpz dGFydHMqIGFmdGVyIHRoZSBzd2l0Y2ggTFNOLAogCQkJICogY29udHJhcnkgdG8gb3VyIGdv YWwgb2YgcmVhZGluZyBvbmx5IHVudGlsIHdlIGhpdCB0aGUgZmlyc3QKIAkJCSAqIHJlY29y ZCB0aGF0IGVuZHMgYXQgb3IgYWZ0ZXIgdGhlIHN3aXRjaCBMU04uIFByZXRlbmQgd2UgZGlk bid0CiAJCQkgKiByZWFkIGl0IGFmdGVyIGFsbCBieSBiYWlsaW5nIG91dCBvZiB0aGlzIGxv b3AgcmlnaHQgaGVyZSwKQEAgLTEwNjEsNyArMTA2MSw3IEBAIFN1bW1hcml6ZVNtZ3JSZWNv cmQoWExvZ1JlYWRlclN0YXRlICp4bG9ncmVhZGVyLCBCbG9ja1JlZlRhYmxlICpicnRhYikK IH0KIAogLyoKLSAqIFNwZWNpYWwgaGFuZGxpbmcgZm9yIFdBTCByZWNvZHMgd2l0aCBSTV9Y QUNUX0lELgorICogU3BlY2lhbCBoYW5kbGluZyBmb3IgV0FMIHJlY29yZHMgd2l0aCBSTV9Y QUNUX0lELgogICovCiBzdGF0aWMgdm9pZAogU3VtbWFyaXplWGFjdFJlY29yZChYTG9nUmVh ZGVyU3RhdGUgKnhsb2dyZWFkZXIsIEJsb2NrUmVmVGFibGUgKmJydGFiKQpAQCAtMTExNiw3 ICsxMTE2LDcgQEAgU3VtbWFyaXplWGFjdFJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnhsb2dy ZWFkZXIsIEJsb2NrUmVmVGFibGUgKmJydGFiKQogfQogCiAvKgotICogU3BlY2lhbCBoYW5k bGluZyBmb3IgV0FMIHJlY29kcyB3aXRoIFJNX1hMT0dfSUQuCisgKiBTcGVjaWFsIGhhbmRs aW5nIGZvciBXQUwgcmVjb3JkcyB3aXRoIFJNX1hMT0dfSUQuCiAgKi8KIHN0YXRpYyBib29s CiBTdW1tYXJpemVYbG9nUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqeGxvZ3JlYWRlcikKQEAg LTEyOTUsNyArMTI5NSw3IEBAIHN1bW1hcml6ZXJfd2FpdF9mb3Jfd2FsKHZvaWQpCiAJCSAq IHJlY29yZHMgdG8gcHJvdm9rZSBhIHN0cm9uZyByZWFjdGlvbi4gV2UgY2hvb3NlIHRvIHJl ZHVjZSB0aGUgc2xlZXAKIAkJICogdGltZSBieSAxIHF1YW50dW0gZm9yIGVhY2ggcGFnZSBy ZWFkIGJleW9uZCB0aGUgZmlyc3QsIHdoaWNoIGlzIGEKIAkJICogZmFpcmx5IGFyYml0cmFy eSB3YXkgb2YgdHJ5aW5nIHRvIGJlIHJlYWN0aXZlIHdpdGhvdXQKLQkJICogb3ZlcnJyZWFj dGluZy4KKwkJICogb3ZlcnJlYWN0aW5nLgogCQkgKi8KIAkJaWYgKHBhZ2VzX3JlYWRfc2lu Y2VfbGFzdF9zbGVlcCA+IHNsZWVwX3F1YW50YSAtIDEpCiAJCQlzbGVlcF9xdWFudGEgPSAx OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwppbmRleCBkYmNkYTMyNTU0Li5k NGFhOWUxYzk2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5k ZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwpAQCAtNzA2 LDcgKzcwNiw3IEBAIFVwbG9hZE1hbmlmZXN0KHZvaWQpCiAJcHFfZW5kbWVzc2FnZV9yZXVz ZSgmYnVmKTsKIAlwcV9mbHVzaCgpOwogCi0JLyogUmVjaWV2ZSBwYWNrZXRzIGZyb20gY2xp ZW50IHVudGlsIGRvbmUuICovCisJLyogUmVjZWl2ZSBwYWNrZXRzIGZyb20gY2xpZW50IHVu dGlsIGRvbmUuICovCiAJd2hpbGUgKEhhbmRsZVVwbG9hZE1hbmlmZXN0UGFja2V0KCZidWYs ICZvZmZzZXQsIGliKSkKIAkJOwogCkBAIC03MTksNyArNzE5LDcgQEAgVXBsb2FkTWFuaWZl c3Qodm9pZCkKIAkgKgogCSAqIFdlIGFzc3VtZSB0aGF0IE1lbW9yeUNvbnRleHREZWxldGUg YW5kIE1lbW9yeUNvbnRleHRTZXRQYXJlbnQgd29uJ3QKIAkgKiBmYWlsLCBhbmQgdGh1cyB3 ZSBzaG91bGRuJ3QgZW5kIHVwIGJhaWxpbmcgb3V0IG9mIGhlcmUgaW4gc3VjaCBhIHdheSBh cwotCSAqIHRvIGxlYXZlIGRhbmdsaW5nIHBvaW50cnMuCisJICogdG8gbGVhdmUgZGFuZ2xp bmcgcG9pbnRlcnMuCiAJICovCiAJaWYgKHVwbG9hZGVkX21hbmlmZXN0X21jeHQgIT0gTlVM TCkKIAkJTWVtb3J5Q29udGV4dERlbGV0ZSh1cGxvYWRlZF9tYW5pZmVzdF9tY3h0KTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfY29tYmluZWJhY2t1cC9wZ19jb21iaW5lYmFja3VwLmMg Yi9zcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvcGdfY29tYmluZWJhY2t1cC5jCmluZGV4IDg1 ZDNmNGU1ZGUuLmI2YWU2ZjJhZWYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY29tYmluZWJh Y2t1cC9wZ19jb21iaW5lYmFja3VwLmMKKysrIGIvc3JjL2Jpbi9wZ19jb21iaW5lYmFja3Vw L3BnX2NvbWJpbmViYWNrdXAuYwpAQCAtNDU0LDcgKzQ1NCw3IEBAIGNoZWNrX2JhY2t1cF9s YWJlbF9maWxlcyhpbnQgbl9iYWNrdXBzLCBjaGFyICoqYmFja3VwX2RpcnMpCiAJCSAqIFRo ZSBleGFjdCBzaXplIGxpbWl0IHRoYXQgd2UgaW1wb3NlIGhlcmUgZG9lc24ndCByZWFsbHkg bWF0dGVyIC0tCiAJCSAqIG1vc3Qgb2Ygd2hhdCdzIHN1cHBvc2VkIHRvIGJlIGluIHRoZSBm aWxlIGlzIGZpeGVkIHNpemUgYW5kIHF1aXRlCiAJCSAqIHNob3J0LiBIb3dldmVyLCB0aGUg bGVuZ3RoIG9mIHRoZSBiYWNrdXBfbGFiZWwgaXMgbGltaXRlZCAoYXQgbGVhc3QKLQkJICog Ynkgc29tZSBwYXJ0cyBvZiB0aGUgY29kZSkgdG8gTUFYR1BBVEgsIHNvIGluY2x1ZGUgdGhh dCB2YWx1ZSBpbgorCQkgKiBieSBzb21lIHBhcnRzIG9mIHRoZSBjb2RlKSB0byBNQVhQR1BB VEgsIHNvIGluY2x1ZGUgdGhhdCB2YWx1ZSBpbgogCQkgKiB0aGUgbWF4aW11bSBsZW5ndGgg dGhhdCB3ZSB0b2xlcmF0ZS4KIAkJICovCiAJCXNsdXJwX2ZpbGUoZmQsIHBhdGhidWYsIGJ1 ZiwgMTAwMDAgKyBNQVhQR1BBVEgpOwpAQCAtMTE5Miw3ICsxMTkyLDcgQEAgc2Nhbl9mb3Jf ZXhpc3RpbmdfdGFibGVzcGFjZXMoY2hhciAqcGF0aG5hbWUsIGNiX29wdGlvbnMgKm9wdCkK IAkJCWlmICghaXNfYWJzb2x1dGVfcGF0aChsaW5rX3RhcmdldCkpCiAJCQkJcGdfZmF0YWwo InN5bWJvbGljIGxpbmsgXCIlc1wiIGlzIHJlbGF0aXZlIiwgdGJsc3BjZGlyKTsKIAotCQkJ LyogQ2FvbmljYWxpemUgdGhlIGxpbmsgdGFyZ2V0LiAqLworCQkJLyogQ2Fub25pY2FsaXpl IHRoZSBsaW5rIHRhcmdldC4gKi8KIAkJCWNhbm9uaWNhbGl6ZV9wYXRoKGxpbmtfdGFyZ2V0 KTsKIAogCQkJLyoKQEAgLTEyMjIsNyArMTIyMiw3IEBAIHNjYW5fZm9yX2V4aXN0aW5nX3Rh Ymxlc3BhY2VzKGNoYXIgKnBhdGhuYW1lLCBjYl9vcHRpb25zICpvcHQpCiAJCQkgKiB3ZSBq dXN0IHJlY29yZCB0aGUgcGF0aHMgd2l0aGluIHRoZSBkYXRhIGRpcmVjdG9yaWVzLgogCQkJ ICovCiAJCQlzbnByaW50Zih0cy0+b2xkX2RpciwgTUFYUEdQQVRILCAiJXMvJXMiLCBwZ190 YmxzcGMsIGRlLT5kX25hbWUpOwotCQkJc25wcmludGYodHMtPm5ld19kaXIsIE1BWFBHUEFU SCwgIiVzL3BnX3RibHBjLyVzIiwgb3B0LT5vdXRwdXQsCisJCQlzbnByaW50Zih0cy0+bmV3 X2RpciwgTUFYUEdQQVRILCAiJXMvcGdfdGJsc3BjLyVzIiwgb3B0LT5vdXRwdXQsCiAJCQkJ CSBkZS0+ZF9uYW1lKTsKIAkJCXRzLT5pbl9wbGFjZSA9IHRydWU7CiAJCX0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfY29tYmluZWJhY2t1cC90LzAwNF9tYW5pZmVzdC5wbCBiL3NyYy9i aW4vcGdfY29tYmluZWJhY2t1cC90LzAwNF9tYW5pZmVzdC5wbAppbmRleCAzN2RlNjFhYzA2 Li40ZjM3NzkyNzRmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvdC8w MDRfbWFuaWZlc3QucGwKKysrIGIvc3JjL2Jpbi9wZ19jb21iaW5lYmFja3VwL3QvMDA0X21h bmlmZXN0LnBsCkBAIC02OSw3ICs2OSw3IEBAIG15ICRub2NzdW1fbWFuaWZlc3QgPQogCXNs dXJwX2ZpbGUoJG5vZGUtPmJhY2t1cF9kaXIgLiAnL2NzdW1fbm9uZS9iYWNrdXBfbWFuaWZl c3QnKTsKIG15ICRub2NzdW1fY291bnQgPSAoKCkgPSAkbm9jc3VtX21hbmlmZXN0ID1+IC9D aGVja3N1bS1BbGdvcml0aG0vbWlnKTsKIGlzKCRub2NzdW1fY291bnQsIDAsCi0JIkNoZWNr c3VtX0FsZ29yaXRobSBpcyBub3QgbWVudGlvbmVkIGluIG5vLWNoZWNrc3VtIG1hbmlmZXN0 Iik7CisJIkNoZWNrc3VtLUFsZ29yaXRobSBpcyBub3QgbWVudGlvbmVkIGluIG5vLWNoZWNr c3VtIG1hbmlmZXN0Iik7CiAKICMgT0ssIHRoYXQncyBhbGwuCiBkb25lX3Rlc3RpbmcoKTsK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfY29tYmluZWJhY2t1cC93cml0ZV9tYW5pZmVzdC5j IGIvc3JjL2Jpbi9wZ19jb21iaW5lYmFja3VwL3dyaXRlX21hbmlmZXN0LmMKaW5kZXggODIx NjAxMzRkOC4uNWNmMzZjMmIwNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19jb21iaW5lYmFj a3VwL3dyaXRlX21hbmlmZXN0LmMKKysrIGIvc3JjL2Jpbi9wZ19jb21iaW5lYmFja3VwL3dy aXRlX21hbmlmZXN0LmMKQEAgLTI3Miw3ICsyNzIsNyBAQCBmbHVzaF9tYW5pZmVzdChtYW5p ZmVzdF93cml0ZXIgKm13cml0ZXIpCiB9CiAKIC8qCi0gKiBFbmNvZGUgYnl0ZXMgdXNpbmcg dHdvIGhleGFkZW1pY2FsIGRpZ2l0cyBmb3IgZWFjaCBvbmUuCisgKiBFbmNvZGUgYnl0ZXMg dXNpbmcgdHdvIGhleGFkZWNpbWFsIGRpZ2l0cyBmb3IgZWFjaCBvbmUuCiAgKi8KIHN0YXRp YyBzaXplX3QKIGhleF9lbmNvZGUoY29uc3QgdWludDggKnNyYywgc2l6ZV90IGxlbiwgY2hh ciAqZHN0KQpkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9ibGtyZWZ0YWJsZS5jIGIvc3JjL2Nv bW1vbi9ibGtyZWZ0YWJsZS5jCmluZGV4IDIxZWU2ZjU5NjguLmNjYmI0MDA2YmQgMTAwNjQ0 Ci0tLSBhL3NyYy9jb21tb24vYmxrcmVmdGFibGUuYworKysgYi9zcmMvY29tbW9uL2Jsa3Jl ZnRhYmxlLmMKQEAgLTEwMCw3ICsxMDAsNyBAQCB0eXBlZGVmIHVpbnQxNiAqQmxvY2tSZWZU YWJsZUNodW5rOwogICogJ2NodW5rX3NpemUnIGlzIGFuIGFycmF5IHN0b3JpbmcgdGhlIGFs bG9jYXRlZCBzaXplIG9mIGVhY2ggY2h1bmsuCiAgKgogICogJ2NodW5rX3VzYWdlJyBpcyBh biBhcnJheSBzdG9yaW5nIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdXNlZCBpbiBlYWNoCi0g KiBjaHVuay4gSWYgdGhhdCB2YWx1ZSBpcyBsZXNzIHRoYW4gTUFYX0VOVFJJRVNfUEVSX0NI VU5LLCB0aGUgY29ycmVzb25kaW5nCisgKiBjaHVuay4gSWYgdGhhdCB2YWx1ZSBpcyBsZXNz IHRoYW4gTUFYX0VOVFJJRVNfUEVSX0NIVU5LLCB0aGUgY29ycmVzcG9uZGluZwogICogY2h1 bmsgaXMgdXNlZCBhcyBhbiBhcnJheTsgZWxzZSB0aGUgY29ycmVzcG9uZGluZyBjaHVuayBp cyB1c2VkIGFzIGEgYml0bWFwLgogICogV2hlbiB1c2VkIGFzIGEgYml0bWFwLCB0aGUgbGVh c3Qgc2lnbmlmaWNhbnQgYml0IG9mIHRoZSBmaXJzdCBhcnJheSBlbGVtZW50CiAgKiBpcyB0 aGUgc3RhdHVzIG9mIHRoZSBsb3dlc3QtbnVtYmVyZWQgYmxvY2sgY292ZXJlZCBieSB0aGlz IGNodW5rLgpAQCAtNTY3LDcgKzU2Nyw3IEBAIFdyaXRlQmxvY2tSZWZUYWJsZShCbG9ja1Jl ZlRhYmxlICpicnRhYiwKICAqIG1hbGZvcm1lZC4gVGhpcyBpcyBub3QgdXNlZCBmb3IgSS9P IGVycm9ycywgd2hpY2ggbXVzdCBiZSBoYW5kbGVkIGludGVybmFsbHkKICAqIGJ5IHJlYWRf Y2FsbGJhY2suCiAgKgotICogJ2Vycm9yX2NhbGxiYWNrX2FyZycgaXMgYW4gb3BhcXVlIGFy Z3VlbnQgdG8gYmUgcGFzc2VkIHRvIGVycm9yX2NhbGxiYWNrLgorICogJ2Vycm9yX2NhbGxi YWNrX2FyZycgaXMgYW4gb3BhcXVlIGFyZ3VtZW50IHRvIGJlIHBhc3NlZCB0byBlcnJvcl9j YWxsYmFjay4KICAqLwogQmxvY2tSZWZUYWJsZVJlYWRlciAqCiBDcmVhdGVCbG9ja1JlZlRh YmxlUmVhZGVyKGlvX2NhbGxiYWNrX2ZuIHJlYWRfY2FsbGJhY2ssCkBAIC05MjIsNyArOTIy LDcgQEAgQmxvY2tSZWZUYWJsZUVudHJ5U2V0TGltaXRCbG9jayhCbG9ja1JlZlRhYmxlRW50 cnkgKmVudHJ5LAogCiAJLyoKIAkgKiBOZXh0LCB3ZSBuZWVkIHRvIGRpc2NhcmQgYW55IG9m ZnNldHMgd2l0aGluIHRoZSBjaHVuayB0aGF0IHdvdWxkCi0JICogY29udGFpbiB0aGUgbGlt aXRfYmxvY2suIFdlIG11c3QgaGFuZGxlIHRoaXMgZGlmZmVyZW5seSBkZXBlbmRpbmcgb24K KwkgKiBjb250YWluIHRoZSBsaW1pdF9ibG9jay4gV2UgbXVzdCBoYW5kbGUgdGhpcyBkaWZm ZXJlbnRseSBkZXBlbmRpbmcgb24KIAkgKiB3aGV0aGVyIHRoZSBjaHVuayB0aGF0IHdvdWxk IGNvbnRhaW4gbGltaXRfYmxvY2sgaXMgYSBiaXRtYXAgb3IgYW4KIAkgKiBhcnJheSBvZiBv ZmZzZXRzLgogCSAqLwpAQCAtOTU1LDcgKzk1NSw3IEBAIEJsb2NrUmVmVGFibGVFbnRyeVNl dExpbWl0QmxvY2soQmxvY2tSZWZUYWJsZUVudHJ5ICplbnRyeSwKIH0KIAogLyoKLSAqIE1h cmsgYSBibG9jayBpbiBhIGdpdmVuIEJsa1JlZlRhYmxlRW50cnkgYXMga25vd24gdG8gaGF2 ZSBiZWVuIG1vZGlmaWVkLgorICogTWFyayBhIGJsb2NrIGluIGEgZ2l2ZW4gQmxvY2tSZWZU YWJsZUVudHJ5IGFzIGtub3duIHRvIGhhdmUgYmVlbiBtb2RpZmllZC4KICAqLwogdm9pZAog QmxvY2tSZWZUYWJsZUVudHJ5TWFya0Jsb2NrTW9kaWZpZWQoQmxvY2tSZWZUYWJsZUVudHJ5 ICplbnRyeSwKQEAgLTExMTIsNyArMTExMiw3IEBAIEJsb2NrUmVmVGFibGVFbnRyeU1hcmtC bG9ja01vZGlmaWVkKEJsb2NrUmVmVGFibGVFbnRyeSAqZW50cnksCiB9CiAKIC8qCi0gKiBS ZWxlYXNlIG1lbW9yeSBmb3IgYSBCbG9ja1JlZlRhYmxFbnRyeSB0aGF0IHdhcyBjcmVhdGVk IGJ5CisgKiBSZWxlYXNlIG1lbW9yeSBmb3IgYSBCbG9ja1JlZlRhYmxlRW50cnkgdGhhdCB3 YXMgY3JlYXRlZCBieQogICogQ3JlYXRlQmxvY2tSZWZUYWJsZUVudHJ5LgogICovCiB2b2lk CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA5MTZjOGVjOGQwLi5iOGIyNmMyNjNk IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTEyMTA5LDcgKzEyMTA5LDcgQEAK ICAgcHJvYXJnbmFtZXMgPT4gJ3t0bGksc3RhcnRfbHNuLGVuZF9sc259JywKICAgcHJvc3Jj ID0+ICdwZ19hdmFpbGFibGVfd2FsX3N1bW1hcmllcycgfSwKIHsgb2lkID0+ICc4NDM3JywK LSAgZGVzY3IgPT4gJ2NvbnRlbnRzIG9mIGEgV0FMIHN1bWFtcnkgZmlsZScsCisgIGRlc2Ny ID0+ICdjb250ZW50cyBvZiBhIFdBTCBzdW1tYXJ5IGZpbGUnLAogICBwcm9uYW1lID0+ICdw Z193YWxfc3VtbWFyeV9jb250ZW50cycsIHByb3Jvd3MgPT4gJzEwMCcsCiAgIHByb3JldHNl dCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcGFyYWxsZWwgPT4gJ3MnLAogICBw cm9yZXR0eXBlID0+ICdyZWNvcmQnLCBwcm9hcmd0eXBlcyA9PiAnaW50OCBwZ19sc24gcGdf bHNuJywK --------------zdEgpcIM04aiyyI10uamNhYn--