From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Antipov Newsgroups: gmane.emacs.devel Subject: Old topic(s) again [was: Re: Aligned blocks management: obsolete?] Date: Wed, 04 Jul 2012 12:39:07 +0400 Message-ID: <4FF4012B.7060003@yandex.ru> References: <4EE5B744.1090103@yandex.ru> <4EE60A93.9060401@yandex.ru> <4EE6478C.1020701@cs.ucla.edu> <4FE0ADFC.9090504@yandex.ru> <4FE171EC.8000503@yandex.ru> <4FE1D61E.8010204@yandex.ru> <83vcildi46.fsf@gnu.org> <4FE2A2A2.5080904@yandex.ru> <83fw9od3ws.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------020102050406020304090708" X-Trace: dough.gmane.org 1341391027 25052 80.91.229.3 (4 Jul 2012 08:37:07 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 4 Jul 2012 08:37:07 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Jul 04 10:37:07 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1SmL57-0004BB-Mx for ged-emacs-devel@m.gmane.org; Wed, 04 Jul 2012 10:37:06 +0200 Original-Received: from localhost ([::1]:39940 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SmL56-0007BO-Lp for ged-emacs-devel@m.gmane.org; Wed, 04 Jul 2012 04:37:04 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:40117) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SmL50-0007BH-Ad for emacs-devel@gnu.org; Wed, 04 Jul 2012 04:37:00 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SmL4t-0006U5-0n for emacs-devel@gnu.org; Wed, 04 Jul 2012 04:36:57 -0400 Original-Received: from forward19.mail.yandex.net ([95.108.253.144]:37741) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SmL4s-0006Tj-8c for emacs-devel@gnu.org; Wed, 04 Jul 2012 04:36:50 -0400 Original-Received: from smtp17.mail.yandex.net (smtp17.mail.yandex.net [95.108.252.17]) by forward19.mail.yandex.net (Yandex) with ESMTP id 391551122A4F for ; Wed, 4 Jul 2012 12:36:48 +0400 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1341391008; bh=sKcPKBES1EQgO5RiS0gqtj/K7/wZMzMFi4ejS7lfzVo=; h=Message-ID:Date:From:MIME-Version:To:Subject:References: In-Reply-To:Content-Type; b=DMDF/2V2bgnCULW663pQ3GerSJD8CoBb9VnePGFx/e5LqBX5NuU0vpjWMGxE4hMHc iB9aqsfVE5Q37DDAN77rMAYWNsYGvys9miKhsNqAtJJGmAdQMT6TwsyGyxN1YBeLaw AkAk7gHzYXErgvAGg3uM8W+Wa16Kjo9cOg5RHMXc= Original-Received: from smtp17.mail.yandex.net (localhost [127.0.0.1]) by smtp17.mail.yandex.net (Yandex) with ESMTP id 164F11900197 for ; Wed, 4 Jul 2012 12:36:48 +0400 (MSK) Original-Received: from 221.gprs.mts.ru (221.gprs.mts.ru [213.87.135.221]) by smtp17.mail.yandex.net (nwsmtp/Yandex) with ESMTP id aj4agfl5-ak4anVMs; Wed, 4 Jul 2012 12:36:46 +0400 X-Yandex-Rcpt-Suid: emacs-devel@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1341391008; bh=sKcPKBES1EQgO5RiS0gqtj/K7/wZMzMFi4ejS7lfzVo=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:Subject: References:In-Reply-To:Content-Type; b=A1qtYh68NtKHCZN9wXqUg9Gx5c5SJ9jN5DttziQlSa0IwvTgZiHOMkEZKPw0Jo6K+ UMp0V4QW0MnMma2I3AbXT+z8Rx8Vgp8kJAy8TXlSI3Prj6EissnFVfxMCk+Oz8R8UQ +l2XdU0ZOG0pKNhcWLOHuXWT2nk0RY/a7Cu5byQ0= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120614 Thunderbird/13.0.1 In-Reply-To: <83fw9od3ws.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 95.108.253.144 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:151409 Archived-At: This is a multi-part message in MIME format. --------------020102050406020304090708 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Likewise. Dmitry --------------020102050406020304090708 Content-Type: text/plain; charset=UTF-8; name="lisp_alloc.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="lisp_alloc.patch" PT09IG1vZGlmaWVkIGZpbGUgJ2NvbmZpZ3VyZS5pbicKLS0tIGNvbmZpZ3VyZS5pbgkyMDEy LTA3LTA0IDA4OjA3OjI2ICswMDAwCisrKyBjb25maWd1cmUuaW4JMjAxMi0wNy0wNCAwODoy ODozMyArMDAwMApAQCAtMjcwNCwxMiArMjcwNCwxMDYgQEAKIF9fZnBlbmRpbmcgc3Ryc2ln bmFsIHNldGl0aW1lciBcCiBzZW5kdG8gcmVjdmZyb20gZ2V0c29ja25hbWUgZ2V0cGVlcm5h bWUgZ2V0aWZhZGRycyBmcmVlaWZhZGRycyBcCiBnYWlfc3RyZXJyb3IgbWtzdGVtcCBnZXRs aW5lIGdldGRlbGltIGZzeW5jIHN5bmMgXAotZGlmZnRpbWUgcG9zaXhfbWVtYWxpZ24gXAor ZGlmZnRpbWUgbWVtYWxpZ24gcG9zaXhfbWVtYWxpZ24gXAogZ2V0cHdlbnQgZW5kcHdlbnQg Z2V0Z3JlbnQgZW5kZ3JlbnQgXAogdG91Y2hsb2NrIFwKIHN0cmNhc2VjbXAgc3RybmNhc2Vj bXAgXAogY2ZtYWtlcmF3IGNmc2V0c3BlZWQgY29weXNpZ24gX19leGVjdXRhYmxlX3N0YXJ0 KQogCitkbmwgQ2hlY2sgd2hldGhlciBwb3NpeF9tZW1hbGlnbiBjYW4gYWxsb2NhdGUgYmxv Y2tzIGNvbnNlY3V0aXZlbHkuCitpZiB0ZXN0ICIkYWNfY3ZfZnVuY19wb3NpeF9tZW1hbGln biIgPSB5ZXM7IHRoZW4KKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgYmxvY2sgcGFkZGluZyBz aXplIHRvIHVzZSB3aXRoIHBvc2l4X21lbWFsaWduXSkKKyAgQUNfUlVOX0lGRUxTRShbQUNf TEFOR19TT1VSQ0UoW1sjaW5jbHVkZSA8c3RkbGliLmg+CitpbnQKK21haW4gKCkKK3sKKyAg aW50IGksIGJhZDsKKyAgdm9pZCAqcCwgKnByZXY7CisgIHNpemVfdCBwYWRzeiwgYmxrc3og PSAxMDI0OworCisgIGZvciAocGFkc3ogPSAwOyBwYWRzeiA8PSA2NDsgcGFkc3ogKz0gc2l6 ZW9mIChsb25nKSkKKyAgICB7CisgICAgICBiYWQgPSAwOworCisgICAgICAvKiBUZXN0IGFz a3MgZm9yIEJMS1NaIC0gUEFEU1ogYnl0ZXMgYWxpZ25lZCBhdCBCTEtTWiBib3VuZGFyeS4g ICovCisgICAgICBmb3IgKGkgPSAwLCBwcmV2ID0gTlVMTDsgaSA8IDE2OyBpKyspCisgICAg ICAgIHsKKyAgICAgICAgICBpZiAocG9zaXhfbWVtYWxpZ24gKCZwLCBibGtzeiwgYmxrc3og LSBwYWRzeikpCisgICAgICAgICAgICBiYWQrKzsKKyAgICAgICAgICBlbHNlIGlmIChwcmV2 ICYmIHAgLSBwcmV2ID4gYmxrc3opCisgICAgICAgICAgICBiYWQrKzsKKyAgICAgICAgICBw cmV2ID0gcDsKKyAgICAgICAgfQorCisgICAgICAvKiBaZXJvIG1lYW5zIHBvc2l4X21lbWFs aWduIGxvb2tzIGdvb2QgZW5vdWdoIHdpdGggdGhpcyBQQURTWi4gICovCisgICAgICBpZiAo IWJhZCkKKyAgICAgICAgcmV0dXJuIHBhZHN6OworICAgIH0KKworICAvKiBObyBzdWl0YWJs ZSBQQURTWiB3YXMgZm91bmQsIHBvc2l4X21lbWFsaWduIGlzbid0IGdvb2QgZW5vdWdoIGZv ciB1cy4gICovCisgIHJldHVybiAyNTU7Cit9XV0pXSwgZW1hY3NfY3ZfcG9zaXhfbWVtYWxp Z25fcGFkPTI1NSwgZW1hY3NfY3ZfcG9zaXhfbWVtYWxpZ25fcGFkPSQ/LAorICBlbWFjc19j dl9wb3NpeF9tZW1hbGlnbl9wYWQ9MjU1KQorICBpZiB0ZXN0ICRlbWFjc19jdl9wb3NpeF9t ZW1hbGlnbl9wYWQgLWxlIDY0OyB0aGVuCisgICAgICBBQ19NU0dfUkVTVUxUKCRlbWFjc19j dl9wb3NpeF9tZW1hbGlnbl9wYWQpCisgICAgICBBQ19ERUZJTkUoUE9TSVhfTUVNQUxJR05f V09SS1MsIDEsCisgICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBnb29kIGVub3Vn aCBgcG9zaXhfbWVtYWxpZ24nIGZ1bmN0aW9uLl0pCisgICAgICBBQ19ERUZJTkVfVU5RVU9U RUQoQkxPQ0tfUEFERElORywgJGVtYWNzX2N2X3Bvc2l4X21lbWFsaWduX3BhZCwKKyAgICAg ICAgW0Jsb2NrIHBhZGRpbmcgdXNlZCB0byBhbGxvY2F0ZSBhbGlnbmVkIGJsb2Nrcy5dKQor ICBlbHNlCisgICAgICBBQ19NU0dfUkVTVUxUKFtub3QgZGV0ZWN0ZWQsIHBvc2l4X21lbWFs aWduIHdpbGwgbm90IGJlIHVzZWRdKQorICBmaQorZmkKKworZG5sIElmIHBvc2l4X21lbWFs aWduIGlzbid0IGF2YWlsYWJsZSBvciB0ZW5kcyB0byBjcmVhdGUgaG9sZXMKK2RubCBiZXR3 ZWVuIGJsb2NrcywgY2hlY2sgd2hldGhlciBtZW1hbGlnbiBwZXJmb3JtcyBiZXR0ZXIuCitp ZiB0ZXN0ICIkZW1hY3NfY3ZfcG9zaXhfbWVtYWxpZ25fcGFkIiAtZ3QgNjQ7IHRoZW4KKyAg aWYgdGVzdCAiJGFjX2N2X2Z1bmNfbWVtYWxpZ24iID0geWVzOyB0aGVuCisgICAgQUNfTVNH X0NIRUNLSU5HKFtmb3IgYmxvY2sgcGFkZGluZyBzaXplIGZvciBtZW1hbGlnbl0pCisgICAg QUNfUlVOX0lGRUxTRShbQUNfTEFOR19TT1VSQ0UoW1sjaW5jbHVkZSA8bWFsbG9jLmg+Citp bnQKK21haW4gKCkKK3sKKyAgaW50IGksIGJhZDsKKyAgdm9pZCAqcCwgKnByZXY7CisgIHNp emVfdCBwYWRzeiwgYmxrc3ogPSAxMDI0OworCisgIGZvciAocGFkc3ogPSAwOyBwYWRzeiA8 PSA2NDsgcGFkc3ogKz0gc2l6ZW9mIChsb25nKSkKKyAgICB7CisgICAgICBiYWQgPSAwOwor CisgICAgICAvKiBUZXN0IGFza3MgZm9yIEJMS1NaIC0gUEFEU1ogYnl0ZXMgYWxpZ25lZCBh dCBCTEtTWiBib3VuZGFyeS4gICovCisgICAgICBmb3IgKGkgPSAwLCBwcmV2ID0gTlVMTDsg aSA8IDE2OyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICBwID0gbWVtYWxpZ24gKGJsa3N6 LCBibGtzeiAtIHBhZHN6KTsKKyAgICAgICAgICBpZiAoIXApCisgICAgICAgICAgICBiYWQr KzsKKyAgICAgICAgICBlbHNlIGlmIChwcmV2ICYmIHAgLSBwcmV2ID4gYmxrc3opCisgICAg ICAgICAgICBiYWQrKzsKKyAgICAgICAgICBwcmV2ID0gcDsKKyAgICAgICAgfQorICAKKyAg ICAgIC8qIFplcm8gbWVhbnMgbWVtYWxpZ24gbG9va3MgZ29vZCBlbm91Z2ggd2l0aCB0aGlz IFBBRFNaLiAgKi8KKyAgICAgIGlmICghYmFkKQorICAgICAgICByZXR1cm4gcGFkc3o7Cisg ICAgfQorCisgIC8qIE5vIHN1aXRhYmxlIFBBRFNaIHdhcyBmb3VuZCwgbWVtYWxpZ24gaXNu J3QgZ29vZCBlbm91Z2ggZm9yIHVzLiAgKi8KKyAgcmV0dXJuIDI1NTsKK31dXSldLCBlbWFj c19jdl9tZW1hbGlnbl9wYWQ9MjU1LCBlbWFjc19jdl9tZW1hbGlnbl9wYWQ9JD8sCisgICAg ZW1hY3NfY3ZfbWVtYWxpZ25fcGFkPTI1NSkKKyAgICBpZiB0ZXN0ICRlbWFjc19jdl9tZW1h bGlnbl9wYWQgLWxlIDY0OyB0aGVuCisgICAgICBBQ19NU0dfUkVTVUxUKCRlbWFjc19jdl9t ZW1hbGlnbl9wYWQpCisgICAgICBBQ19ERUZJTkUoTUVNQUxJR05fV09SS1MsIDEsCisgICAg ICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBnb29kIGVub3VnaCBgbWVtYWxpZ24nIGZ1 bmN0aW9uLl0pCisgICAgICBBQ19ERUZJTkVfVU5RVU9URUQoQkxPQ0tfUEFERElORywgJGVt YWNzX2N2X21lbWFsaWduX3BhZCwKKyAgICAgICAgW0Jsb2NrIHBhZGRpbmcgdXNlZCB0byBh bGxvY2F0ZSBhbGlnbmVkIGJsb2Nrcy5dKQorICAgIGVsc2UKKyAgICAgIEFDX01TR19SRVNV TFQoW25vdCBkZXRlY3RlZCwgbWVtYWxpZ24gd2lsbCBub3QgYmUgdXNlZF0pCisgICAgZmkK KyAgZmkKK2ZpCisKIGRubCBDYW5ub3QgdXNlIEFDX0NIRUNLX0ZVTkNTCiBBQ19DQUNIRV9D SEVDSyhbZm9yIF9fYnVpbHRpbl91bndpbmRfaW5pdF0sCiAJICAgICAgIGVtYWNzX2N2X2Z1 bmNfX19idWlsdGluX3Vud2luZF9pbml0LAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9hbGxv Yy5jJwotLS0gc3JjL2FsbG9jLmMJMjAxMi0wNy0wMyAxNjozNTo1MyArMDAwMAorKysgc3Jj L2FsbG9jLmMJMjAxMi0wNy0wNCAwODozMzo1MiArMDAwMApAQCAtMzA4LDkgKzMwOCw2IEBA CiAgIE1FTV9UWVBFX1ZFQ1RPUl9CTE9DSwogfTsKIAotc3RhdGljIHZvaWQgKmxpc3BfbWFs bG9jIChzaXplX3QsIGVudW0gbWVtX3R5cGUpOwotCi0KICNpZiBHQ19NQVJLX1NUQUNLIHx8 IGRlZmluZWQgR0NfTUFMTE9DX0NIRUNLCiAKICNpZiBHQ19NQVJLX1NUQUNLID09IEdDX1VT RV9HQ1BST1NfQ0hFQ0tfWk9NQklFUwpAQCAtMzkwLDcgKzM4Nyw2IEBACiAjZGVmaW5lIE1F TV9OSUwgJm1lbV96CiAKIHN0YXRpYyBzdHJ1Y3QgTGlzcF9WZWN0b3IgKmFsbG9jYXRlX3Zl Y3Rvcmxpa2UgKHB0cmRpZmZfdCk7Ci1zdGF0aWMgdm9pZCBsaXNwX2ZyZWUgKHZvaWQgKik7 CiBzdGF0aWMgdm9pZCBtYXJrX3N0YWNrICh2b2lkKTsKIHN0YXRpYyBpbnQgbGl2ZV92ZWN0 b3JfcCAoc3RydWN0IG1lbV9ub2RlICosIHZvaWQgKik7CiBzdGF0aWMgaW50IGxpdmVfYnVm ZmVyX3AgKHN0cnVjdCBtZW1fbm9kZSAqLCB2b2lkICopOwpAQCAtODg3LDE1ICs4ODMsMzMg QEAKICAgcmV0dXJuIFFuaWw7CiB9CiAKKyNpZiAhIFVTRV9MU0JfVEFHCisKKy8qIFVzZWQg dG8gY2F0Y2ggaW52YWxpZCBhZGRyZXNzIHdoZW4gZGVidWdnaW5nLiAgKi8KKwordm9pZCAq bGlzcF9tYWxsb2NfbG9zZXIgRVhURVJOQUxMWV9WSVNJQkxFOworCisvKiBOb256ZXJvIGlm IHRoZSBtZW1vcnkgYXQgQUREUiBjYW4gYmUKKyAgIGFkZHJlc3NlZCB0aHJ1IGEgTGlzcCBv YmplY3QncyBwb2ludGVyLiAgKi8KKworc3RhdGljIGlubGluZSBpbnQKK3ZlcmlmeV9hZGRy ZXNzIChjaGFyICphZGRyKQoreworICBMaXNwX09iamVjdCBvYmo7CisKKyAgWFNFVENPTlMg KG9iaiwgYWRkcik7CisgIGlmICgoY2hhciAqKSBYQ09OUyAob2JqKSA9PSBhZGRyKQorICAg IHJldHVybiAxOworICBsaXNwX21hbGxvY19sb3NlciA9IGFkZHI7CisgIHJldHVybiAwOwor fQorCisjZW5kaWYgLyogbm90IFVTRV9MU0JfVEFHICovCiAKIC8qIExpa2UgbWFsbG9jIGJ1 dCB1c2VkIGZvciBhbGxvY2F0aW5nIExpc3AgZGF0YS4gIE5CWVRFUyBpcyB0aGUKICAgIG51 bWJlciBvZiBieXRlcyB0byBhbGxvY2F0ZSwgVFlQRSBkZXNjcmliZXMgdGhlIGludGVuZGVk IHVzZSBvZiB0aGUKICAgIGFsbG9jYXRlZCBtZW1vcnkgYmxvY2sgKGZvciBzdHJpbmdzLCBm b3IgY29uc2VzLCAuLi4pLiAgKi8KIAotI2lmICEgVVNFX0xTQl9UQUcKLXZvaWQgKmxpc3Bf bWFsbG9jX2xvc2VyIEVYVEVSTkFMTFlfVklTSUJMRTsKLSNlbmRpZgotCiBzdGF0aWMgdm9p ZCAqCiBsaXNwX21hbGxvYyAoc2l6ZV90IG5ieXRlcywgZW51bSBtZW1fdHlwZSB0eXBlKQog ewpAQCAtOTA3LDI0ICs5MjEsMzMgQEAKICAgYWxsb2NhdGVkX21lbV90eXBlID0gdHlwZTsK ICNlbmRpZgogCisjaWZkZWYgRE9VR19MRUFfTUFMTE9DCisgIC8qIFByZXZlbnQgbW1hcCdp bmcgdGhlIGNodW5rLiAgTGlzcCBkYXRhIG1heSBub3QgYmUgbW1hcCdlZAorICAgICBiZWNh dXNlIG1hcHBlZCByZWdpb24gY29udGVudHMgYXJlIG5vdCBwcmVzZXJ2ZWQgaW4KKyAgICAg YSBkdW1wZWQgRW1hY3MuICAqLworICBtYWxsb3B0IChNX01NQVBfTUFYLCAwKTsKKyNlbmRp ZgogICB2YWwgPSAodm9pZCAqKSBtYWxsb2MgKG5ieXRlcyk7CisjaWZkZWYgRE9VR19MRUFf TUFMTE9DCisgIC8qIEJhY2sgdG8gYSByZWFzb25hYmxlIG1heGltdW0gb2YgbW1hcCdlZCBh cmVhcy4gICovCisgIG1hbGxvcHQgKE1fTU1BUF9NQVgsIE1NQVBfTUFYX0FSRUFTKTsKKyNl bmRpZgorCisgIGlmICghdmFsICYmIG5ieXRlcykKKyAgICB7CisgICAgICBNQUxMT0NfVU5C TE9DS19JTlBVVDsKKyAgICAgIG1lbW9yeV9mdWxsIChuYnl0ZXMpOworICAgIH0KIAogI2lm ICEgVVNFX0xTQl9UQUcKLSAgLyogSWYgdGhlIG1lbW9yeSBqdXN0IGFsbG9jYXRlZCBjYW5u b3QgYmUgYWRkcmVzc2VkIHRocnUgYSBMaXNwCi0gICAgIG9iamVjdCdzIHBvaW50ZXIsIGFu ZCBpdCBuZWVkcyB0byBiZSwKLSAgICAgdGhhdCdzIGVxdWl2YWxlbnQgdG8gcnVubmluZyBv dXQgb2YgbWVtb3J5LiAgKi8KLSAgaWYgKHZhbCAmJiB0eXBlICE9IE1FTV9UWVBFX05PTl9M SVNQKQorICBpZiAodmFsICYmIHR5cGUgIT0gTUVNX1RZUEVfTk9OX0xJU1AKKyAgICAgICYm ICF2ZXJpZnlfYWRkcmVzcyAoKGNoYXIgKikgdmFsICsgbmJ5dGVzIC0gMSkpCiAgICAgewot ICAgICAgTGlzcF9PYmplY3QgdGVtOwotICAgICAgWFNFVENPTlMgKHRlbSwgKGNoYXIgKikg dmFsICsgbmJ5dGVzIC0gMSk7Ci0gICAgICBpZiAoKGNoYXIgKikgWENPTlMgKHRlbSkgIT0g KGNoYXIgKikgdmFsICsgbmJ5dGVzIC0gMSkKLQl7Ci0JICBsaXNwX21hbGxvY19sb3NlciA9 IHZhbDsKLQkgIGZyZWUgKHZhbCk7Ci0JICB2YWwgPSAwOwotCX0KKyAgICAgIGZyZWUgKHZh bCk7CisgICAgICBNQUxMT0NfVU5CTE9DS19JTlBVVDsKKyAgICAgIG1lbW9yeV9mdWxsIChT SVpFX01BWCk7CiAgICAgfQotI2VuZGlmCisjZW5kaWYgLyogbm90IFVTRV9MU0JfVEFHICov CiAKICNpZiBHQ19NQVJLX1NUQUNLICYmICFkZWZpbmVkIEdDX01BTExPQ19DSEVDSwogICBp ZiAodmFsICYmIHR5cGUgIT0gTUVNX1RZUEVfTk9OX0xJU1ApCkBAIC05MzIsOCArOTU1LDYg QEAKICNlbmRpZgogCiAgIE1BTExPQ19VTkJMT0NLX0lOUFVUOwotICBpZiAoIXZhbCAmJiBu Ynl0ZXMpCi0gICAgbWVtb3J5X2Z1bGwgKG5ieXRlcyk7CiAgIHJldHVybiB2YWw7CiB9CiAK QEAgLTk1MSwzMCArOTcyLDMzIEBACiAgIE1BTExPQ19VTkJMT0NLX0lOUFVUOwogfQogCi0v KioqKiogIEFsbG9jYXRpb24gb2YgYWxpZ25lZCBibG9ja3Mgb2YgbWVtb3J5IHRvIHN0b3Jl IExpc3AgZGF0YS4gICoqKioqLwotCi0vKiBUaGUgZW50cnkgcG9pbnQgaXMgbGlzcF9hbGln bl9tYWxsb2Mgd2hpY2ggcmV0dXJucyBibG9ja3Mgb2YgYXQgbW9zdAotICAgQkxPQ0tfQllU RVMgYW5kIGd1YXJhbnRlZXMgdGhleSBhcmUgYWxpZ25lZCBvbiBhIEJMT0NLX0FMSUdOIGJv dW5kYXJ5LiAgKi8KLQotI2lmIGRlZmluZWQgKEhBVkVfUE9TSVhfTUVNQUxJR04pICYmIGRl ZmluZWQgKFNZU1RFTV9NQUxMT0MpCi0jZGVmaW5lIFVTRV9QT1NJWF9NRU1BTElHTiAxCi0j ZW5kaWYKKy8qIEFsbG9jYXRpb24gb2YgYWxpZ25lZCBibG9ja3MgaXMgc29tZXdoYXQgdHJp Y2t5LiAgSWYgcG9zaXhfbWVtYWxpZ24gaXMKKyAgIGF2YWlsYWJsZSwgY29uZmlndXJlIHRy aWVzIHRvIGRldGVybWluZSB0aGUgYmxvY2sgcGFkZGluZyB2YWx1ZSB0byBoZWxwCisgICBw b3NpeF9tZW1hbGlnbiBhbGxvY2F0ZSBibG9ja3Mgb2YgKDEwMjQgLSBwYWRkaW5nKSBieXRl cyB3aXRob3V0IGhvbGVzCisgICBiZXR3ZWVuIHRoZW0uICBJZiBzdWl0YWJsZSBwYWRkaW5n IGlzIGZvdW5kLCB3ZSBkZWZpbmUgUE9TSVhfTUVNQUxJR05fV09SS1MsCisgICBCTE9DS19Q QURESU5HIHRvIHBhZGRpbmcgdmFsdWUgYW5kIHVzZSBwb3NpeF9tZW1hbGlnbiBhbmQgZnJl ZS4gIFNvbWUKKyAgIHN5c3RlbXMgbGFja3MgcG9zaXhfbWVtYWxpZ24sIGJ1dCBwcm92aWRl cyBtZW1hbGlnbjsgZm9yIHN1Y2ggYSBzeXN0ZW0sCisgICBjb25maWd1cmUgcGVyZm9ybXMg c2ltaWxhciBjaGVjayBmb3IgbWVtYWxpZ24uICBJZiBzdWl0YWJsZSBwYWRkaW5nIGlzCisg ICBmb3VuZCwgd2UgZGVmaW5lIE1FTUFMSUdOX1dPUktTLCBCTE9DS19QQURESU5HIHRvIHBh ZGRpbmcgdmFsdWUgYW5kIHVzZQorICAgbWVtYWxpZ24gYW5kIGZyZWUuICBJZiBub25lIG9m IHRoZSBhYm92ZSwgd2UgdXNlIGludGVybmFsX2FsaWduX2FsbG9jIGFuZAorICAgaW50ZXJu YWxfYWxpZ25fZnJlZS4gICovCiAKIC8qIEJMT0NLX0FMSUdOIGhhcyB0byBiZSBhIHBvd2Vy IG9mIDIuICAqLworCiAjZGVmaW5lIEJMT0NLX0FMSUdOICgxIDw8IDEwKQogCi0vKiBQYWRk aW5nIHRvIGxlYXZlIGF0IHRoZSBlbmQgb2YgYSBtYWxsb2MnZCBibG9jay4gIFRoaXMgaXMg dG8gZ2l2ZQotICAgbWFsbG9jIGEgY2hhbmNlIHRvIG1pbmltaXplIHRoZSBhbW91bnQgb2Yg bWVtb3J5IHdhc3RlZCB0byBhbGlnbm1lbnQuCi0gICBJdCBzaG91bGQgYmUgdHVuZWQgdG8g dGhlIHBhcnRpY3VsYXIgbWFsbG9jIGxpYnJhcnkgdXNlZC4KLSAgIE9uIGdsaWJjLTIuMy4y LCBtYWxsb2MgbmV2ZXIgdHJpZXMgdG8gYWxpZ24sIHNvIGEgcGFkZGluZyBvZiAwIGlzIGJl c3QuCi0gICBwb3NpeF9tZW1hbGlnbiBvbiB0aGUgb3RoZXIgaGFuZCB3b3VsZCBpZGVhbGx5 IHByZWZlciBhIHZhbHVlIG9mIDQKLSAgIGJlY2F1c2Ugb3RoZXJ3aXNlLCB0aGVyZSdzIDEw MjAgYnl0ZXMgd2FzdGVkIGJldHdlZW4gZWFjaCBhYmxvY2tzLgotICAgSW4gRW1hY3MsIHRl c3Rpbmcgc2hvd3MgdGhhdCB0aG9zZSAxMDIwIGNhbiBtb3N0IG9mIHRoZSB0aW1lIGJlCi0g ICBlZmZpY2llbnRseSB1c2VkIGJ5IG1hbGxvYyB0byBwbGFjZSBvdGhlciBvYmplY3RzLCBz byBhIHZhbHVlIG9mIDAgY2FuCi0gICBzdGlsbCBwcmVmZXJhYmxlIHVubGVzcyB5b3UgaGF2 ZSBhIGxvdCBvZiBhbGlnbmVkIGJsb2NrcyBhbmQgdmlydHVhbGx5Ci0gICBub3RoaW5nIGVs c2UuICAqLworI2lmICEgUE9TSVhfTUVNQUxJR05fV09SS1MgJiYgISBNRU1BTElHTl9XT1JL UworCisvKiBIZXJlIHdlIGFzc3VtZSB0aGF0IG1hbGxvYyBpbXBsZW1lbnRhdGlvbiBoYXMK KyAgIG5vdGhpbmcgYWJvdXQgYWxpZ25lZCBibG9ja3MgbWFuYWdlbWVudC4gICovCisKKy8q IFBhZGRpbmcgdG8gbGVhdmUgYXQgdGhlIGVuZCBvZiBhIG1hbGxvYydkIGJsb2NrLiAgKi8K KwogI2RlZmluZSBCTE9DS19QQURESU5HIDAKLSNkZWZpbmUgQkxPQ0tfQllURVMgXAorCisv KiBNYXhpbXVtIGFtb3VudCBvZiBtZW1vcnkgaW4gYWxpZ25lZCBibG9jay4gICovCisKKyNk ZWZpbmUgQkxPQ0tfQllURVMJCQkJCQlcCiAgIChCTE9DS19BTElHTiAtIHNpemVvZiAoc3Ry dWN0IGFibG9ja3MgKikgLSBCTE9DS19QQURESU5HKQogCiAvKiBJbnRlcm5hbCBkYXRhIHN0 cnVjdHVyZXMgYW5kIGNvbnN0YW50cy4gICovCkBAIC05ODIsNiArMTAwNiw3IEBACiAjZGVm aW5lIEFCTE9DS1NfU0laRSAxNgogCiAvKiBBbiBhbGlnbmVkIGJsb2NrIG9mIG1lbW9yeS4g ICovCisKIHN0cnVjdCBhYmxvY2sKIHsKICAgdW5pb24KQEAgLTEwMDcsMTIgKzEwMzIsMTQg QEAKIH07CiAKIC8qIEEgYnVuY2ggb2YgY29uc2VjdXRpdmUgYWxpZ25lZCBibG9ja3MuICAq LworCiBzdHJ1Y3QgYWJsb2NrcwogewogICBzdHJ1Y3QgYWJsb2NrIGJsb2Nrc1tBQkxPQ0tT X1NJWkVdOwogfTsKIAotLyogU2l6ZSBvZiB0aGUgYmxvY2sgcmVxdWVzdGVkIGZyb20gbWFs bG9jIG9yIHBvc2l4X21lbWFsaWduLiAgKi8KKy8qIFNpemUgb2YgdGhlIGJsb2NrIHJlcXVl c3RlZCBmcm9tIHVuZGVybHlpbmcgbWFsbG9jLiAgKi8KKwogI2RlZmluZSBBQkxPQ0tTX0JZ VEVTIChzaXplb2YgKHN0cnVjdCBhYmxvY2tzKSAtIEJMT0NLX1BBRERJTkcpCiAKICNkZWZp bmUgQUJMT0NLX0FCQVNFKGJsb2NrKSBcCkBAIC0xMDIxLDk0ICsxMDQ4LDQzIEBACiAgICA6 IChibG9jayktPmFiYXNlKQogCiAvKiBWaXJ0dWFsIGBidXN5JyBmaWVsZC4gICovCisKICNk ZWZpbmUgQUJMT0NLU19CVVNZKGFiYXNlKSAoKGFiYXNlKS0+YmxvY2tzWzBdLmFiYXNlKQog CiAvKiBQb2ludGVyIHRvIHRoZSAobm90IG5lY2Vzc2FyaWx5IGFsaWduZWQpIG1hbGxvYyBi bG9jay4gICovCi0jaWZkZWYgVVNFX1BPU0lYX01FTUFMSUdOCi0jZGVmaW5lIEFCTE9DS1Nf QkFTRShhYmFzZSkgKGFiYXNlKQotI2Vsc2UKLSNkZWZpbmUgQUJMT0NLU19CQVNFKGFiYXNl KSBcCisKKyNkZWZpbmUgQUJMT0NLU19CQVNFKGFiYXNlKQkJCQkJCVwKICAgKDEgJiAoaW50 cHRyX3QpIEFCTE9DS1NfQlVTWSAoYWJhc2UpID8gYWJhc2UgOiAoKHZvaWQqKilhYmFzZSlb LTFdKQotI2VuZGlmCiAKIC8qIFRoZSBsaXN0IG9mIGZyZWUgYWJsb2NrLiAgICovCisKIHN0 YXRpYyBzdHJ1Y3QgYWJsb2NrICpmcmVlX2FibG9jazsKIAotLyogQWxsb2NhdGUgYW4gYWxp Z25lZCBibG9jayBvZiBuYnl0ZXMuCi0gICBBbGlnbm1lbnQgaXMgb24gYSBtdWx0aXBsZSBv ZiBCTE9DS19BTElHTiBhbmQgYG5ieXRlcycgaGFzIHRvIGJlCi0gICBzbWFsbGVyIG9yIGVx dWFsIHRvIEJMT0NLX0JZVEVTLiAgKi8KKy8qIEFsbG9jYXRlIGFuIGFsaWduZWQgYmxvY2sg b2YgTkJZVEVTLiAgKi8KKwogc3RhdGljIHZvaWQgKgotbGlzcF9hbGlnbl9tYWxsb2MgKHNp emVfdCBuYnl0ZXMsIGVudW0gbWVtX3R5cGUgdHlwZSkKK2ludGVybmFsX2FsaWduX2FsbG9j IChzaXplX3QgbmJ5dGVzKQogewogICB2b2lkICpiYXNlLCAqdmFsOwogICBzdHJ1Y3QgYWJs b2NrcyAqYWJhc2U7CiAKICAgZWFzc2VydCAobmJ5dGVzIDw9IEJMT0NLX0JZVEVTKTsKIAot ICBNQUxMT0NfQkxPQ0tfSU5QVVQ7Ci0KLSNpZmRlZiBHQ19NQUxMT0NfQ0hFQ0sKLSAgYWxs b2NhdGVkX21lbV90eXBlID0gdHlwZTsKLSNlbmRpZgotCiAgIGlmICghZnJlZV9hYmxvY2sp CiAgICAgewogICAgICAgaW50IGk7CiAgICAgICBpbnRwdHJfdCBhbGlnbmVkOyAvKiBpbnQg Z2V0cyB3YXJuaW5nIGNhc3RpbmcgdG8gNjQtYml0IHBvaW50ZXIuICAqLwogCi0jaWZkZWYg RE9VR19MRUFfTUFMTE9DCi0gICAgICAvKiBQcmV2ZW50IG1tYXAnaW5nIHRoZSBjaHVuay4g IExpc3AgZGF0YSBtYXkgbm90IGJlIG1tYXAnZWQKLQkgYmVjYXVzZSBtYXBwZWQgcmVnaW9u IGNvbnRlbnRzIGFyZSBub3QgcHJlc2VydmVkIGluCi0JIGEgZHVtcGVkIEVtYWNzLiAgKi8K LSAgICAgIG1hbGxvcHQgKE1fTU1BUF9NQVgsIDApOwotI2VuZGlmCi0KLSNpZmRlZiBVU0Vf UE9TSVhfTUVNQUxJR04KLSAgICAgIHsKLQlpbnQgZXJyID0gcG9zaXhfbWVtYWxpZ24gKCZi YXNlLCBCTE9DS19BTElHTiwgQUJMT0NLU19CWVRFUyk7Ci0JaWYgKGVycikKLQkgIGJhc2Ug PSBOVUxMOwotCWFiYXNlID0gYmFzZTsKLSAgICAgIH0KLSNlbHNlCiAgICAgICBiYXNlID0g bWFsbG9jIChBQkxPQ0tTX0JZVEVTKTsKICAgICAgIGFiYXNlID0gQUxJR04gKGJhc2UsIEJM T0NLX0FMSUdOKTsKLSNlbmRpZgogCi0gICAgICBpZiAoYmFzZSA9PSAwKQotCXsKLQkgIE1B TExPQ19VTkJMT0NLX0lOUFVUOwotCSAgbWVtb3J5X2Z1bGwgKEFCTE9DS1NfQllURVMpOwot CX0KKyAgICAgIGlmIChiYXNlID09IE5VTEwpCisJcmV0dXJuIGJhc2U7CiAKICAgICAgIGFs aWduZWQgPSAoYmFzZSA9PSBhYmFzZSk7CiAgICAgICBpZiAoIWFsaWduZWQpCiAJKCh2b2lk KiopYWJhc2UpWy0xXSA9IGJhc2U7CiAKLSNpZmRlZiBET1VHX0xFQV9NQUxMT0MKLSAgICAg IC8qIEJhY2sgdG8gYSByZWFzb25hYmxlIG1heGltdW0gb2YgbW1hcCdlZCBhcmVhcy4gICov Ci0gICAgICBtYWxsb3B0IChNX01NQVBfTUFYLCBNTUFQX01BWF9BUkVBUyk7Ci0jZW5kaWYK LQotI2lmICEgVVNFX0xTQl9UQUcKLSAgICAgIC8qIElmIHRoZSBtZW1vcnkganVzdCBhbGxv Y2F0ZWQgY2Fubm90IGJlIGFkZHJlc3NlZCB0aHJ1IGEgTGlzcAotCSBvYmplY3QncyBwb2lu dGVyLCBhbmQgaXQgbmVlZHMgdG8gYmUsIHRoYXQncyBlcXVpdmFsZW50IHRvCi0JIHJ1bm5p bmcgb3V0IG9mIG1lbW9yeS4gICovCi0gICAgICBpZiAodHlwZSAhPSBNRU1fVFlQRV9OT05f TElTUCkKLQl7Ci0JICBMaXNwX09iamVjdCB0ZW07Ci0JICBjaGFyICplbmQgPSAoY2hhciAq KSBiYXNlICsgQUJMT0NLU19CWVRFUyAtIDE7Ci0JICBYU0VUQ09OUyAodGVtLCBlbmQpOwot CSAgaWYgKChjaGFyICopIFhDT05TICh0ZW0pICE9IGVuZCkKLQkgICAgewotCSAgICAgIGxp c3BfbWFsbG9jX2xvc2VyID0gYmFzZTsKLQkgICAgICBmcmVlIChiYXNlKTsKLQkgICAgICBN QUxMT0NfVU5CTE9DS19JTlBVVDsKLQkgICAgICBtZW1vcnlfZnVsbCAoU0laRV9NQVgpOwot CSAgICB9Ci0JfQotI2VuZGlmCi0KICAgICAgIC8qIEluaXRpYWxpemUgdGhlIGJsb2NrcyBh bmQgcHV0IHRoZW0gb24gdGhlIGZyZWUgbGlzdC4KIAkgSWYgYGJhc2UnIHdhcyBub3QgcHJv cGVybHkgYWxpZ25lZCwgd2UgY2FuJ3QgdXNlIHRoZSBsYXN0IGJsb2NrLiAgKi8KICAgICAg IGZvciAoaSA9IDA7IGkgPCAoYWxpZ25lZCA/IEFCTE9DS1NfU0laRSA6IEFCTE9DS1NfU0la RSAtIDEpOyBpKyspCkBAIC0xMTMyLDI3ICsxMTA4LDE1IEBACiAgIHZhbCA9IGZyZWVfYWJs b2NrOwogICBmcmVlX2FibG9jayA9IGZyZWVfYWJsb2NrLT54Lm5leHRfZnJlZTsKIAotI2lm IEdDX01BUktfU1RBQ0sgJiYgIWRlZmluZWQgR0NfTUFMTE9DX0NIRUNLCi0gIGlmICh0eXBl ICE9IE1FTV9UWVBFX05PTl9MSVNQKQotICAgIG1lbV9pbnNlcnQgKHZhbCwgKGNoYXIgKikg dmFsICsgbmJ5dGVzLCB0eXBlKTsKLSNlbmRpZgotCi0gIE1BTExPQ19VTkJMT0NLX0lOUFVU OwotCi0gIGVhc3NlcnQgKDAgPT0gKCh1aW50cHRyX3QpIHZhbCkgJSBCTE9DS19BTElHTik7 CiAgIHJldHVybiB2YWw7CiB9CiAKIHN0YXRpYyB2b2lkCi1saXNwX2FsaWduX2ZyZWUgKHZv aWQgKmJsb2NrKQoraW50ZXJuYWxfYWxpZ25fZnJlZSAodm9pZCAqYmxvY2spCiB7CiAgIHN0 cnVjdCBhYmxvY2sgKmFibG9jayA9IGJsb2NrOwogICBzdHJ1Y3QgYWJsb2NrcyAqYWJhc2Ug PSBBQkxPQ0tfQUJBU0UgKGFibG9jayk7CiAKLSAgTUFMTE9DX0JMT0NLX0lOUFVUOwotI2lm IEdDX01BUktfU1RBQ0sgJiYgIWRlZmluZWQgR0NfTUFMTE9DX0NIRUNLCi0gIG1lbV9kZWxl dGUgKG1lbV9maW5kIChibG9jaykpOwotI2VuZGlmCiAgIC8qIFB1dCBvbiBmcmVlIGxpc3Qu ICAqLwogICBhYmxvY2stPngubmV4dF9mcmVlID0gZnJlZV9hYmxvY2s7CiAgIGZyZWVfYWJs b2NrID0gYWJsb2NrOwpAQCAtMTE3OCwxMSArMTE0MiwxMDMgQEAKIAl9CiAgICAgICBlYXNz ZXJ0ICgoYWxpZ25lZCAmIDEpID09IGFsaWduZWQpOwogICAgICAgZWFzc2VydCAoaSA9PSAo YWxpZ25lZCA/IEFCTE9DS1NfU0laRSA6IEFCTE9DS1NfU0laRSAtIDEpKTsKLSNpZmRlZiBV U0VfUE9TSVhfTUVNQUxJR04KLSAgICAgIGVhc3NlcnQgKCh1aW50cHRyX3QpIEFCTE9DS1Nf QkFTRSAoYWJhc2UpICUgQkxPQ0tfQUxJR04gPT0gMCk7Ci0jZW5kaWYKICAgICAgIGZyZWUg KEFCTE9DS1NfQkFTRSAoYWJhc2UpKTsKICAgICB9Cit9CisKKyNlbHNlIC8qICEgUE9TSVhf TUVNQUxJR05fV09SS1MgJiYgISBNRU1BTElHTl9XT1JLUyAqLworCisvKiBIZXJlIHdlIGFz c3VtZSB0aGF0IG1hbGxvYyBpbXBsZW1lbnRhdGlvbiBoYXMgZWl0aGVyIHBvc2l4X21lbWFs aWduIG9yCisgICBtZW1hbGlnbiwgYW5kIHN1aXRhYmxlIEJMT0NLX1BBRERJTkcgdmFsdWUg d2FzIGRldGVjdGVkIGJ5IGNvbmZpZ3VyZS4gICovCisKKyNpZm5kZWYgQkxPQ0tfUEFERElO RworI2Vycm9yICJ1bmtub3duIEJMT0NLX1BBRERJTkciCisjZW5kaWYKKworLyogTWF4aW11 bSBhbW91bnQgb2YgbWVtb3J5IGluIGFsaWduZWQgYmxvY2suICAqLworCisjZGVmaW5lIEJM T0NLX0JZVEVTIChCTE9DS19BTElHTiAtIEJMT0NLX1BBRERJTkcpCisKKyNlbmRpZiAvKiAh IFBPU0lYX01FTUFMSUdOX1dPUktTICYmICEgTUVNQUxJR05fV09SS1MgKi8KKworLyogTGlr ZSBsaXNwX21hbGxvYywgYnV0IGFsbG9jYXRlcyBhbGlnbmVkIGJsb2NrIG9mIGF0CisgICBt b3N0IEJMT0NLX0JZVEVTIGFsaWduZWQgb24gYSBCTE9DS19BTElHTiBib3VuZGFyeS4gICov CisKK3N0YXRpYyB2b2lkICoKK2xpc3BfYWxpZ25fbWFsbG9jIChzaXplX3QgbmJ5dGVzLCBl bnVtIG1lbV90eXBlIHR5cGUpCit7CisgIHZvaWQgKnZhbDsKKworICBlYXNzZXJ0IChuYnl0 ZXMgPD0gQkxPQ0tfQllURVMpOworCisgIE1BTExPQ19CTE9DS19JTlBVVDsKKworI2lmZGVm IEdDX01BTExPQ19DSEVDSworICBhbGxvY2F0ZWRfbWVtX3R5cGUgPSB0eXBlOworI2VuZGlm CisKKyNpZmRlZiBET1VHX0xFQV9NQUxMT0MKKyAgLyogUHJldmVudCBtbWFwJ2luZyB0aGUg Y2h1bmsuICBMaXNwIGRhdGEgbWF5IG5vdCBiZSBtbWFwJ2VkCisgICAgIGJlY2F1c2UgbWFw cGVkIHJlZ2lvbiBjb250ZW50cyBhcmUgbm90IHByZXNlcnZlZCBpbgorICAgICBhIGR1bXBl ZCBFbWFjcy4gICovCisgIG1hbGxvcHQgKE1fTU1BUF9NQVgsIDApOworI2VuZGlmCisKKyNp ZmRlZiBQT1NJWF9NRU1BTElHTl9XT1JLUworICBpZiAocG9zaXhfbWVtYWxpZ24gKCZ2YWws IEJMT0NLX0FMSUdOLCBuYnl0ZXMpKQorICAgIHZhbCA9IE5VTEw7CisjZWxpZiBNRU1BTElH Tl9XT1JLUworICB2YWwgPSBtZW1hbGlnbiAoQkxPQ0tfQUxJR04sIG5ieXRlcyk7CisjZWxz ZQorICB2YWwgPSBpbnRlcm5hbF9hbGlnbl9hbGxvYyAobmJ5dGVzKTsKKyNlbmRpZgorCisj aWZkZWYgRE9VR19MRUFfTUFMTE9DCisgIC8qIEJhY2sgdG8gYSByZWFzb25hYmxlIG1heGlt dW0gb2YgbW1hcCdlZCBhcmVhcy4gICovCisgIG1hbGxvcHQgKE1fTU1BUF9NQVgsIE1NQVBf TUFYX0FSRUFTKTsKKyNlbmRpZgorCisgIGlmICghdmFsICYmIG5ieXRlcykKKyAgICB7Cisg ICAgICBNQUxMT0NfVU5CTE9DS19JTlBVVDsKKyAgICAgIG1lbW9yeV9mdWxsIChuYnl0ZXMp OworICAgIH0KKworI2lmICEgVVNFX0xTQl9UQUcKKyAgaWYgKHR5cGUgIT0gTUVNX1RZUEVf Tk9OX0xJU1AgCisgICAgICAmJiAhdmVyaWZ5X2FkZHJlc3MgKChjaGFyICopIHZhbCArIG5i eXRlcyAtIDEpKQorICAgIHsKKyAgICAgIGZyZWUgKHZhbCk7CisgICAgICBNQUxMT0NfVU5C TE9DS19JTlBVVDsKKyAgICAgIG1lbW9yeV9mdWxsIChTSVpFX01BWCk7CisgICAgfQorI2Vu ZGlmIC8qIG5vdCBVU0VfTFNCX1RBRyAqLworCisjaWYgR0NfTUFSS19TVEFDSyAmJiAhZGVm aW5lZCBHQ19NQUxMT0NfQ0hFQ0sKKyAgaWYgKHR5cGUgIT0gTUVNX1RZUEVfTk9OX0xJU1Ap CisgICAgbWVtX2luc2VydCAodmFsLCAoY2hhciAqKSB2YWwgKyBuYnl0ZXMsIHR5cGUpOwor I2VuZGlmCisKKyAgTUFMTE9DX1VOQkxPQ0tfSU5QVVQ7CisgIGVhc3NlcnQgKDAgPT0gKCh1 aW50cHRyX3QpIHZhbCkgJSBCTE9DS19BTElHTik7CisgIHJldHVybiB2YWw7Cit9CisKKy8q IEZyZWUgYWxpZ25lZCBCTE9DSy4gIFRoaXMgbXVzdCBiZSBjYWxsZWQgdG8gZnJlZQorICAg bWVtb3J5IGFsbG9jYXRlZCB3aXRoIGEgY2FsbCB0byBsaXNwX2FsaWduX21hbGxvYy4gICov CisKK3N0YXRpYyB2b2lkCitsaXNwX2FsaWduX2ZyZWUgKHZvaWQgKmJsb2NrKQoreworICBN QUxMT0NfQkxPQ0tfSU5QVVQ7CisjaWYgR0NfTUFSS19TVEFDSyAmJiAhZGVmaW5lZCBHQ19N QUxMT0NfQ0hFQ0sKKyAgbWVtX2RlbGV0ZSAobWVtX2ZpbmQgKGJsb2NrKSk7CisjZW5kaWYK KyNpZiBQT1NJWF9NRU1BTElHTl9XT1JLUyB8fCBNRU1BTElHTl9XT1JLUworICBmcmVlIChi bG9jayk7CisjZWxzZQorICBpbnRlcm5hbF9hbGlnbl9mcmVlIChibG9jayk7CisjZW5kaWYK ICAgTUFMTE9DX1VOQkxPQ0tfSU5QVVQ7CiB9CiAKQEAgLTY2NjEsOCArNjcxNywxMCBAQAog ICBwdXJlX2J5dGVzX3VzZWRfbGlzcCA9IHB1cmVfYnl0ZXNfdXNlZF9ub25fbGlzcCA9IDA7 CiAgIHB1cmVfYnl0ZXNfdXNlZF9iZWZvcmVfb3ZlcmZsb3cgPSAwOwogCisjaWYgISBQT1NJ WF9NRU1BTElHTl9XT1JLUyAmJiAhIE1FTUFMSUdOX1dPUktTCiAgIC8qIEluaXRpYWxpemUg dGhlIGxpc3Qgb2YgZnJlZSBhbGlnbmVkIGJsb2Nrcy4gICovCiAgIGZyZWVfYWJsb2NrID0g TlVMTDsKKyNlbmRpZgogCiAjaWYgR0NfTUFSS19TVEFDSyB8fCBkZWZpbmVkIEdDX01BTExP Q19DSEVDSwogICBtZW1faW5pdCAoKTsKCg== --------------020102050406020304090708--