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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id ED93BC44515 for ; Mon, 20 Jul 2026 03:30:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=/cUTJ09T2QuCOnULpBfJVkKM5+/XMLnbdXtbtcrxtms=; b=yvAi2FbXb4tASy kZal803Dt5lnIdS4JBeFKVBWaxOS7JfVNdjNBzDoLZj9l8E9+5y4kQO/El2JXt0bauBPn7o0ocXqM Ikcp+vL5ILOEEOloBdhd6HCpYia0X0Z9ydRLmdZu6Hl3sclpjQq8E0sVIyhXT2Hn7fBakxi0w3veG UMSDLGxDDqyl8d0p3cE/NS7+kopJoqbICSzjfuDf9K4nczhzmQ2/pOCB9AmoZqXFtpeBmydQYEVSI uEtf3FzSFZDvOOG2kzUcARTCcDu2dgVOjhqZeNpYYoyawUlZu0knmJ418TsGjZqOMNcMTW+pQ1bvk Dt52m4QORAk0Td49yDdQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wlehX-00000005lcf-41N1; Mon, 20 Jul 2026 03:29:55 +0000 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wlehV-00000005lc9-3tYY for opensbi@lists.infradead.org; Mon, 20 Jul 2026 03:29:55 +0000 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-8453427d3f4so8759849b3a.3 for ; Sun, 19 Jul 2026 20:29:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1784518193; x=1785122993; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :content-type:mime-version:references:message-id:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to:content-type; bh=dMcG60//YBZglrDQxrKX4mTEDFqJiMwkdQOVl5LHe40=; b=PIiw/xs95//IZJFCYVGjs7/0+BRQMHHsqeGbGIzbIDx5nE5SG7MKIGiLY1gcIhf+Av +nYge4otdRfIsR9FVmjVgkYzH0lqPKbw3PJtcwhPrZxCLyZ9WC+tXSvBVnfKFpambP7V 4782GIZBEP1YE7WX5A1pvaEF29IFCnATHKkU801p2J0/JCRs7gL/PzwRVVL9aA5GGrdI jAYB0Y2L7BzlGvQo4R8vj2l5+su8ownKTq5/2szEpnH3C0uiGnQ91S6jCFi235FMxWGp t0OBMV+EjF+X4q9ZV7/6FXTajfSkuGTZGAa2MADGIZYfz0erj0lS9kt/pNg1NuSRvhKD +YuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784518193; x=1785122993; h=in-reply-to:content-transfer-encoding:content-disposition :content-type:mime-version:references:message-id:subject:cc:to:from :date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=dMcG60//YBZglrDQxrKX4mTEDFqJiMwkdQOVl5LHe40=; b=Fk3UsImuz14cHm7n3VAeQ743W/Jh8W365cFy7wL6QPVIlWDJiQ/E7Ub5x5panjBuuK RCJ+xWZr4Z+lF/bLRUCQYV5hGxXBw+oElGhzYdkKQawbz6aTNkQvwCb67ZSnKte/e8v/ CVhjZCg72QDew1c78ocidAxqC2RgCFnBCYws0WdbTOSH5snyYcHJfUXNa8/Pk/epYOlc OVHaphp4Xkv3UuPlXlMjImZt4vEYtvRC+1BXb1BqWWViE9w73qFeH0IwGKOhDwO6UBBR cMDbLfCjrAnPzDOba3zGCPZS+2EXS9WkpUweD7boK3MucJ6+w0yut3Aw5EkG2HoRnkAs a9zw== X-Gm-Message-State: AOJu0YyOkmdyH03IdW87bkijtOcCColEAdczDvcLoFdvPV5UgY/x8nIw XcmeaqFbD7UGcuT3j6w7di5AI3IwA13RaPhvzlOcThc5E2LUV7OfpGofT00TnTBNrjg= X-Gm-Gg: AfdE7cngzZH2FVHGfSe8x0wO6Jvi1scxzuMoHrpPGmWwJ+bpWy3jJJU54/99P5qUtz0 1oQys+mLcaTtm+O2+O9yeX+vW+QuFXuHLqg+D4Q0ZVx4w5bRMU/6aKiagwIi9REWBS1YOUbtLow fsLl3VzvPB5KMSTdaLV3RhvHPLwYqPwZvdk8yx8ljx1kN6pq3vVJmuxv7rS/KCEczPFbUPdUas5 UVus6oOBanXdUqQommTJgbs+vwFWKFjV1/DCzhy+d4Z+vuhkF7s3YE560WRGYdBayyrqv37Mlab Lkj2cpmFCkB0i6CNimWFUZQwk+OWUBNp6RLtd51Vfko2aJC/bbmk+6lu8g3cb/sKlS0J+xBaWix CuD+gKmegl/M6fObzxXXJlP9M11xjDMeZuw8e/fifXklrKIwUy093qb+wDo6ETjD6bjTu9hoJTm nR X-Received: by 2002:a05:6a00:80f:b0:848:2f7a:2e57 with SMTP id d2e1a72fcca58-84c294eb617mr12647930b3a.70.1784518192665; Sun, 19 Jul 2026 20:29:52 -0700 (PDT) Received: from plin-1878 ([136.226.240.191]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cb519aeb334sm3966231a12.18.2026.07.19.20.29.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2026 20:29:52 -0700 (PDT) Date: Mon, 20 Jul 2026 11:29:47 +0800 From: Yu-Chien Peter Lin To: Pawandeep Oza Cc: opensbi@lists.infradead.org, zong.li@sifive.com, greentime.hu@sifive.com, anup@brainfault.org, scott@riscstar.com, conor@kernel.org, dave.patel@riscstar.com, raymond.mao@riscstar.com, robin.randhawa@sifive.com, samuel.holland@sifive.com Subject: Re: [RFC PATCH 02/12] lib: utils: fdt_helper: parse RISC-V Worlds DT properties Message-ID: References: <20260626101433.3133466-1-peter.lin@sifive.com> <20260626101433.3133466-3-peter.lin@sifive.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260719_202953_988269_04F0E881 X-CRM114-Status: GOOD ( 28.79 ) X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "opensbi" Errors-To: opensbi-bounces+opensbi=archiver.kernel.org@lists.infradead.org T24gV2VkLCBKdWwgMDgsIDIwMjYgYXQgMDU6MzY6MjNQTSAtMDcwMCwgUGF3YW5kZWVwIE96YSB3 cm90ZToKPiBPbiBGcmksIEp1biAyNiwgMjAyNiBhdCAzOjE24oCvQU0gWXUtQ2hpZW4gUGV0ZXIg TGluIDxwZXRlci5saW5Ac2lmaXZlLmNvbT4gd3JvdGU6Cj4gPgo+ID4gQWRkIGZkdF9wYXJzZV93 b3JsZHNfYWxsX2hhcnRzKCkgdG8gcGFyc2UgUklTQy1WIFdvcmxkcyBkZXZpY2UgdHJlZQo+ID4g cHJvcGVydGllcyBmcm9tIENQVSBub2RlczoKPiA+ICAgLSByaXNjdixwbXdpZCAodTMyKTogUGh5 c2ljYWwgTWFjaGluZSBXb3JsZCBJRCBmb3IgdGhpcyBoYXJ0Cj4gPiAgIC0gcmlzY3YscG13aWRs aXN0ICh1NjQpOiBCaXRtYXAgb2YgcGVybWl0dGVkIE0tbW9kZSBXb3JsZCBJRHMKPiA+ICAgLSBy aXNjdixwbWx3aWRsaXN0ICh1NjQpOiBCaXRtYXAgb2YgcGVybWl0dGVkIFMvVS1tb2RlIFdvcmxk IElEcwo+ID4KPiA+IFRoaXMgcGF0Y2ggZXh0ZW5kcyB0aGUgc2JpX2hhcnRfZmVhdHVyZXMgc3Ry dWN0IHdpdGggbmV3IGZpZWxkcyB0bwo+ID4gc3RvcmUgdGhlIHBhcnNlZCBXb3JsZCBJRCBjb25m aWd1cmF0aW9uIChoYXNfcG13aWQsIHBtd2lkLCBwbXdpZGxpc3QsCj4gPiBhbmQgcG1sd2lkbGlz dCkuCj4gPgo+ID4gTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvYWxsLzIwMjYwNjE5MTA1 ODM0LjEyNzczMDItMy1wZXRlci5saW5Ac2lmaXZlLmNvbS8KPiA+IFNpZ25lZC1vZmYtYnk6IFl1 LUNoaWVuIFBldGVyIExpbiA8cGV0ZXIubGluQHNpZml2ZS5jb20+Cj4gPiAtLS0KPiA+ICBpbmNs dWRlL3NiaS9zYmlfaGFydC5oICAgICAgICAgICAgIHwgMTUgKysrKysrKysKPiA+ICBpbmNsdWRl L3NiaV91dGlscy9mZHQvZmR0X2hlbHBlci5oIHwgIDIgKwo+ID4gIGxpYi91dGlscy9mZHQvZmR0 X2hlbHBlci5jICAgICAgICAgfCA2MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ ICBwbGF0Zm9ybS9nZW5lcmljL3BsYXRmb3JtLmMgICAgICAgIHwgMTMgKysrKysrLQo+ID4gIDQg ZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4KPiA+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL3NiaS9zYmlfaGFydC5oIGIvaW5jbHVkZS9zYmkvc2JpX2hhcnQu aAo+ID4gaW5kZXggMjk0MTgwOWUuLjk3MDcyYzA5IDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9z Ymkvc2JpX2hhcnQuaAo+ID4gKysrIGIvaW5jbHVkZS9zYmkvc2JpX2hhcnQuaAo+ID4gQEAgLTEz NSw2ICsxMzUsMjEgQEAgc3RydWN0IHNiaV9oYXJ0X2ZlYXR1cmVzIHsKPiA+ICAgICAgICAgdW5z aWduZWQgaW50IHBtcF9sb2cyZ3JhbjsKPiA+ICAgICAgICAgdW5zaWduZWQgaW50IG1ocG1fbWFz azsKPiA+ICAgICAgICAgdW5zaWduZWQgaW50IG1ocG1fYml0czsKPiA+ICsgICAgICAgLyoqIFRy dWUgaWYgcmlzY3YscG13aWQgd2FzIHByZXNlbnQgaW4gRFQgKi8KPiA+ICsgICAgICAgYm9vbCBo YXNfcG13aWQ7Cj4gPiArICAgICAgIHUzMiBwbXdpZDsKPiA+ICsgICAgICAgLyoqCj4gPiArICAg ICAgICAqIFBsYXRmb3JtLWRlZmluZWQgYml0bWFwIG9mIE0tbW9kZSBXSURzCj4gPiArICAgICAg ICAqIChmcm9tIERUIHJpc2N2LHBtd2lkbGlzdCkuIFplcm8gbWVhbnMKPiA+ICsgICAgICAgICog YWJzZW50L3VucmVzdHJpY3RlZC4KPiA+ICsgICAgICAgICovCj4gPiArICAgICAgIHU2NCBwbXdp ZGxpc3Q7Cj4gPiArICAgICAgIC8qKgo+ID4gKyAgICAgICAgKiBQbGF0Zm9ybS1kZWZpbmVkIGJp dG1hcCBvZiBTL1UtbW9kZSBXSURzCj4gPiArICAgICAgICAqIChmcm9tIERUIHJpc2N2LHBtbHdp ZGxpc3QpLiBaZXJvIG1lYW5zCj4gPiArICAgICAgICAqIGFic2VudC91bnJlc3RyaWN0ZWQuCj4g PiArICAgICAgICAqLwo+ID4gKyAgICAgICB1NjQgcG1sd2lkbGlzdDsKPiA+ICB9Owo+ID4KPiA+ ICBleHRlcm4gdW5zaWduZWQgbG9uZyBoYXJ0X2ZlYXR1cmVzX29mZnNldDsKPiA+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL3NiaV91dGlscy9mZHQvZmR0X2hlbHBlci5oIGIvaW5jbHVkZS9zYmlfdXRp bHMvZmR0L2ZkdF9oZWxwZXIuaAo+ID4gaW5kZXggNzVhNTY0ZDEuLjNmM2QwOTFiIDEwMDY0NAo+ ID4gLS0tIGEvaW5jbHVkZS9zYmlfdXRpbHMvZmR0L2ZkdF9oZWxwZXIuaAo+ID4gKysrIGIvaW5j bHVkZS9zYmlfdXRpbHMvZmR0L2ZkdF9oZWxwZXIuaAo+ID4gQEAgLTU2LDYgKzU2LDggQEAgaW50 IGZkdF9wYXJzZV90aW1lYmFzZV9mcmVxdWVuY3koY29uc3Qgdm9pZCAqZmR0LCB1bnNpZ25lZCBs b25nICpmcmVxKTsKPiA+Cj4gPiAgaW50IGZkdF9wYXJzZV9pc2FfZXh0ZW5zaW9uc19hbGxfaGFy dHMoY29uc3Qgdm9pZCAqZmR0KTsKPiA+Cj4gPiAraW50IGZkdF9wYXJzZV93b3JsZHNfYWxsX2hh cnRzKGNvbnN0IHZvaWQgKmZkdCk7Cj4gPiArCj4gPiAgaW50IGZkdF9wYXJzZV9nYWlzbGVyX3Vh cnRfbm9kZShjb25zdCB2b2lkICpmZHQsIGludCBub2Rlb2Zmc2V0LAo+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGxhdGZvcm1fdWFydF9kYXRhICp1YXJ0KTsKPiA+ Cj4gPiBkaWZmIC0tZ2l0IGEvbGliL3V0aWxzL2ZkdC9mZHRfaGVscGVyLmMgYi9saWIvdXRpbHMv ZmR0L2ZkdF9oZWxwZXIuYwo+ID4gaW5kZXggYWQ0ZWZhYWYuLjhiNDBjZDI4IDEwMDY0NAo+ID4g LS0tIGEvbGliL3V0aWxzL2ZkdC9mZHRfaGVscGVyLmMKPiA+ICsrKyBiL2xpYi91dGlscy9mZHQv ZmR0X2hlbHBlci5jCj4gPiBAQCAtNDU3LDYgKzQ1Nyw2NyBAQCBpbnQgZmR0X3BhcnNlX2lzYV9l eHRlbnNpb25zX2FsbF9oYXJ0cyhjb25zdCB2b2lkICpmZHQpCj4gPiAgICAgICAgIHJldHVybiAw Owo+ID4gIH0KPiA+Cj4gPiAraW50IGZkdF9wYXJzZV93b3JsZHNfYWxsX2hhcnRzKGNvbnN0IHZv aWQgKmZkdCkKPiA+ICt7Cj4gPiArICAgICAgIHUzMiBoYXJ0aWQ7Cj4gPiArICAgICAgIGNvbnN0 IGZkdDMyX3QgKnZhbDsKPiA+ICsgICAgICAgc3RydWN0IHNiaV9zY3JhdGNoICpzY3JhdGNoOwo+ ID4gKyAgICAgICBzdHJ1Y3Qgc2JpX2hhcnRfZmVhdHVyZXMgKmhmZWF0dXJlczsKPiA+ICsgICAg ICAgaW50IGVyciwgY3B1X29mZnNldCwgY3B1c19vZmZzZXQsIGxlbjsKPiA+ICsKPiA+ICsgICAg ICAgaWYgKCFmZHQpCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIFNCSV9FSU5WQUw7Cj4gPiAr Cj4gPiArICAgICAgIGNwdXNfb2Zmc2V0ID0gZmR0X3BhdGhfb2Zmc2V0KGZkdCwgIi9jcHVzIik7 Cj4gPiArICAgICAgIGlmIChjcHVzX29mZnNldCA8IDApCj4gPiArICAgICAgICAgICAgICAgcmV0 dXJuIGNwdXNfb2Zmc2V0Owo+ID4gKwo+ID4gKyAgICAgICBmZHRfZm9yX2VhY2hfc3Vibm9kZShj cHVfb2Zmc2V0LCBmZHQsIGNwdXNfb2Zmc2V0KSB7Cj4gd2hhdCBhYm91dCByaXNjdixud29ybGRz ID8gSSB0aGluayB5b3Ugc2hvdWxkIHBhcnNlIHRoaXMgYW5kIGJhc2VkIG9uCj4gdGhhdCBhc3N1 bWUgd2lkIHJhbmdlIC0gYW5kIHJlc3Qgb2YgdGhlIHdpZHMgc2hvdWxkIGJlIHJlamVjdGVkLgoK U3VyZSwgd2lsbCBjaGVjayBhZ2FpbnN0IHJpc2N2LG53b3JsZHMuCgo+ID4gKyAgICAgICAgICAg ICAgIGVyciA9IGZkdF9wYXJzZV9oYXJ0X2lkKGZkdCwgY3B1X29mZnNldCwgJmhhcnRpZCk7Cj4g PiArICAgICAgICAgICAgICAgaWYgKGVycikKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNv bnRpbnVlOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgIGlmICghZmR0X25vZGVfaXNfZW5hYmxl ZChmZHQsIGNwdV9vZmZzZXQpKQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7 Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgc2NyYXRjaCA9IHNiaV9oYXJ0aWRfdG9fc2NyYXRj aChoYXJ0aWQpOwo+ID4gKyAgICAgICAgICAgICAgIGlmICghc2NyYXRjaCkKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBTQklfRU5PRU5UOwo+ID4gKwo+ID4gKyAgICAgICAgICAg ICAgIGhmZWF0dXJlcyA9IHNiaV9oYXJ0X2ZlYXR1cmVzX3B0cihzY3JhdGNoKTsKPiA+ICsgICAg ICAgICAgICAgICBpZiAoIWhmZWF0dXJlcykKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiBTQklfRU5PRU5UOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgIHZhbCA9IGZkdF9nZXRw cm9wKGZkdCwgY3B1X29mZnNldCwgInJpc2N2LHBtd2lkIiwgJmxlbik7Cj4gPiArICAgICAgICAg ICAgICAgaWYgKHZhbCAmJiBsZW4gPT0gc2l6ZW9mKGZkdDMyX3QpKSB7Cj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBoZmVhdHVyZXMtPnBtd2lkID0gZmR0MzJfdG9fY3B1KCp2YWwpOwo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgaGZlYXR1cmVzLT5oYXNfcG13aWQgPSB0cnVlOwo+ID4g KyAgICAgICAgICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgICAgICAgICB2YWwgPSBmZHRfZ2V0 cHJvcChmZHQsIGNwdV9vZmZzZXQsICJyaXNjdixwbXdpZGxpc3QiLCAmbGVuKTsKPiA+ICsgICAg ICAgICAgICAgICBpZiAodmFsICYmIGxlbiA9PSAyICogc2l6ZW9mKGZkdDMyX3QpKSB7Cj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICBoZmVhdHVyZXMtPnBtd2lkbGlzdCA9ICgodTY0KWZkdDMy X3RvX2NwdSh2YWxbMF0pIDw8IDMyKSB8Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmZHQzMl90b19jcHUodmFsWzFdKTsKPiA+ICsgICAgICAgICAg ICAgICB9Cj4gT3phOiBwcm92aWRlIHNvbWUgZGVmaW5lcyBmb3IgbWFnaWMgbnVtYmVycy4KCk9r YXkuCgo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgIHZhbCA9IGZkdF9nZXRwcm9wKGZkdCwgY3B1 X29mZnNldCwgInJpc2N2LHBtbHdpZGxpc3QiLCAmbGVuKTsKPiA+ICsgICAgICAgICAgICAgICBp ZiAodmFsICYmIGxlbiA9PSAyICogc2l6ZW9mKGZkdDMyX3QpKSB7Cj4gPiArICAgICAgICAgICAg ICAgICAgICAgICBoZmVhdHVyZXMtPnBtbHdpZGxpc3QgPSAoKHU2NClmZHQzMl90b19jcHUodmFs WzBdKSA8PCAzMikgfAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZkdDMyX3RvX2NwdSh2YWxbMV0pOwo+ID4gKyAgICAgICAgICAgICAgIH0KPiA+ ICsKPiA+ICsgICAgICAgICAgICAgICAvKiBTYW5pdHkgY2hlY2tzICovCj4gPiArICAgICAgICAg ICAgICAgaWYgKGhmZWF0dXJlcy0+aGFzX3Btd2lkICYmIChoZmVhdHVyZXMtPnBtd2lkID49IDY0 KSkKPiBPemE6ICBmZWF0dXJlcy0+cG13aWQgPj1ud29ybGRzID8KCk9rYXkuCgo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIFNCSV9FSU5WQUw7Cj4gPiArICAgICAgICAgICAgICAg aWYgKGhmZWF0dXJlcy0+aGFzX3Btd2lkICYmIGhmZWF0dXJlcy0+cG13aWRsaXN0ICYmCj4gPiAr ICAgICAgICAgICAgICAgICAgICEoaGZlYXR1cmVzLT5wbXdpZGxpc3QgJiBCSVRfVUxMKGhmZWF0 dXJlcy0+cG13aWQpKSkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNCSV9F SU5WQUw7Cj4gPiArICAgICAgICAgICAgICAgfQo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiArICAg ICAgIHJldHVybiAwOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgaW50IGZkdF9wYXJzZV91YXJ0 X25vZGVfY29tbW9uKGNvbnN0IHZvaWQgKmZkdCwgaW50IG5vZGVvZmZzZXQsCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwbGF0Zm9ybV91YXJ0X2RhdGEg KnVhcnQsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgZGVmYXVsdF9mcmVxLAo+ID4gZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvcGxh dGZvcm0uYyBiL3BsYXRmb3JtL2dlbmVyaWMvcGxhdGZvcm0uYwo+ID4gaW5kZXggMWRmMDI4MGQu LjUxZTlmMzQyIDEwMDY0NAo+ID4gLS0tIGEvcGxhdGZvcm0vZ2VuZXJpYy9wbGF0Zm9ybS5jCj4g PiArKysgYi9wbGF0Zm9ybS9nZW5lcmljL3BsYXRmb3JtLmMKPiA+IEBAIC0yNTUsMTEgKzI1NSwy MiBAQCBpbnQgZ2VuZXJpY19maW5hbF9pbml0KGJvb2wgY29sZF9ib290KQo+ID4KPiA+ICBpbnQg Z2VuZXJpY19leHRlbnNpb25zX2luaXQoYm9vbCBjb2xkX2Jvb3QpCj4gPiAgewo+ID4gKyAgICAg ICBpbnQgcmM7Cj4gPiArCj4gPiAgICAgICAgIGlmICghY29sZF9ib290KQo+ID4gICAgICAgICAg ICAgICAgIHJldHVybiAwOwo+ID4KPiA+ICAgICAgICAgLyogUGFyc2UgdGhlIElTQSBzdHJpbmcg ZnJvbSBGRFQgYW5kIGVuYWJsZSB0aGUgbGlzdGVkIGV4dGVuc2lvbnMgKi8KPiA+IC0gICAgICAg cmV0dXJuIGZkdF9wYXJzZV9pc2FfZXh0ZW5zaW9uc19hbGxfaGFydHMoZmR0X2dldF9hZGRyZXNz KCkpOwo+ID4gKyAgICAgICByYyA9IGZkdF9wYXJzZV9pc2FfZXh0ZW5zaW9uc19hbGxfaGFydHMo ZmR0X2dldF9hZGRyZXNzKCkpOwo+ID4gKyAgICAgICBpZiAocmMpCj4gPiArICAgICAgICAgICAg ICAgcmV0dXJuIHJjOwo+ID4gKwo+ID4gKyAgICAgICAvKiBQYXJzZSBSSVNDLVYgV29ybGRzIENQ VSBwcm9wZXJ0aWVzIGZyb20gRkRUICovCj4gPiArICAgICAgIHJjID0gZmR0X3BhcnNlX3dvcmxk c19hbGxfaGFydHMoZmR0X2dldF9hZGRyZXNzKCkpOwo+ID4gKyAgICAgICBpZiAocmMpCj4gPiAr ICAgICAgICAgICAgICAgcmV0dXJuIHJjOwo+ID4gKwo+ID4gKyAgICAgICByZXR1cm4gMDsKPiA+ ICB9Cj4gPgo+ID4gIGludCBnZW5lcmljX2RvbWFpbnNfaW5pdCh2b2lkKQo+ID4gLS0KPiA+IDIu NDMuNwo+ID4KPiA+Cj4gPiAtLQo+ID4gb3BlbnNiaSBtYWlsaW5nIGxpc3QKPiA+IG9wZW5zYmlA bGlzdHMuaW5mcmFkZWFkLm9yZwo+ID4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1h bi9saXN0aW5mby9vcGVuc2JpCgotLSAKb3BlbnNiaSBtYWlsaW5nIGxpc3QKb3BlbnNiaUBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vb3BlbnNiaQo=