From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH i-g-t 10/17] tests: Add gem_ctx_param_basic Date: Tue, 10 Feb 2015 19:05:53 +0100 Message-ID: <1423591560-9471-10-git-send-email-daniel.vetter@ffwll.ch> References: <1423591560-9471-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f47.google.com (mail-wg0-f47.google.com [74.125.82.47]) by gabe.freedesktop.org (Postfix) with ESMTP id 141656E690 for ; Tue, 10 Feb 2015 10:04:52 -0800 (PST) Received: by mail-wg0-f47.google.com with SMTP id n12so35164787wgh.6 for ; Tue, 10 Feb 2015 10:04:51 -0800 (PST) In-Reply-To: <1423591560-9471-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel Graphics Development Cc: Daniel Vetter , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org Qm9yaW5nIGlvY3RsIHZhbGlkYXRpb24uIEx1Y2tpbHkgbm8gZ2FwcyBmb3VuZCB3aGlsZSBkb2lu ZyBpdC4KCnYyOiBnaXQgYWRkIGZ0dyEKCnYzOiBGaXhlczoKCi0gYXJncy0+c2l6ZSBpcyBhbiBv dXRwYXJhbSBmb3IgZ2V0LCBhZGp1c3QgdGVzdC4KLSBQaWNrIGFuIGludmFsaWQgcGFyYW0sIG5v dCBhbiBpbnZhbGlkIGlvY3RsIG51bWJlciAuLi4gdHNrLgoKU2lnbmVkLW9mZi1ieTogRGFuaWVs IFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Ci0tLQogdGVzdHMvLmdpdGlnbm9yZSAg ICAgICAgICAgIHwgICAxICsKIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgICAgICB8ICAgMSArCiB0 ZXN0cy9nZW1fY3R4X2V4ZWMuYyAgICAgICAgfCAgIDMgKy0KIHRlc3RzL2dlbV9jdHhfcGFyYW1f YmFzaWMuICB8IDE3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogdGVzdHMvZ2VtX2N0eF9wYXJhbV9iYXNpYy5jIHwgMTM3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDMxMyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvZ2VtX2N0eF9wYXJhbV9iYXNpYy4K IGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9nZW1fY3R4X3BhcmFtX2Jhc2ljLmMKCmRpZmYgLS1n aXQgYS90ZXN0cy8uZ2l0aWdub3JlIGIvdGVzdHMvLmdpdGlnbm9yZQppbmRleCA4OGE2NDA1Mzk0 YjIuLjdiNGRkOTQ3MjJhMiAxMDA2NDQKLS0tIGEvdGVzdHMvLmdpdGlnbm9yZQorKysgYi90ZXN0 cy8uZ2l0aWdub3JlCkBAIC0zMCw2ICszMCw3IEBAIGdlbV9jdHhfYmFzaWMKIGdlbV9jdHhfY3Jl YXRlCiBnZW1fY3R4X2V4ZWMKIGdlbV9jdHhfdGhyYXNoCitnZW1fY3R4X3BhcmFtX2Jhc2ljCiBn ZW1fZG91YmxlX2lycV9sb29wCiBnZW1fZHVtbXlfcmVsb2NfbG9vcAogZ2VtX2V2aWN0X2FsaWdu bWVudApkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxl LnNvdXJjZXMKaW5kZXggNzRkZWVjMzEyN2ZiLi41MWU4Mzc2YjI0ZTYgMTAwNjQ0Ci0tLSBhL3Rl c3RzL01ha2VmaWxlLnNvdXJjZXMKKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwpAQCAtMjMs NiArMjMsNyBAQCBURVNUU19wcm9nc19NID0gXAogCWdlbV9jbG9zZV9yYWNlIFwKIAlnZW1fY29u Y3VycmVudF9ibGl0IFwKIAlnZW1fY3NfdGxiIFwKKwlnZW1fY3R4X3BhcmFtX2Jhc2ljIFwKIAln ZW1fY3R4X2JhZF9leGVjIFwKIAlnZW1fY3R4X2V4ZWMgXAogCWdlbV9kdW1teV9yZWxvY19sb29w IFwKZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9jdHhfZXhlYy5jIGIvdGVzdHMvZ2VtX2N0eF9leGVj LmMKaW5kZXggY2E1YmY2NDBhZGFmLi5lYWQzZDQ2MzAwM2EgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2dl bV9jdHhfZXhlYy5jCisrKyBiL3Rlc3RzL2dlbV9jdHhfZXhlYy5jCkBAIC0xNjEsNyArMTYxLDgg QEAgaW50IGZkOwogaWd0X21haW4KIHsKIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7Ci0JCWln dF9maXh0dXJlIHsKKworCWlndF9maXh0dXJlIHsKIAkJZmQgPSBkcm1fb3Blbl9hbnlfcmVuZGVy KCk7CiAKIAkJaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CmRpZmYgLS1naXQgYS90ZXN0 cy9nZW1fY3R4X3BhcmFtX2Jhc2ljLiBiL3Rlc3RzL2dlbV9jdHhfcGFyYW1fYmFzaWMuCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmQ4NjZiM2VlZTI2Ci0tLSAvZGV2 L251bGwKKysrIGIvdGVzdHMvZ2VtX2N0eF9wYXJhbV9iYXNpYy4KQEAgLTAsMCArMSwxNzIgQEAK Ky8qCisgKiBDb3B5cmlnaHQgwqkgMjAxMSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICog dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGlu Y2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgor ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogICAg QmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0PgorICoKKyAqLworCisvKgorICogVGhpcyB0 ZXN0IGlzIHVzZWZ1bCBmb3IgZmluZGluZyBtZW1vcnkgYW5kIHJlZmNvdW50IGxlYWtzLgorICov CisKKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8 c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNp bmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8ZXJybm8u aD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVk ZSAiZHJtLmgiCisjaW5jbHVkZSAiaW9jdGxfd3JhcHBlcnMuaCIKKyNpbmNsdWRlICJkcm10ZXN0 LmgiCisjaW5jbHVkZSAiaW50ZWxfYnVmbWdyLmgiCisjaW5jbHVkZSAiaW50ZWxfYmF0Y2hidWZm ZXIuaCIKKyNpbmNsdWRlICJpbnRlbF9pby5oIgorI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIK KworSUdUX1RFU1RfREVTQ1JJUFRJT04oIkJhc2ljIHRlc3QgZm9yIG1lbW9yeSBhbmQgcmVmY291 bnQgbGVha3MuIik7CisKKy8qIG9wdGlvbnMgKi8KK2ludCBudW1fY29udGV4dHMgPSAxMDsKK2lu dCB1bmNvbnRleHRlZCA9IDA7IC8qIHRlc3Qgb25seSBjb250ZXh0IGNyZWF0ZS9kZXN0cm95ICov CitpbnQgbXVsdGlwbGVfZmRzID0gMTsKK2ludCBpdGVyID0gMTAwMDA7CisKKy8qIGdsb2JhbHMg Ki8KK3B0aHJlYWRfdCAqdGhyZWFkczsKK2ludCBkZXZpZDsKK2ludCBmZDsKKworc3RhdGljIHZv aWQgaW5pdF9idWZmZXIoZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyLAorCQkJc3RydWN0IGlndF9i dWYgKmJ1ZiwKKwkJCXVpbnQzMl90IHNpemUpCit7CisJYnVmLT5ibyA9IGRybV9pbnRlbF9ib19h bGxvYyhidWZtZ3IsICIiLCBzaXplLCA0MDk2KTsKKwlidWYtPnNpemUgPSBzaXplOworCWlndF9h c3NlcnQoYnVmLT5ibyk7CisJYnVmLT50aWxpbmcgPSBJOTE1X1RJTElOR19OT05FOworCWJ1Zi0+ c3RyaWRlID0gNDA5NjsKK30KKworc3RhdGljIHZvaWQgKndvcmsodm9pZCAqYXJnKQoreworCXN0 cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2g7CisJaWd0X3JlbmRlcl9jb3B5ZnVuY190IHJl bmRlcmNvcHkgPSBpZ3RfZ2V0X3JlbmRlcl9jb3B5ZnVuYyhkZXZpZCk7CisJZHJtX2ludGVsX2Nv bnRleHQgKmNvbnRleHQ7CisJZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyOworCWludCB0ZF9mZDsK KwlpbnQgaTsKKworCWlmIChtdWx0aXBsZV9mZHMpCisJCXRkX2ZkID0gZmQgPSBkcm1fb3Blbl9h bnlfcmVuZGVyKCk7CisJZWxzZQorCQl0ZF9mZCA9IGZkOworCisJaWd0X2Fzc2VydCh0ZF9mZCA+ PSAwKTsKKworCWJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQodGRfZmQsIDQwOTYp OworCWJhdGNoID0gaW50ZWxfYmF0Y2hidWZmZXJfYWxsb2MoYnVmbWdyLCBkZXZpZCk7CisJY29u dGV4dCA9IGRybV9pbnRlbF9nZW1fY29udGV4dF9jcmVhdGUoYnVmbWdyKTsKKwlpZ3RfcmVxdWly ZShjb250ZXh0KTsKKworCWZvciAoaSA9IDA7IGkgPCBpdGVyOyBpKyspIHsKKwkJc3RydWN0IGln dF9idWYgc3JjLCBkc3Q7CisKKwkJaW5pdF9idWZmZXIoYnVmbWdyLCAmc3JjLCA0MDk2KTsKKwkJ aW5pdF9idWZmZXIoYnVmbWdyLCAmZHN0LCA0MDk2KTsKKworCisJCWlmICh1bmNvbnRleHRlZCkg eworCQkJaWd0X2Fzc2VydChyZW5kZXJjb3B5KTsKKwkJCXJlbmRlcmNvcHkoYmF0Y2gsIE5VTEws ICZzcmMsIDAsIDAsIDAsIDAsICZkc3QsIDAsIDApOworCQl9IGVsc2UgeworCQkJaW50IHJldDsK KwkJCXJldCA9IGRybV9pbnRlbF9ib19zdWJkYXRhKGJhdGNoLT5ibywgMCwgNDA5NiwgYmF0Y2gt PmJ1ZmZlcik7CisJCQlpZ3RfYXNzZXJ0KHJldCA9PSAwKTsKKwkJCWludGVsX2JhdGNoYnVmZmVy X2ZsdXNoX3dpdGhfY29udGV4dChiYXRjaCwgY29udGV4dCk7CisJCX0KKwl9CisKKwlkcm1faW50 ZWxfZ2VtX2NvbnRleHRfZGVzdHJveShjb250ZXh0KTsKKwlpbnRlbF9iYXRjaGJ1ZmZlcl9mcmVl KGJhdGNoKTsKKwlkcm1faW50ZWxfYnVmbWdyX2Rlc3Ryb3koYnVmbWdyKTsKKworCWlmIChtdWx0 aXBsZV9mZHMpCisJCWNsb3NlKHRkX2ZkKTsKKworCXB0aHJlYWRfZXhpdChOVUxMKTsKK30KKwor c3RhdGljIGludCBvcHRfaGFuZGxlcihpbnQgb3B0LCBpbnQgb3B0X2luZGV4KQoreworCXN3aXRj aCAob3B0KSB7CisJCWNhc2UgJ2knOgorCQkJaXRlciA9IGF0b2kob3B0YXJnKTsKKwkJCWJyZWFr OworCQljYXNlICdjJzoKKwkJCW51bV9jb250ZXh0cyA9IGF0b2kob3B0YXJnKTsKKwkJCWJyZWFr OworCQljYXNlICdtJzoKKwkJCW11bHRpcGxlX2ZkcyA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAn dSc6CisJCQl1bmNvbnRleHRlZCA9IDE7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gMDsKK30K KworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlpbnQgaTsKKworCWlndF9z aW1wbGVfaW5pdF9wYXJzZV9vcHRzKGFyZ2MsIGFyZ3YsICJpOmM6bjptdSIsIE5VTEwsIE5VTEws CisJCQkJICAgb3B0X2hhbmRsZXIpOworCisJZmQgPSBkcm1fb3Blbl9hbnlfcmVuZGVyKCk7CisJ ZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGZkKTsKKworCWlmIChpZ3RfcnVuX2luX3NpbXVs YXRpb24oKSkgeworCQludW1fY29udGV4dHMgPSAyOworCQlpdGVyID0gNDsKKwl9CisKKwl0aHJl YWRzID0gY2FsbG9jKG51bV9jb250ZXh0cywgc2l6ZW9mKCp0aHJlYWRzKSk7CisKKwlmb3IgKGkg PSAwOyBpIDwgbnVtX2NvbnRleHRzOyBpKyspCisJCXB0aHJlYWRfY3JlYXRlKCZ0aHJlYWRzW2ld LCBOVUxMLCB3b3JrLCAmaSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2NvbnRleHRzOyBpKysp IHsKKwkJdm9pZCAqcmV0dmFsOworCQlpZ3RfYXNzZXJ0KHB0aHJlYWRfam9pbih0aHJlYWRzW2ld LCAmcmV0dmFsKSA9PSAwKTsKKwl9CisKKwlmcmVlKHRocmVhZHMpOworCWNsb3NlKGZkKTsKKwor CWlndF9leGl0KCk7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9nZW1fY3R4X3BhcmFtX2Jhc2ljLmMg Yi90ZXN0cy9nZW1fY3R4X3BhcmFtX2Jhc2ljLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi44YTI1MzRjZDY0ZWUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9nZW1f Y3R4X3BhcmFtX2Jhc2ljLmMKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkg MjAxNSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50 ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9m IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT b2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNv cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBh bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0 byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICog cGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs IHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBS T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IK KyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg T0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug QU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBP UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBP VEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRI RSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogICAgRGFuaWVsIFZldHRlciA8ZGFuaWVs LnZldHRlckBmZndsbC5jaD4KKyAqLworCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8 c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlICJpb2N0bF93cmFwcGVy cy5oIgorI2luY2x1ZGUgImRybXRlc3QuaCIKKyNpbmNsdWRlICJpZ3RfYXV4LmMiCisKK0lHVF9U RVNUX0RFU0NSSVBUSU9OKCJCYXNpYyB0ZXN0IGZvciBjb250ZXh0IHNldC9nZXQgcGFyYW0gaW5w dXQgdmFsaWRhdGlvbi4iKTsKKworaW50IGZkOworaW50MzJfdCBjdHg7CisKKyNkZWZpbmUgTE9D QUxfSTkxNV9HRU1fQ09OVEVYVF9HRVRQQVJBTSAgICAgICAweDM0CisjZGVmaW5lIExPQ0FMX0k5 MTVfR0VNX0NPTlRFWFRfU0VUUEFSQU0gICAgICAgMHgzNQorI2RlZmluZSBMT0NBTF9JT0NUTF9J OTE1X0dFTV9DT05URVhUX0dFVFBBUkFNIERSTV9JT1dSIChEUk1fQ09NTUFORF9CQVNFICsgTE9D QUxfSTkxNV9HRU1fQ09OVEVYVF9HRVRQQVJBTSwgc3RydWN0IGxvY2FsX2k5MTVfZ2VtX2NvbnRl eHRfcGFyYW0pCisjZGVmaW5lIExPQ0FMX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRfU0VUUEFSQU0g RFJNX0lPV1IgKERSTV9DT01NQU5EX0JBU0UgKyBMT0NBTF9JOTE1X0dFTV9DT05URVhUX1NFVFBB UkFNLCBzdHJ1Y3QgbG9jYWxfaTkxNV9nZW1fY29udGV4dF9wYXJhbSkKKworI2RlZmluZSBURVNU X1NVQ0NFU1MoaW9jKSBcCisJaWd0X2Fzc2VydChkcm1Jb2N0bChmZCwgKGlvYyksICZjdHhfcGFy YW0pID09IDApOworI2RlZmluZSBURVNUX0ZBSUwoaW9jLCBleHBfZXJybm8pIFwKKwlpZ3RfYXNz ZXJ0KGRybUlvY3RsKGZkLCAoaW9jKSwgJmN0eF9wYXJhbSkgPCAwICYmIGVycm5vID09IGV4cF9l cnJubyk7CisKK2lndF9tYWluCit7CisJc3RydWN0IGxvY2FsX2k5MTVfZ2VtX2NvbnRleHRfcGFy YW0gY3R4X3BhcmFtOworCisJbWVtc2V0KCZjdHhfcGFyYW0sIDAsIHNpemVvZihjdHhfcGFyYW0p KTsKKworCWlndF9maXh0dXJlIHsKKwkJZmQgPSBkcm1fb3Blbl9hbnlfcmVuZGVyKCk7CisJCWN0 eCA9IGdlbV9jb250ZXh0X2NyZWF0ZShmZCk7CisJfQorCisJY3R4X3BhcmFtLnBhcmFtICA9IExP Q0FMX0NPTlRFWFRfUEFSQU1fQkFOX1BFUklPRDsKKworCWlndF9zdWJ0ZXN0KCJiYXNpYyIpIHsK KwkJY3R4X3BhcmFtLmNvbnRleHQgPSBjdHg7CisJCVRFU1RfU1VDQ0VTUyhMT0NBTF9JT0NUTF9J OTE1X0dFTV9DT05URVhUX0dFVFBBUkFNKTsKKwkJVEVTVF9TVUNDRVNTKExPQ0FMX0lPQ1RMX0k5 MTVfR0VNX0NPTlRFWFRfU0VUUEFSQU0pOworCX0KKworCWlndF9zdWJ0ZXN0KCJiYXNpYy1kZWZh dWx0IikgeworCQljdHhfcGFyYW0uY29udGV4dCA9IDA7CisJCVRFU1RfU1VDQ0VTUyhMT0NBTF9J T0NUTF9JOTE1X0dFTV9DT05URVhUX0dFVFBBUkFNKTsKKwkJVEVTVF9TVUNDRVNTKExPQ0FMX0lP Q1RMX0k5MTVfR0VNX0NPTlRFWFRfU0VUUEFSQU0pOworCX0KKworCWlndF9zdWJ0ZXN0KCJpbnZh bGlkLWN0eC1nZXQiKSB7CisJCWN0eF9wYXJhbS5jb250ZXh0ID0gMjsKKwkJVEVTVF9GQUlMKExP Q0FMX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRfR0VUUEFSQU0sIEVOT0VOVCk7CisJfQorCisJaWd0 X3N1YnRlc3QoImludmFsaWQtY3R4LXNldCIpIHsKKwkJY3R4X3BhcmFtLmNvbnRleHQgPSBjdHg7 CisJCVRFU1RfU1VDQ0VTUyhMT0NBTF9JT0NUTF9JOTE1X0dFTV9DT05URVhUX0dFVFBBUkFNKTsK KwkJY3R4X3BhcmFtLmNvbnRleHQgPSAyOworCQlURVNUX0ZBSUwoTE9DQUxfSU9DVExfSTkxNV9H RU1fQ09OVEVYVF9TRVRQQVJBTSwgRU5PRU5UKTsKKwl9CisKKwlpZ3Rfc3VidGVzdCgiaW52YWxp ZC1zaXplLWdldCIpIHsKKwkJY3R4X3BhcmFtLmNvbnRleHQgPSBjdHg7CisJCWN0eF9wYXJhbS5z aXplID0gODsKKwkJVEVTVF9TVUNDRVNTKExPQ0FMX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRfR0VU UEFSQU0pOworCQlpZ3RfYXNzZXJ0KGN0eF9wYXJhbS5zaXplID09IDApOworCX0KKworCWlndF9z dWJ0ZXN0KCJpbnZhbGlkLXNpemUtc2V0IikgeworCQljdHhfcGFyYW0uY29udGV4dCA9IGN0eDsK KwkJVEVTVF9TVUNDRVNTKExPQ0FMX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRfR0VUUEFSQU0pOwor CQljdHhfcGFyYW0uc2l6ZSA9IDg7CisJCVRFU1RfRkFJTChMT0NBTF9JT0NUTF9JOTE1X0dFTV9D T05URVhUX1NFVFBBUkFNLCBFSU5WQUwpOworCQljdHhfcGFyYW0uc2l6ZSA9IDA7CisJfQorCisJ Y3R4X3BhcmFtLnBhcmFtICA9IExPQ0FMX0NPTlRFWFRfUEFSQU1fQkFOX1BFUklPRCArIDE7CisK KwlpZ3Rfc3VidGVzdCgiaW52YWxpZC1wYXJhbS1nZXQiKSB7CisJCWN0eF9wYXJhbS5jb250ZXh0 ID0gY3R4OworCQlURVNUX0ZBSUwoTE9DQUxfSU9DVExfSTkxNV9HRU1fQ09OVEVYVF9HRVRQQVJB TSwgRUlOVkFMKTsKKwl9CisKKwlpZ3Rfc3VidGVzdCgiaW52YWxpZC1wYXJhbS1zZXQiKSB7CisJ CWN0eF9wYXJhbS5jb250ZXh0ID0gY3R4OworCQlURVNUX0ZBSUwoTE9DQUxfSU9DVExfSTkxNV9H RU1fQ09OVEVYVF9TRVRQQVJBTSwgRUlOVkFMKTsKKwl9CisKKwljdHhfcGFyYW0ucGFyYW0gID0g TE9DQUxfQ09OVEVYVF9QQVJBTV9CQU5fUEVSSU9EOworCisJaWd0X3N1YnRlc3QoIm5vbi1yb290 LXNldCIpIHsKKwkJaWd0X2ZvcmsoY2hpbGQsIDEpIHsKKwkJCWlndF9kcm9wX3Jvb3QoKTsKKwor CQkJY3R4X3BhcmFtLmNvbnRleHQgPSBjdHg7CisJCQlURVNUX1NVQ0NFU1MoTE9DQUxfSU9DVExf STkxNV9HRU1fQ09OVEVYVF9HRVRQQVJBTSk7CisJCQljdHhfcGFyYW0udmFsdWUtLTsKKwkJCVRF U1RfRkFJTChMT0NBTF9JT0NUTF9JOTE1X0dFTV9DT05URVhUX1NFVFBBUkFNLCBFUEVSTSk7CisJ CX0KKworCQlpZ3Rfd2FpdGNoaWxkcmVuKCk7CisJfQorCisJaWd0X3N1YnRlc3QoInJvb3Qtc2V0 IikgeworCQljdHhfcGFyYW0uY29udGV4dCA9IGN0eDsKKwkJVEVTVF9TVUNDRVNTKExPQ0FMX0lP Q1RMX0k5MTVfR0VNX0NPTlRFWFRfR0VUUEFSQU0pOworCQljdHhfcGFyYW0udmFsdWUtLTsKKwkJ VEVTVF9TVUNDRVNTKExPQ0FMX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRfU0VUUEFSQU0pOworCX0K KworCWlndF9maXh0dXJlCisJCWNsb3NlKGZkKTsKK30KLS0gCjIuMS40CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=