Received: by 2002:ab2:b82:0:b0:1f3:401:3cfb with SMTP id 2csp369024lqh; Thu, 28 Mar 2024 04:52:49 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWFvVyKtCa2FB9654sWYlBpzeoBeGego86uLFXw8fedLwpu4KM5ihtQ9FSFn/peB2HHE0NdxsMiBMhZTXCBj9vBuUNbmb7GMbDbSMVrUw== X-Google-Smtp-Source: AGHT+IG9GMQLrcxqo1gW+wXQnF2caJUP/JkKN/QS81T3pAR7vUi7z1pX24vjOhw/zGoc6Q5lruff X-Received: by 2002:a05:6a20:439f:b0:1a5:703b:6264 with SMTP id i31-20020a056a20439f00b001a5703b6264mr1060627pzl.31.1711626769626; Thu, 28 Mar 2024 04:52:49 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711626769; cv=pass; d=google.com; s=arc-20160816; b=KgbU6Rg9IqhEhAuLGNreZ1Kujx60u5AcQA3GMUoeOyRBOg+D64LRTAroozhCaWVzaX cyEP8SSxCUYvwZMPuJ0txeZpRD4FJYYLAE+Z8wRAcZJ8NaM09jBntJhWWHvY2eYBpceo 0KB5PNYXqmd8QqwxPsboBdKu9MU/FFaUXCCek+DYF47fxVPoERFZWzwVHQ6MVyvPGvCk +n7vakYa6IHLUYodXQictRNumrYlTZ3AX4TzKxXurPyVxY8auzdm11cvX81jEyR/0uP4 E7oij4MMd8F6ONX/m4v2YVKdZF949/osvyFXUlio7r8QCG6APfGeLlS1Ai7JSDkQSTEs flkg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :content-transfer-encoding:content-id:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from; bh=WzYaDjXkuHmW1ziro5FopGRII/sIvuEQoGpX2inDjWc=; fh=kBLmLEeVEdrAEAQzRzcGqqHqTFKyXMdHbAbFavRX484=; b=vXHr2Nodo4lnJdZXjRIE8TYni4ARIK30x3sZ4UCpubXksHZ6r06fiS7nxhg7HQxnWD MxZTDVHvZJZvY2fR8Q0nGX5u3M/4t+jlyqIHVm/zCmEgQMAWk1T+ajwzsmHDiegX/pHP GzVdiwzGK1LkGgvrq9JA7YYnALiuLbULj7PaHOSA6NHKvh3mPpilD4wqiW+QYxa9OyP3 4DvJKKrlC/2T0znpHJxMhn0w6psb7AOUQnKLvY96HsL8xb9W28DuUB7YcQY1SFeRLhAX THbnQfPaFEdCVrjiXb3JUgRpPJCzYKJmUZmd68HtVZWnNFYFWp4dJ1eutdBlT3w29t7s sHqw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=actia.se); spf=pass (google.com: domain of linux-kernel+bounces-122849-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-122849-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id b7-20020a170902e94700b001def44a4d32si1342320pll.171.2024.03.28.04.52.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Mar 2024 04:52:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-122849-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=actia.se); spf=pass (google.com: domain of linux-kernel+bounces-122849-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-122849-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 3DA3829668A for ; Thu, 28 Mar 2024 11:52:49 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 51FDC7EEE1; Thu, 28 Mar 2024 11:52:39 +0000 (UTC) Received: from mail.actia.se (mail.actia.se [212.181.117.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A747052F6F; Thu, 28 Mar 2024 11:52:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.181.117.226 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711626758; cv=none; b=CtntEwR8+ErViAxHtIh9pGd/OKKHII29/iG602+W63kV9YQKEm2QFDIXG8bdkMp6A2i2yC0JcUHIkSuH0tXlu6mvCYvnHjhXQHj5qIWsubx5pYz9nZV8Ym52qAyPnawEa8t0bQpRSfp+las2d9c2/e7GvwbdDODtqBQutpyVKsI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711626758; c=relaxed/simple; bh=WzYaDjXkuHmW1ziro5FopGRII/sIvuEQoGpX2inDjWc=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=iJ3gly9VODMSAi7zT5lyx7/VVFK49RAJql8mCizNBbDQTI+IzPb1uzEnk6yJ5dz7rgSCYPMuNTXavcI5+Ol8IZSmGBarYknQGYSfEGH2dI7PgAFU27yxh1NyJPc/AjjeV+Hu6rKlDRQJVpkUpvTATNrbp1nsvxAZpD+9V/qgUYg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=actia.se; spf=pass smtp.mailfrom=actia.se; arc=none smtp.client-ip=212.181.117.226 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=actia.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=actia.se Received: from S036ANL.actianordic.se (10.12.31.117) by S035ANL.actianordic.se (10.12.31.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.37; Thu, 28 Mar 2024 12:52:24 +0100 Received: from S036ANL.actianordic.se ([fe80::e13e:1feb:4ea6:ec69]) by S036ANL.actianordic.se ([fe80::e13e:1feb:4ea6:ec69%4]) with mapi id 15.01.2507.037; Thu, 28 Mar 2024 12:52:23 +0100 From: John Ernberg To: Florian Fainelli , "Russell King (Oracle)" CC: Maxime Chevallier , Wei Fang , Shenwei Wang , Clark Wang , NXP Linux Team , "David S. Miller" , Eric Dumazet , "Jakub Kicinski" , Paolo Abeni , Heiner Kallweit , "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Andrew Lunn Subject: Re: [PATCH net v3 2/2] net: fec: Suspend the PHY on probe Thread-Topic: [PATCH net v3 2/2] net: fec: Suspend the PHY on probe Thread-Index: AQHab8t46xO1JP3Hxke5Lu7SCFbkbbEq8XCAgBPPogCAAAPagIACAISAgAAYuQCAAAV2gIAAKfWAgAFUdICAAAMfgIAGCB+AgACYuICABBZygA== Date: Thu, 28 Mar 2024 11:52:23 +0000 Message-ID: References: <20240306133734.4144808-1-john.ernberg@actia.se> <20240306133734.4144808-3-john.ernberg@actia.se> <20240306190539.4ab9f369@device-28.home> <9490ed31-dede-4a14-9c62-5ef83e30593a@actia.se> <7f0e5f8b-fb85-4f2b-8d77-4170366a1b55@gmail.com> <27453913-d4a3-4535-8cf5-2f5f3eb6c7b7@gmail.com> <0976fbf5-efb4-4fe6-a68d-28a79309cd05@gmail.com> In-Reply-To: <0976fbf5-efb4-4fe6-a68d-28a79309cd05@gmail.com> Accept-Language: en-US, sv-SE Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-esetresult: clean, is OK x-esetid: 37303A2921D729556C7D62 Content-Type: text/plain; charset="utf-8" Content-ID: <9C9A2F49BBED7F448D59DA48FCDA0CE4@actia.se> Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 SGkgRmxvcmlhbiwNCg0KT24gMy8yNS8yNCAxMDoyNyBQTSwgRmxvcmlhbiBGYWluZWxsaSB3cm90 ZToNCj4gT24gMy8yNS8yNCAwNToyMCwgSm9obiBFcm5iZXJnIHdyb3RlOg0KPj4gSGkgRmxvcmlh biwNCj4+DQo+PiBPbiAzLzIxLzI0IDE3OjEzLCBGbG9yaWFuIEZhaW5lbGxpIHdyb3RlOg0KPj4+ IE9uIDMvMjEvMjQgMDk6MDIsIEpvaG4gRXJuYmVyZyB3cm90ZToNCj4+Pj4gSGkgUnVzc2VsbCwN Cj4+Pj4NCj4+Pj4gT24gMy8yMC8yNCAyMDo0NCwgUnVzc2VsbCBLaW5nIChPcmFjbGUpIHdyb3Rl Og0KPj4+Pj4gT24gV2VkLCBNYXIgMjAsIDIwMjQgYXQgMTA6MTM6NTVBTSAtMDcwMCwgRmxvcmlh biBGYWluZWxsaSB3cm90ZToNCj4+Pj4+Pg0KPj4+Pj4+DQo+Pj4+Pj4gT24gMy8yMC8yMDI0IDk6 NTQgQU0sIFJ1c3NlbGwgS2luZyAoT3JhY2xlKSB3cm90ZToNCj4+Pj4+Pj4gT24gV2VkLCBNYXIg MjAsIDIwMjQgYXQgMDM6MjU6NTRQTSArMDAwMCwgSm9obiBFcm5iZXJnIHdyb3RlOg0KPj4+Pj4+ Pj4gSGkgUnVzc2VsLA0KPj4+Pj4+Pg0KPj4+Pj4+PiBHcm93bC4gSGkgUGV0ZXIuDQo+Pj4+Pj4+ DQo+Pj4+Pj4+PiBXaGF0IHdlIHJlYWxseSB3YW50IGlzIHRoZSBQSFkgdG8gYmUgc3VzcGVuZGVk IG9uIHN1c3BlbmQgdG8gUkFNDQo+Pj4+Pj4+PiByZWdhcmRsZXNzIG9mIHVzIGhhdmluZyBoYWQg YW4gaW5pdGlhbCBsaW5rIHVwIG9yIG5vdC4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gU28gd2hhdCB5b3Un cmUgYXNraW5nIGlzIGZvciB0aGUgUEhZIHRvIGJlIHN1c3BlbmRlZCB3aGVuIHRoZSBzeXN0ZW0N Cj4+Pj4+Pj4gaXMgZW50ZXJpbmcgc3VzcGVuZCwgd2hpY2ggaXMgYSBsb25nIHRpbWUgYWZ0ZXIg dGhlIHN5c3RlbSBib290ZWQgDQo+Pj4+Pj4+IGFuZA0KPj4+Pj4+PiB0aHVzIHBoeV9wcm9iZSgp IHdhcyBjYWxsZWQsIGFuZCBjb3VsZCBiZSBzb21lIHRpbWUgYmVmb3JlIHRoZSANCj4+Pj4+Pj4g c3lzdGVtDQo+Pj4+Pj4+IHJlc3VtZXMuDQo+Pj4+Pj4+DQo+Pj4+Pj4+IEknbSBub3Qgc3VyZSB3 aGF0IHRoZSByZWxldmFuY2UgaXMgb2YgcGh5X3Byb2JlKCkgdGhhdCB3YXMgDQo+Pj4+Pj4+IGJy b3VnaHQgdXANCj4+Pj4+Pj4gcHJldmlvdXNseSB0aGVuLg0KPj4+Pj4+Pg0KPj4+Pj4+Pj4gVGhp cyB3b3JrZWQgcHJpb3IgdG8gNGMwZDJlOTZiYTA1ICgibmV0OiBwaHk6IGNvbnNpZGVyIHRoYXQN Cj4+Pj4+Pj4+IHN1c3BlbmQycmFtDQo+Pj4+Pj4+PiBtYXkgY3V0DQo+Pj4+Pj4+PiBvZmYgUEhZ IHBvd2VyIikgd2hpY2ggd2FzIGFkZGVkIGluIExpbnV4IDUuMTEsIGFuZCA1NTdkNWRjODNmNjgN Cj4+Pj4+Pj4+ICgibmV0Og0KPj4+Pj4+Pj4gZmVjOiB1c2UNCj4+Pj4+Pj4+IG1hYy1tYW5hZ2Vk IFBIWSBQTSIpIHdoaWNoIHdhcyBhZGRlZCBpbiBMaW51eCA1LjEyLg0KPj4+Pj4+Pg0KPj4+Pj4+ PiBMb29raW5nIGF0IHRoZSBmb3JtZXIgY29tbWl0LCB0aGF0IGxvb2tzIHRvIG1lIGxpa2UgaXQg aXMgb25seQ0KPj4+Pj4+PiBhZmZlY3RpbmcgdGhlIHJlc3VtZSBwYXRocywgbm90IHRoZSBzdXNw ZW5kIHBhdGhzLCBzbyB3b3VsZG4ndCBoYXZlDQo+Pj4+Pj4+IGFueSBpbXBhY3QgaXRzZWxmIG9u IHdoYXQgaGFwcGVucyB3aGVuIHN1c3BlbmQgaGFwcGVucy4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gVGhl IGxhdHRlciBjb21taXQgc3RhdGVzIHRoYXQgaXQgaXMgYSB3b3JrIGFyb3VuZCBmb3IgYW4gaXNz dWUgDQo+Pj4+Pj4+IHdpdGggYQ0KPj4+Pj4+PiBwYXJ0aWN1bGFyIFBIWS4gV2hhdCBoYXBwZW5z IGlmIHlvdSByZXZlcnQganVzdCB0aGlzIGNvbW1pdCwgZG9lcyANCj4+Pj4+Pj4geW91cg0KPj4+ Pj4+PiBwcm9ibGVtIHRoZW4gZ28gYXdheT8NCj4+Pj4NCj4+Pj4gT3VyIFBIWSBkb2VzIG5vdCBi ZWdpbiB3b3JraW5nIGFnYWluIHdpdGhvdXQgcmV2ZXJ0aW5nIGJvdGguDQo+Pj4+IHBoeV9pbml0 X2h3KCkNCj4+Pj4gd2lsbCByZW1haW4gYW4gaXNzdWUgaWYgaXQgb2NjdXJzIGFmdGVyIHBoeV9z dGFydCgpLg0KPj4+Pg0KPj4+PiBUaGUgY29tbWl0IG1lc3NhZ2UgaW4gNTU3ZDVkYzgzZjY4IGlz IG5vdCBleHBsYWluaW5nIG5lYXJseSBlbm91Z2gsIEkNCj4+Pj4gc3BlbnQgYQ0KPj4+PiBmZXcg ZGF5cyBvbiBpdCBiZWZvcmUgSSBwcm92ZWQgdGhhdCBjb21taXQgdG8gYmUgbmVhcmx5IGNvcnJl Y3QgKFNlZQ0KPj4+PiB3aG9sZQ0KPj4+PiB0aHJlYWQgYXQgWzFdKSwgaXQgaGFwcGVuZWQgdG8g anVzdCBleHBsb2RlIHdpdGggdGhhdCBQSFkuIFRoZSBpc3N1ZSANCj4+Pj4gaXMgYQ0KPj4+PiBz ZXF1ZW5jaW5nIGlzc3VlIHRoYXQgd2FzIG1hZGUgbW9yZSBwcm9taW5lbnQgYnkgNGMwZDJlOTZi YTA1LCBidXQgaXQNCj4+Pj4gZXhpc3RlZA0KPj4+PiBzaW5jZSBhcm91bmQgMjAwOC4gQmVjYXVz ZSBGRUMgaXMgYm90aCBNRElPIGNvbnRyb2xsZXIgYW5kIE1BQywNCj4+Pj4gbWVhbmluZyB0aGUN Cj4+Pj4gcmVzdW1lIG9mIHRoZSBsaW5rIGluIGEgbGluayB1cCBjYXNlIHJ1bnMgcGh5X3N0YXJ0 KCkgaW4gdGhlIEZFQyByZXN1bWUNCj4+Pj4gZnVuY3Rpb24sIHdoaWNoIHdpbGwgdHJpZ2dlciBh IG1kaW8gYnVzIHJlc3VtZSB3aGVuIGl0IGNvbXBsZXRlcywgaW4gDQo+Pj4+IHR1cm4NCj4+Pj4g Y2FsbGluZyBwaHlfaW5pdF9odygpIChiZWZvcmUgNGMwZDJlOTZiYTA1IGl0IHdhcyBwaHlfcmVz dW1lKCkgd2hpY2gNCj4+Pj4gd2Fzbid0IGENCj4+Pj4gcHJvYmxlbSBidXQgc3RpbGwgd3Jvbmcg c2VxdWVuY2Ugd2lzZSkuDQo+Pj4+DQo+Pj4+Pj4+DQo+Pj4+Pj4+IEFsc28sIHBsZWFzZSBjbGFy aWZ5LiBJdCBzZWVtcyB0aGF0IHlvdSBhcmUgcmVwb3J0aW5nIGEgcmVncmVzc2lvbiAtDQo+Pj4+ Pj4+IGl0IHVzZWQgdG8gd29yayBmb3IgeW91IHByaW9yIHRvIDU1N2Q1ZGM4M2Y2OCwgYnV0IDU1 N2Q1ZGM4M2Y2OCANCj4+Pj4+Pj4gc3RvcHMNCj4+Pj4+Pj4gaXQgd29ya2luZyBmb3IgeW91Pw0K Pj4+Pj4+Pg0KPj4+Pj4+Pj4gU2luY2UgRkVDIHJlcXVpcmVzIG1hY19tYW5hZ2VkX3BtIHRoZSBn ZW5lcmljIFBNIHN1c3BlbmQtcmVzdW1lIA0KPj4+Pj4+Pj4gcGF0aHMNCj4+Pj4+Pj4+IGFyZSBu b3QNCj4+Pj4+Pj4+IHRha2VuLiBUaGUgcmVzdW1lIHNlcXVlbmNpbmcgd2l0aCBnZW5lcmljIFBN IGhhcyBiZWVuIGJyb2tlbiANCj4+Pj4+Pj4+IHdpdGggdGhlDQo+Pj4+Pj4+PiBGRUMgc2luY2UN Cj4+Pj4+Pj4+IGdlbmVyaWMgUE0gb2YgdGhlIG1kaW8gYnVzIHdhcyBhZGRlZCwgYXMgdGhlIEZF QyB3aWxsIGRvIA0KPj4+Pj4+Pj4gcGh5X3N0YXJ0KCkNCj4+Pj4+Pj4+ICh2aWEgRkVDDQo+Pj4+ Pj4+PiByZXN1bWUpIGFuZCB0aGVuIGdlbmVyaWMgUE0gcnVucyBwaHlfaW5pdF9odygpIHZpYSBt ZGlvIGJ1cyByZXN1bWUNCj4+Pj4+Pj4+IChwcmV2aW91c2x5Og0KPj4+Pj4+Pj4gbGVzcyBkYW1h Z2luZyBwaHlfcmVzdW1lKCkpIGR1ZSB0byBob3cgdGhlIEZFQyBJUCBibG9jayB3b3Jrcy4NCj4+ Pj4+Pj4NCj4+Pj4+Pj4gVGhhdCBzdWdnZXN0cyB0aGF0IGV2ZW4gd2l0aCA1NTdkNWRjODNmNjgg cmV2ZXJ0ZWQsIGl0J3MgYnJva2VuLg0KPj4+Pj4+PiBEaWdnaW5nIGludG8gdGhlIGhpc3Rvcnks IHdoYXQgeW91J3JlIHJlZmVycmluZyB0byBkYXRlcyBmcm9tIA0KPj4+Pj4+PiBKYW51YXJ5DQo+ Pj4+Pj4+IDIwMTYsIHNvIGFyZSB5b3UgcmVwb3J0aW5nIGEgcmVncmVzc2lvbiB0aGF0IG9jY3Vy ZWQgOCBfeWVhcnNfIGFnbywNCj4+Pj4+Pj4gYXQgd2hpY2ggcG9pbnQgSSdkIHF1ZXN0aW9uIHdo eSBpdCdzIHRha2VuIDggeWVhcnMuDQo+Pj4+DQo+Pj4+IEEgcmV2ZXJ0IG9mIHRob3NlIGlzIGFi c29sdXRlbHkgd3JvbmcuIFRob3NlIGNvbW1pdHMgYXJlIGZpeGluZyBiaWdnZXINCj4+Pj4gaXNz dWVzLg0KPj4+Pg0KPj4+Pj4+Pg0KPj4+Pj4+PiBHaXZlbiB0aGUgdGltZSB0aGF0IGhhcyBwYXNz ZWQsIEkgZG9uJ3QgdGhpbmsgcmV2ZXJ0aW5nIGNvbW1pdHMgaXMNCj4+Pj4+Pj4gYSBzYW5lIGFw cHJvYWNoLiBRdWl0ZSB3aGF0IHRoZSByaWdodCBzb2x1dGlvbiBpcyB0aG91Z2gsIEknbSBub3QN Cj4+Pj4+Pj4gc3VyZS4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gwqDCoMKgIEZyb20gdGhlIGRlc2NyaXB0 aW9uIGFuZCB0aGUgY29tbWl0cyBwb2ludGVkIHRvLCBJIGp1c3QgZG9uJ3QgDQo+Pj4+Pj4+IHNl ZQ0KPj4+Pj4+PiB0aGF0IHRoZXJlIGlzIGFueXRoaW5nIHRoYXQgY291bGQndmUgY2hhbmdlZCB3 aXRoIHJlc3BlY3QgdG8gdGhlIA0KPj4+Pj4+PiBmaXJzdA0KPj4+Pj4+PiBib290IC0gaWYgdGhh dCBoYXMgY2hhbmdlZCwgdGhlbiBJIHRoaW5rIG1vcmUgcmVzZWFyY2ggaW50byB3aGF0DQo+Pj4+ Pj4+IGNhdXNlZA0KPj4+Pj4+PiBpdCBpcyBuZWVkZWQuDQo+Pj4+Pj4+DQo+Pj4+Pj4+IElmIGl0 J3MgdGhlIHN1YnNlcXVlbnQgc3RhdGUgYWZ0ZXIgYSBzdXNwZW5kLXJlc3VtZSBjeWNsZSwgdGhl biB5ZXMsDQo+Pj4+Pj4+IEkgd291bGQgYWdyZWUgdGhhdCBpdHMgcG9zc2libGUgdGhhdCB0aGVz ZSBjaGFuZ2VzIGJyb2tlIHRoaXMgZm9yIA0KPj4+Pj4+PiB5b3UuDQo+Pj4+Pj4+IFdvdWxkIGNs ZWFyaW5nIG5kZXYtPnBoeWRldi0+bWFjX21hbmFnZWRfcG0ganVzdCBiZWZvcmUNCj4+Pj4+Pj4g cGh5X2Rpc2Nvbm5lY3QoKSBpbiBmZWNfZW5ldF9jbG9zZSgpIGZpeCBpdCBmb3IgeW91LCBzbyB0 aGUgc3VzcGVuZC8NCj4+Pj4+Pj4gcmVzdW1lIHBhdGhzIGZvciB0aGUgUEhZIGdldCB1c2VkIHdo ZW4gdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIA0KPj4+Pj4+PiBkb3duPw0KPj4+Pj4+Pg0KPj4+ Pj4+PiBNYXliZSwgaG93ZXZlciwgdGhhdCdzIHNvbWV0aGluZyB0aGF0IHNob3VsZCBoYXBwZW4g aW4gYW55IGNhc2UgDQo+Pj4+Pj4+IGluc2lkZQ0KPj4+Pj4+PiBwaHlsaWIgb24gcGh5X2Rpc2Nv bm5lY3QoKSBhcyBhIG1hdHRlciBvZiBjb3Vyc2UsIHNpbmNlIHRoZSBQSFkgd2lsbA0KPj4+Pj4+ PiBhdCB0aGF0IHBvaW50IGJlIG5vIGxvbmdlciB1bmRlciB0aGUgY29udHJvbCBvZiB0aGUgbmV0 d29yayANCj4+Pj4+Pj4gZHJpdmVyIGZvcg0KPj4+Pj4+PiBQTSBwdXJwb3Nlcy4gQ291bGQgeW91 IGdpdmUgdGhpcyBpZGVhIGEgdHJ5IHBsZWFzZT8NCj4+Pj4+Pj4NCj4+Pj4+Pg0KPj4+Pj4+IE9u IHBoeV9kaXNjb25uZWN0KCkgd2Ugd2lsbCBkbyBhIHBoeV9kZXRhY2goKSB3aGljaCBjYWxscw0K Pj4+Pj4+IHBoeV9zdXNwZW5kKCkuDQo+Pj4+Pj4gR2l2ZW4gdGhhdCBwaHlfZGlzY29ubmVjdCgp IGlzIGNhbGxlZCBmcm9tIGZlY19lbmV0X2Nsb3NlKCksIHdlDQo+Pj4+Pj4gc3RpbGwgaGF2ZSBh DQo+Pj4+Pj4gTURJTyBidXMgcmVnaXN0ZXJlZCBhbmQgd2UgYXJlIG5vdCB0cnlpbmcgdG8gc3Vz cGVuZCB0aGUgTURJTyBidXMsDQo+Pj4+Pj4gc28gd2UNCj4+Pj4+PiBzaG91bGQgaGF2ZSBhbiBl ZmZlY3RpdmUgcGh5X3N1c3BlbmQoKSBjYWxsIGhlcmUsIHdoYXQgYW0gSSBtaXNzaW5nPw0KPj4+ Pj4NCj4+Pj4+IEkgZGlkbid0IGxvb2sgdGhlcmUsIGJ1dCBpZiB0aGF0IGlzIHRoZSBjYXNlLCB0 aGVuIHdoYXQgaXMgSm9obidzDQo+Pj4+PiBwcm9ibGVtIC0gSSBjYW4ndCBmaWd1cmUgaXQgb3V0 LCBzb21ldGhpbmcgaXNuJ3QgYWRkaW5nIHVwIGhlcmUuDQo+Pj4+Pg0KPj4+Pg0KPj4+PiBJIGNv dWxkIGluc3RlYWQgYWRkIGV4dHJhIHBoeV9zdXNwZW5kKCkgaW4gdGhlIHN1c3BlbmQgcGF0aCBp ZiB0aGUNCj4+Pj4gbGluayBpcw0KPj4+PiBkb3duIGFuZCB0aGUgRkVDIGlzIHVwIGFuZCBydW5u aW5nLiBJIHJlamVjdGVkIGl0IG9yaWdpbmFsbHkgdGhpbmtpbmcNCj4+Pj4gaXQgd2FzDQo+Pj4+ IGEgbXVjaCBkaXJ0aWVyIGZpeCwgYnV0IG1heWJlIHRoYXQgaXMgdGhlIG1vcmUgY29ycmVjdCB0 aGluZyB0byBkbz8NCj4+Pg0KPj4+IFRoaXMgZG9lcyBub3Qgc2VlbSBsaWtlIHRoZSBwcm9wZXIg c29sdXRpb24sIHRoZSBvbmx5IHRpbWUgd2hlcmUgYW4NCj4+PiBleHBsaWNpdCBwaHlfc3VzcGVu ZCgpIHNob3VsZCBiZSBkb25lIGluIHRoZSBFdGhlcm5ldCBNQUMncyAtPnN1c3BlbmQoKQ0KPj4+ IHJvdXRpbmUgaXMgaWYgdGhlIG5ldHdvcmsgZGV2aWNlIHdhcyBicm91Z2h0IHVwIGF0IHRoZSB0 aW1lDQo+Pj4gKG5ldGlmX3J1bm5pbm5nKCkgcmV0dXJucyB0cnVlKSAqYW5kKiB5b3Ugc2V0IG1h Y19tYW5hZ2VkX3BtID0gdHJ1ZQ0KPj4+IGJlY2F1c2UgeW91IG11c3QgcHJlY2lzZWx5IGNvbnRy b2wgdGhlIG9yZGVyIGluIHdoaWNoIHRoZSBNQUMgYW5kIHRoZQ0KPj4+IFBIWSBnZXQgc3VzcGVu ZGVkIHdpdGggcmVzcGVjdCB0byBlYWNoIG90aGVyICh0eXBpY2FsbHkgYmVjYXVzZSB0aGUgUEhZ DQo+Pj4gc3VwcGxpZXMgYSBSWCBjbG9jayBiYWNrIHRvIHRoZSBNQUMsIGFuZCBzb21lIG9mIHRo ZSBNQUMgbG9naWMgZGVwZW5kcw0KPj4+IHVwb24gaXQgdG8gb3BlcmF0ZSBwcm9wZXJseSwgZS5n LjogcGVyZm9ybSBhIHByb3BlciBGSUZPIGZsdXNoIGV0Yy4pLg0KPj4NCj4+IEknbSBoYXZpbmcg c29tZSB0cm91YmxlIHVuZGVyc3RhbmRpbmcgeW91ciBtZXNzYWdlIGluIGNvbnRleHQgb2YgbXkg bW9zdA0KPj4gcmVjZW50IHJlcGx5IHRvIFJ1c3NlbGwsIHNvIHBsZWFzZSBiZWFyIHdpdGggbWUg aGVyZSBhcyBJIHdpbGwNCj4+IHBvdGVudGlhbGx5IGFzayBhIHJlYWxseSBkdW1iIHF1ZXN0aW9u Og0KPj4NCj4+IERvIEkgdW5kZXJzdGFuZCB0aGlzIGNvcnJlY3RseSBhcyB3aGF0IHVzZWQgdG8g d29yayBpbiA1LjEwIHdhcyBuZXZlcg0KPj4gbWVhbnQgdG8gd29yayBhbmQgdGhlIGJlaGF2aW9y IG5vdyBpcyB0aGUgY29ycmVjdCBvbmUgaW4gdGhlIEZFQyBjYXNlPw0KPiANCj4gSSBhbSBub3Qg c3VyZSBhYm91dCB0aGF0LCBiZWNhdXNlIEkgZG8gbm90IGJlbGlldmUgdGhpcyBoYWQgYmVlbiAN Cj4gZXhwbGljaXRseSBhY2NvdW50ZWQgZm9yLCBhbmQgdGhhdCBpcyB3aGF0IEkgYW0gYWxzbyB0 cnlpbmcgdG8gZmlndXJlIG91dC4NCj4gDQo+PiBNZWFuaW5nIHRoYXQgaWYgdGhlIGxpbmsgaGFz IG5ldmVyIGJlZW4gdXAgdGhlIFBIWSBtdXN0IG5ldmVyIGJlIGhhbmRsZWQNCj4+IGZyb20gYSBw b3dlciBtYW5hZ2VtZW50IHBlcnNwZWN0aXZlPw0KPiANCj4gTGV0J3Mgc3RyYXkgYXdheSBmcm9t IHNheWluZyAibGluayBpcyBVUCIgYnV0IGluc3RlYWQgc2F5IGludGVyZmFjZSANCj4gYWRtaW5p c3RyYXRpdmVseSBicm91Z2h0IHVwIChpcCBsaW5rIHNldCBkZXYgPGZvbz4gdXApIHNvIHdlIGFy ZSBvbiB0aGUgDQo+IHNhbWUgcGFnZS4NCj4gDQo+Pg0KPj4gVGhlIG9ubHkgUEhZIGV4YW1wbGVz IEkgaGF2ZSBjb21lIGFjcm9zcyAodGhvdWdoIG5vdCBtYW55IGluIHRvdGFsKSB0aGUNCj4+IFBI WSBoYXMgZG9uZSBzb21lIGluaXRpYWwgY29uZmlndXJhdGlvbiBvZiBpdHNlbGYgYWZ0ZXIgUE9S IG9yIHJlbGVhc2UNCj4+IG9mIHRoZSByZXNldCBsaW5lLg0KPj4NCj4+Pg0KPj4+IMKgIEZyb20g dGhlcmUsIEkgc2VlIHR3byBkaXN0aW5jdCBjYXNlczoNCj4+Pg0KPj4+IC0gdGhlIG5ldHdvcmsg ZGV2aWNlIGRyaXZlciBwcm9iZWQsIGJ1dCB0aGUgbmV0d29yayBkZXZpY2Ugd2FzIG5ldmVyDQo+ Pj4gYnJvdWdodCB1cCBpbiB0aGUgZmlyc3QgcGxhY2UgaW4gdGhhdCBjYXNlLCBJIGRvIG5vdCBz ZWUgYSBwYXRoIHdoZXJlYnkNCj4+PiB0aGUgUEhZIHdvdWxkIGhhdmUgYmVlbiBzdXNwZW5kZWQs IHVubGVzcyB0aGUgYm9vdCBmaXJtd2FyZSBhbHJlYWR5IHRvb2sNCj4+PiBjYXJlIG9mIHRoYXQg KHdoaWNoIGFyZ3VhYmx5IGl0IHNob3VsZCBpZiB5b3UgYXJlIHRyeWluZyB0byBiZSBhcyBwb3dl cg0KPj4+IGVmZmljaWVudCBhcyBwb3NzaWJsZSksIGFsdGhvdWdoIGFyZ3VhYmx5IHRoZXJlIGNv dWxkIGJlIGEgcGF0aCB3aXRoaW4NCj4+PiB0aGUga2VybmVsIHdoZXJlIHRoaXMgaXMgYWxzbyBk b25lLiBJdCBjb3VsZCBnZXQgcmVhbGx5IGNvbXBsaWNhdGVkIA0KPj4+IGhvd2V2ZXINCj4+DQo+ PiBHZW5lcmljIFBNIHZpYSBtZGlvX2J1c19waHlfc3VzcGVuZCgpIHdpbGwgc3VzcGVuZCB0aGUg UEhZIGlmIGl0IGhhcyBhDQo+PiAuc3VzcGVuZCBjYWxsYmFjayBhbmQgbWFjX21hbmFnZWRfcG0g aXNuJ3Qgc2V0Lg0KPiANCj4gQ29ycmVjdC4NCj4gDQo+Pg0KPj4gbWRpb19idXNfcGh5X21heV9z dXNwZW5kKCkgd2lsbCBzZWUgdGhhdCBuZXRkZXYgaXMgTlVMTCwgd2hpY2ggbWVhbnMgaXQNCj4+ IHJldHVybnMgdGhlIGludmVyc2Ugb2YgcGh5LT5zdXNwZW5kZWQgKHdoaWNoIGlzIGZhbHNlKSwg bWVhbmluZyB0aGUNCj4+IGZ1bmN0aW9uIHJldHVybnMgdHJ1ZS4gVGh1cyBwaHlfc3VzcGVuZCgp IGlzIGNhbGxlZC4NCj4gDQo+IE9LLCBzbyByaWdodCB0aGVyZSBpcyB3aGVyZSB5b3Ugd2VyZSB3 ZXJlIGJhc2ljYWxseSBkZXBlbmRpbmcgdXBvbiANCj4gbWRpb19idXNfcGh5X21heV9zdXNwZW5k KCkgYmVpbmcgY2FsbGVkIHRvIHN1c3BlbmQgeW91ciBQSFkgZGV2aWNlISBJIA0KPiBkb24ndCB0 aGluayB0aGlzIGhhZCBldmVyIGJlZW4gZW52aXNpb25lZCB0byBiZSB3b3JraW5nIHRoYXQgd2F5 LCBpZiBpdCANCj4gZGlkIHRoYXQgd2FzIGEgYnlwcm9kdWN0IHJhdGhlciB0aGFuIGEgY29udHJh Y3QuIEludHJvZHVjaW5nIA0KPiBtYWNfbWFuYWdlZF9wbSBjZXJ0YWlubHkgZGlkIGJyZWFrIHRo YXQgY29udHJhY3QgYmVjYXVzZSBub3cgd2Ugbm8gDQo+IGxvbmdlciBoYXZlIHRoYXQgImRvdWJs ZSIgc3VzcGVuZCBhbmQgcmVzdW1lIHRoYXQgdXNlZCB0byBoYXBwZW4uDQoNCkkgdGhpbmsgSSB1 bmRlcnN0YW5kIHlvdSBrbm93LCB0aGFua3MgZm9yIGNsZWFyaW5nIHRoYXQgdXAuIEJhc2VkIG9u IA0KdGhpcywgZXZlbiBpZiB0aGUgbWlzc2luZyBzdXNwZW5kIGluIGNhc2VzIHdoZXJlIHRoZSBp bnRlcmZhY2Ugd2FzIG5ldmVyIA0KYWRtaW5pc3RyYXRpdmUgdXAgaXMgdGVjaG5pY2FsbHkgYSBy ZWdyZXNzaW9uIGl0IHNvdW5kcyBsaWtlIGEgbXVjaCBtb3JlIA0Kcm9idXN0IGZpeCB0byBvdXIg cHJvYmxlbSB3b3VsZCBiZSB0byBkbyB3aGF0IEkgY29uc2lkZXJlZCBhIHdvcmstYXJvdW5kIA0K YmVmb3JlICh1c2luZyAiaXAgbGluayBzZXQgPGRldj4gdXAgJiYgaXAgbGluayBzZXQgPGRldj4g ZG93biIgYXQgYm9vdCkgDQp3b3VsZCBsaWtlbHkgYmUgdGhlIG1vc3QgY29ycmVjdCB3YXkgdG8g Z28gYWJvdXQgaXQuDQoNCkkgd2lsbCBiZSBkcm9wcGluZyB0aGlzIHBhdGNoIGZyb20gdGhlIHNl dCBpbiB0aGUgbmV4dCBpdGVyYXRpb24uDQoNCj4gDQo+Pg0KPj4+DQo+Pj4gLSB0aGUgbmV0d29y ayBkZXZpY2UgZHJpdmVyIHByb2JlZCwgYW5kIHRoZSBuZXR3b3JrIGRldmljZSB3YXMgYnJvdWdo dA0KPj4+IHVwIGF0IGxlYXN0IG9uY2UgKHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBhIGxpbmsgc3Rh dGUgd2FzIGRldGVjdGVkIG9yDQo+Pj4gbm90KSwgc3VjaCB0aGF0IHRoZSBQSFkgaGFzIGdvbmUg dGhyb3VnaCBhIHBoeV9zdGFydCgpL3BoeV9zdG9wKCkgY3ljbGUsDQo+Pj4gYW5kIHVwb24gcGh5 X3N0b3AoKSBhIHBoeV9zdXNwZW5kKCkgaGFzIGJlZW4gY2FsbGVkDQo+Pj4NCj4+PiBJdCBpcyBz YWZlIHRvIGFzc3VtZSB5b3UgZmFsbCBpbiB0aGUgZmlyc3QgY2FzZSBvbmx5LCBvciBkbyB5b3Ug YWxzbyBzZWUNCj4+PiBhIHByb2JsZW0gaW4gdGhlIHNlY29uZCBjYXNlIGFzIHdlbGw/DQo+Pg0K Pj4gVGhlcmUgaXMgb25seSBhIHByb2JsZW0gaW4gdGhlIGZpcnN0IGNhc2UuIFRoZSBzZWNvbmQg Y2FzZSBpcyB3b3JraW5nIGFzDQo+PiBleHBlY3RlZC4NCj4gDQo+IFRoYW5rcyBmb3IgdGhlIGNs YXJpZmljYXRpb24uDQoNClRoYW5rcyEgLy8gSm9obiBFcm5iZXJn