From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 00/10] drm/vkms: rework crc worker Date: Wed, 12 Jun 2019 16:42:20 +0200 Message-ID: <20190612144220.GO2458@phenom.ffwll.local> References: <20190606222751.32567-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id D218A891E2 for ; Wed, 12 Jun 2019 14:42:24 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id g13so26134463edu.5 for ; Wed, 12 Jun 2019 07:42:24 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rodrigo Siqueira Cc: Daniel Vetter , DRI Development List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKdW4gMTIsIDIwMTkgYXQgMTA6Mjg6NDFBTSAtMDMwMCwgUm9kcmlnbyBTaXF1ZWly YSB3cm90ZToKPiBIaSBEYW5pZWwsCj4gCj4gRmlyc3Qgb2YgYWxsLCB0aGFuayB5b3UgdmVyeSBt dWNoIGZvciB5b3VyIHBhdGNoc2V0Lgo+IAo+IEkgdHJpZWQgdG8gbWFrZSBhIGRldGFpbGVkIHJl dmlldyBvZiB5b3VyIHNlcmllcywgYW5kIHlvdSBjYW4gc2VlIG15Cj4gY29tbWVudHMgaW4gZWFj aCBwYXRjaC4gWW914oCZbGwgbm90aWNlIHRoYXQgSSBhc2tlZCBtYW55IHRoaW5ncyByZWxhdGVk Cj4gdG8gdGhlIERSTSBzdWJzeXN0ZW0gd2l0aCB0aGUgaG9wZSB0aGF0IEkgY291bGQgbGVhcm4g YSBsaXR0bGUgYml0Cj4gbW9yZSBhYm91dCBEUk0gZnJvbSB5b3VyIGNvbW1lbnRzLgo+IAo+IEJl Zm9yZSB5b3UgZ28gdGhyb3VnaCB0aGUgcmV2aWV3LCBJIHdvdWxkIGxpa2UgdG8gc3RhcnQgYSBk aXNjdXNzaW9uCj4gYWJvdXQgdGhlIHZrbXMgcmFjZSBjb25kaXRpb25zLiBGaXJzdCwgSSBoYXZl IHRvIGFkbWl0IHRoYXQgSSBkaWQgbm90Cj4gdW5kZXJzdGFuZCB0aGUgcmFjZSBjb25kaXRpb25z IHRoYXQgeW91IGRlc2NyaWJlZCBiZWZvcmUgYmVjYXVzZSBJCj4gY291bGRu4oCZdCByZXByb2R1 Y2UgdGhlbS4gTm93LCBJJ20gc3VzcGVjdGluZyB0aGF0IEkgY291bGQgbm90Cj4gZXhwZXJpZW5j ZSB0aGUgcHJvYmxlbSBiZWNhdXNlIEknbSB1c2luZyBRRU1VIHdpdGggS1ZNOyB3aXRoIHRoaXMg aWRlYQo+IGluIG1pbmQsIEkgc3VwcG9zZSB0aGF0IHdlIGhhdmUgdHdvIHNjZW5hcmlvcyBmb3Ig dXNpbmcgdmttcyBpbiBhCj4gdmlydHVhbCBtYWNoaW5lOgo+IAo+ICogU2NlbmFyaW8gMTogVGhl IHVzZXIgaGFzIGhhcmR3YXJlIHZpcnR1YWxpemF0aW9uIHN1cHBvcnQ7IGluIHRoaXMKPiBjYXNl LCBpdCBpcyBhIGxpdHRsZSBiaXQgaGFyZGVyIHRvIGV4cGVyaWVuY2UgcmFjZSBjb25kaXRpb25z IHdpdGgKPiB2a21zLgo+IAo+ICogU2NlbmFyaW8gMjogV2l0aG91dCBoYXJkd2FyZSB2aXJ0dWFs aXphdGlvbiBzdXBwb3J0LCBpdCBpcyBtdWNoCj4gZWFzaWVyIHRvIGV4cGVyaWVuY2UgcmFjZSBj b25kaXRpb25zLgo+IAo+IFdpdGggdGhlc2UgdHdvIHNjZW5hcmlvcyBpbiBtaW5kLCBJIGNvbmR1 Y3RlZCBhIGJ1bmNoIG9mIGV4cGVyaW1lbnRzCj4gZm9yIHRyeWluZyB0byBzaGVkIGxpZ2h0IG9u IHRoaXMgaXNzdWUuIEkgZGlkOgo+IAo+IDEuIEVuYWJsZWQgbG9ja2RlcAo+IAo+IDIuIERlZmlu ZWQgdHdvIGRpZmZlcmVudCBlbnZpcm9ubWVudHMgZm9yIHRlc3RpbmcgYm90aCB1c2luZyBRRU1V IHdpdGgKPiBhbmQgd2l0aG91dCBrdm0uIFNlZSBiZWxvdyB0aGUgUUVNVSBoYXJkd2FyZSBvcHRp b25zOgo+IAo+ICogZW52X2t2bTogLWVuYWJsZS1rdm0gLWRhZW1vbml6ZSAtbSAxRyAtc21wIGNv cmVzPTIsY3B1cz0yCj4gKiBlbnZfbm9fa3ZtOiAtZGFlbW9uaXplIC1tIDJHIC1zbXAgY29yZXM9 NCxjcHVzPTQKPiAKPiAzLiBNeSB0ZXN0IHByb3RvY29sOiBJKSB0dXJuIG9uIHRoZSB2bSwgSUkp IGNsZWFuIC9wcm9jL2xvY2tfc3RhdCwKPiBJSUkpIGV4ZWN1dGUga21zX2N1cnNvcl9jcmMsIElJ SSkgc2F2ZSB0aGUgbG9ja19zdGF0IGZpbGUsIGFuZCBJVikKPiB0dXJuIG9mZiB0aGUgdm0uCj4g Cj4gNC4gRnJvbSB0aGUgbG9ja2RlcF9zdGF0LCBJIGp1c3QgaGlnaGxpZ2h0ZWQgdGhlIHJvdyBy ZWxhdGVkIHRvIHZrbXMKPiBhbmQgdGhlIGNvbHVtbnMgaG9sZHRpbWUtdG90YWwgYW5kIGhvbGR0 aW1lLWF2Zwo+IAo+IEkgd291bGQgbGlrZSB0byBoaWdobGlnaHQgdGhhdCB0aGUgZm9sbG93aW5n IGRhdGEgZG9lcyBub3QgaGF2ZSBhbnkKPiBzdGF0aXN0aWNhbCBhcHByb2FjaCwgYW5kIGl0cyBp bnRlbnRpb24gaXMgc29sZWx5IHRvIGFzc2lzdCBvdXIKPiBkaXNjdXNzaW9uLiBTZWUgYmVsb3cg dGhlIHN1bW1hcnkgb2YgdGhlIGNvbGxlY3RlZCBkYXRhOgo+IAo+IFN1bW1hcnkgb2YgdGhlIGV4 cGVyaW1lbnQgcmVzdWx0czoKPiAKPiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCj4gfCAgICAgICAgICAgICAgICB8ICAgICBlbnZfa3ZtICAgIHwg ICBlbnZfbm9fa3ZtICAgfAo+ICsgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPiB8IFRlc3QgICAgICAgICAgIHwgQmVmb3JlIHwgQWZ0ZXIgfCBCZWZv cmUgfCBBZnRlciB8Cj4gKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tKwo+IHwga21zX2N1cnNvcl9jcmMgfCAgIFMxICAgfCAgIFMyICB8ICAgTTEgICB8 ICAgTTIgIHwKPiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0rCj4gCj4gKiBCZWZvcmU6IGJlZm9yZSBhcHBseSB0aGlzIHBhdGNoc2V0Cj4gKiBBZnRl cjogYWZ0ZXIgYXBwbHkgdGhpcyBwYXRjaHNldAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQo+IFMxOiBX aXRob3V0IHRoaXMgcGF0Y2hzZXQgYW5kIHdpdGgga3ZtICAgfCBob2xkdGltZS10b3RhbCB8IGhv bGR0aW1lLWF2Zwo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQo+ICYoJnZrbXNfb3V0LT5sb2NrKS0+cmxvY2s6 ICAgICAgICAgICAgICAgfCAgMjE5ODMuNTIgICAgICB8ICA2LjIxCj4gKHdvcmtfY29tcGxldGlv bikoJnZrbXNfc3RhdGUtPmNyY193bzogICB8ICAyMC40NyAgICAgICAgIHwgIDIwLjQ3Cj4gKHdx X2NvbXBsZXRpb24pdmttc19jcmNfd29ya3E6ICAgICAgICAgICB8ICAzOTk5NTA3Ljg3ICAgIHwg IDMzNTIuNDgKPiAmKCZ2a21zX291dC0+c3RhdGVfbG9jayktPnJsb2NrOiAgICAgICAgIHwgIDM3 OC40NyAgICAgICAgfCAgMC4zMAo+ICh3b3JrX2NvbXBsZXRpb24pKCZ2a21zX3N0YXRlLT5jcmNf IzI6ICAgfCAgMzk5OTA2Ni4zMCAgICB8ICAyODQ4LjM0Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCj4gUzI6 IFdpdGggdGhpcyBwYXRjaHNldCBhbmQgd2l0aCBrdm0gICAgICB8ICAgICAgICAgICAgICAgIHwK PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KPiAmKCZ2a21zX291dC0+bG9jayktPnJsb2NrOiAgICAgICAgICAg ICAgIHwgIDIzMjYyLjgzICAgICAgfCAgNi4zNAo+ICh3b3JrX2NvbXBsZXRpb24pKCZ2a21zX3N0 YXRlLT5jcmNfd286ICAgfCAgOC45OCAgICAgICAgICB8ICA4Ljk4Cj4gJigmdmttc19vdXQtPmNy Y19sb2NrKS0+cmxvY2s6ICAgICAgICAgICB8ICAzMDcuMjggICAgICAgIHwgIDAuMzIKPiAod3Ff Y29tcGxldGlvbil2a21zX2NyY193b3JrcTogICAgICAgICAgIHwgIDY1Njc3MjcuMDUgICAgfCAg MTIzNDUuMzUKPiAod29ya19jb21wbGV0aW9uKSgmdmttc19zdGF0ZS0+Y3JjXyMyOiAgIHwgIDY1 NjcxMzUuMTUgICAgfCAgNDQ4OC44MQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQo+IE0xOiBXaXRob3V0IHRo aXMgcGF0Y2hzZXQgYW5kIHdpdGhvdXQga3ZtfCAgICAgICAgICAgICAgICB8Cj4gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCj4gJigmdmttc19vdXQtPnN0YXRlX2xvY2spLT5ybG9jazogICAgICAgICB8ICA0OTk0 LjcyICAgICAgIHwgIDEuNjEKPiAmKCZ2a21zX291dC0+bG9jayktPnJsb2NrOiAgICAgICAgICAg ICAgIHwgIDI0NzE5MC4wNCAgICAgfCAgMzkuMzkKPiAod29ya19jb21wbGV0aW9uKSgmdmttc19z dGF0ZS0+Y3JjX3dvOiAgIHwgIDMxLjMyICAgICAgICAgfCAgMzEuMzIKPiAod3FfY29tcGxldGlv bil2a21zX2NyY193b3JrcTogICAgICAgICAgIHwgIDIwOTkxMDczLjc4ICAgfCAgMTM1MjUuMTgK PiAod29ya19jb21wbGV0aW9uKSgmdmttc19zdGF0ZS0+Y3JjXyMyOiAgIHwgIDIwOTg4MzQ3LjE4 ICAgfCAgMTE5MDQuOTAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KPiBNMjogV2l0aCB0aGlzIHBhdGNoc2V0 IGFuZCB3aXRob3V0IGt2bSAgIHwgICAgICAgICAgICAgICAgfAo+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQo+ ICh3cV9jb21wbGV0aW9uKXZrbXNfY3JjX3dvcmtxOiAgICAgICAgICAgfCAgNDI4MTkxNjEuNjgg ICB8ICAzNjU5Ny41Nwo+ICYoJnZrbXNfb3V0LT5sb2NrKS0+cmxvY2s6ICAgICAgICAgICAgICAg fCAgMjUxMjU3LjA2ICAgICB8ICAzNS44MAo+ICh3b3JrX2NvbXBsZXRpb24pKCZ2a21zX3N0YXRl LT5jcmNfd286ICAgfCAgNjkuMzcgICAgICAgICB8ICA2OS4zNwo+ICYoJnZrbXNfb3V0LT5jcmNf bG9jayktPnJsb2NrOiAgICAgICAgICAgfCAgMzYyMC45MiAgICAgICB8ICAxLjU0Cj4gKHdvcmtf Y29tcGxldGlvbikoJnZrbXNfc3RhdGUtPmNyY18jMjogICB8ICA0MjgwMzQxOS41OSAgIHwgIDI0 MzA2LjMxCj4gCj4gRmlyc3QsIEkgYW5hbHl6ZWQgdGhlIHNjZW5hcmlvcyB3aXRoIEtWTSAoUzEg YW5kIFMyKTsgbW9yZQo+IHNwZWNpZmljYWxseSwgSSBmb2N1c2VkIG9uIHRoZXNlIHR3byBjbGFz c2VzOgo+IAo+IDEuICh3b3JrX2NvbXBsZXRpb24pKCZ2a21zX3N0YXRlLT5jcmNfd28KPiAyLiAo d29ya19jb21wbGV0aW9uKSgmdmttc19zdGF0ZS0+Y3JjXyMyCj4gCj4gQWZ0ZXIgdGFraW5nIGEg bG9vayBhdCB0aGUgZGF0YSwgaXQgbG9va3MgbGlrZSB0aGF0IHRoaXMgcGF0Y2hzZXQKPiBncmVh dGx5IHJlZHVjZXMgdGhlIGhvbGQgdGltZSBhdmVyYWdlIGZvciBjcmNfd28uIE9uIHRoZSBvdGhl ciBoYW5kLAo+IGl0IGluY3JlYXNlcyB0aGUgaG9sZCB0aW1lIGF2ZXJhZ2UgZm9yIGNyY18jMi4g SSBkaWRu4oCZdCB1bmRlcnN0YW5kCj4gd2VsbCB0aGUgcmVhc29uIGZvciB0aGUgZGlmZmVyZW5j ZS4gQ291bGQgeW91IGhlbHAgbWUgaGVyZT8KClNvIHRoZXJlJ3MgdHdvIHJlYWwgbG9ja3MgaGVy ZSBmcm9tIG91ciBjb2RlLCB0aGUgb25lcyB5b3UgY2FuIHNlZSBhcwpzcGlubG9ja3M6CgomKCZ2 a21zX291dC0+c3RhdGVfbG9jayktPnJsb2NrOiAgICAgICAgIHwgIDQ5OTQuNzIgICAgICAgfCAg MS42MQomKCZ2a21zX291dC0+bG9jayktPnJsb2NrOiAgICAgICAgICAgICAgIHwgIDI0NzE5MC4w NCAgICAgfCAgMzkuMzkKCkFsbCB0aGUgb3RoZXJzIGFyZSBmYWtlIGxvY2tzIHRoYXQgdGhlIHdv cmtxdWV1ZSBhZGRzLCB3aGljaCBvbmx5IGV4aXN0IGluCmxvY2tkZXAuIFRoZXkgYXJlIHVzZWQg dG8gY2F0Y2ggc3BlY2lhbCBraW5kcyBvZiBkZWFkbG9ja3MgbGlrZSB0aGUgYmVsb3c6Cgp0aHJl YWQgQToKMS4gbXV0ZXhfbG9jayhtdXRleF9BKQoyLiBmbHVzaF93b3JrKHdvcmtfQSkKCnRocmVh ZCBCCjEuIHJ1bm5pbmcgd29ya19BOgoyLiBtdXRleF9sb2NrKG11dGV4X0EpCgp0aHJlYWQgQiBj YW4ndCBjb250aW51ZSBiZWN1YXNlIG11dGV4X0EgaXMgYWxyZWFkeSBoZWxkIGJ5IHRocmVhZCBB Lgp0aHJlYWQgQSBjYW4ndCBjb250aW51ZSBiZWNhdXNlIHRocmVhZCBCIGlzIGJsb2NrZWQgYW5k IHRoZSB3b3JrIG5ldmVyCmZpbmlzaGVzLgotPiBkZWFkbG9jawoKSSBoYXZlbid0IGNoZWNrZWQg d2hpY2ggaXMgd2hpY2gsIGJ1dCBlc3NlbnRpYWxseSB3aGF0IHlvdSBtZWFzdXJlIHdpdGgKdGhl IGhvbGQgdGltZXMgb2YgdGhlc2UgZmFrZSBsb2NrcyBpcyBob3cgbG9uZyBhIHdvcmsgZXhlY3V0 aW9uIHRha2VzIG9uCmF2ZXJhZ2UuCgpTaW5jZSBteSBwYXRjaGVzIGFyZSBzdXBwb3NlZCB0byBm aXggcmFjZXMgd2hlcmUgdGhlIHdvcmtlciBjYW4ndCBrZWVwIHVwCndpdGggdGhlIHZibGFuayBo cnRpbWVyLCB0aGVuIHRoZSBhdmVyYWdlIHdvcmtlciB3aWxsIChwcm9iYWJseSkgZG8gbW9yZSwK c28gdGhhdCBnb2luZyB1cCBpcyBleHBlY3RlZC4gSSB0aGluay4KCkknbSBob25lc3RseSBub3Qg c3VyZSB3aGF0J3MgZ29pbmcgb24gaGVyZSwgbmV2ZXIgbG9va2luZyBpbnRvIHRoaXMgaW4KZGV0 YWlsLgoKPiBXaGVuIEkgbG9va2VkIGZvciB0aGUgc2Vjb25kIHNldCBvZiBzY2VuYXJpb3MgKE0x IGFuZCBNMiwgYm90aCB3aXRob3V0Cj4gS1ZNKSwgdGhlIHJlc3VsdHMgbG9vayBtdWNoIG1vcmUg ZGlzdGFudDsgYmFzaWNhbGx5LCB0aGlzIHBhdGNoc2V0Cj4gaW5jcmVhc2VkIHRoZSBob2xkIHRp bWUgYXZlcmFnZS4gQWdhaW4sIGNvdWxkIHlvdSBoZWxwIG1lIHVuZGVyc3RhbmQgYQo+IGxpdHRs ZSBiaXQgYmV0dGVyIHRoaXMgaXNzdWU/Cj4gCj4gRmluYWxseSwgYWZ0ZXIgdGhlc2UgdGVzdHMs IEkgaGF2ZSBzb21lIHF1ZXN0aW9uczoKPiAKPiAxLiBWS01TIGlzIGEgc29mdHdhcmUtb25seSBk cml2ZXI7IGJlY2F1c2Ugb2YgdGhpcywgaG93IGFib3V0IGRlZmluaW5nCj4gYSBtaW5pbWFsIHN5 c3RlbSByZXNvdXJjZSBmb3IgdXNpbmcgaXQ/CgpObyBpZGVhLCBpbiByZWFsaXR5IGl0J3MgcHJv YmFibHkgImlmIGl0IGZhaWxzIHRvbyBvZnRlbiwgYnV5IGZhc3RlciBjcHUiLgpJIGRvIHRoaW5r IHdlIHNob3VsZCBtYWtlIHRoZSBjb2RlIHJvYnVzdCBhZ2FpbnN0IGEgc2xvdyBjcHUsIHNpbmNl IGF0bQp0aGF0J3MgbmVlZGVkIGV2ZW4gb24gcHJldHR5IGZhc3QgbWFjaGluZXMgKGJlY2F1c2Ug b3VyIGJsZW5kaW5nIGNvZGUgaXMKcmVhbGx5LCByZWFsbHkgc2xvdyBhbmQgaW5lZmZpY2llbnQp LgoKPiAyLiBEdXJpbmcgbXkgZXhwZXJpbWVudHMsIEkgbm90aWNlZCB0aGF0IHJ1bm5pbmcgdGVz dHMgd2l0aCBhIFZNIHRoYXQKPiB1c2VzIEtWTSBoYWQgY29uc2lzdGVudCByZXN1bHRzLiBGb3Ig ZXhhbXBsZSwga21zX2ZsaXAgbmV2ZXIgZmFpbHMKPiB3aXRoIFFFTVUrS1ZNOyBob3dldmVyLCB3 aXRob3V0IEtWTSwgdHdvIG9yIHRocmVlIHRlc3RzIGZhaWxlZCAob25lIG9mCj4gdGhlbSBsb29r cyByYW5kb20pLiBJZiB3ZSB1c2UgdmttcyBmb3IgdGVzdCBEUk0gc3R1ZmYsIHNob3VsZCB3ZQo+ IHJlY29tbWVuZCB0aGUgdXNlIG9mIEtWTT8KCldoYXQgZG8geW91IG1lYW4gd2l0aG91dCBrdm0/ IEluIGdlbmVyYWwgcnVubmluZyB3aXRob3V0IGt2bSBzaG91bGRuJ3QgYmUKc2xvd2VyLCBzbyBJ J20gYSBiaXQgY29uZnVzZWQgLi4uIEknbSBydW5uaW5nIHZnZW0gZGlyZWN0bHkgb24gdGhlCm1h Y2hpbmUsIGJ5IGJvb3RpbmcgaW50byBuZXcga2VybmVscyAoYW5kIGNvbnRyb2xsaW5nIHRoZSBt YWNoaW5lIG92ZXIgdGhlCm5ldHdvcmspLgotRGFuaWVsCgo+IEJlc3QgUmVnYXJkcwo+IAo+IE9u IFRodSwgSnVuIDYsIDIwMTkgYXQgNzoyOCBQTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVy QGZmd2xsLmNoPiB3cm90ZToKPiA+Cj4gPiBIaSBhbGwsCj4gPgo+ID4gVGhpcyBoZXJlIGlzIHRo ZSBmaXJzdCBwYXJ0IG9mIGEgcmV3b3JrIGZvciB0aGUgdmttcyBjcmMgd29ya2VyLiBJIHRoaW5r Cj4gPiB0aGlzIHNob3VsZCBmaXggYWxsIHRoZSBsb2NraW5nL3JhY2VzL3VzZS1hZnRlci1mcmVl IGlzc3VlcyBJIHNwb3R0ZWQgaW4KPiA+IHRoZSBjb2RlLiBUaGVyZSdzIG1vcmUgd29yayB3ZSBj YW4gZG8gaW4gdGhlIGZ1dHVyZSBhcyBhIGZvbGxvdy11cDoKPiA+Cj4gPiAtIGRpcmVjdGx5IGFj Y2VzcyB2a21zX3BsYW5lX3N0YXRlLT5iYXNlIGluIHRoZSBjcmMgd29ya2VyLCB3aXRoIHRoaXMK PiA+ICAgYXBwcm9hY2ggaW4gdGhpcyBzZXJpZXMgaGVyZSB0aGF0IHNob3VsZCBiZSBzYWZlIG5v dy4gRm9sbG93LXVwIHBhdGNoZXMKPiA+ICAgY291bGQgc3dpdGNoIGFuZCByZW1vdmUgYWxsIHRo ZSBzZXBhcmF0ZSBjcmNfZGF0YSBpbmZyYXN0cnVjdHVyZS4KPiA+Cj4gPiAtIEkgdGhpbmsgc29t ZSBrZXJuZWxkb2MgZm9yIHZrbXMgc3RydWN0dXJlcyB3b3VsZCBiZSBuaWNlLiBEb2N1bWVudGF0 aW9uCj4gPiAgIHRoZSB2YXJpb3VzIGZ1bmN0aW9ucyBpcyBwcm9iYWJseSBvdmVya2lsbC4KPiA+ Cj4gPiAtIEltcGxlbWVudGluZyBhIG1vcmUgZ2VuZXJpYyBibGVuZGluZyBlbmdpbmUsIGFzIHBy ZXAgZm9yIGFkZGluZyBtb3JlCj4gPiAgIHBpeGVsIGZvcm1hdHMsIG1vcmUgcGxhbmVzLCBhbmQg bW9yZSBmZWF0dXJlcyBpbiBnZW5lcmFsLgo+ID4KPiA+IFRlc3RlZCB3aXRoIGttc19waXBlX2Ny Yywga21zX2ZsaXAgYW5kIGttc19jdXJzb3JfY3JjLiBTZWVtcyB0byBub3QgbWFrZQo+ID4gdGhp bmdzIHdvcnNlLCBidXQgSSBkaWRuJ3QgZG8gYSBmdWxsIHJ1bi4KPiA+Cj4gPiBDaGVlcnMsIERh bmllbAo+ID4KPiA+IERhbmllbCBWZXR0ZXIgKDEwKToKPiA+ICAgZHJtL3ZrbXM6IEZpeCBjcmMg d29ya2VyIHJhY2VzCj4gPiAgIGRybS92a21zOiBVc2Ugc3Bpbl9sb2NrX2lycSBpbiBwcm9jZXNz IGNvbnRleHQKPiA+ICAgZHJtL3ZrbXM6IFJlbmFtZSB2a21zX291dHB1dC5zdGF0ZV9sb2NrIHRv IGNyY19sb2NrCj4gPiAgIGRybS92a21zOiBNb3ZlIGZvcm1hdCBhcnJheXMgdG8gdmttc19wbGFu ZS5jCj4gPiAgIGRybS92a21zOiBBZGQgb3VyIG93biBjb21taXRfdGFpbAo+ID4gICBkcm0vdmtt czogZmx1c2ggY3JjIHdvcmtlcnMgZWFybGllciBpbiBjb21taXQgZmxvdwo+ID4gICBkcm0vdmtt czogRG9udCBmbHVzaCBjcmMgd29ya2VyIHdoZW4gd2UgY2hhbmdlIGNyYyBzdGF0dXMKPiA+ICAg ZHJtL3ZrbXM6IE5vIF9pcnFzYXZlIHdpdGhpbiBzcGluX2xvY2tfaXJxIG5lZWRlZAo+ID4gICBk cm0vdmttczogdG90YWxseSByZXdvcmtlZCBjcmMgZGF0YSB0cmFja2luZwo+ID4gICBkcm0vdmtt czogTm8gbmVlZCBmb3IgLT5wYWdlc19sb2NrIGluIGNyYyB3b3JrIGFueW1vcmUKPiA+Cj4gPiAg ZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcmMuYyAgIHwgNzQgKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jICB8IDgwICsr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92 a21zX2Rydi5jICAgfCAzNSArKysrKysrKysrKysrKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21z L3ZrbXNfZHJ2LmggICB8IDI0ICsrKysrLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92 a21zX3BsYW5lLmMgfCAgOCArKysrCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAxNDYgaW5zZXJ0aW9u cygrKSwgNzUgZGVsZXRpb25zKC0pCj4gPgo+ID4gLS0KPiA+IDIuMjAuMQo+ID4KPiA+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBkcmktZGV2ZWwg bWFpbGluZyBsaXN0Cj4gPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo+IAo+ IAo+IAo+IC0tIAo+IAo+IFJvZHJpZ28gU2lxdWVpcmEKPiBodHRwczovL3NpcXVlaXJhLnRlY2gK Ci0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpo dHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWw=