From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E8551C433C1 for ; Mon, 22 Mar 2021 06:55:51 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F38556196E for ; Mon, 22 Mar 2021 06:55:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F38556196E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ghiti.fr Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:References: Cc:To:Subject:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=klQH3tPLmdjfopwUosjwB5JU2xgqfxUu7Omm/I2cUeQ=; b=q5UaUyQjX3zSPDOoPNGmQRu3q +B9hVJJSBgkRshAAbyWyE5y4H87DODo4M8QTBPByeHlbiwoRvnvxN3w5PgJV//uIP2ntxbS3ewGZO i1OyjY3xogz4weDgXdXR4vZCJx1x6n3Fhryrt7tmG9MfmyYdFxmUjQx1eGTkpBLDQIJVMdqyB9JLu UqmRqXAZUWl8J0Do8wg+sa1NuEiJRMhJhB+nrT9gB1tbRr8y2m/ocyXzAqDaGjqMNUqgrRQULO534 k2dYrtHnx2IuU5JLd8VS5/+TQ4uWmrY/9nBnWUjY9qq+MXYlkWPrMI48DGXiW1iH753m3QgkTm6YL sJgYLrmMw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lOETJ-00B330-G6; Mon, 22 Mar 2021 06:55:29 +0000 Received: from relay7-d.mail.gandi.net ([217.70.183.200]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lOETD-00B32f-Ek for linux-riscv@lists.infradead.org; Mon, 22 Mar 2021 06:55:26 +0000 X-Originating-IP: 81.185.162.37 Received: from [192.168.43.237] (37.162.185.81.rev.sfr.net [81.185.162.37]) (Authenticated sender: alex@ghiti.fr) by relay7-d.mail.gandi.net (Postfix) with ESMTPSA id A3AA120003; Mon, 22 Mar 2021 06:55:19 +0000 (UTC) From: Alex Ghiti Subject: Re: [PATCH v5] RISC-V: enable XIP To: Vitaly Wool Cc: linux-riscv , LKML , Bin Meng , Anup Patel , Alistair Francis , Palmer Dabbelt , Nicolas Pitre References: <20210310092234.10501-1-vitaly.wool@konsulko.com> <82a05081-5662-c787-44e4-d480774ce31c@ghiti.fr> Message-ID: Date: Mon, 22 Mar 2021 02:55:18 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: Content-Language: fr X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210322_065523_865066_55C431AB X-CRM114-Status: GOOD ( 44.02 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org TGUgMy8yMS8yMSDDoCAyOjA2IFBNLCBWaXRhbHkgV29vbCBhIMOpY3JpdMKgOgo+IEhleSBBbGV4 LAo+IAo+IE9uIFN1biwgTWFyIDIxLCAyMDIxIGF0IDQ6MTEgUE0gQWxleCBHaGl0aSA8YWxleEBn aGl0aS5mcj4gd3JvdGU6Cj4+Cj4+IEhpIFZpdGFseSwKPj4KPj4gTGUgMy8xMC8yMSDDoCA0OjIy IEFNLCBWaXRhbHkgV29vbCBhIMOpY3JpdCA6Cj4+PiBJbnRyb2R1Y2UgWElQIChlWGVjdXRlIElu IFBsYWNlKSBzdXBwb3J0IGZvciBSSVNDLVYgcGxhdGZvcm1zLgo+Pj4gSXQgYWxsb3dzIGNvZGUg dG8gYmUgZXhlY3V0ZWQgZGlyZWN0bHkgZnJvbSBub24tdm9sYXRpbGUgc3RvcmFnZQo+Pj4gZGly ZWN0bHkgYWRkcmVzc2FibGUgYnkgdGhlIENQVSwgc3VjaCBhcyBRU1BJIE5PUiBmbGFzaCB3aGlj aCBjYW4KPj4+IGJlIGZvdW5kIG9uIG1hbnkgUklTQy1WIHBsYXRmb3Jtcy4gVGhpcyBtYWtlcyB3 YXkgZm9yIHNpZ25pZmljYW50Cj4+PiBvcHRpbWl6YXRpb24gb2YgUkFNIGZvb3RwcmludC4gVGhl IFhJUCBrZXJuZWwgaXMgbm90IGNvbXByZXNzZWQKPj4+IHNpbmNlIGl0IGhhcyB0byBydW4gZGly ZWN0bHkgZnJvbSBmbGFzaCwgc28gaXQgd2lsbCBvY2N1cHkgbW9yZQo+Pj4gc3BhY2Ugb24gdGhl IG5vbi12b2xhdGlsZSBzdG9yYWdlIHRvIFRoZSBwaHlzaWNhbCBmbGFzaCBhZGRyZXNzCj4+Cj4+ IFRoZXJlIHNlZW1zIHRvIGJlIG1pc3Npbmcgc29tZXRoaW5nIGhlcmUuCj4gCj4gCj4gSG1tbS4u LiBzdHJhbmdlIGluZGVlZC4gSSdsbCBjb21lIHVwIHdpdGggYSByZXNwaW4gc2hvcnRseSBhbmQg d2lsbAo+IGRvdWJsZSBjaGVjay4KPj4KPj4KPj4+IHVzZWQgdG8gbGluayB0aGUga2VybmVsIG9i amVjdCBmaWxlcyBhbmQgZm9yIHN0b3JpbmcgaXQgaGFzIHRvCj4+PiBiZSBrbm93biBhdCBjb21w aWxlIHRpbWUgYW5kIGlzIHJlcHJlc2VudGVkIGJ5IGEgS2NvbmZpZyBvcHRpb24uCj4+Pgo+Pj4g WElQIG9uIFJJU0MtViB3aWxsIGN1cnJlbnRseSBvbmx5IHdvcmsgb24gTU1VLWVuYWJsZWQga2Vy bmVscy4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBWaXRhbHkgV29vbCA8dml0YWx5Lndvb2xAa29u c3Vsa28uY29tPgo+Pgo+Pgo+PiBUaGlzIGZhaWxzIHRvIGJvb3Qgb24gY3VycmVudCBmb3ItbmV4 dCB3aXRoIHRoZSBmb2xsb3dpbmcgcGFuaWMuCj4+IFRoaXMgaXMgYmVjYXVzZSBkdGJfZWFybHlf dmEgcG9pbnRzIHRvIGFuIGFkZHJlc3MgdGhhdCBpcyBub3QgbWFwcGVkIGluCj4+IHN3YXBwZXJf cGdfZGlyOiB1c2luZyBfX3ZhKGR0Yl9lYXJseV9wYSkgaW5zdGVhZCB3b3JrcyBmaW5lLgo+IAo+ IElzIGl0IHdpdGggQ09ORklHX0JVSUxUSU5fRFRCIG9yIHdpdGhvdXQ/CgpJdCBpcyB3aXRob3V0 IENPTkZJR19CVUlMVElOX0RUQiBlbmFibGVkLgoKQW5kIEkgbm90aWNlZCBJIGNhbid0IGxpbmsg YSBYSVBfS0VSTkVMIGVpdGhlcjoKCi9ob21lL2FsZXgvd2lwL2xwYy9idWlsZHJvb3QvYnVpbGRf cnY2NC9ob3N0L2Jpbi9yaXNjdjY0LWJ1aWxkcm9vdC1saW51eC1nbnUtbGQ6IApzZWN0aW9uIC5k YXRhIExNQSBbMDAwMDAwMDAwMDgwMDAwMCwwMDAwMDAwMDAwOGNkNzdmXSBvdmVybGFwcyBzZWN0 aW9uIAoucm9kYXRhIExNQSBbMDAwMDAwMDAwMDZmNjFjMCwwMDAwMDAwMDAwODQ5OWE3XQovaG9t ZS9hbGV4L3dpcC9scGMvYnVpbGRyb290L2J1aWxkX3J2NjQvaG9zdC9iaW4vcmlzY3Y2NC1idWls ZHJvb3QtbGludXgtZ251LWxkOiAKc2VjdGlvbiAucGNpX2ZpeHVwIExNQSBbMDAwMDAwMDAwMDg0 OTlhOCwwMDAwMDAwMDAwODRjZmQ3XSBvdmVybGFwcyAKc2VjdGlvbiAuZGF0YSBMTUEgWzAwMDAw MDAwMDA4MDAwMDAsMDAwMDAwMDAwMDhjZDc3Zl0KL2hvbWUvYWxleC93aXAvbHBjL2J1aWxkcm9v dC9idWlsZF9ydjY0L2hvc3QvYmluL3Jpc2N2NjQtYnVpbGRyb290LWxpbnV4LWdudS1sZDogCmFy Y2gvcmlzY3YvbW0vaW5pdC5vOiBpbiBmdW5jdGlvbiBgLkwxMzgnOgppbml0LmM6KC50ZXh0KzB4 MjMyKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX19pbml0X3RleHRfYmVnaW4nCi9ob21lL2Fs ZXgvd2lwL2xwYy9idWlsZHJvb3QvYnVpbGRfcnY2NC9ob3N0L2Jpbi9yaXNjdjY0LWJ1aWxkcm9v dC1saW51eC1nbnUtbGQ6IAphcmNoL3Jpc2N2L21tL2luaXQubzogaW4gZnVuY3Rpb24gYHByb3Rl Y3Rfa2VybmVsX3RleHRfZGF0YSc6CmluaXQuYzooLnRleHQrMHgyM2EpOiB1bmRlZmluZWQgcmVm ZXJlbmNlIHRvIGBfX2luaXRfZGF0YV9iZWdpbicKL2hvbWUvYWxleC93aXAvbHBjL2J1aWxkcm9v dC9idWlsZF9ydjY0L2hvc3QvYmluL3Jpc2N2NjQtYnVpbGRyb290LWxpbnV4LWdudS1sZDogCmlu aXQuYzooLnRleHQrMHgyOGMpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfX2luaXRfdGV4dF9i ZWdpbicKL2hvbWUvYWxleC93aXAvbHBjL2J1aWxkcm9vdC9idWlsZF9ydjY0L2hvc3QvYmluL3Jp c2N2NjQtYnVpbGRyb290LWxpbnV4LWdudS1sZDogCmluaXQuYzooLnRleHQrMHgyYTApOiB1bmRl ZmluZWQgcmVmZXJlbmNlIHRvIGBfX2luaXRfZGF0YV9iZWdpbicKbWFrZVsyXTogKioqIFtNYWtl ZmlsZToxMTk3OiB2bWxpbnV4XSBFcnJvciAxCm1ha2VbMV06ICoqKiBbcGFja2FnZS9wa2ctZ2Vu ZXJpYy5tazoyNTA6IAovaG9tZS9hbGV4L3dpcC9scGMvYnVpbGRyb290L2J1aWxkX3J2NjQvYnVp bGQvbGludXgtY3VzdG9tLy5zdGFtcF9idWlsdF0gCkVycm9yIDIKbWFrZTogKioqIFtNYWtlZmls ZToyMzogX2FsbF0gRXJyb3IgMgoKVGhlIDIgbWlzc2luZyBzeW1ib2xzIGFyZSBub3QgZGVmaW5l ZCBpbiB2bWxpbnV4LXhpcC5sZHMuUyBhbmQgYXJlIApyZXF1aXJlZCBmb3IgQ09ORklHX1NUUklD VF9LRVJORUxfUldYLCBJIGRvbid0IHRoaW5rIGJvdGggY29uZmlncyBhcmUgCmV4Y2x1c2l2ZSA/ IEkgYWRkZWQgdGhlbSBpbiBsaW5rZXIgc2NyaXB0IGFuZCB0aGF0IHdvcmtzLgoKQnV0IHRoZW4g SSdtIHN0aWxsIGJsb2NrZWQgd2l0aCB0aGUgb3ZlcmxhcHMsIGFueSBpZGVhID8KCj4gCj4+Cj4+ IEFuZCBhcyB0aGlzIGxpa2VseSBuZWVkcyBhbm90aGVyIHZlcnNpb24sIEknbSBnb2luZyB0byBh ZGQgbXkgY29tbWVudHMKPj4gYmVsb3cuCj4+Cj4+IFsgICAgMC4wMDAwMDBdIE9GOiBmZHQ6IEln bm9yaW5nIG1lbW9yeSByYW5nZSAweDgwMDAwMDAwIC0gMHg4MDIwMDAwMAo+PiBbICAgIDAuMDAw MDAwXSBNYWNoaW5lIG1vZGVsOiByaXNjdi12aXJ0aW8scWVtdQo+PiBbICAgIDAuMDAwMDAwXSBl YXJseWNvbjogc2JpMCBhdCBJL08gcG9ydCAweDAgKG9wdGlvbnMgJycpCj4+IFsgICAgMC4wMDAw MDBdIHByaW50azogYm9vdGNvbnNvbGUgW3NiaTBdIGVuYWJsZWQKPj4gWyAgICAwLjAwMDAwMF0g ZWZpOiBVRUZJIG5vdCBmb3VuZC4KPj4gWyAgICAwLjAwMDAwMF0gVW5hYmxlIHRvIGhhbmRsZSBr ZXJuZWwgcGFnaW5nIHJlcXVlc3QgYXQgdmlydHVhbCBhZGRyZXNzCj4+IDAwMDAwMDAwNDAwMDAw MDEKPj4gWyAgICAwLjAwMDAwMF0gT29wcyBbIzFdCj4+IFsgICAgMC4wMDAwMDBdIE1vZHVsZXMg bGlua2VkIGluOgo+PiBbICAgIDAuMDAwMDAwXSBDUFU6IDAgUElEOiAwIENvbW06IHN3YXBwZXIg Tm90IHRhaW50ZWQgNS4xMi4wLXJjMiAjMTU1Cj4+IFsgICAgMC4wMDAwMDBdIEhhcmR3YXJlIG5h bWU6IHJpc2N2LXZpcnRpbyxxZW11IChEVCkKPj4gWyAgICAwLjAwMDAwMF0gZXBjIDogZmR0X2No ZWNrX2hlYWRlcisweDAvMHgxZmMKPj4gWyAgICAwLjAwMDAwMF0gIHJhIDogZWFybHlfaW5pdF9k dF92ZXJpZnkrMHgxNi8weDZlCj4+IFsgICAgMC4wMDAwMDBdIGVwYyA6IGZmZmZmZmUwMDAyYjk1 NWUgcmEgOiBmZmZmZmZlMDAwODIxMDBjIHNwIDoKPj4gZmZmZmZmZTAwMTIwM2YxMAo+PiBbICAg IDAuMDAwMDAwXSAgZ3AgOiBmZmZmZmZlMDAxMmU0MGI4IHRwIDogZmZmZmZmZTAwMTIwYmQ4MCB0 MCA6Cj4+IGZmZmZmZmUyM2ZkZjcwMDAKPj4gWyAgICAwLjAwMDAwMF0gIHQxIDogMDAwMDAwMDAw MDAwMDAwMCB0MiA6IDAwMDAwMDAwMDAwMDAwMDAgczAgOgo+PiBmZmZmZmZlMDAxMjAzZjMwCj4+ IFsgICAgMC4wMDAwMDBdICBzMSA6IDAwMDAwMDAwNDAwMDAwMDAgYTAgOiAwMDAwMDAwMDQwMDAw MDAwIGExIDoKPj4gMDAwMDAwMDJiZmZmZmZmZgo+PiBbICAgIDAuMDAwMDAwXSAgYTIgOiBmZmZm ZmZlMjNmZGY2ZjAwIGEzIDogMDAwMDAwMDAwMDAwMDAwMSBhNCA6Cj4+IDAwMDAwMDAwMDAwMDAw MTgKPj4gWyAgICAwLjAwMDAwMF0gIGE1IDogZmZmZmZmZTAwMGEwYjVlOCBhNiA6IGZmZmZmZmUy M2ZkZjZlZjAgYTcgOgo+PiAwMDAwMDAwMDAwMDAwMDE4Cj4+IFsgICAgMC4wMDAwMDBdICBzMiA6 IDAwMDAwMDAwODAwMDAyMDAgczMgOiAwMDAwMDAwMDAwMDAwZmZmIHM0IDoKPj4gZmZmZmZmZTAw MGEwYTk1OAo+PiBbICAgIDAuMDAwMDAwXSAgczUgOiAwMDAwMDAwMDAwMDAwMDA1IHM2IDogMDAw MDAwMDAwMDAwMDE0MCBzNyA6Cj4+IGZmZmZmZmUyM2ZkZjZlYzAKPj4gWyAgICAwLjAwMDAwMF0g IHM4IDogMDAwMDAwMDA4MTAwMDIwMCBzOSA6IDAwMDAwMDAwODAwMDAyMDAgczEwOgo+PiBmZmZm ZmZlMDAwYTAxMDAwCj4+IFsgICAgMC4wMDAwMDBdICBzMTE6IDAwMDAwMDAwMDAwMDBmZmYgdDMg OiBmZmZmZmZmZmJmZmY3MDAwIHQ0IDoKPj4gZmZmZmZmZmZmZmZmZmZmZgo+PiBbICAgIDAuMDAw MDAwXSAgdDUgOiAwMDAwMDAwMDgwZTAwMDAwIHQ2IDogMDAwMDAwMDA4MDIwMjAwMAo+PiBbICAg IDAuMDAwMDAwXSBzdGF0dXM6IDAwMDAwMDAwMDAwMDAxMDAgYmFkYWRkcjogMDAwMDAwMDA0MDAw MDAwMSBjYXVzZToKPj4gMDAwMDAwMDAwMDAwMDAwZAo+PiBbICAgIDAuMDAwMDAwXSBDYWxsIFRy YWNlOgo+PiBbICAgIDAuMDAwMDAwXSBbPGZmZmZmZmUwMDAyYjk1NWU+XSBmZHRfY2hlY2tfaGVh ZGVyKzB4MC8weDFmYwo+PiBbICAgIDAuMDAwMDAwXSBbPGZmZmZmZmUwMDA4MDJhZjI+XSBzZXR1 cF9hcmNoKzB4M2E2LzB4NDEyCj4+IFsgICAgMC4wMDAwMDBdIFs8ZmZmZmZmZTAwMDgwMDZlYT5d IHN0YXJ0X2tlcm5lbCsweDdlLzB4NTgwCj4+IFsgICAgMC4wMDAwMDBdIHJhbmRvbTogZ2V0X3Jh bmRvbV9ieXRlcyBjYWxsZWQgZnJvbQo+PiBwcmludF9vb3BzX2VuZF9tYXJrZXIrMHgyMi8weDQ0 IHdpdGggY3JuZ19pbml0PTAKPj4gWyAgICAwLjAwMDAwMF0gLS0tWyBlbmQgdHJhY2UgMDAwMDAw MDAwMDAwMDAwMCBdLS0tCj4+IFsgICAgMC4wMDAwMDBdIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5j aW5nOiBGYXRhbCBleGNlcHRpb24KPj4gWyAgICAwLjAwMDAwMF0gLS0tWyBlbmQgS2VybmVsIHBh bmljIC0gbm90IHN5bmNpbmc6IEZhdGFsIGV4Y2VwdGlvbiBdLS0tCj4+Cj4+Pgo+Pj4gLS0tCj4+ PiBDaGFuZ2VzIGluIHYyOgo+Pj4gLSBkZWRpY2F0ZWQgbWFjcm8gZm9yIFhJUCBhZGRyZXNzIGZp eHVwIHdoZW4gTU1VIGlzIG5vdCBlbmFibGVkIHlldAo+Pj4gICAgIG8gYm90aCBmb3IgMzItYml0 IGFuZCA2NC1iaXQgUklTQy1WCj4+PiAtIFNQIGlzIGV4cGxpY2l0bHkgc2V0IHRvIGEgc2FmZSBw bGFjZSBpbiBSQU0gYmVmb3JlIF9fY29weV9kYXRhIGNhbGwKPj4+IC0gcmVtb3ZlZCByZWR1bmRh bnQgYWxpZ25tZW50IHJlcXVpcmVtZW50cyBpbiB2bWxpbnV4LXhpcC5sZHMuUwo+Pj4gLSBjaGFu Z2VkIGxvbmcgLT4gdWludHB0cl90IHR5cGVjYXN0IGluIF9fWElQX0ZJWFVQIG1hY3JvLgo+Pj4g Q2hhbmdlcyBpbiB2MzoKPj4+IC0gcmViYXNlZCBhZ2FpbnN0IGxhdGVzdCBmb3ItbmV4dAo+Pj4g LSBYSVAgYWRkcmVzcyBmaXh1cCBtYWNybyBub3cgdGFrZXMgYW4gYXJndW1lbnQKPj4+IC0gU01Q IHJlbGF0ZWQgZml4ZXMKPj4+IENoYW5nZXMgaW4gdjQ6Cj4+PiAtIHJlYmFzZWQgYWdhaW5zdCB0 aGUgY3VycmVudCBmb3ItbmV4dAo+Pj4gLSBsZXNzICNpZmRlZidzIGluIEMvQVNNIGNvZGUKPj4+ IC0gZGVkaWNhdGVkIFhJUF9GSVhVUF9PRkZTRVQgYXNzZW1ibGVyIG1hY3JvIGluIGhlYWQuUwo+ Pj4gLSBDLXNwZWNpZmljIGRlZmluaXRpb25zIG1vdmVkIGludG8gI2lmbmRlZiBfX0FTU0VNQkxZ X18KPj4+IC0gRml4ZWQgbXVsdGktY29yZSBib290Cj4+PiBDaGFuZ2VzIGluIHY1Ogo+Pj4gLSBm aXhlZCBidWlsZCBlcnJvciBmb3Igbm9uLVhJUCBrZXJuZWxzCj4+Pgo+Pj4gICAgYXJjaC9yaXNj di9LY29uZmlnICAgICAgICAgICAgICAgICAgfCAgNDQgKysrKysrKysrLQo+Pj4gICAgYXJjaC9y aXNjdi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDggKy0KPj4+ICAgIGFyY2gvcmlzY3Yv Ym9vdC9NYWtlZmlsZSAgICAgICAgICAgIHwgIDEzICsrKwo+Pj4gICAgYXJjaC9yaXNjdi9pbmNs dWRlL2FzbS9wZ3RhYmxlLmggICAgfCAgNjUgKysrKysrKysrKysrLS0KPj4+ICAgIGFyY2gvcmlz Y3Yva2VybmVsL2NwdV9vcHNfc2JpLmMgICAgIHwgIDEyICsrLQo+Pj4gICAgYXJjaC9yaXNjdi9r ZXJuZWwvaGVhZC5TICAgICAgICAgICAgfCAgNTkgKysrKysrKysrKysrLQo+Pj4gICAgYXJjaC9y aXNjdi9rZXJuZWwvaGVhZC5oICAgICAgICAgICAgfCAgIDMgKwo+Pj4gICAgYXJjaC9yaXNjdi9r ZXJuZWwvc2V0dXAuYyAgICAgICAgICAgfCAgIDggKy0KPj4+ICAgIGFyY2gvcmlzY3Yva2VybmVs L3ZtbGludXgteGlwLmxkcy5TIHwgMTMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4+ ICAgIGFyY2gvcmlzY3Yva2VybmVsL3ZtbGludXgubGRzLlMgICAgIHwgICA2ICsrCj4+PiAgICBh cmNoL3Jpc2N2L21tL2luaXQuYyAgICAgICAgICAgICAgICB8IDEwMCArKysrKysrKysrKysrKysr KysrLS0KPj4+ICAgIDExIGZpbGVzIGNoYW5nZWQsIDQzMiBpbnNlcnRpb25zKCspLCAxOCBkZWxl dGlvbnMoLSkKPj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Jpc2N2L2tlcm5lbC92bWxp bnV4LXhpcC5sZHMuUwo+Pj4KPj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L0tjb25maWcgYi9h cmNoL3Jpc2N2L0tjb25maWcKPj4+IGluZGV4IDg1ZDYyNmI4Y2U1ZS4uNTlmYjk0NWE5MDBlIDEw MDY0NAo+Pj4gLS0tIGEvYXJjaC9yaXNjdi9LY29uZmlnCj4+PiArKysgYi9hcmNoL3Jpc2N2L0tj b25maWcKPj4+IEBAIC00MzgsNyArNDM4LDcgQEAgY29uZmlnIEVGSV9TVFVCCj4+Pgo+Pj4gICAg Y29uZmlnIEVGSQo+Pj4gICAgICAgIGJvb2wgIlVFRkkgcnVudGltZSBzdXBwb3J0Igo+Pj4gLSAg ICAgZGVwZW5kcyBvbiBPRgo+Pj4gKyAgICAgZGVwZW5kcyBvbiBPRiAmJiAhWElQX0tFUk5FTAo+ Pj4gICAgICAgIHNlbGVjdCBMSUJGRFQKPj4+ICAgICAgICBzZWxlY3QgVUNTMl9TVFJJTkcKPj4+ ICAgICAgICBzZWxlY3QgRUZJX1BBUkFNU19GUk9NX0ZEVAo+Pj4gQEAgLTQ2MiwxMSArNDYyLDUx IEBAIGNvbmZpZyBTVEFDS1BST1RFQ1RPUl9QRVJfVEFTSwo+Pj4gICAgICAgIGRlZl9ib29sIHkK Pj4+ICAgICAgICBkZXBlbmRzIG9uIFNUQUNLUFJPVEVDVE9SICYmIENDX0hBVkVfU1RBQ0tQUk9U RUNUT1JfVExTCj4+Pgo+Pj4gK2NvbmZpZyBYSVBfS0VSTkVMCj4+PiArICAgICBib29sICJLZXJu ZWwgRXhlY3V0ZS1Jbi1QbGFjZSBmcm9tIFJPTSIKPj4+ICsgICAgIGRlcGVuZHMgb24gTU1VCj4+ PiArICAgICBoZWxwCj4+PiArICAgICAgIEV4ZWN1dGUtSW4tUGxhY2UgYWxsb3dzIHRoZSBrZXJu ZWwgdG8gcnVuIGZyb20gbm9uLXZvbGF0aWxlIHN0b3JhZ2UKPj4+ICsgICAgICAgZGlyZWN0bHkg YWRkcmVzc2FibGUgYnkgdGhlIENQVSwgc3VjaCBhcyBOT1IgZmxhc2guIFRoaXMgc2F2ZXMgUkFN Cj4+PiArICAgICAgIHNwYWNlIHNpbmNlIHRoZSB0ZXh0IHNlY3Rpb24gb2YgdGhlIGtlcm5lbCBp cyBub3QgbG9hZGVkIGZyb20gZmxhc2gKPj4+ICsgICAgICAgdG8gUkFNLiAgUmVhZC13cml0ZSBz ZWN0aW9ucywgc3VjaCBhcyB0aGUgZGF0YSBzZWN0aW9uIGFuZCBzdGFjaywKPj4+ICsgICAgICAg YXJlIHN0aWxsIGNvcGllZCB0byBSQU0uICBUaGUgWElQIGtlcm5lbCBpcyBub3QgY29tcHJlc3Nl ZCBzaW5jZQo+Pj4gKyAgICAgICBpdCBoYXMgdG8gcnVuIGRpcmVjdGx5IGZyb20gZmxhc2gsIHNv IGl0IHdpbGwgdGFrZSBtb3JlIHNwYWNlIHRvCj4+PiArICAgICAgIHN0b3JlIGl0LiAgVGhlIGZs YXNoIGFkZHJlc3MgdXNlZCB0byBsaW5rIHRoZSBrZXJuZWwgb2JqZWN0IGZpbGVzLAo+Pj4gKyAg ICAgICBhbmQgZm9yIHN0b3JpbmcgaXQsIGlzIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW50LiBUaGVy ZWZvcmUsIGlmIHlvdQo+Pj4gKyAgICAgICBzYXkgWSBoZXJlLCB5b3UgbXVzdCBrbm93IHRoZSBw cm9wZXIgcGh5c2ljYWwgYWRkcmVzcyB3aGVyZSB0bwo+Pj4gKyAgICAgICBzdG9yZSB0aGUga2Vy bmVsIGltYWdlIGRlcGVuZGluZyBvbiB5b3VyIG93biBmbGFzaCBtZW1vcnkgdXNhZ2UuCj4+PiAr Cj4+PiArICAgICAgIEFsc28gbm90ZSB0aGF0IHRoZSBtYWtlIHRhcmdldCBiZWNvbWVzICJtYWtl IHhpcEltYWdlIiByYXRoZXIgdGhhbgo+Pj4gKyAgICAgICAibWFrZSB6SW1hZ2UiIG9yICJtYWtl IEltYWdlIi4gIFRoZSBmaW5hbCBrZXJuZWwgYmluYXJ5IHRvIHB1dCBpbgo+Pj4gKyAgICAgICBS T00gbWVtb3J5IHdpbGwgYmUgYXJjaC9yaXNjdi9ib290L3hpcEltYWdlLgo+Pj4gKwo+Pj4gKyAg ICAgICBJZiB1bnN1cmUsIHNheSBOLgo+Pj4gKwo+Pj4gK2NvbmZpZyBYSVBfUEhZU19BRERSCj4+ PiArICAgICBoZXggIlhJUCBLZXJuZWwgUGh5c2ljYWwgTG9jYXRpb24iCj4+PiArICAgICBkZXBl bmRzIG9uIFhJUF9LRVJORUwKPj4+ICsgICAgIGRlZmF1bHQgIjB4MjEwMDAwMDAiCj4+PiArICAg ICBoZWxwCj4+PiArICAgICAgIFRoaXMgaXMgdGhlIHBoeXNpY2FsIGFkZHJlc3MgaW4geW91ciBm bGFzaCBtZW1vcnkgdGhlIGtlcm5lbCB3aWxsCj4+PiArICAgICAgIGJlIGxpbmtlZCBmb3IgYW5k IHN0b3JlZCB0by4gIFRoaXMgYWRkcmVzcyBpcyBkZXBlbmRlbnQgb24geW91cgo+Pj4gKyAgICAg ICBvd24gZmxhc2ggdXNhZ2UuCj4+PiArCj4+PiArY29uZmlnIFhJUF9QSFlTX1JBTV9CQVNFCj4+ PiArICAgICBoZXggIlBsYXRmb3JtIFBoeXNpY2FsIFJBTSBhZGRyZXNzIgo+Pj4gKyAgICAgZGVw ZW5kcyBvbiBYSVBfS0VSTkVMCj4+PiArICAgICBkZWZhdWx0ICIweDgwMDAwMDAwIgo+Pj4gKyAg ICAgaGVscAo+Pj4gKyAgICAgICBUaGlzIGlzIHRoZSBwaHlzaWNhbCBhZGRyZXNzIG9mIFJBTSBp biB0aGUgc3lzdGVtLiBJdCBoYXMgdG8gYmUKPj4+ICsgICAgICAgZXhwbGljaXRseSBzcGVjaWZp ZWQgdG8gcnVuIGVhcmx5IHJlbG9jYXRpb25zIG9mIHJlYWQtd3JpdGUgZGF0YQo+Pj4gKyAgICAg ICBmcm9tIGZsYXNoIHRvIFJBTS4KPj4KPj4gVGhpcyBpcyBub3QgWElQIHNwZWNpZmljIGFuZCB0 aGlzIGlzIHNvbWV0aGluZyBJIGNvbnNpZGVyZWQgdG8gYWRkIGluCj4+IG9yZGVyIHRvIG1hcCB0 aGUgbGluZWFyIG1hcHBpbmcgd2l0aCBodWdlcGFnZXMsIG1heWJlIHNpbXBseSByZW5hbWUgdGhp cwo+PiB3aXRob3V0IFhJUF8gcHJlZml4Lgo+IAo+IFN1cmUsIGxldCdzIGp1c3QgZ28gd2l0aCBQ SFlTX1JBTV9CQVNFLiBJIHdhcyByZWx1Y3RhbnQgdG8gYWRkIHlldAo+IGFub3RoZXIgY29uc3Rh bnQgYXQgZmlyc3QgYnV0IGhhdmluZyB0byBkZXJpdmUgaXQgaW4gcnVudGltZSBsZWQgdG8KPiBv dmVybHkgY29tcGxpY2F0ZWQgY2FsY3VsYXRpb25zIHdoaWNoIGNvdWxkIG5vdCBiZSBjb21waWxl IHRpbWUKPiBvcHRpbWl6ZWQsIHNvIGhlcmUgaXQgY2FtZS4KPiAKPj4+ICsKPj4+ICAgIGVuZG1l bnUKPj4+Cj4+PiAgICBjb25maWcgQlVJTFRJTl9EVEIKPj4+IC0gICAgIGRlZl9ib29sIG4KPj4+ ICsgICAgIGJvb2wKPj4+ICAgICAgICBkZXBlbmRzIG9uIE9GCj4+PiArICAgICBkZWZhdWx0IHkg aWYgWElQX0tFUk5FTAo+Pj4KPj4+ICAgIG1lbnUgIlBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucyIK Pj4+Cj4+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9NYWtlZmlsZSBiL2FyY2gvcmlzY3YvTWFr ZWZpbGUKPj4+IGluZGV4IDEzNjhkOTQzZjFmMy4uOGZjYmVjMDM5NzRkIDEwMDY0NAo+Pj4gLS0t IGEvYXJjaC9yaXNjdi9NYWtlZmlsZQo+Pj4gKysrIGIvYXJjaC9yaXNjdi9NYWtlZmlsZQo+Pj4g QEAgLTgyLDcgKzgyLDExIEBAIENIRUNLRkxBR1MgKz0gLURfX3Jpc2N2IC1EX19yaXNjdl94bGVu PSQoQklUUykKPj4+Cj4+PiAgICAjIERlZmF1bHQgdGFyZ2V0IHdoZW4gZXhlY3V0aW5nIHBsYWlu IG1ha2UKPj4+ICAgIGJvb3QgICAgICAgICAgICAgICAgOj0gYXJjaC9yaXNjdi9ib290Cj4+PiAr aWZlcSAoJChDT05GSUdfWElQX0tFUk5FTCkseSkKPj4+ICtLQlVJTERfSU1BR0UgOj0gJChib290 KS94aXBJbWFnZQo+Pj4gK2Vsc2UKPj4+ICAgIEtCVUlMRF9JTUFHRSAgICAgICAgOj0gJChib290 KS9JbWFnZS5nego+Pj4gK2VuZGlmCj4+Pgo+Pj4gICAgaGVhZC15IDo9IGFyY2gvcmlzY3Yva2Vy bmVsL2hlYWQubwo+Pj4KPj4+IEBAIC05NSwxMiArOTksMTQgQEAgUEhPTlkgKz0gdmRzb19pbnN0 YWxsCj4+PiAgICB2ZHNvX2luc3RhbGw6Cj4+PiAgICAgICAgJChRKSQoTUFLRSkgJChidWlsZCk9 YXJjaC9yaXNjdi9rZXJuZWwvdmRzbyAkQAo+Pj4KPj4+ICtpZm5lcSAoJChDT05GSUdfWElQX0tF Uk5FTCkseSkKPj4+ICAgIGlmZXEgKCQoQ09ORklHX1JJU0NWX01fTU9ERSkkKENPTkZJR19TT0Nf Q0FOQUFOKSx5eSkKPj4+ICAgIEtCVUlMRF9JTUFHRSA6PSAkKGJvb3QpL2xvYWRlci5iaW4KPj4+ ICAgIGVsc2UKPj4+ICAgIEtCVUlMRF9JTUFHRSA6PSAkKGJvb3QpL0ltYWdlLmd6Cj4+PiAgICBl bmRpZgo+Pj4gLUJPT1RfVEFSR0VUUyA6PSBJbWFnZSBJbWFnZS5neiBsb2FkZXIgbG9hZGVyLmJp bgo+Pj4gK2VuZGlmCj4+PiArQk9PVF9UQVJHRVRTIDo9IEltYWdlIEltYWdlLmd6IGxvYWRlciBs b2FkZXIuYmluIHhpcEltYWdlCj4+Pgo+Pj4gICAgYWxsOiAgICAgICAgJChub3RkaXIgJChLQlVJ TERfSU1BR0UpKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3QvTWFrZWZpbGUg Yi9hcmNoL3Jpc2N2L2Jvb3QvTWFrZWZpbGUKPj4+IGluZGV4IDAzNDA0Yzg0Zjk3MS4uNmJmMjk5 ZjcwYzI3IDEwMDY0NAo+Pj4gLS0tIGEvYXJjaC9yaXNjdi9ib290L01ha2VmaWxlCj4+PiArKysg Yi9hcmNoL3Jpc2N2L2Jvb3QvTWFrZWZpbGUKPj4+IEBAIC0xNyw4ICsxNywyMSBAQAo+Pj4gICAg S0NPVl9JTlNUUlVNRU5UIDo9IG4KPj4+Cj4+PiAgICBPQkpDT1BZRkxBR1NfSW1hZ2UgOj0tTyBi aW5hcnkgLVIgLm5vdGUgLVIgLm5vdGUuZ251LmJ1aWxkLWlkIC1SIC5jb21tZW50IC1TCj4+PiAr T0JKQ09QWUZMQUdTX3hpcEltYWdlIDo9LU8gYmluYXJ5IC1SIC5ub3RlIC1SIC5ub3RlLmdudS5i dWlsZC1pZCAtUiAuY29tbWVudCAtUwo+Pj4KPj4+ICAgIHRhcmdldHMgOj0gSW1hZ2UgSW1hZ2Uu KiBsb2FkZXIgbG9hZGVyLm8gbG9hZGVyLmxkcyBsb2FkZXIuYmluCj4+PiArdGFyZ2V0cyA6PSBJ bWFnZSBJbWFnZS4qIGxvYWRlciBsb2FkZXIubyBsb2FkZXIubGRzIGxvYWRlci5iaW4geGlwSW1h Z2UKPj4+ICsKPj4+ICtpZmVxICgkKENPTkZJR19YSVBfS0VSTkVMKSx5KQo+Pj4gKwo+Pj4gK3F1 aWV0X2NtZF9ta3hpcCA9ICQocXVpZXRfY21kX29iamNvcHkpCj4+PiArY21kX21reGlwID0gJChj bWRfb2JqY29weSkKPj4+ICsKPj4+ICskKG9iaikveGlwSW1hZ2U6IHZtbGludXggRk9SQ0UKPj4+ ICsgICAgICQoY2FsbCBpZl9jaGFuZ2VkLG1reGlwKQo+Pj4gKyAgICAgQCQoa2VjaG8pICcgIFBo eXNpY2FsIEFkZHJlc3Mgb2YgeGlwSW1hZ2U6ICQoQ09ORklHX1hJUF9QSFlTX0FERFIpJwo+Pj4g Kwo+Pj4gK2VuZGlmCj4+Pgo+Pj4gICAgJChvYmopL0ltYWdlOiB2bWxpbnV4IEZPUkNFCj4+PiAg ICAgICAgJChjYWxsIGlmX2NoYW5nZWQsb2JqY29weSkKPj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL3BndGFibGUuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0YWJs ZS5oCj4+PiBpbmRleCBlYmY4MTdjMWJkZjQuLjRjMmU2OTAyZjJiOCAxMDA2NDQKPj4+IC0tLSBh L2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0YWJsZS5oCj4+PiArKysgYi9hcmNoL3Jpc2N2L2lu Y2x1ZGUvYXNtL3BndGFibGUuaAo+Pj4gQEAgLTExLDYgKzExLDMzIEBACj4+Pgo+Pj4gICAgI2lu Y2x1ZGUgPGFzbS9wZ3RhYmxlLWJpdHMuaD4KPj4+Cj4+PiArI2lmZGVmIENPTkZJR19NTVUKPj4+ ICsKPj4+ICsjZGVmaW5lIFZNQUxMT0NfU1RBUlQgICAgKFBBR0VfT0ZGU0VUIC0gVk1BTExPQ19T SVpFKQo+Pj4gKwo+Pj4gKyNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+Pj4gKyNkZWZpbmUgVk1B TExPQ19TSVpFICAgICAoKEtFUk5fVklSVF9TSVpFID4+IDEpIC0gU1pfMTZNKQo+Pj4gKyNkZWZp bmUgVk1BTExPQ19FTkQgICAgICAoUEFHRV9PRkZTRVQgLSBTWl8xNk0gLSAxKQo+Pj4gKwo+Pj4g KyNkZWZpbmUgWElQX09GRlNFVCAgICAgICAgICAgU1pfOE0KPj4+ICsjZGVmaW5lIFhJUF9NQVNL ICAgICAgICAgICAgIChTWl84TSAtIDEpCj4+PiArI2RlZmluZSBYSVBfVklSVF9BRERSKHBoeXNh ZGRyKSAgICAgIFwKPj4+ICsgICAgIChQQUdFX09GRlNFVCAtIFhJUF9PRkZTRVQgKyAoKHBoeXNh ZGRyKSAmIFhJUF9NQVNLKSkKPj4+ICsKPj4+ICsjZWxzZQo+Pj4gKwo+Pj4gKyNkZWZpbmUgVk1B TExPQ19TSVpFICAgICAoS0VSTl9WSVJUX1NJWkUgPj4gMSkKPj4+ICsjZGVmaW5lIFZNQUxMT0Nf RU5EICAgICAgKFBBR0VfT0ZGU0VUIC0gMSkKPj4+ICsKPj4+ICsjZW5kaWYgLyogQ09ORklHX1hJ UF9LRVJORUwgKi8KPj4+ICsKPj4+ICsjZWxzZQo+Pj4gKwo+Pj4gKyNpZmRlZiBDT05GSUdfWElQ X0tFUk5FTAo+Pj4gKyNkZWZpbmUgWElQX1ZJUlRfQUREUihwaHlzYWRkcikgKHBoeXNhZGRyKQo+ Pj4gKyNlbmRpZiAvKiBDT05GSUdfWElQX0tFUk5FTCAqLwo+Pj4gKyNlbmRpZiAvKiBDT05GSUdf TU1VICovCj4+PiArCj4+PiAgICAjaWZuZGVmIF9fQVNTRU1CTFlfXwo+Pj4KPj4+ICAgIC8qIFBh Z2UgVXBwZXIgRGlyZWN0b3J5IG5vdCB1c2VkIGluIFJJU0MtViAqLwo+Pj4gQEAgLTIxLDkgKzQ4 LDI1IEBACj4+Pgo+Pj4gICAgI2lmZGVmIENPTkZJR19NTVUKPj4+Cj4+PiAtI2RlZmluZSBWTUFM TE9DX1NJWkUgICAgIChLRVJOX1ZJUlRfU0laRSA+PiAxKQo+Pj4gLSNkZWZpbmUgVk1BTExPQ19F TkQgICAgICAoUEFHRV9PRkZTRVQgLSAxKQo+Pj4gLSNkZWZpbmUgVk1BTExPQ19TVEFSVCAgICAo UEFHRV9PRkZTRVQgLSBWTUFMTE9DX1NJWkUpCj4+PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVM Cj4+PiArLyoKPj4+ICsgKiBTaW5jZSB3ZSB1c2Ugc2VjdGlvbnMgdG8gbWFwIGl0LCB0aGlzIG1h Y3JvIHJlcGxhY2VzIHRoZSBwaHlzaWNhbCBhZGRyZXNzCj4+PiArICogd2l0aCBpdHMgdmlydHVh bCBhZGRyZXNzIHdoaWxlIGtlZXBpbmcgb2Zmc2V0IGZyb20gdGhlIGJhc2Ugc2VjdGlvbi4KPj4K Pj4gSXQgc2VlbXMgdGhlIGNvbW1lbnQgc2hvdWxkIGJlIHRoZSBvdGhlciB3YXkgYXJvdW5kOiAi dGhpcyBtYWNybwo+PiByZXBsYWNlcyB0aGUgKnZpcnR1YWwqIGFkZHJlc3MuLi5ldGMiLgoKSXNu J3QgdGhlcmUgYW4gaXNzdWUgd2l0aCB0aGUgY29tbWVudCBoZXJlID8KCj4+Cj4+PiArICovCj4+ PiArI2RlZmluZSBYSVBfUEhZU19BRERSKHZhKSAgICAgXAo+Pj4gKyAgICAgKCh1aW50cHRyX3Qp KHZhKSAtIFBBR0VfT0ZGU0VUICsgWElQX09GRlNFVCArIENPTkZJR19YSVBfUEhZU19BRERSKQo+ Pj4gKwo+Pj4gKyNkZWZpbmUgWElQX1ZJUlRfQUREUl9TVEFSVCAgWElQX1ZJUlRfQUREUihDT05G SUdfWElQX1BIWVNfQUREUikKPj4+ICsjZGVmaW5lIF9fUEhSQU1fQkFTRSAgICAgICAgIENPTkZJ R19YSVBfUEhZU19SQU1fQkFTRQo+Pgo+PiBJIGRvbid0IHRoaW5rIHRoYXQgaXQgaXMgbmVjZXNz YXJ5IHRvIGRlZmluZSB0aGlzIGludGVybWVkaWF0ZQo+PiBfX1BIUkFNX0JBU0UuCj4gCj4gVGhh dCB3YXMgZm9yIHRoZSBzYWtlIG9mIGtlZXBpbmcgc2hvcnRlciBsaW5lcy4gOikKPiAKPj4+ICsK Pj4+ICsjZGVmaW5lIFhJUF9GSVhVUChhZGRyKSAgICAgICAgICAgICAgXAo+Pj4gKyAgICAgKCgo dWludHB0cl90KShhZGRyKSA+PSBDT05GSUdfWElQX1BIWVNfQUREUiAmJiBcCj4+PiArICAgICAg ICh1aW50cHRyX3QpKGFkZHIpIDw9IENPTkZJR19YSVBfUEhZU19BRERSICsgU1pfMTZNKSA/IFwK Pj4KPj4gVGhhdCBzaG91bGQgYmUgPCBDT05GSUdfWElQX1BIWVNfQUREUiArIFNaXzE2TSwgbm90 IDw9Lgo+IAo+IFRoYW5rcywgd2lsbCBmaXguCj4gCj4+PiArICAgICAodWludHB0cl90KShhZGRy KSAtIENPTkZJR19YSVBfUEhZU19BRERSICsgX19QSFJBTV9CQVNFIC0gWElQX09GRlNFVCA6IFwK Pj4+ICsgICAgICh1aW50cHRyX3QpKGFkZHIpKQo+Pgo+PiBUaGVyZSBhcmUgcG9zc2libGUgc2lk ZS1lZmZlY3RzIGluIHRoaXMgbWFjcm8gZGVmaW5pdGlvbiwgY29uc2lkZXIgdXNpbmcKPj4gYSB0 ZW1wb3JhcnkgdmFyaWFibGUgZm9yIGFkZHIuCj4gCj4gVGhpcyBpcyBhbiBpbnRlcm5hbCBkZWZp bml0aW9uIHNvIEkgZGlkbid0IGNhcmUgbXVjaCBidXQgRldJVyBpdCdzCj4gYmV0dGVyIHRvIGNo YW5nZSBpdCBhcyB5b3Ugc3VnZ2VzdCwgdGhhbmtzLgo+IAo+Pj4gKyNlbHNlCj4+PiArI2RlZmlu ZSBYSVBfRklYVVAoYWRkcikgICAgICAgICAgICAgIChhZGRyKQo+Pj4gKyNlbmRpZiAvKiBDT05G SUdfWElQX0tFUk5FTCAqLwo+Pj4KPj4+ICAgICNkZWZpbmUgQlBGX0pJVF9SRUdJT05fU0laRSAo U1pfMTI4TSkKPj4+ICAgICNkZWZpbmUgQlBGX0pJVF9SRUdJT05fU1RBUlQgICAgICAgIChQQUdF X09GRlNFVCAtIEJQRl9KSVRfUkVHSU9OX1NJWkUpCj4+PiBAQCAtNDg0LDggKzUyNywyMCBAQCBz dGF0aWMgaW5saW5lIGludCBwdGVwX2NsZWFyX2ZsdXNoX3lvdW5nKHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hLAo+Pj4KPj4+ICAgICNkZWZpbmUga2Vybl9hZGRyX3ZhbGlkKGFkZHIpICAgKDEp IC8qIEZJWE1FICovCj4+Pgo+Pj4gLWV4dGVybiB2b2lkICpkdGJfZWFybHlfdmE7Cj4+PiAtZXh0 ZXJuIHVpbnRwdHJfdCBkdGJfZWFybHlfcGE7Cj4+PiArZXh0ZXJuIHZvaWQgKl9kdGJfZWFybHlf dmE7Cj4+PiArZXh0ZXJuIHVpbnRwdHJfdCBfZHRiX2Vhcmx5X3BhOwo+Pj4gKyNpZiBkZWZpbmVk KENPTkZJR19YSVBfS0VSTkVMKSAmJiBkZWZpbmVkKENPTkZJR19NTVUpCj4+Cj4+IENPTkZJR19Y SVBfS0VSTkVMIGFscmVhZHkgZGVwZW5kcyBvbiBDT05GSUdfTU1VLiBBbmQgbWF5YmUgd2UgY291 bGQKPj4gaGFuZGxlIFhJUF9LRVJORUwgYW5kICFYSVBfS0VSTkVMIGluIFhJUF9GSVhVUCB0byBh dm9pZCB0aG9zZSBpZmRlZnMgPwo+IAo+IFRoaXMgaXMgYSB0ZW1wb3JhcnkgZGVwZW5kZW5jZSwg d2UgYXJlIHdvcmtpbmcgb24gdGhlIG5vbi1NTVUgY2FzZSB0b28KPiBzbyBJIHdvdWxkIG5vdCBs aWtlIHRvIGdvIHRoYXQgcGF0aC4KPiAKPj4+ICsKPj4+ICsjZGVmaW5lIGR0Yl9lYXJseV92YSAo Kih2b2lkICoqKVhJUF9GSVhVUCgmX2R0Yl9lYXJseV92YSkpCj4+PiArI2RlZmluZSBkdGJfZWFy bHlfcGEgKCoodWludHB0cl90ICopWElQX0ZJWFVQKCZfZHRiX2Vhcmx5X3BhKSkKPj4+ICsKPj4+ ICsjZWxzZQo+Pj4gKwo+Pj4gKyNkZWZpbmUgZHRiX2Vhcmx5X3ZhIF9kdGJfZWFybHlfdmEKPj4+ ICsjZGVmaW5lIGR0Yl9lYXJseV9wYSBfZHRiX2Vhcmx5X3BhCj4+PiArCj4+PiArI2VuZGlmIC8q IENPTkZJR19YSVBfS0VSTkVMICovCj4+PiArCj4+PiAgICB2b2lkIHNldHVwX2Jvb3RtZW0odm9p ZCk7Cj4+PiAgICB2b2lkIHBhZ2luZ19pbml0KHZvaWQpOwo+Pj4gICAgdm9pZCBtaXNjX21lbV9p bml0KHZvaWQpOwo+Pj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL2NwdV9vcHNfc2Jp LmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9jcHVfb3BzX3NiaS5jCj4+PiBpbmRleCA2ODVmYWU3MmI3 ZjUuLjdkMzY4YmM2NTZmZiAxMDA2NDQKPj4+IC0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL2NwdV9v cHNfc2JpLmMKPj4+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL2NwdV9vcHNfc2JpLmMKPj4+IEBA IC01MywxMCArNTMsMjAgQEAgc3RhdGljIGludCBzYmlfaHNtX2hhcnRfZ2V0X3N0YXR1cyh1bnNp Z25lZCBsb25nIGhhcnRpZCkKPj4+ICAgIH0KPj4+ICAgICNlbmRpZgo+Pj4KPj4+ICtzdGF0aWMg aW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X3NlY29uZGFyeV9zdGFydF9waHlzKHZvaWQpCj4+PiAr ewo+Pj4gKyNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+Pj4gKyAgICAgcmV0dXJuIFhJUF9QSFlT X0FERFIoc2Vjb25kYXJ5X3N0YXJ0X3NiaSk7Cj4+PiArI2Vsc2UKPj4+ICsgICAgIHJldHVybiBf X3BhX3N5bWJvbChzZWNvbmRhcnlfc3RhcnRfc2JpKTsKPj4+ICsjZW5kaWYKPj4+ICt9Cj4+PiAr Cj4+PiArCj4+Cj4+IFRoZXJlIGFyZSAyIG5ld2xpbmVzIGhlcmUuCj4+Cj4+PiAgICBzdGF0aWMg aW50IHNiaV9jcHVfc3RhcnQodW5zaWduZWQgaW50IGNwdWlkLCBzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnRpZGxlKQo+Pj4gICAgewo+Pj4gICAgICAgIGludCByYzsKPj4+IC0gICAgIHVuc2lnbmVkIGxv bmcgYm9vdF9hZGRyID0gX19wYV9zeW1ib2woc2Vjb25kYXJ5X3N0YXJ0X3NiaSk7Cj4+PiArICAg ICB1bnNpZ25lZCBsb25nIGJvb3RfYWRkciA9IGdldF9zZWNvbmRhcnlfc3RhcnRfcGh5cygpOwo+ Pj4gICAgICAgIGludCBoYXJ0aWQgPSBjcHVpZF90b19oYXJ0aWRfbWFwKGNwdWlkKTsKPj4+Cj4+ PiAgICAgICAgY3B1X3VwZGF0ZV9zZWNvbmRhcnlfYm9vdGRhdGEoY3B1aWQsIHRpZGxlKTsKPj4+ IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLlMgYi9hcmNoL3Jpc2N2L2tlcm5l bC9oZWFkLlMKPj4+IGluZGV4IGY1YTliYWQ4NmU1OC4uMTdlY2Y2MDk1MjA5IDEwMDY0NAo+Pj4g LS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvaGVhZC5TCj4+PiArKysgYi9hcmNoL3Jpc2N2L2tlcm5l bC9oZWFkLlMKPj4+IEBAIC05LDExICs5LDMzIEBACj4+PiAgICAjaW5jbHVkZSA8bGludXgvbGlu a2FnZS5oPgo+Pj4gICAgI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgo+Pj4gICAgI2luY2x1 ZGUgPGFzbS9wYWdlLmg+Cj4+PiArI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+Cj4+PiAgICAjaW5j bHVkZSA8YXNtL2Nzci5oPgo+Pj4gICAgI2luY2x1ZGUgPGFzbS9od2NhcC5oPgo+Pj4gICAgI2lu Y2x1ZGUgPGFzbS9pbWFnZS5oPgo+Pj4gICAgI2luY2x1ZGUgImVmaS1oZWFkZXIuUyIKPj4+Cj4+ PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4+PiArLm1hY3JvIFhJUF9GSVhVUF9PRkZTRVQg cmVnCj4+PiArI2lmZGVmIENPTkZJR182NEJJVAo+Pj4gKyAgICAgICAgICAgICBsZCB0MCwgX3hp cF9maXh1cAo+Pj4gKyNlbHNlCj4+PiArICAgICAgICAgICAgIGx3IHQwLCBfeGlwX2ZpeHVwCj4+ PiArI2VuZGlmCj4+Cj4+IFVzZSBSRUdfTCBoZXJlLgo+IAo+IFdpbGwgZG8sIHRoYW5rcy4KPiAK Pj4+ICsgICAgICAgICAgICAgYWRkIFxyZWcsIFxyZWcsIHQwCj4+PiArLmVuZG0KPj4+ICsKPj4+ ICtfeGlwX2ZpeHVwOgo+Pj4gKyNpZmRlZiBDT05GSUdfNjRCSVQKPj4+ICsgICAgIC5kd29yZCBD T05GSUdfWElQX1BIWVNfUkFNX0JBU0UgLSBDT05GSUdfWElQX1BIWVNfQUREUiAtIFhJUF9PRkZT RVQKPj4+ICsjZWxzZQo+Pj4gKyAgICAgLndvcmQgQ09ORklHX1hJUF9QSFlTX1JBTV9CQVNFIC0g Q09ORklHX1hJUF9QSFlTX0FERFIgLSBYSVBfT0ZGU0VUCj4+PiArI2VuZGlmCj4+PiArI2Vsc2UK Pj4+ICsubWFjcm8gWElQX0ZJWFVQX09GRlNFVCByZWcKPj4+ICsuZW5kbQo+Pj4gKyNlbmRpZiAv KiBDT05GSUdfWElQX0tFUk5FTCAqLwo+Pj4gKwo+Pj4gICAgX19IRUFECj4+PiAgICBFTlRSWShf c3RhcnQpCj4+PiAgICAgICAgLyoKPj4+IEBAIC02OSw3ICs5MSwxMSBAQCBwZV9oZWFkX3N0YXJ0 Ogo+Pj4gICAgI2lmZGVmIENPTkZJR19NTVUKPj4+ICAgIHJlbG9jYXRlOgo+Pj4gICAgICAgIC8q IFJlbG9jYXRlIHJldHVybiBhZGRyZXNzICovCj4+PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVM Cj4+PiArICAgICBsaSBhMSwgWElQX1ZJUlRfQUREUihDT05GSUdfWElQX1BIWVNfQUREUikKPj4+ ICsjZWxzZQo+Pj4gICAgICAgIGxpIGExLCBQQUdFX09GRlNFVAo+Pj4gKyNlbmRpZgo+Pj4gICAg ICAgIGxhIGEyLCBfc3RhcnQKPj4+ICAgICAgICBzdWIgYTEsIGExLCBhMgo+Pj4gICAgICAgIGFk ZCByYSwgcmEsIGExCj4+PiBAQCAtOTEsNiArMTE3LDcgQEAgcmVsb2NhdGU6Cj4+PiAgICAgICAg ICogdG8gZW5zdXJlIHRoZSBuZXcgdHJhbnNsYXRpb25zIGFyZSBpbiB1c2UuCj4+PiAgICAgICAg ICovCj4+PiAgICAgICAgbGEgYTAsIHRyYW1wb2xpbmVfcGdfZGlyCj4+PiArICAgICBYSVBfRklY VVBfT0ZGU0VUIGEwCj4+Cj4+Cj4+IEZvciBhbGwgdGhvc2UgcGFpcnMgb2YgbGEgYVguLi47IFhJ UF9GSVhVUF9PRkZTRVQgYVguLi47IG1heWJlIGludHJvZHVjZQo+PiBhIG1hY3JvIHRoYXQgZG9l cyBib3RoID8KPiAKPiBJIGNhbiBkbyB0aGF0IGJ1dCB3b3VsZG4ndCBpdCBvYnNjdXJlIHRoZSBv cGVyYXRpb25zIHRvbyBtdWNoPwo+IAoKSU1ITywgdGhpcyB3b3VsZCBhdm9pZCB0byBicmVhayBY SVBfS0VSTkVMIGlmIHdlIGRvbid0IGhhdmUgdG8gd29ycnkgCmFib3V0IHRob3NlIGZpeHVwLCBi ZWNhdXNlIGFzIHRoaXMgYWRkcyBhIG5ldyBrZXJuZWwsIEknbSBhIGJpdCB3b3JyaWVkIAp3ZSBi cmVhayBpdCBvdmVyIHRpbWUgZWFzaWx5LgoKPj4+ICAgICAgICBzcmwgYTAsIGEwLCBQQUdFX1NI SUZUCj4+PiAgICAgICAgb3IgYTAsIGEwLCBhMQo+Pj4gICAgICAgIHNmZW5jZS52bWEKPj4+IEBA IC0xNDQsNyArMTcxLDkgQEAgc2Vjb25kYXJ5X3N0YXJ0X3NiaToKPj4+Cj4+PiAgICAgICAgc2xs aSBhMywgYTAsIExHUkVHCj4+PiAgICAgICAgbGEgYTQsIF9fY3B1X3VwX3N0YWNrX3BvaW50ZXIK Pj4+ICsgICAgIFhJUF9GSVhVUF9PRkZTRVQgYTQKPj4+ICAgICAgICBsYSBhNSwgX19jcHVfdXBf dGFza19wb2ludGVyCj4+PiArICAgICBYSVBfRklYVVBfT0ZGU0VUIGE1Cj4+PiAgICAgICAgYWRk IGE0LCBhMywgYTQKPj4+ICAgICAgICBhZGQgYTUsIGEzLCBhNQo+Pj4gICAgICAgIFJFR19MIHNw LCAoYTQpCj4+PiBAQCAtMTU2LDYgKzE4NSw3IEBAIHNlY29uZGFyeV9zdGFydF9jb21tb246Cj4+ PiAgICAjaWZkZWYgQ09ORklHX01NVQo+Pj4gICAgICAgIC8qIEVuYWJsZSB2aXJ0dWFsIG1lbW9y eSBhbmQgcmVsb2NhdGUgdG8gdmlydHVhbCBhZGRyZXNzICovCj4+PiAgICAgICAgbGEgYTAsIHN3 YXBwZXJfcGdfZGlyCj4+PiArICAgICBYSVBfRklYVVBfT0ZGU0VUIGEwCj4+PiAgICAgICAgY2Fs bCByZWxvY2F0ZQo+Pj4gICAgI2VuZGlmCj4+PiAgICAgICAgY2FsbCBzZXR1cF90cmFwX3ZlY3Rv cgo+Pj4gQEAgLTIzNiwxMiArMjY2LDMzIEBAIHBtcF9kb25lOgo+Pj4gICAgLkxnb29kX2NvcmVz Ogo+Pj4gICAgI2VuZGlmCj4+Pgo+Pj4gKyNpZm5kZWYgQ09ORklHX1hJUF9LRVJORUwKPj4+ICAg ICAgICAvKiBQaWNrIG9uZSBoYXJ0IHRvIHJ1biB0aGUgbWFpbiBib290IHNlcXVlbmNlICovCj4+ PiAgICAgICAgbGEgYTMsIGhhcnRfbG90dGVyeQo+Pj4gICAgICAgIGxpIGEyLCAxCj4+PiAgICAg ICAgYW1vYWRkLncgYTMsIGEyLCAoYTMpCj4+PiAgICAgICAgYm5leiBhMywgLkxzZWNvbmRhcnlf c3RhcnQKPj4+Cj4+PiArI2Vsc2UKPj4+ICsgICAgIC8qIGhhcnRfbG90dGVyeSBpbiBmbGFzaCBj b250YWlucyBhIG1hZ2ljIG51bWJlciAqLwo+Pj4gKyAgICAgbGEgYTMsIGhhcnRfbG90dGVyeQo+ Pj4gKyAgICAgbXYgYTIsIGEzCj4+PiArICAgICBYSVBfRklYVVBfT0ZGU0VUIGEyCj4+PiArICAg ICBsdyB0MSwgKGEzKQo+Pj4gKyAgICAgYW1vc3dhcC53IHQwLCB0MSwgKGEyKQo+Pj4gKyAgICAg LyogZmlyc3QgdGltZSBoZXJlIGlmIGhhcnRfbG90dGVyeSBpbiBSQU0gaXMgbm90IHNldCAqLwo+ Pj4gKyAgICAgYmVxIHQwLCB0MSwgLkxzZWNvbmRhcnlfc3RhcnQKPj4+ICsKPj4+ICsgICAgIGxh IHNwLCBfZW5kICsgVEhSRUFEX1NJWkUKPj4+ICsgICAgIFhJUF9GSVhVUF9PRkZTRVQgc3AKPj4+ ICsgICAgIG12IHMwLCBhMAo+Pj4gKyAgICAgY2FsbCBfX2NvcHlfZGF0YQo+Pj4gKwo+Pj4gKyAg ICAgLyogUmVzdG9yZSBhMCBjb3B5ICovCj4+PiArICAgICBtdiBhMCwgczAKPj4+ICsjZW5kaWYK Pj4+ICsKPj4+ICsjaWZuZGVmIENPTkZJR19YSVBfS0VSTkVMCj4+PiAgICAgICAgLyogQ2xlYXIg QlNTIGZvciBmbGF0IG5vbi1FTEYgaW1hZ2VzICovCj4+PiAgICAgICAgbGEgYTMsIF9fYnNzX3N0 YXJ0Cj4+PiAgICAgICAgbGEgYTQsIF9fYnNzX3N0b3AKPj4+IEBAIC0yNTEsMTUgKzMwMiwxOCBA QCBjbGVhcl9ic3M6Cj4+PiAgICAgICAgYWRkIGEzLCBhMywgUklTQ1ZfU1pQVFIKPj4+ICAgICAg ICBibHQgYTMsIGE0LCBjbGVhcl9ic3MKPj4+ICAgIGNsZWFyX2Jzc19kb25lOgo+Pj4gLQo+Pj4g KyNlbmRpZgo+Pj4gICAgICAgIC8qIFNhdmUgaGFydCBJRCBhbmQgRFRCIHBoeXNpY2FsIGFkZHJl c3MgKi8KPj4+ICAgICAgICBtdiBzMCwgYTAKPj4+ICAgICAgICBtdiBzMSwgYTEKPj4+ICsKPj4+ ICAgICAgICBsYSBhMiwgYm9vdF9jcHVfaGFydGlkCj4+PiArICAgICBYSVBfRklYVVBfT0ZGU0VU IGEyCj4+PiAgICAgICAgUkVHX1MgYTAsIChhMikKPj4+Cj4+PiAgICAgICAgLyogSW5pdGlhbGl6 ZSBwYWdlIHRhYmxlcyBhbmQgcmVsb2NhdGUgdG8gdmlydHVhbCBhZGRyZXNzZXMgKi8KPj4+ICAg ICAgICBsYSBzcCwgaW5pdF90aHJlYWRfdW5pb24gKyBUSFJFQURfU0laRQo+Pj4gKyAgICAgWElQ X0ZJWFVQX09GRlNFVCBzcAo+Pj4gICAgI2lmZGVmIENPTkZJR19CVUlMVElOX0RUQgo+Pj4gICAg ICAgIGxhIGEwLCBfX2R0Yl9zdGFydAo+Pj4gICAgI2Vsc2UKPj4+IEBAIC0yNjgsNiArMzIyLDcg QEAgY2xlYXJfYnNzX2RvbmU6Cj4+PiAgICAgICAgY2FsbCBzZXR1cF92bQo+Pj4gICAgI2lmZGVm IENPTkZJR19NTVUKPj4+ICAgICAgICBsYSBhMCwgZWFybHlfcGdfZGlyCj4+PiArICAgICBYSVBf RklYVVBfT0ZGU0VUIGEwCj4+PiAgICAgICAgY2FsbCByZWxvY2F0ZQo+Pj4gICAgI2VuZGlmIC8q IENPTkZJR19NTVUgKi8KPj4+Cj4+PiBAQCAtMjkyLDcgKzM0Nyw5IEBAIGNsZWFyX2Jzc19kb25l Ogo+Pj4KPj4+ICAgICAgICBzbGxpIGEzLCBhMCwgTEdSRUcKPj4+ICAgICAgICBsYSBhMSwgX19j cHVfdXBfc3RhY2tfcG9pbnRlcgo+Pj4gKyAgICAgWElQX0ZJWFVQX09GRlNFVCBhMQo+Pj4gICAg ICAgIGxhIGEyLCBfX2NwdV91cF90YXNrX3BvaW50ZXIKPj4+ICsgICAgIFhJUF9GSVhVUF9PRkZT RVQgYTIKPj4+ICAgICAgICBhZGQgYTEsIGEzLCBhMQo+Pj4gICAgICAgIGFkZCBhMiwgYTMsIGEy Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL2hlYWQuaCBiL2FyY2gvcmlz Y3Yva2VybmVsL2hlYWQuaAo+Pj4gaW5kZXggYjQ4ZGRhM2QwNGY2Li5hYWJiYzNhYzNlNDggMTAw NjQ0Cj4+PiAtLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLmgKPj4+ICsrKyBiL2FyY2gvcmlz Y3Yva2VybmVsL2hlYWQuaAo+Pj4gQEAgLTEyLDYgKzEyLDkgQEAgZXh0ZXJuIGF0b21pY190IGhh cnRfbG90dGVyeTsKPj4+Cj4+PiAgICBhc21saW5rYWdlIHZvaWQgZG9fcGFnZV9mYXVsdChzdHJ1 Y3QgcHRfcmVncyAqcmVncyk7Cj4+PiAgICBhc21saW5rYWdlIHZvaWQgX19pbml0IHNldHVwX3Zt KHVpbnRwdHJfdCBkdGJfcGEpOwo+Pj4gKyNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+Pj4gK2Fz bWxpbmthZ2Ugdm9pZCBfX2luaXQgX19jb3B5X2RhdGEodm9pZCk7Cj4+PiArI2VuZGlmCj4+Pgo+ Pj4gICAgZXh0ZXJuIHZvaWQgKl9fY3B1X3VwX3N0YWNrX3BvaW50ZXJbXTsKPj4+ICAgIGV4dGVy biB2b2lkICpfX2NwdV91cF90YXNrX3BvaW50ZXJbXTsKPj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jp c2N2L2tlcm5lbC9zZXR1cC5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvc2V0dXAuYwo+Pj4gaW5kZXgg ZTg1YmFjZmYxYjUwLi4yOTk1NmM0MWE5Y2MgMTAwNjQ0Cj4+PiAtLS0gYS9hcmNoL3Jpc2N2L2tl cm5lbC9zZXR1cC5jCj4+PiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9zZXR1cC5jCj4+PiBAQCAt NTAsNyArNTAsMTEgQEAgc3RydWN0IHNjcmVlbl9pbmZvIHNjcmVlbl9pbmZvIF9fc2VjdGlvbigi LmRhdGEiKSA9IHsKPj4+ICAgICAqIFRoaXMgaXMgdXNlZCBiZWZvcmUgdGhlIGtlcm5lbCBpbml0 aWFsaXplcyB0aGUgQlNTIHNvIGl0IGNhbid0IGJlIGluIHRoZQo+Pj4gICAgICogQlNTLgo+Pj4g ICAgICovCj4+PiAtYXRvbWljX3QgaGFydF9sb3R0ZXJ5IF9fc2VjdGlvbigiLnNkYXRhIik7Cj4+ PiArYXRvbWljX3QgaGFydF9sb3R0ZXJ5IF9fc2VjdGlvbigiLnNkYXRhIikKPj4+ICsjaWZkZWYg Q09ORklHX1hJUF9LRVJORUwKPj4+ICs9IEFUT01JQ19JTklUKDB4QzAwMUJFRUYpCj4+PiArI2Vu ZGlmCj4+PiArOwo+Pj4gICAgdW5zaWduZWQgbG9uZyBib290X2NwdV9oYXJ0aWQ7Cj4+PiAgICBz dGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IGNwdSwgY3B1X2RldmljZXMpOwo+Pj4KPj4+IEBA IC0yNTQsNyArMjU4LDcgQEAgdm9pZCBfX2luaXQgc2V0dXBfYXJjaChjaGFyICoqY21kbGluZV9w KQo+Pj4gICAgI2lmIElTX0VOQUJMRUQoQ09ORklHX0JVSUxUSU5fRFRCKQo+Pj4gICAgICAgIHVu ZmxhdHRlbl9hbmRfY29weV9kZXZpY2VfdHJlZSgpOwo+Pj4gICAgI2Vsc2UKPj4+IC0gICAgIGlm IChlYXJseV9pbml0X2R0X3ZlcmlmeShfX3ZhKGR0Yl9lYXJseV9wYSkpKQo+Pj4gKyAgICAgaWYg KGVhcmx5X2luaXRfZHRfdmVyaWZ5KGR0Yl9lYXJseV92YSkpCj4+PiAgICAgICAgICAgICAgICB1 bmZsYXR0ZW5fZGV2aWNlX3RyZWUoKTsKPj4+ICAgICAgICBlbHNlCj4+PiAgICAgICAgICAgICAg ICBwcl9lcnIoIk5vIERUQiBmb3VuZCBpbiBrZXJuZWwgbWFwcGluZ3NcbiIpOwo+Pj4gZGlmZiAt LWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3ZtbGludXgteGlwLmxkcy5TIGIvYXJjaC9yaXNjdi9r ZXJuZWwvdm1saW51eC14aXAubGRzLlMKPj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+PiBpbmRl eCAwMDAwMDAwMDAwMDAuLjlmMGYwOGMzNGNkMwo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4gKysrIGIv YXJjaC9yaXNjdi9rZXJuZWwvdm1saW51eC14aXAubGRzLlMKPj4+IEBAIC0wLDAgKzEsMTMyIEBA Cj4+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLwo+Pj4gKy8q Cj4+PiArICogQ29weXJpZ2h0IChDKSAyMDEyIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2Yg Q2FsaWZvcm5pYQo+Pj4gKyAqIENvcHlyaWdodCAoQykgMjAxNyBTaUZpdmUKPj4+ICsgKiBDb3B5 cmlnaHQgKEMpIDIwMjAgVml0YWx5IFdvb2wsIEtvbnN1bGtvIEFCCj4+PiArICovCj4+PiArCj4+ PiArI2RlZmluZSBMT0FEX09GRlNFVCBYSVBfVklSVF9BRERSKENPTkZJR19YSVBfUEhZU19BRERS KQo+Pj4gKy8qIE5vIF9fcm9fYWZ0ZXJfaW5pdCBkYXRhIGluIHRoZSAucm9kYXRhIHNlY3Rpb24g LSB3aGljaCB3aWxsIGFsd2F5cyBiZSBybyAqLwo+Pj4gKyNkZWZpbmUgUk9fQUZURVJfSU5JVF9E QVRBCj4+PiArCj4+PiArI2luY2x1ZGUgPGFzbS92bWxpbnV4Lmxkcy5oPgo+Pj4gKyNpbmNsdWRl IDxhc20vcGFnZS5oPgo+Pj4gKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgo+Pj4gKyNpbmNsdWRl IDxhc20vY2FjaGUuaD4KPj4+ICsjaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+Cj4+PiArCj4+ PiArT1VUUFVUX0FSQ0gocmlzY3YpCj4+PiArRU5UUlkoX3N0YXJ0KQo+Pj4gKwo+Pj4gK2ppZmZp ZXMgPSBqaWZmaWVzXzY0Owo+Pj4gKwo+Pj4gK1NFQ1RJT05TCj4+PiArewo+Pj4gKyAgICAgLyog QmVnaW5uaW5nIG9mIGNvZGUgYW5kIHRleHQgc2VnbWVudCAqLwo+Pj4gKyAgICAgLiA9IFhJUF9W SVJUX0FERFIoQ09ORklHX1hJUF9QSFlTX0FERFIpOwo+Pj4gKyAgICAgX3hpcHJvbSA9IC47Cj4+ PiArICAgICBfc3RhcnQgPSAuOwo+Pj4gKyAgICAgSEVBRF9URVhUX1NFQ1RJT04KPj4+ICsgICAg IElOSVRfVEVYVF9TRUNUSU9OKFBBR0VfU0laRSkKPj4+ICsgICAgIC8qIHdlIGhhdmUgdG8gZGlz Y2FyZCBleGl0IHRleHQgYW5kIHN1Y2ggYXQgcnVudGltZSwgbm90IGxpbmsgdGltZSAqLwo+Pj4g KyAgICAgLmV4aXQudGV4dCA6Cj4+PiArICAgICB7Cj4+PiArICAgICAgICAgICAgIEVYSVRfVEVY VAo+Pj4gKyAgICAgfQo+Pj4gKwo+Pj4gKyAgICAgLnRleHQgOiB7Cj4+PiArICAgICAgICAgICAg IF90ZXh0ID0gLjsKPj4+ICsgICAgICAgICAgICAgX3N0ZXh0ID0gLjsKPj4+ICsgICAgICAgICAg ICAgVEVYVF9URVhUCj4+PiArICAgICAgICAgICAgIFNDSEVEX1RFWFQKPj4+ICsgICAgICAgICAg ICAgQ1BVSURMRV9URVhUCj4+PiArICAgICAgICAgICAgIExPQ0tfVEVYVAo+Pj4gKyAgICAgICAg ICAgICBLUFJPQkVTX1RFWFQKPj4+ICsgICAgICAgICAgICAgRU5UUllfVEVYVAo+Pj4gKyAgICAg ICAgICAgICBJUlFFTlRSWV9URVhUCj4+PiArICAgICAgICAgICAgIFNPRlRJUlFFTlRSWV9URVhU Cj4+PiArICAgICAgICAgICAgICooLmZpeHVwKQo+Pj4gKyAgICAgICAgICAgICBfZXRleHQgPSAu Owo+Pj4gKyAgICAgfQo+Pj4gKyAgICAgUk9fREFUQShMMV9DQUNIRV9CWVRFUykKPj4+ICsgICAg IC5zcm9kYXRhIDogewo+Pj4gKyAgICAgICAgICAgICAqKC5zcm9kYXRhKikKPj4+ICsgICAgIH0K Pj4+ICsgICAgIC5pbml0LnJvZGF0YSA6IHsKPj4+ICsgICAgICAgICAgICAgSU5JVF9TRVRVUCgx NikKPj4+ICsgICAgICAgICAgICAgSU5JVF9DQUxMUwo+Pj4gKyAgICAgICAgICAgICBDT05fSU5J VENBTEwKPj4+ICsgICAgICAgICAgICAgSU5JVF9SQU1fRlMKPj4+ICsgICAgIH0KPj4+ICsgICAg IF9leGlwcm9tID0gLjsgICAgICAgICAgICAgICAgICAgLyogRW5kIG9mIFhJUCBST00gYXJlYSAq Lwo+Pj4gKwo+Pj4gKwo+Pj4gKy8qCj4+PiArICogRnJvbSB0aGlzIHBvaW50LCBzdHVmZiBpcyBj b25zaWRlcmVkIHdyaXRhYmxlIGFuZCB3aWxsIGJlIGNvcGllZCB0byBSQU0KPj4+ICsgKi8KPj4+ ICsgICAgIF9fZGF0YV9sb2MgPSBBTElHTigxNik7ICAgICAgICAgLyogbG9jYXRpb24gaW4gZmls ZSAqLwo+Pj4gKyAgICAgLiA9IFBBR0VfT0ZGU0VUOyAgICAgICAgICAgICAgICAvKiBsb2NhdGlv biBpbiBtZW1vcnkgKi8KPj4+ICsKPj4+ICsgICAgIF9zZGF0YSA9IC47ICAgICAgICAgICAgICAg ICAgICAgLyogU3RhcnQgb2YgZGF0YSBzZWN0aW9uICovCj4+PiArICAgICBfZGF0YSA9IC47Cj4+ PiArICAgICBSV19EQVRBKEwxX0NBQ0hFX0JZVEVTLCBQQUdFX1NJWkUsIFRIUkVBRF9TSVpFKQo+ Pj4gKyAgICAgX2VkYXRhID0gLjsKPj4+ICsgICAgIF9fc3RhcnRfcm9fYWZ0ZXJfaW5pdCA9IC47 Cj4+PiArICAgICAuZGF0YS5yb19hZnRlcl9pbml0IDogQVQoQUREUiguZGF0YS5yb19hZnRlcl9p bml0KSAtIExPQURfT0ZGU0VUKSB7Cj4+PiArICAgICAgICAgICAgICooLmRhdGEuLnJvX2FmdGVy X2luaXQpCj4+PiArICAgICB9Cj4+PiArICAgICBfX2VuZF9yb19hZnRlcl9pbml0ID0gLjsKPj4+ ICsKPj4+ICsgICAgIC4gPSBBTElHTihQQUdFX1NJWkUpOwo+Pj4gKyAgICAgX19pbml0X2JlZ2lu ID0gLjsKPj4+ICsgICAgIC5pbml0LmRhdGEgOiB7Cj4+PiArICAgICAgICAgICAgIElOSVRfREFU QQo+Pj4gKyAgICAgfQo+Pj4gKyAgICAgLmV4aXQuZGF0YSA6IHsKPj4+ICsgICAgICAgICAgICAg RVhJVF9EQVRBCj4+PiArICAgICB9Cj4+PiArICAgICAuID0gQUxJR04oOCk7Cj4+PiArICAgICBf X3NvY19lYXJseV9pbml0X3RhYmxlIDogewo+Pj4gKyAgICAgICAgICAgICBfX3NvY19lYXJseV9p bml0X3RhYmxlX3N0YXJ0ID0gLjsKPj4+ICsgICAgICAgICAgICAgS0VFUCgqKF9fc29jX2Vhcmx5 X2luaXRfdGFibGUpKQo+Pj4gKyAgICAgICAgICAgICBfX3NvY19lYXJseV9pbml0X3RhYmxlX2Vu ZCA9IC47Cj4+PiArICAgICB9Cj4+PiArICAgICBfX3NvY19idWlsdGluX2R0Yl90YWJsZSA6IHsK Pj4+ICsgICAgICAgICAgICAgX19zb2NfYnVpbHRpbl9kdGJfdGFibGVfc3RhcnQgPSAuOwo+Pj4g KyAgICAgICAgICAgICBLRUVQKCooX19zb2NfYnVpbHRpbl9kdGJfdGFibGUpKQo+Pj4gKyAgICAg ICAgICAgICBfX3NvY19idWlsdGluX2R0Yl90YWJsZV9lbmQgPSAuOwo+Pj4gKyAgICAgfQo+Pj4g KyAgICAgUEVSQ1BVX1NFQ1RJT04oTDFfQ0FDSEVfQllURVMpCj4+PiArCj4+PiArICAgICAuID0g QUxJR04oUEFHRV9TSVpFKTsKPj4+ICsgICAgIF9faW5pdF9lbmQgPSAuOwo+Pj4gKwo+Pj4gKyAg ICAgLnNkYXRhIDogewo+Pj4gKyAgICAgICAgICAgICBfX2dsb2JhbF9wb2ludGVyJCA9IC4gKyAw eDgwMDsKPj4+ICsgICAgICAgICAgICAgKiguc2RhdGEqKQo+Pj4gKyAgICAgICAgICAgICAqKC5z YnNzKikKPj4+ICsgICAgIH0KPj4+ICsKPj4+ICsgICAgIEJTU19TRUNUSU9OKFBBR0VfU0laRSwg UEFHRV9TSVpFLCAwKQo+Pj4gKyAgICAgRVhDRVBUSU9OX1RBQkxFKDB4MTApCj4+PiArCj4+PiAr ICAgICAucmVsLmR5biA6IEFUKEFERFIoLnJlbC5keW4pIC0gTE9BRF9PRkZTRVQpIHsKPj4+ICsg ICAgICAgICAgICAgKigucmVsLmR5biopCj4+PiArICAgICB9Cj4+PiArCj4+PiArICAgICAvKgo+ Pj4gKyAgICAgICogRW5kIG9mIGNvcGllZCBkYXRhLiBXZSBuZWVkIGEgZHVtbXkgc2VjdGlvbiB0 byBnZXQgaXRzIExNQS4KPj4+ICsgICAgICAqIEFsc28gbG9jYXRlZCBiZWZvcmUgZmluYWwgQUxJ R04oKSBhcyB0cmFpbGluZyBwYWRkaW5nIGlzIG5vdCBzdG9yZWQKPj4+ICsgICAgICAqIGluIHRo ZSByZXN1bHRpbmcgYmluYXJ5IGZpbGUgYW5kIHVzZWxlc3MgdG8gY29weS4KPj4+ICsgICAgICAq Lwo+Pj4gKyAgICAgLmRhdGEuZW5kbWFyayA6IEFUKEFERFIoLmRhdGEuZW5kbWFyaykgLSBMT0FE X09GRlNFVCkgeyB9Cj4+PiArICAgICBfZWRhdGFfbG9jID0gTE9BREFERFIoLmRhdGEuZW5kbWFy ayk7Cj4+PiArCj4+PiArICAgICAuID0gQUxJR04oUEFHRV9TSVpFKTsKPj4+ICsgICAgIF9lbmQg PSAuOwo+Pj4gKwo+Pj4gKyAgICAgU1RBQlNfREVCVUcKPj4+ICsgICAgIERXQVJGX0RFQlVHCj4+ PiArCj4+PiArICAgICBESVNDQVJEUwo+Pj4gK30KPj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2 L2tlcm5lbC92bWxpbnV4Lmxkcy5TIGIvYXJjaC9yaXNjdi9rZXJuZWwvdm1saW51eC5sZHMuUwo+ Pj4gaW5kZXggZGUwM2NiMjJkMGU5Li42NzQ1ZWMzMjU5MzAgMTAwNjQ0Cj4+PiAtLS0gYS9hcmNo L3Jpc2N2L2tlcm5lbC92bWxpbnV4Lmxkcy5TCj4+PiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC92 bWxpbnV4Lmxkcy5TCj4+PiBAQCAtNCw3ICs0LDEyIEBACj4+PiAgICAgKiBDb3B5cmlnaHQgKEMp IDIwMTcgU2lGaXZlCj4+PiAgICAgKi8KPj4+Cj4+PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVM Cj4+PiArI2luY2x1ZGUgInZtbGludXgteGlwLmxkcy5TIgo+Pj4gKyNlbHNlCj4+PiArCj4+PiAg ICAjZGVmaW5lIExPQURfT0ZGU0VUIFBBR0VfT0ZGU0VUCj4+PiArCj4+PiAgICAjaW5jbHVkZSA8 YXNtL3ZtbGludXgubGRzLmg+Cj4+PiAgICAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KPj4+ICAgICNp bmNsdWRlIDxhc20vY2FjaGUuaD4KPj4+IEBAIC0xMzIsMyArMTM3LDQgQEAgU0VDVElPTlMKPj4+ Cj4+PiAgICAgICAgRElTQ0FSRFMKPj4+ICAgIH0KPj4+ICsjZW5kaWYgLyogQ09ORklHX1hJUF9L RVJORUwgKi8KPj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L21tL2luaXQuYyBiL2FyY2gvcmlz Y3YvbW0vaW5pdC5jCj4+PiBpbmRleCAwNjc1ODNhYjFiZDcuLmI1YWM0NTVjYjE1OSAxMDA2NDQK Pj4+IC0tLSBhL2FyY2gvcmlzY3YvbW0vaW5pdC5jCj4+PiArKysgYi9hcmNoL3Jpc2N2L21tL2lu aXQuYwo+Pj4gQEAgLTMxLDggKzMxLDggQEAgRVhQT1JUX1NZTUJPTChlbXB0eV96ZXJvX3BhZ2Up Owo+Pj4KPj4+ICAgIGV4dGVybiBjaGFyIF9zdGFydFtdOwo+Pj4gICAgI2RlZmluZSBEVEJfRUFS TFlfQkFTRV9WQSAgICAgIFBHRElSX1NJWkUKPj4+IC12b2lkICpkdGJfZWFybHlfdmEgX19pbml0 ZGF0YTsKPj4+IC11aW50cHRyX3QgZHRiX2Vhcmx5X3BhIF9faW5pdGRhdGE7Cj4+PiArdm9pZCAq X2R0Yl9lYXJseV92YSBfX2luaXRkYXRhOwo+Pj4gK3VpbnRwdHJfdCBfZHRiX2Vhcmx5X3BhIF9f aW5pdGRhdGE7Cj4+Pgo+Pj4gICAgc3RydWN0IHB0X2FsbG9jX29wcyB7Cj4+PiAgICAgICAgcHRl X3QgKigqZ2V0X3B0ZV92aXJ0KShwaHlzX2FkZHJfdCBwYSk7Cj4+PiBAQCAtODgsNiArODgsMTAg QEAgc3RhdGljIHZvaWQgcHJpbnRfdm1fbGF5b3V0KHZvaWQpCj4+PiAgICAgICAgICAgICAgICAg ICh1bnNpZ25lZCBsb25nKVZNQUxMT0NfRU5EKTsKPj4+ICAgICAgICBwcmludF9tbG0oImxvd21l bSIsICh1bnNpZ25lZCBsb25nKVBBR0VfT0ZGU0VULAo+Pj4gICAgICAgICAgICAgICAgICAodW5z aWduZWQgbG9uZyloaWdoX21lbW9yeSk7Cj4+PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4+ PiArICAgICBwcmludF9tbG0oInhpcCIsICh1bnNpZ25lZCBsb25nKVhJUF9WSVJUX0FERFJfU1RB UlQsCj4+PiArICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpWElQX1ZJUlRfQUREUl9TVEFS VCArIFNaXzE2TSk7Cj4+PiArI2VuZGlmIC8qIENPTkZJR19YSVBfS0VSTkVMICovCj4+PiAgICB9 Cj4+PiAgICAjZWxzZQo+Pj4gICAgc3RhdGljIHZvaWQgcHJpbnRfdm1fbGF5b3V0KHZvaWQpIHsg fQo+Pj4gQEAgLTExMyw2ICsxMTcsMTAgQEAgdm9pZCBfX2luaXQgc2V0dXBfYm9vdG1lbSh2b2lk KQo+Pj4gICAgICAgIHBoeXNfYWRkcl90IGRyYW1fZW5kID0gbWVtYmxvY2tfZW5kX29mX0RSQU0o KTsKPj4+ICAgICAgICBwaHlzX2FkZHJfdCBtYXhfbWFwcGVkX2FkZHIgPSBfX3BhKH4odWxvbmcp MCk7Cj4+Pgo+Pj4gKyNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+Pj4gKyAgICAgdm1saW51eF9z dGFydCA9IF9fcGFfc3ltYm9sKCZfc2RhdGEpOwo+Pj4gKyNlbmRpZgo+Pgo+PiBOaXQ6IEkgd291 bGQgdXNlIElTX0VOQUJMRUQoQ09ORklHX1hJUF9LRVJORUwpIHRvIGF2b2lkIGRvdWJsZQo+PiBh c3NpZ25tZW50IGluIGNhc2UgQ09ORklHX1hJUF9LRVJORUwgaXMgc2V0Lgo+Pgo+Pj4gKwo+Pj4g ICAgICAgIC8qIFRoZSBtYXhpbWFsIHBoeXNpY2FsIG1lbW9yeSBzaXplIGlzIC1QQUdFX09GRlNF VC4gKi8KPj4+ICAgICAgICBtZW1ibG9ja19lbmZvcmNlX21lbW9yeV9saW1pdCgtUEFHRV9PRkZT RVQpOwo+Pj4KPj4+IEBAIC0xNDgsMTEgKzE1NiwyNyBAQCB2b2lkIF9faW5pdCBzZXR1cF9ib290 bWVtKHZvaWQpCj4+PiAgICAgICAgbWVtYmxvY2tfYWxsb3dfcmVzaXplKCk7Cj4+PiAgICB9Cj4+ Pgo+Pj4gKyNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+Pj4gKwo+Pj4gK2V4dGVybiBjaGFyIF94 aXByb21bXSwgX2V4aXByb21bXTsKPj4+ICtleHRlcm4gY2hhciBfc2RhdGFbXSwgX2VkYXRhW107 Cj4+PiArCj4+PiArI2VuZGlmIC8qIENPTkZJR19YSVBfS0VSTkVMICovCj4+PiArCj4+PiAgICAj aWZkZWYgQ09ORklHX01NVQo+Pj4gLXN0YXRpYyBzdHJ1Y3QgcHRfYWxsb2Nfb3BzIHB0X29wczsK Pj4+ICtzdGF0aWMgc3RydWN0IHB0X2FsbG9jX29wcyBfcHRfb3BzOwo+Pj4gKwo+Pj4gKyNpZmRl ZiBDT05GSUdfWElQX0tFUk5FTAo+Pj4gKyNkZWZpbmUgcHRfb3BzICgqKHN0cnVjdCBwdF9hbGxv Y19vcHMgKilYSVBfRklYVVAoJl9wdF9vcHMpKQo+Pj4gKyNlbHNlCj4+PiArI2RlZmluZSBwdF9v cHMgICAgICAgX3B0X29wcwo+Pj4gKyNlbmRpZgo+Pj4KPj4+ICAgIHVuc2lnbmVkIGxvbmcgdmFf cGFfb2Zmc2V0Owo+Pj4gICAgRVhQT1JUX1NZTUJPTCh2YV9wYV9vZmZzZXQpOwo+Pj4gKyNpZmRl ZiBDT05GSUdfWElQX0tFUk5FTAo+Pj4gKyNkZWZpbmUgdmFfcGFfb2Zmc2V0ICgqKCh1bnNpZ25l ZCBsb25nICopWElQX0ZJWFVQKCZ2YV9wYV9vZmZzZXQpKSkKPj4+ICsjZW5kaWYKPj4+ICAgIHVu c2lnbmVkIGxvbmcgcGZuX2Jhc2U7Cj4+PiAgICBFWFBPUlRfU1lNQk9MKHBmbl9iYXNlKTsKPj4+ Cj4+PiBAQCAtMTYyLDYgKzE4NiwxMiBAQCBwdGVfdCBmaXhtYXBfcHRlW1BUUlNfUEVSX1BURV0g X19wYWdlX2FsaWduZWRfYnNzOwo+Pj4KPj4+ICAgIHBnZF90IGVhcmx5X3BnX2RpcltQVFJTX1BF Ul9QR0RdIF9faW5pdGRhdGEgX19hbGlnbmVkKFBBR0VfU0laRSk7Cj4+Pgo+Pj4gKyNpZmRlZiBD T05GSUdfWElQX0tFUk5FTAo+Pj4gKyNkZWZpbmUgdHJhbXBvbGluZV9wZ19kaXIgICAgKChwZ2Rf dCAqKVhJUF9GSVhVUCh0cmFtcG9saW5lX3BnX2RpcikpCj4+PiArI2RlZmluZSBmaXhtYXBfcHRl ICAgICAgICAgICAoKHB0ZV90ICopWElQX0ZJWFVQKGZpeG1hcF9wdGUpKQo+Pj4gKyNkZWZpbmUg ZWFybHlfcGdfZGlyICAgICAgICAgKChwZ2RfdCAqKVhJUF9GSVhVUChlYXJseV9wZ19kaXIpKQo+ Pj4gKyNlbmRpZiAvKiBDT05GSUdfWElQX0tFUk5FTCAqLwo+Pj4gKwo+Pj4gICAgdm9pZCBfX3Nl dF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCBwaHlzX2FkZHJfdCBwaHlzLCBwZ3By b3RfdCBwcm90KQo+Pj4gICAgewo+Pj4gICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkciA9IF9fZml4 X3RvX3ZpcnQoaWR4KTsKPj4+IEBAIC0yMzcsNiArMjY3LDE1IEBAIHBtZF90IGZpeG1hcF9wbWRb UFRSU19QRVJfUE1EXSBfX3BhZ2VfYWxpZ25lZF9ic3M7Cj4+PiAgICBwbWRfdCBlYXJseV9wbWRb UFRSU19QRVJfUE1EXSBfX2luaXRkYXRhIF9fYWxpZ25lZChQQUdFX1NJWkUpOwo+Pj4gICAgcG1k X3QgZWFybHlfZHRiX3BtZFtQVFJTX1BFUl9QTURdIF9faW5pdGRhdGEgX19hbGlnbmVkKFBBR0Vf U0laRSk7Cj4+Pgo+Pj4gKyNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+Pj4gK3BtZF90IHhpcF9w bWRbUFRSU19QRVJfUE1EXSBfX3BhZ2VfYWxpZ25lZF9ic3M7Cj4+PiArCj4+PiArI2RlZmluZSB0 cmFtcG9saW5lX3BtZCAgICAgICAoKHBtZF90ICopWElQX0ZJWFVQKHRyYW1wb2xpbmVfcG1kKSkK Pj4+ICsjZGVmaW5lIGZpeG1hcF9wbWQgICAoKHBtZF90ICopWElQX0ZJWFVQKGZpeG1hcF9wbWQp KQo+Pj4gKyNkZWZpbmUgeGlwX3BtZCAgICAgICAgICAgICAgKChwbWRfdCAqKVhJUF9GSVhVUCh4 aXBfcG1kKSkKPj4+ICsjZGVmaW5lIGVhcmx5X3BtZCAgICAoKHBtZF90ICopWElQX0ZJWFVQKGVh cmx5X3BtZCkpCj4+PiArI2VuZGlmIC8qIENPTkZJR19YSVBfS0VSTkVMICovCj4+PiArCj4+PiAg ICBzdGF0aWMgcG1kX3QgKl9faW5pdCBnZXRfcG1kX3ZpcnRfZWFybHkocGh5c19hZGRyX3QgcGEp Cj4+PiAgICB7Cj4+PiAgICAgICAgLyogQmVmb3JlIE1NVSBpcyBlbmFibGVkICovCj4+PiBAQCAt MzUzLDYgKzM5MiwxOSBAQCBzdGF0aWMgdWludHB0cl90IF9faW5pdCBiZXN0X21hcF9zaXplKHBo eXNfYWRkcl90IGJhc2UsIHBoeXNfYWRkcl90IHNpemUpCj4+PiAgICAgICAgcmV0dXJuIFBNRF9T SVpFOwo+Pj4gICAgfQo+Pj4KPj4+ICsjaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPj4+ICsvKiBj YWxsZWQgZnJvbSBoZWFkLlMgd2l0aCBNTVUgb2ZmICovCj4+PiArYXNtbGlua2FnZSB2b2lkIF9f aW5pdCBfX2NvcHlfZGF0YSh2b2lkKQo+Pj4gK3sKPj4+ICsgICAgIHZvaWQgKmZyb20gPSAodm9p ZCAqKSgmX3NkYXRhKTsKPj4+ICsgICAgIHZvaWQgKmVuZCA9ICh2b2lkICopKCZfZW5kKTsKPj4+ ICsgICAgIHZvaWQgKnRvID0gKHZvaWQgKilDT05GSUdfWElQX1BIWVNfUkFNX0JBU0U7Cj4+PiAr ICAgICBzaXplX3Qgc3ogPSAoc2l6ZV90KShlbmQgLSBmcm9tKTsKPj4+ICsKPj4+ICsgICAgIG1l bWNweSh0bywgZnJvbSwgc3opOwo+Pj4gK30KPj4+ICsjZW5kaWYKPj4+ICsKPj4+ICAgIC8qCj4+ PiAgICAgKiBzZXR1cF92bSgpIGlzIGNhbGxlZCBmcm9tIGhlYWQuUyB3aXRoIE1NVS1vZmYuCj4+ PiAgICAgKgo+Pj4gQEAgLTM3Myw3ICs0MjUsOCBAQCBzdGF0aWMgdWludHB0cl90IF9faW5pdCBi ZXN0X21hcF9zaXplKHBoeXNfYWRkcl90IGJhc2UsIHBoeXNfYWRkcl90IHNpemUpCj4+Pgo+Pj4g ICAgYXNtbGlua2FnZSB2b2lkIF9faW5pdCBzZXR1cF92bSh1aW50cHRyX3QgZHRiX3BhKQo+Pj4g ICAgewo+Pj4gLSAgICAgdWludHB0cl90IHZhLCBwYSwgZW5kX3ZhOwo+Pj4gKyAgICAgdWludHB0 cl90IHZhLCBlbmRfdmE7Cj4+PiArICAgICB1aW50cHRyX3QgX19tYXliZV91bnVzZWQgcGE7Cj4+ PiAgICAgICAgdWludHB0cl90IGxvYWRfcGEgPSAodWludHB0cl90KSgmX3N0YXJ0KTsKPj4+ICAg ICAgICB1aW50cHRyX3QgbG9hZF9zeiA9ICh1aW50cHRyX3QpKCZfZW5kKSAtIGxvYWRfcGE7Cj4+ PiAgICAgICAgdWludHB0cl90IG1hcF9zaXplOwo+Pj4gQEAgLTM4MSw2ICs0MzQsMTMgQEAgYXNt bGlua2FnZSB2b2lkIF9faW5pdCBzZXR1cF92bSh1aW50cHRyX3QgZHRiX3BhKQo+Pj4gICAgICAg IHBtZF90IGZpeF9ibWFwX3NwbWQsIGZpeF9ibWFwX2VwbWQ7Cj4+PiAgICAjZW5kaWYKPj4+Cj4+ PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4+PiArICAgICB1aW50cHRyX3QgeGlwcm9tID0g KHVpbnRwdHJfdClDT05GSUdfWElQX1BIWVNfQUREUjsKPj4+ICsgICAgIHVpbnRwdHJfdCB4aXBy b21fc3ogPSAodWludHB0cl90KSgmX2V4aXByb20pIC0gKHVpbnRwdHJfdCkoJl94aXByb20pOwo+ Pj4gKwo+Pj4gKyAgICAgbG9hZF9wYSA9ICh1aW50cHRyX3QpQ09ORklHX1hJUF9QSFlTX1JBTV9C QVNFOwo+Pj4gKyAgICAgbG9hZF9zeiA9ICh1aW50cHRyX3QpKCZfZW5kKSAtICh1aW50cHRyX3Qp KCZfc2RhdGEpOwo+Pj4gKyNlbmRpZgo+Pj4gICAgICAgIHZhX3BhX29mZnNldCA9IFBBR0VfT0ZG U0VUIC0gbG9hZF9wYTsKPj4+ICAgICAgICBwZm5fYmFzZSA9IFBGTl9ET1dOKGxvYWRfcGEpOwo+ Pj4KPj4+IEBAIC00MTksNiArNDc5LDIxIEBAIGFzbWxpbmthZ2Ugdm9pZCBfX2luaXQgc2V0dXBf dm0odWludHB0cl90IGR0Yl9wYSkKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZF9w YSwgUEdESVJfU0laRSwgUEFHRV9LRVJORUxfRVhFQyk7Cj4+PiAgICAjZW5kaWYKPj4+Cj4+PiAr I2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4+PiArICAgICBjcmVhdGVfcGdkX21hcHBpbmcodHJh bXBvbGluZV9wZ19kaXIsIFhJUF9WSVJUX0FERFJfU1RBUlQsCj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgKHVpbnRwdHJfdCl4aXBfcG1kLCBQR0RJUl9TSVpFLCBQQUdFX1RBQkxFKTsKPj4+ ICsgICAgIGZvciAodmEgPSBYSVBfVklSVF9BRERSX1NUQVJUOwo+Pj4gKyAgICAgICAgICB2YSA8 IFhJUF9WSVJUX0FERFJfU1RBUlQgKyB4aXByb21fc3o7Cj4+PiArICAgICAgICAgIHZhICs9IFBN RF9TSVpFKSB7Cj4+PiArICAgICAgICAgICAgIGNyZWF0ZV9wbWRfbWFwcGluZyh4aXBfcG1kLCB2 YSwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhpcHJvbSArICh2YSAtIFhJ UF9WSVJUX0FERFJfU1RBUlQpLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UE1EX1NJWkUsIFBBR0VfS0VSTkVMX0VYRUMpOwo+Pj4gKyAgICAgfQo+Pj4gKwo+Pj4gKyAgICAg Y3JlYXRlX3BnZF9tYXBwaW5nKGVhcmx5X3BnX2RpciwgWElQX1ZJUlRfQUREUl9TVEFSVCwKPj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAodWludHB0cl90KXhpcF9wbWQsIFBHRElSX1NJWkUs IFBBR0VfVEFCTEUpOwo+Pj4gKyNlbmRpZgo+Pj4gKwo+Pj4gICAgICAgIC8qCj4+PiAgICAgICAg ICogU2V0dXAgZWFybHkgUEdEIGNvdmVyaW5nIGVudGlyZSBrZXJuZWwgd2hpY2ggd2lsbCBhbGxv d3MKPj4+ICAgICAgICAgKiB1cyB0byByZWFjaCBwYWdpbmdfaW5pdCgpLiBXZSBtYXAgYWxsIG1l bW9yeSBiYW5rcyBsYXRlcgo+Pj4gQEAgLTQ0Myw3ICs1MTgsNyBAQCBhc21saW5rYWdlIHZvaWQg X19pbml0IHNldHVwX3ZtKHVpbnRwdHJfdCBkdGJfcGEpCj4+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhICsgUE1EX1NJWkUsIFBNRF9TSVpFLCBQQUdFX0tFUk5FTCk7Cj4+PiAgICAgICAg ZHRiX2Vhcmx5X3ZhID0gKHZvaWQgKilEVEJfRUFSTFlfQkFTRV9WQSArIChkdGJfcGEgJiAoUE1E X1NJWkUgLSAxKSk7Cj4+PiAgICAjZWxzZSAvKiBDT05GSUdfQlVJTFRJTl9EVEIgKi8KPj4+IC0g ICAgIGR0Yl9lYXJseV92YSA9IF9fdmEoZHRiX3BhKTsKPj4+ICsgICAgIGR0Yl9lYXJseV92YSA9 IF9fdmEoWElQX0ZJWFVQKGR0Yl9wYSkpOwo+Pj4gICAgI2VuZGlmIC8qIENPTkZJR19CVUlMVElO X0RUQiAqLwo+Pj4gICAgI2Vsc2UKPj4+ICAgICNpZm5kZWYgQ09ORklHX0JVSUxUSU5fRFRCCj4+ PiBAQCAtNDU1LDcgKzUzMCw3IEBAIGFzbWxpbmthZ2Ugdm9pZCBfX2luaXQgc2V0dXBfdm0odWlu dHB0cl90IGR0Yl9wYSkKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGEgKyBQR0RJUl9T SVpFLCBQR0RJUl9TSVpFLCBQQUdFX0tFUk5FTCk7Cj4+PiAgICAgICAgZHRiX2Vhcmx5X3ZhID0g KHZvaWQgKilEVEJfRUFSTFlfQkFTRV9WQSArIChkdGJfcGEgJiAoUEdESVJfU0laRSAtIDEpKTsK Pj4+ICAgICNlbHNlIC8qIENPTkZJR19CVUlMVElOX0RUQiAqLwo+Pj4gLSAgICAgZHRiX2Vhcmx5 X3ZhID0gX192YShkdGJfcGEpOwo+Pj4gKyAgICAgZHRiX2Vhcmx5X3ZhID0gX192YShYSVBfRklY VVAoZHRiX3BhKSk7Cj4+PiAgICAjZW5kaWYgLyogQ09ORklHX0JVSUxUSU5fRFRCICovCj4+PiAg ICAjZW5kaWYKPj4+ICAgICAgICBkdGJfZWFybHlfcGEgPSBkdGJfcGE7Cj4+PiBAQCAtNDk2LDYg KzU3MSw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF92bV9maW5hbCh2b2lkKQo+Pj4gICAg ICAgIHVpbnRwdHJfdCB2YSwgbWFwX3NpemU7Cj4+PiAgICAgICAgcGh5c19hZGRyX3QgcGEsIHN0 YXJ0LCBlbmQ7Cj4+PiAgICAgICAgdTY0IGk7Cj4+PiArI2lmZGVmIENPTkZJR19YSVBfS0VSTkVM Cj4+PiArICAgICB1aW50cHRyX3QgeGlwcm9tX3N6ID0gKHVpbnRwdHJfdCkoJl9leGlwcm9tKSAt ICh1aW50cHRyX3QpKCZfeGlwcm9tKTsKPj4+ICsjZW5kaWYKPj4+Cj4+PiAgICAgICAgLyoqCj4+ PiAgICAgICAgICogTU1VIGlzIGVuYWJsZWQgYXQgdGhpcyBwb2ludC4gQnV0IHBhZ2UgdGFibGUg c2V0dXAgaXMgbm90IGNvbXBsZXRlIHlldC4KPj4+IEBAIC01MjcsNiArNjA1LDE2IEBAIHN0YXRp YyB2b2lkIF9faW5pdCBzZXR1cF92bV9maW5hbCh2b2lkKQo+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWFwX3NpemUsIFBBR0VfS0VSTkVMX0VYRUMpOwo+Pj4g ICAgICAgICAgICAgICAgfQo+Pj4gICAgICAgIH0KPj4+ICsjaWZkZWYgQ09ORklHX1hJUF9LRVJO RUwKPj4+ICsgICAgIG1hcF9zaXplID0gYmVzdF9tYXBfc2l6ZShDT05GSUdfWElQX1BIWVNfQURE UiwgeGlwcm9tX3N6KTsKPj4+ICsgICAgIGZvciAodmEgPSBYSVBfVklSVF9BRERSX1NUQVJUOwo+ Pj4gKyAgICAgICAgICB2YSA8IFhJUF9WSVJUX0FERFJfU1RBUlQgKyB4aXByb21fc3o7Cj4+PiAr ICAgICAgICAgIHZhICs9IG1hcF9zaXplKQo+Pj4gKyAgICAgICAgICAgICBjcmVhdGVfcGdkX21h cHBpbmcoc3dhcHBlcl9wZ19kaXIsIHZhLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ09ORklHX1hJUF9QSFlTX0FERFIgKyAodmEgLSBYSVBfVklSVF9BRERSX1NUQVJUKSwK Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcF9zaXplLCBQQUdFX0tFUk5F TF9FWEVDKTsKPj4+ICsKPj4+ICsjZW5kaWYKPj4+Cj4+PiAgICAgICAgLyogQ2xlYXIgZml4bWFw IFBURSBhbmQgUE1EIG1hcHBpbmdzICovCj4+PiAgICAgICAgY2xlYXJfZml4bWFwKEZJWF9QVEUp Owo+Pj4KPj4KPj4gQW5kIEknbSBub3Qgc3VyZSBJIHVuZGVyc3RhbmQgd2hpY2ggdmFyaWFibGVz IGFyZSByZXF1aXJlZCB0byBiZSBmaXh1cCwKPj4gY2FuIHlvdSBleHBsYWluIGl0IGEgYml0IG1v cmUgcGxlYXNlID8KPiAKPiBPbiBhIGhpZ2ggbGV2ZWwsIGFsbCB0aGUgUlcgc2VjdGlvbnMgYXJl IGNvcGllZCB0byBSQU0gYnV0IHdoaWxlIHRoZQo+IE1NVSBpcyBub3QgZW5hYmxlZCwgd2UgYXJl IGRlYWxpbmcgd2l0aCB0aGUgYWRkcmVzc2VzIGluIHRoZSBOT1IgZmxhc2gKPiBhbGwgdGhlIHdh eS4gVG8gcmVhZCBhbmQgbW9kaWZ5IHRoZSBSQU0gdmVyc2lvbnMgb2YgdmFyaWFibGVzIHdlIGRv Cj4gdGhpcyBYSVBfRklYVVAgdGhpbmcuCgpPayB0aGFua3MsIHdlJ2xsIG5lZWQgdG8gYmUgZXh0 cmEgY2FyZWZ1bCB3aGVuIHRvdWNoaW5nIHRoZSBwcmUtbW11IHpvbmUgCnRoZW4uCgo+IAo+IFBs ZWFzZSBjb21lIGJhY2sgaWYgdGhpcyBleHBsYW5hdGlvbiBpcyBub3QgY2xlYXIgZW5vdWdoLgo+ IAo+PiBBbmQgZmluYWxseSwgaG93IGNhbiB3ZSB0cnkgWElQX0tFUk5FTCBvbiBxZW11ID8KPiAK PiBJdCB3b3JrcyB3aXRoIFBvbGFyZmlyZSBJY2ljbGUgZW11bGF0aW9uLiBJJ20gdXNpbmcgdGhl IGZvbGxsb3dpbmcKPiBjb21tYW5kIGxpbmUgZm9yIHRlc3RpbmcgaXQ6Cj4gcWVtdS1zeXN0ZW0t cmlzY3Y2NCAtTSBtaWNyb2NoaXAtaWNpY2xlLWtpdCAtYmlvcwo+IHdvcmsvaGFydC1zb2Z0d2Fy ZS1zZXJ2aWNlcy9oc3MuYmluIC1zbXAgNSAtZHJpdmUKPiBpZj1zZCxmb3JtYXQ9cmF3LGZpbGU9 c2QxLmltZyAtbmljIHVzZXIsbW9kZWw9Y2FkZW5jZV9nZW0gLWRpc3BsYXkKPiBub25lIC1zZXJp YWwgbnVsbCAtY2hhcmRldgo+IHNvY2tldCxpZD1zZXJpYWwxLHBhdGg9L3RtcC9zZXJpYWwxLnNv Y2ssc2VydmVyIC1zZXJpYWwKPiBjaGFyZGV2OnNlcmlhbDEgLWRldmljZSBsb2FkZXIsYWRkcj0w eDIxMDAwMDAwLGZpbGU9eGlwSW1hZ2UgLUQKPiBxZW11LmxvZyAtbW9uaXRvciBzdGRpbwo+IAoK VGhhbmtzIGZvciB0aGUgcWVtdSBjb21tYW5kIGxpbmUgIQoKPiBUaGFua3MgYSBsb3QgZm9yIHRo ZSByZXZpZXcsCj4gCj4gQmVzdCByZWdhcmRzLAo+ICAgICBWaXRhbHkKClRoYW5rcywKCkFsZXgK Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBs aW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKPiBsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3Jn Cj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNj dgo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=