From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH 9/9] drm/amdgpu: create an empty bo_list if no handle is provided Date: Tue, 31 Jul 2018 17:00:24 +0800 Message-ID: <5B602528.8040606@amd.com> References: <20180730145159.13212-1-christian.koenig@amd.com> <20180730145159.13212-9-christian.koenig@amd.com> <20180731075102.GB19005@hr-amur2> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: christian.koenig-5C7GfCeVMHo@public.gmane.org, Huang Rui Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org T24gMDcvMzEvMjAxOCAwNDo1MiBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBBbSAzMS4w Ny4yMDE4IHVtIDA5OjUxIHNjaHJpZWIgSHVhbmcgUnVpOgo+PiBPbiBNb24sIEp1bCAzMCwgMjAx OCBhdCAwNDo1MTo1OVBNICswMjAwLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+Pj4gSW5zdGVh ZCBvZiBoYXZpbmcgZXh0cmEgaGFuZGxpbmcganVzdCBjcmVhdGUgYW4gZW1wdHkgYm9fbGlzdCB3 aGVuIG5vCj4+PiBoYW5kbGUgaXMgcHJvdmlkZWQuCj4+IFJldmlld2VkLWJ5OiBIdWFuZyBSdWkg PHJheS5odWFuZ0BhbWQuY29tPgo+Pgo+PiBJbiB3aGljaCBjYXNlLCB3aGVuIHRoZSBjb21tYW5k IGlzIGJlaW5nIHN1Ym1pdHRlZCwgdGhlcmUgaXMgbm8gYm8gbGlzdAo+PiBoYW5kbGU/IEFsbCBC T3MgYXJlIHBlci1WTSwgbm8gc2hhcmVkIEJPPwo+Cj4gWWVzLCBleGFjdGx5LiBPciBpbiB0aGUg ZnV0dXJlIGp1c3QgU1ZNIGV0Yy4uLgoKU1ZNIHdpbGwgbm90IHVzZSBibyBsaXN0IGVpdGhlcj8K YW55IHBlcmZvcm0gY29uc2lkZXJhdGlvbj8KClJlZ2FyZHMsCkplcnJ5Cgo+Cj4gQ2hyaXN0aWFu Lgo+Cj4+Cj4+IFRoYW5rcywKPj4gUmF5Cj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4g S8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4+PiAtLS0KPj4+ICAgZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMgfCAxMTEgKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tCj4+PiAgIDEgZmlsZSBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCA2NSBk ZWxldGlvbnMoLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwo+ Pj4gaW5kZXggMWQ3MjkyYWIyYjYyLi41MDJiOTRmYjExNmEgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKPj4+IEBAIC01NjEsNiArNTYxLDcgQEAgc3RhdGlj IGludCBhbWRncHVfY3NfcGFyc2VyX2JvcyhzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKPj4+ ICAgICAgICAgICAgICAgICAgIHVuaW9uIGRybV9hbWRncHVfY3MgKmNzKQo+Pj4gICB7Cj4+PiAg ICAgICBzdHJ1Y3QgYW1kZ3B1X2Zwcml2ICpmcHJpdiA9IHAtPmZpbHAtPmRyaXZlcl9wcml2Owo+ Pj4gKyAgICBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSA9ICZmcHJpdi0+dm07Cj4+PiAgICAgICBzdHJ1 Y3QgYW1kZ3B1X2JvX2xpc3RfZW50cnkgKmU7Cj4+PiAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGR1 cGxpY2F0ZXM7Cj4+PiAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpnZHM7Cj4+PiBAQCAtNTgwLDEz ICs1ODEsMTcgQEAgc3RhdGljIGludCBhbWRncHVfY3NfcGFyc2VyX2JvcyhzdHJ1Y3QgYW1kZ3B1 X2NzX3BhcnNlciAqcCwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAmcC0+Ym9fbGlzdCk7 Cj4+PiAgICAgICAgICAgaWYgKHIpCj4+PiAgICAgICAgICAgICAgIHJldHVybiByOwo+Pj4gKyAg ICB9IGVsc2UgaWYgKCFwLT5ib19saXN0KSB7Cj4+PiArICAgICAgICAvKiBDcmVhdGUgYSBlbXB0 eSBib19saXN0IHdoZW4gbm8gaGFuZGxlIGlzIHByb3ZpZGVkICovCj4+PiArICAgICAgICByID0g YW1kZ3B1X2JvX2xpc3RfY3JlYXRlKHAtPmFkZXYsIHAtPmZpbHAsIE5VTEwsIDAsCj4+PiArICAg ICAgICAgICAgICAgICAgICAgICZwLT5ib19saXN0KTsKPj4+ICsgICAgICAgIGlmIChyKQo+Pj4g KyAgICAgICAgICAgIHJldHVybiByOwo+Pj4gICAgICAgfQo+Pj4gLSAgICBpZiAocC0+Ym9fbGlz dCkgewo+Pj4gLSAgICAgICAgYW1kZ3B1X2JvX2xpc3RfZ2V0X2xpc3QocC0+Ym9fbGlzdCwgJnAt PnZhbGlkYXRlZCk7Cj4+PiAtICAgICAgICBpZiAocC0+Ym9fbGlzdC0+Zmlyc3RfdXNlcnB0ciAh PSBwLT5ib19saXN0LT5udW1fZW50cmllcykKPj4+IC0gICAgICAgICAgICBwLT5tbiA9IGFtZGdw dV9tbl9nZXQocC0+YWRldiwgQU1ER1BVX01OX1RZUEVfR0ZYKTsKPj4+IC0gICAgfQo+Pj4gKyAg ICBhbWRncHVfYm9fbGlzdF9nZXRfbGlzdChwLT5ib19saXN0LCAmcC0+dmFsaWRhdGVkKTsKPj4+ ICsgICAgaWYgKHAtPmJvX2xpc3QtPmZpcnN0X3VzZXJwdHIgIT0gcC0+Ym9fbGlzdC0+bnVtX2Vu dHJpZXMpCj4+PiArICAgICAgICBwLT5tbiA9IGFtZGdwdV9tbl9nZXQocC0+YWRldiwgQU1ER1BV X01OX1RZUEVfR0ZYKTsKPj4+ICAgICAgIElOSVRfTElTVF9IRUFEKCZkdXBsaWNhdGVzKTsKPj4+ ICAgICAgIGFtZGdwdV92bV9nZXRfcGRfYm8oJmZwcml2LT52bSwgJnAtPnZhbGlkYXRlZCwgJnAt PnZtX3BkKTsKPj4+IEBAIC02MDUsMTAgKzYxMCw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3Bh cnNlcl9ib3Moc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCj4+PiAgICAgICAgICAgICAgIGdv dG8gZXJyb3JfZnJlZV9wYWdlczsKPj4+ICAgICAgICAgICB9Cj4+PiAtICAgICAgICAvKiBXaXRo b3V0IGEgQk8gbGlzdCB3ZSBkb24ndCBoYXZlIHVzZXJwdHIgQk9zICovCj4+PiAtICAgICAgICBp ZiAoIXAtPmJvX2xpc3QpCj4+PiAtICAgICAgICAgICAgYnJlYWs7Cj4+PiAtCj4+PiAgICAgICAg ICAgSU5JVF9MSVNUX0hFQUQoJm5lZWRfcGFnZXMpOwo+Pj4gICAgICAgICAgIGFtZGdwdV9ib19s aXN0X2Zvcl9lYWNoX3VzZXJwdHJfZW50cnkoZSwgcC0+Ym9fbGlzdCkgewo+Pj4gICAgICAgICAg ICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IGUtPnJvYmo7Cj4+PiBAQCAtNzAzLDIxICs3MDQs MTIgQEAgc3RhdGljIGludCBhbWRncHVfY3NfcGFyc2VyX2JvcyhzdHJ1Y3QgYW1kZ3B1X2NzX3Bh cnNlciAqcCwKPj4+ICAgICAgIGFtZGdwdV9jc19yZXBvcnRfbW92ZWRfYnl0ZXMocC0+YWRldiwg cC0+Ynl0ZXNfbW92ZWQsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgIHAtPmJ5dGVzX21vdmVk X3Zpcyk7Cj4+PiAtICAgIGlmIChwLT5ib19saXN0KSB7Cj4+PiAtICAgICAgICBzdHJ1Y3QgYW1k Z3B1X3ZtICp2bSA9ICZmcHJpdi0+dm07Cj4+PiAtICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvX2xp c3RfZW50cnkgKmU7Cj4+PiArICAgIGdkcyA9IHAtPmJvX2xpc3QtPmdkc19vYmo7Cj4+PiArICAg IGd3cyA9IHAtPmJvX2xpc3QtPmd3c19vYmo7Cj4+PiArICAgIG9hID0gcC0+Ym9fbGlzdC0+b2Ff b2JqOwo+Pj4gLSAgICAgICAgZ2RzID0gcC0+Ym9fbGlzdC0+Z2RzX29iajsKPj4+IC0gICAgICAg IGd3cyA9IHAtPmJvX2xpc3QtPmd3c19vYmo7Cj4+PiAtICAgICAgICBvYSA9IHAtPmJvX2xpc3Qt Pm9hX29iajsKPj4+IC0KPj4+IC0gICAgICAgIGFtZGdwdV9ib19saXN0X2Zvcl9lYWNoX2VudHJ5 KGUsIHAtPmJvX2xpc3QpCj4+PiAtICAgICAgICAgICAgZS0+Ym9fdmEgPSBhbWRncHVfdm1fYm9f ZmluZCh2bSwgZS0+cm9iaik7Cj4+PiAtICAgIH0gZWxzZSB7Cj4+PiAtICAgICAgICBnZHMgPSBw LT5hZGV2LT5nZHMuZ2RzX2dmeF9ibzsKPj4+IC0gICAgICAgIGd3cyA9IHAtPmFkZXYtPmdkcy5n d3NfZ2Z4X2JvOwo+Pj4gLSAgICAgICAgb2EgPSBwLT5hZGV2LT5nZHMub2FfZ2Z4X2JvOwo+Pj4g LSAgICB9Cj4+PiArICAgIGFtZGdwdV9ib19saXN0X2Zvcl9lYWNoX2VudHJ5KGUsIHAtPmJvX2xp c3QpCj4+PiArICAgICAgICBlLT5ib192YSA9IGFtZGdwdV92bV9ib19maW5kKHZtLCBlLT5yb2Jq KTsKPj4+ICAgICAgIGlmIChnZHMpIHsKPj4+ICAgICAgICAgICBwLT5qb2ItPmdkc19iYXNlID0g YW1kZ3B1X2JvX2dwdV9vZmZzZXQoZ2RzKTsKPj4+IEBAIC03NDUsMTUgKzczNywxMyBAQCBzdGF0 aWMgaW50IGFtZGdwdV9jc19wYXJzZXJfYm9zKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLAo+ Pj4gICBlcnJvcl9mcmVlX3BhZ2VzOgo+Pj4gLSAgICBpZiAocC0+Ym9fbGlzdCkgewo+Pj4gLSAg ICAgICAgYW1kZ3B1X2JvX2xpc3RfZm9yX2VhY2hfdXNlcnB0cl9lbnRyeShlLCBwLT5ib19saXN0 KSB7Cj4+PiAtICAgICAgICAgICAgaWYgKCFlLT51c2VyX3BhZ2VzKQo+Pj4gLSAgICAgICAgICAg ICAgICBjb250aW51ZTsKPj4+ICsgICAgYW1kZ3B1X2JvX2xpc3RfZm9yX2VhY2hfdXNlcnB0cl9l bnRyeShlLCBwLT5ib19saXN0KSB7Cj4+PiArICAgICAgICBpZiAoIWUtPnVzZXJfcGFnZXMpCj4+ PiArICAgICAgICAgICAgY29udGludWU7Cj4+PiAtICAgICAgICAgICAgcmVsZWFzZV9wYWdlcyhl LT51c2VyX3BhZ2VzLAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICBlLT5yb2JqLT50Ym8udHRt LT5udW1fcGFnZXMpOwo+Pj4gLSAgICAgICAgICAgIGt2ZnJlZShlLT51c2VyX3BhZ2VzKTsKPj4+ IC0gICAgICAgIH0KPj4+ICsgICAgICAgIHJlbGVhc2VfcGFnZXMoZS0+dXNlcl9wYWdlcywKPj4+ ICsgICAgICAgICAgICAgICAgICBlLT5yb2JqLT50Ym8udHRtLT5udW1fcGFnZXMpOwo+Pj4gKyAg ICAgICAga3ZmcmVlKGUtPnVzZXJfcGFnZXMpOwo+Pj4gICAgICAgfQo+Pj4gICAgICAgcmV0dXJu IHI7Cj4+PiBAQCAtODE1LDkgKzgwNSwxMCBAQCBzdGF0aWMgdm9pZCBhbWRncHVfY3NfcGFyc2Vy X2Zpbmkoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlciwgaW50IGVycm9yLAo+Pj4gICBz dGF0aWMgaW50IGFtZGdwdV9ib192bV91cGRhdGVfcHRlKHN0cnVjdCBhbWRncHVfY3NfcGFyc2Vy ICpwKQo+Pj4gICB7Cj4+PiAtICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcC0+YWRl djsKPj4+ICAgICAgIHN0cnVjdCBhbWRncHVfZnByaXYgKmZwcml2ID0gcC0+ZmlscC0+ZHJpdmVy X3ByaXY7Cj4+PiArICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcC0+YWRldjsKPj4+ ICAgICAgIHN0cnVjdCBhbWRncHVfdm0gKnZtID0gJmZwcml2LT52bTsKPj4+ICsgICAgc3RydWN0 IGFtZGdwdV9ib19saXN0X2VudHJ5ICplOwo+Pj4gICAgICAgc3RydWN0IGFtZGdwdV9ib192YSAq Ym9fdmE7Cj4+PiAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibzsKPj4+ICAgICAgIGludCByOwo+ Pj4gQEAgLTg1MCwzMSArODQxLDI2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX3ZtX3VwZGF0ZV9w dGUoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnApCj4+PiAgICAgICAgICAgICAgIHJldHVybiBy Owo+Pj4gICAgICAgfQo+Pj4gLSAgICBpZiAocC0+Ym9fbGlzdCkgewo+Pj4gLSAgICAgICAgc3Ry dWN0IGFtZGdwdV9ib19saXN0X2VudHJ5ICplOwo+Pj4gLQo+Pj4gLSAgICAgICAgYW1kZ3B1X2Jv X2xpc3RfZm9yX2VhY2hfZW50cnkoZSwgcC0+Ym9fbGlzdCkgewo+Pj4gLSAgICAgICAgICAgIHN0 cnVjdCBkbWFfZmVuY2UgKmY7Cj4+PiAtCj4+PiAtICAgICAgICAgICAgLyogaWdub3JlIGR1cGxp Y2F0ZXMgKi8KPj4+IC0gICAgICAgICAgICBibyA9IGUtPnJvYmo7Cj4+PiAtICAgICAgICAgICAg aWYgKCFibykKPj4+IC0gICAgICAgICAgICAgICAgY29udGludWU7Cj4+PiArICAgIGFtZGdwdV9i b19saXN0X2Zvcl9lYWNoX2VudHJ5KGUsIHAtPmJvX2xpc3QpIHsKPj4+ICsgICAgICAgIHN0cnVj dCBkbWFfZmVuY2UgKmY7Cj4+PiAtICAgICAgICAgICAgYm9fdmEgPSBlLT5ib192YTsKPj4+IC0g ICAgICAgICAgICBpZiAoYm9fdmEgPT0gTlVMTCkKPj4+IC0gICAgICAgICAgICAgICAgY29udGlu dWU7Cj4+PiArICAgICAgICAvKiBpZ25vcmUgZHVwbGljYXRlcyAqLwo+Pj4gKyAgICAgICAgYm8g PSBlLT5yb2JqOwo+Pj4gKyAgICAgICAgaWYgKCFibykKPj4+ICsgICAgICAgICAgICBjb250aW51 ZTsKPj4+IC0gICAgICAgICAgICByID0gYW1kZ3B1X3ZtX2JvX3VwZGF0ZShhZGV2LCBib192YSwg ZmFsc2UpOwo+Pj4gLSAgICAgICAgICAgIGlmIChyKQo+Pj4gLSAgICAgICAgICAgICAgICByZXR1 cm4gcjsKPj4+ICsgICAgICAgIGJvX3ZhID0gZS0+Ym9fdmE7Cj4+PiArICAgICAgICBpZiAoYm9f dmEgPT0gTlVMTCkKPj4+ICsgICAgICAgICAgICBjb250aW51ZTsKPj4+IC0gICAgICAgICAgICBm ID0gYm9fdmEtPmxhc3RfcHRfdXBkYXRlOwo+Pj4gLSAgICAgICAgICAgIHIgPSBhbWRncHVfc3lu Y19mZW5jZShhZGV2LCAmcC0+am9iLT5zeW5jLCBmLCBmYWxzZSk7Cj4+PiAtICAgICAgICAgICAg aWYgKHIpCj4+PiAtICAgICAgICAgICAgICAgIHJldHVybiByOwo+Pj4gLSAgICAgICAgfQo+Pj4g KyAgICAgICAgciA9IGFtZGdwdV92bV9ib191cGRhdGUoYWRldiwgYm9fdmEsIGZhbHNlKTsKPj4+ ICsgICAgICAgIGlmIChyKQo+Pj4gKyAgICAgICAgICAgIHJldHVybiByOwo+Pj4gKyAgICAgICAg ZiA9IGJvX3ZhLT5sYXN0X3B0X3VwZGF0ZTsKPj4+ICsgICAgICAgIHIgPSBhbWRncHVfc3luY19m ZW5jZShhZGV2LCAmcC0+am9iLT5zeW5jLCBmLCBmYWxzZSk7Cj4+PiArICAgICAgICBpZiAocikK Pj4+ICsgICAgICAgICAgICByZXR1cm4gcjsKPj4+ICAgICAgIH0KPj4+ICAgICAgIHIgPSBhbWRn cHVfdm1faGFuZGxlX21vdmVkKGFkZXYsIHZtKTsKPj4+IEBAIC04ODksOSArODc1LDcgQEAgc3Rh dGljIGludCBhbWRncHVfYm9fdm1fdXBkYXRlX3B0ZShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAq cCkKPj4+ICAgICAgIGlmIChyKQo+Pj4gICAgICAgICAgIHJldHVybiByOwo+Pj4gLSAgICBpZiAo YW1kZ3B1X3ZtX2RlYnVnICYmIHAtPmJvX2xpc3QpIHsKPj4+IC0gICAgICAgIHN0cnVjdCBhbWRn cHVfYm9fbGlzdF9lbnRyeSAqZTsKPj4+IC0KPj4+ICsgICAgaWYgKGFtZGdwdV92bV9kZWJ1Zykg ewo+Pj4gICAgICAgICAgIC8qIEludmFsaWRhdGUgYWxsIEJPcyB0byB0ZXN0IGZvciB1c2Vyc3Bh Y2UgYnVncyAqLwo+Pj4gICAgICAgICAgIGFtZGdwdV9ib19saXN0X2Zvcl9lYWNoX2VudHJ5KGUs IHAtPmJvX2xpc3QpIHsKPj4+ICAgICAgICAgICAgICAgLyogaWdub3JlIGR1cGxpY2F0ZXMgKi8K Pj4+IEBAIC0xMjE3LDIyICsxMjAxLDE5IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdChz dHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKPj4+ICAgICAgIHN0cnVjdCBhbWRncHVfcmluZyAq cmluZyA9IHAtPnJpbmc7Cj4+PiAgICAgICBzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5 ID0gJnAtPmN0eC0+cmluZ3NbcmluZy0+aWR4XS5lbnRpdHk7Cj4+PiAgICAgICBlbnVtIGRybV9z Y2hlZF9wcmlvcml0eSBwcmlvcml0eTsKPj4+ICsgICAgc3RydWN0IGFtZGdwdV9ib19saXN0X2Vu dHJ5ICplOwo+Pj4gICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYjsKPj4+ICAgICAgIHVpbnQ2 NF90IHNlcTsKPj4+ICAgICAgIGludCByOwo+Pj4gICAgICAgYW1kZ3B1X21uX2xvY2socC0+bW4p Owo+Pj4gLSAgICBpZiAocC0+Ym9fbGlzdCkgewo+Pj4gLSAgICAgICAgc3RydWN0IGFtZGdwdV9i b19saXN0X2VudHJ5ICplOwo+Pj4gKyAgICBhbWRncHVfYm9fbGlzdF9mb3JfZWFjaF91c2VycHRy X2VudHJ5KGUsIHAtPmJvX2xpc3QpIHsKPj4+ICsgICAgICAgIHN0cnVjdCBhbWRncHVfYm8gKmJv ID0gZS0+cm9iajsKPj4+IC0gICAgICAgIGFtZGdwdV9ib19saXN0X2Zvcl9lYWNoX3VzZXJwdHJf ZW50cnkoZSwgcC0+Ym9fbGlzdCkgewo+Pj4gLSAgICAgICAgICAgIHN0cnVjdCBhbWRncHVfYm8g KmJvID0gZS0+cm9iajsKPj4+IC0KPj4+IC0gICAgICAgICAgICBpZiAoYW1kZ3B1X3R0bV90dF91 c2VycHRyX25lZWRzX3BhZ2VzKGJvLT50Ym8udHRtKSkgewo+Pj4gLSAgICAgICAgICAgICAgICBh bWRncHVfbW5fdW5sb2NrKHAtPm1uKTsKPj4+IC0gICAgICAgICAgICAgICAgcmV0dXJuIC1FUkVT VEFSVFNZUzsKPj4+IC0gICAgICAgICAgICB9Cj4+PiArICAgICAgICBpZiAoYW1kZ3B1X3R0bV90 dF91c2VycHRyX25lZWRzX3BhZ2VzKGJvLT50Ym8udHRtKSkgewo+Pj4gKyAgICAgICAgICAgIGFt ZGdwdV9tbl91bmxvY2socC0+bW4pOwo+Pj4gKyAgICAgICAgICAgIHJldHVybiAtRVJFU1RBUlRT WVM7Cj4+PiAgICAgICAgICAgfQo+Pj4gICAgICAgfQo+Pj4gLS0KPj4+IDIuMTQuMQo+Pj4KPj4+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+PiBhbWQt Z2Z4IG1haWxpbmcgbGlzdAo+Pj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo+Cj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBhbWQtZ2Z4 IG1haWxpbmcgbGlzdAo+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0 CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=