From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id DF5C410E108 for ; Fri, 14 Jul 2023 17:04:19 +0000 (UTC) From: "Souza, Jose" To: "igt-dev@lists.freedesktop.org" , "Auld, Matthew" Date: Fri, 14 Jul 2023 17:03:18 +0000 Message-ID: References: <20230714144238.573403-1-matthew.auld@intel.com> <20230714144238.573403-3-matthew.auld@intel.com> <0497ba6321eb315e8f32abefde491bdda8fad81c.camel@intel.com> <17293e9d-cb0e-d47a-5a21-9614715dfb40@intel.com> In-Reply-To: <17293e9d-cb0e-d47a-5a21-9614715dfb40@intel.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <9D931E82E891184EA34EDFC12F1C8997@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v3 2/6] lib/xe: add visible vram helpers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: T24gRnJpLCAyMDIzLTA3LTE0IGF0IDE3OjU1ICswMTAwLCBNYXR0aGV3IEF1bGQgd3JvdGU6DQo+ IE9uIDE0LzA3LzIwMjMgMTc6MzAsIFNvdXphLCBKb3NlIHdyb3RlOg0KPiA+IE9uIEZyaSwgMjAy My0wNy0xNCBhdCAxNTo0MiArMDEwMCwgTWF0dGhldyBBdWxkIHdyb3RlOg0KPiA+ID4gQWRkIGhl bHBlcnMgZm9yIG9iamVjdCBjcmVhdGlvbiBhbmQgcXVlcnlpbmcgdGhlIGNwdV92aXNpYmxlIHJl bGF0ZWQgYml0cy4NCj4gPiA+IA0KPiA+ID4gdjI6IE1ha2UgaXQgYmFja3dhcmRzIGNvbXBhdCB3 aXRoIG9sZGVyIGtlcm5lbHMNCj4gPiA+IA0KPiA+ID4gU2lnbmVkLW9mZi1ieTogTWF0dGhldyBB dWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IEd3YW4tZ3llb25nIE11biA8 Z3dhbi1neWVvbmcubXVuQGludGVsLmNvbT4NCj4gPiA+IFJldmlld2VkLWJ5OiBHd2FuLWd5ZW9u ZyBNdW4gPGd3YW4tZ3llb25nLm11bkBpbnRlbC5jb20+DQo+ID4gPiAtLS0NCj4gPiA+ICAgbGli L3hlL3hlX3F1ZXJ5LmMgfCA4NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQ0KPiA+ID4gICBsaWIveGUveGVfcXVlcnkuaCB8ICA2ICsrKysNCj4gPiA+ICAg MiBmaWxlcyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4gPiAN Cj4gPiA+IGRpZmYgLS1naXQgYS9saWIveGUveGVfcXVlcnkuYyBiL2xpYi94ZS94ZV9xdWVyeS5j DQo+ID4gPiBpbmRleCBmNTM1YWQ4NTMuLjU0MTJmYmViNSAxMDA2NDQNCj4gPiA+IC0tLSBhL2xp Yi94ZS94ZV9xdWVyeS5jDQo+ID4gPiArKysgYi9saWIveGUveGVfcXVlcnkuYw0KPiA+ID4gQEAg LTE0MCw2ICsxNDAsMTcgQEAgc3RhdGljIHVpbnQ2NF90IGd0X3ZyYW1fc2l6ZShjb25zdCBzdHJ1 Y3QgZHJtX3hlX3F1ZXJ5X21lbV91c2FnZSAqbWVtX3VzYWdlLA0KPiA+ID4gICAJcmV0dXJuIDA7 DQo+ID4gPiAgIH0NCj4gPiA+ICAgDQo+ID4gPiArc3RhdGljIHVpbnQ2NF90IGd0X3Zpc2libGVf dnJhbV9zaXplKGNvbnN0IHN0cnVjdCBkcm1feGVfcXVlcnlfbWVtX3VzYWdlICptZW1fdXNhZ2Us DQo+ID4gPiArCQkJCSAgICAgY29uc3Qgc3RydWN0IGRybV94ZV9xdWVyeV9ndHMgKmd0cywgaW50 IGd0KQ0KPiA+ID4gK3sNCj4gPiA+ICsJaW50IHJlZ2lvbl9pZHggPSBmZnMobmF0aXZlX3JlZ2lv bl9mb3JfZ3QoZ3RzLCBndCkpIC0gMTsNCj4gPiA+ICsNCj4gPiA+ICsJaWYgKFhFX0lTX0NMQVNT X1ZSQU0oJm1lbV91c2FnZS0+cmVnaW9uc1tyZWdpb25faWR4XSkpDQo+ID4gPiArCQlyZXR1cm4g bWVtX3VzYWdlLT5yZWdpb25zW3JlZ2lvbl9pZHhdLmNwdV92aXNpYmxlX3NpemU7DQo+ID4gPiAr DQo+ID4gPiArCXJldHVybiAwOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICAgc3RhdGljIGJv b2wgX19tZW1faGFzX3ZyYW0oc3RydWN0IGRybV94ZV9xdWVyeV9tZW1fdXNhZ2UgKm1lbV91c2Fn ZSkNCj4gPiA+ICAgew0KPiA+ID4gICAJZm9yIChpbnQgaSA9IDA7IGkgPCBtZW1fdXNhZ2UtPm51 bV9yZWdpb25zOyBpKyspDQo+ID4gPiBAQCAtMjQ2LDkgKzI1NywxNCBAQCBzdHJ1Y3QgeGVfZGV2 aWNlICp4ZV9kZXZpY2VfZ2V0KGludCBmZCkNCj4gPiA+ICAgCXhlX2Rldi0+aHdfZW5naW5lcyA9 IHhlX3F1ZXJ5X2VuZ2luZXNfbmV3KGZkLCAmeGVfZGV2LT5udW1iZXJfaHdfZW5naW5lcyk7DQo+ ID4gPiAgIAl4ZV9kZXYtPm1lbV91c2FnZSA9IHhlX3F1ZXJ5X21lbV91c2FnZV9uZXcoZmQpOw0K PiA+ID4gICAJeGVfZGV2LT52cmFtX3NpemUgPSBjYWxsb2MoeGVfZGV2LT5udW1iZXJfZ3QsIHNp emVvZigqeGVfZGV2LT52cmFtX3NpemUpKTsNCj4gPiA+IC0JZm9yIChpbnQgZ3QgPSAwOyBndCA8 IHhlX2Rldi0+bnVtYmVyX2d0OyBndCsrKQ0KPiA+ID4gKwl4ZV9kZXYtPnZpc2libGVfdnJhbV9z aXplID0gY2FsbG9jKHhlX2Rldi0+bnVtYmVyX2d0LCBzaXplb2YoKnhlX2Rldi0+dmlzaWJsZV92 cmFtX3NpemUpKTsNCj4gPiA+ICsJZm9yIChpbnQgZ3QgPSAwOyBndCA8IHhlX2Rldi0+bnVtYmVy X2d0OyBndCsrKSB7DQo+ID4gPiAgIAkJeGVfZGV2LT52cmFtX3NpemVbZ3RdID0gZ3RfdnJhbV9z aXplKHhlX2Rldi0+bWVtX3VzYWdlLA0KPiA+ID4gICAJCQkJCQkgICAgIHhlX2Rldi0+Z3RzLCBn dCk7DQo+ID4gPiArCQl4ZV9kZXYtPnZpc2libGVfdnJhbV9zaXplW2d0XSA9DQo+ID4gPiArCQkJ Z3RfdmlzaWJsZV92cmFtX3NpemUoeGVfZGV2LT5tZW1fdXNhZ2UsDQo+ID4gPiArCQkJCQkgICAg IHhlX2Rldi0+Z3RzLCBndCk7DQo+ID4gPiArCX0NCj4gPiA+ICAgCXhlX2Rldi0+ZGVmYXVsdF9h bGlnbm1lbnQgPSBfX21lbV9kZWZhdWx0X2FsaWdubWVudCh4ZV9kZXYtPm1lbV91c2FnZSk7DQo+ ID4gPiAgIAl4ZV9kZXYtPmhhc192cmFtID0gX19tZW1faGFzX3ZyYW0oeGVfZGV2LT5tZW1fdXNh Z2UpOw0KPiA+ID4gICANCj4gPiA+IEBAIC0zODMsNiArMzk5LDMzIEBAIHVpbnQ2NF90IHZyYW1f bWVtb3J5KGludCBmZCwgaW50IGd0KQ0KPiA+ID4gICAJcmV0dXJuIHhlX2hhc192cmFtKGZkKSA/ IG5hdGl2ZV9yZWdpb25fZm9yX2d0KHhlX2Rldi0+Z3RzLCBndCkgOiAwOw0KPiA+ID4gICB9DQo+ ID4gPiAgIA0KPiA+ID4gK3N0YXRpYyB1aW50NjRfdCBfX3hlX3Zpc2libGVfdnJhbV9zaXplKGlu dCBmZCwgaW50IGd0KQ0KPiA+ID4gK3sNCj4gPiA+ICsJc3RydWN0IHhlX2RldmljZSAqeGVfZGV2 Ow0KPiA+ID4gKw0KPiA+ID4gKwl4ZV9kZXYgPSBmaW5kX2luX2NhY2hlKGZkKTsNCj4gPiA+ICsJ aWd0X2Fzc2VydCh4ZV9kZXYpOw0KPiA+ID4gKw0KPiA+ID4gKwlyZXR1cm4geGVfZGV2LT52aXNp YmxlX3ZyYW1fc2l6ZVtndF07DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4g KyAqIHZpc2libGVfdnJhbV9tZW1vcnk6DQo+ID4gPiArICogQGZkOiB4ZSBkZXZpY2UgZmQNCj4g PiA+ICsgKiBAZ3Q6IGd0IGlkDQo+ID4gPiArICoNCj4gPiA+ICsgKiBSZXR1cm5zIHZyYW0gbWVt b3J5IGJpdG1hc2sgZm9yIHhlIGRldmljZSBAZmQgYW5kIEBndCBpZCwgd2l0aA0KPiA+ID4gKyAq IFhFX0dFTV9DUkVBVEVfRkxBR19ORUVEU19WSVNJQkxFX1ZSQU0gYWxzbyBzZXQsIHRvIGVuc3Vy ZSB0aGF0IENQVSBhY2Nlc3MgaXMNCj4gPiA+ICsgKiBwb3NzaWJsZS4NCj4gPiA+ICsgKi8NCj4g PiA+ICt1aW50NjRfdCB2aXNpYmxlX3ZyYW1fbWVtb3J5KGludCBmZCwgaW50IGd0KQ0KPiA+ID4g K3sNCj4gPiA+ICsJaWYgKF9feGVfdmlzaWJsZV92cmFtX3NpemUoZmQsIGd0KSkNCj4gPiA+ICsJ CXJldHVybiB2cmFtX21lbW9yeShmZCwgZ3QpIHwgWEVfR0VNX0NSRUFURV9GTEFHX05FRURTX1ZJ U0lCTEVfVlJBTTsNCj4gPiA+ICsJZWxzZQ0KPiA+ID4gKwkJcmV0dXJuIHZyYW1fbWVtb3J5KGZk LCBndCk7IC8qIG9sZGVyIGtlcm5lbCAqLw0KPiA+IA0KPiA+IFdlIGRvbid0IG5lZWQgdG8gbWFp bnRhaW4gYW55IGNvbXBhYmlsaXR5IHdpdGggb2xkZXIgWGUga2VybmVscyBmb3Igbm93Li4uDQo+ ID4gDQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gICAvKioNCj4gPiA+ICAgICogdnJhbV9pZl9w b3NzaWJsZToNCj4gPiA+ICAgICogQGZkOiB4ZSBkZXZpY2UgZmQNCj4gPiA+IEBAIC0zOTYsNiAr NDM5LDI4IEBAIHVpbnQ2NF90IHZyYW1faWZfcG9zc2libGUoaW50IGZkLCBpbnQgZ3QpDQo+ID4g PiAgIAlyZXR1cm4gdnJhbV9tZW1vcnkoZmQsIGd0KSA/OiBzeXN0ZW1fbWVtb3J5KGZkKTsNCj4g PiA+ICAgfQ0KPiA+ID4gICANCj4gPiA+ICsvKioNCj4gPiA+ICsgKiB2aXNpYmxlX3ZyYW1faWZf cG9zc2libGU6DQo+ID4gPiArICogQGZkOiB4ZSBkZXZpY2UgZmQNCj4gPiA+ICsgKiBAZ3Q6IGd0 IGlkDQo+ID4gPiArICoNCj4gPiA+ICsgKiBSZXR1cm5zIHZyYW0gbWVtb3J5IGJpdG1hc2sgZm9y IHhlIGRldmljZSBAZmQgYW5kIEBndCBpZCBvciBzeXN0ZW0gbWVtb3J5IGlmDQo+ID4gPiArICog dGhlcmUncyBubyB2cmFtIG1lbW9yeSBhdmFpbGFibGUgZm9yIEBndC4gQWxzbyBhdHRhY2hlcyB0 aGUNCj4gPiA+ICsgKiBYRV9HRU1fQ1JFQVRFX0ZMQUdfTkVFRFNfVklTSUJMRV9WUkFNIHRvIGVu c3VyZSB0aGF0IENQVSBhY2Nlc3MgaXMgcG9zc2libGUNCj4gPiA+ICsgKiB3aGVuIHVzaW5nIHZy YW0uDQo+ID4gPiArICovDQo+ID4gPiArdWludDY0X3QgdmlzaWJsZV92cmFtX2lmX3Bvc3NpYmxl KGludCBmZCwgaW50IGd0KQ0KPiA+ID4gK3sNCj4gPiA+ICsJdWludDY0X3QgcmVnaW9ucyA9IGFs bF9tZW1vcnlfcmVnaW9ucyhmZCk7DQo+ID4gPiArCXVpbnQ2NF90IHN5c3RlbV9tZW1vcnkgPSBy ZWdpb25zICYgMHgxOw0KPiA+ID4gKwl1aW50NjRfdCB2cmFtID0gcmVnaW9ucyAmICgweDIgPDwg Z3QpOw0KPiA+ID4gKw0KPiA+ID4gKwlpZiAoX194ZV92aXNpYmxlX3ZyYW1fc2l6ZShmZCwgZ3Qp KQ0KPiA+ID4gKwkJcmV0dXJuIHZyYW0gPyB2cmFtIHwgWEVfR0VNX0NSRUFURV9GTEFHX05FRURT X1ZJU0lCTEVfVlJBTSA6IHN5c3RlbV9tZW1vcnk7DQo+ID4gPiArCWVsc2UNCj4gPiA+ICsJCXJl dHVybiB2cmFtID8gdnJhbSA6IHN5c3RlbV9tZW1vcnk7IC8qIG9sZGVyIGtlcm5lbCAqLw0KPiA+ ID4gK30NCj4gPiANCj4gPiBzbyB0aGlzIGNhbiBiZSBkcm9wcGVkIGFuZCBjdXJyZW50IGNhbGxl cnMgc2hvdWxkIHVzZSB2aXNpYmxlX3ZyYW1fbWVtb3J5KCkuDQo+IA0KPiBIZXJlIEkganVzdCB3 YW50ZWQgdG8ga2VlcCBpdCBjb21wYXRpYmxlIHNvIEkgY291bGQgbWVyZ2UgdGhlIElHVCBpbiBh bnkgDQo+IG9yZGVyLiBJZGVhbGx5IEkgd2FudCB0byBtZXJnZSB0aGUgSUdUIGZpcnN0IGFuZCBs ZXQgdGhhdCBzb2FrIGZvciBhIA0KPiBjb3VwbGUgb2YgaG91cnMsIGFuZCBhc3N1bWluZyB0aGVy ZSBpcyBubyBuZXcgYnJlYWthZ2UgSSBjYW4gcmUtc2VuZCB0aGUgDQo+IGtlcm5lbCBwYXRjaGVz IHdpdGggYSBoYWNrIHBhdGNoIHRvIGZvcmNlIHNtYWxsLWJhciBvbiBzb21lIENJIG1hY2hpbmUg DQo+IHRvIGdldCBwcmUtbWVyZ2UgdGVzdGluZy4gT25jZSB0aGF0IGFsbCBwYXNzZXMgSSBjYW4g bWVyZ2UgdGhlIGtlcm5lbCANCj4gc2lkZS4gVGhlIGFib3ZlIGNvbXBhdGliaWxpdHkgc3R1ZmYg Y2FuIHRoZW4gYmUgcmVtb3ZlZCBhZnRlci4NCg0KT2theSwgc28gcGxlYXNlIGFkZCB0aGlzIHBs YW5zIHRvIHRoZSBjb21taXQgZGVzY3JpcHRpb24uLi5tYXliZSBsZWF2ZSBhIFRPRE8gdG8gcmVt b3ZlIGl0IGluIGNvZGUgYXMgd2VsbC4NCg0KPiANCj4gPiANCj4gPiA+ICsNCj4gPiA+ICAgLyoq DQo+ID4gPiAgICAqIHhlX2h3X2VuZ2luZXM6DQo+ID4gPiAgICAqIEBmZDogeGUgZGV2aWNlIGZk DQo+ID4gPiBAQCAtNTM2LDYgKzYwMSwyNCBAQCB1aW50NjRfdCB4ZV92cmFtX3NpemUoaW50IGZk LCBpbnQgZ3QpDQo+ID4gPiAgIAlyZXR1cm4geGVfZGV2LT52cmFtX3NpemVbZ3RdOw0KPiA+ID4g ICB9DQo+ID4gPiAgIA0KPiA+ID4gKy8qKg0KPiA+ID4gKyAqIHhlX3Zpc2libGVfdnJhbV9zaXpl Og0KPiA+ID4gKyAqIEBmZDogeGUgZGV2aWNlIGZkDQo+ID4gPiArICogQGd0OiBndA0KPiA+ID4g KyAqDQo+ID4gPiArICogUmV0dXJucyBzaXplIG9mIHZpc2libGUgdnJhbSBvZiB4ZSBkZXZpY2Ug QGZkLg0KPiA+ID4gKyAqLw0KPiA+ID4gK3VpbnQ2NF90IHhlX3Zpc2libGVfdnJhbV9zaXplKGlu dCBmZCwgaW50IGd0KQ0KPiA+ID4gK3sNCj4gPiA+ICsJdWludDY0X3QgdmlzaWJsZV9zaXplOw0K PiA+ID4gKw0KPiA+ID4gKwl2aXNpYmxlX3NpemUgPSBfX3hlX3Zpc2libGVfdnJhbV9zaXplKGZk LCBndCk7DQo+ID4gPiArCWlmICghdmlzaWJsZV9zaXplKSAvKiBvbGRlciBrZXJuZWwgKi8NCj4g PiA+ICsJCXZpc2libGVfc2l6ZSA9IHhlX3ZyYW1fc2l6ZShmZCwgZ3QpOw0KPiA+ID4gKw0KPiA+ ID4gKwlyZXR1cm4gdmlzaWJsZV9zaXplOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICAgLyoq DQo+ID4gPiAgICAqIHhlX2dldF9kZWZhdWx0X2FsaWdubWVudDoNCj4gPiA+ICAgICogQGZkOiB4 ZSBkZXZpY2UgZmQNCj4gPiA+IEBAIC01NTIsNiArNjM1LDcgQEAgeGVfZGV2X0ZOKHhlX2dldF9k ZWZhdWx0X2FsaWdubWVudCwgZGVmYXVsdF9hbGlnbm1lbnQsIHVpbnQzMl90KTsNCj4gPiA+ICAg ICovDQo+ID4gPiAgIHhlX2Rldl9GTih4ZV92YV9iaXRzLCB2YV9iaXRzLCB1aW50MzJfdCk7DQo+ ID4gPiAgIA0KPiA+ID4gKw0KPiA+ID4gICAvKioNCj4gPiA+ICAgICogeGVfZGV2X2lkOg0KPiA+ ID4gICAgKiBAZmQ6IHhlIGRldmljZSBmZA0KPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi94ZS94ZV9x dWVyeS5oIGIvbGliL3hlL3hlX3F1ZXJ5LmgNCj4gPiA+IGluZGV4IDY4Y2E1YTY4MC4uMWI3NGM1 OGFiIDEwMDY0NA0KPiA+ID4gLS0tIGEvbGliL3hlL3hlX3F1ZXJ5LmgNCj4gPiA+ICsrKyBiL2xp Yi94ZS94ZV9xdWVyeS5oDQo+ID4gPiBAQCAtNDcsNiArNDcsOSBAQCBzdHJ1Y3QgeGVfZGV2aWNl IHsNCj4gPiA+ICAgCS8qKiBAdnJhbV9zaXplOiBhcnJheSBvZiB2cmFtIHNpemVzIGZvciBhbGwg Z3RzICovDQo+ID4gPiAgIAl1aW50NjRfdCAqdnJhbV9zaXplOw0KPiA+ID4gICANCj4gPiA+ICsJ LyoqIEB2aXNpYmxlX3ZyYW1fc2l6ZTogYXJyYXkgb2YgdmlzaWJsZSB2cmFtIHNpemVzIGZvciBh bGwgZ3RzICovDQo+ID4gPiArCXVpbnQ2NF90ICp2aXNpYmxlX3ZyYW1fc2l6ZTsNCj4gPiA+ICsN Cj4gPiA+ICAgCS8qKiBAZGVmYXVsdF9hbGlnbm1lbnQ6IHNhZmUgYWxpZ25tZW50IHJlZ2FyZGxl c3MgcmVnaW9uIGxvY2F0aW9uICovDQo+ID4gPiAgIAl1aW50MzJfdCBkZWZhdWx0X2FsaWdubWVu dDsNCj4gPiA+ICAgDQo+ID4gPiBAQCAtODAsNyArODMsOSBAQCB1bnNpZ25lZCBpbnQgeGVfbnVt YmVyX2d0KGludCBmZCk7DQo+ID4gPiAgIHVpbnQ2NF90IGFsbF9tZW1vcnlfcmVnaW9ucyhpbnQg ZmQpOw0KPiA+ID4gICB1aW50NjRfdCBzeXN0ZW1fbWVtb3J5KGludCBmZCk7DQo+ID4gPiAgIHVp bnQ2NF90IHZyYW1fbWVtb3J5KGludCBmZCwgaW50IGd0KTsNCj4gPiA+ICt1aW50NjRfdCB2aXNp YmxlX3ZyYW1fbWVtb3J5KGludCBmZCwgaW50IGd0KTsNCj4gPiA+ICAgdWludDY0X3QgdnJhbV9p Zl9wb3NzaWJsZShpbnQgZmQsIGludCBndCk7DQo+ID4gPiArdWludDY0X3QgdmlzaWJsZV92cmFt X2lmX3Bvc3NpYmxlKGludCBmZCwgaW50IGd0KTsNCj4gPiA+ICAgc3RydWN0IGRybV94ZV9lbmdp bmVfY2xhc3NfaW5zdGFuY2UgKnhlX2h3X2VuZ2luZXMoaW50IGZkKTsNCj4gPiA+ICAgc3RydWN0 IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKnhlX2h3X2VuZ2luZShpbnQgZmQsIGludCBp ZHgpOw0KPiA+ID4gICBzdHJ1Y3QgZHJtX3hlX3F1ZXJ5X21lbV9yZWdpb24gKnhlX21lbV9yZWdp b24oaW50IGZkLCB1aW50NjRfdCByZWdpb24pOw0KPiA+ID4gQEAgLTkxLDYgKzk2LDcgQEAgc3Ry dWN0IGRybV94ZV9xdWVyeV9jb25maWcgKnhlX2NvbmZpZyhpbnQgZmQpOw0KPiA+ID4gICB1bnNp Z25lZCBpbnQgeGVfbnVtYmVyX2h3X2VuZ2luZXMoaW50IGZkKTsNCj4gPiA+ICAgYm9vbCB4ZV9o YXNfdnJhbShpbnQgZmQpOw0KPiA+ID4gICB1aW50NjRfdCB4ZV92cmFtX3NpemUoaW50IGZkLCBp bnQgZ3QpOw0KPiA+ID4gK3VpbnQ2NF90IHhlX3Zpc2libGVfdnJhbV9zaXplKGludCBmZCwgaW50 IGd0KTsNCj4gPiA+ICAgdWludDMyX3QgeGVfZ2V0X2RlZmF1bHRfYWxpZ25tZW50KGludCBmZCk7 DQo+ID4gPiAgIHVpbnQzMl90IHhlX3ZhX2JpdHMoaW50IGZkKTsNCj4gPiA+ICAgdWludDE2X3Qg eGVfZGV2X2lkKGludCBmZCk7DQo+ID4gDQoNCg==