From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v5 2/8] xen: clean up grant_table.h Date: Fri, 8 Sep 2017 08:56:28 +0200 Message-ID: <20170908065634.5420-3-jgross@suse.com> References: <20170908065634.5420-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170908065634.5420-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Juergen Gross , sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com, jbeulich@suse.com, dgdegra@tycho.nsa.gov List-Id: xen-devel@lists.xenproject.org TWFueSBkZWZpbml0aW9ucyBjYW4gYmUgbW92ZWQgZnJvbSB4ZW4vZ3JhbnRfdGFibGUuaCB0bwpj b21tb24vZ3JhbnRfdGFibGUuYyBub3csIGFzIHRoZXkgYXJlIG5vIGxvbmdlciB1c2VkIGluIG90 aGVyIHNvdXJjZXMuCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5j b20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpS ZXZpZXdlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiB4ZW4vY29tbW9u L2dyYW50X3RhYmxlLmMgICAgICB8IDgzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLQogeGVuL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmggfCA4NCAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDgxIGlu c2VydGlvbnMoKyksIDg2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ3Jh bnRfdGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwppbmRleCA0YzJlOWU0MGE1Li40 NTIwZTM2ZDkwIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIveGVu L2NvbW1vbi9ncmFudF90YWJsZS5jCkBAIC00MCw2ICs0MCw0NCBAQAogI2luY2x1ZGUgPHhzbS94 c20uaD4KICNpbmNsdWRlIDxhc20vZmx1c2h0bGIuaD4KIAorLyogUGVyLWRvbWFpbiBncmFudCBp bmZvcm1hdGlvbi4gKi8KK3N0cnVjdCBncmFudF90YWJsZSB7CisgICAgLyoKKyAgICAgKiBMb2Nr IHByb3RlY3RpbmcgdXBkYXRlcyB0byBncmFudCB0YWJsZSBzdGF0ZSAodmVyc2lvbiwgYWN0aXZl CisgICAgICogZW50cnkgbGlzdCwgZXRjLikKKyAgICAgKi8KKyAgICBwZXJjcHVfcndsb2NrX3Qg ICAgICAgbG9jazsKKyAgICAvKiBUYWJsZSBzaXplLiBOdW1iZXIgb2YgZnJhbWVzIHNoYXJlZCB3 aXRoIGd1ZXN0ICovCisgICAgdW5zaWduZWQgaW50ICAgICAgICAgIG5yX2dyYW50X2ZyYW1lczsK KyAgICAvKiBTaGFyZWQgZ3JhbnQgdGFibGUgKHNlZSBpbmNsdWRlL3B1YmxpYy9ncmFudF90YWJs ZS5oKS4gKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHZvaWQgKipzaGFyZWRfcmF3OworICAgICAg ICBzdHJ1Y3QgZ3JhbnRfZW50cnlfdjEgKipzaGFyZWRfdjE7CisgICAgICAgIHVuaW9uIGdyYW50 X2VudHJ5X3YyICoqc2hhcmVkX3YyOworICAgIH07CisgICAgLyogTnVtYmVyIG9mIGdyYW50IHN0 YXR1cyBmcmFtZXMgc2hhcmVkIHdpdGggZ3Vlc3QgKGZvciB2ZXJzaW9uIDIpICovCisgICAgdW5z aWduZWQgaW50ICAgICAgICAgIG5yX3N0YXR1c19mcmFtZXM7CisgICAgLyogU3RhdGUgZ3JhbnQg dGFibGUgKHNlZSBpbmNsdWRlL3B1YmxpYy9ncmFudF90YWJsZS5oKS4gKi8KKyAgICBncmFudF9z dGF0dXNfdCAgICAgICAqKnN0YXR1czsKKyAgICAvKiBBY3RpdmUgZ3JhbnQgdGFibGUuICovCisg ICAgc3RydWN0IGFjdGl2ZV9ncmFudF9lbnRyeSAqKmFjdGl2ZTsKKyAgICAvKiBNYXBwaW5nIHRy YWNraW5nIHRhYmxlIHBlciB2Y3B1LiAqLworICAgIHN0cnVjdCBncmFudF9tYXBwaW5nICoqbWFw dHJhY2s7CisgICAgdW5zaWduZWQgaW50ICAgICAgICAgIG1hcHRyYWNrX2xpbWl0OworICAgIC8q IExvY2sgcHJvdGVjdGluZyB0aGUgbWFwdHJhY2sgbGltaXQgKi8KKyAgICBzcGlubG9ja190ICAg ICAgICAgICAgbWFwdHJhY2tfbG9jazsKKyAgICAvKgorICAgICAqIFRoZSBkZWZpbmVkIHZlcnNp b25zIGFyZSAxIGFuZCAyLiAgU2V0IHRvIDAgaWYgd2UgZG9uJ3Qga25vdworICAgICAqIHdoYXQg dmVyc2lvbiB0byB1c2UgeWV0LgorICAgICAqLworICAgIHVuc2lnbmVkICAgICAgICAgICAgICBn dF92ZXJzaW9uOworfTsKKworI2lmbmRlZiBERUZBVUxUX01BWF9OUl9HUkFOVF9GUkFNRVMgLyog dG8gYWxsb3cgYXJjaCB0byBvdmVycmlkZSAqLworLyogRGVmYXVsdCBtYXhpbXVtIHNpemUgb2Yg YSBncmFudCB0YWJsZS4gW1BPTElDWV0gKi8KKyNkZWZpbmUgREVGQVVMVF9NQVhfTlJfR1JBTlRf RlJBTUVTICAgMzIKKyNlbmRpZgorCiB1bnNpZ25lZCBpbnQgX19yZWFkX21vc3RseSBtYXhfZ3Jh bnRfZnJhbWVzOwogaW50ZWdlcl9wYXJhbSgiZ250dGFiX21heF9mcmFtZXMiLCBtYXhfZ3JhbnRf ZnJhbWVzKTsKIApAQCAtMTE4LDYgKzE1NiwxOCBAQCBzdHJ1Y3QgZ3JhbnRfbWFwcGluZyB7CiAg ICAgdWludDMyX3QgcGFkOyAgICAgICAgICAgLyogcm91bmQgc2l6ZSB0byBhIHBvd2VyIG9mIDIg Ki8KIH07CiAKKy8qIE51bWJlciBvZiBncmFudCB0YWJsZSBmcmFtZXMuIENhbGxlciBtdXN0IGhv bGQgZCdzIGdyYW50IHRhYmxlIGxvY2suICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBu cl9ncmFudF9mcmFtZXMoY29uc3Qgc3RydWN0IGdyYW50X3RhYmxlICpndCkKK3sKKyAgICByZXR1 cm4gZ3QtPm5yX2dyYW50X2ZyYW1lczsKK30KKworLyogTnVtYmVyIG9mIHN0YXR1cyBncmFudCB0 YWJsZSBmcmFtZXMuIENhbGxlciBtdXN0IGhvbGQgZCdzIGdyLiB0YWJsZSBsb2NrLiovCitzdGF0 aWMgaW5saW5lIHVuc2lnbmVkIGludCBucl9zdGF0dXNfZnJhbWVzKGNvbnN0IHN0cnVjdCBncmFu dF90YWJsZSAqZ3QpCit7CisgICAgcmV0dXJuIGd0LT5ucl9zdGF0dXNfZnJhbWVzOworfQorCiAj ZGVmaW5lIE1BUFRSQUNLX1BFUl9QQUdFIChQQUdFX1NJWkUgLyBzaXplb2Yoc3RydWN0IGdyYW50 X21hcHBpbmcpKQogI2RlZmluZSBtYXB0cmFja19lbnRyeSh0LCBlKSBcCiAgICAgKCh0KS0+bWFw dHJhY2tbKGUpL01BUFRSQUNLX1BFUl9QQUdFXVsoZSklTUFQVFJBQ0tfUEVSX1BBR0VdKQpAQCAt MTk3LDcgKzI0NywyNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWN0X3NldF9nZm4oc3RydWN0IGFj dGl2ZV9ncmFudF9lbnRyeSAqYWN0LCBnZm5fdCBnZm4pCiAjZW5kaWYKIH0KIAotREVGSU5FX1BF UkNQVV9SV0xPQ0tfR0xPQkFMKGdyYW50X3J3bG9jayk7CitzdGF0aWMgREVGSU5FX1BFUkNQVV9S V0xPQ0tfR0xPQkFMKGdyYW50X3J3bG9jayk7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBncmFudF9y ZWFkX2xvY2soc3RydWN0IGdyYW50X3RhYmxlICpndCkKK3sKKyAgICBwZXJjcHVfcmVhZF9sb2Nr KGdyYW50X3J3bG9jaywgJmd0LT5sb2NrKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGdyYW50 X3JlYWRfdW5sb2NrKHN0cnVjdCBncmFudF90YWJsZSAqZ3QpCit7CisgICAgcGVyY3B1X3JlYWRf dW5sb2NrKGdyYW50X3J3bG9jaywgJmd0LT5sb2NrKTsKK30KKworc3RhdGljIGlubGluZSB2b2lk IGdyYW50X3dyaXRlX2xvY2soc3RydWN0IGdyYW50X3RhYmxlICpndCkKK3sKKyAgICBwZXJjcHVf d3JpdGVfbG9jayhncmFudF9yd2xvY2ssICZndC0+bG9jayk7Cit9CisKK3N0YXRpYyBpbmxpbmUg dm9pZCBncmFudF93cml0ZV91bmxvY2soc3RydWN0IGdyYW50X3RhYmxlICpndCkKK3sKKyAgICBw ZXJjcHVfd3JpdGVfdW5sb2NrKGdyYW50X3J3bG9jaywgJmd0LT5sb2NrKTsKK30KIAogc3RhdGlj IGlubGluZSB2b2lkIGdudHRhYl9mbHVzaF90bGIoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCkKIHsK QEAgLTI1MCw2ICszMjAsMTUgQEAgc3RhdGljIGlubGluZSB2b2lkIGFjdGl2ZV9lbnRyeV9yZWxl YXNlKHN0cnVjdCBhY3RpdmVfZ3JhbnRfZW50cnkgKmFjdCkKICAgICBzcGluX3VubG9jaygmYWN0 LT5sb2NrKTsKIH0KIAorI2RlZmluZSBHUkFOVF9TVEFUVVNfUEVSX1BBR0UgKFBBR0VfU0laRSAv IHNpemVvZihncmFudF9zdGF0dXNfdCkpCisjZGVmaW5lIEdSQU5UX1BFUl9QQUdFIChQQUdFX1NJ WkUgLyBzaXplb2YoZ3JhbnRfZW50cnlfdjJfdCkpCisvKiBOdW1iZXIgb2YgZ3JhbnQgdGFibGUg c3RhdHVzIGVudHJpZXMuIENhbGxlciBtdXN0IGhvbGQgZCdzIGdyLiB0YWJsZSBsb2NrLiovCitz dGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBncmFudF90b19zdGF0dXNfZnJhbWVzKHVuc2lnbmVk IGludCBncmFudF9mcmFtZXMpCit7CisgICAgcmV0dXJuIChncmFudF9mcmFtZXMgKiBHUkFOVF9Q RVJfUEFHRSArIEdSQU5UX1NUQVRVU19QRVJfUEFHRSAtIDEpIC8KKyAgICAgICAgR1JBTlRfU1RB VFVTX1BFUl9QQUdFOworfQorCiAvKiBDaGVjayBpZiB0aGUgcGFnZSBoYXMgYmVlbiBwYWdlZCBv dXQsIG9yIG5lZWRzIHVuc2hhcmluZy4KICAgIElmIHJjID09IEdOVFNUX29rYXksICpwYWdlIGNv bnRhaW5zIHRoZSBwYWdlIHN0cnVjdCB3aXRoIGEgcmVmIHRha2VuLgogICAgQ2FsbGVyIG11c3Qg ZG8gcHV0X3BhZ2UoKnBhZ2UpLgpAQCAtMTU4MCw3ICsxNjU5LDcgQEAgZ250dGFiX3VucG9wdWxh dGVfc3RhdHVzX2ZyYW1lcyhzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgZ3JhbnRfdGFibGUgKmd0 KQogICogR3JvdyB0aGUgZ3JhbnQgdGFibGUuIFRoZSBjYWxsZXIgbXVzdCBob2xkIHRoZSBncmFu dCB0YWJsZSdzCiAgKiB3cml0ZSBsb2NrIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCiAg Ki8KLWludAorc3RhdGljIGludAogZ250dGFiX2dyb3dfdGFibGUoc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgaW50IHJlcV9ucl9mcmFtZXMpCiB7CiAgICAgc3RydWN0IGdyYW50X3RhYmxlICpn dCA9IGQtPmdyYW50X3RhYmxlOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2dyYW50X3Rh YmxlLmggYi94ZW4vaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaAppbmRleCA0M2VjNmM0ZDgwLi40 M2IwN2U2MGM1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaAorKysg Yi94ZW4vaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaApAQCAtMjksNjYgKzI5LDkgQEAKICNpbmNs dWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPGFzbS9ncmFudF90YWJsZS5oPgogCi0jaWZuZGVm IERFRkFVTFRfTUFYX05SX0dSQU5UX0ZSQU1FUyAvKiB0byBhbGxvdyBhcmNoIHRvIG92ZXJyaWRl ICovCi0vKiBEZWZhdWx0IG1heGltdW0gc2l6ZSBvZiBhIGdyYW50IHRhYmxlLiBbUE9MSUNZXSAq LwotI2RlZmluZSBERUZBVUxUX01BWF9OUl9HUkFOVF9GUkFNRVMgICAzMgotI2VuZGlmCiAvKiBU aGUgbWF4aW11bSBzaXplIG9mIGEgZ3JhbnQgdGFibGUuICovCiBleHRlcm4gdW5zaWduZWQgaW50 IG1heF9ncmFudF9mcmFtZXM7CiAKLURFQ0xBUkVfUEVSQ1BVX1JXTE9DS19HTE9CQUwoZ3JhbnRf cndsb2NrKTsKLQotLyogUGVyLWRvbWFpbiBncmFudCBpbmZvcm1hdGlvbi4gKi8KLXN0cnVjdCBn cmFudF90YWJsZSB7Ci0gICAgLyoKLSAgICAgKiBMb2NrIHByb3RlY3RpbmcgdXBkYXRlcyB0byBn cmFudCB0YWJsZSBzdGF0ZSAodmVyc2lvbiwgYWN0aXZlCi0gICAgICogZW50cnkgbGlzdCwgZXRj LikKLSAgICAgKi8KLSAgICBwZXJjcHVfcndsb2NrX3QgICAgICAgbG9jazsKLSAgICAvKiBUYWJs ZSBzaXplLiBOdW1iZXIgb2YgZnJhbWVzIHNoYXJlZCB3aXRoIGd1ZXN0ICovCi0gICAgdW5zaWdu ZWQgaW50ICAgICAgICAgIG5yX2dyYW50X2ZyYW1lczsKLSAgICAvKiBTaGFyZWQgZ3JhbnQgdGFi bGUgKHNlZSBpbmNsdWRlL3B1YmxpYy9ncmFudF90YWJsZS5oKS4gKi8KLSAgICB1bmlvbiB7Ci0g ICAgICAgIHZvaWQgKipzaGFyZWRfcmF3OwotICAgICAgICBzdHJ1Y3QgZ3JhbnRfZW50cnlfdjEg KipzaGFyZWRfdjE7Ci0gICAgICAgIHVuaW9uIGdyYW50X2VudHJ5X3YyICoqc2hhcmVkX3YyOwot ICAgIH07Ci0gICAgLyogTnVtYmVyIG9mIGdyYW50IHN0YXR1cyBmcmFtZXMgc2hhcmVkIHdpdGgg Z3Vlc3QgKGZvciB2ZXJzaW9uIDIpICovCi0gICAgdW5zaWduZWQgaW50ICAgICAgICAgIG5yX3N0 YXR1c19mcmFtZXM7Ci0gICAgLyogU3RhdGUgZ3JhbnQgdGFibGUgKHNlZSBpbmNsdWRlL3B1Ymxp Yy9ncmFudF90YWJsZS5oKS4gKi8KLSAgICBncmFudF9zdGF0dXNfdCAgICAgICAqKnN0YXR1czsK LSAgICAvKiBBY3RpdmUgZ3JhbnQgdGFibGUuICovCi0gICAgc3RydWN0IGFjdGl2ZV9ncmFudF9l bnRyeSAqKmFjdGl2ZTsKLSAgICAvKiBNYXBwaW5nIHRyYWNraW5nIHRhYmxlIHBlciB2Y3B1LiAq LwotICAgIHN0cnVjdCBncmFudF9tYXBwaW5nICoqbWFwdHJhY2s7Ci0gICAgdW5zaWduZWQgaW50 ICAgICAgICAgIG1hcHRyYWNrX2xpbWl0OwotICAgIC8qIExvY2sgcHJvdGVjdGluZyB0aGUgbWFw dHJhY2sgbGltaXQgKi8KLSAgICBzcGlubG9ja190ICAgICAgICAgICAgbWFwdHJhY2tfbG9jazsK LSAgICAvKiBUaGUgZGVmaW5lZCB2ZXJzaW9ucyBhcmUgMSBhbmQgMi4gIFNldCB0byAwIGlmIHdl IGRvbid0IGtub3cKLSAgICAgICB3aGF0IHZlcnNpb24gdG8gdXNlIHlldC4gKi8KLSAgICB1bnNp Z25lZCAgICAgICAgICAgICAgZ3RfdmVyc2lvbjsKLX07Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBn cmFudF9yZWFkX2xvY2soc3RydWN0IGdyYW50X3RhYmxlICpndCkKLXsKLSAgICBwZXJjcHVfcmVh ZF9sb2NrKGdyYW50X3J3bG9jaywgJmd0LT5sb2NrKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lk IGdyYW50X3JlYWRfdW5sb2NrKHN0cnVjdCBncmFudF90YWJsZSAqZ3QpCi17Ci0gICAgcGVyY3B1 X3JlYWRfdW5sb2NrKGdyYW50X3J3bG9jaywgJmd0LT5sb2NrKTsKLX0KLQotc3RhdGljIGlubGlu ZSB2b2lkIGdyYW50X3dyaXRlX2xvY2soc3RydWN0IGdyYW50X3RhYmxlICpndCkKLXsKLSAgICBw ZXJjcHVfd3JpdGVfbG9jayhncmFudF9yd2xvY2ssICZndC0+bG9jayk7Ci19Ci0KLXN0YXRpYyBp bmxpbmUgdm9pZCBncmFudF93cml0ZV91bmxvY2soc3RydWN0IGdyYW50X3RhYmxlICpndCkKLXsK LSAgICBwZXJjcHVfd3JpdGVfdW5sb2NrKGdyYW50X3J3bG9jaywgJmd0LT5sb2NrKTsKLX0KLQog LyogQ3JlYXRlL2Rlc3Ryb3kgcGVyLWRvbWFpbiBncmFudCB0YWJsZSBjb250ZXh0LiAqLwogaW50 IGdyYW50X3RhYmxlX2NyZWF0ZSgKICAgICBzdHJ1Y3QgZG9tYWluICpkKTsKQEAgLTEwNiwzMyAr NDksNiBAQCB2b2lkCiBnbnR0YWJfcmVsZWFzZV9tYXBwaW5ncygKICAgICBzdHJ1Y3QgZG9tYWlu ICpkKTsKIAotLyogSW5jcmVhc2UgdGhlIHNpemUgb2YgYSBkb21haW4ncyBncmFudCB0YWJsZS4K LSAqIENhbGxlciBtdXN0IGhvbGQgZCdzIGdyYW50IHRhYmxlIHdyaXRlIGxvY2suCi0gKi8KLWlu dAotZ250dGFiX2dyb3dfdGFibGUoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHJlcV9u cl9mcmFtZXMpOwotCi0vKiBOdW1iZXIgb2YgZ3JhbnQgdGFibGUgZnJhbWVzLiBDYWxsZXIgbXVz dCBob2xkIGQncyBncmFudCB0YWJsZSBsb2NrLiAqLwotc3RhdGljIGlubGluZSB1bnNpZ25lZCBp bnQgbnJfZ3JhbnRfZnJhbWVzKHN0cnVjdCBncmFudF90YWJsZSAqZ3QpCi17Ci0gICAgcmV0dXJu IGd0LT5ucl9ncmFudF9mcmFtZXM7Ci19Ci0KLS8qIE51bWJlciBvZiBzdGF0dXMgZ3JhbnQgdGFi bGUgZnJhbWVzLiBDYWxsZXIgbXVzdCBob2xkIGQncyBnci4gdGFibGUgbG9jay4qLwotc3RhdGlj IGlubGluZSB1bnNpZ25lZCBpbnQgbnJfc3RhdHVzX2ZyYW1lcyhzdHJ1Y3QgZ3JhbnRfdGFibGUg Kmd0KQotewotICAgIHJldHVybiBndC0+bnJfc3RhdHVzX2ZyYW1lczsKLX0KLQotI2RlZmluZSBH UkFOVF9TVEFUVVNfUEVSX1BBR0UgKFBBR0VfU0laRSAvIHNpemVvZihncmFudF9zdGF0dXNfdCkp Ci0jZGVmaW5lIEdSQU5UX1BFUl9QQUdFIChQQUdFX1NJWkUgLyBzaXplb2YoZ3JhbnRfZW50cnlf djJfdCkpCi0vKiBOdW1iZXIgb2YgZ3JhbnQgdGFibGUgc3RhdHVzIGVudHJpZXMuIENhbGxlciBt dXN0IGhvbGQgZCdzIGdyLiB0YWJsZSBsb2NrLiovCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGlu dCBncmFudF90b19zdGF0dXNfZnJhbWVzKGludCBncmFudF9mcmFtZXMpCi17Ci0gICAgcmV0dXJu IChncmFudF9mcmFtZXMgKiBHUkFOVF9QRVJfUEFHRSArIEdSQU5UX1NUQVRVU19QRVJfUEFHRSAt IDEpIC8KLSAgICAgICAgR1JBTlRfU1RBVFVTX1BFUl9QQUdFOwotfQotCiBpbnQgbWVtX3NoYXJp bmdfZ3JlZl90b19nZm4oc3RydWN0IGdyYW50X3RhYmxlICpndCwgZ3JhbnRfcmVmX3QgcmVmLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl90ICpnZm4sIHVpbnQxNl90ICpzdGF0dXMp OwogCi0tIAoyLjEyLjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK