From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) by sourceware.org (Postfix) with ESMTPS id E14A83860C37 for ; Wed, 14 Jul 2021 13:33:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E14A83860C37 Received: by mail-pf1-x42d.google.com with SMTP id a127so2030691pfa.10 for ; Wed, 14 Jul 2021 06:33:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=xCgtBRJfAjtpcVHR2TcKkTuymGQsnqcjPfJP4WkwfUI=; b=WGsNVur/ysZyuskIjOwgrAuQ/5Ju8gXzPKkTpiwZG0wi7FEBeZ12KCNXYaF9e6+3Nk b5OnmNoCplZaM4iQ2wJvOtaddpObL4hlEEJFHMRKYaG3m/lnB02L9FOtFkUWxGumakyq uwjc2oEohWrzFYyTBo8NaYkBLi+5xa3Zrc275evUNU0YHRxsqNzBRICIjwxEax6Mc0Ms 3+ZYUVcKigYDDQ570LFUL8Ch47tRaGx0rNpDEMzcPRQH8aD7WjL4I5E0pixGZg0r0Ksk VsmvT4arkFkf6AK/N8AtXe3QN6NnWmWDX4X90Ny++B8Mu/YZVqZlI9aV5ckwaRkD3EoZ HNBw== X-Gm-Message-State: AOAM530zBU/ZUy7Wqym4zpeFt7TC/rgtj5NgQ/XpYybLJlepvMWh3k9S Nxbh30B54YpoRMCsSz6zITXbDS+nNDCXlujb7Pw= X-Google-Smtp-Source: ABdhPJwLtMRQXOh6PU3uRP8ZkmkOykF3XjgCfJ/Xi26OhOxStWf0HKmfVW2P9X8KFNse9xOXbYuMgyv2sFfgolrtUt0= X-Received: by 2002:aa7:8812:0:b029:32d:8252:fd0 with SMTP id c18-20020aa788120000b029032d82520fd0mr10229694pfo.48.1626269583025; Wed, 14 Jul 2021 06:33:03 -0700 (PDT) MIME-Version: 1.0 References: <20210601145516.3553627-1-hjl.tools@gmail.com> <20210601145516.3553627-4-hjl.tools@gmail.com> <6ec9f19a-8e6c-b5e9-859a-e72d21be9d4b@linaro.org> <36921272-fe09-a6af-bfff-6e9043b0c180@linaro.org> In-Reply-To: <36921272-fe09-a6af-bfff-6e9043b0c180@linaro.org> From: "H.J. Lu" Date: Wed, 14 Jul 2021 06:32:27 -0700 Message-ID: Subject: Re: [PATCH v9] Add static tests for __clone_internal To: Adhemerval Zanella Cc: GNU C Library , Florian Weimer , Noah Goldstein Content-Type: multipart/mixed; boundary="000000000000ce572905c71564fd" X-Spam-Status: No, score=-3031.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jul 2021 13:33:06 -0000 --000000000000ce572905c71564fd Content-Type: text/plain; charset="UTF-8" On Wed, Jul 14, 2021 at 6:18 AM Adhemerval Zanella wrote: > > > > On 13/07/2021 18:12, H.J. Lu wrote: > > > > Here is the v9 patch. OK for master? > > > > Thanks. > > > > I think you forgot the attach the patch. Oops. Here is the patch. -- H.J. --000000000000ce572905c71564fd Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0001-Add-static-tests-for-__clone_internal.patch" Content-Disposition: attachment; filename="v9-0001-Add-static-tests-for-__clone_internal.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kr3ivpzk0 RnJvbSAxYWE2YjU3MTQ3OWIwYTJmYjU0ZTg0NTVmNDU4NzViNGY2YjRiMmQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMTQgTWF5IDIwMjEgMTU6MjM6NDYgLTA3MDAKU3ViamVjdDogW1BBVENIIHY5XSBBZGQg c3RhdGljIHRlc3RzIGZvciBfX2Nsb25lX2ludGVybmFsCgotLS0KIHN5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L01ha2VmaWxlICAgICAgICAgICAgICB8ICAgOSArKwogLi4uL3N5c3YvbGludXgvdHN0 LWFsaWduLWNsb25lLWludGVybmFsLmMgICAgIHwgIDY4ICsrKysrKysrKwogc3lzZGVwcy91bml4 L3N5c3YvbGludXgvdHN0LWNsb25lMi1pbnRlcm5hbC5jIHwgMTI2ICsrKysrKysrKysrKysrKysr CiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtY2xvbmUzLWludGVybmFsLmMgfCAgOTkgKysr KysrKysrKysrKwogLi4uL3VuaXgvc3lzdi9saW51eC90c3QtZ2V0cGlkMS1pbnRlcm5hbC5jICAg IHwgMTMzICsrKysrKysrKysrKysrKysrKwogLi4uL3N5c3YvbGludXgvdHN0LW1pc2FsaWduLWNs b25lLWludGVybmFsLmMgIHwgIDc0ICsrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNTA5IGlu c2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90 c3QtYWxpZ24tY2xvbmUtaW50ZXJuYWwuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L3RzdC1jbG9uZTItaW50ZXJuYWwuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1jbG9uZTMtaW50ZXJuYWwuYwogY3JlYXRlIG1vZGUg MTAwNjQ0IHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1nZXRwaWQxLWludGVybmFsLmMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtbWlzYWxpZ24tY2xv bmUtaW50ZXJuYWwuYwoKZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2Vm aWxlIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUKaW5kZXggZWQwYzBkMjdmNC4u Y2NlYjE2YmUwNSAxMDA2NDQKLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUK KysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUKQEAgLTEzOSw2ICsxMzksMTUg QEAgdGVzdHMtdGltZTY0ICs9IFwKICAgdHN0LXNpZ3RpbWVkd2FpdC10aW1lNjQgXAogICB0c3Qt dGltZXJmZC10aW1lNjQgXAogCit0ZXN0cy1jbG9uZS1pbnRlcm5hbCA9IFwKKyAgdHN0LWFsaWdu LWNsb25lLWludGVybmFsIFwKKyAgdHN0LWNsb25lMi1pbnRlcm5hbCBcCisgIHRzdC1jbG9uZTMt aW50ZXJuYWwgXAorICB0c3QtZ2V0cGlkMS1pbnRlcm5hbCBcCisgIHRzdC1taXNhbGlnbi1jbG9u ZS1pbnRlcm5hbAordGVzdHMtaW50ZXJuYWwgKz0gJCh0ZXN0cy1jbG9uZS1pbnRlcm5hbCkKK3Rl c3RzLXN0YXRpYyArPSAkKHRlc3RzLWNsb25lLWludGVybmFsKQorCiBDRkxBR1MtdHN0LXNpZ2Nv bnRleHQtZ2V0X3BjLmMgPSAtZmFzeW5jaHJvbm91cy11bndpbmQtdGFibGVzCiAKICMgR2VuZXJh dGUgdGhlIGxpc3Qgb2YgU1lTXyogbWFjcm9zIGZvciB0aGUgc3lzdGVtIGNhbGxzIChfX05SXyoK ZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1hbGlnbi1jbG9uZS1pbnRl cm5hbC5jIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LWFsaWduLWNsb25lLWludGVybmFs LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZjNmNWI0NjM3OAotLS0g L2Rldi9udWxsCisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1hbGlnbi1jbG9uZS1p bnRlcm5hbC5jCkBAIC0wLDAgKzEsNjggQEAKKy8qIFZlcmlmeSB0aGF0IHRoZSBjbG9uZSBjaGls ZCBzdGFjayBpcyBwcm9wZXJseSBhbGlnbmVkLgorICAgQ29weXJpZ2h0IChDKSAyMDIxIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdO VSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIu MSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGlj ZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBz Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlIDxzY2hlZC5oPgorI2lu Y2x1ZGUgPHN0ZGJvb2wuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdGRpby5o PgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisjaW5jbHVkZSA8 dW5pc3RkLmg+CisjaW5jbHVkZSA8dHN0LXN0YWNrLWFsaWduLmg+CisjaW5jbHVkZSA8Y2xvbmVf aW50ZXJuYWwuaD4KKyNpbmNsdWRlIDxzdXBwb3J0L3h1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdXBw b3J0L2NoZWNrLmg+CisKK3N0YXRpYyBpbnQKK2YgKHZvaWQgKmFyZykKK3sKKyAgcHV0cyAoImlu IGYiKTsKKworICByZXR1cm4gVEVTVF9TVEFDS19BTElHTiAoKSA/IDEgOiAwOworfQorCitzdGF0 aWMgaW50Citkb190ZXN0ICh2b2lkKQoreworICBwdXRzICgiaW4gbWFpbiIpOworCisgIGlmIChU RVNUX1NUQUNLX0FMSUdOICgpKQorICAgIEZBSUxfRVhJVDEgKCJzdGFjayBhbGlnbm1lbnQgZmFp bGVkIik7CisKKyNpZmRlZiBfX2lhNjRfXworIyBkZWZpbmUgU1RBQ0tfU0laRSAyNTYgKiAxMDI0 CisjZWxzZQorIyBkZWZpbmUgU1RBQ0tfU0laRSAxMjggKiAxMDI0CisjZW5kaWYKKyAgY2hhciBz dFtTVEFDS19TSVpFXSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCkpOworICBzdHJ1Y3QgY2xvbmVf YXJncyBjbG9uZV9hcmdzID0KKyAgICB7CisgICAgICAuc3RhY2sgPSAodWludHB0cl90KSBzdCwK KyAgICAgIC5zdGFja19zaXplID0gc2l6ZW9mIChzdCksCisgICAgfTsKKyAgcGlkX3QgcCA9IF9f Y2xvbmVfaW50ZXJuYWwgKCZjbG9uZV9hcmdzLCBmLCAwKTsKKyAgVEVTVF9WRVJJRlkgKHAgIT0g LTEpOworCisgIGludCBlOworICB4d2FpdHBpZCAocCwgJmUsIF9fV0NMT05FKTsKKyAgVEVTVF9W RVJJRlkgKFdJRkVYSVRFRCAoZSkpOworICBURVNUX0NPTVBBUkUgKFdFWElUU1RBVFVTIChlKSwg MCk7CisgIHJldHVybiAwOworfQorCisjaW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRyaXZlci5jPgpk aWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LWNsb25lMi1pbnRlcm5hbC5j IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LWNsb25lMi1pbnRlcm5hbC5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmZkM2E1NTE1OGMKLS0tIC9kZXYvbnVsbAor KysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtY2xvbmUyLWludGVybmFsLmMKQEAgLTAs MCArMSwxMjYgQEAKKy8qIFRlc3QgaWYgQ0xPTkVfVk0gZG9lcyBub3QgY2hhbmdlIHB0aHJlYWQg cGlkL3RpZCBmaWVsZCAoQlogIzE5OTU3KQorICAgQ29weXJpZ2h0IChDKSAyMDIxIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBD IExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5z ZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlIDxzY2hlZC5oPgorI2luY2x1 ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+Cisj aW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdGRkZWYu aD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8 c3RkbGliLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNp bmNsdWRlIDxzeXMvd2FpdC5oPgorI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisjaW5jbHVkZSA8 Y2xvbmVfaW50ZXJuYWwuaD4KKyNpbmNsdWRlIDxzdXBwb3J0L3h1bmlzdGQuaD4KKyNpbmNsdWRl IDxzdXBwb3J0L2NoZWNrLmg+CisKK3N0YXRpYyBpbnQgc2lnOworc3RhdGljIGludCBwaXBlZmRb Ml07CisKK3N0YXRpYyBpbnQKK2YgKHZvaWQgKmEpCit7CisgIGNsb3NlIChwaXBlZmRbMF0pOwor CisgIHBpZF90IHBwaWQgPSBnZXRwcGlkICgpOworICBwaWRfdCBwaWQgPSBnZXRwaWQgKCk7Cisg IHBpZF90IHRpZCA9IGdldHRpZCAoKTsKKworICBpZiAod3JpdGUgKHBpcGVmZFsxXSwgJnBwaWQs IHNpemVvZiBwcGlkKSAhPSBzaXplb2YgKHBwaWQpKQorICAgIEZBSUxfRVhJVDEgKCJ3cml0ZSBw cGlkIGZhaWxlZFxuIik7CisgIGlmICh3cml0ZSAocGlwZWZkWzFdLCAmcGlkLCBzaXplb2YgcGlk KSAhPSBzaXplb2YgKHBpZCkpCisgICAgRkFJTF9FWElUMSAoIndyaXRlIHBpZCBmYWlsZWRcbiIp OworICBpZiAod3JpdGUgKHBpcGVmZFsxXSwgJnRpZCwgc2l6ZW9mIHRpZCkgIT0gc2l6ZW9mICh0 aWQpKQorICAgIEZBSUxfRVhJVDEgKCJ3cml0ZSB0aWQgZmFpbGVkXG4iKTsKKworICByZXR1cm4g MDsKK30KKworCitzdGF0aWMgaW50Citkb190ZXN0ICh2b2lkKQoreworICBzaWcgPSBTSUdSVE1J TjsKKyAgc2lnc2V0X3Qgc3M7CisgIHNpZ2VtcHR5c2V0ICgmc3MpOworICBzaWdhZGRzZXQgKCZz cywgc2lnKTsKKyAgaWYgKHNpZ3Byb2NtYXNrIChTSUdfQkxPQ0ssICZzcywgTlVMTCkgIT0gMCkK KyAgICBGQUlMX0VYSVQxICgic2lncHJvY21hc2sgZmFpbGVkOiAlbSIpOworCisgIGlmIChwaXBl MiAocGlwZWZkLCBPX0NMT0VYRUMpKQorICAgIEZBSUxfRVhJVDEgKCJwaXBlIGZhaWxlZDogJW0i KTsKKworI2lmZGVmIF9faWE2NF9fCisjIGRlZmluZSBTVEFDS19TSVpFIDI1NiAqIDEwMjQKKyNl bHNlCisjIGRlZmluZSBTVEFDS19TSVpFIDEyOCAqIDEwMjQKKyNlbmRpZgorICBjaGFyIHN0W1NU QUNLX1NJWkVdIF9fYXR0cmlidXRlX18gKChhbGlnbmVkKSk7CisgIHN0cnVjdCBjbG9uZV9hcmdz IGNsb25lX2FyZ3MgPQorICAgIHsKKyAgICAgIC5zdGFjayA9ICh1aW50cHRyX3QpIHN0LAorICAg ICAgLnN0YWNrX3NpemUgPSBzaXplb2YgKHN0KSwKKyAgICB9OworICBwaWRfdCBwID0gX19jbG9u ZV9pbnRlcm5hbCAoJmNsb25lX2FyZ3MsIGYsIDApOworCisgIGNsb3NlIChwaXBlZmRbMV0pOwor CisgIGlmIChwID09IC0xKQorICAgIEZBSUxfRVhJVDEoImNsb25lIGZhaWxlZDogJW0iKTsKKwor ICBwaWRfdCBwcGlkLCBwaWQsIHRpZDsKKyAgaWYgKHJlYWQgKHBpcGVmZFswXSwgJnBwaWQsIHNp emVvZiBwaWQpICE9IHNpemVvZiBwaWQpCisgICAgeworICAgICAga2lsbCAocCwgU0lHS0lMTCk7 CisgICAgICBGQUlMX0VYSVQxICgicmVhZCBwcGlkIGZhaWxlZDogJW0iKTsKKyAgICB9CisgIGlm IChyZWFkIChwaXBlZmRbMF0sICZwaWQsIHNpemVvZiBwaWQpICE9IHNpemVvZiBwaWQpCisgICAg eworICAgICAga2lsbCAocCwgU0lHS0lMTCk7CisgICAgICBGQUlMX0VYSVQxICgicmVhZCBwaWQg ZmFpbGVkOiAlbSIpOworICAgIH0KKyAgaWYgKHJlYWQgKHBpcGVmZFswXSwgJnRpZCwgc2l6ZW9m IHRpZCkgIT0gc2l6ZW9mIHRpZCkKKyAgICB7CisgICAgICBraWxsIChwLCBTSUdLSUxMKTsKKyAg ICAgIEZBSUxfRVhJVDEgKCJyZWFkIHRpZCBmYWlsZWQ6ICVtIik7CisgICAgfQorCisgIGNsb3Nl IChwaXBlZmRbMF0pOworCisgIHBpZF90IG93bl9waWQgPSBnZXRwaWQgKCk7CisgIHBpZF90IG93 bl90aWQgPSBzeXNjYWxsIChfX05SX2dldHRpZCk7CisKKyAgLyogU29tZSBzYW5pdHkgY2hlY2tz IGZvciBjbG9uZSBzeXNjYWxsOiByZXR1cm5lZCBwcGlkIHNob3VsZCBiZSBjdXJyZW50CisgICAg IHBpZCBhbmQgYm90aCByZXR1cm5lZCB0aWQvcGlkIHNob3VsZCBiZSBkaWZmZXJlbnQgZnJvbSBj dXJyZW50IG9uZS4gICovCisgIGlmICgocHBpZCAhPSBvd25fcGlkKSB8fCAocGlkID09IG93bl9w aWQpIHx8ICh0aWQgPT0gb3duX3RpZCkpCisgICAgRkFJTF9SRVQgKCJwcGlkPSVpIHBpZD0laSB0 aWQ9JWkgfCBvd25fcGlkPSVpIG93bl90aWQ9JWkiLAorCSAgICAgIChpbnQpcHBpZCwgKGludClw aWQsIChpbnQpdGlkLCAoaW50KW93bl9waWQsIChpbnQpb3duX3RpZCk7CisKKyAgaW50IGU7Cisg IHh3YWl0cGlkIChwLCAmZSwgX19XQ0xPTkUpOworICBURVNUX1ZFUklGWSAoV0lGRVhJVEVEIChl KSk7CisgIFRFU1RfQ09NUEFSRSAoV0VYSVRTVEFUVVMgKGUpLCAwKTsKKyAgcmV0dXJuIDA7Cit9 CisKKyNpbmNsdWRlIDxzdXBwb3J0L3Rlc3QtZHJpdmVyLmM+CmRpZmYgLS1naXQgYS9zeXNkZXBz L3VuaXgvc3lzdi9saW51eC90c3QtY2xvbmUzLWludGVybmFsLmMgYi9zeXNkZXBzL3VuaXgvc3lz di9saW51eC90c3QtY2xvbmUzLWludGVybmFsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uMmJkYmM1NzFlNgotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3RzdC1jbG9uZTMtaW50ZXJuYWwuYwpAQCAtMCwwICsxLDk5IEBACisvKiBDaGVj ayBpZiBjbG9uZSAoQ0xPTkVfVEhSRUFEKSBkb2VzIG5vdCBjYWxsIGV4aXRfZ3JvdXAgKEJaICMy MTUxMikKKyAgIENvcHlyaWdodCAoQykgMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUg R05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5 IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05V IEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLworCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c2NoZWQuaD4KKyNpbmNs dWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgor I2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKyNpbmNsdWRl IDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9mdXRleC5oPgorI2luY2x1ZGUgPHN1cHBv cnQvY2hlY2suaD4KKyNpbmNsdWRlIDxzdGRhdG9taWMuaD4KKyNpbmNsdWRlIDxjbG9uZV9pbnRl cm5hbC5oPgorCisvKiBUZXN0IGlmIGNsb25lIGNhbGwgd2l0aCBDTE9ORV9USFJFQUQgZG9lcyBu b3QgY2FsbCBleGl0X2dyb3VwLiAgVGhlICdmJworICAgZnVuY3Rpb24gcmV0dXJucyAnMScsIHdo aWNoIHdpbGwgYmUgdXNlZCBieSBjbG9uZSB0aHJlYWQgdG8gY2FsbCB0aGUKKyAgICdleGl0JyBz eXNjYWxsIGRpcmVjdGx5LiAgSWYgX2V4aXQgaXMgdXNlZCBpbnN0ZWFkLCBleGl0X2dyb3VwIHdp bGwgYmUKKyAgIHVzZWQgYW5kIHRodXMgdGhlIHRocmVhZCBncm91cCB3aWxsIGZpbmlzaCB3aXRo IHJldHVybiB2YWx1ZSBvZiAnMScKKyAgICh3aGVyZSAnMicgZnJvbSBtYWluIHRocmVhZCBpcyBl eHBlY3RlZC4pLiAgKi8KKworc3RhdGljIGludAorZiAodm9pZCAqYSkKK3sKKyAgcmV0dXJuIDE7 Cit9CisKKy8qIEZ1dGV4IHdhaXQgZm9yIFRJRCBhcmd1bWVudCwgc2ltaWxhciB0byBwdGhyZWFk X2pvaW4gaW50ZXJuYWwKKyAgIGltcGxlbWVudGF0aW9uLiAgKi8KKyNkZWZpbmUgd2FpdF90aWQo Y3RpZF9wdHIsIGN0aWRfdmFsKQkJCQkJXAorICBkbyB7CQkJCQkJCQkJXAorICAgIF9fdHlwZW9m ICgqKGN0aWRfcHRyKSkgX190aWQ7CQkJCQlcCisgICAgLyogV2UgbmVlZCBhY3F1aXJlIE1PIGhl cmUgc28gdGhhdCB3ZSBzeW5jaHJvbml6ZSB3aXRoIHRoZQkJXAorICAgICAgIGtlcm5lbCdzIHN0 b3JlIHRvIDAgd2hlbiB0aGUgY2xvbmUgdGVybWluYXRlcy4gICovCQlcCisgICAgd2hpbGUgKChf X3RpZCA9IGF0b21pY19sb2FkX2V4cGxpY2l0IChjdGlkX3B0ciwJCQlcCisJCQkJCSAgbWVtb3J5 X29yZGVyX2FjcXVpcmUpKSAhPSAwKQlcCisgICAgICBmdXRleF93YWl0IChjdGlkX3B0ciwgY3Rp ZF92YWwpOwkJCQkJXAorICB9IHdoaWxlICgwKQorCitzdGF0aWMgaW5saW5lIGludAorZnV0ZXhf d2FpdCAoaW50ICpmdXRleHAsIGludCB2YWwpCit7CisjaWZkZWYgX19OUl9mdXRleAorICByZXR1 cm4gc3lzY2FsbCAoX19OUl9mdXRleCwgZnV0ZXhwLCBGVVRFWF9XQUlULCB2YWwpOworI2Vsc2UK KyAgcmV0dXJuIHN5c2NhbGwgKF9fTlJfZnV0ZXhfdGltZTY0LCBmdXRleHAsIEZVVEVYX1dBSVQs IHZhbCk7CisjZW5kaWYKK30KKworc3RhdGljIGludAorZG9fdGVzdCAodm9pZCkKK3sKKyAgY2hh ciBzdFsxMDI0XSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCkpOworICBpbnQgY2xvbmVfZmxhZ3Mg PSBDTE9ORV9USFJFQUQ7CisgIC8qIE1pbmltdW0gcmVxdWlyZWQgZmxhZ3MgdG8gdXNlZCBhbG9u ZyB3aXRoIENMT05FX1RIUkVBRC4gICovCisgIGNsb25lX2ZsYWdzIHw9IENMT05FX1ZNIHwgQ0xP TkVfU0lHSEFORDsKKyAgLyogV2Ugd2lsbCB1c2VkIGN0aWQgdG8gY2FsbCBvbiBmdXRleCB0byB3 YWl0IGZvciB0aHJlYWQgZXhpdC4gICovCisgIGNsb25lX2ZsYWdzIHw9IENMT05FX0NISUxEX0NM RUFSVElEOworICAvKiBJbml0aWFsaXplIHdpdGggYSBrbm93biB2YWx1ZS4gIGN0aWQgaXMgc2V0 IHRvIHplcm8gYnkgdGhlIGtlcm5lbCBhZnRlciB0aGUKKyAgICAgY2xvbmVkIHRocmVhZCBoYXMg ZXhpdGVkLiAgKi8KKyNkZWZpbmUgQ1RJRF9JTklUX1ZBTCAxCisgIHBpZF90IGN0aWQgPSBDVElE X0lOSVRfVkFMOworICBwaWRfdCB0aWQ7CisKKyAgc3RydWN0IGNsb25lX2FyZ3MgY2xvbmVfYXJn cyA9CisgICAgeworICAgICAgLmZsYWdzID0gY2xvbmVfZmxhZ3MgJiB+Q1NJR05BTCwKKyAgICAg IC5leGl0X3NpZ25hbCA9IGNsb25lX2ZsYWdzICYgQ1NJR05BTCwKKyAgICAgIC5zdGFjayA9ICh1 aW50cHRyX3QpIHN0LAorICAgICAgLnN0YWNrX3NpemUgPSBzaXplb2YgKHN0KSwKKyAgICAgIC5j aGlsZF90aWQgPSAodWludHB0cl90KSAmY3RpZCwKKyAgICB9OworICB0aWQgPSBfX2Nsb25lX2lu dGVybmFsICgmY2xvbmVfYXJncywgZiwgTlVMTCk7CisgIGlmICh0aWQgPT0gLTEpCisgICAgRkFJ TF9FWElUMSAoImNsb25lIGZhaWxlZDogJW0iKTsKKworICB3YWl0X3RpZCAoJmN0aWQsIENUSURf SU5JVF9WQUwpOworCisgIHJldHVybiAyOworfQorCisjZGVmaW5lIEVYUEVDVEVEX1NUQVRVUyAy CisjaW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRyaXZlci5jPgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvdHN0LWdldHBpZDEtaW50ZXJuYWwuYyBiL3N5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L3RzdC1nZXRwaWQxLWludGVybmFsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uZWU2OWU1MjQwMQotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3RzdC1nZXRwaWQxLWludGVybmFsLmMKQEAgLTAsMCArMSwxMzMgQEAKKy8qIFZl cmlmeSB0aGF0IHRoZSBwYXJlbnQgcGlkIGlzIHVuY2hhbmdlZCBieSBfX2Nsb25lX2ludGVybmFs LgorICAgQ29weXJpZ2h0IChDKSAyMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBM aWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovCisKKyNpbmNsdWRlIDxzY2hlZC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUg PHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5j bHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKyNpbmNsdWRlIDxjbG9u ZV9pbnRlcm5hbC5oPgorI2luY2x1ZGUgPHN1cHBvcnQveHVuaXN0ZC5oPgorCisjaWZuZGVmIFRF U1RfQ0xPTkVfRkxBR1MKKyNkZWZpbmUgVEVTVF9DTE9ORV9GTEFHUyAwCisjZW5kaWYKKworc3Rh dGljIGludCBzaWc7CisKK3N0YXRpYyBpbnQKK2YgKHZvaWQgKmEpCit7CisgIHB1dHMgKCJpbiBm Iik7CisgIHVuaW9uIHNpZ3ZhbCBzaXZhbDsKKyAgc2l2YWwuc2l2YWxfaW50ID0gZ2V0cGlkICgp OworICBwcmludGYgKCJwaWQgPSAlZFxuIiwgc2l2YWwuc2l2YWxfaW50KTsKKyAgaWYgKHNpZ3F1 ZXVlIChnZXRwcGlkICgpLCBzaWcsIHNpdmFsKSAhPSAwKQorICAgIHJldHVybiAxOworICByZXR1 cm4gMDsKK30KKworCitzdGF0aWMgaW50Citkb190ZXN0ICh2b2lkKQoreworICBpbnQgbXlwaWQg PSBnZXRwaWQgKCk7CisKKyAgc2lnID0gU0lHUlRNSU47CisgIHNpZ3NldF90IHNzOworICBzaWdl bXB0eXNldCAoJnNzKTsKKyAgc2lnYWRkc2V0ICgmc3MsIHNpZyk7CisgIGlmIChzaWdwcm9jbWFz ayAoU0lHX0JMT0NLLCAmc3MsIE5VTEwpICE9IDApCisgICAgeworICAgICAgcHJpbnRmICgic2ln cHJvY21hc2sgZmFpbGVkOiAlbVxuIik7CisgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyNpZmRl ZiBfX2lhNjRfXworIyBkZWZpbmUgU1RBQ0tfU0laRSAyNTYgKiAxMDI0CisjZWxzZQorIyBkZWZp bmUgU1RBQ0tfU0laRSAxMjggKiAxMDI0CisjZW5kaWYKKyAgY2hhciBzdFtTVEFDS19TSVpFXSBf X2F0dHJpYnV0ZV9fICgoYWxpZ25lZCkpOworICBzdHJ1Y3QgY2xvbmVfYXJncyBjbG9uZV9hcmdz ID0KKyAgICB7CisgICAgICAuZmxhZ3MgPSBURVNUX0NMT05FX0ZMQUdTICYgfkNTSUdOQUwsCisg ICAgICAuZXhpdF9zaWduYWwgPSBURVNUX0NMT05FX0ZMQUdTICYgQ1NJR05BTCwKKyAgICAgIC5z dGFjayA9ICh1aW50cHRyX3QpIHN0LAorICAgICAgLnN0YWNrX3NpemUgPSBzaXplb2YgKHN0KSwK KyAgICB9OworICBwaWRfdCBwID0gX19jbG9uZV9pbnRlcm5hbCAoJmNsb25lX2FyZ3MsIGYsIDAp OworICBpZiAocCA9PSAtMSkKKyAgICB7CisgICAgICBwcmludGYoImNsb25lIGZhaWxlZDogJW1c biIpOworICAgICAgcmV0dXJuIDE7CisgICAgfQorICBwcmludGYgKCJuZXcgdGhyZWFkOiAlZFxu IiwgKGludCkgcCk7CisKKyAgc2lnaW5mb190IHNpOworICBkbworICAgIGlmIChzaWd3YWl0aW5m byAoJnNzLCAmc2kpIDwgMCkKKyAgICAgIHsKKwlwcmludGYoInNpZ3dhaXRpbmZvIGZhaWxlZDog JW1cbiIpOworCWtpbGwgKHAsIFNJR0tJTEwpOworCXJldHVybiAxOworICAgICAgfQorICB3aGls ZSAgKHNpLnNpX3NpZ25vICE9IHNpZyB8fCBzaS5zaV9jb2RlICE9IFNJX1FVRVVFKTsKKworICBp bnQgZTsKKyAgeHdhaXRwaWQgKHAsICZlLCBfX1dDTE9ORSk7CisgIGlmICghV0lGRVhJVEVEIChl KSkKKyAgICB7CisgICAgICBpZiAoV0lGU0lHTkFMRUQgKGUpKQorCXByaW50ZiAoImRpZWQgZnJv bSBzaWduYWwgJXNcbiIsIHN0cnNpZ25hbCAoV1RFUk1TSUcgKGUpKSk7CisgICAgICBlbHNlCisJ cHV0cyAoImRpZCBub3QgdGVybWluYXRlIGNvcnJlY3RseSIpOworICAgICAgcmV0dXJuIDE7Cisg ICAgfQorICBpZiAoV0VYSVRTVEFUVVMgKGUpICE9IDApCisgICAgeworICAgICAgcHJpbnRmICgi ZXhpdCBjb2RlICVkXG4iLCBXRVhJVFNUQVRVUyAoZSkpOworICAgICAgcmV0dXJuIDE7CisgICAg fQorCisgIGlmIChzaS5zaV9pbnQgIT0gKGludCkgcCkKKyAgICB7CisgICAgICBwcmludGYgKCJl eHBlY3RlZCBQSUQgJWQsIGdvdCBzaV9pbnQgJWRcbiIsIChpbnQpIHAsIHNpLnNpX2ludCk7Cisg ICAgICBraWxsIChwLCBTSUdLSUxMKTsKKyAgICAgIHJldHVybiAxOworICAgIH0KKworICBpZiAo c2kuc2lfcGlkICE9IHApCisgICAgeworICAgICAgcHJpbnRmICgiZXhwZWN0ZWQgUElEICVkLCBn b3Qgc2lfcGlkICVkXG4iLCAoaW50KSBwLCAoaW50KSBzaS5zaV9waWQpOworICAgICAga2lsbCAo cCwgU0lHS0lMTCk7CisgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgaWYgKGdldHBpZCAoKSAh PSBteXBpZCkKKyAgICB7CisgICAgICBwdXRzICgibXkgUElEIGNoYW5nZWQiKTsKKyAgICAgIHJl dHVybiAxOworICAgIH0KKworICByZXR1cm4gMDsKK30KKworI2luY2x1ZGUgPHN1cHBvcnQvdGVz dC1kcml2ZXIuYz4KZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1taXNh bGlnbi1jbG9uZS1pbnRlcm5hbC5jIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LW1pc2Fs aWduLWNsb25lLWludGVybmFsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uNWUzNDE2MDIzOAotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L3RzdC1taXNhbGlnbi1jbG9uZS1pbnRlcm5hbC5jCkBAIC0wLDAgKzEsNzQgQEAKKy8qIFZlcmlm eSB0aGF0IF9fY2xvbmVfaW50ZXJuYWwgcHJvcGVybHkgYWxpZ25zIHRoZSBjaGlsZCBzdGFjay4K KyAgIENvcHlyaWdodCAoQykgMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAg IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMg TGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGli cmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAq LworCisjaW5jbHVkZSA8c2NoZWQuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8 c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNs dWRlIDxzeXMvd2FpdC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGxpYmMtcG9p bnRlci1hcml0aC5oPgorI2luY2x1ZGUgPHRzdC1zdGFjay1hbGlnbi5oPgorI2luY2x1ZGUgPGNs b25lX2ludGVybmFsLmg+CisjaW5jbHVkZSA8c3VwcG9ydC94dW5pc3RkLmg+CisjaW5jbHVkZSA8 c3VwcG9ydC9jaGVjay5oPgorCitzdGF0aWMgaW50CitjaGVja19zdGFja19hbGlnbm1lbnQgKHZv aWQgKmFyZykKK3sKKyAgcHV0cyAoImluIGYiKTsKKworICByZXR1cm4gVEVTVF9TVEFDS19BTElH TiAoKSA/IDEgOiAwOworfQorCitzdGF0aWMgaW50Citkb190ZXN0ICh2b2lkKQoreworICBwdXRz ICgiaW4gZG9fdGVzdCIpOworCisgIGlmIChURVNUX1NUQUNLX0FMSUdOICgpKQorICAgIEZBSUxf RVhJVDEgKCJzdGFjayBpc24ndCBhbGlnbmVkXG4iKTsKKworI2lmZGVmIF9faWE2NF9fCisjIGRl ZmluZSBTVEFDS19TSVpFICgyNTYgKiAxMDI0KQorI2Vsc2UKKyMgZGVmaW5lIFNUQUNLX1NJWkUg KDEyOCAqIDEwMjQpCisjZW5kaWYKKyAgY2hhciBzdFtTVEFDS19TSVpFICsgMV07CisgIC8qIE5C OiBBbGlnbiBjaGlsZCBzdGFjayB0byAxIGJ5dGUuICAqLworICBjaGFyICpzdGFjayA9IFBUUl9B TElHTl9VUCAoJnN0WzBdLCAyKSArIDE7CisgIHN0cnVjdCBjbG9uZV9hcmdzIGNsb25lX2FyZ3Mg PQorICAgIHsKKyAgICAgIC5zdGFjayA9ICh1aW50cHRyX3QpIHN0YWNrLAorICAgICAgLnN0YWNr X3NpemUgPSBTVEFDS19TSVpFLAorICAgIH07CisgIHBpZF90IHAgPSBfX2Nsb25lX2ludGVybmFs ICgmY2xvbmVfYXJncywgY2hlY2tfc3RhY2tfYWxpZ25tZW50LCAwKTsKKworICAvKiBDbG9uZSBt dXN0IG5vdCBmYWlsLiAgKi8KKyAgVEVTVF9WRVJJRllfRVhJVCAocCAhPSAtMSk7CisKKyAgaW50 IGU7CisgIHh3YWl0cGlkIChwLCAmZSwgX19XQ0xPTkUpOworICBURVNUX1ZFUklGWSAoV0lGRVhJ VEVEIChlKSk7CisgIFRFU1RfQ09NUEFSRSAoV0VYSVRTVEFUVVMgKGUpLCAwKTsKKworICByZXR1 cm4gMDsKK30KKworI2luY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4KLS0gCjIuMzEuMQoK --000000000000ce572905c71564fd--