From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mirela Simonovic Subject: Re: [PATCH v3 10/10] xen/arm: Enable errata for secondary CPU on hotplug after the boot Date: Thu, 10 May 2018 15:24:01 +0200 Message-ID: References: <20180427171258.28852-1-mirela.simonovic@aggios.com> <20180427171258.28852-11-mirela.simonovic@aggios.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Julien Grall , Dario Faggioli Cc: "Edgar E. Iglesias" , Stefano Stabellini , Davorin Mista , Xen Devel List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBNYXkgMTAsIDIwMTggYXQgMTo1NyBQTSwgTWlyZWxhIFNpbW9ub3ZpYwo8bWlyZWxh LnNpbW9ub3ZpY0BhZ2dpb3MuY29tPiB3cm90ZToKPiBIaSwKPgo+ICtEYXJpbwo+Cj4gT24gV2Vk LCBNYXkgOSwgMjAxOCBhdCA2OjMyIFBNLCBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0u Y29tPiB3cm90ZToKPj4KPj4KPj4gT24gMDkvMDUvMTggMTY6NDgsIE1pcmVsYSBTaW1vbm92aWMg d3JvdGU6Cj4+Pgo+Pj4gSGkgSnVsaWVuLAo+Pgo+Pgo+PiBIaSBNaXJlbGEsCj4+Cj4+Cj4+PiBP biBNb24sIEFwciAzMCwgMjAxOCBhdCA2OjA5IFBNLCBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFs bEBhcm0uY29tPgo+Pj4gd3JvdGU6Cj4+Pj4KPj4+PiBIaSBNaXJlbGEsCj4+Pj4KPj4+Pgo+Pj4+ IE9uIDI3LzA0LzE4IDE4OjEyLCBNaXJlbGEgU2ltb25vdmljIHdyb3RlOgo+Pj4+Pgo+Pj4+Pgo+ Pj4+PiBPbiBib290LCBlbmFibGluZyBlcnJhdGEgd29ya2Fyb3VuZHMgd2lsbCBiZSB0cmlnZ2Vy ZWQgYnkgdGhlIGJvb3QgQ1BVCj4+Pj4+IGZyb20gc3RhcnRfeGVuKCkuIE9uIENQVSBob3RwbHVn IChub24tYm9vdCBzY2VuYXJpbykgdGhpcyB3b3VsZCBub3QgYmUKPj4+Pj4gZG9uZS4gVGhpcyBw YXRjaCBhZGRzIHRoZSBjb2RlIHJlcXVpcmVkIHRvIGVuYWJsZSBlcnJhdGEgd29ya2Fyb3VuZHMK Pj4+Pj4gZm9yIGEgQ1BVIGJlaW5nIGhvdHBsdWdnZWQgYWZ0ZXIgdGhlIHN5c3RlbSBib290cy4g VGhpcyBpcyB0cmlnZ2VyZWQKPj4+Pj4gdXNpbmcgYSBub3RpZmllci4gSWYgdGhlIENQVSBmYWls cyB0byBlbmFibGUgdGhlIGVycmF0YSBYZW4gd2lsbCBwYW5pYy4KPj4+Pj4gVGhpcyBpcyBkb25l IGJlY2F1c2UgaXQgaXMgYXNzdW1lZCB0aGF0IHRoZSBDUFUgd2hpY2ggaXMgaG90cGx1Z2dlZAo+ Pj4+PiBhZnRlciB0aGUgc3lzdGVtL1hlbiBib290cywgd2FzIGluaXRpYWxseSBob3RwbHVnZ2Vk IGR1cmluZyB0aGUKPj4+Pj4gc3lzdGVtL1hlbiBib290LiBUaGVyZWZvcmUsIGVuYWJsaW5nIGVy cmF0YSB3b3JrYXJvdW5kcyBzaG91bGQgbmV2ZXIKPj4+Pj4gZmFpbC4KPj4+Pj4KPj4+Pj4gU2ln bmVkLW9mZi1ieTogTWlyZWxhIFNpbW9ub3ZpYyA8bWlyZWxhLnNpbW9ub3ZpY0BhZ2dpb3MuY29t Pgo+Pj4+Pgo+Pj4+PiAtLS0KPj4+Pj4gQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxp bmlAa2VybmVsLm9yZz4KPj4+Pj4gQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5j b20+Cj4+Pj4+IC0tLQo+Pj4+PiAgICB4ZW4vYXJjaC9hcm0vY3B1ZXJyYXRhLmMgICAgICAgICB8 IDM1Cj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+Pj4+ICAgIHhl bi9hcmNoL2FybS9jcHVmZWF0dXJlLmMgICAgICAgIHwgMjMgKysrKysrKysrKysrKysrKysrKysr KysKPj4+Pj4gICAgeGVuL2luY2x1ZGUvYXNtLWFybS9jcHVmZWF0dXJlLmggfCAgMSArCj4+Pj4+ ICAgIDMgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKQo+Pj4+Pgo+Pj4+PiBkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL2NwdWVycmF0YS5jIGIveGVuL2FyY2gvYXJtL2NwdWVycmF0YS5j Cj4+Pj4+IGluZGV4IDFiYWEyMDY1NGIuLjQwNDBmNzgxZWMgMTAwNjQ0Cj4+Pj4+IC0tLSBhL3hl bi9hcmNoL2FybS9jcHVlcnJhdGEuYwo+Pj4+PiArKysgYi94ZW4vYXJjaC9hcm0vY3B1ZXJyYXRh LmMKPj4+Pj4gQEAgLTUsNiArNSw4IEBACj4+Pj4+ICAgICNpbmNsdWRlIDx4ZW4vc3BpbmxvY2su aD4KPj4+Pj4gICAgI2luY2x1ZGUgPHhlbi92bWFwLmg+Cj4+Pj4+ICAgICNpbmNsdWRlIDx4ZW4v d2FybmluZy5oPgo+Pj4+PiArI2luY2x1ZGUgPHhlbi9ub3RpZmllci5oPgo+Pj4+PiArI2luY2x1 ZGUgPHhlbi9jcHUuaD4KPj4+Pj4gICAgI2luY2x1ZGUgPGFzbS9jcHVmZWF0dXJlLmg+Cj4+Pj4+ ICAgICNpbmNsdWRlIDxhc20vY3B1ZXJyYXRhLmg+Cj4+Pj4+ICAgICNpbmNsdWRlIDxhc20vcHNj aS5oPgo+Pj4+PiBAQCAtMzQ5LDYgKzM1MSwzOSBAQCB2b2lkIF9faW5pdCBlbmFibGVfZXJyYXRh X3dvcmthcm91bmRzKHZvaWQpCj4+Pj4+ICAgICAgICBlbmFibGVfY3B1X2NhcGFiaWxpdGllcyhh cm1fZXJyYXRhKTsKPj4+Pj4gICAgfQo+Pj4+PiAgICArc3RhdGljIGludCBjcHVfZXJyYXRhX2Nh bGxiYWNrKAo+Pj4+PiArICAgIHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmZiLCB1bnNpZ25lZCBs b25nIGFjdGlvbiwgdm9pZCAqaGNwdSkKPj4+Pj4gK3sKPj4+Pj4gKyAgICBzd2l0Y2ggKCBhY3Rp b24gKQo+Pj4+PiArICAgIHsKPj4+Pj4gKyAgICBjYXNlIENQVV9TVEFSVElORzoKPj4+Pj4gKyAg ICAgICAgZW5hYmxlX25vbmJvb3RfY3B1X2NhcHMoYXJtX2VycmF0YSk7Cj4+Pj4+ICsgICAgICAg IGJyZWFrOwo+Pj4+PiArICAgIGRlZmF1bHQ6Cj4+Pj4+ICsgICAgICAgIGJyZWFrOwo+Pj4+PiAr ICAgIH0KPj4+Pj4gKwo+Pj4+PiArICAgIHJldHVybiBOT1RJRllfRE9ORTsKPj4+Pj4gK30KPj4+ Pj4gKwo+Pj4+PiArc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBjcHVfZXJyYXRhX25mYiA9 IHsKPj4+Pj4gKyAgICAubm90aWZpZXJfY2FsbCA9IGNwdV9lcnJhdGFfY2FsbGJhY2ssCj4+Pj4+ ICt9Owo+Pj4+PiArCj4+Pj4+ICtzdGF0aWMgaW50IF9faW5pdCBjcHVfZXJyYXRhX25vdGlmaWVy X2luaXQodm9pZCkKPj4+Pj4gK3sKPj4+Pj4gKyAgICByZWdpc3Rlcl9jcHVfbm90aWZpZXIoJmNw dV9lcnJhdGFfbmZiKTsKPj4+Pj4gKyAgICByZXR1cm4gMDsKPj4+Pj4gK30KPj4+Pj4gKy8qCj4+ Pj4+ICsgKiBJbml0aWFsaXphdGlvbiBoYXMgdG8gYmUgZG9uZSBhdCBpbml0IHJhdGhlciB0aGFu IHByZXNtcF9pbml0IHBoYXNlCj4+Pj4+IGJlY2F1c2UKPj4+Pj4gKyAqIHRoZSBjYWxsYmFjayBz aG91bGQgZXhlY3V0ZSBvbmx5IGFmdGVyIHRoZSBzZWNvbmRhcnkgQ1BVcyBhcmUKPj4+Pj4gaW5p dGlhbGx5Cj4+Pj4+ICsgKiBib290ZWQgKGluIGhvdHBsdWcgc2NlbmFyaW9zIHdoZW4gdGhlIHN5 c3RlbSBzdGF0ZSBpcyBub3QgYm9vdCkuIE9uCj4+Pj4+IGJvb3QsCj4+Pj4+ICsgKiB0aGUgZW5h Ymxpbmcgb2YgZXJyYXRhIHdvcmthcm91bmRzIHdpbGwgYmUgdHJpZ2dlcmVkIGJ5IHRoZSBib290 IENQVQo+Pj4+PiBmcm9tCj4+Pj4+ICsgKiBzdGFydF94ZW4oKS4KPj4+Pj4gKyAqLwo+Pj4+PiAr X19pbml0Y2FsbChjcHVfZXJyYXRhX25vdGlmaWVyX2luaXQpOwo+Pj4+PiArCj4+Pj4+ICAgIC8q Cj4+Pj4+ICAgICAqIExvY2FsIHZhcmlhYmxlczoKPj4+Pj4gICAgICogbW9kZTogQwo+Pj4+PiBk aWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2NwdWZlYXR1cmUuYyBiL3hlbi9hcmNoL2FybS9jcHVm ZWF0dXJlLmMKPj4+Pj4gaW5kZXggNTI1YjQ1ZTIyZi4uZGQzMGYwZDI5YyAxMDA2NDQKPj4+Pj4g LS0tIGEveGVuL2FyY2gvYXJtL2NwdWZlYXR1cmUuYwo+Pj4+PiArKysgYi94ZW4vYXJjaC9hcm0v Y3B1ZmVhdHVyZS5jCj4+Pj4+IEBAIC02OCw2ICs2OCwyOSBAQCB2b2lkIF9faW5pdCBlbmFibGVf Y3B1X2NhcGFiaWxpdGllcyhjb25zdCBzdHJ1Y3QKPj4+Pj4gYXJtX2NwdV9jYXBhYmlsaXRpZXMg KmNhcHMpCj4+Pj4+ICAgICAgICB9Cj4+Pj4+ICAgIH0KPj4+Pj4gICAgKy8qIFJ1biB0aHJvdWdo IHRoZSBlbmFibGVkIGNhcGFiaWxpdGllcyBhbmQgZW5hYmxlKCkgdGhlbSBvbiB0aGUKPj4+Pj4g Y2FsbGluZyBDUFUgKi8KPj4+Pj4gK3ZvaWQgZW5hYmxlX25vbmJvb3RfY3B1X2NhcHMoY29uc3Qg c3RydWN0IGFybV9jcHVfY2FwYWJpbGl0aWVzICpjYXBzKQo+Pj4+PiArewo+Pj4+PiArICAgIEFT U0VSVChzeXN0ZW1fc3RhdGUgIT0gU1lTX1NUQVRFX2Jvb3QpOwo+Pj4+PiArCj4+Pj4+ICsgICAg Zm9yICggOyBjYXBzLT5tYXRjaGVzOyBjYXBzKysgKQo+Pj4+PiArICAgIHsKPj4+Pj4gKyAgICAg ICAgaWYgKCAhY3B1c19oYXZlX2NhcChjYXBzLT5jYXBhYmlsaXR5KSApCj4+Pj4+ICsgICAgICAg ICAgICBjb250aW51ZTsKPj4+Pj4gKwo+Pj4+PiArICAgICAgICBpZiAoIGNhcHMtPmVuYWJsZSAp Cj4+Pj4+ICsgICAgICAgIHsKPj4+Pj4gKyAgICAgICAgICAgIC8qCj4+Pj4+ICsgICAgICAgICAg ICAgKiBTaW5jZSB0aGUgQ1BVIGhhcyBlbmFibGVkIGVycmF0YSB3b3JrYXJvdW5kcyBvbiBib290 LCBpdAo+Pj4+PiBzaG91bGQKPj4+Pgo+Pj4+Cj4+Pj4KPj4+PiBUaGlzIGZ1bmN0aW9uIGlzIG5v dCByZWFsbHkgYWJvdXQgZXJyYXRhLCBpdCBpcyBhYm91dCBjYXBhYmlsaXRpZXMuCj4+Pj4gRXJy YXRhCj4+Pj4gaXMganVzdCBhIHN1Yi1jYXRlZ29yeSBvZiB0aGVtLgo+Pj4+Cj4+Pgo+Pj4gSSd2 ZSBmaXhlZCB0aGUgY29tbWVudCwgdGhhbmtzLgo+Pj4KPj4+Pj4gKyAgICAgICAgICAgICAqIG5l dmVyIGZhaWwgdG8gZW5hYmxlIHRoZW0gaGVyZS4KPj4+Pj4gKyAgICAgICAgICAgICAqLwo+Pj4+ PiArICAgICAgICAgICAgaWYgKCBjYXBzLT5lbmFibGUoKHZvaWQgKiljYXBzKSApCj4+Pj4+ICsg ICAgICAgICAgICAgICAgcGFuaWMoIkNQVSV1IGZhaWxlZCB0byBlbmFibGUgY2FwYWJpbGl0eSAl dVxuIiwKPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICBzbXBfcHJvY2Vzc29yX2lkKCksIGNh cHMtPmNhcGFiaWxpdHkpOwo+Pj4+Cj4+Pj4KPj4+Pgo+Pj4+IFdlIHNob3VsZCByZWFsbHkgYXZv aWQgdG8gdXNlIHBhbmljKC4uLikgaWYgdGhpcyBpcyBzb21ldGhpbmcgdGhlIHN5c3RlbQo+Pj4+ IGNhbgo+Pj4+IHN1cnZpdmUuIEluIHRoYXQgc3BlY2lmaWMgY2FzZSwgaXQgd291bGQgb25seSBh ZmZlY3QgdGhlIGN1cnJlbnQgQ1BVLiBTbwo+Pj4+IGl0Cj4+Pj4gd291bGQgYmUgYmV0dGVyIHRv IHJldHVybiBhbiBlcnJvciBhbmQgbGV0IHRoZSBjYWxsZXIgZGVjaWRlIHdoYXQgdG8gZG8uCj4+ Pj4KPj4+Cj4+PiBJIG5lZWQgdG8gZW1waGFzaXplIHR3byBwb2ludHM6Cj4+PiAxKSBJIGRvbid0 IHNlZSBob3cgaXMgdGhpcyBkaWZmZXJlbnQgY29tcGFyZWQgdG8gUFNDSSBDUFUgT0ZGIHdoZXJl IHdlCj4+PiBkbyBwYW5pYy4gRXNzZW50aWFsbHksIGluIGJvdGggY2FzZXMgdGhlIHN5c3RlbSB3 aWxsIG5vdCBiZSBhYmxlIHRvCj4+PiB1c2UgdGhhdCBDUFUgYW5kIHdlIGFscmVhZHkgYWdyZWVk IHRoYXQgaXMgYSBnb29kIHJlYXNvbiB0byBwYW5pYy4KPj4KPj4KPj4gWW91IGNhbid0IGNvbXBh cmUgUFNDSSBDUFUgb2ZmIGFuZCB0aGUgZW5hYmxlIGNhbGxiYWNrIGZhaWxpbmcuIFRoZSAqb25s eSoKPj4gcmVhc29uIFBTQ0kgQ1BVIG9mZiBjYW4gZmFpbCBpcyBiZWNhdXNlIHRoZSBUcnVzdGVk IE9TIGlzIHJlc2lkZW50IG9uIHRoYXQKPj4gQ1BVLiBJZiB0aGF0IGV2ZXIgaGFwcGVuIGl0IGlz IGEgcHJvZ3JhbW1pbmcgZXJyb3Igb24gWGVuLCBhbmQgaXQgbWFrZXMKPj4gc2Vuc2UgdG8gZmFp bCBiZWNhdXNlIHlvdSBkb24ndCB3YW50IHRoYXQgQ1BVIHRvIHNwaW4gaW4gWGVuLgo+Pgo+PiBF bmFibGluZyBhIGNhcGFiaWxpdHkgY2FuIGZhaWwgYmVjYXVzZSBvZiBhIGZhaWx1cmUgb2YgYWxs b2NhdGluZyBtZW1vcnkgb3IKPj4gbWFwcGluZyAoc2VlIHNwZWN0cmUgd29ya2Fyb3VuZCkuIEl0 IGlzIG5vdCBhIHByb2dyYW1taW5nIGVycm9yIGJ1dCBhbgo+PiBleHBlY3RlZCBiZWhhdmlvciBh bmQgaXQgaXMgbm90IGEgdmFsaWQgcmVhc29uIHRvIGFzc3VtZSB3ZSB3YW50IHRvIGtpbGwgdGhl Cj4+IHN5c3RlbS4KPj4KPj4+IEFzIG9wcG9zZSB0byBDUFVfT0ZGIHdoaWNoIHdhc24ndCBjYWxs ZWQgb24gYm9vdCBzbyB3ZSBpbmRlZWQgaGF2ZSBubwo+Pj4gaWRlYSB3aGV0aGVyIGl0IHdpbGwg cGFzcyBvbiBzdXNwZW5kLCBubyBtYXR0ZXIgaG93IHVubGlrZWx5IGl0IGNvdWxkCj4+PiBmYWls LCBpbiB0aGlzIHNjZW5hcmlvIHdlIGFyZSBzdXJlIHRoYXQgZW5hYmxpbmcgY2FwYWJpbGl0eSBz aG91bGQKPj4+IHBhc3MgYmVjYXVzZSBpdCBhbHJlYWR5IHBhc3NlZCBvbiBib290LiBTbyBpZiBp dCBkb2Vzbid0IHBhc3MsIHdoaWNoIEkKPj4+IGNvbnNpZGVyIHRvIGJlIGltcG9zc2libGUsIEkg YmVsaWV2ZSB3ZSBzaG91bGQgcGFuaWMuCj4+PiBPbiB0aGUgb3RoZXIgaGFuZCwgSSB1bmRlcnN0 YW5kIGhvdyB3b3VsZCB0aGlzIG1ha2UgYSBkaWZmZXJlbmNlIG9uCj4+PiBiaWcuTElUVExFIHdo ZXJlIHlvdSB0cnkgdG8gaG90cGx1ZyBhIENQVSB0aGF0IHdhcyBuZXZlciBib290ZWQuCj4+PiBI b3dldmVyLCB0aGF0IHNjZW5hcmlvIGlzIG91dCBvZiB0aGlzIHNjb3BlLgo+Pgo+PiBXaGlsZSBJ IGFncmVlIHRoYXQgYmlnLkxJVFRMRSBpcyBvdXQgb2Ygc2NvcGUgb2YgeW91ciBzZXJpZXMsIHdo YXQgSSBhc2sgaGFzCj4+IG5vdGhpbmcgdG8gZG8gd2l0aCBiaWcuTElUVExFLiBUaGVyZSBhcmUg dmFsaWQgcmVhc29uIGZvciB0aGUgZW5hYmxlCj4+IGNhbGxiYWNrIHRvIGZhaWwgd2hldGhlciBp dCBpcyB0aGUgY2FzZSB0b2RheSBvciBub3QuCj4+Cj4+Pgo+Pj4gMikgSSBzdGlsbCB3YW50ZWQg dG8gZ2l2ZSBhIGNoYW5jZSB0byB5b3VyIHByb3Bvc2FsIGFuZCBqdXN0IGNvbnZlcnQKPj4+IHBh bmljIGludG8gc3RvcF9jcHUrcHJpbnRpbmcgZXJyb3IuIFRoZSBzeXN0ZW0gY2Fubm90IHN1cnZp dmUgaWYKPj4+IGVuYWJsaW5nIGEgY2FwYWJpbGl0eSBmYWlscy4gSW4gb3JkZXIgdG8gdGVzdCB0 aGlzIEkgYWRkZWQgYQo+Pj4gY2FwYWJpbGl0eSB0aGF0IHdpbGwgYWx3YXlzIGZhaWwgYWZ0ZXIg dGhlIGJvb3QuIFRoaXMgaXMgbm90IHJlYWxpc3RpYwo+Pj4gaW4gbXkgb3BpbmlvbiwgYnV0IEkg dXNlZCBpdCBvbmx5IGZvciB0ZXN0aW5nIHRvIGNoZWNrIHdoZXRoZXIgdGhlCj4+PiBzeXN0ZW0g d2lsbCBzdXJ2aXZlLiBJbnN0ZWFkIG9mIHBhbmljIEkgcHJpbnRlZCBhbiBlcnJvciBhbmQgc3Rv cHBlZAo+Pj4gdGhlIENQVS4gSG93ZXZlciwgWGVuIGNyYXNoZWQuIFRoZSBib290IENQVSBwcm9w ZXJseSBjb25jbHVkZWQgdGhhdAo+Pj4gdGhlIGVycm9uZW91cyBDUFUgd2lsbCBuZXZlciBiZWNv bWUgb25saW5lLCBidXQgbGF0ZXIgb24gY3JlZGl0Cj4+PiBzY2hlZHVsZXIncyBhc3NlcnRpb24g ZmFpbHMuCj4+Cj4+Cj4+IFBsZWFzZSBwcm92aWRlIG1vcmUgZGV0YWlscy4KPj4KPj4+IEkgYmVs aWV2ZSB0aGlzIGlzIHNvbWV0aGluZyB0aGF0IGEgcGVyc29uCj4+PiB3aG8gYWRkcyBiaWcuTElU VExFIHN1cHBvcnQgc2hvdWxkIGRlYWwgd2l0aC4KPj4KPj4KPj4gSWYgdGhlcmUgaXMgYSBidWcg aW4gdGhlIHNjaGVkdWxlciBpdCBzaG91bGQgYmUgZml4ZWQgcmF0aGVyIHRyeWluZyB0bwo+PiB3 b3JrYXJvdW5kIHdpdGggYSBwYW5pYyBpbiB0aGUgY29kZS4gSWYgeW91IHByb3ZpZGUgbW9yZSBk ZXRhaWxzLCB3ZSBtaWdodAo+PiBiZSBhYmxlIHRvIGhlbHAgaGVyZS4KPj4KPgo+IFRoaXMgZmxv dyBzZWVtcyB0byBoYXZlIHNldmVyYWwgYnVncy4gTGV0cyBzdGFydCBmcm9tIGhlcmU6Cj4KPiBQ bGVhc2UgdGFrZSBhIGxvb2sgYXQgZnVuY3Rpb24gY3B1X3NjaGVkdWxlX2NhbGxiYWNrIGluIHNj aGVkdWxlLmMuCj4gV2l0aGluIHN3aXRjaCwgY2FzZSBDUFVfREVBRCBkb2Vzbid0IGhhdmUgYSBi cmVhaywgY2F1c2luZyB0aGUgYmVsbG93Cj4gQ1BVX1VQX0NBTkNFTEVEIHRvIGV4ZWN1dGUgYXMg d2VsbCB3aGVuIHRoZSBDUFUgZ29lcyBkb3duLiBUaGlzIGxvb2tzCj4gd3JvbmcgdG8gbWUuCj4g RGFyaW8sIGNvdWxkIHlvdSBwbGVhc2UgY29uZmlybSB0aGF0IHRoaXMgaXMgYSBidWc/IE90aGVy d2lzZSBjb3VsZAo+IHlvdSBwbGVhc2UgY29uZmlybSB0aGUgcmVhc29uaW5nIGJleW9uZD8KPgoK RGFyaW8gc29ycnksIHRoaXMgbG9va2VkIHdyb25nIGluIG15IHNjZW5hcmlvIGJ1dCBhY3R1YWxs eSBpdCBpcwpjb3JyZWN0LiBJIHVuZGVyc3RhbmQgdGhlIHB1cnBvc2Ugb2YgdGhlIG1pc3Npbmcg YnJlYWsgbm93LgoKSSdsbCB0cnkgdG8gZXhwbGFpbiB3aGF0IHdhcyB0aGUgaXNzdWUgd2hlbiBu b24tYm9vdCBDUFUgYmVpbmcKaG90cGx1Z2dlZCBmYWlscyB0byBlbmFibGUgY2FwYWJpbGl0aWVz LiBGb3IgdGhvc2Ugd2hvIGFyZSBub3QKaW50ZXJlc3RlZCBpbiBkZXRhaWxzIC0gdGhlIGlzc3Vl IGlzIGZpeGVkIGFuZCB3aWxsIGJlIHN1Ym1pdHRlZCBhcwpwYXJ0IG9mIHRoaXMgcGF0Y2ggaW4g dGhlIHY0IG9mIHRoaXMgc2VyaWVzLgoKRm9yIHRoZSBjdXJpb3VzIG9uZXMgKGlmIGFueSkgaGVy ZSBpcyBkZXRhaWxlZCBkZXNjcmlwdGlvbjogZXJyYXRhCm5vdGlmaWVyIGFkZGVkIGluIHRoaXMg cGF0Y2ggaGFkIHRoZSBzYW1lIHByaW9yaXR5IGFzIHNjaGVkdWxlcgpub3RpZmllci4gSSB0aG91 Z2ggcHJpb3JpdHkgZG9lc24ndCBtYXR0ZXIsIGJ1dCBJIHdhcyB3cm9uZy4gSW4gdGhpcwpwYXJ0 aWN1bGFyIHNjZW5hcmlvIHdoZXJlIGEgQ1BVIGZhaWxzIHRvIGVuYWJsZSBjYXBhYmlsaXRpZXMK KHRyaWdnZXJlZCBieSBlcnJhdGEgbm90aWZpZXIgYWRkZWQgaW4gdGhpcyBwYXRjaCksIHNjaGVk dWxlciBjYWxsYmFjawpleGVjdXRlZCBiZWZvcmUgdGhlIGVycmF0YSBjYWxsYmFjayBmb3IgQ1BV X1NUQVJUSU5HIGV2ZW50LiBJbiBvdGhlcgp3b3Jkcywgc2NoZWR1bGVyIGFscmVhZHkgY2FsbGVk IGluaXRfcGRhdGEgYmVmb3JlIHRoZSBlcnJhdGEgY2FsbGJhY2sKZmlyZWQgKGFuZCBzdG9wcGVk IHRoZSBDUFUpLgpMYXRlciBvbiB3aGVuIGVycmF0YSBjYWxsYmFjayBmaXJlZCwgZW5hYmxpbmcg b2YgY2FwYWJpbGl0aWVzIGhhcwpmYWlsZWQsIHNvIHRoZSBlcnJvbmVvdXMgbm9uLWJvb3QgQ1BV IHN0b3BwZWQgaXRzZWxmIGFuZCBuZXZlcgpkZWNsYXJlZCB0byBiZSBvbmxpbmUuClRoZW4gQ1BV IzAgZmlyZWQgbmV3IG5vdGlmaWNhdGlvbiB3aXRoIENQVV9VUF9DQU5DRUxFRCBldmVudCBpbiBv cmRlcgp0byBjbGVhbiB1cCBmb3IgdGhlIGpvYiBkb25lIG9uIENQVV9TVEFSVElORy4gSG93ZXZl ciwgdGhpcyBicm9rZSB0aGUKYXNzdW1wdGlvbiAod2hpY2ggaXMgZ29vZCkgbWFkZSBpbiBjcHVf c2NoZWR1bGVfY2FsbGJhY2suIFRoZQphc3N1bXB0aW9uIGlzIHRoYXQgdGhlIHNlcXVlbmNlIG9m IHN0ZXBzIHNob3VsZCBiZQphbGxvY19wZGF0YS0tPmluaXRfcGRhdGEtLT5kZWluaXRfcGRhdGEt LT5mcmVlX3BkYXRhLiBJbiB0aGlzCnBhcnRpY3VsYXIgY2FzZSBkZWluaXRfcGRhdGEgd2FzIG5v dCBkb25lIGJlY2F1c2UgdGhpcyB3b3VsZCBiZSBkb25lCm9ubHkgdXBvbiBDUFVfREVBRCBldmVu dCB3aGljaCBtYWtlcyBubyBzZW5zZSBpbiB0aGlzIHNjZW5hcmlvLgpJbiBvcmRlciB0byBhdm9p ZCBydW5uaW5nIGludG8gdGhlIGludmFsaWQgc2NlbmFyaW8gZGVzY3JpYmVkIGFib3ZlLAp0aGUg ZXJyYXRhIGNhbGxiYWNrIHNob3VsZCBmaXJlIGJlZm9yZSB0aGUgc2NoZWR1bGVyIGNhbGxiYWNr LiBJZgplbmFibGluZyBjYXBhYmlsaXRpZXMgZmFpbHMsIHRoZSBzY2hlZHVsZXIgY2FsbGJhY2sg Zm9yIENQVV9TVEFSVElORwp3aWxsIG5ldmVyIGV4ZWN1dGUgYWZ0ZXJ3YXJkcywgc28gdGhlIGZv bGxvd2luZyBDUFVfVVBfQ0FOQ0VMRUQgZXZlbnQKdHJpZ2dlcmVkIGJ5IHRoZSBDUFUjMCB3aWxs IGRvIGZyZWVfcGRhdGEsIHdoaWNoIGlzIG9rIGJlY2F1c2UKaW5pdF9wZGF0YSB3YXMgbm90IGV4 ZWN1dGVkIGFuZCBhbGxvY19wZGF0YS0tPmZyZWVfcGRhdGEgZmxvdyBpcyBhbHNvCnZhbGlkLiBD b25ncmF0dWxhdGlvbnMgdG8gdGhlIHJlYWRlciB3aG8gcmVhY2hlZCB0aGlzIHBvaW50IDopCgpJ IGhhdmUgdGVzdGVkIHRoZSB0dW5lZCBzY2VuYXJpbyB3aGVyZSBlbmFibGluZyBjYXBhYmlsaXRp ZXMgZmFpbHMgLQp0aGUgZXJyb25lb3VzIENQVSBpcyBzdG9wcGVkL3Bvd2VyZWQgZG93biBhbmQg dGhlIHN5c3RlbSBjb250aW51ZXMgdG8Kd29yayBmaW5lIHdpdGhvdXQgaXQuIEFsdGhvdWdoIEkg c3RpbGwgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgaW5kZWVkIEkKbmVlZGVkIHRvIGRlYnVnIHRoaXMg SSdsbCBhZGQgdGhlIGZpeCBpbiB2NC4KClRoYW5rcywKTWlyZWxhCgo+IFRoYW5rcywKPiBNaXJl bGEKPgo+Pj4KPj4+IERvIHdlIGhhdmUgYW4gYWdyZWVtZW50IHRvIGtlZXAgcGFuaWM/Cj4+Cj4+ Cj4+IEkgYW0gYWZyYWlkIG5vdCwgcGFuaWMgKGFuZCBCVUcqKSBzaG91bGQgb25seSBiZSB1c2Vk IHdoZW4gdGhlcmUgYXJlIG5vIHdheQo+PiB0byBjb21lIGJhY2sgb3IgaXQgaXMgYSBwcm9ncmFt bWluZyBlcnJvciB0byBlbmQgdXAgaGVyZS4gSSBkb24ndCB0aGluayB0aGlzCj4+IGlzIHRoZSBj YXNlIHdpdGggdGhlIGluZm9ybWF0aW9uIEkgaGF2ZSBpbiBoYW5kLgo+Pgo+PiBUaGUgdHdvIHNv bHV0aW9ucyBJIGZpbmQgYWNjZXB0YWJsZSB3b3VsZCBiZToKPj4gICAgICAgICAxKSBMb2cgYSB3 YXJuaW5nIGFuZCBpZ25vcmUgdGhlIGVycm9yLiBMaWtlbHkgeW91ciBDUFUgd2lsbCBicmVhawo+ PiBsYXRlciBvbi4KPj4gICAgICAgICAyKSBSZXR1cm4gYW4gZXJyb3IgYW5kIGxldCB0aGUgY2Fs bGVyIGRlYWwgd2l0aCBpdC4gVGhlIGNhbGxlciBtaWdodAo+PiBkZWNpZGUgdG8ga2lsbCB0aGUg c3lzdGVtLCBidXQgdGhhdCdzIG5vdCBvdXIgYnVzaW5lc3MuIFRoaXMgZnVuY3Rpb24gc2hvdWxk Cj4+IG9ubHkgcmVwb3J0IGFuIGVycm9yLgo+Pgo+PiBDaGVlcnMsCj4+Cj4+IC0tCj4+IEp1bGll biBHcmFsbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==