From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from deimos.uberspace.de (deimos.uberspace.de [185.26.156.152]) by sourceware.org (Postfix) with ESMTPS id 2C6A93857C71 for ; Thu, 7 Apr 2022 15:58:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2C6A93857C71 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=jdoubleu.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=jdoubleu.de Received: (qmail 11609 invoked by uid 989); 7 Apr 2022 15:58:43 -0000 Authentication-Results: deimos.uberspace.de; auth=pass (plain) Content-Type: multipart/mixed; boundary="------------22BtOeTgWezxQz1T1o90QwbI" Message-ID: <569f6ec3-6bc8-8170-c1fb-ed946020e258@jdoubleu.de> Date: Thu, 7 Apr 2022 17:58:27 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Content-Language: de-DE To: newlib@sourceware.org From: jdoubleu Subject: [PATCH] add tests for tzset(3) X-Rspamd-Bar: ++++++ X-Rspamd-Report: BAYES_SPAM(5.1) MIME_GOOD(-0.1) MIME_BASE64_TEXT_BOGUS(1) MIME_BASE64_TEXT(0.1) X-Rspamd-Score: 6.1 Received: from unknown (HELO unkown) (::1) by deimos.uberspace.de (Haraka/2.8.28) with ESMTPSA; Thu, 07 Apr 2022 17:58:43 +0200 X-Spam-Status: No, score=-9.2 required=5.0 tests=BAYES_00, BODY_8BITS, GIT_PATCH_0, KAM_DMARC_STATUS, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Apr 2022 15:58:48 -0000 This is a multi-part message in MIME format. --------------22BtOeTgWezxQz1T1o90QwbI Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi, I've finally created tests for tzset(3). They test the POSIX timezone string compliance. This patch is intended to be applied after Brian's tzset changes have been pushed (see other discussion). You can also find the test vectors online (https://github.com/jdoubleu/newlib-posix-tzset-tests/blob/main/timezones.h) and run the tests on linux with glibc (https://github.com/jdoubleu/newlib-posix-tzset-tests/tree/main/host_test). Cheers --- 🙎🏻‍♂️ jdoubleu --------------22BtOeTgWezxQz1T1o90QwbI Content-Type: text/plain; charset=UTF-8; name="0001-add-tests-for-tzset-3.patch" Content-Disposition: attachment; filename="0001-add-tests-for-tzset-3.patch" Content-Transfer-Encoding: base64 RnJvbSA5N2ZhNGE3NjBlNjdmNGY1NTNkYmUxOGEzYTc1ZmExNGU4NTU5MTZkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBqZG91YmxldSA8aGlAamRvdWJsZXUuZGU+CkRhdGU6 IFRodSwgNyBBcHIgMjAyMiAxNzozMDowMSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGFkZCB0 ZXN0cyBmb3IgdHpzZXQoMykKCi0tLQogbmV3bGliL3Rlc3RzdWl0ZS9uZXdsaWIudGltZS90 aW1lLmV4cCB8ICAxMiArKwogbmV3bGliL3Rlc3RzdWl0ZS9uZXdsaWIudGltZS90enNldC5j ICB8IDE2MyArKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAx NzUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IG5ld2xpYi90ZXN0c3VpdGUv bmV3bGliLnRpbWUvdGltZS5leHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBuZXdsaWIvdGVzdHN1 aXRlL25ld2xpYi50aW1lL3R6c2V0LmMKCmRpZmYgLS1naXQgYS9uZXdsaWIvdGVzdHN1aXRl L25ld2xpYi50aW1lL3RpbWUuZXhwIGIvbmV3bGliL3Rlc3RzdWl0ZS9uZXdsaWIudGltZS90 aW1lLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjNmY2UyMzA2 ZQotLS0gL2Rldi9udWxsCisrKyBiL25ld2xpYi90ZXN0c3VpdGUvbmV3bGliLnRpbWUvdGlt ZS5leHAKQEAgLTAsMCArMSwxMiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjIgamRvdWJsZXUu IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBt b2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUKKyMgaXMgZnJlZWx5IGdyYW50 ZWQsIHByb3ZpZGVkIHRoYXQgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorIworCitsb2Fk X2xpYiBwYXNzZmFpbC5leHAKKworc2V0IGV4Y2x1ZGVfbGlzdCB7Cit9CisKK25ld2xpYl9w YXNzX2ZhaWxfYWxsIC14ICRleGNsdWRlX2xpc3QKZGlmZiAtLWdpdCBhL25ld2xpYi90ZXN0 c3VpdGUvbmV3bGliLnRpbWUvdHpzZXQuYyBiL25ld2xpYi90ZXN0c3VpdGUvbmV3bGliLnRp bWUvdHpzZXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjBlNWIx OTZjNgotLS0gL2Rldi9udWxsCisrKyBiL25ld2xpYi90ZXN0c3VpdGUvbmV3bGliLnRpbWUv dHpzZXQuYwpAQCAtMCwwICsxLDE2MyBAQAorLyogVGVzdCB0aGF0IHZhbGlkIFBPU0lYIHRp bWV6b25lIHN0cmluZ3MgYXJlIGNvcnJlY3RseSBwYXJzZWQgYnkgdHpzZXQoMykuICovDQor I2luY2x1ZGUgPHN0ZGlvLmg+DQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKw0KKy8vIEJFR0lO IHRlc3QgdmVjdG9ycw0KKyNpbmNsdWRlIDx0aW1lLmg+DQorI2luY2x1ZGUgPGxpbWl0cy5o Pg0KKw0KKyNkZWZpbmUgSU5fU0VDT05EUyhoLCBtLCBzKSAoKGgpICogMzYwMCArIChtKSAq IDYwICsgKHMpKQ0KKyNkZWZpbmUgTk9fVElNRSBJTlRfTUlODQorDQorc3RydWN0IHR6X3Rl c3Qgew0KKyAgICBjb25zdCBjaGFyKiB0enN0cjsNCisgICAgaW50IG9mZnNldF9zZWNvbmRz Ow0KKyAgICBpbnQgZHN0X29mZnNldF9zZWNvbmRzOw0KK307DQorDQorZXh0ZXJuIHN0cnVj dCB0bSB3aW50ZXJfdG07DQorZXh0ZXJuIHN0cnVjdCB0bSBzdW1tZXJfdG07DQorZXh0ZXJu IGNvbnN0IHRpbWVfdCB3aW50ZXJfdGltZTsNCitleHRlcm4gY29uc3QgdGltZV90IHN1bW1l cl90aW1lOw0KK2V4dGVybiBzdHJ1Y3QgdHpfdGVzdCB0ZXN0X3RpbWV6b25lc1tdOw0KKw0K Ky8vIHdpbnRlciB0aW1lIGlzIE1hcmNoLCAyMXN0IDIwMjIgYXQgODoxNXBtIGFuZCAyMCBz ZWNvbmRzDQorc3RydWN0IHRtIHdpbnRlcl90bSA9IHsNCisgICAgLnRtX3NlYyAgICAgPSAy MCwNCisgICAgLnRtX21pbiAgICAgPSAxNSwNCisgICAgLnRtX2hvdXIgICAgPSAyMCwNCisg ICAgLnRtX21kYXkgICAgPSAyMSwNCisgICAgLnRtX21vbiAgICAgPSAzIC0gMSwNCisgICAg LnRtX3llYXIgICAgPSAyMDIyIC0gMTkwMCwNCisgICAgLnRtX2lzZHN0ICAgPSAwDQorfTsN CisNCisvLyBzdW1tZXIgdGltZSBpcyBKdWx5LCAxNXRoIDIwMjIgYXQgMTA6NTBhbSBhbmQg NDAgc2Vjb25kcw0KK3N0cnVjdCB0bSBzdW1tZXJfdG0gPSB7DQorICAgIC50bV9zZWMgICAg ID0gNDAsDQorICAgIC50bV9taW4gICAgID0gNTAsDQorICAgIC50bV9ob3VyICAgID0gMTAs DQorICAgIC50bV9tZGF5ICAgID0gMTUsDQorICAgIC50bV9tb24gICAgID0gNyAtIDEsDQor ICAgIC50bV95ZWFyICAgID0gMjAyMiAtIDE5MDAsDQorICAgIC50bV9pc2RzdCAgID0gMQ0K K307DQorDQorLy8gVVRDIHVuaXggdGltZSBmb3IgdGhlIHdpbnRlciB0aW1lDQorY29uc3Qg dGltZV90IHdpbnRlcl90aW1lID0gMTY0Nzg5MzcyMDsNCitjb25zdCB0aW1lX3Qgc3VtbWVy X3RpbWUgPSAxNjU3ODgyMjQwOw0KKw0KK3N0cnVjdCB0el90ZXN0IHRlc3RfdGltZXpvbmVz W10gPSB7DQorICAgIC8qDQorICAgICAqIGNyZWF0aW5nIHRlc3QgdmVjdG9ycyBiYXNlZCBv biB0aGUgUE9TSVggc3BlYyAoaHR0cHM6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVi cy85Njk5OTE5Nzk5L2Jhc2VkZWZzL1YxX2NoYXAwOC5odG1sI3RhZ18wOF8wMykNCisgICAg ICovDQorICAgIC8vIG5vcm1hbCBzdGQgbmFtZXMNCisgICAgeyJNQVIxIiwgICAgICAgICBJ Tl9TRUNPTkRTKDEsIDAsIDApLCAgICBOT19USU1FfSwNCisgICAgeyJNQVItMSIsICAgICAg IC1JTl9TRUNPTkRTKDEsIDAsIDApLCAgICBOT19USU1FfSwNCisgICAgeyJNQVIrMiIsICAg ICAgICBJTl9TRUNPTkRTKDIsIDAsIDApLCAgICBOT19USU1FfSwNCisgICAgeyJNQVI3Iiwg ICAgICAgICBJTl9TRUNPTkRTKDcsIDAsIDApLCAgICBOT19USU1FfSwNCisgICAgeyJNQVIt NyIsICAgICAgIC1JTl9TRUNPTkRTKDcsIDAsIDApLCAgICBOT19USU1FfSwNCisgICAgeyJN QVJTNSIsICAgICAgICBJTl9TRUNPTkRTKDUsIDAsIDApLCAgICBOT19USU1FfSwNCisgICAg eyJNQVJTTTUiLCAgICAgICBJTl9TRUNPTkRTKDUsIDAsIDApLCAgICBOT19USU1FfSwNCisg ICAgeyJNQVJTTU9PTjUiLCAgICBJTl9TRUNPTkRTKDUsIDAsIDApLCAgICBOT19USU1FfSwg ICAvLyBhc3N1bWluZyBUWk5BTUVfTUFYID49IDgNCisgICAgeyJNQVJTNToyMzo0MiIsICBJ Tl9TRUNPTkRTKDUsIDIzLCA0MiksICBOT19USU1FfSwNCisgICAgeyJTVU4tNzoxNDoyNCIs IC1JTl9TRUNPTkRTKDcsIDE0LCAyNCksICBOT19USU1FfSwNCisgICAgLy8gd2l0aCBEU1QN CisgICAgeyJNQVI1U01BUiIsICAgICAgICAgICAgICAgIElOX1NFQ09ORFMoNSwgMCwgMCks IElOX1NFQ09ORFMoNCwgMCwgMCl9LCAgLy8gb25seSBEU1QgbmFtZQ0KKyAgICB7Ik1BUjVT TUFSMiIsICAgICAgICAgICAgICAgSU5fU0VDT05EUyg1LCAwLCAwKSwgSU5fU0VDT05EUygy LCAwLCAwKX0sICAvLyBEU1QgbmFtZSB3aXRoIG9mZnNldA0KKyAgICB7Ik1BUjNTTUFSLTMi LCAgICAgICAgICAgICAgSU5fU0VDT05EUygzLCAwLCAwKSwgLUlOX1NFQ09ORFMoMywgMCwg MCl9LA0KKyAgICB7Ik1BUlNXSU5URVI0TUFSU1VNTUVSIiwgICAgSU5fU0VDT05EUyg0LCAw LCAwKSwgSU5fU0VDT05EUygzLCAwLCAwKX0sDQorICAgIHsiTUFSU1dJTlRFUjRNQVJTVU1N RVIzIiwgICBJTl9TRUNPTkRTKDQsIDAsIDApLCBJTl9TRUNPTkRTKDMsIDAsIDApfSwNCisg ICAgLy8gd2l0aCBEU1QgSU5fU0VDT05EU3MNCisgICAgeyJXTUFSUzNTTUFSUyxKODAiLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOX1NFQ09ORFMoMywgMCwgMCksIElO X1NFQ09ORFMoMiwgMCwgMCl9LA0KKyAgICB7IldNQVJTM1NNQVJTLEo4MCxKMTM0IiwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSU5fU0VDT05EUygzLCAwLCAwKSwgSU5fU0VDT05E UygyLCAwLCAwKX0sDQorICAgIHsiV01BUlMzU01BUlMsNzkiLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJTl9TRUNPTkRTKDMsIDAsIDApLCBJTl9TRUNPTkRTKDIsIDAs IDApfSwNCisgICAgeyJXTUFSUzNTTUFSUyw3NiwxMzQiLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElOX1NFQ09ORFMoMywgMCwgMCksIElOX1NFQ09ORFMoMiwgMCwgMCl9LA0K KyAgICB7IldNQVJTM1NNQVJTLDc2LzAyLDEzNC8wMyIsICAgICAgICAgICAgICAgICAgICAg ICAgSU5fU0VDT05EUygzLCAwLCAwKSwgSU5fU0VDT05EUygyLCAwLCAwKX0sDQorICAgIHsi V01BUlMzU01BUlMsNzYvMDI6MTU6NDUsMTM0LzAzOjQwOjIwIiwgICAgICAgICAgICBJTl9T RUNPTkRTKDMsIDAsIDApLCBJTl9TRUNPTkRTKDIsIDAsIDApfSwNCisgICAgeyJXTUFSUzNT TUFSUyxNMy40LjEvMDI6MTU6NDUsTTguMy4xLzAzOjQwOjIwIiwgICAgIElOX1NFQ09ORFMo MywgMCwgMCksIElOX1NFQ09ORFMoMiwgMCwgMCl9LA0KKw0KKyAgICAvLyBzcGVjaWFsIHN0 ZCBuYW1lcw0KKyAgICB7IjxVTks+LTEiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC1JTl9TRUNPTkRTKDEsIDAsIDApLCAgICAgTk9fVElNRX0sDQorICAgIHsiPFVOS05P V04+LTIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUlOX1NFQ09ORFMoMiwgMCwg MCksICAgICBOT19USU1FfSwgICAgICAgICAgICAgICAgICAvLyByZXF1aXJlIFRaTkFNRV9N QVggPj0gNyArIDENCisgICAgeyI8MDAzPjMiLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSU5fU0VDT05EUygzLCAwLCAwKSwgICAgIE5PX1RJTUV9LA0KKyAgICB7Ijwr MDQ+NCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTl9TRUNPTkRTKDQs IDAsIDApLCAgICAgTk9fVElNRX0sDQorICAgIHsiPC0wNT4tNSIsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLUlOX1NFQ09ORFMoNSwgMCwgMCksICAgICBOT19USU1FfSwN CisgICAgeyI8QS01PjYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5f U0VDT05EUyg2LCAwLCAwKSwgICAgIE5PX1RJTUV9LA0KKyAgICB7IjwrQTU+LTciLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1JTl9TRUNPTkRTKDcsIDAsIDApLCAgICAg Tk9fVElNRX0sDQorICAgIHsiPDAxMjM0NTY+OCIsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElOX1NFQ09ORFMoOCwgMCwgMCksICAgICBOT19USU1FfSwNCisgICAgeyI8MEEx QjJDMz45IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5fU0VDT05EUyg5LCAw LCAwKSwgICAgIE5PX1RJTUV9LA0KKyAgICB7IjxSRC0wND4tNDxSRCswMDU+NSIsICAgICAg ICAgICAgICAgICAgICAgIC1JTl9TRUNPTkRTKDQsIDAsIDApLCAgICAgSU5fU0VDT05EUyg1 LCAwLCAwKX0sDQorICAgIHsiPFdJTlQrMDM+MzxTVU0rMDI+IiwgICAgICAgICAgICAgICAg ICAgICAgIElOX1NFQ09ORFMoMywgMCwgMCksICAgICBJTl9TRUNPTkRTKDIsIDAsIDApfSwN CisgICAgeyI8V0lOVCswMz4zPFNVTSswMj4yIiwgICAgICAgICAgICAgICAgICAgICAgSU5f U0VDT05EUygzLCAwLCAwKSwgICAgIElOX1NFQ09ORFMoMiwgMCwgMCl9LA0KKyAgICB7IjxX SU5UKzAzPjM6MTU8U1VNKzAyPjI6MzA6MTUiLCAgICAgICAgICAgICBJTl9TRUNPTkRTKDMs IDE1LCAwKSwgICAgSU5fU0VDT05EUygyLCAzMCwgMTUpfSwNCisgICAgeyI8SDNNMTU+Mzox NTxIMk0zMFMxNT4yOjMwOjE1IiwgICAgICAgICAgICAgSU5fU0VDT05EUygzLCAxNSwgMCks ICAgIElOX1NFQ09ORFMoMiwgMzAsIDE1KX0sICAgLy8gcmVxdWlyZXMgVFpOQU1FX01BWCA+ PSA4ICsgMQ0KKyAgICB7IjwrSDZNMjBTMTI+NjoyMDoxMjwtSDRNNDBTMTQ+LTQ6NDA6MTQi LCAgICBJTl9TRUNPTkRTKDYsIDIwLCAxMiksICAtSU5fU0VDT05EUyg0LCA0MCwgMTQpfSwg ICAvLyByZXF1aXJlcyBUWk5BTUVfTUFYID49IDkgKyAxDQorICAgIHsiPCswMTIzNDU2Nzg5 QUJDREVGPjM6MzM6MzMiLCAgICAgICAgICAgICAgIElOX1NFQ09ORFMoMywgMzMsIDMzKSwg ICBOT19USU1FfSwgICAgICAgICAgICAgICAgIC8vIHRydW5jYXRlcyB0aGUgbmFtZSAoMTcg KyAxKQ0KKw0KKyAgICAvKiANCisgICAgICogcmVhbC13b3JsZCB0ZXN0IHZlY3RvcnMuDQor ICAgICAqIElOX1NFQ09ORFN6b25lcyBleHRyYWN0ZWQgZnJvbSB0aGUgdHpkYiAoaHR0cHM6 Ly9naXRodWIuY29tL2VnZ2VydC90eiMyMDE5ZSkuDQorICAgICAqIFRoZSBJTl9TRUNPTkRT em9uZSBzdHJpbmdzIGNhbiBhbHNvIGJlIG9idGFpbmVkIGZyb20gaHR0cHM6Ly9yYXcuZ2l0 aHVidXNlcmNvbnRlbnQuY29tL25heWFyc3lzdGVtcy9wb3NpeF90el9kYi9tYXN0ZXIvem9u ZXMuY3N2Lg0KKyAgICAgKi8NCisgICAgeyAvKiBFdGMvR01ULTE0ICovICAgICAgICAgICAg ICAiPCsxND4tMTQiLCAgICAgICAgICAgICAgICAgICAgICAgIC1JTl9TRUNPTkRTKDE0LCAw LCAwKSwgICAgIE5PX1RJTUV9LA0KKyAgICB7IC8qIEV0Yy9HTVQrMTIgKi8gICAgICAgICAg ICAgICI8LTEyPjEyIiwgICAgICAgICAgICAgICAgICAgICAgICAgIElOX1NFQ09ORFMoMTIs IDAsIDApLCAgICAgTk9fVElNRX0sDQorICAgIHsgLyogQWZyaWNhL0Nhc2FibGFuY2EgKi8g ICAgICAgIjwrMDE+LTEiLCAgICAgICAgICAgICAgICAgICAgICAgICAtSU5fU0VDT05EUygx LCAwLCAwKSwgICAgICBOT19USU1FfSwNCisgICAgeyAvKiBBbWVyaWNhL0FyYWd1YWluYSAq LyAgICAgICAiPC0wMz4zIiwgICAgICAgICAgICAgICAgICAgICAgICAgICBJTl9TRUNPTkRT KDMsIDAsIDApLCAgICAgIE5PX1RJTUV9LA0KKyAgICB7IC8qIEFtZXJpY2EvQXN1bmNpb24g Ki8gICAgICAgICI8LTA0PjQ8LTAzPixNMTAuMS4wLzAsTTMuNC4wLzAiLCAgIElOX1NFQ09O RFMoNCwgMCwgMCksICAgICAgSU5fU0VDT05EUygzLCAwLCAwKX0sDQorICAgIHsgLyogQW1l cmljYS9Mb3NfQW5nZWxlcyAqLyAgICAgIlBTVDhQRFQsTTMuMi4wLE0xMS4xLjAiLCAgICAg ICAgICAgSU5fU0VDT05EUyg4LCAwLCAwKSwgICAgICBJTl9TRUNPTkRTKDcsIDAsIDApfSwN CisgICAgeyAvKiBBbWVyaWNhL05ld19Zb3JrICovICAgICAgICAiRVNUNUVEVCxNMy4yLjAs TTExLjEuMCIsICAgICAgICAgICBJTl9TRUNPTkRTKDUsIDAsIDApLCAgICAgIElOX1NFQ09O RFMoNCwgMCwgMCl9LA0KKyAgICB7IC8qIEFtZXJpY2EvU2NvcmVzYnlzdW5kICovICAgICI8 LTAxPjE8KzAwPixNMy41LjAvMCxNMTAuNS4wLzEiLCAgIElOX1NFQ09ORFMoMSwgMCwgMCks ICAgICAgSU5fU0VDT05EUygwLCAwLCAwKX0sDQorICAgIHsgLyogQXNpYS9Db2xvbWJvICov ICAgICAgICAgICAgIjwrMDUzMD4tNTozMCIsICAgICAgICAgICAgICAgICAgICAtSU5fU0VD T05EUyg1LCAzMCwgMCksICAgICBOT19USU1FfSwNCisgICAgeyAvKiBFdXJvcGUvQmVybGlu ICovICAgICAgICAgICAiQ0VULTFDRVNULE0zLjUuMCxNMTAuNS4wLzMiLCAgICAgIC1JTl9T RUNPTkRTKDEsIDAsIDApLCAgICAgLUlOX1NFQ09ORFMoMiwgMCwgMCl9LA0KKw0KKyAgICAv LyBFTkQgb2YgbGlzdA0KKyAgICB7TlVMTCwgTk9fVElNRSwgTk9fVElNRX0NCit9Ow0KKw0K Ky8vIGhlbHBlciBtYWNyb3MNCisjZGVmaW5lIEZPUl9USU1FWk9ORVMoaXRlcl9uYW1lKSBm b3IgKHN0cnVjdCB0el90ZXN0KiBpdGVyX25hbWUgPSB0ZXN0X3RpbWV6b25lczsgaXRlcl9u YW1lLT50enN0ciAhPSBOVUxMOyArK2l0ZXJfbmFtZSkNCisNCisvLyBFTkQgdGVzdCB2ZWN0 b3JzDQorDQorc3RhdGljIGludCBmYWlsZWQgPSAwOw0KKw0KKyNkZWZpbmUgVEVTVF9BU1NF UlRfRVFVQUxfSU5UX01FU1NBR0UoLi4uKSBhc3NlcnRfZXF1YWwoX19WQV9BUkdTX18pDQor dm9pZCBhc3NlcnRfZXF1YWwoaW50IGxocywgaW50IHJocywgY29uc3QgY2hhciogbXNnKQ0K K3sNCisgICAgaWYgKGxocyAhPSByaHMpDQorICAgIHsNCisgICAgICAgIHByaW50ZigiQXNz ZXJ0aW9uIGZhaWxlZCEgRXhwZWN0ZWQgJWQgdG8gZXF1YWwgJWQuICVzXG4iLCBsaHMsIHJo cywgbXNnKTsNCisgICAgICAgICsrZmFpbGVkOw0KKyAgICB9DQorfQ0KKw0KK3ZvaWQgdGVz dF9UaW1lem9uZVN0cmluZ3Modm9pZCkNCit7DQorICAgIGNoYXIgYnVmZmVyWzEyOF07DQor DQorICAgIEZPUl9USU1FWk9ORVMocHRyKQ0KKyAgICB7DQorICAgICAgICBzZXRlbnYoIlRa IiwgcHRyLT50enN0ciwgMSk7DQorICAgICAgICB0enNldCgpOw0KKw0KKyAgICAgICAgc25w cmludGYoYnVmZmVyLCAxMjgsICJ3aW50ZXIgdGltZSwgdGltZXpvbmUgPSBcIiVzXCIiLCBw dHItPnR6c3RyKTsNCisNCisgICAgICAgIHN0cnVjdCB0bSB3aW50ZXJfdG1fY29weSA9IHdp bnRlcl90bTsgLy8gY29weQ0KKyAgICAgICAgVEVTVF9BU1NFUlRfRVFVQUxfSU5UX01FU1NB R0Uod2ludGVyX3RpbWUgKyBwdHItPm9mZnNldF9zZWNvbmRzLCBta3RpbWUoJndpbnRlcl90 bV9jb3B5KSwgYnVmZmVyKTsNCisNCisgICAgICAgIGlmIChwdHItPmRzdF9vZmZzZXRfc2Vj b25kcyAhPSBOT19USU1FKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHNucHJpbnRmKGJ1 ZmZlciwgMTI4LCAic3VtbWVyIHRpbWUsIHRpbWV6b25lID0gXCIlc1wiIiwgcHRyLT50enN0 cik7DQorDQorICAgICAgICAgICAgc3RydWN0IHRtIHN1bW1lcl90bV9jb3B5ID0gc3VtbWVy X3RtOyAvLyBjb3B5DQorICAgICAgICAgICAgVEVTVF9BU1NFUlRfRVFVQUxfSU5UX01FU1NB R0Uoc3VtbWVyX3RpbWUgKyBwdHItPmRzdF9vZmZzZXRfc2Vjb25kcywgbWt0aW1lKCZzdW1t ZXJfdG1fY29weSksIGJ1ZmZlcik7DQorICAgICAgICB9DQorICAgIH0NCit9DQorDQoraW50 IG1haW4oKQ0KK3sNCisgICAgdGVzdF9UaW1lem9uZVN0cmluZ3MoKTsNCisgICAgZXhpdCAo ZmFpbGVkKTsNCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLSAKMi4zNS4xCgo= --------------22BtOeTgWezxQz1T1o90QwbI--