From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47003) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dxqlp-0000h7-Q0 for qemu-devel@nongnu.org; Fri, 29 Sep 2017 04:35:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dxqlm-0003o2-K1 for qemu-devel@nongnu.org; Fri, 29 Sep 2017 04:35:41 -0400 Received: from mga05.intel.com ([192.55.52.43]:23516) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dxqlm-0003mp-7h for qemu-devel@nongnu.org; Fri, 29 Sep 2017 04:35:38 -0400 From: "Valluri, Amarnath" Date: Fri, 29 Sep 2017 08:35:32 +0000 Message-ID: <1506674157.3700.3.camel@intel.com> References: <1506590409-28857-1-git-send-email-amarnath.valluri@intel.com> <1506590409-28857-9-git-send-email-amarnath.valluri@intel.com> In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <2AFB9F778AF460428027C2B6C783C6BB@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH v9 8/8] tpm: Added support for TPM emulator List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "marcandre.lureau@gmail.com" Cc: "stefanb@linux.vnet.ibm.com" , "dgilbert@redhat.com" , "qemu-devel@nongnu.org" , "armbru@redhat.com" , "eblake@redhat.com" , "pbonzini@redhat.com" List-ID: T24gVGh1LCAyMDE3LTA5LTI4IGF0IDEzOjUzICswMjAwLCBNYXJjLUFuZHLDqSBMdXJlYXUgd3Jv dGU6DQo+IEhpDQo+IA0KPiBPbiBUaHUsIFNlcCAyOCwgMjAxNyBhdCAxMToyMCBBTSwgQW1hcm5h dGggVmFsbHVyaQ0KPiA8YW1hcm5hdGgudmFsbHVyaUBpbnRlbC5jb20+IHdyb3RlOg0KPiA+IA0K PiA+IFRoaXMgY2hhbmdlIGludHJvZHVjZXMgYSBuZXcgVFBNIGJhY2tlbmQgZHJpdmVyIHRoYXQg Y2FuDQo+ID4gY29tbXVuaWNhdGUgd2l0aA0KPiA+IHN3dHBtKHNvZnR3YXJlIFRQTSBlbXVsYXRv cikgdXNpbmcgdW5peCBkb21haW4gc29ja2V0IGludGVyZmFjZS4NCj4gPiBRRU1VIHRhbGtzIHRv DQo+ID4gVFBNIGVtdWxhdG9yIHVzaW5nIFFFTVUncyBzb2NrZXQtYmFzZWQgY2hhcmRldiBiYWNr ZW5kIGRldmljZS4NCj4gPiANCj4gPiBTd3RwbSB1c2VzIHR3byBVbml4IHNvY2tldHMgZm9yIGNv bW11bmljYXRpb25zLCBvbmUgZm9yIHBsYWluIFRQTQ0KPiA+IGNvbW1hbmRzIGFuZA0KPiA+IHJl c3BvbnNlcywgYW5kIG9uZSBmb3Igb3V0LW9mLWJhbmQgY29udHJvbCBtZXNzYWdlcy4gUUVNVSBw YXNzZXMNCj4gPiBkYXRhIHNvY2tldCB0bw0KPiA+IGJlIHVzZWQgb3ZlciB0aGUgY29udHJvbCBj aGFubmVsLg0KPiA+IA0KPiA+IFRoZSBzd3RwbSBhbmQgYXNzb2NpYXRlZCB0b29scyBjYW4gYmUg Zm91bmQgaGVyZToNCj4gPiDCoMKgwqDCoGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVmYW5iZXJnZXIv c3d0cG0NCj4gPiANCj4gPiBUaGUgc3d0cG0ncyBjb250cm9sIGNoYW5uZWwgcHJvdG9jb2wgc3Bl Y2lmaWNhdGlvbiBjYW4gYmUgZm91bmQNCj4gPiBoZXJlOg0KPiA+IMKgwqDCoMKgaHR0cHM6Ly9n aXRodWIuY29tL3N0ZWZhbmJlcmdlci9zd3RwbS93aWtpL0NvbnRyb2wtQ2hhbm5lbC1TcGVjDQo+ ID4gaWZpY2F0aW9uDQo+ID4gDQo+ID4gVXNhZ2U6DQo+ID4gwqDCoMKgwqAjIHNldHVwIFRQTSBz dGF0ZSBkaXJlY3RvcnkNCj4gPiDCoMKgwqDCoG1rZGlyIC90bXAvbXl0cG0NCj4gPiDCoMKgwqDC oGNob3duIC1SIHRzczpyb290IC90bXAvbXl0cG0NCj4gPiDCoMKgwqDCoC91c3IvYmluL3N3dHBt X3NldHVwIC0tdHBtLXN0YXRlIC90bXAvbXl0cG0gLS1jcmVhdGVlaw0KPiA+IA0KPiA+IMKgwqDC oMKgIyBBc2sgcWVtdSB0byB1c2UgVFBNIGVtdWxhdG9yIHdpdGggZ2l2ZW4gdHBtIHN0YXRlIGRp cmVjdG9yeQ0KPiA+IMKgwqDCoMKgcWVtdS1zeXN0ZW0teDg2XzY0IFwNCj4gPiDCoMKgwqDCoMKg wqDCoMKgWy4uLl0gXA0KPiA+IMKgwqDCoMKgwqDCoMKgwqAtY2hhcmRldiBzb2NrZXQsaWQ9Y2hy dHBtLHBhdGg9L3RtcC9zd3RwbS1zb2NrIFwNCj4gPiDCoMKgwqDCoMKgwqDCoMKgLXRwbWRldiBl bXVsYXRvcixpZD10cG0wLGNoYXJkZXY9Y2hydHBtIFwNCj4gPiDCoMKgwqDCoMKgwqDCoMKgLWRl dmljZSB0cG0tdGlzLHRwbWRldj10cG0wIFwNCj4gPiDCoMKgwqDCoMKgwqDCoMKgWy4uLl0NCj4g PiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBBbWFybmF0aCBWYWxsdXJpIDxhbWFybmF0aC52YWxsdXJp QGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiDCoGNvbmZpZ3VyZcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgfMKgwqAxMyArLQ0KPiA+IMKgaG1wLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgfMKgwqDCoDUgKw0KPiA+IMKgaHcvdHBtL01ha2VmaWxlLm9ianPCoMKgfMKgwqDCoDEg Kw0KPiA+IMKgaHcvdHBtL3RwbV9lbXVsYXRvci5jIHwgNTk5DQo+ID4gKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiDCoGh3L3RwbS90cG1faW9j dGwuaMKgwqDCoMKgfCAyNDYgKysrKysrKysrKysrKysrKysrKysrDQo+ID4gwqBxYXBpL3RwbS5q c29uwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAyMSArLQ0KPiA+IMKgcWVtdS1vcHRpb25zLmh4wqDC oMKgwqDCoMKgwqB8wqDCoDIyICstDQo+ID4gwqB2bC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgfMKgwqDCoDEgKw0KPiA+IMKgOCBmaWxlcyBjaGFuZ2VkLCA5MDEgaW5zZXJ0 aW9ucygrKSwgNyBkZWxldGlvbnMoLSkNCj4gPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBody90cG0v dHBtX2VtdWxhdG9yLmMNCj4gPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBody90cG0vdHBtX2lvY3Rs LmgNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlDQo+ID4gaW5k ZXggY2IwZjdlZC4uYTFiOTU2ZSAxMDA3NTUNCj4gPiAtLS0gYS9jb25maWd1cmUNCj4gPiArKysg Yi9jb25maWd1cmUNCj4gPiBAQCAtMzQ2Nyw2ICszNDY3LDEyIEBAIGVsc2UNCj4gPiDCoMKgwqB0 cG1fcGFzc3Rocm91Z2g9bm8NCj4gPiDCoGZpDQo+ID4gDQo+ID4gKyMgVFBNIGVtdWxhdG9yIGlz IGZvciBhbGwgcG9zaXggc3lzdGVtcw0KPiA+ICtpZiB0ZXN0ICIkbWluZ3czMiIgIT0gInllcyI7 IHRoZW4NCj4gPiArwqDCoHRwbV9lbXVsYXRvcj0kdHBtDQo+ID4gK2Vsc2UNCj4gPiArwqDCoHRw bV9lbXVsYXRvcj1ubw0KPiA+ICtmaQ0KPiA+IMKgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjDQo+ID4gwqAjIGF0dHIgcHJvYmUNCj4gPiANCj4gPiBAQCAtNTM1OSw2 ICs1MzY1LDcgQEAgZWNobyAiZ2NvdiBlbmFibGVkwqDCoMKgwqDCoMKgJGdjb3YiDQo+ID4gwqBl Y2hvICJUUE0gc3VwcG9ydMKgwqDCoMKgwqDCoMKgJHRwbSINCj4gPiDCoGVjaG8gImxpYnNzaDIg c3VwcG9ydMKgwqDCoCRsaWJzc2gyIg0KPiA+IMKgZWNobyAiVFBNIHBhc3N0aHJvdWdowqDCoMKg JHRwbV9wYXNzdGhyb3VnaCINCj4gPiArZWNobyAiVFBNIGVtdWxhdG9ywqDCoMKgwqDCoMKgJHRw bV9lbXVsYXRvciINCj4gPiDCoGVjaG8gIlFPTSBkZWJ1Z2dpbmfCoMKgwqDCoMKgJHFvbV9jYXN0 X2RlYnVnIg0KPiA+IMKgZWNobyAiTGl2ZSBibG9jayBtaWdyYXRpb24gJGxpdmVfYmxvY2tfbWln cmF0aW9uIg0KPiA+IMKgZWNobyAibHpvIHN1cHBvcnTCoMKgwqDCoMKgwqDCoCRsem8iDQo+ID4g QEAgLTU5MzcsMTIgKzU5NDQsMTYgQEAgaWYgdGVzdCAiJGxpdmVfYmxvY2tfbWlncmF0aW9uIiA9 ICJ5ZXMiIDsNCj4gPiB0aGVuDQo+ID4gwqDCoMKgZWNobyAiQ09ORklHX0xJVkVfQkxPQ0tfTUlH UkFUSU9OPXkiID4+ICRjb25maWdfaG9zdF9tYWsNCj4gPiDCoGZpDQo+ID4gDQo+ID4gLSMgVFBN IHBhc3N0aHJvdWdoIHN1cHBvcnQ/DQo+ID4gwqBpZiB0ZXN0ICIkdHBtIiA9ICJ5ZXMiOyB0aGVu DQo+ID4gwqDCoMKgZWNobyAnQ09ORklHX1RQTT0kKENPTkZJR19TT0ZUTU1VKScgPj4gJGNvbmZp Z19ob3N0X21haw0KPiA+ICvCoMKgIyBUUE0gcGFzc3Rocm91Z2ggc3VwcG9ydD8NCj4gPiDCoMKg wqBpZiB0ZXN0ICIkdHBtX3Bhc3N0aHJvdWdoIiA9ICJ5ZXMiOyB0aGVuDQo+ID4gwqDCoMKgwqDC oGVjaG8gIkNPTkZJR19UUE1fUEFTU1RIUk9VR0g9eSIgPj4gJGNvbmZpZ19ob3N0X21haw0KPiA+ IMKgwqDCoGZpDQo+ID4gK8KgwqAjIFRQTSBlbXVsYXRvciBzdXBwb3J0Pw0KPiA+ICvCoMKgaWYg dGVzdCAiJHRwbV9lbXVsYXRvciIgPSAieWVzIjsgdGhlbg0KPiA+ICvCoMKgwqDCoGVjaG8gIkNP TkZJR19UUE1fRU1VTEFUT1I9eSIgPj4gJGNvbmZpZ19ob3N0X21haw0KPiA+ICvCoMKgZmkNCj4g PiDCoGZpDQo+ID4gDQo+ID4gwqBlY2hvICJUUkFDRV9CQUNLRU5EUz0kdHJhY2VfYmFja2VuZHMi ID4+ICRjb25maWdfaG9zdF9tYWsNCj4gPiBkaWZmIC0tZ2l0IGEvaG1wLmMgYi9obXAuYw0KPiA+ IGluZGV4IDBmYjJiYzcuLjljZDgxNzkgMTAwNjQ0DQo+ID4gLS0tIGEvaG1wLmMNCj4gPiArKysg Yi9obXAuYw0KPiA+IEBAIC05OTQsNiArOTk0LDcgQEAgdm9pZCBobXBfaW5mb190cG0oTW9uaXRv ciAqbW9uLCBjb25zdCBRRGljdA0KPiA+ICpxZGljdCkNCj4gPiDCoMKgwqDCoMKgRXJyb3IgKmVy ciA9IE5VTEw7DQo+ID4gwqDCoMKgwqDCoHVuc2lnbmVkIGludCBjID0gMDsNCj4gPiDCoMKgwqDC oMKgVFBNUGFzc3Rocm91Z2hPcHRpb25zICp0cG87DQo+ID4gK8KgwqDCoMKgVFBNRW11bGF0b3JP cHRpb25zICp0ZW87DQo+ID4gDQo+ID4gwqDCoMKgwqDCoGluZm9fbGlzdCA9IHFtcF9xdWVyeV90 cG0oJmVycik7DQo+ID4gwqDCoMKgwqDCoGlmIChlcnIpIHsNCj4gPiBAQCAtMTAyMyw2ICsxMDI0 LDEwIEBAIHZvaWQgaG1wX2luZm9fdHBtKE1vbml0b3IgKm1vbiwgY29uc3QgUURpY3QNCj4gPiAq cWRpY3QpDQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqB0cG8tPmhhc19jYW5jZWxfcGF0aCA/ICIsY2FuY2VsLXBhdGg9Ig0KPiA+IDog IiIsDQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB0cG8tPmhhc19jYW5jZWxfcGF0aCA/IHRwby0+Y2FuY2VsX3BhdGggDQo+ID4gOiAi Iik7DQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsNCj4gPiArwqDCoMKgwqDC oMKgwqDCoGNhc2UgVFBNX1RZUEVfT1BUSU9OU19LSU5EX0VNVUxBVE9SOg0KPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqB0ZW8gPSB0aS0+b3B0aW9ucy0+dS5lbXVsYXRvci5kYXRhOw0KPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBtb25pdG9yX3ByaW50Zihtb24sICIsY2hhcmRldj0l cyIsIHRlby0+Y2hhcmRldik7DQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOw0K PiA+IMKgwqDCoMKgwqDCoMKgwqDCoGNhc2UgVFBNX1RZUEVfT1BUSU9OU19LSU5EX19NQVg6DQo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsNCj4gPiDCoMKgwqDCoMKgwqDCoMKg wqB9DQo+ID4gZGlmZiAtLWdpdCBhL2h3L3RwbS9NYWtlZmlsZS5vYmpzIGIvaHcvdHBtL01ha2Vm aWxlLm9ianMNCj4gPiBpbmRleCA2NGNlY2MzLi40MWYwYjdhIDEwMDY0NA0KPiA+IC0tLSBhL2h3 L3RwbS9NYWtlZmlsZS5vYmpzDQo+ID4gKysrIGIvaHcvdHBtL01ha2VmaWxlLm9ianMNCj4gPiBA QCAtMSwyICsxLDMgQEANCj4gPiDCoGNvbW1vbi1vYmotJChDT05GSUdfVFBNX1RJUykgKz0gdHBt X3Rpcy5vDQo+ID4gwqBjb21tb24tb2JqLSQoQ09ORklHX1RQTV9QQVNTVEhST1VHSCkgKz0gdHBt X3Bhc3N0aHJvdWdoLm8NCj4gPiB0cG1fdXRpbC5vDQo+ID4gK2NvbW1vbi1vYmotJChDT05GSUdf VFBNX0VNVUxBVE9SKSArPSB0cG1fZW11bGF0b3IubyB0cG1fdXRpbC5vDQo+ID4gZGlmZiAtLWdp dCBhL2h3L3RwbS90cG1fZW11bGF0b3IuYyBiL2h3L3RwbS90cG1fZW11bGF0b3IuYw0KPiA+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMC4uMDA2NWIwYQ0KPiA+IC0tLSAv ZGV2L251bGwNCj4gPiArKysgYi9ody90cG0vdHBtX2VtdWxhdG9yLmMNCj4gPiBAQCAtMCwwICsx LDU5OSBAQA0KPiA+ICsvKg0KPiA+ICsgKsKgwqBFbXVsYXRvciBUUE0gZHJpdmVyDQo+ID4gKyAq DQo+ID4gKyAqwqDCoENvcHlyaWdodCAoYykgMjAxNyBJbnRlbCBDb3Jwb3JhdGlvbg0KPiA+ICsg KsKgwqBBdXRob3I6IEFtYXJuYXRoIFZhbGx1cmkgPGFtYXJuYXRoLnZhbGx1cmlAaW50ZWwuY29t Pg0KPiA+ICsgKg0KPiA+ICsgKsKgwqBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDEzIElCTSBDb3Jw b3JhdGlvbg0KPiA+ICsgKsKgwqBBdXRob3JzOg0KPiA+ICsgKsKgwqDCoMKgU3RlZmFuIEJlcmdl ciA8c3RlZmFuYkB1cy5pYm0uY29tPg0KPiA+ICsgKg0KPiA+ICsgKsKgwqBDb3B5cmlnaHQgKEMp IDIwMTEgSUFJSywgR3JheiBVbml2ZXJzaXR5IG9mIFRlY2hub2xvZ3kNCj4gPiArICrCoMKgwqDC oEF1dGhvcjogQW5kcmVhcyBOaWVkZXJsDQo+ID4gKyAqDQo+ID4gKyAqIFRoaXMgbGlicmFyeSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3INCj4gPiArICog bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp Yw0KPiA+ICsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXINCj4gPiArICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlcg0KPiA+IHZlcnNpb24uDQo+ID4gKyAqDQo+ID4gKyAqIFRo aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLA0KPiA+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZg0KPiA+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuwqDCoFNlZSB0aGUNCj4gPiBHTlUNCj4gPiArICogTGVz c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCj4gPiArICoNCj4g PiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsDQo+ID4gUHVibGljDQo+ID4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh cnk7IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcg0KPiA+IGcvbGljZW5zZXMvPg0KPiA+ ICsgKg0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNpbmNsdWRlICJxZW11L29zZGVwLmgiDQo+ID4g KyNpbmNsdWRlICJxZW11L2Vycm9yLXJlcG9ydC5oIg0KPiA+ICsjaW5jbHVkZSAicWVtdS9zb2Nr ZXRzLmgiDQo+ID4gKyNpbmNsdWRlICJpby9jaGFubmVsLXNvY2tldC5oIg0KPiA+ICsjaW5jbHVk ZSAic3lzZW11L3RwbV9iYWNrZW5kLmgiDQo+ID4gKyNpbmNsdWRlICJ0cG1faW50LmgiDQo+ID4g KyNpbmNsdWRlICJody9ody5oIg0KPiA+ICsjaW5jbHVkZSAiaHcvaTM4Ni9wYy5oIg0KPiA+ICsj aW5jbHVkZSAidHBtX3V0aWwuaCINCj4gPiArI2luY2x1ZGUgInRwbV9pb2N0bC5oIg0KPiA+ICsj aW5jbHVkZSAibWlncmF0aW9uL2Jsb2NrZXIuaCINCj4gPiArI2luY2x1ZGUgInFhcGkvZXJyb3Iu aCINCj4gPiArI2luY2x1ZGUgInFhcGkvY2xvbmUtdmlzaXRvci5oIg0KPiA+ICsjaW5jbHVkZSAi Y2hhcmRldi9jaGFyLWZlLmgiDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8ZmNudGwuaD4NCj4gPiAr I2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KPiA+ICsjaW5jbHVkZSA8c3lzL3N0YXQuaD4NCj4gPiAr I2luY2x1ZGUgPHN0ZGlvLmg+DQo+ID4gKw0KPiA+ICsjZGVmaW5lIERFQlVHX1RQTSAwDQo+ID4g Kw0KPiA+ICsjZGVmaW5lIERQUklOVEYoZm10LCAuLi4pIGRvIHsgXA0KPiA+ICvCoMKgwqDCoGlm IChERUJVR19UUE0pIHsgXA0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgZnByaW50ZihzdGRlcnIsICJ0 cG0tZW11bGF0b3I6ImZtdCJcbiIsICMjIF9fVkFfQVJHU19fKTsgXA0KPiA+ICvCoMKgwqDCoH0g XA0KPiA+ICt9IHdoaWxlICgwKQ0KPiA+ICsNCj4gPiArI2RlZmluZSBUWVBFX1RQTV9FTVVMQVRP UiAidHBtLWVtdWxhdG9yIg0KPiA+ICsjZGVmaW5lIFRQTV9FTVVMQVRPUihvYmopIFwNCj4gPiAr wqDCoMKgwqBPQkpFQ1RfQ0hFQ0soVFBNRW11bGF0b3IsIChvYmopLCBUWVBFX1RQTV9FTVVMQVRP UikNCj4gPiArDQo+ID4gKyNkZWZpbmUgVFBNX0VNVUxBVE9SX0lNUExFTUVOVFNfQUxMX0NBUFMo UywgY2FwKSAoKChTKS0+Y2FwcyAmDQo+ID4gKGNhcCkpID09IChjYXApKQ0KPiA+ICsNCj4gPiAr c3RhdGljIGNvbnN0IFRQTURyaXZlck9wcyB0cG1fZW11bGF0b3JfZHJpdmVyOw0KPiA+ICsNCj4g PiArLyogZGF0YSBzdHJ1Y3R1cmVzICovDQo+ID4gK3R5cGVkZWYgc3RydWN0IFRQTUVtdWxhdG9y IHsNCj4gPiArwqDCoMKgwqBUUE1CYWNrZW5kIHBhcmVudDsNCj4gPiArDQo+ID4gK8KgwqDCoMKg VFBNRW11bGF0b3JPcHRpb25zICpvcHRpb25zOw0KPiA+ICvCoMKgwqDCoENoYXJCYWNrZW5kIGN0 cmxfY2hyOw0KPiA+ICvCoMKgwqDCoFFJT0NoYW5uZWwgKmRhdGFfaW9jOw0KPiA+ICvCoMKgwqDC oFRQTVZlcnNpb24gdHBtX3ZlcnNpb247DQo+ID4gK8KgwqDCoMKgcHRtX2NhcCBjYXBzOyAvKiBj YXBhYmlsaXRpZXMgb2YgdGhlIFRQTSAqLw0KPiA+ICvCoMKgwqDCoHVpbnQ4X3QgY3VyX2xvY3R5 X251bWJlcjsgLyogbGFzdCBzZXQgbG9jYWxpdHkgKi8NCj4gPiArwqDCoMKgwqBRZW11TXV0ZXgg c3RhdGVfbG9jazsNCj4gVGhlIG11dGV4IGlzbnQgZG9pbmcgbXVjaCB3aXRoIHRoaXMgY29kZSwg YXMgdGhlcmUgc2hvdWxkIGJlIG5vDQo+IGNvbmN1cnJlbnQgaGFuZGxlX3JlcXVlc3QoKSAodGhy ZWFkLXBvb2wgaGFzIG1heC10aHJlYWQ9MSkuDQpZZXMgSSBhZ3JlZSwgSSBjYW4gcmVtb3ZlIHRo aXMgbXV0ZXggaW4gdGhpcyBjYXNlLg0KPiANCj4gKEkgd29uZGVyIGlmIHdlIGNvdWxkIHJlcGxh Y2UgdGhlIHRocmVhZC1wb29sIHdpdGggYSBjb3JvdXRpbmUvYmgNCj4gZG9pbmcgSU8gaW5zdGVh ZCB0byBhdm9pZCBwb3RlbnRpYWwgdGhyZWFkIHJhY2VzLi4uIG9yIGp1c3QgZG8gSU8gaW4NCj4g dGhlIGN1cnJlbnQgY29udGV4dCwgbGlrZSB0aGUgY3RybGNtZCkNClllcyB3ZSBzaG91bGQuIENh biB3ZSBkbyBpdCBhcyBhIHNlcGFyYXRlIFBSPy4gQXMgaXQgdG91Y2hlcyBib3RoIHRoZQ0KYmFj a2VuZHMuDQoNCi1BbWFybmF0aA==