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 F32B3C433EF for ; Mon, 29 Nov 2021 19:26:22 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:Cc:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Bf1i+pnG8vHt72arftvyVDMLkDOIofldMUufWukMm9s=; b=LmpGLMYNWwFiTz rRp3NdB6S6DDMeahjjnMW98jrdLgFaW+Ub/50ETjezstmx0cWdrX8hDhMF7BIBcbnfDPeKl1B86/c sCYOBzfbqvssanXyjbgsUTrEFi4C+WU7qKHc+DHDz5FkA8QMt0uAmOnwaGq8yY43/MszURrVFkBkO 8FWup6u/fRgGerN9Bw+GBQeNtKslZCOED0fIgTFg5VQTzAc79zI4tbEX9S0M4XG6lyOgngJ7ptVLQ WPDV/937ruYT/MFf2C/El/m9VotI+LwJu+jsfxl9dmgvllbErDSXhzLB3dt6+w8ZEWWq1CP6FE1Cp XLcOoLyu/l2kemzKgxOg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mrmG9-0026GQ-VZ; Mon, 29 Nov 2021 19:24:18 +0000 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mrmBT-00244R-LF for linux-arm-kernel@lists.infradead.org; Mon, 29 Nov 2021 19:19:30 +0000 Received: by mail-wr1-x430.google.com with SMTP id s13so39194863wrb.3 for ; Mon, 29 Nov 2021 11:19:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=qVp86ggDKWOSMbR+u7GYfx7O3eoA31VOAp6ctZC//6o=; b=W3p9muJEbzGfTISOQoEbGVHig8f01goO3YBtKvudH/k8ocHcb6kV/mE26S9f2T169e 9x8R11sw7eP+4tv3Jdjd6HXZ5o4lJ7dozC8HSJOgK86H3gbJ+cEcJUZLAO31sE/0UPg+ FespFCqKwMnc2Ge4QiuNu3nlmo8HV8zHoJqBEP6Glr+0sSbuWYMwQWTnZI0D12bW2WIS rZD5iY+dgH7NxJmhUuPeowDa3IO9GM2FVpSOY8g9bwAVHMPTZBUvwpOPNCRfucRQHnRk 2ZIZz4/dU/Eb1axv0QBfA5Qx+Toeng04CWg7PQasHORFL1ntPDtZWaICQZtVKNf317Ki ZuTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=qVp86ggDKWOSMbR+u7GYfx7O3eoA31VOAp6ctZC//6o=; b=TIe2QNPo1xPzpCeqCJV056ggqMaw0ogV9WPPU/RsDwi9UC6EqY9IlaT8iF6TNQjfJE AoCJVn+jAhRbklyE50s2CKm7Utvh4HjTGUuWf8paLmHwcJZ/bSgbu0H1zrd/ZA8avEny rdNHgv1lcoG+W9UPfqPVXb9WWX8S9d2Zym+glfwKxuA/GjwawZ3J4A+qun511yQCBQao OI3PWdgt2JYpRoMI4f8yBn4So6tEuATcGsat0JIME440nemLtGPvPOI4249+6SqYj1OF Ho0oTZUzvaJJMbPr8rEjHxJhVKGilL7I8prAay82iq6RMC73XVo08rfI8xdXkTgbGTao rQrA== X-Gm-Message-State: AOAM533WEM4WjyIvjkNGG9uFTsHaqy6cmpZQ/CIvIPgGZL7iS403YyXG bhum740Ao8VVXRm5c7QArYEV8iDNIyIFmg== X-Google-Smtp-Source: ABdhPJzuwMRcIWH56KLiQpJnfjZg+tljCxxNSe41NZpdHjHVa3DdHeXjrXhhpFBvEMAni2IxtdKWpQ== X-Received: by 2002:adf:dbd1:: with SMTP id e17mr35675104wrj.480.1638213564863; Mon, 29 Nov 2021 11:19:24 -0800 (PST) Received: from ?IPv6:2a02:ab88:368f:2080:eab:126a:947d:3008? ([2a02:ab88:368f:2080:eab:126a:947d:3008]) by smtp.gmail.com with ESMTPSA id l22sm156191wmp.34.2021.11.29.11.19.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Nov 2021 11:19:24 -0800 (PST) Message-ID: <97a28ade85f31f709c7848da5ebab0bdc802afd2.camel@gmail.com> Subject: Re: [PATCH 0/8] soc: samsung: Add USIv2 driver From: David Virag To: Sam Protsenko Cc: Krzysztof Kozlowski , Rob Herring , Mark Brown , Greg Kroah-Hartman , Jaewon Kim , Chanho Park , Youngmin Nam , devicetree@vger.kernel.org, linux-spi@vger.kernel.org, linux-serial@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-i2c@vger.kernel.org Date: Mon, 29 Nov 2021 20:19:01 +0100 In-Reply-To: References: <20211127223253.19098-1-semen.protsenko@linaro.org> User-Agent: Evolution 3.42.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211129_111927_779553_62FCC98C X-CRM114-Status: GOOD ( 85.92 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gTW9uLCAyMDIxLTExLTI5IGF0IDE1OjU2ICswMjAwLCBTYW0gUHJvdHNlbmtvIHdyb3RlOgo+ IE9uIFN1biwgMjggTm92IDIwMjEgYXQgMDU6MTUsIERhdmlkIFZpcmFnIDx2aXJhZy5kYXZpZDAw M0BnbWFpbC5jb20+Cj4gd3JvdGU6Cj4gPiAKPiA+IE9uIFN1biwgMjAyMS0xMS0yOCBhdCAwMDoz MiArMDIwMCwgU2FtIFByb3RzZW5rbyB3cm90ZToKPiA+ID4gVVNJdjIgSVAtY29yZSBwcm92aWRl cyBzZWxlY3RhYmxlIHNlcmlhbCBwcm90b2NvbCAoVUFSVCwgU1BJIG9yCj4gPiA+IEhpZ2gtU3Bl ZWQgSTJDKTsgb25seSBvbmUgY2FuIGJlIGNob3NlbiBhdCBhIHRpbWUuIFRoaXMgc2VyaWVzCj4g PiA+IGltcGxlbWVudHMgVVNJdjIgZHJpdmVyLCB3aGljaCBhbGxvd3Mgb25lIHRvIHNlbGVjdCBw YXJ0aWN1bGFyIFVTSQo+ID4gPiBmdW5jdGlvbiBpbiBkZXZpY2UgdHJlZSwgYW5kIGFsc28gcGVy Zm9ybXMgVVNJIGJsb2NrCj4gPiA+IGluaXRpYWxpemF0aW9uLgo+ID4gPiAKPiA+ID4gV2l0aCB0 aGF0IGRyaXZlciBpbXBsZW1lbnRlZCwgaXQncyBub3QgbmVlZGVkIHRvIGRvIFVTSQo+ID4gPiBp bml0aWFsaXphdGlvbgo+ID4gPiBpbiBwcm90b2NvbCBkcml2ZXJzIGFueW1vcmUsIHNvIHRoYXQg Y29kZSBpcyByZW1vdmVkIGZyb20gdGhlCj4gPiA+IHNlcmlhbAo+ID4gPiBkcml2ZXIuCj4gPiA+ IAo+ID4gCj4gPiBJIHRoaW5rIHRoZSBkb3duc3RyZWFtIHdheSBvZiBkb2luZyB0aGlzIChVU0kg bm9kZSByZWcgYmVpbmcgb24gdGhlCj4gPiBTV19DT05GIHJlZ2lzdGVyIGl0c2VsZiByYXRoZXIg dGhhbiBhbiBvZmZzZXQgZnJvbSB1YXJ0L2kyYy9zcGksIHRoZQo+ID4gVVNJIGRyaXZlciBvbmx5 IGNvbnRyb2xsaW5nIHRoZSBTV19DT05GLCBhbmQgdGhlIHVhcnQvaTJjL3NwaSBkcml2ZXJzCj4g PiBjb250cm9sbGluZyB0aGVpciBVU0lfQ09OIGFuZCBVU0lfT1BUSU9OIHJlZ3MpIGlzIGNsZWFu ZXIsIGJldHRlciwKPiA+IGFuZAo+ID4gZWFzaWVyIHRvIGFkYXB0IHRvIFVTSXYxIHRvby4KPiA+ IAo+IAo+IE9uZSByZWFzb24gd2h5IEkgdGhpbmsgaXQncyBiZXR0ZXIgdG8gcHJvdmlkZSBTV19D T05GIHJlZ2lzdGVyIHZpYQo+IHN5c2NvbiBub2RlLCBpcyB0aGF0IGl0IGhlbHBzIHVzIHRvIGF2 b2lkIHBvc3NpYmxlIHJlZ2lzdGVyIGFjY2Vzcwo+IGNvbmZsaWN0cyBpbiBmdXR1cmUsIGFuZCBh bHNvIGNvbmZsaWN0cyB3aGVuIHJlcXVlc3RpbmcgY29ycmVzcG9uZGluZwo+IHJlc291cmNlcy4g SW4gb3RoZXIgd29yZHMsIHRoZSBTeXN0ZW0gUmVnaXN0ZXIgYmxvY2sgY2FuIGJlIHVzZWQgYnkK PiBtYW55IGNvbnN1bWVycyAoZHJpdmVycykgaW4gZnV0dXJlOyB0aG9zZSBjb25zdW1lcnMgbWln aHQgdHJ5IHRvCj4gbW9kaWZ5IHRoZSBzYW1lIHJlZ2lzdGVycyBzaW11bHRhbmVvdXNseSwgd2hp Y2ggbWlnaHQgbGVhZCB0byByYWNlCj4gY29uZGl0aW9ucyAoYXMgUk1XIG9wZXJhdGlvbiBpcyBu b3QgYXRvbWljKSwgc28gc29tZSBraW5kIG9mCj4gc2VyaWFsaXphdGlvbiBzaG91bGQgYmUgZG9u ZSAobGlrZSBsb2NraW5nIGluIHJlZ21hcCksIHdoaWNoIGlzCj4gcHJvdmlkZWQgYnkgc3lzY29u LiBBbHNvLCB0aGF0IHdvdWxkbid0IGV2ZW4gY29tZSB0byB0aGF0OiB5b3UganVzdAo+IGNhbid0 IHJlcXVlc3QgdGhlIHNhbWUgSS9PIGFyZWEgdHdpY2UgaW4gTGludXguIFNvIGlmIFNXX0NPTkYg aXMKPiBwYXNzZWQgdmlhICJyZWciIHByb3BlcnR5IHRvIFVTSSBkcml2ZXIsIGFuZCB0aGVuIHdl IHRyeSB0byBtYXAgdGhlCj4gd2hvbGUgU3lzdGVtIFJlZ2lzdGVyIChvciBpdHMgcG9ydGlvbiB0 aGF0IGluY2x1ZGVzIFNXX0NPTkYpLCB0aGF0Cj4gcmVxdWVzdCB3b3VsZCBmYWlsLgoKSSd2ZSBn b3QgdG8gYWRtaXQsIHRoYXQncyBzb21ldGhpbmcgSSBkaWRuJ3QgdGhpbmsgYWJvdXQgbXVjaCwg cGFydGx5CmJlY2F1c2UgdGhlIGxhY2sgb2YgVFJNIG9uIG15IGhhbmQsIGFzIEknbSB3b3JraW5n IHdpdGgganVzdCB2ZW5kb3IKa2VybmVsIHNvdXJjZXMgYW5kIGNvbnN1bWVyIHBob25lcy4gV2hh dCBvdGhlciB0aGluZ3MgYXJlIGluIHRoZSBzeXNyZWcKaW4geW91ciBjYXNlPyBMb29raW5nIGF0 IG15IHZlbmRvciBkZXZpY2UgdHJlZSwgdGhlIFVTSSBTV19DT05GCnJlZ2lzdGVycyBhcmUgYXQg MHgxMDAzMjAwMC0weDEwMDMyMDA4IGluIG15IGNhc2UgYW5kIHRoZSBEVCBsYWNrcwphbnl0aGlu ZyBlbHNlIGNsb3NlIGJ5IChpbiB0aGUgMHgxMDAzeHh4eCByZWdpb24pLgoKPiAKPiBBbHRob3Vn aCBwYXNzaW5nIG9uZSBTV19DT05GIHJlZ2lzdGVyIHZpYSAicmVnIiBtaWdodCBsb29rIGVhc2ll ciB0bwo+IGltcGxlbWVudCwgaXQgbWlnaHQgYWxzbyBicmluZyB1cyBhbGwgc29ydCBvZiBwcm9i bGVtcyBsYXRlciBvbi4gQW5kIEkKPiB0aGluayBhIGdvb2QgZGVzaWduIHNob3VsZCBhY2NvdW50 IGZvciBzdWNoIHBpdGZhbGxzLgo+IAo+IEFzIGZvciB0aGUgVVNJIHJlZ2lzdGVyczogSSByZWFs bHkgZG9uJ3QgdGhpbmsgdGhhdCBkdXBsaWNhdGluZyB0aGUKPiBjb2RlIGZvciBVU0kgYmxvY2sg cmVzZXQgYWNyb3NzIHVhcnQvaTJjL3NwaSBkcml2ZXJzIHdvdWxkIGhlbHAgdXMgdG8KPiBhY2Nv bXBsaXNoIGFueXRoaW5nLiBXaHkgdGhvc2UgZHJpdmVycyBzaG91bGQgYmUgZXZlbiBhd2FyZSBv ZiBVU0kKPiByZXNldD8gQXQgbGVhc3QgaW4gVVNJdjIgYmxvY2ssIHRoZSBVU0kgcmVnaXN0ZXJz IGFuZCB1YXJ0L2kyYy9zcGkKPiByZWdpc3RlcnMgYXJlIG5vdCBtaXhlZDogdGhleSBhcmUgbG9j YXRlZCBhdCBkaWZmZXJlbnQgYW5kIGFsd2F5cwo+IGZpeGVkIGFkZHJlc3Nlcy4gV2UgY2FuIGJl bmVmaXQgZnJvbSB0aGF0IGZhY3QsIGFuZCBwcm92aWRlIERldmljZQo+IFRyZWUgc3RydWN0dXJl IHdoaWNoIHJlZmxlY3RzIHRoZSBoYXJkd2FyZSBvbmUsIHNlcGFyYXRpbmcgVVNJIGNvbnRyb2wK PiBmcm9tIGFjdHVhbCBwcm90b2NvbCBub2Rlcy4KPiAKPiA+IEZvciBleGFtcGxlOiBJJ20gc3Vy ZSB0aGlzIGlzIHRoZSBjYXNlIG9uIFVTSXYyIGRldmljZXMgdG9vLCBidXQgb24KPiA+IEV4eW5v czc4ODUsIGRpZmZlcmVudCBkZXZpY2VzIGhhdmUgVVNJIG1vZGVzIGNvbmZpZ3VyZWQgZGlmZmVy ZW50bHkuCj4gPiBGb3IgZXhhbXBsZSBhIFNhbXN1bmcgR2FsYXh5IEE4ICgyMDE4KSBoYXMgYWxs IHRoZSBVU0kgYmxvY2tzCj4gPiBjb25maWd1cmVkIGFzIFNQSSB3aGlsZSBhIFNhbXN1bmcgR2Fs YXh5IE0yMCBoYXMgdGhlIGZpcnN0IFVTSQo+ID4gY29uZmlndXJlZCBhcyBkdWFsIEhTSTJDLCB0 aGUgc2Vjb25kIGFzIEhTSTJDIG9uIHRoZSBmaXJzdCAyIHBpbnMgYW5kCj4gPiB0aGUgdGhpcmQg YXMgSFNJMkMgb24gdGhlIGxhc3QgMiBwaW5zLiBXaXRoIHRoaXMgd2F5IG9mIGRvaW5nCj4gPiBl dmVyeXRoaW5nIG9uIFVTSXYyIHdlJ2QgbmVlZCAzIGRpc2FibGVkIFVTSXYyIG5vZGVzIGluIHRo ZSBTb0MgRFRTSQo+ID4gZm9yIG9uZSBVU0kgYmxvY2ssIGVhY2ggZm9yIGV2ZXJ5IHByb3RvY29s IHRoZSBVU0kgYmxvY2sgY2FuIGRvLCBhbGwKPiA+IGhhdmluZyBhIHNpbmdsZSBjaGlsZCBmb3Ig dGhlaXIgcHJvdG9jb2wgYW5kIGVhY2ggcmVmZXJlbmNpbmcgdGhlCj4gPiBzYW1lCj4gPiBzeXNy ZWcgKG5vdCBldmVuIHN1cmUgaWYgdGhhdCdzIGV2ZW4gc3VwcG9ydGVkKS4gVGhlbiB0aGUgYm9h cmQgRFRTCj4gPiBjb3VsZCBlbmFibGUgdGhlIFVTSSBub2RlIGl0IG5lZWRzLgo+ID4gCj4gCj4g SWYgSSdtIGZvbGxvd2luZyB5b3UgY29ycmVjdGx5LCB0aGVuIGl0J3Mgbm90IGxpa2UgdGhhdC4g SSBndWVzcwo+IEtyenlzenRvZiBhbHJlYWR5IHJlcGxpZWQgdG8gdGhhdCwgc28gSSdsbCBwcm9i YWJseSBqdXN0IHJlcGVhdCBoaXMKPiB3b3Jkcy4gSW4gdGhhdCBjYXNlIHlvdSdsbCBoYXZlIHNv bWV0aGluZyBsaWtlIHRoaXMgaW4geW91ciBTb0MgZHRzaQo+IChmb3IgeW91ciBVU0l2MSBjYXNl IG9mIGNvdXJzZSwgYmVjYXVzZSBkdWFsIEhTSTJDIGlzIG5vdCBwcmVzZW50IGluCj4gVVNJdjIp Ogo+IAo+IDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDwgY3V0IGhlcmUgPj4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4KPiB1c2kxIHsKPiDCoMKgwqAgc3BpMSB7Cj4gwqDCoMKgIH07Cj4gCj4gwqDCoMKg IGhzaTJjMV8xIHsKPiDCoMKgwqAgfTsKPiAKPiDCoMKgwqAgaHNpMmMxXzIgewo+IMKgwqDCoCB9 Owo+IH07Cj4gCj4gdXNpMiB7Cj4gwqDCoMKgIHNwaTIgewo+IMKgwqDCoCB9Owo+IAo+IMKgwqDC oCBoc2kyYzJfMSB7Cj4gwqDCoMKgIH07Cj4gfTsKPiAKPiAKPiB1c2kzIHsKPiDCoMKgwqAgc3Bp MyB7Cj4gwqDCoMKgIH07Cj4gCj4gwqDCoMKgIGhzaTJjMl8yIHsKPiDCoMKgwqAgfTsKPiB9Owo+ IDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDwgY3V0IGhlcmUgPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4KPiAKPiBhbmQgdGhlbiBpbiB5b3VyIGJvYXJkIGR0cyB5b3UganVzdCBoYXZlIHRvIGVuYWJs ZSBjb3JyZXNwb25kaW5nIHVzaSdzCj4gd2l0aCBwcm9wZXIgbW9kZXMsIGFuZCBlbmFibGUgY2hv c2VuIHByb3RvY29sIG5vZGVzLCBsaWtlIHRoaXM6Cj4gCj4gPDw8PDw8PDw8PDw8PDw8PDw8PDw8 PDw8PCBjdXQgaGVyZSA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ICZ1c2kxIHsKPiDCoMKgwqAg c3RhdHVzID0gIm9rYXkiCj4gwqDCoMKgIHNhbXN1bmcsbW9kZSA9IDxVU0lfVjFfRFVBTF9JMkM+ Owo+IH07Cj4gCj4gJmhzaTJjMV8xIHsKPiDCoMKgwqAgc3RhdHVzID0gIm9rYXkiCj4gfTsKPiAK PiAmaHNpMmMxXzIgewo+IMKgwqDCoCBzdGF0dXMgPSAib2theSIKPiB9Owo+IDw8PDw8PDw8PDw8 PDw8PDw8PDw8PDw8PDwgY3V0IGhlcmUgPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KCldoYXQgZ290 IG1lIGNvbmZ1c2VkIGlzIHRoZSBmb2xsb3dpbmc6IFVwb24gY2hlY2tpbmcgdmVuZG9yIGRyaXZl cnMgSQp3YXMgdW5kZXIgdGhlIGltcHJlc3Npb24gdGhhdCB3ZSBoYXZlIGFsbCAzIHByb3RvY29s cyBhdCBzZXBlcmF0ZQphZGRyZXNzZXMsIGFuZCB0aGUgVVNJIFNXX0NPTkYgcmVnaXN0ZXIga2lu ZCBvZiB3b3JrcyBsaWtlIGEKbXVsdGlwbGV4ZXIgZm9yIHRoZSBVU0kgcGlucyB0byBzd2l0Y2gg YmV0d2VlbiBwcm90b2NvbHMuIE5vdyBJIHNlZQp0aGF0IEkgd2FzIHdyb25nLCBhbmQgdGhlIGFk ZHJlc3NlcyBhcmUgaW4gZmFjdCB0aGUgc2FtZS4gTm93IG9uIGEKaGFyZHdhcmUgbGV2ZWwgaXQg bWlnaHQgc3RpbGwgd29yayBqdXN0IGFzIGEgbXVsdGlwbGV4ZXIgYnV0IGl0CnN3aXRoY2hlcyB0 aGUgZW50aXJlIGFkZHJlc3Mgc3BhY2UgZm9yIGEgd2hvbGUgZGlmZmVyZW50IHByb3RvY29sCmJs b2NrLiBEdW1iIGxpdHRsZSBtaXN1bmRlcnN0YW5kaW5nIG9uIG15IHBhcnQsIG5ldmVyIG1pbmQh IFRoZXkgYXJlIG9uCnRoZSBzYW1lIGFkZHJlc3MgZXZlbiBvbiBVU0l2MS4gTm90IHN1cmUgaG93 IEkgaGF2ZW4ndCBub3RpY2VkIHRoYXQKYmVmb3JlLCBJIGd1ZXNzIHNpbmNlIEkgbmV2ZXIgc3Rh cnRlZCBleHBlcmltZW50aW5nIHdpdGggVVNJIGJlZm9yZSwKanVzdCBsb29rZWQgYXQgdGhlIGNv ZGUgYXMgYSByZWZlcmVuY2UgSSBhc3N1bWVkIGEgbG90IG9mIHRoaW5ncy4KCj4gCj4gPiBXaXRo IHRoZSBkb3duc3RyZWFtIHdheSB3ZSBjb3VsZCBoYXZlIGp1c3Qgb25lIFVTSSBub2RlIGFuZCB3 ZSBjb3VsZAo+ID4gYWRkIHRoZSAzIHByb3RvY29scyBpdCBjYW4gZG8gZGlzYWJsZWQgYXMgc2Vw ZXJhdGUgb3IgY2hpbGQgbm9kZXMuCj4gPiBUaGlzCj4gPiB3YXkgdGhlIGJvYXJkIERUUyBvbmx5 IG5lZWRzIHRvIHNldCB0aGUgYXBwcm9wcmlhdGUgbW9kZSBzZXR0aW5nIGFuZAo+ID4gZW5hYmxl IHRoZSBwcm90b2NvbCBpdCBuZWVkcy4gSSdkIHNheSBtdWNoIGJldHRlciB0aGFuIGhhdmluZyAz IFVTSQo+ID4gbm9kZXMgZm9yIHRoZSBzYW1lIFVTSSBibG9jay4KPiA+IAo+IAo+IE5vdCBzdXJl IGlmIHdpdGggZG93bnN0cmVhbSBVU0kgZHJpdmVyIHlvdSBjYW4gYWN0dWFsbHkgaGF2ZSBwcm90 b2NvbHMKPiBhcyBzdWItbm9kZXMgaW4gVVNJIG5vZGUgdGhvdWdoLiBJdCBkb2Vzbid0IGRvIGFu eXRoaW5nIGxpa2UKPiBvZl9wbGF0Zm9ybV9wb3B1bGF0ZSgpLgoKSXQgY2FuJ3QgYXMgZmFyIGFz IEknbSBhd2FyZSwgSSB3YXMganVzdCB0aGlua2luZyB0aGF0IGRpZCBzZWVtIGxpa2UgYQpnb29k IGlkZWEgdG8ga2VlcC4KCj4gCj4gQWxzbywgd2l0aCB0aGlzIFVTSXYyIGRyaXZlciB5b3UgY2Fu IGRvIHRoZSBzYW1lIHRoaW5nIHlvdSBkZXNjcmliZWQ6Cj4geW91IGNhbiBoYXZlIGp1c3Qgb25l IFVTSSBub2RlIHdpdGggMyBwcm90b2NvbHMgYXMgc3ViLW5vZGVzIChvciB5b3UKPiBjYW4gZXZl biBoYXZlIHByb3RvY29sIG5vZGVzIG91dHNpZGUgb2YgVVNJIG5vZGUsIGJ1dCBJJ2Qgbm90Cj4g cmVjb21tZW5kIHRoYXQpLgo+IAo+IEFjdHVhbGx5IEkgY2FuIHNlZSB0aGF0IGl0J3MgbXkgZmF1 bHQgZm9yIG5vdCBkZXNjcmliaW5nIHRoYXQgY2FzZSBpbgo+IGJpbmRpbmdzIGV4YW1wbGUuIEkn bGwgbWFrZSBzdXJlIHRvIGRvIHRoYXQgaW4gdjIuIFlvdSBhbHNvIGdvdCBtZQo+IHRoaW5raW5n IGFib3V0IGRlZmF1bHQgbW9kZTogc29tZXRpbWVzIFNXX0NPTkYgcmVzZXQgdmFsdWUgY2hvb3Nl cwo+IHNvbWUgcHJvdG9jb2wuIEluIHRoYXQgY2FzZSBtYXliZSBpdCdkIHVzZWZ1bCB0byBoYXZl IHNvbWV0aGluZyBsaWtlCj4gVVNJX1YyX0RFRkFVTFQsIHRvIHRlbGwgZHJpdmVyIHRvIG5vdCB0 b3VjaCBTV19DT05GIGF0IGFsbC4KCk5vdCBzdXJlIGlmIHRoYXQncyB1c2VmdWwsIEknbSB0aGlu a2luZyB3ZSBzcGVjaWZ5IHNvbWUgcHJvdG9jb2wgZm9yCnRoZSBVU0lzIGluIGJvYXJkIGR0cyBh bnl3YXlzLCBhbmQgaWYgd2UgZG9uJ3QsIHRoZW4gd2UgcHJvYmFibHkgZG9uJ3QKdXNlIHRoYXQg VVNJIGJsb2NrIGFueXdheXMsIHNvIGF0IGEgbWluaW11bSBhbGwgcHJvdG9jb2xzIHNob3VsZCBi ZQpwcm9iYWJseSBkaXNhYmxlZCBpbiB0aGF0IGNhc2UsIGFuZCBwcm9iYWJseSB0aGUgVVNJIGJs b2NrIGFzIGEgd2hvbGUKdG9vLiAoU29DIGR0c2kgaGFzIHRoZW0gZGlzYWJsZWQsIGJvYXJkIGR0 cyBkb2Vzbid0IHRvdWNoIHRoZW0sIHNvIHRoZXkKcmVtYWluIGRpc2FibGVkKS4gTWF5IEkga25v dyBob3cgZG8geW91IHRoaW5rIGEgZGVmdWx0IG1vZGUgd291bGQgYmUKdXNlZnVsPwoKPiBBbmQg YWxzbyBJCj4gY2FuIGFkZCBVU0lfVjJfTk9ORSB3aGlsZSBhdCBpdCwgc28gdGhhdCBkcml2ZXIg Y2FuIHdyaXRlIDB4MCB0bwo+IFNXX0NPTkY6IHRoYXQgd2F5IG5vIHByb3RvY29sIHdpbGwgYmUg c2VsZWN0ZWQuIE1heWJlIHRoYXQgY2FuIGJlCj4gYmVuZWZpY2lhbCBmb3IgUE0gcmVhc29ucywg aWYgc29tZSBib2FyZCBkb2Vzbid0IHVzZSBzb21lIFVTSSBibG9ja3MKPiBhdCBhbGwuIERvIHlv dSB0aGluayBpdCdzIGZlYXNpYmxlIHRvIGFkZCB0aG9zZSB0d28gdmFsdWVzIHRvCj4gZHQtYmlu ZGluZ3MgaGVhZGVyPyBBbmQgaXMgaXQgcG9zc2libGUgdG8gZG8gc28gaW4gVVNJdjE/CgpJIHRo aW5rIEkgc2F3IHNvbWUgZG93bnN0cmVhbSBkcml2ZXIgZG8gc29tZXRoaW5nIHNpbWlsaWFyLCB0 aGF0IHNvdW5kcwpsaWtlIGEgZ29vZCBpZGVhLiBJbiBVU0l2MSBJIGNhbiBzZWUgdGhlIEhTSTJD IGRyaXZlciB3cml0aW5nIDAgdG8gdGhlClNXX0NPTkYgcmVnaXN0ZXIgYXQgcG0gc3VzcGVuZC4g Tm90IHN1cmUgd2h5IHRoYXQncyBpbiB0aGUgSFNJMkMgZHJpdmVyCnJhdGhlciB0aGFuIHRoZSBV U0kgYnV0IEknbSBndWVzc2luZyBpdCBzaG91bGQgZG8gdGhlIHNhbWUgdGhpbmcgYXMgZm9yCnlv dS4gSSBoYXZlIG5vIFRSTSB0aG91Z2gsIHNvIG5vdCBzdXJlLiBXZSdsbCBwcm9iYWJseSBqdXN0 IGhhdmUgdG8KYXNzdW1lIHRoYXQncyBob3cgaXQgd29ya3MgaGVyZSwgbWF5YmUgc29tZW9uZSB0 aGF0IGhhcyBhY2Nlc3MgdG8gYW4KVVNJdjEgU29DIFRSTSBjb3VsZCBjb25maXJtPyBQcm9iYWJs eSB3b24ndCBnZXQgYW55IHJlc3BvbnNlIGZyb20KYW55b25lIHdobyBoYXMgaXQgdGhvdWdoLgog Cj4gCj4gPiBBbHNvIHRoaXMgd2F5IGlzIHByZXR0eSBVU0l2MiBjZW50cmljLiBBZGRpbmcgVVNJ djEgc3VwcG9ydCB0byB0aGlzCj4gPiBkcml2ZXIgaXMgZGlmZmljdWx0IHRoaXMgd2F5IGJlY2F1 c2Ugb2YgdGhlIHRoZSBsYWNrIG9mIFVTSV9DT04gYW5kCj4gPiBVU0lfT1BUSU9OIHJlZ2lzdGVy cyBhcyBhIHdob2xlIChzbyBoYXZpbmcgbm93aGVyZSB0byBhY3R1YWxseSBzZXQKPiA+IHRoZQo+ ID4gcmVnIG9mIHRoZSBVU0kgbm9kZSB0bywgYXMgdGhlIG9ubHkgdGhpbmcgVVNJdjEgaGFzIGlz IHRoZSBTV19DT05GCj4gPiByZWdpc3RlcikuIEluIG15IG9waW5pb24gYmVpbmcgYWJsZSB0byB1 c2UgdGhlIHNhbWUgZHJpdmVyIGFuZCBzYW1lCj4gPiBkZXZpY2UgdHJlZSBsYXlvdXQgZm9yIFVT SXYxIGFuZCBVU0l2MiBpcyBhIGRlZmluaXRlIHBsdXMKPiA+IAo+IAo+IFdlbGwsIGl0J3MgVVNJ djIgZHJpdmVyIGFmdGVyIGFsbC4gSSBuZXZlciBleHBlY3RlZCBpdCBjYW4gYmUgZXh0ZW5kZWQK PiBmb3IgVVNJdjEgc3VwcG9ydC4gSWYgeW91IHRoaW5rIGl0IGNhbiBiZSByZXVzZWQgZm9yIFVT SXYxLCBpdCdzIGZpbmUKPiBieSBtZS4gQnV0IHdlIG5lZWQgdG8gY29uc2lkZXIgbmV4dCB0aGlu Z3M6Cj4gwqAgLSByZW5hbWUgdGhlIGRyaXZlciB0byBqdXN0ICJ1c2kuYyIgKGFuZCBhbHNvIGl0 cyBjb25maWd1cmF0aW9uCj4gc3ltYm9sKQo+IMKgIC0gcHJvdmlkZSBkaWZmZXJlbnQgY29tcGF0 aWJsZSBmb3IgVVNJdjEgKGFuZCBtYXliZSBjb3JyZXNwb25kaW5nCj4gZHJpdmVyIGRhdGEpCj4g wqAgLSByZXdvcmsgYmluZGluZ3MgKGhlYWRlciBhbmQgZG9jKTsgbWFrZSBzdXJlIGV4aXN0aW5n IGJpbmRpbmdzIGFyZQo+IGludGFjdCAod2Ugc2hvdWxkbid0IGNoYW5nZSBhbHJlYWR5IGludHJv ZHVjZWQgaW50ZXJmYWNlcykKPiDCoCAtIGluIGNhc2Ugb2YgVVNJdjEgY29tcGF0aWJsZTsgZG9u J3QgdHJ5IHRvIHRpbmtlciB3aXRoIFVTSXYyCj4gcmVnaXN0ZXJzCj4gwqAgLSBzYW1zdW5nLGNs a3JlcS1vbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gY2FzZSBvZiBVU0l2MSBjb21wYXRpYmxlCj4g Cj4gQmVjYXVzZSBJIGRvbid0IGhhdmUgVVNJdjEgU29DIFRSTSAoYW5kIG5laXRoZXIgZG8gSSBw b3NzZXNzIHNvbWUKPiBVU0l2MSBib2FyZCB3aGljaCBJIGNhbiB1c2UgZm9yIHRlc3QpLCBJIGRv bid0IHRoaW5rIGl0J3MgbXkgcGxhY2UgdG8KPiBhZGQgVVNJdjEgc3VwcG9ydC4gQnV0IEkgdGhp bmsgaXQncyBwb3NzaWJsZSB0byBkbyBzbywgdXNpbmcgbXkgaW5wdXQKPiBhYm92ZS4KPiAKPiBJ IGNhbiBzZWUgaG93IGl0IG1pZ2h0IGJlIGZydXN0cmF0aW5nIGhhdmluZyB0byBkbyBzb21lIGV4 dHJhIHdvcmsKPiAoY29tcGFyaW5nIHRvIGp1c3QgdXNpbmcgdGhlIGNvZGUgZXhpc3RpbmcgaW4g ZG93bnN0cmVhbSkuIEJ1dCBJIGd1ZXNzCj4gdGhhdCdzIHRoZSBkaWZmZXJlbmNlOiB2ZW5kb3Ig aXMgbW9zdGx5IGNvbmNlcm5lZCBhYm91dCBjb21wZXRpdGl2ZQo+IGFkdmFudGFnZSBhbmQgZ2V0 dGluZyB0byBtYXJrZXQgZmFzdCwgd2hpbGUgdXBzdHJlYW0gaXMgbW9yZSBjb25jZXJuZWQKPiBh Ym91dCBxdWFsaXR5LCBjb25zaWRlcmluZyBhbGwgdXNlIGNhc2VzLCBhbmQgaGF2aW5nIHByb3Bl ciBkZXNpZ24uCgpJdCdzIG5vdCByZWFsbHkgdGhlIGV4dHJhIHdvcmssIEkganVzdCBkaWRuJ3Qg c2VlIHRoZSBiZW5lZml0cyBvZiB0aGlzCndheSwgYW5kIG15IG1pc3VuZGVyc3RhbmRpbmcgY2F1 c2VkIG1lIHRvIG5vdCBzZWUgaG93IHRoaXMgd291bGQgd29yay4KSSBuZXZlciByZWFsbHkgd2Fu dGVkIHRvIHVzZSB0aGUgZG93bnN0cmVhbSBkcml2ZXIgYXMgaXMsIGJ1dCBpbiBteQpoZWFkIEkg d2FzIHRoaW5raW5nIHRoYXQgImxheW91dCIgc2hvdWxkIHdvcmsuCgo+IEFueXdheSwgd2UgY2Fu IHdvcmsgdG9nZXRoZXIgdG8gbWFrZSBpdCByaWdodCwgYW5kIHRvIGhhdmUgYm90aAo+IElQLWNv cmVzIHN1cHBvcnQuIEluIHRoZSB3b3JzdCBjYXNlLCBpZiB0aG9zZSBhcmUgdG9vIGRpZmZlcmVu dCwgd2UKPiBjYW4gaGF2ZSB0d28gc2VwYXJhdGUgZHJpdmVycyBmb3IgdGhvc2UuCj4gCj4gPiBU aGUgb25seSByZWFsIGRyYXdiYWNrIG9mIHRoYXQgd2F5IGlzIGhhdmluZyB0byBhZGQgY29kZSBm b3IgVVNJdjIKPiA+IGluc2lkZSB0aGUgVUFSVCwgSFNJMkMsIGFuZCBTUEkgZHJpdmVycyBidXQg aW4gbXkgb3BpbmlvbiB0aGUKPiA+IGJlbmVmaXRzCj4gPiBvdmVyd2VpZ2ggdGhlIGRyYXdiYWNr cyBncmVhdGx5LiBXZSBjb3VsZCBldmVuIG1ha2UgdGhlCj4gPiB1YXJ0L3NwaS9oc2kyYwo+ID4g ZHJpdmVycyBjYWxsIGEgaGVscGVyIGZ1bmN0aW9uIGluIHRoZSBVU0kgZHJpdmVyIHRvIHNldCB0 aGVpcgo+ID4gVVNJX0NPTgo+ID4gYW5kIFVTSV9PUFRJT04gcmVnaXN0ZXJzIHVwIHNvIHRoYXQg Y29kZSB3b3VsZCBiZSBzaGFyZWQgYW5kIG5vdAo+ID4gZHVwbGljYXRlZC4gV2V0aGVyIHRoaXMg cGF0Y2ggZ2V0cyBhcHBsaWVkIGxpa2UgdGhpcyBpcyBub3QgbXkKPiA+IGNob2ljZQo+ID4gdGhv dWdoLCBJJ2xsIGxldCB0aGUgcGVvcGxlIHJlc3BvbnNpYmxlIGRlY2lkZQo+ID4gOi0pCj4gPiAK PiAKPiBJJ2QgYXJndWUgdGhhdCB0aGVyZSBhcmUgYSBsb3Qgb2YgcmVhbCBkcmF3YmFja3Mgb2Yg dXNpbmcgZG93bnN0cmVhbQo+IGRyaXZlciBhcyBpcy4gVGhhdCdzIHdoeSBJIGNvbXBsZXRlbHkg cmUtZGVzaWduZWQgYW5kIHJlLWltcGxlbWVudGVkCj4gaXQuIERvd25zdHJlYW0gZHJpdmVyIGNh bid0IGJlIGJ1aWx0IGFuZCBmdW5jdGlvbiBhcyBhIG1vZHVsZSwgaXQKPiBkb2Vzbid0IHJlc3Bl Y3QgU3lzdGVtIFJlZ2lzdGVyIHNoYXJpbmcgYmV0d2VlbiBjb25zdW1lcnMsIGl0IGxlYWRzCj4g dG8KPiBVU0kgcmVzZXQgY29kZSBkdXBsaWNhdGlvbiBzY2F0dGVyZWQgYWNyb3NzIHByb3RvY29s IGRyaXZlcnMgKHRoYXQKPiBhcmd1YWJseSBzaG91bGRuJ3QgZXZlbiBiZSBhd2FyZSBvZiB0aGF0 KSwgaXQgZG9lc24ndCByZWZsZWN0IEhXCj4gc3RydWN0dXJlIGNsZWFybHksIGl0J3Mgbm90IGhv bGRpbmcgY2xvY2tzIG5lZWRlZCBmb3IgcmVnaXN0ZXJzCj4gYWNjZXNzCj4gKGJ0dywgc3lzcmVn IGNsb2NrIGNhbiBiZSBwcm92aWRlZCBpbiBzeXNjb24gbm9kZSwgZXhhY3RseSBmb3IgdGhhdAo+ IHJlYXNvbikuIEFzIEtyenlzenRvZiBzYWlkLCBpdCBhbHNvIGNhbid0IGhhbmRsZSBjb3JyZWN0 IHByb2JlIG9yZGVyCj4gYW5kIGRlZmVycmVkIHByb2Jlcy4gRG93bnN0cmVhbSBkcml2ZXIgbWln aHQgd29yayBmaW5lIGZvciBzb21lCj4gcGFydGljdWxhciB1c2UtY2FzZXMgdGhlIHZlbmRvciBo YXMsIGJ1dCBpbiB1cHN0cmVhbSBpdCdzIGJldHRlciB0bwo+IGNvdmVyIG1vcmUgY2FzZXMgd2Ug Y2FuIGV4cGVjdCwgYXMgdXBzdHJlYW0ga2VybmVsIGlzIHVzZWQgb24gbW9yZQo+IHBsYXRmb3Jt cywgd2l0aCBtb3JlIHVzZXIgc3BhY2UgdmFyaWFudHMsIGV0Yy4KCkkgZG8gYWdyZWUgbm93LCBh cyBJIHNhaWQgYSBiaXQgb2YgYSBtaXN1bmRlcnN0YW5kaW5nIG1hZGUgbWUgYmVsaWV2ZQp0aGlz IHdhcyB3cm9uZy4gKGFzIGlmIHRoZSBhZGRyZXNzZXMgd2VyZSBkaWZmZXJlbnQgYW5kIHRoZSBk b3duc3RyZWFtCmRyaXZlcnMgd29ya2VkIHRoZSBzYW1lIHdheSB0aGF0IHdvdWxkIG1lYW4gZWFj aCBVU0l2MiB3b3VsZCBoYXZlIDMKc2V0cyBvZiBVU0lfQ09OIGFuZCBVU0lfT1BUSU9OIHJlZ2lz dGVycyBmb3IgZWFjaCBwcm90b2NvbCB3aGljaCB3b3VsZApkZWZpbml0ZWx5IGhhdmUgdG8gYmUg aGFuZGxlZCBzb21ld2hhdCBkaWZmZXJlbnRseS4KCj4gCj4gSSBkb24ndCByZWFsbHkgdGhpbmsg cHJvdG9jb2wgZHJpdmVycyBzaG91bGQgYmUgYXdhcmUgb2YgVVNJCj4gcmVnaXN0ZXJzCj4gYXQg YWxsLCBidXQgaWYgd2UgdGhleSBkbyAtLSB3ZSBjYW4gcHJvdmlkZSBzb21lIEFQSSBmcm9tIFVT SXYyCj4gZHJpdmVyCj4gbGF0ZXIsIHdpdGggRVhQT1JUX1NZTUJPTCgpLCByZWZlcmVuY2luZyBj b3JyZXNwb25kaW5nIFVTSSBpbnN0YW5jZQo+IGJ5Cj4gcGhhbmRsZSBvciB1c2luZyBzb21lIG90 aGVyIG1lY2hhbmlzbSBmb3IgaW50ZXItZHJpdmVyIGNvbW11bmljYXRpb24uCj4gCj4gT2YgY291 cnNlLCBpdCdzIG5vdCBteSBwbGFjZSB0byBkZWNpZGUgb24gcGF0Y2ggYWNjZXB0YW5jZSB0b28u IEJ1dCBJCj4gd2FzIHVuZGVyIHRoZSBpbXByZXNzaW9uIHRoYXQgbWFpbnRhaW5lcnMgd291bGQg YmUgb2sgd2l0aCB0aGlzCj4gY291cnNlCj4gb2YgYWN0aW9ucy4gQWxzbywgdXBzdHJlYW0ga2Vy bmVsIHNlZW1zIHRvIGFscmVhZHkgZm9sbG93IHRoZSBzYW1lCj4gZGVzaWduIGZvciBzb21lIHNp bWlsYXIgZHJpdmVycy4gU2VlIGZvciBleGFtcGxlCj4gZHJpdmVycy9zb2MvcWNvbS9xY29tX2dz YmkuYy4KPiAKPiA+IEFueXdheXMsIHNvb24gZW5vdWdoIEkgY2FuIHdyaXRlIGFuIFVTSXYxIGRy aXZlciBhZnRlciBJIHN1Ym1pdCBhbGwKPiA+IHRoZQo+ID4gNzg4NSBzdHVmZiBJJ20gd29ya2lu ZyBvbiBjdXJyZW50bHkuIElmIHlvdSB3YW50IHRvLCB5b3UgY2FuIGFkZAo+ID4gVVNJdjIKPiA+ IHN1cHBvcnQgdG8gdGhhdCBkcml2ZXIsIG9yIGlmIGFuIFVTSXYyIGRyaXZlciBpcyBhbHJlYWR5 IGluCj4gPiB1cHN0cmVhbSBhdAo+ID4gdGhhdCBwb2ludCwgaWYgaXQgaXMgd3JpdHRlbiBpbiB0 aGUgZG93bnN0cmVhbSB3YXkgSSBjYW4gYWRkIHYxCj4gPiBzdXBwb3J0Cj4gPiB0byB0aGF0LCBv ciBpZiBpdCdzIGxpa2UgdGhpcyBJJ2xsIGhhdmUgdG8gbWFrZSBhIHdob2xlIHNlcGVyYXRlCj4g PiBkcml2ZXIKPiA+IHdpdGggYSB3aG9sZSBzZXBlcmF0ZSBEVCBzdHJ1Y3R1cmUuCj4gPiAKPiAK PiBJZiBpdCdzIGxpa2UgeW91IHNhaWQgKFVTSXYxIG9ubHkgdG91Y2hlcyB0aGUgU1dfQ09ORiBy ZWdpc3RlciksIEkKPiBndWVzcyBVU0l2MiBkcml2ZXIgY2FuIGJlIGV4dGVuZGVkIGZvciBVU0l2 MSBjYXNlLiBJIGFscmVhZHkgcHJvdmlkZWQKPiBteSB0aG91Z2h0cyBvbiBzdWNoIHJld29yayBh Ym92ZS4gSXQncyBwcm9iYWJseSBiZXR0ZXIgdG8gY29uc3VsdAo+IHdpdGgKPiBLcnp5c3p0b2Yg Zmlyc3QuIEkgZ3Vlc3MgdGhlIG9ubHkgd2F5IHRvIGZpZ3VyZSBvdXQgaWYgaXQncyBmZWFzaWJs ZQo+IG9yIGl0J3MgYmV0dGVyIHRvIGhhdmUgc2VwYXJhdGUgZXh5bm9zLXVzaS12MS5jIGZvciBV U0l2MSwgaXMgdG8gdHJ5Cj4gYW5kIGFkZCBVU0l2MSBzdXBwb3J0IGludG8gVVNJdjIgZHJpdmVy IGFuZCBzZWUgaG93IHByZXR0eSBvciB1Z2x5IGl0Cj4gaXMgOikgV2hhdGV2ZXIgdGhlIHdheSB5 b3UgZGVjaWRlIHRvIGdvIHdpdGgsIHBsZWFzZSBhZGQgbWUgdG8gQ2MKPiBsaXN0Cj4gd2hlbiBz ZW5kaW5nIFVTSXYxIHBhdGNoZXMuCgpTdXJlLCBJJ2xsIHRyeSBkb2luZyBpdCBvbiB0b3Agb2Yg dGhlIGZpbmFsIHZlcnNpb24gb2YgeW91ciBkcml2ZXIKdGhlbiEgU29ycnkgZm9yIHRoZSBtaXN1 bmRlcnN0YW5kaW5nIHRoZXJlIQoKPiAKPiA+IEJlc3QgcmVnYXJkcywKPiA+IERhdmlkCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=