From owner-freebsd-virtualization@freebsd.org Wed Mar 27 16:16:11 2019 Return-Path: Delivered-To: freebsd-virtualization@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 675791554082 for ; Wed, 27 Mar 2019 16:16:11 +0000 (UTC) (envelope-from crowston@protonmail.com) Received: from mail4.protonmail.ch (mail4.protonmail.ch [185.70.40.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.protonmail.ch", Issuer "SwissSign Server Silver CA 2014 - G22" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 38BE782A84; Wed, 27 Mar 2019 16:16:09 +0000 (UTC) (envelope-from crowston@protonmail.com) Date: Wed, 27 Mar 2019 16:15:54 +0000 To: Nick Wolff From: Robert Crowston Cc: "freebsd-virtualization@freebsd.org" , mmacy@freebsd.org Reply-To: Robert Crowston Subject: Re: GPU passthrough: mixed success on Linux, not yet on Windows Message-ID: In-Reply-To: References: Feedback-ID: 2OVbcR1yHYpdkD8cgQllkFwcuMVZg_LiVMMPvptooFDfHD_03MuQO4ZaF626jWHZYFEhNR2cmIbZ53j4QGWMBQ==:Ext:ProtonMail MIME-Version: 1.0 X-Spam-Status: No, score=-1.2 required=7.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mail.protonmail.ch X-Rspamd-Queue-Id: 38BE782A84 X-Spamd-Bar: ------- X-Spamd-Result: default: False [-7.73 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; HAS_REPLYTO(0.00)[crowston@protonmail.com]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[protonmail.com]; R_SPF_ALLOW(-0.20)[+ip4:185.70.40.0/24]; DKIM_TRACE(0.00)[protonmail.com:+]; MIME_BASE64_TEXT(0.10)[]; DMARC_POLICY_ALLOW(-0.50)[protonmail.com,quarantine]; MX_GOOD(-0.01)[cached: mailsec.protonmail.ch]; FREEMAIL_TO(0.00)[gmail.com]; RCVD_COUNT_ZERO(0.00)[0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+]; FREEMAIL_ENVFROM(0.00)[protonmail.com]; ASN(0.00)[asn:19905, ipnet:185.70.40.0/24, country:US]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_IN_DNSWL_LOW(-0.10)[27.40.70.185.list.dnswl.org : 127.0.5.1]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_DKIM_ALLOW(-0.20)[protonmail.com:s=default]; REPLYTO_EQ_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; NEURAL_HAM_SHORT(-0.97)[-0.975,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; FREEMAIL_REPLYTO(0.00)[protonmail.com]; HAS_PHPMAILER_SIG(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; IP_SCORE(-3.75)[ip: (-9.86), ipnet: 185.70.40.0/24(-4.90), asn: 19905(-3.92), country: US(-0.07)]; RCVD_TLS_ALL(0.00)[] Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Mar 2019 16:16:11 -0000 SSBhZGRlZCBzb21lIGxvZ2dpbmcgaW4gcHB0X3BjaV9yZXNldCgpIGFuZCBJIGNhbiBjb25maXJt IHRoZSBHUFUgaXMgaW5kZWVkIGN5Y2xlZCB0aHJvdWdoIHRoZSBEMyBzdGF0ZSBhdCB0aGUgYmVn aW5uaW5nIGFuZCBlbmQgb2YgdGhlIFZNIHNlc3Npb24uIEFGQUlLIHRoYXTigJlzIG9ubHkgRDMg aG90IHRob3VnaDsgZG9lcyBGcmVlQlNEIGhhdmUgc3VwcG9ydCBmb3IgRDMgY29sZD8KCk9uIFdl ZCwgTWFyIDI3LCAyMDE5IGF0IDE1OjQ4LCBOaWNrIFdvbGZmIDxkYXJrZmliZXJpcnVAZ21haWwu Y29tPiB3cm90ZToKCj4gSGkgUm9iZXJ0LAo+Cj4gU28gZm9yIHByb2JsZW0gMi8zIHlvdSBtYXkg d2FudCB0byBsb29rIGF0IHRoZSAgcHB0X3BjaV9yZXNldChkZXZpY2VfdCBkZXYpIGZ1bmN0aW9u IGluIHBwdC5jLiBJJ20gbm90IHN1cmUgd2h5IHRoaXMgaXNuJ3QgZGVhbGluZyB3aXRoIGJvdGgg b2YgeW91ciBwcm9ibGVtcy4gTWF0dCBNYWN5IG1heSBoYXZlIHNvbWUgaWRlYXMuCj4KPiBHcmVh dCB3b3JrIGJ5IHRoZSB3YXkKPgo+IFRoYW5rcywKPgo+IE5pY2sgV29sZmYKPgo+IE9uIFN1biwg TWFyIDE3LCAyMDE5IGF0IDEyOjIzIFBNIFJvYmVydCBDcm93c3RvbiB2aWEgZnJlZWJzZC12aXJ0 dWFsaXphdGlvbiA8ZnJlZWJzZC12aXJ0dWFsaXphdGlvbkBmcmVlYnNkLm9yZz4gd3JvdGU6Cj4K Pj4gSGkgZm9sa3MsIHRoaXMgaXMgbXkgZmlyc3QgcG9zdCB0byB0aGUgZ3JvdXAuIEFwb2xvZ2ll cyBmb3IgbGVuZ3RoLgo+Pgo+PiBJJ3ZlIGJlZW4gZXhwZXJpbWVudGluZyB3aXRoIEdQVSBwYXNz dGhyb3VnaCBvbiBiaHl2ZS4gRm9yIGJhY2tncm91bmQsIHRoZSBob3N0IHN5c3RlbSBpcyBGcmVl QlNEIDEyLjAtUkVMRUFTRSBvbiBhbiBBTUQgUnl6ZW4gMTcwMCBDUFUgQCAzLjggR0h6LCAzMiBH QiBvZiBFQ0MgUkFNLCB3aXRoIHR3byBuVmlkaWEgR1BVcy4gSSdtIHdvcmtpbmcgd2l0aCBhIExp bnV4IERlYmlhbiA5IGd1ZXN0IGFuZCBhIFdpbmRvd3MgU2VydmVyIDIwMTkgKGRlc2t0b3AgZXhw ZXJpZW5jZSBpbnN0YWxsZWQpIGd1ZXN0LiBJIGFsc28gaGF2ZSBhIFVTQiBjb250cm9sbGVyIHBh c3NlZC10aHJvdWdoIGZvciBibHVldG9vdGggYW5kIGtleWJvYXJkLgo+Pgo+PiBXaXRoIHNvbWUg dW5wbGVhc2FudCBoYWNrcyBJIGhhdmUgc3VjY2VlZGVkIGluIHN0YXJ0aW5nIFggb24gdGhlIExp bnV4IGd1ZXN0LCBwYXNzaW5nLXRocm91Z2ggYW4gblZpZGlhIEdUIDcxMCB1bmRlciB0aGUgbm91 dmVhdSBkcml2ZXIuIEkgY2FuIHJ1biB0aGUgIm1hdGUiIGRlc2t0b3AgYW5kIGdseGdlYXJzLCBi b3RoIG9mIHdoaWNoIGFyZSBzbW9vdGggYXQgNEsuIFRoZSBVbml0eSBIZWF2ZW4gYmVuY2htYXJr IHJ1bnMgYXQgYW4gZW1iYXJyYXNzaW5nIDAuMSBmcHMsIGFuZCAyMTYwcCB4MjY0IHZpZGVvIGlu IFZMQyBydW5zIGF0IGFib3V0IDUgZnBzLiBOZWl0aGVyIGFwcGVhcnMgdG8gYmUgQ1BVLWJvdW5k IGluIHRoZSBob3N0IG9yIHRoZSBndWVzdC4KPj4KPj4gVGhlIGhhY2sgSSBoYWQgdG8gbWFrZTog SSBmb3VuZCB0aGF0IG1hbnkgaW5zdHJ1Y3Rpb25zIHRvIGFjY2VzcyBtZW1vcnktbWFwcGVkIFBD SSBCQVJzIGFyZSBub3QgYmVpbmcgZXhlY3V0ZWQgb24gdGhlIENQVSBpbiBndWVzdCBtb2RlIGJ1 dCBhcmUgYmVpbmcgcGFzc2VkIGJhY2sgZm9yIGVtdWxhdGlvbiBpbiB0aGUgaHlwZXJ2aXNvci4g VGhpcyBjYXVzZXMgYW4gYXNzZXJ0aW9uIHRvIGZhaWwgaW5zaWRlIHBhc3N0aHJ1X3dyaXRlKCkg aW4gcGNpX3Bhc3N0aHJ1LmMgWyJwaS0+cGlfYmFyW2JhcmlkeF0udHlwZSA9PSBQQ0lCQVJfSU8i XSBiZWNhdXNlIGl0IGRvZXMgbm90IGV4cGVjdCB0byBwZXJmb3JtIG1lbW9yeS1tYXBwZWQgSU8g Zm9yIHRoZSBndWVzdC4gRXhhbWluaW5nIHRoZSB0by1iZS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMg aW4gdm1leGl0X2luc3RfZW11bCgpIHtlLmcuLCBtb3ZsICglcmRpKSwgJWVheH0sIHRoZXkgbG9v ayBiZW5pZ24gdG8gbWUsIGFuZCBJIGhhdmUgbm8gZXhwbGFuYXRpb24gZm9yIHdoeSB0aGUgQ1BV IHJlZnVzZWQgdG8gZXhlY3V0ZSB0aGVtIGluIGd1ZXN0IG1vZGUuCj4+Cj4+IEFzIGFuIGFtYXRl dXIgd29yay1hcm91bmQsIEkgcmVtb3ZlZCB0aGUgYXNzZXJ0aW9uIGFuZCBpbnN0ZWFkIEkgb2J0 YWluIHRoZSBkZXNpcmVkIG9mZnNldCBpbnRvIHRoZSBndWVzdCdzIEJBUiwgY2FsY3VsYXRlIHdo YXQgdGhhdCBndWVzdCBhZGRyZXNzIHRyYW5zbGF0ZXMgdG8gaW4gdGhlIGhvc3QncyBhZGRyZXNz IHNwYWNlLCBvcGVuKDIpIC9kZXYvbWVtLCBtbWFwKDIpIG92ZXIgdG8gdGhhdCBhZGRyZXNzLCBh bmQgcGVyZm9ybSB0aGUgd3JpdGUgZGlyZWN0bHkuIEkgZG8gYSBzaW1pbGFyIHRyaWNrIGluIHBh c3N0aHJ1X3JlYWQoKS4gVWdseSwgc2xvdywgYnV0IGZ1bmN0aW9uYWwuCj4+Cj4+IFRoaXMgY29k ZSBwYXRoIGlzIGFjY2Vzc2VkIGNvbnRpbnVvdXNseSB3aGV0aGVyIG9yIG5vdCBYIGlzIHJ1bm5p bmcsIHdpdGggYW4gaW5jcmVhc2UgaW4gYWN0aXZpdHkgd2hlbiBydW5uaW5nIGFueXRoaW5nIEdQ VS1oZWF2eS4gQWx3YXlzIHRvIGJhciAxLCBhbmQgbW9zdGx5IGFyb3VuZCB0aGUgc2FtZSBvZmZz ZXRzLiBJIGFkZGVkIHNvbWUgbG9nZ2luZyBvZiB0aGlzIGV2ZW50LiBJdCBydW5zIGF0IGFib3V0 IDEwMCBsaW5lcyBwZXIgc2Vjb25kIHdoaWxlIHBsYXlpbmcgdmlkZW8uIEFuIGV4Y2VycHQgaXM6 Cj4+IC4uLgo+PiBVbmV4cGVjdGVkIG91dC1vZi12bSBwYXNzdGhyb3VnaCB3cml0ZSAjNDkyMDM2 IHRvIGJhciAxIGF0IG9mZnNldCA0MTEwMC4KPj4gVW5leHBlY3RlZCBvdXQtb2Ytdm0gcGFzc3Ro cm91Z2ggd3JpdGUgIzQ5MjAzNyB0byBiYXIgMSBhdCBvZmZzZXQgNDExMDAuCj4+IFVuZXhwZWN0 ZWQgb3V0LW9mLXZtIHBhc3N0aHJvdWdoIHJlYWQgIzI3NjE2MiB0byBiYXIgMSBhdCBvZmZzZXQg NTYxMjgwLgo+PiBVbmV4cGVjdGVkIG91dC1vZi12bSBwYXNzdGhyb3VnaCB3cml0ZSAjNDkyMDM4 IHRvIGJhciAxIGF0IG9mZnNldCAzODAyOC4KPj4gVW5leHBlY3RlZCBvdXQtb2Ytdm0gcGFzc3Ro cm91Z2ggd3JpdGUgIzQ5MjAzOSB0byBiYXIgMSBhdCBvZmZzZXQgMzgwMjguCj4+IFVuZXhwZWN0 ZWQgb3V0LW9mLXZtIHBhc3N0aHJvdWdoIHJlYWQgIzI3NjE2MyB0byBiYXIgMSBhdCBvZmZzZXQg NTYxMTg0Lgo+PiBVbmV4cGVjdGVkIG91dC1vZi12bSBwYXNzdGhyb3VnaCByZWFkICMyNzYxNjQg dG8gYmFyIDEgYXQgb2Zmc2V0IDU2MTE4NC4KPj4gVW5leHBlY3RlZCBvdXQtb2Ytdm0gcGFzc3Ro cm91Z2ggcmVhZCAjMjc2MTY1IHRvIGJhciAxIGF0IG9mZnNldCA1NjExODQuCj4+IFVuZXhwZWN0 ZWQgb3V0LW9mLXZtIHBhc3N0aHJvdWdoIHJlYWQgIzI3NjE2NiB0byBiYXIgMSBhdCBvZmZzZXQg NTYxMTg0Lgo+PiAuLi4KPj4KPj4gU28gbXkgcXVlc3Rpb24gaGVyZSBpcywKPj4gMS4gSG93IGRv IEkgZGlhZ25vc2Ugd2h5IHRoZSBpbnN0cnVjdGlvbnMgYXJlIG5vdCBiZWluZyBleGVjdXRlZCBp biBndWVzdCBtb2RlPwo+Pgo+PiBTb21lIG90aGVyIHByb2JsZW1zOgo+Pgo+PiAyLiBPbmNlIHRo ZSB2aXJ0dWFsIG1hY2hpbmUgaXMgc2h1dCBkb3duLCB0aGUgcGFzc2VkLXRocm91Z2ggR1BVIGRv ZXNuJ3QgZ2V0IHR1cm5lZCBvZmYuIFdoYXRldmVyIG1lc3NhZ2Ugd2FzIG9uIHRoZSBzY3JlZW4g aW4gdGhlIGZpbmFsIHRocm9lcyBvZiBMaW51eCdzIHNodXRkb3duIHN0YXlzIHRoZXJlLiBNYXli ZSB0aGVyZSBpcyBhIHNwZWNpZmljIGRldGFjaCBjb21tYW5kIHdoaWNoIGJoeXZlIG9yIG5vdXZl YXUgaGFzbid0IHlldCBpbXBsZW1lbnRlZD8gQWx0ZXJuYXRpdmVseSwgbWF5YmUgSSBjb3VsZCBl eHBsb2l0IHNvbWUgcG93ZXIgbWFuYWdlbWVudCBmZWF0dXJlIHRvIHJlc2V0IHRoZSBjYXJkIHdo ZW4gYmh5dmUgZXhpdHMuCj4+Cj4+IDMuIEl0IGlzIG5vdCBwb3NzaWJsZSB0byByZWJvb3QgdGhl IGd1ZXN0IGFuZCB0aGVuIHN0YXJ0IFggYWdhaW4gd2l0aG91dCBhbiBpbnRlcnZlbmluZyBob3N0 IHJlYm9vdC4gVGhlIHRleHQgY29uc29sZSB3b3JrcyBmaW5lLiBYb3JnLjAubG9nIGhhcyBhIG1l c3NhZ2UgbGlrZQo+PiAgICAgKEVFKSBbZHJtXSBGYWlsZWQgdG8gb3BlbiBEUk0gZGV2aWNlIGZv ciBwY2k6MDAwMDowMDowNi4wOiAtMTkKPj4gICAgIChFRSkgb3BlbiAvZGV2L2RyaS9jYXJkMDog Tm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQo+PiBkbWVzZyBpcyBub3QgdmVyeSBoZWxwZnVsIGVp dGhlci5bMF0gSSBzdXNwZWN0IHRoYXQgdGhpcyBpcyByZWxhdGVkIHRvIHByb2JsZW0gKDIpLgo+ Pgo+PiA0LiBUaGVyZSBpcyBhIGtub3duIGJ1ZyBpbiB0aGUgdmVyc2lvbiBvZiB0aGUgWG9yZyBz ZXJ2ZXIgdGhhdCBzaGlwcyB3aXRoIERlYmlhbiA5LCB3aGVyZSB0aGUgc3dpdGNoIGZyb20gYW4g YW5pbWF0ZWQgbW91c2UgY3Vyc29yIGJhY2sgdG8gYSBzdGF0aWMgY3Vyc29yIGNhdXNlcyB0aGUg WCBzZXJ2ZXIgdG8gc2l0IGluIGEgYnVzeSBsb29wIG9mIGdyYWR1YWxseSBpbmNyZWFzaW5nIHN0 YWNrIGRlcHRoLCBpZiB0aGUgR1BVIHRha2VzIHRvbyBsb25nIHRvIGNvbW11bmljYXRlIHdpdGgg dGhlIGRyaXZlci5bMV0gRm9yIG1lLCB0aGlzIGNvbnNpc3RlbnRseSBoYXBwZW5zIGFmdGVyIEkg dHlwZSBteSBwYXNzd29yZCBpbnRvIHRoZSBEZWJpYW4gbG9naW4gZGlhbG9nIGJveCBhbmQgZXZl bnR1YWxseSAofiAxMjAgbWludXRlcykgbG9ja3MgdXAgdGhlIGhvc3QgYnkgZWF0aW5nIGFsbCB0 aGUgc3dhcC4gQSB3b3JrLWFyb3VuZCBpcyB0byByZXBsYWNlIHRoZSBndWVzdCdzIGFuaW1hdGVk IGN1cnNvcnMgd2l0aCBzdGF0aWMgY3Vyc29ycy4gVGhlIGJ1ZyBpcyBmaXhlZCBpbiBuZXdlciB2 ZXJzaW9ucyBvZiBYLCBidXQgSSBoYXZlbid0IHRlc3RlZCB3aGV0aGVyIHRoZWlyIGZpeCB3b3Jr cyBmb3IgbWUgeWV0Lgo+Pgo+PiA1LiBUaGUgR1BVIGRvZXNuJ3QgY29tZSB0byBsaWZlIHVudGls IHRoZSBub3V2ZWF1IGRyaXZlciBraWNrcyBpbi4gV2hhdCBpcyBzcGVjaWFsIGFib3V0IHRoZSBk cml2ZXI/IFdoeSBkb2Vzbid0IHRoZSBVRUZJIG9wZW4gdGhlIEdQVSBhbmQgc2VuZCBpdCBvdXRw dXQgYmVmb3JlIHRoZSBib290PyBBbnkgaWRlYSBpZiB0aGUgcHJvYmxlbSBpcyBvbiB0aGUgVUVG SSBzaWRlIG9yIHRoZSBoeXBlcnZpc29yIHNpZGU/Cj4+Cj4+IDYuIE9uIFdpbmRvd3MsIHRoZSB3 YXkgV2luZG93cyBwcm9iZXMgbXVsdGktQkFSIGRldmljZXMgc2VlbXMgdG8gYmUgaW5jb25zaXN0 ZW50IHdpdGggYmh5dmUncyBtb2RlbCBmb3Igc3RvcmluZyBpbyBtZW1vcnkgbWFwcGluZ3MuIFNw ZWNpZmljYWxseSwgSSBiZWxpZXZlIFdpbmRvd3MgYXNzaWducyB0aGUgMHhmZmZmZmZmZiBzZW50 aW5lbCB0byBhbGwgQkFScyBvbiBhIGRldmljZSBpbiBvbmUgc2hvdCwgdGhlbiByZWFkcyB0aGVt IGJhY2sgYW5kIGFzc2lnbnMgdGhlIHRydWUgYWRkcmVzc2VzIGFmdGVyd2FyZHMuIEhvd2V2ZXIs IGJoeXZlIHNlZXMgdGhlIG11bHRpcGxlIDB4ZmZmZmZmZmYgYXNzaWdubWVudHMgdG8gZGlmZmVy ZW50IEJBUnMgYXMgYSBjbGFzaCBhbmQgZXJyb3JzIG91dCBvbiB0aGUgc2Vjb25kIEJBUiBwcm9i ZS4gSSByZW1vdmVkIG1vc3Qgb2YgdGhlIG1taW9fcmJfdHJlZSBlcnJvciBoYW5kbGluZyBpbiBt ZW0uYyBhbmQgdGhpcyBpcyBzdWZmaWNpZW50IGZvciBXaW5kb3dzIHRvIGJvb3QsIGFuZCBkZXRl Y3QgYW5kIGNvcnJlY3RseSBpZGVudGlmeSB0aGUgR1BVLiAoQSBiZXR0ZXIgc29sdXRpb24gbWln aHQgYmUgdG8gaGFuZGxlIHRoZSBpbml0aWFsIDB4ZmZmZmZmZmYgd3JpdGUgYXMgYSBzcGVjaWFs IGNhc2UuKSBJIGNhbiB0aGVuIGluc3RhbGwgdGhlIG9mZmljaWFsIG5WaWRpYSBkcml2ZXJzIHdp dGhvdXQgcHJvYmxlbSBvdmVyIFJlbW90ZSBEZXNrdG9wLiBIb3dldmVyLCB0aGUgR1BVIG5ldmVy IHNwcmluZ3MgaW50byBsaWZlOiBJIGFtIHN0dWNrIHdpdGggYSAiV2luZG93cyBoYXMgc3RvcHBl ZCB0aGlzIGRldmljZSBiZWNhdXNlIGl0IGhhcyByZXBvcnRlZCBwcm9ibGVtcy4gKENvZGUgNDMp IiBlcnJvciBpbiB0aGUgZGV2aWNlIG1hbmFnZXIsIGEgYmxhbmsgc2NyZWVuLCBhbmQgbm90IG11 Y2ggZWxzZSB0byBnbyBvbi4KPj4KPj4gSXMgaXQgd29ydGggbWUgY29udGludWluZyB0byBoYWNr IGF3YXkgYXQgdGhlc2UgcHJvYmxlbXMtLS1vZiBjb3Vyc2UgSSdtIGhhcHB5IHRvIHNoYXJlIGFu eXRoaW5nIEkgY29tZSB1cCB3aXRoLS0tb3IgaXMgdGhlcmUgYW4gb2ZmaWNpYWwgc29sdXRpb24g dG8gR1BVIHN1cHBvcnQgaW4gdGhlIHBpcGUgYWJvdXQgdG8gbWFrZSBteSBlZmZvcnRzIHJlZHVu ZGFudCA6KT8KPj4KPj4gVGhhbmtzLAo+PiBSb2JlcnQgQ3Jvd3N0b24uCj4+Cj4+IC0tLQo+PiBG b290bm90ZXMKPj4KPj4gWzBdICBEaWZmJ2luZyBkbWVzZyBhZnRlciBzdWNjZXNzZnVsIEdQVSBp bml0aWFsaXphdGlvbiAoKykgYW5kIGFmdGVyIGZhaWx1cmUgKC0pLCBhbmQgY3V0dGluZyBvdXQg c29tZSBsaW5lcyB0aGF0IGFyZW4ndCByZWxldmFudDoKPj4gIG5vdXZlYXUgMDAwMDowMDowNi4w OiBiaW9zOiB2ZXJzaW9uIDgwLjI4LmE2LjAwLjEwCj4+ICtub3V2ZWF1IDAwMDA6MDA6MDYuMDog cHJpdjogSFVCMDogMDg1MDE0IGZmZmZmZmZmICgxZjcwODIwYikKPj4gIG5vdXZlYXUgMDAwMDow MDowNi4wOiBmYjogMTAyNCBNaUIgRERSMwo+PiBAQCAtNDY2LDI0ICs0NjcsMTcgQEAKPj4gIG5v dXZlYXUgMDAwMDowMDowNi4wOiBEUk06IERDQiBjb25uIDAwOiAwMDAwMTAzMQo+PiAgbm91dmVh dSAwMDAwOjAwOjA2LjA6IERSTTogRENCIGNvbm4gMDE6IDAwMDAyMTYxCj4+ICBub3V2ZWF1IDAw MDA6MDA6MDYuMDogRFJNOiBEQ0IgY29ubiAwMjogMDAwMDAyMDAKPj4gLW5vdXZlYXUgMDAwMDow MDowNi4wOiBkaXNwOiBjaGlkIDAgbXRoZCAwMDAwIGRhdGEgMDAwMDA0MDAgMDAwMDEwMDAgMDAw MDAwMDIKPj4gLW5vdXZlYXUgMDAwMDowMDowNi4wOiB0aW1lb3V0IGF0IC9idWlsZC9saW51eC1V RUFENnMvbGludXgtNC45LjE0NC9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9k aXNwL2RtYWNnZjExOS5jOjg4L2dmMTE5X2Rpc3BfZG1hY19pbml0KCkhCj4+IC1ub3V2ZWF1IDAw MDA6MDA6MDYuMDogZGlzcDogY2ggMSBpbml0OiBjMjA3MDA5Ygo+PiAtbm91dmVhdTogRFJNOjAw MDAwMDAwOjAwMDA5MjdjOiBpbml0IGZhaWxlZCB3aXRoIC0xNgo+PiAtbm91dmVhdSAwMDAwOjAw OjA2LjA6IHRpbWVvdXQgYXQgL2J1aWxkL2xpbnV4LVVFQUQ2cy9saW51eC00LjkuMTQ0L2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2Rpc3AvZG1hY2dmMTE5LmM6NTQvZ2YxMTlf ZGlzcF9kbWFjX2ZpbmkoKSEKPj4gLW5vdXZlYXUgMDAwMDowMDowNi4wOiBkaXNwOiBjaCAxIGZp bmk6IGMyMDcxMDg4Cj4+IC1ub3V2ZWF1IDAwMDA6MDA6MDYuMDogdGltZW91dCBhdCAvYnVpbGQv bGludXgtVUVBRDZzL2xpbnV4LTQuOS4xNDQvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9l bmdpbmUvZGlzcC9kbWFjZ2YxMTkuYzo1NC9nZjExOV9kaXNwX2RtYWNfZmluaSgpIQo+PiAtbm91 dmVhdSAwMDAwOjAwOjA2LjA6IGRpc3A6IGNoIDEgZmluaTogYzIwNzEwODgKPj4gK1tkcm1dIFN1 cHBvcnRzIHZibGFuayB0aW1lc3RhbXAgY2FjaGluZyBSZXYgMiAoMjEuMTAuMjAxMykuCj4+ICtb ZHJtXSBEcml2ZXIgc3VwcG9ydHMgcHJlY2lzZSB2YmxhbmsgdGltZXN0YW1wIHF1ZXJ5Lgo+PiAr bm91dmVhdSAwMDAwOjAwOjA2LjA6IERSTTogTU06IHVzaW5nIENPUFkgZm9yIGJ1ZmZlciBjb3Bp ZXMKPj4gK25vdXZlYXUgMDAwMDowMDowNi4wOiBEUk06IGFsbG9jYXRlZCAxOTIweDEwODAgZmI6 IDB4NjAwMDAsIGJvIGZmZmY5NmZkYjM5YTE4MDAKPj4gK2ZiY29uOiBub3V2ZWF1ZmIgKGZiMCkg aXMgcHJpbWFyeSBkZXZpY2UKPj4gLW5vdXZlYXUgMDAwMDowMDowNi4wOiB0aW1lb3V0IGF0IC9i dWlsZC9saW51eC1VRUFENnMvbGludXgtNC45LjE0NC9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u dmttL2VuZ2luZS9kaXNwL2NvcmVnZjExOS5jOjE4Ny9nZjExOV9kaXNwX2NvcmVfZmluaSgpCj4+ IC1ub3V2ZWF1IDAwMDA6MDA6MDYuMDogZGlzcDogY29yZSBmaW5pOiA4ZDBmMDA4OAo+PiAtW1RU TV0gRmluYWxpemluZyBwb29sIGFsbG9jYXRvcgo+PiAtW1RUTV0gRmluYWxpemluZyBETUEgcG9v bCBhbGxvY2F0b3IKPj4gLVtUVE1dIFpvbmUgIGtlcm5lbDogVXNlZCBtZW1vcnkgYXQgZXhpdDog MCBraUIKPj4gLVtUVE1dIFpvbmUgICBkbWEzMjogVXNlZCBtZW1vcnkgYXQgZXhpdDogMCBraUIK Pj4gLW5vdXZlYXU6IHByb2JlIG9mIDAwMDA6MDA6MDYuMCBmYWlsZWQgd2l0aCBlcnJvciAtMTYK Pj4gK0NvbnNvbGU6IHN3aXRjaGluZyB0byBjb2xvdXIgZnJhbWUgYnVmZmVyIGRldmljZSAyNDB4 NjcKPj4gK25vdXZlYXUgMDAwMDowMDowNi4wOiBmYjA6IG5vdXZlYXVmYiBmcmFtZSBidWZmZXIg ZGV2aWNlCj4+ICtbZHJtXSBJbml0aWFsaXplZCBub3V2ZWF1IDEuMy4xIDIwMTIwODAxIGZvciAw MDAwOjAwOjA2LjAgb24gbWlub3IgMAo+Pgo+PiBbMV0gaHR0cHM6Ly9kZXZ0YWxrLm52aWRpYS5j b20vZGVmYXVsdC90b3BpYy8xMDI4MTcyL2xpbnV4L3RpdGFuLXYtdWJ1bnR1LTE2LTA0bHRzLWFu ZC0zODctMzQtZHJpdmVyLWNyYXNoZXMtYmFkbHkvcG9zdC81MjMwODk4LyM1MjMwODk4Cj4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGZyZWVic2Qt dmlydHVhbGl6YXRpb25AZnJlZWJzZC5vcmcgbWFpbGluZyBsaXN0Cj4+IGh0dHBzOi8vbGlzdHMu ZnJlZWJzZC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlYnNkLXZpcnR1YWxpemF0aW9uCj4+IFRv IHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJmcmVlYnNkLXZpcnR1YWxpemF0aW9uLXVu c3Vic2NyaWJlQGZyZWVic2Qub3JnIg==