From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/7] x86/alt: Clean up the assembly used to generate alternatives Date: Mon, 12 Feb 2018 11:23:03 +0000 Message-ID: <1518434587-22827-4-git-send-email-andrew.cooper3@citrix.com> References: <1518434587-22827-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: In-Reply-To: <1518434587-22827-1-git-send-email-andrew.cooper3@citrix.com> 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 , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org ICogT24gdGhlIEMgc2lkZSwgc3dpdGNoIHRvIHVzaW5nIGxvY2FsIGxhYmxlcyByYXRoZXIgdGhh biBoYXJkY29kZWQgbnVtYmVycy4KICogUmVuYW1lIHBhcmFtZXRlcnMgYW5kIGxhYmxlcyB0byBi ZSBjb25zaXN0ZW50IHdpdGggYWx0X2luc3RyIG5hbWVzLCBhbmQKICAgY29uc2lzdGVudCBiZXR3 ZWVuIHRoZSB0aGUgQyBhbmQgYXNtIHZlcnNpb25zLgogKiBPbiB0aGUgYXNtIHNpZGUsIGZhY3Rv ciBzb21lIGV4cHJlc3Npb25zIG91dCBpbnRvIG1hY3JvcyB0byBhaWQgY2xhcml0eS4KICogQ29u c2lzdGVudGx5IGRlY2xhcmUgc2VjdGlvbiBhdHRyaWJ1dGVzLgoKTm8gZnVuY3Rpb25hbCBjaGFu Z2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXgu Y29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IEtvbnJhZCBS emVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ0M6IFJvZ2VyIFBhdSBNb25u w6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNv bT4KLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLWFzbS5oIHwgNTcgKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2 ZS5oICAgICB8IDY0ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUtYXNtLmggYi94ZW4vaW5jbHVkZS9hc20t eDg2L2FsdGVybmF0aXZlLWFzbS5oCmluZGV4IDY2NDBlODUuLjE1MGJkMWEgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUtYXNtLmgKKysrIGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9hbHRlcm5hdGl2ZS1hc20uaApAQCAtOSw2MCArOSw2NyBAQAogICogZW5vdWdoIGlu Zm9ybWF0aW9uIGZvciB0aGUgYWx0ZXJuYXRpdmVzIHBhdGNoaW5nIGNvZGUgdG8gcGF0Y2ggYW4K ICAqIGluc3RydWN0aW9uLiBTZWUgYXBwbHlfYWx0ZXJuYXRpdmVzKCkuCiAgKi8KLS5tYWNybyBh bHRpbnN0cnVjdGlvbl9lbnRyeSBvcmlnIGFsdCBmZWF0dXJlIG9yaWdfbGVuIGFsdF9sZW4KKy5t YWNybyBhbHRpbnN0cnVjdGlvbl9lbnRyeSBvcmlnIHJlcGwgZmVhdHVyZSBvcmlnX2xlbiByZXBs X2xlbgogICAgIC5sb25nIFxvcmlnIC0gLgotICAgIC5sb25nIFxhbHQgLSAuCisgICAgLmxvbmcg XHJlcGwgLSAuCiAgICAgLndvcmQgXGZlYXR1cmUKICAgICAuYnl0ZSBcb3JpZ19sZW4KLSAgICAu Ynl0ZSBcYWx0X2xlbgorICAgIC5ieXRlIFxyZXBsX2xlbgogLmVuZG0KIAorI2RlZmluZSBvcmln X2xlbiAgICAgICAgICAgICAgICguTFxAX29yaWdfZSAgICAgICAtICAgICAuTFxAX29yaWdfcykK KyNkZWZpbmUgcmVwbF9sZW4obnIpICAgICAgICAgICAoLkxcQF9yZXBsX2VcKCluciAgLSAgICAg LkxcQF9yZXBsX3NcKClucikKKyNkZWZpbmUgZGVjbF9yZXBsKGluc24sIG5yKSAgICAgLkxcQF9y ZXBsX3NcKClucjogaW5zbjsgLkxcQF9yZXBsX2VcKClucjoKKwogLm1hY3JvIEFMVEVSTkFUSVZF IG9sZGluc3RyLCBuZXdpbnN0ciwgZmVhdHVyZQotLkxvbGRfc3RhcnRfXEA6CisuTFxAX29yaWdf czoKICAgICBcb2xkaW5zdHIKLS5Mb2xkX2VuZF9cQDoKKy5MXEBfb3JpZ19lOgogCiAgICAgLnB1 c2hzZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsICJhIiwgQHByb2diaXRzCi0gICAgYWx0aW5zdHJ1 Y3Rpb25fZW50cnkgLkxvbGRfc3RhcnRfXEAsIC5MbmV3X3N0YXJ0X1xALCBcZmVhdHVyZSwgXAot ICAgICAgICAoLkxvbGRfZW5kX1xAIC0gLkxvbGRfc3RhcnRfXEApLCAoLkxuZXdfZW5kX1xAIC0g LkxuZXdfc3RhcnRfXEApCisgICAgYWx0aW5zdHJ1Y3Rpb25fZW50cnkgLkxcQF9vcmlnX3MsIC5M XEBfcmVwbF9zMSwgXGZlYXR1cmUsIFwKKyAgICAgICAgb3JpZ19sZW4sIHJlcGxfbGVuKDEpCiAK ICAgICAuc2VjdGlvbiAuZGlzY2FyZCwgImEiLCBAcHJvZ2JpdHMKICAgICAvKiBBc3NlbWJsZXIt dGltZSBjaGVjayB0aGF0IFxuZXdpbnN0ciBpc24ndCBsb25nZXIgdGhhbiBcb2xkaW5zdHIuICov Ci0gICAgLmJ5dGUgMHhmZiArICguTG5ld19lbmRfXEAgLSAuTG5ld19zdGFydF9cQCkgLSAoLkxv bGRfZW5kX1xAIC0gLkxvbGRfc3RhcnRfXEApCisgICAgLmJ5dGUgMHhmZiArIHJlcGxfbGVuKDEp IC0gb3JpZ19sZW4KIAogICAgIC5zZWN0aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgImF4Iiwg QHByb2diaXRzCi0uTG5ld19zdGFydF9cQDoKLSAgICBcbmV3aW5zdHIKLS5MbmV3X2VuZF9cQDoK KworICAgIGRlY2xfcmVwbChcbmV3aW5zdHIsIDEpCisKICAgICAucG9wc2VjdGlvbgogLmVuZG0K IAogLm1hY3JvIEFMVEVSTkFUSVZFXzIgb2xkaW5zdHIsIG5ld2luc3RyMSwgZmVhdHVyZTEsIG5l d2luc3RyMiwgZmVhdHVyZTIKLS5Mb2xkX3N0YXJ0X1xAOgorLkxcQF9vcmlnX3M6CiAgICAgXG9s ZGluc3RyCi0uTG9sZF9lbmRfXEA6CisuTFxAX29yaWdfZToKIAogICAgIC5wdXNoc2VjdGlvbiAu YWx0aW5zdHJ1Y3Rpb25zLCAiYSIsIEBwcm9nYml0cwotICAgIGFsdGluc3RydWN0aW9uX2VudHJ5 IC5Mb2xkX3N0YXJ0X1xALCAuTG5ldzFfc3RhcnRfXEAsIFxmZWF0dXJlMSwgXAotICAgICAgICAo LkxvbGRfZW5kX1xAIC0gLkxvbGRfc3RhcnRfXEApLCAoLkxuZXcxX2VuZF9cQCAtIC5MbmV3MV9z dGFydF9cQCkKLSAgICBhbHRpbnN0cnVjdGlvbl9lbnRyeSAuTG9sZF9zdGFydF9cQCwgLkxuZXcy X3N0YXJ0X1xALCBcZmVhdHVyZTIsIFwKLSAgICAgICAgKC5Mb2xkX2VuZF9cQCAtIC5Mb2xkX3N0 YXJ0X1xAKSwgKC5MbmV3Ml9lbmRfXEAgLSAuTG5ldzJfc3RhcnRfXEApCisKKyAgICBhbHRpbnN0 cnVjdGlvbl9lbnRyeSAuTFxAX29yaWdfcywgLkxcQF9yZXBsX3MxLCBcZmVhdHVyZTEsIFwKKyAg ICAgICAgb3JpZ19sZW4sIHJlcGxfbGVuKDEpCisgICAgYWx0aW5zdHJ1Y3Rpb25fZW50cnkgLkxc QF9vcmlnX3MsIC5MXEBfcmVwbF9zMiwgXGZlYXR1cmUyLCBcCisgICAgICAgIG9yaWdfbGVuLCBy ZXBsX2xlbigyKQogCiAgICAgLnNlY3Rpb24gLmRpc2NhcmQsICJhIiwgQHByb2diaXRzCiAgICAg LyogQXNzZW1ibGVyLXRpbWUgY2hlY2sgdGhhdCBcbmV3aW5zdHJ7MSwyfSBhcmVuJ3QgbG9uZ2Vy IHRoYW4gXG9sZGluc3RyLiAqLwotICAgIC5ieXRlIDB4ZmYgKyAoLkxuZXcxX2VuZF9cQCAtIC5M bmV3MV9zdGFydF9cQCkgLSAoLkxvbGRfZW5kX1xAIC0gLkxvbGRfc3RhcnRfXEApCi0gICAgLmJ5 dGUgMHhmZiArICguTG5ldzJfZW5kX1xAIC0gLkxuZXcyX3N0YXJ0X1xAKSAtICguTG9sZF9lbmRf XEAgLSAuTG9sZF9zdGFydF9cQCkKKyAgICAuYnl0ZSAweGZmICsgcmVwbF9sZW4oMSkgLSBvcmln X2xlbgorICAgIC5ieXRlIDB4ZmYgKyByZXBsX2xlbigyKSAtIG9yaWdfbGVuCiAKICAgICAuc2Vj dGlvbiAuYWx0aW5zdHJfcmVwbGFjZW1lbnQsICJheCIsIEBwcm9nYml0cwotLkxuZXcxX3N0YXJ0 X1xAOgotICAgIFxuZXdpbnN0cjEKLS5MbmV3MV9lbmRfXEA6Ci0uTG5ldzJfc3RhcnRfXEA6Ci0g ICAgXG5ld2luc3RyMgotLkxuZXcyX2VuZF9cQDoKKworICAgIGRlY2xfcmVwbChcbmV3aW5zdHIx LCAxKQorICAgIGRlY2xfcmVwbChcbmV3aW5zdHIyLCAyKQorCiAgICAgLnBvcHNlY3Rpb24KIC5l bmRtCiAKKyN1bmRlZiBkZWNsX3JlcGwKKyN1bmRlZiByZXBsX2xlbgorI3VuZGVmIG9yaWdfbGVu CisKICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KICNlbmRpZiAvKiBfQVNNX1g4Nl9BTFRFUk5B VElWRV9BU01fSF8gKi8KIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5h dGl2ZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oCmluZGV4IGZlZmE4N2Qu LjFlNWNmYmQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaAor KysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmgKQEAgLTI2LDQ0ICsyNiw1MCBA QCBleHRlcm4gdm9pZCBhcHBseV9hbHRlcm5hdGl2ZXMoY29uc3Qgc3RydWN0IGFsdF9pbnN0ciAq c3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGFsdF9p bnN0ciAqZW5kKTsKIGV4dGVybiB2b2lkIGFsdGVybmF0aXZlX2luc3RydWN0aW9ucyh2b2lkKTsK IAotI2RlZmluZSBPTERJTlNUUihvbGRpbnN0cikgICAgICAiNjYxOlxuXHQiIG9sZGluc3RyICJc bjY2MjpcbiIKKyNkZWZpbmUgT0xESU5TVFIob2xkaW5zdHIpICAgICAgIi5MJT1fb3JpZ19zOlxu XHQiIG9sZGluc3RyICJcbi5MJT1fb3JpZ19lOlxuIgogCi0jZGVmaW5lIGJfcmVwbGFjZW1lbnQo bnVtYmVyKSAgICI2NjMiI251bWJlcgotI2RlZmluZSBlX3JlcGxhY2VtZW50KG51bWJlcikgICAi NjY0IiNudW1iZXIKKyNkZWZpbmUgcmVwbF9zKG51bSkgICAgICAgICAgICAgIi5MJT1fcmVwbF9z IiNudW0KKyNkZWZpbmUgcmVwbF9lKG51bSkgICAgICAgICAgICAgIi5MJT1fcmVwbF9lIiNudW0K IAotI2RlZmluZSBhbHRfc2xlbiAiNjYyYi02NjFiIgotI2RlZmluZSBhbHRfcmxlbihudW1iZXIp IGVfcmVwbGFjZW1lbnQobnVtYmVyKSJmLSJiX3JlcGxhY2VtZW50KG51bWJlcikiZiIKKyNkZWZp bmUgYWx0X29yaWdfbGVuICAgICAgICAgICAgIiguTCU9X29yaWdfZSAtIC5MJT1fb3JpZ19zKSIK KyNkZWZpbmUgYWx0X3JlcGxfbGVuKG51bSkgICAgICAgIigiIHJlcGxfZShudW0pICIgLSAiIHJl cGxfcyhudW0pICIpIgogCi0jZGVmaW5lIEFMVElOU1RSX0VOVFJZKGZlYXR1cmUsIG51bWJlcikg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICIgLmxvbmcg NjYxYiAtIC5cbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxhYmVsICAgICAgICAg ICAqLyBcCi0gICAgICAgICIgLmxvbmcgIiBiX3JlcGxhY2VtZW50KG51bWJlcikiZiAtIC5cbiIg ICAgICAgIC8qIG5ldyBpbnN0cnVjdGlvbiAqLyBcCi0gICAgICAgICIgLndvcmQgIiBfX3N0cmlu Z2lmeShmZWF0dXJlKSAiXG4iICAgICAgICAgICAgIC8qIGZlYXR1cmUgYml0ICAgICAqLyBcCi0g ICAgICAgICIgLmJ5dGUgIiBhbHRfc2xlbiAiXG4iICAgICAgICAgICAgICAgICAgICAgICAgIC8q IHNvdXJjZSBsZW4gICAgICAqLyBcCi0gICAgICAgICIgLmJ5dGUgIiBhbHRfcmxlbihudW1iZXIp ICJcbiIgICAgICAgICAgICAgICAgIC8qIHJlcGxhY2VtZW50IGxlbiAqLworI2RlZmluZSBBTFRJ TlNUUl9FTlRSWShmZWF0dXJlLCBudW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgICAgICAiIC5sb25nIC5MJT1fb3JpZ19zIC0gLlxuIiAgICAgICAgICAgICAgICAv KiBsYWJlbCAgICAgICAgICAgKi8gXAorICAgICAgICAiIC5sb25nICIgcmVwbF9zKG51bSkiIC0g LlxuIiAgICAgICAgICAgICAvKiBuZXcgaW5zdHJ1Y3Rpb24gKi8gXAorICAgICAgICAiIC53b3Jk ICIgX19zdHJpbmdpZnkoZmVhdHVyZSkgIlxuIiAgICAgICAvKiBmZWF0dXJlIGJpdCAgICAgKi8g XAorICAgICAgICAiIC5ieXRlICIgYWx0X29yaWdfbGVuICJcbiIgICAgICAgICAgICAgICAvKiBz b3VyY2UgbGVuICAgICAgKi8gXAorICAgICAgICAiIC5ieXRlICIgYWx0X3JlcGxfbGVuKG51bSkg IlxuIiAgICAgICAgICAvKiByZXBsYWNlbWVudCBsZW4gKi8KIAotI2RlZmluZSBESVNDQVJEX0VO VFJZKG51bWJlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBybGVuIDw9IHNsZW4gKi8g ICAgXAotICAgICAgICAiIC5ieXRlIDB4ZmYgKyAoIiBhbHRfcmxlbihudW1iZXIpICIpIC0gKCIg YWx0X3NsZW4gIilcbiIKKyNkZWZpbmUgRElTQ0FSRF9FTlRSWShudW0pICAgICAgICAgICAgICAg ICAgICAgICAgLyogcmVwbCA8PSBvcmlnICovICAgIFwKKyAgICAgICAgIiAuYnl0ZSAweGZmICsg KCIgYWx0X3JlcGxfbGVuKG51bSkgIikgLSAoIiBhbHRfb3JpZ19sZW4gIilcbiIKIAotI2RlZmlu ZSBBTFRJTlNUUl9SRVBMQUNFTUVOVChuZXdpbnN0ciwgZmVhdHVyZSwgbnVtYmVyKSAvKiByZXBs YWNlbWVudCAqLyAgICAgXAotICAgICAgICBiX3JlcGxhY2VtZW50KG51bWJlcikiOlxuXHQiIG5l d2luc3RyICJcbiIgZV9yZXBsYWNlbWVudChudW1iZXIpICI6XG5cdCIKLQotI2RlZmluZSBBTFRF Uk5BVElWRV9OKG5ld2luc3RyLCBmZWF0dXJlLCBudW1iZXIpCVwKLQkiLnB1c2hzZWN0aW9uIC5h bHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIJCVwKLQlBTFRJTlNUUl9FTlRSWShmZWF0dXJlLCBudW1i ZXIpCQkJXAotCSIuc2VjdGlvbiAuZGlzY2FyZCxcImFcIixAcHJvZ2JpdHNcbiIJCVwKLQlESVND QVJEX0VOVFJZKG51bWJlcikJCQkJXAotCSIuc2VjdGlvbiAuYWx0aW5zdHJfcmVwbGFjZW1lbnQs IFwiYXhcIlxuIglcCi0JQUxUSU5TVFJfUkVQTEFDRU1FTlQobmV3aW5zdHIsIGZlYXR1cmUsIG51 bWJlcikJXAotCSIucG9wc2VjdGlvblxuIgorI2RlZmluZSBBTFRJTlNUUl9SRVBMQUNFTUVOVChu ZXdpbnN0ciwgbnVtKSAgICAgICAvKiByZXBsYWNlbWVudCAqLyAgICAgXAorICAgICAgICByZXBs X3MobnVtKSI6XG5cdCIgbmV3aW5zdHIgIlxuIiByZXBsX2UobnVtKSAiOlxuXHQiCiAKIC8qIGFs dGVybmF0aXZlIGFzc2VtYmx5IHByaW1pdGl2ZTogKi8KLSNkZWZpbmUgQUxURVJOQVRJVkUob2xk aW5zdHIsIG5ld2luc3RyLCBmZWF0dXJlKQkJCSAgXAotCU9MRElOU1RSKG9sZGluc3RyKQkJCQkJ CSAgXAotCUFMVEVSTkFUSVZFX04obmV3aW5zdHIsIGZlYXR1cmUsIDEpCisjZGVmaW5lIEFMVEVS TkFUSVZFKG9sZGluc3RyLCBuZXdpbnN0ciwgZmVhdHVyZSkgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgIE9MRElOU1RSKG9sZGluc3RyKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICIucHVzaHNlY3Rpb24gLmFsdGluc3RydWN0 aW9ucywgXCJhXCIsIEBwcm9nYml0c1xuIiAgICAgICAgICAgICBcCisgICAgICAgIEFMVElOU1RS X0VOVFJZKGZlYXR1cmUsIDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgICIuc2VjdGlvbiAuZGlzY2FyZCwgXCJhXCIsIEBwcm9nYml0c1xuIiAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgICAgIERJU0NBUkRfRU5UUlkoMSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICIuc2VjdGlvbiAu YWx0aW5zdHJfcmVwbGFjZW1lbnQsIFwiYXhcIiwgQHByb2diaXRzXG4iICAgICAgICAgICBcCisg ICAgICAgIEFMVElOU1RSX1JFUExBQ0VNRU5UKG5ld2luc3RyLCAxKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgICAgICIucG9wc2VjdGlvblxuIgogCiAjZGVmaW5lIEFMVEVS TkFUSVZFXzIob2xkaW5zdHIsIG5ld2luc3RyMSwgZmVhdHVyZTEsIG5ld2luc3RyMiwgZmVhdHVy ZTIpIFwKLQlBTFRFUk5BVElWRShvbGRpbnN0ciwgbmV3aW5zdHIxLCBmZWF0dXJlMSkJCQkgIFwK LQlBTFRFUk5BVElWRV9OKG5ld2luc3RyMiwgZmVhdHVyZTIsIDIpCisgICAgICAgIE9MRElOU1RS KG9sZGluc3RyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgICIucHVzaHNlY3Rpb24gLmFsdGluc3RydWN0aW9ucywgXCJhXCIsIEBwcm9nYml0 c1xuIiAgICAgICAgICAgICBcCisgICAgICAgIEFMVElOU1RSX0VOVFJZKGZlYXR1cmUxLCAxKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEFMVElOU1RSX0VO VFJZKGZlYXR1cmUyLCAyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgICAgICIuc2VjdGlvbiAuZGlzY2FyZCwgXCJhXCIsIEBwcm9nYml0c1xuIiAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgICAgIERJU0NBUkRfRU5UUlkoMSkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIERJU0NBUkRfRU5UUlko MikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgICIuc2VjdGlvbiAuYWx0aW5zdHJfcmVwbGFjZW1lbnQsIFwiYXhcIiwgQHByb2diaXRzXG4i ICAgICAgICAgICBcCisgICAgICAgIEFMVElOU1RSX1JFUExBQ0VNRU5UKG5ld2luc3RyMSwgMSkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEFMVElOU1RSX1JFUExBQ0VN RU5UKG5ld2luc3RyMiwgMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg ICIucG9wc2VjdGlvblxuIgogCiAvKgogICogQWx0ZXJuYXRpdmUgaW5zdHJ1Y3Rpb25zIGZvciBk aWZmZXJlbnQgQ1BVIHR5cGVzIG9yIGNhcGFiaWxpdGllcy4KLS0gCjIuMS40CgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==