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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A5C60C433EF for ; Mon, 27 Jun 2022 10:32:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233727AbiF0Kcy (ORCPT ); Mon, 27 Jun 2022 06:32:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38888 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232654AbiF0Kcx (ORCPT ); Mon, 27 Jun 2022 06:32:53 -0400 Received: from m1524.mail.126.com (m1524.mail.126.com [220.181.15.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id B10CC6261 for ; Mon, 27 Jun 2022 03:32:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=Date:From:Subject:MIME-Version:Message-ID; bh=STFs+ Th/xkRNPVzTE5uxrlOproRyZnz804b3VM96nVo=; b=XlMYF7G+b9GSAKuDfHf4t mhJnI8qZRrGYma+WLXRa2rSaSqs9lUuEB3hVQ0ftdqTN6C4yoJhY9ZtC2mwkgz3g f9K/igBV6SZ1sEY1XzVnhSR8q7SocGkm/85sCTafUYaHMpHBNGtRz2haVLgmOTPx ez+xp6KcB4C0S4oMJAdI44= Received: from windhl$126.com ( [128.199.211.230, 14.29.82.34] ) by ajax-webmail-wmsvr24 (Coremail) ; Mon, 27 Jun 2022 18:32:24 +0800 (CST) X-Originating-IP: [128.199.211.230, 14.29.82.34] Date: Mon, 27 Jun 2022 18:32:24 +0800 (CST) From: "Liang He" To: Claudiu.Beznea@microchip.com Cc: mturquette@baylibre.com, sboyd@kernel.org, Nicolas.Ferre@microchip.com, alexandre.belloni@bootlin.com, linux-clk@vger.kernel.org Subject: Re:Re: [PATCH] clk/at91: Hold reference returned by of_get_parent() X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.13 build 20220113(9671e152) Copyright (c) 2002-2022 www.mailtech.cn 126com In-Reply-To: References: <20220624105958.4184250-1-windhl@126.com> Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=GBK MIME-Version: 1.0 Message-ID: <1c40621.78fc.181a4b8363c.Coremail.windhl@126.com> X-Coremail-Locale: zh_CN X-CM-TRANSID: GMqowAD3_iY5h7lif8U9AA--.38989W X-CM-SenderInfo: hzlqvxbo6rjloofrz/1tbi2hotF1uwMS8Y+wABst X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org CgoKCgoKQXQgMjAyMi0wNi0yNyAxNzowNToxOCwgQ2xhdWRpdS5CZXpuZWFAbWljcm9jaGlwLmNv bSB3cm90ZToKPkhpLCBMaWFuZywKPgo+UGF0Y2ggdGl0bGUgc2hvdWxkIGJlIHNvbWV0aGluZyBs aWtlICJjbGs6IGF0OTE6IGR0LWNvbXBhdDogPHlvdSBtZXNzYWdlPiIKPgoKVGhhbmtzLCBJIGFt IHByZXBhcmluZyB0aGUgdmVyc2lvbi0yIHBhdGNoIGNvZGUgYW5kIEkgd2lsbCBjaGFuZ2UgYWxs IHNpbWlsYXIgY2xrIGJ1Z3MgY29tbWl0IHRpdGxlCnVzaW5nIGFib3ZlIGZvcm1hdC4KCj4KPk9u IDI0LjA2LjIwMjIgMTM6NTksIExpYW5nIEhlIHdyb3RlOgo+PiBFWFRFUk5BTCBFTUFJTDogRG8g bm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSBrbm93IHRoZSBj b250ZW50IGlzIHNhZmUKPj4gCj4+IFdlIG5lZWQgdG8gaG9sZCB0aGUgcmVmZXJlbmNlIHJldHVy bmVkIGJ5IG9mX2dldF9wYXJlbnQoKSBhbmQgdXNlCj4+IGl0IHRvIGNhbGwgb2Zfbm9kZV9wdXQo KSBmb3IgcmVmY291bnQgYmFsYW5jZS4KPj4gCj4+IEZpeGVzOiA2MjA2MWQzNTdjN2YgKCJjbGs6 IGF0OTE6IG1vdmUgRFQgY29tcGF0aWJpbGl0eSBjb2RlIHRvIGl0cyBvd24gZmlsZSIpCj4+IFNp Z25lZC1vZmYtYnk6IExpYW5nIEhlIDx3aW5kaGxAMTI2LmNvbT4KPj4gLS0tCj4+ICB0aGVzZSBi dWdzIGFyZSBmb3VuZCBpbiA1LjE5cmMyCj4+ICB0aGVzZSBidWdzIGFyZSBjb25maXJtZWQgbm90 IGZpeGVkIGJ5IGxvcmUua2VybmVsLm9yZwo+PiAgdGhlc2UgYnVncyBhcmUgY29tcGlsZWQgdGVz dGVkIGluIDUuMTlyYzIgd2l0aCBhdDkxX2R0X2RlZmNvbmZpZwo+PiAKPj4gIGRyaXZlcnMvY2xr L2F0OTEvZHQtY29tcGF0LmMgfCAxMDggKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0KPj4gIDEgZmlsZSBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkK Pj4gCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9hdDkxL2R0LWNvbXBhdC5jIGIvZHJpdmVy cy9jbGsvYXQ5MS9kdC1jb21wYXQuYwo+PiBpbmRleCA4Y2E4YmNhY2Y2NmQuLmNjMzQxNDE4NjRi ZCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9jbGsvYXQ5MS9kdC1jb21wYXQuYwo+PiArKysgYi9k cml2ZXJzL2Nsay9hdDkxL2R0LWNvbXBhdC5jCj4+IEBAIC0zMyw4ICszMywxMSBAQCBzdGF0aWMg dm9pZCBfX2luaXQgb2Zfc2FtYTVkMl9jbGtfYXVkaW9fcGxsX2ZyYWNfc2V0dXAoc3RydWN0IGRl dmljZV9ub2RlICpucCkKPj4gICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gbnAtPm5hbWU7Cj4+ ICAgICAgICAgY29uc3QgY2hhciAqcGFyZW50X25hbWU7Cj4+ICAgICAgICAgc3RydWN0IHJlZ21h cCAqcmVnbWFwOwo+PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqdHA7Cj4KPldoYXQgdHAg c3RhbmRzIGZvcj8KCkkgb25seSB3YW50IHRvIHVzZSBpdCB0byBtZWFuICd0bXBfcG9pbnRlcics IGJ1dCBNYXJ0aW4gYWR2aXNlcyB0byAKdXNlICdwYXJlbnRfbnAnLgoKSSB3aWxsIGNob3NlIHRv IHVzZSAncGFyZW50X25wJyBpbiBteSB2ZXJzaW9uLTIgcGF0Y2gsIGFuZCBob3cgZG8geW91CnRo aW5rIGFib3V0IHRoaXMgbmFtZT8KClRoYW5rcyB2ZXJ5IG11Y2ggZm9yIHJldmlld2luZyBteSBw YXRjaCBjb2RlLgoKTGlhbmcgCj4KPj4gCj4+IC0gICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVf dG9fcmVnbWFwKG9mX2dldF9wYXJlbnQobnApKTsKPj4gKyAgICAgICB0cCA9IG9mX2dldF9wYXJl bnQobnApOwo+PiArICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7Cj4+ ICsgICAgICAgb2Zfbm9kZV9wdXQodHApOwo+PiAgICAgICAgIGlmIChJU19FUlIocmVnbWFwKSkK Pj4gICAgICAgICAgICAgICAgIHJldHVybjsKPj4gCj4+IEBAIC01Niw4ICs1OSwxMSBAQCBzdGF0 aWMgdm9pZCBfX2luaXQgb2Zfc2FtYTVkMl9jbGtfYXVkaW9fcGxsX3BhZF9zZXR1cChzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5wKQo+PiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBucC0+bmFtZTsK Pj4gICAgICAgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZTsKPj4gICAgICAgICBzdHJ1Y3QgcmVn bWFwICpyZWdtYXA7Cj4+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICp0cDsKPj4gCj4+IC0g ICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG9mX2dldF9wYXJlbnQobnApKTsK Pj4gKyAgICAgICB0cCA9IG9mX2dldF9wYXJlbnQobnApOwo+PiArICAgICAgIHJlZ21hcCA9IHN5 c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7Cj4+ICsgICAgICAgb2Zfbm9kZV9wdXQodHApOwo+PiAg ICAgICAgIGlmIChJU19FUlIocmVnbWFwKSkKPj4gICAgICAgICAgICAgICAgIHJldHVybjsKPj4g Cj4+IEBAIC03OSw4ICs4NSwxMSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb2Zfc2FtYTVkMl9jbGtf YXVkaW9fcGxsX3BtY19zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQo+PiAgICAgICAgIGNv bnN0IGNoYXIgKm5hbWUgPSBucC0+bmFtZTsKPj4gICAgICAgICBjb25zdCBjaGFyICpwYXJlbnRf bmFtZTsKPj4gICAgICAgICBzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7Cj4+ICsgICAgICAgc3RydWN0 IGRldmljZV9ub2RlICp0cDsKPj4gCj4+IC0gICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9f cmVnbWFwKG9mX2dldF9wYXJlbnQobnApKTsKPj4gKyAgICAgICB0cCA9IG9mX2dldF9wYXJlbnQo bnApOwo+PiArICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7Cj4+ICsg ICAgICAgb2Zfbm9kZV9wdXQodHApOwo+PiAgICAgICAgIGlmIChJU19FUlIocmVnbWFwKSkKPj4g ICAgICAgICAgICAgICAgIHJldHVybjsKPj4gCj4+IEBAIC0xMjAsNyArMTI5LDcgQEAgc3RhdGlj IHZvaWQgX19pbml0IG9mX3NhbWE1ZDJfY2xrX2dlbmVyYXRlZF9zZXR1cChzdHJ1Y3QgZGV2aWNl X25vZGUgKm5wKQo+PiAgICAgICAgIHN0cnVjdCBjbGtfaHcgKmh3Owo+PiAgICAgICAgIHVuc2ln bmVkIGludCBudW1fcGFyZW50czsKPj4gICAgICAgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZXNb R0VORVJBVEVEX1NPVVJDRV9NQVhdOwo+PiAtICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqZ2Nr bnA7Cj4+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICpnY2tucCwgKnRwOwo+PiAgICAgICAg IHN0cnVjdCBjbGtfcmFuZ2UgcmFuZ2UgPSBDTEtfUkFOR0UoMCwgMCk7Cj4+ICAgICAgICAgc3Ry dWN0IHJlZ21hcCAqcmVnbWFwOwo+PiAKPj4gQEAgLTEzNCw3ICsxNDMsOSBAQCBzdGF0aWMgdm9p ZCBfX2luaXQgb2Zfc2FtYTVkMl9jbGtfZ2VuZXJhdGVkX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9k ZSAqbnApCj4+ICAgICAgICAgaWYgKCFudW0gfHwgbnVtID4gUEVSSVBIRVJBTF9NQVgpCj4+ICAg ICAgICAgICAgICAgICByZXR1cm47Cj4+IAo+PiAtICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2Rl X3RvX3JlZ21hcChvZl9nZXRfcGFyZW50KG5wKSk7Cj4+ICsgICAgICAgdHAgPSBvZl9nZXRfcGFy ZW50KG5wKTsKPj4gKyAgICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAodHApOwo+ PiArICAgICAgIG9mX25vZGVfcHV0KHRwKTsKPj4gICAgICAgICBpZiAoSVNfRVJSKHJlZ21hcCkp Cj4+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4+IAo+PiBAQCAtMTgwLDggKzE5MSwxMSBAQCBz dGF0aWMgdm9pZCBfX2luaXQgb2Zfc2FtYTVkNF9jbGtfaDMybXhfc2V0dXAoc3RydWN0IGRldmlj ZV9ub2RlICpucCkKPj4gICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gbnAtPm5hbWU7Cj4+ICAg ICAgICAgY29uc3QgY2hhciAqcGFyZW50X25hbWU7Cj4+ICAgICAgICAgc3RydWN0IHJlZ21hcCAq cmVnbWFwOwo+PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqdHA7Cj4+IAo+PiAtICAgICAg IHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcChvZl9nZXRfcGFyZW50KG5wKSk7Cj4+ICsg ICAgICAgdHAgPSBvZl9nZXRfcGFyZW50KG5wKTsKPj4gKyAgICAgICByZWdtYXAgPSBzeXNjb25f bm9kZV90b19yZWdtYXAodHApOwo+PiArICAgICAgIG9mX25vZGVfcHV0KHRwKTsKPj4gICAgICAg ICBpZiAoSVNfRVJSKHJlZ21hcCkpCj4+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4+IAo+PiBA QCAtMjQzLDEyICsyNTcsMTUgQEAgc3RhdGljIHZvaWQgX19pbml0IG9mX2F0OTFybTkyMDBfY2xr X21haW5fb3NjX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCj4+ICAgICAgICAgY29uc3Qg Y2hhciAqcGFyZW50X25hbWU7Cj4+ICAgICAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwOwo+PiAg ICAgICAgIGJvb2wgYnlwYXNzOwo+PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqdHA7Cj4+ IAo+PiAgICAgICAgIG9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nKG5wLCAiY2xvY2stb3V0cHV0LW5h bWVzIiwgJm5hbWUpOwo+PiAgICAgICAgIGJ5cGFzcyA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChu cCwgImF0bWVsLG9zYy1ieXBhc3MiKTsKPj4gICAgICAgICBwYXJlbnRfbmFtZSA9IG9mX2Nsa19n ZXRfcGFyZW50X25hbWUobnAsIDApOwo+PiAKPj4gLSAgICAgICByZWdtYXAgPSBzeXNjb25fbm9k ZV90b19yZWdtYXAob2ZfZ2V0X3BhcmVudChucCkpOwo+PiArICAgICAgIHRwID0gb2ZfZ2V0X3Bh cmVudChucCk7Cj4+ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKHRwKTsK Pj4gKyAgICAgICBvZl9ub2RlX3B1dCh0cCk7Cj4+ICAgICAgICAgaWYgKElTX0VSUihyZWdtYXAp KQo+PiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+PiAKPj4gQEAgLTI2OCwxMiArMjg1LDE1IEBA IHN0YXRpYyB2b2lkIF9faW5pdCBvZl9hdDkxc2FtOXg1X2Nsa19tYWluX3JjX29zY19zZXR1cChz dHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQo+PiAgICAgICAgIHUzMiBhY2N1cmFjeSA9IDA7Cj4+ICAg ICAgICAgY29uc3QgY2hhciAqbmFtZSA9IG5wLT5uYW1lOwo+PiAgICAgICAgIHN0cnVjdCByZWdt YXAgKnJlZ21hcDsKPj4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnRwOwo+PiAKPj4gICAg ICAgICBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhucCwgImNsb2NrLW91dHB1dC1uYW1lcyIsICZu YW1lKTsKPj4gICAgICAgICBvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImNsb2NrLWZyZXF1ZW5j eSIsICZmcmVxdWVuY3kpOwo+PiAgICAgICAgIG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAiY2xv Y2stYWNjdXJhY3kiLCAmYWNjdXJhY3kpOwo+PiAKPj4gLSAgICAgICByZWdtYXAgPSBzeXNjb25f bm9kZV90b19yZWdtYXAob2ZfZ2V0X3BhcmVudChucCkpOwo+PiArICAgICAgIHRwID0gb2ZfZ2V0 X3BhcmVudChucCk7Cj4+ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKHRw KTsKPj4gKyAgICAgICBvZl9ub2RlX3B1dCh0cCk7Cj4+ICAgICAgICAgaWYgKElTX0VSUihyZWdt YXApKQo+PiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+PiAKPj4gQEAgLTI5MiwxMSArMzEyLDE0 IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvZl9hdDkxcm05MjAwX2Nsa19tYWluX3NldHVwKHN0cnVj dCBkZXZpY2Vfbm9kZSAqbnApCj4+ICAgICAgICAgY29uc3QgY2hhciAqcGFyZW50X25hbWU7Cj4+ ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IG5wLT5uYW1lOwo+PiAgICAgICAgIHN0cnVjdCBy ZWdtYXAgKnJlZ21hcDsKPj4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnRwOwo+PiAKPj4g ICAgICAgICBwYXJlbnRfbmFtZSA9IG9mX2Nsa19nZXRfcGFyZW50X25hbWUobnAsIDApOwo+PiAg ICAgICAgIG9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nKG5wLCAiY2xvY2stb3V0cHV0LW5hbWVzIiwg Jm5hbWUpOwo+PiAKPj4gLSAgICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAob2Zf Z2V0X3BhcmVudChucCkpOwo+PiArICAgICAgIHRwID0gb2ZfZ2V0X3BhcmVudChucCk7Cj4+ICsg ICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKHRwKTsKPj4gKyAgICAgICBvZl9u b2RlX3B1dCh0cCk7Cj4+ICAgICAgICAgaWYgKElTX0VSUihyZWdtYXApKQo+PiAgICAgICAgICAg ICAgICAgcmV0dXJuOwo+PiAKPj4gQEAgLTMxNiwxMyArMzM5LDE2IEBAIHN0YXRpYyB2b2lkIF9f aW5pdCBvZl9hdDkxc2FtOXg1X2Nsa19tYWluX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAp Cj4+ICAgICAgICAgdW5zaWduZWQgaW50IG51bV9wYXJlbnRzOwo+PiAgICAgICAgIGNvbnN0IGNo YXIgKm5hbWUgPSBucC0+bmFtZTsKPj4gICAgICAgICBzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7Cj4+ ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICp0cDsKPj4gCj4+ICAgICAgICAgbnVtX3BhcmVu dHMgPSBvZl9jbGtfZ2V0X3BhcmVudF9jb3VudChucCk7Cj4+ICAgICAgICAgaWYgKG51bV9wYXJl bnRzID09IDAgfHwgbnVtX3BhcmVudHMgPiAyKQo+PiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+ PiAKPj4gICAgICAgICBvZl9jbGtfcGFyZW50X2ZpbGwobnAsIHBhcmVudF9uYW1lcywgbnVtX3Bh cmVudHMpOwo+PiAtICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcChvZl9nZXRf cGFyZW50KG5wKSk7Cj4+ICsgICAgICAgdHAgPSBvZl9nZXRfcGFyZW50KG5wKTsKPj4gKyAgICAg ICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAodHApOwo+PiArICAgICAgIG9mX25vZGVf cHV0KHRwKTsKPj4gICAgICAgICBpZiAoSVNfRVJSKHJlZ21hcCkpCj4+ICAgICAgICAgICAgICAg ICByZXR1cm47Cj4+IAo+PiBAQCAtMzczLDYgKzM5OSw3IEBAIG9mX2F0OTFfY2xrX21hc3Rlcl9z ZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAo+PiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUg PSBucC0+bmFtZTsKPj4gICAgICAgICBzdHJ1Y3QgY2xrX21hc3Rlcl9jaGFyYWN0ZXJpc3RpY3Mg KmNoYXJhY3RlcmlzdGljczsKPj4gICAgICAgICBzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7Cj4+ICsg ICAgICAgc3RydWN0IGRldmljZV9ub2RlICp0cDsKPj4gCj4+ICAgICAgICAgbnVtX3BhcmVudHMg PSBvZl9jbGtfZ2V0X3BhcmVudF9jb3VudChucCk7Cj4+ICAgICAgICAgaWYgKG51bV9wYXJlbnRz ID09IDAgfHwgbnVtX3BhcmVudHMgPiBNQVNURVJfU09VUkNFX01BWCkKPj4gQEAgLTM4Niw3ICs0 MTMsOSBAQCBvZl9hdDkxX2Nsa19tYXN0ZXJfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCwK Pj4gICAgICAgICBpZiAoIWNoYXJhY3RlcmlzdGljcykKPj4gICAgICAgICAgICAgICAgIHJldHVy bjsKPj4gCj4+IC0gICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG9mX2dldF9w YXJlbnQobnApKTsKPj4gKyAgICAgICB0cCA9IG9mX2dldF9wYXJlbnQobnApOwo+PiArICAgICAg IHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7Cj4+ICsgICAgICAgb2Zfbm9kZV9w dXQodHApOwo+PiAgICAgICAgIGlmIChJU19FUlIocmVnbWFwKSkKPj4gICAgICAgICAgICAgICAg IHJldHVybjsKPj4gCj4+IEBAIC00MzMsNiArNDYyLDcgQEAgb2ZfYXQ5MV9jbGtfcGVyaXBoX3Nl dHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHU4IHR5cGUpCj4+ICAgICAgICAgY29uc3QgY2hh ciAqbmFtZTsKPj4gICAgICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnBlcmlwaGNsa25wOwo+PiAg ICAgICAgIHN0cnVjdCByZWdtYXAgKnJlZ21hcDsKPj4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlX25v ZGUgKnRwOwo+PiAKPj4gICAgICAgICBwYXJlbnRfbmFtZSA9IG9mX2Nsa19nZXRfcGFyZW50X25h bWUobnAsIDApOwo+PiAgICAgICAgIGlmICghcGFyZW50X25hbWUpCj4+IEBAIC00NDIsNyArNDcy LDkgQEAgb2ZfYXQ5MV9jbGtfcGVyaXBoX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHU4 IHR5cGUpCj4+ICAgICAgICAgaWYgKCFudW0gfHwgbnVtID4gUEVSSVBIRVJBTF9NQVgpCj4+ICAg ICAgICAgICAgICAgICByZXR1cm47Cj4+IAo+PiAtICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2Rl X3RvX3JlZ21hcChvZl9nZXRfcGFyZW50KG5wKSk7Cj4+ICsgICAgICAgdHAgPSBvZl9nZXRfcGFy ZW50KG5wKTsKPj4gKyAgICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAodHApOwo+ PiArICAgICAgIG9mX25vZGVfcHV0KHRwKTsKPj4gICAgICAgICBpZiAoSVNfRVJSKHJlZ21hcCkp Cj4+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4+IAo+PiBAQCAtNjAyLDYgKzYzNCw3IEBAIG9m X2F0OTFfY2xrX3BsbF9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAo+PiAgICAgICAgIGNv bnN0IGNoYXIgKnBhcmVudF9uYW1lOwo+PiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBucC0+ bmFtZTsKPj4gICAgICAgICBzdHJ1Y3QgY2xrX3BsbF9jaGFyYWN0ZXJpc3RpY3MgKmNoYXJhY3Rl cmlzdGljczsKPj4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnRwOwo+PiAKPj4gICAgICAg ICBpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJyZWciLCAmaWQpKQo+PiAgICAgICAgICAg ICAgICAgcmV0dXJuOwo+PiBAQCAtNjEwLDcgKzY0Myw5IEBAIG9mX2F0OTFfY2xrX3BsbF9zZXR1 cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAo+PiAKPj4gICAgICAgICBvZl9wcm9wZXJ0eV9yZWFk X3N0cmluZyhucCwgImNsb2NrLW91dHB1dC1uYW1lcyIsICZuYW1lKTsKPj4gCj4+IC0gICAgICAg cmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG9mX2dldF9wYXJlbnQobnApKTsKPj4gKyAg ICAgICB0cCA9IG9mX2dldF9wYXJlbnQobnApOwo+PiArICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9u b2RlX3RvX3JlZ21hcCh0cCk7Cj4+ICsgICAgICAgb2Zfbm9kZV9wdXQodHApOwo+PiAgICAgICAg IGlmIChJU19FUlIocmVnbWFwKSkKPj4gICAgICAgICAgICAgICAgIHJldHVybjsKPj4gCj4+IEBA IC02NjUsMTIgKzcwMCwxNSBAQCBvZl9hdDkxc2FtOXg1X2Nsa19wbGxkaXZfc2V0dXAoc3RydWN0 IGRldmljZV9ub2RlICpucCkKPj4gICAgICAgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZTsKPj4g ICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gbnAtPm5hbWU7Cj4+ICAgICAgICAgc3RydWN0IHJl Z21hcCAqcmVnbWFwOwo+PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqdHA7Cj4+IAo+PiAg ICAgICAgIHBhcmVudF9uYW1lID0gb2ZfY2xrX2dldF9wYXJlbnRfbmFtZShucCwgMCk7Cj4+IAo+ PiAgICAgICAgIG9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nKG5wLCAiY2xvY2stb3V0cHV0LW5hbWVz IiwgJm5hbWUpOwo+PiAKPj4gLSAgICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAo b2ZfZ2V0X3BhcmVudChucCkpOwo+PiArICAgICAgIHRwID0gb2ZfZ2V0X3BhcmVudChucCk7Cj4+ ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKHRwKTsKPj4gKyAgICAgICBv Zl9ub2RlX3B1dCh0cCk7Cj4+ICAgICAgICAgaWYgKElTX0VSUihyZWdtYXApKQo+PiAgICAgICAg ICAgICAgICAgcmV0dXJuOwo+PiAKPj4gQEAgLTY5NCw3ICs3MzIsNyBAQCBvZl9hdDkxX2Nsa19w cm9nX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCj4+ICAgICAgICAgdW5zaWduZWQgaW50 IG51bV9wYXJlbnRzOwo+PiAgICAgICAgIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lc1tQUk9HX1NP VVJDRV9NQVhdOwo+PiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7Cj4+IC0gICAgICAgc3RydWN0 IGRldmljZV9ub2RlICpwcm9nY2xrbnA7Cj4+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICpw cm9nY2xrbnAsICp0cDsKPj4gICAgICAgICBzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7Cj4+IAo+PiAg ICAgICAgIG51bV9wYXJlbnRzID0gb2ZfY2xrX2dldF9wYXJlbnRfY291bnQobnApOwo+PiBAQCAt NzA3LDcgKzc0NSw5IEBAIG9mX2F0OTFfY2xrX3Byb2dfc2V0dXAoc3RydWN0IGRldmljZV9ub2Rl ICpucCwKPj4gICAgICAgICBpZiAoIW51bSB8fCBudW0gPiAoUFJPR19JRF9NQVggKyAxKSkKPj4g ICAgICAgICAgICAgICAgIHJldHVybjsKPj4gCj4+IC0gICAgICAgcmVnbWFwID0gc3lzY29uX25v ZGVfdG9fcmVnbWFwKG9mX2dldF9wYXJlbnQobnApKTsKPj4gKyAgICAgICB0cCA9IG9mX2dldF9w YXJlbnQobnApOwo+PiArICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7 Cj4+ICsgICAgICAgb2Zfbm9kZV9wdXQodHApOwo+PiAgICAgICAgIGlmIChJU19FUlIocmVnbWFw KSkKPj4gICAgICAgICAgICAgICAgIHJldHVybjsKPj4gCj4+IEBAIC03NTYsMTMgKzc5NiwxNiBA QCBzdGF0aWMgdm9pZCBfX2luaXQgb2ZfYXQ5MXNhbTkyNjBfY2xrX3Nsb3dfc2V0dXAoc3RydWN0 IGRldmljZV9ub2RlICpucCkKPj4gICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX3BhcmVudHM7Cj4+ ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IG5wLT5uYW1lOwo+PiAgICAgICAgIHN0cnVjdCBy ZWdtYXAgKnJlZ21hcDsKPj4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnRwOwo+PiAKPj4g ICAgICAgICBudW1fcGFyZW50cyA9IG9mX2Nsa19nZXRfcGFyZW50X2NvdW50KG5wKTsKPj4gICAg ICAgICBpZiAobnVtX3BhcmVudHMgIT0gMikKPj4gICAgICAgICAgICAgICAgIHJldHVybjsKPj4g Cj4+ICAgICAgICAgb2ZfY2xrX3BhcmVudF9maWxsKG5wLCBwYXJlbnRfbmFtZXMsIG51bV9wYXJl bnRzKTsKPj4gLSAgICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAob2ZfZ2V0X3Bh cmVudChucCkpOwo+PiArICAgICAgIHRwID0gb2ZfZ2V0X3BhcmVudChucCk7Cj4+ICsgICAgICAg cmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKHRwKTsKPj4gKyAgICAgICBvZl9ub2RlX3B1 dCh0cCk7Cj4+ICAgICAgICAgaWYgKElTX0VSUihyZWdtYXApKQo+PiAgICAgICAgICAgICAgICAg cmV0dXJuOwo+PiAKPj4gQEAgLTc4OCw2ICs4MzEsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb2Zf YXQ5MXNhbTl4NV9jbGtfc21kX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCj4+ICAgICAg ICAgY29uc3QgY2hhciAqcGFyZW50X25hbWVzW1NNRF9TT1VSQ0VfTUFYXTsKPj4gICAgICAgICBj b25zdCBjaGFyICpuYW1lID0gbnAtPm5hbWU7Cj4+ICAgICAgICAgc3RydWN0IHJlZ21hcCAqcmVn bWFwOwo+PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqdHA7Cj4+IAo+PiAgICAgICAgIG51 bV9wYXJlbnRzID0gb2ZfY2xrX2dldF9wYXJlbnRfY291bnQobnApOwo+PiAgICAgICAgIGlmIChu dW1fcGFyZW50cyA9PSAwIHx8IG51bV9wYXJlbnRzID4gU01EX1NPVVJDRV9NQVgpCj4+IEBAIC03 OTcsNyArODQxLDkgQEAgc3RhdGljIHZvaWQgX19pbml0IG9mX2F0OTFzYW05eDVfY2xrX3NtZF9z ZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQo+PiAKPj4gICAgICAgICBvZl9wcm9wZXJ0eV9y ZWFkX3N0cmluZyhucCwgImNsb2NrLW91dHB1dC1uYW1lcyIsICZuYW1lKTsKPj4gCj4+IC0gICAg ICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG9mX2dldF9wYXJlbnQobnApKTsKPj4g KyAgICAgICB0cCA9IG9mX2dldF9wYXJlbnQobnApOwo+PiArICAgICAgIHJlZ21hcCA9IHN5c2Nv bl9ub2RlX3RvX3JlZ21hcCh0cCk7Cj4+ICsgICAgICAgb2Zfbm9kZV9wdXQodHApOwo+PiAgICAg ICAgIGlmIChJU19FUlIocmVnbWFwKSkKPj4gICAgICAgICAgICAgICAgIHJldHVybjsKPj4gCj4+ IEBAIC04MTgsNyArODY0LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IG9mX2F0OTFybTkyMDBfY2xr X3N5c19zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQo+PiAgICAgICAgIHUzMiBpZDsKPj4g ICAgICAgICBzdHJ1Y3QgY2xrX2h3ICpodzsKPj4gICAgICAgICBjb25zdCBjaGFyICpuYW1lOwo+ PiAtICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqc3lzY2xrbnA7Cj4+ICsgICAgICAgc3RydWN0 IGRldmljZV9ub2RlICpzeXNjbGtucCwgKnRwOwo+PiAgICAgICAgIGNvbnN0IGNoYXIgKnBhcmVu dF9uYW1lOwo+PiAgICAgICAgIHN0cnVjdCByZWdtYXAgKnJlZ21hcDsKPj4gCj4+IEBAIC04MjYs NyArODcyLDkgQEAgc3RhdGljIHZvaWQgX19pbml0IG9mX2F0OTFybTkyMDBfY2xrX3N5c19zZXR1 cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQo+PiAgICAgICAgIGlmIChudW0gPiAoU1lTVEVNX01B WF9JRCArIDEpKQo+PiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+PiAKPj4gLSAgICAgICByZWdt YXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAob2ZfZ2V0X3BhcmVudChucCkpOwo+PiArICAgICAg IHRwID0gb2ZfZ2V0X3BhcmVudChucCk7Cj4+ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVf dG9fcmVnbWFwKHRwKTsKPj4gKyAgICAgICBvZl9ub2RlX3B1dCh0cCk7Cj4+ICAgICAgICAgaWYg KElTX0VSUihyZWdtYXApKQo+PiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+PiAKPj4gQEAgLTg1 OSw2ICs5MDcsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb2ZfYXQ5MXNhbTl4NV9jbGtfdXNiX3Nl dHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCj4+ICAgICAgICAgY29uc3QgY2hhciAqcGFyZW50 X25hbWVzW1VTQl9TT1VSQ0VfTUFYXTsKPj4gICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gbnAt Pm5hbWU7Cj4+ICAgICAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwOwo+PiArICAgICAgIHN0cnVj dCBkZXZpY2Vfbm9kZSAqdHA7Cj4+IAo+PiAgICAgICAgIG51bV9wYXJlbnRzID0gb2ZfY2xrX2dl dF9wYXJlbnRfY291bnQobnApOwo+PiAgICAgICAgIGlmIChudW1fcGFyZW50cyA9PSAwIHx8IG51 bV9wYXJlbnRzID4gVVNCX1NPVVJDRV9NQVgpCj4+IEBAIC04NjgsNyArOTE3LDkgQEAgc3RhdGlj IHZvaWQgX19pbml0IG9mX2F0OTFzYW05eDVfY2xrX3VzYl9zZXR1cChzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wKQo+PiAKPj4gICAgICAgICBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhucCwgImNsb2Nr LW91dHB1dC1uYW1lcyIsICZuYW1lKTsKPj4gCj4+IC0gICAgICAgcmVnbWFwID0gc3lzY29uX25v ZGVfdG9fcmVnbWFwKG9mX2dldF9wYXJlbnQobnApKTsKPj4gKyAgICAgICB0cCA9IG9mX2dldF9w YXJlbnQobnApOwo+PiArICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7 Cj4+ICsgICAgICAgb2Zfbm9kZV9wdXQodHApOwo+PiAgICAgICAgIGlmIChJU19FUlIocmVnbWFw KSkKPj4gICAgICAgICAgICAgICAgIHJldHVybjsKPj4gCj4+IEBAIC04ODgsNiArOTM5LDcgQEAg c3RhdGljIHZvaWQgX19pbml0IG9mX2F0OTFzYW05bjEyX2Nsa191c2Jfc2V0dXAoc3RydWN0IGRl dmljZV9ub2RlICpucCkKPj4gICAgICAgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZTsKPj4gICAg ICAgICBjb25zdCBjaGFyICpuYW1lID0gbnAtPm5hbWU7Cj4+ICAgICAgICAgc3RydWN0IHJlZ21h cCAqcmVnbWFwOwo+PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqdHA7Cj4+IAo+PiAgICAg ICAgIHBhcmVudF9uYW1lID0gb2ZfY2xrX2dldF9wYXJlbnRfbmFtZShucCwgMCk7Cj4+ICAgICAg ICAgaWYgKCFwYXJlbnRfbmFtZSkKPj4gQEAgLTg5NSw3ICs5NDcsOSBAQCBzdGF0aWMgdm9pZCBf X2luaXQgb2ZfYXQ5MXNhbTluMTJfY2xrX3VzYl9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5w KQo+PiAKPj4gICAgICAgICBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhucCwgImNsb2NrLW91dHB1 dC1uYW1lcyIsICZuYW1lKTsKPj4gCj4+IC0gICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9f cmVnbWFwKG9mX2dldF9wYXJlbnQobnApKTsKPj4gKyAgICAgICB0cCA9IG9mX2dldF9wYXJlbnQo bnApOwo+PiArICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7Cj4+ICsg ICAgICAgb2Zfbm9kZV9wdXQodHApOwo+PiAgICAgICAgIGlmIChJU19FUlIocmVnbWFwKSkKPj4g ICAgICAgICAgICAgICAgIHJldHVybjsKPj4gCj4+IEBAIC05MTUsNiArOTY5LDcgQEAgc3RhdGlj IHZvaWQgX19pbml0IG9mX2F0OTFybTkyMDBfY2xrX3VzYl9zZXR1cChzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wKQo+PiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBucC0+bmFtZTsKPj4gICAgICAg ICB1MzIgZGl2aXNvcnNbNF0gPSB7MCwgMCwgMCwgMH07Cj4+ICAgICAgICAgc3RydWN0IHJlZ21h cCAqcmVnbWFwOwo+PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqdHA7Cj4+IAo+PiAgICAg ICAgIHBhcmVudF9uYW1lID0gb2ZfY2xrX2dldF9wYXJlbnRfbmFtZShucCwgMCk7Cj4+ICAgICAg ICAgaWYgKCFwYXJlbnRfbmFtZSkKPj4gQEAgLTkyNiw3ICs5ODEsOSBAQCBzdGF0aWMgdm9pZCBf X2luaXQgb2ZfYXQ5MXJtOTIwMF9jbGtfdXNiX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAp Cj4+IAo+PiAgICAgICAgIG9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nKG5wLCAiY2xvY2stb3V0cHV0 LW5hbWVzIiwgJm5hbWUpOwo+PiAKPj4gLSAgICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19y ZWdtYXAob2ZfZ2V0X3BhcmVudChucCkpOwo+PiArICAgICAgIHRwID0gb2ZfZ2V0X3BhcmVudChu cCk7Cj4+ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKHRwKTsKPj4gKyAg ICAgICBvZl9ub2RlX3B1dCh0cCk7Cj4+ICAgICAgICAgaWYgKElTX0VSUihyZWdtYXApKQo+PiAg ICAgICAgICAgICAgICAgcmV0dXJuOwo+PiAgICAgICAgIGh3ID0gYXQ5MXJtOTIwMF9jbGtfcmVn aXN0ZXJfdXNiKHJlZ21hcCwgbmFtZSwgcGFyZW50X25hbWUsIGRpdmlzb3JzKTsKPj4gQEAgLTk0 NiwxMiArMTAwMywxNSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb2ZfYXQ5MXNhbTl4NV9jbGtfdXRt aV9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQo+PiAgICAgICAgIGNvbnN0IGNoYXIgKnBh cmVudF9uYW1lOwo+PiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBucC0+bmFtZTsKPj4gICAg ICAgICBzdHJ1Y3QgcmVnbWFwICpyZWdtYXBfcG1jLCAqcmVnbWFwX3NmcjsKPj4gKyAgICAgICBz dHJ1Y3QgZGV2aWNlX25vZGUgKnRwOwo+PiAKPj4gICAgICAgICBwYXJlbnRfbmFtZSA9IG9mX2Ns a19nZXRfcGFyZW50X25hbWUobnAsIDApOwo+PiAKPj4gICAgICAgICBvZl9wcm9wZXJ0eV9yZWFk X3N0cmluZyhucCwgImNsb2NrLW91dHB1dC1uYW1lcyIsICZuYW1lKTsKPj4gCj4+IC0gICAgICAg cmVnbWFwX3BtYyA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcChvZl9nZXRfcGFyZW50KG5wKSk7Cj4+ ICsgICAgICAgdHAgPSBvZl9nZXRfcGFyZW50KG5wKTsKPj4gKyAgICAgICByZWdtYXBfcG1jID0g c3lzY29uX25vZGVfdG9fcmVnbWFwKHRwKTsKPj4gKyAgICAgICBvZl9ub2RlX3B1dCh0cCk7Cj4+ ICAgICAgICAgaWYgKElTX0VSUihyZWdtYXBfcG1jKSkKPj4gICAgICAgICAgICAgICAgIHJldHVy bjsKPj4gCj4+IC0tCj4+IDIuMjUuMQo+PiAKPgo=