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 75827C433EF for ; Tue, 7 Dec 2021 19:16:40 +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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=7DCb/okyJEUkIX+kJRYo9FuoPF2H7WKlsAA8R+atnNs=; b=BOVrsnDpYBXtcn eEXDCYalFPWlh8AR8otaQRJ7w7MrW1Svu/Gz8WG190phU1vm4bpg9Ddl2CpoyIA+vVGwVioEoWSw+ G74jjBmMg/UqduwSJXCOqjS7KHGUZ97B4EutpfcHDT5mUFDcF98l6CnGegRq8liFeCZxrNX6QxQ5E MwzsJwuShhtQcnZ8bYmw5KNmGOQQ6r/BSDHCwQx+CG7WCdQfnbghb6ngw0EIdfsxa7QYhABB8BDZZ d4Bhb53m2io3qQb8mRCer6pi440Yjb4xaSiR2pDzL+upWI0KgM3Bq4+gEEcUqHVNlK7sw1yZP7R80 Em11Ob3wCQmuwT5GPdcw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mufve-009t3h-17; Tue, 07 Dec 2021 19:15:06 +0000 Received: from mail-vk1-xa2e.google.com ([2607:f8b0:4864:20::a2e]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mufvX-009t2R-IK for linux-arm-kernel@lists.infradead.org; Tue, 07 Dec 2021 19:15:02 +0000 Received: by mail-vk1-xa2e.google.com with SMTP id 188so25073vku.8 for ; Tue, 07 Dec 2021 11:14:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=gfzNRfOsKy6o4CoW0KTsI8J/eMEJikfY3EgMdOHcArI=; b=C3x8m6XIt5zZcZApC7UVXRhmEt91ObiEbV5HiF21yWuQ8Z/F+R5Ikk1vFBylMG9YQP +D8LEcg+90Z0v6OUYHWQrcerwLFno4922M7JZobuKooB0HPx3DwCbqcpRZ8vYltJOKqt O+kud+dZtDXjnxh0jWSHwi/D8Pmmv2/C3EXePud4faXxyq3+2xW0IBRos78tEeA/IJi7 uMcoykTpVhtjy0Hj92zQF2XRc9ArpKWlg+HOW3bnbuQxj61GL3CzM3IDAWIAP6bNohHF iAf1z9IBV8c4wun4DdtnR+WD6LlIunFHulbBVAvuFa9c9lAA3sw/0WHEVPxY6NyUoyQ+ HSRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=gfzNRfOsKy6o4CoW0KTsI8J/eMEJikfY3EgMdOHcArI=; b=2fun6lluIxjQGTQm6MaiyCDvb0YRPTNfykoBxMlM+f/Qq+VCdiqF3TJ3uEEtPa9B6q Tqtp1IiORh60pE9y3/ObzVTgqaIV6c2oIwKbfdhzMaQ+SWxkcRwbKzY/tGSf7VexgFI2 a++gPzHgYqRRsAfEkF73wlby9/AXmSN0juCCj71k8TG71E3NkrctFOG66EUdE94TQuAa 2VdN1V/miKJRP0vzYq1KMQLtx9v8VXhcL6yOy0s3vGBpD30xxlyaIf1jtMoKeU8aVU+M hr0ksUbmAY/l9gqvAK9fBjYNdRkwxEgK/SlnKHbnzBxW7e+BOE0Egc3z7w7I3HI7aPUB vB8w== X-Gm-Message-State: AOAM531hScs3YMJXfPKzETliYmZHGULGU7IofN27DXMBA6E3Wb+tU2b4 6BXkaYdIysh6ndazATyqvP4xwBY09o47YQlcDwK7KQ== X-Google-Smtp-Source: ABdhPJypvfHUwXRyCLvcg9o+Gk+YOEbi43sos3p42f+xtscBwKeEdSKeESXqCTfGN7/Avjk5D6XLH79UrM0X4YmCde8= X-Received: by 2002:a05:6122:2158:: with SMTP id m24mr55096110vkd.1.1638904498002; Tue, 07 Dec 2021 11:14:58 -0800 (PST) MIME-Version: 1.0 References: <20211206153124.427102-1-virag.david003@gmail.com> <20211206153124.427102-7-virag.david003@gmail.com> In-Reply-To: <20211206153124.427102-7-virag.david003@gmail.com> From: Sam Protsenko Date: Tue, 7 Dec 2021 21:14:46 +0200 Message-ID: Subject: Re: [PATCH v4 6/7] clk: samsung: Add initial Exynos7885 clock driver To: David Virag Cc: Krzysztof Kozlowski , Rob Herring , Sylwester Nawrocki , Tomasz Figa , Chanwoo Choi , Michael Turquette , Stephen Boyd , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211207_111459_701608_17A0194D X-CRM114-Status: GOOD ( 25.05 ) X-BeenThere: linux-arm-kernel@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: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gTW9uLCA2IERlYyAyMDIxIGF0IDE3OjMyLCBEYXZpZCBWaXJhZyA8dmlyYWcuZGF2aWQwMDNA Z21haWwuY29tPiB3cm90ZToKPgo+IFRoaXMgaXMgYW4gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBh ZGRpbmcgYmFzaWMgY2xvY2tzLCBzdWNoIGFzIFVBUlQsCj4gVVNJLCBJMkMsIFdEVCwgZWN0LiBh bmQgdGhlaXIgcGFyZW50IGNsb2Nrcy4gSXQgaXMgaGVhdmlseSBiYXNlZCBvbiB0aGUKPiBFeHlu b3M4NTAgY2xvY2sgZHJpdmVyIGF0ICdkcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3M4NTAu Yycgd2hpY2gKPiB3YXMgbWFkZSBieSBTYW0gUHJvdHNlbmtvLCB0aHVzIHRoZSBjb3B5cmlnaHQg YW5kIGF1dGhvciBsaW5lcyB3ZXJlCj4ga2VwdC4KPgo+IEJ1cyBjbG9ja3MgYXJlIGVuYWJsZWQg YnkgZGVmYXVsdCBhcyB3ZWxsIHRvIGF2b2lkIGhhbmdzIHdoaWxlIHRyeWluZyB0bwo+IGFjY2Vz cyBDTVUgcmVnaXN0ZXJzLgo+Cj4gT25seSB0aGUgcGFydHMgb2YgQ01VX1RPUCBuZWVkZWQgZm9y IENNVV9DT1JFIGFuZCBDTVVfUEVSSSwgYSBiaXQgb2YKPiBDTVVfQ09SRSwgYW5kIG1vc3Qgb2Yg Q01VX1BFUkkgaXMgaW1wbGVtZW50ZWQgYXMgb2Ygbm93Lgo+Cj4gU2lnbmVkLW9mZi1ieTogRGF2 aWQgVmlyYWcgPHZpcmFnLmRhdmlkMDAzQGdtYWlsLmNvbT4KPiAtLS0KPiBDaGFuZ2VzIGluIHYy Ogo+ICAgLSBVc2Ugc2hhcmVkIGNvZGUgYmV0d2VlbiBFeHlub3M4NTAgYW5kIDc4ODUgY2xvY2sg ZHJpdmVycwo+ICAgLSBBcyB0aGUgY29kZSB0aGF0IHdhcyBmcm9tIHRoZSBFeHlub3M4NTAgY2xv Y2sgZHJpdmVyIHdhcyBtb3ZlZCB0bwo+ICAgICBjbGstZXh5bm9zLWFybTY0LmMgYW5kIHdoYXQg cmVtYWlucyBpcyBtb3N0bHkgU29DIHNwZWNpZmljIGRhdGEsCj4gICAgIG1vdmUgdGhlIExpbmFy byBjb3B5cmlnaHQgYW5kIFNhbSBQcm90c2Vua28gYXV0aG9yIGxpbmVzIHRoZXJlLgo+Cj4gQ2hh bmdlcyBpbiB2MzoKPiAgIC0gTm90aGluZwo+Cj4gQ2hhbmdlcyBpbiB2NDoKPiAgIC0gRml4ZWQg bWlzc2luZyBoZWFkZXJzCj4KPiAgZHJpdmVycy9jbGsvc2Ftc3VuZy9NYWtlZmlsZSAgICAgICAg IHwgICAxICsKPiAgZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGstZXh5bm9zNzg4NS5jIHwgNTk3ICsr KysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDU5OCBpbnNlcnRp b25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlu b3M3ODg1LmMKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zYW1zdW5nL01ha2VmaWxlIGIv ZHJpdmVycy9jbGsvc2Ftc3VuZy9NYWtlZmlsZQo+IGluZGV4IDkwMWU2MzMzYzVmMC4uMGRmNzQ5 MTZhODk1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvY2xrL3NhbXN1bmcvTWFrZWZpbGUKPiArKysg Yi9kcml2ZXJzL2Nsay9zYW1zdW5nL01ha2VmaWxlCj4gQEAgLTE4LDYgKzE4LDcgQEAgb2JqLSQo Q09ORklHX0VYWU5PU19BVURTU19DTEtfQ09OKSArPSBjbGstZXh5bm9zLWF1ZHNzLm8KPiAgb2Jq LSQoQ09ORklHX0VYWU5PU19DTEtPVVQpICAgICs9IGNsay1leHlub3MtY2xrb3V0Lm8KPiAgb2Jq LSQoQ09ORklHX0VYWU5PU19BUk02NF9DT01NT05fQ0xLKSAgKz0gY2xrLWV4eW5vcy1hcm02NC5v Cj4gIG9iai0kKENPTkZJR19FWFlOT1NfQVJNNjRfQ09NTU9OX0NMSykgICs9IGNsay1leHlub3M3 Lm8KPiArb2JqLSQoQ09ORklHX0VYWU5PU19BUk02NF9DT01NT05fQ0xLKSAgKz0gY2xrLWV4eW5v czc4ODUubwo+ICBvYmotJChDT05GSUdfRVhZTk9TX0FSTTY0X0NPTU1PTl9DTEspICArPSBjbGst ZXh5bm9zODUwLm8KPiAgb2JqLSQoQ09ORklHX1MzQzI0MTBfQ09NTU9OX0NMSykrPSBjbGstczNj MjQxMC5vCj4gIG9iai0kKENPTkZJR19TM0MyNDEwX0NPTU1PTl9EQ0xLKSs9IGNsay1zM2MyNDEw LWRjbGsubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3M3ODg1 LmMgYi9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3M3ODg1LmMKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uYTdiMTA2MzAyNzA2Cj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5vczc4ODUuYwo+IEBAIC0wLDAg KzEsNTk3IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKPiAr LyoKPiArICogQ29weXJpZ2h0IChDKSAyMDIxIETDoXZpZCBWaXLDoWcgPHZpcmFnLmRhdmlkMDAz QGdtYWlsLmNvbT4KPiArICogQXV0aG9yOiBEw6F2aWQgVmlyw6FnIDx2aXJhZy5kYXZpZDAwM0Bn bWFpbC5jb20+Cj4gKyAqCj4gKyAqIENvbW1vbiBDbG9jayBGcmFtZXdvcmsgc3VwcG9ydCBmb3Ig RXh5bm9zNzg4NSBTb0MuCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+ICsj aW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9vZi5oPgo+ ICsjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9y bV9kZXZpY2UuaD4KPiArCj4gKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9leHlub3M3ODg1 Lmg+Cj4gKwo+ICsjaW5jbHVkZSAiY2xrLmgiCj4gKyNpbmNsdWRlICJjbGstZXh5bm9zLWFybTY0 LmgiCj4gKwo+ICsvKiAtLS0tIENNVV9UT1AgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwo+ICsKPiArLyogUmVnaXN0ZXIgT2Zm c2V0IGRlZmluaXRpb25zIGZvciBDTVVfVE9QICgweDEyMDYwMDAwKSAqLwo+ICsjZGVmaW5lIFBM TF9MT0NLVElNRV9QTExfU0hBUkVEMCAgICAgICAgICAgICAgIDB4MDAwMAo+ICsjZGVmaW5lIFBM TF9MT0NLVElNRV9QTExfU0hBUkVEMSAgICAgICAgICAgICAgIDB4MDAwNAo+ICsjZGVmaW5lIFBM TF9DT04wX1BMTF9TSEFSRUQwICAgICAgICAgICAgICAgICAgIDB4MDEwMAo+ICsjZGVmaW5lIFBM TF9DT04wX1BMTF9TSEFSRUQxICAgICAgICAgICAgICAgICAgIDB4MDEyMAo+ICsjZGVmaW5lIENM S19DT05fTVVYX01VWF9DTEtDTVVfQ09SRV9CVVMgICAgICAgICAgICAgICAgMHgxMDE0Cj4gKyNk ZWZpbmUgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9DT1JFX0NDSSAgICAgICAgICAgICAgICAweDEw MTgKPiArI2RlZmluZSBDTEtfQ09OX01VWF9NVVhfQ0xLQ01VX0NPUkVfRzNEICAgICAgICAgICAg ICAgIDB4MTAxYwo+ICsjZGVmaW5lIENMS19DT05fTVVYX01VWF9DTEtDTVVfUEVSSV9CVVMgICAg ICAgICAgICAgICAgMHgxMDU4Cj4gKyNkZWZpbmUgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9QRVJJ X1NQSTAgICAgICAgMHgxMDVjCj4gKyNkZWZpbmUgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9QRVJJ X1NQSTEgICAgICAgMHgxMDYwCj4gKyNkZWZpbmUgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9QRVJJ X1VBUlQwICAgICAgMHgxMDY0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9QRVJJ X1VBUlQxICAgICAgMHgxMDY4Cj4gKyNkZWZpbmUgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9QRVJJ X1VBUlQyICAgICAgMHgxMDZjCj4gKyNkZWZpbmUgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9QRVJJ X1VTSTAgICAgICAgMHgxMDcwCj4gKyNkZWZpbmUgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9QRVJJ X1VTSTEgICAgICAgMHgxMDc0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9QRVJJ X1VTSTIgICAgICAgMHgxMDc4Cj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfQ0xLQ01VX0NPUkVfQlVT ICAgICAgICAgICAgMHgxODFjCj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfQ0xLQ01VX0NPUkVfQ0NJ ICAgICAgICAgICAgMHgxODIwCj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfQ0xLQ01VX0NPUkVfRzNE ICAgICAgICAgICAgMHgxODI0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfQ0xLQ01VX1BFUklfQlVT ICAgICAgICAgICAgMHgxODc0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfQ0xLQ01VX1BFUklfU1BJ MCAgICAgICAgICAgMHgxODc4Cj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfQ0xLQ01VX1BFUklfU1BJ MSAgICAgICAgICAgMHgxODdjCj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfQ0xLQ01VX1BFUklfVUFS VDAgICAgICAgICAgMHgxODgwCj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfQ0xLQ01VX1BFUklfVUFS VDEgICAgICAgICAgMHgxODg0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfQ0xLQ01VX1BFUklfVUFS VDIgICAgICAgICAgMHgxODg4Cj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfQ0xLQ01VX1BFUklfVVNJ MCAgICAgICAgICAgMHgxODhjCj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfQ0xLQ01VX1BFUklfVVNJ MSAgICAgICAgICAgMHgxODkwCj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfQ0xLQ01VX1BFUklfVVNJ MiAgICAgICAgICAgMHgxODk0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfUExMX1NIQVJFRDBfRElW MiAgICAgICAgICAgMHgxODljCj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfUExMX1NIQVJFRDBfRElW MyAgICAgICAgICAgMHgxOGEwCj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfUExMX1NIQVJFRDBfRElW NCAgICAgICAgICAgMHgxOGE0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfUExMX1NIQVJFRDBfRElW NSAgICAgICAgICAgMHgxOGE4Cj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfUExMX1NIQVJFRDFfRElW MiAgICAgICAgICAgMHgxOGFjCj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfUExMX1NIQVJFRDFfRElW MyAgICAgICAgICAgMHgxOGIwCj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfUExMX1NIQVJFRDFfRElW NCAgICAgICAgICAgMHgxOGI0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVDX1BF UklfVUFSVDEgICAgMHgyMDA0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfQ09S RV9CVVMgICAgICAgMHgyMDFjCj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfQ09S RV9DQ0kgICAgICAgMHgyMDIwCj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfQ09S RV9HM0QgICAgICAgMHgyMDI0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfUEVS SV9CVVMgICAgICAgMHgyMDdjCj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfUEVS SV9TUEkwICAgICAgMHgyMDgwCj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfUEVS SV9TUEkxICAgICAgMHgyMDg0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfUEVS SV9VQVJUMCAgICAgMHgyMDg4Cj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfUEVS SV9VQVJUMiAgICAgMHgyMDhjCj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfUEVS SV9VU0kwICAgICAgMHgyMDkwCj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfUEVS SV9VU0kxICAgICAgMHgyMDk0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfUEVS SV9VU0kyICAgICAgMHgyMDk4Cj4gKwo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyB0b3Bf Y2xrX3JlZ3NbXSBfX2luaXRjb25zdCA9IHsKPiArICAgICAgIFBMTF9MT0NLVElNRV9QTExfU0hB UkVEMCwKPiArICAgICAgIFBMTF9MT0NLVElNRV9QTExfU0hBUkVEMSwKPiArICAgICAgIFBMTF9D T04wX1BMTF9TSEFSRUQwLAo+ICsgICAgICAgUExMX0NPTjBfUExMX1NIQVJFRDEsCj4gKyAgICAg ICBDTEtfQ09OX01VWF9NVVhfQ0xLQ01VX0NPUkVfQlVTLAo+ICsgICAgICAgQ0xLX0NPTl9NVVhf TVVYX0NMS0NNVV9DT1JFX0NDSSwKPiArICAgICAgIENMS19DT05fTVVYX01VWF9DTEtDTVVfQ09S RV9HM0QsCj4gKyAgICAgICBDTEtfQ09OX01VWF9NVVhfQ0xLQ01VX1BFUklfQlVTLAo+ICsgICAg ICAgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9QRVJJX1NQSTAsCj4gKyAgICAgICBDTEtfQ09OX01V WF9NVVhfQ0xLQ01VX1BFUklfU1BJMSwKPiArICAgICAgIENMS19DT05fTVVYX01VWF9DTEtDTVVf UEVSSV9VQVJUMCwKPiArICAgICAgIENMS19DT05fTVVYX01VWF9DTEtDTVVfUEVSSV9VQVJUMSwK PiArICAgICAgIENMS19DT05fTVVYX01VWF9DTEtDTVVfUEVSSV9VQVJUMiwKPiArICAgICAgIENM S19DT05fTVVYX01VWF9DTEtDTVVfUEVSSV9VU0kwLAo+ICsgICAgICAgQ0xLX0NPTl9NVVhfTVVY X0NMS0NNVV9QRVJJX1VTSTEsCj4gKyAgICAgICBDTEtfQ09OX01VWF9NVVhfQ0xLQ01VX1BFUklf VVNJMiwKPiArICAgICAgIENMS19DT05fRElWX0NMS0NNVV9DT1JFX0JVUywKPiArICAgICAgIENM S19DT05fRElWX0NMS0NNVV9DT1JFX0NDSSwKPiArICAgICAgIENMS19DT05fRElWX0NMS0NNVV9D T1JFX0czRCwKPiArICAgICAgIENMS19DT05fRElWX0NMS0NNVV9QRVJJX0JVUywKPiArICAgICAg IENMS19DT05fRElWX0NMS0NNVV9QRVJJX1NQSTAsCj4gKyAgICAgICBDTEtfQ09OX0RJVl9DTEtD TVVfUEVSSV9TUEkxLAo+ICsgICAgICAgQ0xLX0NPTl9ESVZfQ0xLQ01VX1BFUklfVUFSVDAsCj4g KyAgICAgICBDTEtfQ09OX0RJVl9DTEtDTVVfUEVSSV9VQVJUMSwKPiArICAgICAgIENMS19DT05f RElWX0NMS0NNVV9QRVJJX1VBUlQyLAo+ICsgICAgICAgQ0xLX0NPTl9ESVZfQ0xLQ01VX1BFUklf VVNJMCwKPiArICAgICAgIENMS19DT05fRElWX0NMS0NNVV9QRVJJX1VTSTEsCj4gKyAgICAgICBD TEtfQ09OX0RJVl9DTEtDTVVfUEVSSV9VU0kyLAo+ICsgICAgICAgQ0xLX0NPTl9ESVZfUExMX1NI QVJFRDBfRElWMiwKPiArICAgICAgIENMS19DT05fRElWX1BMTF9TSEFSRUQwX0RJVjMsCj4gKyAg ICAgICBDTEtfQ09OX0RJVl9QTExfU0hBUkVEMF9ESVY0LAo+ICsgICAgICAgQ0xLX0NPTl9ESVZf UExMX1NIQVJFRDBfRElWNSwKPiArICAgICAgIENMS19DT05fRElWX1BMTF9TSEFSRUQxX0RJVjIs Cj4gKyAgICAgICBDTEtfQ09OX0RJVl9QTExfU0hBUkVEMV9ESVYzLAo+ICsgICAgICAgQ0xLX0NP Tl9ESVZfUExMX1NIQVJFRDFfRElWNCwKPiArICAgICAgIENMS19DT05fR0FUX0dBVEVfQ0xLQ01V Q19QRVJJX1VBUlQxLAo+ICsgICAgICAgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfQ09SRV9CVVMs Cj4gKyAgICAgICBDTEtfQ09OX0dBVF9HQVRFX0NMS0NNVV9DT1JFX0NDSSwKPiArICAgICAgIENM S19DT05fR0FUX0dBVEVfQ0xLQ01VX0NPUkVfRzNELAo+ICsgICAgICAgQ0xLX0NPTl9HQVRfR0FU RV9DTEtDTVVfUEVSSV9CVVMsCj4gKyAgICAgICBDTEtfQ09OX0dBVF9HQVRFX0NMS0NNVV9QRVJJ X1NQSTAsCj4gKyAgICAgICBDTEtfQ09OX0dBVF9HQVRFX0NMS0NNVV9QRVJJX1NQSTEsCj4gKyAg ICAgICBDTEtfQ09OX0dBVF9HQVRFX0NMS0NNVV9QRVJJX1VBUlQwLAo+ICsgICAgICAgQ0xLX0NP Tl9HQVRfR0FURV9DTEtDTVVfUEVSSV9VQVJUMiwKPiArICAgICAgIENMS19DT05fR0FUX0dBVEVf Q0xLQ01VX1BFUklfVVNJMCwKPiArICAgICAgIENMS19DT05fR0FUX0dBVEVfQ0xLQ01VX1BFUklf VVNJMSwKPiArICAgICAgIENMS19DT05fR0FUX0dBVEVfQ0xLQ01VX1BFUklfVVNJMiwKPiArfTsK PiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Ftc3VuZ19wbGxfY2xvY2sgdG9wX3BsbF9jbGtz W10gX19pbml0Y29uc3QgPSB7Cj4gKyAgICAgICBQTEwocGxsXzE0MTd4LCBDTEtfRk9VVF9TSEFS RUQwX1BMTCwgImZvdXRfc2hhcmVkMF9wbGwiLCAib3NjY2xrIiwKPiArICAgICAgICAgICBQTExf TE9DS1RJTUVfUExMX1NIQVJFRDAsIFBMTF9DT04wX1BMTF9TSEFSRUQwLAo+ICsgICAgICAgICAg IE5VTEwpLAo+ICsgICAgICAgUExMKHBsbF8xNDE3eCwgQ0xLX0ZPVVRfU0hBUkVEMV9QTEwsICJm b3V0X3NoYXJlZDFfcGxsIiwgIm9zY2NsayIsCj4gKyAgICAgICAgICAgUExMX0xPQ0tUSU1FX1BM TF9TSEFSRUQxLCBQTExfQ09OMF9QTExfU0hBUkVEMSwKPiArICAgICAgICAgICBOVUxMKSwKPiAr fTsKPiArCj4gKy8qIExpc3Qgb2YgcGFyZW50IGNsb2NrcyBmb3IgTXV4ZXMgaW4gQ01VX1RPUDog Zm9yIENNVV9DT1JFICovCj4gK1BOQU1FKG1vdXRfY29yZV9idXNfcCkgICAgICAgICA9IHsgImRv dXRfc2hhcmVkMF9kaXYyIiwgImRvdXRfc2hhcmVkMV9kaXYyIiwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiZG91dF9zaGFyZWQwX2RpdjMiLCAiZG91dF9zaGFyZWQwX2Rp djMiIH07Cj4gK1BOQU1FKG1vdXRfY29yZV9jY2lfcCkgICAgICAgICA9IHsgImRvdXRfc2hhcmVk MF9kaXYyIiwgImRvdXRfc2hhcmVkMV9kaXYyIiwKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiZG91dF9zaGFyZWQwX2RpdjMiLCAiZG91dF9zaGFyZWQwX2RpdjMiIH07Cj4g K1BOQU1FKG1vdXRfY29yZV9nM2RfcCkgICAgICAgICA9IHsgImRvdXRfc2hhcmVkMF9kaXYyIiwg ImRvdXRfc2hhcmVkMV9kaXYyIiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiZG91dF9zaGFyZWQwX2RpdjMiLCAiZG91dF9zaGFyZWQwX2RpdjMiIH07Cj4gKwo+ICsvKiBM aXN0IG9mIHBhcmVudCBjbG9ja3MgZm9yIE11eGVzIGluIENNVV9UT1A6IGZvciBDTVVfUEVSSSAq Lwo+ICtQTkFNRShtb3V0X3BlcmlfYnVzX3ApICAgICAgICAgPSB7ICJkb3V0X3NoYXJlZDBfZGl2 NCIsICJkb3V0X3NoYXJlZDFfZGl2NCIgfTsKPiArUE5BTUUobW91dF9wZXJpX3NwaTBfcCkgICAg ICAgICAgICAgICAgPSB7ICJvc2NjbGsiLCAiZG91dF9zaGFyZWQwX2RpdjQiIH07Cj4gK1BOQU1F KG1vdXRfcGVyaV9zcGkxX3ApICAgICAgICAgICAgICAgID0geyAib3NjY2xrIiwgImRvdXRfc2hh cmVkMF9kaXY0IiB9Owo+ICtQTkFNRShtb3V0X3BlcmlfdWFydDBfcCkgICAgICAgPSB7ICJvc2Nj bGsiLCAiZG91dF9zaGFyZWQwX2RpdjQiIH07Cj4gK1BOQU1FKG1vdXRfcGVyaV91YXJ0MV9wKSAg ICAgICA9IHsgIm9zY2NsayIsICJkb3V0X3NoYXJlZDBfZGl2NCIgfTsKPiArUE5BTUUobW91dF9w ZXJpX3VhcnQyX3ApICAgICAgID0geyAib3NjY2xrIiwgImRvdXRfc2hhcmVkMF9kaXY0IiB9Owo+ ICtQTkFNRShtb3V0X3BlcmlfdXNpMF9wKSAgICAgICAgICAgICAgICA9IHsgIm9zY2NsayIsICJk b3V0X3NoYXJlZDBfZGl2NCIgfTsKPiArUE5BTUUobW91dF9wZXJpX3VzaTFfcCkgICAgICAgICAg ICAgICAgPSB7ICJvc2NjbGsiLCAiZG91dF9zaGFyZWQwX2RpdjQiIH07Cj4gK1BOQU1FKG1vdXRf cGVyaV91c2kyX3ApICAgICAgICAgICAgICAgID0geyAib3NjY2xrIiwgImRvdXRfc2hhcmVkMF9k aXY0IiB9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1zdW5nX211eF9jbG9jayB0b3Bf bXV4X2Nsa3NbXSBfX2luaXRjb25zdCA9IHsKPiArICAgICAgIC8qIENPUkUgKi8KPiArICAgICAg IE1VWChDTEtfTU9VVF9DT1JFX0JVUywgIm1vdXRfY29yZV9idXMiLCBtb3V0X2NvcmVfYnVzX3As Cj4gKyAgICAgICAgICAgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9DT1JFX0JVUywgMCwgMiksCj4g KyAgICAgICBNVVgoQ0xLX01PVVRfQ09SRV9DQ0ksICJtb3V0X2NvcmVfY2NpIiwgbW91dF9jb3Jl X2NjaV9wLAo+ICsgICAgICAgICAgIENMS19DT05fTVVYX01VWF9DTEtDTVVfQ09SRV9DQ0ksIDAs IDIpLAo+ICsgICAgICAgTVVYKENMS19NT1VUX0NPUkVfRzNELCAibW91dF9jb3JlX2czZCIsIG1v dXRfY29yZV9nM2RfcCwKPiArICAgICAgICAgICBDTEtfQ09OX01VWF9NVVhfQ0xLQ01VX0NPUkVf RzNELCAwLCAyKSwKPiArCj4gKyAgICAgICAvKiBQRVJJICovCj4gKyAgICAgICBNVVgoQ0xLX01P VVRfUEVSSV9CVVMsICJtb3V0X3BlcmlfYnVzIiwgbW91dF9wZXJpX2J1c19wLAo+ICsgICAgICAg ICAgIENMS19DT05fTVVYX01VWF9DTEtDTVVfUEVSSV9CVVMsIDAsIDEpLAo+ICsgICAgICAgTVVY KENMS19NT1VUX1BFUklfU1BJMCwgIm1vdXRfcGVyaV9zcGkwIiwgbW91dF9wZXJpX3NwaTBfcCwK PiArICAgICAgICAgICBDTEtfQ09OX01VWF9NVVhfQ0xLQ01VX1BFUklfU1BJMCwgMCwgMSksCj4g KyAgICAgICBNVVgoQ0xLX01PVVRfUEVSSV9TUEkxLCAibW91dF9wZXJpX3NwaTEiLCBtb3V0X3Bl cmlfc3BpMV9wLAo+ICsgICAgICAgICAgIENMS19DT05fTVVYX01VWF9DTEtDTVVfUEVSSV9TUEkx LCAwLCAxKSwKPiArICAgICAgIE1VWChDTEtfTU9VVF9QRVJJX1VBUlQwLCAibW91dF9wZXJpX3Vh cnQwIiwgbW91dF9wZXJpX3VhcnQwX3AsCj4gKyAgICAgICAgICAgQ0xLX0NPTl9NVVhfTVVYX0NM S0NNVV9QRVJJX1VBUlQwLCAwLCAxKSwKPiArICAgICAgIE1VWChDTEtfTU9VVF9QRVJJX1VBUlQx LCAibW91dF9wZXJpX3VhcnQxIiwgbW91dF9wZXJpX3VhcnQxX3AsCj4gKyAgICAgICAgICAgQ0xL X0NPTl9NVVhfTVVYX0NMS0NNVV9QRVJJX1VBUlQxLCAwLCAxKSwKPiArICAgICAgIE1VWChDTEtf TU9VVF9QRVJJX1VBUlQyLCAibW91dF9wZXJpX3VhcnQyIiwgbW91dF9wZXJpX3VhcnQyX3AsCj4g KyAgICAgICAgICAgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9QRVJJX1VBUlQyLCAwLCAxKSwKPiAr ICAgICAgIE1VWChDTEtfTU9VVF9QRVJJX1VTSTAsICJtb3V0X3BlcmlfdXNpMCIsIG1vdXRfcGVy aV91c2kwX3AsCj4gKyAgICAgICAgICAgQ0xLX0NPTl9NVVhfTVVYX0NMS0NNVV9QRVJJX1VTSTAs IDAsIDEpLAo+ICsgICAgICAgTVVYKENMS19NT1VUX1BFUklfVVNJMSwgIm1vdXRfcGVyaV91c2kx IiwgbW91dF9wZXJpX3VzaTFfcCwKPiArICAgICAgICAgICBDTEtfQ09OX01VWF9NVVhfQ0xLQ01V X1BFUklfVVNJMSwgMCwgMSksCj4gKyAgICAgICBNVVgoQ0xLX01PVVRfUEVSSV9VU0kyLCAibW91 dF9wZXJpX3VzaTIiLCBtb3V0X3BlcmlfdXNpMl9wLAo+ICsgICAgICAgICAgIENMS19DT05fTVVY X01VWF9DTEtDTVVfUEVSSV9VU0kyLCAwLCAxKSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3Qgc2Ftc3VuZ19kaXZfY2xvY2sgdG9wX2Rpdl9jbGtzW10gX19pbml0Y29uc3QgPSB7Cj4g KyAgICAgICAvKiBUT1AgKi8KPiArICAgICAgIERJVihDTEtfRE9VVF9TSEFSRUQwX0RJVjIsICJk b3V0X3NoYXJlZDBfZGl2MiIsICJmb3V0X3NoYXJlZDBfcGxsIiwKPiArICAgICAgICAgICBDTEtf Q09OX0RJVl9QTExfU0hBUkVEMF9ESVYyLCAwLCAxKSwKPiArICAgICAgIERJVihDTEtfRE9VVF9T SEFSRUQwX0RJVjMsICJkb3V0X3NoYXJlZDBfZGl2MyIsICJmb3V0X3NoYXJlZDBfcGxsIiwKPiAr ICAgICAgICAgICBDTEtfQ09OX0RJVl9QTExfU0hBUkVEMF9ESVYzLCAwLCAyKSwKPiArICAgICAg IERJVihDTEtfRE9VVF9TSEFSRUQwX0RJVjQsICJkb3V0X3NoYXJlZDBfZGl2NCIsICJmb3V0X3No YXJlZDBfcGxsIiwKPiArICAgICAgICAgICBDTEtfQ09OX0RJVl9QTExfU0hBUkVEMF9ESVY0LCAw LCAxKSwKPiArICAgICAgIERJVihDTEtfRE9VVF9TSEFSRUQwX0RJVjUsICJkb3V0X3NoYXJlZDBf ZGl2NSIsICJmb3V0X3NoYXJlZDBfcGxsIiwKPiArICAgICAgICAgICBDTEtfQ09OX0RJVl9QTExf U0hBUkVEMF9ESVY1LCAwLCAzKSwKPiArICAgICAgIERJVihDTEtfRE9VVF9TSEFSRUQxX0RJVjIs ICJkb3V0X3NoYXJlZDFfZGl2MiIsICJmb3V0X3NoYXJlZDFfcGxsIiwKPiArICAgICAgICAgICBD TEtfQ09OX0RJVl9QTExfU0hBUkVEMV9ESVYyLCAwLCAxKSwKPiArICAgICAgIERJVihDTEtfRE9V VF9TSEFSRUQxX0RJVjMsICJkb3V0X3NoYXJlZDFfZGl2MyIsICJmb3V0X3NoYXJlZDFfcGxsIiwK PiArICAgICAgICAgICBDTEtfQ09OX0RJVl9QTExfU0hBUkVEMV9ESVYzLCAwLCAyKSwKPiArICAg ICAgIERJVihDTEtfRE9VVF9TSEFSRUQxX0RJVjQsICJkb3V0X3NoYXJlZDFfZGl2NCIsICJmb3V0 X3NoYXJlZDFfcGxsIiwKPiArICAgICAgICAgICBDTEtfQ09OX0RJVl9QTExfU0hBUkVEMV9ESVY0 LCAwLCAxKSwKPiArCj4gKyAgICAgICAvKiBDT1JFICovCj4gKyAgICAgICBESVYoQ0xLX0RPVVRf Q09SRV9CVVMsICJkb3V0X2NvcmVfYnVzIiwgImdvdXRfY29yZV9idXMiLAo+ICsgICAgICAgICAg IENMS19DT05fRElWX0NMS0NNVV9DT1JFX0JVUywgMCwgMyksCj4gKyAgICAgICBESVYoQ0xLX0RP VVRfQ09SRV9DQ0ksICJkb3V0X2NvcmVfY2NpIiwgImdvdXRfY29yZV9jY2kiLAo+ICsgICAgICAg ICAgIENMS19DT05fRElWX0NMS0NNVV9DT1JFX0NDSSwgMCwgMyksCj4gKyAgICAgICBESVYoQ0xL X0RPVVRfQ09SRV9HM0QsICJkb3V0X2NvcmVfZzNkIiwgImdvdXRfY29yZV9nM2QiLAo+ICsgICAg ICAgICAgIENMS19DT05fRElWX0NMS0NNVV9DT1JFX0czRCwgMCwgMyksCj4gKwo+ICsgICAgICAg LyogUEVSSSAqLwo+ICsgICAgICAgRElWKENMS19ET1VUX1BFUklfQlVTLCAiZG91dF9wZXJpX2J1 cyIsICJnb3V0X3BlcmlfYnVzIiwKPiArICAgICAgICAgICBDTEtfQ09OX0RJVl9DTEtDTVVfUEVS SV9CVVMsIDAsIDQpLAo+ICsgICAgICAgRElWKENMS19ET1VUX1BFUklfU1BJMCwgImRvdXRfcGVy aV9zcGkwIiwgImdvdXRfcGVyaV9zcGkwIiwKPiArICAgICAgICAgICBDTEtfQ09OX0RJVl9DTEtD TVVfUEVSSV9TUEkwLCAwLCA2KSwKPiArICAgICAgIERJVihDTEtfRE9VVF9QRVJJX1NQSTEsICJk b3V0X3Blcmlfc3BpMSIsICJnb3V0X3Blcmlfc3BpMSIsCj4gKyAgICAgICAgICAgQ0xLX0NPTl9E SVZfQ0xLQ01VX1BFUklfU1BJMSwgMCwgNiksCj4gKyAgICAgICBESVYoQ0xLX0RPVVRfUEVSSV9V QVJUMCwgImRvdXRfcGVyaV91YXJ0MCIsICJnb3V0X3BlcmlfdWFydDAiLAo+ICsgICAgICAgICAg IENMS19DT05fRElWX0NMS0NNVV9QRVJJX1VBUlQwLCAwLCA0KSwKPiArICAgICAgIERJVihDTEtf RE9VVF9QRVJJX1VBUlQxLCAiZG91dF9wZXJpX3VhcnQxIiwgImdvdXRfcGVyaV91YXJ0MSIsCj4g KyAgICAgICAgICAgQ0xLX0NPTl9ESVZfQ0xLQ01VX1BFUklfVUFSVDEsIDAsIDQpLAo+ICsgICAg ICAgRElWKENMS19ET1VUX1BFUklfVUFSVDIsICJkb3V0X3BlcmlfdWFydDIiLCAiZ291dF9wZXJp X3VhcnQyIiwKPiArICAgICAgICAgICBDTEtfQ09OX0RJVl9DTEtDTVVfUEVSSV9VQVJUMiwgMCwg NCksCj4gKyAgICAgICBESVYoQ0xLX0RPVVRfUEVSSV9VU0kwLCAiZG91dF9wZXJpX3VzaTAiLCAi Z291dF9wZXJpX3VzaTAiLAo+ICsgICAgICAgICAgIENMS19DT05fRElWX0NMS0NNVV9QRVJJX1VT STAsIDAsIDQpLAo+ICsgICAgICAgRElWKENMS19ET1VUX1BFUklfVVNJMSwgImRvdXRfcGVyaV91 c2kxIiwgImdvdXRfcGVyaV91c2kxIiwKPiArICAgICAgICAgICBDTEtfQ09OX0RJVl9DTEtDTVVf UEVSSV9VU0kxLCAwLCA0KSwKPiArICAgICAgIERJVihDTEtfRE9VVF9QRVJJX1VTSTIsICJkb3V0 X3BlcmlfdXNpMiIsICJnb3V0X3BlcmlfdXNpMiIsCj4gKyAgICAgICAgICAgQ0xLX0NPTl9ESVZf Q0xLQ01VX1BFUklfVVNJMiwgMCwgNCksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IHNhbXN1bmdfZ2F0ZV9jbG9jayB0b3BfZ2F0ZV9jbGtzW10gX19pbml0Y29uc3QgPSB7Cj4gKyAg ICAgICAvKiBDT1JFICovCj4gKyAgICAgICBHQVRFKENMS19HT1VUX0NPUkVfQlVTLCAiZ291dF9j b3JlX2J1cyIsICJtb3V0X2NvcmVfYnVzIiwKPiArICAgICAgICAgICAgQ0xLX0NPTl9HQVRfR0FU RV9DTEtDTVVfQ09SRV9CVVMsIDIxLCAwLCAwKSwKPiArICAgICAgIEdBVEUoQ0xLX0dPVVRfQ09S RV9DQ0ksICJnb3V0X2NvcmVfY2NpIiwgIm1vdXRfY29yZV9jY2kiLAo+ICsgICAgICAgICAgICBD TEtfQ09OX0dBVF9HQVRFX0NMS0NNVV9DT1JFX0NDSSwgMjEsIDAsIDApLAo+ICsgICAgICAgR0FU RShDTEtfR09VVF9DT1JFX0czRCwgImdvdXRfY29yZV9nM2QiLCAibW91dF9jb3JlX2czZCIsCj4g KyAgICAgICAgICAgIENMS19DT05fR0FUX0dBVEVfQ0xLQ01VX0NPUkVfRzNELCAyMSwgMCwgMCks Cj4gKwo+ICsgICAgICAgLyogUEVSSSAqLwo+ICsgICAgICAgR0FURShDTEtfR09VVF9QRVJJX0JV UywgImdvdXRfcGVyaV9idXMiLCAibW91dF9wZXJpX2J1cyIsCj4gKyAgICAgICAgICAgIENMS19D T05fR0FUX0dBVEVfQ0xLQ01VX1BFUklfQlVTLCAyMSwgMCwgMCksCj4gKyAgICAgICBHQVRFKENM S19HT1VUX1BFUklfU1BJMCwgImdvdXRfcGVyaV9zcGkwIiwgIm1vdXRfcGVyaV9zcGkwIiwKPiAr ICAgICAgICAgICAgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfUEVSSV9TUEkwLCAyMSwgMCwgMCks Cj4gKyAgICAgICBHQVRFKENMS19HT1VUX1BFUklfU1BJMSwgImdvdXRfcGVyaV9zcGkxIiwgIm1v dXRfcGVyaV9zcGkxIiwKPiArICAgICAgICAgICAgQ0xLX0NPTl9HQVRfR0FURV9DTEtDTVVfUEVS SV9TUEkxLCAyMSwgMCwgMCksCj4gKyAgICAgICBHQVRFKENMS19HT1VUX1BFUklfVUFSVDAsICJn b3V0X3BlcmlfdWFydDAiLCAibW91dF9wZXJpX3VhcnQwIiwKPiArICAgICAgICAgICAgQ0xLX0NP Tl9HQVRfR0FURV9DTEtDTVVfUEVSSV9VQVJUMCwgMjEsIDAsIDApLAo+ICsgICAgICAgR0FURShD TEtfR09VVF9QRVJJX1VBUlQxLCAiZ291dF9wZXJpX3VhcnQxIiwgIm1vdXRfcGVyaV91YXJ0MSIs Cj4gKyAgICAgICAgICAgIENMS19DT05fR0FUX0dBVEVfQ0xLQ01VQ19QRVJJX1VBUlQxLCAyMSwg MCwgMCksCj4gKyAgICAgICBHQVRFKENMS19HT1VUX1BFUklfVUFSVDIsICJnb3V0X3BlcmlfdWFy dDIiLCAibW91dF9wZXJpX3VhcnQyIiwKPiArICAgICAgICAgICAgQ0xLX0NPTl9HQVRfR0FURV9D TEtDTVVfUEVSSV9VQVJUMiwgMjEsIDAsIDApLAo+ICsgICAgICAgR0FURShDTEtfR09VVF9QRVJJ X1VTSTAsICJnb3V0X3BlcmlfdXNpMCIsICJtb3V0X3BlcmlfdXNpMCIsCj4gKyAgICAgICAgICAg IENMS19DT05fR0FUX0dBVEVfQ0xLQ01VX1BFUklfVVNJMCwgMjEsIDAsIDApLAo+ICsgICAgICAg R0FURShDTEtfR09VVF9QRVJJX1VTSTEsICJnb3V0X3BlcmlfdXNpMSIsICJtb3V0X3BlcmlfdXNp MSIsCj4gKyAgICAgICAgICAgIENMS19DT05fR0FUX0dBVEVfQ0xLQ01VX1BFUklfVVNJMSwgMjEs IDAsIDApLAo+ICsgICAgICAgR0FURShDTEtfR09VVF9QRVJJX1VTSTIsICJnb3V0X3BlcmlfdXNp MiIsICJtb3V0X3BlcmlfdXNpMiIsCj4gKyAgICAgICAgICAgIENMS19DT05fR0FUX0dBVEVfQ0xL Q01VX1BFUklfVVNJMiwgMjEsIDAsIDApLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVj dCBzYW1zdW5nX2NtdV9pbmZvIHRvcF9jbXVfaW5mbyBfX2luaXRjb25zdCA9IHsKPiArICAgICAg IC5wbGxfY2xrcyAgICAgICAgICAgICAgID0gdG9wX3BsbF9jbGtzLAo+ICsgICAgICAgLm5yX3Bs bF9jbGtzICAgICAgICAgICAgPSBBUlJBWV9TSVpFKHRvcF9wbGxfY2xrcyksCj4gKyAgICAgICAu bXV4X2Nsa3MgICAgICAgICAgICAgICA9IHRvcF9tdXhfY2xrcywKPiArICAgICAgIC5ucl9tdXhf Y2xrcyAgICAgICAgICAgID0gQVJSQVlfU0laRSh0b3BfbXV4X2Nsa3MpLAo+ICsgICAgICAgLmRp dl9jbGtzICAgICAgICAgICAgICAgPSB0b3BfZGl2X2Nsa3MsCj4gKyAgICAgICAubnJfZGl2X2Ns a3MgICAgICAgICAgICA9IEFSUkFZX1NJWkUodG9wX2Rpdl9jbGtzKSwKPiArICAgICAgIC5nYXRl X2Nsa3MgICAgICAgICAgICAgID0gdG9wX2dhdGVfY2xrcywKPiArICAgICAgIC5ucl9nYXRlX2Ns a3MgICAgICAgICAgID0gQVJSQVlfU0laRSh0b3BfZ2F0ZV9jbGtzKSwKPiArICAgICAgIC5ucl9j bGtfaWRzICAgICAgICAgICAgID0gVE9QX05SX0NMSywKPiArICAgICAgIC5jbGtfcmVncyAgICAg ICAgICAgICAgID0gdG9wX2Nsa19yZWdzLAo+ICsgICAgICAgLm5yX2Nsa19yZWdzICAgICAgICAg ICAgPSBBUlJBWV9TSVpFKHRvcF9jbGtfcmVncyksCj4gK307Cj4gKwo+ICtzdGF0aWMgdm9pZCBf X2luaXQgZXh5bm9zNzg4NV9jbXVfdG9wX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKPiAr ewo+ICsgICAgICAgZXh5bm9zX2FybTY0X3JlZ2lzdGVyX2NtdShOVUxMLCBucCwgJnRvcF9jbXVf aW5mbyk7Cj4gK30KPiArCj4gKy8qIFJlZ2lzdGVyIENNVV9UT1AgZWFybHksIGFzIGl0J3MgYSBk ZXBlbmRlbmN5IGZvciBvdGhlciBlYXJseSBkb21haW5zICovCj4gK0NMS19PRl9ERUNMQVJFKGV4 eW5vczc4ODVfY211X3RvcCwgInNhbXN1bmcsZXh5bm9zNzg4NS1jbXUtdG9wIiwKPiArICAgICAg ICAgICAgICBleHlub3M3ODg1X2NtdV90b3BfaW5pdCk7Cj4gKwo+ICsvKiAtLS0tIENNVV9QRVJJ IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAqLwo+ICsKPiArLyogUmVnaXN0ZXIgT2Zmc2V0IGRlZmluaXRpb25zIGZvciBDTVVfUEVS SSAoMHgxMDAxMDAwMCkgKi8KPiArI2RlZmluZSBQTExfQ09OMF9NVVhfQ0xLQ01VX1BFUklfQlVT X1VTRVIgICAgICAweDAxMDAKPiArI2RlZmluZSBQTExfQ09OMF9NVVhfQ0xLQ01VX1BFUklfU1BJ MF9VU0VSICAgICAweDAxMjAKPiArI2RlZmluZSBQTExfQ09OMF9NVVhfQ0xLQ01VX1BFUklfU1BJ MV9VU0VSICAgICAweDAxNDAKPiArI2RlZmluZSBQTExfQ09OMF9NVVhfQ0xLQ01VX1BFUklfVUFS VDBfVVNFUiAgICAweDAxNjAKPiArI2RlZmluZSBQTExfQ09OMF9NVVhfQ0xLQ01VX1BFUklfVUFS VDFfVVNFUiAgICAweDAxODAKPiArI2RlZmluZSBQTExfQ09OMF9NVVhfQ0xLQ01VX1BFUklfVUFS VDJfVVNFUiAgICAweDAxYTAKPiArI2RlZmluZSBQTExfQ09OMF9NVVhfQ0xLQ01VX1BFUklfVVNJ MF9VU0VSICAgICAweDAxYzAKPiArI2RlZmluZSBQTExfQ09OMF9NVVhfQ0xLQ01VX1BFUklfVVNJ MV9VU0VSICAgICAweDAxZTAKPiArI2RlZmluZSBQTExfQ09OMF9NVVhfQ0xLQ01VX1BFUklfVVNJ Ml9VU0VSICAgICAweDAyMDAKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfR1BJT19U T1BfUENMSyAgICAweDIwMjQKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSFNJMkNf MF9QQ0xLICAgICAweDIwMjgKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSFNJMkNf MV9QQ0xLICAgICAweDIwMmMKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSFNJMkNf Ml9QQ0xLICAgICAweDIwMzAKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSFNJMkNf M19QQ0xLICAgICAweDIwMzQKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzBf UENMSyAgICAgICAweDIwMzgKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzFf UENMSyAgICAgICAweDIwM2MKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzJf UENMSyAgICAgICAweDIwNDAKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzNf UENMSyAgICAgICAweDIwNDQKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzRf UENMSyAgICAgICAweDIwNDgKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzVf UENMSyAgICAgICAweDIwNGMKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzZf UENMSyAgICAgICAweDIwNTAKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzdf UENMSyAgICAgICAweDIwNTQKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfUFdNX01P VE9SX1BDTEsgICAweDIwNTgKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfU1BJXzBf UENMSyAgICAgICAweDIwNWMKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfU1BJXzBf RVhUX0NMSyAgICAweDIwNjAKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfU1BJXzFf UENMSyAgICAgICAweDIwNjQKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfU1BJXzFf RVhUX0NMSyAgICAweDIwNjgKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfVUFSVF8w X0VYVF9VQ0xLICAweDIwNmMKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfVUFSVF8w X1BDTEsgICAgICAweDIwNzAKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfVUFSVF8x X0VYVF9VQ0xLICAweDIwNzQKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfVUFSVF8x X1BDTEsgICAgICAweDIwNzgKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfVUFSVF8y X0VYVF9VQ0xLICAweDIwN2MKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfVUFSVF8y X1BDTEsgICAgICAweDIwODAKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfVVNJMF9Q Q0xLICAgICAgICAgICAgICAgIDB4MjA4NAo+ICsjZGVmaW5lIENMS19DT05fR0FUX0dPVVRfUEVS SV9VU0kwX1NDTEsgICAgICAgICAgICAgICAgMHgyMDg4Cj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRf R09VVF9QRVJJX1VTSTFfUENMSyAgICAgICAgICAgICAgICAweDIwOGMKPiArI2RlZmluZSBDTEtf Q09OX0dBVF9HT1VUX1BFUklfVVNJMV9TQ0xLICAgICAgICAgICAgICAgIDB4MjA5MAo+ICsjZGVm aW5lIENMS19DT05fR0FUX0dPVVRfUEVSSV9VU0kyX1BDTEsgICAgICAgICAgICAgICAgMHgyMDk0 Cj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX1VTSTJfU0NMSyAgICAgICAgICAgICAg ICAweDIwOTgKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfTUNUX1BDTEsgICAgICAg ICAweDIwYTAKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfU1lTUkVHX1BFUklfUENM SyAweDIwYjAKPiArI2RlZmluZSBDTEtfQ09OX0dBVF9HT1VUX1BFUklfV0RUX0NMVVNURVIwX1BD TEsgICAgICAgIDB4MjBiNAo+ICsjZGVmaW5lIENMS19DT05fR0FUX0dPVVRfUEVSSV9XRFRfQ0xV U1RFUjFfUENMSyAgICAgICAgMHgyMGI4Cj4gKwo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9u ZyBwZXJpX2Nsa19yZWdzW10gX19pbml0Y29uc3QgPSB7Cj4gKyAgICAgICBQTExfQ09OMF9NVVhf Q0xLQ01VX1BFUklfQlVTX1VTRVIsCj4gKyAgICAgICBQTExfQ09OMF9NVVhfQ0xLQ01VX1BFUklf U1BJMF9VU0VSLAo+ICsgICAgICAgUExMX0NPTjBfTVVYX0NMS0NNVV9QRVJJX1NQSTFfVVNFUiwK PiArICAgICAgIFBMTF9DT04wX01VWF9DTEtDTVVfUEVSSV9VQVJUMF9VU0VSLAo+ICsgICAgICAg UExMX0NPTjBfTVVYX0NMS0NNVV9QRVJJX1VBUlQxX1VTRVIsCj4gKyAgICAgICBQTExfQ09OMF9N VVhfQ0xLQ01VX1BFUklfVUFSVDJfVVNFUiwKPiArICAgICAgIFBMTF9DT04wX01VWF9DTEtDTVVf UEVSSV9VU0kwX1VTRVIsCj4gKyAgICAgICBQTExfQ09OMF9NVVhfQ0xLQ01VX1BFUklfVVNJMV9V U0VSLAo+ICsgICAgICAgUExMX0NPTjBfTVVYX0NMS0NNVV9QRVJJX1VTSTJfVVNFUiwKPiArICAg ICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9HUElPX1RPUF9QQ0xLLAo+ICsgICAgICAgQ0xLX0NP Tl9HQVRfR09VVF9QRVJJX0hTSTJDXzBfUENMSywKPiArICAgICAgIENMS19DT05fR0FUX0dPVVRf UEVSSV9IU0kyQ18xX1BDTEssCj4gKyAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSFNJMkNf Ml9QQ0xLLAo+ICsgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX0hTSTJDXzNfUENMSywKPiAr ICAgICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9JMkNfMF9QQ0xLLAo+ICsgICAgICAgQ0xLX0NP Tl9HQVRfR09VVF9QRVJJX0kyQ18xX1BDTEssCj4gKyAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BF UklfSTJDXzJfUENMSywKPiArICAgICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9JMkNfM19QQ0xL LAo+ICsgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX0kyQ180X1BDTEssCj4gKyAgICAgICBD TEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzVfUENMSywKPiArICAgICAgIENMS19DT05fR0FUX0dP VVRfUEVSSV9JMkNfNl9QQ0xLLAo+ICsgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX0kyQ183 X1BDTEssCj4gKyAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfUFdNX01PVE9SX1BDTEssCj4g KyAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfU1BJXzBfUENMSywKPiArICAgICAgIENMS19D T05fR0FUX0dPVVRfUEVSSV9TUElfMF9FWFRfQ0xLLAo+ICsgICAgICAgQ0xLX0NPTl9HQVRfR09V VF9QRVJJX1NQSV8xX1BDTEssCj4gKyAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfU1BJXzFf RVhUX0NMSywKPiArICAgICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9VQVJUXzBfRVhUX1VDTEss Cj4gKyAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfVUFSVF8wX1BDTEssCj4gKyAgICAgICBD TEtfQ09OX0dBVF9HT1VUX1BFUklfVUFSVF8xX0VYVF9VQ0xLLAo+ICsgICAgICAgQ0xLX0NPTl9H QVRfR09VVF9QRVJJX1VBUlRfMV9QQ0xLLAo+ICsgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJ X1VBUlRfMl9FWFRfVUNMSywKPiArICAgICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9VQVJUXzJf UENMSywKPiArICAgICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9VU0kwX1BDTEssCj4gKyAgICAg ICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfVVNJMF9TQ0xLLAo+ICsgICAgICAgQ0xLX0NPTl9HQVRf R09VVF9QRVJJX1VTSTFfUENMSywKPiArICAgICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9VU0kx X1NDTEssCj4gKyAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfVVNJMl9QQ0xLLAo+ICsgICAg ICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX1VTSTJfU0NMSywKPiArICAgICAgIENMS19DT05fR0FU X0dPVVRfUEVSSV9NQ1RfUENMSywKPiArICAgICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9TWVNS RUdfUEVSSV9QQ0xLLAo+ICsgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX1dEVF9DTFVTVEVS MF9QQ0xLLAo+ICsgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX1dEVF9DTFVTVEVSMV9QQ0xL LAo+ICt9Owo+ICsKPiArLyogTGlzdCBvZiBwYXJlbnQgY2xvY2tzIGZvciBNdXhlcyBpbiBDTVVf UEVSSSAqLwo+ICtQTkFNRShtb3V0X3BlcmlfYnVzX3VzZXJfcCkgICAgPSB7ICJvc2NjbGsiLCAi ZG91dF9wZXJpX2J1cyIgfTsKPiArUE5BTUUobW91dF9wZXJpX3NwaTBfdXNlcl9wKSAgID0geyAi b3NjY2xrIiwgImRvdXRfcGVyaV9zcGkwIiB9Owo+ICtQTkFNRShtb3V0X3Blcmlfc3BpMV91c2Vy X3ApICAgPSB7ICJvc2NjbGsiLCAiZG91dF9wZXJpX3NwaTEiIH07Cj4gK1BOQU1FKG1vdXRfcGVy aV91YXJ0MF91c2VyX3ApICA9IHsgIm9zY2NsayIsICJkb3V0X3BlcmlfdWFydDAiIH07Cj4gK1BO QU1FKG1vdXRfcGVyaV91YXJ0MV91c2VyX3ApICA9IHsgIm9zY2NsayIsICJkb3V0X3BlcmlfdWFy dDEiIH07Cj4gK1BOQU1FKG1vdXRfcGVyaV91YXJ0Ml91c2VyX3ApICA9IHsgIm9zY2NsayIsICJk b3V0X3BlcmlfdWFydDIiIH07Cj4gK1BOQU1FKG1vdXRfcGVyaV91c2kwX3VzZXJfcCkgICA9IHsg Im9zY2NsayIsICJkb3V0X3BlcmlfdXNpMCIgfTsKPiArUE5BTUUobW91dF9wZXJpX3VzaTFfdXNl cl9wKSAgID0geyAib3NjY2xrIiwgImRvdXRfcGVyaV91c2kxIiB9Owo+ICtQTkFNRShtb3V0X3Bl cmlfdXNpMl91c2VyX3ApICAgPSB7ICJvc2NjbGsiLCAiZG91dF9wZXJpX3VzaTIiIH07Cj4gKwo+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IHNhbXN1bmdfbXV4X2Nsb2NrIHBlcmlfbXV4X2Nsa3NbXSBf X2luaXRjb25zdCA9IHsKPiArICAgICAgIE1VWChDTEtfTU9VVF9QRVJJX0JVU19VU0VSLCAibW91 dF9wZXJpX2J1c191c2VyIiwgbW91dF9wZXJpX2J1c191c2VyX3AsCj4gKyAgICAgICAgICAgUExM X0NPTjBfTVVYX0NMS0NNVV9QRVJJX0JVU19VU0VSLCA0LCAxKSwKPiArICAgICAgIE1VWChDTEtf TU9VVF9QRVJJX1NQSTBfVVNFUiwgIm1vdXRfcGVyaV9zcGkwX3VzZXIiLCBtb3V0X3Blcmlfc3Bp MF91c2VyX3AsCgpOaXQtcGljazogaGVyZSBhbmQgYmVsb3cgaW4gdGhpcyBmaWxlLCBwbGVhc2Ug dHJ5IHRvIGtlZXAgbWF4IGxpbmUKbGVuZ3RoIGF0IDgwIGNoYXJhY3RlcnMuIEkga25vdyBpdCdz IG5vdCBtYW5kYXRvcnkgYW55bW9yZSwgYnV0IEknZApwZXJzb25hbGx5IHByZWZlciBpdCB0byBi ZSB0aGF0IGF3YXkgKG90aGVyd2lzZSBpdCdzIG5vdCBjb25zaXN0ZW50CndpdGggbW9zdCBvZiBs aW5lcyB0aGF0IGFyZSA4MCBjaGFyIGxvbmcpLiBJdCdzIGVhc3kgdG8gc3BvdCB0aGF0IHdpdGgK ImNoZWNrcGF0Y2gucGwgLS1zdHJpY3QiLgoKPiArICAgICAgICAgICBQTExfQ09OMF9NVVhfQ0xL Q01VX1BFUklfU1BJMF9VU0VSLCA0LCAxKSwKPiArICAgICAgIE1VWChDTEtfTU9VVF9QRVJJX1NQ STFfVVNFUiwgIm1vdXRfcGVyaV9zcGkxX3VzZXIiLCBtb3V0X3Blcmlfc3BpMV91c2VyX3AsCj4g KyAgICAgICAgICAgUExMX0NPTjBfTVVYX0NMS0NNVV9QRVJJX1NQSTFfVVNFUiwgNCwgMSksCj4g KyAgICAgICBNVVgoQ0xLX01PVVRfUEVSSV9VQVJUMF9VU0VSLCAibW91dF9wZXJpX3VhcnQwX3Vz ZXIiLAo+ICsgICAgICAgICAgIG1vdXRfcGVyaV91YXJ0MF91c2VyX3AsIFBMTF9DT04wX01VWF9D TEtDTVVfUEVSSV9VQVJUMF9VU0VSLCA0LCAxKSwKPiArICAgICAgIE1VWChDTEtfTU9VVF9QRVJJ X1VBUlQxX1VTRVIsICJtb3V0X3BlcmlfdWFydDFfdXNlciIsCj4gKyAgICAgICAgICAgbW91dF9w ZXJpX3VhcnQxX3VzZXJfcCwgUExMX0NPTjBfTVVYX0NMS0NNVV9QRVJJX1VBUlQxX1VTRVIsIDQs IDEpLAo+ICsgICAgICAgTVVYKENMS19NT1VUX1BFUklfVUFSVDJfVVNFUiwgIm1vdXRfcGVyaV91 YXJ0Ml91c2VyIiwKPiArICAgICAgICAgICBtb3V0X3BlcmlfdWFydDJfdXNlcl9wLCBQTExfQ09O MF9NVVhfQ0xLQ01VX1BFUklfVUFSVDJfVVNFUiwgNCwgMSksCj4gKyAgICAgICBNVVgoQ0xLX01P VVRfUEVSSV9VU0kwX1VTRVIsICJtb3V0X3BlcmlfdXNpMF91c2VyIiwKPiArICAgICAgICAgICBt b3V0X3BlcmlfdXNpMF91c2VyX3AsIFBMTF9DT04wX01VWF9DTEtDTVVfUEVSSV9VU0kwX1VTRVIs IDQsIDEpLAo+ICsgICAgICAgTVVYKENMS19NT1VUX1BFUklfVVNJMV9VU0VSLCAibW91dF9wZXJp X3VzaTFfdXNlciIsCj4gKyAgICAgICAgICAgbW91dF9wZXJpX3VzaTFfdXNlcl9wLCBQTExfQ09O MF9NVVhfQ0xLQ01VX1BFUklfVVNJMV9VU0VSLCA0LCAxKSwKPiArICAgICAgIE1VWChDTEtfTU9V VF9QRVJJX1VTSTJfVVNFUiwgIm1vdXRfcGVyaV91c2kyX3VzZXIiLAo+ICsgICAgICAgICAgIG1v dXRfcGVyaV91c2kyX3VzZXJfcCwgUExMX0NPTjBfTVVYX0NMS0NNVV9QRVJJX1VTSTJfVVNFUiwg NCwgMSksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHNhbXN1bmdfZ2F0ZV9jbG9j ayBwZXJpX2dhdGVfY2xrc1tdIF9faW5pdGNvbnN0ID0gewo+ICsgICAgICAgLyogVE9ETzogU2hv dWxkIGJlIGVuYWJsZWQgaW4gR1BJTyBkcml2ZXIgKG9yIG1hZGUgQ0xLX0lTX0NSSVRJQ0FMKSAq Lwo+ICsgICAgICAgR0FURShDTEtfR09VVF9HUElPX1RPUF9QQ0xLLCAiZ291dF9ncGlvX3RvcF9w Y2xrIiwKPiArICAgICAgICAgICAgIm1vdXRfcGVyaV9idXNfdXNlciIsCj4gKyAgICAgICAgICAg IENMS19DT05fR0FUX0dPVVRfUEVSSV9HUElPX1RPUF9QQ0xLLCAyMSwgQ0xLX0lHTk9SRV9VTlVT RUQsIDApLAo+ICsgICAgICAgR0FURShDTEtfR09VVF9IU0kyQzBfUENMSywgImdvdXRfaHNpMmMw X3BjbGsiLCAibW91dF9wZXJpX2J1c191c2VyIiwKPiArICAgICAgICAgICAgQ0xLX0NPTl9HQVRf R09VVF9QRVJJX0hTSTJDXzBfUENMSywgMjEsIDAsIDApLAo+ICsgICAgICAgR0FURShDTEtfR09V VF9IU0kyQzFfUENMSywgImdvdXRfaHNpMmMxX3BjbGsiLCAibW91dF9wZXJpX2J1c191c2VyIiwK PiArICAgICAgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX0hTSTJDXzFfUENMSywgMjEsIDAs IDApLAo+ICsgICAgICAgR0FURShDTEtfR09VVF9IU0kyQzJfUENMSywgImdvdXRfaHNpMmMyX3Bj bGsiLCAibW91dF9wZXJpX2J1c191c2VyIiwKPiArICAgICAgICAgICAgQ0xLX0NPTl9HQVRfR09V VF9QRVJJX0hTSTJDXzJfUENMSywgMjEsIDAsIDApLAo+ICsgICAgICAgR0FURShDTEtfR09VVF9I U0kyQzNfUENMSywgImdvdXRfaHNpMmMzX3BjbGsiLCAibW91dF9wZXJpX2J1c191c2VyIiwKPiAr ICAgICAgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX0hTSTJDXzNfUENMSywgMjEsIDAsIDAp LAo+ICsgICAgICAgR0FURShDTEtfR09VVF9JMkMwX1BDTEssICJnb3V0X2kyYzBfcGNsayIsICJt b3V0X3BlcmlfYnVzX3VzZXIiLAo+ICsgICAgICAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklf STJDXzBfUENMSywgMjEsIDAsIDApLAo+ICsgICAgICAgR0FURShDTEtfR09VVF9JMkMxX1BDTEss ICJnb3V0X2kyYzFfcGNsayIsICJtb3V0X3BlcmlfYnVzX3VzZXIiLAo+ICsgICAgICAgICAgICBD TEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzFfUENMSywgMjEsIDAsIDApLAo+ICsgICAgICAgR0FU RShDTEtfR09VVF9JMkMyX1BDTEssICJnb3V0X2kyYzJfcGNsayIsICJtb3V0X3BlcmlfYnVzX3Vz ZXIiLAo+ICsgICAgICAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzJfUENMSywgMjEs IDAsIDApLAo+ICsgICAgICAgR0FURShDTEtfR09VVF9JMkMzX1BDTEssICJnb3V0X2kyYzNfcGNs ayIsICJtb3V0X3BlcmlfYnVzX3VzZXIiLAo+ICsgICAgICAgICAgICBDTEtfQ09OX0dBVF9HT1VU X1BFUklfSTJDXzNfUENMSywgMjEsIDAsIDApLAo+ICsgICAgICAgR0FURShDTEtfR09VVF9JMkM0 X1BDTEssICJnb3V0X2kyYzRfcGNsayIsICJtb3V0X3BlcmlfYnVzX3VzZXIiLAo+ICsgICAgICAg ICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzRfUENMSywgMjEsIDAsIDApLAo+ICsgICAg ICAgR0FURShDTEtfR09VVF9JMkM1X1BDTEssICJnb3V0X2kyYzVfcGNsayIsICJtb3V0X3Blcmlf YnVzX3VzZXIiLAo+ICsgICAgICAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzVfUENM SywgMjEsIDAsIDApLAo+ICsgICAgICAgR0FURShDTEtfR09VVF9JMkM2X1BDTEssICJnb3V0X2ky YzZfcGNsayIsICJtb3V0X3BlcmlfYnVzX3VzZXIiLAo+ICsgICAgICAgICAgICBDTEtfQ09OX0dB VF9HT1VUX1BFUklfSTJDXzZfUENMSywgMjEsIDAsIDApLAo+ICsgICAgICAgR0FURShDTEtfR09V VF9JMkM3X1BDTEssICJnb3V0X2kyYzdfcGNsayIsICJtb3V0X3BlcmlfYnVzX3VzZXIiLAo+ICsg ICAgICAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfSTJDXzdfUENMSywgMjEsIDAsIDApLAo+ ICsgICAgICAgR0FURShDTEtfR09VVF9QV01fTU9UT1JfUENMSywgImdvdXRfcHdtX21vdG9yX3Bj bGsiLAo+ICsgICAgICAgICAgICAibW91dF9wZXJpX2J1c191c2VyIiwKPiArICAgICAgICAgICAg Q0xLX0NPTl9HQVRfR09VVF9QRVJJX1BXTV9NT1RPUl9QQ0xLLCAyMSwgMCwgMCksCj4gKyAgICAg ICBHQVRFKENMS19HT1VUX1NQSTBfUENMSywgImdvdXRfc3BpMF9wY2xrIiwgIm1vdXRfcGVyaV9i dXNfdXNlciIsCj4gKyAgICAgICAgICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9TUElfMF9QQ0xL LCAyMSwgMCwgMCksCj4gKyAgICAgICBHQVRFKENMS19HT1VUX1NQSTBfRVhUX0NMSywgImdvdXRf c3BpMF9pcGNsayIsICJtb3V0X3Blcmlfc3BpMF91c2VyIiwKPiArICAgICAgICAgICAgQ0xLX0NP Tl9HQVRfR09VVF9QRVJJX1NQSV8wX0VYVF9DTEssIDIxLCAwLCAwKSwKPiArICAgICAgIEdBVEUo Q0xLX0dPVVRfU1BJMV9QQ0xLLCAiZ291dF9zcGkxX3BjbGsiLCAibW91dF9wZXJpX2J1c191c2Vy IiwKPiArICAgICAgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX1NQSV8xX1BDTEssIDIxLCAw LCAwKSwKPiArICAgICAgIEdBVEUoQ0xLX0dPVVRfU1BJMV9FWFRfQ0xLLCAiZ291dF9zcGkxX2lw Y2xrIiwgIm1vdXRfcGVyaV9zcGkxX3VzZXIiLAo+ICsgICAgICAgICAgICBDTEtfQ09OX0dBVF9H T1VUX1BFUklfU1BJXzFfRVhUX0NMSywgMjEsIDAsIDApLAo+ICsgICAgICAgR0FURShDTEtfR09V VF9VQVJUMF9FWFRfVUNMSywgImdvdXRfdWFydDBfZXh0X3VjbGsiLCAibW91dF9wZXJpX3VhcnQw X3VzZXIiLAo+ICsgICAgICAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfVUFSVF8wX0VYVF9V Q0xLLCAyMSwgMCwgMCksCj4gKyAgICAgICBHQVRFKENMS19HT1VUX1VBUlQwX1BDTEssICJnb3V0 X3VhcnQwX3BjbGsiLCAibW91dF9wZXJpX2J1c191c2VyIiwKPiArICAgICAgICAgICAgQ0xLX0NP Tl9HQVRfR09VVF9QRVJJX1VBUlRfMF9QQ0xLLCAyMSwgMCwgMCksCj4gKyAgICAgICBHQVRFKENM S19HT1VUX1VBUlQxX0VYVF9VQ0xLLCAiZ291dF91YXJ0MV9leHRfdWNsayIsICJtb3V0X3Blcmlf dWFydDFfdXNlciIsCj4gKyAgICAgICAgICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9VQVJUXzFf RVhUX1VDTEssIDIxLCAwLCAwKSwKPiArICAgICAgIEdBVEUoQ0xLX0dPVVRfVUFSVDFfUENMSywg ImdvdXRfdWFydDFfcGNsayIsICJtb3V0X3BlcmlfYnVzX3VzZXIiLAo+ICsgICAgICAgICAgICBD TEtfQ09OX0dBVF9HT1VUX1BFUklfVUFSVF8xX1BDTEssIDIxLCAwLCAwKSwKPiArICAgICAgIEdB VEUoQ0xLX0dPVVRfVUFSVDJfRVhUX1VDTEssICJnb3V0X3VhcnQyX2V4dF91Y2xrIiwgIm1vdXRf cGVyaV91YXJ0Ml91c2VyIiwKPiArICAgICAgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX1VB UlRfMl9FWFRfVUNMSywgMjEsIDAsIDApLAo+ICsgICAgICAgR0FURShDTEtfR09VVF9VQVJUMl9Q Q0xLLCAiZ291dF91YXJ0Ml9wY2xrIiwgIm1vdXRfcGVyaV9idXNfdXNlciIsCj4gKyAgICAgICAg ICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9VQVJUXzJfUENMSywgMjEsIDAsIDApLAo+ICsgICAg ICAgR0FURShDTEtfR09VVF9VU0kwX1BDTEssICJnb3V0X3VzaTBfcGNsayIsICJtb3V0X3Blcmlf YnVzX3VzZXIiLAo+ICsgICAgICAgICAgICBDTEtfQ09OX0dBVF9HT1VUX1BFUklfVVNJMF9QQ0xL LCAyMSwgMCwgMCksCj4gKyAgICAgICBHQVRFKENMS19HT1VUX1VTSTBfU0NMSywgImdvdXRfdXNp MF9zY2xrIiwgIm1vdXRfcGVyaV91c2kwX3VzZXIiLAo+ICsgICAgICAgICAgICBDTEtfQ09OX0dB VF9HT1VUX1BFUklfVVNJMF9TQ0xLLCAyMSwgMCwgMCksCj4gKyAgICAgICBHQVRFKENMS19HT1VU X1VTSTFfUENMSywgImdvdXRfdXNpMV9wY2xrIiwgIm1vdXRfcGVyaV9idXNfdXNlciIsCj4gKyAg ICAgICAgICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9VU0kxX1BDTEssIDIxLCAwLCAwKSwKPiAr ICAgICAgIEdBVEUoQ0xLX0dPVVRfVVNJMV9TQ0xLLCAiZ291dF91c2kxX3NjbGsiLCAibW91dF9w ZXJpX3VzaTFfdXNlciIsCj4gKyAgICAgICAgICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9VU0kx X1NDTEssIDIxLCAwLCAwKSwKPiArICAgICAgIEdBVEUoQ0xLX0dPVVRfVVNJMl9QQ0xLLCAiZ291 dF91c2kyX3BjbGsiLCAibW91dF9wZXJpX2J1c191c2VyIiwKPiArICAgICAgICAgICAgQ0xLX0NP Tl9HQVRfR09VVF9QRVJJX1VTSTJfUENMSywgMjEsIDAsIDApLAo+ICsgICAgICAgR0FURShDTEtf R09VVF9VU0kyX1NDTEssICJnb3V0X3VzaTJfc2NsayIsICJtb3V0X3BlcmlfdXNpMl91c2VyIiwK PiArICAgICAgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX1VTSTJfU0NMSywgMjEsIDAsIDAp LAo+ICsgICAgICAgR0FURShDTEtfR09VVF9NQ1RfUENMSywgImdvdXRfbWN0X3BjbGsiLCAibW91 dF9wZXJpX2J1c191c2VyIiwKPiArICAgICAgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX01D VF9QQ0xLLCAyMSwgMCwgMCksCj4gKyAgICAgICBHQVRFKENMS19HT1VUX1NZU1JFR19QRVJJX1BD TEssICJnb3V0X3N5c3JlZ19wZXJpX3BjbGsiLAo+ICsgICAgICAgICAgICAibW91dF9wZXJpX2J1 c191c2VyIiwKPiArICAgICAgICAgICAgQ0xLX0NPTl9HQVRfR09VVF9QRVJJX1NZU1JFR19QRVJJ X1BDTEssIDIxLCAwLCAwKSwKPiArICAgICAgIEdBVEUoQ0xLX0dPVVRfV0RUMF9QQ0xLLCAiZ291 dF93ZHQwX3BjbGsiLCAibW91dF9wZXJpX2J1c191c2VyIiwKPiArICAgICAgICAgICAgQ0xLX0NP Tl9HQVRfR09VVF9QRVJJX1dEVF9DTFVTVEVSMF9QQ0xLLCAyMSwgMCwgMCksCj4gKyAgICAgICBH QVRFKENMS19HT1VUX1dEVDFfUENMSywgImdvdXRfd2R0MV9wY2xrIiwgIm1vdXRfcGVyaV9idXNf dXNlciIsCj4gKyAgICAgICAgICAgIENMS19DT05fR0FUX0dPVVRfUEVSSV9XRFRfQ0xVU1RFUjFf UENMSywgMjEsIDAsIDApLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1zdW5n X2NtdV9pbmZvIHBlcmlfY211X2luZm8gX19pbml0Y29uc3QgPSB7Cj4gKyAgICAgICAubXV4X2Ns a3MgICAgICAgICAgICAgICA9IHBlcmlfbXV4X2Nsa3MsCj4gKyAgICAgICAubnJfbXV4X2Nsa3Mg ICAgICAgICAgICA9IEFSUkFZX1NJWkUocGVyaV9tdXhfY2xrcyksCj4gKyAgICAgICAuZ2F0ZV9j bGtzICAgICAgICAgICAgICA9IHBlcmlfZ2F0ZV9jbGtzLAo+ICsgICAgICAgLm5yX2dhdGVfY2xr cyAgICAgICAgICAgPSBBUlJBWV9TSVpFKHBlcmlfZ2F0ZV9jbGtzKSwKPiArICAgICAgIC5ucl9j bGtfaWRzICAgICAgICAgICAgID0gUEVSSV9OUl9DTEssCj4gKyAgICAgICAuY2xrX3JlZ3MgICAg ICAgICAgICAgICA9IHBlcmlfY2xrX3JlZ3MsCj4gKyAgICAgICAubnJfY2xrX3JlZ3MgICAgICAg ICAgICA9IEFSUkFZX1NJWkUocGVyaV9jbGtfcmVncyksCj4gKyAgICAgICAuY2xrX25hbWUgICAg ICAgICAgICAgICA9ICJkb3V0X3BlcmlfYnVzIiwKPiArfTsKPiArCj4gK3N0YXRpYyB2b2lkIF9f aW5pdCBleHlub3M3ODg1X2NtdV9wZXJpX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKPiAr ewo+ICsgICAgICAgZXh5bm9zX2FybTY0X3JlZ2lzdGVyX2NtdShOVUxMLCBucCwgJnBlcmlfY211 X2luZm8pOwo+ICt9Cj4gKwo+ICsvKiBSZWdpc3RlciBDTVVfUEVSSSBlYXJseSwgYXMgaXQncyBu ZWVkZWQgZm9yIE1DVCB0aW1lciAqLwo+ICtDTEtfT0ZfREVDTEFSRShleHlub3M3ODg1X2NtdV9w ZXJpLCAic2Ftc3VuZyxleHlub3M3ODg1LWNtdS1wZXJpIiwKPiArICAgICAgICAgICAgICBleHlu b3M3ODg1X2NtdV9wZXJpX2luaXQpOwo+ICsKPiArLyogLS0tLSBDTVVfQ09SRSAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KPiAr Cj4gKy8qIFJlZ2lzdGVyIE9mZnNldCBkZWZpbml0aW9ucyBmb3IgQ01VX0NPUkUgKDB4MTIwMDAw MDApICovCj4gKyNkZWZpbmUgUExMX0NPTjBfTVVYX0NMS0NNVV9DT1JFX0JVU19VU0VSICAgICAg MHgwMTAwCj4gKyNkZWZpbmUgUExMX0NPTjBfTVVYX0NMS0NNVV9DT1JFX0NDSV9VU0VSICAgICAg MHgwMTIwCj4gKyNkZWZpbmUgUExMX0NPTjBfTVVYX0NMS0NNVV9DT1JFX0czRF9VU0VSICAgICAg MHgwMTQwCj4gKyNkZWZpbmUgQ0xLX0NPTl9NVVhfTVVYX0NMS19DT1JFX0dJQyAgICAgICAgICAg MHgxMDAwCj4gKyNkZWZpbmUgQ0xLX0NPTl9ESVZfRElWX0NMS19DT1JFX0JVU1AgICAgICAgICAg MHgxODAwCj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR09VVF9DT1JFX0NDSV81NTBfQUNMSyAgICAg MHgyMDU0Cj4gKyNkZWZpbmUgQ0xLX0NPTl9HQVRfR09VVF9DT1JFX0dJQzQwMF9DTEsgICAgICAg MHgyMDU4Cj4gKwo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBjb3JlX2Nsa19yZWdzW10g X19pbml0Y29uc3QgPSB7Cj4gKyAgICAgICBQTExfQ09OMF9NVVhfQ0xLQ01VX0NPUkVfQlVTX1VT RVIsCj4gKyAgICAgICBQTExfQ09OMF9NVVhfQ0xLQ01VX0NPUkVfQ0NJX1VTRVIsCj4gKyAgICAg ICBQTExfQ09OMF9NVVhfQ0xLQ01VX0NPUkVfRzNEX1VTRVIsCj4gKyAgICAgICBDTEtfQ09OX01V WF9NVVhfQ0xLX0NPUkVfR0lDLAo+ICsgICAgICAgQ0xLX0NPTl9ESVZfRElWX0NMS19DT1JFX0JV U1AsCj4gKyAgICAgICBDTEtfQ09OX0dBVF9HT1VUX0NPUkVfQ0NJXzU1MF9BQ0xLLAo+ICsgICAg ICAgQ0xLX0NPTl9HQVRfR09VVF9DT1JFX0dJQzQwMF9DTEssCj4gK307Cj4gKwo+ICsvKiBMaXN0 IG9mIHBhcmVudCBjbG9ja3MgZm9yIE11eGVzIGluIENNVV9DT1JFICovCj4gK1BOQU1FKG1vdXRf Y29yZV9idXNfdXNlcl9wKSAgICAgICAgICAgID0geyAib3NjY2xrIiwgImRvdXRfY29yZV9idXMi IH07Cj4gK1BOQU1FKG1vdXRfY29yZV9jY2lfdXNlcl9wKSAgICAgICAgICAgID0geyAib3NjY2xr IiwgImRvdXRfY29yZV9jY2kiIH07Cj4gK1BOQU1FKG1vdXRfY29yZV9nM2RfdXNlcl9wKSAgICAg ICAgICAgID0geyAib3NjY2xrIiwgImRvdXRfY29yZV9nM2QiIH07Cj4gK1BOQU1FKG1vdXRfY29y ZV9naWNfcCkgICAgICAgICAgICAgICAgID0geyAiZG91dF9jb3JlX2J1c3AiLCAib3NjY2xrIiB9 Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1zdW5nX211eF9jbG9jayBjb3JlX211eF9j bGtzW10gX19pbml0Y29uc3QgPSB7Cj4gKyAgICAgICBNVVgoQ0xLX01PVVRfQ09SRV9CVVNfVVNF UiwgIm1vdXRfY29yZV9idXNfdXNlciIsIG1vdXRfY29yZV9idXNfdXNlcl9wLAo+ICsgICAgICAg ICAgIFBMTF9DT04wX01VWF9DTEtDTVVfQ09SRV9CVVNfVVNFUiwgNCwgMSksCj4gKyAgICAgICBN VVgoQ0xLX01PVVRfQ09SRV9DQ0lfVVNFUiwgIm1vdXRfY29yZV9jY2lfdXNlciIsIG1vdXRfY29y ZV9jY2lfdXNlcl9wLAo+ICsgICAgICAgICAgIFBMTF9DT04wX01VWF9DTEtDTVVfQ09SRV9DQ0lf VVNFUiwgNCwgMSksCj4gKyAgICAgICBNVVgoQ0xLX01PVVRfQ09SRV9HM0RfVVNFUiwgIm1vdXRf Y29yZV9nM2RfdXNlciIsIG1vdXRfY29yZV9nM2RfdXNlcl9wLAo+ICsgICAgICAgICAgIFBMTF9D T04wX01VWF9DTEtDTVVfQ09SRV9HM0RfVVNFUiwgNCwgMSksCj4gKyAgICAgICBNVVgoQ0xLX01P VVRfQ09SRV9HSUMsICJtb3V0X2NvcmVfZ2ljIiwgbW91dF9jb3JlX2dpY19wLAo+ICsgICAgICAg ICAgIENMS19DT05fTVVYX01VWF9DTEtfQ09SRV9HSUMsIDAsIDEpLAo+ICt9Owo+ICsKPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBzYW1zdW5nX2Rpdl9jbG9jayBjb3JlX2Rpdl9jbGtzW10gX19pbml0 Y29uc3QgPSB7Cj4gKyAgICAgICBESVYoQ0xLX0RPVVRfQ09SRV9CVVNQLCAiZG91dF9jb3JlX2J1 c3AiLCAibW91dF9jb3JlX2J1c191c2VyIiwKPiArICAgICAgICAgICBDTEtfQ09OX0RJVl9ESVZf Q0xLX0NPUkVfQlVTUCwgMCwgMiksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHNh bXN1bmdfZ2F0ZV9jbG9jayBjb3JlX2dhdGVfY2xrc1tdIF9faW5pdGNvbnN0ID0gewo+ICsgICAg ICAgLyogQ0NJIChpbnRlcmNvbm5lY3QpIGNsb2NrIG11c3QgYmUgYWx3YXlzIHJ1bm5pbmcgKi8K PiArICAgICAgIEdBVEUoQ0xLX0dPVVRfQ0NJX0FDTEssICJnb3V0X2NjaV9hY2xrIiwgIm1vdXRf Y29yZV9jY2lfdXNlciIsCj4gKyAgICAgICAgICAgIENMS19DT05fR0FUX0dPVVRfQ09SRV9DQ0lf NTUwX0FDTEssIDIxLCBDTEtfSVNfQ1JJVElDQUwsIDApLAo+ICsgICAgICAgLyogR0lDIChpbnRl cnJ1cHQgY29udHJvbGxlcikgY2xvY2sgbXVzdCBiZSBhbHdheXMgcnVubmluZyAqLwo+ICsgICAg ICAgR0FURShDTEtfR09VVF9HSUM0MDBfQ0xLLCAiZ291dF9naWM0MDBfY2xrIiwgIm1vdXRfY29y ZV9naWMiLAo+ICsgICAgICAgICAgICBDTEtfQ09OX0dBVF9HT1VUX0NPUkVfR0lDNDAwX0NMSywg MjEsIENMS19JU19DUklUSUNBTCwgMCksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IHNhbXN1bmdfY211X2luZm8gY29yZV9jbXVfaW5mbyBfX2luaXRjb25zdCA9IHsKPiArICAgICAg IC5tdXhfY2xrcyAgICAgICAgICAgICAgID0gY29yZV9tdXhfY2xrcywKPiArICAgICAgIC5ucl9t dXhfY2xrcyAgICAgICAgICAgID0gQVJSQVlfU0laRShjb3JlX211eF9jbGtzKSwKPiArICAgICAg IC5kaXZfY2xrcyAgICAgICAgICAgICAgID0gY29yZV9kaXZfY2xrcywKPiArICAgICAgIC5ucl9k aXZfY2xrcyAgICAgICAgICAgID0gQVJSQVlfU0laRShjb3JlX2Rpdl9jbGtzKSwKPiArICAgICAg IC5nYXRlX2Nsa3MgICAgICAgICAgICAgID0gY29yZV9nYXRlX2Nsa3MsCj4gKyAgICAgICAubnJf Z2F0ZV9jbGtzICAgICAgICAgICA9IEFSUkFZX1NJWkUoY29yZV9nYXRlX2Nsa3MpLAo+ICsgICAg ICAgLm5yX2Nsa19pZHMgICAgICAgICAgICAgPSBDT1JFX05SX0NMSywKPiArICAgICAgIC5jbGtf cmVncyAgICAgICAgICAgICAgID0gY29yZV9jbGtfcmVncywKPiArICAgICAgIC5ucl9jbGtfcmVn cyAgICAgICAgICAgID0gQVJSQVlfU0laRShjb3JlX2Nsa19yZWdzKSwKPiArICAgICAgIC5jbGtf bmFtZSAgICAgICAgICAgICAgID0gImRvdXRfY29yZV9idXMiLAo+ICt9Owo+ICsKPiArLyogLS0t LSBwbGF0Zm9ybV9kcml2ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gKi8KPiArCj4gK3N0YXRpYyBpbnQgX19pbml0IGV4eW5vczc4ODVfY211 X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArICAgICAgIGNvbnN0 IHN0cnVjdCBzYW1zdW5nX2NtdV9pbmZvICppbmZvOwo+ICsgICAgICAgc3RydWN0IGRldmljZSAq ZGV2ID0gJnBkZXYtPmRldjsKPiArCj4gKyAgICAgICBpbmZvID0gb2ZfZGV2aWNlX2dldF9tYXRj aF9kYXRhKGRldik7Cj4gKyAgICAgICBleHlub3NfYXJtNjRfcmVnaXN0ZXJfY211KGRldiwgZGV2 LT5vZl9ub2RlLCBpbmZvKTsKPiArCj4gKyAgICAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZXh5bm9zNzg4NV9jbXVfb2ZfbWF0Y2hbXSA9 IHsKPiArICAgICAgIHsKPiArICAgICAgICAgICAgICAgLmNvbXBhdGlibGUgPSAic2Ftc3VuZyxl eHlub3M3ODg1LWNtdS1jb3JlIiwKPiArICAgICAgICAgICAgICAgLmRhdGEgPSAmY29yZV9jbXVf aW5mbywKPiArICAgICAgIH0sIHsKPiArICAgICAgIH0sCj4gK307Cj4gKwo+ICtzdGF0aWMgc3Ry dWN0IHBsYXRmb3JtX2RyaXZlciBleHlub3M3ODg1X2NtdV9kcml2ZXIgX19yZWZkYXRhID0gewo+ ICsgICAgICAgLmRyaXZlciA9IHsKPiArICAgICAgICAgICAgICAgLm5hbWUgPSAiZXh5bm9zNzg4 NS1jbXUiLAo+ICsgICAgICAgICAgICAgICAub2ZfbWF0Y2hfdGFibGUgPSBleHlub3M3ODg1X2Nt dV9vZl9tYXRjaCwKPiArICAgICAgICAgICAgICAgLnN1cHByZXNzX2JpbmRfYXR0cnMgPSB0cnVl LAo+ICsgICAgICAgfSwKPiArICAgICAgIC5wcm9iZSA9IGV4eW5vczc4ODVfY211X3Byb2JlLAo+ ICt9Owo+ICsKPiArc3RhdGljIGludCBfX2luaXQgZXh5bm9zNzg4NV9jbXVfaW5pdCh2b2lkKQo+ ICt7Cj4gKyAgICAgICByZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZleHlub3M3ODg1 X2NtdV9kcml2ZXIpOwo+ICt9Cj4gK2NvcmVfaW5pdGNhbGwoZXh5bm9zNzg4NV9jbXVfaW5pdCk7 Cj4gLS0KPiAyLjM0LjEKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=