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=-8.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 AEB1EC4361B for ; Fri, 18 Dec 2020 08:32:37 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3C0C420936 for ; Fri, 18 Dec 2020 08:32:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3C0C420936 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=uniontech.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 222D689A92; Fri, 18 Dec 2020 08:32:01 +0000 (UTC) Received: from regular1.263xmail.com (regular1.263xmail.com [211.150.70.204]) by gabe.freedesktop.org (Postfix) with ESMTPS id 531496E3F4 for ; Thu, 17 Dec 2020 13:40:34 +0000 (UTC) Received: from localhost (unknown [192.168.167.69]) by regular1.263xmail.com (Postfix) with ESMTP id DBF625F3; Thu, 17 Dec 2020 21:40:23 +0800 (CST) X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-ADDR-CHECKED4: 1 X-ANTISPAM-LEVEL: 2 X-SKE-CHECKED: 1 X-ABS-CHECKED: 1 Received: from manjaro.uniontech.com (unknown [101.80.99.167]) by smtp.263.net (postfix) whith ESMTP id P9721T140427636238080S1608212422665729_; Thu, 17 Dec 2020 21:40:23 +0800 (CST) X-UNIQUE-TAG: <4d2e5086bd9b55199eb40c442295e8f3> X-RL-SENDER: chenli@uniontech.com X-SENDER: chenli@uniontech.com X-LOGIN-NAME: chenli@uniontech.com X-FST-TO: christian.koenig@amd.com X-SENDER-IP: 101.80.99.167 X-ATTACHMENT-NUM: 0 X-System-Flag: 0 Date: Thu, 17 Dec 2020 21:37:31 +0800 Message-ID: <877dpgimec.wl-chenli@uniontech.com> From: Chen Li To: Christian =?ISO-8859-1?Q?K=F6nig?= Subject: Re: [PATCH] drm/[amdgpu|radeon]: fix memset on io mem In-Reply-To: <7920fd29-3f95-2109-07ee-15659e80dc40@amd.com> References: <877dpiz4sf.wl-chenli@uniontech.com> <4277816d-db00-7e81-a2fb-069aeee18e8b@amd.com> <875z51zwsq.wl-chenli@uniontech.com> <90b625e2-2409-d13b-2456-483ad4eef18f@amd.com> <873605z1du.wl-chenli@uniontech.com> <7920fd29-3f95-2109-07ee-15659e80dc40@amd.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-Mailman-Approved-At: Fri, 18 Dec 2020 08:31:48 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alex Deucher , Chen Li , dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gVGh1LCAxNyBEZWMgMjAyMCAxODoyNToxMSArMDgwMCwKQ2hyaXN0aWFuIEvDtm5pZyB3cm90 ZToKPiAKPiBBbSAxNy4xMi4yMCB1bSAwMjowNyBzY2hyaWViIENoZW4gTGk6Cj4gPiBPbiBXZWQs IDE2IERlYyAyMDIwIDIyOjE5OjExICswODAwLAo+ID4gQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToK PiA+PiBBbSAxNi4xMi4yMCB1bSAxNDo0OCBzY2hyaWViIENoZW4gTGk6Cj4gPj4+IE9uIFdlZCwg MTYgRGVjIDIwMjAgMTU6NTk6MzcgKzA4MDAsCj4gPj4+IENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6 Cj4gPj4+PiBbU05JUF0KPiA+Pj4gSGksIENocmlzdGlhbi4gSSdtIG5vdCBzdXJlIHdoeSB0aGlz IGNoYW5nZSBpcyBhIGhhY2sgaGVyZS4gSSBjYW5ub3Qgc2VlIHRoZSBwcm9ibGVtIGFuZCB3bGwg YmUgZ3JhdGVmdWwgaWYgeW91IGdpdmUgbW9yZSBleHBsYWluYXRpb25zLgo+ID4+IF9fbWVtc2V0 IGlzIHN1cHBvc2VkIHRvIHdvcmsgb24gdGhvc2UgYWRkcmVzc2VzLCBvdGhlcndpc2UgeW91IGNh bid0IHVzZSB0aGUKPiA+PiBlODg2MCBvbiB5b3VyIGFybTY0IHN5c3RlbS4KPiA+IElmIF9fbWVt c2V0IGlzIHN1cHBvc2VkIHRvIHdvcmsgb24gdGhvc2UgYWRyZXNzZXMsIHdoeSB0aGlzIGNvbW1p dChodHRwczovL25hbTExLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0 cHMlM0ElMkYlMkZnaXRodWIuY29tJTJGdG9ydmFsZHMlMkZsaW51eCUyRmNvbW1pdCUyRmJhMGIy Mjc1YTY3ODFiMmYzOTE5ZDkzMWQ2MzMyOWI1NTQ4ZjZkNWYmYW1wO2RhdGE9MDQlN0MwMSU3Q2No cmlzdGlhbi5rb2VuaWclNDBhbWQuY29tJTdDNGVkM2MwNzU4ODg3NDZiN2Y0MTQwOGQ4YTIyODEx YzUlN0MzZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAlN0MwJTdDNjM3NDM3NjQw Mjc0MDIzMzUwJTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENK UUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3Nk YXRhPUhoV3hVYUxvM1dwem9WNmhqViUyQkcxSElDYUlPWHdzb05wenY1dE5NTmc4QSUzRCZhbXA7 cmVzZXJ2ZWQ9MCkgaXMgbmVlZGVkPyAoSSBhbHNvIG5vdGljZSBkcm0vcmFkZW9uIGRpZG4ndCB0 YWtlIHRoaXMgY2hhbmdlIHRob3VnaCkganVzdCBvdXQgb2YgY3VyaW9zaXR5Lgo+IAo+IFdlIGdl bmVyYWxseSBhY2NlcHQgdGhvc2UgcGF0Y2hlcyBhcyBjbGVhbnVwIGluIHRoZSBrZXJuZWwgd2l0 aCB0aGUgaG9wZSB0aGF0IHdlCj4gY2FuIGZpbmQgYSB3YXkgdG8gd29yayBhcm91bmQgdGhlIHVz ZXJzcGFjZSByZXN0cmljdGlvbnMuCldoYXQncyB0aGUgdXNlcnNwYWNlIHJlc3RyaWN0aW9uIGhl cmU/IG1tYXAgZGV2aWNlIG1lbW9yeT8KPiAKPiBCdXQgd2hlbiB5b3UgYWxzbyBoYXZlIHRoaXMg aXNzdWUgaW4gdXNlcnNwYWNlIHRoZW4gdGhlcmUgaXNuJ3QgbXVjaCB3ZSBjYW4gZG8KPiBmb3Ig eW91Lgo+IAo+ID4+IFJlcGxhY2luZyB0aGUgdGhlIGRpcmVjdCB3cml0ZSBpbiB0aGUga2VybmVs IHdpdGggY2FsbHMgdG8gd3JpdGVsKCkgb3IKPiA+PiBtZW1zZXRfaW8oKSB3aWxsIGZpeCB0aGF0 IHRlbXBvcmFyeSwgYnV0IHlvdSBoYXZlIGEgbW9yZSBnZW5lcmFsIHByb2JsZW0gaGVyZS4KPiA+ ICAgSSBjYW5ub3Qgc2VlIHdoYXQncyB0aGUgbW9yZSBnZW5lcmFsIHByb2JsZW0gaGVyZSA6KCB1 IG1lYW4gcGVyZm9ybWFuY2U/Cj4gCj4gTm8sIG5vdCBwZXJmb3JtYW5jZS4gU2VlIHN0YW5kYXJk cyBsaWtlIE9wZW5HTCwgVnVsa2FuIGFzIHdlbGwgYXMgVkEtQVBJIGFuZAo+IFZEUEFVIHJlcXVp cmUgdGhhdCB5b3UgY2FuIG1tYXAoKSBkZXZpY2UgbWVtb3J5IGFuZCBleGVjdXRlIG1lbXNldC9t ZW1jcHkgb24gdGhlCj4gbWVtb3J5IGZyb20gdXNlcnNwYWNlLgo+IAo+IElmIHlvdXIgQVJNIGJh c2UgYm9hcmQgY2FuJ3QgZG8gdGhhdCBmb3Igc29tZSB0aGVuIHlvdSBjYW4ndCB1c2UgdGhlIGhh cmR3YXJlCj4gd2l0aCB0aGF0IGJvYXJkLgoKR29vZCB0byBrbm93LCB0aGFua3MhIEJUVywgaGF2 ZSB5b3UgZXZlciBzZWVuIG9yIGhlYXJkIGJvYXJkcyBsaWtlIG1pbmUgd2hpY2ggY2Fubm90IG1t YXAgZGV2aWNlIG1lbW9yeSBjb3JyZWN0bHkgZnJvbSB1c2Vyc3BhY2UgY29ycmVjdGx5Pwo+IAo+ ID4+Pj4gRm9yIGFtZGdwdSBJIHN1Z2dlc3QgdGhhdCB3ZSBhbGxvY2F0ZSB0aGUgVVZEIG1lc3Nh Z2UgaW4gR1RUIGluc3RlYWQgb2YgVlJBTQo+ID4+Pj4gc2luY2Ugd2UgZG9uJ3QgaGF2ZSB0aGUg aGFyZHdhcmUgcmVzdHJpY3Rpb24gZm9yIHRoYXQgb24gdGhlIG5ldyBnZW5lcmF0aW9ucy4KPiA+ Pj4+IAo+ID4+PiBUaGFua3MsIEkgd2lsbCB0cnkgdG8gZGlnIGludG8gZGVlcGVyLiBCdXQgd2hh dCdzIHRoZSAiaGFyZHdhcmUgcmVzdHJpY3Rpb24iIG1lYW5pbmcgaGVyZT8gSSdtIG5vdCBmYW1p bGlhciB3aXRoIHZpZGVvIGRyaXZlciBzdGFjayBhbmQgYW1kIGdwdSwgc29ycnkuCj4gPj4gT24g b2xkZXIgaGFyZHdhcmUgKEFHUCBkYXlzKSB0aGUgYnVmZmVyIGhhZCB0byBiZSBpbiBWUkFNIChN TUlPKSBtZW1vcnksIGJ1dCBvbgo+ID4+IG1vZGVybiBzeXN0ZW0gR1RUIChzeXN0ZW0gbWVtb3J5 KSB3b3JrcyBhcyB3ZWxsLgo+ID4gSUlVQywgZTg4NjAgY2FuIHVzZSBhbWRncHUoSSB1c2UgcmFk ZW9uIG5vdykgYmVhdXNlIGl0cyBkZXZpY2UgaWQgNjgyMiBpcyBpbiBhbWRncHUncyB0YWJsZS4g QnV0IEkgY2Fubm90IHRlbGwgd2hldGhlciBlODg2MCBoYXMgaW9tbXUsIGFuZCBJIGNhbm5vdCBm aW5kIGlvbW11IGZyb20gbHNwY2ksIHNvIGdyYXBoaWNzIHRyYW5zbGF0aW9uIHRhYmxlIG1heSBu b3Qgd29yayBoZXJlPwo+IAo+IFRoYXQgaXMgbm90IHJlbGF0ZWQgdG8gSU9NTVUuIElPTU1VIGlz IGEgZmVhdHVyZSBvZiB0aGUgQ1BVL21vdGhlcmJvYXJkLiBUaGlzIGlzCj4gaW1wbGVtZW50ZWQg dXNpbmcgR1RULCBlLmcuIHRoZSBWTSBwYWdlIHRhYmxlcyBpbnNpZGUgdGhlIEdQVS4KPiAKPiBB bmQgeWVzIGl0IHNob3VsZCB3b3JrIEkgd2lsbCBwcmVwYXJlIGEgcGF0Y2ggZm9yIGl0LgoKSSB0 aGluayB5b3UgbWVhbiBtbXUgOikgUmVmZXIgdG8gd2lraXBlZGlhOiBodHRwczovL2VuLndpa2lw ZWRpYS5vcmcvd2lraS9JbnB1dCVFMiU4MCU5M291dHB1dF9tZW1vcnlfbWFuYWdlbWVudF91bml0 Izp+OnRleHQ9SW4lMjBjb21wdXRpbmclMkMlMjBhbiUyMGlucHV0JUUyJTgwJTkzb3V0cHV0LGJ1 cyUyMHRvJTIwdGhlJTIwbWFpbiUyMG1lbW9yeS4KCiAgICBJbiBjb21wdXRpbmcsIGFuIGlucHV0 4oCTb3V0cHV0IG1lbW9yeSBtYW5hZ2VtZW50IHVuaXQgKElPTU1VKSBpcyBhIG1lbW9yeSBtYW5h Z2VtZW50IHVuaXQgKE1NVSkgdGhhdCBjb25uZWN0cyBhIGRpcmVjdC1tZW1vcnktYWNjZXNz4oCT Y2FwYWJsZSAoRE1BLWNhcGFibGUpIEkvTyBidXMgdG8gdGhlIG1haW4gbWVtb3J5LiBMaWtlIGEg dHJhZGl0aW9uYWwgTU1VLCB3aGljaCB0cmFuc2xhdGVzIENQVS12aXNpYmxlIHZpcnR1YWwgYWRk cmVzc2VzIHRvIHBoeXNpY2FsIGFkZHJlc3NlcywgdGhlIElPTU1VIG1hcHMgZGV2aWNlLXZpc2li bGUgdmlydHVhbCBhZGRyZXNzZXMgKGFsc28gY2FsbGVkIGRldmljZSBhZGRyZXNzZXMgb3IgSS9P IGFkZHJlc3NlcyBpbiB0aGlzIGNvbnRleHQpIHRvIHBoeXNpY2FsIGFkZHJlc3Nlcy4gU29tZSB1 bml0cyBhbHNvIHByb3ZpZGUgbWVtb3J5IHByb3RlY3Rpb24gZnJvbSBmYXVsdHkgb3IgbWFsaWNp b3VzIGRldmljZXMuCiAgICBBbiBleGFtcGxlIElPTU1VIGlzIHRoZSBncmFwaGljcyBhZGRyZXNz IHJlbWFwcGluZyB0YWJsZSAoR0FSVCkgdXNlZCBieSBBR1AgYW5kIFBDSSBFeHByZXNzIGdyYXBo aWNzIGNhcmRzIG9uIEludGVsIEFyY2hpdGVjdHVyZSBhbmQgQU1EIGNvbXB1dGVycy4KCkdBUlQg c2hvdWxkIGJlIGFudG9oZXIgYWJiZXIgb2YgR1RUKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93 aWtpL0dyYXBoaWNzX2FkZHJlc3NfcmVtYXBwaW5nX3RhYmxlKToKCiAgICBUaGUgZ3JhcGhpY3Mg YWRkcmVzcyByZW1hcHBpbmcgdGFibGUgKEdBUlQpLFsxXSBhbHNvIGtub3duIGFzIHRoZSBncmFw aGljcyBhcGVydHVyZSByZW1hcHBpbmcgdGFibGUsWzJdIG9yIGdyYXBoaWNzIHRyYW5zbGF0aW9u IHRhYmxlIChHVFQpLFszXSBpcyBhbiBJL08gbWVtb3J5IG1hbmFnZW1lbnQgdW5pdCAoSU9NTVUp IHVzZWQgYnkgQWNjZWxlcmF0ZWQgR3JhcGhpY3MgUG9ydCAoQUdQKSBhbmQgUENJIEV4cHJlc3Mg KFBDSWUpIGdyYXBoaWNzIGNhcmRzLiAKCj4gCj4gPj4+PiBCVFc6IEhvdyBkb2VzIHVzZXJzcGFj ZSB3b3JrIG9uIGFybTY0IHRoZW4/IFRoZSBkcml2ZXIgc3RhY2sgdXN1YWxseSBvbmx5IHdvcmtz Cj4gPj4+PiBpZiBtbWlvIGNhbiBiZSBtYXBwZWQgZGlyZWN0bHkuCj4gPj4+IEkgYWxzbyBwb3N0 IHR3byB1c2VzcGFjZSBpc3N1ZSBvbiBtZXNhLCBhbmQgeW91IG1heSBiZSBpbnRlcmVzdGVkIHdp dGggdGhlbToKPiA+Pj4gICAgaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRs b29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZyUyRm1lc2El MkZtZXNhJTJGLSUyRmlzc3VlcyUyRjM5NTQmYW1wO2RhdGE9MDQlN0MwMSU3Q2NocmlzdGlhbi5r b2VuaWclNDBhbWQuY29tJTdDNGVkM2MwNzU4ODg3NDZiN2Y0MTQwOGQ4YTIyODExYzUlN0MzZGQ4 OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAlN0MwJTdDNjM3NDM3NjQwMjc0MDIzMzUw JTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1 TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRhPVpSN3BE UyUyQkNMVXVNakNlS2NNQVhmSHRiY3p0OFdkVXdTZUxaQ3VIZkNIdyUzRCZhbXA7cmVzZXJ2ZWQ9 MAo+ID4+PiAgICBodHRwczovL25hbTExLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29t Lz91cmw9aHR0cHMlM0ElMkYlMkZnaXRsYWIuZnJlZWRlc2t0b3Aub3JnJTJGbWVzYSUyRm1lc2El MkYtJTJGaXNzdWVzJTJGMzk1MSZhbXA7ZGF0YT0wNCU3QzAxJTdDY2hyaXN0aWFuLmtvZW5pZyU0 MGFtZC5jb20lN0M0ZWQzYzA3NTg4ODc0NmI3ZjQxNDA4ZDhhMjI4MTFjNSU3QzNkZDg5NjFmZTQ4 ODRlNjA4ZTExYTgyZDk5NGUxODNkJTdDMCU3QzAlN0M2Mzc0Mzc2NDAyNzQwMzMzNDQlN0NVbmtu b3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENK QlRpSTZJazFoYVd3aUxDSlhWQ0k2TW4wJTNEJTdDMTAwMCZhbXA7c2RhdGE9akFKbzNhRzJJMW9J RFRaWFdoTmdjS29LYmQ2dFRkaUF0Yzd2RTRoSkpQWSUzRCZhbXA7cmVzZXJ2ZWQ9MAo+ID4+PiBJ IHBhc3RlIHNvbWUgdmlydHVhbCBtZW1vcnkgbWFwIGluIHVzZXJzcGFjZSB0aGVyZS4gKGFuZCB0 aGUgdHdvIHByb2JsZW1zIGRvIGJvdGhlciBtZSBxdWl0ZSBhIGxvbmcgdGltZS4pCj4gPj4gSSBk b24ndCByZWFsbHkgc2VlIGEgc29sdXRpb24gZm9yIHRob3NlIHByb2JsZW1zLgo+ID4+IAo+ID4+ IFNlZSBpdCBpcyBwZXJmZWN0bHkgdmFsaWQgZm9yIGFuIGFwcGxpY2F0aW9uIHRvIG1lbXNldC9t ZW1jcHkgb24gbW1hcGVkIE1NSU8KPiA+PiBzcGFjZSB3aGljaCBjb21lcyBmcm9tIE9wZW5HTCBv ciBWdWxrYW4uCj4gPj4gCj4gPj4gU28geW91ciBDUFUgc2ltcGx5IHdvbid0IHdvcmsgd2l0aCB0 aGUgaGFyZHdhcmUuIFdlIGNvdWxkIHdvcmsgYXJvdW5kIHRoYXQgd2l0aAo+ID4+IGEgY291cGxl IG9mIGhhY2tzLCBidXQgdGhpcyBpcyBhIHByZXR0eSBtdWNoIGdlbmVyYWwgcHJvYmxlbS4KPiA+ PiAKPiA+PiBSZWdhcmRzLAo+ID4+IENocmlzdGlhbi4KPiA+ICAgVGhhbmtzISBDYW4geW91IHBy b3ZpZCBzb21lIGRldGFpbHMgYWJvdXQgdGhlc2UgaGFja3M/IFNob3VsZCBJIHBvc3QgYW5vdGhl cgo+ID4gaXNzdWUgb24gdGhlIG1haWwgbGlzdD8KPiAKPiBBZGp1c3QgdGhlIGtlcm5lbCBhbmQv b3IgdXNlciBzcGFjZSB0byBuZXZlciBtYXAgVlJBTSB0byB0aGUgQ1BVLgo+IAo+IFRoaXMgdmlv bGF0ZXMgdGhlIE9wZW5HTC9WdWxrYW4gc3BlY2lmaWNhdGlvbiBpbiBzb21lIHdheXMuIFNvIG5v dCBzdXJlIGlmIHRoYXQKPiB3aWxsIHdvcmsgb3Igbm90Lgo+IAo+IFJlZ2FyZHMsCj4gQ2hyaXN0 aWFuLgo+IApXZWxsLCBpZiBJIG5ldmVyIG1hcCB2cmFtIHRvIHRoZSBjcHUsIHRoZW4gcmVuZGVy IG5vZGUgbGlrZSByZW5kZXJEMTI4IGNhbm5vdCBleHBvc2UgdG8gdXNlcnNwYWNlIGFueSBtb3Jl IGFuZCBvcGVuY2wgYWxzbyBjYW4ndCB0YWtlIGVmZmVjdHMsIHJpZ2h0PyAKCgpUaGUgZmluYWwg dGhpbmcgSSBzdGlsbCBjYW5ub3QgZmlndXJlIG91dCBpcyB3aHkgc21wbGF5ZXIgY2FuIHBsYXkg dmlkZW8gd2l0aCB2YWFwaSBidXQgY2Fubm90IHdpdGggdmRwYXU/IGJvdGggdGhlbSBzaG91bGQg dGFrZSB1c2UgcmVuZGVyRDEyOCB0byByZW5kZXIuIAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=