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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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 D3757C43460 for ; Mon, 26 Apr 2021 15:11:35 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 548B261289 for ; Mon, 26 Apr 2021 15:11:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 548B261289 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=jlekstrand.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 480C86E833; Mon, 26 Apr 2021 15:11:32 +0000 (UTC) Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3FEBD6E838 for ; Mon, 26 Apr 2021 15:11:31 +0000 (UTC) Received: by mail-ej1-x634.google.com with SMTP id w3so85036017ejc.4 for ; Mon, 26 Apr 2021 08:11:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jlekstrand-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=I1GQAhpXkSclYqXF5dk1/Bu6/Zh8ls+Pl79GIvzRobw=; b=pQYbnqTWsC69kMcmNg3kjt93gjY/Z4SzAinz3wWTt/rtpPRy07ID4yCK1Z2vJS+O3P ztMbr/s88byEPTthEID8k08Qp8OIT0j2gzynnj8aonPy3bxyBQckHO6aZHilu2C5xf+N Jv6na5pcvS4paavMH/bBQhK5JPJPECifZxW2EhNCkJqQ0fvQbDtnOyBeXIW/1vIPDg/R qh/jYReaYKLydzXpiSBFi+BwbvHpUeqV2UQBGkH8EsireuEST6P89F2yUe40C/n8MtDU Wk78mCWruHqLqsuh2+KsHfh8A7EM5vdU6znEXBEw31dnT/+qHxww5/449HPx0oqBW44R qPlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=I1GQAhpXkSclYqXF5dk1/Bu6/Zh8ls+Pl79GIvzRobw=; b=mDbH1KkmFIokIRhbW6F2ZpGpOV+2/kmiGTu0mYGZYJ/2YeVdEQ9/PJMVAdAg7zPpN8 GbM2DPm6HuEAyPn8pnNGbAXH98nwl/E2JAGWVFTZHOO/TUblC79COjMAyXeAhjXcl8K/ S2n3bJxhpJtQKGr+UYIYdcJIW/+qaVW/AoA1t98xWtleylFrR5VzAs39+T0vS3yfktdc Nk3C5rshVYhwFNJriuo4oXJ9hZQl3zDicRvWPMW/Br3TCdXiy2TF2CboYj6XRdOJkgG1 dQmJIpjKY5bFzc6MePgMfzYOoQAA/pd4Tl2dda8h2HGjqZQYldpJcLOlkE0rhx8fTHHQ gIRA== X-Gm-Message-State: AOAM530Syts0K1Sxzp6ldLv9mmbG8U6yVhaIrRssXHbYJ/6w1IJOx1d/ cr/55pOBKTl1d/Tc1sw58RMv+dBeQjcHIJE+h+fuOw== X-Google-Smtp-Source: ABdhPJwEY7nNsmo4SuijXeOWsQ8AWE7wzb7j+LV90j7HLD1YSsij3/xeuHIMFhHeUNoXhAXiCC7LqKzpyMD8VTSablc= X-Received: by 2002:a17:906:6d12:: with SMTP id m18mr19105785ejr.435.1619449889665; Mon, 26 Apr 2021 08:11:29 -0700 (PDT) MIME-Version: 1.0 References: <20210426093901.28937-1-matthew.auld@intel.com> In-Reply-To: <20210426093901.28937-1-matthew.auld@intel.com> From: Jason Ekstrand Date: Mon, 26 Apr 2021 10:11:18 -0500 Message-ID: Subject: Re: [PATCH 1/9] drm/doc/rfc: i915 DG1 uAPI To: Matthew Auld X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lionel Landwerlin , =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= , Dave Airlie , Jordan Justen , Intel GFX , Maling list - DRI developers , Daniel Vetter , Kenneth Graunke , Daniele Ceraolo Spurio , Jon Bloomfield , ML mesa-dev , Daniel Vetter Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gTW9uLCBBcHIgMjYsIDIwMjEgYXQgNDo0MiBBTSBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVs ZEBpbnRlbC5jb20+IHdyb3RlOgo+Cj4gQWRkIGFuIGVudHJ5IGZvciB0aGUgbmV3IHVBUEkgbmVl ZGVkIGZvciBERzEuIEFsc28gYWRkIHRoZSBvdmVyYWxsCj4gdXBzdHJlYW0gcGxhbiwgaW5jbHVk aW5nIHNvbWUgbm90ZXMgZm9yIHRoZSBUVE0gY29udmVyc2lvbi4KPgo+IHYyKERhbmllbCk6Cj4g ICAtIGluY2x1ZGUgdGhlIG92ZXJhbGwgdXBzdHJlYW1pbmcgcGxhbgo+ICAgLSBhZGQgYSBub3Rl IGZvciBtbWFwLCB0aGVyZSBhcmUgZGlmZmVyZW5jZXMgaGVyZSBmb3IgVFRNIHZzIGk5MTUKPiAg IC0gYnVuY2ggb2Ygb3RoZXIgc3VnZ2VzdGlvbnMgZnJvbSBEYW5pZWwKPiB2MzoKPiAgKERhbmll bCkKPiAgIC0gYWRkIGEgbm90ZSBmb3Igc2V0L2dldCBjYWNoaW5nIHN0dWZmCj4gICAtIGFkZCBz b21lIG1vcmUgZG9jcyBmb3IgZXhpc3RpbmcgcXVlcnkgYW5kIGV4dGVuc2lvbnMgc3R1ZmYKPiAg IC0gYWRkIGFuIGFjdHVhbCBjb2RlIGV4YW1wbGUgZm9yIHJlZ2lvbnMgcXVlcnkKPiAgIC0gYnVu Y2ggb2Ygb3RoZXIgc3R1ZmYKPiAgKEphc29uKQo+ICAgLSB1QVBJIGNoYW5nZSghKToKPiAgICAg ICAgIC0gdHJ5IGEgc2ltcGxlciBkZXNpZ24gd2l0aCB0aGUgcGxhY2VtZW50cyBleHRlbnNpb24K PiAgICAgICAgIC0gcmF0aGVyIHRoYW4gaGF2ZSBhIGdlbmVyaWMgc2V0cGFyYW0gd2hpY2ggY2Fu IGNvdmVyIG11bHRpcGxlCj4gICAgICAgICAgIHVzZSBjYXNlcywgaGF2ZSBlYWNoIGV4dGVuc2lv biBiZSByZXNwb25zaWJsZSBmb3Igb25lIHRoaW5nCj4gICAgICAgICAgIG9ubHkKPiB2NDoKPiAg KERhbmllbCkKPiAgIC0gYWRkIHNvbWUgbW9yZSBub3RlcyBmb3IgdHRtIGNvbnZlcnNpb24KPiAg IC0gYnVuY2ggb2Ygb3RoZXIgc3R1ZmYKPiAgKEphc29uKQo+ICAgLSB1QVBJIGNoYW5nZSghKToK PiAgICAgICAgIC0gZHJvcCBhbGwgdGhlIGV4dHJhIHJzdmQgbWVtYmVycyBmb3IgdGhlIHJlZ2lv bl9xdWVyeSBhbmQKPiAgICAgICAgICAgcmVnaW9uX2luZm8sIGp1c3Qga2VlcCB0aGUgYmFyZSBt aW5pbXVtIG5lZWRlZCBmb3IgcGFkZGluZwo+Cj4gU2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxk IDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgo+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5s YWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMu aGVsbHN0cm9tQGxpbnV4LmludGVsLmNvbT4KPiBDYzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8 ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KPiBDYzogTGlvbmVsIExhbmR3ZXJsaW4g PGxpb25lbC5nLmxhbmR3ZXJsaW5AbGludXguaW50ZWwuY29tPgo+IENjOiBKb24gQmxvb21maWVs ZCA8am9uLmJsb29tZmllbGRAaW50ZWwuY29tPgo+IENjOiBKb3JkYW4gSnVzdGVuIDxqb3JkYW4u bC5qdXN0ZW5AaW50ZWwuY29tPgo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGlu dGVsLmNvbT4KPiBDYzogS2VubmV0aCBHcmF1bmtlIDxrZW5uZXRoQHdoaXRlY2FwZS5vcmc+Cj4g Q2M6IEphc29uIEVrc3RyYW5kIDxqYXNvbkBqbGVrc3RyYW5kLm5ldD4KPiBDYzogRGF2ZSBBaXJs aWUgPGFpcmxpZWRAZ21haWwuY29tPgo+IENjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gQ2M6IG1lc2EtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IEFja2VkLWJ5OiBEYW5p ZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IEFja2VkLWJ5OiBEYXZlIEFpcmxp ZSA8YWlybGllZEByZWRoYXQuY29tPgo+IC0tLQo+ICBEb2N1bWVudGF0aW9uL2dwdS9yZmMvaTkx NV9nZW1fbG1lbS5oICAgfCAyMTIgKysrKysrKysrKysrKysrKysrKysrKysrCj4gIERvY3VtZW50 YXRpb24vZ3B1L3JmYy9pOTE1X2dlbV9sbWVtLnJzdCB8IDEzMCArKysrKysrKysrKysrKysKPiAg RG9jdW1lbnRhdGlvbi9ncHUvcmZjL2luZGV4LnJzdCAgICAgICAgIHwgICA0ICsKPiAgMyBmaWxl cyBjaGFuZ2VkLCAzNDYgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1l bnRhdGlvbi9ncHUvcmZjL2k5MTVfZ2VtX2xtZW0uaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9j dW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfZ2VtX2xtZW0ucnN0Cj4KPiBkaWZmIC0tZ2l0IGEvRG9j dW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfZ2VtX2xtZW0uaCBiL0RvY3VtZW50YXRpb24vZ3B1L3Jm Yy9pOTE1X2dlbV9sbWVtLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAw MDAwMC4uN2VkNTliNjIwMmQ1Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL0RvY3VtZW50YXRpb24v Z3B1L3JmYy9pOTE1X2dlbV9sbWVtLmgKPiBAQCAtMCwwICsxLDIxMiBAQAo+ICsvKioKPiArICog ZW51bSBkcm1faTkxNV9nZW1fbWVtb3J5X2NsYXNzIC0gU3VwcG9ydGVkIG1lbW9yeSBjbGFzc2Vz Cj4gKyAqLwo+ICtlbnVtIGRybV9pOTE1X2dlbV9tZW1vcnlfY2xhc3Mgewo+ICsgICAgICAgLyoq IEBJOTE1X01FTU9SWV9DTEFTU19TWVNURU06IFN5c3RlbSBtZW1vcnkgKi8KPiArICAgICAgIEk5 MTVfTUVNT1JZX0NMQVNTX1NZU1RFTSA9IDAsCj4gKyAgICAgICAvKiogQEk5MTVfTUVNT1JZX0NM QVNTX0RFVklDRTogRGV2aWNlIGxvY2FsLW1lbW9yeSAqLwo+ICsgICAgICAgSTkxNV9NRU1PUllf Q0xBU1NfREVWSUNFLAo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1faTkxNV9nZW1f bWVtb3J5X2NsYXNzX2luc3RhbmNlIC0gSWRlbnRpZnkgcGFydGljdWxhciBtZW1vcnkgcmVnaW9u Cj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZSB7Cj4g KyAgICAgICAvKiogQG1lbW9yeV9jbGFzczogU2VlIGVudW0gZHJtX2k5MTVfZ2VtX21lbW9yeV9j bGFzcyAqLwo+ICsgICAgICAgX191MTYgbWVtb3J5X2NsYXNzOwo+ICsKPiArICAgICAgIC8qKiBA bWVtb3J5X2luc3RhbmNlOiBXaGljaCBpbnN0YW5jZSAqLwo+ICsgICAgICAgX191MTYgbWVtb3J5 X2luc3RhbmNlOwo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlf cmVnaW9uX2luZm8gLSBEZXNjcmliZXMgb25lIHJlZ2lvbiBhcyBrbm93biB0byB0aGUKPiArICog ZHJpdmVyLgo+ICsgKgo+ICsgKiBOb3RlIHRoYXQgd2UgcmVzZXJ2ZSBzb21lIHN0dWZmIGhlcmUg Zm9yIHBvdGVudGlhbCBmdXR1cmUgd29yay4gQXMgYW4gZXhhbXBsZQo+ICsgKiB3ZSBtaWdodCB3 YW50IGV4cG9zZSB0aGUgY2FwYWJpbGl0aWVzKHNlZSBAY2FwcykgZm9yIGEgZ2l2ZW4gcmVnaW9u LCB3aGljaAo+ICsgKiBjb3VsZCBpbmNsdWRlIHRoaW5ncyBsaWtlIGlmIHRoZSByZWdpb24gaXMg Q1BVIG1hcHBhYmxlL2FjY2Vzc2libGUsIHdoYXQgYXJlCj4gKyAqIHRoZSBzdXBwb3J0ZWQgbWFw cGluZyB0eXBlcyBldGMuCj4gKyAqCj4gKyAqIE5vdGUgdGhpcyBpcyB1c2luZyBib3RoIHN0cnVj dCBkcm1faTkxNV9xdWVyeV9pdGVtIGFuZCBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkuCj4gKyAqIEZv ciB0aGlzIG5ldyBxdWVyeSB3ZSBhcmUgYWRkaW5nIHRoZSBuZXcgcXVlcnkgaWQgRFJNX0k5MTVf UVVFUllfTUVNT1JZX1JFR0lPTlMKPiArICogYXQgJmRybV9pOTE1X3F1ZXJ5X2l0ZW0ucXVlcnlf aWQuCj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZvIHsKPiArICAg ICAgIC8qKiBAcmVnaW9uOiBUaGUgY2xhc3M6aW5zdGFuY2UgcGFpciBlbmNvZGluZyAqLwo+ICsg ICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9tZW1vcnlfY2xhc3NfaW5zdGFuY2UgcmVnaW9uOwo+ ICsKPiArICAgICAgIC8qKiBAcGFkOiBNQlogKi8KPiArICAgICAgIF9fdTMyIHBhZDsKPiArCj4g KyAgICAgICAvKiogQGNhcHM6IE1CWiAqLwo+ICsgICAgICAgX191NjQgY2FwczsKPiArCj4gKyAg ICAgICAvKiogQHByb2JlZF9zaXplOiBNZW1vcnkgcHJvYmVkIGJ5IHRoZSBkcml2ZXIgKC0xID0g dW5rbm93bikgKi8KPiArICAgICAgIF9fdTY0IHByb2JlZF9zaXplOwo+ICsKPiArICAgICAgIC8q KiBAdW5hbGxvY2F0ZWRfc2l6ZTogRXN0aW1hdGUgb2YgbWVtb3J5IHJlbWFpbmluZyAoLTEgPSB1 bmtub3duKSAqLwo+ICsgICAgICAgX191NjQgdW5hbGxvY2F0ZWRfc2l6ZTsKPiArfTsKPiArCj4g Ky8qKgo+ICsgKiBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfbWVtb3J5X3JlZ2lvbnMKPiArICoKPiAr ICogVGhlIHJlZ2lvbiBpbmZvIHF1ZXJ5IGVudW1lcmF0ZXMgYWxsIHJlZ2lvbnMga25vd24gdG8g dGhlIGRyaXZlciBieSBmaWxsaW5nCj4gKyAqIGluIGFuIGFycmF5IG9mIHN0cnVjdCBkcm1faTkx NV9tZW1vcnlfcmVnaW9uX2luZm8gc3RydWN0dXJlcy4KPiArICoKPiArICogRXhhbXBsZSBmb3Ig Z2V0dGluZyB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgcmVnaW9uczoKPiArICoKPiArICogLi4gY29k ZS1ibG9jazo6IEMKPiArICoKPiArICogICAgIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9tZW1vcnlf cmVnaW9ucyAqaW5mbzsKPiArICogICAgIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtIGl0ZW0g PSB7Cj4gKyAqICAgICAgICAgICAgIC5xdWVyeV9pZCA9IERSTV9JOTE1X1FVRVJZX01FTU9SWV9S RUdJT05TOwo+ICsgKiAgICAgfTsKPiArICogICAgIHN0cnVjdCBkcm1faTkxNV9xdWVyeSBxdWVy eSA9IHsKPiArICogICAgICAgICAgICAgLm51bV9pdGVtcyA9IDEsCj4gKyAqICAgICAgICAgICAg IC5pdGVtc19wdHIgPSAodWludHB0cl90KSZpdGVtLAo+ICsgKiAgICAgfTsKPiArICogICAgIGlu dCBlcnIsIGk7Cj4gKyAqCj4gKyAqICAgICAvLyBGaXJzdCBxdWVyeSB0aGUgc2l6ZSBvZiB0aGUg YmxvYiB3ZSBuZWVkLCB0aGlzIG5lZWRzIHRvIGJlIGxhcmdlCj4gKyAqICAgICAvLyBlbm91Z2gg dG8gaG9sZCBvdXIgYXJyYXkgb2YgcmVnaW9ucy4gVGhlIGtlcm5lbCB3aWxsIGZpbGwgb3V0IHRo ZQo+ICsgKiAgICAgLy8gaXRlbS5sZW5ndGggZm9yIHVzLCB3aGljaCBpcyB0aGUgbnVtYmVyIG9m IGJ5dGVzIHdlIG5lZWQuCj4gKyAqICAgICBlcnIgPSBpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVf UVVFUlksICZxdWVyeSk7Cj4gKyAqICAgICBpZiAoZXJyKSAuLi4KPiArICoKPiArICogICAgIGlu Zm8gPSBjYWxsb2MoMSwgaXRlbS5sZW5ndGgpOwo+ICsgKiAgICAgLy8gTm93IHRoYXQgd2UgYWxs b2NhdGVkIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgYnl0ZXMsIHdlIGNhbGwgdGhlIGlvY3RsCj4g KyAqICAgICAvLyBhZ2FpbiwgdGhpcyB0aW1lIHdpdGggdGhlIGRhdGFfcHRyIHBvaW50aW5nIHRv IG91ciBuZXdseSBhbGxvY2F0ZWQKPiArICogICAgIC8vIGJsb2IsIHdoaWNoIHRoZSBrZXJuZWwg Y2FuIHRoZW4gcG9wdWxhdGUgd2l0aCB0aGUgYWxsIHRoZSByZWdpb24gaW5mby4KPiArICogICAg IGl0ZW0uZGF0YV9wdHIgPSAodWludHB0cl90KSZpbmZvLAo+ICsgKgo+ICsgKiAgICAgZXJyID0g aW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X1FVRVJZLCAmcXVlcnkpOwo+ICsgKiAgICAgaWYgKGVy cikgLi4uCj4gKyAqCj4gKyAqICAgICAvLyBXZSBjYW4gbm93IGFjY2VzcyBlYWNoIHJlZ2lvbiBp biB0aGUgYXJyYXkKPiArICogICAgIGZvciAoaSA9IDA7IGkgPCBpbmZvLT5udW1fcmVnaW9uczsg aSsrKSB7Cj4gKyAqICAgICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVnaW9uX2lu Zm8gbXIgPSBpbmZvLT5yZWdpb25zW2ldOwo+ICsgKiAgICAgICAgICAgICB1MTYgY2xhc3MgPSBt ci5yZWdpb24uY2xhc3M7Cj4gKyAqICAgICAgICAgICAgIHUxNiBpbnN0YW5jZSA9IG1yLnJlZ2lv bi5pbnN0YW5jZTsKPiArICoKPiArICogICAgICAgICAgICAgLi4uLgo+ICsgKiAgICAgfQo+ICsg Kgo+ICsgKiAgICAgZnJlZShpbmZvKTsKPiArICovCj4gK3N0cnVjdCBkcm1faTkxNV9xdWVyeV9t ZW1vcnlfcmVnaW9ucyB7Cj4gKyAgICAgICAvKiogQG51bV9yZWdpb25zOiBOdW1iZXIgb2Ygc3Vw cG9ydGVkIHJlZ2lvbnMgKi8KPiArICAgICAgIF9fdTMyIG51bV9yZWdpb25zOwo+ICsKPiArICAg ICAgIC8qKiBAcGFkOiBNQlogKi8KPiArICAgICAgIF9fdTMyIHBhZDsKPiArCj4gKyAgICAgICAv KiogQHJlZ2lvbnM6IEluZm8gYWJvdXQgZWFjaCBzdXBwb3J0ZWQgcmVnaW9uICovCj4gKyAgICAg ICBzdHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZvIHJlZ2lvbnNbXTsKPiArfTsKPiAr Cj4gKyNkZWZpbmUgRFJNX0k5MTVfR0VNX0NSRUFURV9FWFQgICAgICAgICAgICAgICAgMHhkZWFk YmVhZgo+ICsjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9DUkVBVEVfRVhUICBEUk1fSU9XUihE Uk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0NSRUFURV9FWFQsIHN0cnVjdCBkcm1faTkx NV9nZW1fY3JlYXRlX2V4dCkKCkhlcmUncyBhbm90aGVyIHRob3VnaHQ6ICBJbnN0ZWFkIG9mIGJ1 cm5pbmcgYSBuZXcgSU9DVEwgbnVtYmVyLCBzaG91bGQKd2UganVzdCByZS11c2UgRFJNX0k5MTVf R0VNX0NSRUFURT8gIFRoZSBkaWZmZXJlbnQgc3RydWN0dXJlIHNpemUKc2hvdWxkIGxldCB1cyB0 ZWxsIHRoZSB0d28gYXBhcnQuCgotLUphc29uCgoKPiArCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2NyZWF0ZV9leHQgLSBFeGlzdGluZyBnZW1fY3JlYXRlIGJlaGF2aW91ciwgd2l0 aCBhZGRlZAo+ICsgKiBleHRlbnNpb24gc3VwcG9ydCB1c2luZyBzdHJ1Y3QgaTkxNV91c2VyX2V4 dGVuc2lvbi4KPiArICoKPiArICogTm90ZSB0aGF0IGluIHRoZSBmdXR1cmUgd2Ugd2FudCB0byBo YXZlIG91ciBidWZmZXIgZmxhZ3MgaGVyZSwgYXQgbGVhc3QgZm9yCj4gKyAqIHRoZSBzdHVmZiB0 aGF0IGlzIGltbXV0YWJsZS4gUHJldmlvdXNseSB3ZSB3b3VsZCBoYXZlIHR3byBpb2N0bHMsIG9u ZSB0bwo+ICsgKiBjcmVhdGUgdGhlIG9iamVjdCB3aXRoIGdlbV9jcmVhdGUsIGFuZCBhbm90aGVy IHRvIGFwcGx5IHZhcmlvdXMgcGFyYW1ldGVycywKPiArICogaG93ZXZlciB0aGlzIGNyZWF0ZXMg c29tZSBhbWJpZ3VpdHkgZm9yIHRoZSBwYXJhbXMgd2hpY2ggYXJlIGNvbnNpZGVyZWQKPiArICog aW1tdXRhYmxlLiBBbHNvIGluIGdlbmVyYWwgd2UncmUgcGhhc2luZyBvdXQgdGhlIHZhcmlvdXMg U0VUL0dFVCBpb2N0bHMuCj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZV9leHQg ewo+ICsgICAgICAgLyoqCj4gKyAgICAgICAgKiBAc2l6ZTogUmVxdWVzdGVkIHNpemUgZm9yIHRo ZSBvYmplY3QuCj4gKyAgICAgICAgKgo+ICsgICAgICAgICogVGhlIChwYWdlLWFsaWduZWQpIGFs bG9jYXRlZCBzaXplIGZvciB0aGUgb2JqZWN0IHdpbGwgYmUgcmV0dXJuZWQuCj4gKyAgICAgICAg Kgo+ICsgICAgICAgICogTm90ZSB0aGF0IGZvciBzb21lIGRldmljZXMgd2UgaGF2ZSBtaWdodCBo YXZlIGZ1cnRoZXIgbWluaW11bQo+ICsgICAgICAgICogcGFnZS1zaXplIHJlc3RyaWN0aW9ucyhs YXJnZXIgdGhhbiA0SyksIGxpa2UgZm9yIGRldmljZSBsb2NhbC1tZW1vcnkuCj4gKyAgICAgICAg KiBIb3dldmVyIGluIGdlbmVyYWwgdGhlIGZpbmFsIHNpemUgaGVyZSBzaG91bGQgYWx3YXlzIHJl ZmxlY3QgYW55Cj4gKyAgICAgICAgKiByb3VuZGluZyB1cCwgaWYgZm9yIGV4YW1wbGUgdXNpbmcg dGhlIEk5MTVfR0VNX0NSRUFURV9FWFRfTUVNT1JZX1JFR0lPTlMKPiArICAgICAgICAqIGV4dGVu c2lvbiB0byBwbGFjZSB0aGUgb2JqZWN0IGluIGRldmljZSBsb2NhbC1tZW1vcnkuCj4gKyAgICAg ICAgKi8KPiArICAgICAgIF9fdTY0IHNpemU7Cj4gKyAgICAgICAvKioKPiArICAgICAgICAqIEBo YW5kbGU6IFJldHVybmVkIGhhbmRsZSBmb3IgdGhlIG9iamVjdC4KPiArICAgICAgICAqCj4gKyAg ICAgICAgKiBPYmplY3QgaGFuZGxlcyBhcmUgbm9uemVyby4KPiArICAgICAgICAqLwo+ICsgICAg ICAgX191MzIgaGFuZGxlOwo+ICsgICAgICAgLyoqIEBmbGFnczogTUJaICovCj4gKyAgICAgICBf X3UzMiBmbGFnczsKPiArICAgICAgIC8qKgo+ICsgICAgICAgICogQGV4dGVuc2lvbnM6IFRoZSBj aGFpbiBvZiBleHRlbnNpb25zIHRvIGFwcGx5IHRvIHRoaXMgb2JqZWN0Lgo+ICsgICAgICAgICoK PiArICAgICAgICAqIFRoaXMgd2lsbCBiZSB1c2VmdWwgaW4gdGhlIGZ1dHVyZSB3aGVuIHdlIG5l ZWQgdG8gc3VwcG9ydCBzZXZlcmFsCj4gKyAgICAgICAgKiBkaWZmZXJlbnQgZXh0ZW5zaW9ucywg YW5kIHdlIG5lZWQgdG8gYXBwbHkgbW9yZSB0aGFuIG9uZSB3aGVuCj4gKyAgICAgICAgKiBjcmVh dGluZyB0aGUgb2JqZWN0LiBTZWUgc3RydWN0IGk5MTVfdXNlcl9leHRlbnNpb24uCj4gKyAgICAg ICAgKgo+ICsgICAgICAgICogSWYgd2UgZG9uJ3Qgc3VwcGx5IGFueSBleHRlbnNpb25zIHRoZW4g d2UgZ2V0IHRoZSBzYW1lIG9sZCBnZW1fY3JlYXRlCj4gKyAgICAgICAgKiBiZWhhdmlvdXIuCj4g KyAgICAgICAgKgo+ICsgICAgICAgICogRm9yIEk5MTVfR0VNX0NSRUFURV9FWFRfTUVNT1JZX1JF R0lPTlMgdXNhZ2Ugc2VlCj4gKyAgICAgICAgKiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZV9l eHRfbWVtb3J5X3JlZ2lvbnMuCj4gKyAgICAgICAgKi8KPiArI2RlZmluZSBJOTE1X0dFTV9DUkVB VEVfRVhUX01FTU9SWV9SRUdJT05TIDAKPiArICAgICAgIF9fdTY0IGV4dGVuc2lvbnM7Cj4gK307 Cj4gKwo+ICsvKioKPiArICogc3RydWN0IGRybV9pOTE1X2dlbV9jcmVhdGVfZXh0X21lbW9yeV9y ZWdpb25zIC0gVGhlCj4gKyAqIEk5MTVfR0VNX0NSRUFURV9FWFRfTUVNT1JZX1JFR0lPTlMgZXh0 ZW5zaW9uLgo+ICsgKgo+ICsgKiBTZXQgdGhlIG9iamVjdCB3aXRoIHRoZSBkZXNpcmVkIHNldCBv ZiBwbGFjZW1lbnRzL3JlZ2lvbnMgaW4gcHJpb3JpdHkKPiArICogb3JkZXIuIEVhY2ggZW50cnkg bXVzdCBiZSB1bmlxdWUgYW5kIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlLgo+ICsgKgo+ICsgKiBU aGlzIGlzIHByb3ZpZGVkIGFzIGFuIGFycmF5IG9mIHN0cnVjdCBkcm1faTkxNV9nZW1fbWVtb3J5 X2NsYXNzX2luc3RhbmNlLCBvcgo+ICsgKiBhbiBlcXVpdmFsZW50IGxheW91dCBvZiBjbGFzczpp bnN0YW5jZSBwYWlyIGVuY29kaW5ncy4gU2VlIHN0cnVjdAo+ICsgKiBkcm1faTkxNV9xdWVyeV9t ZW1vcnlfcmVnaW9ucyBhbmQgRFJNX0k5MTVfUVVFUllfTUVNT1JZX1JFR0lPTlMgZm9yIGhvdyB0 bwo+ICsgKiBxdWVyeSB0aGUgc3VwcG9ydGVkIHJlZ2lvbnMgZm9yIGEgZGV2aWNlLgo+ICsgKgo+ ICsgKiBBcyBhbiBleGFtcGxlLCBvbiBkaXNjcmV0ZSBkZXZpY2VzLCBpZiB3ZSB3aXNoIHRvIHNl dCB0aGUgcGxhY2VtZW50IGFzCj4gKyAqIGRldmljZSBsb2NhbC1tZW1vcnkgd2UgY2FuIGRvIHNv bWV0aGluZyBsaWtlOgo+ICsgKgo+ICsgKiAuLiBjb2RlLWJsb2NrOjogQwo+ICsgKgo+ICsgKiAg ICAgc3RydWN0IGRybV9pOTE1X2dlbV9tZW1vcnlfY2xhc3NfaW5zdGFuY2UgcmVnaW9uX2xtZW0g PSB7Cj4gKyAqICAgICAgICAgICAgICAubWVtb3J5X2NsYXNzID0gSTkxNV9NRU1PUllfQ0xBU1Nf REVWSUNFLAo+ICsgKiAgICAgICAgICAgICAgLm1lbW9yeV9pbnN0YW5jZSA9IDAsCj4gKyAqICAg ICAgfTsKPiArICogICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZV9leHRfbWVtb3J5X3Jl Z2lvbnMgcmVnaW9ucyA9IHsKPiArICogICAgICAgICAgICAgIC5iYXNlID0geyAubmFtZSA9IEk5 MTVfR0VNX0NSRUFURV9FWFRfTUVNT1JZX1JFR0lPTlMgfSwKPiArICogICAgICAgICAgICAgIC5y ZWdpb25zID0gKHVpbnRwdHJfdCkmcmVnaW9uX2xtZW0sCj4gKyAqICAgICAgICAgICAgICAubnVt X3JlZ2lvbnMgPSAxLAo+ICsgKiAgICAgIH07Cj4gKyAqICAgICAgc3RydWN0IGRybV9pOTE1X2dl bV9jcmVhdGVfZXh0IGNyZWF0ZV9leHQgPSB7Cj4gKyAqICAgICAgICAgICAgICAuc2l6ZSA9IDE2 ICogUEFHRV9TSVpFLAo+ICsgKiAgICAgICAgICAgICAgLmV4dGVuc2lvbnMgPSAodWludHB0cl90 KSZyZWdpb25zLAo+ICsgKiAgICAgIH07Cj4gKyAqCj4gKyAqICAgICAgaW50IGVyciA9IGlvY3Rs KGZkLCBEUk1fSU9DVExfSTkxNV9HRU1fQ1JFQVRFX0VYVCwgJmNyZWF0ZV9leHQpOwo+ICsgKiAg ICAgIGlmIChlcnIpIC4uLgo+ICsgKgo+ICsgKiBBdCB3aGljaCBwb2ludCB3ZSBnZXQgdGhlIG9i amVjdCBoYW5kbGUgaW4gJmRybV9pOTE1X2dlbV9jcmVhdGVfZXh0LmhhbmRsZSwKPiArICogYWxv bmcgd2l0aCB0aGUgZmluYWwgb2JqZWN0IHNpemUgaW4gJmRybV9pOTE1X2dlbV9jcmVhdGVfZXh0 LnNpemUsIHdoaWNoCj4gKyAqIHNob3VsZCBhY2NvdW50IGZvciBhbnkgcm91bmRpbmcgdXAsIGlm IHJlcXVpcmVkLgo+ICsgKi8KPiArc3RydWN0IGRybV9pOTE1X2dlbV9jcmVhdGVfZXh0X21lbW9y eV9yZWdpb25zIHsKPiArICAgICAgIC8qKiBAYmFzZTogRXh0ZW5zaW9uIGxpbmsuIFNlZSBzdHJ1 Y3QgaTkxNV91c2VyX2V4dGVuc2lvbi4gKi8KPiArICAgICAgIHN0cnVjdCBpOTE1X3VzZXJfZXh0 ZW5zaW9uIGJhc2U7Cj4gKwo+ICsgICAgICAgLyoqIEBwYWQ6IE1CWiAqLwo+ICsgICAgICAgX191 MzIgcGFkOwo+ICsgICAgICAgLyoqIEBudW1fcmVnaW9uczogTnVtYmVyIG9mIGVsZW1lbnRzIGlu IHRoZSBAcmVnaW9ucyBhcnJheS4gKi8KPiArICAgICAgIF9fdTMyIG51bV9yZWdpb25zOwo+ICsg ICAgICAgLyoqCj4gKyAgICAgICAgKiBAcmVnaW9uczogVGhlIHJlZ2lvbnMvcGxhY2VtZW50cyBh cnJheS4KPiArICAgICAgICAqCj4gKyAgICAgICAgKiBBbiBhcnJheSBvZiBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZS4KPiArICAgICAgICAqLwo+ICsgICAgICAgX191 NjQgcmVnaW9uczsKPiArfTsKPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5 MTVfZ2VtX2xtZW0ucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfZ2VtX2xtZW0ucnN0 Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjQ2MmYxZWZkOTAw Mwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9yZmMvaTkxNV9nZW1f bG1lbS5yc3QKPiBAQCAtMCwwICsxLDEzMCBAQAo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09 Cj4gK0k5MTUgREcxL0xNRU0gUkZDIFNlY3Rpb24KPiArPT09PT09PT09PT09PT09PT09PT09PT09 PQo+ICsKPiArVXBzdHJlYW0gcGxhbgo+ICs9PT09PT09PT09PT09Cj4gK0ZvciB1cHN0cmVhbSB0 aGUgb3ZlcmFsbCBwbGFuIGZvciBsYW5kaW5nIGFsbCB0aGUgREcxIHN0dWZmIGFuZCB0dXJuaW5n IGl0IGZvcgo+ICtyZWFsLCB3aXRoIGFsbCB0aGUgdUFQSSBiaXRzIGlzOgo+ICsKPiArKiBNZXJn ZSBiYXNpYyBIVyBlbmFibGluZyBvZiBERzEoc3RpbGwgd2l0aG91dCBwY2lpZCkKPiArKiBNZXJn ZSB0aGUgdUFQSSBiaXRzIGJlaGluZCBzcGVjaWFsIENPTkZJR19CUk9LRU4ob3Igc28pIGZsYWcK PiArICAgICAgICAqIEF0IHRoaXMgcG9pbnQgd2UgY2FuIHN0aWxsIG1ha2UgY2hhbmdlcywgYnV0 IGltcG9ydGFudGx5IHRoaXMgbGV0cyB1cwo+ICsgICAgICAgICAgc3RhcnQgcnVubmluZyBJR1Rz IHdoaWNoIGNhbiB1dGlsaXplIGxvY2FsLW1lbW9yeSBpbiBDSQo+ICsqIENvbnZlcnQgb3ZlciB0 byBUVE0sIG1ha2Ugc3VyZSBpdCBhbGwga2VlcHMgd29ya2luZy4gU29tZSBvZiB0aGUgd29yayBp dGVtczoKPiArICAgICAgICAqIFRUTSBzaHJpbmtlciBmb3IgZGlzY3JldGUKPiArICAgICAgICAq IGRtYV9yZXN2X2xvY2tpdGVtIGZvciBmdWxsIGRtYV9yZXN2X2xvY2ssIGkuZSBub3QganVzdCB0 cnlsb2NrCj4gKyAgICAgICAgKiBVc2UgVFRNIENQVSBwYWdlZmF1bHQgaGFuZGxlcgo+ICsgICAg ICAgICogUm91dGUgc2htZW0gYmFja2VuZCBvdmVyIHRvIFRUTSBTWVNURU0gZm9yIGRpc2NyZXRl Cj4gKyAgICAgICAgKiBUVE0gcHVyZ2VhYmxlIG9iamVjdCBzdXBwb3J0Cj4gKyAgICAgICAgKiBN b3ZlIGk5MTUgYnVkZHkgYWxsb2NhdG9yIG92ZXIgdG8gVFRNCj4gKyAgICAgICAgKiBNTUFQIGlv Y3RsIG1vZGUoc2VlIGBJOTE1IE1NQVBgXykKPiArICAgICAgICAqIFNFVC9HRVQgaW9jdGwgY2Fj aGluZyhzZWUgYEk5MTUgU0VUL0dFVCBDQUNISU5HYF8pCj4gKyogQWRkIHBjaWlkIGZvciBERzEg YW5kIHR1cm4gb24gdUFQSSBmb3IgcmVhbAo+ICsKPiArTmV3IG9iamVjdCBwbGFjZW1lbnQgYW5k IHJlZ2lvbiBxdWVyeSB1QVBJCj4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQo+ICtTdGFydGluZyBmcm9tIERHMSB3ZSBuZWVkIHRvIGdpdmUgdXNlcnNwYWNlIHRo ZSBhYmlsaXR5IHRvIGFsbG9jYXRlIGJ1ZmZlcnMgZnJvbQo+ICtkZXZpY2UgbG9jYWwtbWVtb3J5 LiBDdXJyZW50bHkgdGhlIGRyaXZlciBzdXBwb3J0cyBnZW1fY3JlYXRlLCB3aGljaCBjYW4gcGxh Y2UKPiArYnVmZmVycyBpbiBzeXN0ZW0gbWVtb3J5IHZpYSBzaG1lbSwgYW5kIHRoZSB1c3VhbCBh c3NvcnRtZW50IG9mIG90aGVyCj4gK2ludGVyZmFjZXMsIGxpa2UgZHVtYiBidWZmZXJzIGFuZCB1 c2VycHRyLgo+ICsKPiArVG8gc3VwcG9ydCB0aGlzIG5ldyBjYXBhYmlsaXR5LCB3aGlsZSBhbHNv IHByb3ZpZGluZyBhIHVBUEkgd2hpY2ggd2lsbCB3b3JrCj4gK2JleW9uZCBqdXN0IERHMSwgd2Ug cHJvcG9zZSB0byBvZmZlciB0aHJlZSBuZXcgYml0cyBvZiB1QVBJOgo+ICsKPiArRFJNX0k5MTVf UVVFUllfTUVNT1JZX1JFR0lPTlMKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAr TmV3IHF1ZXJ5IElEIHdoaWNoIGFsbG93cyB1c2Vyc3BhY2UgdG8gZGlzY292ZXIgdGhlIGxpc3Qg b2Ygc3VwcG9ydGVkIG1lbW9yeQo+ICtyZWdpb25zKGxpa2Ugc3lzdGVtLW1lbW9yeSBhbmQgbG9j YWwtbWVtb3J5KSBmb3IgYSBnaXZlbiBkZXZpY2UuIFdlIGlkZW50aWZ5Cj4gK2VhY2ggcmVnaW9u IHdpdGggYSBjbGFzcyBhbmQgaW5zdGFuY2UgcGFpciwgd2hpY2ggc2hvdWxkIGJlIHVuaXF1ZS4g VGhlIGNsYXNzCj4gK2hlcmUgd291bGQgYmUgREVWSUNFIG9yIFNZU1RFTSwgYW5kIHRoZSBpbnN0 YW5jZSB3b3VsZCBiZSB6ZXJvLCBvbiBwbGF0Zm9ybXMKPiArbGlrZSBERzEuCj4gKwo+ICtTaWRl IG5vdGU6IFRoZSBjbGFzcy9pbnN0YW5jZSBkZXNpZ24gaXMgYm9ycm93ZWQgZnJvbSBvdXIgZXhp c3RpbmcgZW5naW5lIHVBUEksCj4gK3doZXJlIHdlIGRlc2NyaWJlIGV2ZXJ5IHBoeXNpY2FsIGVu Z2luZSBpbiB0ZXJtcyBvZiBpdHMgY2xhc3MsIGFuZCB0aGUKPiArcGFydGljdWxhciBpbnN0YW5j ZSwgc2luY2Ugd2UgY2FuIGhhdmUgbW9yZSB0aGFuIG9uZSBwZXIgY2xhc3MuCj4gKwo+ICtJbiB0 aGUgZnV0dXJlIHdlIGFsc28gd2FudCB0byBleHBvc2UgbW9yZSBpbmZvcm1hdGlvbiB3aGljaCBj YW4gZnVydGhlcgo+ICtkZXNjcmliZSB0aGUgY2FwYWJpbGl0aWVzIG9mIGEgcmVnaW9uLgo+ICsK PiArLi4ga2VybmVsLWRvYzo6IERvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X2dlbV9sbWVtLmgK PiArICAgICAgICA6ZnVuY3Rpb25zOiBkcm1faTkxNV9nZW1fbWVtb3J5X2NsYXNzIGRybV9pOTE1 X2dlbV9tZW1vcnlfY2xhc3NfaW5zdGFuY2UgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZvIGRy bV9pOTE1X3F1ZXJ5X21lbW9yeV9yZWdpb25zCj4gKwo+ICtHRU1fQ1JFQVRFX0VYVAo+ICstLS0t LS0tLS0tLS0tLQo+ICtOZXcgaW9jdGwgd2hpY2ggaXMgYmFzaWNhbGx5IGp1c3QgZ2VtX2NyZWF0 ZSBidXQgbm93IGFsbG93cyB1c2Vyc3BhY2UgdG8KPiArcHJvdmlkZSBhIGNoYWluIG9mIHBvc3Np YmxlIGV4dGVuc2lvbnMuIE5vdGUgdGhhdCBpZiB3ZSBkb24ndCBwcm92aWRlIGFueQo+ICtleHRl bnNpb25zIHRoZW4gd2UgZ2V0IHRoZSBleGFjdCBzYW1lIGJlaGF2aW91ciBhcyBnZW1fY3JlYXRl Lgo+ICsKPiArU2lkZSBub3RlOiBXZSBhbHNvIG5lZWQgdG8gc3VwcG9ydCBQWFBbMV0gaW4gdGhl IG5lYXIgZnV0dXJlLCB3aGljaCBpcyBhbHNvCj4gK2FwcGxpY2FibGUgdG8gaW50ZWdyYXRlZCBw bGF0Zm9ybXMsIGFuZCBhZGRzIGl0cyBvd24gZ2VtX2NyZWF0ZV9leHQgZXh0ZW5zaW9uLAo+ICt3 aGljaCBiYXNpY2FsbHkgbGV0cyB1c2Vyc3BhY2UgbWFyayBhIGJ1ZmZlciBhcyAicHJvdGVjdGVk Ii4KPiArCj4gKy4uIGtlcm5lbC1kb2M6OiBEb2N1bWVudGF0aW9uL2dwdS9yZmMvaTkxNV9nZW1f bG1lbS5oCj4gKyAgICAgICAgOmZ1bmN0aW9uczogZHJtX2k5MTVfZ2VtX2NyZWF0ZV9leHQKPiAr Cj4gK0k5MTVfR0VNX0NSRUFURV9FWFRfTUVNT1JZX1JFR0lPTlMKPiArLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+ICtJbXBsZW1lbnRlZCBhcyBhbiBleHRlbnNpb24gZm9yIGdl bV9jcmVhdGVfZXh0LCB3ZSB3b3VsZCBub3cgYWxsb3cgdXNlcnNwYWNlIHRvCj4gK29wdGlvbmFs bHkgcHJvdmlkZSBhbiBpbW11dGFibGUgbGlzdCBvZiBwcmVmZXJyZWQgcGxhY2VtZW50cyBhdCBj cmVhdGlvbiB0aW1lLAo+ICtpbiBwcmlvcml0eSBvcmRlciwgZm9yIGEgZ2l2ZW4gYnVmZmVyIG9i amVjdC4gIEZvciB0aGUgcGxhY2VtZW50cyB3ZSBleHBlY3QKPiArdGhlbSBlYWNoIHRvIHVzZSB0 aGUgY2xhc3MvaW5zdGFuY2UgZW5jb2RpbmcsIGFzIHBlciB0aGUgb3V0cHV0IG9mIHRoZSByZWdp b25zCj4gK3F1ZXJ5LiBIYXZpbmcgdGhlIGxpc3QgaW4gcHJpb3JpdHkgb3JkZXIgd2lsbCBiZSB1 c2VmdWwgaW4gdGhlIGZ1dHVyZSB3aGVuCj4gK3BsYWNpbmcgYW4gb2JqZWN0LCBzYXkgZHVyaW5n IGV2aWN0aW9uLgo+ICsKPiArLi4ga2VybmVsLWRvYzo6IERvY3VtZW50YXRpb24vZ3B1L3JmYy9p OTE1X2dlbV9sbWVtLmgKPiArICAgICAgICA6ZnVuY3Rpb25zOiBkcm1faTkxNV9nZW1fY3JlYXRl X2V4dF9tZW1vcnlfcmVnaW9ucwo+ICsKPiArT25lIGZhaXIgY3JpdGljaXNtIGhlcmUgaXMgdGhh dCB0aGlzIHNlZW1zIGEgbGl0dGxlIG92ZXItZW5naW5lZXJlZFsyXS4gSWYgd2UKPiAranVzdCBj b25zaWRlciBERzEgdGhlbiB5ZXMsIGEgc2ltcGxlIGdlbV9jcmVhdGUuZmxhZ3Mgb3Igc29tZXRo aW5nIGlzIHRvdGFsbHkKPiArYWxsIHRoYXQncyBuZWVkZWQgdG8gdGVsbCB0aGUga2VybmVsIHRv IGFsbG9jYXRlIHRoZSBidWZmZXIgaW4gbG9jYWwtbWVtb3J5IG9yCj4gK3doYXRldmVyLiBIb3dl dmVyIGxvb2tpbmcgdG8gdGhlIGZ1dHVyZSB3ZSBuZWVkIHVBUEkgd2hpY2ggY2FuIGFsc28gc3Vw cG9ydAo+ICt1cGNvbWluZyBYZSBIUCBtdWx0aS10aWxlIGFyY2hpdGVjdHVyZSBpbiBhIHNhbmUg d2F5LCB3aGVyZSB0aGVyZSBjYW4gYmUKPiArbXVsdGlwbGUgbG9jYWwtbWVtb3J5IGluc3RhbmNl cyBmb3IgYSBnaXZlbiBkZXZpY2UsIGFuZCBzbyB1c2luZyBib3RoIGNsYXNzIGFuZAo+ICtpbnN0 YW5jZSBpbiBvdXIgdUFQSSB0byBkZXNjcmliZSByZWdpb25zIGlzIGRlc2lyYWJsZSwgYWx0aG91 Z2ggc3BlY2lmaWNhbGx5Cj4gK2ZvciBERzEgaXQncyB1bmludGVyZXN0aW5nLCBzaW5jZSB3ZSBv bmx5IGhhdmUgYSBzaW5nbGUgbG9jYWwtbWVtb3J5IGluc3RhbmNlLgo+ICsKPiArRXhpc3Rpbmcg dUFQSSBpc3N1ZXMKPiArPT09PT09PT09PT09PT09PT09PT0KPiArU29tZSBwb3RlbnRpYWwgaXNz dWVzIHdlIHN0aWxsIG5lZWQgdG8gcmVzb2x2ZS4KPiArCj4gK0k5MTUgTU1BUAo+ICstLS0tLS0t LS0KPiArSW4gaTkxNSB0aGVyZSBhcmUgbXVsdGlwbGUgd2F5cyB0byBNTUFQIEdFTSBvYmplY3Qs IGluY2x1ZGluZyBtYXBwaW5nIHRoZSBzYW1lCj4gK29iamVjdCB1c2luZyBkaWZmZXJlbnQgbWFw cGluZyB0eXBlcyhXQyB2cyBXQiksIGkuZSBtdWx0aXBsZSBhY3RpdmUgbW1hcHMgcGVyCj4gK29i amVjdC4gVFRNIGV4cGVjdHMgb25lIE1NQVAgYXQgbW9zdCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRo ZSBvYmplY3QuIElmIGl0Cj4gK3R1cm5zIG91dCB0aGF0IHdlIGhhdmUgdG8gYmFja3BlZGFsIGhl cmUsIHRoZXJlIG1pZ2h0IGJlIHNvbWUgcG90ZW50aWFsCj4gK3VzZXJzcGFjZSBmYWxsb3V0Lgo+ ICsKPiArSTkxNSBTRVQvR0VUIENBQ0hJTkcKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArSW4g aTkxNSB3ZSBoYXZlIHNldC9nZXRfY2FjaGluZyBpb2N0bC4gVFRNIGRvZXNuJ3QgbGV0IHVzIHRv IGNoYW5nZSB0aGlzLCBidXQKPiArREcxIGRvZXNuJ3Qgc3VwcG9ydCBub24tc25vb3BlZCBwY2ll IHRyYW5zYWN0aW9ucywgc28gd2UgY2FuIGp1c3QgYWx3YXlzCj4gK2FsbG9jYXRlIGFzIFdCIGZv ciBzbWVtLW9ubHkgYnVmZmVycy4gIElmL3doZW4gb3VyIGh3IGdhaW5zIHN1cHBvcnQgZm9yCj4g K25vbi1zbm9vcGVkIHBjaWUgdHJhbnNhY3Rpb25zIHRoZW4gd2UgbXVzdCBmaXggdGhpcyBtb2Rl IGF0IGFsbG9jYXRpb24gdGltZSBhcwo+ICthIG5ldyBHRU0gZXh0ZW5zaW9uLgo+ICsKPiArVGhp cyBpcyByZWxhdGVkIHRvIHRoZSBtbWFwIHByb2JsZW0sIGJlY2F1c2UgaW4gZ2VuZXJhbCAobWVh bmluZywgd2hlbiB3ZSdyZQo+ICtub3QgcnVubmluZyBvbiBpbnRlbCBjcHVzKSB0aGUgY3B1IG1t YXAgbXVzdCBub3QsIGV2ZXIsIGJlIGluY29uc2lzdGVudCB3aXRoCj4gK2FsbG9jYXRpb24gbW9k ZS4KPiArCj4gK1Bvc3NpYmxlIGlkZWEgaXMgdG8gbGV0IHRoZSBrZXJuZWwgcGlja3MgdGhlIG1t YXAgbW9kZSBmb3IgdXNlcnNwYWNlIGZyb20gdGhlCj4gK2ZvbGxvd2luZyB0YWJsZToKPiArCj4g K3NtZW0tb25seTogV0IuIFVzZXJzcGFjZSBkb2VzIG5vdCBuZWVkIHRvIGNhbGwgY2xmbHVzaC4K PiArCj4gK3NtZW0rbG1lbTogV2UgYWxsb2NhdGUgdW5jYWNoZWQgbWVtb3J5LCBhbmQgZ2l2ZSB1 c2Vyc3BhY2UgYSBXQyBtYXBwaW5nCj4gK2ZvciB3aGVuIHRoZSBidWZmZXIgaXMgaW4gc21lbSwg YW5kIFdDIHdoZW4gaXQncyBpbiBsbWVtLiBHUFUgZG9lcyBzbm9vcGVkCj4gK2FjY2Vzcywgd2hp Y2ggaXMgYSBiaXQgaW5lZmZpY2llbnQuCj4gKwo+ICtsbWVtIG9ubHk6IGFsd2F5cyBXQwo+ICsK PiArVGhpcyBtZWFucyBvbiBkaXNjcmV0ZSB5b3Ugb25seSBnZXQgYSBzaW5nbGUgbW1hcCBtb2Rl LCBhbGwgb3RoZXJzIG11c3QgYmUKPiArcmVqZWN0ZWQuIFRoYXQncyBwcm9iYWJseSBnb2luZyB0 byBiZSBhIG5ldyBkZWZhdWx0IG1vZGUgb3Igc29tZXRoaW5nIGxpa2UKPiArdGhhdC4KPiArCj4g K0xpbmtzCj4gKz09PT09Cj4gK1sxXSBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcv c2VyaWVzLzg2Nzk4Lwo+ICsKPiArWzJdIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9t ZXNhL21lc2EvLS9tZXJnZV9yZXF1ZXN0cy81NTk5I25vdGVfNTUzNzkxCj4gZGlmZiAtLWdpdCBh L0RvY3VtZW50YXRpb24vZ3B1L3JmYy9pbmRleC5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS9yZmMv aW5kZXgucnN0Cj4gaW5kZXggYTg2MjFmN2RhYjhiLi4wNTY3MDQ0MmNhMWIgMTAwNjQ0Cj4gLS0t IGEvRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2luZGV4LnJzdAo+ICsrKyBiL0RvY3VtZW50YXRpb24v Z3B1L3JmYy9pbmRleC5yc3QKPiBAQCAtMTUsMyArMTUsNyBAQCBob3N0IHN1Y2ggZG9jdW1lbnRh dGlvbjoKPgo+ICAqIE9uY2UgdGhlIGNvZGUgaGFzIGxhbmRlZCBtb3ZlIGFsbCB0aGUgZG9jdW1l bnRhdGlvbiB0byB0aGUgcmlnaHQgcGxhY2VzIGluCj4gICAgdGhlIG1haW4gY29yZSwgaGVscGVy IG9yIGRyaXZlciBzZWN0aW9ucy4KPiArCj4gKy4uIHRvY3RyZWU6Ogo+ICsKPiArICAgIGk5MTVf Z2VtX2xtZW0ucnN0Cj4gLS0KPiAyLjI2LjMKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK 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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 1579FC433B4 for ; Mon, 26 Apr 2021 15:11:34 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 81EE061176 for ; Mon, 26 Apr 2021 15:11:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 81EE061176 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=jlekstrand.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 667E56E838; Mon, 26 Apr 2021 15:11:32 +0000 (UTC) Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3F8B96E833 for ; Mon, 26 Apr 2021 15:11:31 +0000 (UTC) Received: by mail-ej1-x634.google.com with SMTP id u21so85007399ejo.13 for ; Mon, 26 Apr 2021 08:11:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jlekstrand-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=I1GQAhpXkSclYqXF5dk1/Bu6/Zh8ls+Pl79GIvzRobw=; b=pQYbnqTWsC69kMcmNg3kjt93gjY/Z4SzAinz3wWTt/rtpPRy07ID4yCK1Z2vJS+O3P ztMbr/s88byEPTthEID8k08Qp8OIT0j2gzynnj8aonPy3bxyBQckHO6aZHilu2C5xf+N Jv6na5pcvS4paavMH/bBQhK5JPJPECifZxW2EhNCkJqQ0fvQbDtnOyBeXIW/1vIPDg/R qh/jYReaYKLydzXpiSBFi+BwbvHpUeqV2UQBGkH8EsireuEST6P89F2yUe40C/n8MtDU Wk78mCWruHqLqsuh2+KsHfh8A7EM5vdU6znEXBEw31dnT/+qHxww5/449HPx0oqBW44R qPlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=I1GQAhpXkSclYqXF5dk1/Bu6/Zh8ls+Pl79GIvzRobw=; b=ZzbpOBgokTszqrS0Q1/lICsZqlsI89XMgmavBA5+Z8kUM+ekPpyAk+ftqMkPXNOpbo MN5s4Ksm1GmcK/xU1rMMJqu6DPL+PICMkFqfbLLkjAkPObVXTgdp8PdTVZSWMsAZ2jAs mUMi9BOi0o7Tm6u7I8mL3e7SQn6vFJ6qEq6VB3/eMCBQXW0KVnGKszSRlI1chRtBZoYX K/PJHPtk/xKIIa7CKSEALFBmaRgYUHPaNaO5AATyophuyhCOBb41gZiN82IG/3AbTKyB WD+EVUQ5VdVYuXvEKtUzluu45TPLaybzwZTqiZf9utZ39uCoQWrB2peQjs4LdmBjRcLz XdEw== X-Gm-Message-State: AOAM530gDiiJawBa6FjasU/9HArDrgSkf3uLnioICUy68rWtSAe6M21n +HYZ0olO6j/uzoA0dyEhuy25346zb4OKNWXqkWAMBQ== X-Google-Smtp-Source: ABdhPJwEY7nNsmo4SuijXeOWsQ8AWE7wzb7j+LV90j7HLD1YSsij3/xeuHIMFhHeUNoXhAXiCC7LqKzpyMD8VTSablc= X-Received: by 2002:a17:906:6d12:: with SMTP id m18mr19105785ejr.435.1619449889665; Mon, 26 Apr 2021 08:11:29 -0700 (PDT) MIME-Version: 1.0 References: <20210426093901.28937-1-matthew.auld@intel.com> In-Reply-To: <20210426093901.28937-1-matthew.auld@intel.com> From: Jason Ekstrand Date: Mon, 26 Apr 2021 10:11:18 -0500 Message-ID: To: Matthew Auld Subject: Re: [Intel-gfx] [PATCH 1/9] drm/doc/rfc: i915 DG1 uAPI X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lionel Landwerlin , =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= , Dave Airlie , Intel GFX , Maling list - DRI developers , Daniel Vetter , Kenneth Graunke , ML mesa-dev , Daniel Vetter Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gTW9uLCBBcHIgMjYsIDIwMjEgYXQgNDo0MiBBTSBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVs ZEBpbnRlbC5jb20+IHdyb3RlOgo+Cj4gQWRkIGFuIGVudHJ5IGZvciB0aGUgbmV3IHVBUEkgbmVl ZGVkIGZvciBERzEuIEFsc28gYWRkIHRoZSBvdmVyYWxsCj4gdXBzdHJlYW0gcGxhbiwgaW5jbHVk aW5nIHNvbWUgbm90ZXMgZm9yIHRoZSBUVE0gY29udmVyc2lvbi4KPgo+IHYyKERhbmllbCk6Cj4g ICAtIGluY2x1ZGUgdGhlIG92ZXJhbGwgdXBzdHJlYW1pbmcgcGxhbgo+ICAgLSBhZGQgYSBub3Rl IGZvciBtbWFwLCB0aGVyZSBhcmUgZGlmZmVyZW5jZXMgaGVyZSBmb3IgVFRNIHZzIGk5MTUKPiAg IC0gYnVuY2ggb2Ygb3RoZXIgc3VnZ2VzdGlvbnMgZnJvbSBEYW5pZWwKPiB2MzoKPiAgKERhbmll bCkKPiAgIC0gYWRkIGEgbm90ZSBmb3Igc2V0L2dldCBjYWNoaW5nIHN0dWZmCj4gICAtIGFkZCBz b21lIG1vcmUgZG9jcyBmb3IgZXhpc3RpbmcgcXVlcnkgYW5kIGV4dGVuc2lvbnMgc3R1ZmYKPiAg IC0gYWRkIGFuIGFjdHVhbCBjb2RlIGV4YW1wbGUgZm9yIHJlZ2lvbnMgcXVlcnkKPiAgIC0gYnVu Y2ggb2Ygb3RoZXIgc3R1ZmYKPiAgKEphc29uKQo+ICAgLSB1QVBJIGNoYW5nZSghKToKPiAgICAg ICAgIC0gdHJ5IGEgc2ltcGxlciBkZXNpZ24gd2l0aCB0aGUgcGxhY2VtZW50cyBleHRlbnNpb24K PiAgICAgICAgIC0gcmF0aGVyIHRoYW4gaGF2ZSBhIGdlbmVyaWMgc2V0cGFyYW0gd2hpY2ggY2Fu IGNvdmVyIG11bHRpcGxlCj4gICAgICAgICAgIHVzZSBjYXNlcywgaGF2ZSBlYWNoIGV4dGVuc2lv biBiZSByZXNwb25zaWJsZSBmb3Igb25lIHRoaW5nCj4gICAgICAgICAgIG9ubHkKPiB2NDoKPiAg KERhbmllbCkKPiAgIC0gYWRkIHNvbWUgbW9yZSBub3RlcyBmb3IgdHRtIGNvbnZlcnNpb24KPiAg IC0gYnVuY2ggb2Ygb3RoZXIgc3R1ZmYKPiAgKEphc29uKQo+ICAgLSB1QVBJIGNoYW5nZSghKToK PiAgICAgICAgIC0gZHJvcCBhbGwgdGhlIGV4dHJhIHJzdmQgbWVtYmVycyBmb3IgdGhlIHJlZ2lv bl9xdWVyeSBhbmQKPiAgICAgICAgICAgcmVnaW9uX2luZm8sIGp1c3Qga2VlcCB0aGUgYmFyZSBt aW5pbXVtIG5lZWRlZCBmb3IgcGFkZGluZwo+Cj4gU2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxk IDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgo+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5s YWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMu aGVsbHN0cm9tQGxpbnV4LmludGVsLmNvbT4KPiBDYzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8 ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KPiBDYzogTGlvbmVsIExhbmR3ZXJsaW4g PGxpb25lbC5nLmxhbmR3ZXJsaW5AbGludXguaW50ZWwuY29tPgo+IENjOiBKb24gQmxvb21maWVs ZCA8am9uLmJsb29tZmllbGRAaW50ZWwuY29tPgo+IENjOiBKb3JkYW4gSnVzdGVuIDxqb3JkYW4u bC5qdXN0ZW5AaW50ZWwuY29tPgo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGlu dGVsLmNvbT4KPiBDYzogS2VubmV0aCBHcmF1bmtlIDxrZW5uZXRoQHdoaXRlY2FwZS5vcmc+Cj4g Q2M6IEphc29uIEVrc3RyYW5kIDxqYXNvbkBqbGVrc3RyYW5kLm5ldD4KPiBDYzogRGF2ZSBBaXJs aWUgPGFpcmxpZWRAZ21haWwuY29tPgo+IENjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gQ2M6IG1lc2EtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IEFja2VkLWJ5OiBEYW5p ZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IEFja2VkLWJ5OiBEYXZlIEFpcmxp ZSA8YWlybGllZEByZWRoYXQuY29tPgo+IC0tLQo+ICBEb2N1bWVudGF0aW9uL2dwdS9yZmMvaTkx NV9nZW1fbG1lbS5oICAgfCAyMTIgKysrKysrKysrKysrKysrKysrKysrKysrCj4gIERvY3VtZW50 YXRpb24vZ3B1L3JmYy9pOTE1X2dlbV9sbWVtLnJzdCB8IDEzMCArKysrKysrKysrKysrKysKPiAg RG9jdW1lbnRhdGlvbi9ncHUvcmZjL2luZGV4LnJzdCAgICAgICAgIHwgICA0ICsKPiAgMyBmaWxl cyBjaGFuZ2VkLCAzNDYgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1l bnRhdGlvbi9ncHUvcmZjL2k5MTVfZ2VtX2xtZW0uaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9j dW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfZ2VtX2xtZW0ucnN0Cj4KPiBkaWZmIC0tZ2l0IGEvRG9j dW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfZ2VtX2xtZW0uaCBiL0RvY3VtZW50YXRpb24vZ3B1L3Jm Yy9pOTE1X2dlbV9sbWVtLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAw MDAwMC4uN2VkNTliNjIwMmQ1Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL0RvY3VtZW50YXRpb24v Z3B1L3JmYy9pOTE1X2dlbV9sbWVtLmgKPiBAQCAtMCwwICsxLDIxMiBAQAo+ICsvKioKPiArICog ZW51bSBkcm1faTkxNV9nZW1fbWVtb3J5X2NsYXNzIC0gU3VwcG9ydGVkIG1lbW9yeSBjbGFzc2Vz Cj4gKyAqLwo+ICtlbnVtIGRybV9pOTE1X2dlbV9tZW1vcnlfY2xhc3Mgewo+ICsgICAgICAgLyoq IEBJOTE1X01FTU9SWV9DTEFTU19TWVNURU06IFN5c3RlbSBtZW1vcnkgKi8KPiArICAgICAgIEk5 MTVfTUVNT1JZX0NMQVNTX1NZU1RFTSA9IDAsCj4gKyAgICAgICAvKiogQEk5MTVfTUVNT1JZX0NM QVNTX0RFVklDRTogRGV2aWNlIGxvY2FsLW1lbW9yeSAqLwo+ICsgICAgICAgSTkxNV9NRU1PUllf Q0xBU1NfREVWSUNFLAo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1faTkxNV9nZW1f bWVtb3J5X2NsYXNzX2luc3RhbmNlIC0gSWRlbnRpZnkgcGFydGljdWxhciBtZW1vcnkgcmVnaW9u Cj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZSB7Cj4g KyAgICAgICAvKiogQG1lbW9yeV9jbGFzczogU2VlIGVudW0gZHJtX2k5MTVfZ2VtX21lbW9yeV9j bGFzcyAqLwo+ICsgICAgICAgX191MTYgbWVtb3J5X2NsYXNzOwo+ICsKPiArICAgICAgIC8qKiBA bWVtb3J5X2luc3RhbmNlOiBXaGljaCBpbnN0YW5jZSAqLwo+ICsgICAgICAgX191MTYgbWVtb3J5 X2luc3RhbmNlOwo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlf cmVnaW9uX2luZm8gLSBEZXNjcmliZXMgb25lIHJlZ2lvbiBhcyBrbm93biB0byB0aGUKPiArICog ZHJpdmVyLgo+ICsgKgo+ICsgKiBOb3RlIHRoYXQgd2UgcmVzZXJ2ZSBzb21lIHN0dWZmIGhlcmUg Zm9yIHBvdGVudGlhbCBmdXR1cmUgd29yay4gQXMgYW4gZXhhbXBsZQo+ICsgKiB3ZSBtaWdodCB3 YW50IGV4cG9zZSB0aGUgY2FwYWJpbGl0aWVzKHNlZSBAY2FwcykgZm9yIGEgZ2l2ZW4gcmVnaW9u LCB3aGljaAo+ICsgKiBjb3VsZCBpbmNsdWRlIHRoaW5ncyBsaWtlIGlmIHRoZSByZWdpb24gaXMg Q1BVIG1hcHBhYmxlL2FjY2Vzc2libGUsIHdoYXQgYXJlCj4gKyAqIHRoZSBzdXBwb3J0ZWQgbWFw cGluZyB0eXBlcyBldGMuCj4gKyAqCj4gKyAqIE5vdGUgdGhpcyBpcyB1c2luZyBib3RoIHN0cnVj dCBkcm1faTkxNV9xdWVyeV9pdGVtIGFuZCBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkuCj4gKyAqIEZv ciB0aGlzIG5ldyBxdWVyeSB3ZSBhcmUgYWRkaW5nIHRoZSBuZXcgcXVlcnkgaWQgRFJNX0k5MTVf UVVFUllfTUVNT1JZX1JFR0lPTlMKPiArICogYXQgJmRybV9pOTE1X3F1ZXJ5X2l0ZW0ucXVlcnlf aWQuCj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZvIHsKPiArICAg ICAgIC8qKiBAcmVnaW9uOiBUaGUgY2xhc3M6aW5zdGFuY2UgcGFpciBlbmNvZGluZyAqLwo+ICsg ICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9tZW1vcnlfY2xhc3NfaW5zdGFuY2UgcmVnaW9uOwo+ ICsKPiArICAgICAgIC8qKiBAcGFkOiBNQlogKi8KPiArICAgICAgIF9fdTMyIHBhZDsKPiArCj4g KyAgICAgICAvKiogQGNhcHM6IE1CWiAqLwo+ICsgICAgICAgX191NjQgY2FwczsKPiArCj4gKyAg ICAgICAvKiogQHByb2JlZF9zaXplOiBNZW1vcnkgcHJvYmVkIGJ5IHRoZSBkcml2ZXIgKC0xID0g dW5rbm93bikgKi8KPiArICAgICAgIF9fdTY0IHByb2JlZF9zaXplOwo+ICsKPiArICAgICAgIC8q KiBAdW5hbGxvY2F0ZWRfc2l6ZTogRXN0aW1hdGUgb2YgbWVtb3J5IHJlbWFpbmluZyAoLTEgPSB1 bmtub3duKSAqLwo+ICsgICAgICAgX191NjQgdW5hbGxvY2F0ZWRfc2l6ZTsKPiArfTsKPiArCj4g Ky8qKgo+ICsgKiBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfbWVtb3J5X3JlZ2lvbnMKPiArICoKPiAr ICogVGhlIHJlZ2lvbiBpbmZvIHF1ZXJ5IGVudW1lcmF0ZXMgYWxsIHJlZ2lvbnMga25vd24gdG8g dGhlIGRyaXZlciBieSBmaWxsaW5nCj4gKyAqIGluIGFuIGFycmF5IG9mIHN0cnVjdCBkcm1faTkx NV9tZW1vcnlfcmVnaW9uX2luZm8gc3RydWN0dXJlcy4KPiArICoKPiArICogRXhhbXBsZSBmb3Ig Z2V0dGluZyB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgcmVnaW9uczoKPiArICoKPiArICogLi4gY29k ZS1ibG9jazo6IEMKPiArICoKPiArICogICAgIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9tZW1vcnlf cmVnaW9ucyAqaW5mbzsKPiArICogICAgIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtIGl0ZW0g PSB7Cj4gKyAqICAgICAgICAgICAgIC5xdWVyeV9pZCA9IERSTV9JOTE1X1FVRVJZX01FTU9SWV9S RUdJT05TOwo+ICsgKiAgICAgfTsKPiArICogICAgIHN0cnVjdCBkcm1faTkxNV9xdWVyeSBxdWVy eSA9IHsKPiArICogICAgICAgICAgICAgLm51bV9pdGVtcyA9IDEsCj4gKyAqICAgICAgICAgICAg IC5pdGVtc19wdHIgPSAodWludHB0cl90KSZpdGVtLAo+ICsgKiAgICAgfTsKPiArICogICAgIGlu dCBlcnIsIGk7Cj4gKyAqCj4gKyAqICAgICAvLyBGaXJzdCBxdWVyeSB0aGUgc2l6ZSBvZiB0aGUg YmxvYiB3ZSBuZWVkLCB0aGlzIG5lZWRzIHRvIGJlIGxhcmdlCj4gKyAqICAgICAvLyBlbm91Z2gg dG8gaG9sZCBvdXIgYXJyYXkgb2YgcmVnaW9ucy4gVGhlIGtlcm5lbCB3aWxsIGZpbGwgb3V0IHRo ZQo+ICsgKiAgICAgLy8gaXRlbS5sZW5ndGggZm9yIHVzLCB3aGljaCBpcyB0aGUgbnVtYmVyIG9m IGJ5dGVzIHdlIG5lZWQuCj4gKyAqICAgICBlcnIgPSBpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVf UVVFUlksICZxdWVyeSk7Cj4gKyAqICAgICBpZiAoZXJyKSAuLi4KPiArICoKPiArICogICAgIGlu Zm8gPSBjYWxsb2MoMSwgaXRlbS5sZW5ndGgpOwo+ICsgKiAgICAgLy8gTm93IHRoYXQgd2UgYWxs b2NhdGVkIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgYnl0ZXMsIHdlIGNhbGwgdGhlIGlvY3RsCj4g KyAqICAgICAvLyBhZ2FpbiwgdGhpcyB0aW1lIHdpdGggdGhlIGRhdGFfcHRyIHBvaW50aW5nIHRv IG91ciBuZXdseSBhbGxvY2F0ZWQKPiArICogICAgIC8vIGJsb2IsIHdoaWNoIHRoZSBrZXJuZWwg Y2FuIHRoZW4gcG9wdWxhdGUgd2l0aCB0aGUgYWxsIHRoZSByZWdpb24gaW5mby4KPiArICogICAg IGl0ZW0uZGF0YV9wdHIgPSAodWludHB0cl90KSZpbmZvLAo+ICsgKgo+ICsgKiAgICAgZXJyID0g aW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X1FVRVJZLCAmcXVlcnkpOwo+ICsgKiAgICAgaWYgKGVy cikgLi4uCj4gKyAqCj4gKyAqICAgICAvLyBXZSBjYW4gbm93IGFjY2VzcyBlYWNoIHJlZ2lvbiBp biB0aGUgYXJyYXkKPiArICogICAgIGZvciAoaSA9IDA7IGkgPCBpbmZvLT5udW1fcmVnaW9uczsg aSsrKSB7Cj4gKyAqICAgICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVnaW9uX2lu Zm8gbXIgPSBpbmZvLT5yZWdpb25zW2ldOwo+ICsgKiAgICAgICAgICAgICB1MTYgY2xhc3MgPSBt ci5yZWdpb24uY2xhc3M7Cj4gKyAqICAgICAgICAgICAgIHUxNiBpbnN0YW5jZSA9IG1yLnJlZ2lv bi5pbnN0YW5jZTsKPiArICoKPiArICogICAgICAgICAgICAgLi4uLgo+ICsgKiAgICAgfQo+ICsg Kgo+ICsgKiAgICAgZnJlZShpbmZvKTsKPiArICovCj4gK3N0cnVjdCBkcm1faTkxNV9xdWVyeV9t ZW1vcnlfcmVnaW9ucyB7Cj4gKyAgICAgICAvKiogQG51bV9yZWdpb25zOiBOdW1iZXIgb2Ygc3Vw cG9ydGVkIHJlZ2lvbnMgKi8KPiArICAgICAgIF9fdTMyIG51bV9yZWdpb25zOwo+ICsKPiArICAg ICAgIC8qKiBAcGFkOiBNQlogKi8KPiArICAgICAgIF9fdTMyIHBhZDsKPiArCj4gKyAgICAgICAv KiogQHJlZ2lvbnM6IEluZm8gYWJvdXQgZWFjaCBzdXBwb3J0ZWQgcmVnaW9uICovCj4gKyAgICAg ICBzdHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZvIHJlZ2lvbnNbXTsKPiArfTsKPiAr Cj4gKyNkZWZpbmUgRFJNX0k5MTVfR0VNX0NSRUFURV9FWFQgICAgICAgICAgICAgICAgMHhkZWFk YmVhZgo+ICsjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9DUkVBVEVfRVhUICBEUk1fSU9XUihE Uk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0NSRUFURV9FWFQsIHN0cnVjdCBkcm1faTkx NV9nZW1fY3JlYXRlX2V4dCkKCkhlcmUncyBhbm90aGVyIHRob3VnaHQ6ICBJbnN0ZWFkIG9mIGJ1 cm5pbmcgYSBuZXcgSU9DVEwgbnVtYmVyLCBzaG91bGQKd2UganVzdCByZS11c2UgRFJNX0k5MTVf R0VNX0NSRUFURT8gIFRoZSBkaWZmZXJlbnQgc3RydWN0dXJlIHNpemUKc2hvdWxkIGxldCB1cyB0 ZWxsIHRoZSB0d28gYXBhcnQuCgotLUphc29uCgoKPiArCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2NyZWF0ZV9leHQgLSBFeGlzdGluZyBnZW1fY3JlYXRlIGJlaGF2aW91ciwgd2l0 aCBhZGRlZAo+ICsgKiBleHRlbnNpb24gc3VwcG9ydCB1c2luZyBzdHJ1Y3QgaTkxNV91c2VyX2V4 dGVuc2lvbi4KPiArICoKPiArICogTm90ZSB0aGF0IGluIHRoZSBmdXR1cmUgd2Ugd2FudCB0byBo YXZlIG91ciBidWZmZXIgZmxhZ3MgaGVyZSwgYXQgbGVhc3QgZm9yCj4gKyAqIHRoZSBzdHVmZiB0 aGF0IGlzIGltbXV0YWJsZS4gUHJldmlvdXNseSB3ZSB3b3VsZCBoYXZlIHR3byBpb2N0bHMsIG9u ZSB0bwo+ICsgKiBjcmVhdGUgdGhlIG9iamVjdCB3aXRoIGdlbV9jcmVhdGUsIGFuZCBhbm90aGVy IHRvIGFwcGx5IHZhcmlvdXMgcGFyYW1ldGVycywKPiArICogaG93ZXZlciB0aGlzIGNyZWF0ZXMg c29tZSBhbWJpZ3VpdHkgZm9yIHRoZSBwYXJhbXMgd2hpY2ggYXJlIGNvbnNpZGVyZWQKPiArICog aW1tdXRhYmxlLiBBbHNvIGluIGdlbmVyYWwgd2UncmUgcGhhc2luZyBvdXQgdGhlIHZhcmlvdXMg U0VUL0dFVCBpb2N0bHMuCj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZV9leHQg ewo+ICsgICAgICAgLyoqCj4gKyAgICAgICAgKiBAc2l6ZTogUmVxdWVzdGVkIHNpemUgZm9yIHRo ZSBvYmplY3QuCj4gKyAgICAgICAgKgo+ICsgICAgICAgICogVGhlIChwYWdlLWFsaWduZWQpIGFs bG9jYXRlZCBzaXplIGZvciB0aGUgb2JqZWN0IHdpbGwgYmUgcmV0dXJuZWQuCj4gKyAgICAgICAg Kgo+ICsgICAgICAgICogTm90ZSB0aGF0IGZvciBzb21lIGRldmljZXMgd2UgaGF2ZSBtaWdodCBo YXZlIGZ1cnRoZXIgbWluaW11bQo+ICsgICAgICAgICogcGFnZS1zaXplIHJlc3RyaWN0aW9ucyhs YXJnZXIgdGhhbiA0SyksIGxpa2UgZm9yIGRldmljZSBsb2NhbC1tZW1vcnkuCj4gKyAgICAgICAg KiBIb3dldmVyIGluIGdlbmVyYWwgdGhlIGZpbmFsIHNpemUgaGVyZSBzaG91bGQgYWx3YXlzIHJl ZmxlY3QgYW55Cj4gKyAgICAgICAgKiByb3VuZGluZyB1cCwgaWYgZm9yIGV4YW1wbGUgdXNpbmcg dGhlIEk5MTVfR0VNX0NSRUFURV9FWFRfTUVNT1JZX1JFR0lPTlMKPiArICAgICAgICAqIGV4dGVu c2lvbiB0byBwbGFjZSB0aGUgb2JqZWN0IGluIGRldmljZSBsb2NhbC1tZW1vcnkuCj4gKyAgICAg ICAgKi8KPiArICAgICAgIF9fdTY0IHNpemU7Cj4gKyAgICAgICAvKioKPiArICAgICAgICAqIEBo YW5kbGU6IFJldHVybmVkIGhhbmRsZSBmb3IgdGhlIG9iamVjdC4KPiArICAgICAgICAqCj4gKyAg ICAgICAgKiBPYmplY3QgaGFuZGxlcyBhcmUgbm9uemVyby4KPiArICAgICAgICAqLwo+ICsgICAg ICAgX191MzIgaGFuZGxlOwo+ICsgICAgICAgLyoqIEBmbGFnczogTUJaICovCj4gKyAgICAgICBf X3UzMiBmbGFnczsKPiArICAgICAgIC8qKgo+ICsgICAgICAgICogQGV4dGVuc2lvbnM6IFRoZSBj aGFpbiBvZiBleHRlbnNpb25zIHRvIGFwcGx5IHRvIHRoaXMgb2JqZWN0Lgo+ICsgICAgICAgICoK PiArICAgICAgICAqIFRoaXMgd2lsbCBiZSB1c2VmdWwgaW4gdGhlIGZ1dHVyZSB3aGVuIHdlIG5l ZWQgdG8gc3VwcG9ydCBzZXZlcmFsCj4gKyAgICAgICAgKiBkaWZmZXJlbnQgZXh0ZW5zaW9ucywg YW5kIHdlIG5lZWQgdG8gYXBwbHkgbW9yZSB0aGFuIG9uZSB3aGVuCj4gKyAgICAgICAgKiBjcmVh dGluZyB0aGUgb2JqZWN0LiBTZWUgc3RydWN0IGk5MTVfdXNlcl9leHRlbnNpb24uCj4gKyAgICAg ICAgKgo+ICsgICAgICAgICogSWYgd2UgZG9uJ3Qgc3VwcGx5IGFueSBleHRlbnNpb25zIHRoZW4g d2UgZ2V0IHRoZSBzYW1lIG9sZCBnZW1fY3JlYXRlCj4gKyAgICAgICAgKiBiZWhhdmlvdXIuCj4g KyAgICAgICAgKgo+ICsgICAgICAgICogRm9yIEk5MTVfR0VNX0NSRUFURV9FWFRfTUVNT1JZX1JF R0lPTlMgdXNhZ2Ugc2VlCj4gKyAgICAgICAgKiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZV9l eHRfbWVtb3J5X3JlZ2lvbnMuCj4gKyAgICAgICAgKi8KPiArI2RlZmluZSBJOTE1X0dFTV9DUkVB VEVfRVhUX01FTU9SWV9SRUdJT05TIDAKPiArICAgICAgIF9fdTY0IGV4dGVuc2lvbnM7Cj4gK307 Cj4gKwo+ICsvKioKPiArICogc3RydWN0IGRybV9pOTE1X2dlbV9jcmVhdGVfZXh0X21lbW9yeV9y ZWdpb25zIC0gVGhlCj4gKyAqIEk5MTVfR0VNX0NSRUFURV9FWFRfTUVNT1JZX1JFR0lPTlMgZXh0 ZW5zaW9uLgo+ICsgKgo+ICsgKiBTZXQgdGhlIG9iamVjdCB3aXRoIHRoZSBkZXNpcmVkIHNldCBv ZiBwbGFjZW1lbnRzL3JlZ2lvbnMgaW4gcHJpb3JpdHkKPiArICogb3JkZXIuIEVhY2ggZW50cnkg bXVzdCBiZSB1bmlxdWUgYW5kIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlLgo+ICsgKgo+ICsgKiBU aGlzIGlzIHByb3ZpZGVkIGFzIGFuIGFycmF5IG9mIHN0cnVjdCBkcm1faTkxNV9nZW1fbWVtb3J5 X2NsYXNzX2luc3RhbmNlLCBvcgo+ICsgKiBhbiBlcXVpdmFsZW50IGxheW91dCBvZiBjbGFzczpp bnN0YW5jZSBwYWlyIGVuY29kaW5ncy4gU2VlIHN0cnVjdAo+ICsgKiBkcm1faTkxNV9xdWVyeV9t ZW1vcnlfcmVnaW9ucyBhbmQgRFJNX0k5MTVfUVVFUllfTUVNT1JZX1JFR0lPTlMgZm9yIGhvdyB0 bwo+ICsgKiBxdWVyeSB0aGUgc3VwcG9ydGVkIHJlZ2lvbnMgZm9yIGEgZGV2aWNlLgo+ICsgKgo+ ICsgKiBBcyBhbiBleGFtcGxlLCBvbiBkaXNjcmV0ZSBkZXZpY2VzLCBpZiB3ZSB3aXNoIHRvIHNl dCB0aGUgcGxhY2VtZW50IGFzCj4gKyAqIGRldmljZSBsb2NhbC1tZW1vcnkgd2UgY2FuIGRvIHNv bWV0aGluZyBsaWtlOgo+ICsgKgo+ICsgKiAuLiBjb2RlLWJsb2NrOjogQwo+ICsgKgo+ICsgKiAg ICAgc3RydWN0IGRybV9pOTE1X2dlbV9tZW1vcnlfY2xhc3NfaW5zdGFuY2UgcmVnaW9uX2xtZW0g PSB7Cj4gKyAqICAgICAgICAgICAgICAubWVtb3J5X2NsYXNzID0gSTkxNV9NRU1PUllfQ0xBU1Nf REVWSUNFLAo+ICsgKiAgICAgICAgICAgICAgLm1lbW9yeV9pbnN0YW5jZSA9IDAsCj4gKyAqICAg ICAgfTsKPiArICogICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZV9leHRfbWVtb3J5X3Jl Z2lvbnMgcmVnaW9ucyA9IHsKPiArICogICAgICAgICAgICAgIC5iYXNlID0geyAubmFtZSA9IEk5 MTVfR0VNX0NSRUFURV9FWFRfTUVNT1JZX1JFR0lPTlMgfSwKPiArICogICAgICAgICAgICAgIC5y ZWdpb25zID0gKHVpbnRwdHJfdCkmcmVnaW9uX2xtZW0sCj4gKyAqICAgICAgICAgICAgICAubnVt X3JlZ2lvbnMgPSAxLAo+ICsgKiAgICAgIH07Cj4gKyAqICAgICAgc3RydWN0IGRybV9pOTE1X2dl bV9jcmVhdGVfZXh0IGNyZWF0ZV9leHQgPSB7Cj4gKyAqICAgICAgICAgICAgICAuc2l6ZSA9IDE2 ICogUEFHRV9TSVpFLAo+ICsgKiAgICAgICAgICAgICAgLmV4dGVuc2lvbnMgPSAodWludHB0cl90 KSZyZWdpb25zLAo+ICsgKiAgICAgIH07Cj4gKyAqCj4gKyAqICAgICAgaW50IGVyciA9IGlvY3Rs KGZkLCBEUk1fSU9DVExfSTkxNV9HRU1fQ1JFQVRFX0VYVCwgJmNyZWF0ZV9leHQpOwo+ICsgKiAg ICAgIGlmIChlcnIpIC4uLgo+ICsgKgo+ICsgKiBBdCB3aGljaCBwb2ludCB3ZSBnZXQgdGhlIG9i amVjdCBoYW5kbGUgaW4gJmRybV9pOTE1X2dlbV9jcmVhdGVfZXh0LmhhbmRsZSwKPiArICogYWxv bmcgd2l0aCB0aGUgZmluYWwgb2JqZWN0IHNpemUgaW4gJmRybV9pOTE1X2dlbV9jcmVhdGVfZXh0 LnNpemUsIHdoaWNoCj4gKyAqIHNob3VsZCBhY2NvdW50IGZvciBhbnkgcm91bmRpbmcgdXAsIGlm IHJlcXVpcmVkLgo+ICsgKi8KPiArc3RydWN0IGRybV9pOTE1X2dlbV9jcmVhdGVfZXh0X21lbW9y eV9yZWdpb25zIHsKPiArICAgICAgIC8qKiBAYmFzZTogRXh0ZW5zaW9uIGxpbmsuIFNlZSBzdHJ1 Y3QgaTkxNV91c2VyX2V4dGVuc2lvbi4gKi8KPiArICAgICAgIHN0cnVjdCBpOTE1X3VzZXJfZXh0 ZW5zaW9uIGJhc2U7Cj4gKwo+ICsgICAgICAgLyoqIEBwYWQ6IE1CWiAqLwo+ICsgICAgICAgX191 MzIgcGFkOwo+ICsgICAgICAgLyoqIEBudW1fcmVnaW9uczogTnVtYmVyIG9mIGVsZW1lbnRzIGlu IHRoZSBAcmVnaW9ucyBhcnJheS4gKi8KPiArICAgICAgIF9fdTMyIG51bV9yZWdpb25zOwo+ICsg ICAgICAgLyoqCj4gKyAgICAgICAgKiBAcmVnaW9uczogVGhlIHJlZ2lvbnMvcGxhY2VtZW50cyBh cnJheS4KPiArICAgICAgICAqCj4gKyAgICAgICAgKiBBbiBhcnJheSBvZiBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZS4KPiArICAgICAgICAqLwo+ICsgICAgICAgX191 NjQgcmVnaW9uczsKPiArfTsKPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5 MTVfZ2VtX2xtZW0ucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfZ2VtX2xtZW0ucnN0 Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjQ2MmYxZWZkOTAw Mwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9yZmMvaTkxNV9nZW1f bG1lbS5yc3QKPiBAQCAtMCwwICsxLDEzMCBAQAo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09 Cj4gK0k5MTUgREcxL0xNRU0gUkZDIFNlY3Rpb24KPiArPT09PT09PT09PT09PT09PT09PT09PT09 PQo+ICsKPiArVXBzdHJlYW0gcGxhbgo+ICs9PT09PT09PT09PT09Cj4gK0ZvciB1cHN0cmVhbSB0 aGUgb3ZlcmFsbCBwbGFuIGZvciBsYW5kaW5nIGFsbCB0aGUgREcxIHN0dWZmIGFuZCB0dXJuaW5n IGl0IGZvcgo+ICtyZWFsLCB3aXRoIGFsbCB0aGUgdUFQSSBiaXRzIGlzOgo+ICsKPiArKiBNZXJn ZSBiYXNpYyBIVyBlbmFibGluZyBvZiBERzEoc3RpbGwgd2l0aG91dCBwY2lpZCkKPiArKiBNZXJn ZSB0aGUgdUFQSSBiaXRzIGJlaGluZCBzcGVjaWFsIENPTkZJR19CUk9LRU4ob3Igc28pIGZsYWcK PiArICAgICAgICAqIEF0IHRoaXMgcG9pbnQgd2UgY2FuIHN0aWxsIG1ha2UgY2hhbmdlcywgYnV0 IGltcG9ydGFudGx5IHRoaXMgbGV0cyB1cwo+ICsgICAgICAgICAgc3RhcnQgcnVubmluZyBJR1Rz IHdoaWNoIGNhbiB1dGlsaXplIGxvY2FsLW1lbW9yeSBpbiBDSQo+ICsqIENvbnZlcnQgb3ZlciB0 byBUVE0sIG1ha2Ugc3VyZSBpdCBhbGwga2VlcHMgd29ya2luZy4gU29tZSBvZiB0aGUgd29yayBp dGVtczoKPiArICAgICAgICAqIFRUTSBzaHJpbmtlciBmb3IgZGlzY3JldGUKPiArICAgICAgICAq IGRtYV9yZXN2X2xvY2tpdGVtIGZvciBmdWxsIGRtYV9yZXN2X2xvY2ssIGkuZSBub3QganVzdCB0 cnlsb2NrCj4gKyAgICAgICAgKiBVc2UgVFRNIENQVSBwYWdlZmF1bHQgaGFuZGxlcgo+ICsgICAg ICAgICogUm91dGUgc2htZW0gYmFja2VuZCBvdmVyIHRvIFRUTSBTWVNURU0gZm9yIGRpc2NyZXRl Cj4gKyAgICAgICAgKiBUVE0gcHVyZ2VhYmxlIG9iamVjdCBzdXBwb3J0Cj4gKyAgICAgICAgKiBN b3ZlIGk5MTUgYnVkZHkgYWxsb2NhdG9yIG92ZXIgdG8gVFRNCj4gKyAgICAgICAgKiBNTUFQIGlv Y3RsIG1vZGUoc2VlIGBJOTE1IE1NQVBgXykKPiArICAgICAgICAqIFNFVC9HRVQgaW9jdGwgY2Fj aGluZyhzZWUgYEk5MTUgU0VUL0dFVCBDQUNISU5HYF8pCj4gKyogQWRkIHBjaWlkIGZvciBERzEg YW5kIHR1cm4gb24gdUFQSSBmb3IgcmVhbAo+ICsKPiArTmV3IG9iamVjdCBwbGFjZW1lbnQgYW5k IHJlZ2lvbiBxdWVyeSB1QVBJCj4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQo+ICtTdGFydGluZyBmcm9tIERHMSB3ZSBuZWVkIHRvIGdpdmUgdXNlcnNwYWNlIHRo ZSBhYmlsaXR5IHRvIGFsbG9jYXRlIGJ1ZmZlcnMgZnJvbQo+ICtkZXZpY2UgbG9jYWwtbWVtb3J5 LiBDdXJyZW50bHkgdGhlIGRyaXZlciBzdXBwb3J0cyBnZW1fY3JlYXRlLCB3aGljaCBjYW4gcGxh Y2UKPiArYnVmZmVycyBpbiBzeXN0ZW0gbWVtb3J5IHZpYSBzaG1lbSwgYW5kIHRoZSB1c3VhbCBh c3NvcnRtZW50IG9mIG90aGVyCj4gK2ludGVyZmFjZXMsIGxpa2UgZHVtYiBidWZmZXJzIGFuZCB1 c2VycHRyLgo+ICsKPiArVG8gc3VwcG9ydCB0aGlzIG5ldyBjYXBhYmlsaXR5LCB3aGlsZSBhbHNv IHByb3ZpZGluZyBhIHVBUEkgd2hpY2ggd2lsbCB3b3JrCj4gK2JleW9uZCBqdXN0IERHMSwgd2Ug cHJvcG9zZSB0byBvZmZlciB0aHJlZSBuZXcgYml0cyBvZiB1QVBJOgo+ICsKPiArRFJNX0k5MTVf UVVFUllfTUVNT1JZX1JFR0lPTlMKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAr TmV3IHF1ZXJ5IElEIHdoaWNoIGFsbG93cyB1c2Vyc3BhY2UgdG8gZGlzY292ZXIgdGhlIGxpc3Qg b2Ygc3VwcG9ydGVkIG1lbW9yeQo+ICtyZWdpb25zKGxpa2Ugc3lzdGVtLW1lbW9yeSBhbmQgbG9j YWwtbWVtb3J5KSBmb3IgYSBnaXZlbiBkZXZpY2UuIFdlIGlkZW50aWZ5Cj4gK2VhY2ggcmVnaW9u IHdpdGggYSBjbGFzcyBhbmQgaW5zdGFuY2UgcGFpciwgd2hpY2ggc2hvdWxkIGJlIHVuaXF1ZS4g VGhlIGNsYXNzCj4gK2hlcmUgd291bGQgYmUgREVWSUNFIG9yIFNZU1RFTSwgYW5kIHRoZSBpbnN0 YW5jZSB3b3VsZCBiZSB6ZXJvLCBvbiBwbGF0Zm9ybXMKPiArbGlrZSBERzEuCj4gKwo+ICtTaWRl IG5vdGU6IFRoZSBjbGFzcy9pbnN0YW5jZSBkZXNpZ24gaXMgYm9ycm93ZWQgZnJvbSBvdXIgZXhp c3RpbmcgZW5naW5lIHVBUEksCj4gK3doZXJlIHdlIGRlc2NyaWJlIGV2ZXJ5IHBoeXNpY2FsIGVu Z2luZSBpbiB0ZXJtcyBvZiBpdHMgY2xhc3MsIGFuZCB0aGUKPiArcGFydGljdWxhciBpbnN0YW5j ZSwgc2luY2Ugd2UgY2FuIGhhdmUgbW9yZSB0aGFuIG9uZSBwZXIgY2xhc3MuCj4gKwo+ICtJbiB0 aGUgZnV0dXJlIHdlIGFsc28gd2FudCB0byBleHBvc2UgbW9yZSBpbmZvcm1hdGlvbiB3aGljaCBj YW4gZnVydGhlcgo+ICtkZXNjcmliZSB0aGUgY2FwYWJpbGl0aWVzIG9mIGEgcmVnaW9uLgo+ICsK PiArLi4ga2VybmVsLWRvYzo6IERvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X2dlbV9sbWVtLmgK PiArICAgICAgICA6ZnVuY3Rpb25zOiBkcm1faTkxNV9nZW1fbWVtb3J5X2NsYXNzIGRybV9pOTE1 X2dlbV9tZW1vcnlfY2xhc3NfaW5zdGFuY2UgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZvIGRy bV9pOTE1X3F1ZXJ5X21lbW9yeV9yZWdpb25zCj4gKwo+ICtHRU1fQ1JFQVRFX0VYVAo+ICstLS0t LS0tLS0tLS0tLQo+ICtOZXcgaW9jdGwgd2hpY2ggaXMgYmFzaWNhbGx5IGp1c3QgZ2VtX2NyZWF0 ZSBidXQgbm93IGFsbG93cyB1c2Vyc3BhY2UgdG8KPiArcHJvdmlkZSBhIGNoYWluIG9mIHBvc3Np YmxlIGV4dGVuc2lvbnMuIE5vdGUgdGhhdCBpZiB3ZSBkb24ndCBwcm92aWRlIGFueQo+ICtleHRl bnNpb25zIHRoZW4gd2UgZ2V0IHRoZSBleGFjdCBzYW1lIGJlaGF2aW91ciBhcyBnZW1fY3JlYXRl Lgo+ICsKPiArU2lkZSBub3RlOiBXZSBhbHNvIG5lZWQgdG8gc3VwcG9ydCBQWFBbMV0gaW4gdGhl IG5lYXIgZnV0dXJlLCB3aGljaCBpcyBhbHNvCj4gK2FwcGxpY2FibGUgdG8gaW50ZWdyYXRlZCBw bGF0Zm9ybXMsIGFuZCBhZGRzIGl0cyBvd24gZ2VtX2NyZWF0ZV9leHQgZXh0ZW5zaW9uLAo+ICt3 aGljaCBiYXNpY2FsbHkgbGV0cyB1c2Vyc3BhY2UgbWFyayBhIGJ1ZmZlciBhcyAicHJvdGVjdGVk Ii4KPiArCj4gKy4uIGtlcm5lbC1kb2M6OiBEb2N1bWVudGF0aW9uL2dwdS9yZmMvaTkxNV9nZW1f bG1lbS5oCj4gKyAgICAgICAgOmZ1bmN0aW9uczogZHJtX2k5MTVfZ2VtX2NyZWF0ZV9leHQKPiAr Cj4gK0k5MTVfR0VNX0NSRUFURV9FWFRfTUVNT1JZX1JFR0lPTlMKPiArLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+ICtJbXBsZW1lbnRlZCBhcyBhbiBleHRlbnNpb24gZm9yIGdl bV9jcmVhdGVfZXh0LCB3ZSB3b3VsZCBub3cgYWxsb3cgdXNlcnNwYWNlIHRvCj4gK29wdGlvbmFs bHkgcHJvdmlkZSBhbiBpbW11dGFibGUgbGlzdCBvZiBwcmVmZXJyZWQgcGxhY2VtZW50cyBhdCBj cmVhdGlvbiB0aW1lLAo+ICtpbiBwcmlvcml0eSBvcmRlciwgZm9yIGEgZ2l2ZW4gYnVmZmVyIG9i amVjdC4gIEZvciB0aGUgcGxhY2VtZW50cyB3ZSBleHBlY3QKPiArdGhlbSBlYWNoIHRvIHVzZSB0 aGUgY2xhc3MvaW5zdGFuY2UgZW5jb2RpbmcsIGFzIHBlciB0aGUgb3V0cHV0IG9mIHRoZSByZWdp b25zCj4gK3F1ZXJ5LiBIYXZpbmcgdGhlIGxpc3QgaW4gcHJpb3JpdHkgb3JkZXIgd2lsbCBiZSB1 c2VmdWwgaW4gdGhlIGZ1dHVyZSB3aGVuCj4gK3BsYWNpbmcgYW4gb2JqZWN0LCBzYXkgZHVyaW5n IGV2aWN0aW9uLgo+ICsKPiArLi4ga2VybmVsLWRvYzo6IERvY3VtZW50YXRpb24vZ3B1L3JmYy9p OTE1X2dlbV9sbWVtLmgKPiArICAgICAgICA6ZnVuY3Rpb25zOiBkcm1faTkxNV9nZW1fY3JlYXRl X2V4dF9tZW1vcnlfcmVnaW9ucwo+ICsKPiArT25lIGZhaXIgY3JpdGljaXNtIGhlcmUgaXMgdGhh dCB0aGlzIHNlZW1zIGEgbGl0dGxlIG92ZXItZW5naW5lZXJlZFsyXS4gSWYgd2UKPiAranVzdCBj b25zaWRlciBERzEgdGhlbiB5ZXMsIGEgc2ltcGxlIGdlbV9jcmVhdGUuZmxhZ3Mgb3Igc29tZXRo aW5nIGlzIHRvdGFsbHkKPiArYWxsIHRoYXQncyBuZWVkZWQgdG8gdGVsbCB0aGUga2VybmVsIHRv IGFsbG9jYXRlIHRoZSBidWZmZXIgaW4gbG9jYWwtbWVtb3J5IG9yCj4gK3doYXRldmVyLiBIb3dl dmVyIGxvb2tpbmcgdG8gdGhlIGZ1dHVyZSB3ZSBuZWVkIHVBUEkgd2hpY2ggY2FuIGFsc28gc3Vw cG9ydAo+ICt1cGNvbWluZyBYZSBIUCBtdWx0aS10aWxlIGFyY2hpdGVjdHVyZSBpbiBhIHNhbmUg d2F5LCB3aGVyZSB0aGVyZSBjYW4gYmUKPiArbXVsdGlwbGUgbG9jYWwtbWVtb3J5IGluc3RhbmNl cyBmb3IgYSBnaXZlbiBkZXZpY2UsIGFuZCBzbyB1c2luZyBib3RoIGNsYXNzIGFuZAo+ICtpbnN0 YW5jZSBpbiBvdXIgdUFQSSB0byBkZXNjcmliZSByZWdpb25zIGlzIGRlc2lyYWJsZSwgYWx0aG91 Z2ggc3BlY2lmaWNhbGx5Cj4gK2ZvciBERzEgaXQncyB1bmludGVyZXN0aW5nLCBzaW5jZSB3ZSBv bmx5IGhhdmUgYSBzaW5nbGUgbG9jYWwtbWVtb3J5IGluc3RhbmNlLgo+ICsKPiArRXhpc3Rpbmcg dUFQSSBpc3N1ZXMKPiArPT09PT09PT09PT09PT09PT09PT0KPiArU29tZSBwb3RlbnRpYWwgaXNz dWVzIHdlIHN0aWxsIG5lZWQgdG8gcmVzb2x2ZS4KPiArCj4gK0k5MTUgTU1BUAo+ICstLS0tLS0t LS0KPiArSW4gaTkxNSB0aGVyZSBhcmUgbXVsdGlwbGUgd2F5cyB0byBNTUFQIEdFTSBvYmplY3Qs IGluY2x1ZGluZyBtYXBwaW5nIHRoZSBzYW1lCj4gK29iamVjdCB1c2luZyBkaWZmZXJlbnQgbWFw cGluZyB0eXBlcyhXQyB2cyBXQiksIGkuZSBtdWx0aXBsZSBhY3RpdmUgbW1hcHMgcGVyCj4gK29i amVjdC4gVFRNIGV4cGVjdHMgb25lIE1NQVAgYXQgbW9zdCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRo ZSBvYmplY3QuIElmIGl0Cj4gK3R1cm5zIG91dCB0aGF0IHdlIGhhdmUgdG8gYmFja3BlZGFsIGhl cmUsIHRoZXJlIG1pZ2h0IGJlIHNvbWUgcG90ZW50aWFsCj4gK3VzZXJzcGFjZSBmYWxsb3V0Lgo+ ICsKPiArSTkxNSBTRVQvR0VUIENBQ0hJTkcKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArSW4g aTkxNSB3ZSBoYXZlIHNldC9nZXRfY2FjaGluZyBpb2N0bC4gVFRNIGRvZXNuJ3QgbGV0IHVzIHRv IGNoYW5nZSB0aGlzLCBidXQKPiArREcxIGRvZXNuJ3Qgc3VwcG9ydCBub24tc25vb3BlZCBwY2ll IHRyYW5zYWN0aW9ucywgc28gd2UgY2FuIGp1c3QgYWx3YXlzCj4gK2FsbG9jYXRlIGFzIFdCIGZv ciBzbWVtLW9ubHkgYnVmZmVycy4gIElmL3doZW4gb3VyIGh3IGdhaW5zIHN1cHBvcnQgZm9yCj4g K25vbi1zbm9vcGVkIHBjaWUgdHJhbnNhY3Rpb25zIHRoZW4gd2UgbXVzdCBmaXggdGhpcyBtb2Rl IGF0IGFsbG9jYXRpb24gdGltZSBhcwo+ICthIG5ldyBHRU0gZXh0ZW5zaW9uLgo+ICsKPiArVGhp cyBpcyByZWxhdGVkIHRvIHRoZSBtbWFwIHByb2JsZW0sIGJlY2F1c2UgaW4gZ2VuZXJhbCAobWVh bmluZywgd2hlbiB3ZSdyZQo+ICtub3QgcnVubmluZyBvbiBpbnRlbCBjcHVzKSB0aGUgY3B1IG1t YXAgbXVzdCBub3QsIGV2ZXIsIGJlIGluY29uc2lzdGVudCB3aXRoCj4gK2FsbG9jYXRpb24gbW9k ZS4KPiArCj4gK1Bvc3NpYmxlIGlkZWEgaXMgdG8gbGV0IHRoZSBrZXJuZWwgcGlja3MgdGhlIG1t YXAgbW9kZSBmb3IgdXNlcnNwYWNlIGZyb20gdGhlCj4gK2ZvbGxvd2luZyB0YWJsZToKPiArCj4g K3NtZW0tb25seTogV0IuIFVzZXJzcGFjZSBkb2VzIG5vdCBuZWVkIHRvIGNhbGwgY2xmbHVzaC4K PiArCj4gK3NtZW0rbG1lbTogV2UgYWxsb2NhdGUgdW5jYWNoZWQgbWVtb3J5LCBhbmQgZ2l2ZSB1 c2Vyc3BhY2UgYSBXQyBtYXBwaW5nCj4gK2ZvciB3aGVuIHRoZSBidWZmZXIgaXMgaW4gc21lbSwg YW5kIFdDIHdoZW4gaXQncyBpbiBsbWVtLiBHUFUgZG9lcyBzbm9vcGVkCj4gK2FjY2Vzcywgd2hp Y2ggaXMgYSBiaXQgaW5lZmZpY2llbnQuCj4gKwo+ICtsbWVtIG9ubHk6IGFsd2F5cyBXQwo+ICsK PiArVGhpcyBtZWFucyBvbiBkaXNjcmV0ZSB5b3Ugb25seSBnZXQgYSBzaW5nbGUgbW1hcCBtb2Rl LCBhbGwgb3RoZXJzIG11c3QgYmUKPiArcmVqZWN0ZWQuIFRoYXQncyBwcm9iYWJseSBnb2luZyB0 byBiZSBhIG5ldyBkZWZhdWx0IG1vZGUgb3Igc29tZXRoaW5nIGxpa2UKPiArdGhhdC4KPiArCj4g K0xpbmtzCj4gKz09PT09Cj4gK1sxXSBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcv c2VyaWVzLzg2Nzk4Lwo+ICsKPiArWzJdIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9t ZXNhL21lc2EvLS9tZXJnZV9yZXF1ZXN0cy81NTk5I25vdGVfNTUzNzkxCj4gZGlmZiAtLWdpdCBh L0RvY3VtZW50YXRpb24vZ3B1L3JmYy9pbmRleC5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS9yZmMv aW5kZXgucnN0Cj4gaW5kZXggYTg2MjFmN2RhYjhiLi4wNTY3MDQ0MmNhMWIgMTAwNjQ0Cj4gLS0t IGEvRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2luZGV4LnJzdAo+ICsrKyBiL0RvY3VtZW50YXRpb24v Z3B1L3JmYy9pbmRleC5yc3QKPiBAQCAtMTUsMyArMTUsNyBAQCBob3N0IHN1Y2ggZG9jdW1lbnRh dGlvbjoKPgo+ICAqIE9uY2UgdGhlIGNvZGUgaGFzIGxhbmRlZCBtb3ZlIGFsbCB0aGUgZG9jdW1l bnRhdGlvbiB0byB0aGUgcmlnaHQgcGxhY2VzIGluCj4gICAgdGhlIG1haW4gY29yZSwgaGVscGVy IG9yIGRyaXZlciBzZWN0aW9ucy4KPiArCj4gKy4uIHRvY3RyZWU6Ogo+ICsKPiArICAgIGk5MTVf Z2VtX2xtZW0ucnN0Cj4gLS0KPiAyLjI2LjMKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK