From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27218 invoked by alias); 21 Aug 2017 15:03:41 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 27202 invoked by uid 89); 21 Aug 2017 15:03:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.0 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS,URIBL_RED autolearn=ham version=3.3.2 spammy= X-HELO: mail-oi0-f45.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Ce2rRQbhqi2AeEb/sW2XluFYLq6FZBE6XuMhcwidBJY=; b=iZi4hz3JA14MMgAuajlwLF/h7qnZeSL+3lt6kgzWiWWnZ2IrtfkM7osFIwEv54F2ku +HUkXlLQGTYkEz4VrYEset3EpA94RgB5brfvLP3P8MaUVU/eiLFRStUUVQ2YeAB5kb62 XA1IODDnTjvbro3c7eF+vqS+3UwD0xLWn9ktPh4/LuHnW+W5ksHg46kxs3IXVoue2bJB lrL27/aLW4giJRBgT+Bzv7/RxEn5D14MI73Ihow2NUXM7ZUTvzEoeTf5sJeXHZLUz2SJ vblf1aRx9tAnaG/TBY+hGp1uBQtPIGiVBm2IZ1CJkdAHqaveGuhDlsL4eE2v7uujOnAl APIw== X-Gm-Message-State: AHYfb5iS+ekUDd98SKT5j8KmFfP3lUGaNBOD2G/it3e29Y7ZW8Qc9XrA f/Aeq5GVtd2hSvEED2sulOTRrXRKCg== X-Received: by 10.202.75.75 with SMTP id y72mr6060653oia.2.1503327816161; Mon, 21 Aug 2017 08:03:36 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <20170820171713.GA19531@gmail.com> From: "H.J. Lu" Date: Mon, 21 Aug 2017 15:03:00 -0000 Message-ID: Subject: Re: [PATCH] string/stratcliff.c: Replace int with size_t [BZ #21982] To: Joseph Myers Cc: GNU C Library Content-Type: multipart/mixed; boundary="001a11c17e487707a8055744c8c8" X-SW-Source: 2017-08/txt/msg00993.txt.bz2 --001a11c17e487707a8055744c8c8 Content-Type: text/plain; charset="UTF-8" Content-length: 1087 On Mon, Aug 21, 2017 at 6:55 AM, Joseph Myers wrote: > On Mon, 21 Aug 2017, H.J. Lu wrote: > >> On Mon, Aug 21, 2017 at 6:23 AM, Joseph Myers wrote: >> > On Sun, 20 Aug 2017, H.J. Lu wrote: >> > >> >> @@ -101,7 +101,7 @@ do_test (void) >> >> >> >> if (STRLEN (&adr[outer]) != (size_t) (inner - outer)) >> >> { >> >> - printf ("%s flunked for outer = %d, inner = %d\n", >> >> + printf ("%s flunked for outer = %Zd, inner = %Zd\n", >> > >> > I don't think we should be using legacy %Z in any new code. Use C99 %zu >> > for size_t (%zd only if the argument is the corresponding signed type >> > rather than size_t itself). >> > >> >> There are some %Zd in string/stratcliff.c. Should they be changed? >> Since All of them are size_t, I will replace %Zd with %zu. > > In my view it makes sense to clean up existing uses of %Z legacy formats, > provided there is still stdio test coverage that %Z behaves as expected. > Here is the updated patch. OK for master? Thanks. -- H.J. --001a11c17e487707a8055744c8c8 Content-Type: text/x-patch; charset="UTF-8"; name="0001-string-stratcliff.c-Replace-int-with-size_t-BZ-21982.patch" Content-Disposition: attachment; filename="0001-string-stratcliff.c-Replace-int-with-size_t-BZ-21982.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j6majxbe0 Content-length: 13864 RnJvbSBhN2U2NTU1NDk2ZDk1YTljM2FiZTZiYjBmM2VjOTkxOTg3M2IzNjVl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IFN1biwgMjAgQXVnIDIwMTcgMTA6 MTE6MzggLTA3MDAKU3ViamVjdDogW1BBVENIXSBzdHJpbmcvc3RyYXRjbGlm Zi5jOiBSZXBsYWNlIGludCB3aXRoIHNpemVfdCBbQlogIzIxOTgyXQpNSU1F LVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKRml4 IEdDQyA3IGVycm9ycyB3aGVuIHN0cmluZy9zdHJhdGNsaWZmLmMgaXMgY29t cGlsZWQgd2l0aCAtTzM6CgpzdHJhdGNsaWZmLmM6IEluIGZ1bmN0aW9uIOKA mGRvX3Rlc3TigJk6CmNjMTogZXJyb3I6IGFzc3VtaW5nIHNpZ25lZCBvdmVy ZmxvdyBkb2VzIG5vdCBvY2N1ciB3aGVuIGFzc3VtaW5nIHRoYXQgKFggLSBj KSA8PSBYIGlzIGFsd2F5cyB0cnVlIFstV2Vycm9yPXN0cmljdC1vdmVyZmxv d10KCglbQlogIzIxOTgyXQoJKiBzdHJpbmcvc3RyYXRjbGlmZi5jIChkb190 ZXN0KTogRGVjbGFyZSBzaXplLCBuY2hhcnMsIGlubmVyLAoJbWlkZGxlIGFu ZCBvdXRlciB3aXRoIHNpemVfdCBpbnN0ZWFkIG9mIGludC4gIFJlcGxlYWNl ICVkIGFuZAoJJVpkIHdpdGggJXp1IGluIHByaW50Zi4KLS0tCiBzdHJpbmcv c3RyYXRjbGlmZi5jIHwgNzYgKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAz OCBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zdHJpbmcvc3RyYXRjbGlmZi5jIGIvc3RyaW5nL3N0cmF0Y2xpZmYuYwpp bmRleCBlMjhiMGM1MDU4Li5iODU1Nzk5M2QxIDEwMDY0NAotLS0gYS9zdHJp bmcvc3RyYXRjbGlmZi5jCisrKyBiL3N0cmluZy9zdHJhdGNsaWZmLmMKQEAg LTU4LDggKzU4LDggQEAKIGludAogZG9fdGVzdCAodm9pZCkKIHsKLSAgaW50 IHNpemUgPSBzeXNjb25mIChfU0NfUEFHRVNJWkUpOwotICBpbnQgbmNoYXJz ID0gc2l6ZSAvIHNpemVvZiAoQ0hBUik7CisgIHNpemVfdCBzaXplID0gc3lz Y29uZiAoX1NDX1BBR0VTSVpFKTsKKyAgc2l6ZV90IG5jaGFycyA9IHNpemUg LyBzaXplb2YgKENIQVIpOwogICBDSEFSICphZHI7CiAgIENIQVIgKmRlc3Q7 CiAgIGludCByZXN1bHQgPSAwOwpAQCAtODAsNyArODAsNyBAQCBkb190ZXN0 ICh2b2lkKQogICAgIH0KICAgZWxzZQogICAgIHsKLSAgICAgIGludCBpbm5l ciwgbWlkZGxlLCBvdXRlcjsKKyAgICAgIHNpemVfdCBpbm5lciwgbWlkZGxl LCBvdXRlcjsKIAogICAgICAgbXByb3RlY3QgKGFkciwgc2l6ZSwgUFJPVF9O T05FKTsKICAgICAgIG1wcm90ZWN0IChhZHIgKyAyICogbmNoYXJzLCBzaXpl LCBQUk9UX05PTkUpOwpAQCAtMTAxLDcgKzEwMSw3IEBAIGRvX3Rlc3QgKHZv aWQpCiAKIAkgICAgICBpZiAoU1RSTEVOICgmYWRyW291dGVyXSkgIT0gKHNp emVfdCkgKGlubmVyIC0gb3V0ZXIpKQogCQl7Ci0JCSAgcHJpbnRmICgiJXMg Zmx1bmtlZCBmb3Igb3V0ZXIgPSAlZCwgaW5uZXIgPSAlZFxuIiwKKwkJICBw cmludGYgKCIlcyBmbHVua2VkIGZvciBvdXRlciA9ICV6dSwgaW5uZXIgPSAl enVcbiIsCiAJCQkgIFNUUklOR0lGWSAoU1RSTEVOKSwgb3V0ZXIsIGlubmVy KTsKIAkJICByZXN1bHQgPSAxOwogCQl9CkBAIC0xMjAsNyArMTIwLDcgQEAg ZG9fdGVzdCAodm9pZCkKIAkgICAgICBpZiAoU1RSTkxFTiAoJmFkcltvdXRl cl0sIGlubmVyIC0gb3V0ZXIgKyAxKQogCQkgICE9IChzaXplX3QpIChpbm5l ciAtIG91dGVyKSkKIAkJewotCQkgIHByaW50ZiAoIiVzIGZsdW5rZWQgZm9y IG91dGVyID0gJWQsIGlubmVyID0gJWRcbiIsCisJCSAgcHJpbnRmICgiJXMg Zmx1bmtlZCBmb3Igb3V0ZXIgPSAlenUsIGlubmVyID0gJXp1XG4iLAogCQkJ ICBTVFJJTkdJRlkgKFNUUk5MRU4pLCBvdXRlciwgaW5uZXIpOwogCQkgIHJl c3VsdCA9IDE7CiAJCX0KQEAgLTEzNSw3ICsxMzUsNyBAQCBkb190ZXN0ICh2 b2lkKQogCSAgICAgIGlmIChTVFJOTEVOICgmYWRyW291dGVyXSwgaW5uZXIg LSBvdXRlcikKIAkJICAhPSAoc2l6ZV90KSAoaW5uZXIgLSBvdXRlcikpCiAJ CXsKLQkJICBwcmludGYgKCIlcyBmbHVua2VkIGJvdW5kZWQgZm9yIG91dGVy ID0gJWQsIGlubmVyID0gJWRcbiIsCisJCSAgcHJpbnRmICgiJXMgZmx1bmtl ZCBib3VuZGVkIGZvciBvdXRlciA9ICV6dSwgaW5uZXIgPSAlenVcbiIsCiAJ CQkgIFNUUklOR0lGWSAoU1RSTkxFTiksIG91dGVyLCBpbm5lcik7CiAJCSAg cmVzdWx0ID0gMTsKIAkJfQpAQCAtMTU4LDggKzE1OCw4IEBAIGRvX3Rlc3Qg KHZvaWQpCiAJCSAgICAgIHx8IChpbm5lciAhPSBtaWRkbGUKIAkJCSAgJiYg KGNwIC0gJmFkcltvdXRlcl0pICE9IG1pZGRsZSAtIG91dGVyKSkKIAkJICAg IHsKLQkJICAgICAgcHJpbnRmICgiJXMgZmx1bmtlZCBmb3Igb3V0ZXIgPSAl ZCwgbWlkZGxlID0gJWQsICIKLQkJCSAgICAgICJpbm5lciA9ICVkXG4iLAor CQkgICAgICBwcmludGYgKCIlcyBmbHVua2VkIGZvciBvdXRlciA9ICV6dSwg bWlkZGxlID0gJXp1LCAiCisJCQkgICAgICAiaW5uZXIgPSAlenVcbiIsCiAJ CQkgICAgICBTVFJJTkdJRlkgKFNUUkNIUiksIG91dGVyLCBtaWRkbGUsIGlu bmVyKTsKIAkJICAgICAgcmVzdWx0ID0gMTsKIAkJICAgIH0KQEAgLTE5NSw4 ICsxOTUsOCBAQCBkb190ZXN0ICh2b2lkKQogCQkgICAgICB8fCAoaW5uZXIg IT0gbWlkZGxlCiAJCQkgICYmIChjcCAtICZhZHJbb3V0ZXJdKSAhPSBtaWRk bGUgLSBvdXRlcikpCiAJCSAgICB7Ci0JCSAgICAgIHByaW50ZiAoIiVzIGZs dW5rZWQgZm9yIG91dGVyID0gJWQsIG1pZGRsZSA9ICVkLCAiCi0JCQkgICAg ICAiaW5uZXIgPSAlZFxuIiwKKwkJICAgICAgcHJpbnRmICgiJXMgZmx1bmtl ZCBmb3Igb3V0ZXIgPSAlenUsIG1pZGRsZSA9ICV6dSwgIgorCQkJICAgICAg ImlubmVyID0gJXp1XG4iLAogCQkJICAgICAgU1RSSU5HSUZZIChTVFJSQ0hS KSwgb3V0ZXIsIG1pZGRsZSwgaW5uZXIpOwogCQkgICAgICByZXN1bHQgPSAx OwogCQkgICAgfQpAQCAtMjE4LDcgKzIxOCw3IEBAIGRvX3Rlc3QgKHZvaWQp CiAKIAkgICAgICBpZiAoY3AgLSAmYWRyW291dGVyXSAhPSBtaWRkbGUgLSBv dXRlcikKIAkJewotCQkgIHByaW50ZiAoIiVzIGZsdW5rZWQgZm9yIG91dGVy ID0gJWQsIG1pZGRsZSA9ICVkXG4iLAorCQkgIHByaW50ZiAoIiVzIGZsdW5r ZWQgZm9yIG91dGVyID0gJXp1LCBtaWRkbGUgPSAlenVcbiIsCiAJCQkgIFNU UklOR0lGWSAoTUVNQ0hSKSwgb3V0ZXIsIG1pZGRsZSk7CiAJCSAgcmVzdWx0 ID0gMTsKIAkJfQpAQCAtMjMyLDcgKzIzMiw3IEBAIGRvX3Rlc3QgKHZvaWQp CiAKIAkgIGlmIChjcCAhPSBOVUxMKQogCSAgICB7Ci0JICAgICAgcHJpbnRm ICgiJXMgZmx1bmtlZCBmb3Igb3V0ZXIgPSAlZFxuIiwKKwkgICAgICBwcmlu dGYgKCIlcyBmbHVua2VkIGZvciBvdXRlciA9ICV6dVxuIiwKIAkJICAgICAg U1RSSU5HSUZZIChNRU1DSFIpLCBvdXRlcik7CiAJICAgICAgcmVzdWx0ID0g MTsKIAkgICAgfQpAQCAtMjUxLDcgKzI1MSw3IEBAIGRvX3Rlc3QgKHZvaWQp CiAKIAkgICAgICBpZiAoY3AgLSAmYWRyW291dGVyXSAhPSBtaWRkbGUgLSBv dXRlcikKIAkJewotCQkgIHByaW50ZiAoIiVzIGZsdW5rZWQgZm9yIG91dGVy ID0gJWQsIG1pZGRsZSA9ICVkXG4iLAorCQkgIHByaW50ZiAoIiVzIGZsdW5r ZWQgZm9yIG91dGVyID0gJXp1LCBtaWRkbGUgPSAlenVcbiIsCiAJCQkgIFNU UklOR0lGWSAocmF3bWVtY2hyKSwgb3V0ZXIsIG1pZGRsZSk7CiAJCSAgcmVz dWx0ID0gMTsKIAkJfQpAQCAtMjcxLDcgKzI3MSw3IEBAIGRvX3Rlc3QgKHZv aWQpCiAKIAkgICAgICBpZiAoY3AgLSAmYWRyW291dGVyXSAhPSBtaWRkbGUg LSBvdXRlcikKIAkJewotCQkgIHByaW50ZiAoIiVzIGZsdW5rZWQgZm9yIG91 dGVyID0gJWQsIG1pZGRsZSA9ICVkXG4iLAorCQkgIHByaW50ZiAoIiVzIGZs dW5rZWQgZm9yIG91dGVyID0gJXp1LCBtaWRkbGUgPSAlenVcbiIsCiAJCQkg IFNUUklOR0lGWSAobWVtcmNociksIG91dGVyLCBtaWRkbGUpOwogCQkgIHJl c3VsdCA9IDE7CiAJCX0KQEAgLTI4NSw3ICsyODUsNyBAQCBkb190ZXN0ICh2 b2lkKQogCiAJICBpZiAoY3AgIT0gTlVMTCkKIAkgICAgewotCSAgICAgIHBy aW50ZiAoIiVzIGZsdW5rZWQgZm9yIG91dGVyID0gJWRcbiIsCisJICAgICAg cHJpbnRmICgiJXMgZmx1bmtlZCBmb3Igb3V0ZXIgPSAlenVcbiIsCiAJCSAg ICAgIFNUUklOR0lGWSAobWVtcmNociksIG91dGVyKTsKIAkgICAgICByZXN1 bHQgPSAxOwogCSAgICB9CkBAIC0zMDIsNyArMzAyLDcgQEAgZG9fdGVzdCAo dm9pZCkKIAkgICAgICBpZiAoU1RSQ1BZIChkZXN0LCAmYWRyW291dGVyXSkg IT0gZGVzdAogCQkgIHx8IFNUUkxFTiAoZGVzdCkgIT0gKHNpemVfdCkgKGlu bmVyIC0gb3V0ZXIpKQogCQl7Ci0JCSAgcHJpbnRmICgiJXMgZmx1bmtlZCBm b3Igb3V0ZXIgPSAlZCwgaW5uZXIgPSAlZFxuIiwKKwkJICBwcmludGYgKCIl cyBmbHVua2VkIGZvciBvdXRlciA9ICV6dSwgaW5uZXIgPSAlenVcbiIsCiAJ CQkgIFNUUklOR0lGWSAoU1RSQ1BZKSwgb3V0ZXIsIGlubmVyKTsKIAkJICBy ZXN1bHQgPSAxOwogCQl9CkBAIC0zMjIsMTQgKzMyMiwxNCBAQCBkb190ZXN0 ICh2b2lkKQogCiAJICAgIGlmIChTVFJDTVAgKGFkciArIG1pZGRsZSwgZGVz dCArIG5jaGFycyAtIG91dGVyKSA8PSAwKQogCSAgICAgIHsKLQkJcHJpbnRm ICgiJXMgMSBmbHVua2VkIGZvciBvdXRlciA9ICVkLCBtaWRkbGUgPSAlZFxu IiwKKwkJcHJpbnRmICgiJXMgMSBmbHVua2VkIGZvciBvdXRlciA9ICV6dSwg bWlkZGxlID0gJXp1XG4iLAogCQkJU1RSSU5HSUZZIChTVFJDTVApLCBvdXRl ciwgbWlkZGxlKTsKIAkJcmVzdWx0ID0gMTsKIAkgICAgICB9CiAKIAkgICAg aWYgKFNUUkNNUCAoZGVzdCArIG5jaGFycyAtIG91dGVyLCBhZHIgKyBtaWRk bGUpID49IDApCiAJICAgICAgewotCQlwcmludGYgKCIlcyAyIGZsdW5rZWQg Zm9yIG91dGVyID0gJWQsIG1pZGRsZSA9ICVkXG4iLAorCQlwcmludGYgKCIl cyAyIGZsdW5rZWQgZm9yIG91dGVyID0gJXp1LCBtaWRkbGUgPSAlenVcbiIs CiAJCQlTVFJJTkdJRlkgKFNUUkNNUCksIG91dGVyLCBtaWRkbGUpOwogCQly ZXN1bHQgPSAxOwogCSAgICAgIH0KQEAgLTM0OCwxNiArMzQ4LDE2IEBAIGRv X3Rlc3QgKHZvaWQpCiAJICAgICAgewogCQlpZiAoU1RSTkNNUCAoYWRyICsg bWlkZGxlLCBkZXN0ICsgbmNoYXJzIC0gb3V0ZXIsIGlubmVyKSAhPSAwKQog CQkgIHsKLQkJICAgIHByaW50ZiAoIiVzIDEgZmx1bmtlZCBmb3Igb3V0ZXIg PSAlZCwgbWlkZGxlID0gJWQsICIKLQkJCSAgICAiaW5uZXIgPSAlZFxuIiwK KwkJICAgIHByaW50ZiAoIiVzIDEgZmx1bmtlZCBmb3Igb3V0ZXIgPSAlenUs IG1pZGRsZSA9ICV6dSwgIgorCQkJICAgICJpbm5lciA9ICV6dVxuIiwKIAkJ CSAgICBTVFJJTkdJRlkgKFNUUk5DTVApLCBvdXRlciwgbWlkZGxlLCBpbm5l cik7CiAJCSAgICByZXN1bHQgPSAxOwogCQkgIH0KIAogCQlpZiAoU1RSTkNN UCAoZGVzdCArIG5jaGFycyAtIG91dGVyLCBhZHIgKyBtaWRkbGUsIGlubmVy KSAhPSAwKQogCQkgIHsKLQkJICAgIHByaW50ZiAoIiVzIDIgZmx1bmtlZCBm b3Igb3V0ZXIgPSAlZCwgbWlkZGxlID0gJWQsICIKLQkJCSAgICAiaW5uZXIg PSAlZFxuIiwKKwkJICAgIHByaW50ZiAoIiVzIDIgZmx1bmtlZCBmb3Igb3V0 ZXIgPSAlenUsIG1pZGRsZSA9ICV6dSwgIgorCQkJICAgICJpbm5lciA9ICV6 dVxuIiwKIAkJCSAgICBTVFJJTkdJRlkgKFNUUk5DTVApLCBvdXRlciwgbWlk ZGxlLCBpbm5lcik7CiAJCSAgICByZXN1bHQgPSAxOwogCQkgIH0KQEAgLTM2 NSwxNCArMzY1LDE0IEBAIGRvX3Rlc3QgKHZvaWQpCiAKIAkgICAgaWYgKFNU Uk5DTVAgKGFkciArIG1pZGRsZSwgZGVzdCArIG5jaGFycyAtIG91dGVyLCBv dXRlcikgPj0gMCkKIAkgICAgICB7Ci0JCXByaW50ZiAoIiVzIDEgZmx1bmtl ZCBmb3Igb3V0ZXIgPSAlZCwgbWlkZGxlID0gJWQsIGZ1bGxcbiIsCisJCXBy aW50ZiAoIiVzIDEgZmx1bmtlZCBmb3Igb3V0ZXIgPSAlenUsIG1pZGRsZSA9 ICV6dSwgZnVsbFxuIiwKIAkJCVNUUklOR0lGWSAoU1RSTkNNUCksIG91dGVy LCBtaWRkbGUpOwogCQlyZXN1bHQgPSAxOwogCSAgICAgIH0KIAogCSAgICBp ZiAoU1RSTkNNUCAoZGVzdCArIG5jaGFycyAtIG91dGVyLCBhZHIgKyBtaWRk bGUsIG91dGVyKSA8PSAwKQogCSAgICAgIHsKLQkJcHJpbnRmICgiJXMgMiBm bHVua2VkIGZvciBvdXRlciA9ICVkLCBtaWRkbGUgPSAlZCwgZnVsbFxuIiwK KwkJcHJpbnRmICgiJXMgMiBmbHVua2VkIGZvciBvdXRlciA9ICV6dSwgbWlk ZGxlID0gJXp1LCBmdWxsXG4iLAogCQkJU1RSSU5HSUZZIChTVFJOQ01QKSwg b3V0ZXIsIG1pZGRsZSk7CiAJCXJlc3VsdCA9IDE7CiAJICAgICAgfQpAQCAt Mzg5LDcgKzM4OSw3IEBAIGRvX3Rlc3QgKHZvaWQpCiAJICAgICAgaWYgKFNU Uk5DUFkgKGRlc3QsICZhZHJbb3V0ZXJdLCBsZW4pICE9IGRlc3QKIAkJICB8 fCBNRU1DTVAgKGRlc3QsICZhZHJbb3V0ZXJdLCBsZW4pICE9IDApCiAJCXsK LQkJICBwcmludGYgKCJvdXRlciAlcyBmbHVua2VkIGZvciBvdXRlciA9ICVk LCBsZW4gPSAlWmRcbiIsCisJCSAgcHJpbnRmICgib3V0ZXIgJXMgZmx1bmtl ZCBmb3Igb3V0ZXIgPSAlenUsIGxlbiA9ICV6dVxuIiwKIAkJCSAgU1RSSU5H SUZZIChTVFJOQ1BZKSwgb3V0ZXIsIGxlbik7CiAJCSAgcmVzdWx0ID0gMTsK IAkJfQpAQCAtNDEzLDggKzQxMyw4IEBAIGRvX3Rlc3QgKHZvaWQpCiAJCSAg ICAgIHx8IChpbm5lciAtIG91dGVyIDwgbGVuCiAJCQkgICYmIFNUUkxFTiAo ZGVzdCkgIT0gKGlubmVyIC0gb3V0ZXIpKSkKIAkJICAgIHsKLQkJICAgICAg cHJpbnRmICgiJXMgZmx1bmtlZCBmb3Igb3V0ZXIgPSAlZCwgaW5uZXIgPSAl ZCwgIgotCQkJICAgICAgImxlbiA9ICVaZFxuIiwKKwkJICAgICAgcHJpbnRm ICgiJXMgZmx1bmtlZCBmb3Igb3V0ZXIgPSAlenUsIGlubmVyID0gJXp1LCAi CisJCQkgICAgICAibGVuID0gJXp1XG4iLAogCQkJICAgICAgU1RSSU5HSUZZ IChTVFJOQ1BZKSwgb3V0ZXIsIGlubmVyLCBsZW4pOwogCQkgICAgICByZXN1 bHQgPSAxOwogCQkgICAgfQpAQCAtNDI0LDggKzQyNCw4IEBAIGRvX3Rlc3Qg KHZvaWQpCiAJCSAgICAgIHx8IChpbm5lciAtIG91dGVyIDwgbGVuCiAJCQkg ICYmIFNUUkxFTiAoZGVzdCArIDEpICE9IChpbm5lciAtIG91dGVyKSkpCiAJ CSAgICB7Ci0JCSAgICAgIHByaW50ZiAoIiVzKzEgZmx1bmtlZCBmb3Igb3V0 ZXIgPSAlZCwgaW5uZXIgPSAlZCwgIgotCQkJICAgICAgImxlbiA9ICVaZFxu IiwKKwkJICAgICAgcHJpbnRmICgiJXMrMSBmbHVua2VkIGZvciBvdXRlciA9 ICV6dSwgaW5uZXIgPSAlenUsICIKKwkJCSAgICAgICJsZW4gPSAlenVcbiIs CiAJCQkgICAgICBTVFJJTkdJRlkgKFNUUk5DUFkpLCBvdXRlciwgaW5uZXIs IGxlbik7CiAJCSAgICAgIHJlc3VsdCA9IDE7CiAJCSAgICB9CkBAIC00NDQs NyArNDQ0LDcgQEAgZG9fdGVzdCAodm9pZCkKIAogCSAgICAgIGlmICgoU1RQ Q1BZIChkZXN0LCAmYWRyW291dGVyXSkgLSBkZXN0KSAhPSBpbm5lciAtIG91 dGVyKQogCQl7Ci0JCSAgcHJpbnRmICgiJXMgZmx1bmtlZCBmb3Igb3V0ZXIg PSAlZCwgaW5uZXIgPSAlZFxuIiwKKwkJICBwcmludGYgKCIlcyBmbHVua2Vk IGZvciBvdXRlciA9ICV6dSwgaW5uZXIgPSAlenVcbiIsCiAJCQkgIFNUUklO R0lGWSAoU1RQQ1BZKSwgb3V0ZXIsIGlubmVyKTsKIAkJICByZXN1bHQgPSAx OwogCQl9CkBAIC00NjQsNyArNDY0LDcgQEAgZG9fdGVzdCAodm9pZCkKIAkg ICAgICBpZiAoU1RQTkNQWSAoZGVzdCwgJmFkcltvdXRlcl0sIGxlbikgIT0g ZGVzdCArIGxlbgogCQkgIHx8IE1FTUNNUCAoZGVzdCwgJmFkcltvdXRlcl0s IGxlbikgIT0gMCkKIAkJewotCQkgIHByaW50ZiAoIm91dGVyICVzIGZsdW5r ZWQgZm9yIG91dGVyID0gJWQsIGxlbiA9ICVaZFxuIiwKKwkJICBwcmludGYg KCJvdXRlciAlcyBmbHVua2VkIGZvciBvdXRlciA9ICV6dSwgbGVuID0gJXp1 XG4iLAogCQkJICBTVFJJTkdJRlkgKFNUUE5DUFkpLCBvdXRlciwgbGVuKTsK IAkJICByZXN1bHQgPSAxOwogCQl9CkBAIC00ODMsOCArNDgzLDggQEAgZG9f dGVzdCAodm9pZCkKIAkJICBpZiAoKFNUUE5DUFkgKGRlc3QsICZhZHJbb3V0 ZXJdLCBpbm5lcikgLSBkZXN0KQogCQkgICAgICAhPSBNSU4gKGlubmVyLCBt aWRkbGUgLSBvdXRlcikpCiAJCSAgICB7Ci0JCSAgICAgIHByaW50ZiAoIiVz IGZsdW5rZWQgZm9yIG91dGVyID0gJWQsIG1pZGRsZSA9ICVkLCAiCi0JCQkg ICAgICAiaW5uZXIgPSAlZFxuIiwKKwkJICAgICAgcHJpbnRmICgiJXMgZmx1 bmtlZCBmb3Igb3V0ZXIgPSAlenUsIG1pZGRsZSA9ICV6dSwgIgorCQkJICAg ICAgImlubmVyID0gJXp1XG4iLAogCQkJICAgICAgU1RSSU5HSUZZIChTVFBO Q1BZKSwgb3V0ZXIsIG1pZGRsZSwgaW5uZXIpOwogCQkgICAgICByZXN1bHQg PSAxOwogCQkgICAgfQpAQCAtNDk5LDcgKzQ5OSw3IEBAIGRvX3Rlc3QgKHZv aWQpCiAJZm9yIChpbm5lciA9IDA7IGlubmVyIDwgbmNoYXJzIC0gb3V0ZXI7 ICsraW5uZXIpCiAJICBpZiAoTUVNQ1BZIChkZXN0LCAmYWRyW291dGVyXSwg aW5uZXIpICE9ICBkZXN0KQogCSAgICB7Ci0JICAgICAgcHJpbnRmICgiJXMg Zmx1bmtlZCBmb3Igb3V0ZXIgPSAlZCwgaW5uZXIgPSAlZFxuIiwKKwkgICAg ICBwcmludGYgKCIlcyBmbHVua2VkIGZvciBvdXRlciA9ICV6dSwgaW5uZXIg PSAlenVcbiIsCiAJCSAgICAgIFNUUklOR0lGWSAoTUVNQ1BZKSwgb3V0ZXIs IGlubmVyKTsKIAkgICAgICByZXN1bHQgPSAxOwogCSAgICB9CkBAIC01MDks NyArNTA5LDcgQEAgZG9fdGVzdCAodm9pZCkKIAlmb3IgKGlubmVyID0gMDsg aW5uZXIgPCBuY2hhcnMgLSBvdXRlcjsgKytpbm5lcikKIAkgIGlmIChNRU1Q Q1BZIChkZXN0LCAmYWRyW291dGVyXSwgaW5uZXIpICE9ICBkZXN0ICsgaW5u ZXIpCiAJICAgIHsKLQkgICAgICBwcmludGYgKCIlcyBmbHVua2VkIGZvciBv dXRlciA9ICVkLCBpbm5lciA9ICVkXG4iLAorCSAgICAgIHByaW50ZiAoIiVz IGZsdW5rZWQgZm9yIG91dGVyID0gJXp1LCBpbm5lciA9ICV6dVxuIiwKIAkJ ICAgICAgU1RSSU5HSUZZIChNRU1QQ1BZKSwgb3V0ZXIsIGlubmVyKTsKIAkg ICAgICByZXN1bHQgPSAxOwogCSAgICB9CkBAIC01MjIsNyArNTIyLDcgQEAg ZG9fdGVzdCAodm9pZCkKIAlmb3IgKGlubmVyID0gMDsgaW5uZXIgPCBuY2hh cnMgLSBvdXRlcjsgKytpbm5lcikKIAkgIGlmIChtZW1jY3B5IChkZXN0LCAm YWRyW291dGVyXSwgTCgnXDEnKSwgaW5uZXIpICE9IE5VTEwpCiAJICAgIHsK LQkgICAgICBwcmludGYgKCJtZW1jY3B5IGZsdW5rZWQgZnVsbCBjb3B5IGZv ciBvdXRlciA9ICVkLCBpbm5lciA9ICVkXG4iLAorCSAgICAgIHByaW50ZiAo Im1lbWNjcHkgZmx1bmtlZCBmdWxsIGNvcHkgZm9yIG91dGVyID0gJXp1LCBp bm5lciA9ICV6dVxuIiwKIAkJICAgICAgb3V0ZXIsIGlubmVyKTsKIAkgICAg ICByZXN1bHQgPSAxOwogCSAgICB9CkBAIC01MzgsMTQgKzUzOCwxNCBAQCBk b190ZXN0ICh2b2lkKQogCQkgICAgIT0gIGRlc3QgKyBpbm5lciArIDEpCiAJ CSAgewogCQkgICAgcHJpbnRmICgiXAotbWVtY2NweSBmbHVua2VkIHBhcnRp YWwgY29weSBmb3Igb3V0ZXIgPSAlZCwgbWlkZGxlID0gJWQsIGlubmVyID0g JWRcbiIsCittZW1jY3B5IGZsdW5rZWQgcGFydGlhbCBjb3B5IGZvciBvdXRl ciA9ICV6dSwgbWlkZGxlID0gJXp1LCBpbm5lciA9ICV6dVxuIiwKIAkJCSAg ICBvdXRlciwgbWlkZGxlLCBpbm5lcik7CiAJCSAgICByZXN1bHQgPSAxOwog CQkgIH0KIAkJZWxzZSBpZiAoZGVzdFtpbm5lciArIDFdICE9IEwoJ1wyJykp CiAJCSAgewogCQkgICAgcHJpbnRmICgiXAotbWVtY2NweSBjb3BpZWQgdG9v IG11Y2ggZm9yIG91dGVyID0gJWQsIG1pZGRsZSA9ICVkLCBpbm5lciA9ICVk XG4iLAorbWVtY2NweSBjb3BpZWQgdG9vIG11Y2ggZm9yIG91dGVyID0gJXp1 LCBtaWRkbGUgPSAlenUsIGlubmVyID0gJXp1XG4iLAogCQkJICAgIG91dGVy LCBtaWRkbGUsIGlubmVyKTsKIAkJICAgIHJlc3VsdCA9IDE7CiAJCSAgfQot LSAKMi4xMy41Cgo= --001a11c17e487707a8055744c8c8--