From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD5B8C47409 for ; Sat, 1 Feb 2020 00:33:21 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8695020707 for ; Sat, 1 Feb 2020 00:33:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="eFU58qvh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8695020707 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ixgig-00066L-Qk; Sat, 01 Feb 2020 00:33:06 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ixgig-000665-31 for xen-devel@lists.xenproject.org; Sat, 01 Feb 2020 00:33:06 +0000 X-Inumbo-ID: 692917f0-448a-11ea-b211-bc764e2007e4 Received: from bombadil.infradead.org (unknown [2607:7c80:54:e::133]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 692917f0-448a-11ea-b211-bc764e2007e4; Sat, 01 Feb 2020 00:33:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=9RgL2Z0Xollm7VQ7ZAaxx2QpOXyoyuKPohgfc0eH1Ss=; b=eFU58qvhYpUtIqy87KfpVaTJ92 5HEBBsN5oI+cAmfW4Ti/JZ5ybBrqQ6NltS7LQEWQ3nkp6ZNqrC6vwLcdsTVpxHA2SZdNrNVambHsT ZoHkBGYcKdl+gvUNTmKugfQovzfNNHmGKIqn2Wfv1ZAKaQS9nkPTZhryzBXSHWZsRk8sueBMAewN7 lnXv8ButxqqztB5CQeDuaLJj+EEgY+BXdCyWOXQq8hPe2X2AQBQsAljS39IBIlgldn0CGL/y5HVEA bfYCV3GjEx46hBRaDUlQqpk7GBwRDPJK3MBFFNbh3ujTzLDljhCZ7w0KNoHxpCcwbwkwcu/xDNLDa AcD+TnjA==; Received: from i7.infradead.org ([2001:8b0:10b:1:21e:67ff:fecb:7a92]) by bombadil.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1ixgie-0007N4-Ht; Sat, 01 Feb 2020 00:33:04 +0000 Received: from dwoodhou by i7.infradead.org with local (Exim 4.92 #3 (Red Hat Linux)) id 1ixgid-009ulQ-Aa; Sat, 01 Feb 2020 00:33:03 +0000 From: David Woodhouse To: xen-devel@lists.xenproject.org Date: Sat, 1 Feb 2020 00:33:03 +0000 Message-Id: <20200201003303.2363081-8-dwmw2@infradead.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <8a95f787ca93b23ee8d8c0b55fcc63d22a75c5f3.camel@infradead.org> References: <8a95f787ca93b23ee8d8c0b55fcc63d22a75c5f3.camel@infradead.org> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Subject: [Xen-devel] [PATCH 8/8] x86/setup: lift dom0 creation out into create_dom0() function X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , Julien Grall , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Varad Gautam , Ian Jackson , Hongyan Xia , Paul Durrant , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" RnJvbTogRGF2aWQgV29vZGhvdXNlIDxkd213QGFtYXpvbi5jby51az4KClRoZSBjcmVhdGlvbiBv ZiBkb20wIGNhbiBiZSByZWxhdGl2ZWx5IHNlbGYtY29udGFpbmVkLiBTaGlmdCBpdCBpbnRvCmEg c2VwYXJhdGUgZnVuY3Rpb24gYW5kIHNpbXBsaWZ5IF9fc3RhcnRfeGVuKCkgYSBsaXR0bGUgYml0 LgoKVGhpcyBpcyBhIGNsZWFudXAgaW4gaXRzIG93biByaWdodCwgYnV0IHdpbGwgYmUgZXZlbiBt b3JlIGRlc2lyZWFibGUKd2hlbiBsaXZlIHVwZGF0ZSBwcm92aWRlcyBhbiBhbHRlcm5hdGl2ZSBw YXRoIHRocm91Z2ggX19zdGFydF94ZW4oKQp0aGF0IGRvZXNuJ3QgaW52b2x2ZSBjcmVhdGluZyBh IG5ldyBkb20wIGF0IGFsbC4KClNpZ25lZC1vZmYtYnk6IERhdmlkIFdvb2Rob3VzZSA8ZHdtd0Bh bWF6b24uY28udWs+Ci0tLQogeGVuL2FyY2gveDg2L3NldHVwLmMgfCAxNjkgKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkyIGluc2Vy dGlvbnMoKyksIDc3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1 cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggMTAyMDllNmJmYi4uOWQ4NjcyMmVjZCAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVuL2FyY2gveDg2L3NldHVw LmMKQEAgLTY3OCw2ICs2NzgsOTIgQEAgc3RhdGljIHVuc2lnbmVkIGludCBfX2luaXQgY29weV9i aW9zX2U4MjAoc3RydWN0IGU4MjBlbnRyeSAqbWFwLCB1bnNpZ25lZCBpbnQgbGkKICAgICByZXR1 cm4gbjsKIH0KIAorc3RhdGljIHN0cnVjdCBkb21haW4gKiBfX2luaXQgY3JlYXRlX2RvbTAoY29u c3QgbW9kdWxlX3QgKmltYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBoZWFkcm9vbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1vZHVsZV90ICppbml0cmQsIGNoYXIgKmtleHRyYSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmxvYWRlcikKK3sKKyAgICBz dHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21haW4gZG9tMF9jZmcgPSB7CisgICAgICAgIC5mbGFn cyA9IElTX0VOQUJMRUQoQ09ORklHX1RCT09UKSA/IFhFTl9ET01DVExfQ0RGX3MzX2ludGVncml0 eSA6IDAsCisgICAgICAgIC5tYXhfZXZ0Y2huX3BvcnQgPSAtMSwKKyAgICAgICAgLm1heF9ncmFu dF9mcmFtZXMgPSAtMSwKKyAgICAgICAgLm1heF9tYXB0cmFja19mcmFtZXMgPSAtMSwKKyAgICB9 OworICAgIHN0cnVjdCBkb21haW4gKmQ7CisgICAgY2hhciAqY21kbGluZTsKKworICAgIGlmICgg b3B0X2RvbTBfcHZoICkKKyAgICB7CisgICAgICAgIGRvbTBfY2ZnLmZsYWdzIHw9IChYRU5fRE9N Q1RMX0NERl9odm0gfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKChodm1faGFwX3N1cHBv cnRlZCgpICYmICFvcHRfZG9tMF9zaGFkb3cpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBYRU5fRE9NQ1RMX0NERl9oYXAgOiAwKSk7CisKKyAgICAgICAgZG9tMF9jZmcuYXJjaC5lbXVs YXRpb25fZmxhZ3MgfD0KKyAgICAgICAgICAgIFhFTl9YODZfRU1VX0xBUElDIHwgWEVOX1g4Nl9F TVVfSU9BUElDIHwgWEVOX1g4Nl9FTVVfVlBDSTsKKyAgICB9CisgICAgZG9tMF9jZmcubWF4X3Zj cHVzID0gZG9tMF9tYXhfdmNwdXMoKTsKKworICAgIGlmICggaW9tbXVfZW5hYmxlZCApCisgICAg ICAgIGRvbTBfY2ZnLmZsYWdzIHw9IFhFTl9ET01DVExfQ0RGX2lvbW11OworCisgICAgLyogQ3Jl YXRlIGluaXRpYWwgZG9tYWluIDAuICovCisgICAgZCA9IGRvbWFpbl9jcmVhdGUoZ2V0X2luaXRp YWxfZG9tYWluX2lkKCksICZkb20wX2NmZywgIXB2X3NoaW0pOworICAgIGlmICggSVNfRVJSKGQp IHx8IChhbGxvY19kb20wX3ZjcHUwKGQpID09IE5VTEwpICkKKyAgICAgICAgcGFuaWMoIkVycm9y IGNyZWF0aW5nIGRvbWFpbiAwXG4iKTsKKworICAgIC8qIEdyYWIgdGhlIERPTTAgY29tbWFuZCBs aW5lLiAqLworICAgIGNtZGxpbmUgPSAoY2hhciAqKShpbWFnZS0+c3RyaW5nID8gX192YShpbWFn ZS0+c3RyaW5nKSA6IE5VTEwpOworICAgIGlmICggKGNtZGxpbmUgIT0gTlVMTCkgfHwgKGtleHRy YSAhPSBOVUxMKSApCisgICAgeworICAgICAgICBzdGF0aWMgY2hhciBfX2luaXRkYXRhIGRvbTBf Y21kbGluZVtNQVhfR1VFU1RfQ01ETElORV07CisKKyAgICAgICAgY21kbGluZSA9IGNtZGxpbmVf Y29vayhjbWRsaW5lLCBsb2FkZXIpOworICAgICAgICBzYWZlX3N0cmNweShkb20wX2NtZGxpbmUs IGNtZGxpbmUpOworCisgICAgICAgIGlmICgga2V4dHJhICE9IE5VTEwgKQorICAgICAgICAgICAg Lyoga2V4dHJhIGFsd2F5cyBpbmNsdWRlcyBleGFjdGx5IG9uZSBsZWFkaW5nIHNwYWNlLiAqLwor ICAgICAgICAgICAgc2FmZV9zdHJjYXQoZG9tMF9jbWRsaW5lLCBrZXh0cmEpOworCisgICAgICAg IC8qIEFwcGVuZCBhbnkgZXh0cmEgcGFyYW1ldGVycy4gKi8KKyAgICAgICAgaWYgKCBza2lwX2lv YXBpY19zZXR1cCAmJiAhc3Ryc3RyKGRvbTBfY21kbGluZSwgIm5vYXBpYyIpICkKKyAgICAgICAg ICAgIHNhZmVfc3RyY2F0KGRvbTBfY21kbGluZSwgIiBub2FwaWMiKTsKKyAgICAgICAgaWYgKCAo c3RybGVuKGFjcGlfcGFyYW0pID09IDApICYmIGFjcGlfZGlzYWJsZWQgKQorICAgICAgICB7Cisg ICAgICAgICAgICBwcmludGsoIkFDUEkgaXMgZGlzYWJsZWQsIG5vdGlmeWluZyBEb21haW4gMCAo YWNwaT1vZmYpXG4iKTsKKyAgICAgICAgICAgIHNhZmVfc3RyY3B5KGFjcGlfcGFyYW0sICJvZmYi KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIChzdHJsZW4oYWNwaV9wYXJhbSkgIT0gMCkgJiYg IXN0cnN0cihkb20wX2NtZGxpbmUsICJhY3BpPSIpICkKKyAgICAgICAgeworICAgICAgICAgICAg c2FmZV9zdHJjYXQoZG9tMF9jbWRsaW5lLCAiIGFjcGk9Iik7CisgICAgICAgICAgICBzYWZlX3N0 cmNhdChkb20wX2NtZGxpbmUsIGFjcGlfcGFyYW0pOworICAgICAgICB9CisKKyAgICAgICAgY21k bGluZSA9IGRvbTBfY21kbGluZTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlbXBvcmFyaWx5 IGNsZWFyIFNNQVAgaW4gQ1I0IHRvIGFsbG93IHVzZXItYWNjZXNzZXMgaW4gY29uc3RydWN0X2Rv bTAoKS4KKyAgICAgKiBUaGlzIHNhdmVzIGEgbGFyZ2UgbnVtYmVyIG9mIGNvcm5lciBjYXNlcyBp bnRlcmFjdGlvbnMgd2l0aAorICAgICAqIGNvcHlfZnJvbV91c2VyKCkuCisgICAgICovCisgICAg aWYgKCBjcHVfaGFzX3NtYXAgKQorICAgIHsKKyAgICAgICAgY3I0X3B2MzJfbWFzayAmPSB+WDg2 X0NSNF9TTUFQOworICAgICAgICB3cml0ZV9jcjQocmVhZF9jcjQoKSAmIH5YODZfQ1I0X1NNQVAp OworICAgIH0KKworICAgIGlmICggY29uc3RydWN0X2RvbTAoZCwgaW1hZ2UsIGhlYWRyb29tLCBp bml0cmQsIGNtZGxpbmUpICE9IDAgKQorICAgICAgICBwYW5pYygiQ291bGQgbm90IGNvbnN0cnVj dCBkb21haW4gMFxuIik7CisKKyAgICBpZiAoIGNwdV9oYXNfc21hcCApCisgICAgeworICAgICAg ICB3cml0ZV9jcjQocmVhZF9jcjQoKSB8IFg4Nl9DUjRfU01BUCk7CisgICAgICAgIGNyNF9wdjMy X21hc2sgfD0gWDg2X0NSNF9TTUFQOworICAgIH0KKworICAgIHJldHVybiBkOworfQorCiAvKiBI b3cgbXVjaCBvZiB0aGUgZGlyZWN0bWFwIGlzIHByZWJ1aWx0IGF0IGNvbXBpbGUgdGltZS4gKi8K ICNkZWZpbmUgUFJFQlVJTFRfTUFQX0xJTUlUICgxIDw8IEwyX1BBR0VUQUJMRV9TSElGVCkKIApA QCAtNjk3LDEyICs3ODMsNiBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNp Z25lZCBsb25nIG1iaV9wKQogICAgICAgICAucGFyaXR5ICAgID0gJ24nLAogICAgICAgICAuc3Rv cF9iaXRzID0gMQogICAgIH07Ci0gICAgc3RydWN0IHhlbl9kb21jdGxfY3JlYXRlZG9tYWluIGRv bTBfY2ZnID0gewotICAgICAgICAuZmxhZ3MgPSBJU19FTkFCTEVEKENPTkZJR19UQk9PVCkgPyBY RU5fRE9NQ1RMX0NERl9zM19pbnRlZ3JpdHkgOiAwLAotICAgICAgICAubWF4X2V2dGNobl9wb3J0 ID0gLTEsCi0gICAgICAgIC5tYXhfZ3JhbnRfZnJhbWVzID0gLTEsCi0gICAgICAgIC5tYXhfbWFw dHJhY2tfZnJhbWVzID0gLTEsCi0gICAgfTsKICAgICBjb25zdCBjaGFyICpoeXBlcnZpc29yX25h bWU7CiAKICAgICAvKiBDcml0aWNhbCByZWdpb24gd2l0aG91dCBJRFQgb3IgVFNTLiAgQW55IGZh dWx0IGlzIGRlYWRseSEgKi8KQEAgLTE3NDAsNTggKzE4MjAsMTMgQEAgdm9pZCBfX2luaXQgbm9y ZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICBpbml0X2d1ZXN0X2Nw dWlkKCk7CiAgICAgaW5pdF9ndWVzdF9tc3JfcG9saWN5KCk7CiAKLSAgICBpZiAoIG9wdF9kb20w X3B2aCApCi0gICAgewotICAgICAgICBkb20wX2NmZy5mbGFncyB8PSAoWEVOX0RPTUNUTF9DREZf aHZtIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICgoaHZtX2hhcF9zdXBwb3J0ZWQoKSAm JiAhb3B0X2RvbTBfc2hhZG93KSA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0RP TUNUTF9DREZfaGFwIDogMCkpOwotCi0gICAgICAgIGRvbTBfY2ZnLmFyY2guZW11bGF0aW9uX2Zs YWdzIHw9Ci0gICAgICAgICAgICBYRU5fWDg2X0VNVV9MQVBJQyB8IFhFTl9YODZfRU1VX0lPQVBJ QyB8IFhFTl9YODZfRU1VX1ZQQ0k7Ci0gICAgfQotICAgIGRvbTBfY2ZnLm1heF92Y3B1cyA9IGRv bTBfbWF4X3ZjcHVzKCk7Ci0KLSAgICBpZiAoIGlvbW11X2VuYWJsZWQgKQotICAgICAgICBkb20w X2NmZy5mbGFncyB8PSBYRU5fRE9NQ1RMX0NERl9pb21tdTsKLQotICAgIC8qIENyZWF0ZSBpbml0 aWFsIGRvbWFpbiAwLiAqLwotICAgIGRvbTAgPSBkb21haW5fY3JlYXRlKGdldF9pbml0aWFsX2Rv bWFpbl9pZCgpLCAmZG9tMF9jZmcsICFwdl9zaGltKTsKLSAgICBpZiAoIElTX0VSUihkb20wKSB8 fCAoYWxsb2NfZG9tMF92Y3B1MChkb20wKSA9PSBOVUxMKSApCi0gICAgICAgIHBhbmljKCJFcnJv ciBjcmVhdGluZyBkb21haW4gMFxuIik7Ci0KLSAgICAvKiBHcmFiIHRoZSBET00wIGNvbW1hbmQg bGluZS4gKi8KLSAgICBjbWRsaW5lID0gKGNoYXIgKikobW9kWzBdLnN0cmluZyA/IF9fdmEobW9k WzBdLnN0cmluZykgOiBOVUxMKTsKLSAgICBpZiAoIChjbWRsaW5lICE9IE5VTEwpIHx8IChrZXh0 cmEgIT0gTlVMTCkgKQotICAgIHsKLSAgICAgICAgc3RhdGljIGNoYXIgX19pbml0ZGF0YSBkb20w X2NtZGxpbmVbTUFYX0dVRVNUX0NNRExJTkVdOwotCi0gICAgICAgIGNtZGxpbmUgPSBjbWRsaW5l X2Nvb2soY21kbGluZSwgbG9hZGVyKTsKLSAgICAgICAgc2FmZV9zdHJjcHkoZG9tMF9jbWRsaW5l LCBjbWRsaW5lKTsKLQotICAgICAgICBpZiAoIGtleHRyYSAhPSBOVUxMICkKLSAgICAgICAgICAg IC8qIGtleHRyYSBhbHdheXMgaW5jbHVkZXMgZXhhY3RseSBvbmUgbGVhZGluZyBzcGFjZS4gKi8K LSAgICAgICAgICAgIHNhZmVfc3RyY2F0KGRvbTBfY21kbGluZSwga2V4dHJhKTsKLQotICAgICAg ICAvKiBBcHBlbmQgYW55IGV4dHJhIHBhcmFtZXRlcnMuICovCi0gICAgICAgIGlmICggc2tpcF9p b2FwaWNfc2V0dXAgJiYgIXN0cnN0cihkb20wX2NtZGxpbmUsICJub2FwaWMiKSApCi0gICAgICAg ICAgICBzYWZlX3N0cmNhdChkb20wX2NtZGxpbmUsICIgbm9hcGljIik7Ci0gICAgICAgIGlmICgg KHN0cmxlbihhY3BpX3BhcmFtKSA9PSAwKSAmJiBhY3BpX2Rpc2FibGVkICkKLSAgICAgICAgewot ICAgICAgICAgICAgcHJpbnRrKCJBQ1BJIGlzIGRpc2FibGVkLCBub3RpZnlpbmcgRG9tYWluIDAg KGFjcGk9b2ZmKVxuIik7Ci0gICAgICAgICAgICBzYWZlX3N0cmNweShhY3BpX3BhcmFtLCAib2Zm Iik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCAoc3RybGVuKGFjcGlfcGFyYW0pICE9IDApICYm ICFzdHJzdHIoZG9tMF9jbWRsaW5lLCAiYWNwaT0iKSApCi0gICAgICAgIHsKLSAgICAgICAgICAg IHNhZmVfc3RyY2F0KGRvbTBfY21kbGluZSwgIiBhY3BpPSIpOwotICAgICAgICAgICAgc2FmZV9z dHJjYXQoZG9tMF9jbWRsaW5lLCBhY3BpX3BhcmFtKTsKLSAgICAgICAgfQotCi0gICAgICAgIGNt ZGxpbmUgPSBkb20wX2NtZGxpbmU7Ci0gICAgfQotCiAgICAgaWYgKCB4ZW5fY3B1aWRsZSApCiAg ICAgICAgIHhlbl9wcm9jZXNzb3JfcG1iaXRzIHw9IFhFTl9QUk9DRVNTT1JfUE1fQ1g7CiAKKyAg ICBwcmludGsoIiVzTlggKEV4ZWN1dGUgRGlzYWJsZSkgcHJvdGVjdGlvbiAlc2FjdGl2ZVxuIiwK KyAgICAgICAgICAgY3B1X2hhc19ueCA/IFhFTkxPR19JTkZPIDogWEVOTE9HX1dBUk5JTkcgIldh cm5pbmc6ICIsCisgICAgICAgICAgIGNwdV9oYXNfbnggPyAiIiA6ICJub3QgIik7CisKICAgICBp bml0cmRpZHggPSBmaW5kX2ZpcnN0X2JpdChtb2R1bGVfbWFwLCBtYmktPm1vZHNfY291bnQpOwog ICAgIGlmICggaW5pdHJkaWR4IDwgbWJpLT5tb2RzX2NvdW50ICkKICAgICAgICAgaW5pdHJkID0g bW9kICsgaW5pdHJkaWR4OwpAQCAtMTgwMSwzNCArMTgzNiwxNCBAQCB2b2lkIF9faW5pdCBub3Jl dHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgICAgICAgICAgICAgIk11 bHRpcGxlIGluaXRyZCBjYW5kaWRhdGVzLCBwaWNraW5nIG1vZHVsZSAjJXVcbiIsCiAgICAgICAg ICAgICAgICBpbml0cmRpZHgpOwogCi0gICAgLyoKLSAgICAgKiBUZW1wb3JhcmlseSBjbGVhciBT TUFQIGluIENSNCB0byBhbGxvdyB1c2VyLWFjY2Vzc2VzIGluIGNvbnN0cnVjdF9kb20wKCkuCi0g ICAgICogVGhpcyBzYXZlcyBhIGxhcmdlIG51bWJlciBvZiBjb3JuZXIgY2FzZXMgaW50ZXJhY3Rp b25zIHdpdGgKLSAgICAgKiBjb3B5X2Zyb21fdXNlcigpLgotICAgICAqLwotICAgIGlmICggY3B1 X2hhc19zbWFwICkKLSAgICB7Ci0gICAgICAgIGNyNF9wdjMyX21hc2sgJj0gflg4Nl9DUjRfU01B UDsKLSAgICAgICAgd3JpdGVfY3I0KHJlYWRfY3I0KCkgJiB+WDg2X0NSNF9TTUFQKTsKLSAgICB9 Ci0KLSAgICBwcmludGsoIiVzTlggKEV4ZWN1dGUgRGlzYWJsZSkgcHJvdGVjdGlvbiAlc2FjdGl2 ZVxuIiwKLSAgICAgICAgICAgY3B1X2hhc19ueCA/IFhFTkxPR19JTkZPIDogWEVOTE9HX1dBUk5J TkcgIldhcm5pbmc6ICIsCi0gICAgICAgICAgIGNwdV9oYXNfbnggPyAiIiA6ICJub3QgIik7Ci0K ICAgICAvKgogICAgICAqIFdlJ3JlIGdvaW5nIHRvIHNldHVwIGRvbWFpbjAgdXNpbmcgdGhlIG1v ZHVsZShzKSB0aGF0IHdlIHN0YXNoZWQgc2FmZWx5CiAgICAgICogYWJvdmUgb3VyIGhlYXAuIFRo ZSBzZWNvbmQgbW9kdWxlLCBpZiBwcmVzZW50LCBpcyBhbiBpbml0cmQgcmFtZGlzay4KICAgICAg Ki8KLSAgICBpZiAoIGNvbnN0cnVjdF9kb20wKGRvbTAsIG1vZCwgbW9kdWxlc19oZWFkcm9vbSwg aW5pdHJkLCBjbWRsaW5lKSAhPSAwICkKKyAgICBkb20wID0gY3JlYXRlX2RvbTAobW9kLCBtb2R1 bGVzX2hlYWRyb29tLCBpbml0cmQsIGtleHRyYSwgbG9hZGVyKTsKKyAgICBpZiAoIGRvbTAgPT0g TlVMTCApCiAgICAgICAgIHBhbmljKCJDb3VsZCBub3Qgc2V0IHVwIERPTTAgZ3Vlc3QgT1NcbiIp OwogCi0gICAgaWYgKCBjcHVfaGFzX3NtYXAgKQotICAgIHsKLSAgICAgICAgd3JpdGVfY3I0KHJl YWRfY3I0KCkgfCBYODZfQ1I0X1NNQVApOwotICAgICAgICBjcjRfcHYzMl9tYXNrIHw9IFg4Nl9D UjRfU01BUDsKLSAgICB9Ci0KICAgICBoZWFwX2luaXRfbGF0ZSgpOwogCiAgICAgaW5pdF90cmFj ZV9idWZzKCk7Ci0tIAoyLjIxLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5w cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v eGVuLWRldmVs