From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [Intel-gfx] [PATCH v9 1/2] drm: content-type property for HDMI connector Date: Mon, 7 May 2018 16:05:37 +0200 Message-ID: <20180507140537.GL12521@phenom.ffwll.local> References: <20180507131641.3885-1-stanislav.lisovskiy@intel.com> <20180507131641.3885-2-stanislav.lisovskiy@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x231.google.com (mail-wm0-x231.google.com [IPv6:2a00:1450:400c:c09::231]) by gabe.freedesktop.org (Postfix) with ESMTPS id 02A9F89449 for ; Mon, 7 May 2018 14:05:42 +0000 (UTC) Received: by mail-wm0-x231.google.com with SMTP id j5-v6so15656332wme.5 for ; Mon, 07 May 2018 07:05:41 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180507131641.3885-2-stanislav.lisovskiy@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: StanLis Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBNYXkgMDcsIDIwMTggYXQgMDQ6MTY6NDBQTSArMDMwMCwgU3RhbkxpcyB3cm90ZToK PiBGcm9tOiBTdGFuaXNsYXYgTGlzb3Zza2l5IDxzdGFuaXNsYXYubGlzb3Zza2l5QGludGVsLmNv bT4KPiAKPiBBZGRlZCBjb250ZW50X3R5cGUgcHJvcGVydHkgdG8gZHJtX2Nvbm5lY3Rvcl9zdGF0 ZQo+IGluIG9yZGVyIHRvIHByb3Blcmx5IGhhbmRsZSBleHRlcm5hbCBIRE1JIFRWIGNvbnRlbnQt dHlwZSBzZXR0aW5nLgo+IAo+IHYyOgo+ICAqIE1vdmVkIGhlbHBlciBmdW5jdGlvbiB3aGljaCBh dHRhY2hlcyBjb250ZW50IHR5cGUgcHJvcGVydHkKPiAgICB0byB0aGUgZHJtIGNvcmUsIGFzIHdh cyBzdWdnZXN0ZWQuCj4gICAgUmVtb3ZlZCByZWR1bmRhbnQgY29ubmVjdG9yIHN0YXRlIGluaXRp YWxpemF0aW9uLgo+IAo+IHYzOgo+ICAqIFJlbW92ZWQgY2FwcyBpbiBkcm1fY29udGVudF90eXBl X2VudW1fbGlzdC4KPiAgICBBZnRlciBzb21lIGRpc2N1c3Npb24gaXQgdHVybmVkIG91dCB0aGF0 IEhETUkgU3BlYyAxLjQKPiAgICB3YXMgd3JvbmdseSBhc3N1bWluZyB0aGF0IElUIENvbnRlbnQo aXRjKSBiaXQgZG9lc24ndCBhZmZlY3QKPiAgICBDb250ZW50IHR5cGUgc3RhdGVzLCBob3dldmVy IGl0YyBiaXQgbmVlZHMgdG8gYmUgbWFudXB1bGF0ZWQKPiAgICBhcyB3ZWxsLiBJbiBvcmRlciB0 byBub3QgZXhwb3NlIGFkZGl0aW9uYWwgcHJvcGVydHkgZm9yIGl0YywKPiAgICBmb3Igc2FrZSBv ZiBzaW1wbGljaXR5IGl0IHdhcyBkZWNpZGVkIHRvIGJpbmQgdGhvc2UgdG9nZXRoZXIKPiAgICBp biBzYW1lICJjb250ZW50IHR5cGUiIHByb3BlcnR5Lgo+IAo+IHY0Ogo+ICAqIEFkZGVkIGl0X2Nv bnRlbnQgY2hlY2tpbmcgaW4gaW50ZWxfZGlnaXRhbF9jb25uZWN0b3JfYXRvbWljX2NoZWNrLgo+ ICAgIEZpeGVkIGRvY3VtZW50YXRpb24gZm9yIG5ldyBjb250ZW50IHR5cGUgZW51bS4KPiAKPiB2 NToKPiAgKiBNb3ZlZCBwYXRjaCByZXZpc2lvbidzIGRlc2NyaXB0aW9uIHRvIGNvbW1pdCBtZXNz YWdlcy4KPiAKPiB2NjoKPiAgKiBNaW5vciBuYW1pbmcgZml4IGZvciB0aGUgY29udGVudCB0eXBl IGVudW1lcmF0aW9uIHN0cmluZy4KPiAKPiB2NzoKPiAgKiBGaXggcGFyYW1ldGVyIG5hbWUgZm9y IGRvY3VtZW50YXRpb24gYW5kIHBhcmFtZXRlciBhbGlnbm1lbnQKPiAgICBpbiBvcmRlciBub3Qg dG8gZ2V0IHdhcm5pbmcuIEFkZGVkIENvbnRlbnQgVHlwZSBkZXNjcmlwdGlvbiB0bwo+ICAgIG5l dyBIRE1JIGNvbm5lY3RvciBwcm9wZXJ0aWVzIHNlY3Rpb24uCj4gCj4gdjg6Cj4gICogVGhyb3du IGF3YXkgdW5uZWVkZWQgbnVtYmVycyBmcm9tIEhETUkgY29udGVudC10eXBlIHByb3BlcnR5Cj4g ICAgZGVzY3JpcHRpb24uIFN3aXRjaCB0byBzdHJpbmdzIGRlc3JpcHRpb24gaW5zdGVhZCBvZiBw bGFpbgo+ICAgIGRlZmluaXRpb25zLgo+IAo+IHY5Ogo+ICAqIE1vdmVkIGF3YXkgaGRtaSBzcGVj aWZpYyBjb250ZW50LXR5cGUgZW51bSBmcm9tCj4gICAgZHJtX2Nvbm5lY3Rvcl9zdGF0ZS4gQ29u dGVudCB0eXBlIHByb3BlcnR5IHNob3VsZCBwcm9iYWJseSBub3QKPiAgICBiZSBib3VuZCB0byBh bnkgc3BlY2lmaWMgY29ubmVjdG9yIGludGVyZmFjZSBpbgo+ICAgIGRybV9jb25uZWN0b3Jfc3Rh dGUuCj4gICAgU2FtZSBwcm9iYWJseSBzaG91bGQgYmUgZG9uZSB0byBoZG1pX3BpY3R1cmVfYXNw ZWN0X3JhdGlvbiBlbnVtCj4gICAgd2hpY2ggaXMgYWxzbyBjb250YWluZWQgaW4gZHJtX2Nvbm5l Y3Rvcl9zdGF0ZS4gQWRkZWQgc3BlY2lhbAo+ICAgIGhlbHBlciBmdW5jdGlvbiB0byBnZXQgZGVy aXZlIGhkbWkgc3BlY2lmaWMgcmVsZXZhbnQgaW5mb2ZyYW1lCj4gICAgZmllbGRzLgo+IAo+IFNp Z25lZC1vZmYtYnk6IFN0YW5pc2xhdiBMaXNvdnNraXkgPHN0YW5pc2xhdi5saXNvdnNraXlAaW50 ZWwuY29tPgoKPiAtLS0KPiAgRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy5yc3QgICAgICAgIHwg IDYgKysrCj4gIERvY3VtZW50YXRpb24vZ3B1L2ttcy1wcm9wZXJ0aWVzLmNzdiB8ICAxICsKPiAg ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgIHwgIDQgKysKPiAgZHJpdmVycy9n cHUvZHJtL2RybV9jb25uZWN0b3IuYyAgICAgIHwgNzQgKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyAgICAgICAgICAgfCA1NSArKysrKysr KysrKysrKysrKysrKysKPiAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAgICAgIHwg MTIgKysrKysKPiAgaW5jbHVkZS9kcm0vZHJtX2VkaWQuaCAgICAgICAgICAgICAgIHwgIDYgKysr Cj4gIGluY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oICAgICAgICB8ICA1ICsrCj4gIGluY2x1 ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCAgICAgICAgICB8ICA3ICsrKwo+ICA5IGZpbGVzIGNoYW5n ZWQsIDE3MCBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1 L2RybS1rbXMucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy5yc3QKPiBpbmRleCAxZGZm ZDFhYzRjZDQuLmUyMzNjMjYyNmJkMCAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9k cm0ta21zLnJzdAo+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0Cj4gQEAgLTUx Nyw2ICs1MTcsMTIgQEAgU3RhbmRhcmQgQ29ubmVjdG9yIFByb3BlcnRpZXMKPiAgLi4ga2VybmVs LWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiAgICAgOmRvYzogc3RhbmRh cmQgY29ubmVjdG9yIHByb3BlcnRpZXMKPiAgCj4gK0hETUkgU3BlY2lmaWMgQ29ubmVjdG9yIFBy b3BlcnRpZXMKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArCj4gKy4uIGtlcm5l bC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gKyAgIDpkb2M6IEhETUkg Y29ubmVjdG9yIHByb3BlcnRpZXMKPiArCj4gIFBsYW5lIENvbXBvc2l0aW9uIFByb3BlcnRpZXMK PiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAKPiBkaWZmIC0tZ2l0IGEvRG9jdW1l bnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2IGIvRG9jdW1lbnRhdGlvbi9ncHUva21zLXBy b3BlcnRpZXMuY3N2Cj4gaW5kZXggMDdlZDIyZWEzYmQ2Li5iZmRlMDRlZGRkMTQgMTAwNjQ0Cj4g LS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2Cj4gKysrIGIvRG9jdW1l bnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2Cj4gQEAgLTE3LDYgKzE3LDcgQEAgT3duZXIg TW9kdWxlL0RyaXZlcnMsR3JvdXAsUHJvcGVydHkgTmFtZSxUeXBlLFByb3BlcnR5IFZhbHVlcyxP YmplY3QgYXR0YWNoZWQsRGUKPiAgLFZpcnR1YWwgR1BVLOKAnHN1Z2dlc3RlZCBY4oCdLFJBTkdF LCJNaW49MCwgTWF4PTB4ZmZmZmZmZmYiLENvbm5lY3Rvcixwcm9wZXJ0eSB0byBzdWdnZXN0IGFu IFggb2Zmc2V0IGZvciBhIGNvbm5lY3Rvcgo+ICAsLOKAnHN1Z2dlc3RlZCBZ4oCdLFJBTkdFLCJN aW49MCwgTWF4PTB4ZmZmZmZmZmYiLENvbm5lY3Rvcixwcm9wZXJ0eSB0byBzdWdnZXN0IGFuIFkg b2Zmc2V0IGZvciBhIGNvbm5lY3Rvcgo+ICAsT3B0aW9uYWwsIiIiYXNwZWN0IHJhdGlvIiIiLEVO VU0sInsgIiJOb25lIiIsICIiNDozIiIsICIiMTY6OSIiIH0iLENvbm5lY3RvcixUREIKPiArLE9w dGlvbmFsLCIiImNvbnRlbnQgdHlwZSIiIixFTlVNLCJ7ICIiTm8gRGF0YSIiLCAiIkdyYXBoaWNz IiIsICIiUGhvdG8iIiwgIiJDaW5lbWEiIiwgIiJHYW1lIiIgfSIsQ29ubmVjdG9yLFRCRAo+ICBp OTE1LEdlbmVyaWMsIiIiQnJvYWRjYXN0IFJHQiIiIixFTlVNLCJ7ICIiQXV0b21hdGljIiIsICIi RnVsbCIiLCAiIkxpbWl0ZWQgMTY6MjM1IiIgfSIsQ29ubmVjdG9yLCJXaGVuIHRoaXMgcHJvcGVy dHkgaXMgc2V0IHRvIExpbWl0ZWQgMTY6MjM1IGFuZCBDVE0gaXMgc2V0LCB0aGUgaGFyZHdhcmUg d2lsbCBiZSBwcm9ncmFtbWVkIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgbXVsdGlwbGljYXRpb24g b2YgQ1RNIGJ5IHRoZSBsaW1pdGVkIHJhbmdlIG1hdHJpeCB0byBlbnN1cmUgdGhlIHBpeGVscyBu b3JtYWx5IGluIHRoZSByYW5nZSAwLi4xLjAgYXJlIHJlbWFwcGVkIHRvIHRoZSByYW5nZSAxNi8y NTUuLjIzNS8yNTUuIgo+ICAsLOKAnGF1ZGlv4oCdLEVOVU0sInsgIiJmb3JjZS1kdmkiIiwgIiJv ZmYiIiwgIiJhdXRvIiIsICIib24iIiB9IixDb25uZWN0b3IsVEJECj4gICxTRFZPLVRWLOKAnG1v ZGXigJ0sRU5VTSwieyAiIk5UU0NfTSIiLCAiIk5UU0NfSiIiLCAiIk5UU0NfNDQzIiIsICIiUEFM X0IiIiB9IGV0Yy4iLENvbm5lY3RvcixUQkQKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiBpbmRleCAzZDlh ZTA1N2E2Y2QuLjZjMWUxZTc3NDUxNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IEBAIC0xMjcw LDYgKzEyNzAsOCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9wcm9wZXJ0 eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCQlzdGF0ZS0+bGlua19zdGF0 dXMgPSB2YWw7Cj4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+YXNwZWN0X3JhdGlv X3Byb3BlcnR5KSB7Cj4gIAkJc3RhdGUtPnBpY3R1cmVfYXNwZWN0X3JhdGlvID0gdmFsOwo+ICsJ fSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPmNvbnRlbnRfdHlwZV9wcm9wZXJ0eSkgewo+ ICsJCXN0YXRlLT5jb250ZW50X3R5cGUgPSB2YWw7Cj4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09 IGNvbm5lY3Rvci0+c2NhbGluZ19tb2RlX3Byb3BlcnR5KSB7Cj4gIAkJc3RhdGUtPnNjYWxpbmdf bW9kZSA9IHZhbDsKPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT5jb250ZW50 X3Byb3RlY3Rpb25fcHJvcGVydHkpIHsKPiBAQCAtMTM1NSw2ICsxMzU3LDggQEAgZHJtX2F0b21p Y19jb25uZWN0b3JfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is Cj4gIAkJKnZhbCA9IHN0YXRlLT5saW5rX3N0YXR1czsKPiAgCX0gZWxzZSBpZiAocHJvcGVydHkg PT0gY29uZmlnLT5hc3BlY3RfcmF0aW9fcHJvcGVydHkpIHsKPiAgCQkqdmFsID0gc3RhdGUtPnBp Y3R1cmVfYXNwZWN0X3JhdGlvOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPmNv bnRlbnRfdHlwZV9wcm9wZXJ0eSkgewo+ICsJCSp2YWwgPSBzdGF0ZS0+Y29udGVudF90eXBlOwo+ ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPnNjYWxpbmdfbW9kZV9wcm9wZXJ0 eSkgewo+ICAJCSp2YWwgPSBzdGF0ZS0+c2NhbGluZ19tb2RlOwo+ICAJfSBlbHNlIGlmIChwcm9w ZXJ0eSA9PSBjb25uZWN0b3ItPmNvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0eSkgewo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9jb25uZWN0b3IuYwo+IGluZGV4IGIzY2RlODk3Y2Q4MC4uZmU2MzM5NWYxNTlkIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gQEAgLTcyMCw2ICs3MjAsMTQgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgZHJtX2FzcGVjdF9yYXRpb19lbnVtX2xpc3Rb XSA9IHsKPiAgCXsgRFJNX01PREVfUElDVFVSRV9BU1BFQ1RfMTZfOSwgIjE2OjkiIH0sCj4gIH07 Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCBkcm1fY29udGVu dF90eXBlX2VudW1fbGlzdFtdID0gewo+ICsJeyBEUk1fTU9ERV9DT05URU5UX1RZUEVfTk9fREFU QSwgIk5vIERhdGEiIH0sCj4gKwl7IERSTV9NT0RFX0NPTlRFTlRfVFlQRV9HUkFQSElDUywgIkdy YXBoaWNzIiB9LAo+ICsJeyBEUk1fTU9ERV9DT05URU5UX1RZUEVfUEhPVE8sICJQaG90byIgfSwK PiArCXsgRFJNX01PREVfQ09OVEVOVF9UWVBFX0NJTkVNQSwgIkNpbmVtYSIgfSwKPiArCXsgRFJN X01PREVfQ09OVEVOVF9UWVBFX0dBTUUsICJHYW1lIiB9LAo+ICt9Owo+ICsKPiAgc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgZHJtX3BhbmVsX29yaWVudGF0aW9uX2VudW1f bGlzdFtdID0gewo+ICAJeyBEUk1fTU9ERV9QQU5FTF9PUklFTlRBVElPTl9OT1JNQUwsCSJOb3Jt YWwiCX0sCj4gIAl7IERSTV9NT0RFX1BBTkVMX09SSUVOVEFUSU9OX0JPVFRPTV9VUCwJIlVwc2lk ZSBEb3duIgl9LAo+IEBAIC05OTYsNiArMTAwNCw0NSBAQCBpbnQgZHJtX21vZGVfY3JlYXRlX2R2 aV9pX3Byb3BlcnRpZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgfQo+ICBFWFBPUlRfU1lN Qk9MKGRybV9tb2RlX2NyZWF0ZV9kdmlfaV9wcm9wZXJ0aWVzKTsKPiAgCj4gKwo+ICsvKioKPiAr ICogRE9DOiBIRE1JIGNvbm5lY3RvciBwcm9wZXJ0aWVzCj4gKyAqCj4gKyAqIGNvbnRlbnQgdHlw ZSAoSERNSSBzcGVjaWZpYyk6Cj4gKyAqCUluZGljYXRlcyBjb250ZW50IHR5cGUgc2V0dGluZyB0 byBiZSB1c2VkIGluIEhETUkgaW5mb2ZyYW1lcyB0byBpbmRpY2F0ZQo+ICsgKgljb250ZW50IHR5 cGUgZm9yIHRoZSBleHRlcm5hbCBkZXZpY2UsIHNvIHRoYXQgaXQgYWRqdXN0cyBpdCdzIGRpc3Bs YXkKPiArICoJc2V0dGluZ3MgYWNjb3JkaW5nbHkuCj4gKyAqCj4gKyAqCVRoZSB2YWx1ZSBvZiB0 aGlzIHByb3BlcnR5IGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKPiArICoKPiArICoJTm8g RGF0YToKPiArICoJCUNvbnRlbnQgdHlwZSBpcyB1bmtub3duCj4gKyAqCUdyYXBoaWNzOgo+ICsg KgkJQ29udGVudCB0eXBlIGlzIGdyYXBoaWNzCj4gKyAqCVBob3RvOgo+ICsgKgkJQ29udGVudCB0 eXBlIGlzIHBob3RvCj4gKyAqCUNpbmVtYToKPiArICoJCUNvbnRlbnQgdHlwZSBpcyBjaW5lbWEK PiArICoJR2FtZToKPiArICoJCUNvbnRlbnQgdHlwZSBpcyBnYW1lCgpMaW5rcyB0byB0aGUgZnVu Y3Rpb24gdGhhdCBzZXQgdXAvdXNlIHRoZSBwcm9wZXJ0eSB3b3VsZCBiZSBnb29kIGhlcmUuCkku ZS4KCgkiRHJpdmVycyBjYW4gc2V0IHVwIHRoaXMgcHJvcGVydHkgYnkgY2FsbGluZwoJZHJtX2Nv bm5lY3Rvcl9hdHRhY2hfY29udGVudF90eXBlX3Byb3BlcnR5KCkuIERlY29kaW5nIHRvCglpbmZv ZnJhbWUgdmFsdWVzIGlzIGRvbmUgdGhyb3VnaAoJZHJtX2hkbWlfZ2V0X2NvbnRlbnRfdHlwZV9m cm9tX3Byb3BlcnR5KCkgYW5kCglkcm1faGRtaV9nZXRfaXRjX2JpdF9mcm9tX3Byb3BlcnR5KCku IgoKQXNpZGU6IEEgc2ltcGxlIGhlbHBlciB0aGF0IGNvbXB1dGVzIHRoZSBjb3JyZWN0IGluZm9m cmFtZXMgZnJvbSB0aGUKZHJtX2Nvbm5lY3Rvcl9zdGF0ZSBhbmQgZHJtX2Rpc3BsYXlfaW5mbywg d2l0aG91dCBmb3JjaW5nIGRyaXZlcnMgdG8gY2FsbAphIGdhemlsbGlvbiBpbmRpdmlkdWFsIGhl bHBlciBmdW5jdGlvbnMgd291bGQgYmUgcmVhbCBuaWNlLiBCdXQgdGhhdCdzIGZvcgpzb21lb25l IGVsc2UgSSB0aGluayAtIGFsbCB0aGUgdmVyYm9zaXR5IGhlcmUgc2ltcGx5IGFubm95cyBtZSBh IGJpdC4KCldpdGggdGhlIGFib3ZlIGtlcm5lbGRvYyBwb2xpc2g6CgpBY2tlZC1ieTogRGFuaWVs IFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KLURhbmllbAo+ICsgKi8KPiArCj4gKy8q Kgo+ICsgKiBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb250ZW50X3R5cGVfcHJvcGVydHkgLSBhdHRh Y2ggY29udGVudC10eXBlIHByb3BlcnR5Cj4gKyAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciB0byBh dHRhY2ggY29udGVudCB0eXBlIHByb3BlcnR5IG9uLgo+ICsgKgo+ICsgKiBDYWxsZWQgYnkgYSBk cml2ZXIgdGhlIGZpcnN0IHRpbWUgYSBIRE1JIGNvbm5lY3RvciBpcyBtYWRlLgo+ICsgKi8KPiAr aW50IGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbnRlbnRfdHlwZV9wcm9wZXJ0eShzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlpZiAoIWRybV9tb2RlX2NyZWF0ZV9jb250 ZW50X3R5cGVfcHJvcGVydHkoY29ubmVjdG9yLT5kZXYpKQo+ICsJCWRybV9vYmplY3RfYXR0YWNo X3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCj4gKwkJCQkJICAgY29ubmVjdG9yLT5kZXYtPm1v ZGVfY29uZmlnLmNvbnRlbnRfdHlwZV9wcm9wZXJ0eSwKPiArCQkJCQkgICBEUk1fTU9ERV9DT05U RU5UX1RZUEVfTk9fREFUQSk7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRy bV9jb25uZWN0b3JfYXR0YWNoX2NvbnRlbnRfdHlwZV9wcm9wZXJ0eSk7Cj4gKwo+ICAvKioKPiAg ICogZHJtX2NyZWF0ZV90dl9wcm9wZXJ0aWVzIC0gY3JlYXRlIFRWIHNwZWNpZmljIGNvbm5lY3Rv ciBwcm9wZXJ0aWVzCj4gICAqIEBkZXY6IERSTSBkZXZpY2UKPiBAQCAtMTI2MCw2ICsxMzA3LDMz IEBAIGludCBkcm1fbW9kZV9jcmVhdGVfYXNwZWN0X3JhdGlvX3Byb3BlcnR5KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9jcmVhdGVfYXNwZWN0 X3JhdGlvX3Byb3BlcnR5KTsKPiAgCj4gKy8qKgo+ICsgKiBkcm1fbW9kZV9jcmVhdGVfY29udGVu dF90eXBlX3Byb3BlcnR5IC0gY3JlYXRlIGNvbnRlbnQgdHlwZSBwcm9wZXJ0eQo+ICsgKiBAZGV2 OiBEUk0gZGV2aWNlCj4gKyAqCj4gKyAqIENhbGxlZCBieSBhIGRyaXZlciB0aGUgZmlyc3QgdGlt ZSBpdCdzIG5lZWRlZCwgbXVzdCBiZSBhdHRhY2hlZCB0byBkZXNpcmVkCj4gKyAqIGNvbm5lY3Rv cnMuCj4gKyAqCj4gKyAqIFJldHVybnM6Cj4gKyAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUg ZXJybm8gb24gZmFpbHVyZS4KPiArICovCj4gK2ludCBkcm1fbW9kZV9jcmVhdGVfY29udGVudF90 eXBlX3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3sKPiArCWlmIChkZXYtPm1v ZGVfY29uZmlnLmNvbnRlbnRfdHlwZV9wcm9wZXJ0eSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlk ZXYtPm1vZGVfY29uZmlnLmNvbnRlbnRfdHlwZV9wcm9wZXJ0eSA9Cj4gKwkJZHJtX3Byb3BlcnR5 X2NyZWF0ZV9lbnVtKGRldiwgMCwgImNvbnRlbnQgdHlwZSIsCj4gKwkJCQkJIGRybV9jb250ZW50 X3R5cGVfZW51bV9saXN0LAo+ICsJCQkJCSBBUlJBWV9TSVpFKGRybV9jb250ZW50X3R5cGVfZW51 bV9saXN0KSk7Cj4gKwo+ICsJaWYgKGRldi0+bW9kZV9jb25maWcuY29udGVudF90eXBlX3Byb3Bl cnR5ID09IE5VTEwpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30K PiArRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9jcmVhdGVfY29udGVudF90eXBlX3Byb3BlcnR5KTsK CkRvIHdlIHJlYWxseSBuZWVkIHRvIGV4cG9ydCB0aGlzPyBEcml2ZXJzIHNob3VsZCBvbmx5IGNh bGwKZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfY29udGVudF90eXBlX3Byb3BlcnR5KCkgSSB0aGluayAu Li4KCj4gKwo+ICAvKioKPiAgICogZHJtX21vZGVfY3JlYXRlX3N1Z2dlc3RlZF9vZmZzZXRfcHJv cGVydGllcyAtIGNyZWF0ZSBzdWdnZXN0cyBvZmZzZXQgcHJvcGVydGllcwo+ICAgKiBAZGV2OiBE Uk0gZGV2aWNlCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPiBpbmRleCAxMzQwNjlmMzY0ODIuLjllY2RhMGIyYTRk OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZWRpZC5jCj4gQEAgLTQ4NjgsNiArNDg2OCwxNCBAQCBkcm1faGRtaV9h dmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUg KmZyYW1lLAo+ICAKPiAgCWZyYW1lLT5waWN0dXJlX2FzcGVjdCA9IEhETUlfUElDVFVSRV9BU1BF Q1RfTk9ORTsKPiAgCj4gKwkvKgo+ICsJICogQXMgc29tZSBkcml2ZXJzIGRvbid0IHN1cHBvcnQg YXRvbWljLCB3ZSBjYW4ndCB1c2UgY29ubmVjdG9yIHN0YXRlLgo+ICsJICogU28ganVzdCBpbml0 aWFsaXplIHRoZSBmcmFtZSB3aXRoIGRlZmF1bHQgdmFsdWVzLCBqdXN0IHRoZSBzYW1lIHdheQo+ ICsJICogYXMgaXQncyBkb25lIHdpdGggb3RoZXIgcHJvcGVydGllcyBoZXJlLgo+ICsJICovCj4g KwlmcmFtZS0+Y29udGVudF90eXBlID0gSERNSV9DT05URU5UX1RZUEVfR1JBUEhJQ1M7Cj4gKwlm cmFtZS0+aXRjID0gMDsKPiArCj4gIAkvKgo+ICAJICogUG9wdWxhdGUgcGljdHVyZSBhc3BlY3Qg cmF0aW8gZnJvbSBlaXRoZXIKPiAgCSAqIHVzZXIgaW5wdXQgKGlmIHNwZWNpZmllZCkgb3IgZnJv bSB0aGUgQ0VBIG1vZGUgbGlzdC4KPiBAQCAtNDg4Niw2ICs0ODk0LDUzIEBAIGRybV9oZG1pX2F2 aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoc3RydWN0IGhkbWlfYXZpX2luZm9mcmFtZSAq ZnJhbWUsCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21f ZGlzcGxheV9tb2RlKTsKPiAgCj4gKy8qKgo+ICsgKiBkcm1faGRtaV9nZXRfaXRjX2JpdF9mcm9t X3Byb3BlcnR5KCkgLSBnZXQgdGhlIEhETUkgSVQgY29udGVudCBiaXQKPiArICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSBjb250ZW50IHR5cGUgcHJvcGVydHku Cj4gKyAqIGNvbnRlbnRfdHlwZTogQ29udGVudCB0eXBlIERSTSBwcm9wZXJ0eSB2YWx1ZQo+ICsg Kgo+ICsgKi8KPiArYm9vbAo+ICtkcm1faGRtaV9nZXRfaXRjX2JpdF9mcm9tX3Byb3BlcnR5KHVu c2lnbmVkIGludCBjb250ZW50X3R5cGUpCj4gK3sKPiArCS8qIFdoZW5ldmVyIHNvbWV0aGluZyBl bHNlIHRoYW4gIk5vIERhdGEiLCBJVCBDb250ZW50IGJpdCBtdXN0IGJlIHNldCAqLwo+ICsJcmV0 dXJuIGNvbnRlbnRfdHlwZSAhPSBEUk1fTU9ERV9DT05URU5UX1RZUEVfTk9fREFUQSA/IHRydWUg OiBmYWxzZTsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9oZG1pX2dldF9pdGNfYml0X2Zyb21f cHJvcGVydHkpOwo+ICsKPiArLyoqCj4gKyAqIGRybV9oZG1pX2dldF9jb250ZW50X3R5cGVfZnJv bV9wcm9wZXJ0eSgpIC0gZ2V0IHRoZSBIRE1JIGNvbnRlbnQgdHlwZSBiaXRzCj4gKyAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSBjb250ZW50IHR5cGUg cHJvcGVydHkuCj4gKyAqIGNvbnRlbnRfdHlwZTogQ29udGVudCB0eXBlIERSTSBwcm9wZXJ0eSB2 YWx1ZQo+ICsgKgo+ICsgKi8KPiArZW51bSBoZG1pX2NvbnRlbnRfdHlwZQo+ICtkcm1faGRtaV9n ZXRfY29udGVudF90eXBlX2Zyb21fcHJvcGVydHkodW5zaWduZWQgaW50IGNvbnRlbnRfdHlwZSkK PiArewo+ICsJZW51bSBoZG1pX2NvbnRlbnRfdHlwZSByZXQ7Cj4gKwo+ICsJc3dpdGNoIChjb250 ZW50X3R5cGUpIHsKPiArCWNhc2UgRFJNX01PREVfQ09OVEVOVF9UWVBFX0dSQVBISUNTOgo+ICsJ CXJldCA9IEhETUlfQ09OVEVOVF9UWVBFX0dSQVBISUNTOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBE Uk1fTU9ERV9DT05URU5UX1RZUEVfQ0lORU1BOgo+ICsJCXJldCA9IEhETUlfQ09OVEVOVF9UWVBF X0NJTkVNQTsKPiArCQlicmVhazsKPiArCWNhc2UgRFJNX01PREVfQ09OVEVOVF9UWVBFX0dBTUU6 Cj4gKwkJcmV0ID0gSERNSV9DT05URU5UX1RZUEVfR0FNRTsKPiArCQlicmVhazsKPiArCWNhc2Ug RFJNX01PREVfQ09OVEVOVF9UWVBFX1BIT1RPOgo+ICsJCXJldCA9IEhETUlfQ09OVEVOVF9UWVBF X1BIT1RPOwo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQkvKiBHcmFwaGljcyBpcyB0aGUg ZGVmYXVsdCgwKSAqLwo+ICsJCXJldCA9IEhETUlfQ09OVEVOVF9UWVBFX0dSQVBISUNTOwo+ICsJ fQo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9oZG1pX2dldF9jb250 ZW50X3R5cGVfZnJvbV9wcm9wZXJ0eSk7Cj4gKwo+ICsKPiAgLyoqCj4gICAqIGRybV9oZG1pX2F2 aV9pbmZvZnJhbWVfcXVhbnRfcmFuZ2UoKSAtIGZpbGwgdGhlIEhETUkgQVZJIGluZm9mcmFtZQo+ ICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWFudGl6YXRpb24g cmFuZ2UgaW5mb3JtYXRpb24KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rv ci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gaW5kZXggNjc1Y2MzZjhjZjg1Li4x NzhmYTNmM2Y1ZjcgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4g KysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gQEAgLTQxOCw2ICs0MTgsMTYgQEAg c3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgewo+ICAJICovCj4gIAllbnVtIGhkbWlfcGljdHVy ZV9hc3BlY3QgcGljdHVyZV9hc3BlY3RfcmF0aW87Cj4gIAo+ICsKPiArCS8qKgo+ICsJICogQGNv bnRlbnRfdHlwZTogQ29ubmVjdG9yIHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlCj4gKwkgKiBIRE1J IGluZm9mcmFtZSBjb250ZW50IHR5cGUgc2V0dGluZy4KPiArCSAqIFRoZSAlRFJNX01PREVfQ09O VEVOVF9UWVBFX1wqIHZhbHVlcyBtdWNoCj4gKwkgKiBtYXRjaCB0aGUgdmFsdWVzLgo+ICsJICov Cj4gKwl1bnNpZ25lZCBpbnQgY29udGVudF90eXBlOwo+ICsKPiArCj4gIAkvKioKPiAgCSAqIEBz Y2FsaW5nX21vZGU6IENvbm5lY3RvciBwcm9wZXJ0eSB0byBjb250cm9sIHRoZQo+ICAJICogdXBz Y2FsaW5nLCBtb3N0bHkgdXNlZCBmb3IgYnVpbHQtaW4gcGFuZWxzLgo+IEBAIC0xMDg5LDExICsx MDk5LDEzIEBAIGludCBkcm1fbW9kZV9jcmVhdGVfdHZfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICAJCQkJICB1bnNpZ25lZCBpbnQgbnVtX21vZGVzLAo+ICAJCQkJICBjb25z dCBjaGFyICogY29uc3QgbW9kZXNbXSk7Cj4gIGludCBkcm1fbW9kZV9jcmVhdGVfc2NhbGluZ19t b2RlX3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICtpbnQgZHJtX2Nvbm5lY3Rv cl9hdHRhY2hfY29udGVudF90eXBlX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpkZXYp Owo+ICBpbnQgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfc2NhbGluZ19tb2RlX3Byb3BlcnR5KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCQkJICAgICAgIHUzMiBzY2FsaW5nX21v ZGVfbWFzayk7Cj4gIGludCBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb250ZW50X3Byb3RlY3Rpb25f cHJvcGVydHkoCj4gIAkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gIGludCBk cm1fbW9kZV9jcmVhdGVfYXNwZWN0X3JhdGlvX3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpOwo+ICtpbnQgZHJtX21vZGVfY3JlYXRlX2NvbnRlbnRfdHlwZV9wcm9wZXJ0eShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKPiAgaW50IGRybV9tb2RlX2NyZWF0ZV9zdWdnZXN0ZWRfb2Zmc2V0 X3Byb3BlcnRpZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIAo+ICBpbnQgZHJtX21vZGVf Y29ubmVjdG9yX3NldF9wYXRoX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9lZGlkLmggYi9pbmNsdWRlL2RybS9k cm1fZWRpZC5oCj4gaW5kZXggOGQ4OWE5YzM3NDhkLi40ZTI2NGM0ZDhhOWIgMTAwNjQ0Cj4gLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9lZGlkLmgK PiBAQCAtMzUwLDYgKzM1MCwxMiBAQCBkcm1fbG9hZF9lZGlkX2Zpcm13YXJlKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IpCj4gIH0KPiAgI2VuZGlmCj4gIAo+ICtib29sCj4gK2RybV9o ZG1pX2dldF9pdGNfYml0X2Zyb21fcHJvcGVydHkodW5zaWduZWQgaW50IGNvbnRlbnRfdHlwZSk7 Cj4gKwo+ICtlbnVtIGhkbWlfY29udGVudF90eXBlCj4gK2RybV9oZG1pX2dldF9jb250ZW50X3R5 cGVfZnJvbV9wcm9wZXJ0eSh1bnNpZ25lZCBpbnQgY29udGVudF90eXBlKTsKPiArCj4gIGludAo+ ICBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKHN0cnVjdCBoZG1pX2F2 aV9pbmZvZnJhbWUgKmZyYW1lLAo+ICAJCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSwKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmggYi9p bmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAo+IGluZGV4IDMzYjNhOTZkNjZkMC4uZmI0NTgz OTE3OWRkIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4gKysr IGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPiBAQCAtNzI2LDYgKzcyNiwxMSBAQCBz dHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsKPiAgCSAqIEhETUkgaW5mb2ZyYW1lIGFzcGVjdCByYXRp byBzZXR0aW5nLgo+ICAJICovCj4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICphc3BlY3RfcmF0aW9f cHJvcGVydHk7Cj4gKwkvKioKPiArCSAqIEBjb250ZW50X3R5cGVfcHJvcGVydHk6IE9wdGlvbmFs IGNvbm5lY3RvciBwcm9wZXJ0eSB0byBjb250cm9sIHRoZQo+ICsJICogSERNSSBpbmZvZnJhbWUg Y29udGVudCB0eXBlIHNldHRpbmcuCj4gKwkgKi8KPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNv bnRlbnRfdHlwZV9wcm9wZXJ0eTsKPiAgCS8qKgo+ICAJICogQGRlZ2FtbWFfbHV0X3Byb3BlcnR5 OiBPcHRpb25hbCBDUlRDIHByb3BlcnR5IHRvIHNldCB0aGUgTFVUIHVzZWQgdG8KPiAgCSAqIGNv bnZlcnQgdGhlIGZyYW1lYnVmZmVyJ3MgY29sb3JzIHRvIGxpbmVhciBnYW1tYS4KPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1f bW9kZS5oCj4gaW5kZXggNTBiY2Y0MjE0ZmY5Li5jYWQ5ZTA5ZmZhZWUgMTAwNjQ0Cj4gLS0tIGEv aW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm1f bW9kZS5oCj4gQEAgLTk0LDYgKzk0LDEzIEBAIGV4dGVybiAiQyIgewo+ICAjZGVmaW5lIERSTV9N T0RFX1BJQ1RVUkVfQVNQRUNUXzRfMwkJMQo+ICAjZGVmaW5lIERSTV9NT0RFX1BJQ1RVUkVfQVNQ RUNUXzE2XzkJCTIKPiAgCj4gKy8qIENvbnRlbnQgdHlwZSBvcHRpb25zICovCj4gKyNkZWZpbmUg RFJNX01PREVfQ09OVEVOVF9UWVBFX05PX0RBVEEJCTAKPiArI2RlZmluZSBEUk1fTU9ERV9DT05U RU5UX1RZUEVfR1JBUEhJQ1MJCTEKPiArI2RlZmluZSBEUk1fTU9ERV9DT05URU5UX1RZUEVfUEhP VE8JCTIKPiArI2RlZmluZSBEUk1fTU9ERV9DT05URU5UX1RZUEVfQ0lORU1BCQkzCj4gKyNkZWZp bmUgRFJNX01PREVfQ09OVEVOVF9UWVBFX0dBTUUJCTQKPiArCj4gIC8qIEFzcGVjdCByYXRpbyBm bGFnIGJpdG1hc2sgKDQgYml0cyAyMjoxOSkgKi8KPiAgI2RlZmluZSBEUk1fTU9ERV9GTEFHX1BJ Q19BUl9NQVNLCQkoMHgwRjw8MTkpCj4gICNkZWZpbmUgIERSTV9NT0RFX0ZMQUdfUElDX0FSX05P TkUgXAo+IC0tIAo+IDIuMTcuMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIs IEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=