From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Osipenko Subject: Re: [PATCH v2] drm/tegra: Add kerneldoc for UAPI Date: Sat, 19 May 2018 01:28:17 +0300 Message-ID: <9e4a9f6a-19eb-1b1e-3ac1-7b271330c722@gmail.com> References: <20180517154132.10058-8-thierry.reding@gmail.com> <20180518203337.26476-1-thierry.reding@gmail.com> <71541779-b4a9-43f3-f3e0-dd74e244ba93@gmail.com> <20180518215819.GA28123@ulmo> <20180518221305.GA29384@ulmo> <015e6ef1-e020-f339-2517-49330cc8616a@gmail.com> <20180518222438.GB29384@ulmo> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180518222438.GB29384@ulmo> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding , Mikko Perttunen Cc: linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: linux-tegra@vger.kernel.org T24gMTkuMDUuMjAxOCAwMToyNCwgVGhpZXJyeSBSZWRpbmcgd3JvdGU6Cj4gT24gU2F0LCBNYXkg MTksIDIwMTggYXQgMDE6MTg6MDVBTSArMDMwMCwgRG1pdHJ5IE9zaXBlbmtvIHdyb3RlOgo+PiBP biAxOS4wNS4yMDE4IDAxOjEzLCBUaGllcnJ5IFJlZGluZyB3cm90ZToKPj4+IE9uIEZyaSwgTWF5 IDE4LCAyMDE4IGF0IDExOjU4OjE5UE0gKzAyMDAsIFRoaWVycnkgUmVkaW5nIHdyb3RlOgo+Pj4+ IE9uIFNhdCwgTWF5IDE5LCAyMDE4IGF0IDEyOjQyOjIyQU0gKzAzMDAsIERtaXRyeSBPc2lwZW5r byB3cm90ZToKPj4+Pj4gT24gMTguMDUuMjAxOCAyMzozMywgVGhpZXJyeSBSZWRpbmcgd3JvdGU6 Cj4+Pj4+PiBGcm9tOiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgo+Pj4+Pj4K Pj4+Pj4+IERvY3VtZW50IHRoZSB1c2Vyc3BhY2UgQUJJIHdpdGgga2VybmVsZG9jIHRvIHByb3Zp ZGUgc29tZSBpbmZvcm1hdGlvbiBvbgo+Pj4+Pj4gaG93IHRvIHVzZSBpdC4KPj4+Pj4+Cj4+Pj4+ PiB2MjoKPj4+Pj4+IC0ga2VlcCBHRU0gb2JqZWN0IGNyZWF0aW9uIGZsYWdzIGZvciBBQkkgY29t cGF0aWJpbGl0eQo+Pj4+Pj4gLSBmaXggdHlwbyBpbiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdF9p bmNyIGtlcm5lbGRvYwo+Pj4+Pj4gLSBmaXggdHlwb3MgaW4gc3RydWN0IGRybV90ZWdyYV9zdWJt aXQga2VybmVsZG9jCj4+Pj4+PiAtIHJld29yZGVkIHNvbWUgZGVzY3JpcHRpb25zIGFzIHN1Z2dl c3RlZAo+Pj4+Pj4KPj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5n QG52aWRpYS5jb20+Cj4+Pj4+PiAtLS0KPj4+Pj4+ICBpbmNsdWRlL3VhcGkvZHJtL3RlZ3JhX2Ry bS5oIHwgNDgwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4+Pj4+PiAgMSBm aWxlIGNoYW5nZWQsIDQ3MSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQo+Pj4+Pj4KPj4+ Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL3RlZ3JhX2RybS5oIGIvaW5jbHVkZS91 YXBpL2RybS90ZWdyYV9kcm0uaAo+Pj4+Pj4gaW5kZXggOTllMTVkODJkMWU5Li43ZTEyMWM2OWNk OWEgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL3RlZ3JhX2RybS5oCj4+Pj4+ PiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL3RlZ3JhX2RybS5oCj4+Pj4+PiBAQCAtMzIsMTQzICsz Miw2MDUgQEAgZXh0ZXJuICJDIiB7Cj4+Pj4+PiAgI2RlZmluZSBEUk1fVEVHUkFfR0VNX0NSRUFU RV9USUxFRCAgICAgKDEgPDwgMCkKPj4+Pj4+ICAjZGVmaW5lIERSTV9URUdSQV9HRU1fQ1JFQVRF X0JPVFRPTV9VUCAoMSA8PCAxKQo+Pj4+Pj4gIAo+Pj4+Pj4gKy8qKgo+Pj4+Pj4gKyAqIHN0cnVj dCBkcm1fdGVncmFfZ2VtX2NyZWF0ZSAtIHBhcmFtZXRlcnMgZm9yIHRoZSBHRU0gb2JqZWN0IGNy ZWF0aW9uIElPQ1RMCj4+Pj4+PiArICovCj4+Pj4+PiAgc3RydWN0IGRybV90ZWdyYV9nZW1fY3Jl YXRlIHsKPj4+Pj4+ICsJLyoqCj4+Pj4+PiArCSAqIEBzaXplOgo+Pj4+Pj4gKwkgKgo+Pj4+Pj4g KwkgKiBUaGUgc2l6ZSwgaW4gYnl0ZXMsIG9mIHRoZSBidWZmZXIgb2JqZWN0IHRvIGJlIGNyZWF0 ZWQuCj4+Pj4+PiArCSAqLwo+Pj4+Pj4gIAlfX3U2NCBzaXplOwo+Pj4+Pj4gKwo+Pj4+Pj4gKwkv KioKPj4+Pj4+ICsJICogQGZsYWdzOgo+Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBBIGJpdG1hc2sg b2YgZmxhZ3MgdGhhdCBpbmZsdWVuY2UgdGhlIGNyZWF0aW9uIG9mIEdFTSBvYmplY3RzOgo+Pj4+ Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBEUk1fVEVHUkFfR0VNX0NSRUFURV9USUxFRAo+Pj4+Pj4gKwkg KiAgIFVzZSB0aGUgMTZ4MTYgdGlsaW5nIGZvcm1hdCBmb3IgdGhpcyBidWZmZXIuCj4+Pj4+PiAr CSAqCj4+Pj4+PiArCSAqIERSTV9URUdSQV9HRU1fQ1JFQVRFX0JPVFRPTV9VUAo+Pj4+Pj4gKwkg KiAgIFRoZSBidWZmZXIgaGFzIGEgYm90dG9tLXVwIGxheW91dC4KPj4+Pj4+ICsJICovCj4+Pj4+ PiAgCV9fdTMyIGZsYWdzOwo+Pj4+Pj4gKwo+Pj4+Pj4gKwkvKioKPj4+Pj4+ICsJICogQGhhbmRs ZToKPj4+Pj4+ICsJICoKPj4+Pj4+ICsJICogVGhlIGhhbmRsZSBvZiB0aGUgY3JlYXRlZCBHRU0g b2JqZWN0LiBTZXQgYnkgdGhlIGtlcm5lbCB1cG9uCj4+Pj4+PiArCSAqIHN1Y2Nlc3NmdWwgY29t cGxldGlvbiBvZiB0aGUgSU9DVEwuCj4+Pj4+PiArCSAqLwo+Pj4+Pj4gIAlfX3UzMiBoYW5kbGU7 Cj4+Pj4+PiAgfTsKPj4+Pj4+ICAKPj4+Pj4+ICsvKioKPj4+Pj4+ICsgKiBzdHJ1Y3QgZHJtX3Rl Z3JhX2dlbV9tbWFwIC0gcGFyYW1ldGVycyBmb3IgdGhlIEdFTSBtbWFwIElPQ1RMCj4+Pj4+PiAr ICovCj4+Pj4+PiAgc3RydWN0IGRybV90ZWdyYV9nZW1fbW1hcCB7Cj4+Pj4+PiArCS8qKgo+Pj4+ Pj4gKwkgKiBAaGFuZGxlOgo+Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBIYW5kbGUgb2YgdGhlIEdF TSBvYmplY3QgdG8gb2J0YWluIGFuIG1tYXAgb2Zmc2V0IGZvci4KPj4+Pj4+ICsJICovCj4+Pj4+ PiAgCV9fdTMyIGhhbmRsZTsKPj4+Pj4+ICsKPj4+Pj4+ICsJLyoqCj4+Pj4+PiArCSAqIEBwYWQ6 Cj4+Pj4+PiArCSAqCj4+Pj4+PiArCSAqIFN0cnVjdHVyZSBwYWRkaW5nIHRoYXQgbWF5IGJlIHVz ZWQgaW4gdGhlIGZ1dHVyZS4gTXVzdCBiZSAwLgo+Pj4+Pj4gKwkgKi8KPj4+Pj4+ICAJX191MzIg cGFkOwo+Pj4+Pj4gKwo+Pj4+Pj4gKwkvKioKPj4+Pj4+ICsJICogQG9mZnNldDoKPj4+Pj4+ICsJ ICoKPj4+Pj4+ICsJICogVGhlIG1tYXAgb2Zmc2V0IGZvciB0aGUgZ2l2ZW4gR0VNIG9iamVjdC4g U2V0IGJ5IHRoZSBrZXJuZWwgdXBvbgo+Pj4+Pj4gKwkgKiBzdWNjZXNzZnVsIGNvbXBsZXRpb24g b2YgdGhlIElPQ1RMLgo+Pj4+Pj4gKwkgKi8KPj4+Pj4+ICAJX191NjQgb2Zmc2V0Owo+Pj4+Pj4g IH07Cj4+Pj4+PiAgCj4+Pj4+PiArLyoqCj4+Pj4+PiArICogc3RydWN0IGRybV90ZWdyYV9zeW5j cHRfcmVhZCAtIHBhcmFtZXRlcnMgZm9yIHRoZSByZWFkIHN5bmNwb2ludCBJT0NUTAo+Pj4+Pj4g KyAqLwo+Pj4+Pj4gIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0X3JlYWQgewo+Pj4+Pj4gKwkvKioK Pj4+Pj4+ICsJICogQGlkOgo+Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBJRCBvZiB0aGUgc3luY3Bv aW50IHRvIHJlYWQgdGhlIGN1cnJlbnQgdmFsdWUgZnJvbS4KPj4+Pj4+ICsJICovCj4+Pj4+PiAg CV9fdTMyIGlkOwo+Pj4+Pj4gKwo+Pj4+Pj4gKwkvKioKPj4+Pj4+ICsJICogQHZhbHVlOgo+Pj4+ Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBUaGUgY3VycmVudCBzeW5jcG9pbnQgdmFsdWUuIFNldCBieSB0 aGUga2VybmVsIHVwb24gc3VjY2Vzc2Z1bAo+Pj4+Pj4gKwkgKiBjb21wbGV0aW9uIG9mIHRoZSBJ T0NUTC4KPj4+Pj4+ICsJICovCj4+Pj4+PiAgCV9fdTMyIHZhbHVlOwo+Pj4+Pj4gIH07Cj4+Pj4+ PiAgCj4+Pj4+PiArLyoqCj4+Pj4+PiArICogc3RydWN0IGRybV90ZWdyYV9zeW5jcHRfaW5jciAt IHBhcmFtZXRlcnMgZm9yIHRoZSBpbmNyZW1lbnQgc3luY3BvaW50IElPQ1RMCj4+Pj4+PiArICov Cj4+Pj4+PiAgc3RydWN0IGRybV90ZWdyYV9zeW5jcHRfaW5jciB7Cj4+Pj4+PiArCS8qKgo+Pj4+ Pj4gKwkgKiBAaWQ6Cj4+Pj4+PiArCSAqCj4+Pj4+PiArCSAqIElEIG9mIHRoZSBzeW5jcG9pbnQg dG8gaW5jcmVtZW50Lgo+Pj4+Pj4gKwkgKi8KPj4+Pj4+ICAJX191MzIgaWQ7Cj4+Pj4+PiArCj4+ Pj4+PiArCS8qKgo+Pj4+Pj4gKwkgKiBAcGFkOgo+Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBTdHJ1 Y3R1cmUgcGFkZGluZyB0aGF0IG1heSBiZSB1c2VkIGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4K Pj4+Pj4+ICsJICovCj4+Pj4+PiAgCV9fdTMyIHBhZDsKPj4+Pj4+ICB9Owo+Pj4+Pj4gIAo+Pj4+ Pj4gKy8qKgo+Pj4+Pj4gKyAqIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0X3dhaXQgLSBwYXJhbWV0 ZXJzIGZvciB0aGUgd2FpdCBzeW5jcG9pbnQgSU9DVEwKPj4+Pj4+ICsgKi8KPj4+Pj4+ICBzdHJ1 Y3QgZHJtX3RlZ3JhX3N5bmNwdF93YWl0IHsKPj4+Pj4+ICsJLyoqCj4+Pj4+PiArCSAqIEBpZDoK Pj4+Pj4+ICsJICoKPj4+Pj4+ICsJICogSUQgb2YgdGhlIHN5bmNwb2ludCB0byB3YWl0IG9uLgo+ Pj4+Pj4gKwkgKi8KPj4+Pj4+ICAJX191MzIgaWQ7Cj4+Pj4+PiArCj4+Pj4+PiArCS8qKgo+Pj4+ Pj4gKwkgKiBAdGhyZXNoOgo+Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBUaHJlc2hvbGQgdmFsdWUg Zm9yIHdoaWNoIHRvIHdhaXQuCj4+Pj4+PiArCSAqLwo+Pj4+Pj4gIAlfX3UzMiB0aHJlc2g7Cj4+ Pj4+PiArCj4+Pj4+PiArCS8qKgo+Pj4+Pj4gKwkgKiBAdGltZW91dDoKPj4+Pj4+ICsJICoKPj4+ Pj4+ICsJICogVGltZW91dCwgaW4gbWlsbGlzZWNvbmRzLCB0byB3YWl0Lgo+Pj4+Pj4gKwkgKi8K Pj4+Pj4+ICAJX191MzIgdGltZW91dDsKPj4+Pj4+ICsKPj4+Pj4+ICsJLyoqCj4+Pj4+PiArCSAq IEB2YWx1ZToKPj4+Pj4+ICsJICoKPj4+Pj4+ICsJICogVGhlIG5ldyBzeW5jcG9pbnQgdmFsdWUg YWZ0ZXIgdGhlIHdhaXQuIFNldCBieSB0aGUga2VybmVsIHVwb24KPj4+Pj4+ICsJICogc3VjY2Vz c2Z1bCBjb21wbGV0aW9uIG9mIHRoZSBJT0NUTC4KPj4+Pj4+ICsJICovCj4+Pj4+PiAgCV9fdTMy IHZhbHVlOwo+Pj4+Pj4gIH07Cj4+Pj4+PiAgCj4+Pj4+PiAgI2RlZmluZSBEUk1fVEVHUkFfTk9f VElNRU9VVAkoMHhmZmZmZmZmZikKPj4+Pj4+ICAKPj4+Pj4+ICsvKioKPj4+Pj4+ICsgKiBzdHJ1 Y3QgZHJtX3RlZ3JhX29wZW5fY2hhbm5lbCAtIHBhcmFtZXRlcnMgZm9yIHRoZSBvcGVuIGNoYW5u ZWwgSU9DVEwKPj4+Pj4+ICsgKi8KPj4+Pj4+ICBzdHJ1Y3QgZHJtX3RlZ3JhX29wZW5fY2hhbm5l bCB7Cj4+Pj4+PiArCS8qKgo+Pj4+Pj4gKwkgKiBAY2xpZW50Ogo+Pj4+Pj4gKwkgKgo+Pj4+Pj4g KwkgKiBUaGUgY2xpZW50IElEIGZvciB0aGlzIGNoYW5uZWwuCj4+Pj4+PiArCSAqLwo+Pj4+Pj4g IAlfX3UzMiBjbGllbnQ7Cj4+Pj4+PiArCj4+Pj4+PiArCS8qKgo+Pj4+Pj4gKwkgKiBAcGFkOgo+ Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBTdHJ1Y3R1cmUgcGFkZGluZyB0aGF0IG1heSBiZSB1c2Vk IGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KPj4+Pj4+ICsJICovCj4+Pj4+PiAgCV9fdTMyIHBh ZDsKPj4+Pj4+ICsKPj4+Pj4+ICsJLyoqCj4+Pj4+PiArCSAqIEBjb250ZXh0Ogo+Pj4+Pj4gKwkg Kgo+Pj4+Pj4gKwkgKiBUaGUgYXBwbGljYXRpb24gY29udGV4dCBvZiB0aGlzIGNoYW5uZWwuIFNl dCBieSB0aGUga2VybmVsIHVwb24KPj4+Pj4+ICsJICogc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIG9m IHRoZSBJT0NUTC4gVGhpcyBjb250ZXh0IG5lZWRzIHRvIGJlIHBhc3NlZAo+Pj4+Pj4gKwkgKiB0 byB0aGUgRFJNX1RFR1JBX0NIQU5ORUxfQ0xPU0Ugb3IgdGhlIERSTV9URUdSQV9TVUJNSVQgSU9D VExzLgo+Pj4+Pj4gKwkgKi8KPj4+Pj4+ICAJX191NjQgY29udGV4dDsKPj4+Pj4+ICB9Owo+Pj4+ Pj4gIAo+Pj4+Pj4gKy8qKgo+Pj4+Pj4gKyAqIHN0cnVjdCBkcm1fdGVncmFfY2xvc2VfY2hhbm5l bCAtIHBhcmFtZXRlcnMgZm9yIHRoZSBjbG9zZSBjaGFubmVsIElPQ1RMCj4+Pj4+PiArICovCj4+ Pj4+PiAgc3RydWN0IGRybV90ZWdyYV9jbG9zZV9jaGFubmVsIHsKPj4+Pj4+ICsJLyoqCj4+Pj4+ PiArCSAqIEBjb250ZXh0Ogo+Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBUaGUgYXBwbGljYXRpb24g Y29udGV4dCBvZiB0aGlzIGNoYW5uZWwuIFRoaXMgaXMgb2J0YWluZWQgZnJvbSB0aGUKPj4+Pj4+ ICsJICogRFJNX1RFR1JBX09QRU5fQ0hBTk5FTCBJT0NUTC4KPj4+Pj4+ICsJICovCj4+Pj4+PiAg CV9fdTY0IGNvbnRleHQ7Cj4+Pj4+PiAgfTsKPj4+Pj4+ICAKPj4+Pj4+ICsvKioKPj4+Pj4+ICsg KiBzdHJ1Y3QgZHJtX3RlZ3JhX2dldF9zeW5jcHQgLSBwYXJhbWV0ZXJzIGZvciB0aGUgZ2V0IHN5 bmNwb2ludCBJT0NUTAo+Pj4+Pj4gKyAqLwo+Pj4+Pj4gIHN0cnVjdCBkcm1fdGVncmFfZ2V0X3N5 bmNwdCB7Cj4+Pj4+PiArCS8qKgo+Pj4+Pj4gKwkgKiBAY29udGV4dDoKPj4+Pj4+ICsJICoKPj4+ Pj4+ICsJICogVGhlIGFwcGxpY2F0aW9uIGNvbnRleHQgaWRlbnRpZnlpbmcgdGhlIGNoYW5uZWwg Zm9yIHdoaWNoIHRvIG9idGFpbgo+Pj4+Pj4gKwkgKiB0aGUgc3luY3BvaW50IElELgo+Pj4+Pj4g KwkgKi8KPj4+Pj4+ICAJX191NjQgY29udGV4dDsKPj4+Pj4+ICsKPj4+Pj4+ICsJLyoqCj4+Pj4+ PiArCSAqIEBpbmRleDoKPj4+Pj4+ICsJICoKPj4+Pj4+ICsJICogSW5kZXggb2YgdGhlIGNsaWVu dCBzeW5jcG9pbnQgZm9yIHdoaWNoIHRvIG9idGFpbiB0aGUgSUQuCj4+Pj4+PiArCSAqLwo+Pj4+ Pj4gIAlfX3UzMiBpbmRleDsKPj4+Pj4+ICsKPj4+Pj4+ICsJLyoqCj4+Pj4+PiArCSAqIEBpZDoK Pj4+Pj4+ICsJICoKPj4+Pj4+ICsJICogVGhlIElEIG9mIHRoZSBnaXZlbiBzeW5jcG9pbnQuIFNl dCBieSB0aGUga2VybmVsIHVwb24gc3VjY2Vzc2Z1bAo+Pj4+Pj4gKwkgKiBjb21wbGV0aW9uIG9m IHRoZSBJT0NUTC4KPj4+Pj4+ICsJICovCj4+Pj4+PiAgCV9fdTMyIGlkOwo+Pj4+Pj4gIH07Cj4+ Pj4+PiAgCj4+Pj4+PiArLyoqCj4+Pj4+PiArICogc3RydWN0IGRybV90ZWdyYV9nZXRfc3luY3B0 X2Jhc2UgLSBwYXJhbWV0ZXJzIGZvciB0aGUgZ2V0IHdhaXQgYmFzZSBJT0NUTAo+Pj4+Pj4gKyAq Lwo+Pj4+Pj4gIHN0cnVjdCBkcm1fdGVncmFfZ2V0X3N5bmNwdF9iYXNlIHsKPj4+Pj4+ICsJLyoq Cj4+Pj4+PiArCSAqIEBjb250ZXh0Ogo+Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBUaGUgYXBwbGlj YXRpb24gY29udGV4dCBpZGVudGlmeWluZyBmb3Igd2hpY2ggY2hhbm5lbCB0byBvYnRhaW4gdGhl Cj4+Pj4+PiArCSAqIHdhaXQgYmFzZS4KPj4+Pj4+ICsJICovCj4+Pj4+PiAgCV9fdTY0IGNvbnRl eHQ7Cj4+Pj4+PiArCj4+Pj4+PiArCS8qKgo+Pj4+Pj4gKwkgKiBAc3luY3B0Ogo+Pj4+Pj4gKwkg Kgo+Pj4+Pj4gKwkgKiBJRCBvZiB0aGUgc3luY3BvaW50IGZvciB3aGljaCB0byBvYnRhaW4gdGhl IHdhaXQgYmFzZS4KPj4+Pj4+ICsJICovCj4+Pj4+PiAgCV9fdTMyIHN5bmNwdDsKPj4+Pj4+ICsK Pj4+Pj4+ICsJLyoqCj4+Pj4+PiArCSAqIEBpZDoKPj4+Pj4+ICsJICoKPj4+Pj4+ICsJICogVGhl IElEIG9mIHRoZSB3YWl0IGJhc2UgY29ycmVzcG9uZGluZyB0byB0aGUgY2xpZW50IHN5bmNwb2lu dC4gU2V0Cj4+Pj4+PiArCSAqIGJ5IHRoZSBrZXJuZWwgdXBvbiBzdWNjZXNzZnVsIGNvbXBsZXRp b24gb2YgdGhlIElPQ1RMLgo+Pj4+Pj4gKwkgKi8KPj4+Pj4+ICAJX191MzIgaWQ7Cj4+Pj4+PiAg fTsKPj4+Pj4+ICAKPj4+Pj4+ICsvKioKPj4+Pj4+ICsgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNw dCAtIHN5bmNwb2ludCBpbmNyZW1lbnQgb3BlcmF0aW9uCj4+Pj4+PiArICovCj4+Pj4+PiAgc3Ry dWN0IGRybV90ZWdyYV9zeW5jcHQgewo+Pj4+Pj4gKwkvKioKPj4+Pj4+ICsJICogQGlkOgo+Pj4+ Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBJRCBvZiB0aGUgc3luY3BvaW50IHRvIG9wZXJhdGUgb24uCj4+ Pj4+PiArCSAqLwo+Pj4+Pj4gIAlfX3UzMiBpZDsKPj4+Pj4+ICsKPj4+Pj4+ICsJLyoqCj4+Pj4+ PiArCSAqIEBpbmNyczoKPj4+Pj4+ICsJICoKPj4+Pj4+ICsJICogTnVtYmVyIG9mIGluY3JlbWVu dHMgdG8gcGVyZm9ybSBmb3IgdGhlIHN5bmNwb2ludC4KPj4+Pj4+ICsJICovCj4+Pj4+PiAgCV9f dTMyIGluY3JzOwo+Pj4+Pj4gIH07Cj4+Pj4+PiAgCj4+Pj4+PiArLyoqCj4+Pj4+PiArICogc3Ry dWN0IGRybV90ZWdyYV9jbWRidWYgLSBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBhIGNvbW1hbmQgYnVm ZmVyCj4+Pj4+PiArICovCj4+Pj4+PiAgc3RydWN0IGRybV90ZWdyYV9jbWRidWYgewo+Pj4+Pj4g KwkvKioKPj4+Pj4+ICsJICogQGhhbmRsZToKPj4+Pj4+ICsJICoKPj4+Pj4+ICsJICogSGFuZGxl IHRvIGEgR0VNIG9iamVjdCBjb250YWluaW5nIHRoZSBjb21tYW5kIGJ1ZmZlci4KPj4+Pj4+ICsJ ICovCj4+Pj4+PiAgCV9fdTMyIGhhbmRsZTsKPj4+Pj4+ICsKPj4+Pj4+ICsJLyoqCj4+Pj4+PiAr CSAqIEBvZmZzZXQ6Cj4+Pj4+PiArCSAqCj4+Pj4+PiArCSAqIE9mZnNldCwgaW4gYnl0ZXMsIGlu dG8gdGhlIEdFTSBvYmplY3QgaWRlbnRpZmllZCBieSBAaGFuZGxlIGF0Cj4+Pj4+PiArCSAqIHdo aWNoIHRoZSBjb21tYW5kIGJ1ZmZlciBzdGFydHMuCj4+Pj4+PiArCSAqLwo+Pj4+Pj4gIAlfX3Uz MiBvZmZzZXQ7Cj4+Pj4+PiArCj4+Pj4+PiArCS8qKgo+Pj4+Pj4gKwkgKiBAd29yZHM6Cj4+Pj4+ PiArCSAqCj4+Pj4+PiArCSAqIE51bWJlciBvZiAzMi1iaXQgd29yZHMgaW4gdGhpcyBjb21tYW5k IGJ1ZmZlci4KPj4+Pj4+ICsJICovCj4+Pj4+PiAgCV9fdTMyIHdvcmRzOwo+Pj4+Pj4gKwo+Pj4+ Pj4gKwkvKioKPj4+Pj4+ICsJICogQHBhZDoKPj4+Pj4+ICsJICoKPj4+Pj4+ICsJICogU3RydWN0 dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0dXJlLiBNdXN0IGJlIDAuCj4+ Pj4+PiArCSAqLwo+Pj4+Pj4gIAlfX3UzMiBwYWQ7Cj4+Pj4+PiAgfTsKPj4+Pj4+ICAKPj4+Pj4+ ICsvKioKPj4+Pj4+ICsgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3JlbG9jIC0gR0VNIG9iamVjdCByZWxv Y2F0aW9uIHN0cnVjdHVyZQo+Pj4+Pj4gKyAqLwo+Pj4+Pj4gIHN0cnVjdCBkcm1fdGVncmFfcmVs b2Mgewo+Pj4+Pj4gIAlzdHJ1Y3Qgewo+Pj4+Pj4gKwkJLyoqCj4+Pj4+PiArCQkgKiBAY21kYnVm LmhhbmRsZToKPj4+Pj4+ICsJCSAqCj4+Pj4+PiArCQkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmpl Y3QgY29udGFpbmluZyB0aGUgY29tbWFuZCBidWZmZXIgZm9yCj4+Pj4+PiArCQkgKiB3aGljaCB0 byBwZXJmb3JtIHRoaXMgR0VNIG9iamVjdCByZWxvY2F0aW9uLgo+Pj4+Pj4gKwkJICovCj4+Pj4+ PiAgCQlfX3UzMiBoYW5kbGU7Cj4+Pj4+PiArCj4+Pj4+PiArCQkvKioKPj4+Pj4+ICsJCSAqIEBj bWRidWYub2Zmc2V0Ogo+Pj4+Pj4gKwkJICoKPj4+Pj4+ICsJCSAqIE9mZnNldCwgaW4gYnl0ZXMs IGludG8gdGhlIGNvbW1hbmQgYnVmZmVyIGF0IHdoaWNoIHRvCj4+Pj4+PiArCQkgKiBpbnNlcnQg dGhlIHJlbG9jYXRlZCBhZGRyZXNzLgo+Pj4+Pj4gKwkJICovCj4+Pj4+PiAgCQlfX3UzMiBvZmZz ZXQ7Cj4+Pj4+PiAgCX0gY21kYnVmOwo+Pj4+Pj4gIAlzdHJ1Y3Qgewo+Pj4+Pj4gKwkJLyoqCj4+ Pj4+PiArCQkgKiBAdGFyZ2V0LmhhbmRsZToKPj4+Pj4+ICsJCSAqCj4+Pj4+PiArCQkgKiBIYW5k bGUgdG8gdGhlIEdFTSBvYmplY3QgdG8gYmUgcmVsb2NhdGVkLgo+Pj4+Pj4gKwkJICovCj4+Pj4+ PiAgCQlfX3UzMiBoYW5kbGU7Cj4+Pj4+PiArCj4+Pj4+PiArCQkvKioKPj4+Pj4+ICsJCSAqIEB0 YXJnZXQub2Zmc2V0Ogo+Pj4+Pj4gKwkJICoKPj4+Pj4+ICsJCSAqIE9mZnNldCwgaW4gYnl0ZXMs IGludG8gdGhlIHRhcmdldCBHRU0gb2JqZWN0IGF0IHdoaWNoIHRoZQo+Pj4+Pj4gKwkJICogcmVs b2NhdGVkIGRhdGEgc3RhcnRzLgo+Pj4+Pj4gKwkJICovCj4+Pj4+PiAgCQlfX3UzMiBvZmZzZXQ7 Cj4+Pj4+PiAgCX0gdGFyZ2V0Owo+Pj4+Pj4gKwo+Pj4+Pj4gKwkvKioKPj4+Pj4+ICsJICogQHNo aWZ0Ogo+Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBUaGUgbnVtYmVyIG9mIGJpdHMgYnkgd2hpY2gg dG8gc2hpZnQgcmVsb2NhdGVkIGFkZHJlc3Nlcy4KPj4+Pj4+ICsJICovCj4+Pj4+PiAgCV9fdTMy IHNoaWZ0Owo+Pj4+Pj4gKwo+Pj4+Pj4gKwkvKioKPj4+Pj4+ICsJICogQHBhZDoKPj4+Pj4+ICsJ ICoKPj4+Pj4+ICsJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUg ZnV0dXJlLiBNdXN0IGJlIDAuCj4+Pj4+PiArCSAqLwo+Pj4+Pj4gIAlfX3UzMiBwYWQ7Cj4+Pj4+ PiAgfTsKPj4+Pj4+ICAKPj4+Pj4+ICsvKioKPj4+Pj4+ICsgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3dh aXRjaGsgLSB3YWl0IGNoZWNrIHN0cnVjdHVyZQo+Pj4+Pj4gKyAqLwo+Pj4+Pj4gIHN0cnVjdCBk cm1fdGVncmFfd2FpdGNoayB7Cj4+Pj4+PiArCS8qKgo+Pj4+Pj4gKwkgKiBAaGFuZGxlOgo+Pj4+ Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgY29udGFpbmluZyBh IGNvbW1hbmQgc3RyZWFtIG9uIHdoaWNoIHRvCj4+Pj4+PiArCSAqIHBlcmZvcm0gdGhlIHdhaXQg Y2hlY2suCj4+Pj4+PiArCSAqLwo+Pj4+Pj4gIAlfX3UzMiBoYW5kbGU7Cj4+Pj4+PiArCj4+Pj4+ PiArCS8qKgo+Pj4+Pj4gKwkgKiBAb2Zmc2V0Ogo+Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBPZmZz ZXQsIGluIGJ5dGVzLCBvZiB0aGUgbG9jYXRpb24gaW4gdGhlIGNvbW1hbmQgc3RyZWFtIHRvIHBl cmZvcm0KPj4+Pj4+ICsJICogdGhlIHdhaXQgY2hlY2sgb24uCj4+Pj4+PiArCSAqLwo+Pj4+Pj4g IAlfX3UzMiBvZmZzZXQ7Cj4+Pj4+PiArCj4+Pj4+PiArCS8qKgo+Pj4+Pj4gKwkgKiBAc3luY3B0 Ogo+Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBJRCBvZiB0aGUgc3luY3BvaW50IHRvIHdhaXQgY2hl Y2suCj4+Pj4+PiArCSAqLwo+Pj4+Pj4gIAlfX3UzMiBzeW5jcHQ7Cj4+Pj4+PiArCj4+Pj4+PiAr CS8qKgo+Pj4+Pj4gKwkgKiBAdGhyZXNoOgo+Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBUaHJlc2hv bGQgdmFsdWUgZm9yIHdoaWNoIHRvIGNoZWNrLgo+Pj4+Pj4gKwkgKi8KPj4+Pj4+ICAJX191MzIg dGhyZXNoOwo+Pj4+Pj4gIH07Cj4+Pj4+PiAgCj4+Pj4+PiArLyoqCj4+Pj4+PiArICogc3RydWN0 IGRybV90ZWdyYV9zdWJtaXQgLSBqb2Igc3VibWlzc2lvbiBzdHJ1Y3R1cmUKPj4+Pj4+ICsgKi8K Pj4+Pj4+ICBzdHJ1Y3QgZHJtX3RlZ3JhX3N1Ym1pdCB7Cj4+Pj4+PiArCS8qKgo+Pj4+Pj4gKwkg KiBAY29udGV4dDoKPj4+Pj4+ICsJICoKPj4+Pj4+ICsJICogVGhlIGFwcGxpY2F0aW9uIGNvbnRl eHQgaWRlbnRpZnlpbmcgdGhlIGNoYW5uZWwgdG8gdXNlIGZvciB0aGUKPj4+Pj4+ICsJICogZXhl Y3V0aW9uIG9mIHRoaXMgam9iLgo+Pj4+Pj4gKwkgKi8KPj4+Pj4+ICAJX191NjQgY29udGV4dDsK Pj4+Pj4+ICsKPj4+Pj4+ICsJLyoqCj4+Pj4+PiArCSAqIEBudW1fc3luY3B0czoKPj4+Pj4+ICsJ ICoKPj4+Pj4+ICsJICogVGhlIG51bWJlciBvZiBzeW5jcG9pbnRzIG9wZXJhdGVkIG9uIGJ5IHRo aXMgam9iLgo+Pj4+Pj4gKwkgKi8KPj4+Pj4+ICAJX191MzIgbnVtX3N5bmNwdHM7Cj4+Pj4+PiAr Cj4+Pj4+PiArCS8qKgo+Pj4+Pj4gKwkgKiBAbnVtX2NtZGJ1ZnM6Cj4+Pj4+PiArCSAqCj4+Pj4+ PiArCSAqIFRoZSBudW1iZXIgb2YgY29tbWFuZCBidWZmZXJzIHRvIGV4ZWN1dGUgYXMgcGFydCBv ZiB0aGlzIGpvYi4KPj4+Pj4+ICsJICovCj4+Pj4+PiAgCV9fdTMyIG51bV9jbWRidWZzOwo+Pj4+ Pj4gKwo+Pj4+Pj4gKwkvKioKPj4+Pj4+ICsJICogQG51bV9yZWxvY3M6Cj4+Pj4+PiArCSAqCj4+ Pj4+PiArCSAqIFRoZSBudW1iZXIgb2YgcmVsb2NhdGlvbnMgdG8gcGVyZm9ybSBiZWZvcmUgZXhl Y3V0aW5nIHRoaXMgam9iLgo+Pj4+Pj4gKwkgKi8KPj4+Pj4+ICAJX191MzIgbnVtX3JlbG9jczsK Pj4+Pj4+ICsKPj4+Pj4+ICsJLyoqCj4+Pj4+PiArCSAqIEBudW1fd2FpdGNoa3M6Cj4+Pj4+PiAr CSAqCj4+Pj4+PiArCSAqIFRoZSBudW1iZXIgb2Ygd2FpdCBjaGVja3MgdG8gcGVyZm9ybSBhcyBw YXJ0IG9mIHRoaXMgam9iLgo+Pj4+Pj4gKwkgKi8KPj4+Pj4+ICAJX191MzIgbnVtX3dhaXRjaGtz Owo+Pj4+Pj4gKwo+Pj4+Pj4gKwkvKioKPj4+Pj4+ICsJICogQHdhaXRjaGtfbWFzazoKPj4+Pj4+ ICsJICoKPj4+Pj4+ICsJICogQml0bWFzayBvZiB2YWxpZCB3YWl0IGNoZWNrcy4KPj4+Pj4+ICsJ ICovCj4+Pj4+PiAgCV9fdTMyIHdhaXRjaGtfbWFzazsKPj4+Pj4+ICsKPj4+Pj4+ICsJLyoqCj4+ Pj4+PiArCSAqIEB0aW1lb3V0Ogo+Pj4+Pj4gKwkgKgo+Pj4+Pj4gKwkgKiBUaW1lb3V0LCBpbiBt aWxsaXNlY29uZHMsIGJlZm9yZSB0aGlzIGpvYiBpcyBjYW5jZWxsZWQuCj4+Pj4+PiArCSAqLwo+ Pj4+Pj4gIAlfX3UzMiB0aW1lb3V0Owo+Pj4+Pj4gKwo+Pj4+Pj4gKwkvKioKPj4+Pj4+ICsJICog QHN5bmNwdHM6Cj4+Pj4+PiArCSAqCj4+Pj4+PiArCSAqIEEgcG9pbnRlciB0byBAbnVtX3N5bmNw dHMgJnN0cnVjdCBkcm1fdGVncmFfc3luY3B0IHN0cnVjdHVyZXMgdGhhdAo+Pj4+Pgo+Pj4+PiBJ J20gbm90IHN1cmUgd2hldGhlciB0aGlzICJwb2ludGVyIHRvIEBudW1fc3luY3B0cyIgbWFrZXMg c2Vuc2UsIHNob3VsZG4ndCBpdCBiZToKPj4+Pj4KPj4+Pj4gCUEgcG9pbnRlciB0byAmc3RydWN0 IGRybV90ZWdyYV9zeW5jcHQgc3RydWN0dXJlcyB0aGF0Li4uCj4+Pj4+Cj4+Pj4+ID8KPj4+Pj4K Pj4+Pj4gU2FtZSBmb3IgdGhlIEBjbWRidWZzL0ByZWxvY3MvQHdhaXRjaGtzIG1lbWJlcnMuCj4+ Pj4KPj4+PiBJIHdhbnRlZCB0byBoYXZlIHRoZSByZWZlcmVuY2VzIHRvIHRob3NlIGZpZWxkcyBp biB0aGUgdGV4dCBzbyB0aGF0IGl0Cj4+Pj4gYmVjb21lcyBvYnZpb3VzIHRoYXQgbnVtX3N5bmNw dHMgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhpcwo+Pj4+IHN5bmNwdHMgYXJy YXkuCj4+Pj4KPj4+PiBQZXJoYXBzIGEgYmV0dGVyIGZvcm11bGF0aW9uIHdvdWxkIGJlOgo+Pj4+ Cj4+Pj4gCUEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBAbnVtX3N5bmNwdHMgJnN0cnVjdCBkcm1f dGVncmFfc3luY3B0Cj4+Pj4gCXN0cnVjdHVyZSB0aGF0Li4uCj4+Pj4KPj4+PiA/Cj4+Cj4+IFRo YXQgdmFyaWFudCBpcyBnb29kIHRvIG1lLgo+Pgo+Pj4KPj4+IEFub3RoZXIgYWx0ZXJuYXRpdmUg bWF5IGJlOgo+Pj4KPj4+IAkvKioKPj4+IAkgKiBAc3luY3B0czoKPj4+IAkgKgo+Pj4gCSAqIEEg cG9pbnRlciB0byBhbiBhcnJheSBvZiAmc3RydWN0IGRybV90ZWdyYV9zeW5jcHQgc3RydWN0dXJl IHRoYXQKPj4+IAkgKiBzcGVjaWZ5IHRoZSBzeW5jcG9pbnQgb3BlcmF0aW9ucyBwZXJmb3JtZWQg YXMgcGFydCBvZiB0aGlzIGpvYi4KPj4+IAkgKiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRo ZSBhcnJheSBtdXN0IGJlIGVxdWFsIHRvIHRoZSB2YWx1ZQo+Pj4gCSAqIGdpdmVuIGJ5IEBudW1f c3luY3B0cy4KPj4+IAkgKi8KPj4+Cj4+PiBUaGF0J3Mgc2xpZ2h0bHkgZWFzaWVyIHRvIHJlYWQg YnV0IGFsc28gdmVyeSBleHBsaWNpdCBpbiByZWxhdGluZyBib3RoCj4+PiBmaWVsZHMgdG8gb25l IGFub3RoZXIuIFBlcmhhcHMgYSB0d28td2F5IGxpbmsgY2FuIGJlIGVzdGFibGlzaGVkIGJ5Cj4+ PiBhZGRpbmcgc29tZXRoaW5nIGxpa2UgdGhpcyB0byB0aGUgZGVzY3JpcHRpb24gb2YgQG51bV9z eW5jcHRzOgo+Pj4KPj4+IAkvKioKPj4+IAkgKiBAbnVtX3N5bmNwdHM6Cj4+PiAJICoKPj4+IAkg KiBUaGUgbnVtYmVyIG9mIHN5bmNwb2ludHMgb3BlcmF0ZWQgb24gYnkgdGhpcyBqb2IuIFRoaXMg ZGVmaW5lcwo+Pj4gCSAqIHRoZSBsZW5ndGggb2YgdGhlIGFycmF5IHBvaW50ZWQgdG8gYnkgQHN5 bmNwdHMuCj4+PiAJICovCj4+Cj4+IEJ1dCB0aGlzIHZhcmlhbnQgaXMgZXZlbiBiZXR0ZXIuCj4+ Cj4+IEkgZG9uJ3QgbWluZCBlaXRoZXIgd2F5LCBjaG9vc2Ugd2hhdCB5b3UgcHJlZmVyLgo+IAo+ IEkgd2VudCB3aXRoIHRoZSBsYXR0ZXIuIEkndmUgdXBkYXRlZCBhbGwgb2YgdGhlc2UgZmllbGQg ZGVzY3JpcHRpb25zIGFuZAo+IGFkZGVkIHlvdXIgUmV2aWV3ZWQtYnkuIFB1c2hlZCBldmVyeXRo aW5nIHRvIGRybS90ZWdyYS9mb3ItbmV4dCBhbmQgd2lsbAo+IHNlbmQgYSBwdWxsIHJlcXVlc3Qg Zm9yIHRoYXQgYnJhbmNoIHNob3J0bHkuCgpBd2Vzb21lISBJIHRoaW5rIE1pa2tvIHdhcyBnb2lu ZyB0byBtYWtlIGEgcGF0Y2ggdG8gdGhlIHZhbGlkYXRpb24gYnVnIGluIHRoZQpzdWJtaXQgY29k ZSB0aGF0IGhlIHNwb3R0ZWQgcmVjZW50bHksIHNvIG1heWJlIGl0IHdvdWxkIHdvcnRoIHRvIHBv c3Rwb25lIHRoZQpwdWxsIHJlcXVlc3QgYSB0YWQuCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=