From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: Re: [PATCH v4 4/6] microcode: don't call apply_microcode() in cpu_request_microcode() Date: Thu, 29 Nov 2018 12:28:46 +0800 Message-ID: <20181129042846.GC23701@gao-cwp> References: <1543383256-12371-1-git-send-email-chao.gao@intel.com> <1543383256-12371-5-git-send-email-chao.gao@intel.com> <20181128150225.4axdecgu33xlwwzu@mac> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gSDt0-0006ua-Iu for xen-devel@lists.xenproject.org; Thu, 29 Nov 2018 04:25:10 +0000 Content-Disposition: inline In-Reply-To: <20181128150225.4axdecgu33xlwwzu@mac> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Roger Pau =?iso-8859-1?Q?Monn=E9?= Cc: xen-devel@lists.xenproject.org, Wei Liu , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBOb3YgMjgsIDIwMTggYXQgMDQ6MDI6MjVQTSArMDEwMCwgUm9nZXIgUGF1IE1vbm7D qSB3cm90ZToKPk9uIFdlZCwgTm92IDI4LCAyMDE4IGF0IDAxOjM0OjE0UE0gKzA4MDAsIENoYW8g R2FvIHdyb3RlOgo+PiBjcHVfcmVxdWVzdF9taWNyb2NvZGUoKSB3aWxsIG9ubHkgcGFyc2UgbWlj cm9jb2RlIGZpbGUgYW5kIHNhdmUKPj4gc3VpdGFibGUgbWljcm9jb2RlcyB0byBtaWNyb2NvZGVf Y2FjaGUuIFRvIHVwZGF0ZSBtaWNyb2NvZGUsCj4+IGFwcGx5X21pY3JvY29kZSgpIHNob3VsZCBi ZSBpbnZva2VkIGV4cGxpY2l0bHkuCj4+IAo+PiBPbiBBTUQgc2lkZSwgc3ZtX2hvc3Rfb3N2d19p bml0KCkgaXMgc3VwcG9zZWQgdG8gYmUgY2FsbGVkIGFmdGVyCj4+IG1pY3JvY29kZSB1cGRhdGUu IEFzIGFwcGx5X21pY3Jjb2RlKCkgd29uJ3QgYmUgY2FsbGVkIGJ5Cj4+IGNwdV9yZXF1ZXN0X21p Y3JvY29kZSgpIG5vdywgc3ZtX2hvc3Rfb3N2d19pbml0KCkgaXMgYWxzbyBtb3ZlZCB0byB0aGUK Pj4gZW5kIG9mIGFwcGx5X21pY3JvY29kZSgpLgo+Cj5JIGRvbid0IHVuZGVyc3RhbmQgdGhlIHBy ZXZpb3VzIHVzYWdlIG9mIGNwdV9yZXF1ZXN0X21pY3JvY29kZSwgd2FzIGl0Cj51c2VkIHRvIHVw ZGF0ZSB0aGUgbWljcm9jb2RlPwoKWWVzLiBJIGFtIG1vdmluZyBtaWNyb2NvZGUgbG9hZGluZyBv dXQgb2YgY3B1X3JlcXVlc3RfbWljcm9jb2RlIGhvb2suCgo+VGhlIG5hbWUgc2VlbXMgdG8gc3Vn Z2VzdCBpdCdzIHVzZWQgdG8KPmdldCBhIG1pY3JvY29kZSB2ZXJzaW9uIHdpdGhvdXQgYXBwbHlp bmcgYW55dGhpbmcgdG8gdGhlIENQVS4KPgo+PiAKPj4gU2lnbmVkLW9mZi1ieTogQ2hhbyBHYW8g PGNoYW8uZ2FvQGludGVsLmNvbT4KPj4gLS0tCj4+ICB4ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMg ICAgICAgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KPj4g IHhlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMgICB8IDE1ICsrKysrLS0tLS0tCj4+ICB4ZW4v YXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMgfCAgNSArLS0tCj4+ICAzIGZpbGVzIGNoYW5nZWQs IDUwIGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQo+PiAKPj4gZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9taWNyb2NvZGUuYyBiL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYwo+PiBpbmRl eCA4MzUwZDIyLi5jY2E3YjJjIDEwMDY0NAo+PiAtLS0gYS94ZW4vYXJjaC94ODYvbWljcm9jb2Rl LmMKPj4gKysrIGIveGVuL2FyY2gveDg2L21pY3JvY29kZS5jCj4+IEBAIC0yMzMsMjAgKzIzMywx MiBAQCBpbnQgbWljcm9jb2RlX3Jlc3VtZV9jcHUodW5zaWduZWQgaW50IGNwdSkKPj4gICAgICBy ZXR1cm4gZXJyOwo+PiAgfQo+PiAgCj4+IC1zdGF0aWMgaW50IG1pY3JvY29kZV91cGRhdGVfY3B1 KGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUpCj4+ICtzdGF0aWMgaW50IG1pY3JvY29kZV91 cGRhdGVfY3B1KHZvaWQpCj4+ICB7Cj4+ICAgICAgaW50IGVycjsKPj4gLSAgICB1bnNpZ25lZCBp bnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwo+PiAtICAgIHN0cnVjdCB1Y29kZV9jcHVfaW5m byAqdWNpID0gJnBlcl9jcHUodWNvZGVfY3B1X2luZm8sIGNwdSk7Cj4+ICAKPj4gICAgICBzcGlu X2xvY2soJm1pY3JvY29kZV9tdXRleCk7Cj4+IC0KPj4gLSAgICBlcnIgPSBtaWNyb2NvZGVfb3Bz LT5jb2xsZWN0X2NwdV9pbmZvKGNwdSwgJnVjaS0+Y3B1X3NpZyk7Cj4+IC0gICAgaWYgKCBsaWtl bHkoIWVycikgKQo+PiAtICAgICAgICBlcnIgPSBtaWNyb2NvZGVfb3BzLT5jcHVfcmVxdWVzdF9t aWNyb2NvZGUoY3B1LCBidWYsIHNpemUpOwo+PiAtICAgIGVsc2UKPj4gLSAgICAgICAgX19taWNy b2NvZGVfZmluaV9jcHUoY3B1KTsKPj4gLQo+PiArICAgIGVyciA9IG1pY3JvY29kZV9vcHMtPmFw cGx5X21pY3JvY29kZShzbXBfcHJvY2Vzc29yX2lkKCkpOwo+PiAgICAgIHNwaW5fdW5sb2NrKCZt aWNyb2NvZGVfbXV0ZXgpOwo+PiAgCj4+ICAgICAgcmV0dXJuIGVycjsKPj4gQEAgLTI1OSw3ICsy NTEsNyBAQCBzdGF0aWMgbG9uZyBkb19taWNyb2NvZGVfdXBkYXRlKHZvaWQgKl9pbmZvKQo+PiAg Cj4+ICAgICAgQlVHX09OKGluZm8tPmNwdSAhPSBzbXBfcHJvY2Vzc29yX2lkKCkpOwo+PiAgCj4+ IC0gICAgZXJyb3IgPSBtaWNyb2NvZGVfdXBkYXRlX2NwdShpbmZvLT5idWZmZXIsIGluZm8tPmJ1 ZmZlcl9zaXplKTsKPj4gKyAgICBlcnJvciA9IG1pY3JvY29kZV91cGRhdGVfY3B1KCk7Cj4KPldo eSBkb24ndCB5b3UganVzdCBzZXQgaW5mby0+ZXJyb3IgPSBtaWNyb2NvZGVfdXBkYXRlX2NwdSgp Pwo+Cj5BRkFJQ1QgdGhpcyBpcyBkb25lIHRvIGF0dGVtcHQgdG8gdXBkYXRlIHRoZSByZW1haW5p bmcgQ1BVcyBpZiBvbmUKPnVwZGF0ZSBmYWlsZWQ/CgpZZXMuIEJ1dCB0aGlzIHBhdGNoIGRvZXNu J3QgY2hhbmdlIHRoZSBsb2dpYyBoZXJlLiBBY3R1YWxseSwgaWYgSFQgaXMKZW5hYmxlZCBhbmQg bWljcm9jb2RlIGlzIHNoYXJlZCBiZXR3ZWVuIHRoZSBsb2dpY2FsIHRocmVhZHMgb2YgdGhlIHNh bWUKY29yZSwgc28gaWYgb25lIHRocmVhZCB1cGRhdGVzIG1pY3JvY29kZSBzdWNjZXNzZnVsbHks IGl0cyBzaWJsaW5nIHdvdWxkCmFsd2F5cyBmYWlsIGluIGN1cnJlbnQgbG9naWMuIEkgYW0gdHJ5 aW5nIHRvIGV4cGxhaW4gd2h5IHdlIGNhbm5vdCBhYm9ydAp0aGUgdXBkYXRlIGV2ZW4gdGhvdWdo IGFuIGVycm9yIGlzIG1ldCBpbiBjdXJyZW50IGxvZ2ljLiBJdCBkZWZpbml0ZWx5CmNhbiBiZSBz b2x2ZWQgYnkgdHdlYWtpbmcgdGhlIGxvZ2ljIHNsaWdodGx5LiAKCj4KPklzIHRoZXJlIGFueXdh eSB0byByb2xsYmFjayB0byB0aGUgcHJldmlvdXMgc3RhdGUgc28gYWxsIENQVXMgaGF2ZSB0aGUK PnNhbWUgbWljcm9jb2RlPwoKU2VlbXMgaXQgaXMgbm90IGFsbG93ZWQgdG8gbG9hZCBhIG1pY3Jv Y29kZSB3aXRoIG51bWVyYXRpY2FsbHkgc21hbGxlcgpyZXZpc2lvbiBhY2NvcmRpbmcgdG8gOS4x MS43LjIuCgpXaXRoIHBhdGNoIDYsIGEgcGFuaWMoKSB3b3VsZCBiZSB0cmlnZ2VyZWQgaWYgc29t ZSBjcHVzIGZhaWxlZCB0byBkbyB0aGUKdXBkYXRlLiBJIGRpZG4ndCB0cnkgdG8gY2hhbmdlIHRo ZSBsb2dpYyBoZXJlLgoKPkkgYXNzdW1lIG5vdGhpbmcgZ29vZCB3aWxsIGNvbWUgb3V0IG9mIHJ1 bm5pbmcgYQo+c3lzdGVtIHdpdGggQ1BVcyB1c2luZyBkaWZmZXJlbnQgbWljcm9jb2RlIHZlcnNp b25zLCBidXQgbWF5YmUgdGhhdCdzCj5ub3Qgc28gYmFkPwoKSXQgaXMgYmV0dGVyIHRoYXQgYWxs IENQVXMgaGF2ZSB0aGUgc2FtZSBtaWNyb2NvZGUgcmV2aXNpb24uIAoKTGludXgga2VybmVsIHJl amVjdHMgbGF0ZSBtaWNyb2NvZGUgdXBkYXRlIGlmIGZpbmRpbmcgc29tZSBDUFVzCm9mZmxpbmVk LiBJIG1heSBwb3J0IHRoaXMgcGF0Y2ggdG8gWGVuIHRvbyBpbiBhIHNlcGFyYXRlIHBhdGNoLgoK Pgo+PiAgICAgIGlmICggZXJyb3IgKQo+PiAgICAgICAgICBpbmZvLT5lcnJvciA9IGVycm9yOwo+ PiAgCj4+IEBAIC0yNzYsNiArMjY4LDggQEAgaW50IG1pY3JvY29kZV91cGRhdGUoWEVOX0dVRVNU X0hBTkRMRV9QQVJBTShjb25zdF92b2lkKSBidWYsIHVuc2lnbmVkIGxvbmcgbGVuKQo+PiAgewo+ PiAgICAgIGludCByZXQ7Cj4+ICAgICAgc3RydWN0IG1pY3JvY29kZV9pbmZvICppbmZvOwo+PiAr ICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Cj4+ICsgICAgc3RydWN0 IHVjb2RlX2NwdV9pbmZvICp1Y2kgPSAmcGVyX2NwdSh1Y29kZV9jcHVfaW5mbywgY3B1KTsKPj4g IAo+PiAgICAgIGlmICggbGVuICE9ICh1aW50MzJfdClsZW4gKQo+PiAgICAgICAgICByZXR1cm4g LUUyQklHOwo+PiBAQCAtMjk0LDEwICsyODgsNiBAQCBpbnQgbWljcm9jb2RlX3VwZGF0ZShYRU5f R1VFU1RfSEFORExFX1BBUkFNKGNvbnN0X3ZvaWQpIGJ1ZiwgdW5zaWduZWQgbG9uZyBsZW4pCj4+ ICAgICAgICAgIHJldHVybiByZXQ7Cj4+ICAgICAgfQo+PiAgCj4+IC0gICAgaW5mby0+YnVmZmVy X3NpemUgPSBsZW47Cj4+IC0gICAgaW5mby0+ZXJyb3IgPSAwOwo+PiAtICAgIGluZm8tPmNwdSA9 IGNwdW1hc2tfZmlyc3QoJmNwdV9vbmxpbmVfbWFwKTsKPj4gLQo+PiAgICAgIGlmICggbWljcm9j b2RlX29wcy0+c3RhcnRfdXBkYXRlICkKPj4gICAgICB7Cj4+ICAgICAgICAgIHJldCA9IG1pY3Jv Y29kZV9vcHMtPnN0YXJ0X3VwZGF0ZSgpOwo+PiBAQCAtMzA4LDYgKzI5OCwyNiBAQCBpbnQgbWlj cm9jb2RlX3VwZGF0ZShYRU5fR1VFU1RfSEFORExFX1BBUkFNKGNvbnN0X3ZvaWQpIGJ1ZiwgdW5z aWduZWQgbG9uZyBsZW4pCj4+ICAgICAgICAgIH0KPj4gICAgICB9Cj4+ICAKPj4gKyAgICBzcGlu X2xvY2soJm1pY3JvY29kZV9tdXRleCk7Cj4+ICsKPj4gKyAgICByZXQgPSBtaWNyb2NvZGVfb3Bz LT5jb2xsZWN0X2NwdV9pbmZvKGNwdSwgJnVjaS0+Y3B1X3NpZyk7Cj4+ICsgICAgaWYgKCBsaWtl bHkoIXJldCkgKQo+PiArICAgICAgICByZXQgPSBtaWNyb2NvZGVfb3BzLT5jcHVfcmVxdWVzdF9t aWNyb2NvZGUoY3B1LCBpbmZvLT5idWZmZXIsIGxlbik7Cj4+ICsgICAgZWxzZQo+PiArICAgICAg ICBfX21pY3JvY29kZV9maW5pX2NwdShjcHUpOwo+PiArCj4+ICsgICAgc3Bpbl91bmxvY2soJm1p Y3JvY29kZV9tdXRleCk7Cj4KPldoeSBkbyB5b3UgbmVlZCB0byBob2xkIHRoZSBsb2NrIGhlcmU/ Cj4KPm1pY3JvY29kZV91cGRhdGUgaXMgYWxyZWFkeSBzZXJpYWxpemVkIGFuZCBzaG91bGQgb25s eSBiZSBleGVjdXRlZCBvbgo+YSBDUFUgYXQgYSB0aW1lIGR1ZSB0byB0aGUgdXNhZ2Ugb2YgY2hh aW5lZAo+Y29udGludWVfaHlwZXJjYWxsX29uX2NwdS4KCm1pY3JvY29kZV9yZXN1bWVfY3B1KCkg YWxzbyB1c2VzIHRoZSAndWNpJyBhbmQgdGhlIGdsb2JhbCBtaWNyb2NvZGUgY2FjaGUuClRoaXMg bG9jayBpcyB0byBwcmV2ZW50IHRoZW0gaGFwcGVuaW5nIHNpbXVsdGFuZW91c2x5IChzb21lb25l IGlzCmFkZGluZy9yZXBsYWNpbmcgZW50cmllcyB0byBhIGxpc3QgYW5kIGFub3RoZXIgaXMgcmVh ZGluZyB0aGUgbGlzdCkuCkFsbCBleGlzdGluZyBjYWxsIHNpdGVzIG9mIGNvbGxlY19jcHVfaW5m bygpIGFuZCBjcHVfcmVxdWVzdF9taWNyb2NvZGUoKQphcmUgcHJvdGVjdGVkIHdpdGggdGhpcyBs b2NrLgoKPgo+PiArCj4+ICsgICAgaWYgKCByZXQgPD0gMCApCj4+ICsgICAgewo+PiArICAgICAg ICBwcmludGsoIk5vIHZhbGlkIG9yIG5ld2VyIG1pY3JvY29kZSBmb3VuZC4gVXBkYXRlIGFib3J0 IVxuIik7Cj4+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiArICAgIH0KPj4gKwo+PiArICAg IGluZm8tPmJ1ZmZlcl9zaXplID0gbGVuOwo+PiArICAgIGluZm8tPmVycm9yID0gMDsKPj4gKyAg ICBpbmZvLT5jcHUgPSBjcHVtYXNrX2ZpcnN0KCZjcHVfb25saW5lX21hcCk7Cj4+ICsKPj4gICAg ICByZXR1cm4gY29udGludWVfaHlwZXJjYWxsX29uX2NwdShpbmZvLT5jcHUsIGRvX21pY3JvY29k ZV91cGRhdGUsIGluZm8pOwo+PiAgfQo+PiAgCj4+IEBAIC0zNzAsMTMgKzM4MCwyOSBAQCBpbnQg X19pbml0IGVhcmx5X21pY3JvY29kZV91cGRhdGVfY3B1KGJvb2wgc3RhcnRfdXBkYXRlKQo+PiAg ICAgIH0KPj4gICAgICBpZiAoIGRhdGEgKQo+PiAgICAgIHsKPj4gKyAgICAgICAgdW5zaWduZWQg aW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKPj4gKyAgICAgICAgc3RydWN0IHVjb2RlX2Nw dV9pbmZvICp1Y2kgPSAmcGVyX2NwdSh1Y29kZV9jcHVfaW5mbywgY3B1KTsKPj4gKwo+PiAgICAg ICAgICBpZiAoIHN0YXJ0X3VwZGF0ZSAmJiBtaWNyb2NvZGVfb3BzLT5zdGFydF91cGRhdGUgKQo+ PiAgICAgICAgICAgICAgcmMgPSBtaWNyb2NvZGVfb3BzLT5zdGFydF91cGRhdGUoKTsKPj4gIAo+ PiAgICAgICAgICBpZiAoIHJjICkKPj4gICAgICAgICAgICAgIHJldHVybiByYzsKPj4gIAo+PiAt ICAgICAgICByZXR1cm4gbWljcm9jb2RlX3VwZGF0ZV9jcHUoZGF0YSwgbGVuKTsKPj4gKyAgICAg ICAgc3Bpbl9sb2NrKCZtaWNyb2NvZGVfbXV0ZXgpOwo+PiArCj4+ICsgICAgICAgIHJjID0gbWlj cm9jb2RlX29wcy0+Y29sbGVjdF9jcHVfaW5mbyhjcHUsICZ1Y2ktPmNwdV9zaWcpOwo+PiArICAg ICAgICBpZiAoIGxpa2VseSghcmMpICkKPj4gKyAgICAgICAgICAgIHJjID0gbWljcm9jb2RlX29w cy0+Y3B1X3JlcXVlc3RfbWljcm9jb2RlKGNwdSwgZGF0YSwgbGVuKTsKPj4gKyAgICAgICAgZWxz ZQo+PiArICAgICAgICAgICAgX19taWNyb2NvZGVfZmluaV9jcHUoY3B1KTsKPj4gKwo+PiArICAg ICAgICBzcGluX3VubG9jaygmbWljcm9jb2RlX211dGV4KTsKPj4gKwo+PiArICAgICAgICBpZiAo IHJjIDw9IDAgKQo+PiArICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gKyAgICAg ICAgcmV0dXJuIG1pY3JvY29kZV91cGRhdGVfY3B1KCk7Cj4+ICAgICAgfQo+PiAgICAgIGVsc2UK Pj4gICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv bWljcm9jb2RlX2FtZC5jIGIveGVuL2FyY2gveDg2L21pY3JvY29kZV9hbWQuYwo+PiBpbmRleCA2 ZTY1OThhLi42ZDg2MGYzIDEwMDY0NAo+PiAtLS0gYS94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2Ft ZC5jCj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMKPj4gQEAgLTI5OSw2ICsy OTksMTAgQEAgc3RhdGljIGludCBhcHBseV9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSkKPj4g IAo+PiAgICAgIHVjaS0+Y3B1X3NpZy5yZXYgPSByZXY7Cj4+ICAKPj4gKyNpZiBDT05GSUdfSFZN Cj4+ICsgICAgc3ZtX2hvc3Rfb3N2d19pbml0KCk7Cj4+ICsjZW5kaWYKPj4gKwo+PiAgICAgIHJl dHVybiAwOwo+PiAgfQo+PiAgCj4+IEBAIC00NjYsNiArNDcwLDcgQEAgc3RhdGljIGludCBjcHVf cmVxdWVzdF9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSwgY29uc3Qgdm9pZCAqYnVmLAo+PiAg ICAgIHN0cnVjdCB1Y29kZV9jcHVfaW5mbyAqdWNpID0gJnBlcl9jcHUodWNvZGVfY3B1X2luZm8s IGNwdSk7Cj4+ICAgICAgdW5zaWduZWQgaW50IGN1cnJlbnRfY3B1X2lkOwo+PiAgICAgIHVuc2ln bmVkIGludCBlcXVpdl9jcHVfaWQ7Cj4+ICsgICAgdW5zaWduZWQgaW50IG1hdGNoZWRfY250ID0g MDsKPj4gIAo+PiAgICAgIC8qIFdlIHNob3VsZCBiaW5kIHRoZSB0YXNrIHRvIHRoZSBDUFUgKi8K Pj4gICAgICBCVUdfT04oY3B1ICE9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpOwo+PiBAQCAtNTcy LDkgKzU3Nyw3IEBAIHN0YXRpYyBpbnQgY3B1X3JlcXVlc3RfbWljcm9jb2RlKHVuc2lnbmVkIGlu dCBjcHUsIGNvbnN0IHZvaWQgKmJ1ZiwKPj4gIAo+PiAgICAgICAgICBpZiAoIG1pY3JvY29kZV9m aXRzKG1jX2FtZCwgY3B1KSApCj4+ICAgICAgICAgIHsKPj4gLSAgICAgICAgICAgIGVycm9yID0g YXBwbHlfbWljcm9jb2RlKGNwdSk7Cj4+IC0gICAgICAgICAgICBpZiAoIGVycm9yICkKPj4gLSAg ICAgICAgICAgICAgICBicmVhazsKPj4gKyAgICAgICAgICAgIG1hdGNoZWRfY250Kys7Cj4+ICAg ICAgICAgICAgICBhcHBsaWVkX29mZnNldCA9IGxhc3Rfb2Zmc2V0Owo+PiAgICAgICAgICB9Cj4+ ICAKPj4gQEAgLTYwOSwxNyArNjEyLDEzIEBAIHN0YXRpYyBpbnQgY3B1X3JlcXVlc3RfbWljcm9j b2RlKHVuc2lnbmVkIGludCBjcHUsIGNvbnN0IHZvaWQgKmJ1ZiwKPj4gICAgICB9Cj4+ICAKPj4g ICAgb3V0Ogo+PiAtI2lmIENPTkZJR19IVk0KPj4gLSAgICBzdm1faG9zdF9vc3Z3X2luaXQoKTsK Pj4gLSNlbmRpZgo+PiAtCj4+ICAgICAgLyoKPj4gICAgICAgKiBJbiBzb21lIGNhc2VzIHdlIG1h eSByZXR1cm4gYW4gZXJyb3IgZXZlbiBpZiBwcm9jZXNzb3IncyBtaWNyb2NvZGUgaGFzCj4+ICAg ICAgICogYmVlbiB1cGRhdGVkLiBGb3IgZXhhbXBsZSwgdGhlIGZpcnN0IHBhdGNoIGluIGEgY29u dGFpbmVyIGZpbGUgaXMgbG9hZGVkCj4+ICAgICAgICogc3VjY2Vzc2Z1bGx5IGJ1dCBzdWJzZXF1 ZW50IGNvbnRhaW5lciBmaWxlIHByb2Nlc3NpbmcgZW5jb3VudGVycyBhCj4+ICAgICAgICogZmFp bHVyZS4KPj4gICAgICAgKi8KPj4gLSAgICByZXR1cm4gZXJyb3I7Cj4+ICsgICAgcmV0dXJuICFl cnJvciA/IG1hdGNoZWRfY250IDogZXJyb3I7Cj4KPllvdSBjYW4gdXNlIGVycm9yID86IG1hdGNo ZWRfY250OyB3aGljaCBpcyBzaG9ydGVyLgoKSSB3YXMgdG9sZCB0aGF0IEl0IHdvdWxkIGJlIGdv b2QgdG8gcHV0IHRoZSBsaWtlbHkgY2FzZSBpbiB0aGUgZmlyc3QgcGxhY2UuCgpUaGFua3MKQ2hh bwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s aXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==