From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sc8-sf-mx2-b.sourceforge.net ([10.3.1.12] helo=sc8-sf-mx2.sourceforge.net) by sc8-sf-list1.sourceforge.net with esmtp (Exim 4.30) id 1CfPmS-0000SK-M8 for user-mode-linux-devel@lists.sourceforge.net; Fri, 17 Dec 2004 13:36:56 -0800 Received: from dgate2.fujitsu-siemens.com ([217.115.66.36]) by sc8-sf-mx2.sourceforge.net with esmtp (Exim 4.41) id 1CfPmR-0001k0-19 for user-mode-linux-devel@lists.sourceforge.net; Fri, 17 Dec 2004 13:36:56 -0800 Message-ID: <41C35164.7020001@fujitsu-siemens.com> From: Bodo Stroesser MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080502070802000705010802" Subject: [uml-devel] More split-arch patches Sender: user-mode-linux-devel-admin@lists.sourceforge.net Errors-To: user-mode-linux-devel-admin@lists.sourceforge.net List-Unsubscribe: , List-Id: The user-mode Linux development list List-Post: List-Help: List-Subscribe: , List-Archive: Date: Fri, 17 Dec 2004 22:36:36 +0100 To: Jeff Dike Cc: user-mode-linux devel This is a multi-part message in MIME format. --------------080502070802000705010802 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Attached are the next 4 patches, that are needed for my s390 port. I have done some short tests on i386 in 2.6.10-rc2-mm4 + incremental patches and didn't see errors. The last patch called "faultinfo-rework is quite invasive. Thus, it needs further testing. Bodo --------------080502070802000705010802 Content-Type: application/x-tar; name="split-subarch-patches2.tar" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="split-subarch-patches2.tar" c3BsaXQtc3ViYXJjaC1wYXRjaGVzMi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwNDA3NTUA MDAwMDAwMAAwMDAwMDAwADAwMDAwMDAwMDAwADEwMTYwNjQ3NTc1ADAxNDA2MgAgNQAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzcGxpdC1zdWJhcmNoLXBhdGNoZXMyL3NwbGl0 LXN5c19jYWxsX3RhYmxlLmMucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMTc3MzcA MTAxNjA2NDc1NzUAMDIxNDUxACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy b290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApG cm9tOiBCb2RvIFN0cm9lc3NlciA8YnN0cm9lc3NlckBmdWppdHN1LXNpZW1lbnMuY29tPgoK U2hpZnQgc29tZSBmdXJ0aGVyIGVudHJpZXMgb2Ygc3lzX2NhbGxfdGFibGUgZnJvbQogICBh cmNoL3VtL2tlcm5lbC9zeXNfY2FsbF90YWJsZS5jCiAgICAgICAgdG8KICAgYXJjaC91bS9p bmNsdWRlL3N5c2RlcC0qL3N5c2NhbGxzLmgKVU1MLXMzOTAgbmVlZHMgdGhpcy4KClNpZ25l ZC1vZmYtYnk6IEJvZG8gU3Ryb2Vzc2VyIDxic3Ryb2Vzc2VyQGZ1aml0c3Utc2llbWVucy5j b20+Ci0tLQoKCmRpZmYgLXB1TiBhcmNoL3VtL2tlcm5lbC9zeXNfY2FsbF90YWJsZS5jfnNw bGl0LXN5c19jYWxsX3RhYmxlLmMgYXJjaC91bS9rZXJuZWwvc3lzX2NhbGxfdGFibGUuYwot LS0gbGludXgtMi42LjEwLXJjMi1tbTQvYXJjaC91bS9rZXJuZWwvc3lzX2NhbGxfdGFibGUu Y35zcGxpdC1zeXNfY2FsbF90YWJsZS5jCTIwMDQtMTItMTMgMTQ6NDc6MzQuMDAwMDAwMDAw ICswMTAwCisrKyBsaW51eC0yLjYuMTAtcmMyLW1tNC1yb290L2FyY2gvdW0va2VybmVsL3N5 c19jYWxsX3RhYmxlLmMJMjAwNC0xMi0xMyAxODo0MzoyOS4wMDAwMDAwMDAgKzAxMDAKQEAg LTQ3LDcgKzQ3LDYgQEAgZXh0ZXJuIHN5c2NhbGxfaGFuZGxlcl90IHN5c19ydF9zaWdyZXR1 cgogZXh0ZXJuIHN5c2NhbGxfaGFuZGxlcl90IHN5c19ydF9zaWdhY3Rpb247CiBleHRlcm4g c3lzY2FsbF9oYW5kbGVyX3Qgc3lzX3NpZ2FsdHN0YWNrOwogZXh0ZXJuIHN5c2NhbGxfaGFu ZGxlcl90IHN5c192Zm9yazsKLWV4dGVybiBzeXNjYWxsX2hhbmRsZXJfdCBvbGRfbW1hcF9p Mzg2OwogZXh0ZXJuIHN5c2NhbGxfaGFuZGxlcl90IG9sZF9zZWxlY3Q7CiBleHRlcm4gc3lz Y2FsbF9oYW5kbGVyX3Qgc3lzX21vZGlmeV9sZHQ7CiBleHRlcm4gc3lzY2FsbF9oYW5kbGVy X3Qgc3lzX3J0X3NpZ3N1c3BlbmQ7CkBAIC0xNDEsNyArMTQwLDYgQEAgc3lzY2FsbF9oYW5k bGVyX3QgKnN5c19jYWxsX3RhYmxlW10gPSB7CiAJWyBfX05SX3N0YXQgXSAoc3lzY2FsbF9o YW5kbGVyX3QgKikgc3lzX25ld3N0YXQsCiAJWyBfX05SX2xzdGF0IF0gKHN5c2NhbGxfaGFu ZGxlcl90ICopIHN5c19uZXdsc3RhdCwKIAlbIF9fTlJfZnN0YXQgXSAoc3lzY2FsbF9oYW5k bGVyX3QgKikgc3lzX25ld2ZzdGF0LAotCVsgX19OUl9pb3BsIF0gKHN5c2NhbGxfaGFuZGxl cl90ICopIHN5c19uaV9zeXNjYWxsLAogCVsgX19OUl92aGFuZ3VwIF0gKHN5c2NhbGxfaGFu ZGxlcl90ICopIHN5c192aGFuZ3VwLAogCVsgX19OUl93YWl0NCBdID0gKHN5c2NhbGxfaGFu ZGxlcl90ICopIHN5c193YWl0NCwKIAlbIF9fTlJfc3dhcG9mZiBdID0gKHN5c2NhbGxfaGFu ZGxlcl90ICopIHN5c19zd2Fwb2ZmLApAQCAtMjEzLDcgKzIxMSw2IEBAIHN5c2NhbGxfaGFu ZGxlcl90ICpzeXNfY2FsbF90YWJsZVtdID0gewogCVsgX19OUl9wdXRwbXNnIF0gKHN5c2Nh bGxfaGFuZGxlcl90ICopIHN5c19uaV9zeXNjYWxsLAogCVsgX19OUl92Zm9yayBdIChzeXNj YWxsX2hhbmRsZXJfdCAqKSBzeXNfdmZvcmssCiAJWyBfX05SX2dldGRlbnRzNjQgXSAoc3lz Y2FsbF9oYW5kbGVyX3QgKikgc3lzX2dldGRlbnRzNjQsCi0JWyAyMjMgXSAoc3lzY2FsbF9o YW5kbGVyX3QgKikgc3lzX25pX3N5c2NhbGwsCiAJWyBfX05SX2dldHRpZCBdIChzeXNjYWxs X2hhbmRsZXJfdCAqKSBzeXNfZ2V0dGlkLAogCVsgX19OUl9yZWFkYWhlYWQgXSAoc3lzY2Fs bF9oYW5kbGVyX3QgKikgc3lzX3JlYWRhaGVhZCwKIAlbIF9fTlJfc2V0eGF0dHIgXSAoc3lz Y2FsbF9oYW5kbGVyX3QgKikgc3lzX3NldHhhdHRyLApAQCAtMjMyLDIxICsyMjksMTYgQEAg c3lzY2FsbF9oYW5kbGVyX3QgKnN5c19jYWxsX3RhYmxlW10gPSB7CiAJWyBfX05SX2Z1dGV4 IF0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19mdXRleCwKIAlbIF9fTlJfc2NoZWRfc2V0 YWZmaW5pdHkgXSAoc3lzY2FsbF9oYW5kbGVyX3QgKikgc3lzX3NjaGVkX3NldGFmZmluaXR5 LAogCVsgX19OUl9zY2hlZF9nZXRhZmZpbml0eSBdIChzeXNjYWxsX2hhbmRsZXJfdCAqKSBz eXNfc2NoZWRfZ2V0YWZmaW5pdHksCi0JWyBfX05SX3NldF90aHJlYWRfYXJlYSBdIChzeXNj YWxsX2hhbmRsZXJfdCAqKSBzeXNfbmlfc3lzY2FsbCwKLQlbIF9fTlJfZ2V0X3RocmVhZF9h cmVhIF0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19uaV9zeXNjYWxsLAogCVsgX19OUl9p b19zZXR1cCBdIChzeXNjYWxsX2hhbmRsZXJfdCAqKSBzeXNfaW9fc2V0dXAsCiAJWyBfX05S X2lvX2Rlc3Ryb3kgXSAoc3lzY2FsbF9oYW5kbGVyX3QgKikgc3lzX2lvX2Rlc3Ryb3ksCiAJ WyBfX05SX2lvX2dldGV2ZW50cyBdIChzeXNjYWxsX2hhbmRsZXJfdCAqKSBzeXNfaW9fZ2V0 ZXZlbnRzLAogCVsgX19OUl9pb19zdWJtaXQgXSAoc3lzY2FsbF9oYW5kbGVyX3QgKikgc3lz X2lvX3N1Ym1pdCwKIAlbIF9fTlJfaW9fY2FuY2VsIF0gKHN5c2NhbGxfaGFuZGxlcl90ICop IHN5c19pb19jYW5jZWwsCi0JWyBfX05SX2ZhZHZpc2U2NCBdIChzeXNjYWxsX2hhbmRsZXJf dCAqKSBzeXNfZmFkdmlzZTY0LAotCVsgMjUxIF0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5 c19uaV9zeXNjYWxsLAogCVsgX19OUl9leGl0X2dyb3VwIF0gKHN5c2NhbGxfaGFuZGxlcl90 ICopIHN5c19leGl0X2dyb3VwLAogCVsgX19OUl9sb29rdXBfZGNvb2tpZSBdIChzeXNjYWxs X2hhbmRsZXJfdCAqKSBzeXNfbG9va3VwX2Rjb29raWUsCiAJWyBfX05SX2Vwb2xsX2NyZWF0 ZSBdIChzeXNjYWxsX2hhbmRsZXJfdCAqKSBzeXNfZXBvbGxfY3JlYXRlLAogCVsgX19OUl9l cG9sbF9jdGwgXSAoc3lzY2FsbF9oYW5kbGVyX3QgKikgc3lzX2Vwb2xsX2N0bCwKIAlbIF9f TlJfZXBvbGxfd2FpdCBdIChzeXNjYWxsX2hhbmRsZXJfdCAqKSBzeXNfZXBvbGxfd2FpdCwK LSAgICAgICAgWyBfX05SX3JlbWFwX2ZpbGVfcGFnZXMgXSAoc3lzY2FsbF9oYW5kbGVyX3Qg Kikgc3lzX3JlbWFwX2ZpbGVfcGFnZXMsCiAgICAgICAgIFsgX19OUl9zZXRfdGlkX2FkZHJl c3MgXSAoc3lzY2FsbF9oYW5kbGVyX3QgKikgc3lzX3NldF90aWRfYWRkcmVzcywKIAlbIF9f TlJfdGltZXJfY3JlYXRlIF0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c190aW1lcl9jcmVh dGUsCiAJWyBfX05SX3RpbWVyX3NldHRpbWUgXSAoc3lzY2FsbF9oYW5kbGVyX3QgKikgc3lz X3RpbWVyX3NldHRpbWUsCkBAIC0yNTgsOCArMjUwLDYgQEAgc3lzY2FsbF9oYW5kbGVyX3Qg KnN5c19jYWxsX3RhYmxlW10gPSB7CiAJWyBfX05SX2Nsb2NrX2dldHJlcyBdIChzeXNjYWxs X2hhbmRsZXJfdCAqKSBzeXNfY2xvY2tfZ2V0cmVzLAogCVsgX19OUl9jbG9ja19uYW5vc2xl ZXAgXSAoc3lzY2FsbF9oYW5kbGVyX3QgKikgc3lzX2Nsb2NrX25hbm9zbGVlcCwKIAlbIF9f TlJfdGdraWxsIF0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c190Z2tpbGwsCi0JWyBfX05S X3V0aW1lcyBdIChzeXNjYWxsX2hhbmRsZXJfdCAqKSBzeXNfdXRpbWVzLAotCVsgX19OUl92 c2VydmVyIF0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19uaV9zeXNjYWxsLAogCiAJQVJD SF9TWVNDQUxMUwogCVsgTEFTVF9TWVNDQUxMICsgMSAuLi4gTlJfc3lzY2FsbHMgXSA9IApk aWZmIC1wdU4gYXJjaC91bS9pbmNsdWRlL3N5c2RlcC1pMzg2L3N5c2NhbGxzLmh+c3BsaXQt c3lzX2NhbGxfdGFibGUuYyBhcmNoL3VtL2luY2x1ZGUvc3lzZGVwLWkzODYvc3lzY2FsbHMu aAotLS0gbGludXgtMi42LjEwLXJjMi1tbTQvYXJjaC91bS9pbmNsdWRlL3N5c2RlcC1pMzg2 L3N5c2NhbGxzLmh+c3BsaXQtc3lzX2NhbGxfdGFibGUuYwkyMDA0LTEyLTEzIDE0OjQ3OjM0 LjAwMDAwMDAwMCArMDEwMAorKysgbGludXgtMi42LjEwLXJjMi1tbTQtcm9vdC9hcmNoL3Vt L2luY2x1ZGUvc3lzZGVwLWkzODYvc3lzY2FsbHMuaAkyMDA0LTEyLTEzIDE4OjQzOjUyLjAw MDAwMDAwMCArMDEwMApAQCAtOCw2ICs4LDggQEAKIAogdHlwZWRlZiBsb25nIHN5c2NhbGxf aGFuZGxlcl90KHN0cnVjdCBwdF9yZWdzKTsKIAorZXh0ZXJuIHN5c2NhbGxfaGFuZGxlcl90 IG9sZF9tbWFwX2kzODY7CisKICNkZWZpbmUgRVhFQ1VURV9TWVNDQUxMKHN5c2NhbGwsIHJl Z3MpIFwKIAkoKGxvbmcgKCopKHN0cnVjdCBzeXNjYWxsX2FyZ3MpKSAoKnN5c19jYWxsX3Rh YmxlW3N5c2NhbGxdKSkoU1lTQ0FMTF9BUkdTKCZyZWdzLT5yZWdzKSkKIApAQCAtNDIsNiAr NDQsNyBAQCBleHRlcm4gbG9uZyBzeXNfbW1hcDIodW5zaWduZWQgbG9uZyBhZGRyCiAJWyBf X05SX3Byb2ZpbCBdID0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19uaV9zeXNjYWxsLCBc CiAJWyBfX05SX3NvY2tldGNhbGwgXSA9IChzeXNjYWxsX2hhbmRsZXJfdCAqKSBzeXNfc29j a2V0Y2FsbCwgXAogCVsgX19OUl9vbGR1bmFtZSBdID0gKHN5c2NhbGxfaGFuZGxlcl90ICop IHN5c191bmFtZSwgXAorCVsgX19OUl9pb3BsIF0gPSAoc3lzY2FsbF9oYW5kbGVyX3QgKikg c3lzX25pX3N5c2NhbGwsIFwKIAlbIF9fTlJfaWRsZSBdID0gKHN5c2NhbGxfaGFuZGxlcl90 ICopIHN5c19uaV9zeXNjYWxsLCBcCiAJWyBfX05SX2lwYyBdID0gKHN5c2NhbGxfaGFuZGxl cl90ICopIHN5c19pcGMsIFwKIAlbIF9fTlJfc2lncmV0dXJuIF0gPSAoc3lzY2FsbF9oYW5k bGVyX3QgKikgc3lzX3NpZ3JldHVybiwgXApAQCAtODgsMTEgKzkxLDE5IEBAIGV4dGVybiBs b25nIHN5c19tbWFwMih1bnNpZ25lZCBsb25nIGFkZHIKIAlbIF9fTlJfcGl2b3Rfcm9vdCBd ID0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19waXZvdF9yb290LCBcCiAJWyBfX05SX21p bmNvcmUgXSA9IChzeXNjYWxsX2hhbmRsZXJfdCAqKSBzeXNfbWluY29yZSwgXAogCVsgX19O Ul9tYWR2aXNlIF0gPSAoc3lzY2FsbF9oYW5kbGVyX3QgKikgc3lzX21hZHZpc2UsIFwKLSAg ICAgICAgWyAyMjIgXSA9IChzeXNjYWxsX2hhbmRsZXJfdCAqKSBzeXNfbmlfc3lzY2FsbCwK KyAgICAgICAgWyAyMjIgXSA9IChzeXNjYWxsX2hhbmRsZXJfdCAqKSBzeXNfbmlfc3lzY2Fs bCwgXAorCVsgMjIzIF0gPSAoc3lzY2FsbF9oYW5kbGVyX3QgKikgc3lzX25pX3N5c2NhbGws IFwKKwlbIF9fTlJfc2V0X3RocmVhZF9hcmVhIF0gPSAoc3lzY2FsbF9oYW5kbGVyX3QgKikg c3lzX25pX3N5c2NhbGwsIFwKKwlbIF9fTlJfZ2V0X3RocmVhZF9hcmVhIF0gPSAoc3lzY2Fs bF9oYW5kbGVyX3QgKikgc3lzX25pX3N5c2NhbGwsIFwKKwlbIF9fTlJfZmFkdmlzZTY0IF0g PSAoc3lzY2FsbF9oYW5kbGVyX3QgKikgc3lzX2ZhZHZpc2U2NCwgXAorCVsgMjUxIF0gPSAo c3lzY2FsbF9oYW5kbGVyX3QgKikgc3lzX25pX3N5c2NhbGwsIFwKKyAgICAgICAgWyBfX05S X3JlbWFwX2ZpbGVfcGFnZXMgXSA9IChzeXNjYWxsX2hhbmRsZXJfdCAqKSBzeXNfcmVtYXBf ZmlsZV9wYWdlcywgXAorCVsgX19OUl91dGltZXMgXSA9IChzeXNjYWxsX2hhbmRsZXJfdCAq KSBzeXNfdXRpbWVzLCBcCisJWyBfX05SX3ZzZXJ2ZXIgXSA9IChzeXNjYWxsX2hhbmRsZXJf dCAqKSBzeXNfbmlfc3lzY2FsbCwKICAgICAgICAgCiAvKiAyMjIgZG9lc24ndCB5ZXQgaGF2 ZSBhIG5hbWUgaW4gaW5jbHVkZS9hc20taTM4Ni91bmlzdGQuaCAqLwogCi0jZGVmaW5lIExB U1RfQVJDSF9TWVNDQUxMIDIyMgorI2RlZmluZSBMQVNUX0FSQ0hfU1lTQ0FMTCBfX05SX3Zz ZXJ2ZXIKIAogLyoKICAqIE92ZXJyaWRlcyBmb3IgRW1hY3Mgc28gdGhhdCB3ZSBmb2xsb3cg TGludXMncyB0YWJiaW5nIHN0eWxlLgpkaWZmIC1wdU4gYXJjaC91bS9pbmNsdWRlL3N5c2Rl cC1pYTY0L3N5c2NhbGxzLmh+c3BsaXQtc3lzX2NhbGxfdGFibGUuYyBhcmNoL3VtL2luY2x1 ZGUvc3lzZGVwLWlhNjQvc3lzY2FsbHMuaApkaWZmIC1wdU4gYXJjaC91bS9pbmNsdWRlL3N5 c2RlcC1wcGMvc3lzY2FsbHMuaH5zcGxpdC1zeXNfY2FsbF90YWJsZS5jIGFyY2gvdW0vaW5j bHVkZS9zeXNkZXAtcHBjL3N5c2NhbGxzLmgKLS0tIGxpbnV4LTIuNi4xMC1yYzItbW00L2Fy Y2gvdW0vaW5jbHVkZS9zeXNkZXAtcHBjL3N5c2NhbGxzLmh+c3BsaXQtc3lzX2NhbGxfdGFi bGUuYwkyMDA0LTEyLTEzIDE0OjQ3OjM1LjAwMDAwMDAwMCArMDEwMAorKysgbGludXgtMi42 LjEwLXJjMi1tbTQtcm9vdC9hcmNoL3VtL2luY2x1ZGUvc3lzZGVwLXBwYy9zeXNjYWxscy5o CTIwMDQtMTItMTMgMTU6NTM6MzQuMDAwMDAwMDAwICswMTAwCkBAIC0zNCw5ICszNCwxMiBA QCBpbnQgb2xkX21tYXAodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lCiAJWyBfX05SX211 bHRpcGxleGVyIF0gPSBzeXNfbmlfc3lzY2FsbCwgXAogCVsgX19OUl9tbWFwIF0gPSBvbGRf bW1hcCwgXAogCVsgX19OUl9tYWR2aXNlIF0gPSBzeXNfbWFkdmlzZSwgXAotCVsgX19OUl9t aW5jb3JlIF0gPSBzeXNfbWluY29yZSwgCisJWyBfX05SX21pbmNvcmUgXSA9IHN5c19taW5j b3JlLCBcCisJWyBfX05SX2lvcGwgXSA9IChzeXNjYWxsX2hhbmRsZXJfdCAqKSBzeXNfbmlf c3lzY2FsbCwgXAorCVsgX19OUl91dGltZXMgXSA9IChzeXNjYWxsX2hhbmRsZXJfdCAqKSBz eXNfdXRpbWVzLCBcCisJWyBfX05SX2ZhZHZpc2U2NCBdID0gKHN5c2NhbGxfaGFuZGxlcl90 ICopIHN5c19mYWR2aXNlNjQsCiAKLSNkZWZpbmUgTEFTVF9BUkNIX1NZU0NBTEwgX19OUl9t aW5jb3JlCisjZGVmaW5lIExBU1RfQVJDSF9TWVNDQUxMIF9fTlJfZmFkdmlzZTY0CiAKIC8q CiAgKiBPdmVycmlkZXMgZm9yIEVtYWNzIHNvIHRoYXQgd2UgZm9sbG93IExpbnVzJ3MgdGFi YmluZyBzdHlsZS4KZGlmZiAtcHVOIGFyY2gvdW0vaW5jbHVkZS9zeXNkZXAteDg2XzY0L3N5 c2NhbGxzLmh+c3BsaXQtc3lzX2NhbGxfdGFibGUuYyBhcmNoL3VtL2luY2x1ZGUvc3lzZGVw LXg4Nl82NC9zeXNjYWxscy5oCi0tLSBsaW51eC0yLjYuMTAtcmMyLW1tNC9hcmNoL3VtL2lu Y2x1ZGUvc3lzZGVwLXg4Nl82NC9zeXNjYWxscy5ofnNwbGl0LXN5c19jYWxsX3RhYmxlLmMJ MjAwNC0xMi0xMyAxNDo0NzozNS4wMDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4LTIuNi4xMC1y YzItbW00LXJvb3QvYXJjaC91bS9pbmNsdWRlL3N5c2RlcC14ODZfNjQvc3lzY2FsbHMuaAky MDA0LTEyLTEzIDE1OjU2OjE3LjAwMDAwMDAwMCArMDEwMApAQCAtNjgsOSArNjgsMTggQEAg ZXh0ZXJuIHN5c2NhbGxfaGFuZGxlcl90IHN5c19hcmNoX3ByY3RsOwogCVsgX19OUl9zaHV0 ZG93biBdID0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19zaHV0ZG93biwgXAogCVsgX19O Ul9zZXRzb2Nrb3B0IF0gPSAoc3lzY2FsbF9oYW5kbGVyX3QgKikgc3lzX3NldHNvY2tvcHQs IFwKIAlbIF9fTlJfZ2V0c29ja29wdCBdID0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19n ZXRzb2Nrb3B0LCBcCi0JWyBfX05SX3NlbXRpbWVkb3AgXSA9IChzeXNjYWxsX2hhbmRsZXJf dCAqKSBzeXNfc2VtdGltZWRvcCwKKwlbIF9fTlJfaW9wbCBdID0gKHN5c2NhbGxfaGFuZGxl cl90ICopIHN5c19uaV9zeXNjYWxsLCBcCisJWyBfX05SX3NldF90aHJlYWRfYXJlYSBdID0g KHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19uaV9zeXNjYWxsLCBcCisJWyBfX05SX2dldF90 aHJlYWRfYXJlYSBdID0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19uaV9zeXNjYWxsLCBc CisgICAgICAgIFsgX19OUl9yZW1hcF9maWxlX3BhZ2VzIF0gPSAoc3lzY2FsbF9oYW5kbGVy X3QgKikgc3lzX3JlbWFwX2ZpbGVfcGFnZXMsIFwKKwlbIF9fTlJfc2VtdGltZWRvcCBdID0g KHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19zZW10aW1lZG9wLCBcCisJWyBfX05SX2ZhZHZp c2U2NCBdID0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19mYWR2aXNlNjQsIFwKKwlbIDIy MyBdID0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19uaV9zeXNjYWxsLCBcCisJWyBfX05S X3V0aW1lcyBdID0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c191dGltZXMsIFwKKwlbIF9f TlJfdnNlcnZlciBdID0gKHN5c2NhbGxfaGFuZGxlcl90ICopIHN5c19uaV9zeXNjYWxsLCBc CisJWyAyNTEgXSA9IChzeXNjYWxsX2hhbmRsZXJfdCAqKSBzeXNfbmlfc3lzY2FsbCwKIAot I2RlZmluZSBMQVNUX0FSQ0hfU1lTQ0FMTCBfX05SX3NlbXRpbWVkb3AKKyNkZWZpbmUgTEFT VF9BUkNIX1NZU0NBTEwgMjUxCiAjZGVmaW5lIE5SX3N5c2NhbGxzIDEwMjQKIAogI2VuZGlm Cl8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3BsaXQtc3ViYXJjaC1wYXRj aGVzMi91c2UtdmFfY29weS5wYXRjaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMDAwMAAwMDAwMDAwADAw MDAwMDAyNDE1ADEwMTYwNjQ3NTc1ADAxNzMzNAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAKRnJvbTogQm9kbyBTdHJvZXNzZXIgPGJzdHJvZXNzZXJAZnVqaXRzdS1zaWVt ZW5zLmNvbT4KCkluIGFyY2gvdW0va2VybmVsL3NrYXMvdWFjY2Vzcy5jLCB0aGUgc2ltcGxl IGFzc2lnbm1lbnQKICAgdmFfbGlzdCBhcmdzID0gKigodmFfbGlzdCAqKSBhcmdfcHRyKTsK aXMgdXNlZCBpbiBkb19idWZmZXJfb3AoKSB0byBvYnRhaW4gYSBjb3B5IG9mIGEgdmFfbGlz dCwgdGhhdAp3YXMgZGVsaXZlcmVkIGFzIGEgcG9pbnRlciBvbmx5LgpCdXQgdGhpcyBjb25z dHJ1Y3Rpb24gZG9lc24ndCBjb21waWxlIG9uIHMzOTAuIEluc3RlYWQsCnZhX2NvcHkoKSBp YW5kIHZhX2VuZCgpIHNob3VsZCBiZSB1c2VkIChzZWUgIm1hbiB2YV9zdGFydCIpLgoKU2ln bmVkLW9mZi1ieTogQm9kbyBTdHJvZXNzZXIgPGJzdHJvZXNzZXJAZnVqaXRzdS1zaWVtZW5z LmNvbT4KLS0tCgoKZGlmZiAtcHVOIGFyY2gvdW0va2VybmVsL3NrYXMvdWFjY2Vzcy5jfnVz ZS12YV9jb3B5IGFyY2gvdW0va2VybmVsL3NrYXMvdWFjY2Vzcy5jCi0tLSBsaW51eC0yLjYu MTAtcmMyLW1tNC9hcmNoL3VtL2tlcm5lbC9za2FzL3VhY2Nlc3MuY351c2UtdmFfY29weQky MDA0LTEyLTE0IDE1OjE3OjA1LjAwMDAwMDAwMCArMDEwMAorKysgbGludXgtMi42LjEwLXJj Mi1tbTQtcm9vdC9hcmNoL3VtL2tlcm5lbC9za2FzL3VhY2Nlc3MuYwkyMDA0LTEyLTE0IDE1 OjE5OjU1LjAwMDAwMDAwMCArMDEwMApAQCAtNTQsMTMgKzU0LDE1IEBAIHN0YXRpYyBpbnQg ZG9fb3AodW5zaWduZWQgbG9uZyBhZGRyLCBpbnQKIAogc3RhdGljIHZvaWQgZG9fYnVmZmVy X29wKHZvaWQgKmptcGJ1Ziwgdm9pZCAqYXJnX3B0cikKIHsKLQl2YV9saXN0IGFyZ3MgPSAq KCh2YV9saXN0ICopIGFyZ19wdHIpOworCXZhX2xpc3QgYXJnczsKKwl2YV9jb3B5KGFyZ3Ms ICoodmFfbGlzdCAqKWFyZ19wdHIpOwogCXVuc2lnbmVkIGxvbmcgYWRkciA9IHZhX2FyZyhh cmdzLCB1bnNpZ25lZCBsb25nKTsKIAlpbnQgbGVuID0gdmFfYXJnKGFyZ3MsIGludCk7CiAJ aW50IGlzX3dyaXRlID0gdmFfYXJnKGFyZ3MsIGludCk7CiAJaW50ICgqb3ApKHVuc2lnbmVk IGxvbmcsIGludCwgdm9pZCAqKSA9IHZhX2FyZyhhcmdzLCB2b2lkICopOwogCXZvaWQgKmFy ZyA9IHZhX2FyZyhhcmdzLCB2b2lkICopOwogCWludCAqcmVzID0gdmFfYXJnKGFyZ3MsIGlu dCAqKTsKKwl2YV9lbmQoYXJncyk7CiAJaW50IHNpemUgPSBtaW4oUEFHRV9BTElHTihhZGRy KSAtIGFkZHIsICh1bnNpZ25lZCBsb25nKSBsZW4pOwogCWludCByZW1haW4gPSBsZW4sIG47 CiAKXwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzcGxpdC1zdWJhcmNoLXBhdGNoZXMy L25vLV9fTlJfd2FpdHBpZC5wYXRjaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAw MDIzNDcAMTAxNjA2NDc1NzUAMDIwMDU2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAApGcm9tOiBCb2RvIFN0cm9lc3NlciA8YnN0cm9lc3NlckBmdWppdHN1LXNpZW1lbnMu Y29tPgoKU29tZSBhcmNoaXRlY3R1cmVzIChlLmcuIHMzOTApIGRvbid0IGhhdmUgX19OUl93 YWl0cGlkLgpUaHVzLCBpdCBtdXN0IG5vdCBiZSB1c2VkIGluIGFyY2gvdW0va2VybmVsL3R0 L3B0cHJveHkvcHJveHkuYwoKU2lnbmVkLW9mZi1ieTogQm9kbyBTdHJvZXNzZXIgPGJzdHJv ZXNzZXJAZnVqaXRzdS1zaWVtZW5zLmNvbT4KLS0tCgoKZGlmZiAtcHVOIGFyY2gvdW0va2Vy bmVsL3R0L3B0cHJveHkvcHJveHkuY35uby1fX05SX3dhaXRwaWQgYXJjaC91bS9rZXJuZWwv dHQvcHRwcm94eS9wcm94eS5jCi0tLSBsaW51eC0yLjYuMTAtcmMyLW1tNC9hcmNoL3VtL2tl cm5lbC90dC9wdHByb3h5L3Byb3h5LmN+bm8tX19OUl93YWl0cGlkCTIwMDQtMTItMTQgMTY6 Mzg6MTQuMDAwMDAwMDAwICswMTAwCisrKyBsaW51eC0yLjYuMTAtcmMyLW1tNC1yb290L2Fy Y2gvdW0va2VybmVsL3R0L3B0cHJveHkvcHJveHkuYwkyMDA0LTEyLTE0IDE2OjQwOjI2LjAw MDAwMDAwMCArMDEwMApAQCAtOTQsNyArOTQsOSBAQCBpbnQgZGVidWdnZXJfc3lzY2FsbChk ZWJ1Z2dlcl9zdGF0ZSAqZGViCiAJCWRlYnVnZ2VyLT5oYW5kbGVfdHJhY2UgPSBkZWJ1Z2dl cl9zeXNjYWxsOwogCQlyZXR1cm4ocmV0KTsKIAorI2lmZGVmIF9fTlJfd2FpdHBpZAogCWNh c2UgX19OUl93YWl0cGlkOgorI2VuZGlmCiAJY2FzZSBfX05SX3dhaXQ0OgogCQlpZighZGVi dWdnZXJfd2FpdChkZWJ1Z2dlciwgKGludCAqKSBhcmcyLCBhcmczLCAKIAkJCQkgIGRlYnVn Z2VyX3N5c2NhbGwsIGRlYnVnZ2VyX25vcm1hbF9yZXR1cm4sIApAQCAtMTUzLDcgKzE1NSwx MSBAQCBzdGF0aWMgaW50IHBhcmVudF9zeXNjYWxsKGRlYnVnZ2VyX3N0YXRlCiAKIAlzeXNj YWxsID0gZ2V0X3N5c2NhbGwocGlkLCAmYXJnMSwgJmFyZzIsICZhcmczLCAmYXJnNCwgJmFy ZzUpOwogCQkKLQlpZigoc3lzY2FsbCA9PSBfX05SX3dhaXRwaWQpIHx8IChzeXNjYWxsID09 IF9fTlJfd2FpdDQpKXsKKwlpZigoc3lzY2FsbCA9PSBfX05SX3dhaXQ0KQorI2lmZGVmIF9f TlJfd2FpdHBpZAorCSAgIHx8IChzeXNjYWxsID09IF9fTlJfd2FpdHBpZCkKKyNlbmRpZgor CSl7CiAJCWRlYnVnZ2VyX3dhaXQoJnBhcmVudCwgKGludCAqKSBhcmcyLCBhcmczLCBwYXJl bnRfc3lzY2FsbCwKIAkJCSAgICAgIHBhcmVudF9ub3JtYWxfcmV0dXJuLCBwYXJlbnRfd2Fp dF9yZXR1cm4pOwogCX0KXwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNwbGl0LXN1YmFyY2gtcGF0Y2hlczIvZmF1 bHRpbmZvLXJld29yay5wYXRjaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDA2MTU3 NgAxMDE2MDY0NzU3NQAwMjA0MTUAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdXN0YXIgIAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA CkZyb206IEJvZG8gU3Ryb2Vzc2VyIDxic3Ryb2Vzc2VyQGZ1aml0c3Utc2llbWVucy5jb20+ CgpUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIGFyY2gtc3BlY2lmaWMgZmF1bHQvdHJhcC1pbmZv cwpmcm9tIHRocmVhZCBhbmQgc2thcy1yZWdzLgpJdCBhZGRzIGEgbmV3IHN0cnVjdCBmYXVs dGluZm8sIHRoYXQgaXMgYXJjaC1zcGVjaWZpYwpkZWZpbmVkIGluIHN5c2RlcC9mYXVsdGlu Zm8uaC4KVGhlIHN0cnVjdHVyZSBpcyBpbnNlcnRlZCBpbiB0aHJlYWQuYXJjaCBhbmQKdGhy ZWFkLnJlZ3Muc2thcyBhbmQgdGhyZWFkLnJlZ3MudHQKTm93LCBzZWd2IGFuZCBvdGhlciB0 cmFwLWhhbmRsZXJzIGNhbiBjb3B5IHRoZSBjb250ZW50cwpmcm9tIHJlZ3MuWC5mYXVsdGlu Zm8gdG8gdGhyZWFkLmFyY2guZmF1bHRpbmZvCndpdGggb25lIHNpbXBsZSBhc3NpZ25tZW50 LgpBbHNvLCB0aGUgbnVtYmVyIG9mIG1hY3JvcyBuZWNlc3NhcnkgaXMgcmVkdWNlZCB0bwoK RkFVTFRfQUREUkVTUyhzdHJ1Y3QgZmF1bHRpbmZvKQogICAgZXh0cmFjdHMgdGhlIGZhdWx0 aW5nIGFkZHJlc3MgZnJvbSBmYXVsdGluZm8KCkZBVUxUX1dSSVRFKHN0cnVjdCBmYXVsdGlu Zm8pCiAgICBleHRyYWN0cyB0aGUgImlzX3dyaXRlIiBmbGFnCgpTRUdWX0lTX0ZJWEFCTEUo c3RydWN0IGZhdWx0aW5mbykKICAgIGlzIHRydWUgZm9yIHRoZSBmaXhhYmxlIHNlZ3ZzLCBp LmUuIChUUkFQID09IDE0KQogICAgb24gaTM4NgoKVVBUX0ZBVUxUSU5GTyhyZWdzKQogICAg cmVzdWx0IGlzIChzdHJ1Y3QgZmF1bHRpbmZvICopIHRvIHRoZSBmYXVsdGluZm8KICAgIGlu IHJlZ3MtPnNrYXMuZmF1bHRpbmZvCgpHRVRfRkFVTFRJTkZPX0ZST01fU0Moc3RydWN0IGZh dWx0aW5mbywgc3RydWN0IHNpZ2NvbnRleHQgKikKICAgIGNvcGllcyB0aGUgcmVsZXZhbnQg cGFydHMgb2YgdGhlIHNpZ2NvbnRleHQgdG8KICAgIHN0cnVjdCBmYXVsdGluZm8uCgotLS0K CgpkaWZmIC1wdU4gaW5jbHVkZS9hc20tdW0vcHJvY2Vzc29yLWkzODYuaH5mYXVsdGluZm8t cmV3b3JrIGluY2x1ZGUvYXNtLXVtL3Byb2Nlc3Nvci1pMzg2LmgKLS0tIGxpbnV4LTIuNi4x MC1yYzItbW00L2luY2x1ZGUvYXNtLXVtL3Byb2Nlc3Nvci1pMzg2Lmh+ZmF1bHRpbmZvLXJl d29yawkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg0OTQ0NDQwMCArMDEwMAorKysgbGludXgtMi42 LjEwLXJjMi1tbTQtcm9vdC9pbmNsdWRlL2FzbS11bS9wcm9jZXNzb3ItaTM4Ni5oCTIwMDQt MTItMTcgMjE6NTY6NDUuODg4NDU4OTA4ICswMTAwCkBAIC05LDEzICs5LDE4IEBACiBleHRl cm4gaW50IGhvc3RfaGFzX3htbTsKIGV4dGVybiBpbnQgaG9zdF9oYXNfY21vdjsKIAorLyog aW5jbHVkZSBmYXVsdGluZm8gc3RydWN0dXJlICovCisjaW5jbHVkZSAic3lzZGVwL2ZhdWx0 aW5mby5oIgorCiBzdHJ1Y3QgYXJjaF90aHJlYWQgewogCXVuc2lnbmVkIGxvbmcgZGVidWdy ZWdzWzhdOwogCWludCBkZWJ1Z3JlZ3Nfc2VxOworCXN0cnVjdCBmYXVsdGluZm8gZmF1bHRp bmZvOwogfTsKIAogI2RlZmluZSBJTklUX0FSQ0hfVEhSRUFEIHsgLmRlYnVncmVncyAgCQk9 IHsgWyAwIC4uLiA3IF0gPSAwIH0sIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIC5k ZWJ1Z3JlZ3Nfc2VxCT0gMCB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGVidWdy ZWdzX3NlcQk9IDAsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mYXVsdGluZm8J CT0geyAwLCAwLCAwIH0gfQogCiAjaW5jbHVkZSAiYXNtL2FyY2gvdXNlci5oIgogCmRpZmYg LXB1TiAvZGV2L251bGwgYXJjaC91bS9pbmNsdWRlL3N5c2RlcC1pMzg2L3NrYXNfcHRyYWNl LmgKLS0tIC9kZXYvbnVsbAkyMDA0LTA2LTMwIDIxOjA0OjM3LjAwMDAwMDAwMCArMDIwMAor KysgbGludXgtMi42LjEwLXJjMi1tbTQtcm9vdC9hcmNoL3VtL2luY2x1ZGUvc3lzZGVwLWkz ODYvc2thc19wdHJhY2UuaAkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg4ODQ1ODkwOCArMDEwMApA QCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAwLCAyMDAxLCAyMDAy IEplZmYgRGlrZSAoamRpa2VAa2FyYXlhLmNvbSkKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBH UEwKKyAqLworCisjaWZuZGVmIF9fU1lTREVQX0kzODZfU0tBU19QVFJBQ0VfSAorI2RlZmlu ZSBfX1NZU0RFUF9JMzg2X1NLQVNfUFRSQUNFX0gKKworc3RydWN0IHB0cmFjZV9mYXVsdGlu Zm8geworCWludCBpc193cml0ZTsKKwl1bnNpZ25lZCBsb25nIGFkZHI7Cit9OworCitzdHJ1 Y3QgcHRyYWNlX2xkdCB7CisJaW50IGZ1bmM7CisgIAl2b2lkICpwdHI7CisJdW5zaWduZWQg bG9uZyBieXRlY291bnQ7Cit9OworCisjZGVmaW5lIFBUUkFDRV9MRFQgNTQKKworI2VuZGlm CisKKy8qCisgKiBPdmVycmlkZXMgZm9yIEVtYWNzIHNvIHRoYXQgd2UgZm9sbG93IExpbnVz J3MgdGFiYmluZyBzdHlsZS4KKyAqIEVtYWNzIHdpbGwgbm90aWNlIHRoaXMgc3R1ZmYgYXQg dGhlIGVuZCBvZiB0aGUgZmlsZSBhbmQgYXV0b21hdGljYWxseQorICogYWRqdXN0IHRoZSBz ZXR0aW5ncyBmb3IgdGhpcyBidWZmZXIgb25seS4gIFRoaXMgbXVzdCByZW1haW4gYXQgdGhl IGVuZAorICogb2YgdGhlIGZpbGUuCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIExv Y2FsIHZhcmlhYmxlczoKKyAqIGMtZmlsZS1zdHlsZTogImxpbnV4IgorICogRW5kOgorICov CmRpZmYgLXB1TiAvZGV2L251bGwgYXJjaC91bS9pbmNsdWRlL3N5c2RlcC1pYTY0L3NrYXNf cHRyYWNlLmgKLS0tIC9kZXYvbnVsbAkyMDA0LTA2LTMwIDIxOjA0OjM3LjAwMDAwMDAwMCAr MDIwMAorKysgbGludXgtMi42LjEwLXJjMi1tbTQtcm9vdC9hcmNoL3VtL2luY2x1ZGUvc3lz ZGVwLWlhNjQvc2thc19wdHJhY2UuaAkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg4ODQ1ODkwOCAr MDEwMApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAwLCAyMDAx LCAyMDAyIEplZmYgRGlrZSAoamRpa2VAa2FyYXlhLmNvbSkKKyAqIExpY2Vuc2VkIHVuZGVy IHRoZSBHUEwKKyAqLworCisjaWZuZGVmIF9fU1lTREVQX0lBNjRfU0tBU19QVFJBQ0VfSAor I2RlZmluZSBfX1NZU0RFUF9JQTY0X1NLQVNfUFRSQUNFX0gKKworc3RydWN0IHB0cmFjZV9m YXVsdGluZm8geworCWludCBpc193cml0ZTsKKwl1bnNpZ25lZCBsb25nIGFkZHI7Cit9Owor CitzdHJ1Y3QgcHRyYWNlX2xkdCB7CisJaW50IGZ1bmM7CisgIAl2b2lkICpwdHI7CisJdW5z aWduZWQgbG9uZyBieXRlY291bnQ7Cit9OworCisjZGVmaW5lIFBUUkFDRV9MRFQgNTQKKwor I2VuZGlmCisKKy8qCisgKiBPdmVycmlkZXMgZm9yIEVtYWNzIHNvIHRoYXQgd2UgZm9sbG93 IExpbnVzJ3MgdGFiYmluZyBzdHlsZS4KKyAqIEVtYWNzIHdpbGwgbm90aWNlIHRoaXMgc3R1 ZmYgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZSBhbmQgYXV0b21hdGljYWxseQorICogYWRqdXN0 IHRoZSBzZXR0aW5ncyBmb3IgdGhpcyBidWZmZXIgb25seS4gIFRoaXMgbXVzdCByZW1haW4g YXQgdGhlIGVuZAorICogb2YgdGhlIGZpbGUuCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIGMtZmlsZS1zdHlsZTogImxpbnV4IgorICogRW5k OgorICovCmRpZmYgLXB1TiAvZGV2L251bGwgYXJjaC91bS9pbmNsdWRlL3N5c2RlcC1wcGMv c2thc19wdHJhY2UuaAotLS0gL2Rldi9udWxsCTIwMDQtMDYtMzAgMjE6MDQ6MzcuMDAwMDAw MDAwICswMjAwCisrKyBsaW51eC0yLjYuMTAtcmMyLW1tNC1yb290L2FyY2gvdW0vaW5jbHVk ZS9zeXNkZXAtcHBjL3NrYXNfcHRyYWNlLmgJMjAwNC0xMi0xNyAyMTo1Njo0NS44ODg0NTg5 MDggKzAxMDAKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwMCwg MjAwMSwgMjAwMiBKZWZmIERpa2UgKGpkaWtlQGthcmF5YS5jb20pCisgKiBMaWNlbnNlZCB1 bmRlciB0aGUgR1BMCisgKi8KKworI2lmbmRlZiBfX1NZU0RFUF9QUENfU0tBU19QVFJBQ0Vf SAorI2RlZmluZSBfX1NZU0RFUF9QUENfU0tBU19QVFJBQ0VfSAorCitzdHJ1Y3QgcHRyYWNl X2ZhdWx0aW5mbyB7CisJaW50IGlzX3dyaXRlOworCXVuc2lnbmVkIGxvbmcgYWRkcjsKK307 CisKK3N0cnVjdCBwdHJhY2VfbGR0IHsKKwlpbnQgZnVuYzsKKyAgCXZvaWQgKnB0cjsKKwl1 bnNpZ25lZCBsb25nIGJ5dGVjb3VudDsKK307CisKKyNkZWZpbmUgUFRSQUNFX0xEVCA1NAor CisjZW5kaWYKKworLyoKKyAqIE92ZXJyaWRlcyBmb3IgRW1hY3Mgc28gdGhhdCB3ZSBmb2xs b3cgTGludXMncyB0YWJiaW5nIHN0eWxlLgorICogRW1hY3Mgd2lsbCBub3RpY2UgdGhpcyBz dHVmZiBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlIGFuZCBhdXRvbWF0aWNhbGx5CisgKiBhZGp1 c3QgdGhlIHNldHRpbmdzIGZvciB0aGlzIGJ1ZmZlciBvbmx5LiAgVGhpcyBtdXN0IHJlbWFp biBhdCB0aGUgZW5kCisgKiBvZiB0aGUgZmlsZS4KKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICogTG9jYWwgdmFyaWFibGVzOgorICogYy1maWxlLXN0eWxlOiAibGludXgiCisgKiBF bmQ6CisgKi8KZGlmZiAtcHVOIC9kZXYvbnVsbCBhcmNoL3VtL2luY2x1ZGUvc3lzZGVwLXg4 Nl82NC9za2FzX3B0cmFjZS5oCi0tLSAvZGV2L251bGwJMjAwNC0wNi0zMCAyMTowNDozNy4w MDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xMC1yYzItbW00LXJvb3QvYXJjaC91bS9p bmNsdWRlL3N5c2RlcC14ODZfNjQvc2thc19wdHJhY2UuaAkyMDA0LTEyLTE3IDIxOjU2OjQ1 Ljg4OTQ1OTI4MCArMDEwMApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChD KSAyMDAwLCAyMDAxLCAyMDAyIEplZmYgRGlrZSAoamRpa2VAa2FyYXlhLmNvbSkKKyAqIExp Y2Vuc2VkIHVuZGVyIHRoZSBHUEwKKyAqLworCisjaWZuZGVmIF9fU1lTREVQX1g4Nl82NF9T S0FTX1BUUkFDRV9ICisjZGVmaW5lIF9fU1lTREVQX1g4Nl82NF9TS0FTX1BUUkFDRV9ICisK K3N0cnVjdCBwdHJhY2VfZmF1bHRpbmZvIHsKKwlpbnQgaXNfd3JpdGU7CisJdW5zaWduZWQg bG9uZyBhZGRyOworfTsKKworc3RydWN0IHB0cmFjZV9sZHQgeworCWludCBmdW5jOworICAJ dm9pZCAqcHRyOworCXVuc2lnbmVkIGxvbmcgYnl0ZWNvdW50OworfTsKKworI2RlZmluZSBQ VFJBQ0VfTERUIDU0CisKKyNlbmRpZgorCisvKgorICogT3ZlcnJpZGVzIGZvciBFbWFjcyBz byB0aGF0IHdlIGZvbGxvdyBMaW51cydzIHRhYmJpbmcgc3R5bGUuCisgKiBFbWFjcyB3aWxs IG5vdGljZSB0aGlzIHN0dWZmIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUgYW5kIGF1dG9tYXRp Y2FsbHkKKyAqIGFkanVzdCB0aGUgc2V0dGluZ3MgZm9yIHRoaXMgYnVmZmVyIG9ubHkuICBU aGlzIG11c3QgcmVtYWluIGF0IHRoZSBlbmQKKyAqIG9mIHRoZSBmaWxlLgorICogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBjLWZpbGUtc3R5bGU6 ICJsaW51eCIKKyAqIEVuZDoKKyAqLwpkaWZmIC1wdU4gYXJjaC91bS9rZXJuZWwvcHRyYWNl LmN+ZmF1bHRpbmZvLXJld29yayBhcmNoL3VtL2tlcm5lbC9wdHJhY2UuYwotLS0gbGludXgt Mi42LjEwLXJjMi1tbTQvYXJjaC91bS9rZXJuZWwvcHRyYWNlLmN+ZmF1bHRpbmZvLXJld29y awkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg1MzQ0NTg4OCArMDEwMAorKysgbGludXgtMi42LjEw LXJjMi1tbTQtcm9vdC9hcmNoL3VtL2tlcm5lbC9wdHJhY2UuYwkyMDA0LTEyLTE3IDIxOjU2 OjQ1Ljg4OTQ1OTI4MCArMDEwMApAQCAtMjI5LDEzICsyMjksMTIgQEAgbG9uZyBzeXNfcHRy YWNlKGxvbmcgcmVxdWVzdCwgbG9uZyBwaWQsIAogCQlicmVhazsKICNlbmRpZgogCWNhc2Ug UFRSQUNFX0ZBVUxUSU5GTzogewotCQlzdHJ1Y3QgcHRyYWNlX2ZhdWx0aW5mbyBmYXVsdDsK LQotCQlmYXVsdCA9ICgoc3RydWN0IHB0cmFjZV9mYXVsdGluZm8pIAotCQkJeyAuaXNfd3Jp dGUJPSBjaGlsZC0+dGhyZWFkLmVyciwKLQkJCSAgLmFkZHIJCT0gY2hpbGQtPnRocmVhZC5j cjIgfSk7Ci0JCXJldCA9IGNvcHlfdG9fdXNlcigodW5zaWduZWQgbG9uZyAqKSBkYXRhLCAm ZmF1bHQsIAotCQkJCSAgIHNpemVvZihmYXVsdCkpOworCQkvKiBUYWtlIHRoZSBpbmZvIGZy b20gdGhyZWFkLT5hcmNoLT5mYXVsdGluZm8sCisJCSAqIGJ1dCB0cmFuc2ZlciBtYXguIHNp emVvZihzdHJ1Y3QgcHRyYWNlX2ZhdWx0aW5mbykuCisJCSAqIE9uIGkzODYsIHB0cmFjZV9m YXVsdGluZm8gaXMgc21hbGxlciEKKwkJICovCisJCXJldCA9IGNvcHlfdG9fdXNlcigodW5z aWduZWQgbG9uZyAqKSBkYXRhLCAmY2hpbGQtPnRocmVhZC5hcmNoLmZhdWx0aW5mbywKKwkJ CQkgICBzaXplb2Yoc3RydWN0IHB0cmFjZV9mYXVsdGluZm8pKTsKIAkJaWYocmV0KQogCQkJ YnJlYWs7CiAJCWJyZWFrOwpAQCAtMjQ2LDYgKzI0NSw3IEBAIGxvbmcgc3lzX3B0cmFjZShs b25nIHJlcXVlc3QsIGxvbmcgcGlkLCAKIAkJCQkgICBzaXplb2YoY2hpbGQtPnBlbmRpbmcu c2lnbmFsKSk7CiAJCWJyZWFrOwogCisjaWZkZWYgUFRSQUNFX0xEVAogCWNhc2UgUFRSQUNF X0xEVDogewogCQlzdHJ1Y3QgcHRyYWNlX2xkdCBsZHQ7CiAKQEAgLTI2MSw2ICsyNjEsNyBA QCBsb25nIHN5c19wdHJhY2UobG9uZyByZXF1ZXN0LCBsb25nIHBpZCwgCiAJCXJldCA9IC1F SU87CiAJCWJyZWFrOwogCX0KKyNlbmRpZgogI2lmZGVmIENPTkZJR19QUk9DX01NCiAJY2Fz ZSBQVFJBQ0VfU1dJVENIX01NOiB7CiAJCXN0cnVjdCBtbV9zdHJ1Y3QgKm9sZCA9IGNoaWxk LT5tbTsKZGlmZiAtcHVOIGluY2x1ZGUvYXNtLXVtL3Byb2Nlc3Nvci1nZW5lcmljLmh+ZmF1 bHRpbmZvLXJld29yayBpbmNsdWRlL2FzbS11bS9wcm9jZXNzb3ItZ2VuZXJpYy5oCi0tLSBs aW51eC0yLjYuMTAtcmMyLW1tNC9pbmNsdWRlL2FzbS11bS9wcm9jZXNzb3ItZ2VuZXJpYy5o fmZhdWx0aW5mby1yZXdvcmsJMjAwNC0xMi0xNyAyMTo1Njo0NS44NTU0NDY2MzIgKzAxMDAK KysrIGxpbnV4LTIuNi4xMC1yYzItbW00LXJvb3QvaW5jbHVkZS9hc20tdW0vcHJvY2Vzc29y LWdlbmVyaWMuaAkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg4OTQ1OTI4MCArMDEwMApAQCAtMjIs OSArMjIsNiBAQCBzdHJ1Y3QgdGhyZWFkX3N0cnVjdCB7CiAJaW50IGZvcmtpbmc7CiAJaW50 IG5zeXNjYWxsczsKIAlzdHJ1Y3QgcHRfcmVncyByZWdzOwotCXVuc2lnbmVkIGxvbmcgY3Iy OwotCWludCBlcnI7Ci0JdW5zaWduZWQgbG9uZyB0cmFwX25vOwogCWludCBzaW5nbGVzdGVw X3N5c2NhbGw7CiAJdm9pZCAqZmF1bHRfYWRkcjsKIAl2b2lkICpmYXVsdF9jYXRjaGVyOwpA QCAtNzIsOCArNjksNiBAQCBzdHJ1Y3QgdGhyZWFkX3N0cnVjdCB7CiAJLmZvcmtpbmcJCT0g MCwgXAogCS5uc3lzY2FsbHMJCT0gMCwgXAogICAgICAgICAucmVncwkJICAgCT0gRU1QVFlf UkVHUywgXAotCS5jcjIJCQk9IDAsIFwKLQkuZXJyCQkJPSAwLCBcCiAJLmZhdWx0X2FkZHIJ CT0gTlVMTCwgXAogCS5wcmV2X3NjaGVkCQk9IE5VTEwsIFwKIAkudGVtcF9zdGFjawkJPSAw LCBcCmRpZmYgLXB1TiBhcmNoL3VtL2tlcm5lbC90cmFwX2tlcm4uY35mYXVsdGluZm8tcmV3 b3JrIGFyY2gvdW0va2VybmVsL3RyYXBfa2Vybi5jCi0tLSBsaW51eC0yLjYuMTAtcmMyLW1t NC9hcmNoL3VtL2tlcm5lbC90cmFwX2tlcm4uY35mYXVsdGluZm8tcmV3b3JrCTIwMDQtMTIt MTcgMjE6NTY6NDUuODU4NDQ3NzQ4ICswMTAwCisrKyBsaW51eC0yLjYuMTAtcmMyLW1tNC1y b290L2FyY2gvdW0va2VybmVsL3RyYXBfa2Vybi5jCTIwMDQtMTItMTcgMjI6MDc6NDUuNDY0 NzMwMDQwICswMTAwCkBAIC0xMjgsMTIgKzEyOCwxOSBAQCBzdGF0aWMgaW50IGNoZWNrX3Jl bWFwcGVkX2FkZHIodW5zaWduZWQgCiAJcmV0dXJuKDApOwogfQogCi11bnNpZ25lZCBsb25n IHNlZ3YodW5zaWduZWQgbG9uZyBhZGRyZXNzLCB1bnNpZ25lZCBsb25nIGlwLCBpbnQgaXNf d3JpdGUsIAotCQkgICBpbnQgaXNfdXNlciwgdm9pZCAqc2MpCisvKgorICogV2UgZ2l2ZSBh ICpjb3B5KiBvZiB0aGUgZmF1bHRpbmZvIGluIHRoZSByZWdzIHRvIHNlZ3YuCisgKiBUaGlz IG11c3QgYmUgZG9uZSwgc2luY2UgbmVzdGluZyBTRUdWcyBjb3VsZCBvdmVyd3JpdGUKKyAq IHRoZSBpbmZvIGluIHRoZSByZWdzLiBBIHBvaW50ZXIgdG8gdGhlIGluZm8gdGhlbiB3b3Vs ZAorICogZ2l2ZSB1cyBiYWQgZGF0YSEKKyAqLwordW5zaWduZWQgbG9uZyBzZWd2KHN0cnVj dCBmYXVsdGluZm8gZmksIHVuc2lnbmVkIGxvbmcgaXAsIGludCBpc191c2VyLCB2b2lkICpz YykKIHsKIAlzdHJ1Y3Qgc2lnaW5mbyBzaTsKIAl2b2lkICpjYXRjaGVyOwogCWludCBlcnI7 CisJaW50IGlzX3dyaXRlID0gRkFVTFRfV1JJVEUoZmkpOworCXVuc2lnbmVkIGxvbmcgYWRk cmVzcyA9IEZBVUxUX0FERFJFU1MoZmkpOwogCiAgICAgICAgIGlmKCFpc191c2VyICYmIChh ZGRyZXNzID49IHN0YXJ0X3ZtKSAmJiAoYWRkcmVzcyA8IGVuZF92bSkpewogICAgICAgICAg ICAgICAgIGZsdXNoX3RsYl9rZXJuZWxfdm0oKTsKQEAgLTE2Niw2ICsxNzMsNyBAQCB1bnNp Z25lZCBsb25nIHNlZ3YodW5zaWduZWQgbG9uZyBhZGRyZXNzCiAJCXNpLnNpX2Vycm5vID0g MDsKIAkJc2kuc2lfY29kZSA9IEJVU19BRFJFUlI7CiAJCXNpLnNpX2FkZHIgPSAodm9pZCAq KWFkZHJlc3M7CisJCWN1cnJlbnQtPnRocmVhZC5hcmNoLmZhdWx0aW5mbyA9IGZpOwogCQlm b3JjZV9zaWdfaW5mbyhTSUdCVVMsICZzaSwgY3VycmVudCk7CiAJfQogCWVsc2UgaWYoZXJy ID09IC1FTk9NRU0pewpAQCAtMTc1LDIyICsxODMsMjAgQEAgdW5zaWduZWQgbG9uZyBzZWd2 KHVuc2lnbmVkIGxvbmcgYWRkcmVzcwogCWVsc2UgewogCQlzaS5zaV9zaWdubyA9IFNJR1NF R1Y7CiAJCXNpLnNpX2FkZHIgPSAodm9pZCAqKSBhZGRyZXNzOwotCQljdXJyZW50LT50aHJl YWQuY3IyID0gYWRkcmVzczsKLQkJY3VycmVudC0+dGhyZWFkLmVyciA9IGlzX3dyaXRlOwor CQljdXJyZW50LT50aHJlYWQuYXJjaC5mYXVsdGluZm8gPSBmaTsKIAkJZm9yY2Vfc2lnX2lu Zm8oU0lHU0VHViwgJnNpLCBjdXJyZW50KTsKIAl9CiAJcmV0dXJuKDApOwogfQogCi12b2lk IGJhZF9zZWd2KHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgdW5zaWduZWQgbG9uZyBpcCwgaW50 IGlzX3dyaXRlKQordm9pZCBiYWRfc2VndihzdHJ1Y3QgZmF1bHRpbmZvIGZpLCB1bnNpZ25l ZCBsb25nIGlwKQogewogCXN0cnVjdCBzaWdpbmZvIHNpOwogCiAJc2kuc2lfc2lnbm8gPSBT SUdTRUdWOwogCXNpLnNpX2NvZGUgPSBTRUdWX0FDQ0VSUjsKLQlzaS5zaV9hZGRyID0gKHZv aWQgKikgYWRkcmVzczsKLQljdXJyZW50LT50aHJlYWQuY3IyID0gYWRkcmVzczsKLQljdXJy ZW50LT50aHJlYWQuZXJyID0gaXNfd3JpdGU7CisJc2kuc2lfYWRkciA9ICh2b2lkICopIEZB VUxUX0FERFJFU1MoZmkpOworCWN1cnJlbnQtPnRocmVhZC5hcmNoLmZhdWx0aW5mbyA9IGZp OwogCWZvcmNlX3NpZ19pbmZvKFNJR1NFR1YsICZzaSwgY3VycmVudCk7CiB9CiAKQEAgLTE5 OSw2ICsyMDUsNyBAQCB2b2lkIHJlbGF5X3NpZ25hbChpbnQgc2lnLCB1bmlvbiB1bWxfcHRf CiAJaWYoYXJjaF9oYW5kbGVfc2lnbmFsKHNpZywgcmVncykpIHJldHVybjsKIAlpZighVVBU X0lTX1VTRVIocmVncykpCiAJCXBhbmljKCJLZXJuZWwgbW9kZSBzaWduYWwgJWQiLCBzaWcp OworCWN1cnJlbnQtPnRocmVhZC5hcmNoLmZhdWx0aW5mbyA9ICpVUFRfRkFVTFRJTkZPKHJl Z3MpOwogCWZvcmNlX3NpZyhzaWcsIGN1cnJlbnQpOwogfQogCmRpZmYgLXB1TiBhcmNoL3Vt L2luY2x1ZGUva2Vybl91dGlsLmh+ZmF1bHRpbmZvLXJld29yayBhcmNoL3VtL2luY2x1ZGUv a2Vybl91dGlsLmgKLS0tIGxpbnV4LTIuNi4xMC1yYzItbW00L2FyY2gvdW0vaW5jbHVkZS9r ZXJuX3V0aWwuaH5mYXVsdGluZm8tcmV3b3JrCTIwMDQtMTItMTcgMjE6NTY6NDUuODYwNDQ4 NDkyICswMTAwCisrKyBsaW51eC0yLjYuMTAtcmMyLW1tNC1yb290L2FyY2gvdW0vaW5jbHVk ZS9rZXJuX3V0aWwuaAkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg5MDQ1OTY1MiArMDEwMApAQCAt OCw2ICs4LDcgQEAKIAogI2luY2x1ZGUgImxpbnV4L3RocmVhZHMuaCIKICNpbmNsdWRlICJz eXNkZXAvcHRyYWNlLmgiCisjaW5jbHVkZSAic3lzZGVwL2ZhdWx0aW5mby5oIgogCiBleHRl cm4gaW50IG5jcHVzOwogZXh0ZXJuIGNoYXIgKmxpbnV4X3Byb2c7CkBAIC0zMSw4ICszMiw4 IEBAIGV4dGVybiBpbnQgY3VycmVudF9waWQodm9pZCk7CiBleHRlcm4gdW5zaWduZWQgbG9u ZyBhbGxvY19zdGFjayhpbnQgb3JkZXIsIGludCBhdG9taWMpOwogZXh0ZXJuIGludCBkb19z aWduYWwodm9pZCk7CiBleHRlcm4gaW50IGlzX3N0YWNrX2ZhdWx0KHVuc2lnbmVkIGxvbmcg c3ApOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc2Vndih1bnNpZ25lZCBsb25nIGFkZHJlc3Ms IHVuc2lnbmVkIGxvbmcgaXAsIAotCQkJICBpbnQgaXNfd3JpdGUsIGludCBpc191c2VyLCB2 b2lkICpzYyk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBzZWd2KHN0cnVjdCBmYXVsdGluZm8g ZmksIHVuc2lnbmVkIGxvbmcgaXAsCisJCQkgIGludCBpc191c2VyLCB2b2lkICpzYyk7CiBl eHRlcm4gaW50IGhhbmRsZV9wYWdlX2ZhdWx0KHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgdW5z aWduZWQgbG9uZyBpcCwKIAkJCSAgICAgaW50IGlzX3dyaXRlLCBpbnQgaXNfdXNlciwgaW50 ICpjb2RlX291dCk7CiBleHRlcm4gdm9pZCBzeXNjYWxsX3JlYWR5KHZvaWQpOwpAQCAtODIs NyArODMsNyBAQCBleHRlcm4gdm9pZCB0aW1lcl9pcnEodW5pb24gdW1sX3B0X3JlZ3MgCiBl eHRlcm4gdm9pZCB1bnByb3RlY3Rfc3RhY2sodW5zaWduZWQgbG9uZyBzdGFjayk7CiBleHRl cm4gdm9pZCBkb191bWxfZXhpdGNhbGxzKHZvaWQpOwogZXh0ZXJuIGludCBhdHRhY2hfZGVi dWdnZXIoaW50IGlkbGVfcGlkLCBpbnQgcGlkLCBpbnQgc3RvcCk7Ci1leHRlcm4gdm9pZCBi YWRfc2Vndih1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHVuc2lnbmVkIGxvbmcgaXAsIGludCBp c193cml0ZSk7CitleHRlcm4gdm9pZCBiYWRfc2VndihzdHJ1Y3QgZmF1bHRpbmZvIGZpLCB1 bnNpZ25lZCBsb25nIGlwKTsKIGV4dGVybiBpbnQgY29uZmlnX2dkYihjaGFyICpzdHIpOwog ZXh0ZXJuIGludCByZW1vdmVfZ2RiKHZvaWQpOwogZXh0ZXJuIGNoYXIgKnVtbF9zdHJkdXAo Y2hhciAqc3RyaW5nKTsKZGlmZiAtcHVOIGFyY2gvdW0vaW5jbHVkZS9zeXNkZXAtaTM4Ni9z aWdjb250ZXh0Lmh+ZmF1bHRpbmZvLXJld29yayBhcmNoL3VtL2luY2x1ZGUvc3lzZGVwLWkz ODYvc2lnY29udGV4dC5oCi0tLSBsaW51eC0yLjYuMTAtcmMyLW1tNC9hcmNoL3VtL2luY2x1 ZGUvc3lzZGVwLWkzODYvc2lnY29udGV4dC5ofmZhdWx0aW5mby1yZXdvcmsJMjAwNC0xMi0x NyAyMTo1Njo0NS44NjI0NDkyMzYgKzAxMDAKKysrIGxpbnV4LTIuNi4xMC1yYzItbW00LXJv b3QvYXJjaC91bS9pbmNsdWRlL3N5c2RlcC1pMzg2L3NpZ2NvbnRleHQuaAkyMDA0LTEyLTE3 IDIxOjU2OjQ1Ljg5MDQ1OTY1MiArMDEwMApAQCAtMTMsMTUgKzEzLDEyIEBACiAjZGVmaW5l IFNDX1JFU1RBUlRfU1lTQ0FMTChzYykgSVBfUkVTVEFSVF9TWVNDQUxMKFNDX0lQKHNjKSkK ICNkZWZpbmUgU0NfU0VUX1NZU0NBTExfUkVUVVJOKHNjLCByZXN1bHQpIFNDX0VBWChzYykg PSAocmVzdWx0KQogCi0jZGVmaW5lIFNDX0ZBVUxUX0FERFIoc2MpIFNDX0NSMihzYykKLSNk ZWZpbmUgU0NfRkFVTFRfVFlQRShzYykgU0NfRVJSKHNjKQotCi0jZGVmaW5lIEZBVUxUX1dS SVRFKGVycikgKGVyciAmIDIpCi0jZGVmaW5lIFRPX1NDX0VSUihpc193cml0ZSkgKChpc193 cml0ZSkgPyAyIDogMCkKLQotI2RlZmluZSBTQ19GQVVMVF9XUklURShzYykgKEZBVUxUX1dS SVRFKFNDX0VSUihzYykpKQotCi0jZGVmaW5lIFNDX1RSQVBfVFlQRShzYykgU0NfVFJBUE5P KHNjKQorI2RlZmluZSBHRVRfRkFVTFRJTkZPX0ZST01fU0MoZmksc2MpIFwKKwl7IFwKKwkJ KGZpKS5jcjIgPSBTQ19DUjIoc2MpOyBcCisJCShmaSkuZXJyb3JfY29kZSA9IFNDX0VSUihz Yyk7IFwKKwkJKGZpKS50cmFwX25vID0gU0NfVFJBUE5PKHNjKTsgXAorCX0KIAogLyogcHRy YWNlIGV4cGVjdHMgdGhhdCwgYXQgdGhlIHN0YXJ0IG9mIGEgc3lzdGVtIGNhbGwsICVlYXgg Y29udGFpbnMKICAqIC1FTk9TWVMsIHNvIHRoaXMgbWFrZXMgaXQgc28uCkBAIC0yOSw5ICsy Niw3IEBACiAjZGVmaW5lIFNDX1NUQVJUX1NZU0NBTEwoc2MpIGRvIFNDX0VBWChzYykgPSAt RU5PU1lTOyB3aGlsZSgwKQogCiAvKiBUaGlzIGlzIFBhZ2UgRmF1bHQgKi8KLSNkZWZpbmUg U0VHVl9JU19GSVhBQkxFKHRyYXApICh0cmFwID09IDE0KQotCi0jZGVmaW5lIFNDX1NFR1Zf SVNfRklYQUJMRShzYykgKFNFR1ZfSVNfRklYQUJMRShTQ19UUkFQTk8oc2MpKSkKKyNkZWZp bmUgU0VHVl9JU19GSVhBQkxFKGZpKSAoKGZpKS0+dHJhcF9ubyA9PSAxNCkKIAogZXh0ZXJu IHVuc2lnbmVkIGxvbmcgKnNjX3NpZ21hc2sodm9pZCAqc2NfcHRyKTsKIGV4dGVybiBpbnQg c2NfZ2V0X2ZwcmVncyh1bnNpZ25lZCBsb25nIGJ1Ziwgdm9pZCAqc2NfcHRyKTsKZGlmZiAt cHVOIGFyY2gvdW0vc3lzLWkzODYvc2lnbmFsLmN+ZmF1bHRpbmZvLXJld29yayBhcmNoL3Vt L3N5cy1pMzg2L3NpZ25hbC5jCi0tLSBsaW51eC0yLjYuMTAtcmMyLW1tNC9hcmNoL3VtL3N5 cy1pMzg2L3NpZ25hbC5jfmZhdWx0aW5mby1yZXdvcmsJMjAwNC0xMi0xNyAyMTo1Njo0NS44 NjU0NTAzNTIgKzAxMDAKKysrIGxpbnV4LTIuNi4xMC1yYzItbW00LXJvb3QvYXJjaC91bS9z eXMtaTM4Ni9zaWduYWwuYwkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg5MDQ1OTY1MiArMDEwMApA QCAtNDcsOSArNDcsNiBAQCBzdGF0aWMgaW50IGNvcHlfc2NfZnJvbV91c2VyX3NrYXMoc3Ry dWN0CiAJUkVHU19DUyhyZWdzLT5yZWdzLnNrYXMucmVncykgPSBzYy5jczsKIAlSRUdTX0VG TEFHUyhyZWdzLT5yZWdzLnNrYXMucmVncykgPSBzYy5lZmxhZ3M7CiAJUkVHU19TUyhyZWdz LT5yZWdzLnNrYXMucmVncykgPSBzYy5zczsKLQlyZWdzLT5yZWdzLnNrYXMuZmF1bHRfYWRk ciA9IHNjLmNyMjsKLQlyZWdzLT5yZWdzLnNrYXMuZmF1bHRfdHlwZSA9IEZBVUxUX1dSSVRF KHNjLmVycik7Ci0JcmVncy0+cmVncy5za2FzLnRyYXBfdHlwZSA9IHNjLnRyYXBubzsKIAog CWVyciA9IHB0cmFjZV9zZXRmcHJlZ3ModXNlcnNwYWNlX3BpZFswXSwgZnByZWdzKTsKIAlp ZihlcnIgPCAwKXsKQEAgLTYyLDExICs1OSwxMSBAQCBzdGF0aWMgaW50IGNvcHlfc2NfZnJv bV91c2VyX3NrYXMoc3RydWN0CiB9CiAKIGludCBjb3B5X3NjX3RvX3VzZXJfc2thcyhzdHJ1 Y3Qgc2lnY29udGV4dCAqdG8sIHN0cnVjdCBfZnBzdGF0ZSAqdG9fZnAsCi0JCQkgc3RydWN0 IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgZmF1bHRfYWRkciwKLQkJCSBpbnQgZmF1 bHRfdHlwZSkKKwkJCSBzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKICAgCXN0cnVjdCBzaWdj b250ZXh0IHNjOwogCXVuc2lnbmVkIGxvbmcgZnByZWdzW0hPU1RfRlBfU0laRV07CisJc3Ry dWN0IGZhdWx0aW5mbyAqIGZpID0gJmN1cnJlbnQtPnRocmVhZC5hcmNoLmZhdWx0aW5mbzsK IAlpbnQgZXJyOwogCiAJc2MuZ3MgPSBSRUdTX0dTKHJlZ3MtPnJlZ3Muc2thcy5yZWdzKTsK QEAgLTg2LDkgKzgzLDkgQEAgaW50IGNvcHlfc2NfdG9fdXNlcl9za2FzKHN0cnVjdCBzaWdj b250ZQogCXNjLmVmbGFncyA9IFJFR1NfRUZMQUdTKHJlZ3MtPnJlZ3Muc2thcy5yZWdzKTsK IAlzYy5lc3BfYXRfc2lnbmFsID0gcmVncy0+cmVncy5za2FzLnJlZ3NbVUVTUF07CiAJc2Mu c3MgPSByZWdzLT5yZWdzLnNrYXMucmVnc1tTU107Ci0Jc2MuY3IyID0gZmF1bHRfYWRkcjsK LQlzYy5lcnIgPSBUT19TQ19FUlIoZmF1bHRfdHlwZSk7Ci0Jc2MudHJhcG5vID0gcmVncy0+ cmVncy5za2FzLnRyYXBfdHlwZTsKKwlzYy5jcjIgPSBmaS0+Y3IyOworCXNjLmVyciA9IGZp LT5lcnJvcl9jb2RlOworCXNjLnRyYXBubyA9IGZpLT50cmFwX25vOwogCiAJZXJyID0gcHRy YWNlX2dldGZwcmVncyh1c2Vyc3BhY2VfcGlkWzBdLCBmcHJlZ3MpOwogCWlmKGVyciA8IDAp ewpAQCAtMTYxLDkgKzE1OCw3IEBAIHN0YXRpYyBpbnQgY29weV9zY190b191c2VyKHN0cnVj dCBzaWdjb24KIHsKIAlyZXR1cm4oQ0hPT1NFX01PREUoY29weV9zY190b191c2VyX3R0KHRv LCBmcCwgVVBUX1NDKCZmcm9tLT5yZWdzKSwKIAkJCQkJICAgICAgc2l6ZW9mKCpmcCkpLAot CQkJICAgY29weV9zY190b191c2VyX3NrYXModG8sIGZwLCBmcm9tLAotCQkJCQkJY3VycmVu dC0+dGhyZWFkLmNyMiwKLQkJCQkJCWN1cnJlbnQtPnRocmVhZC5lcnIpKSk7CisJCQkgICBj b3B5X3NjX3RvX3VzZXJfc2thcyh0bywgZnAsIGZyb20pKSk7CiB9CiAKIHN0YXRpYyBpbnQg Y29weV91Y29udGV4dF90b191c2VyKHN0cnVjdCB1Y29udGV4dCAqdWMsIHN0cnVjdCBfZnBz dGF0ZSAqZnAsCmRpZmYgLXB1TiBhcmNoL3VtL2tlcm5lbC90cmFwX3VzZXIuY35mYXVsdGlu Zm8tcmV3b3JrIGFyY2gvdW0va2VybmVsL3RyYXBfdXNlci5jCi0tLSBsaW51eC0yLjYuMTAt cmMyLW1tNC9hcmNoL3VtL2tlcm5lbC90cmFwX3VzZXIuY35mYXVsdGluZm8tcmV3b3JrCTIw MDQtMTItMTcgMjE6NTY6NDUuODY3NDUxMDk2ICswMTAwCisrKyBsaW51eC0yLjYuMTAtcmMy LW1tNC1yb290L2FyY2gvdW0va2VybmVsL3RyYXBfdXNlci5jCTIwMDQtMTItMTcgMjI6MDg6 NDYuODc5NTY3ODY0ICswMTAwCkBAIC01NSwyMyArNTUsMjIgQEAgc3RydWN0IHsKIHZvaWQg c2Vndl9oYW5kbGVyKGludCBzaWcsIHVuaW9uIHVtbF9wdF9yZWdzICpyZWdzKQogewogCWlu dCBpbmRleCwgbWF4OworCXN0cnVjdCBmYXVsdGluZm8gKiBmaSA9IFVQVF9GQVVMVElORk8o cmVncyk7CiAKLQlpZihVUFRfSVNfVVNFUihyZWdzKSAmJiAhVVBUX1NFR1ZfSVNfRklYQUJM RShyZWdzKSl7Ci0JCWJhZF9zZWd2KFVQVF9GQVVMVF9BRERSKHJlZ3MpLCBVUFRfSVAocmVn cyksIAotCQkJIFVQVF9GQVVMVF9XUklURShyZWdzKSk7CisJaWYoVVBUX0lTX1VTRVIocmVn cykgJiYgIVNFR1ZfSVNfRklYQUJMRShmaSkpeworCQliYWRfc2VndigqZmksIFVQVF9JUChy ZWdzKSk7CiAJCXJldHVybjsKIAl9CiAJbWF4ID0gc2l6ZW9mKHNlZ2ZhdWx0X3JlY29yZCkv c2l6ZW9mKHNlZ2ZhdWx0X3JlY29yZFswXSk7CiAJaW5kZXggPSBuZXh0X3RyYXBfaW5kZXgo bWF4KTsKIAogCW5zZWdmYXVsdHMrKzsKLQlzZWdmYXVsdF9yZWNvcmRbaW5kZXhdLmFkZHJl c3MgPSBVUFRfRkFVTFRfQUREUihyZWdzKTsKKwlzZWdmYXVsdF9yZWNvcmRbaW5kZXhdLmFk ZHJlc3MgPSBGQVVMVF9BRERSRVNTKCpmaSk7CiAJc2VnZmF1bHRfcmVjb3JkW2luZGV4XS5w aWQgPSBvc19nZXRwaWQoKTsKLQlzZWdmYXVsdF9yZWNvcmRbaW5kZXhdLmlzX3dyaXRlID0g VVBUX0ZBVUxUX1dSSVRFKHJlZ3MpOworCXNlZ2ZhdWx0X3JlY29yZFtpbmRleF0uaXNfd3Jp dGUgPSBGQVVMVF9XUklURSgqZmkpOwogCXNlZ2ZhdWx0X3JlY29yZFtpbmRleF0uc3AgPSBV UFRfU1AocmVncyk7CiAJc2VnZmF1bHRfcmVjb3JkW2luZGV4XS5pc191c2VyID0gVVBUX0lT X1VTRVIocmVncyk7Ci0Jc2VndihVUFRfRkFVTFRfQUREUihyZWdzKSwgVVBUX0lQKHJlZ3Mp LCBVUFRfRkFVTFRfV1JJVEUocmVncyksCi0JICAgICBVUFRfSVNfVVNFUihyZWdzKSwgcmVn cyk7CisJc2VndigqZmksIFVQVF9JUChyZWdzKSwgVVBUX0lTX1VTRVIocmVncyksIHJlZ3Mp OwogfQogCiB2b2lkIHVzcjJfaGFuZGxlcihpbnQgc2lnLCB1bmlvbiB1bWxfcHRfcmVncyAq cmVncykKZGlmZiAtcHVOIC9kZXYvbnVsbCBhcmNoL3VtL2luY2x1ZGUvc3lzZGVwLWkzODYv ZmF1bHRpbmZvLmgKLS0tIC9kZXYvbnVsbAkyMDA0LTA2LTMwIDIxOjA0OjM3LjAwMDAwMDAw MCArMDIwMAorKysgbGludXgtMi42LjEwLXJjMi1tbTQtcm9vdC9hcmNoL3VtL2luY2x1ZGUv c3lzZGVwLWkzODYvZmF1bHRpbmZvLmgJMjAwNC0xMi0xNyAyMjowNDozMy4zOTUzMDY3ODQg KzAxMDAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNCBGdWpp dHN1IFNpZW1lbnMgQ29tcHV0ZXJzIEdtYkgKKyAqIEF1dGhvcjogQm9kbyBTdHJvZXNzZXIg PGJzdHJvZXNzZXJAZnVqaXRzdS1zaWVtZW5zLmNvbT4KKyAqIExpY2Vuc2VkIHVuZGVyIHRo ZSBHUEwKKyAqLworCisjaWZuZGVmIF9fRkFVTFRJTkZPX0kzODZfSAorI2RlZmluZSBfX0ZB VUxUSU5GT19JMzg2X0gKKworLyogdGhpcyBzdHJ1Y3R1cmUgY29udGFpbnMgdGhlIGZ1bGwg YXJjaC1zcGVjaWZpYyBmYXVsdGluZm8KKyAqIGZyb20gdGhlIHRyYXBzLgorICogT24gaTM4 NiwgcHRyYWNlX2ZhdWx0aW5mbyB1bmZvcnR1bmF0ZWx5IGRvZXNuJ3QgcHJvdmlkZQorICog YWxsIHRoZSBpbmZvLCBzaW5jZSB0cmFwX25vIGlzIG1pc3NpbmcuCisgKiBBbGwgY29tbW9u IGVsZW1lbnRzIGFyZSBkZWZpbmVkIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGluCisgKiBib3Ro IHN0cnVjdHVyZXMsIHRodXMgbWFraW5nIGl0IGVhc3kgdG8gY29weSB0aGUKKyAqIGNvbnRl bnRzIHdpdGhvdXQga25vd2xlZGdlIGFib3V0IHRoZSBzdHJ1Y3R1cmUgZWxlbWVudHMuCisg Ki8KK3N0cnVjdCBmYXVsdGluZm8geworCWludCBlcnJvcl9jb2RlOyAvKiBpbiBwdHJhY2Vf ZmF1bHRpbmZvIG1pc2xlYWRpbmdseSBjYWxsZWQgaXNfd3JpdGUgKi8KKwl1bnNpZ25lZCBs b25nIGNyMjsgLyogaW4gcHRyYWNlX2ZhdWx0aW5mbyBjYWxsZWQgYWRkciAqLworCWludCB0 cmFwX25vOyAvKiBtaXNzaW5nIGluIHB0cmFjZV9mYXVsdGluZm8gKi8KK307CisKKyNkZWZp bmUgRkFVTFRfV1JJVEUoZmkpICgoZmkpLmVycm9yX2NvZGUgJiAyKQorI2RlZmluZSBGQVVM VF9BRERSRVNTKGZpKSAoKGZpKS5jcjIpCisKKyNkZWZpbmUgUFRSQUNFX0ZVTExfRkFVTFRJ TkZPIDAKKworI2VuZGlmCisKKy8qCisgKiBPdmVycmlkZXMgZm9yIEVtYWNzIHNvIHRoYXQg d2UgZm9sbG93IExpbnVzJ3MgdGFiYmluZyBzdHlsZS4KKyAqIEVtYWNzIHdpbGwgbm90aWNl IHRoaXMgc3R1ZmYgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZSBhbmQgYXV0b21hdGljYWxseQor ICogYWRqdXN0IHRoZSBzZXR0aW5ncyBmb3IgdGhpcyBidWZmZXIgb25seS4gIFRoaXMgbXVz dCByZW1haW4gYXQgdGhlIGVuZAorICogb2YgdGhlIGZpbGUuCisgKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIGMtZmlsZS1zdHlsZTogImxpbnV4 IgorICogRW5kOgorICovCmRpZmYgLXB1TiBhcmNoL3VtL2luY2x1ZGUvc3lzZGVwLWkzODYv cHRyYWNlLmh+ZmF1bHRpbmZvLXJld29yayBhcmNoL3VtL2luY2x1ZGUvc3lzZGVwLWkzODYv cHRyYWNlLmgKLS0tIGxpbnV4LTIuNi4xMC1yYzItbW00L2FyY2gvdW0vaW5jbHVkZS9zeXNk ZXAtaTM4Ni9wdHJhY2UuaH5mYXVsdGluZm8tcmV3b3JrCTIwMDQtMTItMTcgMjE6NTY6NDUu ODcwNDUyMjEyICswMTAwCisrKyBsaW51eC0yLjYuMTAtcmMyLW1tNC1yb290L2FyY2gvdW0v aW5jbHVkZS9zeXNkZXAtaTM4Ni9wdHJhY2UuaAkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg5MTQ2 MDAyNCArMDEwMApAQCAtMjUsNiArMjUsNyBAQCBpbnQgZ2V0X3VzaW5nX3N5c2VtdSh2b2lk KTsKIGV4dGVybiBpbnQgc3lzZW11X3N1cHBvcnRlZDsKIAogI2luY2x1ZGUgInNrYXNfcHRy ZWdzLmgiCisjaW5jbHVkZSAic3lzZGVwL2ZhdWx0aW5mby5oIgogCiAjZGVmaW5lIEhPU1Rf RlJBTUVfU0laRSAxNwogCkBAIC00OSwxMiArNTAsNiBAQCBleHRlcm4gaW50IHN5c2VtdV9z dXBwb3J0ZWQ7CiAKICNkZWZpbmUgUkVHU19SRVNUQVJUX1NZU0NBTEwocikgSVBfUkVTVEFS VF9TWVNDQUxMKFJFR1NfSVAocikpCiAKLSNkZWZpbmUgUkVHU19TRUdWX0lTX0ZJWEFCTEUo cikgU0VHVl9JU19GSVhBQkxFKChyKS0+dHJhcF90eXBlKQotCi0jZGVmaW5lIFJFR1NfRkFV TFRfQUREUihyKSAoKHIpLT5mYXVsdF9hZGRyKQotCi0jZGVmaW5lIFJFR1NfRkFVTFRfV1JJ VEUocikgRkFVTFRfV1JJVEUoKHIpLT5mYXVsdF90eXBlKQotCiAjZW5kaWYKICNpZm5kZWYg UFRSQUNFX1NZU0VNVV9TSU5HTEVTVEVQCiAjZGVmaW5lIFBUUkFDRV9TWVNFTVVfU0lOR0xF U1RFUCAzMgpAQCAtNjcsNiArNjIsNyBAQCB1bmlvbiB1bWxfcHRfcmVncyB7CiAJc3RydWN0 IHR0X3JlZ3MgewogCQlsb25nIHN5c2NhbGw7CiAJCXZvaWQgKnNjOworCQlzdHJ1Y3QgZmF1 bHRpbmZvIGZhdWx0aW5mbzsKIAl9IHR0OwogI2VuZGlmCiAjaWZkZWYgVU1MX0NPTkZJR19N T0RFX1NLQVMKQEAgLTc0LDkgKzcwLDcgQEAgdW5pb24gdW1sX3B0X3JlZ3MgewogCQl1bnNp Z25lZCBsb25nIHJlZ3NbSE9TVF9GUkFNRV9TSVpFXTsKIAkJdW5zaWduZWQgbG9uZyBmcFtI T1NUX0ZQX1NJWkVdOwogCQl1bnNpZ25lZCBsb25nIHhmcFtIT1NUX1hGUF9TSVpFXTsKLQkJ dW5zaWduZWQgbG9uZyBmYXVsdF9hZGRyOwotCQl1bnNpZ25lZCBsb25nIGZhdWx0X3R5cGU7 Ci0JCXVuc2lnbmVkIGxvbmcgdHJhcF90eXBlOworCQlzdHJ1Y3QgZmF1bHRpbmZvIGZhdWx0 aW5mbzsKIAkJbG9uZyBzeXNjYWxsOwogCQlpbnQgaXNfdXNlcjsKIAl9IHNrYXM7CkBAIC0y MTMsMTUgKzIwNyw4IEBAIHN0cnVjdCBzeXNjYWxsX2FyZ3MgewogI2RlZmluZSBVUFRfU1lT Q0FMTF9OUihyKSBVUFRfT1JJR19FQVgocikKICNkZWZpbmUgVVBUX1NZU0NBTExfUkVUKHIp IFVQVF9FQVgocikKIAotI2RlZmluZSBVUFRfU0VHVl9JU19GSVhBQkxFKHIpIFwKLQlDSE9P U0VfTU9ERShTQ19TRUdWX0lTX0ZJWEFCTEUoVVBUX1NDKHIpKSwgXAotICAgICAgICAgICAg ICAgICAgICBSRUdTX1NFR1ZfSVNfRklYQUJMRSgmci0+c2thcykpCi0KLSNkZWZpbmUgVVBU X0ZBVUxUX0FERFIocikgXAotCUNIT09TRV9NT0RFKFNDX0ZBVUxUX0FERFIoVVBUX1NDKHIp KSwgUkVHU19GQVVMVF9BRERSKCZyLT5za2FzKSkKLQotI2RlZmluZSBVUFRfRkFVTFRfV1JJ VEUocikgXAotCUNIT09TRV9NT0RFKFNDX0ZBVUxUX1dSSVRFKFVQVF9TQyhyKSksIFJFR1Nf RkFVTFRfV1JJVEUoJnItPnNrYXMpKQorI2RlZmluZSBVUFRfRkFVTFRJTkZPKHIpIFwKKwlD SE9PU0VfTU9ERSgoJihyKS0+dHQuZmF1bHRpbmZvKSwgKCYociktPnNrYXMuZmF1bHRpbmZv KSkKIAogI2VuZGlmCiAKZGlmZiAtcHVOIGFyY2gvdW0va2VybmVsL3NrYXMvdHJhcF91c2Vy LmN+ZmF1bHRpbmZvLXJld29yayBhcmNoL3VtL2tlcm5lbC9za2FzL3RyYXBfdXNlci5jCi0t LSBsaW51eC0yLjYuMTAtcmMyLW1tNC9hcmNoL3VtL2tlcm5lbC9za2FzL3RyYXBfdXNlci5j fmZhdWx0aW5mby1yZXdvcmsJMjAwNC0xMi0xNyAyMTo1Njo0NS44NzI0NTI5NTYgKzAxMDAK KysrIGxpbnV4LTIuNi4xMC1yYzItbW00LXJvb3QvYXJjaC91bS9rZXJuZWwvc2thcy90cmFw X3VzZXIuYwkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg5MjQ2MDM5NiArMDEwMApAQCAtMTIsNiAr MTIsNyBAQAogI2luY2x1ZGUgImtlcm5fdXRpbC5oIgogI2luY2x1ZGUgInRhc2suaCIKICNp bmNsdWRlICJzaWdjb250ZXh0LmgiCisjaW5jbHVkZSAic2thcy5oIgogCiB2b2lkIHNpZ19o YW5kbGVyX2NvbW1vbl9za2FzKGludCBzaWcsIHZvaWQgKnNjX3B0cikKIHsKQEAgLTI0LDkg KzI1LDExIEBAIHZvaWQgc2lnX2hhbmRsZXJfY29tbW9uX3NrYXMoaW50IHNpZywgdm8KIAly ID0gJlRBU0tfUkVHUyhnZXRfY3VycmVudCgpKS0+c2thczsKIAlzYXZlX3VzZXIgPSByLT5p c191c2VyOwogCXItPmlzX3VzZXIgPSAwOwotCXItPmZhdWx0X2FkZHIgPSBTQ19GQVVMVF9B RERSKHNjKTsKLQlyLT5mYXVsdF90eXBlID0gU0NfRkFVTFRfVFlQRShzYyk7Ci0Jci0+dHJh cF90eXBlID0gU0NfVFJBUF9UWVBFKHNjKTsKKwlpZiAoIHNpZyA9PSBTSUdGUEUgfHwgc2ln ID09IFNJR1NFR1YgfHwKKwkgICAgIHNpZyA9PSBTSUdCVVMgfHwgc2lnID09IFNJR0lMTCB8 fAorCSAgICAgc2lnID09IFNJR1RSQVAgKSB7CisJCUdFVF9GQVVMVElORk9fRlJPTV9TQyhy LT5mYXVsdGluZm8sIHNjKTsKKwl9CiAKIAljaGFuZ2Vfc2lnKFNJR1VTUjEsIDEpOwogCWlu Zm8gPSAmc2lnX2luZm9bc2lnXTsKQEAgLTM4LDE0ICs0MSwxNSBAQCB2b2lkIHNpZ19oYW5k bGVyX2NvbW1vbl9za2FzKGludCBzaWcsIHZvCiAJci0+aXNfdXNlciA9IHNhdmVfdXNlcjsK IH0KIAotdm9pZCB1c2VyX3NpZ25hbChpbnQgc2lnLCB1bmlvbiB1bWxfcHRfcmVncyAqcmVn cykKK3ZvaWQgdXNlcl9zaWduYWwoaW50IHNpZywgdW5pb24gdW1sX3B0X3JlZ3MgKnJlZ3Ms IGludCBwaWQpCiB7CiAJc3RydWN0IHNpZ25hbF9pbmZvICppbmZvOwogCiAJcmVncy0+c2th cy5pc191c2VyID0gMTsKLQlyZWdzLT5za2FzLmZhdWx0X2FkZHIgPSAwOwotCXJlZ3MtPnNr YXMuZmF1bHRfdHlwZSA9IDA7Ci0JcmVncy0+c2thcy50cmFwX3R5cGUgPSAwOworCWlmICgg c2lnID09IFNJR0ZQRSB8fCBzaWcgPT0gU0lHU0VHViB8fAorCSAgICAgc2lnID09IFNJR0JV UyB8fCBzaWcgPT0gU0lHSUxMIHx8CisJICAgICBzaWcgPT0gU0lHVFJBUCApCisJCWdldF9z a2FzX2ZhdWx0aW5mbyhwaWQsICZyZWdzLT5za2FzLmZhdWx0aW5mbyk7CiAJaW5mbyA9ICZz aWdfaW5mb1tzaWddOwogCSgqaW5mby0+aGFuZGxlcikoc2lnLCByZWdzKTsKIApkaWZmIC1w dU4gYXJjaC91bS9rZXJuZWwvdHQvdHJhcF91c2VyLmN+ZmF1bHRpbmZvLXJld29yayBhcmNo L3VtL2tlcm5lbC90dC90cmFwX3VzZXIuYwotLS0gbGludXgtMi42LjEwLXJjMi1tbTQvYXJj aC91bS9rZXJuZWwvdHQvdHJhcF91c2VyLmN+ZmF1bHRpbmZvLXJld29yawkyMDA0LTEyLTE3 IDIxOjU2OjQ1Ljg3NTQ1NDA3MiArMDEwMAorKysgbGludXgtMi42LjEwLXJjMi1tbTQtcm9v dC9hcmNoL3VtL2tlcm5lbC90dC90cmFwX3VzZXIuYwkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg5 MjQ2MDM5NiArMDEwMApAQCAtOCw2ICs4LDcgQEAKICNpbmNsdWRlIDxzaWduYWwuaD4KICNp bmNsdWRlIDxhc20vc2lnY29udGV4dC5oPgogI2luY2x1ZGUgInN5c2RlcC9wdHJhY2UuaCIK KyNpbmNsdWRlICJzeXNkZXAvc2lnY29udGV4dC5oIgogI2luY2x1ZGUgInNpZ25hbF91c2Vy LmgiCiAjaW5jbHVkZSAidXNlcl91dGlsLmgiCiAjaW5jbHVkZSAia2Vybl91dGlsLmgiCkBA IC0zMSw2ICszMiwxMSBAQCB2b2lkIHNpZ19oYW5kbGVyX2NvbW1vbl90dChpbnQgc2lnLCB2 b2lkCiAJCWNoYW5nZV9zaWcoU0lHU0VHViwgMSk7CiAKIAlyID0gJlRBU0tfUkVHUyhnZXRf Y3VycmVudCgpKS0+dHQ7CisJaWYgKCBzaWcgPT0gU0lHRlBFIHx8IHNpZyA9PSBTSUdTRUdW IHx8CisJICAgICBzaWcgPT0gU0lHQlVTIHx8IHNpZyA9PSBTSUdJTEwgfHwKKwkgICAgIHNp ZyA9PSBTSUdUUkFQICkgeworCQlHRVRfRkFVTFRJTkZPX0ZST01fU0Moci0+ZmF1bHRpbmZv LCBzYyk7CisJfQogCXNhdmVfcmVncyA9ICpyOwogCWlzX3VzZXIgPSB1c2VyX2NvbnRleHQo U0NfU1Aoc2MpKTsKIAlyLT5zYyA9IHNjOwpkaWZmIC1wdU4gYXJjaC91bS9rZXJuZWwvc2th cy9wcm9jZXNzLmN+ZmF1bHRpbmZvLXJld29yayBhcmNoL3VtL2tlcm5lbC9za2FzL3Byb2Nl c3MuYwotLS0gbGludXgtMi42LjEwLXJjMi1tbTQvYXJjaC91bS9rZXJuZWwvc2thcy9wcm9j ZXNzLmN+ZmF1bHRpbmZvLXJld29yawkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg3NzQ1NDgxNiAr MDEwMAorKysgbGludXgtMi42LjEwLXJjMi1tbTQtcm9vdC9hcmNoL3VtL2tlcm5lbC9za2Fz L3Byb2Nlc3MuYwkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg5MjQ2MDM5NiArMDEwMApAQCAtNCw2 ICs0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5n Lmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRl IDxzaWduYWwuaD4KQEAgLTM5LDE3ICs0MCwyNSBAQCBpbnQgaXNfc2thc193aW5jaChpbnQg cGlkLCBpbnQgZmQsIHZvaWQgCiAJcmV0dXJuKDEpOwogfQogCi1zdGF0aWMgdm9pZCBoYW5k bGVfc2VndihpbnQgcGlkKQordm9pZCBnZXRfc2thc19mYXVsdGluZm8oaW50IHBpZCwgc3Ry dWN0IGZhdWx0aW5mbyAqIGZpKQogewotCXN0cnVjdCBwdHJhY2VfZmF1bHRpbmZvIGZhdWx0 OwogCWludCBlcnI7CiAKLQllcnIgPSBwdHJhY2UoUFRSQUNFX0ZBVUxUSU5GTywgcGlkLCAw LCAmZmF1bHQpOworCWVyciA9IHB0cmFjZShQVFJBQ0VfRkFVTFRJTkZPLCBwaWQsIDAsIGZp KTsKIAlpZihlcnIpCi0JCXBhbmljKCJoYW5kbGVfc2VndiAtIFBUUkFDRV9GQVVMVElORk8g ZmFpbGVkLCBlcnJubyA9ICVkXG4iLAorCQlwYW5pYygiZ2V0X3NrYXNfZmF1bHRpbmZvIC0g UFRSQUNFX0ZBVUxUSU5GTyBmYWlsZWQsIGVycm5vID0gJWRcbiIsCiAJCSAgICAgIGVycm5v KTsKIAotCXNlZ3YoZmF1bHQuYWRkciwgMCwgRkFVTFRfV1JJVEUoZmF1bHQuaXNfd3JpdGUp LCAxLCBOVUxMKTsKKwkvKiBTcGVjaWFsIGhhbmRsaW5nIGZvciBpMzg2LCB3aGljaCBoYXMg ZGlmZmVyZW50IHN0cnVjdHMgKi8KKwlpZiAoc2l6ZW9mKHN0cnVjdCBwdHJhY2VfZmF1bHRp bmZvKSA8IHNpemVvZihzdHJ1Y3QgZmF1bHRpbmZvKSkKKwkJbWVtc2V0KChjaGFyICopZmkg KyBzaXplb2Yoc3RydWN0IHB0cmFjZV9mYXVsdGluZm8pLCAwLAorCQkgICAgICAgc2l6ZW9m KHN0cnVjdCBmYXVsdGluZm8pLXNpemVvZihzdHJ1Y3QgcHRyYWNlX2ZhdWx0aW5mbykpOwor fQorCitzdGF0aWMgdm9pZCBoYW5kbGVfc2VndihpbnQgcGlkLCB1bmlvbiB1bWxfcHRfcmVn cyAqIHJlZ3MpCit7CisJZ2V0X3NrYXNfZmF1bHRpbmZvKHBpZCwgJnJlZ3MtPnNrYXMuZmF1 bHRpbmZvKTsKKwlzZWd2KHJlZ3MtPnNrYXMuZmF1bHRpbmZvLCAwLCAxLCBOVUxMKTsKIH0K IAogLypUbyB1c2UgdGhlIHNhbWUgdmFsdWUgb2YgdXNpbmdfc3lzZW11IGFzIHRoZSBjYWxs ZXIsIGFzayBpdCB0aGF0IHZhbHVlIChpbiBsb2NhbF91c2luZ19zeXNlbXUpKi8KQEAgLTE2 MCwyMSArMTY5LDIzIEBAIHZvaWQgdXNlcnNwYWNlKHVuaW9uIHVtbF9wdF9yZWdzICpyZWdz KQogCQlpZihXSUZTVE9QUEVEKHN0YXR1cykpewogCQkgIAlzd2l0Y2goV1NUT1BTSUcoc3Rh dHVzKSl7CiAJCQljYXNlIFNJR1NFR1Y6Ci0JCQkJaGFuZGxlX3NlZ3YocGlkKTsKK21lbXNl dCggJnJlZ3MtPnNrYXMuZmF1bHRpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGZhdWx0aW5mbykp OworCQkJCWlmIChQVFJBQ0VfRlVMTF9GQVVMVElORk8pCisJCQkJCXVzZXJfc2lnbmFsKFNJ R1NFR1YsIHJlZ3MsIHBpZCk7CisJCQkJZWxzZQorCQkJCQloYW5kbGVfc2VndihwaWQscmVn cyk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFNJR1RSQVAgKyAweDgwOgogCQkJICAgICAgICBo YW5kbGVfdHJhcChwaWQsIHJlZ3MsIGxvY2FsX3VzaW5nX3N5c2VtdSk7CiAJCQkJYnJlYWs7 CiAJCQljYXNlIFNJR1RSQVA6Ci0JCQkJcmVsYXlfc2lnbmFsKFNJR1RSQVAsIHJlZ3MpOwot CQkJCWJyZWFrOwogCQkJY2FzZSBTSUdJTzoKIAkJCWNhc2UgU0lHVlRBTFJNOgogCQkJY2Fz ZSBTSUdJTEw6CiAJCQljYXNlIFNJR0JVUzoKIAkJCWNhc2UgU0lHRlBFOgogCQkJY2FzZSBT SUdXSU5DSDoKLQkJCQl1c2VyX3NpZ25hbChXU1RPUFNJRyhzdGF0dXMpLCByZWdzKTsKKwkJ CQl1c2VyX3NpZ25hbChXU1RPUFNJRyhzdGF0dXMpLCByZWdzLCBwaWQpOwogCQkJCWJyZWFr OwogCQkJZGVmYXVsdDoKIAkJCSAgICAgICAgcHJpbnRrKCJ1c2Vyc3BhY2UgLSBjaGlsZCBz dG9wcGVkIHdpdGggc2lnbmFsICIKZGlmZiAtcHVOIGFyY2gvdW0va2VybmVsL3NrYXMvaW5j bHVkZS9za2FzLmh+ZmF1bHRpbmZvLXJld29yayBhcmNoL3VtL2tlcm5lbC9za2FzL2luY2x1 ZGUvc2thcy5oCi0tLSBsaW51eC0yLjYuMTAtcmMyLW1tNC9hcmNoL3VtL2tlcm5lbC9za2Fz L2luY2x1ZGUvc2thcy5ofmZhdWx0aW5mby1yZXdvcmsJMjAwNC0xMi0xNyAyMTo1Njo0NS44 Nzk0NTU1NjAgKzAxMDAKKysrIGxpbnV4LTIuNi4xMC1yYzItbW00LXJvb3QvYXJjaC91bS9r ZXJuZWwvc2thcy9pbmNsdWRlL3NrYXMuaAkyMDA0LTEyLTE3IDIxOjU2OjQ1Ljg5MjQ2MDM5 NiArMDEwMApAQCAtMjgsOSArMjgsMTAgQEAgZXh0ZXJuIHZvaWQgbWFwKGludCBmZCwgdW5z aWduZWQgbG9uZyB2aQogZXh0ZXJuIGludCB1bm1hcChpbnQgZmQsIHZvaWQgKmFkZHIsIGlu dCBsZW4pOwogZXh0ZXJuIGludCBwcm90ZWN0KGludCBmZCwgdW5zaWduZWQgbG9uZyBhZGRy LCB1bnNpZ25lZCBsb25nIGxlbiwgCiAJCSAgIGludCByLCBpbnQgdywgaW50IHgpOwotZXh0 ZXJuIHZvaWQgdXNlcl9zaWduYWwoaW50IHNpZywgdW5pb24gdW1sX3B0X3JlZ3MgKnJlZ3Mp OworZXh0ZXJuIHZvaWQgdXNlcl9zaWduYWwoaW50IHNpZywgdW5pb24gdW1sX3B0X3JlZ3Mg KnJlZ3MsIGludCBwaWQpOwogZXh0ZXJuIGludCBuZXdfbW0oaW50IGZyb20pOwogZXh0ZXJu IHZvaWQgc3RhcnRfdXNlcnNwYWNlKGludCBjcHUpOworZXh0ZXJuIHZvaWQgZ2V0X3NrYXNf ZmF1bHRpbmZvKGludCBwaWQsIHN0cnVjdCBmYXVsdGluZm8gKiBmaSk7CiAKICNlbmRpZgog CmRpZmYgLXB1TiBhcmNoL3VtL2tlcm5lbC90dC90cmFjZXIuY35mYXVsdGluZm8tcmV3b3Jr IGFyY2gvdW0va2VybmVsL3R0L3RyYWNlci5jCi0tLSBsaW51eC0yLjYuMTAtcmMyLW1tNC9h cmNoL3VtL2tlcm5lbC90dC90cmFjZXIuY35mYXVsdGluZm8tcmV3b3JrCTIwMDQtMTItMTcg MjE6NTY6NDUuODgyNDU2Njc2ICswMTAwCisrKyBsaW51eC0yLjYuMTAtcmMyLW1tNC1yb290 L2FyY2gvdW0va2VybmVsL3R0L3RyYWNlci5jCTIwMDQtMTItMTcgMjI6MDY6NTQuOTA2OTI5 NTMyICswMTAwCkBAIC05MSw4ICs5MSwxMCBAQCB2b2lkIHRyYWNlcl9wYW5pYyhjaGFyICpm b3JtYXQsIC4uLikKIAogc3RhdGljIHZvaWQgdHJhY2VyX3NlZ3YoaW50IHNpZywgc3RydWN0 IHNpZ2NvbnRleHQgc2MpCiB7CisJc3RydWN0IGZhdWx0aW5mbyBmaTsKKwlHRVRfRkFVTFRJ TkZPX0ZST01fU0MoZmksICZzYyk7CiAJcHJpbnRmKCJUcmFjaW5nIHRocmVhZCBzZWdmYXVs dCBhdCBhZGRyZXNzIDB4JWx4LCBpcCAweCVseFxuIiwKLQkgICAgICAgU0NfRkFVTFRfQURE Uigmc2MpLCBTQ19JUCgmc2MpKTsKKwkgICAgICAgRkFVTFRfQUREUkVTUyhmaSksIFNDX0lQ KCZzYykpOwogCXdoaWxlKDEpCiAJCXBhdXNlKCk7CiB9Cl8KAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== --------------080502070802000705010802-- ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel