From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH] libx86: Elide more empty CPUID leaves when serialising a policy Date: Wed, 22 May 2019 16:50:30 +0100 Message-ID: <1558540230-26612-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hTTVj-0003Fo-PS for xen-devel@lists.xenproject.org; Wed, 22 May 2019 15:50:35 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org eDg2X2NwdWlkX2NvcHlfdG9fYnVmZmVyKCkgY3VycmVudGx5IHNlcmlhbGlzZXMgdGhlIGZ1bGwg Y29udGVudCBvZiB0aGUKdmFyaW91cyBzdWJsZWFmIHVuaW9ucy4gIFdoaWxlIGxlYXZlcyA0LCAw eGIgYW5kIDB4ZCBkb24ndCBoYXZlIGEgY29uY3JldGUKbWF4X3N1YmxlYWYgZmllbGQsIHRoZXkg ZG8gaGF2ZSB3ZWxsIGRlZmluZWQgdXBwZXIgYm91bmRzLgoKRGlmZmluZyB0aGUgcmVzdWx0cyBv ZiBgeGVuLWNwdWlkIC1wYCBzaG93cyB0aGUgcmVzdXRsaW5nIHNhdmluZzoKCiAgQEAgLTEsNSAr MSw1IEBACiAgIFhlbiByZXBvcnRzIHRoZXJlIGFyZSBtYXhpbXVtIDExNCBsZWF2ZXMgYW5kIDEg TVNScwogIC1SYXcgcG9saWN5OiA5MyBsZWF2ZXMsIDEgTVNScwogICtSYXcgcG9saWN5OiAzOCBs ZWF2ZXMsIDEgTVNScwogICAgQ1BVSUQ6CiAgICAgbGVhZiAgICAgc3VibGVhZiAgLT4gZWF4ICAg ICAgZWJ4ICAgICAgZWN4ICAgICAgZWR4CiAgICAgMDAwMDAwMDA6ZmZmZmZmZmYgLT4gMDAwMDAw MTY6NzU2ZTY1NDc6NmM2NTc0NmU6NDk2NTZlNjkKICBAQCAtMzIsNyArMzIsNyBAQCBSYXcgcG9s aWN5OiA5MyBsZWF2ZXMsIDEgTVNScwogICAgTVNSczoKICAgICBpbmRleCAgICAtPiB2YWx1ZQog ICAgIDAwMDAwMGNlIC0+IDAwMDAwMDAwODAwMDAwMDAKICAtSG9zdCBwb2xpY3k6IDkzIGxlYXZl cywgMSBNU1JzCiAgK0hvc3QgcG9saWN5OiAzMyBsZWF2ZXMsIDEgTVNScwogICAgQ1BVSUQ6CiAg ICAgbGVhZiAgICAgc3VibGVhZiAgLT4gZWF4ICAgICAgZWJ4ICAgICAgZWN4ICAgICAgZWR4CiAg ICAgMDAwMDAwMDA6ZmZmZmZmZmYgLT4gMDAwMDAwMGQ6NzU2ZTY1NDc6NmM2NTc0NmU6NDk2NTZl NjkKCndoaWNoIGlzIG1vc3RseSBkdWUgdG8gbm8gbG9uZ2VyIHdyaXRpbmcgb3V0IDY0IGxlYXZl cyBmb3IgeHN0YXRlIHdoZW4gKG9uCnRoaXMgQ29mZmVlTGFrZSBzeXN0ZW0pIDggd2lsbCBkby4K CkV4dGVuZCB0aGUgdW5pdCB0ZXN0cyB0byBjb3ZlciBlbXB0eSBhbmQgcGFydGlhbGx5IGZpbGxl ZCBzdWJsZWFmIHVuaW9ucy4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5j b29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29t PgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ0M6IFJvZ2VyIFBhdSBNb25uw6kg PHJvZ2VyLnBhdUBjaXRyaXguY29tPgotLS0KIHRvb2xzL3Rlc3RzL2NwdS1wb2xpY3kvdGVzdC1j cHUtcG9saWN5LmMgfCA3MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2xp Yi94ODYvY3B1aWQuYyAgICAgICAgICAgICAgICAgICAgICB8IDI0ICsrKysrKysrKystCiAyIGZp bGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS90b29scy90ZXN0cy9jcHUtcG9saWN5L3Rlc3QtY3B1LXBvbGljeS5jIGIvdG9vbHMvdGVzdHMv Y3B1LXBvbGljeS90ZXN0LWNwdS1wb2xpY3kuYwppbmRleCBiZWNlZDVlLi5mZDk2YzBiIDEwMDY0 NAotLS0gYS90b29scy90ZXN0cy9jcHUtcG9saWN5L3Rlc3QtY3B1LXBvbGljeS5jCisrKyBiL3Rv b2xzL3Rlc3RzL2NwdS1wb2xpY3kvdGVzdC1jcHUtcG9saWN5LmMKQEAgLTY1LDYgKzY1LDc3IEBA IHN0YXRpYyB2b2lkIHRlc3RfY3B1aWRfc2VyaWFsaXNlX3N1Y2Nlc3Modm9pZCkKICAgICAgICAg ICAgIC5uYW1lID0gImVtcHR5IHBvbGljeSIsCiAgICAgICAgICAgICAubnJfbGVhdmVzID0gNCwK ICAgICAgICAgfSwKKworICAgICAgICAvKiBMZWFmIDQgc2VyaWFsaXNhdGlvbiBzdG9wcyBhdCB0 aGUgZmlyc3Qgc3VibGVhZiB3aXRoIHR5cGUgMC4gKi8KKyAgICAgICAgeworICAgICAgICAgICAg Lm5hbWUgPSAiZW1wdHkgbGVhZiA0IiwKKyAgICAgICAgICAgIC5wID0geworICAgICAgICAgICAg ICAgIC5iYXNpYy5tYXhfbGVhZiA9IDQsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgLm5y X2xlYXZlcyA9IDQgKyA0LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAubmFt ZSA9ICJwYXJ0aWFsIGxlYWYgNCIsCisgICAgICAgICAgICAucCA9IHsKKyAgICAgICAgICAgICAg ICAuYmFzaWMubWF4X2xlYWYgPSA0LAorICAgICAgICAgICAgICAgIC5jYWNoZS5zdWJsZWFmWzBd LnR5cGUgPSAxLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIC5ucl9sZWF2ZXMgPSA0ICsg NCArIDEsCisgICAgICAgIH0sCisKKyAgICAgICAgLyogTGVhZiA3IHNlcmlhbGlzYXRpb24gc3Rv cHMgYXQgbWF4X3N1YmxlYWYuICovCisgICAgICAgIHsKKyAgICAgICAgICAgIC5uYW1lID0gImVt cHR5IGxlYWYgNyIsCisgICAgICAgICAgICAucCA9IHsKKyAgICAgICAgICAgICAgICAuYmFzaWMu bWF4X2xlYWYgPSA3LAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIC5ucl9sZWF2ZXMgPSA0 ICsgNywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgLm5hbWUgPSAicGFydGlh bCBsZWFmIDciLAorICAgICAgICAgICAgLnAgPSB7CisgICAgICAgICAgICAgICAgLmJhc2ljLm1h eF9sZWFmID0gNywKKyAgICAgICAgICAgICAgICAuZmVhdC5tYXhfc3VibGVhZiA9IDEsCisgICAg ICAgICAgICB9LAorICAgICAgICAgICAgLm5yX2xlYXZlcyA9IDQgKyA3ICsgMSwKKyAgICAgICAg fSwKKworICAgICAgICAvKiBMZWFmIDB4YiBzZXJpYWxpc2F0aW9uIHN0b3BzIGF0IHRoZSBmaXJz dCBzdWJsZWFmIHdpdGggdHlwZSAwLiAqLworICAgICAgICB7CisgICAgICAgICAgICAubmFtZSA9 ICJlbXB0eSBsZWFmIDB4YiIsCisgICAgICAgICAgICAucCA9IHsKKyAgICAgICAgICAgICAgICAu YmFzaWMubWF4X2xlYWYgPSAweGIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgLm5yX2xl YXZlcyA9IDQgKyAweGIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIC5uYW1l ID0gInBhcnRpYWwgbGVhZiAweGIiLAorICAgICAgICAgICAgLnAgPSB7CisgICAgICAgICAgICAg ICAgLmJhc2ljLm1heF9sZWFmID0gMHhiLAorICAgICAgICAgICAgICAgIC50b3BvLnN1YmxlYWZb MF0udHlwZSA9IDEsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgLm5yX2xlYXZlcyA9IDQg KyAweGIgKyAxLAorICAgICAgICB9LAorCisgICAgICAgIC8qCisgICAgICAgICAqIExlYWYgMHhk IHNlcmlhbGlzYXRpb24gYXV0b21hdGljYWxseSBoYXMgdHdvIGxlYXZlcywgYW5kIHN0b3BzIHRo ZQorICAgICAgICAgKiBoaWdoZXN0IGJpdCBzZXQgaW4ge3hjcjAseHNzfV97aGlnaCxsb3d9Lgor ICAgICAgICAgKi8KKyAgICAgICAgeworICAgICAgICAgICAgLm5hbWUgPSAiZW1wdHkgbGVhZiAw eGQiLAorICAgICAgICAgICAgLnAgPSB7CisgICAgICAgICAgICAgICAgLmJhc2ljLm1heF9sZWFm ID0gMHhkLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIC5ucl9sZWF2ZXMgPSA0ICsgMHhk ICsgMSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgLm5hbWUgPSAicGFydGlh bCAweGQiLAorICAgICAgICAgICAgLnAgPSB7CisgICAgICAgICAgICAgICAgLmJhc2ljLm1heF9s ZWFmID0gMHhkLAorICAgICAgICAgICAgICAgIC54c3RhdGUueGNyMF9sb3cgPSA3LAorICAgICAg ICAgICAgfSwKKyAgICAgICAgICAgIC5ucl9sZWF2ZXMgPSA0ICsgMHhkICsgMSArIDEsCisgICAg ICAgIH0sCiAgICAgfTsKIAogICAgIHByaW50ZigiVGVzdGluZyBDUFVJRCBzZXJpYWxpc2Ugc3Vj Y2VzczpcbiIpOwpkaWZmIC0tZ2l0IGEveGVuL2xpYi94ODYvY3B1aWQuYyBiL3hlbi9saWIveDg2 L2NwdWlkLmMKaW5kZXggMjM2MTljNy4uZGNhYjFlNyAxMDA2NDQKLS0tIGEveGVuL2xpYi94ODYv Y3B1aWQuYworKysgYi94ZW4vbGliL3g4Ni9jcHVpZC5jCkBAIC0yNDIsNyArMjQyLDEyIEBAIGlu dCB4ODZfY3B1aWRfY29weV90b19idWZmZXIoY29uc3Qgc3RydWN0IGNwdWlkX3BvbGljeSAqcCwK ICAgICAgICAgewogICAgICAgICBjYXNlIDB4NDoKICAgICAgICAgICAgIGZvciAoIHN1YmxlYWYg PSAwOyBzdWJsZWFmIDwgQVJSQVlfU0laRShwLT5jYWNoZS5yYXcpOyArK3N1YmxlYWYgKQorICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgIENPUFlfTEVBRihsZWFmLCBzdWJsZWFmLCAmcC0+ Y2FjaGUucmF3W3N1YmxlYWZdKTsKKworICAgICAgICAgICAgICAgIGlmICggcC0+Y2FjaGUuc3Vi bGVhZltzdWJsZWFmXS50eXBlID09IDAgKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgMHg3OgpAQCAt MjU0LDEzICsyNTksMzAgQEAgaW50IHg4Nl9jcHVpZF9jb3B5X3RvX2J1ZmZlcihjb25zdCBzdHJ1 Y3QgY3B1aWRfcG9saWN5ICpwLAogCiAgICAgICAgIGNhc2UgMHhiOgogICAgICAgICAgICAgZm9y ICggc3VibGVhZiA9IDA7IHN1YmxlYWYgPCBBUlJBWV9TSVpFKHAtPnRvcG8ucmF3KTsgKytzdWJs ZWFmICkKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBDT1BZX0xFQUYobGVhZiwgc3Vi bGVhZiwgJnAtPnRvcG8ucmF3W3N1YmxlYWZdKTsKKworICAgICAgICAgICAgICAgIGlmICggcC0+ dG9wby5zdWJsZWFmW3N1YmxlYWZdLnR5cGUgPT0gMCApCisgICAgICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSAw eGQ6Ci0gICAgICAgICAgICBmb3IgKCBzdWJsZWFmID0gMDsgc3VibGVhZiA8IEFSUkFZX1NJWkUo cC0+eHN0YXRlLnJhdyk7ICsrc3VibGVhZiApCisgICAgICAgIHsKKyAgICAgICAgICAgIHVpbnQ2 NF90IHhzdGF0ZXM7CisKKyAgICAgICAgICAgIENPUFlfTEVBRihsZWFmLCAwLCAmcC0+eHN0YXRl LnJhd1swXSk7CisgICAgICAgICAgICBDT1BZX0xFQUYobGVhZiwgMSwgJnAtPnhzdGF0ZS5yYXdb MV0pOworCisgICAgICAgICAgICB4c3RhdGVzICA9ICgodWludDY0X3QpKHAtPnhzdGF0ZS54Y3Iw X2hpZ2ggfCBwLT54c3RhdGUueHNzX2hpZ2gpIDw8IDMyKTsKKyAgICAgICAgICAgIHhzdGF0ZXMg fD0gICAgICAgICAgICAocC0+eHN0YXRlLnhjcjBfbG93ICB8IHAtPnhzdGF0ZS54c3NfbG93KTsK KworICAgICAgICAgICAgZm9yICggeHN0YXRlcyA+Pj0gMiwgc3VibGVhZiA9IDI7CisgICAgICAg ICAgICAgICAgICB4c3RhdGVzICYmIHN1YmxlYWYgPCBBUlJBWV9TSVpFKHAtPnhzdGF0ZS5yYXcp OworICAgICAgICAgICAgICAgICAgeHN0YXRlcyA+Pj0gMSwgKytzdWJsZWFmICkKICAgICAgICAg ICAgICAgICBDT1BZX0xFQUYobGVhZiwgc3VibGVhZiwgJnAtPnhzdGF0ZS5yYXdbc3VibGVhZl0p OwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAogICAgICAgICBkZWZhdWx0OgogICAg ICAgICAgICAgQ09QWV9MRUFGKGxlYWYsIFhFTl9DUFVJRF9OT19TVUJMRUFGLCAmcC0+YmFzaWMu cmF3W2xlYWZdKTsKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv L3hlbi1kZXZlbA== 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.0 required=3.0 tests=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 B42A0C282CE for ; Wed, 22 May 2019 15:51:13 +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 8E54B20881 for ; Wed, 22 May 2019 15:51:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8E54B20881 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com 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 1hTTVl-0003Ft-5F; Wed, 22 May 2019 15:50:37 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hTTVj-0003Fo-PS for xen-devel@lists.xenproject.org; Wed, 22 May 2019 15:50:35 +0000 X-Inumbo-ID: 559127d6-7ca9-11e9-8980-bc764e045a96 Received: from esa2.hc3370-68.iphmx.com (unknown [216.71.145.153]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 559127d6-7ca9-11e9-8980-bc764e045a96; Wed, 22 May 2019 15:50:34 +0000 (UTC) Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@MIAPEX02MSOL02.citrite.net Received-SPF: None (esa2.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=23.29.105.83; receiver=esa2.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa2.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 23.29.105.83 as permitted sender) identity=mailfrom; client-ip=23.29.105.83; receiver=esa2.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:23.29.105.83 ip4:162.221.156.83 ~all" Received-SPF: None (esa2.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@MIAPEX02MSOL02.citrite.net) identity=helo; client-ip=23.29.105.83; receiver=esa2.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@MIAPEX02MSOL02.citrite.net"; x-conformance=sidf_compatible IronPort-SDR: nWxL6doB0ETaufoBd8d0wuLB0tlrA8ehqJ+cEErDMEOR78mnVLNp//h/CXvA+F7trysnOQWLG6 hbWUMcujevosENXS70zhPg+Gyx43FZ9DlgRhQieuug0iYDZmpBc1Tm22+X19tOLF1xytjgd3bX F2xaSGlFEQot+T2vVAfyeO2fr4tCk3DfoHG5vtwN2yQIdEImG0bwBM2oVq1wkC/3YncU+/eoV8 2e6BGpBr3ziPYUg03ZJ6VRyU5XhcaRQWV4q77DzCfP22EuzF4Mmdk85APd4h38/Bv5JPukxwQt DXs= X-SBRS: 2.7 X-MesageID: 777540 X-Ironport-Server: esa2.hc3370-68.iphmx.com X-Remote-IP: 23.29.105.83 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.60,499,1549947600"; d="scan'208";a="777540" From: Andrew Cooper To: Xen-devel Date: Wed, 22 May 2019 16:50:30 +0100 Message-ID: <1558540230-26612-1-git-send-email-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 Subject: [Xen-devel] [PATCH] libx86: Elide more empty CPUID leaves when serialising a policy 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: Andrew Cooper , Wei Liu , Jan Beulich , =?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" Message-ID: <20190522155030.m6W1GeugvjnR9jBZfhGkl8hOlySIMYz6wmkbeFAgMgw@z> eDg2X2NwdWlkX2NvcHlfdG9fYnVmZmVyKCkgY3VycmVudGx5IHNlcmlhbGlzZXMgdGhlIGZ1bGwg Y29udGVudCBvZiB0aGUKdmFyaW91cyBzdWJsZWFmIHVuaW9ucy4gIFdoaWxlIGxlYXZlcyA0LCAw eGIgYW5kIDB4ZCBkb24ndCBoYXZlIGEgY29uY3JldGUKbWF4X3N1YmxlYWYgZmllbGQsIHRoZXkg ZG8gaGF2ZSB3ZWxsIGRlZmluZWQgdXBwZXIgYm91bmRzLgoKRGlmZmluZyB0aGUgcmVzdWx0cyBv ZiBgeGVuLWNwdWlkIC1wYCBzaG93cyB0aGUgcmVzdXRsaW5nIHNhdmluZzoKCiAgQEAgLTEsNSAr MSw1IEBACiAgIFhlbiByZXBvcnRzIHRoZXJlIGFyZSBtYXhpbXVtIDExNCBsZWF2ZXMgYW5kIDEg TVNScwogIC1SYXcgcG9saWN5OiA5MyBsZWF2ZXMsIDEgTVNScwogICtSYXcgcG9saWN5OiAzOCBs ZWF2ZXMsIDEgTVNScwogICAgQ1BVSUQ6CiAgICAgbGVhZiAgICAgc3VibGVhZiAgLT4gZWF4ICAg ICAgZWJ4ICAgICAgZWN4ICAgICAgZWR4CiAgICAgMDAwMDAwMDA6ZmZmZmZmZmYgLT4gMDAwMDAw MTY6NzU2ZTY1NDc6NmM2NTc0NmU6NDk2NTZlNjkKICBAQCAtMzIsNyArMzIsNyBAQCBSYXcgcG9s aWN5OiA5MyBsZWF2ZXMsIDEgTVNScwogICAgTVNSczoKICAgICBpbmRleCAgICAtPiB2YWx1ZQog ICAgIDAwMDAwMGNlIC0+IDAwMDAwMDAwODAwMDAwMDAKICAtSG9zdCBwb2xpY3k6IDkzIGxlYXZl cywgMSBNU1JzCiAgK0hvc3QgcG9saWN5OiAzMyBsZWF2ZXMsIDEgTVNScwogICAgQ1BVSUQ6CiAg ICAgbGVhZiAgICAgc3VibGVhZiAgLT4gZWF4ICAgICAgZWJ4ICAgICAgZWN4ICAgICAgZWR4CiAg ICAgMDAwMDAwMDA6ZmZmZmZmZmYgLT4gMDAwMDAwMGQ6NzU2ZTY1NDc6NmM2NTc0NmU6NDk2NTZl NjkKCndoaWNoIGlzIG1vc3RseSBkdWUgdG8gbm8gbG9uZ2VyIHdyaXRpbmcgb3V0IDY0IGxlYXZl cyBmb3IgeHN0YXRlIHdoZW4gKG9uCnRoaXMgQ29mZmVlTGFrZSBzeXN0ZW0pIDggd2lsbCBkby4K CkV4dGVuZCB0aGUgdW5pdCB0ZXN0cyB0byBjb3ZlciBlbXB0eSBhbmQgcGFydGlhbGx5IGZpbGxl ZCBzdWJsZWFmIHVuaW9ucy4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5j b29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29t PgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ0M6IFJvZ2VyIFBhdSBNb25uw6kg PHJvZ2VyLnBhdUBjaXRyaXguY29tPgotLS0KIHRvb2xzL3Rlc3RzL2NwdS1wb2xpY3kvdGVzdC1j cHUtcG9saWN5LmMgfCA3MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2xp Yi94ODYvY3B1aWQuYyAgICAgICAgICAgICAgICAgICAgICB8IDI0ICsrKysrKysrKystCiAyIGZp bGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS90b29scy90ZXN0cy9jcHUtcG9saWN5L3Rlc3QtY3B1LXBvbGljeS5jIGIvdG9vbHMvdGVzdHMv Y3B1LXBvbGljeS90ZXN0LWNwdS1wb2xpY3kuYwppbmRleCBiZWNlZDVlLi5mZDk2YzBiIDEwMDY0 NAotLS0gYS90b29scy90ZXN0cy9jcHUtcG9saWN5L3Rlc3QtY3B1LXBvbGljeS5jCisrKyBiL3Rv b2xzL3Rlc3RzL2NwdS1wb2xpY3kvdGVzdC1jcHUtcG9saWN5LmMKQEAgLTY1LDYgKzY1LDc3IEBA IHN0YXRpYyB2b2lkIHRlc3RfY3B1aWRfc2VyaWFsaXNlX3N1Y2Nlc3Modm9pZCkKICAgICAgICAg ICAgIC5uYW1lID0gImVtcHR5IHBvbGljeSIsCiAgICAgICAgICAgICAubnJfbGVhdmVzID0gNCwK ICAgICAgICAgfSwKKworICAgICAgICAvKiBMZWFmIDQgc2VyaWFsaXNhdGlvbiBzdG9wcyBhdCB0 aGUgZmlyc3Qgc3VibGVhZiB3aXRoIHR5cGUgMC4gKi8KKyAgICAgICAgeworICAgICAgICAgICAg Lm5hbWUgPSAiZW1wdHkgbGVhZiA0IiwKKyAgICAgICAgICAgIC5wID0geworICAgICAgICAgICAg ICAgIC5iYXNpYy5tYXhfbGVhZiA9IDQsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgLm5y X2xlYXZlcyA9IDQgKyA0LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAubmFt ZSA9ICJwYXJ0aWFsIGxlYWYgNCIsCisgICAgICAgICAgICAucCA9IHsKKyAgICAgICAgICAgICAg ICAuYmFzaWMubWF4X2xlYWYgPSA0LAorICAgICAgICAgICAgICAgIC5jYWNoZS5zdWJsZWFmWzBd LnR5cGUgPSAxLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIC5ucl9sZWF2ZXMgPSA0ICsg NCArIDEsCisgICAgICAgIH0sCisKKyAgICAgICAgLyogTGVhZiA3IHNlcmlhbGlzYXRpb24gc3Rv cHMgYXQgbWF4X3N1YmxlYWYuICovCisgICAgICAgIHsKKyAgICAgICAgICAgIC5uYW1lID0gImVt cHR5IGxlYWYgNyIsCisgICAgICAgICAgICAucCA9IHsKKyAgICAgICAgICAgICAgICAuYmFzaWMu bWF4X2xlYWYgPSA3LAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIC5ucl9sZWF2ZXMgPSA0 ICsgNywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgLm5hbWUgPSAicGFydGlh bCBsZWFmIDciLAorICAgICAgICAgICAgLnAgPSB7CisgICAgICAgICAgICAgICAgLmJhc2ljLm1h eF9sZWFmID0gNywKKyAgICAgICAgICAgICAgICAuZmVhdC5tYXhfc3VibGVhZiA9IDEsCisgICAg ICAgICAgICB9LAorICAgICAgICAgICAgLm5yX2xlYXZlcyA9IDQgKyA3ICsgMSwKKyAgICAgICAg fSwKKworICAgICAgICAvKiBMZWFmIDB4YiBzZXJpYWxpc2F0aW9uIHN0b3BzIGF0IHRoZSBmaXJz dCBzdWJsZWFmIHdpdGggdHlwZSAwLiAqLworICAgICAgICB7CisgICAgICAgICAgICAubmFtZSA9 ICJlbXB0eSBsZWFmIDB4YiIsCisgICAgICAgICAgICAucCA9IHsKKyAgICAgICAgICAgICAgICAu YmFzaWMubWF4X2xlYWYgPSAweGIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgLm5yX2xl YXZlcyA9IDQgKyAweGIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIC5uYW1l ID0gInBhcnRpYWwgbGVhZiAweGIiLAorICAgICAgICAgICAgLnAgPSB7CisgICAgICAgICAgICAg ICAgLmJhc2ljLm1heF9sZWFmID0gMHhiLAorICAgICAgICAgICAgICAgIC50b3BvLnN1YmxlYWZb MF0udHlwZSA9IDEsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgLm5yX2xlYXZlcyA9IDQg KyAweGIgKyAxLAorICAgICAgICB9LAorCisgICAgICAgIC8qCisgICAgICAgICAqIExlYWYgMHhk IHNlcmlhbGlzYXRpb24gYXV0b21hdGljYWxseSBoYXMgdHdvIGxlYXZlcywgYW5kIHN0b3BzIHRo ZQorICAgICAgICAgKiBoaWdoZXN0IGJpdCBzZXQgaW4ge3hjcjAseHNzfV97aGlnaCxsb3d9Lgor ICAgICAgICAgKi8KKyAgICAgICAgeworICAgICAgICAgICAgLm5hbWUgPSAiZW1wdHkgbGVhZiAw eGQiLAorICAgICAgICAgICAgLnAgPSB7CisgICAgICAgICAgICAgICAgLmJhc2ljLm1heF9sZWFm ID0gMHhkLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIC5ucl9sZWF2ZXMgPSA0ICsgMHhk ICsgMSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgLm5hbWUgPSAicGFydGlh bCAweGQiLAorICAgICAgICAgICAgLnAgPSB7CisgICAgICAgICAgICAgICAgLmJhc2ljLm1heF9s ZWFmID0gMHhkLAorICAgICAgICAgICAgICAgIC54c3RhdGUueGNyMF9sb3cgPSA3LAorICAgICAg ICAgICAgfSwKKyAgICAgICAgICAgIC5ucl9sZWF2ZXMgPSA0ICsgMHhkICsgMSArIDEsCisgICAg ICAgIH0sCiAgICAgfTsKIAogICAgIHByaW50ZigiVGVzdGluZyBDUFVJRCBzZXJpYWxpc2Ugc3Vj Y2VzczpcbiIpOwpkaWZmIC0tZ2l0IGEveGVuL2xpYi94ODYvY3B1aWQuYyBiL3hlbi9saWIveDg2 L2NwdWlkLmMKaW5kZXggMjM2MTljNy4uZGNhYjFlNyAxMDA2NDQKLS0tIGEveGVuL2xpYi94ODYv Y3B1aWQuYworKysgYi94ZW4vbGliL3g4Ni9jcHVpZC5jCkBAIC0yNDIsNyArMjQyLDEyIEBAIGlu dCB4ODZfY3B1aWRfY29weV90b19idWZmZXIoY29uc3Qgc3RydWN0IGNwdWlkX3BvbGljeSAqcCwK ICAgICAgICAgewogICAgICAgICBjYXNlIDB4NDoKICAgICAgICAgICAgIGZvciAoIHN1YmxlYWYg PSAwOyBzdWJsZWFmIDwgQVJSQVlfU0laRShwLT5jYWNoZS5yYXcpOyArK3N1YmxlYWYgKQorICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgIENPUFlfTEVBRihsZWFmLCBzdWJsZWFmLCAmcC0+ Y2FjaGUucmF3W3N1YmxlYWZdKTsKKworICAgICAgICAgICAgICAgIGlmICggcC0+Y2FjaGUuc3Vi bGVhZltzdWJsZWFmXS50eXBlID09IDAgKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgMHg3OgpAQCAt MjU0LDEzICsyNTksMzAgQEAgaW50IHg4Nl9jcHVpZF9jb3B5X3RvX2J1ZmZlcihjb25zdCBzdHJ1 Y3QgY3B1aWRfcG9saWN5ICpwLAogCiAgICAgICAgIGNhc2UgMHhiOgogICAgICAgICAgICAgZm9y ICggc3VibGVhZiA9IDA7IHN1YmxlYWYgPCBBUlJBWV9TSVpFKHAtPnRvcG8ucmF3KTsgKytzdWJs ZWFmICkKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBDT1BZX0xFQUYobGVhZiwgc3Vi bGVhZiwgJnAtPnRvcG8ucmF3W3N1YmxlYWZdKTsKKworICAgICAgICAgICAgICAgIGlmICggcC0+ dG9wby5zdWJsZWFmW3N1YmxlYWZdLnR5cGUgPT0gMCApCisgICAgICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSAw eGQ6Ci0gICAgICAgICAgICBmb3IgKCBzdWJsZWFmID0gMDsgc3VibGVhZiA8IEFSUkFZX1NJWkUo cC0+eHN0YXRlLnJhdyk7ICsrc3VibGVhZiApCisgICAgICAgIHsKKyAgICAgICAgICAgIHVpbnQ2 NF90IHhzdGF0ZXM7CisKKyAgICAgICAgICAgIENPUFlfTEVBRihsZWFmLCAwLCAmcC0+eHN0YXRl LnJhd1swXSk7CisgICAgICAgICAgICBDT1BZX0xFQUYobGVhZiwgMSwgJnAtPnhzdGF0ZS5yYXdb MV0pOworCisgICAgICAgICAgICB4c3RhdGVzICA9ICgodWludDY0X3QpKHAtPnhzdGF0ZS54Y3Iw X2hpZ2ggfCBwLT54c3RhdGUueHNzX2hpZ2gpIDw8IDMyKTsKKyAgICAgICAgICAgIHhzdGF0ZXMg fD0gICAgICAgICAgICAocC0+eHN0YXRlLnhjcjBfbG93ICB8IHAtPnhzdGF0ZS54c3NfbG93KTsK KworICAgICAgICAgICAgZm9yICggeHN0YXRlcyA+Pj0gMiwgc3VibGVhZiA9IDI7CisgICAgICAg ICAgICAgICAgICB4c3RhdGVzICYmIHN1YmxlYWYgPCBBUlJBWV9TSVpFKHAtPnhzdGF0ZS5yYXcp OworICAgICAgICAgICAgICAgICAgeHN0YXRlcyA+Pj0gMSwgKytzdWJsZWFmICkKICAgICAgICAg ICAgICAgICBDT1BZX0xFQUYobGVhZiwgc3VibGVhZiwgJnAtPnhzdGF0ZS5yYXdbc3VibGVhZl0p OwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAogICAgICAgICBkZWZhdWx0OgogICAg ICAgICAgICAgQ09QWV9MRUFGKGxlYWYsIFhFTl9DUFVJRF9OT19TVUJMRUFGLCAmcC0+YmFzaWMu cmF3W2xlYWZdKTsKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv L3hlbi1kZXZlbA==