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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7299CEE14AA for ; Sat, 9 Sep 2023 19:54:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:References:Cc:To:From:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ReO67oN+nAio8pCopnxDuNimPAFur2HGnswxRrGfh9c=; b=NBbLntMMdOggIB EkrCZZ2l5R+medNWjrmzV6CjNAi2SaRxhvztR2XXPzyYjuAiLOyfoRQ6cHlJCk0SNv+C19oRiST+c p64OEZ7fVW6tRus1iL0FlOU881XwZL/GEq1GZ7NuPuA3cd5h3lpmtK/IVvW0eSDfj1M+mtD4AcMFE tFM31jYYyCxJicXyUXQZ8pV3K+lBJNBiIPP0CbbD7pzueBJhlqj6K/2YfiTZ6PTFwaHXeJ4riGwXa 7aSA/RerPC/ZxeoXGwZHg9bBYB4tlsg5eXUEGSSr3TCsaaU+8O4c/kHFG2Iwv07fTEbXQGTTHS6h5 0CpC5gyoCe8OpBULSIew==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qf420-00Fk3O-1R; Sat, 09 Sep 2023 19:54:12 +0000 Received: from relay1-d.mail.gandi.net ([217.70.183.193]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qf41s-00Fk2x-0n; Sat, 09 Sep 2023 19:54:07 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id E7615240004; Sat, 9 Sep 2023 19:53:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arinc9.com; s=gm1; t=1694289238; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=99TF+vOwckQTt89fEYfiNSFkiXPmHqPMDu9g5QZJPvg=; b=nlTtXJl6ExikEslIoJ4Vn1I8BudB/egKEU9IA6LdEFYvmYp1LZWf44H0OR9xSoa5fVjADa MdNZ6NuBebSoydqDSGXjjp6mFP0SMCSwWq69rcs8ubz+WVuZZlo9ws6MuhQQ/pFCUfkCwJ u7zmZ8cpOAlUkXZFutzcqNTA2DVofSY6hYOAAnkIbG+b/wa8d1jNnYtR35BAc+hAHet7Nz LULSQZZp90bfp7S/Yc9aaK+mJeUbnL8OlpjqptYyx3ctnW9Tv3in5zHS7wV0QTCIyWv93f CR9E2NHjw8mwJsoVsiE/BfG5AHGnFOHqNjjAihmGU4q4134fgb+7v7BDGiIUlQ== Message-ID: Date: Sat, 9 Sep 2023 22:53:46 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/4] dt-bindings: net: dsa: document internal MDIO bus Content-Language: en-US From: =?UTF-8?B?QXLEsW7DpyDDnE5BTA==?= To: Vladimir Oltean Cc: Andrew Lunn , Florian Fainelli , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Woojung Huh , UNGLinuxDriver@microchip.com, Linus Walleij , =?UTF-8?Q?Alvin_=C5=A0ipraga?= , Daniel Golle , Landen Chao , DENG Qingfang , Sean Wang , Matthias Brugger , AngeloGioacchino Del Regno , mithat.guner@xeront.com, erkin.bozoglu@xeront.com, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org References: <20230812091708.34665-3-arinc.unal@arinc9.com> <47b61929-5c2d-4906-b153-2046a94858c8@arinc9.com> <47b61929-5c2d-4906-b153-2046a94858c8@arinc9.com> <20230813112026.ohsx6srbt2staxma@skbuf> <8a8e14f1-0493-4298-a2cc-6e7ae7929334@arinc9.com> <20230813190157.4y3zoro53qsz43pe@skbuf> <20230814143601.mnpxtcm2zybnbvoh@skbuf> <0cee0928-74c9-4048-8cd8-70bfbfafd9b2@arinc9.com> <20230827121235.zog4c3ehu2cyd3jy@skbuf> <676d1a2b-6ffa-4aff-8bed-a749c373f5b3@arinc9.com> <87325ce9-595a-4dda-a6a1-b5927d25719b@arinc9.com> In-Reply-To: <87325ce9-595a-4dda-a6a1-b5927d25719b@arinc9.com> X-GND-Sasl: arinc.unal@arinc9.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230909_125404_573174_5F565AE0 X-CRM114-Status: GOOD ( 45.56 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gOS4wOS4yMDIzIDExOjUzLCBBcsSxbsOnIMOcTkFMIHdyb3RlOgo+IE9uIDQuMDkuMjAyMyAx NDozMywgQXLEsW7DpyDDnE5BTCB3cm90ZToKPj4gSGV5IFZsYWRpbWlyLAo+Pgo+PiBPbiAyNy4w OC4yMDIzIDE1OjEyLCBWbGFkaW1pciBPbHRlYW4gd3JvdGU6Cj4+PiBIaSBBcsSxbsOnLAo+Pj4K Pj4+IEkgYW0gb24gdmFjYXRpb24gYW5kIEkgd2lsbCBqdXN0IHJlcGx5IHdpdGggc29tZSBjbGFy aWZpY2F0aW9uIGFzcGVjdHMsCj4+PiB3aXRob3V0IGhhdmluZyBkb25lIGFueSBmdXJ0aGVyIHJl c2VhcmNoIG9uIHRoZSB0b3BpYyBzaW5jZSBteSBsYXN0IHJlcGx5Lgo+Pj4KPj4+IE9uIFN1biwg QXVnIDI3LCAyMDIzIGF0IDExOjMzOjE2QU0gKzAzMDAsIEFyxLFuw6cgw5xOQUwgd3JvdGU6Cj4+ Pj4gQmVmb3JlIEkgY29udGludWUgY29tbWVudGluZywgSSdkIGxpa2UgdG8gc3RhdGUgbXkgdW5k ZXJzdGFuZGluZyBzbyB3ZSBjYW4KPj4+PiBtYWtlIHN1cmUgd2UncmUgb24gdGhlIHNhbWUgcGFn ZS4gSWYgYSBkcml2ZXIgZG9lc24ndCB1c2UKPj4+PiBkcy0+c2xhdmVfbWlpX2J1cywgdGhlIHN3 aXRjaCBpdCBjb250cm9scyBtdXN0IG5vdCBoYXZlIGFueSBpbnRlcm5hbCBNRElPCj4+Pj4gYnVz ZXMuIE90aGVyd2lzZSB0aGUgUEhZcyBvbiB0aGVzZSBidXNlcyBjb3VsZG4ndCBmdW5jdGlvbiwg YW5kIGFuIGltcHJvcGVyCj4+Pj4gZHJpdmVyIGxpa2UgdGhpcyB3b3VsZCBub3QgYmUgb24gdGhl IG9mZmljaWFsIExpbnV4IHNvdXJjZSBjb2RlLgo+Pj4KPj4+IEEgRFNBIHN3aXRjaCBwb3J0LCBs aWtlIGFueSBPRi1iYXNlZCBldGhlcm5ldC1jb250cm9sbGVyIHdoaWNoIHVzZXMKPj4+IHBoeWxp bmssIHdpbGwgdXNlIG9uZSBvZiB0aGUgcGh5LWhhbmRsZSwgZml4ZWQtbGluayBvciBtYW5hZ2Vk IHByb3BlcnRpZXMKPj4+IHRvIGRlc2NyaWJlIHRoZSBpbnRlcmZhY2UgY29ubmVjdGluZyB0aGUg TUFDL01BQy1zaWRlIFBDUyB0byB0aGUgUEhZLgo+Pj4KPj4+IEF0IGl0cyBjb3JlLCBkcy0+c2xh dmVfbWlpX2J1cyBpcyBub3RoaW5nIG1vcmUgdGhhbiBhIG1lY2hhbmlzbSB0byBtYWtlCj4+PiBz ZW5zZSBvZiBkZXZpY2UgdHJlZXMgd2hlcmUgdGhlIGFib3ZlIDMgcGh5bGluayBwcm9wZXJ0aWVz IGFyZSBub3QgcHJlc2VudC4KPj4+Cj4+PiBJdCBpcyBjb21wbGV0ZWx5IGZhbHNlIHRvIHNheSB0 aGF0IGlmIGEgZHJpdmVyIGRvZXNuJ3QgaGF2ZSBkcy0+c2xhdmVfbWlpX2J1cywKPj4+IGl0IG11 c3Qgbm90IGhhdmUgYW4gaW50ZXJuYWwgTURJTyBidXMuIEJlY2F1c2UgeW91IGNvdWxkIHN0aWxs IGRlc2NyaWJlCj4+PiB0aGF0IGludGVybmFsIE1ESU8gYnVzIGxpa2UgYmVsb3csIHdpdGhvdXQg bWFraW5nIGFueSB1c2Ugb2YgdGhlIHNvbGUgcHJvcGVydHkKPj4+IHRoYXQgbWFrZXMgZHMtPnNs YXZlX21paV9idXMgdXNlZnVsIGZyb20gYSBkdC1iaW5kaW5ncyBwZXJzcGVjdGl2ZS4KPj4+Cj4+ PiBldGhlcm5ldC1zd2l0Y2ggewo+Pj4gwqDCoMKgwqBldGhlcm5ldC1wb3J0cyB7Cj4+PiDCoMKg wqDCoMKgwqDCoCBwb3J0QDAgewo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWcgPSA8MD47 Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBoeS1oYW5kbGUgPSA8JnBvcnQwX3BoeT47Cj4+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBoeS1tb2RlID0gImludGVybmFsIjsKPj4+IMKgwqDC oMKgwqDCoMKgIH07Cj4+PiDCoMKgwqDCoH07Cj4+Pgo+Pj4gwqDCoMKgwqBtZGlvIHsKPj4+IMKg wqDCoMKgwqDCoMKgIHBvcnQwX3BoeTogZXRoZXJuZXQtcGh5QDAgewo+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCByZWcgPSA8MD47Cj4+PiDCoMKgwqDCoMKgwqDCoCB9Owo+Pj4gwqDCoMKgwqB9 Owo+Pj4gfTsKPj4+Cj4+PiBUaGlzIGlzIHRoZSBtb3JlIHVuaXZlcnNhbCB3YXkgb2YgZGVzY3Jp YmluZyB0aGUgcG9ydCBzZXR1cCBpbiBhbgo+Pj4gT0YtYmFzZWQgd2F5LiBUaGVyZSBpcyBhbHNv IHRoZSBEU0Etc3BlY2lmaWMgKGFuZCBvbGQtc3R5bGUsIGJlZm9yZSBwaHlsaW5rKQo+Pj4gd2F5 IG9mIGRlc2NyaWJpbmcgdGhlIHNhbWUgdGhpbmcsIHdoaWNoIHJlbGllcyBvbiB0aGUgbm9uLU9G LWJhc2VkCj4+PiBkcy0+c2xhdmVfbWlpX2J1cywgd2l0aCBiaW5kaW5ncyB0aGF0IGxvb2sgbGlr ZSB0aGlzOgo+Pj4KPj4+IGV0aGVybmV0LXN3aXRjaCB7Cj4+PiDCoMKgwqDCoGV0aGVybmV0LXBv cnRzIHsKPj4+IMKgwqDCoMKgwqDCoMKgIHBvcnRAMCB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHJlZyA9IDwwPjsKPj4+IMKgwqDCoMKgwqDCoMKgIH07Cj4+PiDCoMKgwqDCoH07Cj4+PiB9 Owo+Pj4KPj4+IEJ1dCwgSSB3b3VsZCBzYXkgdGhhdCB0aGUgZmlyc3QgdmFyaWFudCBvZiB0aGUg YmluZGluZyBpcyBwcmVmZXJhYmxlLAo+Pj4gc2luY2UgaXQgaXMgbW9yZSB1bml2ZXJzYWwuCj4+ Pgo+Pj4gTm90IGFsbCBzd2l0Y2hlcyB0aGF0IGhhdmUgYW4gaW50ZXJuYWwgTURJTyBidXMgc3Vw cG9ydCB0aGUgc2Vjb25kCj4+PiB2YXJpYW50IG9mIHRoZSBkdC1iaW5kaW5nICh0aGUgb25lcyB0 aGF0IGRvbid0IGhhdmUgZHMtPnNsYXZlX21paV9idXMgZG9uJ3QpLgo+Pj4gQnV0LCB0aGV5IHN1 cHBvcnQgdGhlIHNhbWUgY29uZmlndXJhdGlvbiB0aHJvdWdoIHRoZSBmaXJzdCBmb3JtLgo+Pgo+ PiBVbmRlcnN0b29kLgo+Pgo+Pj4KPj4+IEZ1cnRoZXJtb3JlLCBvbiB0aGUgVS1Cb290IG1haWxp bmcgbGlzdHMsIEkgaGF2ZSBiZWVuIHN1Z2dlc3RpbmcgdGhhdAo+Pj4gdGhlIERNX0RTQSBkcml2 ZXIgZm9yIG12ODhlNnh4eCBzaG91bGQgbm90IGJvdGhlciB0byBzdXBwb3J0IHRoZSBzZWNvbmQK Pj4+IHZlcnNpb24gb2YgdGhlIGJpbmRpbmcsIHNpbmNlIGl0IGlzIGp1c3QgbW9yZSBjb2RlIHRv IGJlIGFkZGVkIHRvIGhhbmRsZQo+Pj4gYSBjYXNlIHdoaWNoIGNhbiBhbHJlYWR5IGJlIGRlc2Ny aWJlZCB3aXRoIHRoZSBtb3JlIHVuaXZlcnNhbCBmaXJzdCBiaW5kaW5nLgo+Pgo+PiBUaGF0IG1h a2VzIHNlbnNlLgo+Pgo+Pj4KPj4+PiBJJ3ZlIGNoZWNrZWQgbXNjYyx2c2M3NTE0LXN3aXRjaC4g V2hhdCBJIHNlZSBpcywgdGhlIGFyY2hpdGVjdHVyZSBpcyBhbiBTb0MKPj4+PiB3aXRoIGEgc3dp dGNoIGNvbXBvbmVudC4gU2luY2UgdGhlIHN3aXRjaCBjb21wb25lbnQgaXMgbm90IGRlc2lnbmVk IHRvIGJlIGEKPj4+PiBzdGFuZGFsb25lIElDLCB0aGUgTURJTyBidXMgb2YgdGhlIFNvQyBjb3Vs ZCBqdXN0IGFzIHdlbGwgYmUgdXNlZCB3aXRob3V0Cj4+Pj4gdGhlIG5lZWQgdG8gZGVzaWduIGFu IE1ESU8gY29udHJvbGxlciBzcGVjaWZpYyB0byB0aGUgc3dpdGNoIGNvbXBvbmVudCwgdG8KPj4+ PiBtYW5hZ2UgdGhlIFBIWXMuIFNvIEkgc2VlIHRoaXMgc3dpdGNoIGFzIGp1c3QgYW5vdGhlciBj YXNlIG9mIGEgc3dpdGNoCj4+Pj4gd2l0aG91dCBhbiBpbnRlcm5hbCBNRElPIGJ1cy4KPj4+Cj4+ PiBXZWxsLCB3ZSBuZWVkIHRvIGNsYXJpZnkgdGhlIHNlbWFudGljcyBvZiBhbiAiaW50ZXJuYWwi IE1ESU8gYnVzLgo+Pj4KPj4+IEkgd291bGQgc2F5IG1vc3QgZGlzY3JldGUgY2hpcHMgd2l0aCBE U0Egc3dpdGNoZXMgaGF2ZSB0aGlzIFNvQy1zdHlsZQo+Pj4gYXJjaGl0ZWN0dXJlLCB3aXRoIHNl cGFyYXRlIGFkZHJlc3Mgc3BhY2VzIGZvciB0aGUgc3dpdGNoaW5nIElQLCBNRElPCj4+PiBidXMs IEdQSU8gY29udHJvbGxlciwgSVJRIGNvbnRyb2xsZXJzLCB0ZW1wZXJhdHVyZSBzZW5zb3JzIGV0 YyAoc2VlCj4+PiAibXNjYyx2c2M3NTEyLXN3aXRjaCIgd2hpY2ggaXMgbGlrZSAibXNjYyx2c2M3 NTE0LXN3aXRjaCIsIGJ1dCBpdCBpcwo+Pj4gY29udHJvbGxlZCBvdmVyIFNQSU8gaW5zdGVhZCBv ZiBNTUlPKS4gVGhlIGR0LWJpbmRpbmdzIG9mIG1vc3QgRFNBCj4+PiBzd2l0Y2hlcyBtYXkgb3Ig bWF5IG5vdCByZWZsZWN0IHRoYXQgZGlzY3JldGUgY2hpcCBvcmdhbml6YXRpb24uIFRob3NlCj4+ PiBkcml2ZXJzIGFuZCBkdC1iaW5kaW5ncyBjb3VsZCBiZSByZWltYWdpbmVkIHNvIHRoYXQgRFNB IGlzIG5vdCB0aGUKPj4+IHRvcC1sZXZlbCBkcml2ZXIuCj4+Pgo+Pj4gWWV0LCBJIHdvdWxkIGFy Z3VlIHRoYXQgaXQncyB3cm9uZyB0byBzYXkgdGhhdCBiZWNhdXNlIGl0IGlzbid0IGFuIE9GCj4+ PiBjaGlsZCBvZiB0aGUgc3dpdGNoLCB0aGUgTURJTyBidXMgb2YgdGhlIFZTQzc1MTQgaXMgbm90 IGludGVybmFsIGluIHRoZQo+Pj4gc2FtZSB3YXkgdGhhdCB0aGUgUmVhbHRlayBNRElPIGJ1cyBp cyBpbnRlcm5hbC4gVGhlIHN3aXRjaCBwb3J0cyBhcmUKPj4+IGNvbm5lY3RlZCB0byBpbnRlcm5h bCBQSFlzIG9uIHRoaXMgTURJTyBidXMsIGFuZCB0aGVyZSBhcmVuJ3QgUEhZcyBvbgo+Pj4gdGhp cyBNRElPIGJ1cyB0aGF0IGdvIHRvIG90aGVyIE1BQ3MgdGhhbiB0aGUgc3dpdGNoIHBvcnRzLiBT bywgdGhlCj4+PiBWU0M3NTE0IE1ESU8gYnVzIGNvdWxkIGxlZ2FsbHkgYmUgY2FsbGVkIHRoZSBp bnRlcm5hbCBNRElPIGJ1cyBvZiB0aGUKPj4+IHN3aXRjaCwgZXZlbiBpZiB0aGVyZSBpc24ndCBh IHBhcmVudC9jaGlsZCByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGVtLgo+Pgo+PiBHb29kIHBvaW50 LCBJIGhhZCBiZWxpZXZlZCB0aGF0IHRoZSBtYW5hZ2VtZW50IGludGVyZmFjZSBvZiBhbGwgb2Yg dGhlIFBIWXMKPj4gYmVpbmcgY29ubmVjdGVkIHRvIHRoZSBNRElPIGJ1cyAtIHdoaWNoIGlzIG5v dCBwYXJ0IG9mIHRoZSBzd2l0Y2hpbmcgSVAKPj4gYWRkcmVzcyBzcGFjZSAtIHdvdWxkIGJlIGVu b3VnaCB0byBjbGFzc2lmeSB0aGUgTURJTyBidXMgYXMgbm9uLWludGVybmFsLgo+Pgo+PiBIb3dl dmVyLCB0aGUgYXJjaGl0ZWN0dXJlIG9mIHNlcGFyYXRlIGFkZHJlc3Mgc3BhY2VzIGZvciB0aGUg c3dpdGNoaW5nIElQCj4+IGFuZCBNRElPIGJ1cyBpcyB1c2VkIG9uIGFueSB0eXBlIG9mIElDIHdp dGggdGhlIHN3aXRjaGluZyBmZWF0dXJlLgo+PiBUaGVyZWZvcmUsIHRoaXMgY2hhcmFjdGVyaXN0 aWMgY2Fubm90IGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2ggd2hldGhlciBhbgo+PiBNRElPIGJ1cyBp cyBvZiBhIHN3aXRjaC4KPj4KPj4gV2hhdCB3ZSBjYW4gcmVmZXIgdG8gdG8gY2xhc3NpZnkgYW4g aW50ZXJuYWwgTURJTyBidXMgaXMgYnkgY29uZmlybWluZyB0aGUKPj4gZGF0YSBpbnRlcmZhY2Ug b2YgYWxsIFBIWXMgb24gdGhlIE1ESU8gYnVzIGlzIGNvbm5lY3RlZCB0byB0aGUgc3dpdGNoIHBv cnQKPj4gTUFDcywgYXMgeW91IGhhdmUgcG9pbnRlZCBvdXQgaGVyZS4KPj4KPj4gQmVjYXVzZSB0 aGUgYXJjaGl0ZWN0dXJlIG9mIHNlcGFyYXRlIGFkZHJlc3Mgc3BhY2VzIGZvciB0aGUgc3dpdGNo aW5nIElQCj4+IGFuZCBNRElPIGJ1cyBpcyB1c2VkIG9uIGFueSB0eXBlIG9mIElDIHdpdGggdGhl IHN3aXRjaGluZyBmZWF0dXJlLCBpdCBjYW4KPj4gZGlmZmVyIGJ5IGRyaXZlciBob3cgdGhlIE1E SU8gYnVzIGlzIGRlZmluZWQgb24gdGhlIGR0LWJpbmRpbmdzLiBTbyB3ZQo+PiBjYW4ndCBtYWtl IHVuaXZlcnNhbCBiaW5kaW5ncyBvZiBhbiBpbnRlcm5hbCBNRElPIGJ1cyBvZiBhIHN3aXRjaCB0 aGF0Cj4+IGFwcGx5IHRvIGV2ZXJ5IHN3aXRjaC4KPj4KPj4gU28sIHRoZSBjb3JyZWN0IGFwcHJv YWNoIGlzIHRvIGRlZmluZSB0aGluZ3MgdW5kZXIgdGhlIHN3aXRjaC1zcGVjaWZpYwo+PiBzY2hl bWEgd2hpY2ggaXMgYWZmaW5lIHRvIHRoZSBkcml2ZXIsIGFzIHlvdSBoYXZlIGFscmVhZHkgcG9p bnRlZCBvdXQuCj4+IFdoaWNoIHNjaGVtYXMgdG8gZGVmaW5lIHdoYXQgd2lsbCBvZiBjb3Vyc2Ug ZGlmZmVyLgo+Pgo+Pj4KPj4+IFNvLCB3aGF0IEknbSBkaXNhZ3JlZWluZyB3aXRoIGlzIHlvdXIg aW5zaXN0ZW5jZSB0byBjb3JyZWxhdGUgeW91cgo+Pj4gcHJvYmxlbSB3aXRoIGludGVybmFsIE1E SU8gYnVzZXMuIFRoZSB3YXkgaW4gd2hpY2ggdGhlIHByb2JsZW0gaXMKPj4+IGZvcm11bGF0ZWQg ZGljdGF0ZXMgd2hhdCBwcm9ibGVtIGdldHMgc29sdmVkLCBhbmQgdGhlIHByb2JsZW0gaXMgbm90 Cj4+PiBjb3JyZWN0bHkgZm9ybXVsYXRlZCBoZXJlLiBJdCBpcyBwdXJlbHkgYWJvdXQgZHMtPnNs YXZlX21paV9idXMgYW5kIGl0cwo+Pj4gZHJpdmVyLWRlZmluZWQgT0YgcHJlc2VuY2UvYWJzZW5j ZS4gSXQgaXMgYSBEU0Etc3BlY2lmaWMgYmluZGluZyBhc3BlY3QKPj4+IHdoaWNoIG5vdCBldmVu IGFsbCBEU0Egc3dpdGNoZXMgaW5oZXJpdCwgbGV0IGFsb25lIGJpbmRpbmdzIG91dHNpZGUgRFNB Lgo+Pgo+PiBHb3QgaXQuCj4+Cj4+Pgo+Pj4+PiBGb3Igc3dpdGNoZXMgaW4gdGhlIHNlY29uZCBj YXRlZ29yeSwgaXQgYWxsIGRlcGVuZHMgb24gdGhlIHdheSBpbiB3aGljaAo+Pj4+PiB0aGUgZHJp dmVyIGZpbmRzIHRoZSBub2RlIGZvciBvZl9tZGlvYnVzX3JlZ2lzdGVyKCkuCj4+Pj4KPj4+PiBP aywgc28gc29tZSBkcml2ZXJzIHJlcXVpcmUgdGhlIG1kaW8gY2hpbGQgbm9kZS4gU29tZSByZXF1 aXJlIGl0IGFuZCB0aGUKPj4+PiBjb21wYXRpYmxlIHByb3BlcnR5IHdpdGggYSBjZXJ0YWluIHN0 cmluZy4KPj4+Pgo+Pj4+IE1ESU8gY29udHJvbGxlZCBSZWFsdGVrIHN3aXRjaGVzIGRvIG5vdCBu ZWVkIHRoZSBjb21wYXRpYmxlIHByb3BlcnR5IHVuZGVyCj4+Pj4gdGhlIG1kaW8gY2hpbGQgbm9k ZS4gVGhlcmUncmUgbm8gY29tcGF0aWJsZSBzdHJpbmdzIHRvIG1ha2UgYSBkaXN0aW5jdGlvbgo+ Pj4+IGJldHdlZW4gdGhlIFNNSSBhbmQgTURJTyBjb250cm9sbGVkIHN3aXRjaGVzIHNvIHRoZSBi ZXN0IHdlIGNhbiBkbyBpcyBrZWVwCj4+Pj4gaXQgdGhlIHdheSBpdCBjdXJyZW50bHkgaXMuIERl ZmluZSByZWFsdGVrLHNtaS1tZGlvIGFzIGEgY29tcGF0aWJsZSBzdHJpbmcKPj4+PiBidXQga2Vl cCB0aGUgY29tcGF0aWJsZSBwcm9wZXJ0eSBvcHRpb25hbC4gSSBkaWQgc3RhdGUgdGhpcyBvbiBt eSByZXBseSB0bwo+Pj4+IHBhdGNoIDMgYnV0IHN0aWxsIHJlY2VpdmVkIHJldmlld2VkLWJ5cyBy ZWdhcmRsZXNzLgo+Pj4KPj4+IFllcywgYmVjYXVzZS4uLi4gWzFdCj4+Pgo+Pj4+PiBIYXZpbmcg aWRlbnRpZmllZCBhbGwgc3dpdGNoZXMgd2hpY2ggbWFrZSBzb21lIHNvcnQgb2YgdXNlIG9mCj4+ Pj4+IGRzLT5zbGF2ZV9taWlfYnVzLCB0aGUgcnVsZSB3b3VsZCBzb3VuZCBsaWtlIHRoaXM6Cj4+ Pj4+Cj4+Pj4+IDEuIElmIHRoZSBzY2hlbWEgaXMgdGhhdCBvZiAobmVlZCB0byByZXBsYWNlIHRo aXMgd2l0aCBjb21wYXRpYmxlCj4+Pj4+IMKgwqDCoMKgIHN0cmluZ3MsIEknbSB0b28gbGF6eSBm b3IgdGhhdCk6Cj4+Pj4+Cj4+Pj4+IMKgwqDCoMKgIC0ga3N6X3N3aXRjaF9vcHMKPj4+Pj4gwqDC oMKgwqAgLSBtdjg4ZTYwNjBfc3dpdGNoX29wcwo+Pj4+PiDCoMKgwqDCoCAtIGxhbjkzMDNfc3dp dGNoX29wcwo+Pj4+PiDCoMKgwqDCoCAtIHJ0bDgzNjVtYl9zd2l0Y2hfb3BzX21kaW8KPj4+Pj4g wqDCoMKgwqAgLSBiNTNfc3dpdGNoX29wcwo+Pj4+PiDCoMKgwqDCoCAtIHZzYzczeHhfZHNfb3Bz Cj4+Pj4+IMKgwqDCoMKgIC0gbXY4OGU2eHh4Cj4+Pj4+IMKgwqDCoMKgIC0gcWNhOGsKPj4+Pj4K Pj4+Pj4gwqDCoMKgwqAgYW5kIHdlIGhhdmUgYW4gIm1kaW8iIGNoaWxkLCB0aGVuIHBoeWxpbmsg YmluZGluZ3MgYXJlIG1hbmRhdG9yeSBvbiB1c2VyIHBvcnRzLgo+Pj4+Pgo+Pj4+PiAyLiBJZiB0 aGUgc2NoZW1hIGlzIHRoYXQgb2YgZ3N3aXBfbWRpbyBhbmQgd2UgaGF2ZSBhIGNoaWxkIG5vZGUg b2YgImxhbnRpcSx4cngyMDAtbWRpbyIsCj4+Pj4+IMKgwqDCoMKgIHRoZW4gcGh5bGluayBiaW5k aW5ncyBhcmUgbWFuZGF0b3J5IG9uIHVzZXIgcG9ydHMgKEkgaGF2ZW4ndCBjaGVja2VkLAo+Pj4+ PiDCoMKgwqDCoCBidXQgaXQgbWlnaHQgYmUgdGhhdCB0aGUgImxhbnRpcSx4cngyMDAtbWRpbyIg Y2hpbGQgaXMgbWFuZGF0b3J5LCBhbmQKPj4+Pj4gwqDCoMKgwqAgaW4gdGhhdCBjYXNlLCB0aGlz IGdvZXMgdG8gY2F0ZWdvcnkgNCBiZWxvdykuCj4+Pj4+Cj4+Pj4+IDMuIElmIHRoZSBzY2hlbWEg aXMgdGhhdCBvZiByZWFsdGVrX3NtaV9zZXR1cF9tZGlvIGFuZCB3ZSBoYXZlIGEgY2hpbGQgbm9k ZSBvZgo+Pj4+PiDCoMKgwqDCoCAicmVhbHRlayxzbWktbWRpbyIsIHRoZW4gcGh5bGluayBiaW5k aW5ncyBhcmUgbWFuZGF0b3J5IG9uIHVzZXIgcG9ydHMKPj4+Pj4gwqDCoMKgwqAgKHNhbWUgY29t bWVudCBhYm91dCB0aGUgY2hpbGQgTURJTyBub3RlIG1heWJlIGJlaW5nIG1hbmRhdG9yeSkuCj4+ Pj4+Cj4+Pj4+IDQuIElmIHRoZSBzd2l0Y2ggZGlkbid0IGFwcGVhciBpbiB0aGUgYWJvdmUgc2V0 IG9mIHJ1bGVzLCB0aGVuIHBoeWxpbmsKPj4+Pj4gwqDCoMKgwqAgYmluZGluZ3MgYXJlIHVuY29u ZGl0aW9uYWxseSBtYW5kYXRvcnkgb24gdXNlciBwb3J0cy4KPj4+Pj4KPj4+Pj4gV2UgZG9uJ3Qg Y2FyZSBhdCBhbGwgd2hhdCB0aGUgZHJpdmVycyB0aGF0IGRvbid0IHVzZSBkcy0+c2xhdmVfbWlp X2J1cwo+Pj4+PiBkbyB3aXRoIHRoZSAibWRpbyIgY2hpbGQgbm9kZS4gSXQgZG9lc24ndCBjaGFu Z2UgdGhlIGZhY3QgdGhhdCB0aGVpcgo+Pj4+PiB1c2VyIHBvcnRzIGNhbid0IGhhdmUgbWlzc2lu ZyBwaHlsaW5rIGJpbmRpbmdzLgo+Pj4+Cj4+Pj4gSSBwYXJ0aWFsbHkgYWdyZWUuIEkgc2F5LCBm b3IgdGhlIHN3aXRjaGVzIHdpdGhvdXQgYW4gaW50ZXJuYWwgTURJTyBidXMsCj4+Pj4gaW52YWxp ZGF0ZSB0aGUgbWRpbyBjaGlsZCBub2RlLCBhbmQgZW5mb3JjZSB0aGUgcGh5bGluayBiaW5kaW5n cyBvbiB0aGUKPj4+PiB1c2VyIHBvcnRzLiBTdWNoIGFzIG1zY2MsdnNjNzUxNC1zd2l0Y2ggYW5k IG54cCxzamExMTA1eC4gRm9yIG54cCxzamExMTEweCwKPj4+PiBpbnZhbGlkYXRlIHRoZSBtZGlv IGNoaWxkIG5vZGUsIGFuZCBlbmZvcmNlIHRoZSBwaHlsaW5rIGJpbmRpbmdzIG9uIHRoZQo+Pj4+ IHVzZXIgcG9ydHMgaWYgdGhlIG1kaW9zIHByb3BlcnR5IGlzIHVzZWQuCj4+Pgo+Pj4gV2h5ICJp ZiB0aGUgbWRpb3MgcHJvcGVydHkgaXMgdXNlZCIgYW5kIG5vdCAiYWx3YXlzIj8gOi0vCj4+Pgo+ Pj4gVG8gc2F5IGl0IGFnYWluOiBiZWNhdXNlIHRoZSBzamExMTA1IGRyaXZlciBkb2VzIG5vdCB1 c2UgZHMtPnNsYXZlX21paV9idXMsCj4+PiBpdCBjYW4gbWFrZSBubyBzZW5zZSBvZiBkdC1iaW5k aW5ncyBvbiB1c2VyIHBvcnRzIHdoaWNoIGxhY2sgcGh5bGluayBwcm9wZXJ0aWVzLgo+Pj4gU28g dGhleSBhcmUgKmFsd2F5cyogbmVlZGVkLiBUaGUgIm1kaW9zIiBwcm9wZXJ0eSBjaGFuZ2VzIG5v dGhpbmcgaW4gdGhhdCByZWdhcmQuCj4+Cj4+IEdvdCBpdC4KPj4KPj4+Cj4+Pj4KPj4+PiBJJ2Qg bGlrZSB0byBhZGQgdGhpcyBiZWZvcmUgSSBjb25jbHVkZS4gVGhlIHdheSBJIHVuZGVyc3RhbmQg ZHQtYmluZGluZ3MgaXMKPj4+PiB0aGF0IGEgYmluZGluZyBkb2VzIG5vdCBoYXZlIHRvIHRyYW5z bGF0ZSB0byBhbiBhY3Rpb24gb24gdGhlIGRyaXZlci4KPj4+PiBEb2N1bWVudGluZyBiaW5kaW5n cyBmb3IgdGhlIHNvbGUgcHVycG9zZSBvZiBkZXNjcmliaW5nIGhhcmR3YXJlIGlzIGEgdmFsaWQK Pj4+PiBjYXNlLgo+Pj4KPj4+IFsxXSAuLi50aGlzLiBUaGUgU01JLWNvbnRyb2xsZWQgYW5kIE1E SU8tY29udHJvbGxlZCBSZWFsdGVrIHN3aXRjaGVzIGFyZQo+Pj4gb3RoZXJ3aXNlIHRoZSBzYW1l LCByaWdodD8gU28gd2h5IHdvdWxkIHRoZXkgaGF2ZSBkaWZmZXJlbnQgZHQtYmluZGluZ3M/Cj4+ Cj4+IEhvbmVzdGx5LCBJJ20gd29uZGVyaW5nIHRoZSBhbnN3ZXIgdG8gdGhpcyBhcyB3ZWxsLiBG b3Igc29tZSByZWFzb24sIHdoZW4KPj4gcHJvYmluZyB0aGUgU01JIGNvbnRyb2xsZWQgUmVhbHRl ayBzd2l0Y2hlcywgaW5zdGVhZCBvZiBqdXN0IGxldHRpbmcKPj4gZHNhX3N3aXRjaF9zZXR1cCgp IHBvcHVsYXRlIGRzLT5zbGF2ZV9taWlfYnVzLCBvbiByZWFsdGVrX3NtaV9zZXR1cF9tZGlvKCkK Pj4gb24gcmVhbHRlay1zbWkuYzoKPj4KPj4gLSBwcml2LT5zbGF2ZV9taWlfYnVzIGlzIGFsbG9j YXRlZC4KPj4gLSBtZGlvX25wID0gb2ZfZ2V0X2NvbXBhdGlibGVfY2hpbGQocHJpdi0+ZGV2LT5v Zl9ub2RlLCAicmVhbHRlayxzbWktbWRpbyIpOwo+PiAtIHByaXYtPnNsYXZlX21paV9idXMtPmRl di5vZl9ub2RlID0gbWRpb19ucDsKPj4gLSBkcy0+c2xhdmVfbWlpX2J1cyA9IHByaXYtPnNsYXZl X21paV9idXM7Cj4+Cj4+Pgo+Pj4+IEZvciBleGFtcGxlLCBjdXJyZW50bHksIHRoZSBNVDc1M1gg RFNBIHN1YmRyaXZlciB3b24ndCwgaW4gYW55IHdheSwKPj4+PiByZWdpc3RlciB0aGUgYnVzIE9G LWJhc2VkLiBTdGlsbCwgdGhlIG1kaW8gcHJvcGVydHkgZm9yIHRoZSBzd2l0Y2hlcyB3aGljaAo+ Pj4+IHRoaXMgZHJpdmVyIGNvbnRyb2xzIGNhbiBiZSBkb2N1bWVudGVkIGJlY2F1c2UgdGhlIGlu dGVybmFsIG1kaW8gYnVzIGRvZXMKPj4+PiBleGlzdCBvbiB0aGUgaGFyZHdhcmUuCj4+Pgo+Pj4g SXQgY2FuLCBidXQgdGhlIHdob2xlIHBvaW50IGlzOiBpZiBkcy0+c2xhdmVfbWlpX2J1cyBnYWlu cyBhbiBPRiBwcmVzZW5jZSwKPj4+IHRoZW4gaXQgbG9zZXMgaXRzIGNvcmUgZnVuY3Rpb25hbGl0 eSAodGhhdCB1c2VyIHBvcnRzIGNhbiBsYWNrIHBoeWxpbmsKPj4+IGJpbmRpbmdzKS4gVGhpcyBp cyB0aGUgZW50aXJlIGVzc2VuY2Ugb2Ygd2hhdCB0aGlzIGRpc2N1c3Npb24gc2hvdWxkIGNhcHR1 cmUuCj4+Cj4+IFVuZGVyc3Rvb2QuCj4+Cj4+Pgo+Pj4+Cj4+Pj4gU28gSSdkIGxpa2UgdG8ga2Vl cCB0aGUgbWRpbyBwcm9wZXJ0eSB2YWxpZCBmb3IgdGhlIHN3aXRjaGVzIHdoaWNoIHRoZWlyCj4+ Pj4gZHJpdmVycyBjYW4gb25seSByZWdpc3RlciBub24tT0YtYmFzZWQgZHMtPnNsYXZlX21paV9i dXMuCj4+Pj4KPj4+PiBJbiBjb25jbHVzaW9uLCB3aGF0IHRvIGRvOgo+Pj4+Cj4+Pj4gLSBEZWZp bmUgInRoZSBtZGlvIHByb3BlcnR5IiBhbmQgInRoZSBlbmZvcmNlbWVudCBvZiBwaHlsaW5rIGJp bmRpbmdzIGZvcgo+Pj4+IMKgwqAgdXNlciBwb3J0cyBpZiBtZGlvIHByb3BlcnR5IGlzIHVzZWQi IG9uIGV0aGVybmV0LXN3aXRjaC55YW1sLgo+Pj4+IMKgwqDCoMKgIC0gSW52YWxpZGF0ZSB0aGUg bWRpbyBwcm9wZXJ0eSBvbiB0aGUgc3dpdGNoZXMgd2l0aG91dCBhbiBpbnRlcm5hbCBNRElPCj4+ Pj4gwqDCoMKgwqDCoMKgIGJ1cy4KPj4+PiAtIERlZmluZSAidGhlIGVuZm9yY2VtZW50IG9mIHBo eWxpbmsgYmluZGluZ3MgZm9yIHVzZXIgcG9ydHMiIG9uIHRoZQo+Pj4+IMKgwqAgc3dpdGNoZXMg d2l0aG91dCBhbiBpbnRlcm5hbCBNRElPIGJ1cy4KPj4+PiAtIFJlcXVpcmUgInRoZSBtZGlvIHBy b3BlcnR5IiBmb3IgdGhlIHN3aXRjaGVzIHdoaWNoIHRoZWlyIGRyaXZlciByZXF1aXJlcwo+Pj4+ IMKgwqAgaXQgdG8gZnVuY3Rpb24uCj4+Pj4gLSBSZXF1aXJlICJ0aGUgbWRpbyBwcm9wZXJ0eSIg YW5kICJ0aGUgY29tcGF0aWJsZSBzdHJpbmcgb2YgdGhlIG1kaW8KPj4+PiDCoMKgIHByb3BlcnR5 IiBmb3IgdGhlIHN3aXRjaGVzIHdoaWNoIHRoZWlyIGRyaXZlciByZXF1aXJlcyB0aGVtIHRvIGZ1 bmN0aW9uLgo+Pj4+Cj4+Pj4gVGhlcmUncyBubyAxOjEgc3dpdGNoIHRvIHN3aXRjaCBjb21wYXRp YmxlIHN0cmluZyByZWxhdGlvbiwgYXMgc2VlbiBvbgo+Pj4+IFJlYWx0ZWsgc3dpdGNoZXMgc28g SSdsbCBoYXZlIHRvIGZpZ3VyZSB0aGF0IG91dCBhcyBJIGdvLgo+Pj4+Cj4+Pj4gSSdtIG9wZW4g dG8geW91ciBjb21tZW50cyB0byB0aGlzIG1haWwgYnV0IHRoZSBnYXAgYmV0d2VlbiBkaXNjdXNz aW9uIGFuZAo+Pj4+IGVuZCByZXN1bHQgaGFzIHdpZGVuZWQgYSBsb3Qgb24gdGhpcyBwYXRjaCBz ZXJpZXMgc28gSSdkIGxpa2UgdG8gZmlyc3QKPj4+PiBvZmZsb2FkIHRoaXMgY29udmVyc2F0aW9u IGJ5IHByZXBhcmluZyB2MiB3aXRoIHdoYXQgSSBzYWlkIGhlcmUgYW5kIGRpc2N1c3MKPj4+PiBm dXJ0aGVyIHRoZXJlLgo+Pj4KPj4+IEhvbmVzdGx5LCBmcm9tIG15IHNpZGUsIGEgdmVyYmFsIGNv bW1lbnQgaW4gdGhlIGR0LWJpbmRpbmdzIGRvY3VtZW50Cj4+PiB3b3VsZCBoYXZlIGJlZW4ganVz dCBmaW5lLCBhcyBsb25nIGFzIGl0IGlzIHRydXRoZnVsIHRvIHRoZSByZWFsaXR5IGl0Cj4+PiBk ZXNjcmliZXMuCj4+Pgo+Pj4gWW91IHdhbnRlZCB0byBvdmVyLWNvbXBsaWNhdGUgdGhpbmdzIHdp dGggYW4gYWN0dWFsIHNjaGVtYSB2YWxpZGF0aW9uLAo+Pj4gYW5kIHRoZW4gaG9va2luZyBvbnRv IHRoaW5ncyB0aGF0IGFyZSB1bnJlbGF0ZWQgd2l0aCB0aGUgcGhlbm9tZW5vbiB0aGF0Cj4+PiBu ZWVkcyB0byBiZSBjYXB0dXJlZCAobGlrZSB0aGUgIm1kaW8iIGNoaWxkIG5vZGUsIHdpdGhvdXQg ZXhwbGljaXQKPj4+IHJlZ2FyZCB0byB3aGV0aGVyIGl0IGlzIHRoZSBkcy0+c2xhdmVfbWlpX2J1 cyBvciBub3QpLgo+Pj4KPj4+IEl0J3Mgbm90IGFib3V0IGludGVybmFsIE1ESU8gYnVzZXMgaW4g Z2VuZXJhbCwgaXQncyBhYm91dCB3aGV0aGVyIHRob3NlCj4+PiBpbnRlcm5hbCBNRElPIGJ1c2Vz IGFyZSB1c2VkIGluIGRzLT5zbGF2ZV9taWlfYnVzLCBhbmQgdGhlaXIgT0YKPj4+IHByZXNlbmNl L2Fic2VuY2UhIFRoYXQgaXMgYWJzb2x1dGVseSBkcml2ZXItc3BlY2lmaWMgYW5kIEkgd291bGQg b25seQo+Pj4gZXhwZWN0IGEgZHJpdmVyLXNwZWNpZmljIHdheSBvZiBlbmZvcmNpbmcgaXQuIEkg ZGlkbid0IHNheSBpdCdzIG5vdAo+Pj4gaGFyZCwgYW5kIEkgZGlkbid0IGFzayB0byBlbmZvcmNl IGl0LCBlaXRoZXIuCj4+Cj4+IE9LLCBJIGJlbGlldmUgd2UncmUgb24gdGhlIHNhbWUgcGFnZSBu b3csIEkgd2lsbCBzdGFydCB3b3JraW5nIG9uIHByb3Blcmx5Cj4+IGVuZm9yY2luZyB0aGlzLgo+ IAo+IEknbSB3cml0aW5nIGJlbG93IGFzIGEgbWl4IG9mIHBhdGNoIGxvZyBhbmQgZGlzY3Vzc2lv bi4KPiAKPiBQaHlsaW5rIGJpbmRpbmdzIGFyZSByZXF1aXJlZCBmb3IgcG9ydHMgdGhhdCBhcmUg Y29udHJvbGxlZCBieSBPRi1iYXNlZAo+IGJ1c2VzLiBEU0EsIGxpa2UgYW55IG90aGVyIGRyaXZl ciB1dGlsaXNpbmcgdGhlIExpbnV4IE1ESU8gaW5mcmFzdHJ1Y3R1cmUsCj4gY2FuIHJlZ2lzdGVy IGEgYnVzLiBJZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LCBub24tT0YtYmFzZWQgcmVnaXN0cmF0 aW9uIG9mCj4gT3BlbkZpcm13YXJlIE1ESU8gYnVzZXMgaXMgYSBmZWF0dXJlIHNwZWNpZmljIHRv IERTQSB3aGljaCBjZXJ0YWluIERTQQo+IHN1YmRyaXZlcnMgbWFrZSB1c2Ugb2YuCj4gCj4gVGhl cmUncyBubyB3YXkgdG8gZGlzdGluZ3Vpc2ggd2hpY2ggcG9ydCBpcyBjb250cm9sbGVkIGJ5IHdo aWNoIGRyaXZlcidzCj4gTURJTyBidXMgb24gdGhlIGJpbmRpbmdzIHNvIHdlIGNhbid0IGVuZm9y Y2UgcGh5bGluayBiaW5kaW5ncyBmb3IgYWxsIHVzZXIKPiBwb3J0cyBhcyB0aGlzIHdvdWxkIGFs c28gZW5mb3JjZSBwaHlsaW5rIGJpbmRpbmdzIG9uIHVzZXIgcG9ydHMgY29udHJvbGxlZAo+IGJ5 IGEgbm9uLU9GLWJhc2VkIGJ1cy4KPiAKPiBCdXQgd2UgY2FuIGtub3cgd2hlbiBEU0Egd29uJ3Qg Y3JlYXRlIGEgbm9uLU9GLWJhc2VkIGJ1cy4gVGhhdCBsZWF2ZXMgdXMKPiB3aXRoIG9ubHkgT0Yt YmFzZWQgYnVzZXMgaW4gd2hpY2ggY2FzZSB3ZSBjYW4gZW5mb3JjZSBwaHlsaW5rIGJpbmRpbmdz IGZvcgo+IGFsbCB1c2VyIHBvcnRzLiBTbyB3ZSBuZWVkIHRvIGNoZWNrIGVhY2ggRFNBIHN1YmRy aXZlciB0byBzZWUgd2hlbiBhbGwKPiBidXNlcyB3aWxsIGJlIE9GLWJhc2VkLgoKV2UgYWxzbyBu ZWVkIHRvIGRlY2lkZSB0aGUgcGh5bGluayBiaW5kaW5ncyBmb3IgdXNlciBwb3J0cy4KClBoeWxp bmsgYmluZGluZ3MgZm9yIENQVSBhbmQgRFNBIHBvcnRzOgoKYWxsT2Y6CiAgIC0gcmVxdWlyZWQ6 CiAgICAgICAtIHBoeS1tb2RlCiAgIC0gb25lT2Y6CiAgICAgICAtIHJlcXVpcmVkOgogICAgICAg ICAgIC0gZml4ZWQtbGluawogICAgICAgLSByZXF1aXJlZDoKICAgICAgICAgICAtIHBoeS1oYW5k bGUKICAgICAgIC0gcmVxdWlyZWQ6CiAgICAgICAgICAgLSBtYW5hZ2VkCgpPbiBvbmUgb2YgdGhl IG1zY2Msb2NlbG90LnlhbWwgZXhhbXBsZXMsICJwaHktaGFuZGxlIiBhbmQgIm1hbmFnZWQiIGFy ZQpkZWZpbmVkIG9uIHRoZSBzYW1lIHVzZXIgcG9ydC4gQXNzdW1pbmcgdGhlIGV4YW1wbGUgaXMg Y29ycmVjdCwgd2UgbXVzdAphbGxvdyBtb3JlIHRoYW4gMSBvZiB0aGVzZSBwcm9wZXJ0aWVzIHRv IGJlIHVzZWQgYXQgdGhlIHNhbWUgdGltZSBmb3IgdXNlcgpwb3J0cy4KCldlIG5lZWQgdG8gYXQg bGVhc3QgYWxsb3cgInBoeS1oYW5kbGUiIGFuZCAibWFuYWdlZCIgdG8gYmUgdXNlZCBhdCB0aGUg c2FtZQp0aW1lLiBEb2VzICJtYW5hZ2VkIiBhbHNvIGRlcGVuZCBvbiAicGh5LWhhbmRsZSI/CgpG b3IgZXhhbXBsZToKCm9uZU9mOgogICAtIHJlcXVpcmVkOgogICAgICAgLSBmaXhlZC1saW5rCiAg IC0gYW55T2Y6CiAgICAgICAtIHJlcXVpcmVkOgogICAgICAgICAgIC0gcGh5LWhhbmRsZQogICAg ICAgLSByZXF1aXJlZDoKICAgICAgICAgICAtIG1hbmFnZWQKCmRlcGVuZGVuY2llczoKICAgbWFu YWdlZDogWyBwaHktaGFuZGxlIF0KCkFyxLFuw6cKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK