From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 4/4] tests/gem_vmap_blits: Remove obsolete test case Date: Mon, 3 Feb 2014 10:59:43 +0000 Message-ID: <1391425183-1980-5-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1391425183-1980-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 3935810582D for ; Mon, 3 Feb 2014 07:11:46 -0800 (PST) In-Reply-To: <1391425183-1980-1-git-send-email-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCk5vIG5lZWQg Zm9yIHRoZSBvbGQgdGVzdCBjYXNlIG9uY2UgdGhlIG5ldyBvbmUgd2FzIGFkZGVkLgoKU2lnbmVk LW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiB0 ZXN0cy8uZ2l0aWdub3JlICAgICAgIHwgICAxIC0KIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgfCAg IDEgLQogdGVzdHMvZ2VtX3ZtYXBfYmxpdHMuYyB8IDM0NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDM0NiBkZWxldGlv bnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9nZW1fdm1hcF9ibGl0cy5jCgpkaWZmIC0t Z2l0IGEvdGVzdHMvLmdpdGlnbm9yZSBiL3Rlc3RzLy5naXRpZ25vcmUKaW5kZXggNzdhYjM0ZS4u Nzk4ZWVlZCAxMDA2NDQKLS0tIGEvdGVzdHMvLmdpdGlnbm9yZQorKysgYi90ZXN0cy8uZ2l0aWdu b3JlCkBAIC05MSw3ICs5MSw2IEBAIGdlbV90aWxlZF9zd2FwcGluZwogZ2VtX3RpbGluZ19tYXhf c3RyaWRlCiBnZW1fdW5mZW5jZV9hY3RpdmVfYnVmZmVycwogZ2VtX3VucmVmX2FjdGl2ZV9idWZm ZXJzCi1nZW1fdm1hcF9ibGl0cwogZ2VtX3VzZXJwdHJfYmxpdHMKIGdlbV93YWl0X3JlbmRlcl90 aW1lb3V0CiBnZW1fd3JpdGVfcmVhZF9yaW5nX3N3aXRjaApkaWZmIC0tZ2l0IGEvdGVzdHMvTWFr ZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggNzY5OWE4NC4uMmQ0 MmExOCAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtl ZmlsZS5zb3VyY2VzCkBAIC0xMTUsNyArMTE1LDYgQEAgVEVTVFNfcHJvZ3MgPSBcCiAJZ2VtX3Rp bGluZ19tYXhfc3RyaWRlIFwKIAlnZW1fdW5mZW5jZV9hY3RpdmVfYnVmZmVycyBcCiAJZ2VtX3Vu cmVmX2FjdGl2ZV9idWZmZXJzIFwKLQlnZW1fdm1hcF9ibGl0cyBcCiAJZ2VtX3VzZXJwdHJfYmxp dHMgXAogCWdlbV93YWl0X3JlbmRlcl90aW1lb3V0IFwKIAlnZW4zX21peGVkX2JsaXRzIFwKZGlm ZiAtLWdpdCBhL3Rlc3RzL2dlbV92bWFwX2JsaXRzLmMgYi90ZXN0cy9nZW1fdm1hcF9ibGl0cy5j CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODI5N2FmLi4wMDAwMDAwCi0tLSBhL3Rl c3RzL2dlbV92bWFwX2JsaXRzLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzNDQgKzAsMCBAQAotLyoK LSAqIENvcHlyaWdodCDCqSAyMDA5LDIwMTEgSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBQZXJt aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv YnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3 YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAq IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli dXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwg YW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNo ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAq IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChp bmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxs IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoK LSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G IEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBT SEFMTAotICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB TlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLSAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCi0gKiBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9U SEVSIERFQUxJTkdTCi0gKiBJTiBUSEUgU09GVFdBUkUuCi0gKgotICogQXV0aG9yczoKLSAqICAg IEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+Ci0gKiAgICBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KLSAqCi0gKi8KLQotLyoqIEBmaWxlIGdlbV92bWFwX2JsaXRz LmMKLSAqCi0gKiBUaGlzIGlzIGEgdGVzdCBvZiBkb2luZyBtYW55IGJsaXRzIHVzaW5nIGEgbWl4 dHVyZSBvZiBub3JtYWwgc3lzdGVtIHBhZ2VzCi0gKiBhbmQgdW5jYWNoZWQgbGluZWFyIGJ1ZmZl cnMsIHdpdGggYSB3b3JraW5nIHNldCBsYXJnZXIgdGhhbiB0aGUKLSAqIGFwZXJ0dXJlIHNpemUu Ci0gKgotICogVGhlIGdvYWwgaXMgdG8gc2ltcGx5IGVuc3VyZSB0aGUgYmFzaWNzIHdvcmsuCi0g Ki8KLQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8 c3RyaW5nLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxpbnR0eXBlcy5oPgotI2lu Y2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdGlt ZS5oPgotI2luY2x1ZGUgImRybS5oIgotI2luY2x1ZGUgImk5MTVfZHJtLmgiCi0jaW5jbHVkZSAi ZHJtdGVzdC5oIgotI2luY2x1ZGUgImludGVsX2J1Zm1nci5oIgotI2luY2x1ZGUgImludGVsX2Jh dGNoYnVmZmVyLmgiCi0jaW5jbHVkZSAiaW50ZWxfZ3B1X3Rvb2xzLmgiCi0KLSNpZiAhZGVmaW5l ZChJOTE1X1BBUkFNX0hBU19WTUFQKQotI3ByYWdtYSBtZXNzYWdlKCJObyB2bWFwIHN1cHBvcnQg aW4gZHJtLCBza2lwcGluZyIpCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi17Ci0J ZnByaW50ZihzdGRlcnIsICJObyB2bWFwIHN1cHBvcnQgaW4gZHJtLlxuIik7Ci0JcmV0dXJuIDc3 OwotfQotI2Vsc2UKLQotI2RlZmluZSBXSURUSCA1MTIKLSNkZWZpbmUgSEVJR0hUIDUxMgotCi1z dGF0aWMgdWludDMyX3QgbGluZWFyW1dJRFRIKkhFSUdIVF07Ci0KLXN0YXRpYyB1aW50MzJfdCBn ZW1fdm1hcChpbnQgZmQsIHZvaWQgKnB0ciwgaW50IHNpemUsIGludCByZWFkX29ubHkpCi17Ci0J c3RydWN0IGRybV9pOTE1X2dlbV92bWFwIHZtYXA7Ci0KLQl2bWFwLnVzZXJfcHRyID0gKHVpbnRw dHJfdClwdHI7Ci0Jdm1hcC51c2VyX3NpemUgPSBzaXplOwotCXZtYXAuZmxhZ3MgPSAwOwotCWlm IChyZWFkX29ubHkpCi0JCXZtYXAuZmxhZ3MgfD0gSTkxNV9WTUFQX1JFQURfT05MWTsKLQotCWlm IChkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VNX1ZNQVAsICZ2bWFwKSkKLQkJcmV0dXJu IDA7Ci0KLQlyZXR1cm4gdm1hcC5oYW5kbGU7Ci19Ci0KLQotc3RhdGljIHZvaWQgZ2VtX3ZtYXBf c3luYyhpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSkKLXsKLQlnZW1fc2V0X2RvbWFpbihmZCwgaGFu ZGxlLCBJOTE1X0dFTV9ET01BSU5fQ1BVLCBJOTE1X0dFTV9ET01BSU5fQ1BVKTsKLX0KLQotc3Rh dGljIHZvaWQKLWNvcHkoaW50IGZkLCB1aW50MzJfdCBkc3QsIHVpbnQzMl90IHNyYykKLXsKLQl1 aW50MzJfdCBiYXRjaFsxMF07Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9yZWxvY2F0aW9uX2VudHJ5 IHJlbG9jWzJdOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9ialszXTsKLQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWM7Ci0JdWludDMyX3QgaGFuZGxlOwot CWludCByZXQ7Ci0KLQliYXRjaFswXSA9IFhZX1NSQ19DT1BZX0JMVF9DTUQgfAotCQkgIFhZX1NS Q19DT1BZX0JMVF9XUklURV9BTFBIQSB8Ci0JCSAgWFlfU1JDX0NPUFlfQkxUX1dSSVRFX1JHQiB8 IDY7Ci0JYmF0Y2hbMV0gPSAoMyA8PCAyNCkgfCAvKiAzMiBiaXRzICovCi0JCSAgKDB4Y2MgPDwg MTYpIHwgLyogY29weSBST1AgKi8KLQkJICBXSURUSCo0OwotCWJhdGNoWzJdID0gMDsgLyogZHN0 IHgxLHkxICovCi0JYmF0Y2hbM10gPSAoSEVJR0hUIDw8IDE2KSB8IFdJRFRIOyAvKiBkc3QgeDIs eTIgKi8KLQliYXRjaFs0XSA9IDA7IC8qIGRzdCByZWxvYyAqLwotCWJhdGNoWzVdID0gMDsgLyog c3JjIHgxLHkxICovCi0JYmF0Y2hbNl0gPSBXSURUSCo0OwotCWJhdGNoWzddID0gMDsgLyogc3Jj IHJlbG9jICovCi0JYmF0Y2hbOF0gPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwotCWJhdGNoWzldID0g TUlfTk9PUDsKLQotCWhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwotCWdlbV93cml0ZShm ZCwgaGFuZGxlLCAwLCBiYXRjaCwgc2l6ZW9mKGJhdGNoKSk7Ci0KLQlyZWxvY1swXS50YXJnZXRf aGFuZGxlID0gZHN0OwotCXJlbG9jWzBdLmRlbHRhID0gMDsKLQlyZWxvY1swXS5vZmZzZXQgPSA0 ICogc2l6ZW9mKGJhdGNoWzBdKTsKLQlyZWxvY1swXS5wcmVzdW1lZF9vZmZzZXQgPSAwOwotCXJl bG9jWzBdLnJlYWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9SRU5ERVI7OwotCXJlbG9jWzBd LndyaXRlX2RvbWFpbiA9IEk5MTVfR0VNX0RPTUFJTl9SRU5ERVI7Ci0KLQlyZWxvY1sxXS50YXJn ZXRfaGFuZGxlID0gc3JjOwotCXJlbG9jWzFdLmRlbHRhID0gMDsKLQlyZWxvY1sxXS5vZmZzZXQg PSA3ICogc2l6ZW9mKGJhdGNoWzBdKTsKLQlyZWxvY1sxXS5wcmVzdW1lZF9vZmZzZXQgPSAwOwot CXJlbG9jWzFdLnJlYWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9SRU5ERVI7OwotCXJlbG9j WzFdLndyaXRlX2RvbWFpbiA9IDA7Ci0KLQlvYmpbMF0uaGFuZGxlID0gZHN0OwotCW9ialswXS5y ZWxvY2F0aW9uX2NvdW50ID0gMDsKLQlvYmpbMF0ucmVsb2NzX3B0ciA9IDA7Ci0Jb2JqWzBdLmFs aWdubWVudCA9IDA7Ci0Jb2JqWzBdLm9mZnNldCA9IDA7Ci0Jb2JqWzBdLmZsYWdzID0gMDsKLQlv YmpbMF0ucnN2ZDEgPSAwOwotCW9ialswXS5yc3ZkMiA9IDA7Ci0KLQlvYmpbMV0uaGFuZGxlID0g c3JjOwotCW9ialsxXS5yZWxvY2F0aW9uX2NvdW50ID0gMDsKLQlvYmpbMV0ucmVsb2NzX3B0ciA9 IDA7Ci0Jb2JqWzFdLmFsaWdubWVudCA9IDA7Ci0Jb2JqWzFdLm9mZnNldCA9IDA7Ci0Jb2JqWzFd LmZsYWdzID0gMDsKLQlvYmpbMV0ucnN2ZDEgPSAwOwotCW9ialsxXS5yc3ZkMiA9IDA7Ci0KLQlv YmpbMl0uaGFuZGxlID0gaGFuZGxlOwotCW9ialsyXS5yZWxvY2F0aW9uX2NvdW50ID0gMjsKLQlv YmpbMl0ucmVsb2NzX3B0ciA9ICh1aW50cHRyX3QpcmVsb2M7Ci0Jb2JqWzJdLmFsaWdubWVudCA9 IDA7Ci0Jb2JqWzJdLm9mZnNldCA9IDA7Ci0Jb2JqWzJdLmZsYWdzID0gMDsKLQlvYmpbMl0ucnN2 ZDEgPSBvYmpbMl0ucnN2ZDIgPSAwOwotCi0JZXhlYy5idWZmZXJzX3B0ciA9ICh1aW50cHRyX3Qp b2JqOwotCWV4ZWMuYnVmZmVyX2NvdW50ID0gMzsKLQlleGVjLmJhdGNoX3N0YXJ0X29mZnNldCA9 IDA7Ci0JZXhlYy5iYXRjaF9sZW4gPSBzaXplb2YoYmF0Y2gpOwotCWV4ZWMuRFIxID0gZXhlYy5E UjQgPSAwOwotCWV4ZWMubnVtX2NsaXByZWN0cyA9IDA7Ci0JZXhlYy5jbGlwcmVjdHNfcHRyID0g MDsKLQlleGVjLmZsYWdzID0gSEFTX0JMVF9SSU5HKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKSA/ IEk5MTVfRVhFQ19CTFQgOiAwOwotCWV4ZWMucnN2ZDEgPSBleGVjLnJzdmQyID0gMDsKLQotCXJl dCA9IGRybUlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRU1fRVhFQ0JVRkZFUjIsICZleGVjKTsK LQl3aGlsZSAocmV0ICYmIGVycm5vID09IEVCVVNZKSB7Ci0JCWRybUNvbW1hbmROb25lKGZkLCBE Uk1fSTkxNV9HRU1fVEhST1RUTEUpOwotCQlyZXQgPSBkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX0k5 MTVfR0VNX0VYRUNCVUZGRVIyLCAmZXhlYyk7Ci0JfQotCWlndF9hc3NlcnQocmV0ID09IDApOwot Ci0JZ2VtX2Nsb3NlKGZkLCBoYW5kbGUpOwotfQotCi1zdGF0aWMgdWludDMyX3QKLWNyZWF0ZV92 bWFwKGludCBmZCwgdWludDMyX3QgdmFsLCB1aW50MzJfdCAqcHRyKQotewotCXVpbnQzMl90IGhh bmRsZTsKLQlpbnQgaTsKLQotCWhhbmRsZSA9IGdlbV92bWFwKGZkLCBwdHIsIHNpemVvZihsaW5l YXIpLCAwKTsKLQotCS8qIEZpbGwgdGhlIEJPIHdpdGggZHdvcmRzIHN0YXJ0aW5nIGF0IHZhbCAq LwotCWZvciAoaSA9IDA7IGkgPCBXSURUSCpIRUlHSFQ7IGkrKykKLQkJcHRyW2ldID0gdmFsKys7 Ci0KLQlyZXR1cm4gaGFuZGxlOwotfQotCi1zdGF0aWMgdWludDMyX3QKLWNyZWF0ZV9ibyhpbnQg ZmQsIHVpbnQzMl90IHZhbCkKLXsKLQl1aW50MzJfdCBoYW5kbGU7Ci0JaW50IGk7Ci0KLQloYW5k bGUgPSBnZW1fY3JlYXRlKGZkLCBzaXplb2YobGluZWFyKSk7Ci0KLQkvKiBGaWxsIHRoZSBCTyB3 aXRoIGR3b3JkcyBzdGFydGluZyBhdCB2YWwgKi8KLQlmb3IgKGkgPSAwOyBpIDwgV0lEVEgqSEVJ R0hUOyBpKyspCi0JCWxpbmVhcltpXSA9IHZhbCsrOwotCWdlbV93cml0ZShmZCwgaGFuZGxlLCAw LCBsaW5lYXIsIHNpemVvZihsaW5lYXIpKTsKLQotCXJldHVybiBoYW5kbGU7Ci19Ci0KLXN0YXRp YyB2b2lkCi1jaGVja19jcHUodWludDMyX3QgKnB0ciwgdWludDMyX3QgdmFsKQotewotCWludCBp OwotCi0JZm9yIChpID0gMDsgaSA8IFdJRFRIKkhFSUdIVDsgaSsrKSB7Ci0JCWlmIChwdHJbaV0g IT0gdmFsKSB7Ci0JCQlmcHJpbnRmKHN0ZGVyciwgIkV4cGVjdGVkIDB4JTA4eCwgZm91bmQgMHgl MDh4ICIKLQkJCQkiYXQgb2Zmc2V0IDB4JTA4eFxuIiwKLQkJCQl2YWwsIHB0cltpXSwgaSAqIDQp OwotCQkJYWJvcnQoKTsKLQkJfQotCQl2YWwrKzsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkCi1jaGVj a19ncHUoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVpbnQzMl90IHZhbCkKLXsKLQlnZW1fcmVh ZChmZCwgaGFuZGxlLCAwLCBsaW5lYXIsIHNpemVvZihsaW5lYXIpKTsKLQljaGVja19jcHUobGlu ZWFyLCB2YWwpOwotfQotCi1zdGF0aWMgaW50IGhhc192bWFwKGludCBmZCkKLXsKLQlkcm1faTkx NV9nZXRwYXJhbV90IGdwOwotCWludCBpOwotCi0JZ3AucGFyYW0gPSBJOTE1X1BBUkFNX0hBU19W TUFQOwotCWdwLnZhbHVlID0gJmk7Ci0KLQlyZXR1cm4gZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9J OTE1X0dFVFBBUkFNLCAmZ3ApID09IDAgJiYgaSA+IDA7Ci19Ci0KLWludCBtYWluKGludCBhcmdj LCBjaGFyICoqYXJndikKLXsKLQl1aW50MzJfdCAqbWVtb3J5OwotCXVpbnQzMl90ICpjcHUsICpj cHVfdmFsOwotCXVpbnQzMl90ICpncHUsICpncHVfdmFsOwotCXVpbnQzMl90IHN0YXJ0ID0gMDsK LQlpbnQgaSwgZmQsIGNvdW50OwotCi0JaWd0X3NpbXBsZV9pbml0KCk7Ci0KLQlpZ3Rfc2tpcF9v bl9zaW11bGF0aW9uKCk7Ci0KLQlmZCA9IGRybV9vcGVuX2FueSgpOwotCi0JaWYgKCFoYXNfdm1h cChmZCkpIHsKLQkJZnByaW50ZihzdGRlcnIsICJObyB2bWFwIHN1cHBvcnQsIGlnbm9yaW5nLlxu Iik7Ci0JCXJldHVybiA3NzsKLQl9Ci0KLQljb3VudCA9IDA7Ci0JaWYgKGFyZ2MgPiAxKQotCQlj b3VudCA9IGF0b2koYXJndlsxXSk7Ci0JaWYgKGNvdW50ID09IDApCi0JCWNvdW50ID0gMyAqIGdl bV9hcGVydHVyZV9zaXplKGZkKSAvICgxMDI0KjEwMjQpIC8gNDsKLQlwcmludGYoIlVzaW5nIDJ4 JWQgMU1pQiBidWZmZXJzXG4iLCBjb3VudCk7Ci0KLQltZW1vcnkgPSBtYWxsb2MoY291bnQqc2l6 ZW9mKGxpbmVhcikpOwotCWlmIChtZW1vcnkgPT0gTlVMTCkgewotCQlmcHJpbnRmKHN0ZGVyciwg IlVuYWJsZSB0byBhbGxvY2F0ZSAlbGxkIGJ5dGVzXG4iLAotCQkJKGxvbmcgbG9uZyljb3VudCpz aXplb2YobGluZWFyKSk7Ci0JCXJldHVybiAxOwotCX0KLQotCWdwdSA9IG1hbGxvYyhzaXplb2Yo dWludDMyX3QpKmNvdW50KjQpOwotCWdwdV92YWwgPSBncHUgKyBjb3VudDsKLQljcHUgPSBncHVf dmFsICsgY291bnQ7Ci0JY3B1X3ZhbCA9IGNwdSArIGNvdW50OwotCi0JZm9yIChpID0gMDsgaSA8 IGNvdW50OyBpKyspIHsKLQkJZ3B1W2ldID0gY3JlYXRlX2JvKGZkLCBzdGFydCk7Ci0JCWdwdV92 YWxbaV0gPSBzdGFydDsKLQkJc3RhcnQgKz0gV0lEVEgqSEVJR0hUOwotCX0KLQotCWZvciAoaSA9 IDA7IGkgPCBjb3VudDsgaSsrKSB7Ci0JCWNwdVtpXSA9IGNyZWF0ZV92bWFwKGZkLCBzdGFydCwg bWVtb3J5K2kqV0lEVEgqSEVJR0hUKTsKLQkJY3B1X3ZhbFtpXSA9IHN0YXJ0OwotCQlzdGFydCAr PSBXSURUSCpIRUlHSFQ7OwotCX0KLQotCXByaW50ZigiVmVyaWZ5aW5nIGluaXRpYWxpc2F0aW9u Li4uXG4iKTsKLQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotCQljaGVja19ncHUoZmQs IGdwdVtpXSwgZ3B1X3ZhbFtpXSk7Ci0JCWNoZWNrX2NwdShtZW1vcnkraSpXSURUSCpIRUlHSFQs IGNwdV92YWxbaV0pOwotCX0KLQotCXByaW50ZigiQ3ljbGljIGJsaXRzIGNwdS0+Z3B1LCBmb3J3 YXJkLi4uXG4iKTsKLQlmb3IgKGkgPSAwOyBpIDwgY291bnQgKiA0OyBpKyspIHsKLQkJaW50IHNy YyA9IGkgJSBjb3VudDsKLQkJaW50IGRzdCA9IChpICsgMSkgJSBjb3VudDsKLQotCQljb3B5KGZk LCBncHVbZHN0XSwgY3B1W3NyY10pOwotCQlncHVfdmFsW2RzdF0gPSBjcHVfdmFsW3NyY107Ci0J fQotCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQotCQljaGVja19ncHUoZmQsIGdwdVtpXSwg Z3B1X3ZhbFtpXSk7Ci0KLQlwcmludGYoIkN5Y2xpYyBibGl0cyBncHUtPmNwdSwgYmFja3dhcmQu Li5cbiIpOwotCWZvciAoaSA9IDA7IGkgPCBjb3VudCAqIDQ7IGkrKykgewotCQlpbnQgc3JjID0g KGkgKyAxKSAlIGNvdW50OwotCQlpbnQgZHN0ID0gaSAlIGNvdW50OwotCi0JCWNvcHkoZmQsIGNw dVtkc3RdLCBncHVbc3JjXSk7Ci0JCWNwdV92YWxbZHN0XSA9IGdwdV92YWxbc3JjXTsKLQl9Ci0J Zm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLQkJZ2VtX3ZtYXBfc3luYyhmZCwgY3B1W2ld KTsKLQkJY2hlY2tfY3B1KG1lbW9yeStpKldJRFRIKkhFSUdIVCwgY3B1X3ZhbFtpXSk7Ci0JfQot Ci0JcHJpbnRmKCJSYW5kb20gYmxpdHMuLi5cbiIpOwotCWZvciAoaSA9IDA7IGkgPCBjb3VudCAq IDQ7IGkrKykgewotCQlpbnQgc3JjID0gcmFuZG9tKCkgJSBjb3VudDsKLQkJaW50IGRzdCA9IHJh bmRvbSgpICUgY291bnQ7Ci0KLQkJaWYgKHJhbmRvbSgpICYgMSkgewotCQkJY29weShmZCwgZ3B1 W2RzdF0sIGNwdVtzcmNdKTsKLQkJCWdwdV92YWxbZHN0XSA9IGNwdV92YWxbc3JjXTsKLQkJfSBl bHNlIHsKLQkJCWNvcHkoZmQsIGNwdVtkc3RdLCBncHVbc3JjXSk7Ci0JCQljcHVfdmFsW2RzdF0g PSBncHVfdmFsW3NyY107Ci0JCX0KLQl9Ci0JZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsK LQkJY2hlY2tfZ3B1KGZkLCBncHVbaV0sIGdwdV92YWxbaV0pOwotCQlnZW1fdm1hcF9zeW5jKGZk LCBjcHVbaV0pOwotCQljaGVja19jcHUobWVtb3J5K2kqV0lEVEgqSEVJR0hULCBjcHVfdmFsW2ld KTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmCi0tIAoxLjguNC4zCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=