From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 64B616E8C5 for ; Tue, 16 Jun 2020 14:15:16 +0000 (UTC) From: Arkadiusz Hiler Date: Tue, 16 Jun 2020 17:14:49 +0300 Message-ID: <20200616141450.1181127-2-arkadiusz.hiler@intel.com> In-Reply-To: <20200616141450.1181127-1-arkadiusz.hiler@intel.com> References: <20200616141450.1181127-1-arkadiusz.hiler@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 2/3] lib/core: Handle asserts in threads List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Petri Latvala List-ID: U2luY2UgSUdUIGlzIHVzaW5nIG1hZ2ljIGNvbnRyb2wgYmxvY2tzIChpZ3Rfc3VidGVzdCBldCBh bC4pIGFzc2VydHMKanVtcCBvdXQgdGhlIHRoZW0gdXNpbmcgbG9uZ2ptcCgpIGNhdXNpbmcgYSBi dW5jaCBvZiBjb25mdXNpbmcgbWVzc2FnZXMKYW5kIG9jY2FzaW9uYWxseSBjcmFzaGluZyB0aGUg d2hvbGUgcHJvY2Vzcy4KClRoaXMgaXMgbm90IHRoZSBiZWhhdmlvciB3ZSB3YW50IDotKQoKV2l0 aCB0aGlzIHBhdGNoOgoKMS4gc2ltcGxlX21haW4sIGR5bmFtaWMgYW5kIHN1YnRlc3QgZWFjaCBj bGVhcnMgdGhlIHRocmVhZCBmYWlsdXJlIHN0YXRlCiAgIGF0IHRoZSBzdGFydAoKMi4gZWFjaCBv ZiB0aG9zZSBibG9ja3MgYWxzbyBhc3NlcnRzIG5vIHRocmVhZCBmYWlsdXJlcyBhdCB0aGUgZW5k CgozLiBpZ3RfYXNzZXJ0KCkgaW4gbm9uLW1haW4gdGhyZWFkIHByaW50cyBvdXQgdGhlIGVycm9y ICsgc3RhY2t0cmFjZQogICBhbmQgbWFya3MgdGhhdCB3ZSBoYXZlIGZhaWxlZCB0aHJlYWQKCklz c3VlOiBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvZHJtL2lndC1ncHUtdG9vbHMvLS9p c3N1ZXMvNTUKU2lnbmVkLW9mZi1ieTogQXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJA aW50ZWwuY29tPgotLS0KIGxpYi9pZ3RfY29yZS5jICAgICAgICAgICAgICAgfCAgMTIgKysrCiBs aWIvaWd0X3RocmVhZC5jICAgICAgICAgICAgIHwgIDMwICsrKysrKwogbGliL2lndF90aHJlYWQu aCAgICAgICAgICAgICB8ICAgNCArCiBsaWIvdGVzdHMvaWd0X3Rlc3RzX2NvbW1vbi5oIHwgIDIy ICsrKysKIGxpYi90ZXN0cy9pZ3RfdGhyZWFkLmMgICAgICAgfCAxOTQgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGxpYi90ZXN0cy9tZXNvbi5idWlsZCAgICAgICAgfCAgIDEg KwogNiBmaWxlcyBjaGFuZ2VkLCAyNjMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGxpYi90ZXN0cy9pZ3RfdGhyZWFkLmMKCmRpZmYgLS1naXQgYS9saWIvaWd0X2NvcmUuYyBiL2xp Yi9pZ3RfY29yZS5jCmluZGV4IGM5NTI5NWM3Li5jY2YwNmNmNCAxMDA2NDQKLS0tIGEvbGliL2ln dF9jb3JlLmMKKysrIGIvbGliL2lndF9jb3JlLmMKQEAgLTEyNzIsNiArMTI3Miw3IEBAIGJvb2wg X19pZ3RfcnVuX3N1YnRlc3QoY29uc3QgY2hhciAqc3VidGVzdF9uYW1lLCBjb25zdCBjaGFyICpm aWxlLCBjb25zdCBpbnQgbGluCiAJCWZwcmludGYoc3RkZXJyLCAiU3RhcnRpbmcgc3VidGVzdDog JXNcbiIsIHN1YnRlc3RfbmFtZSk7CiAKIAlfaWd0X2xvZ19idWZmZXJfcmVzZXQoKTsKKwlpZ3Rf dGhyZWFkX2NsZWFyX2ZhaWxfc3RhdGUoKTsKIAogCWlndF9nZXR0aW1lKCZzdWJ0ZXN0X3RpbWUp OwogCXJldHVybiAoaW5fc3VidGVzdCA9IHN1YnRlc3RfbmFtZSk7CkBAIC0xMzAyLDYgKzEzMDMs NyBAQCBib29sIF9faWd0X3J1bl9keW5hbWljX3N1YnRlc3QoY29uc3QgY2hhciAqZHluYW1pY19z dWJ0ZXN0X25hbWUpCiAJCWZwcmludGYoc3RkZXJyLCAiU3RhcnRpbmcgZHluYW1pYyBzdWJ0ZXN0 OiAlc1xuIiwgZHluYW1pY19zdWJ0ZXN0X25hbWUpOwogCiAJX2lndF9sb2dfYnVmZmVyX3Jlc2V0 KCk7CisJaWd0X3RocmVhZF9jbGVhcl9mYWlsX3N0YXRlKCk7CiAKIAlfaWd0X2R5bmFtaWNfdGVz dHNfZXhlY3V0ZWQrKzsKIApAQCAtMTUxMCw2ICsxNTEyLDggQEAgdm9pZCBfX2lndF9za2lwX2No ZWNrKGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGludCBsaW5lLAogICovCiB2b2lkIGlndF9zdWNj ZXNzKHZvaWQpCiB7CisJaWd0X3RocmVhZF9hc3NlcnRfbm9fZmFpbHVyZXMoKTsKKwogCWlmIChp bl9zdWJ0ZXN0ICYmICFpbl9keW5hbWljX3N1YnRlc3QgJiYgX2lndF9keW5hbWljX3Rlc3RzX2V4 ZWN1dGVkID49IDApIHsKIAkJLyoKIAkJICogV2UncmUgZXhpdGluZyBhIGR5bmFtaWMgY29udGFp bmVyLCB5aWVsZCBhIHJlc3VsdApAQCAtMTU0OSw2ICsxNTUzLDExIEBAIHZvaWQgaWd0X2ZhaWwo aW50IGV4aXRjb2RlKQogewogCWFzc2VydChleGl0Y29kZSAhPSBJR1RfRVhJVF9TVUNDRVNTICYm IGV4aXRjb2RlICE9IElHVF9FWElUX1NLSVApOwogCisJaWYgKCFpZ3RfdGhyZWFkX2lzX21haW4o KSkgeworCQlpZ3RfdGhyZWFkX2ZhaWwoKTsKKwkJcHRocmVhZF9leGl0KE5VTEwpOworCX0KKwog CWlndF9kZWJ1Z193YWl0X2Zvcl9rZXlwcmVzcygiZmFpbHVyZSIpOwogCiAJLyogRXhpdCBpbW1l ZGlhdGVseSBpZiB0aGUgdGVzdCBpcyBhbHJlYWR5IGV4aXRpbmcgYW5kIGlndF9mYWlsIGlzCkBA IC0yMDQ5LDYgKzIwNTgsOSBAQCB2b2lkIGlndF9leGl0KHZvaWQpCiB7CiAJaW50IHRtcDsKIAor CWlmICghdGVzdF93aXRoX3N1YnRlc3RzKQorCQlpZ3RfdGhyZWFkX2Fzc2VydF9ub19mYWlsdXJl cygpOworCiAJaWd0X2V4aXRfY2FsbGVkID0gdHJ1ZTsKIAogCWlmIChpZ3Rfa2V5X2ZpbGUpCmRp ZmYgLS1naXQgYS9saWIvaWd0X3RocmVhZC5jIGIvbGliL2lndF90aHJlYWQuYwppbmRleCBkZWFi NjIyNS4uNWJkZGE0MTAgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfdGhyZWFkLmMKKysrIGIvbGliL2ln dF90aHJlYWQuYwpAQCAtMjIsMTIgKzIyLDQyIEBACiAgKi8KIAogI2luY2x1ZGUgPHB0aHJlYWQu aD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRhdG9taWMuaD4KIAogI2luY2x1 ZGUgImlndF9jb3JlLmgiCiAjaW5jbHVkZSAiaWd0X3RocmVhZC5oIgogCiBzdGF0aWMgcHRocmVh ZF9rZXlfdCBfX2lndF9pc19tYWluX3RocmVhZDsKIAorc3RhdGljIF9BdG9taWMoYm9vbCkgX190 aHJlYWRfZmFpbGVkID0gZmFsc2U7CisKK3ZvaWQgaWd0X3RocmVhZF9jbGVhcl9mYWlsX3N0YXRl KHZvaWQpCit7CisJYXNzZXJ0KGlndF90aHJlYWRfaXNfbWFpbigpKTsKKworCV9fdGhyZWFkX2Zh aWxlZCA9IGZhbHNlOworfQorCit2b2lkIGlndF90aHJlYWRfZmFpbCh2b2lkKQoreworCWFzc2Vy dCghaWd0X3RocmVhZF9pc19tYWluKCkpOworCisJX190aHJlYWRfZmFpbGVkID0gdHJ1ZTsKK30K Kwordm9pZCBpZ3RfdGhyZWFkX2Fzc2VydF9ub19mYWlsdXJlcyh2b2lkKQoreworCWFzc2VydChp Z3RfdGhyZWFkX2lzX21haW4oKSk7CisKKwlpZiAoX190aHJlYWRfZmFpbGVkKSB7CisJCS8qIHNv IHdlIHdvbid0IGdldCBzdHVjayBpbiBhIGxvb3AgKi8KKwkJaWd0X3RocmVhZF9jbGVhcl9mYWls X3N0YXRlKCk7CisJCWlndF9jcml0aWNhbCgiRmFpbHVyZSBpbiBhIHRocmVhZCFcbiIpOworCQlp Z3RfZmFpbChJR1RfRVhJVF9GQUlMVVJFKTsKKwl9Cit9CisKIGJvb2wgaWd0X3RocmVhZF9pc19t YWluKHZvaWQpCiB7CiAJcmV0dXJuIHB0aHJlYWRfZ2V0c3BlY2lmaWMoX19pZ3RfaXNfbWFpbl90 aHJlYWQpICE9IE5VTEw7CmRpZmYgLS1naXQgYS9saWIvaWd0X3RocmVhZC5oIGIvbGliL2lndF90 aHJlYWQuaAppbmRleCBiMTZmODAzZi4uNGI5YzIyMmQgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfdGhy ZWFkLmgKKysrIGIvbGliL2lndF90aHJlYWQuaApAQCAtMjEsNCArMjEsOCBAQAogICogSU4gVEhF IFNPRlRXQVJFLgogICovCiAKK3ZvaWQgaWd0X3RocmVhZF9jbGVhcl9mYWlsX3N0YXRlKHZvaWQp Owordm9pZCBpZ3RfdGhyZWFkX2ZhaWwodm9pZCk7Cit2b2lkIGlndF90aHJlYWRfYXNzZXJ0X25v X2ZhaWx1cmVzKHZvaWQpOworCiBib29sIGlndF90aHJlYWRfaXNfbWFpbih2b2lkKTsKZGlmZiAt LWdpdCBhL2xpYi90ZXN0cy9pZ3RfdGVzdHNfY29tbW9uLmggYi9saWIvdGVzdHMvaWd0X3Rlc3Rz X2NvbW1vbi5oCmluZGV4IGZhOGFkOTIwLi4wNThmNjI2NSAxMDA2NDQKLS0tIGEvbGliL3Rlc3Rz L2lndF90ZXN0c19jb21tb24uaAorKysgYi9saWIvdGVzdHMvaWd0X3Rlc3RzX2NvbW1vbi5oCkBA IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5o PgogI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8cmVnZXguaD4KIAogLyoKICAqIFdlIG5l ZWQgdG8gaGlkZSBhc3NlcnQgZnJvbSB0aGUgY29jY2kgaWd0IHRlc3QgcmVmYWN0b3Igc3BhdGNo LgpAQCAtMTYxLDQgKzE2MiwyNSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcmVhZF93aG9sZV9waXBl KGludCBmZCwgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKQogCQlvZmZzZXQgKz0gcmVhZGxlbjsK IAl9CiB9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBtYXRjaGVzKGNoYXIgKnN0ciwgY29uc3QgY2hh ciAqcmVnZXgpCit7CisJaW50IHJldDsKKwlyZWdleF90IHJlZzsKKworCXJldCA9IHJlZ2NvbXAo JnJlZywgcmVnZXgsIFJFR19FWFRFTkRFRCB8IFJFR19ORVdMSU5FKTsKKworCWlmIChyZXQgPT0g MCkKKwkJcmV0ID0gcmVnZXhlYygmcmVnLCBzdHIsIDAsIE5VTEwsIDApOworCisJaWYgKDAgIT0g cmV0ICYmIFJFR19OT01BVENIICE9IHJldCkgeworCQljaGFyIGVyclsyNTZdOworCQlyZWdlcnJv cihyZXQsICZyZWcsIGVyciwgc2l6ZW9mKGVycikpOworCQlwcmludGYoIiVzXG4iLCBlcnIpOwor CQlhYm9ydCgpOworCX0KKworCXJlZ2ZyZWUoJnJlZyk7CisJcmV0dXJuICFyZXQ7Cit9CiAjZW5k aWYKZGlmZiAtLWdpdCBhL2xpYi90ZXN0cy9pZ3RfdGhyZWFkLmMgYi9saWIvdGVzdHMvaWd0X3Ro cmVhZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4xYTczNGU2ZAotLS0g L2Rldi9udWxsCisrKyBiL2xpYi90ZXN0cy9pZ3RfdGhyZWFkLmMKQEAgLTAsMCArMSwxOTQgQEAK Ky8qCisgKiBDb3B5cmlnaHQgwqkgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICog dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGlu Y2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgor ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUgPHB0 aHJlYWQuaD4KKworI2luY2x1ZGUgImRybXRlc3QuaCIKKyNpbmNsdWRlICJpZ3RfY29yZS5oIgor I2luY2x1ZGUgImlndF90ZXN0c19jb21tb24uaCIKKworY2hhciBwcm9nW10gPSAiaWd0X3RocmVh ZCI7CitjaGFyICpmYWtlX2FyZ3ZbXSA9IHsgcHJvZyB9OworaW50IGZha2VfYXJnYyA9IEFSUkFZ X1NJWkUoZmFrZV9hcmd2KTsKKworc3RhdGljIHZvaWQgKnN1Y2Nlc190aHJlYWQodm9pZCAqZGF0 YSkKK3sKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHZvaWQgKmZhaWx1cmVfdGhyZWFkKHZv aWQgKmRhdGEpCit7CisJaWd0X2Fzc2VydChmYWxzZSk7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0 YXRpYyB2b2lkIG9uZV9zdWJ0ZXN0X2ZhaWwodm9pZCkgeworCWlndF9zdWJ0ZXN0X2luaXQoZmFr ZV9hcmdjLCBmYWtlX2FyZ3YpOworCisJaWd0X3N1YnRlc3QoInN1YnRlc3QtYSIpIHsKKwkJcHRo cmVhZF90IHRocmVhZDsKKwkJcHRocmVhZF9jcmVhdGUoJnRocmVhZCwgMCwgZmFpbHVyZV90aHJl YWQsIE5VTEwpOworCQlwdGhyZWFkX2pvaW4odGhyZWFkLCBOVUxMKTsKKwl9CisKKwlpZ3Rfc3Vi dGVzdCgic3VidGVzdC1iIikgeworCQlwdGhyZWFkX3QgdGhyZWFkOworCQlwdGhyZWFkX2NyZWF0 ZSgmdGhyZWFkLCAwLCBzdWNjZXNfdGhyZWFkLCBOVUxMKTsKKwkJcHRocmVhZF9qb2luKHRocmVh ZCwgTlVMTCk7CisJfQorCisJaWd0X2V4aXQoKTsKK30KKworc3RhdGljIHZvaWQgb25lX2R5bmFt aWNfZmFpbCh2b2lkKSB7CisJaWd0X3N1YnRlc3RfaW5pdChmYWtlX2FyZ2MsIGZha2VfYXJndik7 CisKKwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWMoImR5bmFtaWMtY29udGFpbmVyIikgeworCQlp Z3RfZHluYW1pYygiZHluYW1pYy1hIikgeworCQkJcHRocmVhZF90IHRocmVhZDsKKwkJCXB0aHJl YWRfY3JlYXRlKCZ0aHJlYWQsIDAsIGZhaWx1cmVfdGhyZWFkLCBOVUxMKTsKKwkJCXB0aHJlYWRf am9pbih0aHJlYWQsIE5VTEwpOworCQl9CisKKwkJaWd0X2R5bmFtaWMoImR5bmFtaWMtYiIpIHsK KwkJCXB0aHJlYWRfdCB0aHJlYWQ7CisJCQlwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCAwLCBzdWNj ZXNfdGhyZWFkLCBOVUxMKTsKKwkJCXB0aHJlYWRfam9pbih0aHJlYWQsIE5VTEwpOworCQl9CisJ fQorCisJaWd0X2V4aXQoKTsKK30KKworc3RhdGljIHZvaWQgc2ltcGxlX3N1Y2Nlc3Modm9pZCkg eworCXB0aHJlYWRfdCB0aHJlYWQ7CisKKwlpZ3Rfc2ltcGxlX2luaXQoZmFrZV9hcmdjLCBmYWtl X2FyZ3YpOworCisJcHRocmVhZF9jcmVhdGUoJnRocmVhZCwgMCwgc3VjY2VzX3RocmVhZCwgTlVM TCk7CisJcHRocmVhZF9qb2luKHRocmVhZCwgTlVMTCk7CisKKwlpZ3RfZXhpdCgpOworfQorCitz dGF0aWMgdm9pZCBzaW1wbGVfZmFpbHVyZSh2b2lkKSB7CisJcHRocmVhZF90IHRocmVhZDsKKwor CWlndF9zaW1wbGVfaW5pdChmYWtlX2FyZ2MsIGZha2VfYXJndik7CisKKwlwdGhyZWFkX2NyZWF0 ZSgmdGhyZWFkLCAwLCBmYWlsdXJlX3RocmVhZCwgTlVMTCk7CisJcHRocmVhZF9qb2luKHRocmVh ZCwgTlVMTCk7CisKKwlpZ3RfZXhpdCgpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCit7CisJaW50IHN0YXR1czsKKwlpbnQgb3V0ZmQ7CisJcGlkX3QgcGlkOworCisJLyog ZmFpbGluZyBzaG91bGQgYmUgbGltaXRlZCBqdXN0IHRvIGEgc2luZ2xlIHN1YnRlc3QgKi8gewor CQlzdGF0aWMgY2hhciBvdXRbNDA5Nl07CisKKwkJcGlkID0gZG9fZm9ya19iZ193aXRoX3BpcGVz KG9uZV9zdWJ0ZXN0X2ZhaWwsICZvdXRmZCwgTlVMTCk7CisKKwkJcmVhZF93aG9sZV9waXBlKG91 dGZkLCBvdXQsIHNpemVvZihvdXQpKTsKKworCQlpbnRlcm5hbF9hc3NlcnQoc2FmZV93YWl0KHBp ZCwgJnN0YXR1cykgIT0gLTEpOworCQlpbnRlcm5hbF9hc3NlcnRfd2V4aXRlZChzdGF0dXMsIElH VF9FWElUX0ZBSUxVUkUpOworCisJCWludGVybmFsX2Fzc2VydChtYXRjaGVzKG91dCwgIlxcW3Ro cmVhZDouKlxcXSBTdGFjayB0cmFjZSIpKTsKKwkJaW50ZXJuYWxfYXNzZXJ0KHN0cnN0cihvdXQs ICJTdWJ0ZXN0IHN1YnRlc3QtYTogRkFJTCIpKTsKKwkJaW50ZXJuYWxfYXNzZXJ0KHN0cnN0cihv dXQsICJTdWJ0ZXN0IHN1YnRlc3QtYjogU1VDQ0VTUyIpKTsKKworCQljbG9zZShvdXRmZCk7CisJ fQorCisJLyogZmFpbGluZyBzaG91bGQgYmUgbGltaXRlZCBqdXN0IHRvIGEgZHluYW1pYyBzdWJz dWJ0ZXN0ICovIHsKKwkJc3RhdGljIGNoYXIgb3V0WzQwOTZdOworCisJCXBpZCA9IGRvX2Zvcmtf Ymdfd2l0aF9waXBlcyhvbmVfZHluYW1pY19mYWlsLCAmb3V0ZmQsIE5VTEwpOworCisJCXJlYWRf d2hvbGVfcGlwZShvdXRmZCwgb3V0LCBzaXplb2Yob3V0KSk7CisKKwkJaW50ZXJuYWxfYXNzZXJ0 KHNhZmVfd2FpdChwaWQsICZzdGF0dXMpICE9IC0xKTsKKwkJaW50ZXJuYWxfYXNzZXJ0X3dleGl0 ZWQoc3RhdHVzLCBJR1RfRVhJVF9GQUlMVVJFKTsKKworCQlpbnRlcm5hbF9hc3NlcnQobWF0Y2hl cyhvdXQsICJcXFt0aHJlYWQ6LipcXF0gU3RhY2sgdHJhY2UiKSk7CisJCWludGVybmFsX2Fzc2Vy dChzdHJzdHIob3V0LCAiRHluYW1pYyBzdWJ0ZXN0IGR5bmFtaWMtYTogRkFJTCIpKTsKKwkJaW50 ZXJuYWxfYXNzZXJ0KHN0cnN0cihvdXQsICJEeW5hbWljIHN1YnRlc3QgZHluYW1pYy1iOiBTVUND RVNTIikpOworCisJCWNsb3NlKG91dGZkKTsKKwl9CisKKwkvKiBzdWNjZXNzIGluIGEgc2ltcGxl IHRlc3QgKi8geworCQlzdGF0aWMgY2hhciBvdXRbNDA5Nl07CisKKwkJcGlkID0gZG9fZm9ya19i Z193aXRoX3BpcGVzKHNpbXBsZV9zdWNjZXNzLCAmb3V0ZmQsIE5VTEwpOworCisJCXJlYWRfd2hv bGVfcGlwZShvdXRmZCwgb3V0LCBzaXplb2Yob3V0KSk7CisKKwkJaW50ZXJuYWxfYXNzZXJ0KHNh ZmVfd2FpdChwaWQsICZzdGF0dXMpICE9IC0xKTsKKwkJaW50ZXJuYWxfYXNzZXJ0X3dleGl0ZWQo c3RhdHVzLCBJR1RfRVhJVF9TVUNDRVNTKTsKKworCisJCWludGVybmFsX2Fzc2VydChtYXRjaGVz KG91dCwgIl5TVUNDRVNTIikpOworCisJCWNsb3NlKG91dGZkKTsKKwl9CisKKwkvKiBzdWNjZXNz IGluIGEgc2ltcGxlIHRlc3QgKi8geworCQlzdGF0aWMgY2hhciBvdXRbNDA5Nl07CisKKwkJcGlk ID0gZG9fZm9ya19iZ193aXRoX3BpcGVzKHNpbXBsZV9zdWNjZXNzLCAmb3V0ZmQsIE5VTEwpOwor CisJCXJlYWRfd2hvbGVfcGlwZShvdXRmZCwgb3V0LCBzaXplb2Yob3V0KSk7CisKKwkJaW50ZXJu YWxfYXNzZXJ0KHNhZmVfd2FpdChwaWQsICZzdGF0dXMpICE9IC0xKTsKKwkJaW50ZXJuYWxfYXNz ZXJ0X3dleGl0ZWQoc3RhdHVzLCBJR1RfRVhJVF9TVUNDRVNTKTsKKworCQlpbnRlcm5hbF9hc3Nl cnQobWF0Y2hlcyhvdXQsICJeU1VDQ0VTUyIpKTsKKworCQljbG9zZShvdXRmZCk7CisJfQorCisJ LyogZmFpbHVyZSBpbiBhIHNpbXBsZSB0ZXN0ICovIHsKKwkJc3RhdGljIGNoYXIgb3V0WzQwOTZd OworCisJCXBpZCA9IGRvX2ZvcmtfYmdfd2l0aF9waXBlcyhzaW1wbGVfZmFpbHVyZSwgJm91dGZk LCBOVUxMKTsKKworCQlyZWFkX3dob2xlX3BpcGUob3V0ZmQsIG91dCwgc2l6ZW9mKG91dCkpOwor CisJCWludGVybmFsX2Fzc2VydChzYWZlX3dhaXQocGlkLCAmc3RhdHVzKSAhPSAtMSk7CisJCWlu dGVybmFsX2Fzc2VydF93ZXhpdGVkKHN0YXR1cywgSUdUX0VYSVRfRkFJTFVSRSk7CisKKwkJaW50 ZXJuYWxfYXNzZXJ0KG1hdGNoZXMob3V0LCAiXFxbdGhyZWFkOi4qXFxdIFN0YWNrIHRyYWNlIikp OworCQlpbnRlcm5hbF9hc3NlcnQobWF0Y2hlcyhvdXQsICJeRkFJTCIpKTsKKworCQljbG9zZShv dXRmZCk7CisJfQorCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9saWIvdGVzdHMvbWVzb24u YnVpbGQgYi9saWIvdGVzdHMvbWVzb24uYnVpbGQKaW5kZXggNDdlZjMwM2EuLjljZjVmZjQ3IDEw MDY0NAotLS0gYS9saWIvdGVzdHMvbWVzb24uYnVpbGQKKysrIGIvbGliL3Rlc3RzL21lc29uLmJ1 aWxkCkBAIC0xOCw2ICsxOCw3IEBAIGxpYl90ZXN0cyA9IFsKIAknaWd0X3NpbXVsYXRpb24nLAog CSdpZ3Rfc3RhdHMnLAogCSdpZ3Rfc3VidGVzdF9ncm91cCcsCisJJ2lndF90aHJlYWQnLAogCSdp OTE1X3BlcmZfZGF0YV9hbGlnbm1lbnQnLAogXQogCi0tIAoyLjI1LjQKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0Cmln dC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=