From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wen Congyang Subject: Re: [PATCH v10 22/31] implement the cmdline for COLO Date: Thu, 3 Mar 2016 09:30:10 +0800 Message-ID: <56D793A2.2080303@cn.fujitsu.com> References: <1456109555-28299-1-git-send-email-wency@cn.fujitsu.com> <1456109555-28299-23-git-send-email-wency@cn.fujitsu.com> <20160302150348.GC1657@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160302150348.GC1657@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Wei Liu Cc: Lars Kurth , Changlong Xie , Ian Campbell , Andrew Cooper , Jiang Yunhong , Ian Jackson , xen devel , Dong Eddie , Gui Jianfeng , Shriram Rajagopalan , Yang Hongyang List-Id: xen-devel@lists.xenproject.org T24gMDMvMDIvMjAxNiAxMTowMyBQTSwgV2VpIExpdSB3cm90ZToKPiBPbiBNb24sIEZlYiAyMiwg MjAxNiBhdCAxMDo1MjoyNkFNICswODAwLCBXZW4gQ29uZ3lhbmcgd3JvdGU6Cj4gWy4uLl0KPj4g KyAgICBpZiAobGlieGxfZGVmYm9vbF92YWwoaW5mby0+Y29sbykpIHsKPj4gKyAgICAgICAgaWYg KGxpYnhsX2RlZmJvb2xfdmFsKGluZm8tPmNvbXByZXNzaW9uKSkgewo+IAo+IFRoaXMgY2FuIGJl IHNpbXBsaWZpZWQgYXMKPiAKPiAgICAgICAgaWYgKGxpYnhsX2RlZmJvb2xfdmFsKHh4eCkgJiYg bGlieGxfZGVmYm9vbF92YWwoeXl5KSkKCk9LLiB3aWxsIGZpeCBpdCBpbiB0aGUgbmV4dCB2ZXJz aW9uLgoKPiAKPj4gKyAgICAgICAgICAgIExPRyhFUlJPUiwgImNhbm5vdCB1c2UgbWVtb3J5IGNo ZWNrcG9pbnQgY29tcHJlc3Npb24gaW4gQ09MTyBtb2RlIik7Cj4+ICsgICAgICAgICAgICByYyA9 IEVSUk9SX0ZBSUw7Cj4+ICsgICAgICAgICAgICBnb3RvIG91dDsKPj4gKyAgICAgICAgfQo+PiAr ICAgIH0KPj4gKwo+PiAgICAgIGlmICghbGlieGxfZGVmYm9vbF92YWwoaW5mby0+YWxsb3dfdW5z YWZlKSAmJgo+PiAgICAgICAgICAobGlieGxfZGVmYm9vbF92YWwoaW5mby0+YmxhY2tob2xlKSB8 fAo+PiAgICAgICAgICAgIWxpYnhsX2RlZmJvb2xfdmFsKGluZm8tPm5ldGJ1ZikgfHwKPj4gQEAg LTg3Niw3ICs4OTIsMTAgQEAgaW50IGxpYnhsX2RvbWFpbl9yZW11c19zdGFydChsaWJ4bF9jdHgg KmN0eCwgbGlieGxfZG9tYWluX3JlbXVzX2luZm8gKmluZm8sCj4+ICAgICAgZHNzLT5saXZlID0g MTsKPj4gICAgICBkc3MtPmRlYnVnID0gMDsKPj4gICAgICBkc3MtPnJlbXVzID0gaW5mbzsKPj4g LSAgICBkc3MtPmNoZWNrcG9pbnRlZF9zdHJlYW0gPSBMSUJYTF9DSEVDS1BPSU5URURfU1RSRUFN X1JFTVVTOwo+PiArICAgIGlmIChsaWJ4bF9kZWZib29sX3ZhbChpbmZvLT5jb2xvKSkKPj4gKyAg ICAgICAgZHNzLT5jaGVja3BvaW50ZWRfc3RyZWFtID0gTElCWExfQ0hFQ0tQT0lOVEVEX1NUUkVB TV9DT0xPOwo+PiArICAgIGVsc2UKPj4gKyAgICAgICAgZHNzLT5jaGVja3BvaW50ZWRfc3RyZWFt ID0gTElCWExfQ0hFQ0tQT0lOVEVEX1NUUkVBTV9SRU1VUzsKPj4gIAo+PiAgICAgIGFzc2VydChp bmZvKTsKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jIGIvdG9v bHMvbGlieGwveGxfY21kaW1wbC5jCj4+IGluZGV4IGRmNzI2OGIuLjBkYzcyMjAgMTAwNjQ0Cj4+ IC0tLSBhL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYwo+PiArKysgYi90b29scy9saWJ4bC94bF9j bWRpbXBsLmMKPj4gQEAgLTQ0NDAsNiArNDQ0MCw4IEBAIHN0YXRpYyB2b2lkIG1pZ3JhdGVfcmVj ZWl2ZShpbnQgZGVidWcsIGludCBkYWVtb25pemUsIGludCBtb25pdG9yLAo+PiAgICAgIGNoYXIg cmNfYnVmOwo+PiAgICAgIGNoYXIgKm1pZ3JhdGlvbl9kb21uYW1lOwo+PiAgICAgIHN0cnVjdCBk b21haW5fY3JlYXRlIGRvbV9pbmZvOwo+PiArICAgIGNvbnN0IGNoYXIgKmhhID0gY2hlY2twb2lu dGVkID09IExJQlhMX0NIRUNLUE9JTlRFRF9TVFJFQU1fQ09MTyA/Cj4+ICsgICAgICAgICAgICAg ICAgICAgICAiQ09MTyIgOiAiUmVtdXMiOwo+PiAgCj4+ICAgICAgc2lnbmFsKFNJR1BJUEUsIFNJ R19JR04pOwo+PiAgICAgIC8qIGlmIHdlIGdldCBTSUdQSVBFIHdlJ2QgcmF0aGVyIGp1c3QgaGF2 ZSBpdCBhcyBhbiBlcnJvciAqLwo+PiBAQCAtNDQ2MCw2ICs0NDYyLDkgQEAgc3RhdGljIHZvaWQg bWlncmF0ZV9yZWNlaXZlKGludCBkZWJ1ZywgaW50IGRhZW1vbml6ZSwgaW50IG1vbml0b3IsCj4+ ICAgICAgZG9tX2luZm8uc2VuZF9iYWNrX2ZkID0gc2VuZF9mZDsKPj4gICAgICBkb21faW5mby5t aWdyYXRpb25fZG9tbmFtZV9yID0gJm1pZ3JhdGlvbl9kb21uYW1lOwo+PiAgICAgIGRvbV9pbmZv LmNoZWNrcG9pbnRlZF9zdHJlYW0gPSBjaGVja3BvaW50ZWQ7Cj4+ICsgICAgaWYgKGNoZWNrcG9p bnRlZCA9PSBMSUJYTF9DSEVDS1BPSU5URURfU1RSRUFNX0NPTE8pCj4+ICsgICAgICAgIC8qIENP TE8gdXNlcyBzdGRvdXQgdG8gc2VuZCBjb250cm9sIG1lc3NhZ2UgdG8gbWFzdGVyICovCj4+ICsg ICAgICAgIGRvbV9pbmZvLnF1aWV0ID0gMTsKPj4gIAo+IAo+IEl0IHNlZW1zIHRoYXQgZG9tX2lu Zm8tPnF1aWV0IGFmZmVjdHMgc3RkZXJyLCBub3Qgc3Rkb3V0LiBTZWUgdGhlIG9ubHkKPiBwbGFj ZSB0aGF0IGNoZWNrcyB0aGlzIGluIHhsX2NtZGltcGwuYy4KPiAKPj4gICAgICByYyA9IGNyZWF0 ZV9kb21haW4oJmRvbV9pbmZvKTsKPj4gICAgICBpZiAocmMgPCAwKSB7Cj4+IEBAIC00NDcyLDEx ICs0NDc3LDEyIEBAIHN0YXRpYyB2b2lkIG1pZ3JhdGVfcmVjZWl2ZShpbnQgZGVidWcsIGludCBk YWVtb25pemUsIGludCBtb25pdG9yLAo+PiAgCj4+ICAgICAgc3dpdGNoIChjaGVja3BvaW50ZWQp IHsKPj4gICAgICBjYXNlIExJQlhMX0NIRUNLUE9JTlRFRF9TVFJFQU1fUkVNVVM6Cj4+ICsgICAg Y2FzZSBMSUJYTF9DSEVDS1BPSU5URURfU1RSRUFNX0NPTE86Cj4+ICAgICAgICAgIC8qIElmIHdl IGFyZSBoZXJlLCBpdCBtZWFucyB0aGF0IHRoZSBzZW5kZXIgKHByaW1hcnkpIGhhcyBjcmFzaGVk Lgo+PiAgICAgICAgICAgKiBUT0RPOiBTcGxpdC1CcmFpbiBDaGVjay4KPj4gICAgICAgICAgICov Cj4+IC0gICAgICAgIGZwcmludGYoc3RkZXJyLCAibWlncmF0aW9uIHRhcmdldDogUmVtdXMgRmFp bG92ZXIgZm9yIGRvbWFpbiAldVxuIiwKPj4gLSAgICAgICAgICAgICAgICBkb21pZCk7Cj4+ICsg ICAgICAgIGZwcmludGYoc3RkZXJyLCAibWlncmF0aW9uIHRhcmdldDogJXMgRmFpbG92ZXIgZm9y IGRvbWFpbiAldVxuIiwKPj4gKyAgICAgICAgICAgICAgICBoYSwgZG9taWQpOwo+PiAgCj4+ICAg ICAgICAgIC8qCj4+ICAgICAgICAgICAqIElmIGRvbWFpbiByZW5hbWluZyBmYWlscywgbGV0cyBq dXN0IGNvbnRpbnVlIChhcyB3ZSBuZWVkIHRoZSBkb21haW4KPj4gQEAgLTQ0OTIsMTYgKzQ0OTgs MjAgQEAgc3RhdGljIHZvaWQgbWlncmF0ZV9yZWNlaXZlKGludCBkZWJ1ZywgaW50IGRhZW1vbml6 ZSwgaW50IG1vbml0b3IsCj4+ICAgICAgICAgICAgICByYyA9IGxpYnhsX2RvbWFpbl9yZW5hbWUo Y3R4LCBkb21pZCwgbWlncmF0aW9uX2RvbW5hbWUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29tbW9uX2RvbW5hbWUpOwo+PiAgICAgICAgICAgICAgaWYgKHJjKQo+ PiAtICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAibWlncmF0aW9uIHRhcmdldCAoUmVt dXMpOiAiCj4+ICsgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJtaWdyYXRpb24gdGFy Z2V0ICglcyk6ICIKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gcmVuYW1l IGRvbWFpbiBmcm9tICVzIHRvICVzOiVkXG4iLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAg bWlncmF0aW9uX2RvbW5hbWUsIGNvbW1vbl9kb21uYW1lLCByYyk7Cj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICBoYSwgbWlncmF0aW9uX2RvbW5hbWUsIGNvbW1vbl9kb21uYW1lLCByYyk7Cj4+ ICAgICAgICAgIH0KPj4gIAo+PiArICAgICAgICBpZiAoY2hlY2twb2ludGVkID09IExJQlhMX0NI RUNLUE9JTlRFRF9TVFJFQU1fQ09MTykKPj4gKyAgICAgICAgICAgIC8qIFRoZSBndWVzdCBpcyBy dW5uaW5nIGFmdGVyIGZhaWxvdmVyIGluIENPTE8gbW9kZSAqLwo+PiArICAgICAgICAgICAgZXhp dChyYyA/IC1FUlJPUl9GQUlMOiAwKTsKPj4gKwo+PiAgICAgICAgICByYyA9IGxpYnhsX2RvbWFp bl91bnBhdXNlKGN0eCwgZG9taWQpOwo+PiAgICAgICAgICBpZiAocmMpCj4+IC0gICAgICAgICAg ICBmcHJpbnRmKHN0ZGVyciwgIm1pZ3JhdGlvbiB0YXJnZXQgKFJlbXVzKTogIgo+PiArICAgICAg ICAgICAgZnByaW50ZihzdGRlcnIsICJtaWdyYXRpb24gdGFyZ2V0ICglcyk6ICIKPj4gICAgICAg ICAgICAgICAgICAgICAgIkZhaWxlZCB0byB1bnBhdXNlIGRvbWFpbiAlcyAoaWQ6ICV1KTolZFxu IiwKPj4gLSAgICAgICAgICAgICAgICAgICAgY29tbW9uX2RvbW5hbWUsIGRvbWlkLCByYyk7Cj4+ ICsgICAgICAgICAgICAgICAgICAgIGhhLCBjb21tb25fZG9tbmFtZSwgZG9taWQsIHJjKTsKPj4g IAo+PiAgICAgICAgICBleGl0KHJjID8gLUVSUk9SX0ZBSUw6IDApOwo+PiAgICAgIGRlZmF1bHQ6 Cj4+IEBAIC00NjQ5LDcgKzQ2NTksNyBAQCBpbnQgbWFpbl9taWdyYXRlX3JlY2VpdmUoaW50IGFy Z2MsIGNoYXIgKiphcmd2KQo+PiAgICAgIGxpYnhsX2NoZWNrcG9pbnRlZF9zdHJlYW0gY2hlY2tw b2ludGVkID0gTElCWExfQ0hFQ0tQT0lOVEVEX1NUUkVBTV9OT05FOwo+PiAgICAgIGludCBvcHQ7 Cj4+ICAKPj4gLSAgICBTV0lUQ0hfRk9SRUFDSF9PUFQob3B0LCAiRmVkciIsIE5VTEwsICJtaWdy YXRlLXJlY2VpdmUiLCAwKSB7Cj4+ICsgICAgU1dJVENIX0ZPUkVBQ0hfT1BUKG9wdCwgIkZlZHJj IiwgTlVMTCwgIm1pZ3JhdGUtcmVjZWl2ZSIsIDApIHsKPj4gICAgICBjYXNlICdGJzoKPj4gICAg ICAgICAgZGFlbW9uaXplID0gMDsKPj4gICAgICAgICAgYnJlYWs7Cj4+IEBAIC00NjYzLDYgKzQ2 NzMsOSBAQCBpbnQgbWFpbl9taWdyYXRlX3JlY2VpdmUoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ PiAgICAgIGNhc2UgJ3InOgo+PiAgICAgICAgICBjaGVja3BvaW50ZWQgPSBMSUJYTF9DSEVDS1BP SU5URURfU1RSRUFNX1JFTVVTOwo+PiAgICAgICAgICBicmVhazsKPj4gKyAgICBjYXNlICdjJzoK Pj4gKyAgICAgICAgY2hlY2twb2ludGVkID0gTElCWExfQ0hFQ0tQT0lOVEVEX1NUUkVBTV9DT0xP Owo+PiArICAgICAgICBicmVhazsKPj4gICAgICB9Cj4+ICAKPj4gICAgICBpZiAoYXJnYy1vcHRp bmQgIT0gMCkgewo+PiBAQCAtODAzMiwxMSArODA0NSw4IEBAIGludCBtYWluX3JlbXVzKGludCBh cmdjLCBjaGFyICoqYXJndikKPj4gICAgICBpbnQgY29uZmlnX2xlbjsKPj4gIAo+PiAgICAgIG1l bXNldCgmcl9pbmZvLCAwLCBzaXplb2YobGlieGxfZG9tYWluX3JlbXVzX2luZm8pKTsKPj4gLSAg ICAvKiBEZWZhdWx0cyAqLwo+PiAtICAgIHJfaW5mby5pbnRlcnZhbCA9IDIwMDsKPj4gLSAgICBs aWJ4bF9kZWZib29sX3NldGRlZmF1bHQoJnJfaW5mby5ibGFja2hvbGUsIGZhbHNlKTsKPj4gIAo+ PiAtICAgIFNXSVRDSF9GT1JFQUNIX09QVChvcHQsICJGYnVuZGk6czpOOmUiLCBOVUxMLCAicmVt dXMiLCAyKSB7Cj4+ICsgICAgU1dJVENIX0ZPUkVBQ0hfT1BUKG9wdCwgIkZidW5kaTpzOk46ZWMi LCBOVUxMLCAicmVtdXMiLCAyKSB7Cj4+ICAgICAgY2FzZSAnaSc6Cj4+ICAgICAgICAgIHJfaW5m by5pbnRlcnZhbCA9IGF0b2kob3B0YXJnKTsKPj4gICAgICAgICAgYnJlYWs7Cj4+IEBAIC04MDY0 LDExICs4MDc0LDMyIEBAIGludCBtYWluX3JlbXVzKGludCBhcmdjLCBjaGFyICoqYXJndikKPj4g ICAgICBjYXNlICdlJzoKPj4gICAgICAgICAgZGFlbW9uaXplID0gMDsKPj4gICAgICAgICAgYnJl YWs7Cj4+ICsgICAgY2FzZSAnYyc6Cj4+ICsgICAgICAgIGxpYnhsX2RlZmJvb2xfc2V0KCZyX2lu Zm8uY29sbywgdHJ1ZSk7Cj4+ICAgICAgfQo+PiAgCj4+ICAgICAgZG9taWQgPSBmaW5kX2RvbWFp bihhcmd2W29wdGluZF0pOwo+PiAgICAgIGhvc3QgPSBhcmd2W29wdGluZCArIDFdOwo+PiAgCj4+ ICsgICAgLyogRGVmYXVsdHMgKi8KPj4gKyAgICBsaWJ4bF9kZWZib29sX3NldGRlZmF1bHQoJnJf aW5mby5ibGFja2hvbGUsIGZhbHNlKTsKPj4gKyAgICBsaWJ4bF9kZWZib29sX3NldGRlZmF1bHQo JnJfaW5mby5jb2xvLCBmYWxzZSk7Cj4+ICsgICAgaWYgKCFsaWJ4bF9kZWZib29sX3ZhbChyX2lu Zm8uY29sbykgJiYgIXJfaW5mby5pbnRlcnZhbCkKPj4gKyAgICAgICAgcl9pbmZvLmludGVydmFs ID0gMjAwOwo+PiArCj4+ICsgICAgaWYgKGxpYnhsX2RlZmJvb2xfdmFsKHJfaW5mby5jb2xvKSkg ewo+PiArICAgICAgICBpZiAocl9pbmZvLmludGVydmFsIHx8IGxpYnhsX2RlZmJvb2xfdmFsKHJf aW5mby5ibGFja2hvbGUpKSB7Cj4+ICsgICAgICAgICAgICBwZXJyb3IoIk9wdGlvbiAtYyBjb25m bGljdHMgd2l0aCAtaSBvciAtYiIpOwo+PiArICAgICAgICAgICAgZXhpdCgtMSk7Cj4+ICsgICAg ICAgIH0KPj4gKwo+PiArICAgICAgICBpZiAobGlieGxfZGVmYm9vbF9pc19kZWZhdWx0KHJfaW5m by5jb21wcmVzc2lvbikpIHsKPj4gKyAgICAgICAgICAgIHBlcnJvcigiQ09MTyBjYW4ndCBiZSB1 c2VkIHdpdGggbWVtb3J5IGNvbXByZXNzaW9uLiAiCj4+ICsgICAgICAgICAgICAgICAgICAgIkRp c2FibGUgbWVtb3J5IGNoZWNrcG9pbnQgY29tcHJlc3Npb24gbm93Li4uIik7Cj4+ICsgICAgICAg ICAgICBsaWJ4bF9kZWZib29sX3NldCgmcl9pbmZvLmNvbXByZXNzaW9uLCBmYWxzZSk7Cj4+ICsg ICAgICAgIH0KPj4gKyAgICB9Cj4+ICsKPiAKPiBJIGRvbid0IHRoaW5rIEknbSBlbnRpcmVseSBo YXBweSB3aXRoIGhvdyB0aGVzZSB0aGluZ3MgYXJlIGFycmFuZ2VkLgo+IFJlbXVzIGFuZCBDT0xP IGRvbid0IHNlZW0gdG8gaGF2ZSBhIHNldCBvZiBjb25zaXN0ZW50IEFQSXMgdGhhdAo+IGFyYml0 cmFyeSB1c2VycyBjYW4gY2FsbC4KPiAKPiBCdXQgZm9yIHRoZSBzYWtlIG9mIG5vdCBncm93aW5n IHRoaXMgc2VyaWVzIGFueSBsb25nZXIgbGV0J3MgbGVhdmUgaXQKPiBsaWtlIHRoaXMgZm9yIHRo ZSBtb21lbnQuIEkgdGhpbmsgQ09MTyBhdCBiZXN0IGlzIGdvaW5nIHRvIGJlIChhcyB5b3UKPiBz dGF0ZWQgaW4gbWFucGFnZSkgZXhwZXJpbWVudGFsIGF0IHRoaXMgc3RhZ2UuCgpZZXMsIGl0IGlz IGV4cGVyaW1lbnRhbCBub3cuCgpUaGFua3MKV2VuIENvbmd5YW5nCgo+IAo+IAo+PiAgICAgIGlm ICghcl9pbmZvLm5ldGJ1ZnNjcmlwdCkKPj4gICAgICAgICAgcl9pbmZvLm5ldGJ1ZnNjcmlwdCA9 IGRlZmF1bHRfcmVtdXNfbmV0YnVmc2NyaXB0Owo+PiAgCj4+IEBAIC04MDgzLDggKzgxMTQsOSBA QCBpbnQgbWFpbl9yZW11cyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4+ICAgICAgICAgIGlmICgh c3NoX2NvbW1hbmRbMF0pIHsKPj4gICAgICAgICAgICAgIHJ1bmUgPSBob3N0Owo+PiAgICAgICAg ICB9IGVsc2Ugewo+PiAtICAgICAgICAgICAgeGFzcHJpbnRmKCZydW5lLCAiZXhlYyAlcyAlcyB4 bCBtaWdyYXRlLXJlY2VpdmUgLXIgJXMiLAo+PiArICAgICAgICAgICAgeGFzcHJpbnRmKCZydW5l LCAiZXhlYyAlcyAlcyB4bCBtaWdyYXRlLXJlY2VpdmUgJXMgJXMiLAo+PiAgICAgICAgICAgICAg ICAgICAgICAgIHNzaF9jb21tYW5kLCBob3N0LAo+PiArICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX2RlZmJvb2xfdmFsKHJfaW5mby5jb2xvKSA/ICItYyIgOiAiLXIiLAo+PiAgICAgICAgICAg ICAgICAgICAgICAgIGRhZW1vbml6ZSA/ICIiIDogIiAtZSIpOwo+PiAgICAgICAgICB9Cj4+ICAK Pj4gQEAgLTgxMTIsNyArODE0NCw4IEBAIGludCBtYWluX3JlbXVzKGludCBhcmdjLCBjaGFyICoq YXJndikKPj4gICAgICAgKiBkb21haW4gdG8gZm9yY2UgZmFpbG92ZXIKPj4gICAgICAgKi8KPj4g ICAgICBpZiAobGlieGxfZG9tYWluX2luZm8oY3R4LCAwLCBkb21pZCkpIHsKPj4gLSAgICAgICAg ZnByaW50ZihzdGRlcnIsICJSZW11czogUHJpbWFyeSBkb21haW4gaGFzIGJlZW4gZGVzdHJveWVk LlxuIik7Cj4+ICsgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IFByaW1hcnkgZG9tYWluIGhh cyBiZWVuIGRlc3Ryb3llZC5cbiIsCj4+ICsgICAgICAgICAgICAgICAgbGlieGxfZGVmYm9vbF92 YWwocl9pbmZvLmNvbG8pID8gIkNPTE8iIDogIlJlbXVzIik7Cj4+ICAgICAgICAgIGNsb3NlKHNl bmRfZmQpOwo+PiAgICAgICAgICByZXR1cm4gMDsKPj4gICAgICB9Cj4+IEBAIC04MTI0LDcgKzgx NTcsOCBAQCBpbnQgbWFpbl9yZW11cyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4+ICAgICAgaWYg KHJjID09IEVSUk9SX0dVRVNUX1RJTUVET1VUKQo+PiAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwg IkZhaWxlZCB0byBzdXNwZW5kIGRvbWFpbiBhdCBwcmltYXJ5LlxuIik7Cj4+ICAgICAgZWxzZSB7 Cj4+IC0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiUmVtdXM6IEJhY2t1cCBmYWlsZWQ/IHJlc3Vt aW5nIGRvbWFpbiBhdCBwcmltYXJ5LlxuIik7Cj4+ICsgICAgICAgIGZwcmludGYoc3RkZXJyLCAi JXM6IEJhY2t1cCBmYWlsZWQ/IHJlc3VtaW5nIGRvbWFpbiBhdCBwcmltYXJ5LlxuIiwKPj4gKyAg ICAgICAgICAgICAgICBsaWJ4bF9kZWZib29sX3ZhbChyX2luZm8uY29sbykgPyAiQ09MTyIgOiAi UmVtdXMiKTsKPj4gICAgICAgICAgbGlieGxfZG9tYWluX3Jlc3VtZShjdHgsIGRvbWlkLCAxLCAw KTsKPj4gICAgICB9Cj4+ICAKPj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL3hsX2NtZHRhYmxl LmMgYi90b29scy9saWJ4bC94bF9jbWR0YWJsZS5jCj4+IGluZGV4IGZkYzFhYzYuLmI2YjYzMGMg MTAwNjQ0Cj4+IC0tLSBhL3Rvb2xzL2xpYnhsL3hsX2NtZHRhYmxlLmMKPj4gKysrIGIvdG9vbHMv bGlieGwveGxfY21kdGFibGUuYwo+PiBAQCAtNDk5LDcgKzQ5OSw5IEBAIHN0cnVjdCBjbWRfc3Bl YyBjbWRfdGFibGVbXSA9IHsKPj4gICAgICAgICItYiAgICAgICAgICAgICAgICAgICAgICBSZXBs aWNhdGUgbWVtb3J5IGNoZWNrcG9pbnRzIHRvIC9kZXYvbnVsbCAoYmxhY2tob2xlKS5cbiIKPj4g ICAgICAgICIgICAgICAgICAgICAgICAgICAgICAgICBXb3JrcyBvbmx5IGluIHVuc2FmZSBtb2Rl LlxuIgo+PiAgICAgICAgIi1uICAgICAgICAgICAgICAgICAgICAgIERpc2FibGUgbmV0d29yayBv dXRwdXQgYnVmZmVyaW5nLiBXb3JrcyBvbmx5IGluIHVuc2FmZSBtb2RlLlxuIgo+PiAtICAgICAg Ii1kICAgICAgICAgICAgICAgICAgICAgIERpc2FibGUgZGlzayByZXBsaWNhdGlvbi4gV29ya3Mg b25seSBpbiB1bnNhZmUgbW9kZS4iCj4+ICsgICAgICAiLWQgICAgICAgICAgICAgICAgICAgICAg RGlzYWJsZSBkaXNrIHJlcGxpY2F0aW9uLiBXb3JrcyBvbmx5IGluIHVuc2FmZSBtb2RlLlxuIgo+ PiArICAgICAgIi1jICAgICAgICAgICAgICAgICAgICAgIEVuYWJsZSBDT0xPIEhBLiBJdCBpcyBj b25mbGljdCB3aXRoIC1pIGFuZCAtYiwgYW5kIG1lbW9yeVxuIgo+PiArICAgICAgIiAgICAgICAg ICAgICAgICAgICAgICAgIGNoZWNrcG9pbnQgbXVzdCBiZSBkaXNhYmxlZCIKPj4gICAgICB9LAo+ PiAgI2VuZGlmCj4+ICAgICAgeyAiZGV2ZCIsCj4+IC0tIAo+PiAyLjUuMAo+Pgo+Pgo+Pgo+Pgo+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCj4+IGh0dHA6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo+IAo+IAo+IC4KPiAKCgoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==