From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v6 08/28] drm/dsc: Define Display Stream Compression PPS infoframe Date: Thu, 1 Nov 2018 18:42:17 +0200 Message-ID: <20181101164217.GF9144@intel.com> References: <20181024222840.25683-1-manasi.d.navare@intel.com> <20181024222840.25683-9-manasi.d.navare@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181024222840.25683-9-manasi.d.navare@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Manasi Navare Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Harry Wentland List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBPY3QgMjQsIDIwMTggYXQgMDM6Mjg6MjBQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBUaGlzIHBhdGNoIGRlZmluZXMgYSBuZXcgaGVhZGVyIGZpbGUgZm9yIGFsbCB0aGUg RFNDIDEuMiBzdHJ1Y3R1cmVzCj4gYW5kIGNyZWF0ZXMgYSBzdHJ1Y3R1cmUgZm9yIFBQUyBpbmZv ZnJhbWUgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIHNlbmQKPiBwaWN0dXJlIHBhcmFtZXRlciBzZXQg c2Vjb25kYXJ5IGRhdGEgcGFja2V0IGZvciBkaXNwbGF5IHN0cmVhbSBjb21wcmVzc2lvbi4KPiBB bGwgdGhlIFBQUyBpbmZvZnJhbWUgc3ludGF4IGVsZW1lbnRzIGFyZSB0YWtlbiBmcm9tIERTQyAx LjIgc3BlY2lmaWNhdGlvbgo+IGZyb20gVkVTQS4KPiAKPiB2MzoKPiAqIEFkZCB0aGUgU1BEWCBz aG9ydGhhbmQgKENocmlzIFdpbHNvbikKPiB2MjoKPiAqIERvIG5vdCB1c2UgYml0ZmllbGRzIGlu IHRoZSBzdHJ1Y3QgKEphbmkgTmlrdWxhKQo+IAo+IENjOiBHYXVyYXYgSyBTaW5naCA8Z2F1cmF2 Lmsuc2luZ2hAaW50ZWwuY29tPgo+IENjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IFZp bGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBBbnVzaGEg U3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gQ2M6IEhhcnJ5IFdlbnRsYW5k IDxoYXJyeS53ZW50bGFuZEBhbWQuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUg PG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gUmV2aWV3ZWQtYnk6IEhhcnJ5IFdlbnRsYW5k IDxoYXJyeS53ZW50bGFuZEBhbWQuY29tPgo+IC0tLQo+ICBpbmNsdWRlL2RybS9kcm1fZHNjLmgg fCAzNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDEgZmls ZSBjaGFuZ2VkLCAzNDcgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVk ZS9kcm0vZHJtX2RzYy5oCj4gCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kc2MuaCBi L2luY2x1ZGUvZHJtL2RybV9kc2MuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAw MDAwMDAwMDAwLi4xZDhhMDM5ODNiOTAKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvaW5jbHVkZS9k cm0vZHJtX2RzYy5oCj4gQEAgLTAsMCArMSwzNDcgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IE1JVAo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTggSW50ZWwgQ29ycC4KPiArICoKPiAr ICogQXV0aG9yczoKPiArICogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNv bT4KPiArICovCj4gKwo+ICsjaWZuZGVmIERSTV9EU0NfSF8KPiArI2RlZmluZSBEUk1fRFNDX0hf Cj4gKwo+ICsjaW5jbHVkZSA8ZHJtL2RybV9kcF9oZWxwZXIuaD4KPiArCj4gKy8qIFZFU0EgRGlz cGxheSBTdHJlYW0gQ29tcHJlc3Npb24gRFNDIDEuMiBjb25zdGFudHMgKi8KPiArI2RlZmluZSBE U0NfTlVNX0JVRl9SQU5HRVMJMTUKCkRSTV9EU0NfLi4uICBwZXJoYXNwPwoKPiArCj4gKy8qKgo+ ICsgKiBzdHJ1Y3QgcGljdHVyZV9wYXJhbWV0ZXJfc2V0IC0gUmVwcmVzZW50cyAxMjggYnl0ZXMg b2YgUGljdHVyZSBQYXJhbWV0ZXIgU2V0Cj4gKyAqCj4gKyAqIFRoZSBWRVNBIERTQyBzdGFuZGFy ZCBkZWZpbmVzIHBpY3R1cmUgcGFyYW1ldGVyIHNldCAoUFBTKSB3aGljaCBkaXNwbGF5Cj4gKyAq IHN0cmVhbSBjb21wcmVzc2lvbiBlbmNvZGVycyBtdXN0IGNvbW11bmljYXRlIHRvIGRlY29kZXJz Lgo+ICsgKiBUaGUgUFBTIGlzIGVuY2Fwc3VsYXRlZCBpbiAxMjggYnl0ZXMgKFBQUyAwIHRocm91 Z2ggUFBTIDEyNykuIFRoZSBmaWVsZHMgaW4KPiArICogdGhpcyBzdHJ1Y3R1cmUgYXJlIGFzIHBl ciBUYWJsZSA0LjEgaW4gVmVzYSBEU0Mgc3BlY2lmaWNhdGlvbiB2MS4xL3YxLjIuCj4gKyAqIFRo ZSBQUFMgZmllbGRzIHRoYXQgc3BhbiBvdmVyIG1vcmUgdGhhbiBhIGJ5dGUgc2hvdWxkIGJlIHN0 b3JlZCBpbiBCaWcgRW5kaWFuCj4gKyAqIGZvcm1hdC4KPiArICovCj4gK3N0cnVjdCBwaWN0dXJl X3BhcmFtZXRlcl9zZXQgewoKTmVlZHMgYSBuYW1lc3BhY2UgdG9vLiBQcm9iYWJseSBiZXN0IG1h a2UgdGhpcyBzdHJ1Y3QgcGFja2VkLiBBCkJVSUxEX0JVR19PTigpIHNvbWV3aGVyZSB0byB2ZXJp ZnkgdGhlIHNpemUgbWlnaHQgYWxzbyBiZSBuaWNlLgoKPiArCS8qKgo+ICsJICogQGRzY192ZXJz aW9uOgo+ICsJICogUFBTMFszOjBdIC0gZHNjX3ZlcnNpb25fbWlub3I6IENvbnRhaW5zIE1pbm9y IHZlcnNpb24gb2YgRFNDCj4gKwkgKiBQUFMwWzc6NF0gLSBkc2NfdmVyc2lvbl9tYWpvcjogQ29u dGFpbnMgbWFqb3IgdmVyc2lvbiBvZiBEU0MKPiArCSAqLwo+ICsJdTggZHNjX3ZlcnNpb247Cj4g KwkvKioKPiArCSAqIEBwcHNfaWRlbnRpZmllcjoKPiArCSAqIFBQUzFbNzowXSAtIEFwcGxpY2F0 aW9uIHNwZWNpZmljIGlkZW50aWZpZXIgdGhhdCBjYW4gYmUKPiArCSAqIHVzZWQgdG8gZGlmZmVy ZW50aWF0ZSBiZXR3ZWVuIGRpZmZlcmVudCBQUFMgdGFibGVzLgo+ICsJICovCj4gKwl1OCBwcHNf aWRlbnRpZmllcjsKPiArCS8qKgo+ICsJICogQHBwc19yZXNlcnZlZDoKPiArCSAqIFBQUzJbNzow XS0gUkVTRVJWRUQgQnl0ZQo+ICsJICovCj4gKwl1OCBwcHNfcmVzZXJ2ZWQ7Cj4gKwkvKioKPiAr CSAqIEBwcHNfMzoKPiArCSAqIFBQUzNbMzowXSAtIGxpbmVidWZfZGVwdGg6IENvbnRhaW5zIGxp bmVidWZmZXIgYml0IGRlcHRoIHVzZWQgdG8KPiArCSAqIGdlbmVyYXRlIHRoZSBiaXRzdHJlYW0u ICgweDAgLSAxNiBiaXRzIGZvciBEU0MgMS4yLCAweDggLSA4IGJpdHMsCj4gKwkgKiAweEEgLSAx MCBiaXRzLCAweEIgLSAxMSBiaXRzLCAweEMgLSAxMiBiaXRzLCAweEQgLSAxMyBiaXRzLAo+ICsJ ICogMHhFIC0gMTQgYml0cyBmb3IgRFNDMS4yLCAweEYgLSAxNCBiaXRzIGZvciBEU0MgMS4yLgo+ ICsJICogUFBTM1s3OjRdIC0gYml0c19wZXJfY29tcG9uZW50OiBCaXRzIHBlciBjb21wb25lbnQg Zm9yIHRoZSBvcmlnaW5hbAo+ICsJICogcGl4ZWxzIG9mIHRoZSBlbmNvZGVkIHBpY3R1cmUuCj4g KwkgKiAweDAgPSAxNmJwYyAoYWxsb3dlZCBvbmx5IHdoZW4gZHNjX3ZlcnNpb25fbWlub3IgPSAw eDIpCj4gKwkgKiAweDggPSA4YnBjLCAweEEgPSAxMGJwYywgMHhDID0gMTJicGMsIDB4RSA9IDE0 YnBjIChhbHNvCj4gKwkgKiBhbGxvd2VkIG9ubHkgd2hlbiBkc2NfbWlub3JfdmVyc2lvbiA9IDB4 MikKPiArCSAqLwo+ICsJdTggcHBzXzM7Cj4gKwkvKioKPiArCSAqIEBwcHNfNDoKPiArCSAqIFBQ UzRbMTowXSAtVGhlc2UgYXJlIHRoZSBtb3N0IHNpZ25pZmljYW50IDIgYml0cyBvZgo+ICsJICog Y29tcHJlc3NlZCBCUFAgYml0c19wZXJfcGl4ZWxbOTowXSBzeW50YXggZWxlbWVudC4KPiArCSAq IFBQUzRbMl0gLSB2YnJfZW5hYmxlOiAwID0gVkJSIGRpc2FibGVkLCAxID0gVkJSIGVuYWJsZWQK PiArCSAqIFBQUzRbM10gLSBzaW1wbGVfNDIyOiBJbmRpY2F0ZXMgaWYgZGVjb2RlciBkcm9wcyBz YW1wbGVzIHRvCj4gKwkgKiByZWNvbnN0cnVjdCB0aGUgNDoyOjIgcGljdHVyZS4KPiArCSAqIFBQ UzRbNF0gLSBDb252ZXJ0X3JnYjogSW5kaWNhdGVzIGlmIERTQyBjb2xvciBzcGFjZSBjb252ZXJz aW9uIGlzCj4gKwkgKiBhY3RpdmUuCj4gKwkgKiBQUFM0WzVdIC0gYmxvYmtfcHJlZF9lbmFibGU6 IEluZGljYXRlcyBpZiBCUCBpcyB1c2VkIHRvIGNvZGUgYW55Cj4gKwkgKiBncm91cHMgaW4gcGlj dHVyZQo+ICsJICogUFBTNFs3OjZdIC0gUmVzZXZlZCBiaXRzCj4gKwkgKi8KPiArCXU4IHBwc180 Owo+ICsJLyoqCj4gKwkgKiBAYml0c19wZXJfcGl4ZWxfbG93Ogo+ICsJICogUFBTNVs3OjBdIC0g VGhpcyBpbmRpY2F0ZXMgdGhlIGxvd2VyIHNpZ25pZmljYW50IDggYml0cyBvZgo+ICsJICogdGhl IGNvbXByZXNzZWQgQlBQIGJpdHNfcGVyX3BpeGVsWzk6MF0gZWxlbWVudC4KPiArCSAqLwo+ICsJ dTggYml0c19wZXJfcGl4ZWxfbG93Owo+ICsJLyoqCj4gKwkgKiBAcGljX2hlaWdodDoKPiArCSAq IFBQUzZbNzowXSwgUFBTN1s3OjBdIC1waWNfaGVpZ2h0OiBTcGVjaWZpZXMgdGhlIG51bWJlciBv ZiBwaXhlbCByb3dzCj4gKwkgKiB3aXRoaW4gdGhlIHJhc3Rlci4KPiArCSAqLwo+ICsJX19iZTE2 IHBpY19oZWlnaHQ7Cj4gKwkvKioKPiArCSAqIEBwaWNfd2lkdGg6Cj4gKwkgKiBQUFM4Wzc6MF0s IFBQUzlbNzowXSAtIHBpY193aWR0aDogTnVtYmVyIG9mIHBpeGVsIGNvbHVtbnMgd2l0aGluCj4g KwkgKiB0aGUgcmFzdGVyLgo+ICsJICovCj4gKwlfX2JlMTYgcGljX3dpZHRoOwo+ICsJLyoqCj4g KwkgKiBAc2xpY2VfaGVpZ2h0Ogo+ICsJICogUFBTMTBbNzowXSwgUFBTMTFbNzowXSAtIFNsaWNl IGhlaWdodCBpbiB1bml0cyBvZiBwaXhlbHMuCj4gKwkgKi8KPiArCV9fYmUxNiBzbGljZV9oZWln aHQ7Cj4gKwkvKioKPiArCSAqIEBzbGljZV93aWR0aDoKPiArCSAqIFBQUzEyWzc6MF0sIFBQUzEz Wzc6MF0gLSBTbGljZSB3aWR0aCBpbiB0ZXJtcyBvZiBwaXhlbHMuCj4gKwkgKi8KPiArCV9fYmUx NiBzbGljZV93aWR0aDsKPiArCS8qKgo+ICsJICogQGNodW5rX3NpemU6Cj4gKwkgKiBQUFMxNFs3 OjBdLCBQUFMxNVs3OjBdIC0gU2l6ZSBpbiB1bml0cyBvZiBieXRlcyBvZiB0aGUgY2h1bmtzCj4g KwkgKiB0aGF0IGFyZSB1c2VkIGZvciBzbGljZSBtdWx0aXBsZXhpbmcuCj4gKwkgKi8KPiArCV9f YmUxNiBjaHVua19zaXplOwo+ICsJLyoqCj4gKwkgKiBAaW5pdGlhbF94bWl0X2RlbGF5X2hpZ2g6 Cj4gKwkgKiBQUFMxNlsxOjBdIC0gTW9zdCBTaWduaWZpY2FudCB0d28gYml0cyBvZiBpbml0aWFs IHRyYW5zbWlzc2lvbiBkZWxheS4KPiArCSAqIEl0IHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHBp eGVsIHRpbWVzIHRoYXQgdGhlIGVuY29kZXIgd2FpdHMgYmVmb3JlCj4gKwkgKiB0cmFuc21pdHRp bmcgZGF0YSBmcm9tIGl0cyByYXRlIGJ1ZmZlci4KPiArCSAqIFBQUzE2Wzc6Ml0gLSBSZXNlcnZl ZAo+ICsJICovCj4gKwl1OCBpbml0aWFsX3htaXRfZGVsYXlfaGlnaDsKPiArCS8qKgo+ICsJICog QGluaXRpYWxfeG1pdF9kZWxheV9sb3c6Cj4gKwkgKiBQUFMxN1s3OjBdIC0gTGVhc3Qgc2lnbmlm aWNhbnQgOCBiaXRzIG9mIGluaXRpYWwgdHJhbnNtaXNzaW9uIGRlbGF5Lgo+ICsJICovCj4gKwl1 OCBpbml0aWFsX3htaXRfZGVsYXlfbG93Owo+ICsJLyoqCj4gKwkgKiBAaW5pdGlhbF9kZWNfZGVs YXk6Cj4gKwkgKgo+ICsJICogUFBTMThbNzowXSwgUFBTMTlbNzowXSAtIEluaXRpYWwgZGVjb2Rp bmcgZGVsYXkgd2hpY2ggaXMgdGhlIG51bWJlcgo+ICsJICogb2YgcGl4ZWwgdGltZXMgdGhhdCB0 aGUgZGVjb2RlciBhY2N1bXVsYXRlcyBkYXRhIGluIGl0cyByYXRlIGJ1ZmZlcgo+ICsJICogYmVm b3JlIHN0YXJ0aW5nIHRvIGRlY29kZSBhbmQgb3V0cHV0IHBpeGVscy4KPiArCSAqLwo+ICsJX19i ZTE2IGluaXRpYWxfZGVjX2RlbGF5Owo+ICsJLyoqCj4gKwkgKiBAcHBzMjBfcmVzZXJ2ZWQ6Cj4g KwkgKgo+ICsJICogUFBTMjBbNzowXSAtIFJlc2VydmVkCj4gKwkgKi8KPiArCXU4IHBwczIwX3Jl c2VydmVkOwo+ICsJLyoqCj4gKwkgKiBAaW5pdGlhbF9zY2FsZV92YWx1ZToKPiArCSAqIFBQUzIx WzU6MF0gLSBJbml0aWFsIHJjWGZvcm1TY2FsZSBmYWN0b3IgdXNlZCBhdCBiZWdpbm5pbmcKPiAr CSAqIG9mIGEgc2xpY2UuCj4gKwkgKiBQUFMyMVs3OjZdIC0gUmVzZXJ2ZWQKPiArCSAqLwo+ICsJ dTggaW5pdGlhbF9zY2FsZV92YWx1ZTsKPiArCS8qKgo+ICsJICogQHNjYWxlX2luY3JlbWVudF9p bnRlcnZhbDoKPiArCSAqIFBQUzIyWzc6MF0sIFBQUzIzWzc6MF0gLSBOdW1iZXIgb2YgZ3JvdXAg dGltZXMgYmV0d2VlbiBpbmNyZW1lbnRpbmcKPiArCSAqIHRoZSByY1hmb3JtU2NhbGUgZmFjdG9y IGF0IGVuZCBvZiBhIHNsaWNlLgo+ICsJICovCj4gKwlfX2JlMTYgc2NhbGVfaW5jcmVtZW50X2lu dGVydmFsOwo+ICsJLyoqCj4gKwkgKiBAc2NhbGVfZGVjcmVtZW50X2ludGVydmFsX2hpZ2g6Cj4g KwkgKiBQUFMyNFszOjBdIC0gSGlnaGVyIDQgYml0cyBpbmRpY2F0aW5nIG51bWJlciBvZiBncm91 cCB0aW1lcyBiZXR3ZWVuCj4gKwkgKiBkZWNyZW1lbnRpbmcgdGhlIHJjWGZvcm1TY2FsZSBmYWN0 b3IgYXQgYmVnaW5uaW5nIG9mIGEgc2xpY2UuCj4gKwkgKiBQUFMyNFs3OjRdIC0gUmVzZXJ2ZWQK PiArCSAqLwo+ICsJdTggc2NhbGVfZGVjcmVtZW50X2ludGVydmFsX2hpZ2g7Cj4gKwkvKioKPiAr CSAqIEBzY2FsZV9kZWNyZW1lbnRfaW50ZXJ2YWxfbG93Ogo+ICsJICogUFBTMjVbNzowXSAtIExv d2VyIDggYml0cyBvZiBzY2FsZSBkZWNyZW1lbnQgaW50ZXJ2YWwKPiArCSAqLwo+ICsJdTggc2Nh bGVfZGVjcmVtZW50X2ludGVydmFsX2xvdzsKPiArCS8qKgo+ICsJICogQHBwczI2X3Jlc2VydmVk Ogo+ICsJICogUFBTMjZbNzowXQo+ICsJICovCj4gKwl1OCBwcHMyNl9yZXNlcnZlZDsKPiArCS8q Kgo+ICsJICogQGZpcnN0X2xpbmVfYnBnX29mZnNldDoKPiArCSAqIFBQUzI3WzQ6MF0gLSBOdW1i ZXIgb2YgYWRkaXRpb25hbCBiaXRzIHRoYXQgYXJlIGFsbG9jYXRlZAo+ICsJICogZm9yIGVhY2gg Z3JvdXAgb24gZmlyc3QgbGluZSBvZiBhIHNsaWNlLgo+ICsJICogUFBTMjdbNzo1XSAtIFJlc2Vy dmVkCj4gKwkgKi8KPiArCXU4IGZpcnN0X2xpbmVfYnBnX29mZnNldDsKPiArCS8qKgo+ICsJICog QG5mbF9icGdfb2Zmc2V0Ogo+ICsJICogUFBTMjhbNzowXSwgUFBTMjlbNzowXSAtIE51bWJlciBv ZiBiaXRzIGluY2x1ZGluZyBmcmFjIGJpdHMKPiArCSAqIGRlYWxsb2NhdGVkIGZvciBlYWNoIGdy b3VwIGZvciBncm91cHMgYWZ0ZXIgdGhlIGZpcnN0IGxpbmUgb2Ygc2xpY2UuCj4gKwkgKi8KPiAr CV9fYmUxNiBuZmxfYnBnX29mZnNldDsKPiArCS8qKgo+ICsJICogQHNsaWNlX2JwZ19vZmZzZXQ6 Cj4gKwkgKiBQUFMzMCwgUFBTMzFbNzowXSAtIE51bWJlciBvZiBiaXRzIHRoYXQgYXJlIGRlYWxs b2NhdGVkIGZvciBlYWNoCj4gKwkgKiBncm91cCB0byBlbmZvcmNlIHRoZSBzbGljZSBjb25zdHJh aW50Lgo+ICsJICovCj4gKwlfX2JlMTYgc2xpY2VfYnBnX29mZnNldDsKPiArCS8qKgo+ICsJICog QGluaXRpYWxfb2Zmc2V0Ogo+ICsJICogUFBTMzIsMzNbNzowXSAtIEluaXRpYWwgdmFsdWUgZm9y IHJjWGZvcm1PZmZzZXQKPiArCSAqLwo+ICsJX19iZTE2IGluaXRpYWxfb2Zmc2V0Owo+ICsJLyoq Cj4gKwkgKiBAZmluYWxfb2Zmc2V0Ogo+ICsJICogUFBTMzQsMzVbNzowXSAtIE1heGltdW0gZW5k LW9mLXNsaWNlIHZhbHVlIGZvciByY1hmb3JtT2Zmc2V0Cj4gKwkgKi8KPiArCV9fYmUxNiBmaW5h bF9vZmZzZXQ7Cj4gKwkvKioKPiArCSAqIEBmbGF0bmVzc19taW5fcXA6Cj4gKwkgKiBQUFMzNls0 OjBdIC0gTWluaW11bSBRUCBhdCB3aGljaCBmbGF0bmVzcyBpcyBzaWduYWxlZCBhbmQKPiArCSAq IGZsYXRuZXNzIFFQIGFkanVzdG1lbnQgaXMgbWFkZS4KPiArCSAqIFBQUzM2Wzc6NV0gLSBSZXNl cnZlZAo+ICsJICovCj4gKwl1OCBmbGF0bmVzc19taW5fcXA7Cj4gKwkvKioKPiArCSAqIEBmbGF0 bmVzc19tYXhfcXA6Cj4gKwkgKiBQUFMzN1s0OjBdIC0gTWF4IFFQIGF0IHdoaWNoIGZsYXRuZXNz IGlzIHNpZ25hbGxlZCBhbmQKPiArCSAqIHRoZSBmbGF0bmVzcyBhZGp1c3RtZW50IGlzIG1hZGUu Cj4gKwkgKiBQUFMzN1s3OjVdIC0gUmVzZXJ2ZWQKPiArCSAqLwo+ICsJdTggZmxhdG5lc3NfbWF4 X3FwOwo+ICsJLyoqCj4gKwkgKiBAcmNfbW9kZWxfc2l6ZToKPiArCSAqIFBQUzM4LDM5Wzc6MF0g LSBOdW1iZXIgb2YgYml0cyB3aXRoaW4gUkMgTW9kZWwuCj4gKwkgKi8KPiArCV9fYmUxNiByY19t b2RlbF9zaXplOwo+ICsJLyoqCj4gKwkgKiBAcmNfZWRnZV9mYWN0b3I6Cj4gKwkgKiBQUFM0MFsz OjBdIC0gUmF0aW8gb2YgY3VycmVudCBhY3Rpdml0eSB2cywgcHJldmlvdXMKPiArCSAqIGFjdGl2 aXR5IHRvIGRldGVybWluZSBwcmVzZW5jZSBvZiBlZGdlLgo+ICsJICogUFBTNDBbNzo0XSAtIFJl c2VydmVkCj4gKwkgKi8KPiArCXU4IHJjX2VkZ2VfZmFjdG9yOwo+ICsJLyoqCj4gKwkgKiBAcmNf cXVhbnRfaW5jcl9saW1pdDA6Cj4gKwkgKiBQUFM0MVs0OjBdIC0gUVAgdGhyZXNob2xkIHVzZWQg aW4gc2hvcnQgdGVybSBSQwo+ICsJICogUFBTNDFbNzo1XSAtIFJlc2VydmVkCj4gKwkgKi8KPiAr CXU4IHJjX3F1YW50X2luY3JfbGltaXQwOwo+ICsJLyoqCj4gKwkgKiBAcmNfcXVhbnRfaW5jcl9s aW1pdDE6Cj4gKwkgKiBQUFM0Mls0OjBdIC0gUVAgdGhyZXNob2xkIHVzZWQgaW4gc2hvcnQgdGVy bSBSQwo+ICsJICogUFBTNDJbNzo1XSAtIFJlc2VydmVkCj4gKwkgKi8KPiArCXU4IHJjX3F1YW50 X2luY3JfbGltaXQxOwo+ICsJLyoqCj4gKwkgKiBAcmNfdGd0X29mZnNldDoKPiArCSAqIFBQUzQz WzM6MF0gLSBMb3dlciBlbmQgb2YgdGhlIHZhcmlhYmlsaXR5IHJhbmdlIGFyb3VuZCB0aGUgdGFy Z2V0Cj4gKwkgKiBiaXRzIHBlciBncm91cCB0aGF0IGlzIGFsbG93ZWQgYnkgc2hvcnQgdGVybSBS Qy4KPiArCSAqIFBQUzQzWzc6NF0tIFVwcGVyIGVuZCBvZiB0aGUgdmFyaWFiaWxpdHkgcmFuZ2Ug YXJvdW5kIHRoZSB0YXJnZXQKPiArCSAqIGJpdHMgcGVyIGdyb3VwIHRoYXQgaSBhbGxvd2VkIGJ5 IHNob3J0IHRlcm0gcmMuCj4gKwkgKi8KPiArCXU4IHJjX3RndF9vZmZzZXQ7Cj4gKwkvKioKPiAr CSAqIEByY19idWZfdGhyZXNoOgo+ICsJICogUFBTNDRbNzowXSAtIFBQUzU3Wzc6MF0gLSBTcGVj aWZpZXMgdGhlIHRocmVzaG9sZHMgaW4gUkMgbW9kZWwgZm9yCj4gKwkgKiB0aGUgMTUgcmFuZ2Vz IGRlZmluZWQgYnkgMTQgdGhyZXNob2xkcy4KPiArCSAqLwo+ICsJdTggcmNfYnVmX3RocmVzaFtE U0NfTlVNX0JVRl9SQU5HRVMgLSAxXTsKPiArCS8qKgo+ICsJICogQHJjX3JhbmdlX3BhcmFtZXRl cnM6Cj4gKwkgKiBQUFM1OFs3OjBdIC0gUFBTODdbNzowXQo+ICsJICogUGFyYW1ldGVycyB0aGF0 IGNvcnJlc3BvbmQgdG8gZWFjaCBvZiB0aGUgMTUgcmFuZ2VzLgo+ICsJICovCj4gKwlfX2JlMTYg cmNfcmFuZ2VfcGFyYW1ldGVyc1tEU0NfTlVNX0JVRl9SQU5HRVNdOwo+ICsJLyoqCj4gKwkgKiBA bmF0aXZlXzQyMl80MjA6Cj4gKwkgKiBQUFM4OFswXSAtIDAgPSBOYXRpdmUgNDoyOjIgbm90IHVz ZWQKPiArCSAqIDEgPSBOYXRpdmUgNDoyOjIgdXNlZAo+ICsJICogUFBTODhbMV0gLSAwID0gTmF0 aXZlIDQ6MjowIG5vdCB1c2UKPiArCSAqIDEgPSBOYXRpdmUgNDoyOjAgdXNlZAo+ICsJICogUFBT ODhbNzoyXSAtIFJlc2VydmVkIDYgYml0cwo+ICsJICovCj4gKwl1OCBuYXRpdmVfNDIyXzQyMDsK PiArCS8qKgo+ICsJICogQHNlY29uZF9saW5lX2JwZ19vZmZzZXQ6Cj4gKwkgKiBQUFM4OVs0OjBd IC0gQWRkaXRpb25hbCBiaXRzL2dyb3VwIGJ1ZGdldCBmb3IgdGhlCj4gKwkgKiBzZWNvbmQgbGlu ZSBvZiBhIHNsaWNlIGluIE5hdGl2ZSA0OjI6MCBtb2RlLgo+ICsJICogU2V0IHRvIDAgaWYgRFND IG1pbm9yIHZlcnNpb24gaXMgMSBvciBuYXRpdmU0MjAgaXMgMC4KPiArCSAqIFBQUzg5Wzc6NV0g LSBSZXNlcnZlZAo+ICsJICovCj4gKwl1OCBzZWNvbmRfbGluZV9icGdfb2Zmc2V0Owo+ICsJLyoq Cj4gKwkgKiBAbnNsX2JwZ19vZmZzZXQ6Cj4gKwkgKiBQUFM5MFs3OjBdLCBQUFM5MVs3OjBdIC0g TnVtYmVyIG9mIGJpdHMgdGhhdCBhcmUgZGVhbGxvY2F0ZWQKPiArCSAqIGZvciBlYWNoIGdyb3Vw IHRoYXQgaXMgbm90IGluIHRoZSBzZWNvbmQgbGluZSBvZiBhIHNsaWNlLgo+ICsJICovCj4gKwlf X2JlMTYgbnNsX2JwZ19vZmZzZXQ7Cj4gKwkvKioKPiArCSAqIEBzZWNvbmRfbGluZV9vZmZzZXRf YWRqOgo+ICsJICogUFBTOTJbNzowXSwgUFBTOTNbNzowXSAtIFVzZWQgYXMgb2Zmc2V0IGFkanVz dG1lbnQgZm9yIHRoZSBzZWNvbmQKPiArCSAqIGxpbmUgaW4gTmF0aXZlIDQ6MjowIG1vZGUuCj4g KwkgKi8KPiArCV9fYmUxNiBzZWNvbmRfbGluZV9vZmZzZXRfYWRqOwo+ICsJLyoqCj4gKwkgKiBA cHBzX2xvbmdfOTRfcmVzZXJ2ZWQ6Cj4gKwkgKiBQUFMgOTQsIDk1LCA5NiwgOTcgLSBSZXNlcnZl ZAo+ICsJICovCj4gKwl1MzIgcHBzX2xvbmdfOTRfcmVzZXJ2ZWQ7Cj4gKwkvKioKPiArCSAqIEBw cHNfbG9uZ185OF9yZXNlcnZlZDoKPiArCSAqIFBQUyA5OCwgOTksIDEwMCwgMTAxIC0gUmVzZXJ2 ZWQKPiArCSAqLwo+ICsJdTMyIHBwc19sb25nXzk4X3Jlc2VydmVkOwo+ICsJLyoqCj4gKwkgKiBA cHBzX2xvbmdfMTAyX3Jlc2VydmVkOgo+ICsJICogUFBTIDEwMiwgMTAzLCAxMDQsIDEwNSAtIFJl c2VydmVkCj4gKwkgKi8KPiArCXUzMiBwcHNfbG9uZ18xMDJfcmVzZXJ2ZWQ7Cj4gKwkvKioKPiAr CSAqIEBwcHNfbG9uZ18xMDZfcmVzZXJ2ZWQ6Cj4gKwkgKiBQUFMgMTA2LCAxMDcsIDEwOCwgMTA5 IC0gcmVzZXJ2ZWQKPiArCSAqLwo+ICsJdTMyIHBwc19sb25nXzEwNl9yZXNlcnZlZDsKPiArCS8q Kgo+ICsJICogQHBwc19sb25nXzExMF9yZXNlcnZlZDoKPiArCSAqIFBQUyAxMTAsIDExMSwgMTEy LCAxMTMgLSByZXNlcnZlZAo+ICsJICovCj4gKwl1MzIgcHBzX2xvbmdfMTEwX3Jlc2VydmVkOwo+ ICsJLyoqCj4gKwkgKiBAcHBzX2xvbmdfMTE0X3Jlc2VydmVkOgo+ICsJICogUFBTIDExNCAtIDEx NyAtIHJlc2VydmVkCj4gKwkgKi8KPiArCXUzMiBwcHNfbG9uZ18xMTRfcmVzZXJ2ZWQ7Cj4gKwkv KioKPiArCSAqIEBwcHNfbG9uZ18xMThfcmVzZXJ2ZWQ6Cj4gKwkgKiBQUFMgMTE4IC0gMTIxIC0g cmVzZXJ2ZWQKPiArCSAqLwo+ICsJdTMyIHBwc19sb25nXzExOF9yZXNlcnZlZDsKPiArCS8qKgo+ ICsJICogQHBwc19sb25nXzEyMl9yZXNlcnZlZDoKPiArCSAqIFBQUyAxMjItIDEyNSAtIHJlc2Vy dmVkCj4gKwkgKi8KPiArCXUzMiBwcHNfbG9uZ18xMjJfcmVzZXJ2ZWQ7Cj4gKwkvKioKPiArCSAq IEBwcHNfc2hvcnRfMTI2X3Jlc2VydmVkOgo+ICsJICogUFBTIDEyNiwgMTI3IC0gcmVzZXJ2ZWQK PiArCSAqLwo+ICsJX19iZTE2IHBwc19zaG9ydF8xMjZfcmVzZXJ2ZWQ7Cj4gK307Cj4gKwo+ICsv KioKPiArICogc3RydWN0IGRybV9kc2NfcHBzX2luZm9mcmFtZSAtIERTQyBpbmZvZnJhbWUgY2Fy cnlpbmcgdGhlIFBpY3R1cmUgUGFyYW1ldGVyCj4gKyAqIFNldCBNZXRhZGF0YQo+ICsgKgo+ICsg KiBUaGlzIHN0cnVjdHVyZSByZXByZXNlbnRzIHRoZSBEU0MgUFBTIGluZm9mcmFtZSByZXF1aXJl ZCB0byBzZW5kIHRoZSBQaWN0dXJlCj4gKyAqIFBhcmFtZXRlciBTZXQgbWV0YWRhdGEgcmVxdWly ZWQgYmVmb3JlIGVuYWJsaW5nIFZFU0EgRGlzcGxheSBTdHJlYW0KPiArICogQ29tcHJlc3Npb24u IFRoaXMgaXMgYmFzZWQgb24gdGhlIERQIFNlY29uZGFyeSBEYXRhIFBhY2tldCBzdHJ1Y3R1cmUg YW5kCj4gKyAqIGNvbXByaXNlcyBvZiBTRFAgSGVhZGVyIGFzIGRlZmluZWQgaW4gZHJtX2RwX2hl bHBlci5oIGFuZCBQUFMgcGF5bG9hZC4KPiArICoKPiArICogQHBwc19oZWFkZXI6Cj4gKyAqCgpX aGF0J3Mgd2l0aCB0aGUgbmV3bGluZSBhbmQgYmxhbmsgbGluZSBoZXJlPyBNYXliZSBwdXQgdGhl IG1lbWJlciBkb2NzCm5leHQgdG8gdGhlIG1lbWJlciBpdHNlbGY/Cgo+ICsgKiBIZWFkZXIgZm9y IFBQUyBhcyBwZXIgRFAgU0RQIGhlYWRlciBmb3JtYXQKPiArICoKPiArICogQHBwc19wYXlsb2Fk Ogo+ICsgKgo+ICsgKiBQUFMgcGF5bG9hZCBmaWVsZHMgYXMgcGVyIERTQyBzcGVjaWZpY2F0aW9u IFRhYmxlIDQtMQo+ICsgKi8KPiArc3RydWN0IGRybV9kc2NfcHBzX2luZm9mcmFtZSB7Cj4gKwlz dHJ1Y3QgZHBfc2RwX2hlYWRlciBwcHNfaGVhZGVyOwo+ICsJc3RydWN0IHBpY3R1cmVfcGFyYW1l dGVyX3NldCBwcHNfcGF5bG9hZDsKPiArfSBfX3BhY2tlZDsKPiArCj4gKyNlbmRpZiAvKiBfRFJN X0RTQ19IXyAqLwo+IC0tIAo+IDIuMTguMAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK