From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: 4.20.0-rc3 nouveau/Quadro P2000 Mobile: runpm causing ACPI errors, lockups Date: Wed, 28 Nov 2018 10:09:22 -0500 Message-ID: <20181128093527-mutt-send-email-mst@kernel.org> References: <20181126221005-mutt-send-email-mst@kernel.org> <20181127093650.GP2296@lahna.fi.intel.com> <20181127212550-mutt-send-email-mst@kernel.org> <20181128110857.GW2296@lahna.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181128110857.GW2296-3PARRvDOhMZrdx17CPfAsdBPR1lH4CV8@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Mika Westerberg Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, "Rafael J. Wysocki" , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Ben Skeggs , Dave Airlie , Len Brown List-Id: linux-acpi@vger.kernel.org T24gV2VkLCBOb3YgMjgsIDIwMTggYXQgMDE6MDg6NTdQTSArMDIwMCwgTWlrYSBXZXN0ZXJiZXJn IHdyb3RlOgo+IE9uIFR1ZSwgTm92IDI3LCAyMDE4IGF0IDA5OjQ5OjQ0UE0gLTA1MDAsIE1pY2hh ZWwgUy4gVHNpcmtpbiB3cm90ZToKPiA+IE9uIFR1ZSwgTm92IDI3LCAyMDE4IGF0IDExOjM2OjUw QU0gKzAyMDAsIE1pa2EgV2VzdGVyYmVyZyB3cm90ZToKPiA+ID4gK2xpbnV4LWFjcGkKPiA+ID4g Cj4gPiA+IEhpIE1pY2hhZWwsCj4gPiA+IAo+ID4gPiBPbiBNb24sIE5vdiAyNiwgMjAxOCBhdCAx MDo1MzoyNlBNIC0wNTAwLCBNaWNoYWVsIFMuIFRzaXJraW4gd3JvdGU6Cj4gPiA+ID4gU28gYSBu ZXcgdGhpbmtwYWQ6Cj4gPiA+ID4gMDE6MDAuMCBWR0EgY29tcGF0aWJsZSBjb250cm9sbGVyOiBO VklESUEgQ29ycG9yYXRpb24gR1AxMDdHTE0gW1F1YWRybyBQMjAwMCBNb2JpbGVdIChyZXYgYTEp Cj4gPiA+ID4gCj4gPiA+ID4gSGFuZ3Mgd2hlbmV2ZXIgSSB0cnkgdG8gcG9rZSBhdCB0aGUgY2Fy ZC4gSXQgc3RhcnRzIGhhcHBpbHkgZW5vdWdoIHdpdGgKPiA+ID4gPiAKPiA+ID4gPiBbICAgIDMu OTcxNTE1XSBBQ1BJIFdhcm5pbmc6IFxfU0IuUENJMC5HRlgwLl9EU006IEFyZ3VtZW50ICM0IHR5 cGUgbWlzbWF0Y2ggLSBGb3VuZCBbQnVmZmVyXSwgQUNQSSByZXF1aXJlcyBbUGFja2FnZV0gKDIw MTgxMDAzL25zYXJndW1lbnRzLTY2KQo+ID4gPiA+IFsgICAgMy45NzE1NTNdIEFDUEkgV2Fybmlu ZzogXF9TQi5QQ0kwLlBFRzAuUEVHUC5fRFNNOiBBcmd1bWVudCAjNCB0eXBlIG1pc21hdGNoIC0g Rm91bmQgW0J1ZmZlcl0sIEFDUEkgcmVxdWlyZXMgW1BhY2thZ2VdICgyMDE4MTAwMy9uc2FyZ3Vt ZW50cy02NikKPiA+ID4gPiBbICAgIDMuOTcxNzIxXSBwY2kgMDAwMDowMTowMC4wOiBvcHRpbXVz IGNhcGFiaWxpdGllczogZW5hYmxlZCwgc3RhdHVzIGR5bmFtaWMgcG93ZXIsIGhkYSBiaW9zIGNv ZGVjIHN1cHBvcnRlZAo+ID4gPiA+IFsgICAgMy45NzE3MjZdIFZHQSBzd2l0Y2hlcm9vOiBkZXRl Y3RlZCBPcHRpbXVzIERTTSBtZXRob2QgXF9TQl8uUENJMC5QRUcwLlBFR1AgaGFuZGxlCj4gPiA+ ID4gWyAgICAzLjk3MTcyN10gbm91dmVhdTogZGV0ZWN0ZWQgUFIgc3VwcG9ydCwgd2lsbCBub3Qg dXNlIERTTQo+ID4gCj4gPiBCVFcgdGhpcyBpcyBhbHNvIGEgYml0IHN0cmFuZ2UuIEl0IHNheXMg aXQgd2lsbCBub3QgdXNlIERTTSAtIGJ1dCBkaWQKPiA+IGl0IG1heWJlIHVzZSBEU00gcHJldmlv dXNseT8gVGhlIEFDUEkgV2FybmluZyBzZWVtcyB0byBpbmRpY2F0ZSB0aGF0Cj4gPiBpdCBkaWQg Li4uCj4gPiAKPiA+IEFuZCBqdXN0IHRvIGNvbXBsZXRlIHRoZSBwaWN0dXJlIGhlcmUncyB0aGUg X0RTTSBmcm9tIEFDUEk6Cj4gPiAKPiA+ICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxp emVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAo+ID4gICAgICAgICB7Cj4gCj4g Li4uCj4gCj4gPiAgICAgICAgIH0KPiA+IAo+ID4gCj4gPiBJIGFtIG5vdCBzdXJlIHdoYXQgbWFr ZXMgaXQgdGhpbmsgdGhhdCBBcmczIGlzIGEgYnVmZmVyIGFuZAo+ID4gbm90IGEgcGFja2FnZTog SUlSQyBJbmRleCAoZGVjb2RlZCBDLXN0eWxlIGhlcmUgYXMgW10pIGNhbiBhcHBseQo+ID4gdG8g ZWl0aGVyLgo+ID4gCj4gPiBBbSBJIG1heWJlIG1pc3VuZGVyc3RhbmRpbmcgdGhlIHdhcm5pbmc/ Cj4gCj4gSXQgbG9va3MgbGlrZSBjb21pbmcgZnJvbSB0aGUgbm91dmVhdSBkcml2ZXIgKGFzc3Vt aW5nIEknbSByZWFkaW5nIGl0IHJpZ2h0KS4KPiAKPiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X2FjcGkuYzo6bm91dmVhdV9vcHRpbXVzX2RzbSgpCj4gCj4gICAgICAgICB1bmlvbiBh Y3BpX29iamVjdCBhcmd2NCA9IHsKPiAgICAgICAgICAgICAgICAgLmJ1ZmZlci50eXBlID0gQUNQ SV9UWVBFX0JVRkZFUiwKPiAgICAgICAgICAgICAgICAgLmJ1ZmZlci5sZW5ndGggPSA0LAo+ICAg ICAgICAgICAgICAgICAuYnVmZmVyLnBvaW50ZXIgPSBhcmdzX2J1ZmYKPiAgICAgICAgIH07Cj4g Cj4gICAgICAgICAuLi4KPiAKPiAgICAgICAgIG9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtX3R5cGVk KGhhbmRsZSwgJm5vdXZlYXVfb3BfZHNtX211aWQsIDB4MDAwMDAxMDAsCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLCAmYXJndjQsIEFDUElfVFlQRV9CVUZGRVIp Owo+IAo+IAo+IEl0IHBhc3NlcyBBQ1BJX1RZUEVfQlVGRkVSIGJ1dCBBQ1BJIHNwZWMgX0RTTSBl eHBlY3RzIHBhY2thZ2UuCgoKWWVhIGFsbCB0aGlzIGlzIHdlaXJkLCBpbiBwYXJ0aWN1bGFyIEkg d29uZGVyIHdoeSBkb2VzIGV2ZXJ5b25lCnVzaW5nIGRzbSBpbnNpc3RzIG9uIHNheWluZyBBcmc0 CndoZW4gdGhleSBhY3R1YWxseSBtZWFuIEFyZzMuIEFDUEkgbnVtYmVycyBhcmd1bWVudHMgZnJv bSAwLgoKU28gaXQncyBhIGJpdCB1Z2x5LCBhbmQgbWF5YmUgd29ydGggZml4aW5nIGJ1dCB1bmxp a2VseSB0byBiZQphbiBhY3R1YWwgaXNzdWUgc2ltcGx5IGJlY2F1c2Ugd2UgZW5kIHVwIG5vdCB1 c2luZyBEU00gaW4gdGhlIGVuZC4KClBva2luZyBhdCB0aGUgcHJvYmluZyBjb2RlIGluIG5vdXZl YXVfcHIzX3ByZXNlbnQsIEkgc3RhcnRlZCB0byB3b25kZXI6CnNob3VsZCBJIHRyeSB0byBoYWNr IGl0IHRvIGRpc2FibGUgZDNjb2xkIGFuZCBwcjMgYW5kIHNlZSB3aGF0CmhhcHBlbnM/CgoKCj4g PiA+ID4gWyAgICAzLjk3MTc0NV0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IGVuYWJsaW5nIGRldmlj ZSAoMDAwNiAtPiAwMDA3KQo+ID4gPiA+IFsgICAgMy45NzE5MjNdIG5vdXZlYXUgMDAwMDowMTow MC4wOiBOVklESUEgR1AxMDcgKDEzNzAwMGExKQo+ID4gPiA+IFsgICAgNC4wMDk4NzVdIFBNOiBJ bWFnZSBub3QgZm91bmQgKGNvZGUgLTIyKQo+ID4gPiA+IFsgICAgNC4xMzU3NTJdIG5vdXZlYXUg MDAwMDowMTowMC4wOiBEUk06IFZSQU06IDQwOTYgTWlCCj4gPiA+ID4gWyAgICA0LjEzNTc1M10g bm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogR0FSVDogNTM2ODcwOTEyIE1pQgo+ID4gPiA+IFsg ICAgNC4xMzU3NTRdIG5vdXZlYXUgMDAwMDowMTowMC4wOiBEUk06IEJJVCB0YWJsZSAnQScgbm90 IGZvdW5kCj4gPiA+ID4gWyAgICA0LjEzNTc1NV0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTog QklUIHRhYmxlICdMJyBub3QgZm91bmQKPiA+ID4gPiBbICAgIDQuMTM1NzU2XSBub3V2ZWF1IDAw MDA6MDE6MDAuMDogRFJNOiBUTURTIHRhYmxlIHZlcnNpb24gMi4wCj4gPiA+ID4gWyAgICA0LjEz NTc1Nl0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogRENCIHZlcnNpb24gNC4xCj4gPiA+ID4g WyAgICA0LjEzNTc1N10gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogRENCIG91dHAgMDA6IDAy ODAwZjc2IDA0NjAwMDIwCj4gPiA+ID4gWyAgICA0LjEzNTc1OF0gbm91dmVhdSAwMDAwOjAxOjAw LjA6IERSTTogRENCIG91dHAgMDE6IDAyMDExZjYyIDAwMDIwMDEwCj4gPiA+ID4gWyAgICA0LjEz NTc1OV0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogRENCIG91dHAgMDI6IDAxMDIyZjQ2IDA0 NjAwMDEwCj4gPiA+ID4gWyAgICA0LjEzNTc2MF0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTog RENCIG91dHAgMDM6IDAxMDMzZjU2IDA0NjAwMDIwCj4gPiA+ID4gWyAgICA0LjEzNTc2MV0gbm91 dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogRENCIGNvbm4gMDA6IDAwMDIwMDQ3Cj4gPiA+ID4gWyAg ICA0LjEzNTc2MV0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogRENCIGNvbm4gMDE6IDAwMDEw MTYxCj4gPiA+ID4gWyAgICA0LjEzNTc2Ml0gbm91dmVhdSAwMDAwOjAxOjAwLjA6IERSTTogRENC IGNvbm4gMDI6IDAwMDAxMjQ2Cj4gPiA+ID4gWyAgICA0LjEzNTc2M10gbm91dmVhdSAwMDAwOjAx OjAwLjA6IERSTTogRENCIGNvbm4gMDM6IDAwMDAyMzQ2Cj4gPiA+ID4gWyAgICA0LjUwODM1NV0g W2RybV0gU3VwcG9ydHMgdmJsYW5rIHRpbWVzdGFtcCBjYWNoaW5nIFJldiAyICgyMS4xMC4yMDEz KS4KPiA+ID4gPiBbICAgIDQuNTA4MzU1XSBbZHJtXSBEcml2ZXIgc3VwcG9ydHMgcHJlY2lzZSB2 YmxhbmsgdGltZXN0YW1wIHF1ZXJ5Lgo+ID4gPiA+IFsgICAgNC41MDk4MTJdIFtkcm1dIENhbm5v dCBmaW5kIGFueSBjcnRjIG9yIHNpemVzCj4gPiA+ID4gWyAgICA0LjUxMDE0NF0gW2RybV0gSW5p dGlhbGl6ZWQgbm91dmVhdSAxLjMuMSAyMDEyMDgwMSBmb3IgMDAwMDowMTowMC4wIG9uIG1pbm9y IDIKPiA+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiBBbHRob3VnaCB0aGF0IHR5cGUgbWlzbWF0Y2gg aXMgYSBiaXQgd29ycnlpbmcuIEFuZCBJJ20gbm90IHN1cmUgd2hhdAo+ID4gPiA+IHByaW50cyBQ TTogSW1hZ2Ugbm90IGZvdW5kLgo+ID4gPiAKPiA+ID4gVGhhdCBpcyBmaW5lLCBpdCBqdXN0IHNh eXMgaXQgY2Fubm90IGZpbmQgYSBoaWJlcm5hdGlvbiBpbWFnZSBmcm9tIHN3YXAKPiA+ID4gZGV2 aWNlLiBJIGd1ZXNzIHlvdSBoYXZlIHJlc3VtZT0uLi4gaW4gdGhlIGtlcm5lbCBjb21tYW5kIGxp bmUuCj4gPiA+IAo+ID4gPiA+IEJ1dCBhZnRlciBhIHNob3J0IHdoaWxlIGl0IGdldHMgcHJldHR5 IGJ1c3k6Cj4gPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gWyAgIDUyLjkxNzAwOV0gTm8gTG9jYWwg VmFyaWFibGVzIGFyZSBpbml0aWFsaXplZCBmb3IgTWV0aG9kIFtOVlBPXQo+ID4gPiA+IFsgICA1 Mi45MTcwMTFdIE5vIEFyZ3VtZW50cyBhcmUgaW5pdGlhbGl6ZWQgZm9yIG1ldGhvZCBbTlZQT10K PiA+ID4gPiBbICAgNTIuOTE3MDEyXSBBQ1BJIEVycm9yOiBNZXRob2QgcGFyc2UvZXhlY3V0aW9u IGZhaWxlZCBcX1NCLlBDSTAuUEVHMC5QRUdQLk5WUE8sIEFFX0FNTF9MT09QX1RJTUVPVVQgKDIw MTgxMDAzL3BzcGFyc2UtNTE2KQo+ID4gPiA+IFsgICA1Mi45MTcwNjNdIEFDUEkgRXJyb3I6IE1l dGhvZCBwYXJzZS9leGVjdXRpb24gZmFpbGVkIFxfU0IuUENJMC5QR09OLCBBRV9BTUxfTE9PUF9U SU1FT1VUICgyMDE4MTAwMy9wc3BhcnNlLTUxNikKPiA+ID4gPiBbICAgNTIuOTE3MDg0XSBBQ1BJ IEVycm9yOiBNZXRob2QgcGFyc2UvZXhlY3V0aW9uIGZhaWxlZCBcX1NCLlBDSTAuUEVHMC5QRzAw Ll9PTiwgQUVfQU1MX0xPT1BfVElNRU9VVCAoMjAxODEwMDMvcHNwYXJzZS01MTYpCj4gPiA+ID4g WyAgIDUyLjkxNzEwOF0gYWNwaSBkZXZpY2U6MDA6IEZhaWxlZCB0byBjaGFuZ2UgcG93ZXIgc3Rh dGUgdG8gRDAKPiA+ID4gCj4gPiA+IEhlcmUgaXQgc2VlbXMgdG8gZmFpbCB0byB0dXJuIG9uIHRo ZSBwb3dlciByZXNvdXJjZSBmb3IgdGhlIGRldmljZS4KPiA+ID4KPiA+ID4gPiBbICAgNTIuOTY5 Mjg3XSB2aWRlbyBMTlhWSURFTzowMDogQ2Fubm90IHRyYW5zaXRpb24gdG8gcG93ZXIgc3RhdGUg RDAgZm9yIHBhcmVudCBpbiAodW5rbm93bikKPiA+ID4gPiBbICAgNTIuOTY5Mjg5XSBwY2lfcmF3 X3NldF9wb3dlcl9zdGF0ZTogMiBjYWxsYmFja3Mgc3VwcHJlc3NlZAo+ID4gPiA+IFsgICA1Mi45 NjkyOTFdIG5vdXZlYXUgMDAwMDowMTowMC4wOiBSZWZ1c2VkIHRvIGNoYW5nZSBwb3dlciBzdGF0 ZSwgY3VycmVudGx5IGluIEQzCj4gPiA+ID4gWyAgIDUzLjAyOTUxNF0gdmlkZW8gTE5YVklERU86 MDA6IENhbm5vdCB0cmFuc2l0aW9uIHRvIHBvd2VyIHN0YXRlIEQwIGZvciBwYXJlbnQgaW4gKHVu a25vd24pCj4gPiA+ID4gWyAgIDUzLjA0MTAyN10gbm91dmVhdSAwMDAwOjAxOjAwLjA6IFJlZnVz ZWQgdG8gY2hhbmdlIHBvd2VyIHN0YXRlLCBjdXJyZW50bHkgaW4gRDMKPiA+ID4gPiBbICAgNTMu MDQxMDM1XSB2aWRlbyBMTlhWSURFTzowMDogQ2Fubm90IHRyYW5zaXRpb24gdG8gcG93ZXIgc3Rh dGUgRDAgZm9yIHBhcmVudCBpbiAodW5rbm93bikKPiA+ID4gPiBbICAgNTMuMDUzMDA4XSBub3V2 ZWF1IDAwMDA6MDE6MDAuMDogUmVmdXNlZCB0byBjaGFuZ2UgcG93ZXIgc3RhdGUsIGN1cnJlbnRs eSBpbiBEMwo+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IEFuZCB0aGVuIGtlcm5lbCBwcm9jZWVk cyB0byB0aHJvdyB1cCBlcnJvcnMgYXQgcmFuZG9tIHBsYWNlcywgZS5nLgo+ID4gPiA+IAo+ID4g PiA+IFsgICA2Ny4wMjE4OTJdIGNmZzgwMjExOiBmYWlsZWQgdG8gbG9hZCByZWd1bGF0b3J5LmRi Cj4gPiA+ID4gWyAgIDY3LjAyMTg5NV0gY2ZnODAyMTE6IGZhaWxlZCB0byBsb2FkIHJlZ3VsYXRv cnkuZGIKPiA+ID4gPiBbICAgNjcuMDIxODk3XSBjZmc4MDIxMTogZmFpbGVkIHRvIGxvYWQgcmVn dWxhdG9yeS5kYgo+ID4gPiA+IFsgICA2Ny4wMjE5MDBdIGNmZzgwMjExOiBmYWlsZWQgdG8gbG9h ZCByZWd1bGF0b3J5LmRiCj4gPiA+ID4gWyAgIDY3LjAyMTkyN10gY2ZnODAyMTE6IGZhaWxlZCB0 byBsb2FkIHJlZ3VsYXRvcnkuZGIKPiA+ID4gPiBbICAgNjcuMDIxOTI4XSBjZmc4MDIxMTogZmFp bGVkIHRvIGxvYWQgcmVndWxhdG9yeS5kYgo+ID4gPiA+IFsgICA2Ny4wMjE5MzJdIGNmZzgwMjEx OiBmYWlsZWQgdG8gbG9hZCByZWd1bGF0b3J5LmRiCj4gPiA+ID4gWyAgIDY3LjAyMTkzNF0gY2Zn ODAyMTE6IGZhaWxlZCB0byBsb2FkIHJlZ3VsYXRvcnkuZGIKPiA+ID4gPiBbICAgNjcuMDI0NDYz XSBjZmc4MDIxMTogZmFpbGVkIHRvIGxvYWQgcmVndWxhdG9yeS5kYgo+ID4gPiA+IFsgICA5OS45 ODA2MjVdIGl3bHdpZmkgMDAwMDowMDoxNC4zOiBFcnJvciBzZW5kaW5nIFNUQVRJU1RJQ1NfQ01E OiB0aW1lIG91dCBhZnRlciAyMDAwbXMuCj4gPiAKPiA+IEJUVyB0aGlzIG9uZSBtaWdodCBpbmRp Y2F0ZSB0aGF0IHNvbWVob3cgaXdsd2lmaSBnb3QgcG93ZXJlZAo+ID4gZG93biB0b28gc29tZWhv dy4gSXQncyBhdAo+ID4gCj4gPiAwMDoxNC4zIE5ldHdvcmsgY29udHJvbGxlcjogSW50ZWwgQ29y cG9yYXRpb24gV2lyZWxlc3MtQUMgOTU2MCBbSmVmZmVyc29uIFBlYWtdIChyZXYgMTApCj4gPiAK PiA+IHNvIHJlYWxseSBzaG91bGRuJ3QgYmUgYWZmZWN0ZWQsIGJ1dCBnbyBmaWd1cmUuIElmIGRy aXZlciByZWFsbHkgaXMgZ2V0dGluZwo+ID4gYWxsLW9uZXMgZnJvbSB0aGUgZGV2aWNlLCBpdCBq dXN0IG1pZ2h0IHRyeSB0byBwb2tlIGF0IGEgd3JvbmcgYjpkLmYgYnkgbWlzdGFrZQo+ID4gbWF5 YmUgLi4uCj4gCj4gT3IgaXQgdGhlIHBvd2VyIHJlc291cmNlIGlzIHNoYXJlZCBieSB3aWZpIGFz IHdlbGwuCgpJcyB0aGVyZSBhIHdheSB0byBmaW5kIG91dCB0aHJvdWdoIGUuZy4gc3lzZnM/Cgo+ ID4gPiA+IGZvbGxvd2VkIGJ5IHNvZnQgbG9ja3VwcyBhbmQgc29tZXRpbWVzIGhhcmQgbG9ja3Vw cyBpbiBwbGFjZXMKPiA+ID4gPiBsaWtlIGF0dGVtcHRzIHRvIHdhbGsgc2tiIGxpc3RzLgo+ID4g PiA+IAo+ID4gPiA+IEFkZGluZyBydW5wbT0wIGRvZXMgYXdheSB3aXRoIHRoaXMgaXNzdWUuCj4g PiA+ID4gCj4gPiA+ID4gVGhlIHNwZWNpZmljIHRlc3Qgd2FzIHdpdGggbm9hY2NlbD0xIC0gaXQg ZG9lcyBub3Qgc2VlbSB0byBjaGFuZ2UKPiA+ID4gPiB0aGluZ3MgZm9yIG1lLgo+ID4gPiA+IAo+ ID4gPiA+IEkgcG9rZWQgYXQgdGhlIEFDUEkgbWV0aG9kIE5WUE8gYW5kIHllcyBpdCBkb2VzIGFj dHVhbGx5Cj4gPiA+ID4gc2VlbSB0byBleGVjdXRlIGEgd2hpbGUgbG9vcCB3YWl0aW5nIGZvciBz b21lIHJlZ2lzdGVyCj4gPiA+ID4gdG8gYmVjb21lIDAuIFdoaWNoIEkgZ3Vlc3MgbmV2ZXIgaGFw cGVucz8gQmVjYXVzZSBjYXJkCj4gPiA+ID4gaXMgaW4gYSBsb3cgcG93ZXIgc3RhdGUgYW5kIHNv IHJlYWRzIHJldHVybiBmZmZmZmZmZiBtYXliZT8KPiA+ID4gCj4gPiA+IFllcywgaXQgY291bGQg YmUgdGhlIGNhc2UuCj4gPiA+IAo+ID4gPiA+IFggaXNuJ3QgaGFwcHkgZXZlbiB3aXRoIHJ1bnBt PTAgYnV0IHRoYXQgbWlnaHQgYmUgYSBkaWZmZXJlbnQKPiA+ID4gPiBpc3N1ZSAtIEkgdGhvdWdo dCBydW5wbT0wIG1pZ2h0IGJlIGFuIGVhc2llciBwbGFjZSB0byBzdGFydCBkZWJ1Z2dpbmcKPiA+ ID4gPiB0aGluZ3MgZ2l2ZW4gdGhlcmUgYXJlIGxvZ3Mgb2YgdGhlIGZhaWx1cmUuCj4gPiA+ID4g Cj4gPiA+ID4gVXNpbmcgNC4yMC4wLXJjMyByaWdodCBub3cuCj4gPiA+ID4gCj4gPiA+ID4gVXNl cnNwYWNlIGJpdHMgYXJlIGZyb20gZmVkb3JhIDI5Ogo+ID4gPiA+IHhvcmcteDExLWRydi1ub3V2 ZWF1LTEuMC4xNS02LmZjMjkueDg2XzY0Cj4gPiA+ID4gCj4gPiA+ID4gZmlybXdhcmUgaXMgcHJl dHR5IHJlY2VudDoKPiA+ID4gPiBsaW51eC1maXJtd2FyZS0yMDE4MTAwOC04OC5naXRjNmI2MjY1 ZC5mYzI5Lm5vYXJjaAo+ID4gPiA+IAo+ID4gPiA+IE1vcmUgaGludHMgZm9yIGRlYnVnZ2luZyB3 b3VsZCBiZSBhcHByZWNpYXRlZC4KPiA+ID4gPiBJZiBhbnlvbmUgd2FudHMgbWUgdG8gcGxheSB3 aXRoIGEgZGlmZmVyZW50IGtlcm5lbCB0cmVlLAo+ID4gPiA+IGxldCBtZSBrbm93Lgo+ID4gPiAK PiA+ID4gQ2FuIHlvdSBzaGFyZSBmdWxsIGRtZXNnIGFuZCBhY3BpZHVtcCBvZiB0aGUgc3lzdGVt PyBJIHdvdWxkIGxpa2UgdG8KPiA+ID4gY2hlY2sgdGhlIHBvd2VyIHJlc291cmNlIG1ldGhvZHMu Cj4gPiAKPiA+IFBscyBmaW5kIGl0IGFzIGFuIGF0dGFjaG1lbnQgaGVyZToKPiA+IGh0dHBzOi8v YnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODg3Mwo+ID4gCj4gPiBJZiB5 b3UgbGlrZSBJIGNhbiBzZW5kIGl0IHRvIHlvdSBkaXJlY3RseSB0b28gLQo+ID4gc3BhbW1pbmcg dGhlIGxpc3Qgd2l0aCBpdCBpc24ndCBoZWxwZnVsIEkgZ3Vlc3M/Cj4gCj4gTm8gbmVlZCB0byBz ZW5kLCBJIGNhbiByZWFkIGl0IGZyb20gdGhlIGJ1Z3ppbGxhIGp1c3QgZmluZS4gQ2FuIHlvdSBh dHRhY2gKPiBhY3BpZHVtcCB0aGVyZSBhcyB3ZWxsPwoKRG9uZS4gbHNwY2kgLXggdG9vIGp1c3Qg aW4gY2FzZS4KCi0tIApNU1QKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9ub3V2ZWF1 Cg==