From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id CAAAE6E2DC for ; Thu, 4 Jul 2019 09:56:23 +0000 (UTC) From: Oleg Vasilev Date: Thu, 4 Jul 2019 12:56:04 +0300 Message-Id: <20190704095604.16589-2-oleg.vasilev@intel.com> In-Reply-To: <20190704095604.16589-1-oleg.vasilev@intel.com> References: <20190704095604.16589-1-oleg.vasilev@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH 2/2] tests/prime_generic: add vendor-agnostic prime tests 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: Daniel Vetter List-ID: Q3VycmVudGx5LCB3ZSBoYXZlIGRpZmZlcmVudCBzZXRzIG9mIHByaW1lIHRlc3RzOgogLSB2Z2Vt K2k5MTUKIC0gYW1kZ3B1K2k5MTUKIC0gbnYraTkxNQoKVGhvc2UgdGVzdHMgdXNlIHZlbmRvci1z cGVjaWZpYyBpb2N0bHMsIHRoZXJlZm9yZSwgbm90IGludGVyY2hhbmdlYWJsZS4KVGhlIGlkZWEg aXMgdG8gY3JlYXRlIGEgc2V0IG9mIHRlc3RzIHdoaWNoIGFyZSBleHBlY3RlZCB0byB3b3JrIG9u IGFueQpwcmltZS1jb21wYXRpYmxlIGRyaXZlci4gSXQgY2FuIGJlIHJ1biB3aXRoIGFueSBjb21i aW5hdGlvbiBvZgpleHBvcnRlcitpbXBvcnRlciwgd2hlcmUKClRoZSBmaXJzdCB0ZXN0IGlzIHNp bXBsZToKMS4gRXhwb3J0ZXIgY3JlYXRlcyBhIGZyYW1lYnVmZmVyIGFuZCBmaWxscyBpdCB3aXRo IGEgcGxhaW4gY29sb3IKMi4gRmIgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIGltcG9ydGVyCjMuIElt cG9ydGVyIG1vZGVzZXRzIGFuZCBjb21wdXRlcyBwaXBlIENSQwo0LiBJbXBvcnRlciBkcmF3cyB0 aGUgc2FtZSBjb2xvciB0aHJvdWdoIGNhaXJvIGFuZCBjb21wYXJlcyBDUkMKClRoZSBpbml0aWFs IG1vdGl2YXRpb24gY29tZXMgZnJvbSB0aGUgbmVlZCB0byB0ZXN0IHByaW1lIHN1cHBvcnQgaW4K dmttcy4KCkNjOiBSb2RyaWdvIFNpcXVlaXJhIDxyb2RyaWdvc2lxdWVpcmFtZWxvQGdtYWlsLmNv bT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KU2lnbmVkLW9mZi1ieTogT2xl ZyBWYXNpbGV2IDxvbGVnLnZhc2lsZXZAaW50ZWwuY29tPgotLS0KIHRlc3RzL21lc29uLmJ1aWxk ICAgICB8ICAgMSArCiB0ZXN0cy9wcmltZV9nZW5lcmljLmMgfCAyMzggKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDIzOSBpbnNlcnRp b25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvcHJpbWVfZ2VuZXJpYy5jCgpkaWZmIC0t Z2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAppbmRleCAzNGE3NDAy NS4uMWM5MzhlOTUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCisrKyBiL3Rlc3RzL21l c29uLmJ1aWxkCkBAIC03Niw2ICs3Niw3IEBAIHRlc3RfcHJvZ3MgPSBbCiAJJ3ByaW1lX3NlbGZf aW1wb3J0JywKIAkncHJpbWVfdWRsJywKIAkncHJpbWVfdmdlbScsCisJJ3ByaW1lX2dlbmVyaWMn LAogCSdzeW5jb2JqX2Jhc2ljJywKIAknc3luY29ial93YWl0JywKIAkndGVtcGxhdGUnLApkaWZm IC0tZ2l0IGEvdGVzdHMvcHJpbWVfZ2VuZXJpYy5jIGIvdGVzdHMvcHJpbWVfZ2VuZXJpYy5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi42NWU0ODc2MwotLS0gL2Rldi9udWxs CisrKyBiL3Rlc3RzL3ByaW1lX2dlbmVyaWMuYwpAQCAtMCwwICsxLDIzOCBAQAorLyoKKyAqIENv cHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBo ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK KyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp bGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRz IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj ZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJt aXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNv LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUg Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRo ZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Ig c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09G VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg RVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRI RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBE QU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5H UworICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRl ICJpZ3RfdmdlbS5oIgorCisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8c3lzL3Bv bGwuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisKK3N0YXRpYyBzdHJ1Y3QgeworCWRvdWJsZSByLCBn LCBiOworCXVpbnQzMl90IGNvbG9yOworCWlndF9jcmNfdCBwcmltZV9jcmM7CisJaWd0X2NyY190 IGRpcmVjdF9jcmM7CisJY2hhciAqcHJpbWVfc3RyOworCWNoYXIgKmRpcmVjdF9zdHI7Cit9IGNv bG9yc1szXSA9IHsKKwl7IC5yID0gMC4wLCAuZyA9IDAuMCwgLmIgPSAwLjAsIC5jb2xvciA9IDB4 ZmYwMDAwMDB9LAorCXsgLnIgPSAxLjAsIC5nID0gMS4wLCAuYiA9IDEuMCwgLmNvbG9yID0gMHhm ZmZmZmZmZn0sCisJeyAuciA9IDEuMCwgLmcgPSAwLjAsIC5iID0gMC4wLCAuY29sb3IgPSAweGZm ZmYwMDAwfSwKK307CisKK0lHVF9URVNUX0RFU0NSSVBUSU9OKCJHZW5lcmljIHRlc3RzLCB3b3Jr aW5nIHdpdGggYW55IHByaW1lIGRldmljZSIpOworCitzdGF0aWMgYm9vbCBoYXNfcHJpbWVfaW1w b3J0KGludCBmZCkKK3sKKwl1aW50NjRfdCB2YWx1ZTsKKworCWlmIChkcm1HZXRDYXAoZmQsIERS TV9DQVBfUFJJTUUsICZ2YWx1ZSkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB2YWx1ZSAm IERSTV9QUklNRV9DQVBfSU1QT1JUOworfQorCitzdGF0aWMgYm9vbCBoYXNfcHJpbWVfZXhwb3J0 KGludCBmZCkKK3sKKwl1aW50NjRfdCB2YWx1ZTsKKworCWlmIChkcm1HZXRDYXAoZmQsIERSTV9D QVBfUFJJTUUsICZ2YWx1ZSkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB2YWx1ZSAmIERS TV9QUklNRV9DQVBfRVhQT1JUOworfQorCitzdGF0aWMgdm9pZCBwcmVwYXJlX3NjcmF0Y2goaW50 IGV4cG9ydGVyLCBzdHJ1Y3QgdmdlbV9ibyAqc2NyYXRjaCwKKwkJCSAgICBkcm1Nb2RlTW9kZUlu Zm8gKm1vZGUsIHVpbnQzMl90IGNvbG9yKQoreworCWludCBpOworCXVpbnQzMl90ICpwdHI7CisK KwlzY3JhdGNoLT53aWR0aCA9IG1vZGUtPmhkaXNwbGF5OworCXNjcmF0Y2gtPmhlaWdodCA9IG1v ZGUtPnZkaXNwbGF5OworCXNjcmF0Y2gtPmJwcCA9IDMyOworCXZnZW1fY3JlYXRlKGV4cG9ydGVy LCBzY3JhdGNoKTsKKworCXB0ciA9IHZnZW1fbW1hcChleHBvcnRlciwgc2NyYXRjaCwgUFJPVF9X UklURSk7CisJZm9yIChpID0gMDsgaSA8IHNjcmF0Y2gtPnNpemUgLyBzaXplb2YoKnB0cik7ICsr aSkKKwkJcHRyW2ldID0gY29sb3I7CisKKwltdW5tYXAocHRyLCBzY3JhdGNoLT5zaXplKTsKK30K Kworc3RhdGljIHZvaWQgcHJlcGFyZV9mYihpbnQgaW1wb3J0ZXIsIHN0cnVjdCB2Z2VtX2JvICpz Y3JhdGNoLCBzdHJ1Y3QgaWd0X2ZiICpmYikKK3sKKwllbnVtIGlndF9jb2xvcl9lbmNvZGluZyBj b2xvcl9lbmNvZGluZyA9IElHVF9DT0xPUl9ZQ0JDUl9CVDcwOTsKKwllbnVtIGlndF9jb2xvcl9y YW5nZSBjb2xvcl9yYW5nZSA9IElHVF9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdFOworCisJaWd0 X2luaXRfZmIoZmIsIGltcG9ydGVyLCBzY3JhdGNoLT53aWR0aCwgc2NyYXRjaC0+aGVpZ2h0LAor CQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKKwkJ ICAgIGNvbG9yX2VuY29kaW5nLCBjb2xvcl9yYW5nZSk7Cit9CisKK3N0YXRpYyB2b2lkIGltcG9y dF9mYihpbnQgaW1wb3J0ZXIsIHN0cnVjdCBpZ3RfZmIgKmZiLAorCQkgICAgICBpbnQgZG1hYnVm X2ZkLCB1aW50MzJfdCBwaXRjaCkKK3sKKwl1aW50MzJfdCBvZmZzZXRzWzRdLCBwaXRjaGVzWzRd LCBoYW5kbGVzWzRdOworCWludCByZXQ7CisKKwlmYi0+Z2VtX2hhbmRsZSA9IHByaW1lX2ZkX3Rv X2hhbmRsZShpbXBvcnRlciwgZG1hYnVmX2ZkKTsKKworCWhhbmRsZXNbMF0gPSBmYi0+Z2VtX2hh bmRsZTsKKwlwaXRjaGVzWzBdID0gcGl0Y2g7CisJb2Zmc2V0c1swXSA9IDA7CisKKwlyZXQgPSBk cm1Nb2RlQWRkRkIyKGltcG9ydGVyLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsCisJCQkgICAgRFJN X0ZPUk1BVF9YUkdCODg4OCwKKwkJCSAgICBoYW5kbGVzLCBwaXRjaGVzLCBvZmZzZXRzLAorCQkJ ICAgICZmYi0+ZmJfaWQsIDApOworCWlndF9hc3NlcnQocmV0ID09IDApOworfQorCitzdGF0aWMg dm9pZCBzZXRfZmIoc3RydWN0IGlndF9mYiAqZmIsCisJCSAgIGlndF9kaXNwbGF5X3QgKmRpc3Bs YXksCisJCSAgIGlndF9vdXRwdXRfdCAqb3V0cHV0KQoreworCWlndF9wbGFuZV90ICpwcmltYXJ5 OworCWludCByZXQ7CisKKwlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmUob3V0cHV0LCAw KTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIGZiKTsKKwlyZXQgPSBpZ3RfZGlzcGxheV9j b21taXQoZGlzcGxheSk7CisKKwlpZ3RfYXNzZXJ0KHJldCA9PSAwKTsKK30KKworc3RhdGljIHZv aWQgdGVzdF9jcmMoaW50IGV4cG9ydGVyLCBpbnQgaW1wb3J0ZXIpCit7CisJZW51bSBwaXBlIHBp cGUgPSBQSVBFX0E7CisJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5OworCWlndF9vdXRwdXRfdCAqb3V0 cHV0OworCWlndF9waXBlX2NyY190ICpwaXBlX2NyYzsKKwlzdHJ1Y3QgaWd0X2ZiIGZiOworCWlu dCBkbWFidWZfZmQ7CisJc3RydWN0IHZnZW1fYm8gc2NyYXRjaDsgLyogZGVzcGl0ZSB0aGUgbmFt ZSwgaXQgc3VpdHMgZm9yIGFueQorCQkJCSAgIGdlbS1jb21wYXRpYmxlIGRldmljZSAqLworCWlu dCBpLCBqOworCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKKworCWJvb2wgY3JjX2VxdWFsOworCisJ aWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGlzcGxheSwgaW1wb3J0ZXIpOworCWlndF9za2lwX29uKHBp cGUgPj0gZGlzcGxheS5uX3BpcGVzKTsKKwlvdXRwdXQgPSBpZ3RfZ2V0X3NpbmdsZV9vdXRwdXRf Zm9yX3BpcGUoJmRpc3BsYXksIHBpcGUpOworCWlndF9yZXF1aXJlX2Yob3V0cHV0LCAiTm8gY29u bmVjdG9yIGZvdW5kIGZvciBwaXBlICVzXG4iLAorCQkgICAgICBrbXN0ZXN0X3BpcGVfbmFtZShw aXBlKSk7CisKKwlpZ3RfZGlzcGxheV9yZXNldCgmZGlzcGxheSk7CisJaWd0X291dHB1dF9zZXRf cGlwZShvdXRwdXQsIHBpcGUpOworCisJbW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0 KTsKKwlwaXBlX2NyYyA9IGlndF9waXBlX2NyY19uZXcoaW1wb3J0ZXIsIHBpcGUsIElOVEVMX1BJ UEVfQ1JDX1NPVVJDRV9BVVRPKTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNvbG9y cyk7IGkrKykgeworCQlwcmVwYXJlX3NjcmF0Y2goZXhwb3J0ZXIsICZzY3JhdGNoLCBtb2RlLCBj b2xvcnNbaV0uY29sb3IpOworCQlkbWFidWZfZmQgPSBwcmltZV9oYW5kbGVfdG9fZmQoZXhwb3J0 ZXIsIHNjcmF0Y2guaGFuZGxlKTsKKwkJZ2VtX2Nsb3NlKGV4cG9ydGVyLCBzY3JhdGNoLmhhbmRs ZSk7CisKKwkJcHJlcGFyZV9mYihpbXBvcnRlciwgJnNjcmF0Y2gsICZmYik7CisJCWltcG9ydF9m YihpbXBvcnRlciwgJmZiLCBkbWFidWZfZmQsIHNjcmF0Y2gucGl0Y2gpOworCQljbG9zZShkbWFi dWZfZmQpOworCisJCXNldF9mYigmZmIsICZkaXNwbGF5LCBvdXRwdXQpOworCQlpZ3RfcGlwZV9j cmNfY29sbGVjdF9jcmMocGlwZV9jcmMsICZjb2xvcnNbaV0ucHJpbWVfY3JjKTsKKwkJY29sb3Jz W2ldLnByaW1lX3N0ciA9IGlndF9jcmNfdG9fc3RyaW5nKCZjb2xvcnNbaV0ucHJpbWVfY3JjKTsK KwkJaWd0X2RlYnVnKCJQcmltZSBDUkMgZm9yICUjMDh4IGlzICVzXG4iLAorCQkJICBjb2xvcnNb aV0uY29sb3IsIGNvbG9yc1tpXS5wcmltZV9zdHIpOworCQlpZ3RfcmVtb3ZlX2ZiKGltcG9ydGVy LCAmZmIpOworCisJCWlndF9jcmVhdGVfY29sb3JfZmIoaW1wb3J0ZXIsCisJCQkJICAgIG1vZGUt PmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKKwkJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwg TE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKKwkJCQkgICAgY29sb3JzW2ldLnIsIGNvbG9yc1tp XS5nLCBjb2xvcnNbaV0uYiwKKwkJCQkgICAgJmZiKTsKKworCQlzZXRfZmIoJmZiLCAmZGlzcGxh eSwgb3V0cHV0KTsKKwkJaWd0X3BpcGVfY3JjX2NvbGxlY3RfY3JjKHBpcGVfY3JjLCAmY29sb3Jz W2ldLmRpcmVjdF9jcmMpOworCQljb2xvcnNbaV0uZGlyZWN0X3N0ciA9IGlndF9jcmNfdG9fc3Ry aW5nKCZjb2xvcnNbaV0uZGlyZWN0X2NyYyk7CisJCWlndF9kZWJ1ZygiRGlyZWN0IENSQyBmb3Ig JSMwOHggaXMgJXNcbiIsCisJCQkgIGNvbG9yc1tpXS5jb2xvciwgY29sb3JzW2ldLmRpcmVjdF9z dHIpOworCQlpZ3RfcmVtb3ZlX2ZiKGltcG9ydGVyLCAmZmIpOworCX0KKwlpZ3RfcGlwZV9jcmNf ZnJlZShwaXBlX2NyYyk7CisKKwlpZ3RfZGVidWcoIkNSQyB0YWJsZTpcbiIpOworCWlndF9kZWJ1 ZygiQ29sb3JcdFx0UHJpbWVcdFx0RGlyZWN0XG4iKTsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlf U0laRShjb2xvcnMpOyBpKyspIHsKKwkJaWd0X2RlYnVnKCIlIzA4eFx0JS44c1x0JS44c1xuIiwg Y29sb3JzW2ldLmNvbG9yLAorCQkJICBjb2xvcnNbaV0ucHJpbWVfc3RyLCBjb2xvcnNbaV0uZGly ZWN0X3N0cik7CisJfQorCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29sb3JzKTsgaSsr KSB7CisJCWZvciAoaiA9IDA7IGogPCBBUlJBWV9TSVpFKGNvbG9ycyk7IGorKykgeworCQkJaWYg KGkgPT0gaikgeworCQkJCWlndF9hc3NlcnRfY3JjX2VxdWFsKCZjb2xvcnNbaV0ucHJpbWVfY3Jj LAorCQkJCQkJICAgICAmY29sb3JzW2pdLmRpcmVjdF9jcmMpOworCQkJfSBlbHNlIHsKKwkJCQlj cmNfZXF1YWwgPSBpZ3RfY2hlY2tfY3JjX2VxdWFsKCZjb2xvcnNbaV0ucHJpbWVfY3JjLAorCQkJ CQkJCQkmY29sb3JzW2pdLmRpcmVjdF9jcmMpOworCQkJCWlndF9hc3NlcnRfZighY3JjX2VxdWFs LCAiQ1JDIHNob3VsZCBiZSBkaWZmZXJlbnQiKTsKKwkJCX0KKwkJfQorCX0KK30KKworc3RhdGlj IHZvaWQgcnVuX3Rlc3RfY3JjKGludCBleHBvcnRfY2hpcHNldCwgaW50IGltcG9ydF9jaGlwc2V0 KQoreworCWludCBpbXBvcnRlciA9IC0xOworCWludCBleHBvcnRlciA9IC0xOworCisJZXhwb3J0 ZXIgPSBkcm1fb3Blbl9kcml2ZXIoZXhwb3J0X2NoaXBzZXQpOworCWltcG9ydGVyID0gZHJtX29w ZW5fZHJpdmVyX21hc3RlcihpbXBvcnRfY2hpcHNldCk7CisKKwlpZ3RfcmVxdWlyZShoYXNfcHJp bWVfZXhwb3J0KGV4cG9ydGVyKSk7CisJaWd0X3JlcXVpcmUoaGFzX3ByaW1lX2ltcG9ydChpbXBv cnRlcikpOworCWlndF9yZXF1aXJlX3BpcGVfY3JjKGltcG9ydGVyKTsKKworCXRlc3RfY3JjKGV4 cG9ydGVyLCBpbXBvcnRlcik7CisJY2xvc2UoaW1wb3J0ZXIpOworCWNsb3NlKGV4cG9ydGVyKTsK K30KKworaWd0X21haW4KK3sKKwlpZ3RfZml4dHVyZSB7CisJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBo aWNzX21vZGUoKTsKKwl9CisJaWd0X3N1YnRlc3QoImNyYy12Z2VtLXZrbXMiKQorCQlydW5fdGVz dF9jcmMoRFJJVkVSX1ZHRU0sIERSSVZFUl9WS01TKTsKKwlpZ3Rfc3VidGVzdCgiY3JjLWk5MTUt dmttcyIpCisJCXJ1bl90ZXN0X2NyYyhEUklWRVJfSU5URUwsIERSSVZFUl9WS01TKTsKKwlpZ3Rf c3VidGVzdCgiY3JjLXZnZW0taTkxNSIpCisJCXJ1bl90ZXN0X2NyYyhEUklWRVJfVkdFTSwgRFJJ VkVSX0lOVEVMKTsKKwlpZ3Rfc3VidGVzdCgiY3JjLWFtZC1pOTE1IikKKwkJcnVuX3Rlc3RfY3Jj KERSSVZFUl9BTURHUFUsIERSSVZFUl9JTlRFTCk7CisJaWd0X3N1YnRlc3QoImNyYy1pOTE1LWFt ZCIpCisJCXJ1bl90ZXN0X2NyYyhEUklWRVJfSU5URUwsIERSSVZFUl9BTURHUFUpOworfQotLSAK Mi4yMi4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpp Z3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=