From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathias Hasselmann Subject: GObject introspection patches Date: Tue, 04 Sep 2007 23:08:37 +0200 Message-ID: <1188940117.10888.17.camel@localhost> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-NECfpmkVoupmTkl5TQhO" Return-path: Received: from mail.gmx.net ([213.165.64.20]:41761 "HELO mail.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1754532AbXIDVIy (ORCPT ); Tue, 4 Sep 2007 17:08:54 -0400 Received: from [192.168.100.20] (pergamaunz [192.168.100.20]) by dali.local (Postfix) with ESMTP id D80E717F43C for ; Tue, 4 Sep 2007 23:08:00 +0200 (CEST) Sender: linux-sparse-owner@vger.kernel.org List-Id: linux-sparse@vger.kernel.org To: linux-sparse@vger.kernel.org --=-NECfpmkVoupmTkl5TQhO Content-Type: multipart/mixed; boundary="=-pek4o2O0TDWJrQbldhEq" --=-pek4o2O0TDWJrQbldhEq Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hello, For GObject introspection c2xml has to be extended to output information about custom attributes like this: GList* create_list() __attribute__((element_type(char*))) Attached patch set adds support for custom attributes to c2xml. It also changes c2xml to provide command line options and to output initializer expressions. The patchset also is available via git: http://taschenorakel.de/gitweb/?p=3Dsparse;a=3Dshortlog;h=3Dgobject-introsp= ection Ciao, Mathias --=20 Mathias Hasselmann http://taschenorakel.de/ --=-pek4o2O0TDWJrQbldhEq Content-Disposition: inline; filename*0=0001-Introduce-attribute-structure-for-storing-custom-att.pat; filename*1=ch Content-Type: application/mbox; name=0001-Introduce-attribute-structure-for-storing-custom-att.patch Content-Transfer-Encoding: base64 RnJvbSA5OGZhZTRmOGQyZDFmMzc1YTE4YWVhZjFlMGEwYzcxMTA3ZmJlYmE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoaWFzIEhhc3NlbG1hbm4gPG1hdGhpYXMuaGFzc2VsbWFu bkBnbXguZGU+CkRhdGU6IFR1ZSwgNCBTZXAgMjAwNyAyMjoyNjo0NyArMDIwMApTdWJqZWN0OiBb UEFUQ0hdIEludHJvZHVjZSBhdHRyaWJ1dGUgc3RydWN0dXJlIGZvciBzdG9yaW5nIGN1c3RvbSBh dHRyaWJ1dGVzIGluIHN5bWJvbCBub2Rlcy4KClNpZ25lZC1vZmYtYnk6IE1hdGhpYXMgSGFzc2Vs bWFubiA8bWF0aGlhcy5oYXNzZWxtYW5uQGdteC5kZT4KLS0tCiBhbGxvY2F0ZS5jIHwgICAgMSAr CiBhbGxvY2F0ZS5oIHwgICAgMSArCiBsaWIuaCAgICAgIHwgICAgNyArKysrKysrCiBwYXJzZS5j ICAgIHwgICAgNCArKysrCiBzeW1ib2wuYyAgIHwgICAgOSArKysrKysrKysKIHN5bWJvbC5oICAg fCAgIDIyICsrKysrKysrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0 aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hbGxvY2F0ZS5jIGIvYWxsb2Nh dGUuYwppbmRleCA1Y2M1MmE5Li4wNDkyZGViIDEwMDY0NAotLS0gYS9hbGxvY2F0ZS5jCisrKyBi L2FsbG9jYXRlLmMKQEAgLTExNCw2ICsxMTQsNyBAQCB2b2lkIHNob3dfYWxsb2NhdGlvbnMoc3Ry dWN0IGFsbG9jYXRvcl9zdHJ1Y3QgKngpCiBBTExPQ0FUT1IoaWRlbnQsICJpZGVudGlmaWVycyIp OwogQUxMT0NBVE9SKHRva2VuLCAidG9rZW5zIik7CiBBTExPQ0FUT1IoY29udGV4dCwgImNvbnRl eHRzIik7CitBTExPQ0FUT1IoYXR0cmlidXRlLCAiYXR0cmlidXRlIik7CiBBTExPQ0FUT1Ioc3lt Ym9sLCAic3ltYm9scyIpOwogQUxMT0NBVE9SKGV4cHJlc3Npb24sICJleHByZXNzaW9ucyIpOwog QUxMT0NBVE9SKHN0YXRlbWVudCwgInN0YXRlbWVudHMiKTsKZGlmZiAtLWdpdCBhL2FsbG9jYXRl LmggYi9hbGxvY2F0ZS5oCmluZGV4IDlmMWRjOGMuLjc3NzAxZTggMTAwNjQ0Ci0tLSBhL2FsbG9j YXRlLmgKKysrIGIvYWxsb2NhdGUuaApAQCAtNjUsNiArNjUsNyBAQCBleHRlcm4gdm9pZCBzaG93 X2FsbG9jYXRpb25zKHN0cnVjdCBhbGxvY2F0b3Jfc3RydWN0ICopOwogREVDTEFSRV9BTExPQ0FU T1IoaWRlbnQpOwogREVDTEFSRV9BTExPQ0FUT1IodG9rZW4pOwogREVDTEFSRV9BTExPQ0FUT1Io Y29udGV4dCk7CitERUNMQVJFX0FMTE9DQVRPUihhdHRyaWJ1dGUpOwogREVDTEFSRV9BTExPQ0FU T1Ioc3ltYm9sKTsKIERFQ0xBUkVfQUxMT0NBVE9SKGV4cHJlc3Npb24pOwogREVDTEFSRV9BTExP Q0FUT1Ioc3RhdGVtZW50KTsKZGlmZiAtLWdpdCBhL2xpYi5oIGIvbGliLmgKaW5kZXggY2VmNGFi OC4uNWZlNTM4ZiAxMDA2NDQKLS0tIGEvbGliLmgKKysrIGIvbGliLmgKQEAgLTQ1LDYgKzQ1LDcg QEAgZXh0ZXJuIGludCBjbWRsaW5lX2luY2x1ZGVfbnI7CiAKIHN0cnVjdCBpZGVudDsKIHN0cnVj dCB0b2tlbjsKK3N0cnVjdCBhdHRyaWJ1dGU7CiBzdHJ1Y3Qgc3ltYm9sOwogc3RydWN0IHN0YXRl bWVudDsKIHN0cnVjdCBleHByZXNzaW9uOwpAQCAtNTQsNiArNTUsNyBAQCBzdHJ1Y3QgaW5zdHJ1 Y3Rpb247CiBzdHJ1Y3QgbXVsdGlqbXA7CiBzdHJ1Y3QgcHNldWRvOwogCitERUNMQVJFX1BUUl9M SVNUKGF0dHJpYnV0ZV9saXN0LCBzdHJ1Y3QgYXR0cmlidXRlKTsKIERFQ0xBUkVfUFRSX0xJU1Qo c3ltYm9sX2xpc3QsIHN0cnVjdCBzeW1ib2wpOwogREVDTEFSRV9QVFJfTElTVChzdGF0ZW1lbnRf bGlzdCwgc3RydWN0IHN0YXRlbWVudCk7CiBERUNMQVJFX1BUUl9MSVNUKGV4cHJlc3Npb25fbGlz dCwgc3RydWN0IGV4cHJlc3Npb24pOwpAQCAtMTk4LDYgKzIwMCwxMSBAQCBzdGF0aWMgaW5saW5l IHZvaWQgY29uY2F0X2luc3RydWN0aW9uX2xpc3Qoc3RydWN0IGluc3RydWN0aW9uX2xpc3QgKmZy b20sIHN0cnVjdAogCWNvbmNhdF9wdHJfbGlzdCgoc3RydWN0IHB0cl9saXN0ICopZnJvbSwgKHN0 cnVjdCBwdHJfbGlzdCAqKil0byk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRfYXR0cmli dXRlIChzdHJ1Y3QgYXR0cmlidXRlX2xpc3QgKipsaXN0LCBzdHJ1Y3QgYXR0cmlidXRlICphdHRy KQoreworCWFkZF9wdHJfbGlzdChsaXN0LCBhdHRyKTsKK30KKwogc3RhdGljIGlubGluZSB2b2lk IGFkZF9zeW1ib2woc3RydWN0IHN5bWJvbF9saXN0ICoqbGlzdCwgc3RydWN0IHN5bWJvbCAqc3lt KQogewogCWFkZF9wdHJfbGlzdChsaXN0LCBzeW0pOwpkaWZmIC0tZ2l0IGEvcGFyc2UuYyBiL3Bh cnNlLmMKaW5kZXggZjQ1MjA0Mi4uMjIxOWU4NiAxMDA2NDQKLS0tIGEvcGFyc2UuYworKysgYi9w YXJzZS5jCkBAIC0xMDI2LDYgKzEwMjYsMTAgQEAgc3RhdGljIHZvaWQgYXBwbHlfY3R5cGUoc3Ry dWN0IHBvc2l0aW9uIHBvcywgc3RydWN0IGN0eXBlICp0aGlzdHlwZSwgc3RydWN0IGN0eXAKIAlj b25jYXRfcHRyX2xpc3QoKHN0cnVjdCBwdHJfbGlzdCAqKXRoaXN0eXBlLT5jb250ZXh0cywKIAkg ICAgICAgICAgICAgICAgKHN0cnVjdCBwdHJfbGlzdCAqKikmY3R5cGUtPmNvbnRleHRzKTsKIAor CS8qIEF0cnJpYnV0ZXMgKi8KKwljb25jYXRfcHRyX2xpc3QoKHN0cnVjdCBwdHJfbGlzdCAqKXRo aXN0eXBlLT5hdHRyaWJ1dGVzLAorCSAgICAgICAgICAgICAgICAoc3RydWN0IHB0cl9saXN0ICoq KSZjdHlwZS0+YXR0cmlidXRlcyk7CisKIAkvKiBBbGlnbm1lbnQgKi8KIAlpZiAodGhpc3R5cGUt PmFsaWdubWVudCAmICh0aGlzdHlwZS0+YWxpZ25tZW50LTEpKSB7CiAJCXdhcm5pbmcocG9zLCAi SSBkb24ndCBsaWtlIG5vbi1wb3dlci1vZi0yIGFsaWdubWVudHMiKTsKZGlmZiAtLWdpdCBhL3N5 bWJvbC5jIGIvc3ltYm9sLmMKaW5kZXggNzUzOTgxNy4uN2IzOWIyMiAxMDA2NDQKLS0tIGEvc3lt Ym9sLmMKKysrIGIvc3ltYm9sLmMKQEAgLTU3LDYgKzU3LDE1IEBAIHN0cnVjdCBjb250ZXh0ICph bGxvY19jb250ZXh0KHZvaWQpCiAJcmV0dXJuIF9fYWxsb2NfY29udGV4dCgwKTsKIH0KIAorc3Ry dWN0IGF0dHJpYnV0ZSAqYWxsb2NfYXR0cmlidXRlKHN0cnVjdCBwb3NpdGlvbiBwb3MsIGVudW0g YXR0cmlidXRlX3R5cGUgdHlwZSwgc3RydWN0IHN5bWJvbCAqc3ltYm9sKQoreworCXN0cnVjdCBh dHRyaWJ1dGUgKmF0dHIgPSBfX2FsbG9jX2F0dHJpYnV0ZSgwKTsKKwlhdHRyLT50eXBlID0gdHlw ZTsKKwlhdHRyLT5wb3MgPSBwb3M7CisJYXR0ci0+c3ltYm9sID0gc3ltYm9sOworCXJldHVybiBh dHRyOworfQorCiBzdHJ1Y3Qgc3ltYm9sICphbGxvY19zeW1ib2woc3RydWN0IHBvc2l0aW9uIHBv cywgaW50IHR5cGUpCiB7CiAJc3RydWN0IHN5bWJvbCAqc3ltID0gX19hbGxvY19zeW1ib2woMCk7 CmRpZmYgLS1naXQgYS9zeW1ib2wuaCBiL3N5bWJvbC5oCmluZGV4IDQzNjJmOWEuLjYzMDk2Zjgg MTAwNjQ0Ci0tLSBhL3N5bWJvbC5oCisrKyBiL3N5bWJvbC5oCkBAIC03OCwxMCArNzgsMzIgQEAg ZXh0ZXJuIHN0cnVjdCBjb250ZXh0ICphbGxvY19jb250ZXh0KHZvaWQpOwogCiBERUNMQVJFX1BU Ul9MSVNUKGNvbnRleHRfbGlzdCwgc3RydWN0IGNvbnRleHQpOwogCitlbnVtIGF0dHJpYnV0ZV90 eXBlIHsKKwlBVF9FWFBSRVNTSU9OLAorCUFUX1RZUEVSRUYKK307CisKK3N0cnVjdCBhdHRyaWJ1 dGUgeworCWVudW0gYXR0cmlidXRlX3R5cGUgdHlwZTo4OworCisJc3RydWN0IHBvc2l0aW9uIHBv czsKKwlzdHJ1Y3QgcG9zaXRpb24gZW5kcG9zOworCXN0cnVjdCBzeW1ib2wgKnN5bWJvbDsKKwor CXVuaW9uIHsKKwkJc3RydWN0IGV4cHJlc3Npb24gKmV4cHI7CisJCXN0cnVjdCBzeW1ib2wgKnR5 cGVyZWY7CisJfTsKK307CisKK2V4dGVybiBzdHJ1Y3QgYXR0cmlidXRlICphbGxvY19hdHRyaWJ1 dGUoc3RydWN0IHBvc2l0aW9uIHBvcywKKwllbnVtIGF0dHJpYnV0ZV90eXBlIHR5cGUsIHN0cnVj dCBzeW1ib2wgKnN5bWJvbCk7CisKIHN0cnVjdCBjdHlwZSB7CiAJdW5zaWduZWQgbG9uZyBtb2Rp ZmllcnM7CiAJdW5zaWduZWQgbG9uZyBhbGlnbm1lbnQ7CiAJc3RydWN0IGNvbnRleHRfbGlzdCAq Y29udGV4dHM7CisJc3RydWN0IGF0dHJpYnV0ZV9saXN0ICphdHRyaWJ1dGVzOwogCXVuc2lnbmVk IGludCBhczsKIAlzdHJ1Y3Qgc3ltYm9sICpiYXNlX3R5cGU7CiB9OwotLSAKMS41LjIuMwoK --=-pek4o2O0TDWJrQbldhEq Content-Disposition: inline; filename*0=0002-Extract-init_keyword_table-from-init_parser-for-usag.pat; filename*1=ch Content-Type: application/mbox; name=0002-Extract-init_keyword_table-from-init_parser-for-usag.patch Content-Transfer-Encoding: base64 RnJvbSAxMjQyMTVmZmI1YmE4YWUyODAyODU4OGUxZjEyZDJhNTg2ZDIxZTIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoaWFzIEhhc3NlbG1hbm4gPG1hdGhpYXMuaGFzc2VsbWFu bkBnbXguZGU+CkRhdGU6IFR1ZSwgNCBTZXAgMjAwNyAyMjozMDoxNCArMDIwMApTdWJqZWN0OiBb UEFUQ0hdIEV4dHJhY3QgaW5pdF9rZXl3b3JkX3RhYmxlIGZyb20gaW5pdF9wYXJzZXIgZm9yIHVz YWdlIGluIGMyeG1sLgoKU2lnbmVkLW9mZi1ieTogTWF0aGlhcyBIYXNzZWxtYW5uIDxtYXRoaWFz Lmhhc3NlbG1hbm5AZ214LmRlPgotLS0KIHBhcnNlLmMgfCAgIDIwICsrKysrKysrKysrLS0tLS0t LS0tCiBwYXJzZS5oIHwgICAgOCArKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRp b25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3BhcnNlLmMgYi9wYXJzZS5jCmlu ZGV4IDIyMTllODYuLjZhYTQ4ZWMgMTAwNjQ0Ci0tLSBhL3BhcnNlLmMKKysrIGIvcGFyc2UuYwpA QCAtMTk2LDEyICsxOTYsNyBAQCBzdGF0aWMgc3RydWN0IHN5bWJvbF9vcCBtb2RlX3NwZWNfb3Ag PSB7CiAJLnR5cGUgPSBLV19NT0RFLAogfTsKIAotc3RhdGljIHN0cnVjdCBpbml0X2tleXdvcmQg ewotCWNvbnN0IGNoYXIgKm5hbWU7Ci0JZW51bSBuYW1lc3BhY2UgbnM7Ci0JdW5zaWduZWQgbG9u ZyBtb2RpZmllcnM7Ci0Jc3RydWN0IHN5bWJvbF9vcCAqb3A7Ci19IGtleXdvcmRfdGFibGVbXSA9 IHsKK3N0YXRpYyBzdHJ1Y3QgaW5pdF9rZXl3b3JkIGtleXdvcmRfdGFibGVbXSA9IHsKIAkvKiBU eXBlIHF1YWxpZmllcnMgKi8KIAl7ICJjb25zdCIsCU5TX1RZUEVERUYsIE1PRF9DT05TVCwgLm9w ID0gJnF1YWxpZmllcl9vcCB9LAogCXsgIl9fY29uc3QiLAlOU19UWVBFREVGLCBNT0RfQ09OU1Qs IC5vcCA9ICZxdWFsaWZpZXJfb3AgfSwKQEAgLTM0NCwxOCArMzM5LDI1IEBAIHN0YXRpYyBzdHJ1 Y3QgaW5pdF9rZXl3b3JkIHsKIAl7ICJfX2Rlc3RydWN0b3JfXyIsCU5TX0tFWVdPUkQsCS5vcCA9 ICZpZ25vcmVfYXR0cl9vcCB9LAogfTsKIAotdm9pZCBpbml0X3BhcnNlcihpbnQgc3RyZWFtKQor dm9pZCBpbml0X2tleXdvcmRfdGFibGUgKGludCBzdHJlYW0sIHN0cnVjdCBpbml0X2tleXdvcmQg KnRhYmxlLCBzaXplX3QgbGVuZ3RoKQogewogCWludCBpOwotCWZvciAoaSA9IDA7IGkgPCBzaXpl b2Yga2V5d29yZF90YWJsZS9zaXplb2Yga2V5d29yZF90YWJsZVswXTsgaSsrKSB7Ci0JCXN0cnVj dCBpbml0X2tleXdvcmQgKnB0ciA9IGtleXdvcmRfdGFibGUgKyBpOworCisJZm9yIChpID0gMDsg aSA8IGxlbmd0aDsgaSsrKSB7CisJCXN0cnVjdCBpbml0X2tleXdvcmQgKnB0ciA9IHRhYmxlICsg aTsKIAkJc3RydWN0IHN5bWJvbCAqc3ltID0gY3JlYXRlX3N5bWJvbChzdHJlYW0sIHB0ci0+bmFt ZSwgU1lNX0tFWVdPUkQsIHB0ci0+bnMpOworCiAJCXN5bS0+aWRlbnQtPmtleXdvcmQgPSAxOwog CQlzeW0tPmN0eXBlLm1vZGlmaWVycyA9IHB0ci0+bW9kaWZpZXJzOwogCQlzeW0tPm9wID0gcHRy LT5vcDsKIAl9CiB9CiAKK3ZvaWQgaW5pdF9wYXJzZXIoaW50IHN0cmVhbSkKK3sKKwlpbml0X2tl eXdvcmRfdGFibGUgKHN0cmVhbSwga2V5d29yZF90YWJsZSwgc2l6ZW9mIGtleXdvcmRfdGFibGUv c2l6ZW9mIGtleXdvcmRfdGFibGVbMF0pOworfQorCiAvLyBBZGQgYSBzeW1ib2wgdG8gdGhlIGxp c3Qgb2YgZnVuY3Rpb24tbG9jYWwgc3ltYm9scwogc3RhdGljIHZvaWQgZm5fbG9jYWxfc3ltYm9s KHN0cnVjdCBzeW1ib2wgKnN5bSkKIHsKZGlmZiAtLWdpdCBhL3BhcnNlLmggYi9wYXJzZS5oCmlu ZGV4IDYwOTkxMGYuLmIxYjBhZTkgMTAwNjQ0Ci0tLSBhL3BhcnNlLmgKKysrIGIvcGFyc2UuaApA QCAtMTE1LDYgKzExNSwxMyBAQCBzdHJ1Y3Qgc3RhdGVtZW50IHsKIAl9OwogfTsKIAorc3RydWN0 IGluaXRfa2V5d29yZCB7CisJY29uc3QgY2hhciAqbmFtZTsKKwllbnVtIG5hbWVzcGFjZSBuczsK Kwl1bnNpZ25lZCBsb25nIG1vZGlmaWVyczsKKwlzdHJ1Y3Qgc3ltYm9sX29wICpvcDsKK307CisK IGV4dGVybiBzdHJ1Y3Qgc3ltYm9sX2xpc3QgKmZ1bmN0aW9uX2NvbXB1dGVkX3RhcmdldF9saXN0 OwogZXh0ZXJuIHN0cnVjdCBzdGF0ZW1lbnRfbGlzdCAqZnVuY3Rpb25fY29tcHV0ZWRfZ290b19s aXN0OwogCkBAIC0xMzMsNiArMTQwLDcgQEAgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmN0eXBlX2Zw KHVuc2lnbmVkIGxvbmcgc3BlYyk7CiBleHRlcm4gdm9pZCBjb3B5X3N0YXRlbWVudChzdHJ1Y3Qg c3RhdGVtZW50ICpzcmMsIHN0cnVjdCBzdGF0ZW1lbnQgKmRzdCk7CiBleHRlcm4gaW50IGlubGlu ZV9mdW5jdGlvbihzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwciwgc3RydWN0IHN5bWJvbCAqc3ltKTsK IGV4dGVybiB2b2lkIHVuaW5saW5lKHN0cnVjdCBzeW1ib2wgKnN5bSk7CitleHRlcm4gdm9pZCBp bml0X2tleXdvcmRfdGFibGUgKGludCBzdHJlYW0sIHN0cnVjdCBpbml0X2tleXdvcmQgKnRhYmxl LCBzaXplX3QgbGVuZ3RoKTsKIGV4dGVybiB2b2lkIGluaXRfcGFyc2VyKGludCk7CiAKICNlbmRp ZiAvKiBQQVJTRV9IICovCi0tIAoxLjUuMi4zCgo= --=-pek4o2O0TDWJrQbldhEq Content-Disposition: inline; filename*0=0003-c2xml-Add-support-for-custom-attributes-and-omit-en.patc; filename*1=h Content-Type: application/mbox; name=0003-c2xml-Add-support-for-custom-attributes-and-omit-en.patch Content-Transfer-Encoding: base64 RnJvbSA0MmE0ZDY4MGIxN2Q2ZWQ0ZDBjYzExMDhjZWY1ZDFiMjk5NDk1ZjAxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoaWFzIEhhc3NlbG1hbm4gPG1hdGhpYXMuaGFzc2VsbWFu bkBnbXguZGU+CkRhdGU6IFR1ZSwgNCBTZXAgMjAwNyAyMjozNDoxNSArMDIwMApTdWJqZWN0OiBb UEFUQ0hdIGMyeG1sOiBBZGQgc3VwcG9ydCBmb3IgY3VzdG9tIGF0dHJpYnV0ZXMgYW5kIG9taXQg ZW5kIHBvc2l0aW9uIGluZm9ybWF0aW9uIHdoZW4KZXF1YWwgdG8gc3RhcnQgcG9zaXRpb24uIEN1 c3RvbSBhdHRyaWJ1dGVzIGFyZSBuZWVkZWQgZm9yIEdPYmplY3QgaW50cm9zcGVjdGlvbgp0byBl eHByZXNzIGRldGFpbHMgbGlrZSB0aGlzOgoKICAgICAgR0xpc3QqIGNyZWF0ZV9saXN0KCkgX19h dHRyaWJ1dGVfXygoZWxlbWVudF90eXBlKGNoYXIqKSkpCgpTaWduZWQtb2ZmLWJ5OiBNYXRoaWFz IEhhc3NlbG1hbm4gPG1hdGhpYXMuaGFzc2VsbWFubkBnbXguZGU+Ci0tLQogYzJ4bWwuYyB8ICAy MjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tCiAxIGZpbGVzIGNoYW5nZWQsIDE5MiBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9jMnhtbC5jIGIvYzJ4bWwuYwppbmRleCAzN2YyOWNmLi4zNmJh YTY4IDEwMDY0NAotLS0gYS9jMnhtbC5jCisrKyBiL2MyeG1sLmMKQEAgLTQ2LDM5ICs0Niw0OCBA QCBzdGF0aWMgeG1sQXR0clB0ciBuZXdJZFByb3AoeG1sTm9kZVB0ciBub2RlLCBjb25zdCBjaGFy ICpuYW1lLCB1bnNpZ25lZCBpbnQgaWQpCiAJcmV0dXJuIG5ld1Byb3Aobm9kZSwgbmFtZSwgYnVm KTsKIH0KIAotc3RhdGljIHhtbE5vZGVQdHIgbmV3X3N5bV9ub2RlKHN0cnVjdCBzeW1ib2wgKnN5 bSwgY29uc3QgY2hhciAqbmFtZSwgeG1sTm9kZVB0ciBwYXJlbnQpCitzdGF0aWMgdm9pZCBuZXdQ b3NpdGlvblByb3BzKHhtbE5vZGVQdHIgbm9kZSwgc3RydWN0IHBvc2l0aW9uIHBvcywgc3RydWN0 IHBvc2l0aW9uIGVuZHBvcykKIHsKKwluZXdQcm9wKG5vZGUsICJmaWxlIiwgc3RyZWFtX25hbWUo cG9zLnN0cmVhbSkpOworCisJbmV3TnVtUHJvcChub2RlLCAic3RhcnQtbGluZSIsIHBvcy5saW5l KTsKKwluZXdOdW1Qcm9wKG5vZGUsICJzdGFydC1jb2wiLCBwb3MucG9zKTsKKworCWlmIChlbmRw b3MudHlwZSAKKyAgICAgICAgICAgICYmIChwb3MubGluZSAhPSBlbmRwb3MubGluZSAKKyAgICAg ICAgICAgIHx8ICBwb3MucG9zICE9IGVuZHBvcy5wb3MgCisgICAgICAgICAgICB8fCAgcG9zLnN0 cmVhbSAhPSBlbmRwb3Muc3RyZWFtKSkgeworCQluZXdOdW1Qcm9wKG5vZGUsICJlbmQtbGluZSIs IGVuZHBvcy5saW5lKTsKKwkJbmV3TnVtUHJvcChub2RlLCAiZW5kLWNvbCIsIGVuZHBvcy5wb3Mp OworCQlpZiAocG9zLnN0cmVhbSAhPSBlbmRwb3Muc3RyZWFtKQorCQkJbmV3UHJvcChub2RlLCAi ZW5kLWZpbGUiLCBzdHJlYW1fbmFtZShlbmRwb3Muc3RyZWFtKSk7CisgICAgICAgIH0KK30KKwor c3RhdGljIHhtbE5vZGVQdHIgbmV3X3N5bV9ub2RlKHN0cnVjdCBzeW1ib2wgKnN5bSwgY29uc3Qg Y2hhciAqdHlwZSwgeG1sTm9kZVB0ciBwYXJlbnQpCit7CisJY29uc3QgY2hhciAqaWRlbnQgPSBO VUxMOwogCXhtbE5vZGVQdHIgbm9kZTsKLQljb25zdCBjaGFyICppZGVudCA9IHNob3dfaWRlbnQo c3ltLT5pZGVudCk7CiAKLQlhc3NlcnQobmFtZSAhPSBOVUxMKTsKKwlhc3NlcnQodHlwZSAhPSBO VUxMKTsKIAlhc3NlcnQoc3ltICE9IE5VTEwpOwogCWFzc2VydChwYXJlbnQgIT0gTlVMTCk7CiAK IAlub2RlID0geG1sTmV3Q2hpbGQocGFyZW50LCBOVUxMLCBCQURfQ0FTVCAic3ltYm9sIiwgTlVM TCk7CiAKLQluZXdQcm9wKG5vZGUsICJ0eXBlIiwgbmFtZSk7Ci0KKwluZXdQcm9wKG5vZGUsICJ0 eXBlIiwgdHlwZSk7CiAJbmV3SWRQcm9wKG5vZGUsICJpZCIsIGlkY291bnQpOwogCi0JaWYgKHN5 bS0+aWRlbnQgJiYgaWRlbnQpCisJaWYgKHN5bS0+aWRlbnQpCisJCWlkZW50ID0gc2hvd19pZGVu dChzeW0tPmlkZW50KTsKKwlpZiAoaWRlbnQpCiAJCW5ld1Byb3Aobm9kZSwgImlkZW50IiwgaWRl bnQpOwotCW5ld1Byb3Aobm9kZSwgImZpbGUiLCBzdHJlYW1fbmFtZShzeW0tPnBvcy5zdHJlYW0p KTsKIAotCW5ld051bVByb3Aobm9kZSwgInN0YXJ0LWxpbmUiLCBzeW0tPnBvcy5saW5lKTsKLQlu ZXdOdW1Qcm9wKG5vZGUsICJzdGFydC1jb2wiLCBzeW0tPnBvcy5wb3MpOwotCi0JaWYgKHN5bS0+ ZW5kcG9zLnR5cGUpIHsKLQkJbmV3TnVtUHJvcChub2RlLCAiZW5kLWxpbmUiLCBzeW0tPmVuZHBv cy5saW5lKTsKLQkJbmV3TnVtUHJvcChub2RlLCAiZW5kLWNvbCIsIHN5bS0+ZW5kcG9zLnBvcyk7 Ci0JCWlmIChzeW0tPnBvcy5zdHJlYW0gIT0gc3ltLT5lbmRwb3Muc3RyZWFtKQotCQkJbmV3UHJv cChub2RlLCAiZW5kLWZpbGUiLCBzdHJlYW1fbmFtZShzeW0tPmVuZHBvcy5zdHJlYW0pKTsKLSAg ICAgICAgfQotCXN5bS0+YXV4ID0gbm9kZTsKKwluZXdQb3NpdGlvblByb3BzIChub2RlLCBzeW0t PnBvcywgc3ltLT5lbmRwb3MpOwogCiAJaWRjb3VudCsrOwogCi0JcmV0dXJuIG5vZGU7CisJcmV0 dXJuIChzeW0tPmF1eCA9IG5vZGUpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZXhhbWluZV9t ZW1iZXJzKHN0cnVjdCBzeW1ib2xfbGlzdCAqbGlzdCwgeG1sTm9kZVB0ciBub2RlKQpAQCAtMTUx LDEwICsxNjAsMTA2IEBAIGV4YW1pbmVfbGF5b3V0KHN0cnVjdCBzeW1ib2wgKnN5bSwgeG1sTm9k ZVB0ciBub2RlKQogCX0KIH0KIAotc3RhdGljIHZvaWQgZXhhbWluZV9zeW1ib2woc3RydWN0IHN5 bWJvbCAqc3ltLCB4bWxOb2RlUHRyIG5vZGUpCitzdGF0aWMgdm9pZCBleGFtaW5lX2V4cHJlc3Np b24oc3RydWN0IGV4cHJlc3Npb24gKmV4cHIsIHhtbE5vZGVQdHIgbm9kZSkKIHsKIAl4bWxOb2Rl UHRyIGNoaWxkID0gTlVMTDsKKworCWlmIChleHByKSB7CisJCXN3aXRjaCAoZXhwci0+dHlwZSkg eworCQkJY2FzZSBFWFBSX0NPTU1BOgorCQkJCWV4YW1pbmVfZXhwcmVzc2lvbihleHByLT5sZWZ0 LCBub2RlKTsKKwkJCQlleGFtaW5lX2V4cHJlc3Npb24oZXhwci0+cmlnaHQsIG5vZGUpOworCQkJ CWJyZWFrOworCisJCQljYXNlIEVYUFJfU1RSSU5HOgorCQkJCWNoaWxkID0geG1sTmV3Q2hpbGQo bm9kZSwgTlVMTCwgQkFEX0NBU1QgImV4cHJlc3Npb24iLCBOVUxMKTsKKworCQkJCW5ld1Byb3Ao Y2hpbGQsICJ0eXBlIiwgInN0cmluZyIpOworCQkJCW5ld1Byb3AoY2hpbGQsICJ2YWx1ZSIsIGV4 cHItPnN0cmluZy0+ZGF0YSk7CisJCQkJYnJlYWs7CisKKwkJCWRlZmF1bHQ6CisJCQkJY2hpbGQg PSB4bWxOZXdDaGlsZChub2RlLCBOVUxMLCBCQURfQ0FTVCAiZXhwcmVzc2lvbiIsIE5VTEwpOwor CisJCQkJbmV3UHJvcChjaGlsZCwgInR5cGUiLCAidmFsdWUiKTsKKwkJCQluZXdOdW1Qcm9wKGNo aWxkLCAidmFsdWUiLCBjb25zdF9leHByZXNzaW9uX3ZhbHVlIChleHByKSk7CisKKwkJCQlicmVh azsKKwkJfQorCisJCWlmIChjaGlsZCkKKwkJCW5ld1Bvc2l0aW9uUHJvcHMoY2hpbGQsIGV4cHIt PnBvcywgZXhwci0+cG9zKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGV4YW1pbmVfdHlwZXJlZihz dHJ1Y3Qgc3ltYm9sICp0eXBlcmVmLCB4bWxOb2RlUHRyIG5vZGUpCit7CisJeG1sTm9kZVB0ciBj aGlsZDsKIAljb25zdCBjaGFyICpiYXNlOworCisJY2hpbGQgPSB4bWxOZXdDaGlsZChub2RlLCBO VUxMLCBCQURfQ0FTVCAidHlwZS1yZWZlcmVuY2UiLCBOVUxMKTsKKworCWlmICgoYmFzZSA9IGJ1 aWx0aW5fdHlwZW5hbWUodHlwZXJlZikpID09IE5VTEwpIHsKKwkJaWYgKCF0eXBlcmVmLT5hdXgp IHsKKwkJCWV4YW1pbmVfc3ltYm9sKHR5cGVyZWYsIHJvb3Rfbm9kZSk7CisJCX0KKworCQl4bWxO ZXdQcm9wKGNoaWxkLCBCQURfQ0FTVCAidHlwZSIsIHhtbEdldFByb3AoKHhtbE5vZGVQdHIpdHlw ZXJlZi0+YXV4LCBCQURfQ0FTVCAiaWQiKSk7CisJfSBlbHNlIHsKKwkJbmV3UHJvcChjaGlsZCwg InR5cGUtYnVpbHRpbiIsIGJhc2UpOworCX0KK30KKworc3RhdGljIHZvaWQgZXhhbWluZV9hdHRy aWJ1dGUoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgeG1sTm9kZVB0ciBub2RlKQoreworCXhtbE5v ZGVQdHIgY2hpbGQ7CisKKwljaGlsZCA9IHhtbE5ld0NoaWxkKG5vZGUsIE5VTEwsIEJBRF9DQVNU ICJhdHRyaWJ1dGUiLCBOVUxMKTsKKworCW5ld1Byb3AoY2hpbGQsICJuYW1lIiwgYXR0ci0+c3lt Ym9sLT5pZGVudC0+bmFtZSk7CisJbmV3UG9zaXRpb25Qcm9wcyhjaGlsZCwgYXR0ci0+cG9zLCBh dHRyLT5lbmRwb3MpOworCisJc3dpdGNoIChhdHRyLT50eXBlKSB7CisJCWNhc2UgQVRfRVhQUkVT U0lPTjoKKwkJCWV4YW1pbmVfZXhwcmVzc2lvbihhdHRyLT5leHByLCBjaGlsZCk7CisJCQlicmVh azsKKworCQljYXNlIEFUX1RZUEVSRUY6CisJCQlleGFtaW5lX3R5cGVyZWYoYXR0ci0+dHlwZXJl ZiwgY2hpbGQpOworCQkJYnJlYWs7CisJfQorfQorCitzdGF0aWMgdm9pZCBleGFtaW5lX2N0eXBl KHN0cnVjdCBjdHlwZSAqY3R5cGUsIHhtbE5vZGVQdHIgbm9kZSkKK3sKKwlzdHJ1Y3QgYXR0cmli dXRlICphdHRyOworCWNvbnN0IGNoYXIgKmJhc2U7CisKKwlhc3NlcnQoY3R5cGUgIT0gTlVMTCk7 CisJYXNzZXJ0KG5vZGUgIT0gTlVMTCk7CisKKwlpZiAoY3R5cGUtPmJhc2VfdHlwZSkgeworCQlp ZiAoKGJhc2UgPSBidWlsdGluX3R5cGVuYW1lKGN0eXBlLT5iYXNlX3R5cGUpKSA9PSBOVUxMKSB7 CisJCQlpZiAoIWN0eXBlLT5iYXNlX3R5cGUtPmF1eCkgeworCQkJCWV4YW1pbmVfc3ltYm9sKGN0 eXBlLT5iYXNlX3R5cGUsIHJvb3Rfbm9kZSk7CisJCQl9CisJCQl4bWxOZXdQcm9wKG5vZGUsIEJB RF9DQVNUICJiYXNlLXR5cGUiLAorCQkJCSAgIHhtbEdldFByb3AoKHhtbE5vZGVQdHIpY3R5cGUt PmJhc2VfdHlwZS0+YXV4LCBCQURfQ0FTVCAiaWQiKSk7CisJCX0gZWxzZSB7CisJCQluZXdQcm9w KG5vZGUsICJiYXNlLXR5cGUtYnVpbHRpbiIsIGJhc2UpOworCQl9CisJfQorCisJaWYgKGN0eXBl LT5hdHRyaWJ1dGVzKSB7CisJCUZPUl9FQUNIX1BUUihjdHlwZS0+YXR0cmlidXRlcywgYXR0cikg eworCQkJZXhhbWluZV9hdHRyaWJ1dGUoYXR0ciwgbm9kZSk7CisJCX0gRU5EX0ZPUl9FQUNIX1BU UihhdHRyKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGV4YW1pbmVfc3ltYm9sKHN0cnVjdCBzeW1i b2wgKnN5bSwgeG1sTm9kZVB0ciBub2RlKQoreworCXhtbE5vZGVQdHIgY2hpbGQgPSBOVUxMOwog CWludCBhcnJheV9zaXplOwogCiAJaWYgKCFzeW0pCkBAIC0xNjgsMTggKzI3Myw4IEBAIHN0YXRp YyB2b2lkIGV4YW1pbmVfc3ltYm9sKHN0cnVjdCBzeW1ib2wgKnN5bSwgeG1sTm9kZVB0ciBub2Rl KQogCWNoaWxkID0gbmV3X3N5bV9ub2RlKHN5bSwgZ2V0X3R5cGVfbmFtZShzeW0tPnR5cGUpLCBu b2RlKTsKIAlleGFtaW5lX21vZGlmaWVycyhzeW0sIGNoaWxkKTsKIAlleGFtaW5lX2xheW91dChz eW0sIGNoaWxkKTsKKwlleGFtaW5lX2N0eXBlICgmc3ltLT5jdHlwZSwgY2hpbGQpOwogCi0JaWYg KHN5bS0+Y3R5cGUuYmFzZV90eXBlKSB7Ci0JCWlmICgoYmFzZSA9IGJ1aWx0aW5fdHlwZW5hbWUo c3ltLT5jdHlwZS5iYXNlX3R5cGUpKSA9PSBOVUxMKSB7Ci0JCQlpZiAoIXN5bS0+Y3R5cGUuYmFz ZV90eXBlLT5hdXgpIHsKLQkJCQlleGFtaW5lX3N5bWJvbChzeW0tPmN0eXBlLmJhc2VfdHlwZSwg cm9vdF9ub2RlKTsKLQkJCX0KLQkJCXhtbE5ld1Byb3AoY2hpbGQsIEJBRF9DQVNUICJiYXNlLXR5 cGUiLAotCQkJICAgICAgICAgICB4bWxHZXRQcm9wKCh4bWxOb2RlUHRyKXN5bS0+Y3R5cGUuYmFz ZV90eXBlLT5hdXgsIEJBRF9DQVNUICJpZCIpKTsKLQkJfSBlbHNlIHsKLQkJCW5ld1Byb3AoY2hp bGQsICJiYXNlLXR5cGUtYnVpbHRpbiIsIGJhc2UpOwotCQl9Ci0JfQogCWlmIChzeW0tPmFycmF5 X3NpemUpIHsKIAkJLyogVE9ETzogbW9kaWZ5IGdldF9leHByZXNzaW9uX3ZhbHVlIHRvIGdpdmUg ZXJyb3IgcmV0dXJuICovCiAJCWFycmF5X3NpemUgPSBnZXRfZXhwcmVzc2lvbl92YWx1ZShzeW0t PmFycmF5X3NpemUpOwpAQCAtMjgxLDYgKzM3Niw3MiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZXhh bWluZV9zeW1ib2xfbGlzdChjb25zdCBjaGFyICpmaWxlLCBzdHJ1Y3Qgc3ltYm9sX2xpc3QgKmxp cwogCX0gRU5EX0ZPUl9FQUNIX1BUUihzeW0pOwogfQogCitzdGF0aWMgc3RydWN0IHRva2VuICpl eHByX2F0dHJpYnV0ZShzdHJ1Y3QgdG9rZW4gKnRva2VuLCBzdHJ1Y3Qgc3ltYm9sICpzeW1ib2ws IHN0cnVjdCBjdHlwZSAqY3R5cGUpCit7CisJc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciA9IGFsbG9j X2F0dHJpYnV0ZSAodG9rZW4tPnBvcywgQVRfRVhQUkVTU0lPTiwgc3ltYm9sKTsKKworCWFkZF9h dHRyaWJ1dGUoJmN0eXBlLT5hdHRyaWJ1dGVzLCBhdHRyKTsKKworCWlmIChtYXRjaF9vcCh0b2tl biwgJygnKSkKKwkJdG9rZW4gPSBwYXJlbnNfZXhwcmVzc2lvbih0b2tlbiwgJmF0dHItPmV4cHIs ICJpbiBhdHRyaWJ1dGUiKTsKKworCWF0dHItPmVuZHBvcyA9IHRva2VuLT5wb3M7CisKKwlyZXR1 cm4gdG9rZW47Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdG9rZW4gKnR5cGVuYW1lX2F0dHJpYnV0ZShz dHJ1Y3QgdG9rZW4gKnRva2VuLCBzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBjdHlwZSAq Y3R5cGUpCit7CisJc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciA9IGFsbG9jX2F0dHJpYnV0ZSAodG9r ZW4tPnBvcywgQVRfVFlQRVJFRiwgc3ltYm9sKTsKKworCWFkZF9hdHRyaWJ1dGUoJmN0eXBlLT5h dHRyaWJ1dGVzLCBhdHRyKTsKKworCXRva2VuID0gZXhwZWN0ICh0b2tlbiwgJygnLCAiYXQgYXR0 cmlidXRlIik7CisKKwlpZiAobG9va3VwX3R5cGUodG9rZW4pKSB7CisJCXN0cnVjdCBzeW1ib2wg KnN5bTsKKwkJaW50IGlzX2ZvcmNlOworCisJCXRva2VuID0gdHlwZW5hbWUodG9rZW4sICZzeW0s IE1PRF9GT1JDRSk7CisJCWlzX2ZvcmNlID0gc3ltLT5jdHlwZS5tb2RpZmllcnMgJiBNT0RfRk9S Q0U7CisJCXN5bS0+Y3R5cGUubW9kaWZpZXJzICY9IH5NT0RfRk9SQ0U7CisJCXRva2VuID0gZXhw ZWN0KHRva2VuLCAnKScsICJhdCBlbmQgb2YgYXR0cmlidXRlIik7CisKKwkJYXNzZXJ0IChTWU1f Tk9ERSA9PSBzeW0tPnR5cGUpOworCisJCWF0dHItPnR5cGVyZWYgPSBzeW0tPmN0eXBlLmJhc2Vf dHlwZTsKKwl9IGVsc2UgeworCQlzcGFyc2VfZXJyb3IgKHRva2VuLT5wb3MsICJ0eXBlbmFtZSBl eHBlY3RlZCBmb3IgJXMgYXR0aWJ1dGUiLCBzeW1ib2wtPmlkZW50LT5uYW1lKTsKKwl9CisKKwlh dHRyLT5lbmRwb3MgPSB0b2tlbi0+cG9zOworCisJcmV0dXJuIHRva2VuOworfQorCitzdGF0aWMg c3RydWN0IHN5bWJvbF9vcCBzdG9yZV9leHByX2F0dHJpYnV0ZV9vcCA9IHsKKwkuYXR0cmlidXRl ID0gZXhwcl9hdHRyaWJ1dGUsCit9OworCitzdGF0aWMgc3RydWN0IHN5bWJvbF9vcCBzdG9yZV90 eXBlbmFtZV9hdHRyaWJ1dGVfb3AgPSB7CisJLmF0dHJpYnV0ZSA9IHR5cGVuYW1lX2F0dHJpYnV0 ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaW5pdF9rZXl3b3JkIGF0dHJpYnV0ZV90YWJsZVtdID0g eworCXsgIm93bnNfZWxlbWVudHMiLAlOU19LRVlXT1JELCAub3AgPSAmc3RvcmVfZXhwcl9hdHRy aWJ1dGVfb3AgfSwKKwl7ICJlbGVtZW50X3R5cGUiLAlOU19LRVlXT1JELCAub3AgPSAmc3RvcmVf dHlwZW5hbWVfYXR0cmlidXRlX29wIH0sCit9OworCitzdGF0aWMgdm9pZCBpbml0aWFsaXplX2F0 dHJpYnV0ZXMoKQoreworCXN0cnVjdCBzeW1ib2wgKmtleXdvcmQ7CisKKwlrZXl3b3JkID0gbG9v a3VwX2tleXdvcmQoJnVudXNlZF9pZGVudCwgTlNfS0VZV09SRCB8IE5TX1RZUEVERUYpOworCWtl eXdvcmQtPm9wLT5hdHRyaWJ1dGUgPSBleHByX2F0dHJpYnV0ZTsKKworCWluaXRfa2V5d29yZF90 YWJsZSAoLTEsIGF0dHJpYnV0ZV90YWJsZSwgc2l6ZW9mIGF0dHJpYnV0ZV90YWJsZS9zaXplb2Yg YXR0cmlidXRlX3RhYmxlWzBdKTsKK30KKwogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQogewogCXN0cnVjdCBzdHJpbmdfbGlzdCAqZmlsZWxpc3QgPSBOVUxMOwpAQCAtMzAwLDYgKzQ2 MSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAl4bWxTZXROcyhyb290X25v ZGUsIG5zKTsKICovCiAJc3ltbGlzdCA9IHNwYXJzZV9pbml0aWFsaXplKGFyZ2MsIGFyZ3YsICZm aWxlbGlzdCk7CisJaW5pdGlhbGl6ZV9hdHRyaWJ1dGVzKCk7CiAKIAlGT1JfRUFDSF9QVFJfTk9U QUcoZmlsZWxpc3QsIGZpbGUpIHsKIAkJZXhhbWluZV9zeW1ib2xfbGlzdChmaWxlLCBzeW1saXN0 KTsKLS0gCjEuNS4yLjMKCg== --=-pek4o2O0TDWJrQbldhEq Content-Disposition: inline; filename=0004-c2xml-Implement-command-line-options.patch Content-Type: application/mbox; name=0004-c2xml-Implement-command-line-options.patch Content-Transfer-Encoding: base64 RnJvbSBiZTk2ZDNjNjBlOWU1MmU2NDQ4YmY5MDQ0NGViMWU4YmIzYTQ4ZDVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoaWFzIEhhc3NlbG1hbm4gPG1hdGhpYXMuaGFzc2VsbWFu bkBnbXguZGU+CkRhdGU6IFR1ZSwgNCBTZXAgMjAwNyAyMjo0NDo1OCArMDIwMApTdWJqZWN0OiBb UEFUQ0hdIGMyeG1sOiBJbXBsZW1lbnQgY29tbWFuZCBsaW5lIG9wdGlvbnM6CgogICAgLWQgICAg ICAgICAgIGluY2x1ZGUgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbgogICAgLXAgICAgICAgICAg IG91dHB1dCBwb3NpdGlvbiBpbmZvcm1hdGlvbiBmb3Igc3ltYm9scwogICAgLW8gRklMRU5BTUUg IHdyaXRlIHRoZSBkb2N1bWVudCB0byBGSUxFTkFNRQogICAgLWggICAgICAgICAgIGRpc3BsYXkg dXNhZ2UgaW5mb3JtYXRpb24gLSB0aGlzIHBhZ2UKClNpZ25lZC1vZmYtYnk6IE1hdGhpYXMgSGFz c2VsbWFubiA8bWF0aGlhcy5oYXNzZWxtYW5uQGdteC5kZT4KLS0tCiBjMnhtbC5jIHwgICA3OSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLQogMSBmaWxlcyBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2MyeG1sLmMgYi9jMnhtbC5jCmluZGV4IDM2YmFhNjguLjcxYTM0YTEgMTAw NjQ0Ci0tLSBhL2MyeG1sLmMKKysrIGIvYzJ4bWwuYwpAQCAtMTEsNiArMTEsNyBAQAogI2luY2x1 ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+Cisj aW5jbHVkZSA8bGliZ2VuLmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxhc3NlcnQu aD4KICNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CkBAIC0yMSwxMCArMjIsMTYgQEAKICNpbmNs dWRlICJzY29wZS5oIgogI2luY2x1ZGUgInN5bWJvbC5oIgogCisjZGVmaW5lIERURF9FWFRFUk5B TF9JRCAiaHR0cDovL3d3dy5rZXJuZWwub3JnL3B1Yi9zb2Z0d2FyZS9kZXZlbC9zcGFyc2UvcGFy c2UuZHRkIgorCiBzdGF0aWMgeG1sRG9jUHRyIGRvYyA9IE5VTEw7ICAgICAgIC8qIGRvY3VtZW50 IHBvaW50ZXIgKi8KIHN0YXRpYyB4bWxOb2RlUHRyIHJvb3Rfbm9kZSA9IE5VTEw7Lyogcm9vdCBu b2RlIHBvaW50ZXIgKi8KIHN0YXRpYyBpbnQgaWRjb3VudCA9IDA7CiAKK3N0YXRpYyBjb25zdCBj aGFyICpvdXRwdXRfZmlsZW5hbWUgPSAiLSI7CitzdGF0aWMgaW50IGluY2x1ZGVfcG9zaXRpb25z ID0gMDsKK3N0YXRpYyBpbnQgaW5jbHVkZV9kdGQgPSAwOworCiBzdGF0aWMgdm9pZCBleGFtaW5l X3N5bWJvbChzdHJ1Y3Qgc3ltYm9sICpzeW0sIHhtbE5vZGVQdHIgbm9kZSk7CiAKIHN0YXRpYyB4 bWxBdHRyUHRyIG5ld1Byb3AoeG1sTm9kZVB0ciBub2RlLCBjb25zdCBjaGFyICpuYW1lLCBjb25z dCBjaGFyICp2YWx1ZSkKQEAgLTQ4LDYgKzU1LDkgQEAgc3RhdGljIHhtbEF0dHJQdHIgbmV3SWRQ cm9wKHhtbE5vZGVQdHIgbm9kZSwgY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgaW50IGlkKQog CiBzdGF0aWMgdm9pZCBuZXdQb3NpdGlvblByb3BzKHhtbE5vZGVQdHIgbm9kZSwgc3RydWN0IHBv c2l0aW9uIHBvcywgc3RydWN0IHBvc2l0aW9uIGVuZHBvcykKIHsKKwlpZiAoIWluY2x1ZGVfcG9z aXRpb25zKQorCQlyZXR1cm47CisKIAluZXdQcm9wKG5vZGUsICJmaWxlIiwgc3RyZWFtX25hbWUo cG9zLnN0cmVhbSkpOwogCiAJbmV3TnVtUHJvcChub2RlLCAic3RhcnQtbGluZSIsIHBvcy5saW5l KTsKQEAgLTQ0MiwyNCArNDUyLDc3IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVfYXR0cmlidXRl cygpCiAJaW5pdF9rZXl3b3JkX3RhYmxlICgtMSwgYXR0cmlidXRlX3RhYmxlLCBzaXplb2YgYXR0 cmlidXRlX3RhYmxlL3NpemVvZiBhdHRyaWJ1dGVfdGFibGVbMF0pOwogfQogCitzdGF0aWMgdm9p ZCBwcmludF91c2FnZShjaGFyICphcmcwKQoreworCXByaW50ZigiVXNhZ2U6ICVzIFtPUFRJT05d Li4uIFtGSUxFXS4uLlxuIgorCSAgICAgICAiUGFyc2VzIEMgY29kZSBhbmQgb3V0cHV0cyB0aGUg cmVzdWx0cyBhcyBYTUwgZG9jdW1lbnQuXG4iCisJCSJcbiIKKwkJIk9wdGlvbnM6XG4iCisJCSIg IC1kICAgICAgICAgICBpbmNsdWRlIGRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb25cbiIKKwkJIiAg LXAgICAgICAgICAgIG91dHB1dCBwb3NpdGlvbiBpbmZvcm1hdGlvbiBmb3Igc3ltYm9sc1xuIgor CQkiICAtbyBGSUxFTkFNRSAgd3JpdGUgdGhlIGRvY3VtZW50IHRvIEZJTEVOQU1FXG4iCisJCSIg IC1oICAgICAgICAgICBkaXNwbGF5IHVzYWdlIGluZm9ybWF0aW9uIC0gdGhpcyBwYWdlXG4iCisJ CSJcbiIKKwkJIlJlcG9ydCBidWdzIHRvIDxsaW51eC1zcGFyc2VAdmdlci5rZXJuZWwub3JnPlxu IiwKKwkJYmFzZW5hbWUoYXJnMCkpOworfQorCitzdGF0aWMgaW50IHBhcnNlX29wdGlvbnMoaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCXdoaWxlICgxKSB7CisJCXN3aXRjaCAoZ2V0b3B0IChh cmdjLCBhcmd2LCAiaGRvOnAiKSkgeworCQkJY2FzZSAnaCc6CisJCQkJcHJpbnRfdXNhZ2UoYXJn dlswXSk7CisJCQkJcmV0dXJuIDE7CisKKwkJCWNhc2UgJ2QnOgorCQkJCWluY2x1ZGVfZHRkID0g MTsKKwkJCQlicmVhazsKKworCQkJY2FzZSAnbyc6CisJCQkJb3V0cHV0X2ZpbGVuYW1lID0gb3B0 YXJnOworCQkJCWJyZWFrOworCisJCQljYXNlICdwJzoKKwkJCQlpbmNsdWRlX3Bvc2l0aW9ucyA9 IDE7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgJz8nOgorCQkJCWZwcmludGYoc3RkZXJyLAorCQkJ CQkiVHJ5IGAlcyAtaCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iLAorCQkJCQliYXNlbmFtZShh cmd2WzBdKSk7CisKKwkJCQlyZXR1cm4gMjsKKworCQkJY2FzZSAtMToKKwkJCQlyZXR1cm4gMDsK KwkJfQorCX0KK30KKwogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVj dCBzdHJpbmdfbGlzdCAqZmlsZWxpc3QgPSBOVUxMOwogCXN0cnVjdCBzeW1ib2xfbGlzdCAqc3lt bGlzdCA9IE5VTEw7CiAJY2hhciAqZmlsZTsKIAorCXhtbER0ZFB0ciBkdGQ7CisJeG1sTnNQdHIg bnM7CisJaW50IHJjOworCisJaWYgKDAgIT0gKHJjID0gcGFyc2Vfb3B0aW9ucyhhcmdjLCBhcmd2 KSkpCisJCXJldHVybiByYzsKKwogCWRvYyA9IHhtbE5ld0RvYyhCQURfQ0FTVCAiMS4wIik7CiAJ cm9vdF9ub2RlID0geG1sTmV3Tm9kZShOVUxMLCBCQURfQ0FTVCAicGFyc2UiKTsKIAl4bWxEb2NT ZXRSb290RWxlbWVudChkb2MsIHJvb3Rfbm9kZSk7CiAKLS8qIC0gQSBEVEQgaXMgcHJvYmFibHkg dW5uZWNlc3NhcnkgZm9yIHNvbWV0aGluZyBsaWtlIHRoaXMKLQotCWR0ZCA9IHhtbENyZWF0ZUlu dFN1YnNldChkb2MsICJwYXJzZSIsICJodHRwOi8vd3d3Lmtlcm5lbC5vcmcvcHViL3NvZnR3YXJl L2RldmVsL3NwYXJzZS9wYXJzZS5kdGQiIE5VTEwsICJwYXJzZS5kdGQiKTsKLQotCW5zID0geG1s TmV3TnMgKHJvb3Rfbm9kZSwgImh0dHA6Ly93d3cua2VybmVsLm9yZy9wdWIvc29mdHdhcmUvZGV2 ZWwvc3BhcnNlL3BhcnNlLmR0ZCIsIE5VTEwpOworCWlmIChpbmNsdWRlX2R0ZCkgeworCQlkdGQg PSB4bWxDcmVhdGVJbnRTdWJzZXQoZG9jLCBCQURfQ0FTVCAicGFyc2UiLCBCQURfQ0FTVCBEVERf RVhURVJOQUxfSUQsIEJBRF9DQVNUICJwYXJzZS5kdGQiKTsKKwkJbnMgPSB4bWxOZXdOcyAocm9v dF9ub2RlLCBCQURfQ0FTVCBEVERfRVhURVJOQUxfSUQsIE5VTEwpOworCQl4bWxTZXROcyhyb290 X25vZGUsIG5zKTsKKwl9CiAKLQl4bWxTZXROcyhyb290X25vZGUsIG5zKTsKLSovCiAJc3ltbGlz dCA9IHNwYXJzZV9pbml0aWFsaXplKGFyZ2MsIGFyZ3YsICZmaWxlbGlzdCk7CiAJaW5pdGlhbGl6 ZV9hdHRyaWJ1dGVzKCk7CiAKQEAgLTQ3MSw3ICs1MzQsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAJfSBFTkRfRk9SX0VBQ0hfUFRSX05PVEFHKGZpbGUpOwogCiAKLQl4bWxT YXZlRm9ybWF0RmlsZUVuYygiLSIsIGRvYywgIlVURi04IiwgMSk7CisJeG1sU2F2ZUZvcm1hdEZp bGVFbmMob3V0cHV0X2ZpbGVuYW1lLCBkb2MsICJVVEYtOCIsIDEpOwogCXhtbEZyZWVEb2MoZG9j KTsKIAl4bWxDbGVhbnVwUGFyc2VyKCk7CiAKLS0gCjEuNS4yLjMKCg== --=-pek4o2O0TDWJrQbldhEq Content-Disposition: inline; filename=0005-c2xml-Output-initializer-expressions-needed-for-in.patch Content-Type: application/mbox; name=0005-c2xml-Output-initializer-expressions-needed-for-in.patch Content-Transfer-Encoding: base64 RnJvbSAxNjA1Yjg2MjYzN2FlY2Q1NGNmZDViMTU5Yzk2NDE1YmRkZGY0NmMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoaWFzIEhhc3NlbG1hbm4gPG1hdGhpYXMuaGFzc2VsbWFu bkBnbXguZGU+CkRhdGU6IFR1ZSwgNCBTZXAgMjAwNyAyMjo0Nzo1MCArMDIwMApTdWJqZWN0OiBb UEFUQ0hdIGMyeG1sOiBPdXRwdXQgaW5pdGlhbGl6ZXIgZXhwcmVzc2lvbnMsIG5lZWRlZCBmb3Ig aW5zdGFuY2UgZm9yIGVudW0gdmFsdWVzLgoKU2lnbmVkLW9mZi1ieTogTWF0aGlhcyBIYXNzZWxt YW5uIDxtYXRoaWFzLmhhc3NlbG1hbm5AZ214LmRlPgotLS0KIGMyeG1sLmMgfCAgICA1ICsrKyst CiAxIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9jMnhtbC5jIGIvYzJ4bWwuYwppbmRleCA3MWEzNGExLi5jOWU0ODcyIDEwMDY0NAot LS0gYS9jMnhtbC5jCisrKyBiL2MyeG1sLmMKQEAgLTMwNCw2ICszMDQsOSBAQCBzdGF0aWMgdm9p ZCBleGFtaW5lX3N5bWJvbChzdHJ1Y3Qgc3ltYm9sICpzeW0sIHhtbE5vZGVQdHIgbm9kZSkKIAkJ bmV3UHJvcChjaGlsZCwgImJhc2UtdHlwZS1idWlsdGluIiwgYnVpbHRpbl90eXBlbmFtZShzeW0p KTsKIAkJYnJlYWs7CiAJfQorCisJZXhhbWluZV9leHByZXNzaW9uKHN5bS0+aW5pdGlhbGl6ZXIs IGNoaWxkKTsKKwogCXJldHVybjsKIH0KIApAQCAtNDU4LDkgKzQ2MSw5IEBAIHN0YXRpYyB2b2lk IHByaW50X3VzYWdlKGNoYXIgKmFyZzApCiAJICAgICAgICJQYXJzZXMgQyBjb2RlIGFuZCBvdXRw dXRzIHRoZSByZXN1bHRzIGFzIFhNTCBkb2N1bWVudC5cbiIKIAkJIlxuIgogCQkiT3B0aW9uczpc biIKKwkJIiAgLW8gRklMRU5BTUUgIHdyaXRlIHRoZSBkb2N1bWVudCB0byBGSUxFTkFNRVxuIgog CQkiICAtZCAgICAgICAgICAgaW5jbHVkZSBkb2N1bWVudCB0eXBlIGRlY2xhcmF0aW9uXG4iCiAJ CSIgIC1wICAgICAgICAgICBvdXRwdXQgcG9zaXRpb24gaW5mb3JtYXRpb24gZm9yIHN5bWJvbHNc biIKLQkJIiAgLW8gRklMRU5BTUUgIHdyaXRlIHRoZSBkb2N1bWVudCB0byBGSUxFTkFNRVxuIgog CQkiICAtaCAgICAgICAgICAgZGlzcGxheSB1c2FnZSBpbmZvcm1hdGlvbiAtIHRoaXMgcGFnZVxu IgogCQkiXG4iCiAJCSJSZXBvcnQgYnVncyB0byA8bGludXgtc3BhcnNlQHZnZXIua2VybmVsLm9y Zz5cbiIsCi0tIAoxLjUuMi4zCgo= --=-pek4o2O0TDWJrQbldhEq-- --=-NECfpmkVoupmTkl5TQhO Content-Type: application/pgp-signature; name=signature.asc Content-Description: Dies ist ein digital signierter Nachrichtenteil -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQBG3clV73AS0G6kpDQRAlDjAJ9+xvjSRKGQgAi5t82v6wIqZVPK4wCcCwbN Yjh5oj2xT92n+wPzJDYQi/8= =pmd5 -----END PGP SIGNATURE----- --=-NECfpmkVoupmTkl5TQhO--