From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator Date: Tue, 12 Jan 2016 17:19:28 +0100 Message-ID: <20160112161928.GH19130@phenom.ffwll.local> References: <1452252592-24803-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1452252592-24803-8-git-send-email-tvrtko.ursulin@linux.intel.com> <568FB9AA.7020201@linux.intel.com> <20160111084359.GQ8076@phenom.ffwll.local> <56937B2A.9030405@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by gabe.freedesktop.org (Postfix) with ESMTPS id 838E46E6A8 for ; Tue, 12 Jan 2016 08:19:27 -0800 (PST) Received: by mail-wm0-f67.google.com with SMTP id u188so32126480wmu.0 for ; Tue, 12 Jan 2016 08:19:27 -0800 (PST) Content-Disposition: inline In-Reply-To: <56937B2A.9030405@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin Cc: Daniel Vetter , Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKYW4gMTEsIDIwMTYgYXQgMDk6NTE6MzhBTSArMDAwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gCj4gT24gMTEvMDEvMTYgMDg6NDMsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiBP biBGcmksIEphbiAwOCwgMjAxNiBhdCAwMToyOToxNFBNICswMDAwLCBUdnJ0a28gVXJzdWxpbiB3 cm90ZToKPiA+Pgo+ID4+IE9uIDA4LzAxLzE2IDExOjI5LCBUdnJ0a28gVXJzdWxpbiB3cm90ZToK PiA+Pj4gRnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiA+ Pj4KPiA+Pj4gUHVycG9zZSBpcyB0byBjYXRjaCBwbGFjZXMgd2hpY2ggaXRlcmF0ZSB0aGUgb2Jq ZWN0IFZNQSBsaXN0Cj4gPj4+IHdpdGhvdXQgaG9sZGluZyB0aGUgYmlnIGxvY2suCj4gPj4+Cj4g Pj4+IEltcGxlbWVudGVkIGJ5IG9wZW4gY29kaW5nIGxpc3RfZm9yX2VhY2hfZW50cnkgdG8gbWFr ZSB0aGUKPiA+Pj4gbWFjcm8gY29tcGF0aWJsZSB3aXRoIGV4aXN0aW5nIGNhbGwgc2l0ZXMuCj4g Pj4+Cj4gPj4+IFNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBp bnRlbC5jb20+Cj4gPj4+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo Pgo+ID4+PiAtLS0KPiA+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAg ICAgIHwgIDggKysrKy0tLS0KPiA+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o ICAgICAgICAgIHwgIDYgKysrKysrCj4gPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgICAgICB8IDI0ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ID4+PiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgfCAgMiArLQo+ID4+PiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMgfCAgMiArLQo+ID4+PiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgfCAgNCArKy0tCj4gPj4+ICAgNiBm aWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKPiA+Pj4KPiA+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+Pj4gaW5kZXggNzE0YTQ1Y2Y4YTUx Li5kN2MyYTMyMDExNjEgMTAwNjQ0Cj4gPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCj4gPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCj4gPj4+IEBAIC0xMTcsNyArMTE3LDcgQEAgc3RhdGljIHU2NCBpOTE1X2dlbV9vYmpfdG90 YWxfZ2d0dF9zaXplKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gPj4+ICAgCXU2 NCBzaXplID0gMDsKPiA+Pj4gICAJc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4gPj4+Cj4gPj4+IC0J bGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZvYmotPnZtYV9saXN0LCB2bWFfbGluaykgewo+ID4+ PiArCWk5MTVfZ2VtX29ial9mb3JfZWFjaF92bWEodm1hLCBvYmopIHsKPiA+Pj4gICAJCWlmIChp OTE1X2lzX2dndHQodm1hLT52bSkgJiYKPiA+Pj4gICAJCSAgICBkcm1fbW1fbm9kZV9hbGxvY2F0 ZWQoJnZtYS0+bm9kZSkpCj4gPj4+ICAgCQkJc2l6ZSArPSB2bWEtPm5vZGUuc2l6ZTsKPiA+Pj4g QEAgLTE1NSw3ICsxNTUsNyBAQCBkZXNjcmliZV9vYmooc3RydWN0IHNlcV9maWxlICptLCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ID4+PiAgIAkJICAgb2JqLT5tYWR2ID09IEk5 MTVfTUFEVl9ET05UTkVFRCA/ICIgcHVyZ2VhYmxlIiA6ICIiKTsKPiA+Pj4gICAJaWYgKG9iai0+ YmFzZS5uYW1lKQo+ID4+PiAgIAkJc2VxX3ByaW50ZihtLCAiIChuYW1lOiAlZCkiLCBvYmotPmJh c2UubmFtZSk7Cj4gPj4+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZvYmotPnZtYV9saXN0 LCB2bWFfbGluaykgewo+ID4+PiArCWk5MTVfZ2VtX29ial9mb3JfZWFjaF92bWEodm1hLCBvYmop IHsKPiA+Pj4gICAJCWlmICh2bWEtPnBpbl9jb3VudCA+IDApCj4gPj4+ICAgCQkJcGluX2NvdW50 Kys7Cj4gPj4+ICAgCX0KPiA+Pj4gQEAgLTE2NCw3ICsxNjQsNyBAQCBkZXNjcmliZV9vYmooc3Ry dWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ID4+PiAg IAkJc2VxX3ByaW50ZihtLCAiIChkaXNwbGF5KSIpOwo+ID4+PiAgIAlpZiAob2JqLT5mZW5jZV9y ZWcgIT0gSTkxNV9GRU5DRV9SRUdfTk9ORSkKPiA+Pj4gICAJCXNlcV9wcmludGYobSwgIiAoZmVu Y2U6ICVkKSIsIG9iai0+ZmVuY2VfcmVnKTsKPiA+Pj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZt YSwgJm9iai0+dm1hX2xpc3QsIHZtYV9saW5rKSB7Cj4gPj4+ICsJaTkxNV9nZW1fb2JqX2Zvcl9l YWNoX3ZtYSh2bWEsIG9iaikgewo+ID4+PiAgIAkJc2VxX3ByaW50ZihtLCAiICglc2d0dCBvZmZz ZXQ6ICUwOGxseCwgc2l6ZTogJTA4bGx4IiwKPiA+Pj4gICAJCQkgICBpOTE1X2lzX2dndHQodm1h LT52bSkgPyAiZyIgOiAicHAiLAo+ID4+PiAgIAkJCSAgIHZtYS0+bm9kZS5zdGFydCwgdm1hLT5u b2RlLnNpemUpOwo+ID4+PiBAQCAtMzQyLDcgKzM0Miw3IEBAIHN0YXRpYyBpbnQgcGVyX2ZpbGVf c3RhdHMoaW50IGlkLCB2b2lkICpwdHIsIHZvaWQgKmRhdGEpCj4gPj4+ICAgCQlzdGF0cy0+c2hh cmVkICs9IG9iai0+YmFzZS5zaXplOwo+ID4+Pgo+ID4+PiAgIAlpZiAoVVNFU19GVUxMX1BQR1RU KG9iai0+YmFzZS5kZXYpKSB7Cj4gPj4+IC0JCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAmb2Jq LT52bWFfbGlzdCwgdm1hX2xpbmspIHsKPiA+Pj4gKwkJaTkxNV9nZW1fb2JqX2Zvcl9lYWNoX3Zt YSh2bWEsIG9iaikgewo+ID4+PiAgIAkJCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dDsKPiA+ Pj4KPiA+Pj4gICAJCQlpZiAoIWRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSkKPiA+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPj4+IGluZGV4IGI3N2E1ZDg0ZWFjMi4uMDQwNmEw MjBkZmNjIDEwMDY0NAo+ID4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+Pj4gQEAgLTI4 NTIsNiArMjg1MiwxMiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqaTkxNV9nZW1fb2Jq ZWN0X2NyZWF0ZV9mcm9tX2RhdGEoCj4gPj4+ICAgdm9pZCBpOTE1X2dlbV9mcmVlX29iamVjdChz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4gPj4+ICAgdm9pZCBpOTE1X2dlbV92bWFfZGVz dHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7Cj4gPj4+Cj4gPj4+ICsjZGVmaW5lIGk5MTVfZ2Vt X29ial9mb3JfZWFjaF92bWEodm1hLCBvYmopIFwKPiA+Pj4gKwlmb3IgKFdBUk5fT05fT05DRSgh bXV0ZXhfaXNfbG9ja2VkKCYob2JqKS0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCkpLCBcCj4gPj4+ ICsJICAgICB2bWEgPSBsaXN0X2ZpcnN0X2VudHJ5KCYob2JqKS0+dm1hX2xpc3QsIHR5cGVvZigq dm1hKSwgdm1hX2xpbmspO1wKPiA+Pj4gKwkgICAgICZ2bWEtPnZtYV9saW5rICE9ICgmKG9iaikt PnZtYV9saXN0KTsgXAo+ID4+PiArCSAgICAgdm1hID0gbGlzdF9uZXh0X2VudHJ5KHZtYSwgdm1h X2xpbmspKQo+ID4+PiArCj4gPj4KPiA+Pgo+ID4+IFVuZm9ydHVuYXRlbHkgZXJyb3IgY2FwdHVy ZSBpcyBub3QgaGFwcHkgd2l0aCB0aGlzIGFwcHJvYWNoLiBDYW4ndCBldmVuIHNlZQo+ID4+IHRo YXQgZXJyb3IgY2FwdHVyZSBhdHRlbXB0cyB0byBncmFiIHRoZSBtdXRleCBhbnl3aGVyZS4KPiA+ Pgo+ID4+IFNvIHdoYXQ/IERyb3AgdGhlIGlkZWEgb3IgYWRkIGEgImRvaW5nIGVycm9yIGNhcHR1 cmUiIGZsYWcgc29tZXdoZXJlPwo+ID4gCj4gPiBGaXggdGhlIGJ1Z3MuIE5vdCBzdXJwcmlzZSBh dCBhbGwgdGhhdCB3ZSd2ZSBzY3Jld2VkIHRoaXMgdXAgYWxsIG92ZXIgdGhlCj4gPiBwbGFjZSA7 LSkgQWZhaWNzIG1vZGVzZXQgY29kZSBpc24ndCBtdWNoIGJldHRlciBlaXRoZXIgLi4uCj4gCj4g T2sgSSdsbCBkcm9wIHRoaXMgcGF0Y2ggdGhlbiBzaW5jZSB0aGUgc2VyaWVzIGNvbnRhaW5zIGZp eGVzIHRvIGFsbCBidXQgb25lCj4gcmVsYXRlZCBpc3N1ZXMuIFRoZSByZW1haW5pbmcgb25lIGlz IHRoZW46Cj4gCj4gWyAgIDE3LjM3MDM2Nl0gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0t LS0tLS0tCj4gWyAgIDE3LjM3NTYzM10gV0FSTklORzogQ1BVOiAwIFBJRDogMTEyOCBhdCBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jOjUxNjYgaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0 X3ZpZXcrMHgxMGYvMHgxMjAgW2k5MTVdKCkKPiBbICAgMTcuMzg4ODc5XSBXQVJOX09OX09OQ0Uo IW11dGV4X2lzX2xvY2tlZCgmKG8pLT5iYXNlLmRldi0+c3RydWN0X211dGV4KSkKPiBbICAgMTcu Mzk2MzY0XSBNb2R1bGVzIGxpbmtlZCBpbjogaGlkX2dlbmVyaWMgdXNiaGlkIGNvcmV0ZW1wIGFz aXggdXNibmV0IGxpYnBoeSBtaWkgaTkxNSBncGlvX2x5bnhwb2ludCBpMmNfaGlkIGhpZCB2aWRl byBpMmNfYWxnb19iaXQgZHJtX2ttc19oZWxwZXIgYWNwaV9wYWQgZHJtIGxwY19pY2ggbWZkX2Nv cmUgbmxzX2lzbzg4NTlfMSBlMTAwMGUgcHRwIGFoY2kgbGliYWhjaSBwcHNfY29yZQo+IFsgICAx Ny40MTk0ODRdIENQVTogMCBQSUQ6IDExMjggQ29tbTogWG9yZyBUYWludGVkOiBHICAgICBVICAg ICAgICAgIDQuNC4wLXJjOC0xNjAxMDcrICMxMDUKPiBbICAgMTcuNDI4NzcxXSBIYXJkd2FyZSBu YW1lOiBJbnRlbCBDb3Jwb3JhdGlvbiBCcm9hZHdlbGwgQ2xpZW50IHBsYXRmb3JtL1doaXRlVGlw IE1vdW50YWluIDEsIEJJT1MgQkRXLUUxUjEuODZDLjAwODAuUjAxLjE0MDYxMjA0NDYgMDYvMTIv MjAxNAo+IFsgICAxNy40NDMxNjFdICBmZmZmZmZmZmEwMjI3NzkwIGZmZmY4ODAwYTk4NDM5Yjgg ZmZmZmZmZmY4MTI4MGQ4MiBmZmZmODgwMGE5ODQzYTAwCj4gWyAgIDE3LjQ1MTY3N10gIGZmZmY4 ODAwYTk4NDM5ZjAgZmZmZmZmZmY4MTA0OWM4YyBmZmZmODgwMTQ5NWQwMDAwIGZmZmY4ODAwYWE5 MzQ5MDAKPiBbICAgMTcuNDYwMTY2XSAgZmZmZjg4MDE0OTVkODY2OCBmZmZmZmZmZmEwMjQyNTIw IGZmZmY4ODAwYWFjZWEwMDAgZmZmZjg4MDBhOTg0M2E1MAo+IFsgICAxNy40Njg2NzRdIENhbGwg VHJhY2U6Cj4gWyAgIDE3LjQ3MTQ3MF0gIFs8ZmZmZmZmZmY4MTI4MGQ4Mj5dIGR1bXBfc3RhY2sr MHg0Yi8weDc5Cj4gWyAgIDE3LjQ3NzM1NV0gIFs8ZmZmZmZmZmY4MTA0OWM4Yz5dIHdhcm5fc2xv d3BhdGhfY29tbW9uKzB4N2MvMHhjMAo+IFsgICAxNy40ODQyNTVdICBbPGZmZmZmZmZmODEwNDlk MTc+XSB3YXJuX3Nsb3dwYXRoX2ZtdCsweDQ3LzB4NTAKPiBbICAgMTcuNDkwODY5XSAgWzxmZmZm ZmZmZmEwMThmN2VmPl0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0X3ZpZXcrMHgxMGYvMHgxMjAg W2k5MTVdCj4gWyAgIDE3LjQ5OTU3Ml0gIFs8ZmZmZmZmZmZhMDFhNzI5MD5dID8gZ2VuOV93cml0 ZTgrMHgyZDAvMHgyZDAgW2k5MTVdCj4gWyAgIDE3LjUwNjY2M10gIFs8ZmZmZmZmZmZhMDFiZGJm ZT5dIGlyb25sYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKzB4MWVlLzB4M2EwIFtpOTE1XQo+IFsg ICAxNy41MTUzNThdICBbPGZmZmZmZmZmYTAxYWNlMWY+XSBpbnRlbF9wbGFuZV9hdG9taWNfdXBk YXRlKzB4NWYvMHg3MCBbaTkxNV0KPiBbICAgMTcuNTIzMzkxXSAgWzxmZmZmZmZmZmEwMGVmMTIy Pl0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lc19vbl9jcnRjKzB4MTQyLzB4MjMwIFtk cm1fa21zX2hlbHBlcl0KPiBbICAgMTcuNTM0MDYzXSAgWzxmZmZmZmZmZmEwMWMxNzQ0Pl0gaW50 ZWxfYXRvbWljX2NvbW1pdCsweDQyNC8weDIyNzAgW2k5MTVdCj4gWyAgIDE3LjU0MTc2M10gIFs8 ZmZmZmZmZmY4MTRlZTA0YT5dID8gX193d19tdXRleF9sb2NrKzB4NGEvMHg4Mgo+IFsgICAxNy41 NDgzNTVdICBbPGZmZmZmZmZmYTAwOTdlZGI+XSA/IGRybV9hdG9taWNfY2hlY2tfb25seSsweDEy Yi8weDVlMCBbZHJtXQo+IFsgICAxNy41NTYzNTJdICBbPGZmZmZmZmZmYTAwOTdhMDc+XSA/IGRy bV9hdG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3RvcisweDc3LzB4ZjAgW2RybV0KPiBbICAgMTcu NTY1MzQ2XSAgWzxmZmZmZmZmZmEwMDk4M2MyPl0gZHJtX2F0b21pY19jb21taXQrMHgzMi8weDUw IFtkcm1dCj4gWyAgIDE3LjU3MjU1M10gIFs8ZmZmZmZmZmZhMDBlZjc4Mj5dIGRybV9hdG9taWNf aGVscGVyX3NldF9jb25maWcrMHg3Mi8weGIwIFtkcm1fa21zX2hlbHBlcl0KPiBbICAgMTcuNTgx OTU0XSAgWzxmZmZmZmZmZmEwMDg4ZThmPl0gZHJtX21vZGVfc2V0X2NvbmZpZ19pbnRlcm5hbCsw eDVmLzB4MTAwIFtkcm1dCj4gWyAgIDE3LjU5MDMxM10gIFs8ZmZmZmZmZmZhMDA4Y2RjOD5dIGRy bV9tb2RlX3NldGNydGMrMHhkOC8weDUwMCBbZHJtXQo+IFsgICAxNy41OTc0OTFdICBbPGZmZmZm ZmZmYTAwN2Y1ZDg+XSBkcm1faW9jdGwrMHgyNTgvMHg0ZjAgW2RybV0KPiBbICAgMTcuNjA0MDY1 XSAgWzxmZmZmZmZmZjgxMGMzNGFjPl0gPyB1bmxvY2tfcGFnZSsweDRjLzB4NTAKPiBbICAgMTcu NjEwMjQ1XSAgWzxmZmZmZmZmZmEwMDhjY2YwPl0gPyBkcm1fbW9kZV9zZXRwbGFuZSsweDFjMC8w eDFjMCBbZHJtXQo+IFsgICAxNy42MTc4NDRdICBbPGZmZmZmZmZmODExMTU5N2Q+XSBkb192ZnNf aW9jdGwrMHgyY2QvMHg0YTAKPiBbICAgMTcuNjI0MTM3XSAgWzxmZmZmZmZmZjgxMDUyNTcyPl0g PyByZWNhbGNfc2lncGVuZGluZysweDEyLzB4NDAKPiBbICAgMTcuNjMwOTQzXSAgWzxmZmZmZmZm ZjgxMTFlYjMyPl0gPyBfX2ZnZXQrMHg3Mi8weGIwCj4gWyAgIDE3LjYzNjY0NV0gIFs8ZmZmZmZm ZmY4MTExNWI4Yz5dIFN5U19pb2N0bCsweDNjLzB4NzAKPiBbICAgMTcuNjQyNDQ4XSAgWzxmZmZm ZmZmZjgxMDU1MzAxPl0gPyBTeVNfcnRfc2lncHJvY21hc2srMHg4MS8weGEwCj4gWyAgIDE3LjY0 OTMzNF0gIFs8ZmZmZmZmZmY4MTRmMDAxNz5dIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgx Mi8weDZhCj4gWyAgIDE3LjY1Njc0MF0gLS0tWyBlbmQgdHJhY2UgM2YyOTE5MDAwNmM5NzgyNiBd LS0tCj4gCj4gV291bGQgeW91IGxpa2UgYSBCWiBmb3IgdGhpcyBvciBtYXliZSBpdCBpcyBrbm93 biBhbHJlYWR5PwoKTWFhcnRlbiBpcyB3b3JraW5nIG9uIHRoaXMsIG9yIGF0IGxlYXN0IHdlJ3Jl IHRyYWNraW5nIGl0IGFscmVhZHkgaW4KVklaLTcwMDAuCgpDYW4geW91IHBscyBjb29yZGluYXRl IHdpdGggTWFhcnRlbiB0byBtYWtlIHN1cmUgdGhlIGZpbmFsICJlbmFibGUgdGhlCndhcm5pbmci IHBhdGNoIGxhbmRzIG9ubHkgb25jZSBhbGwgdGhlIGJpdHMgYXJlIGluPwoKVGhhbmtzLCBEYW5p ZWwKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9u Cmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==