From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 04 Jun 2021 10:33:44 +0200 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1lp5Gy-00052h-LN for lore@lore.pengutronix.de; Fri, 04 Jun 2021 10:33:44 +0200 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lp5Go-0007Lu-EY for lore@pengutronix.de; Fri, 04 Jun 2021 10:33:44 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Zcxb9CNEZ4b/tfb3BQoduCkbkcMgU8MECQMU7e9KbIE=; b=uhAQjUinlCph34 CptMHGnTXwv+YHCsasYyxlsaM34/59tfd3/+8ceNQ57DSeSho7pcSQM17BFN4CnPZH7TUomnSXzl0 gvxYRNezhAFSBK9V/eZmws50Zs2UczqmZgIQoigDz1yrVbnEgvQR5XTVRQNb1otOkfIdfhvHaUq0q hMdeG9K8OL4XMZNdwN7L7aqw/237Hzl75592gejAMXZTVD3i0Oo4kTQSKWhEYFS8Zf1nIuIAY4FJr xMZWKC8JhGsvHVUwVBbnXVQ+fREIECwG1J/0+RqI3il3VGSqcQ2Z3He/lxGxH1/P79Cd8OgeN0+qX nLCoQXnn3LvIiW4p1/cg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lp5Es-00CIyI-Ih; Fri, 04 Jun 2021 08:31:34 +0000 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lp5Ek-00CIvo-4u for barebox@lists.infradead.org; Fri, 04 Jun 2021 08:31:29 +0000 Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lp5Eg-0006kA-94; Fri, 04 Jun 2021 10:31:22 +0200 Received: from afa by dude.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1lp5Ef-0002mf-Da; Fri, 04 Jun 2021 10:31:21 +0200 From: Ahmad Fatoum To: barebox@lists.infradead.org Date: Fri, 4 Jun 2021 10:31:04 +0200 Message-Id: <20210604083109.10581-9-a.fatoum@pengutronix.de> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210604083109.10581-1-a.fatoum@pengutronix.de> References: <20210604083109.10581-1-a.fatoum@pengutronix.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210604_013126_392259_4D1E7AF7 X-CRM114-Status: GOOD ( 22.63 ) X-BeenThere: barebox@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jmaselbas@kalray.eu, Ahmad Fatoum , rcz@pengutronix.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "barebox" X-SA-Exim-Connect-IP: 2607:7c80:54:e::133 X-SA-Exim-Mail-From: barebox-bounces+lore=pengutronix.de@lists.infradead.org X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.ext.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-4.6 required=4.0 tests=AWL,BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_NONE autolearn=unavailable autolearn_force=no version=3.4.2 Subject: [PATCH v4 08/13] test: self: port Linux printf kselftest X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on metis.ext.pengutronix.de) UG9ydCBvdmVyIHRoZSBMaW51eCB2NS4xMSBzZWxmdGVzdCBmb3IgcHJpbnRmIHNhbnMgdGhlIHBh cnRzIHdlIGRvbid0CnN1cHBvcnQuIFRoaXMgY2FuIGJlIHVzZWQgdG8gY2F0Y2ggcmVncmVzc2lv bnMgaWYgY2hhbmdlcyBhZmZlY3RpbmcgdGhlCnByaW50ZiBjb2RlIGFyZSBtYWRlLgoKU2lnbmVk LW9mZi1ieTogQWhtYWQgRmF0b3VtIDxhLmZhdG91bUBwZW5ndXRyb25peC5kZT4KLS0tCiBpbmNs dWRlL3N0ZGxpYi5oICAgfCAgIDUgKwogdGVzdC9zZWxmL0tjb25maWcgIHwgICA2ICsKIHRlc3Qv c2VsZi9NYWtlZmlsZSB8ICAgMSArCiB0ZXN0L3NlbGYvcHJpbnRmLmMgfCAzMDIgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDMx NCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9zZWxmL3ByaW50Zi5jCgpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9zdGRsaWIuaCBiL2luY2x1ZGUvc3RkbGliLmgKaW5kZXggZDQw NTYwODcyNDNkLi44ZWI0MTllMTExZjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc3RkbGliLmgKKysr IGIvaW5jbHVkZS9zdGRsaWIuaApAQCAtMjUsNCArMjUsOSBAQCBzdGF0aWMgaW5saW5lIHUzMiBy YW5kb20zMih2b2lkKQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdTMyIHByYW5k b21fdTMyX21heCh1MzIgZXBfcm8pCit7CisJcmV0dXJuICh1MzIpKCgodTY0KSByYW5kb20zMigp ICogZXBfcm8pID4+IDMyKTsKK30KKwogI2VuZGlmIC8qIF9fU1RETElCX0ggKi8KZGlmZiAtLWdp dCBhL3Rlc3Qvc2VsZi9LY29uZmlnIGIvdGVzdC9zZWxmL0tjb25maWcKaW5kZXggNzIwYWJlZmZj NTFiLi43M2RjNmM3YjRmMDMgMTAwNjQ0Ci0tLSBhL3Rlc3Qvc2VsZi9LY29uZmlnCisrKyBiL3Rl c3Qvc2VsZi9LY29uZmlnCkBAIC0yNyw3ICsyNywxMyBAQCBjb25maWcgU0VMRlRFU1RfQVVUT1JV TgogCiBjb25maWcgU0VMRlRFU1RfRU5BQkxFX0FMTAogCWJvb2wgIkVuYWJsZSBhbGwgc2VsZi10 ZXN0cyIKKwlzZWxlY3QgU0VMRlRFU1RfUFJJTlRGCiAJaGVscAogCSAgU2VsZWN0cyBhbGwgc2Vs Zi10ZXN0cyBjb21wYXRpYmxlIHdpdGggY3VycmVudCBjb25maWd1cmF0aW9uCiAKK2NvbmZpZyBT RUxGVEVTVF9QUklOVEYKKwlib29sICJwcmludGYgc2VsZnRlc3QiCisJaGVscAorCSAgVGVzdHMg YmFyZWJveCB2c25wcmludGYoKSBmdW5jdGlvbmFsaXR5CisKIGVuZGlmCmRpZmYgLS1naXQgYS90 ZXN0L3NlbGYvTWFrZWZpbGUgYi90ZXN0L3NlbGYvTWFrZWZpbGUKaW5kZXggNzhmNzM4YzhlMjEw Li5iNGFhNDlkNmY4MTcgMTAwNjQ0Ci0tLSBhL3Rlc3Qvc2VsZi9NYWtlZmlsZQorKysgYi90ZXN0 L3NlbGYvTWFrZWZpbGUKQEAgLTEsMyArMSw0IEBACiAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wCiAKIG9iai0kKENPTkZJR19TRUxGVEVTVCkgKz0gY29yZS5vCitvYmotJChDT05G SUdfU0VMRlRFU1RfUFJJTlRGKSArPSBwcmludGYubwpkaWZmIC0tZ2l0IGEvdGVzdC9zZWxmL3By aW50Zi5jIGIvdGVzdC9zZWxmL3ByaW50Zi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNTJmZTZhYzBmYWY5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9zZWxmL3By aW50Zi5jCkBAIC0wLDAgKzEsMzAyIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMC1vbmx5CisvKgorICogVGVzdCBjYXNlcyBmb3IgcHJpbnRmIGZhY2lsaXR5LgorICovCisK KyNkZWZpbmUgcHJfZm10KGZtdCkgS0JVSUxEX01PRE5BTUUgIjogIiBmbXQKKworI2luY2x1ZGUg PGNvbW1vbi5oPgorI2luY2x1ZGUgPGJzZWxmdGVzdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5l bC5oPgorI2luY2x1ZGUgPG1vZHVsZS5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8 c3RkbGliLmg+CisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4K KworI2luY2x1ZGUgPGxpbnV4L2JpdG1hcC5oPgorCisjZGVmaW5lIEJVRl9TSVpFIDI1NgorI2Rl ZmluZSBQQURfU0laRSAxNgorI2RlZmluZSBGSUxMX0NIQVIgJyQnCisKK0JTRUxGVEVTVF9HTE9C QUxTKCk7CisKK3N0YXRpYyBjaGFyICp0ZXN0X2J1ZmZlciBfX2luaXRkYXRhOworc3RhdGljIGNo YXIgKmFsbG9jZWRfYnVmZmVyIF9faW5pdGRhdGE7CisKK3N0YXRpYyBpbnQgX19wcmludGYoNCwg MCkgX19pbml0Citkb190ZXN0KGludCBidWZzaXplLCBjb25zdCBjaGFyICpleHBlY3QsIGludCBl bGVuLAorCWNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCkKK3sKKwl2YV9saXN0IGFxOworCWlu dCByZXQsIHdyaXR0ZW47CisKKwl0b3RhbF90ZXN0cysrOworCisJbWVtc2V0KGFsbG9jZWRfYnVm ZmVyLCBGSUxMX0NIQVIsIEJVRl9TSVpFICsgMipQQURfU0laRSk7CisJdmFfY29weShhcSwgYXAp OworCXJldCA9IHZzbnByaW50Zih0ZXN0X2J1ZmZlciwgYnVmc2l6ZSwgZm10LCBhcSk7CisJdmFf ZW5kKGFxKTsKKworCWlmIChyZXQgIT0gZWxlbikgeworCQlwcl93YXJuKCJ2c25wcmludGYoYnVm LCAlZCwgXCIlc1wiLCAuLi4pIHJldHVybmVkICVkLCBleHBlY3RlZCAlZFxuIiwKKwkJCWJ1ZnNp emUsIGZtdCwgcmV0LCBlbGVuKTsKKwkJcHJfd2FybigidnNucHJpbnRmKGJ1ZiwgJWQsIFwiJXNc IiwgLi4uKSB3cm90ZSAnJXMnLCBleHBlY3RlZCAnJS4qcydcbiIsCisJCQlidWZzaXplLCBmbXQs IHRlc3RfYnVmZmVyLCByZXQsIGV4cGVjdCk7CisJCXJldHVybiAxOworCX0KKworCWlmIChtZW1j aHJfaW52KGFsbG9jZWRfYnVmZmVyLCBGSUxMX0NIQVIsIFBBRF9TSVpFKSkgeworCQlwcl93YXJu KCJ2c25wcmludGYoYnVmLCAlZCwgXCIlc1wiLCAuLi4pIHdyb3RlIGJlZm9yZSBidWZmZXJcbiIs IGJ1ZnNpemUsIGZtdCk7CisJCXJldHVybiAxOworCX0KKworCWlmICghYnVmc2l6ZSkgeworCQlp ZiAobWVtY2hyX2ludih0ZXN0X2J1ZmZlciwgRklMTF9DSEFSLCBCVUZfU0laRSArIFBBRF9TSVpF KSkgeworCQkJcHJfd2FybigidnNucHJpbnRmKGJ1ZiwgMCwgXCIlc1wiLCAuLi4pIHdyb3RlIHRv IGJ1ZmZlclxuIiwKKwkJCQlmbXQpOworCQkJcmV0dXJuIDE7CisJCX0KKwkJcmV0dXJuIDA7CisJ fQorCisJd3JpdHRlbiA9IG1pbihidWZzaXplLTEsIGVsZW4pOworCWlmICh0ZXN0X2J1ZmZlclt3 cml0dGVuXSkgeworCQlwcl93YXJuKCJ2c25wcmludGYoYnVmLCAlZCwgXCIlc1wiLCAuLi4pIGRp ZCBub3QgbnVsLXRlcm1pbmF0ZSBidWZmZXJcbiIsCisJCQlidWZzaXplLCBmbXQpOworCQlyZXR1 cm4gMTsKKwl9CisKKwlpZiAobWVtY2hyX2ludih0ZXN0X2J1ZmZlciArIHdyaXR0ZW4gKyAxLCBG SUxMX0NIQVIsIEJVRl9TSVpFICsgUEFEX1NJWkUgLSAod3JpdHRlbiArIDEpKSkgeworCQlwcl93 YXJuKCJ2c25wcmludGYoYnVmLCAlZCwgXCIlc1wiLCAuLi4pIHdyb3RlIGJleW9uZCB0aGUgbnVs LXRlcm1pbmF0b3JcbiIsCisJCQlidWZzaXplLCBmbXQpOworCQlyZXR1cm4gMTsKKwl9CisKKwlp ZiAobWVtY21wKHRlc3RfYnVmZmVyLCBleHBlY3QsIHdyaXR0ZW4pKSB7CisJCXByX3dhcm4oInZz bnByaW50ZihidWYsICVkLCBcIiVzXCIsIC4uLikgd3JvdGUgJyVzJywgZXhwZWN0ZWQgJyUuKnMn XG4iLAorCQkJYnVmc2l6ZSwgZm10LCB0ZXN0X2J1ZmZlciwgd3JpdHRlbiwgZXhwZWN0KTsKKwkJ cmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX3ByaW50ZigzLCA0 KSBfX2luaXQKK19fdGVzdChjb25zdCBjaGFyICpleHBlY3QsIGludCBlbGVuLCBjb25zdCBjaGFy ICpmbXQsIC4uLikKK3sKKwl2YV9saXN0IGFwOworCWludCByYW5kOworCWNoYXIgKnA7CisKKwlp ZiAoZWxlbiA+PSBCVUZfU0laRSkgeworCQlwcl9lcnIoImVycm9yIGluIHRlc3Qgc3VpdGU6IGV4 cGVjdGVkIG91dHB1dCBsZW5ndGggJWQgdG9vIGxvbmcuIEZvcm1hdCB3YXMgJyVzJy5cbiIsCisJ CSAgICAgICBlbGVuLCBmbXQpOworCQlmYWlsZWRfdGVzdHMrKzsKKwkJcmV0dXJuOworCX0KKwor CXZhX3N0YXJ0KGFwLCBmbXQpOworCisJLyoKKwkgKiBFdmVyeSBmbXQrYXJncyBpcyBzdWJqZWN0 ZWQgdG8gZm91ciB0ZXN0czogVGhyZWUgd2hlcmUgd2UKKwkgKiB0ZWxsIHZzbnByaW50ZiB2YXJ5 aW5nIGJ1ZmZlciBzaXplcyAocGxlbnR5LCBub3QgcXVpdGUKKwkgKiBlbm91Z2ggYW5kIDApLCBh bmQgdGhlbiB3ZSBhbHNvIHRlc3QgdGhhdCBidmFzcHJpbnRmIHdvdWxkCisJICogYmUgYWJsZSB0 byBwcmludCBpdCBhcyBleHBlY3RlZC4KKwkgKi8KKwlmYWlsZWRfdGVzdHMgKz0gZG9fdGVzdChC VUZfU0laRSwgZXhwZWN0LCBlbGVuLCBmbXQsIGFwKTsKKwlyYW5kID0gMSArIHByYW5kb21fdTMy X21heChlbGVuKzEpOworCS8qIFNpbmNlIGVsZW4gPCBCVUZfU0laRSwgd2UgaGF2ZSAxIDw9IHJh bmQgPD0gQlVGX1NJWkUuICovCisJZmFpbGVkX3Rlc3RzICs9IGRvX3Rlc3QocmFuZCwgZXhwZWN0 LCBlbGVuLCBmbXQsIGFwKTsKKwlmYWlsZWRfdGVzdHMgKz0gZG9fdGVzdCgwLCBleHBlY3QsIGVs ZW4sIGZtdCwgYXApOworCisJcCA9IGJ2YXNwcmludGYoZm10LCBhcCk7CisJaWYgKHApIHsKKwkJ dG90YWxfdGVzdHMrKzsKKwkJaWYgKG1lbWNtcChwLCBleHBlY3QsIGVsZW4rMSkpIHsKKwkJCXBy X3dhcm4oImJ2YXNwcmludGYoLi4uLCBcIiVzXCIsIC4uLikgcmV0dXJuZWQgJyVzJywgZXhwZWN0 ZWQgJyVzJ1xuIiwKKwkJCQlmbXQsIHAsIGV4cGVjdCk7CisJCQlmYWlsZWRfdGVzdHMrKzsKKwkJ fQorCQlrZnJlZShwKTsKKwl9CisJdmFfZW5kKGFwKTsKK30KKworI2RlZmluZSB0ZXN0KGV4cGVj dCwgZm10LCAuLi4pCQkJCQlcCisJX190ZXN0KGV4cGVjdCwgc3RybGVuKGV4cGVjdCksIGZtdCwg IyNfX1ZBX0FSR1NfXykKKworc3RhdGljIHZvaWQgX19pbml0Cit0ZXN0X2Jhc2ljKHZvaWQpCit7 CisJLyogV29yayBhcm91bmQgYW5ub3lpbmcgIndhcm5pbmc6IHplcm8tbGVuZ3RoIGdudV9wcmlu dGYgZm9ybWF0IHN0cmluZyIuICovCisJY2hhciBudWwgPSAnXDAnOworCisJdGVzdCgiIiwgJm51 bCk7CisJdGVzdCgiMTAwJSIsICIxMDAlJSIpOworCXRlc3QoInh4eCV5eXkiLCAieHh4JWN5eXki LCAnJScpOworCV9fdGVzdCgieHh4XDB5eXkiLCA3LCAieHh4JWN5eXkiLCAnXDAnKTsKK30KKwor c3RhdGljIHZvaWQgX19pbml0Cit0ZXN0X251bWJlcih2b2lkKQoreworCXNpZ25lZCBjaGFyIHZh bDsKKworCXRlc3QoIjB4MTIzNGFiY2QgICIsICIlIy0xMngiLCAweDEyMzRhYmNkKTsKKwl0ZXN0 KCIgIDB4MTIzNGFiY2QiLCAiJSMxMngiLCAweDEyMzRhYmNkKTsKKwl0ZXN0KCIwfDAwMXwgMTJ8 KzEyM3wgMTIzNHwtMTIzfC0xMjM0IiwgIiVkfCUwM2R8JTNkfCUrZHwlIGR8JStkfCUgZCIsIDAs IDEsIDEyLCAxMjMsIDEyMzQsIC0xMjMsIC0xMjM0KTsKKwl0ZXN0KCIwfDF8MXwzMjc2OHw2NTUz NSIsICIlaHV8JWh1fCVodXwlaHV8JWh1IiwgMCwgMSwgNjU1MzcsIDMyNzY4LCAtMSk7CisJdGVz dCgiMHwxfDF8LTMyNzY4fC0xIiwgIiVoZHwlaGR8JWhkfCVoZHwlaGQiLCAwLCAxLCA2NTUzNywg MzI3NjgsIC0xKTsKKwl0ZXN0KCIyMDE1MTIyNDIwMTUxMjI1IiwgIiVobyVobyUjaG8iLCAxMDM3 LCA1MjgyLCAtMTE2MjcpOworCisJdGVzdCgiMjAxNTEyMjQyMDE1MTIyNSIsICIlaG8laG8lI2hv IiwgMTAzNywgNTI4MiwgLTExNjI3KTsKKworCS8qCisJICogUE9TSVgvQzk5OiDCu1RoZSByZXN1 bHQgb2YgY29udmVydGluZyB6ZXJvIHdpdGggYW4gZXhwbGljaXQKKwkgKiBwcmVjaXNpb24gb2Yg emVybyBzaGFsbCBiZSBubyBjaGFyYWN0ZXJzLsKrIEhlbmNlIHRoZSBvdXRwdXQKKwkgKiBmcm9t IHRoZSBiZWxvdyB0ZXN0IHNob3VsZCByZWFsbHkgYmUgIjAwfDB8fHwgIi4gSG93ZXZlciwKKwkg KiB0aGUga2VybmVsJ3MgcHJpbnRmIGFsc28gcHJvZHVjZXMgYSBzaW5nbGUgMCBpbiB0aGF0CisJ ICogY2FzZS4gVGhpcyB0ZXN0IGNhc2Ugc2ltcGx5IGRvY3VtZW50cyB0aGUgY3VycmVudAorCSAq IGJlaGF2aW91ci4KKwkgKi8KKwl0ZXN0KCIwMHwwfDB8MHwwIiwgIiUuMmR8JS4xZHwlLjBkfCUu KmR8JTEuMGQiLCAwLCAwLCAwLCAwLCAwLCAwKTsKKworCXZhbCA9IC0xNjsKKwl0ZXN0KCIweGZm ZmZmZmYwfDB4ZjB8MHhmMCIsICIlIzAyeHwlIzAyeHwlIzAyeCIsIHZhbCwgdmFsICYgMHhmZiwg KHU4KXZhbCk7CisKKwkvKiBPbiBzb21lIHBsYXRmb3JtcywgdGVzdCBmYWlsdXJlIGhlcmUgaW5k aWNhdGVzIGEgbWlzYWxpZ25lZCBzdGFjayAqLworCXRlc3QoIjB4MDgwNzA2MDUwNDAzMDIwMSIs ICIweCUwMTZsbHgiLCAweDA4MDcwNjA1MDQwMzAyMDFVTEwpOworfQorCitzdGF0aWMgdm9pZCBf X2luaXQKK3Rlc3Rfc3RyaW5nKHZvaWQpCit7CisJdGVzdCgiIiwgIiVzJS4wcyIsICIiLCAiMTIz Iik7CisJdGVzdCgiQUJDRHxhYmN8MTIzIiwgIiVzfCUuM3N8JS4qcyIsICJBQkNEIiwgImFiY2Rl ZiIsIDMsICIxMjM0NTYiKTsKKwl0ZXN0KCIxICB8ICAyfDMgIHwgIDR8NSAgIiwgIiUtM3N8JTNz fCUtKnN8JSpzfCUqcyIsICIxIiwgIjIiLCAzLCAiMyIsIDMsICI0IiwgLTMsICI1Iik7CisJdGVz dCgiMTIzNCAgICAgICIsICIlLTEwLjRzIiwgIjEyMzQ1NiIpOworCXRlc3QoIiAgICAgIDEyMzQi LCAiJTEwLjRzIiwgIjEyMzQ1NiIpOworfQorCisjaWYgQklUU19QRVJfTE9ORyA9PSA2NAorCisj ZGVmaW5lIFBUUl9XSURUSCAxNgorI2RlZmluZSBQVFIgKCh2b2lkICopMHhmZmZmMDEyMzQ1Njc4 OWFiVUwpCisjZGVmaW5lIFBUUl9TVFIgImZmZmYwMTIzNDU2Nzg5YWIiCisjZGVmaW5lIFBUUl9W QUxfTk9fQ1JORyAiKF9fX19wdHJ2YWxfX19fKSIKKyNkZWZpbmUgWkVST1MgIjAwMDAwMDAwIgkv KiBoZXggMzIgemVybyBiaXRzICovCisjZGVmaW5lIE9ORVMgImZmZmZmZmZmIgkJLyogaGV4IDMy IG9uZSBiaXRzICovCisKKyNlbHNlCisKKyNkZWZpbmUgUFRSX1dJRFRIIDgKKyNkZWZpbmUgUFRS ICgodm9pZCAqKTB4NDU2Nzg5YWIpCisjZGVmaW5lIFBUUl9TVFIgIjQ1Njc4OWFiIgorI2RlZmlu ZSBQVFJfVkFMX05PX0NSTkcgIihwdHJ2YWwpIgorI2RlZmluZSBaRVJPUyAiIgorI2RlZmluZSBP TkVTICIiCisKKyNlbmRpZgkvKiBCSVRTX1BFUl9MT05HID09IDY0ICovCisKKy8qCisgKiBOVUxM IHBvaW50ZXJzIGFyZW4ndCBoYXNoZWQuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdAorbnVsbF9w b2ludGVyKHZvaWQpCit7CisJdGVzdChaRVJPUyAiMDAwMDAwMDAiLCAiJXAiLCBOVUxMKTsKKwl0 ZXN0KFpFUk9TICIwMDAwMDAwMCIsICIlcHgiLCBOVUxMKTsKK30KKworLyoKKyAqIEVycm9yIHBv aW50ZXJzIGFyZW4ndCBoYXNoZWQuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdAorZXJyb3JfcG9p bnRlcih2b2lkKQoreworCXRlc3QoT05FUyAiZmZmZmZmZjUiLCAiJXAiLCBFUlJfUFRSKC0xMSkp OworCXRlc3QoT05FUyAiZmZmZmZmZjUiLCAiJXB4IiwgRVJSX1BUUigtMTEpKTsKK30KKworI2Rl ZmluZSBQVFJfSU5WQUxJRCAoKHZvaWQgKikweDAwMDAwMGFiKQorCitzdGF0aWMgdm9pZCBfX2lu aXQKK2ludmFsaWRfcG9pbnRlcih2b2lkKQoreworCXRlc3QoWkVST1MgIjAwMDAwMGFiIiwgIiVw eCIsIFBUUl9JTlZBTElEKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0CitpcDQodm9pZCkKK3sK KwlJUGFkZHJfdCBpcCA9IGNwdV90b19iZTMyKDB4N2YwMDAwMDEpOworCisJdGVzdCgiMTI3LjAu MC4xIiwgIiVwSTQiLCAmaXApOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQKK2lwKHZvaWQpCit7 CisJaXA0KCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdAordXVpZCh2b2lkKQoreworCWNvbnN0 IGNoYXIgdXVpZFsxNl0gPSB7MHgwLCAweDEsIDB4MiwgMHgzLCAweDQsIDB4NSwgMHg2LCAweDcs CisJCQkgICAgICAgMHg4LCAweDksIDB4YSwgMHhiLCAweGMsIDB4ZCwgMHhlLCAweGZ9OworCisJ aWYgKCFJU19FTkFCTEVEKENPTkZJR19QUklOVEZfVVVJRCkpCisJCXJldHVybjsKKworCXRlc3Qo IjAwMDEwMjAzLTA0MDUtMDYwNy0wODA5LTBhMGIwYzBkMGUwZiIsICIlcFViIiwgdXVpZCk7CisJ dGVzdCgiMDAwMTAyMDMtMDQwNS0wNjA3LTA4MDktMEEwQjBDMEQwRTBGIiwgIiVwVUIiLCB1dWlk KTsKKwl0ZXN0KCIwMzAyMDEwMC0wNTA0LTA3MDYtMDgwOS0wYTBiMGMwZDBlMGYiLCAiJXBVbCIs IHV1aWQpOworCXRlc3QoIjAzMDIwMTAwLTA1MDQtMDcwNi0wODA5LTBBMEIwQzBEMEUwRiIsICIl cFVMIiwgdXVpZCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdAorZXJycHRyKHZvaWQpCit7CisJ dGVzdCgiZXJyb3IgMTIzNCIsICIlcGUiLCBFUlJfUFRSKC0xMjM0KSk7CisJdGVzdChzaXplb2Yo dm9pZCAqKSA9PSA4ID8gIjAwMDAwMDAwMDAwMDA0ZDIiIDogIjAwMDAwNGQyIiwgIiVwZSIsIEVS Ul9QVFIoMTIzNCkpOworCisJLyogQ2hlY2sgdGhhdCAlcGUgd2l0aCBhIG5vbi1FUlJfUFRSIGdl dHMgdHJlYXRlZCBhcyBvcmRpbmFyeSAlcC4gKi8KKwlCVUlMRF9CVUdfT04oSVNfRVJSKFBUUikp OworCisJaWYgKCFJU19FTkFCTEVEKENPTkZJR19FUlJOT19NRVNTQUdFUykpCisJCXJldHVybjsK Kwl0ZXN0KCIoT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQpIiwgIiglcGUpIiwgRVJSX1BUUigtRVBF Uk0pKTsKKwl0ZXN0KCJSZXF1ZXN0ZWQgcHJvYmUgZGVmZXJyYWwiLCAiJXBlIiwgRVJSX1BUUigt RVBST0JFX0RFRkVSKSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdAordGVzdF9wb2ludGVyKHZv aWQpCit7CisJbnVsbF9wb2ludGVyKCk7CisJZXJyb3JfcG9pbnRlcigpOworCWludmFsaWRfcG9p bnRlcigpOworCWlwKCk7CisJdXVpZCgpOworCWVycnB0cigpOworfQorCitzdGF0aWMgdm9pZCBf X2luaXQgdGVzdF9wcmludGYodm9pZCkKK3sKKwlhbGxvY2VkX2J1ZmZlciA9IG1hbGxvYyhCVUZf U0laRSArIDIqUEFEX1NJWkUpOworCWlmICghYWxsb2NlZF9idWZmZXIpCisJCXJldHVybjsKKwl0 ZXN0X2J1ZmZlciA9IGFsbG9jZWRfYnVmZmVyICsgUEFEX1NJWkU7CisKKwl0ZXN0X2Jhc2ljKCk7 CisJdGVzdF9udW1iZXIoKTsKKwl0ZXN0X3N0cmluZygpOworCXRlc3RfcG9pbnRlcigpOworCisJ ZnJlZShhbGxvY2VkX2J1ZmZlcik7Cit9CisKK2JzZWxmdGVzdChjb3JlLCB0ZXN0X3ByaW50Zik7 CitNT0RVTEVfQVVUSE9SKCJSYXNtdXMgVmlsbGVtb2VzIDxsaW51eEByYXNtdXN2aWxsZW1vZXMu ZGs+Iik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0tIAoyLjI5LjIKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpiYXJlYm94IG1haWxpbmcgbGlzdApi YXJlYm94QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9iYXJlYm94Cg==