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: [v2] usb: core: Add "quirks" parameter for usbcore From: Greg Kroah-Hartman Message-Id: <20171206141000.GA11339@kroah.com> Date: Wed, 6 Dec 2017 15:10:00 +0100 To: Kai-Heng Feng Cc: corbet@lwn.net, linux-usb@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: T24gV2VkLCBEZWMgMDYsIDIwMTcgYXQgMDY6MjY6MjFQTSArMDgwMCwgS2FpLUhlbmcgRmVuZyB3 cm90ZToKPiBUcnlpbmcgcXVpcmtzIGluIHVzYmNvcmUgbmVlZHMgdG8gcmVidWlsZCB0aGUgZHJp dmVyIG9yIHRoZSBlbnRpcmUKPiBrZXJuZWwgaWYgaXQncyBidWlsdGluLiBJdCBjYW4gc2F2ZSBh IGxvdCBvZiB0aW1lIGlmIHVzYmNvcmUgaGFzIHNpbWlsYXIKPiBhYmlsaXR5IGxpa2UgInVzYmhp ZC5xdWlya3M9IiBhbmQgInVzYi1zdG9yYWdlLnF1aXJrcz0iLgo+IAo+IFJlbmFtZSB0aGUgb3Jp Z2luYWwgcXVpcmsgZGV0ZWN0aW9uIGZ1bmN0aW9uIHRvICJzdGF0aWMiIGFzIHdlIGludHJvZHVj ZQo+IHRoaXMgbmV3ICJkeW5hbWljIiBmdW5jdGlvbi4KPiAKPiBOb3cgdXNlcnMgY2FuIHVzZSAi dXNiY29yZS5xdWlya3M9IiBhcyBzaG9ydCB0ZXJtIHdvcmthcm91bmQgYmVmb3JlIHRoZQo+IG5l eHQga2VybmVsIHJlbGVhc2UuCj4gCj4gVGhpcyBpcyBpbnNwaXJlZCBieSB1c2JoaWQgYW5kIHVz Yi1zdG9yYWdlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEthaS1IZW5nIEZlbmcgPGthaS5oZW5nLmZl bmdAY2Fub25pY2FsLmNvbT4KPiAtLS0KPiB2MjogdXNlIGluLWtlcm5lbCB0b2xvd2VyKCkgZnVu Y3Rpb24uCj4gCj4gIERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMu dHh0IHwgIDU1ICsrKysrKysrKysrKysKPiAgZHJpdmVycy91c2IvY29yZS9xdWlya3MuYyAgICAg ICAgICAgICAgICAgICAgICAgfCAxMDAgKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIGluY2x1 ZGUvbGludXgvdXNiL3F1aXJrcy5oICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKPiAgMyBm aWxlcyBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQg Yi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dAo+IGluZGV4 IDY1NzFmYmZkYjJhMS4uZDQyZmIyNzgzMjBiIDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50YXRpb24v YWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0Cj4gKysrIGIvRG9jdW1lbnRhdGlvbi9h ZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQKPiBAQCAtNDMwMiw2ICs0MzAyLDYxIEBA Cj4gIAo+ICAJdXNiY29yZS5ub3VzYglbVVNCXSBEaXNhYmxlIHRoZSBVU0Igc3Vic3lzdGVtCj4g IAo+ICsJdXNiY29yZS5xdWlya3M9Cj4gKwkJCVtVU0JdIEEgbGlzdCBvZiBxdWlya3MgZW50cmll cyB0byBzdXBwbGVtZW50IG9yCj4gKwkJCW92ZXJyaWRlIHRoZSBidWlsdC1pbiB1c2IgY29yZSBx dWlyayBsaXN0LiAgTGlzdAo+ICsJCQllbnRyaWVzIGFyZSBzZXBhcmF0ZWQgYnkgY29tbWFzLiAg RWFjaCBlbnRyeSBoYXMKPiArCQkJdGhlIGZvcm0gVklEOlBJRDpGbGFncyB3aGVyZSBWSUQgYW5k IFBJRCBhcmUgVmVuZG9yCj4gKwkJCWFuZCBQcm9kdWN0IElEIHZhbHVlcyAoNC1kaWdpdCBoZXgg bnVtYmVycykgYW5kCj4gKwkJCUZsYWdzIGlzIGEgc2V0IG9mIGNoYXJhY3RlcnMsIGVhY2ggY29y cmVzcG9uZGluZwo+ICsJCQl0byBhIGNvbW1vbiB1c2IgY29yZSBxdWlyayBmbGFnIGFzIGZvbGxv d3M6Cj4gKwkJCQlhID0gVVNCX1FVSVJLX1NUUklOR19GRVRDSF8yNTUgKHN0cmluZwo+ICsJCQkJ CWRlc2NyaXB0b3JzIG11c3Qgbm90IGJlIGZldGNoZWQgdXNpbmcKPiArCQkJCQlhIDI1NS1ieXRl IHJlYWQpOwo+ICsJCQkJYiA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgKGRldmljZSBjYW4ndCBy ZXN1bWUKPiArCQkJCQljb3JyZWN0bHkgc28gcmVzZXQgaXQgaW5zdGVhZCk7Cj4gKwkJCQljID0g VVNCX1FVSVJLX05PX1NFVF9JTlRGIChkZXZpY2UgY2FuJ3QgaGFuZGxlCj4gKwkJCQkJU2V0LUlu dGVyZmFjZSByZXF1ZXN0cyk7Cj4gKwkJCQlkID0gVVNCX1FVSVJLX0NPTkZJR19JTlRGX1NUUklO R1MgKGRldmljZSBjYW4ndAo+ICsJCQkJCWhhbmRsZSBpdHMgQ29uZmlndXJhdGlvbiBvciBJbnRl cmZhY2UKPiArCQkJCQlzdHJpbmdzKTsKPiArCQkJCWUgPSBVU0JfUVVJUktfUkVTRVQgKGRldmlj ZSBjYW4ndCBiZSByZXNldAo+ICsJCQkJCShlLmcgbW9ycGggZGV2aWNlcyksIGRvbid0IHVzZSBy ZXNldCk7Cj4gKwkJCQlmID0gVVNCX1FVSVJLX0hPTk9SX0JOVU1JTlRFUkZBQ0VTIChkZXZpY2Ug aGFzCj4gKwkJCQkJbW9yZSBpbnRlcmZhY2UgZGVzY3JpcHRpb25zIHRoYW4gdGhlCj4gKwkJCQkJ Yk51bUludGVyZmFjZXMgY291bnQsIGFuZCBjYW4ndCBoYW5kbGUKPiArCQkJCQl0YWxraW5nIHRv IHRoZXNlIGludGVyZmFjZXMpOwo+ICsJCQkJZyA9IFVTQl9RVUlSS19ERUxBWV9JTklUIChkZXZp Y2UgbmVlZHMgYSBwYXVzZQo+ICsJCQkJCWR1cmluZyBpbml0aWFsaXphdGlvbiwgYWZ0ZXIgd2Ug cmVhZAo+ICsJCQkJCXRoZSBkZXZpY2UgZGVzY3JpcHRvcik7Cj4gKwkJCQloID0gVVNCX1FVSVJL X0xJTkVBUl9VRlJBTUVfSU5UUl9CSU5URVJWQUwgKEZvcgo+ICsJCQkJCWhpZ2ggc3BlZWQgYW5k IHN1cGVyIHNwZWVkIGludGVycnVwdAo+ICsJCQkJCWVuZHBvaW50cywgdGhlIFVTQiAyLjAgYW5k IFVTQiAzLjAgc3BlYwo+ICsJCQkJCXJlcXVpcmUgdGhlIGludGVydmFsIGluIG1pY3JvZnJhbWVz ICgxCj4gKwkJCQkJbWljcm9mcmFtZSA9IDEyNSBtaWNyb3NlY29uZHMpIHRvIGJlCj4gKwkJCQkJ Y2FsY3VsYXRlZCBhcyBpbnRlcnZhbCA9IDIgXgo+ICsJCQkJCShiSW50ZXJ2YWwtMSkuCj4gKwkJ CQkJRGV2aWNlcyB3aXRoIHRoaXMgcXVpcmsgcmVwb3J0IHRoZWlyCj4gKwkJCQkJYkludGVydmFs IGFzIHRoZSByZXN1bHQgb2YgdGhpcwo+ICsJCQkJCWNhbGN1bGF0aW9uIGluc3RlYWQgb2YgdGhl IGV4cG9uZW50Cj4gKwkJCQkJdmFyaWFibGUgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24pOwo+ICsJ CQkJaSA9IFVTQl9RVUlSS19ERVZJQ0VfUVVBTElGSUVSIChkZXZpY2UgY2FuJ3QKPiArCQkJCQlo YW5kbGUgZGV2aWNlX3F1YWxpZmllciBkZXNjcmlwdG9yCj4gKwkJCQkJcmVxdWVzdHMpOwo+ICsJ CQkJaiA9IFVTQl9RVUlSS19JR05PUkVfUkVNT1RFX1dBS0VVUCAoZGV2aWNlCj4gKwkJCQkJZ2Vu ZXJhdGVzIHNwdXJpb3VzIHdha2V1cCwgaWdub3JlCj4gKwkJCQkJcmVtb3RlIHdha2V1cCBjYXBh YmlsaXR5KTsKPiArCQkJCWsgPSBVU0JfUVVJUktfTk9fTFBNIChkZXZpY2UgY2FuJ3QgaGFuZGxl IExpbmsKPiArCQkJCQlQb3dlciBNYW5hZ2VtZW50KTsKPiArCQkJCWwgPSBVU0JfUVVJUktfTElO RUFSX0ZSQU1FX0lOVFJfQklOVEVSVkFMCj4gKwkJCQkJKERldmljZSByZXBvcnRzIGl0cyBiSW50 ZXJ2YWwgYXMgbGluZWFyCj4gKwkJCQkJZnJhbWVzIGluc3RlYWQgb2YgdGhlIFVTQiAyLjAKPiAr CQkJCQljYWxjdWxhdGlvbik7Cj4gKwkJCQltID0gVVNCX1FVSVJLX0RJU0NPTk5FQ1RfU1VTUEVO RCAoRGV2aWNlIG5lZWRzCj4gKwkJCQkJdG8gYmUgZGlzY29ubmVjdGVkIGJlZm9yZSBzdXNwZW5k IHRvCj4gKwkJCQkJcHJldmVudCBzcHVyaW91cyB3YWtldXApCj4gKwkJCUV4YW1wbGU6IHF1aXJr cz0wNzgxOjU1ODA6YmssMGE1Yzo1ODM0Omdpago+ICsKPiAgCXVzYmhpZC5tb3VzZXBvbGw9Cj4g IAkJCVtVU0JISURdIFRoZSBpbnRlcnZhbCB3aGljaCBtaWNlIGFyZSB0byBiZSBwb2xsZWQgYXQu Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL3F1aXJrcy5jIGIvZHJpdmVycy91 c2IvY29yZS9xdWlya3MuYwo+IGluZGV4IGYxZGJhYjZmNzk4Zi4uNTQ3MTc2NTc2NWJlIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMKPiArKysgYi9kcml2ZXJzL3VzYi9j b3JlL3F1aXJrcy5jCj4gQEAgLTExLDYgKzExLDEyIEBACj4gICNpbmNsdWRlIDxsaW51eC91c2Iv aGNkLmg+Cj4gICNpbmNsdWRlICJ1c2IuaCIKPiAgCj4gKy8qIFF1aXJrcyBzcGVjaWZpZWQgYXQg bW9kdWxlIGxvYWQgdGltZSAqLwo+ICtzdGF0aWMgY2hhciAqcXVpcmtzX3BhcmFtW01BWF9VU0Jf Qk9PVF9RVUlSS1NdOwo+ICttb2R1bGVfcGFyYW1fYXJyYXlfbmFtZWQocXVpcmtzLCBxdWlya3Nf cGFyYW0sIGNoYXJwLCBOVUxMLCAwNDQ0KTsKClNvIHlvdSBjYW4ndCBtb2RpZnkgdGhpcyBhdCBy dW50aW1lPyAgV2h5IG5vdD8KCj4gK01PRFVMRV9QQVJNX0RFU0MocXVpcmtzLCAiQWRkL21vZGlm eSBVU0IgcXVpcmtzIGJ5IHNwZWNpZnlpbmciCj4gKwkJCSAicXVpcmtzPXZlbmRvcklEOnByb2R1 Y3RJRDpxdWlya3MiKTsKCkRvbid0IGJyZWFrIHN0cmluZ3Mgb3ZlciBtdWx0aXBsZSBsaW5lcy4K Cj4gKwo+ICAvKiBMaXN0cyBvZiBxdWlya3kgVVNCIGRldmljZXMsIHNwbGl0IGluIGRldmljZSBx dWlya3MgYW5kIGludGVyZmFjZSBxdWlya3MuCj4gICAqIERldmljZSBxdWlya3MgYXJlIGFwcGxp ZWQgYXQgdGhlIHZlcnkgYmVnaW5uaW5nIG9mIHRoZSBlbnVtZXJhdGlvbiBwcm9jZXNzLAo+ICAg KiByaWdodCBhZnRlciByZWFkaW5nIHRoZSBkZXZpY2UgZGVzY3JpcHRvci4gVGhleSBjYW4gdGh1 cyBvbmx5IG1hdGNoIG9uIGRldmljZQo+IEBAIC0zMTAsOCArMzE2LDggQEAgc3RhdGljIGludCB1 c2JfYW1kX3Jlc3VtZV9xdWlyayhzdHJ1Y3QgdXNiX2RldmljZSAqdWRldikKPiAgCXJldHVybiAw Owo+ICB9Cj4gIAo+IC1zdGF0aWMgdTMyIF9fdXNiX2RldGVjdF9xdWlya3Moc3RydWN0IHVzYl9k ZXZpY2UgKnVkZXYsCj4gLQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQp Cj4gK3N0YXRpYyB1MzIgdXNiX2RldGVjdF9zdGF0aWNfcXVpcmtzKHN0cnVjdCB1c2JfZGV2aWNl ICp1ZGV2LAo+ICsJCQkJICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKPiAgewo+ ICAJdTMyIHF1aXJrcyA9IDA7Cj4gIAo+IEBAIC0zMjksMjMgKzMzNSwxMDUgQEAgc3RhdGljIHUz MiBfX3VzYl9kZXRlY3RfcXVpcmtzKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2LAo+ICAJcmV0dXJu IHF1aXJrczsKPiAgfQo+ICAKPiArc3RhdGljIHUzMiB1c2JfZGV0ZWN0X2R5bmFtaWNfcXVpcmtz KHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2KQo+ICt7Cj4gKwl1MTYgZGV2X3ZpZCA9IGxlMTZfdG9f Y3B1KHVkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpOwo+ICsJdTE2IGRldl9waWQgPSBsZTE2X3Rv X2NwdSh1ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCk7Cj4gKwl1MTYgcXVpcmtfdmlkLCBxdWly a19waWQ7Cj4gKwljaGFyIHF1aXJrc1szMl07Cj4gKwljaGFyICpwOwo+ICsJdTMyIGZsYWdzID0g MDsKPiArCWludCBuLCBtOwo+ICsKPiArCWZvciAobiA9IDA7IG4gPCBNQVhfVVNCX0JPT1RfUVVJ UktTICYmIHF1aXJrc19wYXJhbVtuXTsgbisrKSB7Cj4gKwkJbSA9IHNzY2FuZihxdWlya3NfcGFy YW1bbl0sICIlaHg6JWh4OiVzIiwKPiArCQkJICAgJnF1aXJrX3ZpZCwgJnF1aXJrX3BpZCwgcXVp cmtzKTsKPiArCQlpZiAobSAhPSAzKQo+ICsJCQlwcl93YXJuKCJDb3VsZCBub3QgcGFyc2UgVVNC IHF1aXJrIG1vZHVsZSBwYXJhbSAlc1xuIiwKPiArCQkJCXF1aXJrc19wYXJhbVtuXSk7CgpkZXZf d2FybigpLgoKQWxzbywgeW91IGFyZSBnb2luZyB0byBjb21wbGFpbiBhYm91dCB0aGUgaW5hYmls aXR5IHRvIHBhcnNlIHRoZSBxdWlya3MKZm9yIF9FVkVSWV8gVVNCIGRldmljZSBpbiB0aGUgc3lz dGVtPyAgVGhhdCBmZWVscyByZWFsbHkgd3JvbmcuICBQYXJzZQppdCBvbmNlLCBhbmQgdGhlbiB1 c2UgdGhlIHBhcnNlZCB0YWJsZSB3aGVuIG1hdGNoaW5nIHRoaW5ncyB1cC4gIERvbid0CnBhcnNl IHRoZSBzdHJpbmcgZWFjaCBhbmQgZXZlcnkgdGltZSBhIGRldmljZSBpcyBhZGRlZCwgdGhhdCdz IGEKaG9ycmlibGUgd2FzdGUgb2YgdGltZSAobm90IGxpa2UgVVNCIGVudW1lcmF0aW9uIGlzIGZh c3QsIGJ1dCByZWFsbHksCmxldCdzIG5vdCBtYWtlIGl0IHdvcnNlIGZvciBubyByZWFzb24uKQoK PiArCj4gKwkJaWYgKHF1aXJrX3ZpZCA9PSBkZXZfdmlkICYmIHF1aXJrX3BpZCA9PSBkZXZfcGlk KQo+ICsJCQlicmVhazsKPiArCX0KPiArCWlmIChuID09IE1BWF9VU0JfQk9PVF9RVUlSS1MgfHwg IXF1aXJrc19wYXJhbVtuXSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlwID0gcXVpcmtzOwo+ICsK PiArCS8qIENvbGxlY3QgdGhlIGZsYWdzICovCj4gKwlmb3IgKDsgKnA7IHArKykgewo+ICsJCXN3 aXRjaCAodG9sb3dlcigqcCkpIHsKPiArCQljYXNlICdhJzoKPiArCQkJZmxhZ3MgfD0gVVNCX1FV SVJLX1NUUklOR19GRVRDSF8yNTU7Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgJ2InOgo+ICsJCQlm bGFncyB8PSBVU0JfUVVJUktfUkVTRVRfUkVTVU1FOwo+ICsJCQlicmVhazsKPiArCQljYXNlICdj JzoKPiArCQkJZmxhZ3MgfD0gVVNCX1FVSVJLX05PX1NFVF9JTlRGOwo+ICsJCQlicmVhazsKPiAr CQljYXNlICdkJzoKPiArCQkJZmxhZ3MgfD0gVVNCX1FVSVJLX0NPTkZJR19JTlRGX1NUUklOR1M7 Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgJ2UnOgo+ICsJCQlmbGFncyB8PSBVU0JfUVVJUktfUkVT RVQ7Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgJ2YnOgo+ICsJCQlmbGFncyB8PSBVU0JfUVVJUktf SE9OT1JfQk5VTUlOVEVSRkFDRVM7Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgJ2cnOgo+ICsJCQlm bGFncyB8PSBVU0JfUVVJUktfREVMQVlfSU5JVDsKPiArCQkJYnJlYWs7Cj4gKwkJY2FzZSAnaCc6 Cj4gKwkJCWZsYWdzIHw9IFVTQl9RVUlSS19MSU5FQVJfVUZSQU1FX0lOVFJfQklOVEVSVkFMOwo+ ICsJCQlicmVhazsKPiArCQljYXNlICdpJzoKPiArCQkJZmxhZ3MgfD0gVVNCX1FVSVJLX0RFVklD RV9RVUFMSUZJRVI7Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgJ2onOgo+ICsJCQlmbGFncyB8PSBV U0JfUVVJUktfSUdOT1JFX1JFTU9URV9XQUtFVVA7Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgJ2sn Ogo+ICsJCQlmbGFncyB8PSBVU0JfUVVJUktfTk9fTFBNOwo+ICsJCQlicmVhazsKPiArCQljYXNl ICdsJzoKPiArCQkJZmxhZ3MgfD0gVVNCX1FVSVJLX0xJTkVBUl9GUkFNRV9JTlRSX0JJTlRFUlZB TDsKPiArCQkJYnJlYWs7Cj4gKwkJY2FzZSAnbSc6Cj4gKwkJCWZsYWdzIHw9IFVTQl9RVUlSS19E SVNDT05ORUNUX1NVU1BFTkQ7Cj4gKwkJCWJyZWFrOwo+ICsJCS8qIElnbm9yZSB1bnJlY29nbml6 ZWQgZmxhZyBjaGFyYWN0ZXJzICovCj4gKwkJfQo+ICsJfQo+ICsKPiArCXJldHVybiBmbGFnczsK PiArfQo+ICsKPiAgLyoKPiAgICogRGV0ZWN0IGFueSBxdWlya3MgdGhlIGRldmljZSBoYXMsIGFu ZCBkbyBhbnkgaG91c2VrZWVwaW5nIGZvciBpdCBpZiBuZWVkZWQuCj4gICAqLwo+ICB2b2lkIHVz Yl9kZXRlY3RfcXVpcmtzKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2KQo+ICB7Cj4gLQl1ZGV2LT5x dWlya3MgPSBfX3VzYl9kZXRlY3RfcXVpcmtzKHVkZXYsIHVzYl9xdWlya19saXN0KTsKPiArCXVk ZXYtPnF1aXJrcyA9IHVzYl9kZXRlY3RfZHluYW1pY19xdWlya3ModWRldik7Cj4gKwo+ICsJaWYg KHVkZXYtPnF1aXJrcykgewo+ICsJCWRldl9kYmcoJnVkZXYtPmRldiwgIkR5bmFtaWMgVVNCIHF1 aXJrcyBmb3IgdGhpcyBkZXZpY2U6ICV4XG4iLAo+ICsJCQl1ZGV2LT5xdWlya3MpOwo+ICsJCXJl dHVybjsKPiArCX0KPiArCj4gKwl1ZGV2LT5xdWlya3MgPSB1c2JfZGV0ZWN0X3N0YXRpY19xdWly a3ModWRldiwgdXNiX3F1aXJrX2xpc3QpOwoKRGlkIHlvdSBqdXN0IG92ZXJ3cml0ZSB0aGUgZHlu YW1pYyB3aXRoIHRoZSBzdGF0aWMgb25lcz8gIEl0IGZlZWxzIGxpa2UKeW91IGp1c3QgZGlkIDoo Cgo+IC0tLSBhL2luY2x1ZGUvbGludXgvdXNiL3F1aXJrcy5oCj4gKysrIGIvaW5jbHVkZS9saW51 eC91c2IvcXVpcmtzLmgKPiBAQCAtOCw2ICs4LDggQEAKPiAgI2lmbmRlZiBfX0xJTlVYX1VTQl9R VUlSS1NfSAo+ICAjZGVmaW5lIF9fTElOVVhfVVNCX1FVSVJLU19ICj4gIAo+ICsjZGVmaW5lIE1B WF9VU0JfQk9PVF9RVUlSS1MgNAoKV2h5IDQ/ICBBbmQgd2h5IGluIHRoaXMgLmggZmlsZT8KCkFs c28sIE9saXZlcidzIHJlcXVlc3QgaXMgZ29vZCwgeG9yIGlzIGEgbmljZSB3YXkgdG8gZG8gdGhp bmdzIGlmIGF0IGFsbApwb3NzaWJsZS4KCnRoYW5rcywKCmdyZWcgay1oCi0tLQpUbyB1bnN1YnNj cmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtdXNi IiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwpN b3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1p bmZvLmh0bWwK