From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v3] drm/dsc: Add kernel documentation for DRM DP DSC helpers Date: Fri, 8 Feb 2019 13:49:06 -0800 Message-ID: <20190208214905.GA25470@intel.com> References: <20190206071634.15817-1-manasi.d.navare@intel.com> <20190206213148.21390-1-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: <20190206213148.21390-1-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: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org UHVzaGVkIHRvIGRybS1taXNjIHRoYW5rcyBmb3IgdGhlIHJldmlld3MuCgpSZWdhcmRzCk1hbmFz aQoKT24gV2VkLCBGZWIgMDYsIDIwMTkgYXQgMDE6MzE6NDhQTSAtMDgwMCwgTWFuYXNpIE5hdmFy ZSB3cm90ZToKPiBUaGlzIHBhdGNoIGFkZHMgYXBwcm9wcmlhdGUga2VybmVsIGRvY3VtZW50YXRp b24gZm9yIERSTSBEUCBoZWxwZXJzCj4gdXNlZCBmb3IgZW5hYmxpbmcgRGlzcGxheSBTdHJlYW0g Y29tcHJlc3Npb24gZnVuY3Rpb25hbGl0eSBpbgo+IGRybV9kcF9oZWxwZXIuaCBhbmQgZHJtX2Rw X2hlbHBlci5jIGFzIHdlbGwgYXMgZm9yIHRoZSBEU0Mgc3BlYwo+IHJlbGF0ZWQgc3RydWN0dXJl IGRlZmluaXRpb25zIGFuZCBoZWxwZXJzIGluIGRybV9kc2MuYyBhbmQgZHJtX2RzYy5oCj4gQWxz byBhZGQgbGlua3MgYmV0d2VlbiB0aGUgZnVuY3Rpb25zIGFuZCBzdHJ1Y3R1cmVzIGluIHRoZSBk b2N1bWVudGF0aW9uLgo+IAo+IHYzOgo+ICogRml4IHRoZSBjaGVja3BhdGNoIHdhcm5pbmdzIChT ZWFuIFBhdWwpCj4gdjI6Cj4gKiBBZGQgaW5saW5lIGNvbW1lbnRzIGZvciBsb25nZXIgc3RydWN0 cyAoRGFuaWVsIFZldHRlcikKPiAqIFNwbGl0IHRoZSBzdW1tYXJ5IGFuZCBkZXNjcmlwdGlvbiAo RGFuaWVsIFZldHRlcikKPiAKPiBTdWdnZXN0ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52 ZXR0ZXJAaW50ZWwuY29tPgo+IFN1Z2dlc3RlZC1ieTogU2VhbiBQYXVsIDxzZWFuQHBvb3JseS5y dW4+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+IENjOiBT ZWFuIFBhdWwgPHNlYW5AcG9vcmx5LnJ1bj4KPiBTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJl IDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+IEFja2VkLWJ5OiBTZWFuIFBhdWwgPHNlYW5A cG9vcmx5LnJ1bj4KPiBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBp bnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMgfCAgNDcg KysrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2RzYy5jICAgICAgIHwgIDMwICsrKy0KPiAg aW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oICAgICB8ICAxNSArLQo+ICBpbmNsdWRlL2RybS9k cm1fZHNjLmggICAgICAgICAgIHwgMjMzICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t Cj4gIDQgZmlsZXMgY2hhbmdlZCwgMjU5IGluc2VydGlvbnMoKyksIDY2IGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYwo+IGluZGV4IDU0MTIwYjYzMTllNy4uNTRhNjQxNGM1 ZDk2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCj4gQEAgLTEzNjAsNyArMTM2MCwyMCBA QCBpbnQgZHJtX2RwX3JlYWRfZGVzYyhzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LCBzdHJ1Y3QgZHJt X2RwX2Rlc2MgKmRlc2MsCj4gIEVYUE9SVF9TWU1CT0woZHJtX2RwX3JlYWRfZGVzYyk7Cj4gIAo+ ICAvKioKPiAtICogRFJNIERQIEhlbHBlcnMgZm9yIERTQwo+ICsgKiBkcm1fZHBfZHNjX3Npbmtf bWF4X3NsaWNlX2NvdW50KCkgLSBHZXQgdGhlIG1heCBzbGljZSBjb3VudAo+ICsgKiBzdXBwb3J0 ZWQgYnkgdGhlIERTQyBzaW5rLgo+ICsgKiBAZHNjX2RwY2Q6IERTQyBjYXBhYmlsaXRpZXMgZnJv bSBEUENECj4gKyAqIEBpc19lZHA6IHRydWUgaWYgaXRzIGVEUCwgZmFsc2UgZm9yIERQCj4gKyAq Cj4gKyAqIFJlYWQgdGhlIHNsaWNlIGNhcGFiaWxpdGllcyBEUENEIHJlZ2lzdGVyIGZyb20gRFND IHNpbmsgdG8gZ2V0Cj4gKyAqIHRoZSBtYXhpbXVtIHNsaWNlIGNvdW50IHN1cHBvcnRlZC4gVGhp cyBpcyB1c2VkIHRvIHBvcHVsYXRlCj4gKyAqIHRoZSBEU0MgcGFyYW1ldGVycyBpbiB0aGUgJnN0 cnVjdCBkcm1fZHNjX2NvbmZpZyBieSB0aGUgZHJpdmVyLgo+ICsgKiBEcml2ZXIgY3JlYXRlcyBh biBpbmZvZnJhbWUgdXNpbmcgdGhlc2UgcGFyYW1ldGVycyB0byBwb3B1bGF0ZQo+ICsgKiAmc3Ry dWN0IGRybV9kc2NfcHBzX2luZm9mcmFtZS4gVGhlc2UgYXJlIHNlbnQgdG8gdGhlIHNpbmsgdXNp bmcgRFNDCj4gKyAqIGluZm9mcmFtZSB1c2luZyB0aGUgaGVscGVyIGZ1bmN0aW9uIGRybV9kc2Nf cHBzX2luZm9mcmFtZV9wYWNrKCkKPiArICoKPiArICogUmV0dXJuczoKPiArICogTWF4aW11bSBz bGljZSBjb3VudCBzdXBwb3J0ZWQgYnkgRFNDIHNpbmsgb3IgMCBpdHMgaW52YWxpZAo+ICAgKi8K PiAgdTggZHJtX2RwX2RzY19zaW5rX21heF9zbGljZV9jb3VudChjb25zdCB1OCBkc2NfZHBjZFtE UF9EU0NfUkVDRUlWRVJfQ0FQX1NJWkVdLAo+ICAJCQkJICAgYm9vbCBpc19lZHApCj4gQEAgLTE0 MDUsNiArMTQxOCwyMSBAQCB1OCBkcm1fZHBfZHNjX3NpbmtfbWF4X3NsaWNlX2NvdW50KGNvbnN0 IHU4IGRzY19kcGNkW0RQX0RTQ19SRUNFSVZFUl9DQVBfU0laRV0sCj4gIH0KPiAgRVhQT1JUX1NZ TUJPTChkcm1fZHBfZHNjX3NpbmtfbWF4X3NsaWNlX2NvdW50KTsKPiAgCj4gKy8qKgo+ICsgKiBk cm1fZHBfZHNjX3NpbmtfbGluZV9idWZfZGVwdGgoKSAtIEdldCB0aGUgbGluZSBidWZmZXIgZGVw dGggaW4gYml0cwo+ICsgKiBAZHNjX2RwY2Q6IERTQyBjYXBhYmlsaXRpZXMgZnJvbSBEUENECj4g KyAqCj4gKyAqIFJlYWQgdGhlIERTQyBEUENEIHJlZ2lzdGVyIHRvIHBhcnNlIHRoZSBsaW5lIGJ1 ZmZlciBkZXB0aCBpbiBiaXRzIHdoaWNoIGlzCj4gKyAqIG51bWJlciBvZiBiaXRzIG9mIHByZWNp c2lvbiB3aXRoaW4gdGhlIGRlY29kZXIgbGluZSBidWZmZXIgc3VwcG9ydGVkIGJ5Cj4gKyAqIHRo ZSBEU0Mgc2luay4gVGhpcyBpcyB1c2VkIHRvIHBvcHVsYXRlIHRoZSBEU0MgcGFyYW1ldGVycyBp biB0aGUKPiArICogJnN0cnVjdCBkcm1fZHNjX2NvbmZpZyBieSB0aGUgZHJpdmVyLgo+ICsgKiBE cml2ZXIgY3JlYXRlcyBhbiBpbmZvZnJhbWUgdXNpbmcgdGhlc2UgcGFyYW1ldGVycyB0byBwb3B1 bGF0ZQo+ICsgKiAmc3RydWN0IGRybV9kc2NfcHBzX2luZm9mcmFtZS4gVGhlc2UgYXJlIHNlbnQg dG8gdGhlIHNpbmsgdXNpbmcgRFNDCj4gKyAqIGluZm9mcmFtZSB1c2luZyB0aGUgaGVscGVyIGZ1 bmN0aW9uIGRybV9kc2NfcHBzX2luZm9mcmFtZV9wYWNrKCkKPiArICoKPiArICogUmV0dXJuczoK PiArICogTGluZSBidWZmZXIgZGVwdGggc3VwcG9ydGVkIGJ5IERTQyBwYW5lbCBvciAwIGl0cyBp bnZhbGlkCj4gKyAqLwo+ICB1OCBkcm1fZHBfZHNjX3NpbmtfbGluZV9idWZfZGVwdGgoY29uc3Qg dTggZHNjX2RwY2RbRFBfRFNDX1JFQ0VJVkVSX0NBUF9TSVpFXSkKPiAgewo+ICAJdTggbGluZV9i dWZfZGVwdGggPSBkc2NfZHBjZFtEUF9EU0NfTElORV9CVUZfQklUX0RFUFRIIC0gRFBfRFNDX1NV UFBPUlRdOwo+IEBAIC0xNDM0LDYgKzE0NjIsMjMgQEAgdTggZHJtX2RwX2RzY19zaW5rX2xpbmVf YnVmX2RlcHRoKGNvbnN0IHU4IGRzY19kcGNkW0RQX0RTQ19SRUNFSVZFUl9DQVBfU0laRV0pCj4g IH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fZHBfZHNjX3NpbmtfbGluZV9idWZfZGVwdGgpOwo+ICAK PiArLyoqCj4gKyAqIGRybV9kcF9kc2Nfc2lua19zdXBwb3J0ZWRfaW5wdXRfYnBjcygpIC0gR2V0 IGFsbCB0aGUgaW5wdXQgYml0cyBwZXIgY29tcG9uZW50Cj4gKyAqIHZhbHVlcyBzdXBwb3J0ZWQg YnkgdGhlIERTQyBzaW5rLgo+ICsgKiBAZHNjX2RwY2Q6IERTQyBjYXBhYmlsaXRpZXMgZnJvbSBE UENECj4gKyAqIEBkc2NfYnBjOiBBbiBhcnJheSB0byBiZSBmaWxsZWQgYnkgdGhpcyBoZWxwZXIg d2l0aCBzdXBwb3J0ZWQKPiArICogICAgICAgICAgIGlucHV0IGJwY3MuCj4gKyAqCj4gKyAqIFJl YWQgdGhlIERTQyBEUENEIGZyb20gdGhlIHNpbmsgZGV2aWNlIHRvIHBhcnNlIHRoZSBzdXBwb3J0 ZWQgYml0cyBwZXIKPiArICogY29tcG9uZW50IHZhbHVlcy4gVGhpcyBpcyB1c2VkIHRvIHBvcHVs YXRlIHRoZSBEU0MgcGFyYW1ldGVycwo+ICsgKiBpbiB0aGUgJnN0cnVjdCBkcm1fZHNjX2NvbmZp ZyBieSB0aGUgZHJpdmVyLgo+ICsgKiBEcml2ZXIgY3JlYXRlcyBhbiBpbmZvZnJhbWUgdXNpbmcg dGhlc2UgcGFyYW1ldGVycyB0byBwb3B1bGF0ZQo+ICsgKiAmc3RydWN0IGRybV9kc2NfcHBzX2lu Zm9mcmFtZS4gVGhlc2UgYXJlIHNlbnQgdG8gdGhlIHNpbmsgdXNpbmcgRFNDCj4gKyAqIGluZm9m cmFtZSB1c2luZyB0aGUgaGVscGVyIGZ1bmN0aW9uIGRybV9kc2NfcHBzX2luZm9mcmFtZV9wYWNr KCkKPiArICoKPiArICogUmV0dXJuczoKPiArICogTnVtYmVyIG9mIGlucHV0IEJQQyB2YWx1ZXMg cGFyc2VkIGZyb20gdGhlIERQQ0QKPiArICovCj4gIGludCBkcm1fZHBfZHNjX3Npbmtfc3VwcG9y dGVkX2lucHV0X2JwY3MoY29uc3QgdTggZHNjX2RwY2RbRFBfRFNDX1JFQ0VJVkVSX0NBUF9TSVpF XSwKPiAgCQkJCQkgdTggZHNjX2JwY1szXSkKPiAgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2RzYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kc2MuYwo+IGluZGV4IGJjMmIy M2FkYjA3Mi4uYmNlOTlmOTVjMWEzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZHNjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RzYy5jCj4gQEAgLTE3LDYgKzE3LDEy IEBACj4gIC8qKgo+ICAgKiBET0M6IGRzYyBoZWxwZXJzCj4gICAqCj4gKyAqIFZFU0Egc3BlY2lm aWNhdGlvbiBmb3IgRFAgMS40IGFkZHMgYSBuZXcgZmVhdHVyZSBjYWxsZWQgRGlzcGxheSBTdHJl YW0KPiArICogQ29tcHJlc3Npb24gKERTQykgdXNlZCB0byBjb21wcmVzcyB0aGUgcGl4ZWwgYml0 cyBiZWZvcmUgc2VuZGluZyBpdCBvbgo+ICsgKiBEUC9lRFAvTUlQSSBEU0kgaW50ZXJmYWNlLiBE U0MgaXMgcmVxdWlyZWQgdG8gYmUgZW5hYmxlZCBzbyB0aGF0IHRoZSBleGlzdGluZwo+ICsgKiBk aXNwbGF5IGludGVyZmFjZXMgY2FuIHN1cHBvcnQgaGlnaCByZXNvbHV0aW9ucyBhdCBoaWdoZXIg ZnJhbWVzIHJhdGVzIHVpc25nCj4gKyAqIHRoZSBtYXhpbXVtIGF2YWlsYWJsZSBsaW5rIGNhcGFj aXR5IG9mIHRoZXNlIGludGVyZmFjZXMuCj4gKyAqCj4gICAqIFRoZXNlIGZ1bmN0aW9ucyBjb250 YWluIHNvbWUgY29tbW9uIGxvZ2ljIGFuZCBoZWxwZXJzIHRvIGRlYWwgd2l0aCBWRVNBCj4gICAq IERpc3BsYXkgU3RyZWFtIENvbXByZXNzaW9uIHN0YW5kYXJkIHJlcXVpcmVkIGZvciBEU0Mgb24g RGlzcGxheSBQb3J0L2VEUCBvcgo+ICAgKiBNSVBJIGRpc3BsYXkgaW50ZXJmYWNlcy4KPiBAQCAt MjYsNiArMzIsMTMgQEAKPiAgICogZHJtX2RzY19kcF9wcHNfaGVhZGVyX2luaXQoKSAtIEluaXRp YWxpemVzIHRoZSBQUFMgSGVhZGVyCj4gICAqIGZvciBEaXNwbGF5UG9ydCBhcyBwZXIgdGhlIERQ IDEuNCBzcGVjLgo+ICAgKiBAcHBzX3NkcDogU2Vjb25kYXJ5IGRhdGEgcGFja2V0IGZvciBEU0Mg UGljdHVyZSBQYXJhbWV0ZXIgU2V0Cj4gKyAqICAgICAgICAgICBhcyBkZWZpbmVkIGluICZzdHJ1 Y3QgZHJtX2RzY19wcHNfaW5mb2ZyYW1lCj4gKyAqCj4gKyAqIERQIDEuNCBzcGVjIGRlZmluZXMg dGhlIHNlY29uZGFyeSBkYXRhIHBhY2tldCBmb3Igc2VuZGluZyB0aGUKPiArICogcGljdHVyZSBw YXJhbWV0ZXIgaW5mb2ZyYW1lcyBmcm9tIHRoZSBzb3VyY2UgdG8gdGhlIHNpbmsuCj4gKyAqIFRo aXMgZnVuY3Rpb24gcG9wdWxhdGVzIHRoZSBwcHMgaGVhZGVyIGRlZmluZWQgaW4KPiArICogJnN0 cnVjdCBkcm1fZHNjX3Bwc19pbmZvZnJhbWUgYXMgcGVyIHRoZSBoZWFkZXIgYnl0ZXMgZGVmaW5l ZAo+ICsgKiBpbiAmc3RydWN0IGRwX3NkcF9oZWFkZXIuCj4gICAqLwo+ICB2b2lkIGRybV9kc2Nf ZHBfcHBzX2hlYWRlcl9pbml0KHN0cnVjdCBkcm1fZHNjX3Bwc19pbmZvZnJhbWUgKnBwc19zZHAp Cj4gIHsKPiBAQCAtMzgsMTUgKzUxLDIwIEBAIEVYUE9SVF9TWU1CT0woZHJtX2RzY19kcF9wcHNf aGVhZGVyX2luaXQpOwo+ICAKPiAgLyoqCj4gICAqIGRybV9kc2NfcHBzX2luZm9mcmFtZV9wYWNr KCkgLSBQb3B1bGF0ZXMgdGhlIERTQyBQUFMgaW5mb2ZyYW1lCj4gLSAqIHVzaW5nIHRoZSBEU0Mg Y29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGluIHRoZSBvcmRlciBleHBlY3RlZAo+IC0gKiBieSB0 aGUgRFNDIERpc3BsYXkgU2luayBkZXZpY2UuIEZvciB0aGUgRFNDLCB0aGUgc2luayBkZXZpY2UK PiAtICogZXhwZWN0cyB0aGUgUFBTIHBheWxvYWQgaW4gdGhlIGJpZyBlbmRpYW4gZm9ybWF0IGZv ciB0aGUgZmllbGRzCj4gLSAqIHRoYXQgc3BhbiBtb3JlIHRoYW4gMSBieXRlLgo+ICAgKgo+ICAg KiBAcHBzX3NkcDoKPiAtICogU2Vjb25kYXJ5IGRhdGEgcGFja2V0IGZvciBEU0MgUGljdHVyZSBQ YXJhbWV0ZXIgU2V0Cj4gKyAqIFNlY29uZGFyeSBkYXRhIHBhY2tldCBmb3IgRFNDIFBpY3R1cmUg UGFyYW1ldGVyIFNldC4gVGhpcyBpcyBkZWZpbmVkCj4gKyAqIGJ5ICZzdHJ1Y3QgZHJtX2RzY19w cHNfaW5mb2ZyYW1lCj4gICAqIEBkc2NfY2ZnOgo+IC0gKiBEU0MgQ29uZmlndXJhdGlvbiBkYXRh IGZpbGxlZCBieSBkcml2ZXIKPiArICogRFNDIENvbmZpZ3VyYXRpb24gZGF0YSBmaWxsZWQgYnkg ZHJpdmVyIGFzIGRlZmluZWQgYnkKPiArICogJnN0cnVjdCBkcm1fZHNjX2NvbmZpZwo+ICsgKgo+ ICsgKiBEU0Mgc291cmNlIGRldmljZSBzZW5kcyBhIHNlY29uZGFyeSBkYXRhIHBhY2tldCBmaWxs ZWQgd2l0aCBhbGwgdGhlCj4gKyAqIHBpY3R1cmUgcGFyYW1ldGVyIHNldCAoUFBTKSBpbmZvcm1h dGlvbiByZXF1aXJlZCBieSB0aGUgc2luayB0byBkZWNvZGUKPiArICogdGhlIGNvbXByZXNzZWQg ZnJhbWUuIERyaXZlciBwb3B1bGF0ZXMgdGhlIGRzQyBQUFMgaW5mb2ZyYW1lIHVzaW5nIHRoZSBE U0MKPiArICogY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGluIHRoZSBvcmRlciBleHBlY3RlZCBi eSB0aGUgRFNDIERpc3BsYXkgU2luawo+ICsgKiBkZXZpY2UuIEZvciB0aGUgRFNDLCB0aGUgc2lu ayBkZXZpY2UgZXhwZWN0cyB0aGUgUFBTIHBheWxvYWQgaW4gdGhlIGJpZwo+ICsgKiBlbmRpYW4g Zm9ybWF0IGZvciB0aGUgZmllbGRzIHRoYXQgc3BhbiBtb3JlIHRoYW4gMSBieXRlLgo+ICAgKi8K PiAgdm9pZCBkcm1fZHNjX3Bwc19pbmZvZnJhbWVfcGFjayhzdHJ1Y3QgZHJtX2RzY19wcHNfaW5m b2ZyYW1lICpwcHNfc2RwLAo+ICAJCQkJY29uc3Qgc3RydWN0IGRybV9kc2NfY29uZmlnICpkc2Nf Y2ZnKQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmggYi9pbmNsdWRl L2RybS9kcm1fZHBfaGVscGVyLmgKPiBpbmRleCA1ZGI3ZmI4YzhiNTAuLjI3MTFjZGZhMGMxMyAx MDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKPiArKysgYi9pbmNsdWRl L2RybS9kcm1fZHBfaGVscGVyLmgKPiBAQCAtMTA1MiwxMSArMTA1MiwxOCBAQCBpbnQgZHJtX2Rw X2J3X2NvZGVfdG9fbGlua19yYXRlKHU4IGxpbmtfYncpOwo+ICAjZGVmaW5lIERQX1NEUF9WU0Nf RVhUX0NFQQkJMHgyMSAvKiBEUCAxLjQgKi8KPiAgLyogMHg4MCsgQ0VBLTg2MSBpbmZvZnJhbWUg dHlwZXMgKi8KPiAgCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHBfc2RwX2hlYWRlciAtIERQIHNlY29u ZGFyeSBkYXRhIHBhY2tldCBoZWFkZXIKPiArICogQEhCMDogU2Vjb25kYXJ5IERhdGEgUGFja2V0 IElECj4gKyAqIEBIQjE6IFNlY29uZGFyeSBEYXRhIFBhY2tldCBUeXBlCj4gKyAqIEBIQjI6IFNl Y29uZGFyeSBEYXRhIFBhY2tldCBTcGVjaWZpYyBoZWFkZXIsIEJ5dGUgMAo+ICsgKiBASEIzOiBT ZWNvbmRhcnkgRGF0YSBwYWNrZXQgU3BlY2lmaWMgaGVhZGVyLCBCeXRlIDEKPiArICovCj4gIHN0 cnVjdCBkcF9zZHBfaGVhZGVyIHsKPiAtCXU4IEhCMDsgLyogU2Vjb25kYXJ5IERhdGEgUGFja2V0 IElEICovCj4gLQl1OCBIQjE7IC8qIFNlY29uZGFyeSBEYXRhIFBhY2tldCBUeXBlICovCj4gLQl1 OCBIQjI7IC8qIFNlY29uZGFyeSBEYXRhIFBhY2tldCBTcGVjaWZpYyBoZWFkZXIsIEJ5dGUgMCAq Lwo+IC0JdTggSEIzOyAvKiBTZWNvbmRhcnkgRGF0YSBwYWNrZXQgU3BlY2lmaWMgaGVhZGVyLCBC eXRlIDEgKi8KPiArCXU4IEhCMDsKPiArCXU4IEhCMTsKPiArCXU4IEhCMjsKPiArCXU4IEhCMzsK PiAgfSBfX3BhY2tlZDsKPiAgCj4gICNkZWZpbmUgRURQX1NEUF9IRUFERVJfUkVWSVNJT05fTUFT SwkJMHgxRgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHNjLmggYi9pbmNsdWRlL2Ry bS9kcm1fZHNjLmgKPiBpbmRleCBkMDNmMWI4MzQyMWEuLjljMjZmMDgzYzcwZiAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL2RybS9kcm1fZHNjLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZHNjLmgK PiBAQCAtNDQsMTExICs0NCwyMzEgQEAKPiAgI2RlZmluZSBEU0NfMV8yX01BWF9MSU5FQlVGX0RF UFRIX1ZBTAkJMAo+ICAjZGVmaW5lIERTQ18xXzFfTUFYX0xJTkVCVUZfREVQVEhfQklUUwkJMTMK PiAgCj4gLS8qIENvbmZpZ3VyYXRpb24gZm9yIGEgc2luZ2xlIFJhdGUgQ29udHJvbCBtb2RlbCBy YW5nZSAqLwo+ICsvKioKPiArICogc3RydWN0IGRybV9kc2NfcmNfcmFuZ2VfcGFyYW1ldGVycyAt IERTQyBSYXRlIENvbnRyb2wgcmFuZ2UgcGFyYW1ldGVycwo+ICsgKgo+ICsgKiBUaGlzIGRlZmlu ZXMgZGlmZmVyZW50IHJhdGUgY29udHJvbCBwYXJhbWV0ZXJzIHVzZWQgYnkgdGhlIERTQyBlbmdp bmUKPiArICogdG8gY29tcHJlc3MgdGhlIGZyYW1lLgo+ICsgKi8KPiAgc3RydWN0IGRybV9kc2Nf cmNfcmFuZ2VfcGFyYW1ldGVycyB7Cj4gLQkvKiBNaW4gUXVhbnRpemF0aW9uIFBhcmFtZXRlcnMg YWxsb3dlZCBmb3IgdGhpcyByYW5nZSAqLwo+ICsJLyoqCj4gKwkgKiBAcmFuZ2VfbWluX3FwOiBN aW4gUXVhbnRpemF0aW9uIFBhcmFtZXRlcnMgYWxsb3dlZCBmb3IgdGhpcyByYW5nZQo+ICsJICov Cj4gIAl1OCByYW5nZV9taW5fcXA7Cj4gLQkvKiBNYXggUXVhbnRpemF0aW9uIFBhcmFtZXRlcnMg YWxsb3dlZCBmb3IgdGhpcyByYW5nZSAqLwo+ICsJLyoqCj4gKwkgKiBAcmFuZ2VfbWF4X3FwOiBN YXggUXVhbnRpemF0aW9uIFBhcmFtZXRlcnMgYWxsb3dlZCBmb3IgdGhpcyByYW5nZQo+ICsJICov Cj4gIAl1OCByYW5nZV9tYXhfcXA7Cj4gLQkvKiBCaXRzL2dyb3VwIG9mZnNldCB0byBhcHBseSB0 byB0YXJnZXQgZm9yIHRoaXMgZ3JvdXAgKi8KPiArCS8qKgo+ICsJICogQHJhbmdlX2JwZ19vZmZz ZXQ6Cj4gKwkgKiBCaXRzL2dyb3VwIG9mZnNldCB0byBhcHBseSB0byB0YXJnZXQgZm9yIHRoaXMg Z3JvdXAKPiArCSAqLwo+ICAJdTggcmFuZ2VfYnBnX29mZnNldDsKPiAgfTsKPiAgCj4gKy8qKgo+ ICsgKiBzdHJ1Y3QgZHJtX2RzY19jb25maWcgLSBQYXJhbWV0ZXJzIHJlcXVpcmVkIHRvIGNvbmZp Z3VyZSBEU0MKPiArICoKPiArICogRHJpdmVyIHBvcHVsYXRlcyB0aGlzIHN0cnVjdHVyZSB3aXRo IGFsbCB0aGUgcGFyYW1ldGVycyByZXF1aXJlZAo+ICsgKiB0byBjb25maWd1cmUgdGhlIGRpc3Bs YXkgc3RyZWFtIGNvbXByZXNzaW9uIG9uIHRoZSBzb3VyY2UuCj4gKyAqLwo+ICBzdHJ1Y3QgZHJt X2RzY19jb25maWcgewo+IC0JLyogQml0cyAvIGNvbXBvbmVudCBmb3IgcHJldmlvdXMgcmVjb25z dHJ1Y3RlZCBsaW5lIGJ1ZmZlciAqLwo+ICsJLyoqCj4gKwkgKiBAbGluZV9idWZfZGVwdGg6Cj4g KwkgKiBCaXRzIHBlciBjb21wb25lbnQgZm9yIHByZXZpb3VzIHJlY29uc3RydWN0ZWQgbGluZSBi dWZmZXIKPiArCSAqLwo+ICAJdTggbGluZV9idWZfZGVwdGg7Cj4gLQkvKiBCaXRzIHBlciBjb21w b25lbnQgdG8gY29kZSAobXVzdCBiZSA4LCAxMCwgb3IgMTIpICovCj4gKwkvKioKPiArCSAqIEBi aXRzX3Blcl9jb21wb25lbnQ6IEJpdHMgcGVyIGNvbXBvbmVudCB0byBjb2RlICg4LzEwLzEyKQo+ ICsJICovCj4gIAl1OCBiaXRzX3Blcl9jb21wb25lbnQ7Cj4gLQkvKgo+IC0JICogRmxhZyBpbmRp Y2F0aW5nIHRvIGRvIFJHQiAtIFlDb0NnIGNvbnZlcnNpb24KPiAtCSAqIGFuZCBiYWNrIChzaG91 bGQgYmUgMSBmb3IgUkdCIGlucHV0KQo+ICsJLyoqCj4gKwkgKiBAY29udmVydF9yZ2I6Cj4gKwkg KiBGbGFnIHRvIGluZGljYXRlIGlmIFJHQiAtIFlDb0NnIGNvbnZlcnNpb24gaXMgbmVlZGVkCj4g KwkgKiBUcnVlIGlmIFJHQiBpbnB1dCwgRmFsc2UgaWYgWUNvQ2cgaW5wdXQKPiAgCSAqLwo+ICAJ Ym9vbCBjb252ZXJ0X3JnYjsKPiArCS8qKgo+ICsJICogQHNsaWNlX2NvdW50OiBOdW1iZXIgZm8g c2xpY2VzIHBlciBsaW5lIHVzZWQgYnkgdGhlIERTQyBlbmNvZGVyCj4gKwkgKi8KPiAgCXU4IHNs aWNlX2NvdW50Owo+IC0JLyogU2xpY2UgV2lkdGggKi8KPiArCS8qKgo+ICsJICogIEBzbGljZV93 aWR0aDogV2lkdGggb2YgZWFjaCBzbGljZSBpbiBwaXhlbHMKPiArCSAqLwo+ICAJdTE2IHNsaWNl X3dpZHRoOwo+IC0JLyogU2xpY2UgSGVpZ2h0ICovCj4gKwkvKioKPiArCSAqIEBzbGljZV9oZWln aHQ6IFNsaWNlIGhlaWdodCBpbiBwaXhlbHMKPiArCSAqLwo+ICAJdTE2IHNsaWNlX2hlaWdodDsK PiAtCS8qCj4gLQkgKiA0OjI6MiBlbmFibGUgbW9kZSAoZnJvbSBQUFMsIDQ6MjoyIGNvbnZlcnNp b24gaGFwcGVucwo+IC0JICogb3V0c2lkZSBvZiBEU0MgZW5jb2RlL2RlY29kZSBhbGdvcml0aG0p Cj4gKwkvKioKPiArCSAqIEBlbmFibGU0MjI6IFRydWUgZm9yIDRfMl8yIHNhbXBsaW5nLCBmYWxz ZSBmb3IgNF80XzQgc2FtcGxpbmcKPiAgCSAqLwo+ICAJYm9vbCBlbmFibGU0MjI7Cj4gLQkvKiBQ aWN0dXJlIFdpZHRoICovCj4gKwkvKioKPiArCSAqIEBwaWNfd2lkdGg6IFdpZHRoIG9mIHRoZSBp bnB1dCBkaXNwbGF5IGZyYW1lIGluIHBpeGVscwo+ICsJICovCj4gIAl1MTYgcGljX3dpZHRoOwo+ IC0JLyogUGljdHVyZSBIZWlnaHQgKi8KPiArCS8qKgo+ICsJICogQHBpY19oZWlnaHQ6IFZlcnRp Y2FsIGhlaWdodCBvZiB0aGUgaW5wdXQgZGlzcGxheSBmcmFtZQo+ICsJICovCj4gIAl1MTYgcGlj X2hlaWdodDsKPiAtCS8qIE9mZnNldCB0byBiaXRzL2dyb3VwIHVzZWQgYnkgUkMgdG8gZGV0ZXJt aW5lIFFQIGFkanVzdG1lbnQgKi8KPiArCS8qKgo+ICsJICogQHJjX3RndF9vZmZzZXRfaGlnaDoK PiArCSAqIE9mZnNldCB0byBiaXRzL2dyb3VwIHVzZWQgYnkgUkMgdG8gZGV0ZXJtaW5lIFFQIGFk anVzdG1lbnQKPiArCSAqLwo+ICAJdTggcmNfdGd0X29mZnNldF9oaWdoOwo+IC0JLyogT2Zmc2V0 IHRvIGJpdHMvZ3JvdXAgdXNlZCBieSBSQyB0byBkZXRlcm1pbmUgUVAgYWRqdXN0bWVudCAqLwo+ ICsJLyoqCj4gKwkgKiBAcmNfdGd0X29mZnNldF9sb3c6Cj4gKwkgKiBPZmZzZXQgdG8gYml0cy9n cm91cCB1c2VkIGJ5IFJDIHRvIGRldGVybWluZSBRUCBhZGp1c3RtZW50Cj4gKwkgKi8KPiAgCXU4 IHJjX3RndF9vZmZzZXRfbG93Owo+IC0JLyogQml0cy9waXhlbCB0YXJnZXQgPDwgNCAoaWUuLCA0 IGZyYWN0aW9uYWwgYml0cykgKi8KPiArCS8qKgo+ICsJICogQGJpdHNfcGVyX3BpeGVsOgo+ICsJ ICogVGFyZ2V0IGJpdHMgcGVyIHBpeGVsIHdpdGggNCBmcmFjdGlvbmFsIGJpdHMsIGJpdHNfcGVy X3BpeGVsIDw8IDQKPiArCSAqLwo+ICAJdTE2IGJpdHNfcGVyX3BpeGVsOwo+IC0JLyoKPiAtCSAq IEZhY3RvciB0byBkZXRlcm1pbmUgaWYgYW4gZWRnZSBpcyBwcmVzZW50IGJhc2VkCj4gLQkgKiBv biB0aGUgYml0cyBwcm9kdWNlZAo+ICsJLyoqCj4gKwkgKiBAcmNfZWRnZV9mYWN0b3I6Cj4gKwkg KiBGYWN0b3IgdG8gZGV0ZXJtaW5lIGlmIGFuIGVkZ2UgaXMgcHJlc2VudCBiYXNlZCBvbiB0aGUg Yml0cyBwcm9kdWNlZAo+ICAJICovCj4gIAl1OCByY19lZGdlX2ZhY3RvcjsKPiAtCS8qIFNsb3cg ZG93biBpbmNyZW1lbnRpbmcgb25jZSB0aGUgcmFuZ2UgcmVhY2hlcyB0aGlzIHZhbHVlICovCj4g KwkvKioKPiArCSAqIEByY19xdWFudF9pbmNyX2xpbWl0MToKPiArCSAqIFNsb3cgZG93biBpbmNy ZW1lbnRpbmcgb25jZSB0aGUgcmFuZ2UgcmVhY2hlcyB0aGlzIHZhbHVlCj4gKwkgKi8KPiAgCXU4 IHJjX3F1YW50X2luY3JfbGltaXQxOwo+IC0JLyogU2xvdyBkb3duIGluY3JlbWVudGluZyBvbmNl IHRoZSByYW5nZSByZWFjaGVzIHRoaXMgdmFsdWUgKi8KPiArCS8qKgo+ICsJICogQHJjX3F1YW50 X2luY3JfbGltaXQwOgo+ICsJICogU2xvdyBkb3duIGluY3JlbWVudGluZyBvbmNlIHRoZSByYW5n ZSByZWFjaGVzIHRoaXMgdmFsdWUKPiArCSAqLwo+ICAJdTggcmNfcXVhbnRfaW5jcl9saW1pdDA7 Cj4gLQkvKiBOdW1iZXIgb2YgcGl4ZWxzIHRvIGRlbGF5IHRoZSBpbml0aWFsIHRyYW5zbWlzc2lv biAqLwo+ICsJLyoqCj4gKwkgKiBAaW5pdGlhbF94bWl0X2RlbGF5Ogo+ICsJICogTnVtYmVyIG9m IHBpeGVscyB0byBkZWxheSB0aGUgaW5pdGlhbCB0cmFuc21pc3Npb24KPiArCSAqLwo+ICAJdTE2 IGluaXRpYWxfeG1pdF9kZWxheTsKPiAtCS8qIE51bWJlciBvZiBwaXhlbHMgdG8gZGVsYXkgdGhl IFZMRCBvbiB0aGUgZGVjb2Rlcixub3QgaW5jbHVkaW5nIFNTTSAqLwo+ICsJLyoqCj4gKwkgKiBA aW5pdGlhbF9kZWNfZGVsYXk6Cj4gKwkgKiBJbml0aWFsIGRlY29kZXIgZGVsYXksIG51bWJlciBv ZiBwaXhlbCB0aW1lcyB0aGF0IHRoZSBkZWNvZGVyCj4gKwkgKiBhY2N1bXVsYXRlcyBkYXRhIGlu IGl0cyByYXRlIGJ1ZmZlciBiZWZvcmUgc3RhcnRpbmcgdG8gZGVjb2RlCj4gKwkgKiBhbmQgb3V0 cHV0IHBpeGVscy4KPiArCSAqLwo+ICAJdTE2ICBpbml0aWFsX2RlY19kZWxheTsKPiAtCS8qIEJs b2NrIHByZWRpY3Rpb24gZW5hYmxlICovCj4gKwkvKioKPiArCSAqIEBibG9ja19wcmVkX2VuYWJs ZToKPiArCSAqIFRydWUgaWYgYmxvY2sgcHJlZGljdGlvbiBpcyB1c2VkIHRvIGNvZGUgYW55IGdy b3VwcyB3aXRoaW4gdGhlCj4gKwkgKiBwaWN0dXJlLiBGYWxzZSBpZiBCUCBub3QgdXNlZAo+ICsJ ICovCj4gIAlib29sIGJsb2NrX3ByZWRfZW5hYmxlOwo+IC0JLyogQml0cy9ncm91cCBvZmZzZXQg dG8gdXNlIGZvciBmaXJzdCBsaW5lIG9mIHRoZSBzbGljZSAqLwo+ICsJLyoqCj4gKwkgKiBAZmly c3RfbGluZV9icGdfb2Zmc2V0Ogo+ICsJICogTnVtYmVyIG9mIGFkZGl0aW9uYWwgYml0cyBhbGxv Y2F0ZWQgZm9yIGVhY2ggZ3JvdXAgb24gdGhlIGZpcnN0Cj4gKwkgKiBsaW5lIG9mIHNsaWNlLgo+ ICsJICovCj4gIAl1OCBmaXJzdF9saW5lX2JwZ19vZmZzZXQ7Cj4gLQkvKiBWYWx1ZSB0byB1c2Ug Zm9yIFJDIG1vZGVsIG9mZnNldCBhdCBzbGljZSBzdGFydCAqLwo+ICsJLyoqCj4gKwkgKiBAaW5p dGlhbF9vZmZzZXQ6IFZhbHVlIHRvIHVzZSBmb3IgUkMgbW9kZWwgb2Zmc2V0IGF0IHNsaWNlIHN0 YXJ0Cj4gKwkgKi8KPiAgCXUxNiBpbml0aWFsX29mZnNldDsKPiAtCS8qIFRocmVzaG9sZHMgZGVm aW5pbmcgZWFjaCBvZiB0aGUgYnVmZmVyIHJhbmdlcyAqLwo+ICsJLyoqCj4gKwkgKiBAcmNfYnVm X3RocmVzaDogVGhyZXNob2xkcyBkZWZpbmluZyBlYWNoIG9mIHRoZSBidWZmZXIgcmFuZ2VzCj4g KwkgKi8KPiAgCXUxNiByY19idWZfdGhyZXNoW0RTQ19OVU1fQlVGX1JBTkdFUyAtIDFdOwo+IC0J LyogUGFyYW1ldGVycyBmb3IgZWFjaCBvZiB0aGUgUkMgcmFuZ2VzICovCj4gKwkvKioKPiArCSAq IEByY19yYW5nZV9wYXJhbXM6Cj4gKwkgKiBQYXJhbWV0ZXJzIGZvciBlYWNoIG9mIHRoZSBSQyBy YW5nZXMgZGVmaW5lZCBpbgo+ICsJICogJnN0cnVjdCBkcm1fZHNjX3JjX3JhbmdlX3BhcmFtZXRl cnMKPiArCSAqLwo+ICAJc3RydWN0IGRybV9kc2NfcmNfcmFuZ2VfcGFyYW1ldGVycyByY19yYW5n ZV9wYXJhbXNbRFNDX05VTV9CVUZfUkFOR0VTXTsKPiAtCS8qIFRvdGFsIHNpemUgb2YgUkMgbW9k ZWwgKi8KPiArCS8qKgo+ICsJICogQHJjX21vZGVsX3NpemU6IFRvdGFsIHNpemUgb2YgUkMgbW9k ZWwKPiArCSAqLwo+ICAJdTE2IHJjX21vZGVsX3NpemU7Cj4gLQkvKiBNaW5pbXVtIFFQIHdoZXJl IGZsYXRuZXNzIGluZm9ybWF0aW9uIGlzIHNlbnQgKi8KPiArCS8qKgo+ICsJICogQGZsYXRuZXNz X21pbl9xcDogTWluaW11bSBRUCB3aGVyZSBmbGF0bmVzcyBpbmZvcm1hdGlvbiBpcyBzZW50Cj4g KwkgKi8KPiAgCXU4IGZsYXRuZXNzX21pbl9xcDsKPiAtCS8qIE1heGltdW0gUVAgd2hlcmUgZmxh dG5lc3MgaW5mb3JtYXRpb24gaXMgc2VudCAqLwo+ICsJLyoqCj4gKwkgKiBAZmxhdG5lc3NfbWF4 X3FwOiBNYXhpbXVtIFFQIHdoZXJlIGZsYXRuZXNzIGluZm9ybWF0aW9uIGlzIHNlbnQKPiArCSAq Lwo+ICAJdTggZmxhdG5lc3NfbWF4X3FwOwo+IC0JLyogSW5pdGlhbCB2YWx1ZSBmb3Igc2NhbGUg ZmFjdG9yICovCj4gKwkvKioKPiArCSAqIEBpbml0aWFsX3NjYWxlX3ZhbHVlOiBJbml0aWFsIHZh bHVlIGZvciB0aGUgc2NhbGUgZmFjdG9yCj4gKwkgKi8KPiAgCXU4IGluaXRpYWxfc2NhbGVfdmFs dWU7Cj4gLQkvKiBEZWNyZW1lbnQgc2NhbGUgZmFjdG9yIGV2ZXJ5IHNjYWxlX2RlY3JlbWVudF9p bnRlcnZhbCBncm91cHMgKi8KPiArCS8qKgo+ICsJICogQHNjYWxlX2RlY3JlbWVudF9pbnRlcnZh bDoKPiArCSAqIFNwZWNpZmllcyBudW1iZXIgb2YgZ3JvdXAgdGltZXMgYmV0d2VlbiBkZWNyZW1l bnRpbmcgdGhlIHNjYWxlIGZhY3Rvcgo+ICsJICogYXQgYmVnaW5uaW5nIG9mIGEgc2xpY2UuCj4g KwkgKi8KPiAgCXUxNiBzY2FsZV9kZWNyZW1lbnRfaW50ZXJ2YWw7Cj4gLQkvKiBJbmNyZW1lbnQg c2NhbGUgZmFjdG9yIGV2ZXJ5IHNjYWxlX2luY3JlbWVudF9pbnRlcnZhbCBncm91cHMgKi8KPiAr CS8qKgo+ICsJICogQHNjYWxlX2luY3JlbWVudF9pbnRlcnZhbDoKPiArCSAqIE51bWJlciBvZiBn cm91cCB0aW1lcyBiZXR3ZWVuIGluY3JlbWVudGluZyB0aGUgc2NhbGUgZmFjdG9yIHZhbHVlCj4g KwkgKiB1c2VkIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBzbGljZS4KPiArCSAqLwo+ICAJdTE2IHNj YWxlX2luY3JlbWVudF9pbnRlcnZhbDsKPiAtCS8qIE5vbi1maXJzdCBsaW5lIEJQRyBvZmZzZXQg dG8gdXNlICovCj4gKwkvKioKPiArCSAqIEBuZmxfYnBnX29mZnNldDogTm9uIGZpcnN0IGxpbmUg QlBHIG9mZnNldCB0byBiZSB1c2VkCj4gKwkgKi8KPiAgCXUxNiBuZmxfYnBnX29mZnNldDsKPiAt CS8qIEJQRyBvZmZzZXQgdXNlZCB0byBlbmZvcmNlIHNsaWNlIGJpdCAqLwo+ICsJLyoqCj4gKwkg KiBAc2xpY2VfYnBnX29mZnNldDogQlBHIG9mZnNldCB1c2VkIHRvIGVuZm9yY2Ugc2xpY2UgYml0 Cj4gKwkgKi8KPiAgCXUxNiBzbGljZV9icGdfb2Zmc2V0Owo+IC0JLyogRmluYWwgUkMgbGluZWFy IHRyYW5zZm9ybWF0aW9uIG9mZnNldCB2YWx1ZSAqLwo+ICsJLyoqCj4gKwkgKiBAZmluYWxfb2Zm c2V0OiBGaW5hbCBSQyBsaW5lYXIgdHJhbnNmb3JtYXRpb24gb2Zmc2V0IHZhbHVlCj4gKwkgKi8K PiAgCXUxNiBmaW5hbF9vZmZzZXQ7Cj4gLQkvKiBFbmFibGUgb24tb2ZmIFZCUiAoaWUuLCBkaXNh YmxlIHN0dWZmaW5nIGJpdHMpICovCj4gKwkvKioKPiArCSAqIEB2YnJfZW5hYmxlOiBUcnVlIGlm IFZCUiBtb2RlIGlzIGVuYWJsZWQsIGZhbHNlIGlmIGRpc2FibGVkCj4gKwkgKi8KPiAgCWJvb2wg dmJyX2VuYWJsZTsKPiAtCS8qIE11eCB3b3JkIHNpemUgKGluIGJpdHMpIGZvciBTU00gbW9kZSAq Lwo+ICsJLyoqCj4gKwkgKiBAbXV4X3dvcmRfc2l6ZTogTXV4IHdvcmQgc2l6ZSAoaW4gYml0cykg Zm9yIFNTTSBtb2RlCj4gKwkgKi8KPiAgCXU4IG11eF93b3JkX3NpemU7Cj4gLQkvKgo+IC0JICog VGhlIChtYXgpIHNpemUgaW4gYnl0ZXMgb2YgdGhlICJjaHVua3MiIHRoYXQgYXJlCj4gLQkgKiB1 c2VkIGluIHNsaWNlIG11bHRpcGxleGluZwo+ICsJLyoqCj4gKwkgKiBAc2xpY2VfY2h1bmtfc2l6 ZToKPiArCSAqIFRoZSAobWF4KSBzaXplIGluIGJ5dGVzIG9mIHRoZSAiY2h1bmtzIiB0aGF0IGFy ZSB1c2VkIGluIHNsaWNlCj4gKwkgKiBtdWx0aXBsZXhpbmcuCj4gIAkgKi8KPiAgCXUxNiBzbGlj ZV9jaHVua19zaXplOwo+IC0JLyogUmF0ZSBDb250cm9sIGJ1ZmZlciBzaXogaW4gYml0cyAqLwo+ ICsJLyoqCj4gKwkgKiBAcmNfYml0czogUmF0ZSBjb250cm9sIGJ1ZmZlciBzaXplIGluIGJpdHMK PiArCSAqLwo+ICAJdTE2IHJjX2JpdHM7Cj4gLQkvKiBEU0MgTWlub3IgVmVyc2lvbiAqLwo+ICsJ LyoqCj4gKwkgKiBAZHNjX3ZlcnNpb25fbWlub3I6IERTQyBtaW5vciB2ZXJzaW9uCj4gKwkgKi8K PiAgCXU4IGRzY192ZXJzaW9uX21pbm9yOwo+IC0JLyogRFNDIE1ham9yIHZlcnNpb24gKi8KPiAr CS8qKgo+ICsJICogQGRzY192ZXJzaW9uX21ham9yOiBEU0MgbWFqb3IgdmVyc2lvbgo+ICsJICov Cj4gIAl1OCBkc2NfdmVyc2lvbl9tYWpvcjsKPiAtCS8qIE5hdGl2ZSA0OjI6MiBzdXBwb3J0ICov Cj4gKwkvKioKPiArCSAqIEBuYXRpdmVfNDIyOiBUcnVlIGlmIE5hdGl2ZSA0OjI6MiBzdXBwb3J0 ZWQsIGVsc2UgZmFsc2UKPiArCSAqLwo+ICAJYm9vbCBuYXRpdmVfNDIyOwo+IC0JLyogTmF0aXZl IDQ6MjowIHN1cHBvcnQgKi8KPiArCS8qKgo+ICsJICogQG5hdGl2ZV80MjA6IFRydWUgaWYgTmF0 aXZlIDQ6MjowIHN1cHBvcnRlZCBlbHNlIGZhbHNlLgo+ICsJICovCj4gIAlib29sIG5hdGl2ZV80 MjA7Cj4gLQkvKiBBZGRpdGlvbmFsIGJpdHMvZ3JwIGZvciBzZWNvbm5kIGxpbmUgb2Ygc2xpY2Ug Zm9yIG5hdGl2ZSA0OjI6MCAqLwo+ICsJLyoqCj4gKwkgKiBAc2Vjb25kX2xpbmVfYnBnX29mZnNl dDoKPiArCSAqIEFkZGl0aW9uYWwgYml0cy9ncnAgZm9yIHNlY29ubmQgbGluZSBvZiBzbGljZSBm b3IgbmF0aXZlIDQ6MjowCj4gKwkgKi8KPiAgCXU4IHNlY29uZF9saW5lX2JwZ19vZmZzZXQ7Cj4g LQkvKiBOdW0gb2YgYml0cyBkZWFsbG9jYXRlZCBmb3IgZWFjaCBncnAgdGhhdCBpcyBub3QgaW4g c2Vjb25kIGxpbmUgb2Ygc2xpY2UgKi8KPiArCS8qKgo+ICsJICogQG5zbF9icGdfb2Zmc2V0Ogo+ ICsJICogTnVtIG9mIGJpdHMgZGVhbGxvY2F0ZWQgZm9yIGVhY2ggZ3JwIHRoYXQgaXMgbm90IGlu IHNlY29uZCBsaW5lIG9mCj4gKwkgKiBzbGljZQo+ICsJICovCj4gIAl1MTYgbnNsX2JwZ19vZmZz ZXQ7Cj4gLQkvKiBPZmZzZXQgYWRqIGZyIHNlY29uZCBsaW5lIGluIE5hdGl2ZSA0OjI6MCBtb2Rl ICovCj4gKwkvKioKPiArCSAqIEBzZWNvbmRfbGluZV9vZmZzZXRfYWRqOgo+ICsJICogT2Zmc2V0 IGFkanVzdG1lbnQgZm9yIHNlY29uZCBsaW5lIGluIE5hdGl2ZSA0OjI6MCBtb2RlCj4gKwkgKi8K PiAgCXUxNiBzZWNvbmRfbGluZV9vZmZzZXRfYWRqOwo+ICB9Owo+ICAKPiBAQCAtNDY4LDEwICs1 ODgsMTMgQEAgc3RydWN0IGRybV9kc2NfcGljdHVyZV9wYXJhbWV0ZXJfc2V0IHsKPiAgICogVGhp cyBzdHJ1Y3R1cmUgcmVwcmVzZW50cyB0aGUgRFNDIFBQUyBpbmZvZnJhbWUgcmVxdWlyZWQgdG8g c2VuZCB0aGUgUGljdHVyZQo+ICAgKiBQYXJhbWV0ZXIgU2V0IG1ldGFkYXRhIHJlcXVpcmVkIGJl Zm9yZSBlbmFibGluZyBWRVNBIERpc3BsYXkgU3RyZWFtCj4gICAqIENvbXByZXNzaW9uLiBUaGlz IGlzIGJhc2VkIG9uIHRoZSBEUCBTZWNvbmRhcnkgRGF0YSBQYWNrZXQgc3RydWN0dXJlIGFuZAo+ IC0gKiBjb21wcmlzZXMgb2YgU0RQIEhlYWRlciBhcyBkZWZpbmVkIGluIGRybV9kcF9oZWxwZXIu aCBhbmQgUFBTIHBheWxvYWQuCj4gKyAqIGNvbXByaXNlcyBvZiBTRFAgSGVhZGVyIGFzIGRlZmlu ZWQgJnN0cnVjdCBzdHJ1Y3QgZHBfc2RwX2hlYWRlciBpbiBkcm1fZHBfaGVscGVyLmgKPiArICog YW5kIFBQUyBwYXlsb2FkIGRlZmluZWQgaW4gJnN0cnVjdCBkcm1fZHNjX3BpY3R1cmVfcGFyYW1l dGVyX3NldC4KPiAgICoKPiAtICogQHBwc19oZWFkZXI6IEhlYWRlciBmb3IgUFBTIGFzIHBlciBE UCBTRFAgaGVhZGVyIGZvcm1hdAo+ICsgKiBAcHBzX2hlYWRlcjogSGVhZGVyIGZvciBQUFMgYXMg cGVyIERQIFNEUCBoZWFkZXIgZm9ybWF0IG9mIHR5cGUKPiArICogICAgICAgICAgICAgICZzdHJ1 Y3QgZHBfc2RwX2hlYWRlcgo+ICAgKiBAcHBzX3BheWxvYWQ6IFBQUyBwYXlsb2FkIGZpZWxkcyBh cyBwZXIgRFNDIHNwZWNpZmljYXRpb24gVGFibGUgNC0xCj4gKyAqICAgICAgICAgICAgICAgYXMg cmVwcmVzZW50ZWQgaW4gJnN0cnVjdCBkcm1fZHNjX3BpY3R1cmVfcGFyYW1ldGVyX3NldAo+ICAg Ki8KPiAgc3RydWN0IGRybV9kc2NfcHBzX2luZm9mcmFtZSB7Cj4gIAlzdHJ1Y3QgZHBfc2RwX2hl YWRlciBwcHNfaGVhZGVyOwo+IC0tIAo+IDIuMTkuMQo+IApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK