From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79EE7C433DB for ; Fri, 5 Mar 2021 19:12:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 46E5D650AC for ; Fri, 5 Mar 2021 19:12:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230052AbhCETMV (ORCPT ); Fri, 5 Mar 2021 14:12:21 -0500 Received: from mta-02.yadro.com ([89.207.88.252]:43214 "EHLO mta-01.yadro.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S230053AbhCETMP (ORCPT ); Fri, 5 Mar 2021 14:12:15 -0500 Received: from localhost (unknown [127.0.0.1]) by mta-01.yadro.com (Postfix) with ESMTP id 4FE5A41292; Fri, 5 Mar 2021 19:12:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=yadro.com; h= mime-version:content-transfer-encoding:content-id:content-type :content-type:content-language:accept-language:in-reply-to :references:message-id:date:date:subject:subject:from:from :received:received:received:received; s=mta-01; t=1614971532; x= 1616785933; bh=gY+PANKt4UItfjZ7Y8pLH0gFEQSMOXLzwWgXVzHjEsw=; b=t uTNt5W9PATEMKcLYTgoAopE8BM0e6LgwhcyGP7Ua+Yqg8Cyqebx+bFqPATH6QG8p DEIFlPIE00ZruSO/cYPP6Z4acYM6kDBWmJe/AtWe/+CDnEhAhYnQu+dMJATRUlk4 o7aoAF+Gz/Bax5U6khkOHb0EJtsXvwRieT3jshT45c= X-Virus-Scanned: amavisd-new at yadro.com Received: from mta-01.yadro.com ([127.0.0.1]) by localhost (mta-01.yadro.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oM9-cFnJTPld; Fri, 5 Mar 2021 22:12:12 +0300 (MSK) Received: from T-EXCH-03.corp.yadro.com (t-exch-03.corp.yadro.com [172.17.100.103]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mta-01.yadro.com (Postfix) with ESMTPS id 31E4A41283; Fri, 5 Mar 2021 22:12:11 +0300 (MSK) Received: from T-EXCH-03.corp.yadro.com (172.17.100.103) by T-EXCH-03.corp.yadro.com (172.17.100.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.32; Fri, 5 Mar 2021 22:12:11 +0300 Received: from T-EXCH-03.corp.yadro.com ([fe80::39f4:7b05:b1d3:5272]) by T-EXCH-03.corp.yadro.com ([fe80::39f4:7b05:b1d3:5272%14]) with mapi id 15.01.0669.032; Fri, 5 Mar 2021 22:12:11 +0300 From: Sergei Miroshnichenko To: "andrey.grodzovsky@amd.com" CC: "Alexander.Deucher@amd.com" , "Christian.Koenig@amd.com" , "anatoli.antonovitch@amd.com" , "helgaas@kernel.org" , "linux-pci@vger.kernel.org" , "linux@yadro.com" Subject: Re: Question about supporting AMD eGPU hot plug case Thread-Topic: Question about supporting AMD eGPU hot plug case Thread-Index: AQHW+OZCLrcKjeWn9U26wbGoIrW3kKpDtUMAgAMa8QCAAZA8AIAHl62AgAGbQTWAAcXUAIABBq+AgAgRTACAAdG764AF+qGAgAOCQVGAABswAIAAiN+AgADALoCAAM2HAIAKSU2AgAFUg4CAABJUgIAAIReA Date: Fri, 5 Mar 2021 19:12:11 +0000 Message-ID: <98ac52f982409e22fbd6e6659e2724f9b1f2fafd.camel@yadro.com> References: <9c41221f-ecfa-5554-f2ea-6f72cfe7dc7e@amd.com> <7d9e947648ce47a4ba8d223cdec08197@yadro.com> <340062dba82b813b311b2c78022d2d3d0e6f414d.camel@yadro.com> <927d7fbe-756f-a4f1-44cd-c68aecd906d7@amd.com> <8f53f1403f0c4121885398487bbfa241@yadro.com> <50afd1079dbabeba36fd35fdef84e6e15470ef45.camel@yadro.com> <8d7e2d7b7982d8d78c0ecaa74b9d40ace4db8453.camel@yadro.com> <1647946cb73ae390b40a593bb021699308bab33e.camel@yadro.com> <3873f1ee-1cec-1740-4238-a154dd670d62@amd.com> In-Reply-To: <3873f1ee-1cec-1740-4238-a154dd670d62@amd.com> Accept-Language: en-US, ru-RU Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [172.17.15.136] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org T24gRnJpLCAyMDIxLTAzLTA1IGF0IDEyOjEzIC0wNTAwLCBBbmRyZXkgR3JvZHpvdnNreSB3cm90 ZToNCj4gDQo+IE9uIDIwMjEtMDMtMDUgMTE6MDggYS5tLiwgU2VyZ2VpIE1pcm9zaG5pY2hlbmtv IHdyb3RlOg0KPiA+IE9uIFRodSwgMjAyMS0wMy0wNCBhdCAxNDo0OSAtMDUwMCwgQW5kcmV5IEdy b2R6b3Zza3kgd3JvdGU6DQo+ID4gPiArIGxpbnV4LXBjaQ0KPiA+ID4gDQo+ID4gPiBPbiAyMDIx LTAyLTI2IDE6NDQgYS5tLiwgU2VyZ2VpIE1pcm9zaG5pY2hlbmtvIHdyb3RlOg0KPiA+ID4gPiBP biBUaHUsIDIwMjEtMDItMjUgYXQgMTM6MjggLTA1MDAsIEFuZHJleSBHcm9kem92c2t5IHdyb3Rl Og0KPiA+ID4gPiA+IE9uIDIwMjEtMDItMjUgMjowMCBhLm0uLCBTZXJnZWkgTWlyb3NobmljaGVu a28gd3JvdGU6DQo+ID4gPiA+ID4gPiBPbiBXZWQsIDIwMjEtMDItMjQgYXQgMTc6NTEgLTA1MDAs IEFuZHJleSBHcm9kem92c2t5IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiBPbiAyMDIxLTAyLTI0IDE6 MjMgcC5tLiwgU2VyZ2VpIE1pcm9zaG5pY2hlbmtvIHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+IC4u Lg0KPiA+ID4gPiA+ID4gPiBBcmUgeW91IHNheWluZyB0aGF0IGV2ZW4gd2l0aG91dCBob3QtcGx1 Z2dpbmcsIHdoaWxlIGJvdGgNCj4gPiA+ID4gPiA+ID4gbnZtZQ0KPiA+ID4gPiA+ID4gPiBhbmQN Cj4gPiA+ID4gPiA+ID4gQU1EDQo+ID4gPiA+ID4gPiA+IGNhcmQgYXJlIHByZXNlbnQNCj4gPiA+ ID4gPiA+ID4gcmlnaHQgZnJvbSBib290LCB5b3Ugc3RpbGwgZ2V0IEJBUnMgbW92aW5nIGFuZCBN TUlPDQo+ID4gPiA+ID4gPiA+IHJhbmdlcw0KPiA+ID4gPiA+ID4gPiByZWFzc2lnbmVkDQo+ID4g PiA+ID4gPiA+IGZvciBOVk1FIEJBUnMNCj4gPiA+ID4gPiA+ID4ganVzdCBiZWNhdXNlIGFtZGdw dSBkcml2ZXIgd2lsbCBzdGFydCByZXNpemUgb2YgQU1EIGNhcmQNCj4gPiA+ID4gPiA+ID4gQkFS cw0KPiA+ID4gPiA+ID4gPiBhbmQNCj4gPiA+ID4gPiA+ID4gdGhpcw0KPiA+ID4gPiA+ID4gPiB3 aWxsIHRyaWdnZXIgTlZNRXMgQkFScyBtb3ZlIHRvDQo+ID4gPiA+ID4gPiA+IGFsbG93IEFNRCBj YXJkIEJBUnMgdG8gY292ZXIgZnVsbCByYW5nZSBvZiBWSURFTyBSQU0gPw0KPiA+ID4gPiA+ID4g WWVzLiBVbmNvbmRpdGlvbmFsbHksIGJlY2F1c2UgaXQgaXMgdW5rbm93biBiZWZvcmVoYW5kIGlm DQo+ID4gPiA+ID4gPiBOVk1lJ3MNCj4gPiA+ID4gPiA+IEJBUg0KPiA+ID4gPiA+ID4gbW92ZW1l bnQgd2lsbCBoZWxwLiBJbiB0aGlzIHBhcnRpY3VsYXIgY2FzZSBCQVIgbW92ZW1lbnQgaXMNCj4g PiA+ID4gPiA+IG5vdA0KPiA+ID4gPiA+ID4gbmVlZGVkLA0KPiA+ID4gPiA+ID4gYnV0IGlzIGRv bmUgYW55d2F5Lg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBCQVJzIGFyZSBub3QgbW92ZWQg b25lIGJ5IG9uZSwgYnV0IHRoZSBrZXJuZWwgcmVsZWFzZXMgYWxsDQo+ID4gPiA+ID4gPiB0aGUN Cj4gPiA+ID4gPiA+IHJlbGVhc2FibGUgb25lcywgYW5kIHRoZW4gcmVjYWxjdWxhdGVzIGEgbmV3 IEJBUiBsYXlvdXQgdG8NCj4gPiA+ID4gPiA+IGZpdA0KPiA+ID4gPiA+ID4gdGhlbQ0KPiA+ID4g PiA+ID4gYWxsLiBLZXJuZWwncyBhbGdvcml0aG0gaXMgZGlmZmVyZW50IGZyb20gQklPUydzLCBz byBOVk1FDQo+ID4gPiA+ID4gPiBoYXMNCj4gPiA+ID4gPiA+IGFwcGVhcmVkDQo+ID4gPiA+ID4g PiBhdCBhIG5ldyBwbGFjZS4NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gVGhpcyBpcyB0cmln Z2VyZWQgYnkgZm9sbG93aW5nOg0KPiA+ID4gPiA+ID4gLSBhdCBib290LCBpZiBCSU9TIGhhZCBh c3NpZ25lZCBub3QgZXZlcnkgQkFSOw0KPiA+ID4gPiA+ID4gLSBkdXJpbmcgcGNpX3Jlc2l6ZV9y ZXNvdXJjZSgpOw0KPiA+ID4gPiA+ID4gLSBkdXJpbmcgcGNpX3Jlc2Nhbl9idXMoKSAtLSBhZnRl ciBhIHBjaWVocCBldmVudCBvciBhDQo+ID4gPiA+ID4gPiBtYW51YWwNCj4gPiA+ID4gPiA+IHZp YQ0KPiA+ID4gPiA+ID4gc3lzZnMuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gQnkgbWFudWFsIHZp YSBzeXNmcyB5b3UgbWVhbiBzb21ldGhpbmcgbGlrZSB0aGlzIC0gJ2VjaG8gMSA+DQo+ID4gPiA+ ID4gL3N5cy9idXMvcGNpL2RyaXZlcnMvYW1kZ3B1LzAwMDBcOjBjXDowMC4wL3JlbW92ZSAmJiBl Y2hvIDEgPg0KPiA+ID4gPiA+IC9zeXMvYnVzL3BjaS9yZXNjYW4gJyA/IEkgYW0gbG9va2luZyBp bnRvIGhvdyBtb3N0IHJlbGlhYmx5DQo+ID4gPiA+ID4gdHJpZ2dlcg0KPiA+ID4gPiA+IFBDSQ0K PiA+ID4gPiA+IGNvZGUgdG8gY2FsbCBteSBjYWxsYmFja3MgZXZlbiB3aXRob3V0IGhhdmluZyBl eHRlcm5hbCBQQ0kNCj4gPiA+ID4gPiBjYWdlDQo+ID4gPiA+ID4gZm9yDQo+ID4gPiA+ID4gR1BV DQo+ID4gPiA+ID4gKHdpbGwgdGFrZSBtZSBzb21lIHRpbWUgdG8gZ2V0IGl0KS4NCj4gPiA+ID4g DQo+ID4gPiA+IFllYWgsIHRoaXMgaXMgb3VyIHdheSB0byBnbyB3aGVuIGEgZGV2aWNlIGNhbid0 IGJlIHBoeXNpY2FsbHkNCj4gPiA+ID4gcmVtb3ZlZA0KPiA+ID4gPiBvciB1bnBvd2VyZWQgcmVt b3RlbHkuIFdpdGgganVzdCBhIGJpdCBzaG9ydGVyIHBhdGg6DQo+ID4gPiA+IA0KPiA+ID4gPiAg ICAgc3VkbyBzaCAtYyAnZWNobyAxID4NCj4gPiA+ID4gL3N5cy9idXMvcGNpL2RldmljZXMvMDAw MFw6MGNcOjAwLjAvcmVtb3ZlJw0KPiA+ID4gPiAgICAgc3VkbyBzaCAtYyAnZWNobyAxID4gL3N5 cy9idXMvcGNpL3Jlc2NhbicNCj4gPiA+ID4gDQo+ID4gPiA+IE9yLCBqdXN0IGEgc2Vjb25kIGNv bW1hbmQgKHJlc2NhbikgaXMgZW5vdWdoOiBhIEJBUiBtb3ZlbWVudA0KPiA+ID4gPiBhdHRlbXB0 DQo+ID4gPiA+IHdpbGwgYmUgdHJpZ2dlcmVkIGV2ZW4gaWYgdGhlcmUgd2VyZSBubyBjaGFuZ2Vz IGluIFBDSQ0KPiA+ID4gPiB0b3BvbG9neS4NCj4gPiA+ID4gDQo+ID4gPiA+IFNlcmdlDQo+ID4g PiA+IA0KPiA+ID4gDQo+ID4gPiBIaSBTZWdyZWkNCj4gPiA+IA0KPiA+ID4gSGVyZSBpcyBhIGxp bmsgdG8gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvbiB0b3Agb2YgeW91ciB0cmVlDQo+ID4gPiAo bW92YWJsZV9iYXJzX3Y5LjEpIC0NCj4gPiA+IGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtzLnByb3Rl Y3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwczolMkYlMkZjZ2l0LmZyZWVkZXNrdG9wLm9yZyUy Rn5hZ3JvZHpvdiUyRmxpbnV4JTJGY29tbWl0JTJGJTNGaCUzRHlhZHJvJTJGcGNpZV9ob3RwbHVn JTJGbW92YWJsZV9iYXJzX3Y5LjElMjZpZCUzRDA1ZDZhYmNlZWQ2NTAxODFiYjdmZTBhNDk4ODRh MjZlMzc4YjkwOGUmYW1wO2RhdGE9MDQlN0MwMSU3Q2FuZHJleS5ncm9kem92c2t5JTQwYW1kLmNv bSU3QzYzN2JmM2FhYjM2MzRhYjY5ZGM2MDhkOGRmZjBlMGIxJTdDM2RkODk2MWZlNDg4NGU2MDhl MTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzUwNTU3Mjk1ODU2NTMzMiU3Q1Vua25vd24lN0NU V0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklr MWhhV3dpTENKWFZDSTZNbjAlM0QlN0MxMDAwJmFtcDtzZGF0YT0lMkYydXJiWHFDTE16WkJLZTBs VHlBZmhncURxRHhpT1pOMDRSOUxUVnh2STAlM0QmYW1wO3Jlc2VydmVkPTANCj4gPiA+IEkgYW0g YWJsZSB0byBwYXNzIG9uZSByZS1zY2FuIGN5Y2xlIGFuZCBjYW4gdXNlIHRoZSBjYXJkDQo+ID4g PiBhZnRlcndhcmRzDQo+ID4gPiAoc2VlDQo+ID4gPiBsb2cxLmxvZykuDQo+ID4gPiBCdXQsIGFj Y29yZGluZyB0byB5b3VyIHByaW50cyBvbmx5IEJBUjUgd2hpY2ggaXMgcmVnaXN0ZXJzIEJBUg0K PiA+ID4gd2FzDQo+ID4gPiB1cGRhdGVkIChhbWRncHUgMDAwMDowYjowMC4wOiBCQVIgNSB1cGRh dGVkOiAweGZjYzAwMDAwIC0+DQo+ID4gPiAweGZjMTAwMDAwKQ0KPiA+ID4gd2hpbGUgSSBhbSBp bnRlcmVzdGVkIHRvIHRlc3QgQkFSMCAoR3JhcGhpYyBSQU0pIG1vdmUgc2luY2UgdGhpcw0KPiA+ ID4gaXMNCj4gPiA+IHdoZXJlIG1vc3Qgb2YgdGhlIGNvbXBsZXhpdHkgaXMuIElzIHRoZXJlIGEg d2F5IHRvIGhhY2sgeW91ciBjb2RlDQo+ID4gPiB0bw0KPiA+ID4gZm9yY2UgdGhpcyA/DQo+ID4g DQo+ID4gSGkgQW5kcmV5LA0KPiA+IA0KPiA+IFJlZ2FyZGluZyB0aGUgYW1kZ3B1J3MgQkFSMCBy ZW1haW5pbmcgb24gaXRzIHBsYWNlOiBpdCBzZWVtcyB0aGlzDQo+ID4gaXMNCj4gPiBiZWNhdXNl IG9mIGZpeGVkIEJBUnMgc3RhcnRpbmcgZnJvbSBmYzYwMDAwMC4gVGhlIGtlcm5lbCB0ZW5kcyB0 bw0KPiA+IGdyb3VwDQo+ID4gdGhlIEJBUnMgY2xvc2UgdG8gZWFjaCBvdGhlciwgbWFraW5nIGEg YnJpZGdlIHdpbmRvdyBhcyBjb21wYWN0IGFzDQo+ID4gcG9zc2libGUuIFNvIHRoZSBCQVIwIGhh ZCBvY2N1cGllZCB0aGUgY2xvc2VzdCAiY29tZm9ydGFibGUiIHNsb3RzDQo+ID4gMHhlMDAwMDAw MC0weGVmZmZmZmZmLCB3aXRoIHRoZSByZXN1bHRpbmcgYnJpZGdlIHdpbmRvdyBvZiBidXMgMDAN Cj4gPiBjb3ZlcmluZyBhbGwgdGhlIEJBUnM6DQo+ID4gDQo+ID4gICAgICBwY2lfYnVzIDAwMDA6 MDA6IHJlc291cmNlIDEwIFttZW0gMHhlMDAwMDAwMC0weGZlYzJmZmZmDQo+ID4gd2luZG93XQ0K PiA+IA0KPiA+IEknbGwgbGV0IHlvdSBrbm93IGlmIEkgZ2V0IGFuIGlkZWEgaG93IHRvIHJlYXJy YW5nZSB0aGF0IG1hbnVhbGx5Lg0KPiA+IA0KPiA+IFR3byBHUFVzIGNhbiBhY3R1YWxseSBzd2Fw IHRoZWlyIHBsYWNlcy4NCj4gDQo+IFdoYXQgZG8geW91IG1lYW4gPw0KDQpJIHdhcyB0aGlua2lu Zzogd2hlbiB0aGUgc2NlbmFyaW8gb2YgYSBQQ0kgcmVzY2FuIHdpdGggdHdvIEdQVXMgKGFzIHdh cw0KZGVzY3JpYmVkIGJlbG93KSB3aWxsIHN0YXJ0IHdvcmtpbmcsIEJBUjAgb2YgR1BVMCBjYW4g dGFrZSBwbGFjZSBvZg0KQkFSMCBvZiBHUFUxIGFmdGVyIHRoZSBmaXJzdCByZXNjYW4uDQoNCj4g PiBXaGF0IGFsc28gY2FuIG1ha2UgYSBCQVIgbW92YWJsZSAtLSBpcyBybW1vZCdpbmcgaXRzIGRy aXZlci4gSXQNCj4gPiBjb3VsZA0KPiA+IGJlIHNvbWUgaGFjayBmcm9tIHdpdGhpbiBhIHRtdXgs IGxpa2U6DQo+ID4gDQo+ID4gICAgcm1tb2QgaWdiOyBcDQo+ID4gICAgcm1tb2QgeGhjaV9oY2Q7 IFwNCj4gPiAgICBybW1vZCBhaGNpOyBcDQo+ID4gICAgZWNobyAxID4gL3N5cy9idXMvcGNpL3Jl c2NhbjsgXA0KPiA+ICAgIG1vZHByb2JlIGlnYjsgXA0KPiA+ICAgIG1vZHByb2JlIHhoY2lfaGNk OyBcDQo+ID4gICAgbW9kcHJvYmUgYWhjaQ0KPiANCj4gQnV0IHNob3VsZCBJIGFsc28gcm1tb2Qg YW1kZ3B1ID8gT3IgbW9kcHJvYmluZyBiYWNrIHRoZSBvdGhlcg0KPiBkcml2ZXJzIA0KPiBzaG91 bGQgY2F1c2UgKGhvcGVmdWxseSkgQkFSMCBtb3ZlIGluIEFNRCBncmFwaGljIGNhcmQgPw0KDQpZ b3UgaGF2ZSBhbHJlYWR5IG1hZGUgdGhlIGFtZGdwdSBtb3ZhYmxlLCBzbyBubyBuZWVkIHRvIHJt bW9kIGl0IC0tDQpqdXN0IHRob3NlIHdpdGggZml4ZWQgQkFSczoNCg0KICAgIHhoY2lfaGNkIDAw MDA6MGM6MDAuMzogQkFSIDA6IGFzc2lnbmVkIGZpeGVkIFttZW0gMHhmYzYwMDAwMC0NCjB4ZmM2 ZmZmZmYgNjRiaXRdDQogICAgaWdiIDAwMDA6MDc6MDAuMDogQkFSIDA6IGFzc2lnbmVkIGZpeGVk IFttZW0gMHhmYzkwMDAwMC0weGZjOTFmZmZmXQ0KICAgIGlnYiAwMDAwOjA3OjAwLjA6IEJBUiAz OiBhc3NpZ25lZCBmaXhlZCBbbWVtIDB4ZmM5MjAwMDAtMHhmYzkyM2ZmZl0NCiAgICBhaGNpIDAw MDA6MDI6MDAuMTogQkFSIDY6IGFzc2lnbmVkIGZpeGVkIFttZW0gMHhmY2IwMDAwMC0weGZjYjdm ZmZmIA0KcHJlZl0NCiAgICBhaGNpIDAwMDA6MDI6MDAuMTogQkFSIDU6IGFzc2lnbmVkIGZpeGVk IFttZW0gMHhmY2I4MDAwMC0NCjB4ZmNiOWZmZmZdDQogICAgeGhjaV9oY2QgMDAwMDowMjowMC4w OiBCQVIgMDogYXNzaWduZWQgZml4ZWQgW21lbSAweGZjYmEwMDAwLQ0KMHhmY2JhN2ZmZiA2NGJp dF0NCiAgICB4aGNpX2hjZCAwMDAwOjA1OjAwLjA6IEJBUiAwOiBhc3NpZ25lZCBmaXhlZCBbbWVt IDB4ZmNhMDAwMDAtDQoweGZjYTA3ZmZmIDY0Yml0XQ0KICAgIGFoY2kgMDAwMDowZDowMC4yOiBC QVIgNTogYXNzaWduZWQgZml4ZWQgW21lbSAweGZjZTA4MDAwLQ0KMHhmY2UwOGZmZl0NCg0KVGhl IGV4cGVjdGVkIHJlc3VsdCBpcyB0aGV5IGFsbCBtb3ZlIGNsb3NlciB0byB0aGUgc3RhcnQgb2Yg UENJIGFkZHJlc3MNCnNwYWNlLg0KDQo+ID4gSSB0aGluayBwY2lfcmVsZWFzZV9yZXNvdXJjZSgp IHNob3VsZCBub3QgYmUgaW4NCj4gPiBhbWRncHVfZGV2aWNlX3VubWFwX21taW8oKSAtLSB0aGUg cGF0Y2hlZCBrZXJuZWwgd2lsbCBkbyB0aGF0DQo+ID4gaXRzZWxmDQo+ID4gZm9yIEJBUnMgdGhl IGFtZGdwdV9kZXZpY2VfYmFyX2ZpeGVkKCkgcmV0dXJucyBmYWxzZS4gRXZlbiBtb3JlIC0tDQo+ ID4gdGhlDQo+ID4ga2VybmVsIHdpbGwgZW5zdXJlIHRoYXQgYWxsIEJBUnMgd2hpY2ggd2VyZSB3 b3JraW5nIGJlZm9yZSwgYXJlDQo+ID4gcmVhc3NpZ25lZCBwcm9wZXJseSwgc28gaXQgbmVlZHMg dGhlbSB0byBiZSBhc3NpZ25lZCBiZWZvcmUgdGhlDQo+ID4gcHJvY2VkdXJlLg0KPiA+IFRoZSBz YW1lIGZvciBwY2lfYXNzaWduX3VuYXNzaWduZWRfYnVzX3Jlc291cmNlcygpIGluDQo+ID4gYW1k Z3B1X2RldmljZV9yZW1hcF9tbWlvKCk6IHRoaXMgY2FsbGJhY2sgaXMgaW52b2tlZCBmcm9tDQo+ ID4gcGNpX3Jlc2Nhbl9idXMoKSBhZnRlciBwY2lfYXNzaWduX3VuYXNzaWduZWRfcm9vdF9idXNf cmVzb3VyY2VzKCkuDQo+IA0KPiBUaGlzIHNlZW1zIHRvIG1lIGluIGNvbnRyYXN0IHRvIHlvdXIg ZG9jdW1lbnRhdGlvbiAoc2VlIA0KPiBodHRwczovL2dpdGh1Yi5jb20vWUFEUk8tS05TL2xpbnV4 L2NvbW1pdC81YmMxMmJhN2M3NGYxYzE5YzExZGIyOWI0ODA3YmQzMmFjZmFjMmMyIA0KPiBzdGVw IDEpIGFsdGhvdWdoIHN0ZXAgMiBzZWVtcyBhbHNvIHRvIGNvbnRyYWRpY3Qgc3RlcCAxIHdpdGgg cmVnYXJkDQo+IHRvIA0KPiBCQVJzIHJlbGVhc2UgLSBzbyBub3cgSSBhbSBhIGJpdCBjb25mdXNl ZC4gQWxzbyBsb29raW5nIGF0IA0KPiBudm1lX2Rldl91bm1hcCAtIGl0IGNhbGxzIHBjaV9yZWxl YXNlX21lbV9yZWdpb25zLiBTeW1tZXRyaWNhbCANCj4gYWNxdWlzaXRpb24gaGFwcGVucyBpbiBu dm1lX2Rldl91bm1hcC4NCg0KQWgsIHRoZXJlIGlzIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIHBjaV9y ZWxlYXNlX3JlZ2lvbigpIGFuZA0KcGNpX3JlbGVhc2VfcmVzb3VyY2UoKSwgc28gc3VidGxlIHRo YXQgSSBoYWQgdG8gcmVmcmVzaCBteSBtZW1vcnkuIFlvdQ0KYXJlIHJpZ2h0LCB0aGlzIGhhcyB0 byBiZSBleHBsYWluZWQgaW4gdGhlIGRvY3VtZW50YXRpb24hDQoNCiQgc3VkbyBjYXQgL3Byb2Mv aW9tZW0NCi4uLg0KZjAwMDAwMDAtZmNmZmZmZmYgOiBQQ0kgQnVzIDAwMDA6MDAgICAgIC0tIHJv b3QgYnVzIHJlc291cmNlDQouLi4NCiAgZmNmMDAwMDAtZmNmZmZmZmYgOiBQQ0kgQnVzIDAwMDA6 MDEgICAtLSBicmlkZ2Ugd2luZG93DQogICAgZmNmMDAwMDAtZmNmMDNmZmYgOiAwMDAwOjAxOjAw LjAgICAgLS0gcGNpIHJlc291cmNlIChCQVIpDQogICAgICBmY2YwMDAwMC1mY2YwM2ZmZiA6IG52 bWUgICAgICAgICAgLS0gcGNpIHJlZ2lvbiAocmVzZXJ2ZWQgYnkNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhIGRyaXZlciwgaGFzIGl0cyBuYW1lKS4NCg0KU28g dGhlIG52bWVfZGV2X3VubWFwKCkgcmVmbGVjdHMgd2l0aCBwY2lfcmVsZWFzZV9yZWdpb24oKSB0 aGF0IHRoZSBCQVINCmlzIG5vdCB1c2VkIGJ5IHRoZSBkcml2ZXIgYW55bW9yZSAtLSB0aGlzIGFj dHVhbGx5IHNob3VsZCBiZSBjYWxsZWQgaW4NCmV2ZXJ5IHJlc2Nhbl9wcmVwYXJlKCkuDQoNCkJ1 dCB0aGUgcGNpX3JlbGVhc2VfcmVzb3VyY2UoKSB0ZWxscyB0byB0aGUgUENJIHN1YnN5c3RlbSB0 aGF0IHRoZSBCQVINCmlzICJyZWxlYXNlZCIgZnJvbSB0aGUgZGV2aWNlIGFuZCBoYXMgdG8gYmUg YXNzaWduZWQgdG8gc29tZSBhZGRyZXNzDQpiZWZvcmUgdXNpbmcgYWdhaW4sIGFuZCBtYWtlcyB0 aGUgcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsDQpyZWxhc2VkX2Jhcm5vKSBpbnZhbGlkLg0KDQpX aHkgdGhlIHF1b3RlczogcGNpX3JlbGVhc2VfcmVzb3VyY2UoKSBkb2Vzbid0IHR1cm4gb2ZmIHRo ZSBCQVIsDQpkb2Vzbid0IHdyaXRlIHRoZSByZWdpc3RlcnMgLS0gdGhpcyBoYXBwZW5zIGxhdGVy Lg0KDQpJIHRob3VodCBhdCBmaXJzdCB0aGF0IHBjaV9yZWxlYXNlX3Jlc291cmNlKCkgaXMgbm90 IHNhZmUgaW4gYQ0KcmVzY2FuX3ByZXBhcmUoKSwgYnV0IHRoZW4gZG91YmxlLWNoZWNrZWQsIGFu ZCBmb3VuZCBpdCdzIGZpbmUsIGp1c3QNCm5vdCBuZWVkZWQsIGFzIHRoZSBrZXJuZWwgd2lsbCBk byBpdCBhbnl3YXkuIEFuZCB0aGUNCnBjaV9idXNfY2hlY2tfYmFyc19hc3NpZ25lZCgpIHRvIGNv bXBhcmUgdGhlIGJpdG1hc2tzIG9mIHN1Y2Nlc3NmdWxseQ0KYXNzaWduZWQgQkFScyBpcyBjYWxs ZWQgKmJlZm9yZSogdGhlIGhvb2suDQoNCj4gPiA+IFdoZW4gdGVzdGluZyB3aXRoIDIgZ3JhcGhp YyBjYXJkcyBhbmQgdHJpZ2dlcmluZyByZXNjYW4sIGhhcmQNCj4gPiA+IGhhbmcgb2YNCj4gPiA+ IHRoZSBzeXN0ZW0gaGFwcGVucyBkdXJpbmcgcmVzY2FuX3ByZXBhcmUgb2YgdGhlIHNlY29uZCBj YXJkICB3aGVuDQo+ID4gPiBzdG9wcGluZyB0aGUgSFcgKHNlZSBsb2cyLmxvZykgLSBJIGRvbid0 IHVuZGVyc3RhbmQgd2h5IHRoaXMNCj4gPiA+IHdvdWxkDQo+ID4gPiBoYXBwZW4gYXMgZWFjaCBv ZiB0aGVtIHBhc3NlcyBmaW5lIHdoZW4gdGhleSBhcmUgc3RhbmRhbG9uZQ0KPiA+ID4gdGVzdGVk DQo+ID4gPiBhbmQNCj4gPiA+IHRoZXJlIHNob3VsZCBiZSBubyBpbnRlcmRlcGVuZGVuY2UgYmV0 d2VlbiB0aGVtIGFzIGZhciBhcyBpIGtub3cuDQo+ID4gPiBEbyB5b3UgaGF2ZSBhbnkgaWRlYSA/ DQo+ID4gDQo+ID4gV2hhdCBoYXBwZW5zIHdpdGggdHdvIEdQVXMgaXMgdW5jbGVhciBmb3IgbWUg YXMgd2VsbCwgbm90aGluZyBsb29rcw0KPiA+IHN1c3BpY2lvdXMuDQo+ID4gDQo+ID4gU2VyZ2UN Cj4gPiANCg==