From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH 4/6] x86/shadow: widen reference count Date: Tue, 12 Dec 2017 16:32:46 +0000 Message-ID: <22f1a542-107e-2010-8857-1929beb95a4b@citrix.com> References: <5A2FFB8D0200007800196DDF@prv-mh.provo.novell.com> <5A2FFEC80200007800196E2E@prv-mh.provo.novell.com> 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]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eOnUF-0000Vz-Bk for xen-devel@lists.xenproject.org; Tue, 12 Dec 2017 16:32:55 +0000 In-Reply-To: <5A2FFEC80200007800196E2E@prv-mh.provo.novell.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Jan Beulich , xen-devel Cc: George Dunlap , Andrew Cooper , Tim Deegan List-Id: xen-devel@lists.xenproject.org T24gMTIvMTIvMjAxNyAwMzowNyBQTSwgSmFuIEJldWxpY2ggd3JvdGU6Cj4gVXRpbGl6ZSBhcyBt YW55IG9mIHRoZSBiaXRzIGF2YWlsYWJsZSBpbiB0aGUgdW5pb24gYXMgcG9zc2libGUsIHdpdGhv dXQKPiAoanVzdCB0byBiZSBvbiB0aGUgc2FmZSBzaWRlKSBjb2xsaWRpbmcgd2l0aCBhbnkgb2Yg dGhlIGJpdHMgb3V0c2lkZSBvZgo+IFBHVF90eXBlX21hc2suCj4gCj4gU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgo+IAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9t bS9zaGFkb3cvcHJpdmF0ZS5oCj4gKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9wcml2YXRl LmgKPiBAQCAtNTEwLDcgKzUxMCw3IEBAIHZvaWQgc2hfZGVzdHJveV9zaGFkb3coc3RydWN0IGRv bWFpbiAqZCwKPiAgICogUmV0dXJucyAwIGZvciBmYWlsdXJlLCAxIGZvciBzdWNjZXNzLiAqLwo+ ICBzdGF0aWMgaW5saW5lIGludCBzaF9nZXRfcmVmKHN0cnVjdCBkb21haW4gKmQsIG1mbl90IHNt Zm4sIHBhZGRyX3QgZW50cnlfcGEpCj4gIHsKPiAtICAgIHUzMiB4LCBueDsKPiArICAgIHVuc2ln bmVkIGxvbmcgeCwgbng7Cj4gICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpzcCA9IG1mbl90b19wYWdl KHNtZm4pOwo+ICAKPiAgICAgIEFTU0VSVChtZm5fdmFsaWQoc21mbikpOwo+IEBAIC01MTksNyAr NTE5LDcgQEAgc3RhdGljIGlubGluZSBpbnQgc2hfZ2V0X3JlZihzdHJ1Y3QgZG9tYQo+ICAgICAg eCA9IHNwLT51LnNoLmNvdW50Owo+ICAgICAgbnggPSB4ICsgMTsKPiAgCj4gLSAgICBpZiAoIHVu bGlrZWx5KG54ID49ICgxVSA8PCBQQUdFX1NIX1JFRkNPVU5UX1dJRFRIKSkgKQo+ICsgICAgaWYg KCB1bmxpa2VseShueCA+PSAoMVVMIDw8IFBBR0VfU0hfUkVGQ09VTlRfV0lEVEgpKSApCj4gICAg ICB7Cj4gICAgICAgICAgU0hBRE9XX1BSSU5USygic2hhZG93IHJlZiBvdmVyZmxvdywgZ21mbj0l bHggc21mbj0lbHhcbiIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgX19iYWNrcG9pbnRlcihz cCksIG1mbl94KHNtZm4pKTsKPiBAQCAtNTQzLDcgKzU0Myw3IEBAIHN0YXRpYyBpbmxpbmUgaW50 IHNoX2dldF9yZWYoc3RydWN0IGRvbWEKPiAgICogcGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgc2hh ZG93IGVudHJ5IHRoYXQgaGVsZCB0aGlzIHJlZmVyZW5jZS4gKi8KPiAgc3RhdGljIGlubGluZSB2 b2lkIHNoX3B1dF9yZWYoc3RydWN0IGRvbWFpbiAqZCwgbWZuX3Qgc21mbiwgcGFkZHJfdCBlbnRy eV9wYSkKPiAgewo+IC0gICAgdTMyIHgsIG54Owo+ICsgICAgdW5zaWduZWQgbG9uZyB4LCBueDsK PiAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnNwID0gbWZuX3RvX3BhZ2Uoc21mbik7Cj4gIAo+ICAg ICAgQVNTRVJUKG1mbl92YWxpZChzbWZuKSk7Cj4gQEAgLTU2MSw4ICs1NjEsOCBAQCBzdGF0aWMg aW5saW5lIHZvaWQgc2hfcHV0X3JlZihzdHJ1Y3QgZG9tCj4gIAo+ICAgICAgaWYgKCB1bmxpa2Vs eSh4ID09IDApICkKPiAgICAgIHsKPiAtICAgICAgICBTSEFET1dfRVJST1IoInNoYWRvdyByZWYg dW5kZXJmbG93LCBzbWZuPSVseCBvYz0lMDh4IHQ9JSN4XG4iLAo+IC0gICAgICAgICAgICAgICAg ICAgICBtZm5feChzbWZuKSwgc3AtPnUuc2guY291bnQsIHNwLT51LnNoLnR5cGUpOwo+ICsgICAg ICAgIFNIQURPV19FUlJPUigic2hhZG93IHJlZiB1bmRlcmZsb3csIHNtZm49JWx4IG9jPSUjbHgg dD0lI3hcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgIG1mbl94KHNtZm4pLCBzcC0+dS5zaC5j b3VudCArIDBVTCwgc3AtPnUuc2gudHlwZSk7Cj4gICAgICAgICAgQlVHKCk7Cj4gICAgICB9Cj4g IAo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvbW0uaAo+IEBAIC0xOCw2ICsxOCw3NyBAQAo+ICAgKi8KPiAgI2RlZmluZSBQRk5fT1JE RVIoX3BmbikgKChfcGZuKS0+di5mcmVlLm9yZGVyKQo+ICAKPiArI2RlZmluZSBQR19zaGlmdChp ZHgpICAgKEJJVFNfUEVSX0xPTkcgLSAoaWR4KSkKPiArI2RlZmluZSBQR19tYXNrKHgsIGlkeCkg KHggIyMgVUwgPDwgUEdfc2hpZnQoaWR4KSkKPiArCj4gKyAvKiBUaGUgZm9sbG93aW5nIHBhZ2Ug dHlwZXMgYXJlIE1VVFVBTExZIEVYQ0xVU0lWRS4gKi8KPiArI2RlZmluZSBQR1Rfbm9uZSAgICAg ICAgICBQR19tYXNrKDAsIDMpICAvKiBubyBzcGVjaWFsIHVzZXMgb2YgdGhpcyBwYWdlICAgKi8K PiArI2RlZmluZSBQR1RfbDFfcGFnZV90YWJsZSBQR19tYXNrKDEsIDMpICAvKiB1c2luZyBhcyBh biBMMSBwYWdlIHRhYmxlPyAgICAgKi8KPiArI2RlZmluZSBQR1RfbDJfcGFnZV90YWJsZSBQR19t YXNrKDIsIDMpICAvKiB1c2luZyBhcyBhbiBMMiBwYWdlIHRhYmxlPyAgICAgKi8KPiArI2RlZmlu ZSBQR1RfbDNfcGFnZV90YWJsZSBQR19tYXNrKDMsIDMpICAvKiB1c2luZyBhcyBhbiBMMyBwYWdl IHRhYmxlPyAgICAgKi8KPiArI2RlZmluZSBQR1RfbDRfcGFnZV90YWJsZSBQR19tYXNrKDQsIDMp ICAvKiB1c2luZyBhcyBhbiBMNCBwYWdlIHRhYmxlPyAgICAgKi8KPiArI2RlZmluZSBQR1Rfc2Vn X2Rlc2NfcGFnZSBQR19tYXNrKDUsIDMpICAvKiB1c2luZyB0aGlzIHBhZ2UgaW4gYSBHRFQvTERU PyAgKi8KPiArI2RlZmluZSBQR1Rfc2hhcmVkX3BhZ2UgICBQR19tYXNrKDYsIDMpICAvKiBDb1cg c2hhcmFibGUgcGFnZSAgICAgICAgICAgICAgKi8KPiArI2RlZmluZSBQR1Rfd3JpdGFibGVfcGFn ZSBQR19tYXNrKDcsIDMpICAvKiBoYXMgd3JpdGFibGUgbWFwcGluZ3M/ICAgICAgICAgKi8KPiAr I2RlZmluZSBQR1RfdHlwZV9tYXNrICAgICBQR19tYXNrKDcsIDMpICAvKiBCaXRzIDYxLTYzLiAg ICAgICAgICAgICAgICAgICAgKi8KPiArCj4gKyAvKiBQYWdlIGlzIGxvY2tlZD8gKi8KPiArI2Rl ZmluZSBfUEdUX2xvY2tlZCAgICAgICBQR19zaGlmdCg0KQo+ICsjZGVmaW5lIFBHVF9sb2NrZWQg ICAgICAgIFBHX21hc2soMSwgNCkKPiArIC8qIE93bmluZyBndWVzdCBoYXMgcGlubmVkIHRoaXMg cGFnZSB0byBpdHMgY3VycmVudCB0eXBlPyAqLwo+ICsjZGVmaW5lIF9QR1RfcGlubmVkICAgICAg IFBHX3NoaWZ0KDUpCj4gKyNkZWZpbmUgUEdUX3Bpbm5lZCAgICAgICAgUEdfbWFzaygxLCA1KQo+ ICsgLyogSGFzIHRoaXMgcGFnZSBiZWVuIHZhbGlkYXRlZCBmb3IgdXNlIGFzIGl0cyBjdXJyZW50 IHR5cGU/ICovCj4gKyNkZWZpbmUgX1BHVF92YWxpZGF0ZWQgICAgUEdfc2hpZnQoNikKPiArI2Rl ZmluZSBQR1RfdmFsaWRhdGVkICAgICBQR19tYXNrKDEsIDYpCj4gKyAvKiBQQUUgb25seTogaXMg dGhpcyBhbiBMMiBwYWdlIGRpcmVjdG9yeSBjb250YWluaW5nIFhlbi1wcml2YXRlIG1hcHBpbmdz PyAqLwo+ICsjZGVmaW5lIF9QR1RfcGFlX3hlbl9sMiAgIFBHX3NoaWZ0KDcpCj4gKyNkZWZpbmUg UEdUX3BhZV94ZW5fbDIgICAgUEdfbWFzaygxLCA3KQo+ICsvKiBIYXMgdGhpcyBwYWdlIGJlZW4g KnBhcnRpYWxseSogdmFsaWRhdGVkIGZvciB1c2UgYXMgaXRzIGN1cnJlbnQgdHlwZT8gKi8KPiAr I2RlZmluZSBfUEdUX3BhcnRpYWwgICAgICBQR19zaGlmdCg4KQo+ICsjZGVmaW5lIFBHVF9wYXJ0 aWFsICAgICAgIFBHX21hc2soMSwgOCkKPiArCj4gKyAvKiBDb3VudCBvZiB1c2VzIG9mIHRoaXMg ZnJhbWUgYXMgaXRzIGN1cnJlbnQgdHlwZS4gKi8KPiArI2RlZmluZSBQR1RfY291bnRfd2lkdGgg ICBQR19zaGlmdCg4KQo+ICsjZGVmaW5lIFBHVF9jb3VudF9tYXNrICAgICgoMVVMPDxQR1RfY291 bnRfd2lkdGgpLTEpCj4gKwo+ICsvKiBBcmUgdGhlICd0eXBlIG1hc2snIGJpdHMgaWRlbnRpY2Fs PyAqLwo+ICsjZGVmaW5lIFBHVF90eXBlX2VxdWFsKHgsIHkpICghKCgoeCkgXiAoeSkpICYgUEdU X3R5cGVfbWFzaykpCj4gKwo+ICsgLyogQ2xlYXJlZCB3aGVuIHRoZSBvd25pbmcgZ3Vlc3QgJ2Zy ZWVzJyB0aGlzIHBhZ2UuICovCj4gKyNkZWZpbmUgX1BHQ19hbGxvY2F0ZWQgICAgUEdfc2hpZnQo MSkKPiArI2RlZmluZSBQR0NfYWxsb2NhdGVkICAgICBQR19tYXNrKDEsIDEpCj4gKyAvKiBQYWdl IGlzIFhlbiBoZWFwPyAqLwo+ICsjZGVmaW5lIF9QR0NfeGVuX2hlYXAgICAgIFBHX3NoaWZ0KDIp Cj4gKyNkZWZpbmUgUEdDX3hlbl9oZWFwICAgICAgUEdfbWFzaygxLCAyKQo+ICsgLyogU2V0IHdo ZW4gaXMgdXNpbmcgYSBwYWdlIGFzIGEgcGFnZSB0YWJsZSAqLwo+ICsjZGVmaW5lIF9QR0NfcGFn ZV90YWJsZSAgIFBHX3NoaWZ0KDMpCj4gKyNkZWZpbmUgUEdDX3BhZ2VfdGFibGUgICAgUEdfbWFz aygxLCAzKQo+ICsgLyogMy1iaXQgUEFUL1BDRC9QV1QgY2FjaGUtYXR0cmlidXRlIGhpbnQuICov Cj4gKyNkZWZpbmUgUEdDX2NhY2hlYXR0cl9iYXNlIFBHX3NoaWZ0KDYpCj4gKyNkZWZpbmUgUEdD X2NhY2hlYXR0cl9tYXNrIFBHX21hc2soNywgNikKPiArIC8qIFBhZ2UgaXMgYnJva2VuPyAqLwo+ ICsjZGVmaW5lIF9QR0NfYnJva2VuICAgICAgIFBHX3NoaWZ0KDcpCj4gKyNkZWZpbmUgUEdDX2Jy b2tlbiAgICAgICAgUEdfbWFzaygxLCA3KQo+ICsgLyogTXV0dWFsbHktZXhjbHVzaXZlIHBhZ2Ug c3RhdGVzOiB7IGludXNlLCBvZmZsaW5pbmcsIG9mZmxpbmVkLCBmcmVlIH0uICovCj4gKyNkZWZp bmUgUEdDX3N0YXRlICAgICAgICAgUEdfbWFzaygzLCA5KQo+ICsjZGVmaW5lIFBHQ19zdGF0ZV9p bnVzZSAgIFBHX21hc2soMCwgOSkKPiArI2RlZmluZSBQR0Nfc3RhdGVfb2ZmbGluaW5nIFBHX21h c2soMSwgOSkKPiArI2RlZmluZSBQR0Nfc3RhdGVfb2ZmbGluZWQgUEdfbWFzaygyLCA5KQo+ICsj ZGVmaW5lIFBHQ19zdGF0ZV9mcmVlICAgIFBHX21hc2soMywgOSkKPiArI2RlZmluZSBwYWdlX3N0 YXRlX2lzKHBnLCBzdCkgKCgocGcpLT5jb3VudF9pbmZvJlBHQ19zdGF0ZSkgPT0gUEdDX3N0YXRl XyMjc3QpCj4gKwo+ICsgLyogQ291bnQgb2YgcmVmZXJlbmNlcyB0byB0aGlzIGZyYW1lLiAqLwo+ ICsjZGVmaW5lIFBHQ19jb3VudF93aWR0aCAgIFBHX3NoaWZ0KDkpCj4gKyNkZWZpbmUgUEdDX2Nv dW50X21hc2sgICAgKCgxVUw8PFBHQ19jb3VudF93aWR0aCktMSkKPiArCj4gKy8qCj4gKyAqIFBh Z2UgbmVlZHMgdG8gYmUgc2NydWJiZWQuIFNpbmNlIHRoaXMgYml0IGNhbiBvbmx5IGJlIHNldCBv biBhIHBhZ2UgdGhhdCBpcwo+ICsgKiBmcmVlIChpLmUuIGluIFBHQ19zdGF0ZV9mcmVlKSB3ZSBj YW4gcmV1c2UgUEdDX2FsbG9jYXRlZCBiaXQuCj4gKyAqLwo+ICsjZGVmaW5lIF9QR0NfbmVlZF9z Y3J1YiAgIF9QR0NfYWxsb2NhdGVkCj4gKyNkZWZpbmUgUEdDX25lZWRfc2NydWIgICAgUEdDX2Fs bG9jYXRlZAo+ICsKPiAgI2lmbmRlZiBDT05GSUdfQklHTUVNCj4gIC8qCj4gICAqIFRoaXMgZGVm aW5pdGlvbiBpcyBzb2xlbHkgZm9yIHRoZSB1c2UgaW4gc3RydWN0IHBhZ2VfaW5mbyAoYW5kCj4g QEAgLTgyLDcgKzE1Myw3IEBAIHN0cnVjdCBwYWdlX2luZm8KPiAgICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyB0eXBlOjU7ICAgLyogV2hhdCBraW5kIG9mIHNoYWRvdyBpcyB0aGlzPyAqLwo+ICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBpbm5lZDoxOyAvKiBJcyB0aGUgc2hhZG93IHBpbm5l ZD8gKi8KPiAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBoZWFkOjE7ICAgLyogSXMgdGhpcyB0 aGUgZmlyc3QgcGFnZSBvZiB0aGUgc2hhZG93PyAqLwo+IC0jZGVmaW5lIFBBR0VfU0hfUkVGQ09V TlRfV0lEVEggMjUKPiArI2RlZmluZSBQQUdFX1NIX1JFRkNPVU5UX1dJRFRIIChQR1RfY291bnRf d2lkdGggLSA3KQo+ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGNvdW50OlBBR0VfU0hfUkVG Q09VTlRfV0lEVEg7IC8qIFJlZmVyZW5jZSBjb3VudCAqLwo+ICAgICAgICAgIH0gc2g7Cj4gIAo+ IEBAIC0xOTgsNzcgKzI2OSw2IEBAIHN0cnVjdCBwYWdlX2luZm8KPiAgCj4gICN1bmRlZiBfX3Bk eF90Cj4gIAo+IC0jZGVmaW5lIFBHX3NoaWZ0KGlkeCkgICAoQklUU19QRVJfTE9ORyAtIChpZHgp KQo+IC0jZGVmaW5lIFBHX21hc2soeCwgaWR4KSAoeCAjIyBVTCA8PCBQR19zaGlmdChpZHgpKQo+ IC0KPiAtIC8qIFRoZSBmb2xsb3dpbmcgcGFnZSB0eXBlcyBhcmUgTVVUVUFMTFkgRVhDTFVTSVZF LiAqLwo+IC0jZGVmaW5lIFBHVF9ub25lICAgICAgICAgIFBHX21hc2soMCwgMykgIC8qIG5vIHNw ZWNpYWwgdXNlcyBvZiB0aGlzIHBhZ2UgICAqLwo+IC0jZGVmaW5lIFBHVF9sMV9wYWdlX3RhYmxl IFBHX21hc2soMSwgMykgIC8qIHVzaW5nIGFzIGFuIEwxIHBhZ2UgdGFibGU/ICAgICAqLwo+IC0j ZGVmaW5lIFBHVF9sMl9wYWdlX3RhYmxlIFBHX21hc2soMiwgMykgIC8qIHVzaW5nIGFzIGFuIEwy IHBhZ2UgdGFibGU/ICAgICAqLwo+IC0jZGVmaW5lIFBHVF9sM19wYWdlX3RhYmxlIFBHX21hc2so MywgMykgIC8qIHVzaW5nIGFzIGFuIEwzIHBhZ2UgdGFibGU/ICAgICAqLwo+IC0jZGVmaW5lIFBH VF9sNF9wYWdlX3RhYmxlIFBHX21hc2soNCwgMykgIC8qIHVzaW5nIGFzIGFuIEw0IHBhZ2UgdGFi bGU/ICAgICAqLwo+IC0jZGVmaW5lIFBHVF9zZWdfZGVzY19wYWdlIFBHX21hc2soNSwgMykgIC8q IHVzaW5nIHRoaXMgcGFnZSBpbiBhIEdEVC9MRFQ/ICAqLwo+IC0jZGVmaW5lIFBHVF9zaGFyZWRf cGFnZSAgIFBHX21hc2soNiwgMykgIC8qIENvVyBzaGFyYWJsZSBwYWdlICAgICAgICAgICAgICAq Lwo+IC0jZGVmaW5lIFBHVF93cml0YWJsZV9wYWdlIFBHX21hc2soNywgMykgIC8qIGhhcyB3cml0 YWJsZSBtYXBwaW5ncz8gICAgICAgICAqLwo+IC0jZGVmaW5lIFBHVF90eXBlX21hc2sgICAgIFBH X21hc2soNywgMykgIC8qIEJpdHMgNjEtNjMuICAgICAgICAgICAgICAgICAgICAqLwo+IC0KPiAt IC8qIFBhZ2UgaXMgbG9ja2VkPyAqLwo+IC0jZGVmaW5lIF9QR1RfbG9ja2VkICAgICAgIFBHX3No aWZ0KDQpCj4gLSNkZWZpbmUgUEdUX2xvY2tlZCAgICAgICAgUEdfbWFzaygxLCA0KQo+IC0gLyog T3duaW5nIGd1ZXN0IGhhcyBwaW5uZWQgdGhpcyBwYWdlIHRvIGl0cyBjdXJyZW50IHR5cGU/ICov Cj4gLSNkZWZpbmUgX1BHVF9waW5uZWQgICAgICAgUEdfc2hpZnQoNSkKPiAtI2RlZmluZSBQR1Rf cGlubmVkICAgICAgICBQR19tYXNrKDEsIDUpCj4gLSAvKiBIYXMgdGhpcyBwYWdlIGJlZW4gdmFs aWRhdGVkIGZvciB1c2UgYXMgaXRzIGN1cnJlbnQgdHlwZT8gKi8KPiAtI2RlZmluZSBfUEdUX3Zh bGlkYXRlZCAgICBQR19zaGlmdCg2KQo+IC0jZGVmaW5lIFBHVF92YWxpZGF0ZWQgICAgIFBHX21h c2soMSwgNikKPiAtIC8qIFBBRSBvbmx5OiBpcyB0aGlzIGFuIEwyIHBhZ2UgZGlyZWN0b3J5IGNv bnRhaW5pbmcgWGVuLXByaXZhdGUgbWFwcGluZ3M/ICovCj4gLSNkZWZpbmUgX1BHVF9wYWVfeGVu X2wyICAgUEdfc2hpZnQoNykKPiAtI2RlZmluZSBQR1RfcGFlX3hlbl9sMiAgICBQR19tYXNrKDEs IDcpCj4gLS8qIEhhcyB0aGlzIHBhZ2UgYmVlbiAqcGFydGlhbGx5KiB2YWxpZGF0ZWQgZm9yIHVz ZSBhcyBpdHMgY3VycmVudCB0eXBlPyAqLwo+IC0jZGVmaW5lIF9QR1RfcGFydGlhbCAgICAgIFBH X3NoaWZ0KDgpCj4gLSNkZWZpbmUgUEdUX3BhcnRpYWwgICAgICAgUEdfbWFzaygxLCA4KQo+IC0K PiAtIC8qIENvdW50IG9mIHVzZXMgb2YgdGhpcyBmcmFtZSBhcyBpdHMgY3VycmVudCB0eXBlLiAq Lwo+IC0jZGVmaW5lIFBHVF9jb3VudF93aWR0aCAgIFBHX3NoaWZ0KDgpCj4gLSNkZWZpbmUgUEdU X2NvdW50X21hc2sgICAgKCgxVUw8PFBHVF9jb3VudF93aWR0aCktMSkKPiAtCj4gLS8qIEFyZSB0 aGUgJ3R5cGUgbWFzaycgYml0cyBpZGVudGljYWw/ICovCj4gLSNkZWZpbmUgUEdUX3R5cGVfZXF1 YWwoeCwgeSkgKCEoKCh4KSBeICh5KSkgJiBQR1RfdHlwZV9tYXNrKSkKPiAtCj4gLSAvKiBDbGVh cmVkIHdoZW4gdGhlIG93bmluZyBndWVzdCAnZnJlZXMnIHRoaXMgcGFnZS4gKi8KPiAtI2RlZmlu ZSBfUEdDX2FsbG9jYXRlZCAgICBQR19zaGlmdCgxKQo+IC0jZGVmaW5lIFBHQ19hbGxvY2F0ZWQg ICAgIFBHX21hc2soMSwgMSkKPiAtIC8qIFBhZ2UgaXMgWGVuIGhlYXA/ICovCj4gLSNkZWZpbmUg X1BHQ194ZW5faGVhcCAgICAgUEdfc2hpZnQoMikKPiAtI2RlZmluZSBQR0NfeGVuX2hlYXAgICAg ICBQR19tYXNrKDEsIDIpCj4gLSAvKiBTZXQgd2hlbiBpcyB1c2luZyBhIHBhZ2UgYXMgYSBwYWdl IHRhYmxlICovCj4gLSNkZWZpbmUgX1BHQ19wYWdlX3RhYmxlICAgUEdfc2hpZnQoMykKPiAtI2Rl ZmluZSBQR0NfcGFnZV90YWJsZSAgICBQR19tYXNrKDEsIDMpCj4gLSAvKiAzLWJpdCBQQVQvUENE L1BXVCBjYWNoZS1hdHRyaWJ1dGUgaGludC4gKi8KPiAtI2RlZmluZSBQR0NfY2FjaGVhdHRyX2Jh c2UgUEdfc2hpZnQoNikKPiAtI2RlZmluZSBQR0NfY2FjaGVhdHRyX21hc2sgUEdfbWFzayg3LCA2 KQo+IC0gLyogUGFnZSBpcyBicm9rZW4/ICovCj4gLSNkZWZpbmUgX1BHQ19icm9rZW4gICAgICAg UEdfc2hpZnQoNykKPiAtI2RlZmluZSBQR0NfYnJva2VuICAgICAgICBQR19tYXNrKDEsIDcpCj4g LSAvKiBNdXR1YWxseS1leGNsdXNpdmUgcGFnZSBzdGF0ZXM6IHsgaW51c2UsIG9mZmxpbmluZywg b2ZmbGluZWQsIGZyZWUgfS4gKi8KPiAtI2RlZmluZSBQR0Nfc3RhdGUgICAgICAgICBQR19tYXNr KDMsIDkpCj4gLSNkZWZpbmUgUEdDX3N0YXRlX2ludXNlICAgUEdfbWFzaygwLCA5KQo+IC0jZGVm aW5lIFBHQ19zdGF0ZV9vZmZsaW5pbmcgUEdfbWFzaygxLCA5KQo+IC0jZGVmaW5lIFBHQ19zdGF0 ZV9vZmZsaW5lZCBQR19tYXNrKDIsIDkpCj4gLSNkZWZpbmUgUEdDX3N0YXRlX2ZyZWUgICAgUEdf bWFzaygzLCA5KQo+IC0jZGVmaW5lIHBhZ2Vfc3RhdGVfaXMocGcsIHN0KSAoKChwZyktPmNvdW50 X2luZm8mUEdDX3N0YXRlKSA9PSBQR0Nfc3RhdGVfIyNzdCkKCldoYXQncyB0aGUgcG9pbnQgb2Yg bW92aW5nIHRoaXMgY29kZT8gIEFuZCBhcmUgdGhlcmUgYW55IGltcG9ydGFudCBjaGFuZ2VzPwoK SXQgd291bGQgYmUgYSBsb3QgZWFzaWVyIHRvIHJldmlldyBpZiB5b3Ugc2VwYXJhdGVkIGNvZGUg bW90aW9uIGZyb20KY29kZSBjaGFuZ2VzOyBidXQgaWYgeW91IGRvbid0IHdhbnQgdG8gZG8gdGhh dCwgeW91IG5lZWQgdG8gbWFrZSBpdApjbGVhciB3aGF0IHlvdSdyZSBkb2luZyBpbiB5b3VyIGNo YW5nZWxvZy4KCiAtR2VvcmdlCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9q ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVu LWRldmVs