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: usb: introduce usb_ep_type_string() function From: Chunfeng Yun Message-Id: <1551752548.2210.94.camel@mhfsdcap03> Date: Tue, 5 Mar 2019 10:22:28 +0800 To: Greg Kroah-Hartman Cc: Felipe Balbi , Mathias Nyman , Joel Stanley , Andrew Jeffery , Matthias Brugger , Yoshihiro Shimoda , Arnd Bergmann , Martin Blumenstingl , Alan Stern , Roger Quadros , Sebastian Andrzej Siewior , "Gustavo A. R. Silva" , Johan Hovold , Benjamin Herrenschmidt , Colin Ian King , Jaejoong Kim , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-mediatek@lists.infradead.org List-ID: SGksCk9uIEZyaSwgMjAxOS0wMy0wMSBhdCAxNzoyMSArMDEwMCwgR3JlZyBLcm9haC1IYXJ0bWFu IHdyb3RlOgo+IE9uIEZyaSwgTWFyIDAxLCAyMDE5IGF0IDAyOjU4OjIzUE0gKzA4MDAsIENodW5m ZW5nIFl1biB3cm90ZToKPiA+IEluIHNvbWUgcGxhY2VzLCB0aGUgY29kZSBwcmludHMgYSBodW1h bi1yZWFkYWJsZSBVU0IgZW5kcG9pbnQKPiA+IHRyYW5zZmVyIHR5cGUgKGUuZy4gImJ1bGsiKS4g VGhpcyBpbnZvbHZlcyBhIHN3aXRjaCBzdGF0ZW1lbnQKPiA+IHNvbWV0aW1lcyB3cmFwcGVkIGFy b3VuZCBpbiAoeyAuLi4gfSkgYmxvY2sgbGVhZGluZyB0byBjb2RlCj4gPiByZXBldGl0aW9uLgo+ ID4gVG8gbWFrZSB0aGlzIHNjZW5hcmlvIGVhc2llciwgaGVyZSBpbnRyb2R1Y2VzIHVzYl9lcF90 eXBlX3N0cmluZygpCj4gPiBmdW5jdGlvbiwgd2hpY2ggcmV0dXJucyBhIGh1bWFuLXJlYWRhYmxl IG5hbWUgb2YgcHJvdmlkZWQKPiA+IGVuZHBvaW50IHR5cGUuCj4gPiBJdCBhbHNvIGNoYW5nZXMg YSBmZXcgcGxhY2VzIHN3aXRjaCB3YXMgdXNlZCB0byB1c2UgdGhpcwo+ID4gbmV3IGZ1bmN0aW9u Lgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBDaHVuZmVuZyBZdW4gPGNodW5mZW5nLnl1bkBtZWRp YXRlay5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL3VzYi9jb21tb24vY29tbW9uLmMgICAgICAg ICAgICAgIHwgMTYgKysrKysrKysrKysrKysrKwo+ID4gIGRyaXZlcnMvdXNiL2NvcmUvZW5kcG9p bnQuYyAgICAgICAgICAgICAgfCAxOCArKy0tLS0tLS0tLS0tLS0tLS0KPiA+ICBkcml2ZXJzL3Vz Yi9jb3JlL2hjZC5jICAgICAgICAgICAgICAgICAgIHwgMTcgKystLS0tLS0tLS0tLS0tLS0KPiA+ ICBkcml2ZXJzL3VzYi9kd2MzL2RlYnVnZnMuYyAgICAgICAgICAgICAgIHwgMjMgKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0KPiA+ICBkcml2ZXJzL3VzYi9nYWRnZXQvdWRjL2FzcGVlZC12aHViL2Vw bi5jIHwgIDYgKy0tLS0tCj4gPiAgZHJpdmVycy91c2IvZ2FkZ2V0L3VkYy9kdW1teV9oY2QuYyAg ICAgICB8IDE2ICstLS0tLS0tLS0tLS0tLS0KPiA+ICBkcml2ZXJzL3VzYi9ob3N0L3hoY2ktdHJh Y2UuaCAgICAgICAgICAgIHwgMTkgKystLS0tLS0tLS0tLS0tLS0tLQo+ID4gIGluY2x1ZGUvbGlu dXgvdXNiL2NoOS5oICAgICAgICAgICAgICAgICAgfCAgOCArKysrKysrKwo+ID4gIDggZmlsZXMg Y2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgODcgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL3VzYi9jb21tb24vY29tbW9uLmMgYi9kcml2ZXJzL3VzYi9jb21tb24v Y29tbW9uLmMKPiA+IGluZGV4IDQ4Mjc3YmJjMTVlNC4uMjE3NGRkOWVjMTc2IDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy91c2IvY29tbW9uL2NvbW1vbi5jCj4gPiArKysgYi9kcml2ZXJzL3VzYi9j b21tb24vY29tbW9uLmMKPiA+IEBAIC0xNiw2ICsxNiwyMiBAQAo+ID4gICNpbmNsdWRlIDxsaW51 eC91c2Ivb3RnLmg+Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+Cj4gPiAgCj4g PiArc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IGVwX3R5cGVfbmFtZXNbXSA9IHsKPiA+ICsJW1VT Ql9FTkRQT0lOVF9YRkVSX0NPTlRST0xdID0gImN0cmwiLAo+ID4gKwlbVVNCX0VORFBPSU5UX1hG RVJfSVNPQ10gPSAiaXNvYyIsCj4gPiArCVtVU0JfRU5EUE9JTlRfWEZFUl9CVUxLXSA9ICJidWxr IiwKPiA+ICsJW1VTQl9FTkRQT0lOVF9YRkVSX0lOVF0gPSAiaW50ciIsCj4gPiArfTsKPiA+ICsK PiA+ICtjb25zdCBjaGFyICp1c2JfZXBfdHlwZV9zdHJpbmcoaW50IGVwX3R5cGUpCj4gPiArewo+ ID4gKwlpZiAoZXBfdHlwZSA8IDAgfHwgZXBfdHlwZSA+PSBBUlJBWV9TSVpFKGVwX3R5cGVfbmFt ZXMpKQo+ID4gKwkJcmV0dXJuICJ1bmtub3duIjsKPiA+ICsKPiA+ICsJcmV0dXJuIGVwX3R5cGVf bmFtZXNbZXBfdHlwZV07Cj4gPiArfQo+ID4gK0VYUE9SVF9TWU1CT0xfR1BMKHVzYl9lcF90eXBl X3N0cmluZyk7Cj4gPiArCj4gPiAgY29uc3QgY2hhciAqdXNiX290Z19zdGF0ZV9zdHJpbmcoZW51 bSB1c2Jfb3RnX3N0YXRlIHN0YXRlKQo+ID4gIHsKPiA+ICAJc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IG5hbWVzW10gPSB7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9lbmRwb2lu dC5jIGIvZHJpdmVycy91c2IvY29yZS9lbmRwb2ludC5jCj4gPiBpbmRleCAxYzJjMDQwNzk2NzYu LmFmYTQzZjlhNDdiMiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvZW5kcG9pbnQu Ywo+ID4gKysrIGIvZHJpdmVycy91c2IvY29yZS9lbmRwb2ludC5jCj4gPiBAQCAtNjAsMjMgKzYw LDkgQEAgc3RhdGljIHNzaXplX3QgdHlwZV9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCj4gPiAgCQkJIGNoYXIgKmJ1ZikKPiA+ICB7Cj4gPiAg CXN0cnVjdCBlcF9kZXZpY2UgKmVwID0gdG9fZXBfZGV2aWNlKGRldik7Cj4gPiAtCWNoYXIgKnR5 cGUgPSAidW5rbm93biI7Cj4gPiArCWludCBlcF90eXBlID0gdXNiX2VuZHBvaW50X3R5cGUoZXAt PmRlc2MpOwo+ID4gIAo+ID4gLQlzd2l0Y2ggKHVzYl9lbmRwb2ludF90eXBlKGVwLT5kZXNjKSkg ewo+ID4gLQljYXNlIFVTQl9FTkRQT0lOVF9YRkVSX0NPTlRST0w6Cj4gPiAtCQl0eXBlID0gIkNv bnRyb2wiOwo+ID4gLQkJYnJlYWs7Cj4gPiAtCWNhc2UgVVNCX0VORFBPSU5UX1hGRVJfSVNPQzoK PiA+IC0JCXR5cGUgPSAiSXNvYyI7Cj4gPiAtCQlicmVhazsKPiA+IC0JY2FzZSBVU0JfRU5EUE9J TlRfWEZFUl9CVUxLOgo+ID4gLQkJdHlwZSA9ICJCdWxrIjsKPiA+IC0JCWJyZWFrOwo+ID4gLQlj YXNlIFVTQl9FTkRQT0lOVF9YRkVSX0lOVDoKPiA+IC0JCXR5cGUgPSAiSW50ZXJydXB0IjsKPiA+ IC0JCWJyZWFrOwo+ID4gLQl9Cj4gPiAtCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVzXG4iLCB0eXBl KTsKPiA+ICsJcmV0dXJuIHNwcmludGYoYnVmLCAiJXNcbiIsIHVzYl9lcF90eXBlX3N0cmluZyhl cF90eXBlKSk7Cj4gCj4gWW91IGp1c3QgY2hhbmdlZCBhIHVzZXIva2VybmVsIEFQSSBoZXJlLCB0 aGUgc3RyaW5ncyBhcmUgbm93IGRpZmZlcmVudAo+IGZyb20gd2hhdCB0aGV5IHVzZWQgdG8gYmUg OigKSG93IGFib3V0IHVzaW5nIHRoZXNlIHR5cGUgc3RyaW5nIHRvIGtlZXAgdGhlbSB1bmNoYW5n ZWQ/CgpJIG5lZWQgaGVscCBmcm9tIEZlbGlwZSBhbmQgTWF0aGlhcyB0byBjaGVjayB3aGV0aGVy IHRoZSBjaGFuZ2VzIGluIGR3YzMKYW5kIHhoY2kgaGF2ZSBzaWRlIGVmZmVjdCBvciBub3QsIGFu ZCB3YWl0aW5nIGZvciB0aGVpciBjb21tZW50cwoKVGhhbmtzCj4gCj4gVGhhdCdzIG5vdCBvaywg b2RkcyBhcmUgeW91IHdpbGwgYnJlYWsgdG9vbHMgaWYgeW91IGRvIHRoaXMuCj4gCj4gPiAgfQo+ ID4gIHN0YXRpYyBERVZJQ0VfQVRUUl9STyh0eXBlKTsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL3VzYi9jb3JlL2hjZC5jIGIvZHJpdmVycy91c2IvY29yZS9oY2QuYwo+ID4gaW5kZXgg MDE1YjEyNmNlNDU1Li4xOTNlZTkyYjJmZGIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3VzYi9j b3JlL2hjZC5jCj4gPiArKysgYi9kcml2ZXJzL3VzYi9jb3JlL2hjZC5jCj4gPiBAQCAtMTg3NSwy MyArMTg3NSwxMCBAQCB2b2lkIHVzYl9oY2RfZmx1c2hfZW5kcG9pbnQoc3RydWN0IHVzYl9kZXZp Y2UgKnVkZXYsCj4gPiAgCQkvKiBraWNrIGhjZCAqLwo+ID4gIAkJdW5saW5rMShoY2QsIHVyYiwg LUVTSFVURE9XTik7Cj4gPiAgCQlkZXZfZGJnIChoY2QtPnNlbGYuY29udHJvbGxlciwKPiA+IC0J CQkic2h1dGRvd24gdXJiICVwSyBlcCVkJXMlc1xuIiwKPiA+ICsJCQkic2h1dGRvd24gdXJiICVw SyBlcCVkJXMtJXNcbiIsCj4gPiAgCQkJdXJiLCB1c2JfZW5kcG9pbnRfbnVtKCZlcC0+ZGVzYyks Cj4gPiAgCQkJaXNfaW4gPyAiaW4iIDogIm91dCIsCj4gPiAtCQkJKHsJY2hhciAqczsKPiA+IC0K PiA+IC0JCQkJIHN3aXRjaCAodXNiX2VuZHBvaW50X3R5cGUoJmVwLT5kZXNjKSkgewo+ID4gLQkJ CQkgY2FzZSBVU0JfRU5EUE9JTlRfWEZFUl9DT05UUk9MOgo+ID4gLQkJCQkJcyA9ICIiOyBicmVh azsKPiA+IC0JCQkJIGNhc2UgVVNCX0VORFBPSU5UX1hGRVJfQlVMSzoKPiA+IC0JCQkJCXMgPSAi LWJ1bGsiOyBicmVhazsKPiA+IC0JCQkJIGNhc2UgVVNCX0VORFBPSU5UX1hGRVJfSU5UOgo+ID4g LQkJCQkJcyA9ICItaW50ciI7IGJyZWFrOwo+ID4gLQkJCQkgZGVmYXVsdDoKPiA+IC0JCQkJCXMg PSAiLWlzbyI7IGJyZWFrOwo+ID4gLQkJCQl9Owo+ID4gLQkJCQlzOwo+ID4gLQkJCX0pKTsKPiA+ ICsJCQl1c2JfZXBfdHlwZV9zdHJpbmcodXNiX2VuZHBvaW50X3R5cGUoJmVwLT5kZXNjKSkpOwo+ IAo+IFlvdSBhbHNvIGNoYW5nZWQgdGhlIG1lc3NhZ2UgaGVyZSBmb3IgY29udHJvbCBlbmRwb2lu dHMsIGJ1dCB0aGF0J3Mgbm90Cj4gYSBiaWcgZGVhbCwgaXQncyBvay4KPiAKPiA+ICAJCXVzYl9w dXRfdXJiICh1cmIpOwo+ID4gIAo+ID4gIAkJLyogbGlzdCBjb250ZW50cyBtYXkgaGF2ZSBjaGFu Z2VkICovCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZHdjMy9kZWJ1Z2ZzLmMgYi9kcml2 ZXJzL3VzYi9kd2MzL2RlYnVnZnMuYwo+ID4gaW5kZXggMWM3OTI3MTAzNDhmLi5kOWUyYTYzODM1 ZmUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3VzYi9kd2MzL2RlYnVnZnMuYwo+ID4gKysrIGIv ZHJpdmVycy91c2IvZHdjMy9kZWJ1Z2ZzLmMKPiA+IEBAIC03NTAsMjggKzc1MCwxMyBAQCBzdGF0 aWMgaW50IGR3YzNfdHJhbnNmZXJfdHlwZV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAq dW51c2VkKQo+ID4gIAl1bnNpZ25lZCBsb25nCQlmbGFnczsKPiA+ICAKPiA+ICAJc3Bpbl9sb2Nr X2lycXNhdmUoJmR3Yy0+bG9jaywgZmxhZ3MpOwo+ID4gLQlpZiAoIShkZXAtPmZsYWdzICYgRFdD M19FUF9FTkFCTEVEKSB8fAo+ID4gLQkJCSFkZXAtPmVuZHBvaW50LmRlc2MpIHsKPiA+IC0JCXNl cV9wcmludGYocywgIi0tXG4iKTsKPiA+ICsJaWYgKCEoZGVwLT5mbGFncyAmIERXQzNfRVBfRU5B QkxFRCkgfHwgIWRlcC0+ZW5kcG9pbnQuZGVzYykgewo+ID4gKwkJc2VxX3B1dHMocywgInVua25v d25cbiIpOwo+ID4gIAkJZ290byBvdXQ7Cj4gPiAgCX0KPiA+ICAKPiA+IC0Jc3dpdGNoICh1c2Jf ZW5kcG9pbnRfdHlwZShkZXAtPmVuZHBvaW50LmRlc2MpKSB7Cj4gPiAtCWNhc2UgVVNCX0VORFBP SU5UX1hGRVJfQ09OVFJPTDoKPiA+IC0JCXNlcV9wcmludGYocywgImNvbnRyb2xcbiIpOwo+ID4g LQkJYnJlYWs7Cj4gPiAtCWNhc2UgVVNCX0VORFBPSU5UX1hGRVJfSVNPQzoKPiA+IC0JCXNlcV9w cmludGYocywgImlzb2Nocm9ub3VzXG4iKTsKPiA+IC0JCWJyZWFrOwo+ID4gLQljYXNlIFVTQl9F TkRQT0lOVF9YRkVSX0JVTEs6Cj4gPiAtCQlzZXFfcHJpbnRmKHMsICJidWxrXG4iKTsKPiA+IC0J CWJyZWFrOwo+ID4gLQljYXNlIFVTQl9FTkRQT0lOVF9YRkVSX0lOVDoKPiA+IC0JCXNlcV9wcmlu dGYocywgImludGVycnVwdFxuIik7Cj4gPiAtCQlicmVhazsKPiA+IC0JZGVmYXVsdDoKPiA+IC0J CXNlcV9wcmludGYocywgIi0tXG4iKTsKPiA+IC0JfQo+ID4gKwlzZXFfcHJpbnRmKHMsICIlc1xu IiwKPiA+ICsJCSAgIHVzYl9lcF90eXBlX3N0cmluZyh1c2JfZW5kcG9pbnRfdHlwZShkZXAtPmVu ZHBvaW50LmRlc2MpKSk7Cj4gCj4gSXQgaXMgZGVidWdmcywgc28gbm8gcmVhbCBBUEkgZ3VhcmFu dGVlcyBhdCBhbGwsIGJ1dCB5b3UgZGlkIGNoYW5nZSB0aGUKPiBvdXRwdXQgZm9ybWF0LCBhbmQg dGhhdCdzIG5vdCBhbHdheXMgZ29vZC4KZ290IGl0Cj4gCj4gPiAgCj4gPiAgb3V0Ogo+ID4gIAlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZkd2MtPmxvY2ssIGZsYWdzKTsKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3VzYi9nYWRnZXQvdWRjL2FzcGVlZC12aHViL2Vwbi5jIGIvZHJpdmVycy91c2Iv Z2FkZ2V0L3VkYy9hc3BlZWQtdmh1Yi9lcG4uYwo+ID4gaW5kZXggNGEyOGUzZmJlYjBiLi4xNjVi MGE0MzY3MGUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvdWRjL2FzcGVlZC12 aHViL2Vwbi5jCj4gPiArKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvdWRjL2FzcGVlZC12aHViL2Vw bi5jCj4gPiBAQCAtNTkzLDEwICs1OTMsNiBAQCBzdGF0aWMgaW50IGFzdF92aHViX2Vwbl9kaXNh YmxlKHN0cnVjdCB1c2JfZXAqIHVfZXApCj4gPiAgc3RhdGljIGludCBhc3Rfdmh1Yl9lcG5fZW5h YmxlKHN0cnVjdCB1c2JfZXAqIHVfZXAsCj4gPiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCB1c2Jf ZW5kcG9pbnRfZGVzY3JpcHRvciAqZGVzYykKPiA+ICB7Cj4gPiAtCXN0YXRpYyBjb25zdCBjaGFy ICplcF90eXBlX3N0cmluZ1tdIF9fbWF5YmVfdW51c2VkID0geyAiY3RybCIsCj4gPiAtCQkJCQkJ CSAgICAgICAiaXNvYyIsCj4gPiAtCQkJCQkJCSAgICAgICAiYnVsayIsCj4gPiAtCQkJCQkJCSAg ICAgICAiaW50ciIgfTsKPiA+ICAJc3RydWN0IGFzdF92aHViX2VwICplcCA9IHRvX2FzdF9lcCh1 X2VwKTsKPiA+ICAJc3RydWN0IGFzdF92aHViX2RldiAqZGV2Owo+ID4gIAlzdHJ1Y3QgYXN0X3Zo dWIgKnZodWI7Cj4gPiBAQCAtNjQ2LDcgKzY0Miw3IEBAIHN0YXRpYyBpbnQgYXN0X3ZodWJfZXBu X2VuYWJsZShzdHJ1Y3QgdXNiX2VwKiB1X2VwLAo+ID4gIAllcC0+ZXBuLndlZGdlZCA9IGZhbHNl Owo+ID4gIAo+ID4gIAlFUERCRyhlcCwgIkVuYWJsaW5nIFslc10gJXMgbnVtICVkIG1heHBhY2tl dD0lZFxuIiwKPiA+IC0JICAgICAgZXAtPmVwbi5pc19pbiA/ICJpbiIgOiAib3V0IiwgZXBfdHlw ZV9zdHJpbmdbdHlwZV0sCj4gPiArCSAgICAgIGVwLT5lcG4uaXNfaW4gPyAiaW4iIDogIm91dCIs IHVzYl9lcF90eXBlX3N0cmluZyh0eXBlKSwKPiA+ICAJICAgICAgdXNiX2VuZHBvaW50X251bShk ZXNjKSwgbWF4cGFja2V0KTsKPiA+ICAKPiA+ICAJLyogQ2FuIHdlIHVzZSBETUEgZGVzY3JpcHRv ciBtb2RlID8gKi8KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvdWRjL2R1bW15 X2hjZC5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3VkYy9kdW1teV9oY2QuYwo+ID4gaW5kZXggYmFm NzJmOTVmMGYxLi40MGM2YTQ4NGUyMzIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3VzYi9nYWRn ZXQvdWRjL2R1bW15X2hjZC5jCj4gPiArKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvdWRjL2R1bW15 X2hjZC5jCj4gPiBAQCAtNjE3LDIxICs2MTcsNyBAQCBzdGF0aWMgaW50IGR1bW15X2VuYWJsZShz dHJ1Y3QgdXNiX2VwICpfZXAsCj4gPiAgCQlfZXAtPm5hbWUsCj4gPiAgCQlkZXNjLT5iRW5kcG9p bnRBZGRyZXNzICYgMHgwZiwKPiA+ICAJCShkZXNjLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJ Ul9JTikgPyAiaW4iIDogIm91dCIsCj4gPiAtCQkoeyBjaGFyICp2YWw7Cj4gPiAtCQkgc3dpdGNo ICh1c2JfZW5kcG9pbnRfdHlwZShkZXNjKSkgewo+ID4gLQkJIGNhc2UgVVNCX0VORFBPSU5UX1hG RVJfQlVMSzoKPiA+IC0JCQkgdmFsID0gImJ1bGsiOwo+ID4gLQkJCSBicmVhazsKPiA+IC0JCSBj YXNlIFVTQl9FTkRQT0lOVF9YRkVSX0lTT0M6Cj4gPiAtCQkJIHZhbCA9ICJpc28iOwo+ID4gLQkJ CSBicmVhazsKPiA+IC0JCSBjYXNlIFVTQl9FTkRQT0lOVF9YRkVSX0lOVDoKPiA+IC0JCQkgdmFs ID0gImludHIiOwo+ID4gLQkJCSBicmVhazsKPiA+IC0JCSBkZWZhdWx0Ogo+ID4gLQkJCSB2YWwg PSAiY3RybCI7Cj4gPiAtCQkJIGJyZWFrOwo+ID4gLQkJIH0gdmFsOyB9KSwKPiA+ICsJCXVzYl9l cF90eXBlX3N0cmluZyh1c2JfZW5kcG9pbnRfdHlwZShkZXNjKSksCj4gPiAgCQltYXgsIGVwLT5z dHJlYW1fZW4gPyAiZW5hYmxlZCIgOiAiZGlzYWJsZWQiKTsKPiA+ICAKPiA+ICAJLyogYXQgdGhp cyBwb2ludCByZWFsIGhhcmR3YXJlIHNob3VsZCBiZSBOQUtpbmcgdHJhbnNmZXJzCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXRyYWNlLmggYi9kcml2ZXJzL3VzYi9ob3N0 L3hoY2ktdHJhY2UuaAo+ID4gaW5kZXggODhiNDI3NDM0YmQ4Li5iYWM3M2Q2ODhmMTEgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktdHJhY2UuaAo+ID4gKysrIGIvZHJpdmVy cy91c2IvaG9zdC94aGNpLXRyYWNlLmgKPiA+IEBAIC0yODksMjMgKzI4OSw4IEBAIERFQ0xBUkVf RVZFTlRfQ0xBU1MoeGhjaV9sb2dfdXJiLAo+ID4gIAkpLAo+ID4gIAlUUF9wcmludGsoImVwJWQl cy0lczogdXJiICVwIHBpcGUgJXUgc2xvdCAlZCBsZW5ndGggJWQvJWQgc2dzICVkLyVkIHN0cmVh bSAlZCBmbGFncyAlMDh4IiwKPiA+ICAJCQlfX2VudHJ5LT5lcG51bSwgX19lbnRyeS0+ZGlyX2lu ID8gImluIiA6ICJvdXQiLAo+ID4gLQkJCSh7IGNoYXIgKnM7Cj4gPiAtCQkJc3dpdGNoIChfX2Vu dHJ5LT50eXBlKSB7Cj4gPiAtCQkJY2FzZSBVU0JfRU5EUE9JTlRfWEZFUl9JTlQ6Cj4gPiAtCQkJ CXMgPSAiaW50ciI7Cj4gPiAtCQkJCWJyZWFrOwo+ID4gLQkJCWNhc2UgVVNCX0VORFBPSU5UX1hG RVJfQ09OVFJPTDoKPiA+IC0JCQkJcyA9ICJjb250cm9sIjsKPiA+IC0JCQkJYnJlYWs7Cj4gPiAt CQkJY2FzZSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLOgo+ID4gLQkJCQlzID0gImJ1bGsiOwo+ID4g LQkJCQlicmVhazsKPiA+IC0JCQljYXNlIFVTQl9FTkRQT0lOVF9YRkVSX0lTT0M6Cj4gPiAtCQkJ CXMgPSAiaXNvYyI7Cj4gPiAtCQkJCWJyZWFrOwo+ID4gLQkJCWRlZmF1bHQ6Cj4gPiAtCQkJCXMg PSAiVU5LTk9XTiI7Cj4gPiAtCQkJfSBzOyB9KSwgX19lbnRyeS0+dXJiLCBfX2VudHJ5LT5waXBl LCBfX2VudHJ5LT5zbG90X2lkLAo+ID4gKwkJCXVzYl9lcF90eXBlX3N0cmluZyhfX2VudHJ5LT50 eXBlKSwKPiA+ICsJCQlfX2VudHJ5LT51cmIsIF9fZW50cnktPnBpcGUsIF9fZW50cnktPnNsb3Rf aWQsCj4gPiAgCQkJX19lbnRyeS0+YWN0dWFsLCBfX2VudHJ5LT5sZW5ndGgsIF9fZW50cnktPm51 bV9tYXBwZWRfc2dzLAo+ID4gIAkJCV9fZW50cnktPm51bV9zZ3MsIF9fZW50cnktPnN0cmVhbSwg X19lbnRyeS0+ZmxhZ3MKPiA+ICAJCSkKPiAKPiBBbm90aGVyIGFwaSBjaGFuZ2Ugd2l0aCAiY29u dHJvbCIgOigKPiAKPiBJIGxpa2UgdGhlIGlkZWEsIGJ1dCB5b3UgY2FuIG5vdCBicmVhayB1c2Vy L2tlcm5lbCBhcGlzIGxpa2UgdGhpcwo+IHdpdGhvdXQga25vd2luZyB0aGUgYWZmZWN0cyB0aGF0 IGNvdWxkIGhhcHBlbi4KPiAKPiB0aGFua3MsCj4gCj4gZ3JlZyBrLWgK