From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd42.google.com (mail-io1-xd42.google.com [IPv6:2607:f8b0:4864:20::d42]) by sourceware.org (Postfix) with ESMTPS id B40293850403 for ; Tue, 14 Jul 2020 11:43:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B40293850403 Received: by mail-io1-xd42.google.com with SMTP id p205so8361614iod.8 for ; Tue, 14 Jul 2020 04:43:24 -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=ezbnVgejgHV4CR+coUmisxUn18AUEIxrY3Oa04qiV7A=; b=iBadZXlxihVXKqnhr3zQuiIrVkf8zAdXfKHUMD+qy964tuTBAEwIqACPVbYGMpRa/A VQ6cwHSzE3devkQJCfY1TFJFRgoA1zOZh4s6EQQ8vyzYRX+bXYFP+W2Df9AnmZHksXCq sDaS11wArseQbJfrmVa82hcXgfFQo7hYzOveTgdF9mHozgSs3NMtiZz5T5h8JrjuZ+Tk bPOm7Cc65lgQ1xkgfijfocc6SNE54rmXwDUX6F4Uz9Jlj8qByFaKEPb4EorPlQVpwNa9 5qNFvdsRfSD+coj4srhdNddtPIlKLfC+k9fRaos07L3jDg8MVKmEvR6m03Lz19dG/e60 t9Wg== X-Gm-Message-State: AOAM531pBUWX50AsAmMzCtk155GKr/XjcbiGx5E90xk8iY+a2ifTwRUz PevGemKYhwWpt6jygaSmamWIm/LSGxvPTzINBfo= X-Google-Smtp-Source: ABdhPJwy6eYppoNkyqgR455rS39s29By1Pk0ulmEbPa2axagqK1q0oJtKjBzzmXVIQcgNLYZTwCNPrQZZwQFAe19IKU= X-Received: by 2002:a02:cd91:: with SMTP id l17mr5272543jap.88.1594727004138; Tue, 14 Jul 2020 04:43:24 -0700 (PDT) MIME-Version: 1.0 References: <20200421174456.28663-1-lamm@linux.ibm.com> <20200612152817.1347220-1-lamm@linux.ibm.com> <875zavezq6.fsf@linux.ibm.com> <87ft9u9wir.fsf@oldenburg2.str.redhat.com> In-Reply-To: <87ft9u9wir.fsf@oldenburg2.str.redhat.com> From: "H.J. Lu" Date: Tue, 14 Jul 2020 04:42:48 -0700 Message-ID: Subject: Re: [PATCH] Correct timespec implementation [BZ #26232] To: Florian Weimer Cc: "H.J. Lu via Libc-alpha" , Tulio Magno Quites Machado Filho Content-Type: multipart/mixed; boundary="00000000000098956c05aa655018" X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Tue, 14 Jul 2020 11:43:26 -0000 --00000000000098956c05aa655018 Content-Type: text/plain; charset="UTF-8" On Tue, Jul 14, 2020 at 4:16 AM Florian Weimer wrote: > > * H. J. Lu via Libc-alpha: > > > -/* Convert TIME to nanoseconds stored in a long. > > - Returns long maximum or minimum if the conversion overflows > > +/* Convert TIME to nanoseconds stored in a time_t. > > + Returns time_t maximum or minimum if the conversion overflows > > or underflows, respectively. */ > > -long > > +time_t > > support_timespec_ns (struct timespec time) > > { > > Why not use long long int as the type? > Using time_t has the least impact since most of the targets have time_t == long. I am checking in this patch and will post a followup patch with long long. -- H.J. --00000000000098956c05aa655018 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Correct-timespec-implementation-BZ-26232.patch" Content-Disposition: attachment; filename="0001-Correct-timespec-implementation-BZ-26232.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kclv9dl80 RnJvbSA2N2ZmMjRjZTViOWIyOTQwODk3NzY1NjNkNjU2ZWU3Njc4YzZkMDc2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IE1vbiwgMTMgSnVsIDIwMjAgMTY6MTU6NTYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBDb3JyZWN0 IHRpbWVzcGVjIGltcGxlbWVudGF0aW9uIFtCWiAjMjYyMzJdCgpjb21taXQgMDRkZWVhYTllYTc0 YjA2NzlkZmM5ZDkxNTVhMzdiNjQyNWYxOWE5ZgpBdXRob3I6IEx1Y2FzIEEuIE0uIE1hZ2FsaGFl cyA8bGFtbUBsaW51eC5pYm0uY29tPgpEYXRlOiAgIEZyaSBKdWwgMTAgMTk6NDE6MDYgMjAyMCAt MDMwMAoKICAgIEZpeCB0aW1lL3RzdC1jcHVjbG9jazEgaW50ZXJtaXRlbnQgZmFpbHVyZXMKCmhh cyAyIGlzc3VlczoKCjEuIEl0IGFzc3VtZXMgdGltZV90ID09IGxvbmcgd2hpY2ggaXMgZmFsc2Ug b24geDMyLgoyLiB0c3QtdGltZXNwZWMuYyBpcyBjb21waWxlZCB3aXRob3V0IC1mZXhjZXNzLXBy ZWNpc2lvbj1zdGFuZGFyZCB3aGljaApnZW5lcmF0ZXMgaW5jb3JyZWN0IHJlc3VsdHMgb24gaTY4 NiBpbiBzdXBwb3J0X3RpbWVzcGVjX2NoZWNrX2luX3JhbmdlOgoKICBkb3VibGUgcmF0aW8gPSAo ZG91YmxlKW9ic2VydmVkX25vcm0gLyBleHBlY3RlZF9ub3JtOwogIHJldHVybiAobG93ZXJfYm91 bmQgPD0gcmF0aW8gJiYgcmF0aW8gPD0gdXBwZXJfYm91bmQpOwoKVGhpcyBwYXRjaCBkb2VzCgox LiBDb21waWxlIHRzdC10aW1lc3BlYy5jIHdpdGggLWZleGNlc3MtcHJlY2lzaW9uPXN0YW5kYXJk LgoyLiBSZXBsYWNlIGxvbmcgd2l0aCB0aW1lX3QuCjMuIFJlcGxhY2UgTE9OR19NSU4gYW5kIExP TkdfTUFYIHdpdGggVFlQRV9NSU5JTVVNICh0aW1lX3QpIGFuZApUWVBFX01BWElNVU0gKHRpbWVf dCkuCi0tLQogc3VwcG9ydC9NYWtlZmlsZSAgICAgICB8ICA3ICsrKwogc3VwcG9ydC90aW1lc3Bl Yy5jICAgICB8IDE4ICsrKy0tLS0tCiBzdXBwb3J0L3RpbWVzcGVjLmggICAgIHwgIDIgKy0KIHN1 cHBvcnQvdHN0LXRpbWVzcGVjLmMgfCA5OCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3VwcG9ydC9NYWtlZmlsZSBiL3N1cHBvcnQvTWFrZWZpbGUK aW5kZXggZTc0ZTBkZDUxOS4uOTNmYWFmZGRmOSAxMDA2NDQKLS0tIGEvc3VwcG9ydC9NYWtlZmls ZQorKysgYi9zdXBwb3J0L01ha2VmaWxlCkBAIC0xOTYsNiArMTk2LDEzIEBAIENGTEFHUy1zdXBw b3J0X3BhdGhzLmMgPSBcCiAJCS1EUk9PVFNCSU5ESVJfUEFUSD1cIiQocm9vdHNiaW5kaXIpXCIg XAogCQktRENPTVBMT0NBTEVESVJfUEFUSD1cIiQoY29tcGxvY2FsZWRpcilcIgogCisjIEluIHN1 cHBvcnRfdGltZXNwZWNfY2hlY2tfaW5fcmFuZ2Ugd2UgbWF5IGJlIHBhc3NlZCBhIHZlcnkgdGln aHQKKyMgcmFuZ2UgZm9yIHdoaWNoIHdlIHNob3VsZCBwcm9kdWNlIGEgY29ycmVjdCByZXN1bHQg Zm9yIGV4cGVjdGVkCisjIGJlaW5nIHdpdGhpbmcgdGhlIG9ic2VydmVkIHJhbmdlLiAgVGhlIGNv ZGUgdXNlcyBkb3VibGUgaW50ZXJuYWxseQorIyBpbiBzdXBwb3J0X3RpbWVzcGVjX2NoZWNrX2lu X3JhbmdlIGFuZCBmb3IgdGhhdCBjb21wdXRhdGlvbiB3ZSB1c2UKKyMgLWZleGNlc3MtcHJlY2lz aW9uPXN0YW5kYXJkLgorQ0ZMQUdTLXRpbWVzcGVjLmMgKz0gLWZleGNlc3MtcHJlY2lzaW9uPXN0 YW5kYXJkCisKIGlmZXEgKCwkKENYWCkpCiBMSU5LU19EU09fUFJPR1JBTSA9IGxpbmtzLWRzby1w cm9ncmFtLWMKIGVsc2UKZGlmZiAtLWdpdCBhL3N1cHBvcnQvdGltZXNwZWMuYyBiL3N1cHBvcnQv dGltZXNwZWMuYwppbmRleCA5ZjU0NDllNDllLi5lZGJkYjE2NWVjIDEwMDY0NAotLS0gYS9zdXBw b3J0L3RpbWVzcGVjLmMKKysrIGIvc3VwcG9ydC90aW1lc3BlYy5jCkBAIC02MCwyMSArNjAsMTcg QEAgdGVzdF90aW1lc3BlY19lcXVhbF9vcl9hZnRlcl9pbXBsIChjb25zdCBjaGFyICpmaWxlLCBp bnQgbGluZSwKICAgfQogfQogCi0vKiBDb252ZXJ0IFRJTUUgdG8gbmFub3NlY29uZHMgc3RvcmVk IGluIGEgbG9uZy4KLSAgIFJldHVybnMgbG9uZyBtYXhpbXVtIG9yIG1pbmltdW0gaWYgdGhlIGNv bnZlcnNpb24gb3ZlcmZsb3dzCisvKiBDb252ZXJ0IFRJTUUgdG8gbmFub3NlY29uZHMgc3RvcmVk IGluIGEgdGltZV90LgorICAgUmV0dXJucyB0aW1lX3QgbWF4aW11bSBvciBtaW5pbXVtIGlmIHRo ZSBjb252ZXJzaW9uIG92ZXJmbG93cwogICAgb3IgdW5kZXJmbG93cywgcmVzcGVjdGl2ZWx5LiAg Ki8KLWxvbmcKK3RpbWVfdAogc3VwcG9ydF90aW1lc3BlY19ucyAoc3RydWN0IHRpbWVzcGVjIHRp bWUpCiB7Ci0gIGxvbmcgdGltZV9uczsKKyAgdGltZV90IHRpbWVfbnM7CiAgIGlmIChJTlRfTVVM VElQTFlfV1JBUFYodGltZS50dl9zZWMsIFRJTUVTUEVDX0haLCAmdGltZV9ucykpCi0gICB7Ci0g ICAgICByZXR1cm4gKHRpbWUudHZfc2VjIDwgMCkgPyBUWVBFX01JTklNVU0obG9uZyk6IFRZUEVf TUFYSU1VTShsb25nKTsKLSAgIH0KKyAgICByZXR1cm4gdGltZS50dl9zZWMgPCAwID8gVFlQRV9N SU5JTVVNKHRpbWVfdCkgOiBUWVBFX01BWElNVU0odGltZV90KTsKICAgaWYgKElOVF9BRERfV1JB UFYodGltZV9ucywgdGltZS50dl9uc2VjLCAmdGltZV9ucykpCi0gICB7Ci0gICAgICByZXR1cm4g KHRpbWUudHZfbnNlYyA8IDApID8gVFlQRV9NSU5JTVVNKGxvbmcpOiBUWVBFX01BWElNVU0obG9u Zyk7Ci0gICB9CisgICAgcmV0dXJuIHRpbWUudHZfbnNlYyA8IDAgPyBUWVBFX01JTklNVU0odGlt ZV90KSA6IFRZUEVfTUFYSU1VTSh0aW1lX3QpOwogICByZXR1cm4gdGltZV9uczsKIH0KIApAQCAt MTEzLDcgKzEwOSw3IEBAIHN1cHBvcnRfdGltZXNwZWNfY2hlY2tfaW5fcmFuZ2UgKHN0cnVjdCB0 aW1lc3BlYyBleHBlY3RlZCwgc3RydWN0IHRpbWVzcGVjIG9ic2VyCiAJCQkgICAgICBkb3VibGUg bG93ZXJfYm91bmQsIGRvdWJsZSB1cHBlcl9ib3VuZCkKIHsKICAgYXNzZXJ0ICh1cHBlcl9ib3Vu ZCA+PSBsb3dlcl9ib3VuZCk7Ci0gIGxvbmcgZXhwZWN0ZWRfbm9ybSwgb2JzZXJ2ZWRfbm9ybTsK KyAgdGltZV90IGV4cGVjdGVkX25vcm0sIG9ic2VydmVkX25vcm07CiAgIGV4cGVjdGVkX25vcm0g PSBzdXBwb3J0X3RpbWVzcGVjX25zIChleHBlY3RlZCk7CiAgIC8qIERvbid0IGRpdmlkZSBieSB6 ZXJvICAqLwogICBhc3NlcnQoZXhwZWN0ZWRfbm9ybSAhPSAwKTsKZGlmZiAtLWdpdCBhL3N1cHBv cnQvdGltZXNwZWMuaCBiL3N1cHBvcnQvdGltZXNwZWMuaAppbmRleCBmZDU0NjY3NDVkLi4xYTY3 NzVhODgyIDEwMDY0NAotLS0gYS9zdXBwb3J0L3RpbWVzcGVjLmgKKysrIGIvc3VwcG9ydC90aW1l c3BlYy5oCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgdGVzdF90aW1lc3BlY19lcXVhbF9vcl9hZnRl cl9pbXBsIChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgbGVmdCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgcmln aHQpOwogCi1sb25nIHN1cHBvcnRfdGltZXNwZWNfbnMgKHN0cnVjdCB0aW1lc3BlYyB0aW1lKTsK K3RpbWVfdCBzdXBwb3J0X3RpbWVzcGVjX25zIChzdHJ1Y3QgdGltZXNwZWMgdGltZSk7CiAKIHN0 cnVjdCB0aW1lc3BlYyBzdXBwb3J0X3RpbWVzcGVjX25vcm1hbGl6ZSAoc3RydWN0IHRpbWVzcGVj IHRpbWUpOwogCmRpZmYgLS1naXQgYS9zdXBwb3J0L3RzdC10aW1lc3BlYy5jIGIvc3VwcG9ydC90 c3QtdGltZXNwZWMuYwppbmRleCA3MTQyMzU1NWE5Li5hYzVlZDIyOGJhIDEwMDY0NAotLS0gYS9z dXBwb3J0L3RzdC10aW1lc3BlYy5jCisrKyBiL3N1cHBvcnQvdHN0LXRpbWVzcGVjLmMKQEAgLTE5 LDEzICsxOSwxNCBAQAogI2luY2x1ZGUgPHN1cHBvcnQvdGltZXNwZWMuaD4KICNpbmNsdWRlIDxz dXBwb3J0L2NoZWNrLmg+CiAjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8aW50cHJvcHMu aD4KIAogI2RlZmluZSBUSU1FU1BFQ19IWiAxMDAwMDAwMDAwCiAKIHN0cnVjdCB0aW1lc3BlY19u c190ZXN0X2Nhc2UKIHsKICAgc3RydWN0IHRpbWVzcGVjIHRpbWU7Ci0gIGxvbmcgdGltZV9uczsK KyAgdGltZV90IHRpbWVfbnM7CiB9OwogCiBzdHJ1Y3QgdGltZXNwZWNfbm9ybV90ZXN0X2Nhc2UK QEAgLTQzLDYgKzQ0LDkgQEAgc3RydWN0IHRpbWVzcGVjX3Rlc3RfY2FzZQogICBpbnQgcmVzdWx0 OwogfTsKIAorI2RlZmluZSBUSU1FX1RfTUlOIFRZUEVfTUlOSU1VTSAodGltZV90KQorI2RlZmlu ZSBUSU1FX1RfTUFYIFRZUEVfTUFYSU1VTSAodGltZV90KQorCiAvKiBUZXN0IGNhc2VzIGZvciB0 aW1lc3BlY19ucyAqLwogc3RydWN0IHRpbWVzcGVjX25zX3Rlc3RfY2FzZSBuc19jYXNlc1tdID0g ewogICB7LnRpbWUgPSB7LnR2X3NlYyA9IDAsIC50dl9uc2VjID0gMH0sCkBAIC03MywzNiArNzcs NDIgQEAgc3RydWN0IHRpbWVzcGVjX25zX3Rlc3RfY2FzZSBuc19jYXNlc1tdID0gewogICAgLnRp bWVfbnMgPSAtVElNRVNQRUNfSFogKyAxLAogICB9LAogICAvKiBPdmVyZmxvdyBib25kYXJ5IGJ5 IDIgICovCi0gIHsudGltZSA9IHsudHZfc2VjID0gTE9OR19NQVggLyBUSU1FU1BFQ19IWiwgLnR2 X25zZWMgPSBMT05HX01BWCVUSU1FU1BFQ19IWiAtIDF9LAotICAgLnRpbWVfbnMgPSBMT05HX01B WCAtIDEsCisgIHsudGltZSA9IHsudHZfc2VjID0gVElNRV9UX01BWCAvIFRJTUVTUEVDX0haLAor CSAgICAudHZfbnNlYyA9IFRJTUVfVF9NQVggJSBUSU1FU1BFQ19IWiAtIDF9LAorICAgLnRpbWVf bnMgPSBUSU1FX1RfTUFYIC0gMSwKICAgfSwKICAgLyogT3ZlcmZsb3cgYm9uZGFyeSAgKi8KLSAg ey50aW1lID0gey50dl9zZWMgPSBMT05HX01BWCAvIFRJTUVTUEVDX0haLCAudHZfbnNlYyA9IExP TkdfTUFYJVRJTUVTUEVDX0hafSwKLSAgIC50aW1lX25zID0gTE9OR19NQVgsCisgIHsudGltZSA9 IHsudHZfc2VjID0gVElNRV9UX01BWCAvIFRJTUVTUEVDX0haLAorCSAgICAudHZfbnNlYyA9IFRJ TUVfVF9NQVggJSBUSU1FU1BFQ19IWn0sCisgICAudGltZV9ucyA9IFRJTUVfVF9NQVgsCiAgIH0s CiAgIC8qIFVuZGVyZmxvdyBib25kYXJ5IGJ5IDEgICovCi0gIHsudGltZSA9IHsudHZfc2VjID0g TE9OR19NSU4gLyBUSU1FU1BFQ19IWiwgLnR2X25zZWMgPSBMT05HX01JTiVUSU1FU1BFQ19IWiAr IDF9LAotICAgLnRpbWVfbnMgPSBMT05HX01JTiArIDEsCisgIHsudGltZSA9IHsudHZfc2VjID0g VElNRV9UX01JTiAvIFRJTUVTUEVDX0haLAorCSAgICAudHZfbnNlYyA9IFRJTUVfVF9NSU4gJSBU SU1FU1BFQ19IWiArIDF9LAorICAgLnRpbWVfbnMgPSBUSU1FX1RfTUlOICsgMSwKICAgfSwKICAg LyogVW5kZXJmbG93IGJvbmRhcnkgICovCi0gIHsudGltZSA9IHsudHZfc2VjID0gTE9OR19NSU4g LyBUSU1FU1BFQ19IWiwgLnR2X25zZWMgPSBMT05HX01JTiVUSU1FU1BFQ19IWn0sCi0gICAudGlt ZV9ucyA9IExPTkdfTUlOLAorICB7LnRpbWUgPSB7LnR2X3NlYyA9IFRJTUVfVF9NSU4gLyBUSU1F U1BFQ19IWiwKKwkgICAgLnR2X25zZWMgPSBUSU1FX1RfTUlOICUgVElNRVNQRUNfSFp9LAorICAg LnRpbWVfbnMgPSBUSU1FX1RfTUlOLAogICB9LAogICAvKiBNdWx0aXBsaWNhdGlvbiBvdmVyZmxv dyAgKi8KLSAgey50aW1lID0gey50dl9zZWMgPSBMT05HX01BWCAvIFRJTUVTUEVDX0haICsgMSwg LnR2X25zZWMgPSAxfSwKLSAgIC50aW1lX25zID0gTE9OR19NQVgsCisgIHsudGltZSA9IHsudHZf c2VjID0gVElNRV9UX01BWCAvIFRJTUVTUEVDX0haICsgMSwgLnR2X25zZWMgPSAxfSwKKyAgIC50 aW1lX25zID0gVElNRV9UX01BWCwKICAgfSwKICAgLyogTXVsdGlwbGljYXRpb24gdW5kZXJmbG93 ICAqLwotICB7LnRpbWUgPSB7LnR2X3NlYyA9IExPTkdfTUlOIC8gVElNRVNQRUNfSFogLSAxLCAu dHZfbnNlYyA9IC0xfSwKLSAgIC50aW1lX25zID0gTE9OR19NSU4sCisgIHsudGltZSA9IHsudHZf c2VjID0gVElNRV9UX01JTiAvIFRJTUVTUEVDX0haIC0gMSwgLnR2X25zZWMgPSAtMX0sCisgICAu dGltZV9ucyA9IFRJTUVfVF9NSU4sCiAgIH0sCiAgIC8qIFN1bSBvdmVyZmxvd3MgICovCi0gIHsu dGltZSA9IHsudHZfc2VjID0gTE9OR19NQVggLyBUSU1FU1BFQ19IWiwgLnR2X25zZWMgPSBMT05H X01BWCVUSU1FU1BFQ19IWiArIDF9LAotICAgLnRpbWVfbnMgPSBMT05HX01BWCwKKyAgey50aW1l ID0gey50dl9zZWMgPSBUSU1FX1RfTUFYIC8gVElNRVNQRUNfSFosCisJICAgIC50dl9uc2VjID0g VElNRV9UX01BWCAlIFRJTUVTUEVDX0haICsgMX0sCisgICAudGltZV9ucyA9IFRJTUVfVF9NQVgs CiAgIH0sCiAgIC8qIFN1bSB1bmRlcmZsb3cgICovCi0gIHsudGltZSA9IHsudHZfc2VjID0gTE9O R19NSU4gLyBUSU1FU1BFQ19IWiwgLnR2X25zZWMgPSBMT05HX01JTiVUSU1FU1BFQ19IWiAtIDF9 LAotICAgLnRpbWVfbnMgPSBMT05HX01JTiwKKyAgey50aW1lID0gey50dl9zZWMgPSBUSU1FX1Rf TUlOIC8gVElNRVNQRUNfSFosCisJICAgIC50dl9uc2VjID0gVElNRV9UX01JTiAlIFRJTUVTUEVD X0haIC0gMX0sCisgICAudGltZV9ucyA9IFRJTUVfVF9NSU4sCiAgIH0KIH07CiAKQEAgLTE0NCwy OCArMTU0LDI4IEBAIHN0cnVjdCB0aW1lc3BlY19ub3JtX3Rlc3RfY2FzZSBub3JtX2Nhc2VzW10g PSB7CiAgICAubm9ybSA9IHsudHZfc2VjID0gLTIsIC50dl9uc2VjID0gLTF9CiAgIH0sCiAgIC8q IE92ZXJmbG93IGJvbmRhcnkgYnkgMiAgKi8KLSAgey50aW1lID0gey50dl9zZWMgPSBMT05HX01B WCAtIDIsIC50dl9uc2VjID0gVElNRVNQRUNfSFogKyAxfSwKLSAgIC5ub3JtID0gey50dl9zZWMg PSBMT05HX01BWCAtIDEsIDF9LAorICB7LnRpbWUgPSB7LnR2X3NlYyA9IFRJTUVfVF9NQVggLSAy LCAudHZfbnNlYyA9IFRJTUVTUEVDX0haICsgMX0sCisgICAubm9ybSA9IHsudHZfc2VjID0gVElN RV9UX01BWCAtIDEsIDF9LAogICB9LAogICAvKiBPdmVyZmxvdyBib25kYXJ5IGJ5IDEgICovCi0g IHsudGltZSA9IHsudHZfc2VjID0gTE9OR19NQVggLSAxLCAudHZfbnNlYyA9IFRJTUVTUEVDX0ha ICsgMX0sCi0gICAubm9ybSA9IHsudHZfc2VjID0gTE9OR19NQVgsIC50dl9uc2VjID0gMX0sCisg IHsudGltZSA9IHsudHZfc2VjID0gVElNRV9UX01BWCAtIDEsIC50dl9uc2VjID0gVElNRVNQRUNf SFogKyAxfSwKKyAgIC5ub3JtID0gey50dl9zZWMgPSBUSU1FX1RfTUFYLCAudHZfbnNlYyA9IDF9 LAogICB9LAogICAvKiBVbmRlcmZsb3cgYm9uZGFyeSBieSAyICAqLwotICB7LnRpbWUgPSB7LnR2 X3NlYyA9IExPTkdfTUlOICsgMiwgLnR2X25zZWMgPSAtVElNRVNQRUNfSFogLSAxfSwKLSAgIC5u b3JtID0gey50dl9zZWMgPSBMT05HX01JTiArIDEsIC0xfSwKKyAgey50aW1lID0gey50dl9zZWMg PSBUSU1FX1RfTUlOICsgMiwgLnR2X25zZWMgPSAtVElNRVNQRUNfSFogLSAxfSwKKyAgIC5ub3Jt ID0gey50dl9zZWMgPSBUSU1FX1RfTUlOICsgMSwgLTF9LAogICB9LAogICAvKiBVbmRlcmZsb3cg Ym9uZGFyeSBieSAxICAqLwotICB7LnRpbWUgPSB7LnR2X3NlYyA9IExPTkdfTUlOICsgMSwgLnR2 X25zZWMgPSAtVElNRVNQRUNfSFogLSAxfSwKLSAgIC5ub3JtID0gey50dl9zZWMgPSBMT05HX01J TiwgLnR2X25zZWMgPSAtMX0sCisgIHsudGltZSA9IHsudHZfc2VjID0gVElNRV9UX01JTiArIDEs IC50dl9uc2VjID0gLVRJTUVTUEVDX0haIC0gMX0sCisgICAubm9ybSA9IHsudHZfc2VjID0gVElN RV9UX01JTiwgLnR2X25zZWMgPSAtMX0sCiAgIH0sCiAgIC8qIFNVTSBvdmVyZmxvdyAgKi8KLSAg ey50aW1lID0gey50dl9zZWMgPSBMT05HX01BWCwgLnR2X25zZWMgPSBUSU1FU1BFQ19IWn0sCi0g ICAubm9ybSA9IHsudHZfc2VjID0gTE9OR19NQVgsIC50dl9uc2VjID0gVElNRVNQRUNfSFogLSAx fSwKKyAgey50aW1lID0gey50dl9zZWMgPSBUSU1FX1RfTUFYLCAudHZfbnNlYyA9IFRJTUVTUEVD X0hafSwKKyAgIC5ub3JtID0gey50dl9zZWMgPSBUSU1FX1RfTUFYLCAudHZfbnNlYyA9IFRJTUVT UEVDX0haIC0gMX0sCiAgIH0sCiAgIC8qIFNVTSB1bmRlcmZsb3cgICovCi0gIHsudGltZSA9IHsu dHZfc2VjID0gTE9OR19NSU4sIC50dl9uc2VjID0gLVRJTUVTUEVDX0hafSwKLSAgIC5ub3JtID0g ey50dl9zZWMgPSBMT05HX01JTiwgLnR2X25zZWMgPSAtMSAqIChUSU1FU1BFQ19IWiAtIDEpfSwK KyAgey50aW1lID0gey50dl9zZWMgPSBUSU1FX1RfTUlOLCAudHZfbnNlYyA9IC1USU1FU1BFQ19I Wn0sCisgICAubm9ybSA9IHsudHZfc2VjID0gVElNRV9UX01JTiwgLnR2X25zZWMgPSAtMSAqIChU SU1FU1BFQ19IWiAtIDEpfSwKICAgfQogfTsKIApAQCAtMjQzLDM5ICsyNTMsNDEgQEAgc3RydWN0 IHRpbWVzcGVjX3Rlc3RfY2FzZSBjaGVja19jYXNlc1tdID0gewogICB9LAogICAvKiBNYXhpbXVt L01pbmltdW0gbG9uZyB2YWx1ZXMgICovCiAgIC8qIDE0ICAqLwotICB7LmV4cGVjdGVkID0gey50 dl9zZWMgPSBMT05HX01BWCwgLnR2X25zZWMgPSBUSU1FU1BFQ19IWiAtIDF9LAotICAgLm9ic2Vy dmVkID0gey50dl9zZWMgPSBMT05HX01BWCwgLnR2X25zZWMgPSBUSU1FU1BFQ19IWiAtIDJ9LAor ICB7LmV4cGVjdGVkID0gey50dl9zZWMgPSBUSU1FX1RfTUFYLCAudHZfbnNlYyA9IFRJTUVTUEVD X0haIC0gMX0sCisgICAub2JzZXJ2ZWQgPSB7LnR2X3NlYyA9IFRJTUVfVF9NQVgsIC50dl9uc2Vj ID0gVElNRVNQRUNfSFogLSAyfSwKICAgIC51cHBlcl9ib3VuZCA9IDEsIC5sb3dlcl9ib3VuZCA9 IC45LCAucmVzdWx0ID0gMSwKICAgfSwKICAgLyogMTUgLSBzdXBwb3J0X3RpbWVzcGVjX25zIG92 ZXJmbG93ICAqLwotICB7LmV4cGVjdGVkID0gey50dl9zZWMgPSBMT05HX01BWCwgLnR2X25zZWMg PSBUSU1FU1BFQ19IWn0sCi0gICAub2JzZXJ2ZWQgPSB7LnR2X3NlYyA9IExPTkdfTUFYLCAudHZf bnNlYyA9IFRJTUVTUEVDX0hafSwKKyAgey5leHBlY3RlZCA9IHsudHZfc2VjID0gVElNRV9UX01B WCwgLnR2X25zZWMgPSBUSU1FU1BFQ19IWn0sCisgICAub2JzZXJ2ZWQgPSB7LnR2X3NlYyA9IFRJ TUVfVF9NQVgsIC50dl9uc2VjID0gVElNRVNQRUNfSFp9LAogICAgLnVwcGVyX2JvdW5kID0gMSwg Lmxvd2VyX2JvdW5kID0gMSwgLnJlc3VsdCA9IDEsCiAgIH0sCiAgIC8qIDE2IC0gc3VwcG9ydF90 aW1lc3BlY19ucyBvdmVyZmxvdyArIHVuZGVyZmxvdyAgKi8KLSAgey5leHBlY3RlZCA9IHsudHZf c2VjID0gTE9OR19NQVgsIC50dl9uc2VjID0gVElNRVNQRUNfSFp9LAotICAgLm9ic2VydmVkID0g ey50dl9zZWMgPSBMT05HX01JTiwgLnR2X25zZWMgPSAtVElNRVNQRUNfSFp9LAorICB7LmV4cGVj dGVkID0gey50dl9zZWMgPSBUSU1FX1RfTUFYLCAudHZfbnNlYyA9IFRJTUVTUEVDX0hafSwKKyAg IC5vYnNlcnZlZCA9IHsudHZfc2VjID0gVElNRV9UX01JTiwgLnR2X25zZWMgPSAtVElNRVNQRUNf SFp9LAogICAgLnVwcGVyX2JvdW5kID0gMSwgLmxvd2VyX2JvdW5kID0gMSwgLnJlc3VsdCA9IDAs CiAgIH0sCiAgIC8qIDE3IC0gc3VwcG9ydF90aW1lc3BlY19ucyB1bmRlcmZsb3cgICovCi0gIHsu ZXhwZWN0ZWQgPSB7LnR2X3NlYyA9IExPTkdfTUlOLCAudHZfbnNlYyA9IC1USU1FU1BFQ19IWn0s Ci0gICAub2JzZXJ2ZWQgPSB7LnR2X3NlYyA9IExPTkdfTUlOLCAudHZfbnNlYyA9IC1USU1FU1BF Q19IWn0sCisgIHsuZXhwZWN0ZWQgPSB7LnR2X3NlYyA9IFRJTUVfVF9NSU4sIC50dl9uc2VjID0g LVRJTUVTUEVDX0hafSwKKyAgIC5vYnNlcnZlZCA9IHsudHZfc2VjID0gVElNRV9UX01JTiwgLnR2 X25zZWMgPSAtVElNRVNQRUNfSFp9LAogICAgLnVwcGVyX2JvdW5kID0gMSwgLmxvd2VyX2JvdW5k ID0gMSwgLnJlc3VsdCA9IDEsCiAgIH0sCiAgIC8qIDE4IC0gc3VwcG9ydF90aW1lc3BlY19ucyB1 bmRlcmZsb3cgKyBvdmVyZmxvdyAgKi8KLSAgey5leHBlY3RlZCA9IHsudHZfc2VjID0gTE9OR19N SU4sIC50dl9uc2VjID0gLVRJTUVTUEVDX0hafSwKLSAgIC5vYnNlcnZlZCA9IHsudHZfc2VjID0g TE9OR19NQVgsIC50dl9uc2VjID0gVElNRVNQRUNfSFp9LAorICB7LmV4cGVjdGVkID0gey50dl9z ZWMgPSBUSU1FX1RfTUlOLCAudHZfbnNlYyA9IC1USU1FU1BFQ19IWn0sCisgICAub2JzZXJ2ZWQg PSB7LnR2X3NlYyA9IFRJTUVfVF9NQVgsIC50dl9uc2VjID0gVElNRVNQRUNfSFp9LAogICAgLnVw cGVyX2JvdW5kID0gMSwgLmxvd2VyX2JvdW5kID0gMSwgLnJlc3VsdCA9IDAsCiAgIH0sCiAgIC8q IDE5IC0gQmlnZ2VzdCBkaXZpc2lvbiAgKi8KLSAgey5leHBlY3RlZCA9IHsudHZfc2VjID0gTE9O R19NQVggLyBUSU1FU1BFQ19IWiAsIC50dl9uc2VjID0gVElNRVNQRUNfSFogLSAxfSwKKyAgey5l eHBlY3RlZCA9IHsudHZfc2VjID0gVElNRV9UX01BWCAvIFRJTUVTUEVDX0haLAorCQkudHZfbnNl YyA9IFRJTUVTUEVDX0haIC0gMX0sCiAgICAub2JzZXJ2ZWQgPSB7LnR2X3NlYyA9IDAsIC50dl9u c2VjID0gMX0sCiAgICAudXBwZXJfYm91bmQgPSAxLCAubG93ZXJfYm91bmQgPSAxLjA4NDIwMjE3 MjQ4NTUwNDRlLTE5LCAucmVzdWx0ID0gMSwKICAgfSwKICAgLyogMjAgLSBMb3dlc3QgZGl2aXNp b24gICovCiAgIHsuZXhwZWN0ZWQgPSB7LnR2X3NlYyA9IDAsIC50dl9uc2VjID0gMX0sCi0gICAu b2JzZXJ2ZWQgPSB7LnR2X3NlYyA9IExPTkdfTUFYIC8gVElNRVNQRUNfSFogLCAudHZfbnNlYyA9 IFRJTUVTUEVDX0haIC0gMX0sCi0gICAudXBwZXJfYm91bmQgPSBMT05HX01BWCwgLmxvd2VyX2Jv dW5kID0gMSwgLnJlc3VsdCA9IDEsCisgICAub2JzZXJ2ZWQgPSB7LnR2X3NlYyA9IFRJTUVfVF9N QVggLyBUSU1FU1BFQ19IWiwKKwkJLnR2X25zZWMgPSBUSU1FU1BFQ19IWiAtIDF9LAorICAgLnVw cGVyX2JvdW5kID0gVElNRV9UX01BWCwgLmxvd2VyX2JvdW5kID0gMSwgLnJlc3VsdCA9IDEsCiAg IH0sCiB9OwogCkBAIC0yODgsNiArMzAwLDcgQEAgZG9fdGVzdCAodm9pZCkKICAgcHJpbnRmKCJU ZXN0aW5nIHN1cHBvcnRfdGltZXNwZWNfbnNcbiIpOwogICBmb3IgKGkgPSAwOyBpIDwgbnRlc3Rz OyBpKyspCiAgICAgeworICAgICAgcHJpbnRmKCJUZXN0IGNhc2UgJWRcbiIsIGkpOwogICAgICAg VEVTVF9DT01QQVJFIChzdXBwb3J0X3RpbWVzcGVjX25zIChuc19jYXNlc1tpXS50aW1lKSwKIAkJ ICAgIG5zX2Nhc2VzW2ldLnRpbWVfbnMpOwogICAgIH0KQEAgLTI5Nyw2ICszMTAsNyBAQCBkb190 ZXN0ICh2b2lkKQogICBwcmludGYoIlRlc3Rpbmcgc3VwcG9ydF90aW1lc3BlY19ub3JtYWxpemVc biIpOwogICBmb3IgKGkgPSAwOyBpIDwgbnRlc3RzOyBpKyspCiAgICAgeworICAgICAgcHJpbnRm KCJUZXN0IGNhc2UgJWRcbiIsIGkpOwogICAgICAgcmVzdWx0ID0gc3VwcG9ydF90aW1lc3BlY19u b3JtYWxpemUgKG5vcm1fY2FzZXNbaV0udGltZSk7CiAgICAgICBURVNUX0NPTVBBUkUgKG5vcm1f Y2FzZXNbaV0ubm9ybS50dl9zZWMsIHJlc3VsdC50dl9zZWMpOwogICAgICAgVEVTVF9DT01QQVJF IChub3JtX2Nhc2VzW2ldLm5vcm0udHZfbnNlYywgcmVzdWx0LnR2X25zZWMpOwotLSAKMi4yNi4y Cgo= --00000000000098956c05aa655018--