From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH RFC v1 24/74] x86/guest: Hypercall support Date: Thu, 4 Jan 2018 13:05:35 +0000 Message-ID: <20180104130625.28605-25-wei.liu2@citrix.com> References: <20180104130625.28605-1-wei.liu2@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.84_2) (envelope-from ) id 1eX5Zl-0004GS-KQ for xen-devel@lists.xenproject.org; Thu, 04 Jan 2018 13:28:53 +0000 In-Reply-To: <20180104130625.28605-1-wei.liu2@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: wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KClNpZ25lZC1v ZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQogeGVu L2FyY2gveDg2L2d1ZXN0L01ha2VmaWxlICAgICAgICAgICB8ICAxICsKIHhlbi9hcmNoL3g4Ni9n dWVzdC9oeXBlcmNhbGxfcGFnZS5TICAgfCA3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIHhlbi9hcmNoL3g4Ni9ndWVzdC94ZW4uYyAgICAgICAgICAgICAgfCAgNSArKwogeGVuL2Fy Y2gveDg2L3hlbi5sZHMuUyAgICAgICAgICAgICAgICB8ICAxICsKIHhlbi9pbmNsdWRlL2FzbS14 ODYvZ3Vlc3QuaCAgICAgICAgICAgfCAgMSArCiB4ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0L2h5 cGVyY2FsbC5oIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDYgZmls ZXMgY2hhbmdlZCwgMTc5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJj aC94ODYvZ3Vlc3QvaHlwZXJjYWxsX3BhZ2UuUwogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNs dWRlL2FzbS14ODYvZ3Vlc3QvaHlwZXJjYWxsLmgKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv Z3Vlc3QvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvZ3Vlc3QvTWFrZWZpbGUKaW5kZXggMTM0NWE2 MGM4MS4uMjZmYjRiMTAwNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2d1ZXN0L01ha2VmaWxl CisrKyBiL3hlbi9hcmNoL3g4Ni9ndWVzdC9NYWtlZmlsZQpAQCAtMSwzICsxLDQgQEAKK29iai15 ICs9IGh5cGVyY2FsbF9wYWdlLm8KIG9iai15ICs9IHhlbi5vCiAKIG9iai1iaW4tJChDT05GSUdf UFZIX0dVRVNUKSArPSBwdmgtYm9vdC5pbml0Lm8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9n dWVzdC9oeXBlcmNhbGxfcGFnZS5TIGIveGVuL2FyY2gveDg2L2d1ZXN0L2h5cGVyY2FsbF9wYWdl LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZmRkMmU3MjI3MgotLS0g L2Rldi9udWxsCisrKyBiL3hlbi9hcmNoL3g4Ni9ndWVzdC9oeXBlcmNhbGxfcGFnZS5TCkBAIC0w LDAgKzEsNzkgQEAKKyNpbmNsdWRlIDxhc20vcGFnZS5oPgorI2luY2x1ZGUgPGFzbS9hc21fZGVm bnMuaD4KKyNpbmNsdWRlIDxwdWJsaWMveGVuLmg+CisKKyAgICAgICAgLnNlY3Rpb24gIi50ZXh0 LnBhZ2VfYWxpZ25lZCIsICJheCIsIEBwcm9nYml0cworICAgICAgICAucDJhbGlnbiBQQUdFX1NI SUZUCisKK0dMT0JBTChoeXBlcmNhbGxfcGFnZSkKKyAgICAgICAgIC8qIFBvaXNvbmVkIHdpdGgg YHJldGAgZm9yIHNhZmV0eSBiZWZvcmUgaHlwZXJjYWxscyBhcmUgc2V0IHVwLiAqLworICAgICAg ICAuZmlsbCBQQUdFX1NJWkUsIDEsIDB4YzMKKyAgICAgICAgLnR5cGUgaHlwZXJjYWxsX3BhZ2Us IFNUVF9PQkpFQ1QKKyAgICAgICAgLnNpemUgaHlwZXJjYWxsX3BhZ2UsIFBBR0VfU0laRQorCisv KgorICogSWRlbnRpZnkgYSBzcGVjaWZpYyBoeXBlcmNhbGwgaW4gdGhlIGh5cGVyY2FsbCBwYWdl CisgKiBAcGFyYW0gbmFtZSBIeXBlcmNhbGwgbmFtZS4KKyAqLworI2RlZmluZSBERUNMQVJFX0hZ UEVSQ0FMTChuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgIC5nbG9ibCBIWVBFUkNBTExfICMjIG5hbWU7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLnNldCAgIEhZUEVSQ0FM TF8gIyMgbmFtZSwgaHlwZXJjYWxsX3BhZ2UgKyBfX0hZUEVSVklTT1JfICMjIG5hbWUgKiAzMjsg XAorICAgICAgICAudHlwZSAgSFlQRVJDQUxMXyAjIyBuYW1lLCBTVFRfRlVOQzsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC5zaXplICBIWVBFUkNBTExfICMj IG5hbWUsIDMyCisKK0RFQ0xBUkVfSFlQRVJDQUxMKHNldF90cmFwX3RhYmxlKQorREVDTEFSRV9I WVBFUkNBTEwobW11X3VwZGF0ZSkKK0RFQ0xBUkVfSFlQRVJDQUxMKHNldF9nZHQpCitERUNMQVJF X0hZUEVSQ0FMTChzdGFja19zd2l0Y2gpCitERUNMQVJFX0hZUEVSQ0FMTChzZXRfY2FsbGJhY2tz KQorREVDTEFSRV9IWVBFUkNBTEwoZnB1X3Rhc2tzd2l0Y2gpCitERUNMQVJFX0hZUEVSQ0FMTChz Y2hlZF9vcF9jb21wYXQpCitERUNMQVJFX0hZUEVSQ0FMTChwbGF0Zm9ybV9vcCkKK0RFQ0xBUkVf SFlQRVJDQUxMKHNldF9kZWJ1Z3JlZykKK0RFQ0xBUkVfSFlQRVJDQUxMKGdldF9kZWJ1Z3JlZykK K0RFQ0xBUkVfSFlQRVJDQUxMKHVwZGF0ZV9kZXNjcmlwdG9yKQorREVDTEFSRV9IWVBFUkNBTEwo bWVtb3J5X29wKQorREVDTEFSRV9IWVBFUkNBTEwobXVsdGljYWxsKQorREVDTEFSRV9IWVBFUkNB TEwodXBkYXRlX3ZhX21hcHBpbmcpCitERUNMQVJFX0hZUEVSQ0FMTChzZXRfdGltZXJfb3ApCitE RUNMQVJFX0hZUEVSQ0FMTChldmVudF9jaGFubmVsX29wX2NvbXBhdCkKK0RFQ0xBUkVfSFlQRVJD QUxMKHhlbl92ZXJzaW9uKQorREVDTEFSRV9IWVBFUkNBTEwoY29uc29sZV9pbykKK0RFQ0xBUkVf SFlQRVJDQUxMKHBoeXNkZXZfb3BfY29tcGF0KQorREVDTEFSRV9IWVBFUkNBTEwoZ3JhbnRfdGFi bGVfb3ApCitERUNMQVJFX0hZUEVSQ0FMTCh2bV9hc3Npc3QpCitERUNMQVJFX0hZUEVSQ0FMTCh1 cGRhdGVfdmFfbWFwcGluZ19vdGhlcmRvbWFpbikKK0RFQ0xBUkVfSFlQRVJDQUxMKGlyZXQpCitE RUNMQVJFX0hZUEVSQ0FMTCh2Y3B1X29wKQorREVDTEFSRV9IWVBFUkNBTEwoc2V0X3NlZ21lbnRf YmFzZSkKK0RFQ0xBUkVfSFlQRVJDQUxMKG1tdWV4dF9vcCkKK0RFQ0xBUkVfSFlQRVJDQUxMKHhz bV9vcCkKK0RFQ0xBUkVfSFlQRVJDQUxMKG5taV9vcCkKK0RFQ0xBUkVfSFlQRVJDQUxMKHNjaGVk X29wKQorREVDTEFSRV9IWVBFUkNBTEwoY2FsbGJhY2tfb3ApCitERUNMQVJFX0hZUEVSQ0FMTCh4 ZW5vcHJvZl9vcCkKK0RFQ0xBUkVfSFlQRVJDQUxMKGV2ZW50X2NoYW5uZWxfb3ApCitERUNMQVJF X0hZUEVSQ0FMTChwaHlzZGV2X29wKQorREVDTEFSRV9IWVBFUkNBTEwoaHZtX29wKQorREVDTEFS RV9IWVBFUkNBTEwoc3lzY3RsKQorREVDTEFSRV9IWVBFUkNBTEwoZG9tY3RsKQorREVDTEFSRV9I WVBFUkNBTEwoa2V4ZWNfb3ApCitERUNMQVJFX0hZUEVSQ0FMTCh0bWVtX29wKQorREVDTEFSRV9I WVBFUkNBTEwoeGNfcmVzZXJ2ZWRfb3ApCitERUNMQVJFX0hZUEVSQ0FMTCh4ZW5wbXVfb3ApCisK K0RFQ0xBUkVfSFlQRVJDQUxMKGFyY2hfMCkKK0RFQ0xBUkVfSFlQRVJDQUxMKGFyY2hfMSkKK0RF Q0xBUkVfSFlQRVJDQUxMKGFyY2hfMikKK0RFQ0xBUkVfSFlQRVJDQUxMKGFyY2hfMykKK0RFQ0xB UkVfSFlQRVJDQUxMKGFyY2hfNCkKK0RFQ0xBUkVfSFlQRVJDQUxMKGFyY2hfNSkKK0RFQ0xBUkVf SFlQRVJDQUxMKGFyY2hfNikKK0RFQ0xBUkVfSFlQRVJDQUxMKGFyY2hfNykKKworLyoKKyAqIExv Y2FsIHZhcmlhYmxlczoKKyAqIHRhYi13aWR0aDogOAorICogaW5kZW50LXRhYnMtbW9kZTogbmls CisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9ndWVzdC94ZW4uYyBiL3hl bi9hcmNoL3g4Ni9ndWVzdC94ZW4uYwppbmRleCA5NDQ2YTQ2YTk0Li5jNWI0MzQxNGM5IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvZ3Vlc3QveGVuLmMKKysrIGIveGVuL2FyY2gveDg2L2d1ZXN0 L3hlbi5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+CiAKICNpbmNs dWRlIDxhc20vZ3Vlc3QuaD4KKyNpbmNsdWRlIDxhc20vbXNyLmg+CiAjaW5jbHVkZSA8YXNtL3By b2Nlc3Nvci5oPgogCiAjaW5jbHVkZSA8cHVibGljL2FyY2gteDg2L2NwdWlkLmg+CkBAIC0yOSw2 ICszMCw3IEBACiBib29sIHhlbl9ndWVzdDsKIAogc3RhdGljIHVpbnQzMl90IHhlbl9jcHVpZF9i YXNlOworZXh0ZXJuIGNoYXIgaHlwZXJjYWxsX3BhZ2VbXTsKIAogc3RhdGljIHZvaWQgX19pbml0 IGZpbmRfeGVuX2xlYXZlcyh2b2lkKQogewpAQCAtNjEsNiArNjMsOSBAQCB2b2lkIF9faW5pdCBw cm9iZV9oeXBlcnZpc29yKHZvaWQpCiAgICAgaWYgKCAheGVuX2NwdWlkX2Jhc2UgKQogICAgICAg ICByZXR1cm47CiAKKyAgICAvKiBGaWxsIHRoZSBoeXBlcmNhbGwgcGFnZS4gKi8KKyAgICB3cm1z cmwoY3B1aWRfZWJ4KHhlbl9jcHVpZF9iYXNlICsgMiksIF9fcGEoaHlwZXJjYWxsX3BhZ2UpKTsK KwogICAgIHhlbl9ndWVzdCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94 ZW4ubGRzLlMgYi94ZW4vYXJjaC94ODYveGVuLmxkcy5TCmluZGV4IGQ4ODBiMGE2MWEuLjA0MTBk OTVhZjIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMKKysrIGIveGVuL2FyY2gv eDg2L3hlbi5sZHMuUwpAQCAtNjUsNiArNjUsNyBAQCBTRUNUSU9OUwogICBERUNMX1NFQ1RJT04o LnRleHQpIHsKICAgICAgICAgX3N0ZXh0ID0gLjsgICAgICAgICAgICAvKiBUZXh0IGFuZCByZWFk LW9ubHkgZGF0YSAqLwogICAgICAgICooLnRleHQpCisgICAgICAgKigudGV4dC5wYWdlX2FsaWdu ZWQpCiAgICAgICAgKigudGV4dC5jb2xkKQogICAgICAgICooLnRleHQudW5saWtlbHkpCiAgICAg ICAgKiguZml4dXApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0LmggYi94 ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0LmgKaW5kZXggOGQ5MWY4MTQ1MS4uNWFiZGI4YzQzMyAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdC5oCisrKyBiL3hlbi9pbmNsdWRl L2FzbS14ODYvZ3Vlc3QuaApAQCAtMTksNiArMTksNyBAQAogI2lmbmRlZiBfX1g4Nl9HVUVTVF9I X18KICNkZWZpbmUgX19YODZfR1VFU1RfSF9fCiAKKyNpbmNsdWRlIDxhc20vZ3Vlc3QvaHlwZXJj YWxsLmg+CiAjaW5jbHVkZSA8YXNtL2d1ZXN0L3B2aC1ib290Lmg+CiAjaW5jbHVkZSA8YXNtL2d1 ZXN0L3hlbi5oPgogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0L2h5cGVy Y2FsbC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdC9oeXBlcmNhbGwuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jNDYwZjU5YzU0Ci0tLSAvZGV2L251bGwKKysr IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdC9oeXBlcmNhbGwuaApAQCAtMCwwICsxLDkyIEBA CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisgKiBhc20teDg2L2d1ZXN0L2h5cGVyY2FsbC5oCisg KgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlLCB2ZXJzaW9uIDIsIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUgR05VCisgKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKgorICogQ29weXJpZ2h0 IChjKSAyMDE3IENpdHJpeCBTeXN0ZW1zIEx0ZC4KKyAqLworCisjaWZuZGVmIF9fWDg2X1hFTl9I WVBFUkNBTExfSF9fCisjZGVmaW5lIF9fWDg2X1hFTl9IWVBFUkNBTExfSF9fCisKKyNpZmRlZiBD T05GSUdfWEVOX0dVRVNUCisKKy8qCisgKiBIeXBlcmNhbGwgcHJpbWF0aXZlcyBmb3IgNjRiaXQK KyAqCisgKiBJbnB1dHM6ICVyZGksICVyc2ksICVyZHgsICVyMTAsICVyOCwgJXI5IChhcmd1bWVu dHMgMS02KQorICovCisKKyNkZWZpbmUgX2h5cGVyY2FsbDY0XzEodHlwZSwgaGNhbGwsIGExKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoeyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgbG9uZyByZXMsIHRtcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAgICAgYXNtIHZvbGF0aWxlICggICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICJjYWxsIGh5cGVyY2Fs bF9wYWdlICsgJWNbb2Zmc2V0XSIgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg ICAgIDogIj1hIiAocmVzKSwgIj1EIiAodG1wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgICAgIDogW29mZnNldF0gImkiIChoY2FsbCAqIDMyKSwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIjEiICgobG9uZykoYTEp KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg IDogIm1lbW9yeSIgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgKHR5cGUpcmVzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9KQorCisjZGVmaW5lIF9oeXBlcmNhbGw2NF8y KHR5cGUsIGhjYWxsLCBhMSwgYTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg KHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgICAgIGxvbmcgcmVzLCB0bXA7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGFzbSB2b2xhdGlsZSAoICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg ICAgICAiY2FsbCBoeXBlcmNhbGxfcGFnZSArICVjW29mZnNldF0iICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICAgICAgICA6ICI9YSIgKHJlcyksICI9RCIgKHRtcCksICI9UyIgKHRt cCkgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICA6IFtvZmZzZXRdICJpIiAo aGNhbGwgKiAzMiksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAg ICAgICIxIiAoKGxvbmcpKGExKSksICIyIiAoKGxvbmcpKGEyKSkgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgICAgICA6ICJtZW1vcnkiICk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICh0eXBlKXJlczsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSkKKworI2Rl ZmluZSBfaHlwZXJjYWxsNjRfMyh0eXBlLCBoY2FsbCwgYTEsIGEyLCBhMykgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBsb25nIHJlcywgdG1wOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg ICBhc20gdm9sYXRpbGUgKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgICAgICAgICAgImNhbGwgaHlwZXJjYWxsX3BhZ2UgKyAlY1tvZmZzZXRd IiAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgOiAiPWEiIChyZXMpLCAi PUQiICh0bXApLCAiPVMiICh0bXApLCAiPWQiICh0bXApICAgICAgICAgICAgXAorICAgICAgICAg ICAgOiBbb2Zmc2V0XSAiaSIgKGhjYWxsICogMzIpLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICAgICAgICAiMSIgKChsb25nKShhMSkpLCAiMiIgKChsb25nKShhMikp LCAiMyIgKChsb25nKShhMykpICAgICAgXAorICAgICAgICAgICAgOiAibWVtb3J5IiApOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAodHlw ZSlyZXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgIH0pCisKKyNkZWZpbmUgX2h5cGVyY2FsbDY0XzQodHlwZSwgaGNhbGwsIGExLCBh MiwgYTMsIGE0KSAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoeyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgbG9uZyByZXMsIHRtcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAgICAgcmVnaXN0ZXIgbG9uZyBfYTQgYXNtICgicjEwIikgPSAoKGxv bmcpKGE0KSk7ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgYXNtIHZvbGF0aWxlICggICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg ICAgICJjYWxsIGh5cGVyY2FsbF9wYWdlICsgJWNbb2Zmc2V0XSIgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgICAgIDogIj1hIiAocmVzKSwgIj1EIiAodG1wKSwgIj1TIiAodG1w KSwgIj1kIiAodG1wKSwgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIj0mciIgKHRtcCkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg IDogW29mZnNldF0gImkiIChoY2FsbCAqIDMyKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgICAgICAgIjEiICgobG9uZykoYTEpKSwgIjIiICgobG9uZykoYTIpKSwg IjMiICgobG9uZykoYTMpKSwgICAgIFwKKyAgICAgICAgICAgICAgIjQiIChfYTQpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIDog Im1lbW9yeSIgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgKHR5cGUpcmVzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICB9KQorCisjZW5kaWYgLyogQ09ORklHX1hFTl9HVUVT VCAqLworI2VuZGlmIC8qIF9fWDg2X1hFTl9IWVBFUkNBTExfSF9fICovCisKKy8qCisgKiBMb2Nh bCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJh c2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwK KyAqIEVuZDoKKyAqLwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL3hlbi1kZXZlbA==