From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robin Murphy Subject: Re: [PATCH RFC 3/6] hwmon: Add support for RPi voltage sensor Date: Wed, 16 May 2018 14:51:49 +0100 Message-ID: References: <1526477827-10859-1-git-send-email-stefan.wahren@i2se.com> <1526477827-10859-4-git-send-email-stefan.wahren@i2se.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1526477827-10859-4-git-send-email-stefan.wahren@i2se.com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Stefan Wahren , Rob Herring , Mark Rutland , Jean Delvare , Guenter Roeck , Eric Anholt Cc: linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org, Florian Fainelli , Scott Branden , Ray Jui , Phil Elwell , =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= , bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org SGkgU3RlZmFuLAoKT24gMTYvMDUvMTggMTQ6MzcsIFN0ZWZhbiBXYWhyZW4gd3JvdGU6Cj4gQ3Vy cmVudGx5IHRoZXJlIGlzIG5vIGVhc3kgd2F5IHRvIGRldGVjdCB1bmRlci12b2x0YWdlIGNvbmRp dGlvbnMgb24gYSByZW1vdGUKPiBSYXNwYmVycnkgUGkuIFRoaXMgaHdtb24gZHJpdmVyIHJldHJp ZXZlcyB0aGUgc3RhdGUgb2YgdGhlIHVuZGVyLXZvbHRhZ2Ugc2Vuc29yCj4gdmlhIG1haWxib3gg aW50ZXJmYWNlLiBUaGUgaGFuZGxpbmcgYmFzZWQgb24gTm9yYWxmJ3MgbW9kaWZpY2F0aW9ucyB0 byB0aGUKPiBkb3duc3RyZWFtIGZpcm13YXJlIGRyaXZlci4gSW4gY2FzZSBvZiBhbiB1bmRlci12 b2x0YWdlIGNvbmRpdGlvbiBvbmx5IGFuIGVudHJ5Cj4gaXMgd3JpdHRlbiB0byB0aGUga2VybmVs IGxvZy4KPiAKPiBDQzogIk5vcmFsZiBUcsO4bm5lcyIgPG5vcmFsZkB0cm9ubmVzLm9yZz4KPiBT aWduZWQtb2ZmLWJ5OiBTdGVmYW4gV2FocmVuIDxzdGVmYW4ud2FocmVuQGkyc2UuY29tPgo+IC0t LQo+ICAgZHJpdmVycy9od21vbi9LY29uZmlnICAgICAgICAgICAgIHwgIDEwICsrCj4gICBkcml2 ZXJzL2h3bW9uL01ha2VmaWxlICAgICAgICAgICAgfCAgIDEgKwo+ICAgZHJpdmVycy9od21vbi9y YXNwYmVycnlwaS1od21vbi5jIHwgMjA3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4gICAzIGZpbGVzIGNoYW5nZWQsIDIxOCBpbnNlcnRpb25zKCspCj4gICBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9od21vbi9yYXNwYmVycnlwaS1od21vbi5jCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvaHdtb24vS2NvbmZpZyBiL2RyaXZlcnMvaHdtb24vS2NvbmZpZwo+IGlu ZGV4IDc2OGFlZDUuLjdmOTM1Y2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9od21vbi9LY29uZmln Cj4gKysrIGIvZHJpdmVycy9od21vbi9LY29uZmlnCj4gQEAgLTEyOTgsNiArMTI5OCwxNiBAQCBj b25maWcgU0VOU09SU19QV01fRkFOCj4gICAJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWls dCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCj4gICAJICB3aWxsIGJlIGNhbGxlZCBw d20tZmFuLgo+ICAgCj4gK2NvbmZpZyBTRU5TT1JTX1JBU1BCRVJSWVBJX0hXTU9OCj4gKwl0cmlz dGF0ZSAiUmFzcGJlcnJ5IFBpIHZvbHRhZ2UgbW9uaXRvciIKPiArCWRlcGVuZHMgb24gKEFSQ0hf QkNNMjgzNSAmJiBSQVNQQkVSUllQSV9GSVJNV0FSRSkgfHwgKENPTVBJTEVfVEVTVCAmJiAhUkFT UEJFUlJZUElfRklSTVdBUkUpCgpTaW5jZSBSQVNQQkVSUllQSV9GSVJNV0FSRSBhbHJlYWR5IGlt cGxpZXMgQVJDSF9CQ00yODM1ICh2aWEgCkJDTTI4MzVfTUJPWCksIHRoaXMgaXMganVzdCBhIHZl cnkgcm91bmRhYm91dCB3YXkgdG8gc2F5OgoKCWRlcGVuZHMgb24gUkFTUEJFUlJZUElfRklSTVdB UkUgfHwgQ09NUElMRV9URVNUCgpSb2Jpbi4KCj4gKwloZWxwCj4gKwkgIElmIHlvdSBzYXkgeWVz IGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciB2b2x0YWdlIHNlbnNvciBvbiB0aGUKPiArCSAgUmFz cGJlcnJ5IFBpLgo+ICsKPiArCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBt b2R1bGUuIElmIHNvLCB0aGUgbW9kdWxlCj4gKwkgIHdpbGwgYmUgY2FsbGVkIHJhc3BiZXJyeXBp LWh3bW9uLgo+ICsKPiAgIGNvbmZpZyBTRU5TT1JTX1NIVDE1Cj4gICAJdHJpc3RhdGUgIlNlbnNp cm9uIGh1bWlkaXR5IGFuZCB0ZW1wZXJhdHVyZSBzZW5zb3JzLiBTSFQxNSBhbmQgY29tcGF0LiIK PiAgIAlkZXBlbmRzIG9uIEdQSU9MSUIgfHwgQ09NUElMRV9URVNUCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaHdtb24vTWFrZWZpbGUgYi9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCj4gaW5kZXggZTdk NTJhMy4uYTkyOTc3MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCj4gKysr IGIvZHJpdmVycy9od21vbi9NYWtlZmlsZQo+IEBAIC0xNDEsNiArMTQxLDcgQEAgb2JqLSQoQ09O RklHX1NFTlNPUlNfUEM4NzQyNykJKz0gcGM4NzQyNy5vCj4gICBvYmotJChDT05GSUdfU0VOU09S U19QQ0Y4NTkxKQkrPSBwY2Y4NTkxLm8KPiAgIG9iai0kKENPTkZJR19TRU5TT1JTX1BPV1IxMjIw KSAgKz0gcG93cjEyMjAubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfUFdNX0ZBTikJKz0gcHdt LWZhbi5vCj4gK29iai0kKENPTkZJR19TRU5TT1JTX1JBU1BCRVJSWVBJX0hXTU9OKQkrPSByYXNw YmVycnlwaS1od21vbi5vCj4gICBvYmotJChDT05GSUdfU0VOU09SU19TM0MpCSs9IHMzYy1od21v bi5vCj4gICBvYmotJChDT05GSUdfU0VOU09SU19TQ0g1NlhYX0NPTU1PTikrPSBzY2g1Nnh4LWNv bW1vbi5vCj4gICBvYmotJChDT05GSUdfU0VOU09SU19TQ0g1NjI3KQkrPSBzY2g1NjI3Lm8KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9yYXNwYmVycnlwaS1od21vbi5jIGIvZHJpdmVycy9o d21vbi9yYXNwYmVycnlwaS1od21vbi5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAw MDAwMDAwLi4yMDAzZjZjCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvaHdtb24vcmFz cGJlcnJ5cGktaHdtb24uYwo+IEBAIC0wLDAgKzEsMjA3IEBACj4gKy8vIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wKwo+ICsvKgo+ICsgKiBSYXNwYmVycnkgUGkgdm9sdGFnZSBzZW5z b3IgZHJpdmVyCj4gKyAqCj4gKyAqIEJhc2VkIG9uIGZpcm13YXJlL3Jhc3BiZXJyeXBpLmMgYnkg Tm9yYWxmIFRyw7hubmVzCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoQykgMjAxOCBTdGVmYW4gV2Fo cmVuIDxzdGVmYW4ud2FocmVuQGkyc2UuY29tPgo+ICsgKi8KPiArI2luY2x1ZGUgPGxpbnV4L2Rl dmljZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvZXJyLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9od21v bi5oPgo+ICsjaW5jbHVkZSA8bGludXgvaHdtb24tc3lzZnMuaD4KPiArI2luY2x1ZGUgPGxpbnV4 L21vZHVsZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPiArI2lu Y2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgo+ICsjaW5jbHVkZSA8c29jL2JjbTI4MzUvcmFzcGJl cnJ5cGktZmlybXdhcmUuaD4KPiArCj4gKyNkZWZpbmUgVU5ERVJWT0xUQUdFX1NUSUNLWV9CSVQJ QklUKDE2KQo+ICsKPiArc3RydWN0IHJwaV9od21vbl9kYXRhIHsKPiArCXN0cnVjdCBkZXZpY2Ug Kmh3bW9uX2RldjsKPiArCXN0cnVjdCBycGlfZmlybXdhcmUgKmZ3Owo+ICsJdTMyIGxhc3RfdGhy b3R0bGVkOwo+ICsJc3RydWN0IGRlbGF5ZWRfd29yayBnZXRfdmFsdWVzX3BvbGxfd29yazsKPiAr fTsKPiArCj4gK3N0YXRpYyB2b2lkIHJwaV9maXJtd2FyZV9nZXRfdGhyb3R0bGVkKHN0cnVjdCBy cGlfaHdtb25fZGF0YSAqZGF0YSkKPiArewo+ICsJdTMyIG5ld191diwgb2xkX3V2LCB2YWx1ZTsK PiArCWludCByZXQ7Cj4gKwo+ICsJLyogQ2xlYXIgc3RpY2t5IGJpdHMgKi8KPiArCXZhbHVlID0g MHhmZmZmOwo+ICsKPiArCXJldCA9IHJwaV9maXJtd2FyZV9wcm9wZXJ0eShkYXRhLT5mdywgUlBJ X0ZJUk1XQVJFX0dFVF9USFJPVFRMRUQsCj4gKwkJCQkgICAgJnZhbHVlLCBzaXplb2YodmFsdWUp KTsKPiArCWlmIChyZXQpIHsKPiArCQlkZXZfZXJyX29uY2UoZGF0YS0+aHdtb25fZGV2LCAiJXM6 IEZhaWxlZCB0byBnZXQgdGhyb3R0bGVkICglZClcbiIsCj4gKwkJCSAgICAgX19mdW5jX18sIHJl dCk7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCW5ld191diA9IHZhbHVlICYgVU5ERVJWT0xU QUdFX1NUSUNLWV9CSVQ7Cj4gKwlvbGRfdXYgPSBkYXRhLT5sYXN0X3Rocm90dGxlZCAmIFVOREVS Vk9MVEFHRV9TVElDS1lfQklUOwo+ICsJZGF0YS0+bGFzdF90aHJvdHRsZWQgPSB2YWx1ZTsKPiAr Cj4gKwlpZiAobmV3X3V2ID09IG9sZF91dikKPiArCQlyZXR1cm47Cj4gKwo+ICsJaWYgKG5ld191 dikKPiArCQlkZXZfY3JpdChkYXRhLT5od21vbl9kZXYsICJVbmRlci12b2x0YWdlIGRldGVjdGVk ISAoMHglMDh4KVxuIiwKPiArCQkJIHZhbHVlKTsKPiArCWVsc2UKPiArCQlkZXZfaW5mbyhkYXRh LT5od21vbl9kZXYsICJWb2x0YWdlIG5vcm1hbGlzZWQgKDB4JTA4eClcbiIsCj4gKwkJCSB2YWx1 ZSk7Cj4gKwo+ICsJc3lzZnNfbm90aWZ5KCZkYXRhLT5od21vbl9kZXYtPmtvYmosIE5VTEwsICJp bjBfbGNyaXRfYWxhcm0iKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZ2V0X3ZhbHVlc19wb2xs KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiArewo+ICsJc3RydWN0IHJwaV9od21vbl9kYXRh ICpkYXRhOwo+ICsKPiArCWRhdGEgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHJwaV9od21v bl9kYXRhLAo+ICsJCQkgICAgZ2V0X3ZhbHVlc19wb2xsX3dvcmsud29yayk7Cj4gKwo+ICsJcnBp X2Zpcm13YXJlX2dldF90aHJvdHRsZWQoZGF0YSk7Cj4gKwo+ICsJLyoKPiArCSAqIFdlIGNhbid0 IHJ1biBmYXN0ZXIgdGhhbiB0aGUgc3RpY2t5IHNoaWZ0ICgxMDBtcykgc2luY2Ugd2UgZ2V0Cj4g KwkgKiBmbGlwcGluZyBpbiB0aGUgc3RpY2t5IGJpdHMgdGhhdCBhcmUgY2xlYXJlZC4KPiArCSAq Lwo+ICsJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkYXRhLT5nZXRfdmFsdWVzX3BvbGxfd29yaywg MiAqIEhaKTsKPiArfQo+ICsKPiArc3RhdGljIGludCBycGlfcmVhZChzdHJ1Y3QgZGV2aWNlICpk ZXYsIGVudW0gaHdtb25fc2Vuc29yX3R5cGVzIHR5cGUsCj4gKwkJICAgIHUzMiBhdHRyLCBpbnQg Y2hhbm5lbCwgbG9uZyAqdmFsKQo+ICt7Cj4gKwlzdHJ1Y3QgcnBpX2h3bW9uX2RhdGEgKmRhdGEg PSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiArCj4gKwlpZiAodHlwZSAhPSBod21vbl9pbikKPiAr CQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4gKwo+ICsJaWYgKGF0dHIgIT0gaHdtb25faW5fbGNyaXRf YWxhcm0pCj4gKwkJcmV0dXJuIC1FT1BOT1RTVVBQOwo+ICsKPiArCWlmIChjaGFubmVsKQo+ICsJ CXJldHVybiAtRU9QTk9UU1VQUDsKPiArCj4gKwkqdmFsID0gISEoZGF0YS0+bGFzdF90aHJvdHRs ZWQgJiBVTkRFUlZPTFRBR0VfU1RJQ0tZX0JJVCk7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAr c3RhdGljIHVtb2RlX3QgcnBpX2lzX3Zpc2libGUoY29uc3Qgdm9pZCAqX2RhdGEsIGVudW0gaHdt b25fc2Vuc29yX3R5cGVzIHR5cGUsCj4gKwkJCSAgICAgIHUzMiBhdHRyLCBpbnQgY2hhbm5lbCkK PiArewo+ICsJaWYgKHR5cGUgIT0gaHdtb25faW4pCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJaWYg KGF0dHIgIT0gaHdtb25faW5fbGNyaXRfYWxhcm0pCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJaWYg KGNoYW5uZWwpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJcmV0dXJuIDA0NDQ7Cj4gK30KPiArCj4g K3N0YXRpYyBjb25zdCB1MzIgcnBpX2luX2NvbmZpZ1tdID0gewo+ICsJSFdNT05fSV9MQ1JJVF9B TEFSTSwKPiArCTAKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHdtb25fY2hhbm5l bF9pbmZvIHJwaV9pbiA9IHsKPiArCS50eXBlID0gaHdtb25faW4sCj4gKwkuY29uZmlnID0gcnBp X2luX2NvbmZpZywKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHdtb25fY2hhbm5l bF9pbmZvICpycGlfaW5mb1tdID0gewo+ICsJJnJwaV9pbiwKPiArCU5VTEwKPiArfTsKPiArCj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHdtb25fb3BzIHJwaV9od21vbl9vcHMgPSB7Cj4gKwkuaXNf dmlzaWJsZSA9IHJwaV9pc192aXNpYmxlLAo+ICsJLnJlYWQgPSBycGlfcmVhZCwKPiArfTsKPiAr Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHdtb25fY2hpcF9pbmZvIHJwaV9jaGlwX2luZm8gPSB7 Cj4gKwkub3BzID0gJnJwaV9od21vbl9vcHMsCj4gKwkuaW5mbyA9IHJwaV9pbmZvLAo+ICt9Owo+ ICsKPiArc3RhdGljIGludCBycGlfaHdtb25fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKPiArewo+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiArCXN0cnVj dCBkZXZpY2Vfbm9kZSAqZndfbm9kZTsKPiArCXN0cnVjdCBycGlfaHdtb25fZGF0YSAqZGF0YTsK PiArCWludCByZXQ7Cj4gKwo+ICsJZGF0YSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZGF0 YSksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFkYXRhKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsK PiArCWZ3X25vZGUgPSBvZl9nZXRfcGFyZW50KGRldi0+b2Zfbm9kZSk7Cj4gKwlpZiAoIWZ3X25v ZGUpIHsKPiArCQlkZXZfZXJyKGRldiwgIk1pc3NpbmcgZmlybXdhcmUgbm9kZVxuIik7Cj4gKwkJ cmV0dXJuIC1FTk9FTlQ7Cj4gKwl9Cj4gKwo+ICsJZGF0YS0+ZncgPSBycGlfZmlybXdhcmVfZ2V0 KGZ3X25vZGUpOwo+ICsJb2Zfbm9kZV9wdXQoZndfbm9kZSk7Cj4gKwlpZiAoIWRhdGEtPmZ3KQo+ ICsJCXJldHVybiAtRVBST0JFX0RFRkVSOwo+ICsKPiArCXJldCA9IHJwaV9maXJtd2FyZV9wcm9w ZXJ0eShkYXRhLT5mdywgUlBJX0ZJUk1XQVJFX0dFVF9USFJPVFRMRUQsCj4gKwkJCQkgICAgJmRh dGEtPmxhc3RfdGhyb3R0bGVkLAo+ICsJCQkJICAgIHNpemVvZihkYXRhLT5sYXN0X3Rocm90dGxl ZCkpOwo+ICsJaWYgKHJldCkgewo+ICsJCWRldl9pbmZvKGRldiwgIkZpcm13YXJlIGRvZXNuJ3Qg c3VwcG9ydCBHRVRfVEhST1RUTEVEXG4iKTsKPiArCQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4gKwl9 Cj4gKwo+ICsJZGF0YS0+aHdtb25fZGV2ID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0 aF9pbmZvKGRldiwgInJwaV92b2x0IiwKPiArCQkJCQkJCSAgICAgICBkYXRhLAo+ICsJCQkJCQkJ ICAgICAgICZycGlfY2hpcF9pbmZvLAo+ICsJCQkJCQkJICAgICAgIE5VTEwpOwo+ICsKPiArCUlO SVRfREVMQVlFRF9XT1JLKCZkYXRhLT5nZXRfdmFsdWVzX3BvbGxfd29yaywgZ2V0X3ZhbHVlc19w b2xsKTsKPiArCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGRhdGEpOwo+ICsKPiArCWlmICgh UFRSX0VSUl9PUl9aRVJPKGRhdGEtPmh3bW9uX2RldikpCj4gKwkJc2NoZWR1bGVfZGVsYXllZF93 b3JrKCZkYXRhLT5nZXRfdmFsdWVzX3BvbGxfd29yaywgMiAqIEhaKTsKPiArCj4gKwlyZXR1cm4g UFRSX0VSUl9PUl9aRVJPKGRhdGEtPmh3bW9uX2Rldik7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQg cnBpX2h3bW9uX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICt7Cj4gKwlz dHJ1Y3QgcnBpX2h3bW9uX2RhdGEgKmRhdGEgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsK PiArCj4gKwljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmRhdGEtPmdldF92YWx1ZXNfcG9sbF93 b3JrKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBv Zl9kZXZpY2VfaWQgcnBpX2h3bW9uX29mX21hdGNoW10gPSB7Cj4gKwl7IC5jb21wYXRpYmxlID0g InJhc3BiZXJyeXBpLGJjbTI4MzUtaHdtb24iLCB9LAo+ICsJeyAvKiBzZW50aW5lbCAqL30sCj4g K307Cj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHJwaV9od21vbl9vZl9tYXRjaCk7Cj4gKwo+ ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBycGlfaHdtb25fZHJpdmVyID0gewo+ICsJ LnByb2JlID0gcnBpX2h3bW9uX3Byb2JlLAo+ICsJLnJlbW92ZSA9IHJwaV9od21vbl9yZW1vdmUs Cj4gKwkuZHJpdmVyID0gewo+ICsJCS5uYW1lID0gInJhc3BiZXJyeXBpLWh3bW9uIiwKPiArCQku b2ZfbWF0Y2hfdGFibGUgPSBycGlfaHdtb25fb2ZfbWF0Y2gsCj4gKwl9LAo+ICt9Owo+ICttb2R1 bGVfcGxhdGZvcm1fZHJpdmVyKHJwaV9od21vbl9kcml2ZXIpOwo+ICsKPiArTU9EVUxFX0FVVEhP UigiU3RlZmFuIFdhaHJlbiA8c3RlZmFuLndhaHJlbkBpMnNlLmNvbT4iKTsKPiArTU9EVUxFX0RF U0NSSVBUSU9OKCJSYXNwYmVycnkgUGkgdm9sdGFnZSBzZW5zb3IgZHJpdmVyIik7Cj4gK01PRFVM RV9MSUNFTlNFKCJHUEwgdjIiKTsKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK