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: Mass Storage Gadget Device Falls from SuperSpeed to High Speed From: Felipe Balbi Message-Id: <87v9zuf6my.fsf@linux.intel.com> Date: Thu, 04 Apr 2019 12:43:01 +0300 To: Rob Weber Cc: linux-usb@vger.kernel.org, mathias.nyman@intel.com List-ID: SGksCgpSb2IgV2ViZXIgPHJvYkBnbmFyYm94LmNvbT4gd3JpdGVzOgo+IE9uIFdlZCwgQXByIDAz LCAyMDE5IGF0IDEwOjQ4OjM2QU0gKzAzMDAsIEZlbGlwZSBCYWxiaSB3cm90ZToKPj4gPj4gPiAq IFdlIHN0aWxsIHNhdyB0aGUgZHJvcCBmcm9tIFNTIHRvIEhTIG9uIGEgV2luZG93cyBsYXB0b3Au IExpbnV4IGFuZCBNYWMKPj4gPj4gPiAgIHNlZW1lZCB0byBiZSBmaW5lLCBidXQgdGhlcmUncyBk ZWZpbml0ZWx5IGEgY2hhbmNlIHdlIGRpZCBub3QgdGVzdAo+PiA+PiA+ICAgd2l0aCBlbm91Z2gg c2FtcGxlcyB0byBjb25maWRlbnRseSBzYXkgdGhpcyBxdWlyayBpcyBzdGFibGUgd2l0aCB0aG9z ZQo+PiA+PiA+ICAgaG9zdHMuCj4+ID4+IAo+PiA+PiBva2F5LCBzbyBzdGlsbCBub3QgZ29vZCBl bm91Z2guIExldCdzIHRyeSB0byBwcmV2ZW50IHRoZSBkZXZpY2Ugc2lkZQo+PiA+PiBmcm9tIGV2 ZXIgaW5pdGlhdGluZyBVMS9VMiBlbnRyeSBhbmQgZnJvbSBldmVyIGFjY2VwdGluZyBMR09fVTEg YW5kCj4+ID4+IExHT19VMiBmcm9tIHRoZSBob3N0LiBIZXJlJ3MgYSAoaGFjaykgcGF0Y2ggZm9y IHRoYXQKPj4gPj4gCj4+ID4+IG1vZGlmaWVkICAgZHJpdmVycy91c2IvZHdjMy9lcDAuYwo+PiA+ PiBAQCAtMzgyLDcgKzM4Miw3IEBAIHN0YXRpYyBpbnQgZHdjM19lcDBfaGFuZGxlX3UxKHN0cnVj dCBkd2MzICpkd2MsIGVudW0gdXNiX2RldmljZV9zdGF0ZSBzdGF0ZSwKPj4gPj4gIAo+PiA+PiAg CXJlZyA9IGR3YzNfcmVhZGwoZHdjLT5yZWdzLCBEV0MzX0RDVEwpOwo+PiA+PiAgCWlmIChzZXQp Cj4+ID4+IC0JCXJlZyB8PSBEV0MzX0RDVExfSU5JVFUxRU5BOwo+PiA+PiArCQlyZXR1cm4gLUVJ TlZBTDsKPj4gPj4gIAllbHNlCj4+ID4+ICAJCXJlZyAmPSB+RFdDM19EQ1RMX0lOSVRVMUVOQTsK Pj4gPj4gIAlkd2MzX3dyaXRlbChkd2MtPnJlZ3MsIERXQzNfRENUTCwgcmVnKTsKPj4gPj4gQEAg LTQwNCw3ICs0MDQsNyBAQCBzdGF0aWMgaW50IGR3YzNfZXAwX2hhbmRsZV91MihzdHJ1Y3QgZHdj MyAqZHdjLCBlbnVtIHVzYl9kZXZpY2Vfc3RhdGUgc3RhdGUsCj4+ID4+ICAKPj4gPj4gIAlyZWcg PSBkd2MzX3JlYWRsKGR3Yy0+cmVncywgRFdDM19EQ1RMKTsKPj4gPj4gIAlpZiAoc2V0KQo+PiA+ PiAtCQlyZWcgfD0gRFdDM19EQ1RMX0lOSVRVMkVOQTsKPj4gPj4gKwkJcmV0dXJuIC1FSU5WQUw7 Cj4+ID4+ICAJZWxzZQo+PiA+PiAgCQlyZWcgJj0gfkRXQzNfRENUTF9JTklUVTJFTkE7Cj4+ID4+ ICAJZHdjM193cml0ZWwoZHdjLT5yZWdzLCBEV0MzX0RDVEwsIHJlZyk7Cj4+ID4+IEBAIC02MjUs OSArNjI1LDkgQEAgc3RhdGljIGludCBkd2MzX2VwMF9zZXRfY29uZmlnKHN0cnVjdCBkd2MzICpk d2MsIHN0cnVjdCB1c2JfY3RybHJlcXVlc3QgKmN0cmwpCj4+ID4+ICAJCQkgKiBFbmFibGUgdHJh bnNpdGlvbiB0byBVMS9VMiBzdGF0ZSB3aGVuCj4+ID4+ICAJCQkgKiBub3RoaW5nIGlzIHBlbmRp bmcgZnJvbSBhcHBsaWNhdGlvbi4KPj4gPj4gIAkJCSAqLwo+PiA+PiAtCQkJcmVnID0gZHdjM19y ZWFkbChkd2MtPnJlZ3MsIERXQzNfRENUTCk7Cj4+ID4+IC0JCQlyZWcgfD0gKERXQzNfRENUTF9B Q0NFUFRVMUVOQSB8IERXQzNfRENUTF9BQ0NFUFRVMkVOQSk7Cj4+ID4+IC0JCQlkd2MzX3dyaXRl bChkd2MtPnJlZ3MsIERXQzNfRENUTCwgcmVnKTsKPj4gPj4gKwkJCS8qIHJlZyA9IGR3YzNfcmVh ZGwoZHdjLT5yZWdzLCBEV0MzX0RDVEwpOyAqLwo+PiA+PiArCQkJLyogcmVnIHw9IChEV0MzX0RD VExfQUNDRVBUVTFFTkEgfCBEV0MzX0RDVExfQUNDRVBUVTJFTkEpOyAqLwo+PiA+PiArCQkJLyog ZHdjM193cml0ZWwoZHdjLT5yZWdzLCBEV0MzX0RDVEwsIHJlZyk7ICovCj4+ID4+ICAJCX0KPj4g Pj4gIAkJYnJlYWs7Cj4+ID4+IAo+PiA+PiAKPj4gPj4gSSBkb24ndCB0aGluayBpdCB3aWxsIGFw cGx5IGNsZWFubHkgdG8geW91ciBrZXJuZWwsIGxldCBtZSBrbm93IGlmIHlvdQo+PiA+PiBuZWVk IGhlbHAgcG9ydGluZyBpdC4KPj4gPgo+PiA+IFRoYW5rIHlvdSBmb3IgdGhlIG9mZmVyLiBJdCB3 YXNuJ3QgdG9vIGJhZCBhZnRlciByZWFkaW5nIHRoZSBlcDAuYyBmaWxlCj4+ID4gZm9yIGJvdGgg NC45LjExNSBhbmQgbWFzdGVyLiBJJ3ZlIGluY2x1ZGVkIHRoZSBwYXRjaCBpbiB0aGUgYXR0YWNo ZWQKPj4gPiB0YXJiYWxsIGlmIHlvdSB3b3VsZCBsaWtlIHRvIHNlZSBob3cgSSBwb3J0ZWQgaXQu Cj4+IAo+PiBUaGFuayB5b3UuIEJUVywgaXQgbWF5IHZlcnkgd2VsbCBiZSB0aGF0IHlvdSBvbmx5 IG5lZWQgdG8gZGlzYWJsZSBVMiBhbmQKPj4gbGVhdmUgVTEgZW5hYmxlZC4gVGhhdCBtYXkgaGVs cCBzYXZlIHNvbWUgcG93ZXIsIGJ1dCBJIGRvbid0IGtub3cKPj4gd2hldGhlciB5b3UgaGF2ZSBy ZXF1aXJlbWVudHMgZm9yIHRoaXMgOi0pCj4KPiBBaGgsIGdvb2QgcG9pbnQuIFdlIG1pZ2h0IGNv bWUgYmFjayB0byB0aGlzIGFmdGVyIHdlIGZpbmlzaCB0ZXN0aW5nIHdpdGgKPiB0aGUgY3VycmVu dCBwYXRjaC4gVGhhbmtzIQo+Cj4+ID4+ID4gU28gdG9tb3Jyb3cgSSBob3BlIHRvIGdhdGhlciBt b3JlIGNvbmNyZXRlIGRhdGEgdG8gYmFjayB1cCB0aGVzZQo+PiA+PiA+IGZpbmRpbmdzLiBPdXIg VVNCIHByb3RvY29sIGFuYWx5emVyIGlzIGFsc28gb3V0LW9mLW9yZGVyIGF0IHRoZSBtb21lbnQs Cj4+ID4+ID4gc28gd2UgbWlnaHQgbm90IGJlIGFibGUgdG8gZ2V0IGFuYWx5emVyIGRhdGEgZm9y IGEgZGF5IG9yIHR3byBlaXRoZXIuCj4+ID4+ID4KPj4gPj4gPiBBcmUgdGhlcmUgc29tZSBvdGhl ciBxdWlya3MgeW91IHdvdWxkIGxpa2UgdXMgdG8gdHJ5IG91dD8KPj4gPj4gCj4+ID4+IFNlZSBh Ym92ZSwgbm90IGEgcXVpcmsgZmxhZywgYnV0IGp1c3QgYSBjb21wbGV0ZSByZW1vdmFsIG9mIFUx L1UyIGVudHJ5Cj4+ID4+IGZyb20gdGhlIGRldmljZSBzaWRlLgo+PiA+Cj4+ID4gVGhhbmsgeW91 IGZvciBwcm92aWRpbmcgdGhlIGFib3ZlIHBhdGNoLiBJdCBzZWVtcyBxdWl0ZSBzdGFibGUgZm9y IGEKPj4gPiB2YXJpZXR5IG9mIGhvc3RzISBXZSB3YW50IHRvIGNvbnRpbnVlIHRlc3RpbmcgdGhp cyBvbiBzZXZlcmFsIHNhbXBsZXMKPj4gPiB3aXRoIGEgYnVuY2ggb2YgZGlmZmVyZW50IGhvc3Qg Y29tcHV0ZXJzIGFuZCBjYWJsZXMgdG8gbWFrZSBzdXJlIHdlJ3JlCj4+ID4gaW4gdGhlIGNsZWFy LCBidXQgdGhpcyBwYXRjaCBpcyBmZWVsaW5nIHByZXR0eSBnb29kLgo+PiAKPj4gR29vZCB0byBo ZWFyLCBwbGVhc2UgdXBkYXRlIG1lIG9uY2UgeW91J3JlIGhhcHB5IHdpdGggdGhlIHJlc3VsdHMu IEFsc28sCj4+IGlmIHlvdSBub3RpY2UgdGhpcyBwcm9ibGVtIGhhcHBlbmluZyBhZ2FpbiBpbiB0 aGUgZnV0dXJlLCBkb24ndCBoZXNpdGF0ZQo+PiB0byBjb250YWN0IG1lLgo+Cj4gVGhlIHJlc3Vs dHMgYXJlIHZlcnkgcHJvbWlzaW5nLCBhbmQgb3VyIHRlYW0gaXMgZmVlbGluZyB2ZXJ5IGNvbmZp ZGVudAo+IGFmdGVyIGh1bmRyZWRzIG9mIGNvbm5lY3Rpb25zIGFuZCBkaXNjb25uZWN0aW9ucyA6 KQoKR29vZC4gSnVzdCB0aG91Z2h0IEknZCBtZW50aW9uIHRoYXQgd2UgdXNlIGEgbmljZSB0b29s IHRvIGhlbHAgdGVzdGluZwpzdWNoIGxvbmcgY29ubmVjdC9kaXNjb25uZWN0IGN5Y2xlcy4KCmh0 dHA6Ly93d3cuY2xld2FyZS1zaG9wLmRlL2VwYWdlcy82MzY5ODE4OC5zZi9lbl9VUy8/T2JqZWN0 UGF0aD0vU2hvcHMvNjM2OTgxODgvUHJvZHVjdHMvMTAwMS9TdWJQcm9kdWN0cy8xMDAxLTEKCkkn bSBub3QgZW5kb3JzaW5nIHRoZSBjb21wYW55IGluIGFueSB3YXksIGJ1dCB3ZSB0aGF0IGxpdHRs ZSB0b29sIGhlbHBzCnVzIHF1aXRlIGEgYml0LiBJIHdyb3RlIGEgdG9vbCB0byB1c2UgdGhhdCBt YW55IHllYXJzIGFnbyBhbmQgSSBzdGlsbAp1c2UgaXQuIEl0J3MgYXZhaWxhYmxlIGFzIHBhcnQg b2YgYW5vdGhlciBwcm9qZWN0IHdoZXJlIEkga2VlcCB0ZXN0aW5nCnRvb2xzOgoKaHR0cHM6Ly9n aXRodWIuY29tL2ZlbGlwZWJhbGJpL3VzYi10b29scwoKVGhlIG5hbWUgb2YgdGhlIGJpbmFyeSB3 aWxsIGJlICJjbGV3YXJlIi4KCj4gV2UndmUgaWRlbnRpZmllZCBhIGNvdXBsZSBvZiBhdXhpbGlh cnkgaXNzdWVzIHRoYXQgc2VlbSB0byBiZSB1bnJlbGF0ZWQsCj4gYnV0IHdlIGFyZSB0cnlpbmcg dG8gZ2F0aGVyIG1vcmUgZGF0YSB0byBiZSBzdXJlLiBPbmUgaXNzdWUgd2UgYXJlCj4gZXhwZXJp ZW5jaW5nIGlzIHBhcnRpY3VsYXJseSBjbGVhcjogV2Ugc2VlbSB0byBoYXZlIGEgcmFjZSBjb25k aXRpb24KPiBiZXR3ZWVuIHRoZSBzd2l0Y2hpbmcgb2YgY2hhbm5lbHMgb24gdGhlIFNTIG11eCBv biBvdXIgcGxhdGZvcm0gYW5kIHRoZQo+IGVudW1lcmF0aW9uIG9mIG91ciBkZXZpY2UuIFdlIGJl bGlldmUgb3VyIGRldmljZSBnZXRzIGVudW1lcmF0ZWQgaW4gaGlnaAo+IHNwZWVkIGJlZm9yZSB3 ZSBzd2l0Y2ggdGhlIGNoYW5uZWwgb2YgdGhlIFNTIG11eC4gVGhpcyBjYW4gYmUgY2xlYXJseQo+ IG9ic2VydmVkIHdoaWxlIHdhdGNoaW5nIHRoZSBsb2dzIG9mIHRoZSBNQ1Ugb24gb3VyIHBsYXRm b3JtIHdoaWxlCj4gc2ltdWx0YW5lb3VzbHkgd2F0Y2hpbmcgZG1lc2cuIEJlbG93IGlzIGFuIGV4 YW1wbGUgb2YgdGhpcyB0ZXN0IHNldHVwLgo+IFBsZWFzZSBub3RlIHRoZSBNQ1UgbG9ncyBiZWdp biB3aXRoIFtnZW5lcmFsXVtEQkddOgo+Cj4gcm9vdEBnbmFyYm94LTI6fiMgZWNobyBkZXZpY2Ug PiAvc3lzL2NsYXNzL3VzYl9yb2xlL2ludGVsX3hoY2lfdXNiX3N3LXJvbGUtc3dpdGNoL3JvbGUK PiByb290QGduYXJib3gtMjp+IyAuL2Jpbi91c2ItdHJhY2UgMQo+IGVjaG8gMSA+IC90L2V2ZW50 cy9kd2MzL2VuYWJsZQo+IGVjaG8gMSA+IC90L2V2ZW50cy94aGNpLWhjZC9lbmFibGUKPiBlY2hv IDEgPiAvdC9ldmVudHMvZ2FkZ2V0L2VuYWJsZQo+IHJvb3RAZ25hcmJveC0yOn4jIG1vZHByb2Jl IGdfbWFzc19zdG9yYWdlIGZpbGU9L2Rldi9udm1lMG4xcDcgaVNlcmlhbE51bWJlcj05MDQwNQo+ IHJvb3RAZ25hcmJveC0yOn4jIHN0dHkgLUYgL2Rldi90dHlTMiAxMTUyMDAgY3M4IGNzdG9wYiAt cGFyZW5iIC1pY3JubAo+IHJvb3RAZ25hcmJveC0yOn4jIGNhdCAvZGV2L3R0eVMyICYKPiBbMV0g MTczMwo+IHJvb3RAZ25hcmJveC0yOn4jIGRtZXNnIC13Cj4KPiBPa2F5LCBzZXR1cCBjb21wbGV0 ZSwgYWFhbmQgd2UncmUgcm9sbGluZy4uLgo+Cj4gW2dlbmVyYWxdIFtEQkddIGhhbmRsZV9pbnRy OiAob3RnKSBldmVudDogUnAgQ2hhbmdlIERldGVjdGVkKCkKPiBbZ2VuZXJhbF0gW0RCR10gYXBw bHlfcGRvOiBzZXR0aW5nIGxpbWl0IGJhc2VkIG9uIFJwIHZhbCAwCj4gW2dlbmVyYWxdIFtEQkdd IHNldF9jdXJyZW50X2xpbWl0OiBJSU5fSE9TVDogMTAwIDB4MDEwMAo+IFtnZW5lcmFsXSBbREJH XSBzZXRfY3VycmVudF9saW1pdDogc3VjY2VzcyAodHJpZWQgMSB0aW1lcykKPiBbZ2VuZXJhbF0g W0RCR10gaGFuZGxlX2ludHI6IChvdGcpIGV2ZW50OiBUeXBlLUMgUG9ydCBDb25uZWN0IERldGVj dGVkKCkKPiBbZ2VuZXJhbF0gW0RCR10gdXNiX211eF9zZWw6IChvdGcpIHBvbGFyaXR5OiAyCj4K PiBIZXJlJ3Mgd2hlcmUgdGhlIFBEIGNvbnRyb2xsZXIgZGV0ZWN0cyB0aGUgY29ubmVjdGlvbi4g Tm90ZSB0aGUgcG9sYXJpdHkKPiBvZiB0aGUgY2FibGUgdGhhdCB3ZSBkZXRlY3QuCj4KPiBbZ2Vu ZXJhbF0gW0RCR10gaGFuZGxlX2ludHI6IChvdGcpIE5vdGhpbmcgdG8gZG8uCj4gW2dlbmVyYWxd IFtEQkddIGhhbmRsZV9pbnRyOiAob3RnKSBldmVudDogSGFyZCBSZXNldCBTZW50IHRvIFBvcnQg UGFydG5lcgo+IFsgIDE3OS45MDU4MzVdIGdfbWFzc19zdG9yYWdlIGdhZGdldDogc3VwZXItc3Bl ZWQgY29uZmlnICMxOiBMaW51eCBGaWxlLUJhY2tlZCBTdG9yYWdlCj4KPiBzaG9ydGx5IGFmdGVy LCB0aGUgZGV2aWNlIGlzIGVudW1lcmF0ZWQgYW5kIHRoZSBsaW5rIHNwZWVkIGlzIHNldCB0byA1 R2Jwcwo+Cj4gW2dlbmVyYWxdIFtEQkddIGhhbmRsZV9pbnRyOiAob3RnKSBldmVudDogSGFyZCBS ZXNldCBTZW50IHRvIFBvcnQgUGFydG5lcgo+IFtnZW5lcmFsXSBbREJHXSBoYW5kbGVfaW50cjog KG90ZykgZXZlbnQ6IEhhcmQgUmVzZXQgU2VudCB0byBQb3J0IFBhcnRuZXIKPiBbZ2VuZXJhbF0g W0RCR10gaGFuZGxlX2ludHI6IChvdGcpIGV2ZW50OiBTb3VyY2UgRGlzYWJsZWQgU3RhdGUgRW50 ZXJlZAo+IFtnZW5lcmFsXSBbREJHXSBlbmFibGVfY2hhcmdpbmc6IGluY29ycmVjdCBjdXJyZW50 IGxpbWl0KDMzMDApLCBzZXR0aW5nKDEwMCkKPiBbZ2VuZXJhbF0gW0RCR10gc2V0X2N1cnJlbnRf bGltaXQ6IElJTl9IT1NUOiAxMDAgMHgwMTAwCj4gW2dlbmVyYWxdIFtEQkddIHNldF9jdXJyZW50 X2xpbWl0OiBzdWNjZXNzICh0cmllZCAxIHRpbWVzKQo+IC4uLgo+IC4uLgo+IFtnZW5lcmFsXSBb REJHXSBoYW5kbGVfaW50cjogKG90ZykgZXZlbnQ6IFR5cGUtQyBQb3J0IERpc2Nvbm5lY3QgRGV0 ZWN0ZWQoKQo+IFtnZW5lcmFsXSBbREJHXSBhcHBseV9wZG86IHNldHRpbmcgbGltaXQgYmFzZWQg b24gUnAgdmFsIDAKPiBbZ2VuZXJhbF0gW0RCR10gc2V0X2N1cnJlbnRfbGltaXQ6IElJTl9IT1NU OiAxMDAgMHgwMTAwCj4gW2dlbmVyYWxdIFtEQkddIHNldF9jdXJyZW50X2xpbWl0OiBzdWNjZXNz ICh0cmllZCAxIHRpbWVzKQo+IFtnZW5lcmFsXSBbREJHXSBkaXNhYmxlX2NoYXJnaW5nOgo+Cj4g SGVyZSB3ZSBkaXNjb25uZWN0IHRoZSBjYWJsZSBmcm9tIG91ciBkZXZpY2UuCj4KPiBbICAyMjYu NzU5ODQzXSBnX21hc3Nfc3RvcmFnZSBnYWRnZXQ6IGhpZ2gtc3BlZWQgY29uZmlnICMxOiBMaW51 eCBGaWxlLUJhY2tlZCBTdG9yYWdlCj4gW2dlbmVyYWxdIFtEQkddIGhhbmRsZV9pbnRyOiAob3Rn KSBldmVudDogVHlwZS1DIFBvcnQgQ29ubmVjdCBEZXRlY3RlZCgpCj4gW2dlbmVyYWxdIFtEQkdd IHVzYl9tdXhfc2VsOiAob3RnKSBwb2xhcml0eTogMAo+Cj4gSGVyZSB3ZSByZWNvbm5lY3RlZCBv dXIgZGV2aWNlIHRvIHRoZSBob3N0IGJ1dCB3aXRoIHRoZSBjYWJsZSBpbiBhCj4gZGlmZmVyZW50 IHBvbGFyaXR5IHRoYW4gYmVmb3JlLiBUaGlzIG1lYW5zIHRoZSBTUyBtdXggaXMgbm90IHByb3Bl cmx5Cj4gY29uZmlndXJlZCBmb3IgdGhlIGN1cnJlbnQgY2FibGUgb3JpZW50YXRpb24gYW5kIG11 c3QgYmUgc3dpdGNoZWQuIEFsc28KPiBub3RlIGhlcmUgdGhhdCBsaW51eCBzZWVtcyB0byByZXBv cnQgdGhlIGVudW1lcmF0aW9uIGluIGhpZ2ggc3BlZWQKPiBiZWZvcmUgb3VyIE1DVSBoYWQgYSBj aGFuY2UgdG8gcmVhY3QgdG8gdGhlIG5ldyBjb25uZWN0aW9uLgo+Cj4gW2dlbmVyYWxdIFtEQkdd IGhhbmRsZV9pbnRyOiAob3RnKSBldmVudDogSGFyZCBSZXNldCBTZW50IHRvIFBvcnQgUGFydG5l cgo+IFtnZW5lcmFsXSBbREJHXSBoYW5kbGVfaW50cjogKG90ZykgZXZlbnQ6IEhhcmQgUmVzZXQg U2VudCB0byBQb3J0IFBhcnRuZXIKPiBbZ2VuZXJhbF0gW0RCR10gaGFuZGxlX2ludHI6IChvdGcp IGV2ZW50OiBIYXJkIFJlc2V0IFNlbnQgdG8gUG9ydCBQYXJ0bmVyCj4gW2dlbmVyYWxdIFtEQkdd IGhhbmRsZV9pbnRyOiAob3RnKSBldmVudDogU291cmNlIERpc2FibGVkIFN0YXRlIEVudGVyZWQK PiBbZ2VuZXJhbF0gW0RCR10gZW5hYmxlX2NoYXJnaW5nOiBpbmNvcnJlY3QgY3VycmVudCBsaW1p dCgzMzAwKSwgc2V0dGluZygxMDApCj4gW2dlbmVyYWxdIFtEQkddIHNldF9jdXJyZW50X2xpbWl0 OiBJSU5fSE9TVDogMTAwIDB4MDEwMAo+IFtnZW5lcmFsXSBbREJHXSBzZXRfY3VycmVudF9saW1p dDogc3VjY2VzcyAodHJpZWQgMSB0aW1lcykKPiAuLi4KPiAuLi4KPiBbZ2VuZXJhbF0gW0RCR10g aGFuZGxlX2ludHI6IChvdGcpIGV2ZW50OiBUeXBlLUMgUG9ydCBEaXNjb25uZWN0IERldGVjdGVk KCkKPiBbZ2VuZXJhbF0gW0RCR10gYXBwbHlfcGRvOiBzZXR0aW5nIGxpbWl0IGJhc2VkIG9uIFJw IHZhbCAwCj4gW2dlbmVyYWxdIFtEQkddIHNldF9jdXJyZW50X2xpbWl0OiBJSU5fSE9TVDogMTAw IDB4MDEwMAo+IFtnZW5lcmFsXSBbREJHXSBzZXRfY3VycmVudF9saW1pdDogc3VjY2VzcyAodHJp ZWQgMSB0aW1lcykKPiBbZ2VuZXJhbF0gW0RCR10gZGlzYWJsZV9jaGFyZ2luZzoKPgo+IEhlcmUg d2UgZGlzY29ubmVjdCBvdXIgZGV2aWNlIGZyb20gdGhlIGhvc3QgYnkgcmVtb3ZpbmcgdGhlIGNh YmxlIGZyb20KPiBvdXIgZGV2aWNlJ3MgdHlwZS1jIGNvbm5lY3Rvci4KPgo+IFsgIDI2Mi43ODMz MThdIGR3YzMgZHdjMy4xLmF1dG86IHJlcXVlc3QgZmZmZjg4MDE2OGFlMzI0MCB3YXMgbm90IHF1 ZXVlZCB0byBlcDFvdXQKPiBbICAyNjIuOTIwNDYxXSBnX21hc3Nfc3RvcmFnZSBnYWRnZXQ6IHN1 cGVyLXNwZWVkIGNvbmZpZyAjMTogTGludXggRmlsZS1CYWNrZWQgU3RvcmFnZQo+IFtnZW5lcmFs XSBbREJHXSBoYW5kbGVfaW50cjogKG90ZykgZXZlbnQ6IFR5cGUtQyBQb3J0IENvbm5lY3QgRGV0 ZWN0ZWQoKQo+IFtnZW5lcmFsXSBbREJHXSB1c2JfbXV4X3NlbDogKG90ZykgcG9sYXJpdHk6IDAK Pgo+IEhlcmUgd2UgcmUtY29ubmVjdCBvdXIgZGV2aWNlIHRvIHRoZSBob3N0LCBidXQgd2UgbWFk ZSBzdXJlIHRvIGxlYXZlIHRoZQo+IGNhYmxlIGluIHRoZSBzYW1lIG9yaWVudGF0aW9uIGFzIGJl Zm9yZS4gVGhhdCB3YXkgdGhlIFNTIG11eCBpcyBhbHJlYWR5Cj4gY29uZmlndXJlZCBmb3IgdGhl IGN1cnJlbnQgY2FibGUgb3JpZW50YXRpb24uIFdlIHN0aWxsIHNlZSB0aGUgVVNCCj4gZGV2aWNl IGVudW1lcmF0aW9uIG9jY3VyIGJlZm9yZSB0aGUgTUNVIGhhcyBhIGNoYW5jZSB0byByZXNwb25k LCBidXQgaXQKPiBnZXRzIGVudW1lcmF0ZWQgaW4gU3VwZXJTcGVlZCBiZWNhdXNlIHRoZSBTUyBt dXggd2FzIGFscmVhZHkgY29uZmlndXJlZAo+IGZvciB0aGlzIGNhYmxlIG9yaWVudGF0aW9uLgoK VGhpcyBsb29rcyBsaWtlIGFuIG9sZCBidWcgb24geGhjaSB3aGljaCB3YXMgZml4ZWQgbG9uZyBh Z28uIE1hdGhpYXMsIGRvCnlvdSByZW1lbWJlciB0aGF0IGJ1Zz8gV2hpY2gga2VybmVsIGZpeGVk IHRoYXQgaXNzdWU/Cgo+IFdlJ3ZlIGNvbWUgdXAgd2l0aCBhIGZldyBzb2x1dGlvbnMgdGhhdCBh cmUgc3BlY2lmaWMgdG8gb3VyIHBsYXRmb3JtCj4gaW4gb3JkZXIgdG8gcmVkdWNlIHRoZSBjaGFu Y2VzIG9mIHRoaXMgcmFjZSBjb25kaXRpb24gb2NjdXJpbmcsIGJ1dCBJCj4gd2FudGVkIHRvIGFz ayB5b3UgZm9yIHlvdXIgdGhvdWdodHMgYWJvdXQgaG93IHdlIG1pZ2h0IGJlIGFibGUgdG8gd29y awo+IGFyb3VuZCB0aGlzIGZyb20gTGludXguIEluIHRoZSBldmVudCB0aGF0IHdlIGNhbm5vdCBj b21wbGV0ZWx5IGVsaW1pbmF0ZQo+IHRoaXMgcmFjZSBjb25kaXRpb24sIHdlIHdvdWxkIGxpa2Ug dG8gZmluZCBzb21lIHdheSB0byAidXBncmFkZSIgdGhlCj4gY29ubmVjdGlvbiBmcm9tIGhpZ2gg c3BlZWQgdG8gU3VwZXJTcGVlZC4gSXMgc29tZXRoaW5nIGxpa2UgdGhpcwo+IHBvc3NpYmxlPwoK VW5mb3J0dW5hdGVseSBub3QuIERvZXMgdGhpcyBjb250aW51ZSB0byBoYXBwZW4gaWYgeW91IGNo YW5nZSB0aGUgaG9zdAptYWNoaW5lIHRvIGUuZy4gV2luZG93cyBvciBhIG1vcmUgcmVjZW50IGxp bnV4IGtlcm5lbD8KCj4gTXkgbmFpaXZlIHVuZGVyc3RhbmRpbmcgd3NhcyB0aGF0IHRoZSBob3N0 IHdvdWxkIGNvbnRpbnVvdXNseQo+IHBvbGwgdGhlIFNTIGxpbmVzIGZvciBhIHZhbGlkIGNvbm5l Y3Rpb24sIGJ1dCBJIGJlbGlldmUgSSBhbSBtaXN0YWtlbgo+IGhlcmUuIEkgbm90aWNlZCBpbiB0 aGUgVVNCIHByb3RvY29sIHRyYWNlcyB0aGF0IHRoZXJlIGFyZSBhIGNvdXBsZSBvZgo+IExpbmsg TWFuYWdlbWVudCBQYWNrZXRzIChMUE1zKSB0aGF0IHRoZSBob3N0IHNlbmRzLiBPbmUgb2YgdGhl bSBzZWVtcyB0bwo+IHJlcXVlc3QgdGhlIGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRvciwgYW5kIGFu b3RoZXIgc2VlbXMgdG8gcmVxdWVzdCB0aGUKPiBsaW5rIHNwZWVkIGJlIHNldCB0byA1IEdicHMs IHRvIHdoaWNoIHRoZSBkZXZpY2UgYWNrbm93bGVkZ2VzIGFuZAo+IGNvbXBsaWVzLiBJcyBpdCBw b3NzaWJsZSB0byBmb3JjZSB0aGlzIHNvcnQgb2YgZXhjaGFuZ2UgdG8gaGFwcGVuIGFnYWluPyAK CkFGQUlDVCwgdGhhdCdzIGhhbmRsZWQgZW50aXJlbHkgYXQgdGhlIEhXIGxldmVsIHdpdGhvdXQg U1cgaW50ZXJ2ZW50aW9uLgoKPiBJJ3ZlIGF0dGFjaGVkIHlldCBhbm90aGVyIHRhcmJhbGwgY29u dGFpbmluZyB0aGUgZHdjMyB0cmFjZXMsIFVTQgo+IHByb3RvY29sIGRhdGEgKGZyb20gYSBUZWxl ZHluZSBMZUNyb3kgYW5hbHl6ZXIsIGNvbXBhdGlibGUgd2l0aCB0aGUgIlVTQgo+IFByb3RvY29s IFN1aXRlIiBhcHBsaWNhdGlvbiksIGFuZCBhIHJhdyBjb3B5IG9mIHRoZSBsb2dzIEkgYW5ub3Rh dGVkCj4gYWJvdmUuIFRoZSB0aW1lc3RhbXBzIGluIHRoZSBkd2MzIHRyYWNlcyBzaG91bGQgbGlu ZSB1cCB3aXRoIHRoZQo+IHRpbWVzdGFtcHMgb2YgdGhlIGRtZXNnIG91dHB1dCBpbiB0aGUgYW5u b3RhdGVkIGxvZ3MuIFRoZSBVU0IgcHJvdG9jb2wKPiBkYXRhIGlzIGZyb20gYSBkaWZmZXJlbnQg c2Vzc2lvbiwgYnV0IHN0aWxsIGNvbnRhaW5zIGFuIGV4YW1wbGUgb2YgdGhlCj4gZmlyc3QgZW51 bWVyYXRpb24gaW4gaGlnaCBzcGVlZCwgYW5kIHRoZSBzZWNvbmQgaW4gU1MsIGFsbCBpbiBvbmUK PiBzYW1wbGUuIFRoZSBTUyBlbnVtZXJhdGlvbiBoYXBwZW5zIGF0IGFyb3VuZCA4IHNlY29uZHMg aW50byB0aGUKPiAxMi1zZWNvbmQgY2FwdHVyZS4KPgo+IFRoYW5rcyBpbiBhZHZhbmNlIGZvciB5 b3VyIGlucHV0IGhlcmUhCgpJJ2xsIGhhdmUgdG8gc3BlbmQgc29tZSBtb3JlIHRpbWUgd2l0aCB0 aGUgbG9ncywgYnV0IGF0IGxlYXN0IGZyb20KdHJhY2VzLCBJIGNvdWxkbid0IHNlZSBhbnl0aGlu ZyB0aGF0IHdvdWxkIGdpdmUgYSBoaW50LiBJJ2xsIHRyeSBsb29raW5nCmF0IENBVEMgdHJhY2Vz IGxhdGVyIHRvZGF5IHRvbW9ycm93LgoKPj4gPiBJJ3ZlIGF0dGFjaGVkIGEgdGFyYmFsbCBjb250 YWluaW5nIHRoZSBkbWVzZyBvdXRwdXQsIHJlZ2R1bXAsIGFuZAo+PiA+IHRyYWNlcG9pbnRzIG9m IGEgc3VjY2VzZnVsIHNlc3Npb24gd2l0aCB0aGUgcGF0Y2ggYXBwbGllZC4gSSd2ZSBpbmNsdWRl ZAo+PiA+IHRoZSBwYXRjaCBpbiB0aGUgdGFyYmFsbCBpZiB5b3Ugd291bGQgbGlrZSB0byBzZWUg aG93IEkgcG9ydGVkIGl0Lgo+PiA+IENvdWxkIHlvdSBwbGVhc2UgZG91YmxlLWNoZWNrIHRoZSB0 cmFjZXMgdG8gbWFrZSBzdXJlIHRoZXkgbWVldCB5b3VyCj4+ID4gZXhwZWN0YXRpb25zIGZvciBk aXNhYmxpbmcgdGhlIFUxL1UyX0VOQUJMRSBmZWF0dXJlcz8gSSBsb29rZWQgdGhyb3VnaAo+PiA+ IHRoZSB0cmFjZXMgYW5kIGNvdWxkIG5vdCBmaW5kIGFueSBsaW5rIHN0YXRlIGNoYW5nZXMgdG8g VTEgb3IgVTIsIHNvIGl0Cj4+ID4gc2VlbXMgbGlrZSBpdCdzIHdvcmtpbmcuCj4+IAo+PiBUaGUg aG9zdCwgZnJvbSB0aGF0IHJ1biwgZGlkbid0IGVuYWJsZSBkZXZpY2UtaW5pdGlhdGVkIFUxL1Uy IGVudHJ5LiBTbwo+PiBvbmx5IGhvc3QtaW5pdGlhdGVkIGVudHJ5IGlzIGF2YWlhYmxlLiBTaW5j ZSB3ZSBoYXZlIHJlbW92ZWQKPj4gQUNDRVBUVTEvQUNDRVBUVTIgYml0cyBmcm9tIERDVEwsIGR3 YzMgaXMgZGVueWluZyBMR09fVTEgYW5kIExHT19VMi4gWW91Cj4+IGNhbiBjb25maXJtIHRoYXQg b25seSB3aXRoIGEgc25pZmZlci4KPj4gCj4+ID4gSSBoYXZlIGEgY291cGxlIG9mIGZvbGxvdy11 cCBxdWVzdGlvbnMgYWJvdXQgdGhpcyBwYXRjaDoKPj4gPgo+PiA+ICogSSBhZGRlZCBzb21lIHRy YWNlcG9pbnRzIGluIHRoZSBwYXRjaCBJJ20gYXBwbHlpbmcgYnV0IHRoZXkgZG9uJ3Qgc2VlbQo+ PiA+ICAgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHRyYWNlIG91dHB1dC4gVGhpcyBwYXRjaCBhcHBs aWVzIGNsZWFubHkgYW5kIEkKPj4gPiAgIGhhdmVuJ3Qgc2VlbiBhbnkgY29tcGlsZXIgd2Fybmlu Z3MgYWJvdXQgaXQuIElzIHRoZQo+PiA+ICAgZHdjM19lcDBfaGFuZGxlX2ZlYXR1cmUgZnVuY3Rp b24gbm90IGNhbGxlZCBkdXJpbmcKPj4gCj4+IGl0J3MgY2FsbGVkIGZyb20gU2V0RmVhdHVyZSgp IGNvbW1hbmQuIElmIFNldEZlYXR1cmUoKSBpcyBub3Qgc2VudCBieQo+PiB0aGUgaG9zdCwgdGhl biB5b3Ugd29uJ3Qgc2VlIHlvdXIgdHJhY2Vwb2ludHMuIEZZSSwgU2V0RmVhdHVyZSB3b3VsZAo+ PiBoYXZlIGEgYlJlcXVlc3Qgb2YgMy4gSGVyZSB3ZSBjYW4gYWxsIGN0cmwgcmVxdWVzdHM6Cj4+ IAo+PiAgMTkyOiAgICAgaXJxLzIzLWR3YzMtMTc2NSAgWzAwMF0gZC4uMSAgIDIxMy4wMDc1OTE6 IGR3YzNfY3RybF9yZXE6IGJSZXF1ZXN0VHlwZSAwMCBiUmVxdWVzdCAwNSB3VmFsdWUgMDAwNSB3 SW5kZXggMDAwMCB3TGVuZ3RoIDAKPj4gIDIwODogICAgIGlycS8yMy1kd2MzLTE3NjUgIFswMDBd IGQuLjEgICAyMTMuMDEwNDU3OiBkd2MzX2N0cmxfcmVxOiBiUmVxdWVzdFR5cGUgODAgYlJlcXVl c3QgMDYgd1ZhbHVlIDAxMDAgd0luZGV4IDAwMDAgd0xlbmd0aCAxOAo+PiAgMjM3OiAgICAgaXJx LzIzLWR3YzMtMTc2NSAgWzAwMF0gZC4uMSAgIDIxMy4wMTA4NzE6IGR3YzNfY3RybF9yZXE6IGJS ZXF1ZXN0VHlwZSA4MCBiUmVxdWVzdCAwNiB3VmFsdWUgMDMwNCB3SW5kZXggMDQwOSB3TGVuZ3Ro IDIKPj4gIDI2NjogICAgIGlycS8yMy1kd2MzLTE3NjUgIFswMDBdIGQuLjEgICAyMTMuMDExMzMw OiBkd2MzX2N0cmxfcmVxOiBiUmVxdWVzdFR5cGUgODAgYlJlcXVlc3QgMDYgd1ZhbHVlIDAzMDQg d0luZGV4IDA0MDkgd0xlbmd0aCA0MAo+PiAgMjk1OiAgICAgaXJxLzIzLWR3YzMtMTc2NSAgWzAw MF0gZC4uMSAgIDIxMy4wMTE3MDc6IGR3YzNfY3RybF9yZXE6IGJSZXF1ZXN0VHlwZSA4MCBiUmVx dWVzdCAwNiB3VmFsdWUgMDMwMyB3SW5kZXggMDQwOSB3TGVuZ3RoIDIKPj4gIDMyNDogICAgIGly cS8yMy1kd2MzLTE3NjUgIFswMDBdIGQuLjEgICAyMTMuMDEyMTM3OiBkd2MzX2N0cmxfcmVxOiBi UmVxdWVzdFR5cGUgODAgYlJlcXVlc3QgMDYgd1ZhbHVlIDAzMDMgd0luZGV4IDA0MDkgd0xlbmd0 aCA5Mgo+PiAgMzUzOiAgICAgaXJxLzIzLWR3YzMtMTc2NSAgWzAwMF0gZC4uMSAgIDIxMy4wMTI1 NDg6IGR3YzNfY3RybF9yZXE6IGJSZXF1ZXN0VHlwZSA4MCBiUmVxdWVzdCAwNiB3VmFsdWUgMDMw NSB3SW5kZXggMDQwOSB3TGVuZ3RoIDIKPj4gIDM4MjogICAgIGlycS8yMy1kd2MzLTE3NjUgIFsw MDBdIGQuLjEgICAyMTMuMDEyOTM0OiBkd2MzX2N0cmxfcmVxOiBiUmVxdWVzdFR5cGUgODAgYlJl cXVlc3QgMDYgd1ZhbHVlIDAzMDUgd0luZGV4IDA0MDkgd0xlbmd0aCAxMgo+PiAgNDExOiAgICAg aXJxLzIzLWR3YzMtMTc2NSAgWzAwMF0gZC4uMSAgIDIxMy4wMTMzMzE6IGR3YzNfY3RybF9yZXE6 IGJSZXF1ZXN0VHlwZSA4MCBiUmVxdWVzdCAwNiB3VmFsdWUgMGYwMCB3SW5kZXggMDAwMCB3TGVu Z3RoIDUKPj4gIDQ0MDogICAgIGlycS8yMy1kd2MzLTE3NjUgIFswMDBdIGQuLjEgICAyMTMuMDEz NzQ4OiBkd2MzX2N0cmxfcmVxOiBiUmVxdWVzdFR5cGUgODAgYlJlcXVlc3QgMDYgd1ZhbHVlIDBm MDAgd0luZGV4IDAwMDAgd0xlbmd0aCAyMgo+PiAgNDY5OiAgICAgaXJxLzIzLWR3YzMtMTc2NSAg WzAwMF0gZC4uMSAgIDIxMy4wMTYwMDY6IGR3YzNfY3RybF9yZXE6IGJSZXF1ZXN0VHlwZSA4MCBi UmVxdWVzdCAwNiB3VmFsdWUgMDIwMCB3SW5kZXggMDAwMCB3TGVuZ3RoIDkKPj4gIDQ5ODogICAg IGlycS8yMy1kd2MzLTE3NjUgIFswMDBdIGQuLjEgICAyMTMuMDE2NTQzOiBkd2MzX2N0cmxfcmVx OiBiUmVxdWVzdFR5cGUgODAgYlJlcXVlc3QgMDYgd1ZhbHVlIDAyMDAgd0luZGV4IDAwMDAgd0xl bmd0aCA0NAo+PiAgNTI3OiAgICAgaXJxLzIzLWR3YzMtMTc2NSAgWzAwMF0gZC4uMSAgIDIxMy4w MTY5NTE6IGR3YzNfY3RybF9yZXE6IGJSZXF1ZXN0VHlwZSAwMCBiUmVxdWVzdCAwOSB3VmFsdWUg MDAwMSB3SW5kZXggMDAwMCB3TGVuZ3RoIDAKPj4gIDU2ODogICAgIGlycS8yMy1kd2MzLTE3NjUg IFswMDBdIGQuLjEgICAyMTMuMDE3NTY5OiBkd2MzX2N0cmxfcmVxOiBiUmVxdWVzdFR5cGUgODAg YlJlcXVlc3QgMDYgd1ZhbHVlIDAzMDEgd0luZGV4IDA0MDkgd0xlbmd0aCAyCj4+ICA1OTc6ICAg ICBpcnEvMjMtZHdjMy0xNzY1ICBbMDAwXSBkLi4xICAgMjEzLjAxNzkyNjogZHdjM19jdHJsX3Jl cTogYlJlcXVlc3RUeXBlIDgwIGJSZXF1ZXN0IDA2IHdWYWx1ZSAwMzAxIHdJbmRleCAwNDA5IHdM ZW5ndGggMjYKPj4gIDYyNjogICAgIGlycS8yMy1kd2MzLTE3NjUgIFswMDBdIGQuLjEgICAyMTMu MDE4MzY3OiBkd2MzX2N0cmxfcmVxOiBiUmVxdWVzdFR5cGUgODEgYlJlcXVlc3QgMDAgd1ZhbHVl IDAwMDAgd0luZGV4IDAwMDAgd0xlbmd0aCAyCj4+ICA2NTM6ICAgICBpcnEvMjMtZHdjMy0xNzY1 ICBbMDAwXSBkLi4xICAgMjEzLjAyNjQwNDogZHdjM19jdHJsX3JlcTogYlJlcXVlc3RUeXBlIGEx IGJSZXF1ZXN0IGZlIHdWYWx1ZSAwMDAwIHdJbmRleCAwMDAwIHdMZW5ndGggMQo+PiAgOTI5OiAg ICAgaXJxLzIzLWR3YzMtMTc2NSAgWzAwMF0gZC4uMSAgIDIxNC4xMzgzODU6IGR3YzNfY3RybF9y ZXE6IGJSZXF1ZXN0VHlwZSA4MiBiUmVxdWVzdCAwMCB3VmFsdWUgMDAwMCB3SW5kZXggMDA4MSB3 TGVuZ3RoIDIKPj4gIDk1NjogICAgIGlycS8yMy1kd2MzLTE3NjUgIFswMDBdIGQuLjEgICAyMTQu MTM4NzkxOiBkd2MzX2N0cmxfcmVxOiBiUmVxdWVzdFR5cGUgMDIgYlJlcXVlc3QgMDEgd1ZhbHVl IDAwMDAgd0luZGV4IDAwODEgd0xlbmd0aCAwCj4+IDEwMzE6ICAgICBpcnEvMjMtZHdjMy0xNzY1 ICBbMDAwXSBkLi4xICAgMjE0LjE0MDIxNDogZHdjM19jdHJsX3JlcTogYlJlcXVlc3RUeXBlIDgy IGJSZXF1ZXN0IDAwIHdWYWx1ZSAwMDAwIHdJbmRleCAwMDgxIHdMZW5ndGggMgo+PiAxMDU4OiAg ICAgaXJxLzIzLWR3YzMtMTc2NSAgWzAwMF0gZC4uMSAgIDIxNC4xNDA2MTg6IGR3YzNfY3RybF9y ZXE6IGJSZXF1ZXN0VHlwZSAwMiBiUmVxdWVzdCAwMSB3VmFsdWUgMDAwMCB3SW5kZXggMDA4MSB3 TGVuZ3RoIDAKPj4gMTEzMzogICAgIGlycS8yMy1kd2MzLTE3NjUgIFswMDBdIGQuLjEgICAyMTQu MTQyMjA4OiBkd2MzX2N0cmxfcmVxOiBiUmVxdWVzdFR5cGUgODIgYlJlcXVlc3QgMDAgd1ZhbHVl IDAwMDAgd0luZGV4IDAwODEgd0xlbmd0aCAyCj4+IDExNjA6ICAgICBpcnEvMjMtZHdjMy0xNzY1 ICBbMDAwXSBkLi4xICAgMjE0LjE0MjU4NzogZHdjM19jdHJsX3JlcTogYlJlcXVlc3RUeXBlIDAy IGJSZXF1ZXN0IDAxIHdWYWx1ZSAwMDAwIHdJbmRleCAwMDgxIHdMZW5ndGggMAo+PiAKPj4gTm90 ZSB0aGF0IHdlIGRvbid0IGhhdmUgYW55ICJiUmVxdWVzdCAwMyIgc3Vic3RyaW5nLgo+Cj4gSXMg aXQgbm9ybWFsIHRvIG5vdCBzZWUgYW55IFNldEZlYXR1cmUgY29tbWFuZHM/IEkgdGhpbmsgSSB3 YXMgZXhwZWN0aW5nCj4gdG8gc2VlIHRoZW0gcHJldHR5IGZyZXF1ZW50bHkuCgpUb3RhbGx5IG5v cm1hbCA6LSkgQSBob3N0IGlzIG5vdCByZXF1aXJlZCB0byBhbGxvdyBmb3IgZGV2aWNlLWluaXRp YXRlZApVMS9VMiBlbnRyeS4gTm9yIGlzIGl0IHJlcXVpcmVkIHRvIGhhbHQgYW5kIGVuZHBvaW50 LCBmb3IgZXhhbXBsZS4KCj4+ID4+ID4gSSd2ZSBhdHRhY2hlZCB0aGUgdHJhY2VzIGFuZCBkbWVz ZyBvdXRwdXQgaW4gYW4gYXJjaGl2ZSB0aXRsZWQKPj4gPj4gPiAiZ25hcmJveC1lcDBvdXQtZmFp bHVyZS50YXIueHoiLiBQbGVhc2UgbGV0IG1lIGtub3cgaWYgeW91IG5lZWQgbW9yZQo+PiA+PiA+ IGluZm9ybWF0aW9uIGFib3V0IHRoaXMgcGFydGljdWxhciBpc3N1ZS4KPj4gPj4gCj4+ID4+IEkn bGwgZ28gb3ZlciB0aGUgdHJhY2VzLCB0aGlzIGNvdWxkIGJlIHNvbWV0aGluZyB0aGF0IGhhcyBi ZWVuIGZpeGVkIGluCj4+ID4+IHRoZSBwYXN0Lgo+PiA+Cj4+ID4gRGlkIHlvdSBnZXQgYSBjaGFu Y2UgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIHRyYWNlcG9pbnRzIGZvciB0aGlzIGVycm9yPwo+PiA+ IE5vIHdvcnJpZXMgaWYgeW91IGhhdmVuJ3QgZ290dGVuIGEgY2hhbmNlIHlldC4KPj4gCj4+IEkg ZGlkLCBub3RoaW5nIHNjcmVhbWluZyB3cm9uZyB3aXRoIHRoZW0uIFRoYXQgImNhbid0IGVuYWJs ZSBlcDBvdXQiCj4+IHN0aWxsIHB1enpsZXMgbWUgYSBiaXQuIFdoYXQgd2Ugc2VlIG9uIHRyYWNl cG9pbnRzIGlzIGEgdGltZSBvdXQ6Cj4+IAo+PiAJbW9kcHJvYmUtMTI4MSAgWzAwMl0gZC4uMSAg IDI0Ni41MDQwNDM6IGR3YzNfZ2FkZ2V0X2VwX2NtZDogZXAwb3V0OiBjbWQgJ1NldCBFbmRwb2lu dCBUcmFuc2ZlciBSZXNvdXJjZScgWzJdIHBhcmFtcyAwMDAwMDAwMSAwMDAwMDAwMCAwMDAwMDAw MCAtLT4gc3RhdHVzOiBUaW1lZCBPdXQKPj4gCj4+IEJ1dCBJIGhhdmUgbm8gaWRlYSB3aHkgdGhh dCBoYXBwZW5zLiBJdCBjb3VsZCBiZSB0aGF0IHRoaXMgd2FzIGZpeGVkCj4+IGxvbmcgYWdvLCBi dXQgd2Ugd29uJ3Qga25vdyB1bmxlc3Mgd2UgcnVuIGEgcmVjZW50IGtlcm5lbCBvbiB5b3VyCj4+ IHNldHVwLiBJLCBjZXJ0YWlubHksIGhhdmVuJ3Qgc2VlbiB0aGF0IDotKQo+Cj4gT25lIG9mIG15 IGNvbGxlYWd1ZXMgaXMgY3VycmVudGx5IHRlc3Rpbmcga2VybmVsIDUuMC41IHdpdGhvdXQgdGhl IHBhdGNoCj4geW91IHN1Z2dlc3RlZCBhbmQgaXQgbG9va3MgcHJldHR5IGdvb2Qgc28gZmFyISBX ZSdsbCBrZWVwIHlvdSB1cGRhdGVkIGlmCj4gdGhpcyBjaGFuZ2VzLiBXaXRoIHRoaXMgaXNzdWUg aW4gcGFydGljdWxhciwgaXQgaXMgc3RpbGwgdW5jbGVhciBob3cgdG8KPiBnZXQgb3VyIGRldmlj ZSBpbnRvIHRoaXMgc3RhdGUuIFdlJ2xsIGRlZmluaXRlbHkga2VlcCBhbiBleWUgb3V0IGZvciBp dAo+IG9uIDUuMC41LgoKSWYgNS4wLjUgaXMgd29ya2luZywgdGhlbiB5b3UgY291bGQgcnVuIGEg Z2l0IGJpc2VjdCBhbmQgZmluZCB0aGUgY29tbWl0CnRoYXQgZml4ZWQgaXQuIElmIHdlIGhhdmUg YSBmYWlsaW5nIGNvbW1pdCBhbmQgYSB3b3JraW5nIGNvbW1pdCwgZ2l0CmJpc2VjdCB3aWxsIGhl bHAgZmluZGluZyB0aGUgZml4LCB0aGVuIHlvdSBjb3VsZCBzaW1wbHkgY2hlcnJ5LXBpY2sgaXQu CgpCZXN0IHJlZ2FyZHMK