From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: Revert "dmaengine: pl330: add DMA_PAUSE feature" From: Vinod Koul Message-Id: <20180515134525.GG13271@vkoul-mobl> Date: Tue, 15 May 2018 19:15:25 +0530 To: Marek Szyprowski Cc: Frank Mori Hess , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Dan Williams , r.baldyga@hackerion.com, Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , Linux Samsung SOC List-ID: T24gMTUtMDUtMTgsIDE0OjI0LCBNYXJlayBTenlwcm93c2tpIHdyb3RlOgo+IEhpIFZpbm9kLAo+ IAo+IE9uIDIwMTgtMDUtMTUgMDg6MjEsIFZpbm9kIHdyb3RlOgo+ID4gT24gMTEtMDUtMTgsIDE0 OjU3LCBNYXJlayBTenlwcm93c2tpIHdyb3RlOgo+ID4+IE9uIDIwMTgtMDUtMTAgMTg6MDQsIEZy YW5rIE1vcmkgSGVzcyB3cm90ZToKPiA+Pj4gT24gVGh1LCBNYXkgMTAsIDIwMTggYXQgNDozMSBB TSwgTWFyZWsgU3p5cHJvd3NraQo+ID4+PiA8bS5zenlwcm93c2tpQHNhbXN1bmcuY29tPiB3cm90 ZToKPiA+Pj4+IE9uIDIwMTgtMDUtMDkgMTk6NDgsIEZyYW5rIE1vcmkgSGVzcyB3cm90ZToKPiA+ Pj4+PiBPbiBXZWQsIE1heSA5LCAyMDE4IGF0IDk6MTkgQU0sIE1hcmVrIFN6eXByb3dza2kKPiA+ Pj4+PiA8bS5zenlwcm93c2tpQHNhbXN1bmcuY29tPiB3cm90ZToKPiA+Pj4+Pj4gSSB1bmRlcnN0 YW5kIHRoYXQgcGwzMzAgZG9lc24ndCBzdXBwb3J0IHJlYWwgUEFVU0UsIGJ1dCBhcyBpdCBoYXMg YmVlbgo+ID4+Pj4+PiBpbXBsZW1lbnRlZCBzaW5jZSAyMDE1IHRoZSBsaW1pdGVkIHN1cHBvcnQg aXMgcGVyZmVjdGx5IHBvc3NpYmxlIC0ganVzdAo+ID4+Pj4+PiB0byBsZXQgc2VyaWFsIGRyaXZl ciB0byByZWFkIHRoZSBhbW91bnQgb2YgZGF0YSB0cmFuc2ZlcnJlZC4KPiA+Pj4+Pj4KPiA+Pj4+ Pj4gUGxlYXNlIG5vdGUgdGhhdCBETUEgZW5naW5lIGRvY3VtZW50YXRpb24gY2xlYXJseSBzdGF0 ZXMgdGhhdCB0aGUgYmVzdAo+ID4+Pj4+PiByZXNpZHVlIGdyYW51bGFyaXR5IHRoZSBkcml2ZXIg bWlnaHQgZXhwZWN0IGlzIEJVUlNUIGdyYW51bGFyaXR5LiBUaGVyZQo+ID4+Pj4+PiBpcyBubyB3 YXkgdG8gZ2V0IHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGF0YSB3aGljaCBzdGlsbCBzaXRz IGluIHRoZQo+ID4+Pj4+PiBETUEgZW5naW5lIGZpZm8gd2hlbiB0cmFuc2ZlciBpcyBwYXVzZWQv dGVybWluYXRlZC4gVGhpcyBtZWFucyB0aGF0Cj4gPj4+Pj4+IHRoZSBzZXJpYWwgZHJpdmVyIHNo b3VsZCBzZXQgbWF4YnVyc3QgPSAxIGlmIGl0IGlzIGludGVyZXN0ZWQgaW4KPiA+Pj4+Pj4gZ2V0 dGluZyBleGFjdCBudW1iZXIgb2YgYnl0ZXMgcmVjZWl2ZWQvc2VudC4gV2l0aCBtYXhidXJzdCA9 IDEgdGhlcmUKPiA+Pj4+Pj4gaXMgbm8gc3VjaCB0aGluZyBhcyBkYXRhIGxvb3NlIGluIHRoZSBE TUEgZW5naW5lIGZpZm8uCj4gPj4+Pj4gVGhhdCBpcyBub3QgbXkgdW5kZXJzdGFuZGluZyBvZiB0 aGUgZG1hZW5naW5lIHBhdXNlIHJlcXVpcmVtZW50cywgYnV0Cj4gPj4+Pj4gb2YgY291cnNlIFZp bm9kIGNhbiBzcGVhayBhdXRob3JpdGF0aXZlbHkgb24gdGhpcy4KPiA+Pj4+IEJhc2luZyBvbiB0 aGUgY29tbWVudHMgaW4gZG1hX3Jlc2lkdWVfZ3JhbnVsYXJpdHkgZW51bSBkb2N1bWVudGF0aW9u IChzZWUKPiA+Pj4+IGluY2x1ZGUvbGludXgvZG1hZW5naW5lLmgpIHRoZXJlIGlzIG5vIGJldHRl ciBncmFudWxhcml0eSBvZiByZXNpZHVlCj4gPj4+PiByZXBvcnRpbmcgdGhhbiBCVVJTVCB1bml0 cy4gSWYgZHJpdmVyIG5lZWRzIGJ5dGUgYWNjdXJhY3ksIHRoZW4gaXQgc2hvdWxkCj4gPj4+PiB1 c2UgTUFYQlVSU1Q9MSBhbmQgRE1BX1NMQVZFX0JVU1dJRFRIXzFfQllURSBjb25maWd1cmF0aW9u Lgo+ID4+PiBUaGF0J3MgYW4gaW50ZXJlc3RpbmcgbGluZSBvZiB0aG91Z2h0LiAgVGhlIDgyNTAg c2VyaWFsIGRyaXZlciBjbGVhcmx5Cj4gPj4+IGFzc3VtZXMgaXQgY2FuIGRvIHRoZSBzZXF1ZW5j ZQo+ID4+Pgo+ID4+PiBkbWEgcGF1c2UKPiA+Pj4gcmVhZCByZXNpZHVlCj4gPj4+IGRtYSB0ZXJt aW5hdGUKPiA+Pj4KPiA+Pj4gd2l0aG91dCBkYXRhIGxvc3MuCj4gPj4gUmlnaHQuIEZyb20gRE1B IGVuZ2luZSBBUEkgcGVyc3BlY3RpdmUgdGhpcyBpcyB0aGUgb25seSB2YWxpZCB3YXkgdG8KPiA+ PiByZWFkIHRoZQo+ID4+IHJlc2lkdWUgd2hlbiB5b3UgdGVybWluYXRlIHRoZSB0cmFuc2Zlci4K PiA+IE5vdCByZWFsbHksIEFQSSBhbGxvd3MgeW91IHRvIHJlYWQgYW55IHBvaW50IG9mIHRpbWUs IHlvdSBtYXkgc3VwcG9ydCBpdCBvciBub3QKPiA+IGlzIGRpZmZlcmVudCBtYXR0ZXIuIEdyYW51 bGFyaXR5IG9mIHJlcG9ydGluZyBpcyBhbHNvIGEgZGlmZmVyZW50IHBvaW50Lgo+IAo+IEkgbWVh biB0byByZWFkIHRoZSByZXNpZHVlIGluIHN0YWJsZSBjb25kaXRpb25zICh0aGUgaW5jb21pbmcg Ynl0ZXMgaGFzIAo+IGJlZW4gZWl0aGVyCj4gcmVhZCBieSBkbWEgb3Igc3RpbGwgc2l0cyBpbiB0 aGUgdWFydCBmaWZvKS4gVG9vIGJhZCB0aGF0IGl0IGlzIG5vdCAKPiBwb3NzaWJsZSB0byByZWFk Cj4gcmVzaWR1ZSBhZnRlciB0ZXJtaW5hdGluZyB0aGUgdHJhbnNmZXIuIFRoaXMgd291bGQgcmVt b3ZlIHRoZSBuZWVkIGZvciAKPiB0aGlzIGZha2UKPiBwYXVzZSBzdXBwb3J0LgoKeW91IGNhbiBy ZWFkIHRoZSByZXNpZHVlIGJlZm9yZSB5b3UgY2FsbCB0ZXJtaW5hdGUuIFRlcm1pbmF0ZSBpcyBi YXNpY2FsbHkgYQpjbGVhbnVwIGpvYiwgc28gcmVhZGluZyBhZnRlciB0aGF0IG1ha2VzIG5vIHNl bnNlLCBtYXliZSB5b3UgbmVlZCB0byBtb2RpZnkKY2FsbGluZyBzZXF1ZW5jZS4uCgo+IAo+ID4+ PiAgICAgSXQgY2hlY2tzIGZvciB0aGUgY2FwYWJpbGl0aWVzCj4gPj4+Cj4gPj4+IGNtZF9wYXVz ZQo+ID4+PiBjbWRfdGVybWluYXRlCj4gPj4+IHJlc2lkdWVfZ3JhbnVsYXJpdHkgIT0gRE1BX1JF U0lEVUVfR1JBTlVMQVJJVFlfREVTQ1JJUFRPUgo+ID4+IENoZWNraW5nIGZvciBjbWRfcGF1c2Ug aXMgYSBiaXQgdG9vIHN0cmljdCwgYmVjYXVzZSBjbWRfcGF1c2UgbWVhbnMgJ2RyaXZlcgo+ID4+ IHN1cHBvcnRzIGJvdGggcGF1c2UgYW5kIHJlc3VtZScsIGJ1dCB0aGUgc2VyaWFsIGRyaXZlciBk b2Vzbid0IHVzZSByZXN1bWUgYXQKPiA+PiBhbGwuIEEgY2hlY2sgZm9yIHJlc2lkdWVfZ3JhbnVs YXJpdHkgIT0gRE1BX1JFU0lEVUVfR1JBTlVMQVJJVFlfREVTQ1JJUFRPUgo+ID4+IGlzIG9uIHRo ZSBvdGhlciBoYW5kIGEgYml0IHRvbyBsb29zZS4KPiA+IHRoYXRzIHRydWUgYW5kIGl0IHdhcyBh ZGRlZCBmb3IgYXVkaW8gd2hpY2ggZG9lcyBwYXVzZS9yZXN1bWUuIElmIHlvdSBmZWVsIGl0Cj4g PiBoZWxwcyBpbiBzZXJpYWwgdG8gZ2V0IHBhdXNlICYgcmVzdW1lIGNhcGFiaWxpdGllcyBpbmRl cGVuZGVudGx5IHdlIGNhbiBzcGxpdAo+ID4gdGhlbSB1cCwgZmVlbCBmcmVlIHRvIHNlbmQgYSBw YXRjaAo+IAo+IE9rYXksIEkgd2lsbCBwcmVwYXJlIGEgcGF0Y2ggZm9yIHRoaXMuCj4gCj4gPiBG b3IgUGF1c2UvcmVzdW1lIGRhdGEgbG9zcyBpcyBfbm90XyBleHBlY3RlZC4KPiA+Cj4gPj4+IGFu ZCBzb21lIG9mIHRoZSA4MjUwIGRyaXZlcnMgbGlrZSA4MjUwX2R3LmMgc2V0IGEgbWF4YnVyc3Qg PiAxLiAgSWYgaXQKPiA+Pj4gY2FuJ3QgY291bnQgb24gdGhlIHBhdXNlL3Jlc2lkdWUvdGVybWlu YXRlIHdvcmtpbmcgd2l0aG91dCBkYXRhIGxvc3MKPiA+Pj4gdGhlbiBpdCBpcyBqdXN0IGJyb2tl bi4gIEFzIGlzIHRoZSA4MjUwX29tYXAuYyBkcml2ZXIuICBJcyB0aGUKPiA+Pj4gZGVzY3JpcHRp b24gb2YgZG1hZW5naW5lX3BhdXNlIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mICJUaGlzIHBhdXNl cwo+ID4+PiBhY3Rpdml0eSBvbiB0aGUgRE1BIGNoYW5uZWwgd2l0aG91dCBkYXRhIGxvc3MiIHRv IGJlIGludGVycHJldGVkIGFzCj4gPj4+ICJhcyBsb25nIGFzIHlvdSByZXN1bWUgYWZ0ZXJ3YXJk cyI/Cj4gPj4gSSBhc3N1bWUgdGhhdCB0aGlzIHJlcXVpcmVtZW50IGlzIGZvciBib3RoIC0gcmVz dW1pbmcgYW5kIHRlcm1pbmF0aW5nLgo+ID4gVGVybWluYXRlIGlzIGFib3J0LCBkYXRhIGxvc3Mg bWF5IGhhcHBlbiBoZXJlLgo+IAo+IE9rYXkuIFRoZW4gaXQgaXMgdXAgdG8gdGhlIGRyaXZlcnMg dG8gcmVseSBvbiB0aGlzIG9yIG5vdC4KClllcy4uLgoKPiAKPiA+Pj4+PiBJIGFsc28gZG9uJ3Qg YWdyZWUKPiA+Pj4+PiB0aGF0IGRhdGEgbG9zcyBjYW5ub3QgaGFwcGVuIGZvciBzaW5nbGUgdHJh bnNmZXJzLiAgSXQgb25seSBiZWNvbWVzCj4gPj4+Pj4gbGVzcyBsaWtlbHkgc2luY2UgdGhlcmUg YXJlIGZld2VyIGJ5dGVzIGluIHRoZSBkbWEgY29udHJvbGxlciBmaWZvIGFuZAo+ID4+Pj4+IHRo ZXkgc3RheSB0aGVyZSBmb3IgYSBzaG9ydGVyIHBlcmlvZCBvZiB0aW1lLiAgQnV0IGV2ZW4gc28s IHRoZXJlIGlzCj4gPj4+Pj4gbm90aGluZyBzdG9wcGluZyB0aGUgRE1BS0lMTCBmcm9tIGtpbGxp bmcgdGhlIHRyYW5zZmVyIHRocmVhZCBhZnRlciBpdAo+ID4+Pj4+IGRvZXMgYSBzaW5nbGUgYnl0 ZSBsb2FkIGJ1dCBiZWZvcmUgaXQgZG9lcyB0aGUgYXNzb2NpYXRlZCBzaW5nbGUgYnl0ZQo+ID4+ Pj4+IHN0b3JlLCBhcyB0aGV5IGFyZSBwZXJmb3JtZWQgYnkgc2VwYXJhdGUgaW5zdHJ1Y3Rpb25z LiAgQXMgZmFyIGFzIHlvdXIKPiA+Pj4+PiBzZXJpYWwgcG9ydCBnb2VzLCB0aGUgYnl0ZSBoYXMg YmVlbiByZWFkIGJ5IHRoZSBob3N0LCBldmVuIHRob3VnaCBpdAo+ID4+Pj4+IG5ldmVyIG1hZGUg aXQgdG8gbWVtb3J5LCBzbyBpdCBpcyBnb25lIGZvcmV2ZXIuICBUaGUgZG1hLTMzMCBkb2VzIGhh dmUKPiA+Pj4+PiBhIGxvYWQgbG9jayB3aGljaCBwcmV2ZW50cyBzb21lIG9wZXJhdGlvbnMgZnJv bSBpbnRlcnJ1cHRpbmcgYQo+ID4+Pj4+IGxvYWQvc3RvcmUgY29tYmluYXRpb24sIGJ1dCBpbiBt eSBvYnNlcnZhdGlvbnMgRE1BS0lMTCBkb2VzIG5vdAo+ID4+Pj4+IHJlc3BlY3QgdGhlIGxvYWQg bG9jay4KPiA+Pj4+IEZvciB0aGUgbGFzdCAzIHllYXJzIG5vIG9uZSBvYnNlcnZlZCBhbnkgaXNz dWUgd2l0aCB0aGUgY3VycmVudCBkZXNpZ24KPiA+Pj4+IChzaW5nbGUgdHJhbnNmZXJzIHdpdGgg RE1BX1NMQVZFX0JVU1dJRFRIXzFfQllURSkuIEJ5IHJlbW92aW5nIHRoaXMKPiA+Pj4+IGZlYXR1 cmUgd2Ugd2lsbCBsb29zZSBhYmlsaXR5IHRvIHVzZSBETUEgaW4gdGhlIHNlcmlhbCBkcml2ZXJz LCB3aGF0IGlzCj4gPj4+PiBtYWlubHkgdXNlZnVsIGZvciBsb3ctcG93ZXIgYmx1ZXRvb3RoIG9w ZXJhdGlvbiAoc2VyaWFsIGNvbnNvbGUgaXMgcmVhbGx5Cj4gPj4+PiBuZWdsaWdpYmxlIGNhc2Up Lgo+ID4+PiBJdCdzIG5vdCBzdXJwcmlzaW5nIGl0IGhhc24ndCBiZWVuIHJlcG9ydGVkLiAgSXQg aXMgYSByYWNlIHRoYXQKPiA+Pj4gcmVxdWlyZXMgYSBETUFLSUxMIHRvIGJlIGlzc3VlZCBqdXN0 IGFzIGEgYnl0ZSBpcyBpbi1mbGlnaHQgdGhyb3VnaAo+ID4+PiB0aGUgZG1hIGNvbnRyb2xsZXIu ICBUaGUgb25seSByZWFzb24gYSBkcml2ZXIgd291bGQgcGF1c2UgdGhlCj4gPj4+IHVuLXJlc3Vt ZWFibGUgcGwzMzAgd291bGQgYmUgYmVjYXVzZSB0aGUgZHJpdmVyIGVpdGhlciBrbm93cyBvcgo+ ID4+PiBzdXNwZWN0cyBubyBtb3JlIGRhdGEgd2lsbCBiZSBhcnJpdmluZyBhbmQgaXQgZ2l2ZXMg dXAgb24gdGhlCj4gPj4+IHRyYW5zZmVyLiAgVGhlIG9ubHkgcmVhc29uIEkgbm90aWNlZCBpcyB3 ZSBoYWQgYSB0ZXN0IHdoaWNoIHNlbnQgZGF0YQo+ID4+PiB0byBhIHNlcmlhbCBwb3J0LCB3YWl0 ZWQganVzdCBsb25nIGVub3VnaCBmb3IgdGhlIHNlcmlhbCBwb3J0IHJ4IHRvCj4gPj4+IHRpbWVv dXQsIHRoZW4gc2VudCBtb3JlIGRhdGEganVzdCBhcyB0aGUgcGF1c2Ugd2FzIGlzc3VpbmcgRE1B S0lMTC4KPiA+Pj4gQW5kIHRoZW4gdGhlIHRlc3QgZGlkIHRoaXMgYSBmZXcgaHVuZHJlZCB0aG91 c2FuZCB0aW1lcyB1bnRpbCBpdAo+ID4+PiBub3RpY2VkIGJhZCBkYXRhLiAgQWxzbywgZ2l2ZW4g dGhlIHdheSA4MjUwIHJ4IHRpbWVvdXRzIHdvcmssIGEgcGVyc29uCj4gPj4+IHR5cGluZyBpbnRv IGEgc2VyaWFsIGNvbnNvbGUgd291bGRuJ3QgdHlwZSBmYXN0IGVub3VnaCB0byB0cmlnZ2VyIHRo ZQo+ID4+PiBidWcgdW5sZXNzIHRoZSBiYXVkIHJhdGUgd2FzIHNldCBleHRyZW1lbHkgbG93LiAg QW5kIGlmIHNvbWVvbmUgbG9zdCBhCj4gPj4+IGtleXN0cm9rZSBldmVyeSAxMF41IGJ5dGVzLCB3 aG8gd291bGQgYmxhbWUgdGhlIGRtYSBjb250cm9sbGVyPwo+ID4+IExpa2UgSSBhbHJlYWR5IHNh aWQsIGNvbnNvbGUgaXMgbm90IGEgcHJvcGVyIHVzZSBjYXNlIGZvciBzZXJpYWwgZG1hLgo+ID4+ IFRoZSBtb3JlIGFwcHJvcHJpYXRlIGlzIGJsdWV0b290aCBhbmQgc3RpbGwsIEknbSBub3QgYXdh cmUgb2YgdGhlIGlzc3VlCj4gPj4gd2l0aCB0aGUgY3VycmVudCBjb2RlLgo+ID4gV2h5IGRvIHlv dSBzYXkgc2VyaWFsIGlzIG5vdCBpbXBvcnRhbnQ/Cj4gCj4gSSBtZWFuIHRoYXQgdXNpbmcgRE1B IGVuZ2luZSBmb3IgdWFydC9zZXJpYWwgZGV2aWNlIGZvciBpbXBsZW1lbnRpbmcgb25seSBhCj4g Y29uc29sZSBzdXBwb3J0IGlzIGEgYml0IHBvaW50bGVzcywgYmVjYXVzZSB0eXBpY2FsbHkgY29u c29sZSBkb2Vzbid0IAo+IHRyYW5zZmVyCj4gbXVjaCBkYXRhIGFuZCBvdmVyaGVhZCBvZiB1c2lu ZyBETUEgbW9kZSAoc2V0dGluZyB1cCBkbWEgZW5naW5lKSBpcyBiaWdnZXIKPiB0aGFuIGRvaW5n IGFsbCB0aGUgdHJhbnNmZXJzIGluIFBJTyBtb2RlLgoKV2VsbCB0aGF0IGRlcGVuZHMgb24geW91 ciBzeXN0ZW0gYW5kIG91dHdlaWdoaW5nIGRtYSBjb21wbGV4aXR5IHZzIHBlcmYgZ2FpbnMKeW91 IGdldC4uCgo+ID4+PiBJIGRvIGFkbWl0IEkgZGlkbid0IGRvIHRoaXMgdGVzdCB1c2luZyBzaW5n bGUgdHJhbnNmZXJzLCBiZWNhdXNlIG91cgo+ID4+PiBnb2FsIHdhcyBnZXR0aW5nIGJ1cnN0cyB0 byB3b3JrLiAgVW5mb3J0dW5hdGVseSwgdGhlIHRlc3QgcHJvZ3JhbQo+ID4+PiByZWxpZXMgb24g c29tZSBjdXN0b20gaGFyZHdhcmUgSSBubyBsb25nZXIgaGF2ZSBhY2Nlc3MgdG8gc28gSSBjYW4n dAo+ID4+PiBlYXNpbHkgcmUtcnVuIHRoZSB0ZXN0IG5vdy4gIEhvd2V2ZXIsIHNpbmNlIHRoZSBE TUEtMzMwIG1hbnVhbAo+ID4+PiBkb2N1bWVudHMgdGhlIERNQUtJTEwgaW5zdHJ1Y3Rpb24gdG86 Cj4gPj4+Cj4gPj4+ICJSZW1vdmUgYWxsIGVudHJpZXMgaW4gdGhlIE1GSUZPIGZvciB0aGUgRE1B IGNoYW5uZWwuIgo+ID4+PiAiUmVtb3ZlIGFsbCBlbnRyaWVzIGluIHRoZSByZWFkIGJ1ZmZlciBx dWV1ZSBhbmQgd3JpdGUgYnVmZmVyIHF1ZXVlCj4gPj4+IGZvciB0aGUgRE1BIGNoYW5uZWwuIgo+ ID4+Pgo+ID4+PiBSZWx5aW5nIG9uIGl0IHRvIHdvcmsgYXMgYSBzYWZlIHBhdXNlIGZvciBzaW5n bGUgdHJhbnNmZXJzIHNlZW1zIGxpa2UKPiA+Pj4gd2lzaGZ1bCB0aGlua2luZy4gIEkgc3VyZSBk aWRuJ3Qgd2FudCB0byBiZWxpZXZlIHRoZSBETUEtMzMwIGNvdWxkbid0Cj4gPj4+IGJlIHNhZmVs eSBwYXVzZWQsIGJ1dCBJIGV2ZW50dWFsbHkgaGFkIHRvIHJlc2lnbiBteXNlbGYgdG8gaXQuCj4g Pj4gT2theSwgc28geW91IGRvbid0IGhhdmUgYW55IGV2aWRlbmNlIHRoYXQgRE1BIHRyYW5zZmVy cyBkb25lIGluIHNpbmdsZQo+ID4+IHJlYWRzL3dyaXRlcyBpcyBicm9rZW4gd2l0aCB0aGUgY3Vy cmVudCBjbWRfcGF1c2UgaW1wbGVtZW50YXRpb24uCj4gPj4KPiA+PiBUaGlzIHJldmVydCBpbiBm YWN0IGF0IGJlc3QgZGlzYWJsZXMgRE1BIG1vZGUgaW4gdGhlIHNlcmlhbCBkcml2ZXJzIChvcgo+ ID4+IGluIHdvcnNlIGNhc2UsIGkuZS4gRXh5bm9zLCBjYXVzZXMgY3VycmVudCBkcml2ZXJzIHRv IGRvIHRyYXNoZWQKPiA+PiB0cmFuc2ZlcnMgZHVlIHRvIGxhY2sgb2YgY2hlY2tpbmcgZm9yIHRo ZSBuZWVkZWQgZG1hIGVuZ2luZQo+ID4+IGNhcGFiaWxpdGllcykuCj4gPj4KPiA+PiBNYXliZSBp bnN0ZWFkIG9mIHJldmVydGluZyBzdXBwb3J0IGZvciBpdCwgdGhlcmUgc2hvdWxkIGJlIGEgY2hl Y2sgZm9yCj4gPj4gQlVSU1QgdnMuIFNJTkdMRSBtb2RlIGFuZCB3ZSB3b3VsZCBrZWVwIHRoZSBj dXJyZW50IGltcGxlbWVudGF0aW9uIGZvcgo+ID4+IFNJTkdMRSB0cmFuc2ZlcnM/Cj4gPj4KPiA+ PiBWaW5vZCwgY291bGQgeW91IGNvbW1lbnQgYSBiaXQgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGhl IERNQSBlbmdpbmUKPiA+PiBtYWludGFpbmVyIHBlcnNwZWN0aXZlPwo+ID4gU28gSSB3aWxsIHRy eSB0byBzdW1tYXJpc2UgaGVyZToKPiA+Cj4gPiAtIFBhdXNlL3Jlc3VtZSBkb2VzIG5vdCBleHBl Y3QgZGF0YSBsb3NzCj4gPiAtIFN0YXR1cyBjYW4gYmUgcXVlcmllZCBhbnkgcG9pbnQgb2YgdGlt ZQo+ID4gLSBHcmFudWxhcml0eSByZXBvcnRpbmcgaXMgdXB0byBkZXZpY2UKPiA+IC0gVG8gc3Vw cG9ydCBhIHVzZSBjYXNlIGFuZCBkZXZpY2UgbGltaXRhdGlvbnMgaXQgaXMgb2theSB0byBzdXBw b3J0IG9ubHkKPiA+ICAgIHNpbmdsZXMuCj4gCj4gV2hhdCBhYm91dCB0aGUgcmV2ZXJ0IHRoaXMg dGhyZWFkIGlzIGFib3V0PyBJIHdvdWxkIHJlYWxseSBsaWtlIHRvIGhhdmUgc29tZQo+IGV2aWRl bmNlIG9mIGJyb2tlbiBkYXRhIGluIHNpbmdsZSB0cmFuc2ZlciBtb2RlcyBiZWZvcmUgcmVtb3Zp bmcgCj4gZnVuY3Rpb25hbGl0eQo+IHRoYXQgd2FzIHByZXNlbnQgZm9yIHllYXJzLgoKSSBkbyBu b3QgbWluZCBkcm9wcGluZyB0aGlzLCBkbyBib3RoIG9mIHlvdSBhZ3JlZSB0byB0aGF0IGFuZCBh Z3JlZSB0byBmaXggb3RoZXIKaXNzdWVzPwoKPiBUaGUgZGlzY3Vzc2VkIHVzZSBjYXNlIChwYXVz ZSt0ZXJtaW5hdGUpIGlzIGNydWNpYWwgZm9yIHNlcmlhbCBkZXZpY2VzIGF0Cj4gbGVhc3Qgb24g U2Ftc3VuZyBTb0NzIGFuZCB0aGlzIHJldmVydCBicmVhayB0aGVtLgo+IAo+IFF1aWNrIGdyZXAg c2hvd3MgdGhhdCBQTDMzMCBpcyBiZWluZyB1c2VkIGJ5IGEgZmV3IG90aGVyIFNvQyBmYW1pbGll cyB0b28sCj4gYnV0IEkgZGlkbid0IGNoZWNrIGlmIGFueSBvZiB0aGVtIHVzZSBpdCBmb3Igc2Vy aWFsIGRldmljZS4KPiAKPiBCZXN0IHJlZ2FyZHMKPiAtLSAKPiBNYXJlayBTenlwcm93c2tpLCBQ aEQKPiBTYW1zdW5nIFImRCBJbnN0aXR1dGUgUG9sYW5kCg==