From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Jackson Subject: [OSSTEST PATCH 2/3] mg-bisect-activity-*: New rather ad-hoc scripts for wall clock timing analysys Date: Mon, 26 Sep 2016 17:42:33 +0100 Message-ID: <1474908154-25908-2-git-send-email-ian.jackson@eu.citrix.com> References: <22469.26014.117419.990417@mariner.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1boYzQ-0007FE-Nx for xen-devel@lists.xenproject.org; Mon, 26 Sep 2016 16:42:48 +0000 In-Reply-To: <22469.26014.117419.990417@mariner.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Ian Jackson List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+Ci0t LQogLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIFJFQURNRS5iaXNl Y3Qtd2FsbGNsb2NrLWFuYWx5c2lzICB8ICA4NSArKysrKysrKysrKysrKysrKysKIG1nLWJpc2Vj dC1hY3Rpdml0eS1jb2xsZWN0LWVtYWlscyB8ICA1NSArKysrKysrKysrKysKIG1nLWJpc2VjdC1h Y3Rpdml0eS1jb2xsZWN0LXRtcGRpciB8ICA5NCArKysrKysrKysrKysrKysrKysrKwogbWctYmlz ZWN0LWFjdGl2aXR5LWNyZWF0ZS1kYiAgICAgIHwgIDE3ICsrKysKIG1nLWJpc2VjdC1hY3Rpdml0 eS1kdW1wLXBlcmlvZHMgICB8IDE4MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogNiBmaWxlcyBjaGFuZ2VkLCA0MzQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAw NjQ0IFJFQURNRS5iaXNlY3Qtd2FsbGNsb2NrLWFuYWx5c2lzCiBjcmVhdGUgbW9kZSAxMDA3NTUg bWctYmlzZWN0LWFjdGl2aXR5LWNvbGxlY3QtZW1haWxzCiBjcmVhdGUgbW9kZSAxMDA3NTUgbWct YmlzZWN0LWFjdGl2aXR5LWNvbGxlY3QtdG1wZGlyCiBjcmVhdGUgbW9kZSAxMDA3NTUgbWctYmlz ZWN0LWFjdGl2aXR5LWNyZWF0ZS1kYgogY3JlYXRlIG1vZGUgMTAwNzU1IG1nLWJpc2VjdC1hY3Rp dml0eS1kdW1wLXBlcmlvZHMKCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQpp bmRleCA2OWY3NzQzLi40MjU1MDZiIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRp Z25vcmUKQEAgLTMzLDMgKzMzLDUgQEAgaW1hZ2VzCiBkaXNrdXNhZ2UtW0EtWl0qLmh0bWwKIGRp c2t1c2FnZS1bQS1aXSoucG5nCiBkaXNrdXNhZ2UtW0EtWl0qLnBkZgorYmlzZWN0LXRpbWluZy5k YgorKi50bXAKZGlmZiAtLWdpdCBhL1JFQURNRS5iaXNlY3Qtd2FsbGNsb2NrLWFuYWx5c2lzIGIv UkVBRE1FLmJpc2VjdC13YWxsY2xvY2stYW5hbHlzaXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uODU2ZWUyYwotLS0gL2Rldi9udWxsCisrKyBiL1JFQURNRS5iaXNlY3Qtd2Fs bGNsb2NrLWFuYWx5c2lzCkBAIC0wLDAgKzEsODUgQEAKK0dlbmVyYWwgYXBwcm9hY2gKKy0tLS0t LS0tLS0tLS0tLS0KKworICogRGVjaWRlIHdoYXQgYnJhbmNoIHRvIGFuYWx5aXNlLgorCisgKiBT YXZlIGFsbCB0aGUgcmVsZXZhbnQgZW1haWxzIGdlbmVyYXRlZCBieSBvc3N0ZXN0IChpbmNsdWRp bmcgdGhlCisgICBtYWluIGZsaWdodCByZXBvcnRzIGFuZCB0aGUgYmlzZWN0aW9uIHJlcG9ydHMp IHRvIGFuIG1ib3ggY2FsbGVkCisgICBlZyBiaXNlY3QtZGF0YS9yZXBvcnQtZW1haWxzCisKKyAq IE1ha2UgYSBjb3B5ICh3aXRoIHRpbWVzdGFtcHMhKSB0aGUgdG1wLyBkaXJlY3Rvcnkgb2YgdGhl IHJlbGV2YW50CisgICB0cmVlIG9uIHRoZSBjb250cm9sbGVyLCBlZyBpbiBiaXNlY3QtZGF0YS90 bXAgd2l0aCBzb21ldGhpbmcgbGlrZQorIHJzeW5jIC1hSCBvc3N0ZXN0LnRlc3QtbGFiOi9ob21l L29zc3Rlc3QvYmlzZWN0cy9mb3IteGVuLTQuNS10ZXN0aW5nLmdpdC90bXAgIGJpc2VjdC1kYXRh Ly4KKworICogUnVuCisgICAgIC4vbWctYmlzZWN0LWFjdGl2aXR5LWNyZWF0ZS1kYgorICAgICAu L21nLWJpc2VjdC1hY3Rpdml0eS1jb2xsZWN0LWVtYWlscyA8YmlzZWN0LWRhdGEvcmVwb3J0LWVt YWlscworICAgICAuL21nLWJpc2VjdC1hY3Rpdml0eS1jb2xsZWN0LXRtcGRpciBiaXNlY3QtZGF0 YS90bXAKKyAgIFRoaXMgd2lsbCByZXN1bHQgaW4gYSBzcWxpdGUzIGRhdGJhc2UgY2FsbGVkIGJp c2VjdC10aW1pbmcuZGIKKworICogUnVuIC4vbWctYmlzZWN0LWFjdGl2aXR5LWR1bXAtcGVyaW9k cworICAgYW5kIGRlYWwgd2l0aCBhbnkgY29tcGxhaW50cyAibWlzc2luZyIgYW5kICJjeWNsaWMi IChzZWUgYmVsb3cpLgorCisgKiBEZWNpZGUgd2hhdCBiaXNlY3Rpb24gdG8gbG9vayBhdCBhbmQg ZmluZCBpbiB0aGUgc2F2ZWQgbWJveDoKKyAgICBBICBUaGUgbWFpbiByZXBvcnQgZmxpZ2h0Cisg ICAgQiAgVGhlIGxhc3Qgc3Vic2VxdWVudCBlbWFpbCByZWxhdGluZyB0byBhbnkgcHJldmlvdXMg YmlzZWN0aW9uCisgICAgICAgIGF0dGVtcHQgb24gdGhlIHNhbWUgYnJhbmNoIChpZSBvZiBhIGRp ZmZlcmVudCBqb2IpCisgICAgQyAgVGhlIGZpbmFsIGJpc2VjdGlvbiBlbWFpbCBmb3IgdGhlIGJp c2VjdGlvbiBvZiBpbnRlcmVzdDYKKworICAgQ29udmVydCB0aGUgRGF0ZTogaGVhZGVycyB0byB0 aW1lX3RzIHdpdGgKKyAgICAgIFRaPVVUQyBkYXRlICslcyAtZCAnVHVlLCAyMCBTZXAgMjAxNiAw MDoxMzoyMSBHTVQnCisgICBvciB3aGF0ZXZlci4KKworICAgVGhlbiBydW4gc29tZSBvciBhbGwg b2YgCisgICAgICAuL21nLWJpc2VjdC1hY3Rpdml0eS1kdW1wLXBlcmlvZHMgQSBCCisgICAgICAu L21nLWJpc2VjdC1hY3Rpdml0eS1kdW1wLXBlcmlvZHMgQiBDCisgICAgICAuL21nLWJpc2VjdC1h Y3Rpdml0eS1kdW1wLXBlcmlvZHMgQSBDCisgICBhcyB5b3UgbGlrZS4gIChJZiB0aGVyZSBpcyBu byBDLCBsZWF2ZSBpdCBvZmYuKQorCisKK0V2ZW50IG9yZGVyaW5nCistLS0tLS0tLS0tLS0tLQor CittZy1iaXNlY3QtYWN0aXZpdHktZHVtcC1wZXJpb2RzIHByb2R1Y2VzIGEgcmVwb3J0IHdoaWNo IGlkZW50aWZpZXMKKyJwZXJpb2RzIiBpbiB0aGUgZGF0YSwgY2xhc3NpZmllcyB0aG9zZSAicGVy aW9kcyIsIGFuZCBhZGRzIHVwIHRoZQorZWxhcHNlZCB0aW1lIGZvciBlYWNoIGNsYXNzLgorCitB IHBlcmlvZCBpcyB0aGUgdGltZSBiZXR3ZWVuIHR3byBldmVudHMuICBBbiBldmVudCBpcyBzb21l dGhpbmcKK2V2aWRlbnQgZnJvbSB0aGUgbWJveCBvciB0aGUgdG1wLyBkaXJlY3RvcnkuICBFdmVu dHMgYXJlIHNob3duIGJ5CittZy1iaXNlY3QtYWN0aXZpdHktZHVtcC1wZXJpb2RzIGFzICJzb21l IC0gc2VyaWVzIC0gb2YgLSB3b3JkcyIuCisKK1RoZXkgZG8gbm90IGNvbnRhaW4gIiB8ICI6IHRo aXMgaXMgdXNlZCBhcyBhIHNlcGFydG9yLgorCitUaGUgcmF3IGRhdGEgY29sbGVjdGlvbiBpcyBk b25lIG9ubHkgdG8gc2Vjb25kIHJlc29sdXRpb24sIHNvIG9mdGVuCit0aGUgZGF0YSBjb250YWlu cyBldmVudHMgd2hpY2ggYXJlICJzaW11bHRhbmVvdXMiLgorCitGb3IgZXZlbnRzIEEgYW5kIEIg Ym90aCBvY2N1cnJpbmcgYXQgdGltZXN0YW1wIFQKK21nLWJpc2VjdC1hY3Rpdml0eS1kdW1wLXBl cmlvZHMgbG9va3MgYXQgdGhlIGRhdGEgdG8gc2VlIGlmIGl0IGNhbgorZmlndXJlIG91dCB3aGF0 IG9yZGVyIHRob3NlIGV2ZW50cyAoQSBhbmQgQikgInVzdWFsbHkiIGNvbWUgaW4uCisKK0l0IHdp bGwgcmVwb3J0ICJtaXNzaW5nIiBmb3IgdHdvIGV2ZW50cyBpZiB0aGF0IGNhbid0IGJlIGRldGVy bWluZWQuCitJdCB3aWxsIHJlcG9ydCAiY3ljbGljIiBpZiB0aGUgZGF0YSBzZWVtcyB0byBzdWdn ZXN0IGEgY3ljbGUgKGllIHR3bworb3IgbW9yZSBldmVudHMgb24gd2hpY2ggcmVsYXRpb24gImRh dGEgc3VnZ2VzdHMgUCBvY2N1cnMgYmVmb3JlIFEiCitmb3JtcyBhIGN5Y2xpYyBncmFwaCkuCisK K0luIGVhY2ggY2FzZSB0aGUgYW5zd2VyIGlzIHRvIGFkZCB0byB0aGUgX19EQVRBX18gc2VjdGlv biBvZgorbWctYmlzZWN0LWFjdGl2aXR5LWR1bXAtcGVyaW9kcyBhIGxpbmUgc3BlY2lmeWluZyAi WCB8IFkiIHdoZXJlIFggaXMKK2FuIGV2ZW50IHdoaWNoIHlvdSB3b3VsZCBleHBlY3QgKGZyb20g eW91ciBrbm93bGVkZ2Ugb2YgdGhlIHN5c3RlbSkKK3dvdWxkIGdlbmVyYWxseSBwcmVjZWRlIFku ICBUaGlzIHdpbGwgYmUgdXNlZCBib3RoIHRvIHJlbW92ZSBpbmNvcnJlY3QKK2VkZ2VzIChzb3J0 aW5nIG91dCBjeWNsZXMpIGFuZCB0byBhZGQgbWlzc2luZyBlZGdlcy4KKworSWYgdGhlcmUgaXMg YSB3aG9sZSBjYXRlZ29yeSBvZiBzdWNoLCBjb25zaWRlciB3aGV0aGVyIHRvIGRvIHNvbWV0aGlu ZworcHJvZ3JhbW1hdGluZyAobGlrZSAibS9eZmxpZ2h0IC0gc3RlcCBzdGFydCAuLi4iIHdoaWNo IGlzIHRoZXJlCithbHJlYWR5KS4KKworCitQZXJpb2Qgc3F1YXNoaW5nCistLS0tLS0tLS0tLS0t LS0tCisKK1RoZSBmaW5hbCBwYXJ0IG9mIF9fREFUQV8gaXMgYSBsaXN0IG9mIHJlZ2V4cHMgd2hp Y2ggYXJlIHRvIG1hdGNoCitwZXJpb2RzLiAgVGhleSBhcmUgdG8gbWF0Y2ggb24KKworICBldmVu dCB8IGV2ZW50CisKK2FuZCB3aGVuZXZlciBvbmUgbWF0Y2hlcywgdGhlIG1hdGNoaW5nIHBlcmlv ZCBpcyByZXBsYWNlZCBieSB0aGUgdGV4dAorb2YgdGhlIHJlZ2V4cC4gIFRoaXMgYWxsb3dzIGJv cmluZ2x5LXNpbWlsYXIgcGVyaW9kcyB0byBiZSBhZ2dyZWdhdGVkLgpkaWZmIC0tZ2l0IGEvbWct YmlzZWN0LWFjdGl2aXR5LWNvbGxlY3QtZW1haWxzIGIvbWctYmlzZWN0LWFjdGl2aXR5LWNvbGxl Y3QtZW1haWxzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU0NTlhYTgKLS0t IC9kZXYvbnVsbAorKysgYi9tZy1iaXNlY3QtYWN0aXZpdHktY29sbGVjdC1lbWFpbHMKQEAgLTAs MCArMSw1NSBAQAorIyEvYmluL2Jhc2gKKworc2V0IC1lCitzZXQgLW8gcGlwZWZhaWwKK3NldCAt byBwb3NpeAorCisjIHVzYWdlOiAuL21nLWJpc2VjdC1hY3Rpdml0eS1jb2xsZWN0LWVtYWlscyA8 TUJPWCAnRlJPTVBBVFRFUk4nCisKK09TU1RFU1RfQkFDRUY9IiQxIiBmb3JtYWlsIC1jIC1zIHBl cmwgLXdlICcKKwl1c2Ugc3RyaWN0OworCW91ciAlaDsKKwl3aGlsZSAoPD4pIHsKKwkJY2hvbXA7 CisJCWxhc3QgaWYgbS9eJC87CisJCWlmIChtL14oW146XSspXDpccy8pIHsKKwkgICAgICAgIAkk aHtsYyAkMX0gPSAkJ1wnJzsKKwkJfQorCX0KKwl3aGlsZSAoPD4pIHsgfQorCWRpZSB1bmxlc3Mg JGh7c3ViamVjdH07CisJbXkgJGRhdGUgPSAkaHsieC1vcmlnaW5hbC1kYXRlIn0gfHwgJGh7ZGF0 ZX07CisJZGllIHVubGVzcyAkZGF0ZTsKKwlleGl0IDAgdW5sZXNzICRoe2Zyb219ID1+IG0vJEVO VntPU1NURVNUX0JBQ0VGfS9vOworCSRfID0gJGh7c3ViamVjdH0gOworCXMvXHMrLyAvZzsKKwlp ZiAobS9eXFtbXl1bXSsgYmlzZWN0aW9uXF0oPzogXGQrXDopPyAoXHcrKSAvKSB7CisJCXByaW50 ICIkMSI7CisJfSBlbHNpZiAobS9eXFtbXl1bIF0rIHRlc3RcXSBcZCtcOiAvKSB7CisJCXByaW50 ICJNQUlOUkVQT1JUIjsKKwl9IGVsc2UgeworCQljaG9tcDsKKwkJd2FybiAiJF9cbiI7CisJCWV4 aXQgMDsKKwl9CisJcHJpbnQgIlx0IjsKKwlmbHVzaCBTVERPVVQgb3IgZGllICQhOworCXN5c3Rl bShxdyhkYXRlIC1kKSwgJGRhdGUsICIrXCVzIikgYW5kIGRpZSAiJD8gJCEiOworJyB8IHBlcmwg LXdlICcKKwl1c2Ugc3RyaWN0OworCXVzZSBEQkk7CisJI3VzZSBEYXRhOjpEdW1wZXI7CisJbXkg JGRiaCA9IERCSS0+Y29ubmVjdCgiZGJpOlNRTGl0ZTpkYm5hbWU9YmlzZWN0LXRpbWluZy5kYiIs IiIsIiIsCisJCQkgICAgICAgeyBSYWlzZUVycm9yID0+IDEsIFByaW50RXJyb3IgPT4gMSB9KTsK KwkkZGJoLT5iZWdpbl93b3JrKCk7CisJbXkgJHN0bXQgPSAkZGJoLT5wcmVwYXJlKAorCQkiSU5T RVJUIElOVE8gZXZlbnRzIChldnQsdHMsY2F0KSBWQUxVRVMgKD8sPywnXCcnZW1haWwnXCcnKSIK KwkpOworCXdoaWxlICg8PikgeworCSAgICAgIGNob21wIG9yIGRpZTsKKwkgICAgICBteSBAdiA9 IHNwbGl0IC9cdC87CisJICAgICAgI3ByaW50IER1bXBlcigkXywgXEB2KTsKKwkgICAgICAkc3Rt dC0+ZXhlY3V0ZShAdik7CisJfQorCSRkYmgtPmNvbW1pdCgpOworJwpkaWZmIC0tZ2l0IGEvbWct YmlzZWN0LWFjdGl2aXR5LWNvbGxlY3QtdG1wZGlyIGIvbWctYmlzZWN0LWFjdGl2aXR5LWNvbGxl Y3QtdG1wZGlyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFiYTkyYmMKLS0t IC9kZXYvbnVsbAorKysgYi9tZy1iaXNlY3QtYWN0aXZpdHktY29sbGVjdC10bXBkaXIKQEAgLTAs MCArMSw5NCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjCisjIHVzYWdlOiAuL21nLWJpc2VjdC1h Y3Rpdml0eS1jb2xsZWN0LXRtcGRpciBQQVRIL1RPL3RtcAorCit1c2Ugc3RyaWN0OwordXNlIERC STsKKworbXkgJGRiaCA9IERCSS0+Y29ubmVjdCgiZGJpOlNRTGl0ZTpkYm5hbWU9YmlzZWN0LXRp bWluZy5kYiIsIiIsIiIsCisJCSAgICAgICB7IFJhaXNlRXJyb3IgPT4gMSwgUHJpbnRFcnJvciA9 PiAxIH0pOworCiskZGJoLT5iZWdpbl93b3JrKCk7CisKK215ICRzdG10ID0gJGRiaC0+cHJlcGFy ZSgiSU5TRVJUIElOVE8gZXZlbnRzICh0cyxjYXQsZXZ0KSBWQUxVRVMgKD8sPyw/KSIpOworCitt eSAoJGlucHV0ZGlyKSA9IEBBUkdWOworCitzdWIgZGF0ZTJ0cyAoJCkgeworICAgIG15ICgkZGF0 ZSkgPSBAXzsKKyAgICBvcGVuIFMsICItfCIsIHF3KGRhdGUgLWQpLCAkZGF0ZSwgcXcoKyVzKSBv ciBkaWUgJCE7CisgICAgbXkgJHRzID0gPFM+OworICAgIGNsb3NlIFM7CisgICAgY2hvbXAgJHRz IG9yIGRpZSAiJD8gJCEiOworICAgICR0czsKK30KKworZm9yZWFjaCBteSAkZiAoPCRpbnB1dGRp ci8qPikgeworICAgICRfID0gJGY7IHMjLiovIyM7CisKKyAgICBteSAkbXRpbWUgPSBzdWIgewor CW15ICgkZXZ0LCRjYXQpID0gQF87CisKKwlsc3RhdCAkZiBvciBkaWUgJCE7CisJZGllIHVubGVz cyAtZiBfOworCW15ICR0cyA9ICgoc3RhdCBfKVs5XSk7CisKKwkkc3RtdC0+ZXhlY3V0ZSgkdHMs ICgkY2F0IC8vICdtdGltZScpLCAkZXZ0KTsKKyAgICB9OworCisgICAgbXkgQGVjOworICAgIGlm IChtL150XC4vKSB7CisgICAgfSBlbHNpZiAobS9eXGQrXC4KKwkgICAgICAgKCB0cmFuc2NyaXB0 CisJICAgICAgIHwgYmlzZWN0aW9uLXN1bW1hcnkKKwkgICAgICAgfCBiaXNlY3Rpb24tcmVwb3J0 CisJICAgICAgIHwgZW1haWxcLnNlbnQKKwkgICAgICAgKSQveCkgeworCSRtdGltZS0+KCQxKTsK KyAgICB9IGVsc2lmIChtL15iaXNlY3Rpb24tc3RhcnQtc3RhbXAkLykgeworCSRtdGltZS0+KCQm LCAndW5pcXVlJyk7CisgICAgfSBlbHNpZiAobS9eYmlzZWN0aW9uLXN0YXJ0LXN0YW1wXC5uZXck LykgeworICAgIH0gZWxzaWYgKG0vXmNyLWZvci1icmFuY2hlcy5sb2dbLS4wLTlhLXpdKiQvKSB7 CisJaWYgKG0vXC5neiQvKSB7CisJICAgIG9wZW4gTCwgInpjYXQgJGYgfCIgb3IgZGllICQhOwor CX0gZWxzZSB7CisJICAgIG9wZW4gTCwgIjwiLCAkZiBvciBkaWUgJCE7CisJfQorCW15ICRmbGln aHRmaXJzdDsKKwl3aGlsZSAoPEw+KSB7CisJICAgIGlmIChtL15cWyhcZFxkXGRcZFwtXGRcZFwt XGRcZCBcZFxkOlxkXGQ6XGRcZCBVVEMpIFxkK1xdIC8pIHsKKwkJbXkgJHRzID0gZGF0ZTJ0cygk MSk7CisJCWlmIChtL1wuXC5cLiQvKSB7CisJCSAgICAkc3RtdC0+ZXhlY3V0ZSgkdHMsICdjcmxv ZycsICdiZWdpbicpOworCQl9IGVsc2lmIChtLyBzdGF0dXM9XGQrXHMqJC8pIHsKKwkJICAgICRz dG10LT5leGVjdXRlKCR0cywgJ2NybG9nJywgJ2VuZCcpOworCQl9IGVsc2UgeworCQkgICAgJHN0 bXQtPmV4ZWN1dGUoJHRzLCAnY3Jsb2cnLCAndW5rbm93bicpOworCQl9CisJICAgIH0gZWxzaWYg KG0vXmV4cG9ydCBPU1NURVNUX1JFU09VUkNFX1dBSVRTVEFSVD0oXGQrKSQvKSB7CisJCSRzdG10 LT5leGVjdXRlKCQxLCAnd2FpdHN0YXJ0JywgJ2V4cG9ydCcpOworCSAgICB9IGVsc2lmIChzL14o XGRcZFxkXGRcLVxkXGRcLVxkXGQgXGRcZDpcZFxkOlxkXGQgWiApLy8pIHsKKwkJbXkgJHRzID0g ZGF0ZTJ0cygkMSk7CisJCWlmIChtL15mbGlnaHQgXGQrIC8gJiYgISgkZmxpZ2h0Zmlyc3QrKykp IHsKKwkJICAgICRzdG10LT5leGVjdXRlKCR0cywgJ2ZsaWdodCcsICdmbGlnaHQgc3RhcnQnKTsK KwkJfSBlbHNpZiAobS9eZmxpZ2h0IFxkKyBzcGF3bmluZy8pIHsKKwkJICAgICRzdG10LT5leGVj dXRlKCR0cywgJ2ZsaWdodCcsJ2pvYiBzdGFydCcpOworCQl9IGVsc2lmIChtL15mbGlnaHQgXGQr IHJlYXBlZC8pIHsKKwkJICAgICRzdG10LT5leGVjdXRlKCR0cywgJ2ZsaWdodCcsJ2pvYiBmaW5p c2gnKTsKKwkJfSBlbHNpZiAobS9eZmxpZ2h0IFxkKyAoZW5kZWR8ZW5kaW5nKSBmaW5pc2hlZFwu JC8pIHsKKwkJICAgICRzdG10LT5leGVjdXRlKCR0cywgJ2ZsaWdodCcsImZsaWdodCAkMSIpOwor CQl9IGVsc2lmIChtL15cWyhcdyspW15dW10rXF0gc3RhcnRpbmcgLiogKFxTKykkLykgeworCQkg ICAgJHN0bXQtPmV4ZWN1dGUoJHRzLCAnZmxpZ2h0JywgInN0ZXAgc3RhcnQgJDEgJDIiKTsKKwkJ fSBlbHNpZiAobS9eXFsoXHcrKVteXVtdK1xdIGZpbmlzaGVkLykgeworCQkgICAgJHN0bXQtPmV4 ZWN1dGUoJHRzLCAnZmxpZ2h0JywgInN0ZXAgZmluaXNoICQxIik7CisJCX0KKwkgICAgfQorCX0K KyAgICB9IGVsc2lmIChtL15iaXNlY3RlZFwuLykgeworCSRtdGltZS0+KCdiaXNlY3RlZCcpOwor ICAgIH0gZWxzZSB7CisJd2FybiAkZjsKKyAgICB9Cit9CisKKyRkYmgtPmNvbW1pdCgpOwpkaWZm IC0tZ2l0IGEvbWctYmlzZWN0LWFjdGl2aXR5LWNyZWF0ZS1kYiBiL21nLWJpc2VjdC1hY3Rpdml0 eS1jcmVhdGUtZGIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2U1NGY1Mgot LS0gL2Rldi9udWxsCisrKyBiL21nLWJpc2VjdC1hY3Rpdml0eS1jcmVhdGUtZGIKQEAgLTAsMCAr MSwxNyBAQAorIyEvYmluL2Jhc2gKK3NldCAtZQorc2V0IC1vIHBpcGVmYWlsCitzZXQgLW8gcG9z aXgKKworIyB1c2FnZTogLi9tZy1iaXNlY3QtYWN0aXZpdHktY3JlYXRlLWRiCisjIG92ZXJ3cml0 ZXMgYmlzZWN0LXRpbWluZy5kYiB1bmNvbmRpdGlvbmFsbHkKKworcm0gLWYgYmlzZWN0LXRpbWlu Zy5kYgorc3FsaXRlMyBiaXNlY3QtdGltaW5nLmRiIC1iYXRjaCA8L2Rldi9udWxsIC1jbWQgJwor CUNSRUFURSBUQUJMRSBldmVudHMgKAorICAgICAgIAkgICAgICB0cyBJTlRFR0VSIE5PVCBOVUxM LAorCSAgICAgIGNhdCBURVhUIE5PVCBOVUxMLAorCSAgICAgIGV2dCBURVhUIE5PVCBOVUxMCisJ KTsKKwlDUkVBVEUgSU5ERVggZXZlbnRzX3RzX2l4IE9OIGV2ZW50cyAodHMpOworJwpkaWZmIC0t Z2l0IGEvbWctYmlzZWN0LWFjdGl2aXR5LWR1bXAtcGVyaW9kcyBiL21nLWJpc2VjdC1hY3Rpdml0 eS1kdW1wLXBlcmlvZHMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGMwNDcy MAotLS0gL2Rldi9udWxsCisrKyBiL21nLWJpc2VjdC1hY3Rpdml0eS1kdW1wLXBlcmlvZHMKQEAg LTAsMCArMSwxODEgQEAKKyMhL3Vzci9iaW4vcGVybCAtdworIworIyB1c2FnZTogLi9tZy1iaXNl Y3QtYWN0aXZpdHktY29sbGVjdC10bXBkaXIgUEFUSC9UTy90bXAKKwordXNlIHN0cmljdDsKK3Vz ZSBEQkk7Cit1c2UgRGF0YTo6RHVtcGVyOwordXNlIEdyYXBoOjpEaXJlY3RlZDsKKworbXkgKCRi ZWdpbiwkZW5kKSA9IEBBUkdWOworCitteSAkZGJoID0gREJJLT5jb25uZWN0KCJkYmk6U1FMaXRl OmRibmFtZT1iaXNlY3QtdGltaW5nLmRiIiwiIiwiIiwKKwkJICAgICAgIHsgUmFpc2VFcnJvciA9 PiAxLCBQcmludEVycm9yID0+IDEsIFJlYWRPbmx5ID0+IDEgfSk7CisKKyRkYmgtPmJlZ2luX3dv cmsoKTsKKworbXkgJGV4Y2x1ZGVfY29uZCA9IDw8RU5EOworICAgICAgICgKKyAgICAgICAgICAo Y2F0ID0gJ2VtYWlsJyBBTkQgZXZ0ID0gJ01BSU5SRVBPUlQnKQorICAgICAgIE9SIChjYXQgPSAn dW5pcXVlJykKKyAgICAgICApCitFTkQKKworbXkgJHRpbWVfY29uZCA9ICcxPTEnOworJHRpbWVf Y29uZCAuPSAiIEFORCB0cyA+PSAkYmVnaW4iIGlmIGRlZmluZWQgJGJlZ2luOworJHRpbWVfY29u ZCAuPSAiIEFORCB0cyA8PSAkZW5kIiAgIGlmIGRlZmluZWQgJGVuZDsKKyR0aW1lX2NvbmQgPSAi KCR0aW1lX2NvbmQpIjsKKworbXkgJHRxID0gJGRiaC0+cHJlcGFyZSg8PEVORCk7CisgICAgU0VM RUNUIERJU1RJTkNUIHRzCisgICAgICBGUk9NIGV2ZW50cworICAgICBXSEVSRSBOT1QgJGV4Y2x1 ZGVfY29uZAorICAgICAgIEFORCAkdGltZV9jb25kCisgIE9SREVSIEJZIHRzIEFTQworRU5ECisK K215ICRlcSA9ICRkYmgtPnByZXBhcmUoPDxFTkQpOworICAgIFNFTEVDVCBESVNUSU5DVCAoY2F0 IHx8ICcgLSAnIHx8IGV2dCkKKyAgICAgIEZST00gZXZlbnRzCisgICAgIFdIRVJFIHRzID0gPwor ICAgICAgIEFORCBOT1QgJGV4Y2x1ZGVfY29uZAorICBPUkRFUiBCWSBjYXQsIGV2dAorRU5ECisK K291ciAlZXZ0czsKK291ciAldGhpc29yZGVyOworCitzdWIgZ2V0ZXZ0cyAoJCkgeworICAgIG15 ICgkdHMpID0gQF87CisgICAgJGVxLT5leGVjdXRlKCR0cyk7CisgICAgcmV0dXJuIG1hcCB7ICRf LT5bMF0gfSBAeyAkZXEtPmZldGNoYWxsX2FycmF5cmVmKCkgfTsKK30KKworc3ViIGV2bGsgKCQp IHsgam9pbiAnIHwgJywgQHskX1swXX0gfTsKKworJHRxLT5leGVjdXRlKCk7CitteSAkbGFzdGV2 dHM7Cit3aGlsZSAobXkgKCR0cykgPSAkdHEtPmZldGNocm93X2FycmF5KCkpIHsKKyAgICBteSBA ZXZ0cyA9IGdldGV2dHMoJHRzKTsKKworICAgICRldnRzeyRffSsrIGZvcmVhY2ggQGV2dHM7CisK KyAgICBpZiAoJGxhc3RldnRzKSB7CisJaWYgKEBldnRzPT0xICYmIEAkbGFzdGV2dHM9PTEpIHsK KwkgICAgbXkgQGsgPSAoQCRsYXN0ZXZ0cywgQGV2dHMpOworCSAgICAkdGhpc29yZGVye2pvaW4g Ilx0IiwgQGt9Kys7CisJfQorICAgIH0KKyAgICAkbGFzdGV2dHMgPSBcQGV2dHM7Cit9CisKK3N1 YiBmb3JjZW9yZGVyICgkJCkgeworICAgIG15ICgkZSwkZikgPSBAXzsKKyAgICAkdGhpc29yZGVy eyBqb2luICJcdCIsICRlLCAkZiB9Kys7CisgICAgZGVsZXRlICR0aGlzb3JkZXJ7IGpvaW4gIlx0 IiwgJGYsICRlIH07Cit9CisKK3doaWxlICg8REFUQT4pIHsKKyAgICBzL1xzKyQvLzsKKyAgICBu ZXh0IHVubGVzcyBtL1xTLzsKKyAgICBsYXN0IGlmIG0vXi0vOworICAgIG0vIFx8IC8gb3IgZGll ICIkXyA/IjsKKyAgICBmb3JjZW9yZGVyKCRgLCAkJyk7Cit9CisKK2ZvcmVhY2ggKHNvcnQga2V5 cyAlZXZ0cykgeworICAgIGlmIChtL15mbGlnaHQgLSBzdGVwIHN0YXJ0IChcdyspIC8pIHsKKwlm b3JjZW9yZGVyKCRfLCAiZmxpZ2h0IC0gc3RlcCBmaW5pc2ggJDEiKTsKKyAgICB9Cit9CisKK291 ciBAc3F1YXNoZXM7CisKK3doaWxlICg8REFUQT4pIHsKKyAgICBzL1xzKyQvLzsKKyAgICBuZXh0 IHVubGVzcyBtL1xTLzsKKyAgICBwdXNoIEBzcXVhc2hlcywgJF87Cit9CisKKyNwcmludCBEdW1w ZXIoXCV0aGlzb3JkZXIpOworb3VyICVwZXJpb2RzOworCiskdHEtPmV4ZWN1dGUoKTsKK215ICRs YXN0ZXZ0OworbXkgJGxhc3R0czsKK3doaWxlIChteSAoJHRzKSA9ICR0cS0+ZmV0Y2hyb3dfYXJy YXkoKSkgeworICAgIG15IEBldnRzID0gZ2V0ZXZ0cygkdHMpOworICAgIGlmIChAZXZ0cyA+IDEp IHsKKwlteSAkZyA9IG5ldyBHcmFwaDo6RGlyZWN0ZWQ7CisJZm9yZWFjaCBteSAkZSAoQGV2dHMp IHsKKwkgICAgJGctPmFkZF92ZXJ0ZXgoJGUpOworCSAgICBmb3JlYWNoIG15ICRmIChAZXZ0cykg eworCQluZXh0IGlmICRlIGVxICRmOworCQluZXh0IHVubGVzcyAkdGhpc29yZGVyeyBqb2luICJc dCIsICRlLCAkZiB9OworCQkkZy0+YWRkX2VkZ2UoJGUsICRmKTsKKwkgICAgfQorCX0KKwlpZiAo JGctPmlzX2N5Y2xpYykgeworCSAgICBteSBAY3ljbGUgPSAkZy0+ZmluZF9hX2N5Y2xlOworCSAg ICBkaWUgIiR0cyBjeWNsaWMgIi4oam9pbiAiIHwgIiwgQGN5Y2xlKTsKKwl9CisJJGcgPSAkZy0+ dHJhbnNpdGl2ZV9jbG9zdXJlOworCW15ICRleHBfZWRnZXMgPSAoQGV2dHMvMiAqIChAZXZ0cy0x KSk7CisJaWYgKCRnLT5lZGdlcyAhPSAkZXhwX2VkZ2VzKSB7CisJICAgIGZvcmVhY2ggbXkgJGUg KEBldnRzKSB7CisJCWZvcmVhY2ggbXkgJGYgKEBldnRzKSB7CisJCSAgICBuZXh0IGlmICRlIGVx ICRmOworCQkgICAgbmV4dCBpZiAkZy0+aGFzX2VkZ2UoJGUsJGYpOworCQkgICAgbmV4dCBpZiAk Zy0+aGFzX2VkZ2UoJGYsJGUpOworCQkgICAgZGllICIkdHMgbWlzc2luZyAkZSB8ICRmIjsKKwkJ fQorCSAgICB9CisJICAgIGRpZSAiJHRzICIuRHVtcGVyKFxAZXZ0cywgJGcpLiIgPyIgaWYgJEA7 CisJfQorCUBldnRzID0gc29ydCB7ICRnLT5oYXNfZWRnZSgkYSwkYikgPyArMSA6IC0xIH0gQGV2 dHM7CisgICAgfQorICAgIGZvcmVhY2ggbXkgJGV2dCAoQGV2dHMpIHsKKyAgICAgICAgJGV2dCA9 fiBzL14kXyQvJF8vIGZvcmVhY2ggKEBzcXVhc2hlcyk7CisJaWYgKGRlZmluZWQgJGxhc3RldnQp IHsKKwkgICAgJHBlcmlvZHN7IiRsYXN0ZXZ0IHwgJGV2dCJ9ICs9ICgkdHMgLSAkbGFzdHRzKTsK Kwl9CisJJGxhc3RldnQgPSAkZXZ0OworCSRsYXN0dHMgPSAkdHM7CisgICAgfQorfQorCitteSAk dG90YWwgPSAwOworJHRvdGFsICs9ICRfIGZvcmVhY2ggdmFsdWVzICVwZXJpb2RzOworCitzdWIg cHJwZXJpb2QgKCkgeworICAgIHByaW50ZiAiJTUuMmYlJSAlMTBkICVzXG4iLCAxMDAuMCokcGVy aW9kc3skX30vJHRvdGFsLCAkcGVyaW9kc3skX30sICRfOworfQorCitwcnBlcmlvZCgpIGZvcmVh Y2ggc29ydCBrZXlzICVwZXJpb2RzOworCitwcmludCAiXG4iOworCitwcnBlcmlvZCgpIGZvcmVh Y2ggc29ydCB7ICRwZXJpb2RzeyRifSA8PT4gJHBlcmlvZHN7JGF9IH0ga2V5cyAlcGVyaW9kczsK KworJGRiaC0+cm9sbGJhY2soKTsKKworIyBUd28gbG90cyBvZiBzdHVmZjoKKyMgICAtIG9yZGVy aW5ncyBvZiBwb3NzaWJseS1zaW11bHRhZW5vdXMgZXZlbnRzCisjICAgICAoc2VlIFJFQURNRS5i aXNlY3Qtd2FsbGNsb2NrLWFuYWx5c2lzKQorIyAgIC0gcmVnZXhwcyBmb3Igc3F1YXNoaW5nIHBl cmlvZHM7IGVhY2ggZW50cnkgaW4gdGhlIGxpc3QKKyMgICAgIHJlcGxhY2VzIGFsbCBtYXRjaGlu ZyBwZXJpb2RzIHdpdGggYSBjb3B5IG9mIHRoZSByZWdleHAKK19fREFUQV9fCitlbWFpbCAtIHRl c3RlZCB8IGVtYWlsIC0gdGVzdGluZworbXRpbWUgLSBlbWFpbC5zZW50IHwgZW1haWwgLSB0ZXN0 aW5nCittdGltZSAtIGJpc2VjdGlvbi1zdW1tYXJ5IHwgbXRpbWUgLSBiaXNlY3Rpb24tcmVwb3J0 CitmbGlnaHQgLSBmbGlnaHQgZW5kZWQgfCBtdGltZSAtIHRyYW5zY3JpcHQKK2ZsaWdodCAtIHN0 ZXAgZmluaXNoIGJ1aWxkIHwgZmxpZ2h0IC0gam9iIGZpbmlzaAorZmxpZ2h0IC0gZmxpZ2h0IHN0 YXJ0IHwgZmxpZ2h0IC0gam9iIHN0YXJ0CittdGltZSAtIGJpc2VjdGlvbi1yZXBvcnQgfCBtdGlt ZSAtIGJpc2VjdGVkCitlbWFpbCAtIHVucmVwcm9kdWNpYmxlIHwgY3Jsb2cgLSBlbmQKK2VtYWls IC0gY29tcGxldGUgfCBjcmxvZyAtIGVuZAorLS0KK2ZsaWdodCAtIHN0ZXAgc3RhcnQgYnVpbGQg aG9zdC0oPzppbnN0YWxsfGJ1aWxkLXByZXApCitmbGlnaHQgLSBzdGVwIHN0YXJ0IGJ1aWxkIC4q LWJ1aWxkCitmbGlnaHQgLSBzdGVwIHN0YXJ0IHRlc3QgY2FwdHVyZS1sb2dzLioKK2ZsaWdodCAt IHN0ZXAgc3RhcnQgdGVzdCAoPyFjYXB0dXJlfGhvc3QtaW5zdGFsbHxob3N0cy1hbGxvY2F0ZSku KgotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK