From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [10/14] usb: dwc3: gadget: remove wait_end_transfer From: Felipe Balbi Message-Id: <87r2d6jtdc.fsf@linux.intel.com> Date: Mon, 21 Jan 2019 10:40:47 +0200 To: Thinh Nguyen Thinh Nguyen , Linux USB List-ID: SGksCgpUaGluaCBOZ3V5ZW4gPHRoaW5oLm5ndXllbkBzeW5vcHN5cy5jb20+IHdyaXRlczoKPiBP biAxLzE3LzIwMTkgMTE6MTIgUE0sIEZlbGlwZSBCYWxiaSB3cm90ZToKPj4gSGksCj4+Cj4+IFRo aW5oIE5ndXllbiA8dGhpbmgubmd1eWVuQHN5bm9wc3lzLmNvbT4gd3JpdGVzOgo+Pj4gQEAgLTE0 MDksMTUgKzE0MDcsMTEgQEAgc3RhdGljIGludCBkd2MzX2dhZGdldF9lcF9kZXF1ZXVlKHN0cnVj dCB1c2JfZXAgKmVwLAo+Pj4gICAgICAgICAgICAgICAgIGlmIChyID09IHJlcSkgewo+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgLyogd2FpdCB1bnRpbCBpdCBpcyBwcm9jZXNzZWQgKi8KPj4+ ICAgICAgICAgICAgICAgICAgICAgICAgIGR3YzNfc3RvcF9hY3RpdmVfdHJhbnNmZXIoZGVwLCB0 cnVlKTsKPj4+Cj4+PiBJIHJhbiBpbnRvIGEgcmVncmVzc2lvbiB3aXRoIHRoaXMgcGF0Y2guIERX QzMgd2lsbCBjbGVhbnVwIGNhbmNlbGxlZAo+Pj4gcmVxdWVzdHMgb24gRU5EX1RSQU5TRkVSIGNv bW1hbmQgY29tcGxldGlvbi4gSG93ZXZlciwgaWYgZm9yIHNvbWUKPj4+IHJlYXNvbiwgdGhlIGRy aXZlciBpcyB1bmFibGUgdG8gc2VuZCB0aGUgY29tbWFuZCwgaXQgd2lsbCBuZXZlcgo+PiBieSB3 aHkgd291bGRuJ3QgdGhlIGRyaXZlciBzZW5kIHRoZSBjb21tYW5kPyBUaGF0IHNlZW1zIHRvIGJl IHRoZSBlcnJvcgo+PiB3ZSBzaG91bGQgYmUgbG9va2luZyBhdC4gR290IHNvbWUgdHJhY2Vwb2lu dHMgYXZhaWxhYmxlPwo+Cj4gWWVzLiBBdHRhY2hlZCBpcyB0aGUgdHJhY2Vwb2ludC4gRGV2aWNl IGdvdCBzdHVjayBvbiBkZXF1ZXVlIG9uIHRoZSBsYXN0Cj4gbGluZSBvZiB0aGUgdHJhY2Vwb2lu dC4KCnRvIG1lLCBpdCBzZWVtcyB0aGF0IHdlJ3JlIHRyeWluZyB0byBkZXF1ZXVlIHRoZSBzYW1l IHJlcXVlc3QKdHdpY2UuIEhlcmUncyBhIGZpbHRlcmVkIGxpc3QgZm9yIHRoZSByZXF1ZXN0IGlu IHF1ZXN0aW9uLiBOb3RpY2UgbGFzdAp0d28gbGluZXMuIFRoZXkgYXJlIGJvdGggZHdjM19lcF9k ZXF1ZXVlKCkgd2l0aG91dCBhIG1hdGNoaW5nCmR3YzNfZXBfcXVldWUoKToKCiBpcnEvMTYtZHdj My0zOTgzICBbMDA0XSBkLi4uICAgMTMwLjk5Nzc5NDogZHdjM19nYWRnZXRfZ2l2ZWJhY2s6IGVw MWluOiByZXEgMDAwMDAwMDBlY2NhYTEwZiBsZW5ndGggODE5Mi84MTkyIHpzSSA9PT4gMApmaWxl LXN0b3JhZ2UtMzk4MiAgWzAwNl0gZC4uLiAgIDEzMC45OTgwOTA6IGR3YzNfZXBfcXVldWU6IGVw MWluOiByZXEgMDAwMDAwMDBlY2NhYTEwZiBsZW5ndGggMC8xNjM4NCB6c0kgPT0+IC0xMTUKIGly cS8xNi1kd2MzLTM5ODMgIFswMDRdIGQuLi4gICAxMzAuOTk4NTM1OiBkd2MzX2dhZGdldF9naXZl YmFjazogZXAxaW46IHJlcSAwMDAwMDAwMGVjY2FhMTBmIGxlbmd0aCAxNjM4NC8xNjM4NCB6c0kg PT0+IDAKZmlsZS1zdG9yYWdlLTM5ODIgIFswMDZdIGQuLi4gICAxMzAuOTk4NTg0OiBkd2MzX2Vw X3F1ZXVlOiBlcDFpbjogcmVxIDAwMDAwMDAwZWNjYWExMGYgbGVuZ3RoIDAvMTYzODQgenNJID09 PiAtMTE1CiBpcnEvMTYtZHdjMy0zOTgzICBbMDA0XSBkLi4uICAgMTMwLjk5OTE5NjogZHdjM19n YWRnZXRfZ2l2ZWJhY2s6IGVwMWluOiByZXEgMDAwMDAwMDBlY2NhYTEwZiBsZW5ndGggMTYzODQv MTYzODQgenNJID09PiAwCmZpbGUtc3RvcmFnZS0zOTgyICBbMDA2XSBkLi4uICAgMTMwLjk5OTI0 NTogZHdjM19lcF9xdWV1ZTogZXAxaW46IHJlcSAwMDAwMDAwMGVjY2FhMTBmIGxlbmd0aCAwLzE2 Mzg0IHpzSSA9PT4gLTExNQogaXJxLzE2LWR3YzMtMzk4MyAgWzAwNF0gZC4uLiAgIDEzMC45OTk4 NzE6IGR3YzNfZ2FkZ2V0X2dpdmViYWNrOiBlcDFpbjogcmVxIDAwMDAwMDAwZWNjYWExMGYgbGVu Z3RoIDE2Mzg0LzE2Mzg0IHpzSSA9PT4gMApmaWxlLXN0b3JhZ2UtMzk4MiAgWzAwNl0gZC4uLiAg IDEzMC45OTk5MTc6IGR3YzNfZXBfcXVldWU6IGVwMWluOiByZXEgMDAwMDAwMDBlY2NhYTEwZiBs ZW5ndGggMC8xNjM4NCB6c0kgPT0+IC0xMTUKIGlycS8xNi1kd2MzLTM5ODMgIFswMDRdIGQuLi4g ICAxMzEuMDAwNTQ1OiBkd2MzX2dhZGdldF9naXZlYmFjazogZXAxaW46IHJlcSAwMDAwMDAwMGVj Y2FhMTBmIGxlbmd0aCAxNjM4NC8xNjM4NCB6c0kgPT0+IDAKZmlsZS1zdG9yYWdlLTM5ODIgIFsw MDZdIGQuLi4gICAxMzEuMDAwNTU0OiBkd2MzX2VwX3F1ZXVlOiBlcDFpbjogcmVxIDAwMDAwMDAw ZWNjYWExMGYgbGVuZ3RoIDAvMTMgenNJID09PiAtMTE1CiBpcnEvMTYtZHdjMy0zOTgzICBbMDA0 XSBkLi4uICAgMTMxLjAwMDgzMDogZHdjM19nYWRnZXRfZ2l2ZWJhY2s6IGVwMWluOiByZXEgMDAw MDAwMDBlY2NhYTEwZiBsZW5ndGggMTMvMTMgenNJID09PiAwCmZpbGUtc3RvcmFnZS0zOTgyICBb MDA2XSBkLi4uICAgMTMxLjAwMTAyMTogZHdjM19lcF9xdWV1ZTogZXAxaW46IHJlcSAwMDAwMDAw MGVjY2FhMTBmIGxlbmd0aCAwLzE2Mzg0IHpzSSA9PT4gLTExNQogaXJxLzE2LWR3YzMtMzk4MyAg WzAwNF0gZC4uLiAgIDEzMS4wMDE3NjM6IGR3YzNfZ2FkZ2V0X2dpdmViYWNrOiBlcDFpbjogcmVx IDAwMDAwMDAwZWNjYWExMGYgbGVuZ3RoIDE2Mzg0LzE2Mzg0IHpzSSA9PT4gMApmaWxlLXN0b3Jh Z2UtMzk4MiAgWzAwNl0gZC4uLiAgIDEzMS4wMDE4MDk6IGR3YzNfZXBfcXVldWU6IGVwMWluOiBy ZXEgMDAwMDAwMDBlY2NhYTEwZiBsZW5ndGggMC8xNjM4NCB6c0kgPT0+IC0xMTUKIGlycS8xNi1k d2MzLTM5ODMgIFswMDRdIGQuLi4gICAxMzEuMDAyNDM3OiBkd2MzX2dhZGdldF9naXZlYmFjazog ZXAxaW46IHJlcSAwMDAwMDAwMGVjY2FhMTBmIGxlbmd0aCAxNjM4NC8xNjM4NCB6c0kgPT0+IDAK ZmlsZS1zdG9yYWdlLTM5ODIgIFswMDZdIGQuLi4gICAxMzEuMDAyNDgzOiBkd2MzX2VwX3F1ZXVl OiBlcDFpbjogcmVxIDAwMDAwMDAwZWNjYWExMGYgbGVuZ3RoIDAvMTYzODQgenNJID09PiAtMTE1 CiBpcnEvMTYtZHdjMy0zOTgzICBbMDA0XSBkLi4uICAgMTMxLjAwMzA5NzogZHdjM19nYWRnZXRf Z2l2ZWJhY2s6IGVwMWluOiByZXEgMDAwMDAwMDBlY2NhYTEwZiBsZW5ndGggMTYzODQvMTYzODQg enNJID09PiAwCmZpbGUtc3RvcmFnZS0zOTgyICBbMDA2XSBkLi4uICAgMTMxLjAwMzE0NDogZHdj M19lcF9xdWV1ZTogZXAxaW46IHJlcSAwMDAwMDAwMGVjY2FhMTBmIGxlbmd0aCAwLzgxOTIgenNJ ID09PiAtMTE1CiBpcnEvMTYtZHdjMy0zOTgzICBbMDA0XSBkLi4uICAgMTMxLjAwMzYxMDogZHdj M19nYWRnZXRfZ2l2ZWJhY2s6IGVwMWluOiByZXEgMDAwMDAwMDBlY2NhYTEwZiBsZW5ndGggODE5 Mi84MTkyIHpzSSA9PT4gMApmaWxlLXN0b3JhZ2UtMzk4MiAgWzAwNl0gZC4uLiAgIDEzMS4wMDM3 OTA6IGR3YzNfZXBfcXVldWU6IGVwMWluOiByZXEgMDAwMDAwMDBlY2NhYTEwZiBsZW5ndGggMC8x NjM4NCB6c0kgPT0+IC0xMTUKIGlycS8xNi1kd2MzLTM5ODMgIFswMDRdIGQuLi4gICAxMzEuMDA0 MTg2OiBkd2MzX2dhZGdldF9naXZlYmFjazogZXAxaW46IHJlcSAwMDAwMDAwMGVjY2FhMTBmIGxl bmd0aCAxNjM4NC8xNjM4NCB6c0kgPT0+IDAKZmlsZS1zdG9yYWdlLTM5ODIgIFswMDZdIGQuLi4g ICAxMzEuMDA0MjE3OiBkd2MzX2VwX3F1ZXVlOiBlcDFpbjogcmVxIDAwMDAwMDAwZWNjYWExMGYg bGVuZ3RoIDAvMTYzODQgenNJID09PiAtMTE1CiBpcnEvMTYtZHdjMy0zOTgzICBbMDA0XSBkLi4u ICAgMTMxLjAwNDg0ODogZHdjM19nYWRnZXRfZ2l2ZWJhY2s6IGVwMWluOiByZXEgMDAwMDAwMDBl Y2NhYTEwZiBsZW5ndGggMTYzODQvMTYzODQgenNJID09PiAwCmZpbGUtc3RvcmFnZS0zOTgyICBb MDA2XSBkLi4uICAgMTMxLjAwNDg5MjogZHdjM19lcF9xdWV1ZTogZXAxaW46IHJlcSAwMDAwMDAw MGVjY2FhMTBmIGxlbmd0aCAwLzE2Mzg0IHpzSSA9PT4gLTExNQogaXJxLzE2LWR3YzMtMzk4MyAg WzAwNF0gZC4uLiAgIDEzMS4wMDU1MTQ6IGR3YzNfZ2FkZ2V0X2dpdmViYWNrOiBlcDFpbjogcmVx IDAwMDAwMDAwZWNjYWExMGYgbGVuZ3RoIDE2Mzg0LzE2Mzg0IHpzSSA9PT4gMApmaWxlLXN0b3Jh Z2UtMzk4MiAgWzAwNl0gZC4uLiAgIDEzMS4wMDU1NjA6IGR3YzNfZXBfcXVldWU6IGVwMWluOiBy ZXEgMDAwMDAwMDBlY2NhYTEwZiBsZW5ndGggMC8xNjM4NCB6c0kgPT0+IC0xMTUKIGlycS8xNi1k d2MzLTM5ODMgIFswMDRdIGQuLi4gICAxMzEuMDA2MTc0OiBkd2MzX2dhZGdldF9naXZlYmFjazog ZXAxaW46IHJlcSAwMDAwMDAwMGVjY2FhMTBmIGxlbmd0aCAxNjM4NC8xNjM4NCB6c0kgPT0+IDAK ZmlsZS1zdG9yYWdlLTM5ODIgIFswMDZdIGQuLi4gICAxMzEuMDA2MjE4OiBkd2MzX2VwX3F1ZXVl OiBlcDFpbjogcmVxIDAwMDAwMDAwZWNjYWExMGYgbGVuZ3RoIDAvMTMgenNJID09PiAtMTE1CiBp cnEvMTYtZHdjMy0zOTgzICBbMDA0XSBkLi4uICAgMTMxLjAwNjQ2OTogZHdjM19nYWRnZXRfZ2l2 ZWJhY2s6IGVwMWluOiByZXEgMDAwMDAwMDBlY2NhYTEwZiBsZW5ndGggMTMvMTMgenNJID09PiAw CmZpbGUtc3RvcmFnZS0zOTgyICBbMDA2XSBkLi4uICAgMTMxLjAwNjY4MDogZHdjM19lcF9xdWV1 ZTogZXAxaW46IHJlcSAwMDAwMDAwMGVjY2FhMTBmIGxlbmd0aCAwLzE2Mzg0IHpzSSA9PT4gLTEx NQogaXJxLzE2LWR3YzMtMzk4MyAgWzAwNF0gZC4uLiAgIDEzMS4wMDczNjc6IGR3YzNfZ2FkZ2V0 X2dpdmViYWNrOiBlcDFpbjogcmVxIDAwMDAwMDAwZWNjYWExMGYgbGVuZ3RoIDE2Mzg0LzE2Mzg0 IHpzSSA9PT4gMApmaWxlLXN0b3JhZ2UtMzk4MiAgWzAwNl0gZC4uLiAgIDEzMS4wMDczOTg6IGR3 YzNfZXBfcXVldWU6IGVwMWluOiByZXEgMDAwMDAwMDBlY2NhYTEwZiBsZW5ndGggMC8xNjM4NCB6 c0kgPT0+IC0xMTUKIGlycS8xNi1kd2MzLTM5ODMgIFswMDRdIGQuLi4gICAxMzEuMDA4MDUwOiBk d2MzX2dhZGdldF9naXZlYmFjazogZXAxaW46IHJlcSAwMDAwMDAwMGVjY2FhMTBmIGxlbmd0aCAx NjM4NC8xNjM4NCB6c0kgPT0+IDAKZmlsZS1zdG9yYWdlLTM5ODIgIFswMDZdIGQuLi4gICAxMzEu MDA4MDk4OiBkd2MzX2VwX3F1ZXVlOiBlcDFpbjogcmVxIDAwMDAwMDAwZWNjYWExMGYgbGVuZ3Ro IDAvMTYzODQgenNJID09PiAtMTE1CiBpcnEvMTYtZHdjMy0zOTgzICBbMDA0XSBkLi4uICAgMTMx LjAwODcyMzogZHdjM19nYWRnZXRfZ2l2ZWJhY2s6IGVwMWluOiByZXEgMDAwMDAwMDBlY2NhYTEw ZiBsZW5ndGggMTYzODQvMTYzODQgenNJID09PiAwCmZpbGUtc3RvcmFnZS0zOTgyICBbMDA2XSBk Li4uICAgMTMxLjAwODc2NzogZHdjM19lcF9xdWV1ZTogZXAxaW46IHJlcSAwMDAwMDAwMGVjY2Fh MTBmIGxlbmd0aCAwLzgxOTIgenNJID09PiAtMTE1CiBpcnEvMTYtZHdjMy0zOTgzICBbMDA0XSBk Li4uICAgMTMxLjAwOTIzMTogZHdjM19nYWRnZXRfZ2l2ZWJhY2s6IGVwMWluOiByZXEgMDAwMDAw MDBlY2NhYTEwZiBsZW5ndGggODE5Mi84MTkyIHpzSSA9PT4gMApmaWxlLXN0b3JhZ2UtMzk4MiAg WzAwNl0gZC4uLiAgIDEzMS4wMDk1MjI6IGR3YzNfZXBfcXVldWU6IGVwMWluOiByZXEgMDAwMDAw MDBlY2NhYTEwZiBsZW5ndGggMC8xNjM4NCB6c0kgPT0+IC0xMTUKIGlycS8xNi1kd2MzLTM5ODMg IFswMDRdIGQuLi4gICAxMzEuMDA5OTQ2OiBkd2MzX2dhZGdldF9naXZlYmFjazogZXAxaW46IHJl cSAwMDAwMDAwMGVjY2FhMTBmIGxlbmd0aCAxNjM4NC8xNjM4NCB6c0kgPT0+IDAKZmlsZS1zdG9y YWdlLTM5ODIgIFswMDZdIGQuLi4gICAxMzEuMDA5OTgzOiBkd2MzX2VwX3F1ZXVlOiBlcDFpbjog cmVxIDAwMDAwMDAwZWNjYWExMGYgbGVuZ3RoIDAvMTYzODQgenNJID09PiAtMTE1CiBpcnEvMTYt ZHdjMy0zOTgzICBbMDA0XSBkLi4uICAgMTMxLjAxMDYxNzogZHdjM19nYWRnZXRfZ2l2ZWJhY2s6 IGVwMWluOiByZXEgMDAwMDAwMDBlY2NhYTEwZiBsZW5ndGggMTYzODQvMTYzODQgenNJID09PiAw CmZpbGUtc3RvcmFnZS0zOTgyICBbMDA2XSBkLi4uICAgMTMxLjAxMDY2MzogZHdjM19lcF9xdWV1 ZTogZXAxaW46IHJlcSAwMDAwMDAwMGVjY2FhMTBmIGxlbmd0aCAwLzE2Mzg0IHpzSSA9PT4gLTEx NQpmaWxlLXN0b3JhZ2UtMzk4MiAgWzAwNl0gLi4uLiAgIDEzMS4wNjU3NjY6IGR3YzNfZXBfZGVx dWV1ZTogZXAxaW46IHJlcSAwMDAwMDAwMGVjY2FhMTBmIGxlbmd0aCAwLzE2Mzg0IHpzSSA9PT4g LTExNQpmaWxlLXN0b3JhZ2UtMzk4MiAgWzAwNl0gLi4uLiAgIDEzNS4zMTUxNjI6IGR3YzNfZXBf ZGVxdWV1ZTogZXAxaW46IHJlcSAwMDAwMDAwMGVjY2FhMTBmIGxlbmd0aCAwLzE2Mzg0IHpzSSA9 PT4gLTExNQoKV2UgbmVlZCB0byBzZWUgd2hhdCBoYXBwZW5zIGFmdGVyIHdlIHByaW50IHRoaXMg ZXh0cmEgZGVxdWV1ZSBsaW5lCmhlcmUuIFdlIGFsc28gbmVlZCB0byBrbm93IHdoeSB1cHBlciBs YXllciBpcyBkZXF1ZXVlaW5nIHRoZSBzYW1lCnJlcXVlc3QgdHdpY2UuIEl0IHNlZW1zIGxpa2Ug d2UncmUgZGVhbGluZyB3aXRoIGEgZ2FkZ2V0IGRyaXZlcgpidWcuIEdyYW50ZWQsIHdlIG5lZWQg dG8gcHJvdGVjdCBvdXJzZWx2ZXMgZnJvbSBpdCwgYnV0IHdlIGRvbid0IGtub3cKd2h5IHVwcGVy IGxheWVyIGRlcXVldWVzIHRoZSBzYW1lIHRoaW5nIHR3aWNlOyBub3IgZG8gd2Uga25vdyB3aGF0 CmhhcHBlbnMgYWZ0ZXIgdGhpcyBsYXN0IGxpbmUgaGVyZS4KCkxvb2tpbmcgYXQgdGhlIGxhc3Qg ZmV3IGxpbmVzIHJlbGF0aW5nIHRvIGVwMWluIHdlIGhhdmU6Cgo+IGZpbGUtc3RvcmFnZS0zOTgy ICBbMDA2XSBkLi4uICAgMTMxLjAxMDY2MzogZHdjM19lcF9xdWV1ZTogZXAxaW46IHJlcSAwMDAw MDAwMGVjY2FhMTBmIGxlbmd0aCAwLzE2Mzg0IHpzSSA9PT4gLTExNQoKcXVldWUgdGhlIHJlcXVl c3QgaW4gcXVlc3Rpb24KCj4gZmlsZS1zdG9yYWdlLTM5ODIgIFswMDZdIGQuLi4gICAxMzEuMDEw NjY3OiBkd2MzX3ByZXBhcmVfdHJiOiBlcDFpbjogdHJiIDAwMDAwMDAwMmFiOGExZjkgYnVmIDAw MDAwMDAwYmRlMjQwMDAgc2l6ZSAxNjM4NCBjdHJsIDAwMDAwODExIChIbGNzOnNDOm5vcm1hbCkK CnByZXBhcmUgYSBUUkIgZm9yIGl0Cgo+IGZpbGUtc3RvcmFnZS0zOTgyICBbMDA2XSBkLi4uICAg MTMxLjAxMDY3NDogZHdjM19nYWRnZXRfZXBfY21kOiBlcDFpbjogY21kICdVcGRhdGUgVHJhbnNm ZXInIFszMDAwN10gcGFyYW1zIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIC0tPiBzdGF0dXM6 IFN1Y2Nlc3NmdWwKCm5vIHN0YXR1cyB1cGRhdGUgdHJhbnNmZXIKCj4gIGlycS8xNi1kd2MzLTM5 ODMgIFswMDRdIGQuLi4gICAxMzEuMDEwOTQyOiBkd2MzX2V2ZW50OiBldmVudCAoMDAwMDQwODYp OiBlcDFpbjogVHJhbnNmZXIgSW4gUHJvZ3Jlc3MgWzBdIChzSW0pCgp0cmFuc2ZlciBpbiBwcm9n cmVzcwoKPiAgaXJxLzE2LWR3YzMtMzk4MyAgWzAwNF0gZC4uLiAgIDEzMS4wMTA5NDI6IGR3YzNf Y29tcGxldGVfdHJiOiBlcDFpbjogdHJiIDAwMDAwMDAwNDI2Y2Q4Y2YgYnVmIDAwMDAwMDAwYmRl MjAwMDAgc2l6ZSAwIGN0cmwgMDAwMDA4MTAgKGhsY3M6c0M6bm9ybWFsKQoKY29tcGxldGUgYSBU UkIgaW4gZnVsbC4gV2hlcmUgaXMgb3VyIGdpdmViYWNrPyBUaGlzIGlzIG5vdCBhIGNoYWluZWQK VFJCLCBzbyB3ZSBzaG91bGQgaGF2ZSBhIGNhbGwgdG8gZ2l2ZWJhY2sgaGVyZS4gVGhpcyBpcyBh bHJlYWR5IGZpc2h5LgoKPiBmaWxlLXN0b3JhZ2UtMzk4MiAgWzAwNl0gZC4uLiAgIDEzMS4wMTA5 OTQ6IGR3YzNfZXBfcXVldWU6IGVwMWluOiByZXEgMDAwMDAwMDBmNzc2NWU1NiBsZW5ndGggMC8x NjM4NCB6c0kgPT0+IC0xMTUKCm5ldyByZXF1ZXN0IGNvbWluZyBpbgoKPiBmaWxlLXN0b3JhZ2Ut Mzk4MiAgWzAwNl0gZC4uLiAgIDEzMS4wMTA5OTg6IGR3YzNfcHJlcGFyZV90cmI6IGVwMWluOiB0 cmIgMDAwMDAwMDA2NWQ5MTQzZCBidWYgMDAwMDAwMDBiZGUyODAwMCBzaXplIDE2Mzg0IGN0cmwg MDAwMDA4MTEgKEhsY3M6c0M6bm9ybWFsKQoKYW5vdGhlciBUUkIKCj4gZmlsZS1zdG9yYWdlLTM5 ODIgIFswMDZdIGQuLi4gICAxMzEuMDExMDA1OiBkd2MzX2dhZGdldF9lcF9jbWQ6IGVwMWluOiBj bWQgJ1VwZGF0ZSBUcmFuc2ZlcicgWzMwMDA3XSBwYXJhbXMgMDAwMDAwMDAgMDAwMDAwMDAgMDAw MDAwMDAgLS0+IHN0YXR1czogU3VjY2Vzc2Z1bAoKdXBkYXRlIHRyYW5zZmVyCgo+IGZpbGUtc3Rv cmFnZS0zOTgyICBbMDA2XSAuLi4uICAgMTMxLjA2NTU1ODogZHdjM19lcF9kZXF1ZXVlOiBlcDFp bjogcmVxIDAwMDAwMDAwZjc3NjVlNTYgbGVuZ3RoIDAvMTYzODQgenNJID09PiAtMTE1CgphIGNh bGwgdG8gZGVxdWV1ZSBmb3IgdGhlIG5ldyByZXF1ZXN0LiBSZXF1ZXN0IGlzIG1vdmVkIHRvIGNh bmNlbGxlZCBsaXN0Cgo+IGZpbGUtc3RvcmFnZS0zOTgyICBbMDA2XSBkLi4uICAgMTMxLjA2NTY4 NzogZHdjM19nYWRnZXRfZXBfY21kOiBlcDFpbjogY21kICdFbmQgVHJhbnNmZXInIFszMGQwOF0g cGFyYW1zIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIC0tPiBzdGF0dXM6IFN1Y2Nlc3NmdWwK CkVuZCB0cmFuc2ZlciBpc3N1ZWQKCj4gIGlycS8xNi1kd2MzLTM5ODMgIFswMDRdIGQuLi4gICAx MzEuMDY1NzI5OiBkd2MzX2V2ZW50OiBldmVudCAoMDgwMzAxYzYpOiBlcDFpbjogRW5kcG9pbnQg Q29tbWFuZCBDb21wbGV0ZQoKRW5kIHRyYW5zZmVyIGNvbXBsZXRlZAoKPiAgaXJxLzE2LWR3YzMt Mzk4MyAgWzAwNF0gZC4uLiAgIDEzMS4wNjU3MzE6IGR3YzNfZ2FkZ2V0X2dpdmViYWNrOiBlcDFp bjogcmVxIDAwMDAwMDAwZjc3NjVlNTYgbGVuZ3RoIDAvMTYzODQgenNJID09PiAtMTA0Cgpmb3Ig ZWFjaCByZXF1ZXN0IGlzIGNhbmNlbGxlZF9saXN0LCBnaXZlYmFjay4KCj4gZmlsZS1zdG9yYWdl LTM5ODIgIFswMDZdIC4uLi4gICAxMzEuMDY1NzY2OiBkd2MzX2VwX2RlcXVldWU6IGVwMWluOiBy ZXEgMDAwMDAwMDBlY2NhYTEwZiBsZW5ndGggMC8xNjM4NCB6c0kgPT0+IC0xMTUKPiBmaWxlLXN0 b3JhZ2UtMzk4MiAgWzAwNl0gLi4uLiAgIDEzNS4zMTUxNjI6IGR3YzNfZXBfZGVxdWV1ZTogZXAx aW46IHJlcSAwMDAwMDAwMGVjY2FhMTBmIGxlbmd0aCAwLzE2Mzg0IHpzSSA9PT4gLTExNQoKVHJ5 IHRvIGRlcXVldWUgYSByZXF1ZXN0IHRoYXQgd2FzIGFscmVhZHkgY29tcGxldGVkLiBPZGQuIFdo eSBhcmUgd2UKbWlzc2luZyBhIGNhbGwgdG8gZ2l2ZWJhY2s/PwoKPj4gV2hhdCB3ZSBuZWVkIGlz IGEgd2F5IHRvIGVuc3VyZSB0aGF0IGVpdGhlciBFTkRfVFJBTlNGRVIgaGFwcGVucywgb3IKPj4g cHJvdmUgdGhhdCBmb3IgY2FzZXMgd2hlcmUgRU5EX1RSQU5TRkVSIGlzbid0IGlzc3VlZCwgaXMg YmVjYXVzZSBvZgo+PiBzdXNwZW5kL3Jlc3VtZSBvciBkcml2ZXIgcmVtb3ZhbC4gSW4gZWl0aGVy IGNhc2UsIHdlIGNhbiBzYWZlbHkgZ2l2ZWJhY2sKPj4gdGhlIFRSQnMgc2luY2UgY29yZSB3aWxs IGJlIHJlaW5pdGlhbGl6ZWQgbGF0ZXIgb24uCj4+Cj4+IFN0aWxsLCBpZiB5b3UgaGF2ZSBzb21l IHRyYWNlcG9pbnRzLCBJJ2QgbGlrZSB0byBzZWUgd2h5IGlzIGl0IHRoYXQgY29yZQo+PiBkb2Vz bid0IGlzc3VlIEVORF9UUkFOU0ZFUi4KPj4KPgo+IFRoZSBkcml2ZXIgZG9lcyBzZW5kIEVORF9U UkFOU0ZFUiBjb21tYW5kLiBTbywgdGhlIGlzc3VlIGhlcmUgaXMgdGhlCj4gdXBwZXJsYXllciBk cml2ZXIgY2FuIGNhbGwgZGVxdWV1ZSgpIGFmdGVyIHRoZSBFTkRfVFJBTlNGRVIgY29tbWFuZCB3 YXMKPiBjb21wbGV0ZWQgYW5kIGJlZm9yZSBhbnkgbmV3IFNUQVJUX1RSQU5TRkVSIGNvbW1hbmQu IFRoZSByZXF1ZXN0IHdhcyBub3QKPiBhZGRlZCB0byB0aGUgY2FuY2VsbGVkIGxpc3Qgc29vbiBl bm91Z2ggZm9yIGl0IHRvIGJlIGNsZWFuZWQgdXAgb24KPiBjb21tYW5kIGNvbXBsZXRpb24uCj4K PiBIb3cgYWJvdXQgZ2l2ZWJhY2sgdGhlIHJlcXVlc3QgaW1tZWRpYXRlbHkgaWYgZW5kcG9pbnQg aGFzbid0IHN0YXJ0ZWQKPiBhbmQgbm8gcGVuZGluZ19lbmRfdHJhbnNmZXI/Cgp3ZSBhbHJlYWR5 IGRvIHRoYXQuIEhlcmUncyBlcF9kZXF1ZXVlIHdpdGggY29tbWVudHM6Cgo+IHN0YXRpYyBpbnQg ZHdjM19nYWRnZXRfZXBfZGVxdWV1ZShzdHJ1Y3QgdXNiX2VwICplcCwKPiAJCXN0cnVjdCB1c2Jf cmVxdWVzdCAqcmVxdWVzdCkKPiB7Cj4gCXN0cnVjdCBkd2MzX3JlcXVlc3QJCSpyZXEgPSB0b19k d2MzX3JlcXVlc3QocmVxdWVzdCk7Cj4gCXN0cnVjdCBkd2MzX3JlcXVlc3QJCSpyID0gTlVMTDsK Pgo+IAlzdHJ1Y3QgZHdjM19lcAkJCSpkZXAgPSB0b19kd2MzX2VwKGVwKTsKPiAJc3RydWN0IGR3 YzMJCQkqZHdjID0gZGVwLT5kd2M7Cj4KPiAJdW5zaWduZWQgbG9uZwkJCWZsYWdzOwo+IAlpbnQJ CQkJcmV0ID0gMDsKPgo+IAl0cmFjZV9kd2MzX2VwX2RlcXVldWUocmVxKTsKCnByaW50IG91ciB0 cmFjZSBsaW5lCgo+IAlzcGluX2xvY2tfaXJxc2F2ZSgmZHdjLT5sb2NrLCBmbGFncyk7Cj4KPiAJ bGlzdF9mb3JfZWFjaF9lbnRyeShyLCAmZGVwLT5wZW5kaW5nX2xpc3QsIGxpc3QpIHsKPiAJCWlm IChyID09IHJlcSkKPiAJCQlicmVhazsKCmlmIHdlIGZpbmQgdGhlIHJlcXVlc3Qgb24gcGVuZGlu Z19saXN0LCBtZWFuaW5nIGl0IHdhc24ndCBzdGFydGVkLi4uCgo+IAl9Cj4KPiAJaWYgKHIgIT0g cmVxKSB7CgouLi4gdGhpcyB3b24ndCBiZSB0cnVlLi4uCgo+IAkJbGlzdF9mb3JfZWFjaF9lbnRy eShyLCAmZGVwLT5zdGFydGVkX2xpc3QsIGxpc3QpIHsKPiAJCQlpZiAociA9PSByZXEpCj4gCQkJ CWJyZWFrOwo+IAkJfQo+IAkJaWYgKHIgPT0gcmVxKSB7Cj4gCQkJLyogd2FpdCB1bnRpbCBpdCBp cyBwcm9jZXNzZWQgKi8KPiAJCQlkd2MzX3N0b3BfYWN0aXZlX3RyYW5zZmVyKGRlcCwgdHJ1ZSk7 Cj4KPiAJCQlpZiAoIXItPnRyYikKPiAJCQkJZ290byBvdXQwOwo+Cj4gCQkJZHdjM19nYWRnZXRf bW92ZV9jYW5jZWxsZWRfcmVxdWVzdChyZXEpOwo+IAkJCWdvdG8gb3V0MDsKPiAJCX0KPiAJCWRl dl9lcnIoZHdjLT5kZXYsICJyZXF1ZXN0ICVwSyB3YXMgbm90IHF1ZXVlZCB0byAlc1xuIiwKPiAJ CQkJcmVxdWVzdCwgZXAtPm5hbWUpOwo+IAkJcmV0ID0gLUVJTlZBTDsKPiAJCWdvdG8gb3V0MDsK PiAJfQo+Cj4gCWR3YzNfZ2FkZ2V0X2dpdmViYWNrKGRlcCwgcmVxLCAtRUNPTk5SRVNFVCk7Cgou Li4gYW5kIHdlIHdpbGwgcnVuIHRoaXMuIFJlcXVlc3QgaXMgb25seSBtb3ZlZCB0byBjYW5jZWxs ZWRfbGlzdCBpZiBpdAp3YXMgcHJldmlvdXNseSBvbiBzdGFydGVkX2xpc3QuCgo+IG91dDA6Cj4g CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmR3Yy0+bG9jaywgZmxhZ3MpOwo+Cj4gCXJldHVybiBy ZXQ7Cj4gfQo=