From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v2 13/22] drm/i915: treat stolen as a region Date: Thu, 3 Oct 2019 20:24:35 +0100 Message-ID: <20191003192444.10113-14-matthew.auld@intel.com> References: <20191003192444.10113-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 71EC26EA5F for ; Thu, 3 Oct 2019 19:25:09 +0000 (UTC) In-Reply-To: <20191003192444.10113-1-matthew.auld@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q29udmVydCBzdG9sZW4gbWVtb3J5IG92ZXIgdG8gYSByZWdpb24gb2JqZWN0LiBTdGlsbCBsZWF2 ZXMgb3BlbiB0aGUKcXVlc3Rpb24gd2l0aCB3aGF0IHRvIGRvIHdpdGggcHJlLWFsbG9jYXRlZCBv YmplY3RzLi4uCgpTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRl bC5jb20+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5j b20+CkNjOiBBYmRpZWwgSmFudWxndWUgPGFiZGllbC5qYW51bGd1ZUBsaW51eC5pbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0b2xlbi5jIHwgNjYgKysr KysrKysrKysrKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3N0 b2xlbi5oIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAg ICB8IDE0ICstLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jICAgICAgICAgICAg fCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCA2MiBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVu LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmMKaW5kZXggM2Rk Mjk1YmI2MWY2Li5hOTFlZjlmZTk4Y2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9zdG9sZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fc3RvbGVuLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxkcm0vZHJtX21tLmg+ CiAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+CiAKKyNpbmNsdWRlICJnZW0vaTkxNV9nZW1fcmVn aW9uLmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9zdG9sZW4u aCIKIApAQCAtMTUwLDcgKzE1MSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9hZGp1c3Rfc3RvbGVuKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCBp OTE1X2dlbV9jbGVhbnVwX3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CitzdGF0aWMgdm9pZCBpOTE1X2dlbV9jbGVhbnVwX3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiB7CiAJaWYgKCFkcm1fbW1faW5pdGlhbGl6ZWQoJmRldl9wcml2LT5t bS5zdG9sZW4pKQogCQlyZXR1cm47CkBAIC0zNTUsNyArMzU2LDcgQEAgc3RhdGljIHZvaWQgaWNs X2dldF9zdG9sZW5fcmVzZXJ2ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJfQog fQogCi1pbnQgaTkxNV9nZW1faW5pdF9zdG9sZW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQorc3RhdGljIGludCBpOTE1X2dlbV9pbml0X3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJcmVzb3VyY2Vfc2l6ZV90IHJlc2VydmVkX2Jhc2UsIHN0 b2xlbl90b3A7CiAJcmVzb3VyY2Vfc2l6ZV90IHJlc2VydmVkX3RvdGFsLCByZXNlcnZlZF9zaXpl OwpAQCAtNTM5LDYgKzU0MCw5IEBAIGk5MTVfZ2VtX29iamVjdF9yZWxlYXNlX3N0b2xlbihzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCiAJaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9u b2RlKGRldl9wcml2LCBzdG9sZW4pOwogCWtmcmVlKHN0b2xlbik7CisKKwlpZiAob2JqLT5tbS5y ZWdpb24pCisJCWk5MTVfZ2VtX29iamVjdF9yZWxlYXNlX21lbW9yeV9yZWdpb24ob2JqKTsKIH0K IAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dlbV9v YmplY3Rfc3RvbGVuX29wcyA9IHsKQEAgLTU0OCw4ICs1NTIsOSBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzIGk5MTVfZ2VtX29iamVjdF9zdG9sZW5fb3BzID0g ewogfTsKIAogc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKLV9pOTE1X2dlbV9v YmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0J CQkgICAgICAgc3RydWN0IGRybV9tbV9ub2RlICpzdG9sZW4pCitfX2k5MTVfZ2VtX29iamVjdF9j cmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQlzdHJ1 Y3QgZHJtX21tX25vZGUgKnN0b2xlbiwKKwkJCQlzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAq bWVtKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJdW5zaWduZWQgaW50 IGNhY2hlX2xldmVsOwpAQCAtNTY2LDYgKzU3MSw5IEBAIF9pOTE1X2dlbV9vYmplY3RfY3JlYXRl X3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJY2FjaGVfbGV2ZWwg PSBIQVNfTExDKGRldl9wcml2KSA/IEk5MTVfQ0FDSEVfTExDIDogSTkxNV9DQUNIRV9OT05FOwog CWk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfY29oZXJlbmN5KG9iaiwgY2FjaGVfbGV2ZWwpOwog CisJaWYgKG1lbSkKKwkJaTkxNV9nZW1fb2JqZWN0X2luaXRfbWVtb3J5X3JlZ2lvbihvYmosIG1l bSwgMCk7CisKIAlpZiAoaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopKQogCQlnb3RvIGNs ZWFudXA7CiAKQEAgLTU3NiwxMCArNTg0LDEyIEBAIF9pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0 b2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJcmV0dXJuIE5VTEw7CiB9 CiAKLXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKLWk5MTVfZ2VtX29iamVjdF9jcmVhdGVf c3RvbGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgICAgIHJlc291 cmNlX3NpemVfdCBzaXplKQorc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKK19p OTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAq bWVtLAorCQkJICAgICAgIHJlc291cmNlX3NpemVfdCBzaXplLAorCQkJICAgICAgIHVuc2lnbmVk IGludCBmbGFncykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBtZW0t Pmk5MTU7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1Y3QgZHJtX21t X25vZGUgKnN0b2xlbjsKIAlpbnQgcmV0OwpAQCAtNTk4LDcgKzYwOCw3IEBAIGk5MTVfZ2VtX29i amVjdF9jcmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlp ZiAocmV0KQogCQlnb3RvIGVycl9mcmVlOwogCi0Jb2JqID0gX2k5MTVfZ2VtX29iamVjdF9jcmVh dGVfc3RvbGVuKGRldl9wcml2LCBzdG9sZW4pOworCW9iaiA9IF9faTkxNV9nZW1fb2JqZWN0X2Ny ZWF0ZV9zdG9sZW4oZGV2X3ByaXYsIHN0b2xlbiwgbWVtKTsKIAlpZiAob2JqID09IE5VTEwpIHsK IAkJcmV0ID0gLUVOT01FTTsKIAkJZ290byBlcnJfcmVtb3ZlOwpAQCAtNjEzLDYgKzYyMyw0NCBA QCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJcmV0dXJuIEVSUl9QVFIocmV0KTsKIH0KIAorc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKgoraTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUpCit7CisK KwlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9yZWdpb24oZGV2X3ByaXYtPm1tLnJlZ2lv bnNbSU5URUxfTUVNT1JZX1NUT0xFTl0sCisJCQkJCSAgICAgc2l6ZSwgSTkxNV9CT19BTExPQ19D T05USUdVT1VTKTsKK30KKworc3RhdGljIGludCBpbml0X3N0b2xlbihzdHJ1Y3QgaW50ZWxfbWVt b3J5X3JlZ2lvbiAqbWVtKQoreworCS8qCisJICogSW5pdGlhbGlzZSBzdG9sZW4gZWFybHkgc28g dGhhdCB3ZSBtYXkgcmVzZXJ2ZSBwcmVhbGxvY2F0ZWQKKwkgKiBvYmplY3RzIGZvciB0aGUgQklP UyB0byBLTVMgdHJhbnNpdGlvbi4KKwkgKi8KKwlyZXR1cm4gaTkxNV9nZW1faW5pdF9zdG9sZW4o bWVtLT5pOTE1KTsKK30KKworc3RhdGljIHZvaWQgcmVsZWFzZV9zdG9sZW4oc3RydWN0IGludGVs X21lbW9yeV9yZWdpb24gKm1lbSkKK3sKKwlpOTE1X2dlbV9jbGVhbnVwX3N0b2xlbihtZW0tPmk5 MTUpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX21lbW9yeV9yZWdpb25fb3BzIGk5 MTVfcmVnaW9uX3N0b2xlbl9vcHMgPSB7CisJLmluaXQgPSBpbml0X3N0b2xlbiwKKwkucmVsZWFz ZSA9IHJlbGVhc2Vfc3RvbGVuLAorCS5jcmVhdGVfb2JqZWN0ID0gX2k5MTVfZ2VtX29iamVjdF9j cmVhdGVfc3RvbGVuLAorfTsKKworc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKmk5MTVfZ2Vt X3N0b2xlbl9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlyZXR1cm4g aW50ZWxfbWVtb3J5X3JlZ2lvbl9jcmVhdGUoaTkxNSwKKwkJCQkJICBpbnRlbF9ncmFwaGljc19z dG9sZW5fcmVzLnN0YXJ0LAorCQkJCQkgIHJlc291cmNlX3NpemUoJmludGVsX2dyYXBoaWNzX3N0 b2xlbl9yZXMpLAorCQkJCQkgIEk5MTVfR1RUX1BBR0VfU0laRV80SywgMCwKKwkJCQkJICAmaTkx NV9yZWdpb25fc3RvbGVuX29wcyk7Cit9CisKIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoK IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCQkgICAgICAgcmVzb3VyY2Vfc2l6ZV90IHN0 b2xlbl9vZmZzZXQsCkBAIC02NTQsNyArNzAyLDcgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9z dG9sZW5fZm9yX3ByZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYK IAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKLQlvYmogPSBfaTkxNV9nZW1fb2JqZWN0X2Ny ZWF0ZV9zdG9sZW4oZGV2X3ByaXYsIHN0b2xlbik7CisJb2JqID0gX19pOTE1X2dlbV9vYmplY3Rf Y3JlYXRlX3N0b2xlbihkZXZfcHJpdiwgc3RvbGVuLCBOVUxMKTsKIAlpZiAob2JqID09IE5VTEwp IHsKIAkJRFJNX0RFQlVHX0RSSVZFUigiZmFpbGVkIHRvIGFsbG9jYXRlIHN0b2xlbiBvYmplY3Rc biIpOwogCQlpOTE1X2dlbV9zdG9sZW5fcmVtb3ZlX25vZGUoZGV2X3ByaXYsIHN0b2xlbik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc3RvbGVuLmgKaW5kZXggMjI4OTY0NGQ4 NjA0Li5jMTA0MDYyN2ZiZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9zdG9sZW4uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f c3RvbGVuLmgKQEAgLTIxLDggKzIxLDcgQEAgaW50IGk5MTVfZ2VtX3N0b2xlbl9pbnNlcnRfbm9k ZV9pbl9yYW5nZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJCSB1NjQg ZW5kKTsKIHZvaWQgaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAkJCQkgc3RydWN0IGRybV9tbV9ub2RlICpub2RlKTsKLWludCBp OTE1X2dlbV9pbml0X3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwot dm9pZCBpOTE1X2dlbV9jbGVhbnVwX3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOworc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKmk5MTVfZ2VtX3N0b2xlbl9zZXR1 cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqCiBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IGQwNWFmZjc2NzdjMi4uMjA5Njg2YzIzZDIxIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMjc0OCw4ICsyNzQ4LDYgQEAgdm9p ZCBpOTE1X2dlbV9jbGVhbnVwX21lbW9yeV9yZWdpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQogewogCWludCBpOwogCi0JaTkxNV9nZW1fY2xlYW51cF9zdG9sZW4oaTkxNSk7Ci0K IAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpOTE1LT5tbS5yZWdpb25zKTsgaSsrKSB7CiAJ CXN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICpyZWdpb24gPSBpOTE1LT5tbS5yZWdpb25zW2ld OwogCkBAIC0yNzYyLDE1ICsyNzYwLDYgQEAgaW50IGk5MTVfZ2VtX2luaXRfbWVtb3J5X3JlZ2lv bnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJaW50IGVyciwgaTsKIAotCS8q Ci0JICogSW5pdGlhbGlzZSBzdG9sZW4gZWFybHkgc28gdGhhdCB3ZSBtYXkgcmVzZXJ2ZSBwcmVh bGxvY2F0ZWQKLQkgKiBvYmplY3RzIGZvciB0aGUgQklPUyB0byBLTVMgdHJhbnNpdGlvbi4KLQkg Ki8KLQkvKiBYWFg6IHN0b2xlbiB3aWxsIGJlY29tZSBhIHJlZ2lvbiBhdCBzb21lIHBvaW50ICov Ci0JZXJyID0gaTkxNV9nZW1faW5pdF9zdG9sZW4oaTkxNSk7Ci0JaWYgKGVycikKLQkJcmV0dXJu IGVycjsKLQogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGk5MTUtPm1tLnJlZ2lvbnMpOyBp KyspIHsKIAkJc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSA9IE5VTEw7CiAJCXUzMiB0 eXBlOwpAQCAtMjc4Myw2ICsyNzcyLDkgQEAgaW50IGk5MTVfZ2VtX2luaXRfbWVtb3J5X3JlZ2lv bnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCWNhc2UgSU5URUxfU01FTToKIAkJ CW1lbSA9IGk5MTVfZ2VtX3NobWVtX3NldHVwKGk5MTUpOwogCQkJYnJlYWs7CisJCWNhc2UgSU5U RUxfU1RPTEVOOgorCQkJbWVtID0gaTkxNV9nZW1fc3RvbGVuX3NldHVwKGk5MTUpOworCQkJYnJl YWs7CiAJCX0KIAogCQlpZiAoSVNfRVJSKG1lbSkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcGNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCmlu ZGV4IGU1NWFiMjcyNDk5Ni4uZjlhM2JmZTY4Njg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BjaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMK QEAgLTE1Miw3ICsxNTIsNyBAQAogCS5wYWdlX3NpemVzID0gSTkxNV9HVFRfUEFHRV9TSVpFXzRL CiAKICNkZWZpbmUgR0VOX0RFRkFVTFRfUkVHSU9OUyBcCi0JLm1lbW9yeV9yZWdpb25zID0gUkVH SU9OX1NNRU0KKwkubWVtb3J5X3JlZ2lvbnMgPSBSRUdJT05fU01FTSB8IFJFR0lPTl9TVE9MRU4K IAogI2RlZmluZSBJODMwX0ZFQVRVUkVTIFwKIAlHRU4oMiksIFwKLS0gCjIuMjAuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4