From: Rob Herring Subject: [PATCH hwc] drm_hwcomposer: Support assigning planes in ValidateDisplay Date: Thu, 17 May 2018 17:08:16 -0500 Message-ID: <20180517220816.31504-1-robh@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-oi0-f53.google.com (mail-oi0-f53.google.com [209.85.218.53]) by gabe.freedesktop.org (Postfix) with ESMTPS id 098DF6EBD9 for ; Thu, 17 May 2018 22:08:19 +0000 (UTC) Received: by mail-oi0-f53.google.com with SMTP id p62-v6so5418946oie.10 for ; Thu, 17 May 2018 15:08:19 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, Stefan Schake , John Stultz , Sean Paul , Alexandru-Cosmin Gheorghe , Robert Foss List-Id: dri-devel@lists.freedesktop.org SW4gb3JkZXIgdG8gYXNzaWduIHBsYW5lcyB0byBsYXllcnMgaW4gVmFsaWRhdGVEaXNwbGF5LCB0 ZXN0aW5nCmNvbXBvc2l0aW5nIHdpdGggYSBEUk0gYXRvbWljIG1vZGVzZXQgdGVzdCBpcyBuZWVk ZWQgYXMgUHJlc2VudERpc3BsYXkKaXMgdG9vIGxhdGUuIFRoaXMgbWVhbnMgbW9zdCBvZiBQcmVz ZW50RGlzcGxheSBuZWVkcyB0byBiZSBydW4gZnJvbQpWYWxpZGF0ZURpc3BsYXksIHNvIHJlZmFj dG9yIFByZXNlbnREaXNwbGF5IGFuZCBwbHVtYiBhIHRlc3QgZmxhZyBkb3duCnRoZSBzdGFjay4K ClNpZ25lZC1vZmYtYnk6IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+Ci0tLQpCYXNlZCBv biBteSBHTCBjb21wIHJlbW92YWwgd29yay4gQWRkaW5nIGF0b21pYyB0ZXN0IHBhdGggdHVybmVk IG91dCB0byAKYmUgZWFzaWVyIHRoYW4gdXNpbmcgdGhlIFBsYW5uZXIgZGlyZWN0bHkuCgogZHJt ZGlzcGxheWNvbXBvc2l0b3IuY3BwIHwgIDQgKy0KIGRybWRpc3BsYXljb21wb3NpdG9yLmggICB8 ICAyICstCiBkcm1od2N0d28uY3BwICAgICAgICAgICAgfCA3OSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tCiBkcm1od2N0d28uaCAgICAgICAgICAgICAgfCAgMSArCiA0 IGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RybWRpc3BsYXljb21wb3NpdG9yLmNwcCBiL2RybWRpc3BsYXljb21wb3NpdG9yLmNw cAppbmRleCAyZjlmNmM2NzcyZGEuLmNlZWU2YjFhNGJkNiAxMDA2NDQKLS0tIGEvZHJtZGlzcGxh eWNvbXBvc2l0b3IuY3BwCisrKyBiL2RybWRpc3BsYXljb21wb3NpdG9yLmNwcApAQCAtNDY5LDcg KzQ2OSw3IEBAIHZvaWQgRHJtRGlzcGxheUNvbXBvc2l0b3I6OkFwcGx5RnJhbWUoCiB9CiAKIGlu dCBEcm1EaXNwbGF5Q29tcG9zaXRvcjo6QXBwbHlDb21wb3NpdGlvbigKLSAgICBzdGQ6OnVuaXF1 ZV9wdHI8RHJtRGlzcGxheUNvbXBvc2l0aW9uPiBjb21wb3NpdGlvbikgeworICAgIHN0ZDo6dW5p cXVlX3B0cjxEcm1EaXNwbGF5Q29tcG9zaXRpb24+IGNvbXBvc2l0aW9uLCBib29sIHRlc3QpIHsK ICAgaW50IHJldCA9IDA7CiAgIHN3aXRjaCAoY29tcG9zaXRpb24tPnR5cGUoKSkgewogICAgIGNh c2UgRFJNX0NPTVBPU0lUSU9OX1RZUEVfRlJBTUU6CkBAIC00ODEsNiArNDgxLDggQEAgaW50IERy bURpc3BsYXlDb21wb3NpdG9yOjpBcHBseUNvbXBvc2l0aW9uKAogICAgICAgICAgIEFMT0dFKCJD b21taXQgdGVzdCBmYWlsZWQgZm9yIGRpc3BsYXkgJWQsIEZJWE1FIiwgZGlzcGxheV8pOwogICAg ICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKHRlc3QpCisgICAgICAg ICAgcmV0dXJuIDA7CiAgICAgICB9CiAKICAgICAgIEFwcGx5RnJhbWUoc3RkOjptb3ZlKGNvbXBv c2l0aW9uKSwgcmV0KTsKZGlmZiAtLWdpdCBhL2RybWRpc3BsYXljb21wb3NpdG9yLmggYi9kcm1k aXNwbGF5Y29tcG9zaXRvci5oCmluZGV4IGVkNDY4NzNjMzQwOS4uN2M1ZWJiMDA1ZGM0IDEwMDY0 NAotLS0gYS9kcm1kaXNwbGF5Y29tcG9zaXRvci5oCisrKyBiL2RybWRpc3BsYXljb21wb3NpdG9y LmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgRHJtRGlzcGxheUNvbXBvc2l0b3IgewogICBpbnQg SW5pdChEcm1SZXNvdXJjZXMgKmRybSwgaW50IGRpc3BsYXkpOwogCiAgIHN0ZDo6dW5pcXVlX3B0 cjxEcm1EaXNwbGF5Q29tcG9zaXRpb24+IENyZWF0ZUNvbXBvc2l0aW9uKCkgY29uc3Q7Ci0gIGlu dCBBcHBseUNvbXBvc2l0aW9uKHN0ZDo6dW5pcXVlX3B0cjxEcm1EaXNwbGF5Q29tcG9zaXRpb24+ IGNvbXBvc2l0aW9uKTsKKyAgaW50IEFwcGx5Q29tcG9zaXRpb24oc3RkOjp1bmlxdWVfcHRyPERy bURpc3BsYXlDb21wb3NpdGlvbj4gY29tcG9zaXRpb24sIGJvb2wgdGVzdCk7CiAgIGludCBDb21w b3NpdGUoKTsKICAgdm9pZCBEdW1wKHN0ZDo6b3N0cmluZ3N0cmVhbSAqb3V0KSBjb25zdDsKIApk aWZmIC0tZ2l0IGEvZHJtaHdjdHdvLmNwcCBiL2RybWh3Y3R3by5jcHAKaW5kZXggZGVhZjE0MzYz ZThjLi4xOWY3M2U3MjExNTQgMTAwNjQ0Ci0tLSBhL2RybWh3Y3R3by5jcHAKKysrIGIvZHJtaHdj dHdvLmNwcApAQCAtNDgwLDggKzQ4MCw3IEBAIHZvaWQgRHJtSHdjVHdvOjpId2NEaXNwbGF5OjpB ZGRGZW5jZVRvUmV0aXJlRmVuY2UoaW50IGZkKSB7CiAgIH0KIH0KIAotSFdDMjo6RXJyb3IgRHJt SHdjVHdvOjpId2NEaXNwbGF5OjpQcmVzZW50RGlzcGxheShpbnQzMl90ICpyZXRpcmVfZmVuY2Up IHsKLSAgc3VwcG9ydGVkKF9fZnVuY19fKTsKK0hXQzI6OkVycm9yIERybUh3Y1R3bzo6SHdjRGlz cGxheTo6Q3JlYXRlQ29tcG9zaXRpb24oYm9vbCB0ZXN0KSB7CiAgIHN0ZDo6dmVjdG9yPERybUNv bXBvc2l0aW9uRGlzcGxheUxheWVyc01hcD4gbGF5ZXJzX21hcDsKICAgbGF5ZXJzX21hcC5lbXBs YWNlX2JhY2soKTsKICAgRHJtQ29tcG9zaXRpb25EaXNwbGF5TGF5ZXJzTWFwICZtYXAgPSBsYXll cnNfbWFwLmJhY2soKTsKQEAgLTQ5NCw3ICs0OTMsMTMgQEAgSFdDMjo6RXJyb3IgRHJtSHdjVHdv OjpId2NEaXNwbGF5OjpQcmVzZW50RGlzcGxheShpbnQzMl90ICpyZXRpcmVfZmVuY2UpIHsKICAg dWludDMyX3QgY2xpZW50X3pfb3JkZXIgPSAwOwogICBzdGQ6Om1hcDx1aW50MzJfdCwgRHJtSHdj VHdvOjpId2NMYXllciAqPiB6X21hcDsKICAgZm9yIChzdGQ6OnBhaXI8Y29uc3QgaHdjMl9sYXll cl90LCBEcm1Id2NUd286Okh3Y0xheWVyPiAmbCA6IGxheWVyc18pIHsKLSAgICBzd2l0Y2ggKGwu c2Vjb25kLnZhbGlkYXRlZF90eXBlKCkpIHsKKyAgICBIV0MyOjpDb21wb3NpdGlvbiBjb21wX3R5 cGU7CisgICAgaWYgKHRlc3QpCisgICAgICBjb21wX3R5cGUgPSBsLnNlY29uZC5zZl90eXBlKCk7 CisgICAgZWxzZQorICAgICAgY29tcF90eXBlID0gbC5zZWNvbmQudmFsaWRhdGVkX3R5cGUoKTsK KworICAgIHN3aXRjaCAoY29tcF90eXBlKSB7CiAgICAgICBjYXNlIEhXQzI6OkNvbXBvc2l0aW9u OjpEZXZpY2U6CiAgICAgICAgIHpfbWFwLmVtcGxhY2Uoc3RkOjptYWtlX3BhaXIobC5zZWNvbmQu el9vcmRlcigpLCAmbC5zZWNvbmQpKTsKICAgICAgICAgYnJlYWs7CkBAIC01MTAsNiArNTE1LDEw IEBAIEhXQzI6OkVycm9yIERybUh3Y1R3bzo6SHdjRGlzcGxheTo6UHJlc2VudERpc3BsYXkoaW50 MzJfdCAqcmV0aXJlX2ZlbmNlKSB7CiAgIGlmICh1c2VfY2xpZW50X2xheWVyKQogICAgIHpfbWFw LmVtcGxhY2Uoc3RkOjptYWtlX3BhaXIoY2xpZW50X3pfb3JkZXIsICZjbGllbnRfbGF5ZXJfKSk7 CiAKKyAgaWYgKHpfbWFwLmVtcHR5KCkpCisgICAgcmV0dXJuIEhXQzI6OkVycm9yOjpCYWRMYXll cjsKKworCiAgIC8vIG5vdyB0aGF0IHRoZXkncmUgb3JkZXJlZCBieSB6LCBhZGQgdGhlbSB0byB0 aGUgY29tcG9zaXRpb24KICAgZm9yIChzdGQ6OnBhaXI8Y29uc3QgdWludDMyX3QsIERybUh3Y1R3 bzo6SHdjTGF5ZXIgKj4gJmwgOiB6X21hcCkgewogICAgIERybUh3Y0xheWVyIGxheWVyOwpAQCAt NTIxLDEwICs1MzAsNiBAQCBIV0MyOjpFcnJvciBEcm1Id2NUd286Okh3Y0Rpc3BsYXk6OlByZXNl bnREaXNwbGF5KGludDMyX3QgKnJldGlyZV9mZW5jZSkgewogICAgIH0KICAgICBtYXAubGF5ZXJz LmVtcGxhY2VfYmFjayhzdGQ6Om1vdmUobGF5ZXIpKTsKICAgfQotICBpZiAobWFwLmxheWVycy5l bXB0eSgpKSB7Ci0gICAgKnJldGlyZV9mZW5jZSA9IC0xOwotICAgIHJldHVybiBIV0MyOjpFcnJv cjo6Tm9uZTsKLSAgfQogCiAgIHN0ZDo6dW5pcXVlX3B0cjxEcm1EaXNwbGF5Q29tcG9zaXRpb24+ IGNvbXBvc2l0aW9uID0KICAgICAgIGNvbXBvc2l0b3JfLkNyZWF0ZUNvbXBvc2l0aW9uKCk7CkBA IC01NTUsMTMgKzU2MCwyOSBAQCBIV0MyOjpFcnJvciBEcm1Id2NUd286Okh3Y0Rpc3BsYXk6OlBy ZXNlbnREaXNwbGF5KGludDMyX3QgKnJldGlyZV9mZW5jZSkgewogICAgIGkgPSBvdmVybGF5X3Bs YW5lcy5lcmFzZShpKTsKICAgfQogCi0gIEFkZEZlbmNlVG9SZXRpcmVGZW5jZShjb21wb3NpdGlv bi0+dGFrZV9vdXRfZmVuY2UoKSk7CisgIGlmICghdGVzdCkKKyAgICBBZGRGZW5jZVRvUmV0aXJl RmVuY2UoY29tcG9zaXRpb24tPnRha2Vfb3V0X2ZlbmNlKCkpOwogCi0gIHJldCA9IGNvbXBvc2l0 b3JfLkFwcGx5Q29tcG9zaXRpb24oc3RkOjptb3ZlKGNvbXBvc2l0aW9uKSk7CisgIHJldCA9IGNv bXBvc2l0b3JfLkFwcGx5Q29tcG9zaXRpb24oc3RkOjptb3ZlKGNvbXBvc2l0aW9uKSwgdGVzdCk7 CiAgIGlmIChyZXQpIHsKICAgICBBTE9HRSgiRmFpbGVkIHRvIGFwcGx5IHRoZSBmcmFtZSBjb21w b3NpdGlvbiByZXQ9JWQiLCByZXQpOwogICAgIHJldHVybiBIV0MyOjpFcnJvcjo6QmFkUGFyYW1l dGVyOwogICB9CisgIHJldHVybiBIV0MyOjpFcnJvcjo6Tm9uZTsKK30KKworSFdDMjo6RXJyb3Ig RHJtSHdjVHdvOjpId2NEaXNwbGF5OjpQcmVzZW50RGlzcGxheShpbnQzMl90ICpyZXRpcmVfZmVu Y2UpIHsKKyAgc3VwcG9ydGVkKF9fZnVuY19fKTsKKyAgSFdDMjo6RXJyb3IgcmV0OworCisgIHJl dCA9IENyZWF0ZUNvbXBvc2l0aW9uKGZhbHNlKTsKKyAgaWYgKHJldCA9PSBIV0MyOjpFcnJvcjo6 QmFkTGF5ZXIpIHsKKyAgICAgIC8vIENhbiB3ZSByZWFsbHkgaGF2ZSBubyBjbGllbnQgb3IgZGV2 aWNlIGxheWVycz8KKyAgICAgICpyZXRpcmVfZmVuY2UgPSAtMTsKKyAgICAgIHJldHVybiBIV0My OjpFcnJvcjo6Tm9uZTsKKyAgfQorICBpZiAocmV0ICE9IEhXQzI6OkVycm9yOjpOb25lKQorICAg IHJldHVybiByZXQ7CiAKICAgLy8gVGhlIHJldGlyZSBmZW5jZSByZXR1cm5lZCBoZXJlIGlzIGZv ciB0aGUgbGFzdCBmcmFtZSwgc28gcmV0dXJuIGl0IGFuZAogICAvLyBwcm9tb3RlIHRoZSBuZXh0 IHJldGlyZSBmZW5jZQpAQCAtNTg2LDcgKzYwNyw3IEBAIEhXQzI6OkVycm9yIERybUh3Y1R3bzo6 SHdjRGlzcGxheTo6U2V0QWN0aXZlQ29uZmlnKGh3YzJfY29uZmlnX3QgY29uZmlnKSB7CiAgICAg ICBjb21wb3NpdG9yXy5DcmVhdGVDb21wb3NpdGlvbigpOwogICBjb21wb3NpdGlvbi0+SW5pdChk cm1fLCBjcnRjXywgaW1wb3J0ZXJfLmdldCgpLCBwbGFubmVyXy5nZXQoKSwgZnJhbWVfbm9fKTsK ICAgaW50IHJldCA9IGNvbXBvc2l0aW9uLT5TZXREaXNwbGF5TW9kZSgqbW9kZSk7Ci0gIHJldCA9 IGNvbXBvc2l0b3JfLkFwcGx5Q29tcG9zaXRpb24oc3RkOjptb3ZlKGNvbXBvc2l0aW9uKSk7Cisg IHJldCA9IGNvbXBvc2l0b3JfLkFwcGx5Q29tcG9zaXRpb24oc3RkOjptb3ZlKGNvbXBvc2l0aW9u KSwgZmFsc2UpOwogICBpZiAocmV0KSB7CiAgICAgQUxPR0UoIkZhaWxlZCB0byBxdWV1ZSBkcG1z IGNvbXBvc2l0aW9uIG9uICVkIiwgcmV0KTsKICAgICByZXR1cm4gSFdDMjo6RXJyb3I6OkJhZENv bmZpZzsKQEAgLTY2Niw3ICs2ODcsNyBAQCBIV0MyOjpFcnJvciBEcm1Id2NUd286Okh3Y0Rpc3Bs YXk6OlNldFBvd2VyTW9kZShpbnQzMl90IG1vZGVfaW4pIHsKICAgICAgIGNvbXBvc2l0b3JfLkNy ZWF0ZUNvbXBvc2l0aW9uKCk7CiAgIGNvbXBvc2l0aW9uLT5Jbml0KGRybV8sIGNydGNfLCBpbXBv cnRlcl8uZ2V0KCksIHBsYW5uZXJfLmdldCgpLCBmcmFtZV9ub18pOwogICBjb21wb3NpdGlvbi0+ U2V0RHBtc01vZGUoZHBtc192YWx1ZSk7Ci0gIGludCByZXQgPSBjb21wb3NpdG9yXy5BcHBseUNv bXBvc2l0aW9uKHN0ZDo6bW92ZShjb21wb3NpdGlvbikpOworICBpbnQgcmV0ID0gY29tcG9zaXRv cl8uQXBwbHlDb21wb3NpdGlvbihzdGQ6Om1vdmUoY29tcG9zaXRpb24pLCBmYWxzZSk7CiAgIGlm IChyZXQpIHsKICAgICBBTE9HRSgiRmFpbGVkIHRvIGFwcGx5IHRoZSBkcG1zIGNvbXBvc2l0aW9u IHJldD0lZCIsIHJldCk7CiAgICAgcmV0dXJuIEhXQzI6OkVycm9yOjpCYWRQYXJhbWV0ZXI7CkBA IC02ODMsMTEgKzcwNCw0NyBAQCBIV0MyOjpFcnJvciBEcm1Id2NUd286Okh3Y0Rpc3BsYXk6OlNl dFZzeW5jRW5hYmxlZChpbnQzMl90IGVuYWJsZWQpIHsKIEhXQzI6OkVycm9yIERybUh3Y1R3bzo6 SHdjRGlzcGxheTo6VmFsaWRhdGVEaXNwbGF5KHVpbnQzMl90ICpudW1fdHlwZXMsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqbnVt X3JlcXVlc3RzKSB7CiAgIHN1cHBvcnRlZChfX2Z1bmNfXyk7CisgIHNpemVfdCBwbGFuZV9jb3Vu dCA9IDA7CiAgICpudW1fdHlwZXMgPSAwOwogICAqbnVtX3JlcXVlc3RzID0gMDsKKyAgc2l6ZV90 IGF2YWlsX3BsYW5lcyA9IHByaW1hcnlfcGxhbmVzXy5zaXplKCkgKyBvdmVybGF5X3BsYW5lc18u c2l6ZSgpOworCisgIEhXQzI6OkVycm9yIHJldDsKKworICBmb3IgKHN0ZDo6cGFpcjxjb25zdCBo d2MyX2xheWVyX3QsIERybUh3Y1R3bzo6SHdjTGF5ZXI+ICZsIDogbGF5ZXJzXykKKyAgICBsLnNl Y29uZC5zZXRfdmFsaWRhdGVkX3R5cGUoSFdDMjo6Q29tcG9zaXRpb246OkludmFsaWQpOworCisg IHJldCA9IENyZWF0ZUNvbXBvc2l0aW9uKHRydWUpOworICBpZiAocmV0ICE9IEhXQzI6OkVycm9y OjpOb25lKQorICAgIC8vIEFzc3VtZSB0aGUgdGVzdCBmYWlsZWQgZHVlIHRvIG92ZXJsYXkgcGxh bmVzCisgICAgYXZhaWxfcGxhbmVzID0gMTsKKworICBzdGQ6Om1hcDx1aW50MzJfdCwgRHJtSHdj VHdvOjpId2NMYXllciAqPiB6X21hcDsKKyAgZm9yIChzdGQ6OnBhaXI8Y29uc3QgaHdjMl9sYXll cl90LCBEcm1Id2NUd286Okh3Y0xheWVyPiAmbCA6IGxheWVyc18pIHsKKyAgICBpZiAobC5zZWNv bmQuc2ZfdHlwZSgpID09IEhXQzI6OkNvbXBvc2l0aW9uOjpEZXZpY2UpCisgICAgICAgIHpfbWFw LmVtcGxhY2Uoc3RkOjptYWtlX3BhaXIobC5zZWNvbmQuel9vcmRlcigpLCAmbC5zZWNvbmQpKTsK KyAgfQorCisgIC8qCisgICAqIElmIG1vcmUgbGF5ZXJzIHRoZW4gcGxhbmVzLCBzYXZlIG9uZSBw bGFuZQorICAgKiBmb3IgY2xpZW50IGNvbXBvc2l0ZWQgbGF5ZXJzCisgICAqLworICBpZiAoYXZh aWxfcGxhbmVzIDwgbGF5ZXJzXy5zaXplKCkpCisgICAgICAgYXZhaWxfcGxhbmVzLS07CisKKyAg Zm9yIChzdGQ6OnBhaXI8Y29uc3QgdWludDMyX3QsIERybUh3Y1R3bzo6SHdjTGF5ZXIgKj4gJmwg OiB6X21hcCkgeworICAgIGlmICghYXZhaWxfcGxhbmVzLS0pCisgICAgICAgIGJyZWFrOworICAg IGwuc2Vjb25kLT5zZXRfdmFsaWRhdGVkX3R5cGUoSFdDMjo6Q29tcG9zaXRpb246OkRldmljZSk7 CisgIH0KKwogICBmb3IgKHN0ZDo6cGFpcjxjb25zdCBod2MyX2xheWVyX3QsIERybUh3Y1R3bzo6 SHdjTGF5ZXI+ICZsIDogbGF5ZXJzXykgewogICAgIERybUh3Y1R3bzo6SHdjTGF5ZXIgJmxheWVy ID0gbC5zZWNvbmQ7CiAgICAgc3dpdGNoIChsYXllci5zZl90eXBlKCkpIHsKKyAgICAgIGNhc2Ug SFdDMjo6Q29tcG9zaXRpb246OkRldmljZToKKyAgICAgICAgaWYgKGxheWVyLnZhbGlkYXRlZF90 eXBlKCkgPT0gSFdDMjo6Q29tcG9zaXRpb246OkRldmljZSkKKyAgICAgICAgICBicmVhazsKKyAg ICAgICAgLy8gZmFsbCB0aHJ1CiAgICAgICBjYXNlIEhXQzI6OkNvbXBvc2l0aW9uOjpTb2xpZENv bG9yOgogICAgICAgY2FzZSBIV0MyOjpDb21wb3NpdGlvbjo6Q3Vyc29yOgogICAgICAgY2FzZSBI V0MyOjpDb21wb3NpdGlvbjo6U2lkZWJhbmQ6CmRpZmYgLS1naXQgYS9kcm1od2N0d28uaCBiL2Ry bWh3Y3R3by5oCmluZGV4IDA0OTBlMmFjN2Y4NS4uYmJmNTVkOWEwOGJjIDEwMDY0NAotLS0gYS9k cm1od2N0d28uaAorKysgYi9kcm1od2N0d28uaApAQCAtMTcxLDYgKzE3MSw3IEBAIGNsYXNzIERy bUh3Y1R3byA6IHB1YmxpYyBod2MyX2RldmljZV90IHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmxvYXQgKm1pbl9sdW1pbmFuY2UpOwogICAgIEhXQzI6OkVycm9yIEdldFJl bGVhc2VGZW5jZXModWludDMyX3QgKm51bV9lbGVtZW50cywgaHdjMl9sYXllcl90ICpsYXllcnMs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICpmZW5jZXMpOworICAg IEhXQzI6OkVycm9yIENyZWF0ZUNvbXBvc2l0aW9uKGJvb2wgdGVzdCk7CiAgICAgSFdDMjo6RXJy b3IgUHJlc2VudERpc3BsYXkoaW50MzJfdCAqcmV0aXJlX2ZlbmNlKTsKICAgICBIV0MyOjpFcnJv ciBTZXRBY3RpdmVDb25maWcoaHdjMl9jb25maWdfdCBjb25maWcpOwogICAgIEhXQzI6OkVycm9y IFNldENsaWVudFRhcmdldChidWZmZXJfaGFuZGxlX3QgdGFyZ2V0LCBpbnQzMl90IGFjcXVpcmVf ZmVuY2UsCi0tIAoyLjE3LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=