From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wen Congyang Subject: Re: [PATCH v10 26/31] COLO proxy: implement setup/teardown of COLO proxy module Date: Mon, 14 Mar 2016 17:13:24 +0800 Message-ID: <56E680B4.7060308@cn.fujitsu.com> References: <1456109555-28299-1-git-send-email-wency@cn.fujitsu.com> <1456109555-28299-27-git-send-email-wency@cn.fujitsu.com> <20160311222510.GB23682@char.us.oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160311222510.GB23682@char.us.oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Konrad Rzeszutek Wilk Cc: Lars Kurth , Changlong Xie , Wei Liu , Ian Campbell , Andrew Cooper , Jiang Yunhong , Dong Eddie , xen devel , Gui Jianfeng , Shriram Rajagopalan , Ian Jackson , Yang Hongyang List-Id: xen-devel@lists.xenproject.org T24gMDMvMTIvMjAxNiAwNjoyNSBBTSwgS29ucmFkIFJ6ZXN6dXRlayBXaWxrIHdyb3RlOgo+PiAr ZXh0ZXJuIGludCBjb2xvX3Byb3h5X3NldHVwKGxpYnhsX19jb2xvX3Byb3h5X3N0YXRlICpjcHMp Owo+PiArZXh0ZXJuIHZvaWQgY29sb19wcm94eV90ZWFyZG93bihsaWJ4bF9fY29sb19wcm94eV9z dGF0ZSAqY3BzKTsKPj4gICNlbmRpZgo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxf Y29sb19wcm94eS5jIGIvdG9vbHMvbGlieGwvbGlieGxfY29sb19wcm94eS5jCj4+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAuLmUwN2U2NDAKPj4gLS0tIC9kZXYvbnVsbAo+ PiArKysgYi90b29scy9saWJ4bC9saWJ4bF9jb2xvX3Byb3h5LmMKPj4gQEAgLTAsMCArMSwyMzAg QEAKPj4gKy8qCj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTUgRlVKSVRTVSBMSU1JVEVECj4gCj4g MjAxNj8KClllcywgSSB3aWxsIGNoZWNrIGFsbCBuZXcgZmlsZXMuCgo+PiArICogQXV0aG9yOiBZ YW5nIEhvbmd5YW5nIDxob25neWFuZy55YW5nQGVhc3lzdGFjay5jbj4KPj4gKyAqCj4+ICsgKiBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQo+PiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkCj4+ICsgKiBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIuMSBvbmx5LiB3aXRoIHRoZSBzcGVjaWFsCj4+ICsg KiBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gZmlsZSBMSUNFTlNFLgo+PiArICoK Pj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAo+PiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKPj4gKyAqIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+PiArICovCj4+ICsKPj4g KyNpbmNsdWRlICJsaWJ4bF9vc2RlcHMuaCIgLyogbXVzdCBjb21lIGJlZm9yZSBhbnkgb3RoZXIg aGVhZGVycyAqLwo+PiArCj4+ICsjaW5jbHVkZSAibGlieGxfaW50ZXJuYWwuaCIKPj4gKyNpbmNs dWRlICJsaWJ4bF9jb2xvLmgiCj4+ICsjaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgo+PiArCj4+ ICsjZGVmaW5lIE5FVExJTktfQ09MTyAyOAo+IAo+IENhbiB5b3UgaW5jbHVkZSBhIGNvbW1lbnQg d2h5IDI4PyBXaHkgbm90IDMxNDE1PwoKT0ssIHdpbGwgYWRkIGEgY29tbWVudCB0byBkZXNjcmli ZSBpdC4KCj4gCj4+ICsKPj4gK2VudW0gY29sb19uZXRsaW5rX29wIHsKPj4gKyAgICBDT0xPX1FV RVJZX0NIRUNLUE9JTlQgPSAoTkxNU0dfTUlOX1RZUEUgKyAxKSwKPj4gKyAgICBDT0xPX0NIRUNL UE9JTlQsCj4+ICsgICAgQ09MT19GQUlMT1ZFUiwKPj4gKyAgICBDT0xPX1BST1hZX0lOSVQsCj4+ ICsgICAgQ09MT19QUk9YWV9SRVNFVCwgLyogVU5VU0VELCB3aWxsIGJlIHVzZWQgZm9yIGNvbnRp bnVvdXMgRlQgKi8KPj4gK307Cj4+ICsKPj4gKy8qID09PT09PT09PSBjb2xvLXByb3h5OiBoZWxw ZXIgZnVuY3Rpb25zID09PT09PT09PT0gKi8KPj4gKwo+PiArc3RhdGljIGludCBjb2xvX3Byb3h5 X3NlbmQobGlieGxfX2NvbG9fcHJveHlfc3RhdGUgKmNwcywgdWludDhfdCAqYnVmZiwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHNpemUsIGludCB0eXBlKQo+PiArewo+ PiArICAgIHN0cnVjdCBzb2NrYWRkcl9ubCBzYTsKPj4gKyAgICBzdHJ1Y3Qgbmxtc2doZHIgbXNn Owo+PiArICAgIHN0cnVjdCBpb3ZlYyBpb3Y7Cj4+ICsgICAgc3RydWN0IG1zZ2hkciBtaDsKPj4g KyAgICBpbnQgcmV0Owo+PiArCj4+ICsgICAgU1RBVEVfQU9fR0MoY3BzLT5hbyk7Cj4+ICsKPj4g KyAgICBtZW1zZXQoJnNhLCAwLCBzaXplb2Yoc2EpKTsKPj4gKyAgICBzYS5ubF9mYW1pbHkgPSBB Rl9ORVRMSU5LOwo+PiArICAgIHNhLm5sX3BpZCA9IDA7Cj4+ICsgICAgc2EubmxfZ3JvdXBzID0g MDsKPj4gKwo+PiArICAgIG1zZy5ubG1zZ19sZW4gPSBOTE1TR19TUEFDRSgwKTsKPj4gKyAgICBt c2cubmxtc2dfZmxhZ3MgPSBOTE1fRl9SRVFVRVNUOwo+PiArICAgIGlmICh0eXBlID09IENPTE9f UFJPWFlfSU5JVCkgewo+PiArICAgICAgICBtc2cubmxtc2dfZmxhZ3MgfD0gTkxNX0ZfQUNLOwo+ PiArICAgIH0KPiAKPiBJIGRvbid0IHRoaW5rIHlvdSBuZWVkIHRoZSB7IH0/CgpZZXMsIHdpbGwg Zml4IGl0IGluIHRoZSBuZXh0IHZlcnNpb24uCgo+IAo+IEFoLCB5dXA6Cj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKPiA1LiBCbG9jayBzdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCj4gRXZlcnkgaW5kZW50ZWQgc3RhdGVtZW50IGlzIGJyYWNlZCBhcGFydCBmcm9tIGJs b2NrcyB0aGF0IGNvbnRhaW4ganVzdCAgICAgICAgICAKPiBvbmUgc3RhdGVtZW50LiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAo+IAo+PiArICAgIG1zZy5ubG1zZ19zZXEgPSAwOwo+PiArICAgIC8qIFRoaXMgaXMgdW50cnVz dHkgKi8KPiAKPiBVbW0sIGNhbiB5b3UgYmUgbW9yZSBzcGVjaWZpYyBwbHM/Cj4gCj4+ICsgICAg bXNnLm5sbXNnX3BpZCA9IGNwcy0+aW5kZXg7Cj4+ICsgICAgbXNnLm5sbXNnX3R5cGUgPSB0eXBl Owo+PiArCj4+ICsgICAgaW92Lmlvdl9iYXNlID0gJm1zZzsKPj4gKyAgICBpb3YuaW92X2xlbiA9 IG1zZy5ubG1zZ19sZW47Cj4+ICsKPj4gKyAgICBtaC5tc2dfbmFtZSA9ICZzYTsKPj4gKyAgICBt aC5tc2dfbmFtZWxlbiA9IHNpemVvZihzYSk7Cj4+ICsgICAgbWgubXNnX2lvdiA9ICZpb3Y7Cj4+ ICsgICAgbWgubXNnX2lvdmxlbiA9IDE7Cj4+ICsgICAgbWgubXNnX2NvbnRyb2wgPSBOVUxMOwo+ PiArICAgIG1oLm1zZ19jb250cm9sbGVuID0gMDsKPj4gKyAgICBtaC5tc2dfZmxhZ3MgPSAwOwo+ PiArCj4+ICsgICAgcmV0ID0gc2VuZG1zZyhjcHMtPnNvY2tfZmQsICZtaCwgMCk7Cj4+ICsgICAg aWYgKHJldCA8PSAwKSB7Cj4+ICsgICAgICAgIExPRyhFUlJPUiwgImNhbid0IHNlbmQgbXNnIHRv IGtlcm5lbCBieSBuZXRsaW5rOiAlcyIsCj4+ICsgICAgICAgICAgICBzdHJlcnJvcihlcnJubykp Owo+PiArICAgIH0KPj4gKwo+PiArICAgIHJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gKy8qIGVy cm9yOiByZXR1cm4gLTEsIG90aGVyd2lzZSByZXR1cm4gMCAqLwo+PiArc3RhdGljIGludDY0X3Qg Y29sb19wcm94eV9yZWN2KGxpYnhsX19jb2xvX3Byb3h5X3N0YXRlICpjcHMsIHVpbnQ4X3QgKipi dWZmLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB0aW1l b3V0X3VzKQo+PiArewo+PiArICAgIHN0cnVjdCBzb2NrYWRkcl9ubCBzYTsKPj4gKyAgICBzdHJ1 Y3QgaW92ZWMgaW92Owo+PiArICAgIHN0cnVjdCBtc2doZHIgbWggPSB7Cj4+ICsgICAgICAgIC5t c2dfbmFtZSA9ICZzYSwKPj4gKyAgICAgICAgLm1zZ19uYW1lbGVuID0gc2l6ZW9mKHNhKSwKPj4g KyAgICAgICAgLm1zZ19pb3YgPSAmaW92LAo+PiArICAgICAgICAubXNnX2lvdmxlbiA9IDEsCj4+ ICsgICAgfTsKPj4gKyAgICBzdHJ1Y3QgdGltZXZhbCB0djsKPj4gKyAgICB1aW50MzJfdCBzaXpl ID0gMTYzODQ7Cj4+ICsgICAgaW50NjRfdCBsZW4gPSAwOwo+PiArICAgIGludCByZXQ7Cj4+ICsK Pj4gKyAgICBTVEFURV9BT19HQyhjcHMtPmFvKTsKPj4gKyAgICB1aW50OF90ICp0bXAgPSBsaWJ4 bF9fbWFsbG9jKE5PR0MsIHNpemUpOwo+PiArCj4+ICsgICAgaWYgKHRpbWVvdXRfdXMpIHsKPj4g KyAgICAgICAgdHYudHZfc2VjID0gdGltZW91dF91cyAvIDEwMDAwMDA7Cj4+ICsgICAgICAgIHR2 LnR2X3VzZWMgPSB0aW1lb3V0X3VzICUgMTAwMDAwMDsKPj4gKyAgICAgICAgc2V0c29ja29wdChj cHMtPnNvY2tfZmQsIFNPTF9TT0NLRVQsIFNPX1JDVlRJTUVPLCAmdHYsIHNpemVvZih0dikpOwo+ PiArICAgIH0KPj4gKwo+PiArICAgIGlvdi5pb3ZfYmFzZSA9IHRtcDsKPj4gKyAgICBpb3YuaW92 X2xlbiA9IHNpemU7Cj4+ICtuZXh0Ogo+PiArICAgIHJldCA9IHJlY3Ztc2coY3BzLT5zb2NrX2Zk LCAmbWgsIDApOwo+PiArICAgIGlmIChyZXQgPD0gMCkgewo+PiArICAgICAgICBpZiAoZXJybm8g IT0gRUFHQUlOICYmIGVycm5vICE9IEVXT1VMREJMT0NLKQo+IAo+IC1FSU5UUiA/CgpJSVJDLCBX QUdBSU4gYW5kIEVXT1VMREJMT0NLIG1heSBoYXZlIGRpZmZlcmVudCB2YWx1ZSBpbiBzb21lIHN5 c3RlbS4KRUlOVFIgaXMgbm90IGhhbmRsZWQgaGVyZS4KCj4gCj4+ICsgICAgICAgICAgICBMT0dF KEVSUk9SLCAiY2FuJ3QgcmVjdiBtc2cgZnJvbSBrZXJuZWwgYnkgbmV0bGluayIpOwo+PiArICAg ICAgICBnb3RvIGVycjsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICBsZW4gKz0gcmV0Owo+PiArICAg IGlmIChtaC5tc2dfZmxhZ3MgJiBNU0dfVFJVTkMpIHsKPj4gKyAgICAgICAgc2l6ZSArPSAxNjM4 NDsKPj4gKyAgICAgICAgdG1wID0gbGlieGxfX3JlYWxsb2MoTk9HQywgdG1wLCBzaXplKTsKPiAK PiBZb3UgcmVhbGx5IHNob3VsZCBjaGVjayAndG1wJy4KPiAKPiBJZiB0aGlzIGxvb3AgY29udGlu dWVzIG9uIGZvciBzb21lIHRpbWUgdGhlICdzaXplJyBtYXkgYmUKPiBpbiBtaWxpb25zIGFuZCB0 aGlzIHJlYWxsb2Mgd2lsbCBmYWlsLgoKT0ssIHdpbGwgZml4IGl0IGluIHRoZSBuZXh0IHZlcnNp b24uCgo+IAo+PiArICAgICAgICBpb3YuaW92X2Jhc2UgPSB0bXAgKyBsZW47Cj4+ICsgICAgICAg IGlvdi5pb3ZfbGVuID0gc2l6ZSAtIGxlbjsKPj4gKyAgICAgICAgZ290byBuZXh0Owo+IAo+PiAr ICAgIH0KPj4gKwo+PiArICAgICpidWZmID0gdG1wOwo+PiArICAgIHJldCA9IGxlbjsKPj4gKyAg ICBnb3RvIG91dDsKPj4gKwo+PiArZXJyOgo+PiArICAgIGZyZWUodG1wKTsKPj4gKyAgICAqYnVm ZiA9IE5VTEw7Cj4+ICsKPj4gK291dDoKPj4gKyAgICBpZiAodGltZW91dF91cykgewo+PiArICAg ICAgICB0di50dl9zZWMgPSAwOwo+PiArICAgICAgICB0di50dl91c2VjID0gMDsKPj4gKyAgICAg ICAgc2V0c29ja29wdChjcHMtPnNvY2tfZmQsIFNPTF9TT0NLRVQsIFNPX1JDVlRJTUVPLCAmdHYs IHNpemVvZih0dikpOwo+PiArICAgIH0KPj4gKyAgICByZXR1cm4gcmV0Owo+PiArfQo+PiArCj4+ ICsvKiA9PT09PT09PT0gY29sby1wcm94eTogc2V0dXAgYW5kIHRlYXJkb3duID09PT09PT09PT0g Ki8KPj4gKwo+PiAraW50IGNvbG9fcHJveHlfc2V0dXAobGlieGxfX2NvbG9fcHJveHlfc3RhdGUg KmNwcykKPj4gK3sKPj4gKyAgICBpbnQgc2tmZCA9IDA7Cj4+ICsgICAgc3RydWN0IHNvY2thZGRy X25sIHNhOwo+PiArICAgIHN0cnVjdCBubG1zZ2hkciAqaDsKPj4gKyAgICBpbnQgaSA9IDE7Cj4+ ICsgICAgaW50IHJldCA9IEVSUk9SX0ZBSUw7Cj4+ICsgICAgdWludDhfdCAqYnVmZiA9IE5VTEw7 Cj4+ICsgICAgaW50NjRfdCBzaXplOwo+PiArCj4+ICsgICAgU1RBVEVfQU9fR0MoY3BzLT5hbyk7 Cj4+ICsKPj4gKyAgICBza2ZkID0gc29ja2V0KFBGX05FVExJTkssIFNPQ0tfUkFXLCBORVRMSU5L X0NPTE8pOwo+PiArICAgIGlmIChza2ZkIDwgMCkgewo+PiArICAgICAgICBMT0coRVJST1IsICJj YW4gbm90IGNyZWF0ZSBhIG5ldGxpbmsgc29ja2V0OiAlcyIsIHN0cmVycm9yKGVycm5vKSk7Cj4+ ICsgICAgICAgIGdvdG8gb3V0Owo+PiArICAgIH0KPj4gKyAgICBjcHMtPnNvY2tfZmQgPSBza2Zk Owo+PiArICAgIG1lbXNldCgmc2EsIDAsIHNpemVvZihzYSkpOwo+PiArICAgIHNhLm5sX2ZhbWls eSA9IEFGX05FVExJTks7Cj4+ICsgICAgc2EubmxfZ3JvdXBzID0gMDsKPj4gK3JldHJ5Ogo+PiAr ICAgIHNhLm5sX3BpZCA9IGkrKzsKPj4gKwo+PiArICAgIGlmIChpID4gMTApIHsKPj4gKyAgICAg ICAgTE9HKEVSUk9SLCAibmV0bGluayBiaW5kIGVycm9yIik7Cj4+ICsgICAgICAgIGdvdG8gb3V0 Owo+PiArICAgIH0KPj4gKwo+PiArICAgIHJldCA9IGJpbmQoc2tmZCwgKHN0cnVjdCBzb2NrYWRk ciAqKSZzYSwgc2l6ZW9mKHNhKSk7Cj4+ICsgICAgaWYgKHJldCA8IDAgJiYgZXJybm8gPT0gRUFE RFJJTlVTRSkgewo+PiArICAgICAgICBMT0coRVJST1IsICJjb2xvIGluZGV4ICVkIGhhcyBhbHJl YWR5IGluIHVzZWQiLCBzYS5ubF9waWQpOwo+PiArICAgICAgICBnb3RvIHJldHJ5Owo+PiArICAg IH0gZWxzZSBpZiAocmV0IDwgMCkgewo+PiArICAgICAgICBMT0coRVJST1IsICJuZXRsaW5rIGJp bmQgZXJyb3IiKTsKPj4gKyAgICAgICAgZ290byBvdXQ7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAg Y3BzLT5pbmRleCA9IHNhLm5sX3BpZDsKPj4gKyAgICByZXQgPSBjb2xvX3Byb3h5X3NlbmQoY3Bz LCBOVUxMLCAwLCBDT0xPX1BST1hZX0lOSVQpOwo+PiArICAgIGlmIChyZXQgPCAwKSB7Cj4+ICsg ICAgICAgIGdvdG8gb3V0Owo+PiArICAgIH0KPiAKPiBEaXR0by4gWW91IGNhbiByZW1vdmUgaXQu CgpPSywgd2lsbCBjaGVjayBhbGwgY29kZXMuCgpUaGFua3MKV2VuIENvbmd5YW5nCgo+IAo+PiAr ICAgIC8qIHJlY2VpdmUgYWNrICovCj4+ICsgICAgc2l6ZSA9IGNvbG9fcHJveHlfcmVjdihjcHMs ICZidWZmLCA1MDAwMDApOwo+PiArICAgIGlmIChzaXplIDwgMCkgewo+PiArICAgICAgICBMT0co RVJST1IsICJDYW4ndCByZWN2IG1zZyBmcm9tIGtlcm5lbCBieSBuZXRsaW5rOiAlcyIsCj4+ICsg ICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOwo+PiArICAgICAgICBnb3RvIG91dDsKPj4gKyAg ICB9Cj4+ICsKPj4gKyAgICBpZiAoc2l6ZSkgewo+PiArICAgICAgICBoID0gKHN0cnVjdCBubG1z Z2hkciAqKWJ1ZmY7Cj4+ICsgICAgICAgIGlmIChoLT5ubG1zZ190eXBlID09IE5MTVNHX0VSUk9S KSB7Cj4+ICsgICAgICAgICAgICAvKiBhY2sncyB0eXBlIGlzIE5MTVNHX0VSUk9SICovCj4+ICsg ICAgICAgICAgICBzdHJ1Y3Qgbmxtc2dlcnIgKmVyciA9IChzdHJ1Y3Qgbmxtc2dlcnIgKilOTE1T R19EQVRBKGgpOwo+PiArCj4+ICsgICAgICAgICAgICBpZiAoc2l6ZSAtIHNpemVvZigqaCkgPCBz aXplb2YoKmVycikpIHsKPj4gKyAgICAgICAgICAgICAgICBMT0coRVJST1IsICJOTE1TR19MRU5H VEggaXMgdG9vIHNob3J0Iik7Cj4+ICsgICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4+ICsgICAg ICAgICAgICB9Cj4+ICsKPj4gKyAgICAgICAgICAgIGlmIChlcnItPmVycm9yKSB7Cj4+ICsgICAg ICAgICAgICAgICAgTE9HKEVSUk9SLCAiTkxNU0dfRVJST1IgY29udGFpbnMgZXJyb3IgJWQiLCBl cnItPmVycm9yKTsKPj4gKyAgICAgICAgICAgICAgICBnb3RvIG91dDsKPj4gKyAgICAgICAgICAg IH0KPj4gKyAgICAgICAgfQo+PiArICAgIH0KPj4gKwo+PiArICAgIHJldCA9IDA7Cj4+ICsKPj4g K291dDoKPj4gKyAgICBmcmVlKGJ1ZmYpOwo+PiArICAgIGlmIChyZXQpIHsKPj4gKyAgICAgICAg Y2xvc2UoY3BzLT5zb2NrX2ZkKTsKPj4gKyAgICAgICAgY3BzLT5zb2NrX2ZkID0gLTE7Cj4+ICsg ICAgfQo+PiArICAgIHJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gK3ZvaWQgY29sb19wcm94eV90 ZWFyZG93bihsaWJ4bF9fY29sb19wcm94eV9zdGF0ZSAqY3BzKQo+PiArewo+PiArICAgIGlmIChj cHMtPnNvY2tfZmQgPj0gMCkgewo+PiArICAgICAgICBjbG9zZShjcHMtPnNvY2tfZmQpOwo+PiAr ICAgICAgICBjcHMtPnNvY2tfZmQgPSAtMTsKPj4gKyAgICB9Cj4+ICt9Cj4+IGRpZmYgLS1naXQg YS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJu YWwuaAo+PiBpbmRleCAzYWY1ZmRkLi4zYjQ0YjA5IDEwMDY0NAo+PiAtLS0gYS90b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oCj4+ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgK Pj4gQEAgLTMxMTIsNiArMzExMiwxNSBAQCBsaWJ4bF9fc3RyZWFtX3JlYWRfaW51c2UoY29uc3Qg bGlieGxfX3N0cmVhbV9yZWFkX3N0YXRlICpzdHJlYW0pCj4+ICB9Cj4+ICAKPj4gIC8qLS0tLS0g Y29sbyByZWxhdGVkIHN0YXRlIHN0cnVjdHVyZSAtLS0tLSovCj4+ICt0eXBlZGVmIHN0cnVjdCBs aWJ4bF9fY29sb19wcm94eV9zdGF0ZSBsaWJ4bF9fY29sb19wcm94eV9zdGF0ZTsKPj4gK3N0cnVj dCBsaWJ4bF9fY29sb19wcm94eV9zdGF0ZSB7Cj4+ICsgICAgLyogc2V0IGJ5IGNhbGxlciBvZiBj b2xvX3Byb3h5X3NldHVwICovCj4+ICsgICAgbGlieGxfX2FvICphbzsKPj4gKwo+PiArICAgIGlu dCBzb2NrX2ZkOwo+PiArICAgIGludCBpbmRleDsKPj4gK307Cj4+ICsKPj4gIHR5cGVkZWYgc3Ry dWN0IGxpYnhsX19jb2xvX3NhdmVfc3RhdGUgbGlieGxfX2NvbG9fc2F2ZV9zdGF0ZTsKPj4gIHN0 cnVjdCBsaWJ4bF9fY29sb19zYXZlX3N0YXRlIHsKPj4gICAgICBpbnQgc2VuZF9mZDsKPj4gQEAg LTMxMjYsNiArMzEzNSw5IEBAIHN0cnVjdCBsaWJ4bF9fY29sb19zYXZlX3N0YXRlIHsKPj4gICAg ICAvKiBwcml2YXRlLCB1c2VkIGJ5IHFkaXNrIGJsb2NrIHJlcGxpY2F0aW9uICovCj4+ICAgICAg Ym9vbCBxZGlza191c2VkOwo+PiAgICAgIGJvb2wgcWRpc2tfc2V0dXBlZDsKPj4gKwo+PiArICAg IC8qIHByaXZhdGUsIHVzZWQgYnkgY29sby1wcm94eSAqLwo+PiArICAgIGxpYnhsX19jb2xvX3By b3h5X3N0YXRlIGNwczsKPj4gIH07Cj4+ICAKPj4gIC8qLS0tLS0gRG9tYWluIHN1c3BlbmQgKHNh dmUpIHN0YXRlIHN0cnVjdHVyZSAtLS0tLSovCj4+IEBAIC0zNTM1LDYgKzM1NDcsOSBAQCBzdHJ1 Y3QgbGlieGxfX2NvbG9fcmVzdG9yZV9zdGF0ZSB7Cj4+ICAgICAgYm9vbCBxZGlza19zZXR1cGVk Owo+PiAgICAgIGNvbnN0IGNoYXIgKmhvc3Q7Cj4+ICAgICAgY29uc3QgY2hhciAqcG9ydDsKPj4g Kwo+PiArICAgIC8qIHByaXZhdGUsIHVzZWQgYnkgY29sby1wcm94eSAqLwo+PiArICAgIGxpYnhs X19jb2xvX3Byb3h5X3N0YXRlIGNwczsKPj4gIH07Cj4+ICAKPj4gIHN0cnVjdCBsaWJ4bF9fZG9t YWluX2NyZWF0ZV9zdGF0ZSB7Cj4+IC0tIAo+PiAyLjUuMAo+Pgo+Pgo+Pgo+IAo+IAo+IC4KPiAK CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==