From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH v2 01/11] xen: sched: make implementing .alloc_pdata optional Date: Wed, 06 Apr 2016 19:22:42 +0200 Message-ID: <20160406172242.25877.3097.stgit@Solace.fritz.box> References: <20160406170023.25877.15622.stgit@Solace.fritz.box> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1anrAG-00015G-Dw for xen-devel@lists.xenproject.org; Wed, 06 Apr 2016 17:22:48 +0000 Received: by mail-lf0-f65.google.com with SMTP id p81so5076012lfb.3 for ; Wed, 06 Apr 2016 10:22:46 -0700 (PDT) In-Reply-To: <20160406170023.25877.15622.stgit@Solace.fritz.box> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Juergen Gross , George Dunlap , Robert VanVossen , Josh Whitehead , Meng Xu , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIC5hbGxvY19wZGF0YSBzY2hlZHVsZXIgaG9vayBtdXN0LCBiZWZvcmUgdGhpcyBjaGFuZ2Us CmJlIGltcGxlbWVudGVkIGJ5IGFsbCBzY2hlZHVsZXJzIC0tZXZlbiB0aG9zZSBvbmVzIHRoYXQK ZG9uJ3QgbmVlZCB0byBhbGxvY2F0ZSBhbnl0aGluZy4KCk1ha2UgaXQgcG9zc2libGUgdG8ganVz dCB1c2UgdGhlIFNDSEVEX09QKCksIGxpa2UgZm9yCnRoZSBvdGhlciBob29rcywgYnkgdXNpbmcg RVJSX1BUUigpIGFuZCBJU19FUlIoKSBmb3IKZXJyb3IgcmVwb3J0aW5nLiBUaGlzOgogLSBtYWtl cyBOVUxMIGEgdmFyaWFudCBvZiBzdWNjZXNzOwogLSBhbGxvd3MgZm9yIGVycm9ycyBvdGhlciB0 aGFuIEVOT01FTSB0byBiZSBwcm9wZXJseQogICBjb21tdW5pY2F0ZWQgKGlmIGV2ZXIgbmVjZXNz YXJ5KS4KClRoaXMsIGluIHR1cm4sIG1lYW5zIHRoYXQgc2NoZWR1bGVycyBub3QgbmVlZGluZyB0 bwphbGxvY2F0ZSBhbnkgcGVyLXBDUFUgZGF0YSwgY2FuIGF2b2lkIGltcGxlbWVudGluZyB0aGUK aG9vay4gSW4gZmFjdCwgdGhlIGFydGlmaWNpYWwgaW1wbGVtZW50YXRpb24gb2YKLmFsbG9jX3Bk YXRhIGluIHRoZSBBUklOQzY1MyBpcyByZW1vdmVkIChhbmQsIHdoaWxlIHRoZXJlLApudWtlIC5m cmVlX3BkYXRhIHRvbywgYXMgaXQgaXMgZXF1YWxseSB1c2VsZXNzKS4KClNpZ25lZC1vZmYtYnk6 IERhcmlvIEZhZ2dpb2xpIDxkYXJpby5mYWdnaW9saUBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTog TWVuZyBYdSA8bWVuZ3h1QGNpcy51cGVubi5lZHU+Ci0tLQpDYzogR2VvcmdlIER1bmxhcCA8Z2Vv cmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogUm9iZXJ0IFZhblZvc3NlbiA8cm9iZXJ0LnZh bnZvc3NlbkBkb3JuZXJ3b3Jrcy5jb20+CkNjOiBKb3NoIFdoaXRlaGVhZCA8am9zaC53aGl0ZWhl YWRAZG9ybmVyd29ya3MuY29tPgpDYzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgpD YzogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KQ2hhbmdlcyBmcm9tIHYxOgog KiBvbmx5IHVwZGF0ZSBzZC0+c2NoZWRfcHJpdiBpZiBhbGxvY19wZGF0YSBkb2VzIG5vdCByZXR1 cm4KICAgSVNfRVJSLCBzbyB0aGF0IHhmcmVlKCkgY2FuIGFsd2F5cyBiZSBzYWZlbHkgY2FsbGVk IG9uCiAgIHNkLT5zY2hlZF9wcml2IGl0c2VsZiwgYXMgcmVxdWVzdGVkIGR1cmluZyByZXZpZXc7 CiAqIHhlbi9lcnIuaCBpbmNsdWRlZCBpbiAuYyBmaWxlcyB0aGF0IGFjdHVhbGx5IG5lZWQgaXQs CiAgIGluc3RlYWQgdGhhbiBpbiBzY2hlZC1pZi5oLgotLS0KIHhlbi9jb21tb24vc2NoZWRfYXJp bmM2NTMuYyB8ICAgMzEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2NvbW1v bi9zY2hlZF9jcmVkaXQuYyAgIHwgICAgNSArKystLQogeGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQy LmMgIHwgICAgMiArLQogeGVuL2NvbW1vbi9zY2hlZF9ydC5jICAgICAgIHwgICAgOCArKysrLS0t LQogeGVuL2NvbW1vbi9zY2hlZHVsZS5jICAgICAgIHwgICAyNyArKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgNDggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9hcmluYzY1My5jIGIveGVuL2NvbW1v bi9zY2hlZF9hcmluYzY1My5jCmluZGV4IDhhMTFhMmYuLmI3OWZjZGYgMTAwNjQ0Ci0tLSBhL3hl bi9jb21tb24vc2NoZWRfYXJpbmM2NTMuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX2FyaW5jNjUz LmMKQEAgLTQ1NiwzNCArNDU2LDYgQEAgYTY1M3NjaGVkX2ZyZWVfdmRhdGEoY29uc3Qgc3RydWN0 IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwcml2KQogfQogCiAvKioKLSAqIFRoaXMgZnVuY3Rpb24g YWxsb2NhdGVzIHNjaGVkdWxlci1zcGVjaWZpYyBkYXRhIGZvciBhIHBoeXNpY2FsIENQVQotICoK LSAqIFdlIGRvIG5vdCBhY3R1YWxseSBtYWtlIHVzZSBvZiBhbnkgcGVyLUNQVSBkYXRhIGJ1dCB0 aGUgaHlwZXJ2aXNvciBleHBlY3RzCi0gKiBhIG5vbi1OVUxMIHJldHVybiB2YWx1ZQotICoKLSAq IEBwYXJhbSBvcHMgICAgICAgUG9pbnRlciB0byB0aGlzIGluc3RhbmNlIG9mIHRoZSBzY2hlZHVs ZXIgc3RydWN0dXJlCi0gKgotICogQHJldHVybiAgICAgICAgICBQb2ludGVyIHRvIHRoZSBhbGxv Y2F0ZWQgZGF0YQotICovCi1zdGF0aWMgdm9pZCAqCi1hNjUzc2NoZWRfYWxsb2NfcGRhdGEoY29u c3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBpbnQgY3B1KQotewotICAgIC8qIHJldHVybiBhIG5v bi1OVUxMIHZhbHVlIHRvIGtlZXAgc2NoZWR1bGUuYyBoYXBweSAqLwotICAgIHJldHVybiBTQ0hF RF9QUklWKG9wcyk7Ci19Ci0KLS8qKgotICogVGhpcyBmdW5jdGlvbiBmcmVlcyBzY2hlZHVsZXIt c3BlY2lmaWMgZGF0YSBmb3IgYSBwaHlzaWNhbCBDUFUKLSAqCi0gKiBAcGFyYW0gb3BzICAgICAg IFBvaW50ZXIgdG8gdGhpcyBpbnN0YW5jZSBvZiB0aGUgc2NoZWR1bGVyIHN0cnVjdHVyZQotICov Ci1zdGF0aWMgdm9pZAotYTY1M3NjaGVkX2ZyZWVfcGRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLCB2b2lkICpwY3B1LCBpbnQgY3B1KQotewotICAgIC8qIG5vcCAqLwotfQotCi0vKioK ICAqIFRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIHNjaGVkdWxlci1zcGVjaWZpYyBkYXRhIGZvciBh IGRvbWFpbgogICoKICAqIFdlIGRvIG5vdCBhY3R1YWxseSBtYWtlIHVzZSBvZiBhbnkgcGVyLWRv bWFpbiBkYXRhIGJ1dCB0aGUgaHlwZXJ2aXNvcgpAQCAtNzM3LDkgKzcwOSw2IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3Qgc2NoZWR1bGVyIHNjaGVkX2FyaW5jNjUzX2RlZiA9IHsKICAgICAuZnJlZV92 ZGF0YSAgICAgPSBhNjUzc2NoZWRfZnJlZV92ZGF0YSwKICAgICAuYWxsb2NfdmRhdGEgICAgPSBh NjUzc2NoZWRfYWxsb2NfdmRhdGEsCiAKLSAgICAuZnJlZV9wZGF0YSAgICAgPSBhNjUzc2NoZWRf ZnJlZV9wZGF0YSwKLSAgICAuYWxsb2NfcGRhdGEgICAgPSBhNjUzc2NoZWRfYWxsb2NfcGRhdGEs Ci0KICAgICAuZnJlZV9kb21kYXRhICAgPSBhNjUzc2NoZWRfZnJlZV9kb21kYXRhLAogICAgIC5h bGxvY19kb21kYXRhICA9IGE2NTNzY2hlZF9hbGxvY19kb21kYXRhLAogCmRpZmYgLS1naXQgYS94 ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYwppbmRl eCA0YzQ5MjdmLi42M2E0YTYzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5j CisrKyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNs dWRlIDx4ZW4vZXJybm8uaD4KICNpbmNsdWRlIDx4ZW4va2V5aGFuZGxlci5oPgogI2luY2x1ZGUg PHhlbi90cmFjZS5oPgorI2luY2x1ZGUgPHhlbi9lcnIuaD4KIAogCiAvKgpAQCAtNTMyLDEyICs1 MzMsMTIgQEAgY3NjaGVkX2FsbG9jX3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywg aW50IGNwdSkKICAgICAvKiBBbGxvY2F0ZSBwZXItUENQVSBpbmZvICovCiAgICAgc3BjID0geHph bGxvYyhzdHJ1Y3QgY3NjaGVkX3BjcHUpOwogICAgIGlmICggc3BjID09IE5VTEwgKQotICAgICAg ICByZXR1cm4gTlVMTDsKKyAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKICAgICBp ZiAoICFhbGxvY19jcHVtYXNrX3Zhcigmc3BjLT5iYWxhbmNlX21hc2spICkKICAgICB7CiAgICAg ICAgIHhmcmVlKHNwYyk7Ci0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICByZXR1cm4gRVJS X1BUUigtRU5PTUVNKTsKICAgICB9CiAKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2Nr LCBmbGFncyk7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYyBiL3hlbi9j b21tb24vc2NoZWRfY3JlZGl0Mi5jCmluZGV4IGI4YzhlNDAuLmU5N2Q4YmUgMTAwNjQ0Ci0tLSBh L3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCisrKyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0 Mi5jCkBAIC0yMDQ3LDcgKzIwNDcsNyBAQCBjc2NoZWQyX2FsbG9jX3BkYXRhKGNvbnN0IHN0cnVj dCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSkKICAgICAgICAgcHJpbnRrKCIlczogY3B1ICVkIG5v dCBvbmxpbmUgeWV0LCBkZWZlcnJpbmcgaW5pdGlhbGl6YXRnaW9uXG4iLAogICAgICAgICAgICAg ICAgX19mdW5jX18sIGNwdSk7CiAKLSAgICByZXR1cm4gKHZvaWQgKikxOworICAgIHJldHVybiBO VUxMOwogfQogCiBzdGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9ydC5j IGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCmluZGV4IDMyMWIwYTUuLmFlY2UzMTggMTAwNjQ0Ci0t LSBhL3hlbi9jb21tb24vc2NoZWRfcnQuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX3J0LmMKQEAg LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDx4ZW4vY3B1Lmg+CiAjaW5jbHVkZSA8eGVuL2tleWhh bmRsZXIuaD4KICNpbmNsdWRlIDx4ZW4vdHJhY2UuaD4KKyNpbmNsdWRlIDx4ZW4vZXJyLmg+CiAj aW5jbHVkZSA8eGVuL2d1ZXN0X2FjY2Vzcy5oPgogCiAvKgpAQCAtNjgxLDcgKzY4Miw3IEBAIHJ0 X2FsbG9jX3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSkKICAgICBz cGluX3VubG9ja19pcnFyZXN0b3JlKG9sZF9sb2NrLCBmbGFncyk7CiAKICAgICBpZiAoICFhbGxv Y19jcHVtYXNrX3ZhcigmX2NwdW1hc2tfc2NyYXRjaFtjcHVdKSApCi0gICAgICAgIHJldHVybiBO VUxMOworICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogICAgIGlmICggcHJ2LT5y ZXBsX3RpbWVyID09IE5VTEwgKQogICAgIHsKQEAgLTY4OSwxMyArNjkwLDEyIEBAIHJ0X2FsbG9j X3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSkKICAgICAgICAgcHJ2 LT5yZXBsX3RpbWVyID0geHphbGxvYyhzdHJ1Y3QgdGltZXIpOwogCiAgICAgICAgIGlmICggcHJ2 LT5yZXBsX3RpbWVyID09IE5VTEwgKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAg ICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogICAgICAgICBpbml0X3RpbWVyKHBydi0+ cmVwbF90aW1lciwgcmVwbF90aW1lcl9oYW5kbGVyLCAodm9pZCAqKW9wcywgY3B1KTsKICAgICB9 CiAKLSAgICAvKiAxIGluZGljYXRlcyBhbGxvYy4gc3VjY2VlZCBpbiBzY2hlZHVsZS5jICovCi0g ICAgcmV0dXJuICh2b2lkICopMTsKKyAgICByZXR1cm4gTlVMTDsKIH0KIAogc3RhdGljIHZvaWQK ZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWR1bGUuYyBiL3hlbi9jb21tb24vc2NoZWR1bGUu YwppbmRleCBiN2RlZTE2Li4xOTQxNjEzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkdWxl LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk ZSA8eGVuL2V2ZW50Lmg+CiAjaW5jbHVkZSA8cHVibGljL3NjaGVkLmg+CiAjaW5jbHVkZSA8eHNt L3hzbS5oPgorI2luY2x1ZGUgPHhlbi9lcnIuaD4KIAogLyogb3B0X3NjaGVkOiBzY2hlZHVsZXIg LSBkZWZhdWx0IHRvIGNvbmZpZ3VyZWQgdmFsdWUgKi8KIHN0YXRpYyBjaGFyIF9faW5pdGRhdGEg b3B0X3NjaGVkWzEwXSA9IENPTkZJR19TQ0hFRF9ERUZBVUxUOwpAQCAtMTQ2Miw2ICsxNDYzLDcg QEAgc3RhdGljIHZvaWQgcG9sbF90aW1lcl9mbih2b2lkICpkYXRhKQogc3RhdGljIGludCBjcHVf c2NoZWR1bGVfdXAodW5zaWduZWQgaW50IGNwdSkKIHsKICAgICBzdHJ1Y3Qgc2NoZWR1bGVfZGF0 YSAqc2QgPSAmcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpOworICAgIHZvaWQgKnNjaGVkX3By aXY7CiAKICAgICBwZXJfY3B1KHNjaGVkdWxlciwgY3B1KSA9ICZvcHM7CiAgICAgc3Bpbl9sb2Nr X2luaXQoJnNkLT5fbG9jayk7CkBAIC0xNTAwLDkgKzE1MDIsMTYgQEAgc3RhdGljIGludCBjcHVf c2NoZWR1bGVfdXAodW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAoIGlkbGVfdmNwdVtjcHVdID09 IE5VTEwgKQogICAgICAgICByZXR1cm4gLUVOT01FTTsKIAotICAgIGlmICggKG9wcy5hbGxvY19w ZGF0YSAhPSBOVUxMKSAmJgotICAgICAgICAgKChzZC0+c2NoZWRfcHJpdiA9IG9wcy5hbGxvY19w ZGF0YSgmb3BzLCBjcHUpKSA9PSBOVUxMKSApCi0gICAgICAgIHJldHVybiAtRU5PTUVNOworICAg IC8qCisgICAgICogV2UgZG9uJ3Qgd2FudCB0byByaXNrIGNhbGxpbmcgeGZyZWUoKSBvbiBhbiBz ZC0+c2NoZWRfcHJpdgorICAgICAqIChlLmcuLCBpbnNpZGUgZnJlZV9wZGF0YSwgZnJvbSBjcHVf c2NoZWR1bGVfZG93bigpIGNhbGxlZAorICAgICAqIGR1cmluZyBDUFVfVVBfQ0FOQ0VMTEVEKSB0 aGF0IGNvbnRhaW5zIGFuIElTX0VSUiB2YWx1ZS4KKyAgICAgKi8KKyAgICBzY2hlZF9wcml2ID0g U0NIRURfT1AoJm9wcywgYWxsb2NfcGRhdGEsIGNwdSk7CisgICAgaWYgKCBJU19FUlIoc2NoZWRf cHJpdikgKQorICAgICAgICByZXR1cm4gUFRSX0VSUihzY2hlZF9wcml2KTsKKworICAgIHNkLT5z Y2hlZF9wcml2ID0gc2NoZWRfcHJpdjsKIAogICAgIHJldHVybiAwOwogfQpAQCAtMTUxMiw4ICsx NTIxLDcgQEAgc3RhdGljIHZvaWQgY3B1X3NjaGVkdWxlX2Rvd24odW5zaWduZWQgaW50IGNwdSkK ICAgICBzdHJ1Y3Qgc2NoZWR1bGVfZGF0YSAqc2QgPSAmcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBj cHUpOwogICAgIHN0cnVjdCBzY2hlZHVsZXIgKnNjaGVkID0gcGVyX2NwdShzY2hlZHVsZXIsIGNw dSk7CiAKLSAgICBpZiAoIHNkLT5zY2hlZF9wcml2ICE9IE5VTEwgKQotICAgICAgICBTQ0hFRF9P UChzY2hlZCwgZnJlZV9wZGF0YSwgc2QtPnNjaGVkX3ByaXYsIGNwdSk7CisgICAgU0NIRURfT1Ao c2NoZWQsIGZyZWVfcGRhdGEsIHNkLT5zY2hlZF9wcml2LCBjcHUpOwogICAgIFNDSEVEX09QKHNj aGVkLCBmcmVlX3ZkYXRhLCBpZGxlX3ZjcHVbY3B1XS0+c2NoZWRfcHJpdik7CiAKICAgICBpZGxl X3ZjcHVbY3B1XS0+c2NoZWRfcHJpdiA9IE5VTEw7CkBAIC0xNjA4LDkgKzE2MTYsOCBAQCB2b2lk IF9faW5pdCBzY2hlZHVsZXJfaW5pdCh2b2lkKQogICAgIGlkbGVfZG9tYWluLT5tYXhfdmNwdXMg PSBucl9jcHVfaWRzOwogICAgIGlmICggYWxsb2NfdmNwdShpZGxlX2RvbWFpbiwgMCwgMCkgPT0g TlVMTCApCiAgICAgICAgIEJVRygpOwotICAgIGlmICggb3BzLmFsbG9jX3BkYXRhICYmCi0gICAg ICAgICAhKHRoaXNfY3B1KHNjaGVkdWxlX2RhdGEpLnNjaGVkX3ByaXYgPSBvcHMuYWxsb2NfcGRh dGEoJm9wcywgMCkpICkKLSAgICAgICAgQlVHKCk7CisgICAgdGhpc19jcHUoc2NoZWR1bGVfZGF0 YSkuc2NoZWRfcHJpdiA9IFNDSEVEX09QKCZvcHMsIGFsbG9jX3BkYXRhLCAwKTsKKyAgICBCVUdf T04oSVNfRVJSKHRoaXNfY3B1KHNjaGVkdWxlX2RhdGEpLnNjaGVkX3ByaXYpKTsKICAgICBTQ0hF RF9PUCgmb3BzLCBpbml0X3BkYXRhLCB0aGlzX2NwdShzY2hlZHVsZV9kYXRhKS5zY2hlZF9wcml2 LCAwKTsKIH0KIApAQCAtMTY1Myw4ICsxNjYwLDggQEAgaW50IHNjaGVkdWxlX2NwdV9zd2l0Y2go dW5zaWduZWQgaW50IGNwdSwgc3RydWN0IGNwdXBvb2wgKmMpCiAKICAgICBpZGxlID0gaWRsZV92 Y3B1W2NwdV07CiAgICAgcHByaXYgPSBTQ0hFRF9PUChuZXdfb3BzLCBhbGxvY19wZGF0YSwgY3B1 KTsKLSAgICBpZiAoIHBwcml2ID09IE5VTEwgKQotICAgICAgICByZXR1cm4gLUVOT01FTTsKKyAg ICBpZiAoIElTX0VSUihwcHJpdikgKQorICAgICAgICByZXR1cm4gUFRSX0VSUihwcHJpdik7CiAg ICAgU0NIRURfT1AobmV3X29wcywgaW5pdF9wZGF0YSwgcHByaXYsIGNwdSk7CiAgICAgdnByaXYg PSBTQ0hFRF9PUChuZXdfb3BzLCBhbGxvY192ZGF0YSwgaWRsZSwgaWRsZS0+ZG9tYWluLT5zY2hl ZF9wcml2KTsKICAgICBpZiAoIHZwcml2ID09IE5VTEwgKQoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==