From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felix Kuehling Subject: Re: [PATCH 1/2] drm/amd/pp: Remove manual mode for power_dpm_force_performance_level Date: Thu, 25 Jan 2018 19:26:58 -0500 Message-ID: <0ce63372-dc11-9710-f11d-0cf6abf326b4@amd.com> References: <1516879614-11533-1-git-send-email-Rex.Zhu@amd.com> <51c6111b-78ec-36f8-b5e0-4a23ccea6de4@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-CA 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: "Zhu, Rex" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" T24gMjAxOC0wMS0yNSAwNzowNyBQTSwgWmh1LCBSZXggd3JvdGU6Cj4gSSBhbHNvIHRoaW5rIGFi b3V0IHRoaXMgcHJvYmxlbS4KPiBqdXN0IHRoaW5rIHVzZXIgc2hvdWxkIHVuZm9yY2VkIGNsayBs ZXZlbCB0aHJvdWdoIHBwIGRwbQo+IHNjbGsvbWNsay9wY2llIGlmIHRoZXkgY2hhbmdlIHRoZSBj bG9jayBsb2dpYyB0aHJvdWdoIHRob3NlIHN5c2ZzLgo+Cj4gVGhlIGxvZ2ljIHNlZW1zIHdlaXJk LCBBcyB3ZSBzdXBwbHkgbWFueSBzeXNmcyBmb3IgYWRqdXN0IGNsb2NrIHJhbmdlLgo+Cj4gV2Ug Y2FuIGZpeCB0aGlzIHByb2JsZW0gYnkgY2hhbmdlIGN1cnJlbnQgbW9kZSB0byBtYW51YWwgbW9k ZSBhZnRlcgo+IHVzZXIgY2FsbCBwcCBkcG0gc2Nsay9tY2xrL3BjaWUuCj4KPiBCdXQgYW5vdGhl ciB0aGlua++8jGlmIHVzZXIgY2hhbmdlIGJhY2sgdGhlIGNsayByYW5nZSB0aHJvdWdoIHBwIGRw bSBjbGsuCj4KPiB3ZSBhcmUgaW4gbWFudWFsIG1vZGUsIGFuZCB1c2VyIHNldCBhdXRvIG1vZGUs IGluIGZhY3QsIGRyaXZlciBjaGFuZ2UKPiBub3RoaW5nLgoKV2l0aCBwcm9maWxlcywgc3dpdGNo aW5nIGJhY2sgdG8gYXV0byBtb2RlIHdvdWxkIHNlbGVjdCB0aGUgYXBwcm9wcmlhdGUKcHJvZmls ZSwgd2hpY2ggbWF5IGhhdmUgYSBkaWZmZXJlbnQgY2xvY2sgbWFzay4gRm9yIGV4YW1wbGUgZm9y IGNvbXB1dGUKd2UgZW5hYmxlIG9ubHkgdGhlIGhpZ2hlc3QgdHdvIHNjbGsgbGV2ZWxzLgoKPgo+ IENvbXBhcmF0aXZlbHkgc3BlYWtpbmcsIGJldHRlciBzZXQgbWFudWFsIG1vZGUgYWZ0ZXIgdXNl ciBjYWxsIHBwIGRwbSBjbGsuCgpUaGF0IHdvdWxkIG1ha2Ugc2Vuc2UuIEJ1dCBzd2l0Y2hpbmcg dG8gbWFudWFsIG1vZGUgd291bGQgZGlzYWJsZQpwcm9maWxlcyBhbmQgYXV0b21hdGljIHByb2Zp bGUgc2VsZWN0aW9uLiBUaGF0IHdhcyBvbmUgcmVhc29uIHdoeSBJCm9iamVjdGVkIHRvIHlvdXIg cGxhbiB0byBjb250cm9sIHByb2ZpbGUgY2xvY2sgbGltaXRzIHVzaW5nIHRoZXNlIGZpbGVzLgoK UmVnYXJkcywKwqAgRmVsaXgKCj4gVGhhbmtzIHZlcnkgbXVjaC4KPgo+IEJlc3QgUmVnYXJkcwo+ IFJleAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICpGcm9tOiogS3VlaGxpbmcsIEZlbGl4Cj4gKlNlbnQ6 KiBGcmlkYXksIEphbnVhcnkgMjYsIDIwMTggMTI6NTU6MTkgQU0KPiAqVG86KiBhbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZzsgWmh1LCBSZXgKPiAqU3ViamVjdDoqIFJlOiBbUEFUQ0ggMS8y XSBkcm0vYW1kL3BwOiBSZW1vdmUgbWFudWFsIG1vZGUgZm9yCj4gcG93ZXJfZHBtX2ZvcmNlX3Bl cmZvcm1hbmNlX2xldmVsCj4gwqAKPiBUaGlzIHBhdGNoIGJyZWFrcyB1bmZvcmNpbmcgb2YgY2xv Y2tzLCB3aGljaCBpcyBjdXJyZW50bHkgZG9uZSBieQo+IHN3aXRjaGluZyBiYWNrIGZyb20gIm1h bnVhbCIgdG8gImF1dG8iLiBCeSByZW1vdmluZyAibWFudWFsIiBtb2RlLCB5b3UKPiByZW1vdmUg dGhlIGFiaWxpdHkgdG8gdW5zZXQgZm9yY2VkIGNsb2Nrcy4KPgo+IFJlZ2FyZHMsCj4gwqAgRmVs aXgKPgo+Cj4gT24gMjAxOC0wMS0yNSAwNjoyNiBBTSwgUmV4IFpodSB3cm90ZToKPiA+IERyaXZl ciBkbyBub3QgbWFpbnRhaW4gbWFudWFsIG1vZGUgZm9yIGRwbV9mb3JjZV9wZXJmb3JtYW5jZV9s ZXZlbCwKPiA+IFVzZXIgY2FuIHNldCBzY2xrL21jbGsvcGNpZSByYW5nZSB0aHJvdWdoCj4gcHBf ZHBtX3NjbGsvcHBfZHBtX21jbGsvcHBfZHBtX3BjaWUKPiA+IGRpcmVjdGx5Lgo+ID4KPiA+IElu IG9yZGVyIHRvIG5vdCBicmVhayBjdXJyZW50bHkgdG9vbHMsCj4gPiB3aGVuIHNldCAibWFudWFs IiB0byBwb3dlcl9kcG1fZm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwKPiA+IGRyaXZlciB3aWxsIGRv IG5vdGhpbmcgYW5kIGp1c3QgcmV0dXJuIHN1Y2Nlc3NmdWwuCj4gPgo+ID4gQ2hhbmdlLUlkOiBJ YWY2NzJiOWFiYzdmYTU3Yjc2NWNlYjdmYTJmYmE2YWQzZTgwYzUwYgo+ID4gU2lnbmVkLW9mZi1i eTogUmV4IFpodSA8UmV4LlpodUBhbWQuY29tPgo+ID4gLS0tCj4gPsKgIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAzICst LQo+ID7CoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaV9kcG0uY8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8wqAgNSAtLS0tLQo+ID7CoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2lu Y2x1ZGUva2dkX3BwX2ludGVyZmFjZS5owqDCoMKgwqAgfCAxNSArKysrKysrLS0tLS0tLS0KPiA+ wqAgZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvY3pfaHdtZ3IuY8KgwqDCoMKg IHzCoCA0IC0tLS0KPiA+wqAgZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvcnZf aHdtZ3IuY8KgwqDCoMKgIHzCoCAxIC0KPiA+wqAgZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBs YXkvaHdtZ3Ivc211N19od21nci5jwqDCoCB8wqAgNiAtLS0tLS0KPiA+wqAgZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMgfMKgIDYgLS0tLS0tCj4gPsKg IDcgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKPiA+Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BtLmMKPiBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCj4gPiBpbmRleCAxODEyMDA5 Li42NmI0ZGYwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3BtLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5j Cj4gPiBAQCAtMTUyLDcgKzE1Miw2IEBAIHN0YXRpYyBzc2l6ZV90Cj4gYW1kZ3B1X2dldF9kcG1f Zm9yY2VkX3BlcmZvcm1hbmNlX2xldmVsKHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+wqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobGV2ZWwgPT0gQU1EX0RQTV9G T1JDRURfTEVWRUxfQVVUTykgPyAiYXV0byIgOgo+ID7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIChsZXZlbCA9PSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9MT1cp ID8gImxvdyIgOgo+ID7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIChsZXZlbCA9PSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9ISUdIKSA/ICJoaWdoIiA6Cj4gPiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobGV2ZWwgPT0gQU1EX0RQ TV9GT1JDRURfTEVWRUxfTUFOVUFMKSA/Cj4gIm1hbnVhbCIgOgo+ID7CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChsZXZlbCA9PQo+IEFNRF9EUE1fRk9SQ0VE X0xFVkVMX1BST0ZJTEVfU1RBTkRBUkQpID8gInByb2ZpbGVfc3RhbmRhcmQiIDoKPiA+wqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobGV2ZWwgPT0KPiBBTURf RFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxFX01JTl9TQ0xLKSA/ICJwcm9maWxlX21pbl9zY2xrIiA6 Cj4gPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGxldmVs ID09Cj4gQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9NSU5fTUNMSykgPyAicHJvZmlsZV9t aW5fbWNsayIgOgo+ID4gQEAgLTE4Niw3ICsxODUsNyBAQCBzdGF0aWMgc3NpemVfdAo+IGFtZGdw dV9zZXRfZHBtX2ZvcmNlZF9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4g PsKgwqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAoc3RybmNtcCgiYXV0byIsIGJ1Ziwgc3RybGVuKCJh dXRvIikpID09IDApIHsKPiA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldmVsID0g QU1EX0RQTV9GT1JDRURfTEVWRUxfQVVUTzsKPiA+wqDCoMKgwqDCoMKgwqAgfSBlbHNlIGlmIChz dHJuY21wKCJtYW51YWwiLCBidWYsIHN0cmxlbigibWFudWFsIikpID09IDApIHsKPiA+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV2ZWwgPSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9NQU5VQUw7 Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHByX2luZm8oIk5vIG5lZWQgdG8gc2V0IG1h bnVhbCBtb2RlLCBKdXN0IGdvIGFoZWFkXG4iKTsKPiA+wqDCoMKgwqDCoMKgwqAgfSBlbHNlIGlm IChzdHJuY21wKCJwcm9maWxlX2V4aXQiLCBidWYsCj4gc3RybGVuKCJwcm9maWxlX2V4aXQiKSkg PT0gMCkgewo+ID7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV2ZWwgPSBBTURfRFBN X0ZPUkNFRF9MRVZFTF9QUk9GSUxFX0VYSVQ7Cj4gPsKgwqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAo c3RybmNtcCgicHJvZmlsZV9zdGFuZGFyZCIsIGJ1ZiwKPiBzdHJsZW4oInByb2ZpbGVfc3RhbmRh cmQiKSkgPT0gMCkgewo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2NpX2RwbS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaV9kcG0uYwo+ID4gaW5k ZXggYWI0NTIzMi4uOGRkYzk3OCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2NpX2RwbS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaV9k cG0uYwo+ID4gQEAgLTY2MzksMTEgKzY2MzksNiBAQCBzdGF0aWMgaW50IGNpX2RwbV9mb3JjZV9j bG9ja19sZXZlbCh2b2lkICpoYW5kbGUsCj4gPsKgwqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwo+ID7CoMKgwqDC oMKgwqDCoCBzdHJ1Y3QgY2lfcG93ZXJfaW5mbyAqcGkgPSBjaV9nZXRfcGkoYWRldik7Cj4gPsKg Cj4gPiAtwqDCoMKgwqAgaWYgKGFkZXYtPnBtLmRwbS5mb3JjZWRfbGV2ZWwgJiAoQU1EX0RQTV9G T1JDRURfTEVWRUxfQVVUTyB8Cj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQU1EX0RQTV9GT1JDRURfTEVWRUxfTE9XIHwKPiA+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBB TURfRFBNX0ZPUkNFRF9MRVZFTF9ISUdIKSkKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuIC1FSU5WQUw7Cj4gPiAtCj4gPsKgwqDCoMKgwqDCoMKgIHN3aXRjaCAodHlwZSkgewo+ ID7CoMKgwqDCoMKgwqDCoCBjYXNlIFBQX1NDTEs6Cj4gPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBpZiAoIXBpLT5zY2xrX2RwbV9rZXlfZGlzYWJsZWQpCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2tnZF9wcF9pbnRlcmZhY2UuaAo+IGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9pbmNsdWRlL2tnZF9wcF9pbnRlcmZhY2UuaAo+ID4gaW5kZXggYjlhYTlm NC4uM2ZhYjY4NiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9r Z2RfcHBfaW50ZXJmYWNlLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9r Z2RfcHBfaW50ZXJmYWNlLmgKPiA+IEBAIC00MSwxNCArNDEsMTMgQEAgc3RydWN0IGFtZF92Y2Vf c3RhdGUgewo+ID7CoAo+ID7CoCBlbnVtIGFtZF9kcG1fZm9yY2VkX2xldmVsIHsKPiA+wqDCoMKg wqDCoMKgwqAgQU1EX0RQTV9GT1JDRURfTEVWRUxfQVVUTyA9IDB4MSwKPiA+IC3CoMKgwqDCoCBB TURfRFBNX0ZPUkNFRF9MRVZFTF9NQU5VQUwgPSAweDIsCj4gPiAtwqDCoMKgwqAgQU1EX0RQTV9G T1JDRURfTEVWRUxfTE9XID0gMHg0LAo+ID4gLcKgwqDCoMKgIEFNRF9EUE1fRk9SQ0VEX0xFVkVM X0hJR0ggPSAweDgsCj4gPiAtwqDCoMKgwqAgQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9T VEFOREFSRCA9IDB4MTAsCj4gPiAtwqDCoMKgwqAgQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklM RV9NSU5fU0NMSyA9IDB4MjAsCj4gPiAtwqDCoMKgwqAgQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJP RklMRV9NSU5fTUNMSyA9IDB4NDAsCj4gPiAtwqDCoMKgwqAgQU1EX0RQTV9GT1JDRURfTEVWRUxf UFJPRklMRV9QRUFLID0gMHg4MCwKPiA+IC3CoMKgwqDCoCBBTURfRFBNX0ZPUkNFRF9MRVZFTF9Q Uk9GSUxFX0VYSVQgPSAweDEwMCwKPiA+ICvCoMKgwqDCoCBBTURfRFBNX0ZPUkNFRF9MRVZFTF9M T1cgPSAweDIsCj4gPiArwqDCoMKgwqAgQU1EX0RQTV9GT1JDRURfTEVWRUxfSElHSCA9IDB4NCwK PiA+ICvCoMKgwqDCoCBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxFX1NUQU5EQVJEID0gMHg4 LAo+ID4gK8KgwqDCoMKgIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfTUlOX1NDTEsgPSAw eDEwLAo+ID4gK8KgwqDCoMKgIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfTUlOX01DTEsg PSAweDIwLAo+ID4gK8KgwqDCoMKgIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfUEVBSyA9 IDB4NDAsCj4gPiArwqDCoMKgwqAgQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9FWElUID0g MHg4MCwKPiA+wqAgfTsKPiA+wqAKPiA+wqAgZW51bSBhbWRfcG1fc3RhdGVfdHlwZSB7Cj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvY3pfaHdtZ3Iu Ywo+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvY3pfaHdtZ3IuYwo+ID4g aW5kZXggZGVjOGRkOS4uNjBkMjgwYyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2h3bWdyL2N6X2h3bWdyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2h3bWdyL2N6X2h3bWdyLmMKPiA+IEBAIC0xMjUwLDcgKzEyNTAsNiBAQCBz dGF0aWMgaW50IGN6X2RwbV9mb3JjZV9kcG1fbGV2ZWwoc3RydWN0Cj4gcHBfaHdtZ3IgKmh3bWdy LAo+ID7CoMKgwqDCoMKgwqDCoCBjYXNlIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0FVVE86Cj4gPsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSBjel9waG1fdW5mb3JjZV9kcG1fbGV2 ZWxzKGh3bWdyKTsKPiA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+ID4g LcKgwqDCoMKgIGNhc2UgQU1EX0RQTV9GT1JDRURfTEVWRUxfTUFOVUFMOgo+ID7CoMKgwqDCoMKg wqDCoCBjYXNlIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfRVhJVDoKPiA+wqDCoMKgwqDC oMKgwqAgZGVmYXVsdDoKPiA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+ ID4gQEAgLTE1NTgsOSArMTU1Nyw2IEBAIHN0YXRpYyBpbnQgY3pfZ2V0X2RhbF9wb3dlcl9sZXZl bChzdHJ1Y3QKPiBwcF9od21nciAqaHdtZ3IsCj4gPsKgIHN0YXRpYyBpbnQgY3pfZm9yY2VfY2xv Y2tfbGV2ZWwoc3RydWN0IHBwX2h3bWdyICpod21nciwKPiA+wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGVudW0gcHBfY2xvY2tfdHlwZSB0eXBlLCB1aW50MzJfdCBtYXNrKQo+ID7CoCB7 Cj4gPiAtwqDCoMKgwqAgaWYgKGh3bWdyLT5kcG1fbGV2ZWwgIT0gQU1EX0RQTV9GT1JDRURfTEVW RUxfTUFOVUFMKQo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsK PiA+IC0KPiA+wqDCoMKgwqDCoMKgwqAgc3dpdGNoICh0eXBlKSB7Cj4gPsKgwqDCoMKgwqDCoMKg IGNhc2UgUFBfU0NMSzoKPiA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNtdW1fc2Vu ZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVyKGh3bWdyLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3J2X2h3bWdyLmMKPiBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3J2X2h3bWdyLmMKPiA+IGluZGV4IDQwOWE1NmIuLmVk ZGNiY2QgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21n ci9ydl9od21nci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21n ci9ydl9od21nci5jCj4gPiBAQCAtNjA1LDcgKzYwNSw2IEBAIHN0YXRpYyBpbnQgcnZfZHBtX2Zv cmNlX2RwbV9sZXZlbChzdHJ1Y3QKPiBwcF9od21nciAqaHdtZ3IsCj4gPsKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiBQUFNNQ19NU0dfU2V0U29mdE1heEZjbGtCeUZyZXEs Cj4gPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiBSQVZFTl9VTURfUFNU QVRFX01JTl9GQ0xLKTsKPiA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+ ID4gLcKgwqDCoMKgIGNhc2UgQU1EX0RQTV9GT1JDRURfTEVWRUxfTUFOVUFMOgo+ID7CoMKgwqDC oMKgwqDCoCBjYXNlIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfRVhJVDoKPiA+wqDCoMKg wqDCoMKgwqAgZGVmYXVsdDoKPiA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFr Owo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3Nt dTdfaHdtZ3IuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211N19o d21nci5jCj4gPiBpbmRleCAxM2RiNzVjLi5lM2E4Mzc0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211N19od21nci5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXU3X2h3bWdyLmMKPiA+IEBAIC0yNzk4 LDcgKzI3OTgsNiBAQCBzdGF0aWMgaW50IHNtdTdfZm9yY2VfZHBtX2xldmVsKHN0cnVjdAo+IHBw X2h3bWdyICpod21nciwKPiA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNtdTdfZm9y Y2VfY2xvY2tfbGV2ZWwoaHdtZ3IsIFBQX01DTEssIDE8PG1jbGtfbWFzayk7Cj4gPsKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzbXU3X2ZvcmNlX2Nsb2NrX2xldmVsKGh3bWdyLCBQUF9Q Q0lFLCAxPDxwY2llX21hc2spOwo+ID7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJl YWs7Cj4gPiAtwqDCoMKgwqAgY2FzZSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9NQU5VQUw6Cj4gPsKg wqDCoMKgwqDCoMKgIGNhc2UgQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9FWElUOgo+ID7C oMKgwqDCoMKgwqDCoCBkZWZhdWx0Ogo+ID7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg YnJlYWs7Cj4gPiBAQCAtNDMxMSwxMSArNDMxMCw2IEBAIHN0YXRpYyBpbnQgc211N19mb3JjZV9j bG9ja19sZXZlbChzdHJ1Y3QKPiBwcF9od21nciAqaHdtZ3IsCj4gPsKgIHsKPiA+wqDCoMKgwqDC oMKgwqAgc3RydWN0IHNtdTdfaHdtZ3IgKmRhdGEgPSAoc3RydWN0IHNtdTdfaHdtZ3IgKikoaHdt Z3ItPmJhY2tlbmQpOwo+ID7CoAo+ID4gLcKgwqDCoMKgIGlmIChod21nci0+cmVxdWVzdF9kcG1f bGV2ZWwgJiAoQU1EX0RQTV9GT1JDRURfTEVWRUxfQVVUTyB8Cj4gPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0xPVyB8Cj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFNRF9EUE1f Rk9SQ0VEX0xFVkVMX0hJR0gpKQo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g LUVJTlZBTDsKPiA+IC0KPiA+wqDCoMKgwqDCoMKgwqAgc3dpdGNoICh0eXBlKSB7Cj4gPsKgwqDC oMKgwqDCoMKgIGNhc2UgUFBfU0NMSzoKPiA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGlmICghZGF0YS0+c2Nsa19kcG1fa2V5X2Rpc2FibGVkKQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jCj4gYi9kcml2ZXJz L2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMTBfaHdtZ3IuYwo+ID4gaW5kZXggNmIy ODg5Ni4uODI4Njc3ZSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJw bGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bv d2VycGxheS9od21nci92ZWdhMTBfaHdtZ3IuYwo+ID4gQEAgLTQyNDEsNyArNDI0MSw2IEBAIHN0 YXRpYyBpbnQgdmVnYTEwX2RwbV9mb3JjZV9kcG1fbGV2ZWwoc3RydWN0Cj4gcHBfaHdtZ3IgKmh3 bWdyLAo+ID7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmVnYTEwX2ZvcmNlX2Nsb2Nr X2xldmVsKGh3bWdyLCBQUF9TQ0xLLCAxPDxzY2xrX21hc2spOwo+ID7CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgdmVnYTEwX2ZvcmNlX2Nsb2NrX2xldmVsKGh3bWdyLCBQUF9NQ0xLLCAx PDxtY2xrX21hc2spOwo+ID7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4g PiAtwqDCoMKgwqAgY2FzZSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9NQU5VQUw6Cj4gPsKgwqDCoMKg wqDCoMKgIGNhc2UgQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9FWElUOgo+ID7CoMKgwqDC oMKgwqDCoCBkZWZhdWx0Ogo+ID7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7 Cj4gPiBAQCAtNDUwMCwxMSArNDQ5OSw2IEBAIHN0YXRpYyBpbnQgdmVnYTEwX2ZvcmNlX2Nsb2Nr X2xldmVsKHN0cnVjdAo+IHBwX2h3bWdyICpod21nciwKPiA+wqAgewo+ID7CoMKgwqDCoMKgwqDC oCBzdHJ1Y3QgdmVnYTEwX2h3bWdyICpkYXRhID0gKHN0cnVjdCB2ZWdhMTBfaHdtZ3IKPiAqKSho d21nci0+YmFja2VuZCk7Cj4gPsKgCj4gPiAtwqDCoMKgwqAgaWYgKGh3bWdyLT5yZXF1ZXN0X2Rw bV9sZXZlbCAmIChBTURfRFBNX0ZPUkNFRF9MRVZFTF9BVVRPIHwKPiA+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBTURfRFBNX0ZPUkNF RF9MRVZFTF9MT1cgfAo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0hJR0gpKQo+ID4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsKPiA+IC0KPiA+wqDCoMKgwqDCoMKg wqAgc3dpdGNoICh0eXBlKSB7Cj4gPsKgwqDCoMKgwqDCoMKgIGNhc2UgUFBfU0NMSzoKPiA+wqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGEtPnNtY19zdGF0ZV90YWJsZS5nZnhfYm9v dF9sZXZlbCA9IG1hc2sgPwo+IChmZnMobWFzaykgLSAxKSA6IDA7Cj4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=