From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH 07/23] drm/dsc: Define Display Stream Compression PPS infoframe Date: Mon, 30 Jul 2018 19:12:47 -0700 Message-ID: <1533003183-22793-8-git-send-email-manasi.d.navare@intel.com> References: <1533003183-22793-1-git-send-email-manasi.d.navare@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1533003183-22793-1-git-send-email-manasi.d.navare@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org Cc: anusha.srivatsa@intel.com, dri-devel@lists.freedesktop.org, Manasi Navare , gaurav.k.singh@intel.com List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCBkZWZpbmVzIGEgbmV3IGhlYWRlciBmaWxlIGZvciBhbGwgdGhlIERTQyAxLjIg c3RydWN0dXJlcwphbmQgY3JlYXRlcyBhIHN0cnVjdHVyZSBmb3IgUFBTIGluZm9mcmFtZSB3aGlj aCB3aWxsIGJlIHVzZWQgdG8gc2VuZApwaWN0dXJlIHBhcmFtZXRlciBzZXQgc2Vjb25kYXJ5IGRh dGEgcGFja2V0IGZvciBkaXNwbGF5IHN0cmVhbSBjb21wcmVzc2lvbi4KQWxsIHRoZSBQUFMgaW5m b2ZyYW1lIHN5bnRheCBlbGVtZW50cyBhcmUgdGFrZW4gZnJvbSBEU0MgMS4yIHNwZWNpZmljYXRp b24KZnJvbSBWRVNBLgoKQ2M6IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5j b20+CkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCkNjOiBKYW5pIE5pa3VsYSA8 amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPgpDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRz YUBpbnRlbC5jb20+CkNjOiBIYXJyeSBXZW50bGFuZCA8aGFycnkud2VudGxhbmRAYW1kLmNvbT4K U2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4K LS0tCiBpbmNsdWRlL2RybS9kcm1fZHNjLmggfCAzNjUgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAzNjUgaW5zZXJ0aW9u cygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtL2RybV9kc2MuaAoKZGlmZiAtLWdp dCBhL2luY2x1ZGUvZHJtL2RybV9kc2MuaCBiL2luY2x1ZGUvZHJtL2RybV9kc2MuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzhlOGU2Ci0tLSAvZGV2L251bGwKKysrIGIv aW5jbHVkZS9kcm0vZHJtX2RzYy5oCkBAIC0wLDAgKzEsMzY1IEBACisvKgorICogQ29weXJpZ2h0 IChDKSAyMDE4IEludGVsIENvcnAuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2Yg dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNv ZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFu ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0 byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICog YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgor ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9N LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9S CisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAq IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+CisgKi8KKworI2lmbmRl ZiBEUk1fRFNDX0hfCisjZGVmaW5lIERSTV9EU0NfSF8KKworI2luY2x1ZGUgPGRybS9kcm1fZHBf aGVscGVyLmg+CisKKy8qIFZFU0EgRGlzcGxheSBTdHJlYW0gQ29tcHJlc3Npb24gRFNDIDEuMiBj b25zdGFudHMgKi8KKyNkZWZpbmUgRFNDX05VTV9CVUZfUkFOR0VTCTE1CisKKy8qKgorICogc3Ry dWN0IHBpY3R1cmVfcGFyYW1ldGVyX3NldCAtIFJlcHJlc2VudHMgMTI4IGJ5dGVzIG9mIFBpY3R1 cmUgUGFyYW1ldGVyIFNldAorICoKKyAqIFRoZSBWRVNBIERTQyBzdGFuZGFyZCBkZWZpbmVzIHBp Y3R1cmUgcGFyYW1ldGVyIHNldCAoUFBTKSB3aGljaCBkaXNwbGF5CisgKiBzdHJlYW0gY29tcHJl c3Npb24gZW5jb2RlcnMgbXVzdCBjb21tdW5pY2F0ZSB0byBkZWNvZGVycy4KKyAqIFRoZSBQUFMg aXMgZW5jYXBzdWxhdGVkIGluIDEyOCBieXRlcyAoUFBTIDAgdGhyb3VnaCBQUFMgMTI3KS4gVGhl IGZpZWxkcyBpbgorICogdGhpcyBzdHJ1Y3R1cmUgYXJlIGFzIHBlciBUYWJsZSA0LjEgaW4gVmVz YSBEU0Mgc3BlY2lmaWNhdGlvbiB2MS4xL3YxLjIuCisgKiBUaGUgUFBTIGZpZWxkcyB0aGF0IHNw YW4gb3ZlciBtb3JlIHRoYW4gYSBieXRlIHNob3VsZCBiZSBzdG9yZWQgaW4gQmlnIEVuZGlhbgor ICogZm9ybWF0LgorICovCitzdHJ1Y3QgcGljdHVyZV9wYXJhbWV0ZXJfc2V0IHsKKwkvKioKKwkg KiBAZHNjX3ZlcnNpb246CisJICogUFBTMFszOjBdIC0gZHNjX3ZlcnNpb25fbWlub3I6IENvbnRh aW5zIE1pbm9yIHZlcnNpb24gb2YgRFNDCisJICogUFBTMFs3OjRdIC0gZHNjX3ZlcnNpb25fbWFq b3I6IENvbnRhaW5zIG1ham9yIHZlcnNpb24gb2YgRFNDCisJICovCisJdTggZHNjX3ZlcnNpb247 CisJLyoqCisJICogQHBwc19pZGVudGlmaWVyOgorCSAqIFBQUzFbNzowXSAtIEFwcGxpY2F0aW9u IHNwZWNpZmljIGlkZW50aWZpZXIgdGhhdCBjYW4gYmUKKwkgKiB1c2VkIHRvIGRpZmZlcmVudGlh dGUgYmV0d2VlbiBkaWZmZXJlbnQgUFBTIHRhYmxlcy4KKwkgKi8KKwl1OCBwcHNfaWRlbnRpZmll cjsKKwkvKioKKwkgKiBAcHBzX3Jlc2VydmVkOgorCSAqIFBQUzJbNzowXS0gUkVTRVJWRUQgQnl0 ZQorCSAqLworCXU4IHBwc19yZXNlcnZlZDsKKwkvKioKKwkgKiBAcHBzXzM6CisJICogUFBTM1sz OjBdIC0gbGluZWJ1Zl9kZXB0aDogQ29udGFpbnMgbGluZWJ1ZmZlciBiaXQgZGVwdGggdXNlZCB0 bworCSAqIGdlbmVyYXRlIHRoZSBiaXRzdHJlYW0uICgweDAgLSAxNiBiaXRzIGZvciBEU0MgMS4y LCAweDggLSA4IGJpdHMsCisJICogMHhBIC0gMTAgYml0cywgMHhCIC0gMTEgYml0cywgMHhDIC0g MTIgYml0cywgMHhEIC0gMTMgYml0cywKKwkgKiAweEUgLSAxNCBiaXRzIGZvciBEU0MxLjIsIDB4 RiAtIDE0IGJpdHMgZm9yIERTQyAxLjIuCisJICogUFBTM1s3OjRdIC0gYml0c19wZXJfY29tcG9u ZW50OiBCaXRzIHBlciBjb21wb25lbnQgZm9yIHRoZSBvcmlnaW5hbAorCSAqIHBpeGVscyBvZiB0 aGUgZW5jb2RlZCBwaWN0dXJlLgorCSAqIDB4MCA9IDE2YnBjIChhbGxvd2VkIG9ubHkgd2hlbiBk c2NfdmVyc2lvbl9taW5vciA9IDB4MikKKwkgKiAweDggPSA4YnBjLCAweEEgPSAxMGJwYywgMHhD ID0gMTJicGMsIDB4RSA9IDE0YnBjIChhbHNvCisJICogYWxsb3dlZCBvbmx5IHdoZW4gZHNjX21p bm9yX3ZlcnNpb24gPSAweDIpCisJICovCisJdTggcHBzXzM7CisJLyoqCisJICogQHBwc180Ogor CSAqIFBQUzRbMTowXSAtVGhlc2UgYXJlIHRoZSBtb3N0IHNpZ25pZmljYW50IDIgYml0cyBvZgor CSAqIGNvbXByZXNzZWQgQlBQIGJpdHNfcGVyX3BpeGVsWzk6MF0gc3ludGF4IGVsZW1lbnQuCisJ ICogUFBTNFsyXSAtIHZicl9lbmFibGU6IDAgPSBWQlIgZGlzYWJsZWQsIDEgPSBWQlIgZW5hYmxl ZAorCSAqIFBQUzRbM10gLSBzaW1wbGVfNDIyOiBJbmRpY2F0ZXMgaWYgZGVjb2RlciBkcm9wcyBz YW1wbGVzIHRvCisJICogcmVjb25zdHJ1Y3QgdGhlIDQ6MjoyIHBpY3R1cmUuCisJICogUFBTNFs0 XSAtIENvbnZlcnRfcmdiOiBJbmRpY2F0ZXMgaWYgRFNDIGNvbG9yIHNwYWNlIGNvbnZlcnNpb24g aXMKKwkgKiBhY3RpdmUuCisJICogUFBTNFs1XSAtIGJsb2JrX3ByZWRfZW5hYmxlOiBJbmRpY2F0 ZXMgaWYgQlAgaXMgdXNlZCB0byBjb2RlIGFueQorCSAqIGdyb3VwcyBpbiBwaWN0dXJlCisJICog UFBTNFs3OjZdIC0gUmVzZXZlZCBiaXRzCisJICovCisJdTggcHBzXzQ7CisJLyoqCisJICogQGJp dHNfcGVyX3BpeGVsX2xvdzoKKwkgKiBQUFM1Wzc6MF0gLSBUaGlzIGluZGljYXRlcyB0aGUgbG93 ZXIgc2lnbmlmaWNhbnQgOCBiaXRzIG9mCisJICogdGhlIGNvbXByZXNzZWQgQlBQIGJpdHNfcGVy X3BpeGVsWzk6MF0gZWxlbWVudC4KKwkgKi8KKwl1OCBiaXRzX3Blcl9waXhlbF9sb3c7CisJLyoq CisJICogQHBpY19oZWlnaHQ6CisJICogUFBTNls3OjBdLCBQUFM3Wzc6MF0gLXBpY19oZWlnaHQ6 IFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHBpeGVsIHJvd3MKKwkgKiB3aXRoaW4gdGhlIHJhc3Rl ci4KKwkgKi8KKwlfX2JlMTYgcGljX2hlaWdodDsKKwkvKioKKwkgKiBAcGljX3dpZHRoOgorCSAq IFBQUzhbNzowXSwgUFBTOVs3OjBdIC0gcGljX3dpZHRoOiBOdW1iZXIgb2YgcGl4ZWwgY29sdW1u cyB3aXRoaW4KKwkgKiB0aGUgcmFzdGVyLgorCSAqLworCV9fYmUxNiBwaWNfd2lkdGg7CisJLyoq CisJICogQHNsaWNlX2hlaWdodDoKKwkgKiBQUFMxMFs3OjBdLCBQUFMxMVs3OjBdIC0gU2xpY2Ug aGVpZ2h0IGluIHVuaXRzIG9mIHBpeGVscy4KKwkgKi8KKwlfX2JlMTYgc2xpY2VfaGVpZ2h0Owor CS8qKgorCSAqIEBzbGljZV93aWR0aDoKKwkgKiBQUFMxMls3OjBdLCBQUFMxM1s3OjBdIC0gU2xp Y2Ugd2lkdGggaW4gdGVybXMgb2YgcGl4ZWxzLgorCSAqLworCV9fYmUxNiBzbGljZV93aWR0aDsK KwkvKioKKwkgKiBAY2h1bmtfc2l6ZToKKwkgKiBQUFMxNFs3OjBdLCBQUFMxNVs3OjBdIC0gU2l6 ZSBpbiB1bml0cyBvZiBieXRlcyBvZiB0aGUgY2h1bmtzCisJICogdGhhdCBhcmUgdXNlZCBmb3Ig c2xpY2UgbXVsdGlwbGV4aW5nLgorCSAqLworCV9fYmUxNiBjaHVua19zaXplOworCS8qKgorCSAq IEBpbml0aWFsX3htaXRfZGVsYXlfaGlnaDoKKwkgKiBQUFMxNlsxOjBdIC0gTW9zdCBTaWduaWZp Y2FudCB0d28gYml0cyBvZiBpbml0aWFsIHRyYW5zbWlzc2lvbiBkZWxheS4KKwkgKiBJdCBzcGVj aWZpZXMgdGhlIG51bWJlciBvZiBwaXhlbCB0aW1lcyB0aGF0IHRoZSBlbmNvZGVyIHdhaXRzIGJl Zm9yZQorCSAqIHRyYW5zbWl0dGluZyBkYXRhIGZyb20gaXRzIHJhdGUgYnVmZmVyLgorCSAqIFBQ UzE2Wzc6Ml0gLSBSZXNlcnZlZAorCSAqLworCXU4IGluaXRpYWxfeG1pdF9kZWxheV9oaWdoOwor CS8qKgorCSAqIEBpbml0aWFsX3htaXRfZGVsYXlfbG93OgorCSAqIFBQUzE3Wzc6MF0gLSBMZWFz dCBzaWduaWZpY2FudCA4IGJpdHMgb2YgaW5pdGlhbCB0cmFuc21pc3Npb24gZGVsYXkuCisJICov CisJdTggaW5pdGlhbF94bWl0X2RlbGF5X2xvdzsKKwkvKioKKwkgKiBAaW5pdGlhbF9kZWNfZGVs YXk6CisJICoKKwkgKiBQUFMxOFs3OjBdLCBQUFMxOVs3OjBdIC0gSW5pdGlhbCBkZWNvZGluZyBk ZWxheSB3aGljaCBpcyB0aGUgbnVtYmVyCisJICogb2YgcGl4ZWwgdGltZXMgdGhhdCB0aGUgZGVj b2RlciBhY2N1bXVsYXRlcyBkYXRhIGluIGl0cyByYXRlIGJ1ZmZlcgorCSAqIGJlZm9yZSBzdGFy dGluZyB0byBkZWNvZGUgYW5kIG91dHB1dCBwaXhlbHMuCisJICovCisJX19iZTE2IGluaXRpYWxf ZGVjX2RlbGF5OworCS8qKgorCSAqIEBwcHMyMF9yZXNlcnZlZDoKKwkgKgorCSAqIFBQUzIwWzc6 MF0gLSBSZXNlcnZlZAorCSAqLworCXU4IHBwczIwX3Jlc2VydmVkOworCS8qKgorCSAqIEBpbml0 aWFsX3NjYWxlX3ZhbHVlOgorCSAqIFBQUzIxWzU6MF0gLSBJbml0aWFsIHJjWGZvcm1TY2FsZSBm YWN0b3IgdXNlZCBhdCBiZWdpbm5pbmcKKwkgKiBvZiBhIHNsaWNlLgorCSAqIFBQUzIxWzc6Nl0g LSBSZXNlcnZlZAorCSAqLworCXU4IGluaXRpYWxfc2NhbGVfdmFsdWU7CisJLyoqCisJICogQHNj YWxlX2luY3JlbWVudF9pbnRlcnZhbDoKKwkgKiBQUFMyMls3OjBdLCBQUFMyM1s3OjBdIC0gTnVt YmVyIG9mIGdyb3VwIHRpbWVzIGJldHdlZW4gaW5jcmVtZW50aW5nCisJICogdGhlIHJjWGZvcm1T Y2FsZSBmYWN0b3IgYXQgZW5kIG9mIGEgc2xpY2UuCisJICovCisJX19iZTE2IHNjYWxlX2luY3Jl bWVudF9pbnRlcnZhbDsKKwkvKioKKwkgKiBAc2NhbGVfZGVjcmVtZW50X2ludGVydmFsX2hpZ2g6 CisJICogUFBTMjRbMzowXSAtIEhpZ2hlciA0IGJpdHMgaW5kaWNhdGluZyBudW1iZXIgb2YgZ3Jv dXAgdGltZXMgYmV0d2VlbgorCSAqIGRlY3JlbWVudGluZyB0aGUgcmNYZm9ybVNjYWxlIGZhY3Rv ciBhdCBiZWdpbm5pbmcgb2YgYSBzbGljZS4KKwkgKiBQUFMyNFs3OjRdIC0gUmVzZXJ2ZWQKKwkg Ki8KKwl1OCBzY2FsZV9kZWNyZW1lbnRfaW50ZXJ2YWxfaGlnaDsKKwkvKioKKwkgKiBAc2NhbGVf ZGVjcmVtZW50X2ludGVydmFsX2xvdzoKKwkgKiBQUFMyNVs3OjBdIC0gTG93ZXIgOCBiaXRzIG9m IHNjYWxlIGRlY3JlbWVudCBpbnRlcnZhbAorCSAqLworCXU4IHNjYWxlX2RlY3JlbWVudF9pbnRl cnZhbF9sb3c7CisJLyoqCisJICogQHBwczI2X3Jlc2VydmVkOgorCSAqIFBQUzI2Wzc6MF0KKwkg Ki8KKwl1OCBwcHMyNl9yZXNlcnZlZDsKKwkvKioKKwkgKiBAZmlyc3RfbGluZV9icGdfb2Zmc2V0 OgorCSAqIFBQUzI3WzQ6MF0gLSBOdW1iZXIgb2YgYWRkaXRpb25hbCBiaXRzIHRoYXQgYXJlIGFs bG9jYXRlZAorCSAqIGZvciBlYWNoIGdyb3VwIG9uIGZpcnN0IGxpbmUgb2YgYSBzbGljZS4KKwkg KiBQUFMyN1s3OjVdIC0gUmVzZXJ2ZWQKKwkgKi8KKwl1OCBmaXJzdF9saW5lX2JwZ19vZmZzZXQ7 CisJLyoqCisJICogQG5mbF9icGdfb2Zmc2V0OgorCSAqIFBQUzI4Wzc6MF0sIFBQUzI5Wzc6MF0g LSBOdW1iZXIgb2YgYml0cyBpbmNsdWRpbmcgZnJhYyBiaXRzCisJICogZGVhbGxvY2F0ZWQgZm9y IGVhY2ggZ3JvdXAgZm9yIGdyb3VwcyBhZnRlciB0aGUgZmlyc3QgbGluZSBvZiBzbGljZS4KKwkg Ki8KKwlfX2JlMTYgbmZsX2JwZ19vZmZzZXQ7CisJLyoqCisJICogQHNsaWNlX2JwZ19vZmZzZXQ6 CisJICogUFBTMzAsIFBQUzMxWzc6MF0gLSBOdW1iZXIgb2YgYml0cyB0aGF0IGFyZSBkZWFsbG9j YXRlZCBmb3IgZWFjaAorCSAqIGdyb3VwIHRvIGVuZm9yY2UgdGhlIHNsaWNlIGNvbnN0cmFpbnQu CisJICovCisJX19iZTE2IHNsaWNlX2JwZ19vZmZzZXQ7CisJLyoqCisJICogQGluaXRpYWxfb2Zm c2V0OgorCSAqIFBQUzMyLDMzWzc6MF0gLSBJbml0aWFsIHZhbHVlIGZvciByY1hmb3JtT2Zmc2V0 CisJICovCisJX19iZTE2IGluaXRpYWxfb2Zmc2V0OworCS8qKgorCSAqIEBmaW5hbF9vZmZzZXQ6 CisJICogUFBTMzQsMzVbNzowXSAtIE1heGltdW0gZW5kLW9mLXNsaWNlIHZhbHVlIGZvciByY1hm b3JtT2Zmc2V0CisJICovCisJX19iZTE2IGZpbmFsX29mZnNldDsKKwkvKioKKwkgKiBAZmxhdG5l c3NfbWluX3FwOgorCSAqIFBQUzM2WzQ6MF0gLSBNaW5pbXVtIFFQIGF0IHdoaWNoIGZsYXRuZXNz IGlzIHNpZ25hbGVkIGFuZAorCSAqIGZsYXRuZXNzIFFQIGFkanVzdG1lbnQgaXMgbWFkZS4KKwkg KiBQUFMzNls3OjVdIC0gUmVzZXJ2ZWQKKwkgKi8KKwl1OCBmbGF0bmVzc19taW5fcXA7CisJLyoq CisJICogQGZsYXRuZXNzX21heF9xcDoKKwkgKiBQUFMzN1s0OjBdIC0gTWF4IFFQIGF0IHdoaWNo IGZsYXRuZXNzIGlzIHNpZ25hbGxlZCBhbmQKKwkgKiB0aGUgZmxhdG5lc3MgYWRqdXN0bWVudCBp cyBtYWRlLgorCSAqIFBQUzM3Wzc6NV0gLSBSZXNlcnZlZAorCSAqLworCXU4IGZsYXRuZXNzX21h eF9xcDsKKwkvKioKKwkgKiBAcmNfbW9kZWxfc2l6ZToKKwkgKiBQUFMzOCwzOVs3OjBdIC0gTnVt YmVyIG9mIGJpdHMgd2l0aGluIFJDIE1vZGVsLgorCSAqLworCV9fYmUxNiByY19tb2RlbF9zaXpl OworCS8qKgorCSAqIEByY19lZGdlX2ZhY3RvcjoKKwkgKiBQUFM0MFszOjBdIC0gUmF0aW8gb2Yg Y3VycmVudCBhY3Rpdml0eSB2cywgcHJldmlvdXMKKwkgKiBhY3Rpdml0eSB0byBkZXRlcm1pbmUg cHJlc2VuY2Ugb2YgZWRnZS4KKwkgKiBQUFM0MFs3OjRdIC0gUmVzZXJ2ZWQKKwkgKi8KKwl1OCBy Y19lZGdlX2ZhY3RvcjsKKwkvKioKKwkgKiBAcmNfcXVhbnRfaW5jcl9saW1pdDA6CisJICogUFBT NDFbNDowXSAtIFFQIHRocmVzaG9sZCB1c2VkIGluIHNob3J0IHRlcm0gUkMKKwkgKiBQUFM0MVs3 OjVdIC0gUmVzZXJ2ZWQKKwkgKi8KKwl1OCByY19xdWFudF9pbmNyX2xpbWl0MDsKKwkvKioKKwkg KiBAcmNfcXVhbnRfaW5jcl9saW1pdDE6CisJICogUFBTNDJbNDowXSAtIFFQIHRocmVzaG9sZCB1 c2VkIGluIHNob3J0IHRlcm0gUkMKKwkgKiBQUFM0Mls3OjVdIC0gUmVzZXJ2ZWQKKwkgKi8KKwl1 OCByY19xdWFudF9pbmNyX2xpbWl0MTsKKwkvKioKKwkgKiBAcmNfdGd0X29mZnNldDoKKwkgKiBQ UFM0M1szOjBdIC0gTG93ZXIgZW5kIG9mIHRoZSB2YXJpYWJpbGl0eSByYW5nZSBhcm91bmQgdGhl IHRhcmdldAorCSAqIGJpdHMgcGVyIGdyb3VwIHRoYXQgaXMgYWxsb3dlZCBieSBzaG9ydCB0ZXJt IFJDLgorCSAqIFBQUzQzWzc6NF0tIFVwcGVyIGVuZCBvZiB0aGUgdmFyaWFiaWxpdHkgcmFuZ2Ug YXJvdW5kIHRoZSB0YXJnZXQKKwkgKiBiaXRzIHBlciBncm91cCB0aGF0IGkgYWxsb3dlZCBieSBz aG9ydCB0ZXJtIHJjLgorCSAqLworCXU4IHJjX3RndF9vZmZzZXQ7CisJLyoqCisJICogQHJjX2J1 Zl90aHJlc2g6CisJICogUFBTNDRbNzowXSAtIFBQUzU3Wzc6MF0gLSBTcGVjaWZpZXMgdGhlIHRo cmVzaG9sZHMgaW4gUkMgbW9kZWwgZm9yCisJICogdGhlIDE1IHJhbmdlcyBkZWZpbmVkIGJ5IDE0 IHRocmVzaG9sZHMuCisJICovCisJdTggcmNfYnVmX3RocmVzaFtEU0NfTlVNX0JVRl9SQU5HRVMg LSAxXTsKKwkvKioKKwkgKiBAcmNfcmFuZ2VfcGFyYW1ldGVyczoKKwkgKiBQUFM1OFs3OjBdIC0g UFBTODdbNzowXQorCSAqIFBhcmFtZXRlcnMgdGhhdCBjb3JyZXNwb25kIHRvIGVhY2ggb2YgdGhl IDE1IHJhbmdlcy4KKwkgKi8KKwlfX2JlMTYgcmNfcmFuZ2VfcGFyYW1ldGVyc1tEU0NfTlVNX0JV Rl9SQU5HRVNdOworCS8qKgorCSAqIEBuYXRpdmVfNDIyXzQyMDoKKwkgKiBQUFM4OFswXSAtIDAg PSBOYXRpdmUgNDoyOjIgbm90IHVzZWQKKwkgKiAxID0gTmF0aXZlIDQ6MjoyIHVzZWQKKwkgKiBQ UFM4OFsxXSAtIDAgPSBOYXRpdmUgNDoyOjAgbm90IHVzZQorCSAqIDEgPSBOYXRpdmUgNDoyOjAg dXNlZAorCSAqIFBQUzg4Wzc6Ml0gLSBSZXNlcnZlZCA2IGJpdHMKKwkgKi8KKwl1OCBuYXRpdmVf NDIyXzQyMDsKKwkvKioKKwkgKiBAc2Vjb25kX2xpbmVfYnBnX29mZnNldDoKKwkgKiBQUFM4OVs0 OjBdIC0gQWRkaXRpb25hbCBiaXRzL2dyb3VwIGJ1ZGdldCBmb3IgdGhlCisJICogc2Vjb25kIGxp bmUgb2YgYSBzbGljZSBpbiBOYXRpdmUgNDoyOjAgbW9kZS4KKwkgKiBTZXQgdG8gMCBpZiBEU0Mg bWlub3IgdmVyc2lvbiBpcyAxIG9yIG5hdGl2ZTQyMCBpcyAwLgorCSAqIFBQUzg5Wzc6NV0gLSBS ZXNlcnZlZAorCSAqLworCXU4IHNlY29uZF9saW5lX2JwZ19vZmZzZXQ7CisJLyoqCisJICogQG5z bF9icGdfb2Zmc2V0OgorCSAqIFBQUzkwWzc6MF0sIFBQUzkxWzc6MF0gLSBOdW1iZXIgb2YgYml0 cyB0aGF0IGFyZSBkZWFsbG9jYXRlZAorCSAqIGZvciBlYWNoIGdyb3VwIHRoYXQgaXMgbm90IGlu IHRoZSBzZWNvbmQgbGluZSBvZiBhIHNsaWNlLgorCSAqLworCV9fYmUxNiBuc2xfYnBnX29mZnNl dDsKKwkvKioKKwkgKiBAc2Vjb25kX2xpbmVfb2Zmc2V0X2FkajoKKwkgKiBQUFM5Mls3OjBdLCBQ UFM5M1s3OjBdIC0gVXNlZCBhcyBvZmZzZXQgYWRqdXN0bWVudCBmb3IgdGhlIHNlY29uZAorCSAq IGxpbmUgaW4gTmF0aXZlIDQ6MjowIG1vZGUuCisJICovCisJX19iZTE2IHNlY29uZF9saW5lX29m ZnNldF9hZGo7CisJLyoqCisJICogQHBwc19sb25nXzk0X3Jlc2VydmVkOgorCSAqIFBQUyA5NCwg OTUsIDk2LCA5NyAtIFJlc2VydmVkCisJICovCisJdTMyIHBwc19sb25nXzk0X3Jlc2VydmVkOwor CS8qKgorCSAqIEBwcHNfbG9uZ185OF9yZXNlcnZlZDoKKwkgKiBQUFMgOTgsIDk5LCAxMDAsIDEw MSAtIFJlc2VydmVkCisJICovCisJdTMyIHBwc19sb25nXzk4X3Jlc2VydmVkOworCS8qKgorCSAq IEBwcHNfbG9uZ18xMDJfcmVzZXJ2ZWQ6CisJICogUFBTIDEwMiwgMTAzLCAxMDQsIDEwNSAtIFJl c2VydmVkCisJICovCisJdTMyIHBwc19sb25nXzEwMl9yZXNlcnZlZDsKKwkvKioKKwkgKiBAcHBz X2xvbmdfMTA2X3Jlc2VydmVkOgorCSAqIFBQUyAxMDYsIDEwNywgMTA4LCAxMDkgLSByZXNlcnZl ZAorCSAqLworCXUzMiBwcHNfbG9uZ18xMDZfcmVzZXJ2ZWQ7CisJLyoqCisJICogQHBwc19sb25n XzExMF9yZXNlcnZlZDoKKwkgKiBQUFMgMTEwLCAxMTEsIDExMiwgMTEzIC0gcmVzZXJ2ZWQKKwkg Ki8KKwl1MzIgcHBzX2xvbmdfMTEwX3Jlc2VydmVkOworCS8qKgorCSAqIEBwcHNfbG9uZ18xMTRf cmVzZXJ2ZWQ6CisJICogUFBTIDExNCAtIDExNyAtIHJlc2VydmVkCisJICovCisJdTMyIHBwc19s b25nXzExNF9yZXNlcnZlZDsKKwkvKioKKwkgKiBAcHBzX2xvbmdfMTE4X3Jlc2VydmVkOgorCSAq IFBQUyAxMTggLSAxMjEgLSByZXNlcnZlZAorCSAqLworCXUzMiBwcHNfbG9uZ18xMThfcmVzZXJ2 ZWQ7CisJLyoqCisJICogQHBwc19sb25nXzEyMl9yZXNlcnZlZDoKKwkgKiBQUFMgMTIyLSAxMjUg LSByZXNlcnZlZAorCSAqLworCXUzMiBwcHNfbG9uZ18xMjJfcmVzZXJ2ZWQ7CisJLyoqCisJICog QHBwc19zaG9ydF8xMjZfcmVzZXJ2ZWQ6CisJICogUFBTIDEyNiwgMTI3IC0gcmVzZXJ2ZWQKKwkg Ki8KKwlfX2JlMTYgcHBzX3Nob3J0XzEyNl9yZXNlcnZlZDsKK307CisKKy8qKgorICogc3RydWN0 IGRybV9kc2NfcHBzX2luZm9mcmFtZSAtIERTQyBpbmZvZnJhbWUgY2FycnlpbmcgdGhlIFBpY3R1 cmUgUGFyYW1ldGVyCisgKiBTZXQgTWV0YWRhdGEKKyAqCisgKiBUaGlzIHN0cnVjdHVyZSByZXBy ZXNlbnRzIHRoZSBEU0MgUFBTIGluZm9mcmFtZSByZXF1aXJlZCB0byBzZW5kIHRoZSBQaWN0dXJl CisgKiBQYXJhbWV0ZXIgU2V0IG1ldGFkYXRhIHJlcXVpcmVkIGJlZm9yZSBlbmFibGluZyBWRVNB IERpc3BsYXkgU3RyZWFtCisgKiBDb21wcmVzc2lvbi4gVGhpcyBpcyBiYXNlZCBvbiB0aGUgRFAg U2Vjb25kYXJ5IERhdGEgUGFja2V0IHN0cnVjdHVyZSBhbmQKKyAqIGNvbXByaXNlcyBvZiBTRFAg SGVhZGVyIGFzIGRlZmluZWQgaW4gZHJtX2RwX2hlbHBlci5oIGFuZCBQUFMgcGF5bG9hZC4KKyAq CisgKiBAcHBzX2hlYWRlcjoKKyAqCisgKiBIZWFkZXIgZm9yIFBQUyBhcyBwZXIgRFAgU0RQIGhl YWRlciBmb3JtYXQKKyAqCisgKiBAcHBzX3BheWxvYWQ6CisgKgorICogUFBTIHBheWxvYWQgZmll bGRzIGFzIHBlciBEU0Mgc3BlY2lmaWNhdGlvbiBUYWJsZSA0LTEKKyAqLworc3RydWN0IGRybV9k c2NfcHBzX2luZm9mcmFtZSB7CisJc3RydWN0IGRwX3NkcF9oZWFkZXIgcHBzX2hlYWRlcjsKKwlz dHJ1Y3QgcGljdHVyZV9wYXJhbWV0ZXJfc2V0IHBwc19wYXlsb2FkOworfSBfX3BhY2tlZDsKKwor I2VuZGlmIC8qIF9EUk1fRFNDX0hfICovCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==