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=-8.4 required=3.0 tests=DKIM_ADSP_ALL,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,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 B6A17C3A5A3 for ; Tue, 27 Aug 2019 08:47:46 +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 7B6AF206BF for ; Tue, 27 Aug 2019 08:47:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amazon.de header.i=@amazon.de header.b="CvZjckNo" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7B6AF206BF Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amazon.de 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 1i2X8Z-00035r-1z; Tue, 27 Aug 2019 08:47:35 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i2X8V-0002zo-JM for xen-devel@lists.xenproject.org; Tue, 27 Aug 2019 08:47:31 +0000 X-Inumbo-ID: 4772a680-c8a7-11e9-ac23-bc764e2007e4 Received: from smtp-fw-9102.amazon.com (unknown [207.171.184.29]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 4772a680-c8a7-11e9-ac23-bc764e2007e4; Tue, 27 Aug 2019 08:47:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209; t=1566895640; x=1598431640; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=B7ISsD3GkYWnMHSpUwwcrch0szvJ5xPVm+uo8SkimQc=; b=CvZjckNoyKORV04iOLG6T8nAijso0laXMHJhkE1hQlZVfuwcdX2+MLPE PU4jHpuaf60ZhpYqalt0jim5dwViasdWMEKvvelhNruEBdpLZkTC6fDDY Pwtm7AIJ49M33mVUrv+tqGIqQHzhkGUobdOCawQ4dSEjlt0f+mWy9ByKz M=; X-IronPort-AV: E=Sophos;i="5.64,436,1559520000"; d="scan'208";a="697824933" Received: from sea3-co-svc-lb6-vlan3.sea.amazon.com (HELO email-inbound-relay-1a-e34f1ddc.us-east-1.amazon.com) ([10.47.22.38]) by smtp-border-fw-out-9102.sea19.amazon.com with ESMTP; 27 Aug 2019 08:47:17 +0000 Received: from EX13MTAUEA001.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan2.iad.amazon.com [10.40.159.162]) by email-inbound-relay-1a-e34f1ddc.us-east-1.amazon.com (Postfix) with ESMTPS id 430ECA1D65; Tue, 27 Aug 2019 08:47:14 +0000 (UTC) Received: from EX13D05EUB002.ant.amazon.com (10.43.166.45) by EX13MTAUEA001.ant.amazon.com (10.43.61.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 27 Aug 2019 08:47:01 +0000 Received: from EX13MTAUEE001.ant.amazon.com (10.43.62.200) by EX13D05EUB002.ant.amazon.com (10.43.166.45) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 27 Aug 2019 08:47:00 +0000 Received: from dev-dsk-wipawel-1a-0c4e6d58.eu-west-1.amazon.com (10.4.134.33) by mail-relay.amazon.com (10.43.62.226) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 27 Aug 2019 08:46:57 +0000 From: Pawel Wieczorkiewicz To: , Date: Tue, 27 Aug 2019 08:46:23 +0000 Message-ID: <20190827084624.116917-12-wipawel@amazon.de> X-Mailer: git-send-email 2.16.5 In-Reply-To: <20190827084624.116917-1-wipawel@amazon.de> References: <20190821081931.90887-1-wipawel@amazon.de> <20190827084624.116917-1-wipawel@amazon.de> MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH v2 11/12] livepatch: Add metadata runtime retrieval mechanism X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: wipawel@amazon.com, Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ross Lagerwall , Ian Jackson , mpohlack@amazon.com, Tim Deegan , Pawel Wieczorkiewicz , Julien Grall , Jan Beulich Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" RXh0ZW5kIHRoZSBsaXZlcGF0Y2ggbGlzdCBvcGVyYXRpb24gdG8gZmV0Y2ggYWxzbyBwYXlsb2Fk cycgbWV0YWRhdGEuClRoaXMgaXMgYWNoaWV2ZWQgYnkgZXh0ZW5kaW5nIHRoZSBzeXNjdGwgbGlz dCBpbnRlcmZhY2Ugd2l0aCAyIGV4dHJhCmd1ZXN0IGhhbmRsZXM6CiogbWV0YWRhdGEgICAgIC0g YW4gYXJyYXkgb2YgYXJiaXRyYXJ5IHNpemUgc3RyaW5ncwoqIG1ldGFkYXRhX2xlbiAtIGFuIGFy cmF5IG9mIG1ldGFkYXRhIHN0cmluZ3MnIGxlbmd0aHMgKHVpbjMyX3QgZWFjaCkKClBheWxvYWRz JyBtZXRhZGF0YSBpcyBhIHN0cmluZyBvZiBhcmJpdHJhcnkgc2l6ZSBhbmQgZG9lcyBub3QgaGF2 ZSBhbgp1cHBlciBib3VuZCBsaW1pdC4gSXQgbWF5IGFsc28gdmFyeSBpbiBzaXplIGJldHdlZW4g cGF5bG9hZHMuCgpJbiBvcmRlciB0byBsZXQgdGhlIHVzZXJsYW5kIGFsbG9jYXRlIGVub3VnaCBz cGFjZSBmb3IgdGhlIGluY29taW5nCmRhdGEgYWRkIGEgbWV0YWRhdGEgdG90YWwgc2l6ZSBmaWVs ZCB0byB0aGUgbGlzdCBzeXNjdGwgb3BlcmF0aW9uIGFuZApmaWxsIGl0IHdpdGggdG90YWwgc2l6 ZSBvZiBhbGwgcGF5bG9hZHMnIG1ldGFkYXRhLgoKRXh0ZW5kIHRoZSBsaWJ4YyB0byBoYW5kbGUg dGhlIG1ldGFkYXRhIGJhY2stdG8tYmFjayBkYXRhIHRyYW5zZmVycwphcyB3ZWxsIGFzIG1ldGFk YXRhIGxlbmd0aCBhcnJheSBkYXRhIHRyYW5zZmVycy4KClRoZSB4ZW4tbGl2ZXBhdGNoIHVzZXJs YW5kIHRvb2wgaXMgZXh0ZW5kZWQgdG8gYWx3YXlzIGRpc3BsYXkgdGhlCm1ldGFkYXRhIGZvciBl YWNoIHJlY2VpdmVkIG1vZHVsZS4gVGhlIG1ldGFkYXRhIGlzIHJlY2VpdmVkIHdpdGggdGhlCmZv bGxvd2luZyBmb3JtYXQ6IGtleT12YWx1ZVwwa2V5PXZhbHVlXDAuLi5rZXk9dmFsdWVcMC4gVGhl IGZvcm1hdCBpcwptb2RpZmllZCB0byB0aGUgZm9sbG93aW5nIG9uZToga2V5PXZhbHVlO2tleT12 YWx1ZTsuLi5rZXk9dmFsdWUuClRoZSBuZXcgZm9ybWF0IGFsbG93cyB0byBlYXNpbHkgcGFyc2Ug dGhlIG1ldGFkYXRhIGZvciBhIGdpdmVuIG1vZHVsZQpieSBhIG1hY2hpbmUuCgpTaWduZWQtb2Zm LWJ5OiBQYXdlbCBXaWVjem9ya2lld2ljeiA8d2lwYXdlbEBhbWF6b24uZGU+ClJldmlld2VkLWJ5 OiBBbmRyYS1JcmluYSBQYXJhc2NoaXYgPGFuZHJhcHJzQGFtYXpvbi5jb20+ClJldmlld2VkLWJ5 OiBNYXJ0aW4gUG9obGFjayA8bXBvaGxhY2tAYW1hem9uLmRlPgpSZXZpZXdlZC1ieTogTm9yYmVy dCBNYW50aGV5IDxubWFudGhleUBhbWF6b24uZGU+Ci0tLQpDaGFuZ2VkIHNpbmNlIHYxOgogICog YWRkZWQgY29ycmVzcG9uZGluZyBkb2N1bWVudGF0aW9uCiAgKiBtYWtlIG1ldGFkYXRhIG9wdGlv bmFsIChkbyBub3QgZGlzcGxheSBpdCB3aGVuIGdpdmVuIHBheWxvYWQKICAgIGRvZXMgbm90IGhh dmUgaXQpCgogZG9jcy9taXNjL2xpdmVwYXRjaC5wYW5kb2MgICAgfCAzMSArKysrKysrKysrKysr KysrLS0tLS0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIHwgMjIgKysrKysrKysrKyst LS0tCiB0b29scy9saWJ4Yy94Y19taXNjLmMgICAgICAgICB8IDY0ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0KIHRvb2xzL21pc2MveGVuLWxpdmVwYXRjaC5jICAg IHwgNDMgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIHhlbi9jb21tb24vbGl2ZXBhdGNo LmMgICAgICAgIHwgMjIgKysrKysrKysrKystLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3Rs LmggICB8IDE5ICsrKysrKysrKy0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgMTU3IGluc2VydGlvbnMo KyksIDQ0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy9saXZlcGF0Y2gucGFu ZG9jIGIvZG9jcy9taXNjL2xpdmVwYXRjaC5wYW5kb2MKaW5kZXggYTYyNmM0ZjkxNi4uZjgwMDkw MzNiNyAxMDA2NDQKLS0tIGEvZG9jcy9taXNjL2xpdmVwYXRjaC5wYW5kb2MKKysrIGIvZG9jcy9t aXNjL2xpdmVwYXRjaC5wYW5kb2MKQEAgLTcwNCw4ICs3MDQsOCBAQCBUaGUgc3RydWN0dXJlIGlz IGFzIGZvbGxvdzoKIAogIyMjIFhFTl9TWVNDVExfTElWRVBBVENIX0xJU1QgKDIpCiAKLVJldHJp ZXZlIGFuIGFycmF5IG9mIGFiYnJldmlhdGVkIHN0YXR1cyBhbmQgbmFtZXMgb2YgcGF5bG9hZHMg dGhhdCBhcmUgbG9hZGVkIGluIHRoZQotaHlwZXJ2aXNvci4KK1JldHJpZXZlIGFuIGFycmF5IG9m IGFiYnJldmlhdGVkIHN0YXR1cywgbmFtZXMgYW5kIG1ldGFkYXRhIG9mIHBheWxvYWRzIHRoYXQg YXJlCitsb2FkZWQgaW4gdGhlIGh5cGVydmlzb3IuCiAKIFRoZSBjYWxsZXIgcHJvdmlkZXM6CiAK QEAgLTcxNCw4ICs3MTQsOSBAQCBUaGUgY2FsbGVyIHByb3ZpZGVzOgogICogYGlkeGAgSW5kZXgg aXRlcmF0b3IuIFRoZSBpbmRleCBpbnRvIHRoZSBoeXBlcnZpc29yJ3MgcGF5bG9hZCBjb3VudC4g SXQgaXMKICAgICByZWNvbW1lbmRlZCB0aGF0IG9uIGZpcnN0IGludm9jYXRpb24gemVybyBiZSB1 c2VkIHNvIHRoYXQgYG5yYCAod2hpY2ggdGhlCiAgICAgaHlwZXJ2aXNvciB3aWxsIHVwZGF0ZSB3 aXRoIHRoZSByZW1haW5pbmcgcGF5bG9hZCBjb3VudCkgYmUgcHJvdmlkZWQuCi0gICAgQWxzbyB0 aGUgaHlwZXJ2aXNvciB3aWxsIHByb3ZpZGUgYHZlcnNpb25gIHdpdGggdGhlIG1vc3QgY3VycmVu dCB2YWx1ZSBhbmQKLSAgICBjYWxjdWxhdGVkIHRvdGFsIHNpemUgZm9yIGFsbCBwYXlsb2Fkcycg bmFtZXMuCisgICAgQWxzbyB0aGUgaHlwZXJ2aXNvciB3aWxsIHByb3ZpZGUgYHZlcnNpb25gIHdp dGggdGhlIG1vc3QgY3VycmVudCB2YWx1ZSwKKyAgICBjYWxjdWxhdGVkIHRvdGFsIHNpemUgb2Yg YWxsIHBheWxvYWRzJyBuYW1lcyBhbmQgY2FsY3VsYXRlZCB0b3RhbCBzaXplIG9mCisgICAgYWxs IHBheWxvYWQncyBtZXRhZGF0YS4KICAqIGBucmAgVGhlIG1heCBudW1iZXIgb2YgZW50cmllcyB0 byBwb3B1bGF0ZS4gQ2FuIGJlIHplcm8gd2hpY2ggd2lsbCByZXN1bHQKICAgICBpbiB0aGUgaHlw ZXJjYWxsIGJlaW5nIGEgcHJvYmluZyBvbmUgYW5kIHJldHVybiB0aGUgbnVtYmVyIG9mIHBheWxv YWRzCiAgICAgKGFuZCB1cGRhdGUgdGhlIGB2ZXJzaW9uYCkuCkBAIC03MzEsMTQgKzczMiwyMyBA QCBUaGUgY2FsbGVyIHByb3ZpZGVzOgogICogYGxlbmAgLSBWaXJ0dWFsIGFkZHJlc3Mgb2Ygd2hl cmUgdG8gd3JpdGUgdGhlIGxlbmd0aCBvZiBlYWNoIHVuaXF1ZSBuYW1lCiAgICBvZiB0aGUgcGF5 bG9hZC4gQ2FsbGVyICpNVVNUKiBhbGxvY2F0ZSB1cCB0byBgbnJgIG9mIHRoZW0uIEVhY2ggKk1V U1QqIGJlCiAgICBvZiBzaXplb2YodWludDMyX3QpICg0IGJ5dGVzKS4KKyAqIGBtZXRhZGF0YWAg LSBWaXJ0dWFsIGFkZHJlc3Mgb2Ygd2hlcmUgdG8gd3JpdGUgdGhlIG1ldGFkYXRhIG9mIHRoZSBw YXlsb2Fkcy4KKyAgIENhbGxlciAqTVVTVCogYWxsb2NhdGUgZW5vdWdoIHNwYWNlIHRvIGJlIGFi bGUgdG8gc3RvcmUgYWxsIHJlY2VpdmVkIGRhdGEKKyAgIChpLmUuIHRvdGFsIGFsbG9jYXRlZCBz cGFjZSAqTVVTVCogbWF0Y2ggdGhlIGBtZXRhZGF0YV90b3RhbF9zaXplYCB2YWx1ZQorICAgcHJv dmlkZWQgYnkgdGhlIGh5cGVydmlzb3IpLiBJbmRpdmlkdWFsIHBheWxvYWQgbWV0YWRhdGEgc3Ry aW5nIGNhbiBiZSBvZgorICAgYXJiaXRyYXJ5IGxlbmd0aC4gVGhlIG1ldGFkYXRhIHN0cmluZyBm b3JtYXQgaXM6IGtleT12YWx1ZVwwLi4ua2V5PXZhbHVlXDAuCisgKiBgbWV0YWRhdGFfbGVuYCAt IFZpcnR1YWwgYWRkcmVzcyBvZiB3aGVyZSB0byB3cml0ZSB0aGUgbGVuZ3RoIG9mIGVhY2ggbWV0 YWRhdGEKKyAgIHN0cmluZyBvZiB0aGUgcGF5bG9hZC4gQ2FsbGVyICpNVVNUKiBhbGxvY2F0ZSB1 cCB0byBgbnJgIG9mIHRoZW0uIEVhY2ggKk1VU1QqCisgICBiZSBvZiBzaXplb2YodWludDMyX3Qp ICg0IGJ5dGVzKS4KIAogSWYgdGhlIGh5cGVyY2FsbCByZXR1cm5zIGFuIHBvc2l0aXZlIG51bWJl ciwgaXQgaXMgdGhlIG51bWJlciAodXB0byBgbnJgCiBwcm92aWRlZCB0byB0aGUgaHlwZXJjYWxs KSBvZiB0aGUgcGF5bG9hZHMgcmV0dXJuZWQsIGFsb25nIHdpdGggYG5yYCB1cGRhdGVkCiB3aXRo IHRoZSBudW1iZXIgb2YgcmVtYWluaW5nIHBheWxvYWRzLCBgdmVyc2lvbmAgdXBkYXRlZCAoaXQg bWF5IGJlIHRoZSBzYW1lCiBhY3Jvc3MgaHlwZXJjYWxscyAtIGlmIGl0IHZhcmllcyB0aGUgZGF0 YSBpcyBzdGFsZSBhbmQgZnVydGhlciBjYWxscyBjb3VsZAotZmFpbCkgYW5kIHRoZSBgbmFtZV90 b3RhbF9zaXplYCBjb250YWluaW5nIHRvdGFsIHNpemUgb2YgdHJhbnNmZXJlZCBkYXRhIGZvcgot dGhlIGFycmF5LiBUaGUgYHN0YXR1c2AsIGBuYW1lYCwgYW5kIGBsZW5gIGFyZSB1cGRhdGVkIGF0 IHRoZWlyIGRlc2lnbmVkIGluZGV4Ci12YWx1ZSAoYGlkeGApIHdpdGggdGhlIHJldHVybmVkIHZh bHVlIG9mIGRhdGEuCitmYWlsKSwgYG5hbWVfdG90YWxfc2l6ZWAgYW5kIGBtZXRhZGF0YV90b3Rh bF9zaXplYCBjb250YWluaW5nIHRvdGFsIHNpemVzIG9mCit0cmFuc2ZlcmVkIGRhdGEgZm9yIGJv dGggdGhlIGFycmF5cy4KK1RoZSBgc3RhdHVzYCwgYG5hbWVgLCBgbGVuYCwgYG1ldGFkYXRhYCBh bmQgYG1ldGFkYXRhX2xlbmAgYXJlIHVwZGF0ZWQgYXQgdGhlaXIKK2Rlc2lnbmVkIGluZGV4IHZh bHVlIChgaWR4YCkgd2l0aCB0aGUgcmV0dXJuZWQgdmFsdWUgb2YgZGF0YS4KIAogSWYgdGhlIGh5 cGVyY2FsbCByZXR1cm5zIC1YRU5fRTJCSUcgdGhlIGBucmAgaXMgdG9vIGJpZyBhbmQgc2hvdWxk IGJlCiBsb3dlcmVkLgpAQCAtNzc3LDYgKzc4Nyw3IEBAIFRoZSBzdHJ1Y3R1cmUgaXMgYXMgZm9s bG93OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg T1VUOiBIb3cgbWFueSBwYXlsb2FkcyBsZWZ0LiAqLwogICAgICAgICB1aW50MzJfdCBwYWQ7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46IE11c3QgYmUgemVyby4gKi8KICAgICAgICAg dWludDY0X3QgbmFtZV90b3RhbF9zaXplOyAgICAgICAgICAgICAgIC8qIE9VVDogVG90YWwgc2l6 ZSBvZiBhbGwgdHJhbnNmZXIgbmFtZXMgKi8KKyAgICAgICAgdWludDY0X3QgbWV0YWRhdGFfdG90 YWxfc2l6ZTsgICAgICAgICAgIC8qIE9VVDogVG90YWwgc2l6ZSBvZiBhbGwgdHJhbnNmZXIgbWV0 YWRhdGEgKi8KICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5fbGl2ZXBhdGNoX3N0YXR1 c190KSBzdGF0dXM7ICAvKiBPVVQuIE11c3QgaGF2ZSBlbm91Z2gKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYWNlIGFsbG9jYXRlIGZvciBuciBv ZiB0aGVtLiAqLwogICAgICAgICBYRU5fR1VFU1RfSEFORExFXzY0KGNoYXIpIG5hbWU7ICAgICAg ICAgLyogT1VUOiBBcnJheSBvZiBuYW1lcy4gRWFjaCBtZW1iZXIKQEAgLTc4NSw2ICs3OTYsMTIg QEAgVGhlIHN0cnVjdHVyZSBpcyBhcyBmb2xsb3c6CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuciBvZiB0aGVtLiAqLwogICAgICAgICBYRU5fR1VF U1RfSEFORExFXzY0KHVpbnQzMikgbGVuOyAgICAgICAgLyogT1VUOiBBcnJheSBvZiBsZW5ndGhz IG9mIG5hbWUncy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE11c3QgaGF2ZSBuciBvZiB0aGVtLiAqLworICAgICAgICBYRU5fR1VFU1RfSEFORExF XzY0KGNoYXIpIG1ldGFkYXRhOyAgICAgLyogT1VUOiBBcnJheSBvZiBtZXRhZGF0YSBzdHJpbmdz LiBFYWNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtZW1iZXIgbWF5IGhhdmUgYW4gYXJiaXRyYXJ5IGxlbmd0aC4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11c3QgaGF2ZSBuciBvZiB0aGVtLiAq LworICAgICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQzMikgbWV0YWRhdGFfbGVuOyAgLyog T1VUOiBBcnJheSBvZiBsZW5ndGhzIG9mIG1ldGFkYXRhJ3MuCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdXN0IGhhdmUgbnIgb2YgdGhlbS4g Ki8KKwogICAgIH07CiAKICMjIyBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9BQ1RJT04gKDMpCmRpZmYg LS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1 ZGUveGVuY3RybC5oCmluZGV4IGUwZWJiNTg2YjYuLjdhMzc2MmY0NGUgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVu Y3RybC5oCkBAIC0yNTYxLDcgKzI1NjEsNyBAQCBpbnQgeGNfbGl2ZXBhdGNoX2dldCh4Y19pbnRl cmZhY2UgKnhjaCwKIAogLyoKICAqIEdldCBhIG51bWJlciBvZiBhdmFpbGFibGUgcGF5bG9hZHMg YW5kIGdldCBhY3R1YWwgdG90YWwgc2l6ZSBvZgotICogdGhlIHBheWxvYWRzJyBuYW1lIGFycmF5 LgorICogdGhlIHBheWxvYWRzJyBuYW1lIGFuZCBtZXRhZGF0YSBhcnJheXMuCiAgKgogICogVGhp cyBmdW5jdGlvbnMgaXMgdHlwaWNhbGx5IGV4ZWN1dGVkIGZpcnN0IGJlZm9yZSB0aGUgeGNfbGl2 ZXBhdGNoX2xpc3QoKQogICogdG8gb2J0YWluIHRoZSBzaXplcyBhbmQgY29ycmVjdGx5IGFsbG9j YXRlIGFsbCBuZWNlc3NhcnkgZGF0YSByZXNvdXJjZXMuCkBAIC0yNTcyLDEzICsyNTcyLDE2IEBA IGludCB4Y19saXZlcGF0Y2hfZ2V0KHhjX2ludGVyZmFjZSAqeGNoLAogICogd2lsbCBjb250YWlu IHRoZSBoeXBlcmNhbGwgZXJyb3IgY29kZSB2YWx1ZS4KICAqLwogaW50IHhjX2xpdmVwYXRjaF9s aXN0X2dldF9zaXplcyh4Y19pbnRlcmZhY2UgKnhjaCwgdW5zaWduZWQgaW50ICpuciwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgKm5hbWVfdG90YWxfc2l6ZSk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICpuYW1lX3RvdGFsX3NpemUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICptZXRhZGF0YV90b3Rh bF9zaXplKTsKIAogLyoKICAqIFRoZSBoZWFydCBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRvIGdldCBh biBhcnJheSBvZiB0aGUgZm9sbG93aW5nIG9iamVjdHM6CiAgKiAgIC0geGVuX2xpdmVwYXRjaF9z dGF0dXNfdDogc3RhdGVzIGFuZCByZXR1cm4gY29kZXMgb2YgcGF5bG9hZHMKICAqICAgLSBuYW1l OiBuYW1lcyBvZiBwYXlsb2FkcwogICogICAtIGxlbjogbGVuZ3RocyBvZiBjb3JyZXNwb25kaW5n IHBheWxvYWRzJyBuYW1lcworICogICAtIG1ldGFkYXRhOiBwYXlsb2FkcycgbWV0YWRhdGEKKyAq ICAgLSBtZXRhZGF0YV9sZW46IGxlbmd0aHMgb2YgY29ycmVzcG9uZGluZyBwYXlsb2FkcycgbWV0 YWRhdGEKICAqCiAgKiBIb3dldmVyIGl0IGlzIGNvbXBsZXggYmVjYXVzZSBpdCBoYXMgdG8gZGVh bCB3aXRoIHRoZSBoeXBlcnZpc29yCiAgKiByZXR1cm5pbmcgc29tZSBvZiB0aGUgcmVxdWVzdGVk IGRhdGEgb3IgZGF0YSBiZWluZyBzdGFsZQpAQCAtMjU5MSwxMiArMjU5NCwxMyBAQCBpbnQgeGNf bGl2ZXBhdGNoX2xpc3RfZ2V0X3NpemVzKHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQg Km5yLAogICoKICAqIEl0IGlzIGV4cGVjdGVkIHRoYXQgdGhlIGNhbGxlciBvZiB0aGlzIGZ1bmN0 aW9uIHdpbGwgZmlyc3QgaXNzdWUgdGhlCiAgKiB4Y19saXZlcGF0Y2hfbGlzdF9nZXRfc2l6ZXMo KSBpbiBvcmRlciB0byBvYnRhaW4gdG90YWwgc2l6ZXMgb2YgbmFtZXMKLSAqIGFzIHdlbGwgYXMg dGhlIGN1cnJlbnQgbnVtYmVyIG9mIHBheWxvYWQgZW50cmllcy4KLSAqIFRoZSB0b3RhbCBzaXpl cyBhcmUgcmVxdWlyZWQgYW5kIHN1cHBsaWVkIHZpYSB0aGUgJ25hbWVfdG90YWxfc2l6ZScKLSAq IHBhcmFtZXRlci4KKyAqIGFuZCBhbGwgbWV0YWRhdGEgYXMgd2VsbCBhcyB0aGUgY3VycmVudCBu dW1iZXIgb2YgcGF5bG9hZCBlbnRyaWVzLgorICogVGhlIHRvdGFsIHNpemVzIGFyZSByZXF1aXJl ZCBhbmQgc3VwcGxpZWQgdmlhIHRoZSAnbmFtZV90b3RhbF9zaXplJyBhbmQKKyAqICdtZXRhZGF0 YV90b3RhbF9zaXplJyBwYXJhbWV0ZXJzLgogICoKICAqIFRoZSAnbWF4JyBpcyB0byBiZSBwcm92 aWRlZCBieSB0aGUgY2FsbGVyIHdpdGggdGhlIG1heGltdW0gbnVtYmVyIG9mCi0gKiBlbnRyaWVz IHRoYXQgJ2luZm8nLCAnbmFtZScsICdsZW4nIGFycmF5cyBjYW4gYmUgZmlsbGVkIHVwIHdpdGgu CisgKiBlbnRyaWVzIHRoYXQgJ2luZm8nLCAnbmFtZScsICdsZW4nLCAnbWV0YWRhdGEnIGFuZCAn bWV0YWRhdGFfbGVuJyBhcnJheXMKKyAqIGNhbiBiZSBmaWxsZWQgdXAgd2l0aC4KICAqCiAgKiBF YWNoIGVudHJ5IGluIHRoZSAnaW5mbycgYXJyYXkgaXMgZXhwZWN0ZWQgdG8gYmUgb2YgeGVuX2xp dmVwYXRjaF9zdGF0dXNfdAogICogc3RydWN0dXJlIHNpemUuCkBAIC0yNjA1LDYgKzI2MDksMTAg QEAgaW50IHhjX2xpdmVwYXRjaF9saXN0X2dldF9zaXplcyh4Y19pbnRlcmZhY2UgKnhjaCwgdW5z aWduZWQgaW50ICpuciwKICAqCiAgKiBFYWNoIGVudHJ5IGluIHRoZSAnbGVuJyBhcnJheSBpcyBl eHBlY3RlZCB0byBiZSBvZiB1aW50MzJfdCBzaXplLgogICoKKyAqIEVhY2ggZW50cnkgaW4gdGhl ICdtZXRhZGF0YScgYXJyYXkgbWF5IGhhdmUgYW4gYXJiaXRyYXJ5IHNpemUuCisgKgorICogRWFj aCBlbnRyeSBpbiB0aGUgJ21ldGFkYXRhX2xlbicgYXJyYXkgaXMgZXhwZWN0ZWQgdG8gYmUgb2Yg dWludDMyX3Qgc2l6ZS4KKyAqCiAgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIHplcm8gaWYgdGhlIGh5 cGVyY2FsbCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LgogICogTm90ZSB0aGF0IHRoZSByZXR1cm4g dmFsdWUgaXMgX25vdF8gdGhlIGFtb3VudCBvZiBlbnRyaWVzIGZpbGxlZAogICogb3V0IC0gdGhh dCBpcyBzYXZlZCBpbiAnZG9uZScuCkBAIC0yNjE5LDYgKzI2MjcsOCBAQCBpbnQgeGNfbGl2ZXBh dGNoX2xpc3QoeGNfaW50ZXJmYWNlICp4Y2gsIGNvbnN0IHVuc2lnbmVkIGludCBtYXgsCiAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVzICppbmZvLAogICAg ICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUsIHVpbnQzMl90ICpsZW4sCiAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgdWludDY0X3QgbmFtZV90b3RhbF9zaXplLAorICAgICAgICAgICAg ICAgICAgICAgIGNoYXIgKm1ldGFkYXRhLCB1aW50MzJfdCAqbWV0YWRhdGFfbGVuLAorICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ2NF90IG1ldGFkYXRhX3RvdGFsX3NpemUsCiAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpkb25lLCB1bnNpZ25lZCBpbnQgKmxlZnQp OwogCiAvKgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfbWlzYy5jIGIvdG9vbHMvbGlieGMv eGNfbWlzYy5jCmluZGV4IGQ3ODdmM2YyOWYuLjdkYzlmZDgzZWQgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2xpYnhjL3hjX21pc2MuYworKysgYi90b29scy9saWJ4Yy94Y19taXNjLmMKQEAgLTY2Myw3ICs2 NjMsNyBAQCBpbnQgeGNfbGl2ZXBhdGNoX2dldCh4Y19pbnRlcmZhY2UgKnhjaCwKIAogLyoKICAq IEdldCBhIG51bWJlciBvZiBhdmFpbGFibGUgcGF5bG9hZHMgYW5kIGdldCBhY3R1YWwgdG90YWwg c2l6ZSBvZgotICogdGhlIHBheWxvYWRzJyBuYW1lIGFycmF5LgorICogdGhlIHBheWxvYWRzJyBu YW1lIGFuZCBtZXRhZGF0YSBhcnJheXMuCiAgKgogICogVGhpcyBmdW5jdGlvbnMgaXMgdHlwaWNh bGx5IGV4ZWN1dGVkIGZpcnN0IGJlZm9yZSB0aGUgeGNfbGl2ZXBhdGNoX2xpc3QoKQogICogdG8g b2J0YWluIHRoZSBzaXplcyBhbmQgY29ycmVjdGx5IGFsbG9jYXRlIGFsbCBuZWNlc3NhcnkgZGF0 YSByZXNvdXJjZXMuCkBAIC02NzQsMTIgKzY3NCwxMyBAQCBpbnQgeGNfbGl2ZXBhdGNoX2dldCh4 Y19pbnRlcmZhY2UgKnhjaCwKICAqIHdpbGwgY29udGFpbiB0aGUgaHlwZXJjYWxsIGVycm9yIGNv ZGUgdmFsdWUuCiAgKi8KIGludCB4Y19saXZlcGF0Y2hfbGlzdF9nZXRfc2l6ZXMoeGNfaW50ZXJm YWNlICp4Y2gsIHVuc2lnbmVkIGludCAqbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQ2NF90ICpuYW1lX3RvdGFsX3NpemUpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQ2NF90ICpuYW1lX3RvdGFsX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQ2NF90ICptZXRhZGF0YV90b3RhbF9zaXplKQogewogICAgIERFQ0xBUkVf U1lTQ1RMOwogICAgIGludCByYzsKIAotICAgIGlmICggIW5yIHx8ICFuYW1lX3RvdGFsX3NpemUg KQorICAgIGlmICggIW5yIHx8ICFuYW1lX3RvdGFsX3NpemUgfHwgIW1ldGFkYXRhX3RvdGFsX3Np emUgKQogICAgIHsKICAgICAgICAgZXJybm8gPSBFSU5WQUw7CiAgICAgICAgIHJldHVybiAtMTsK QEAgLTY5NSw2ICs2OTYsNyBAQCBpbnQgeGNfbGl2ZXBhdGNoX2xpc3RfZ2V0X3NpemVzKHhjX2lu dGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgKm5yLAogCiAgICAgKm5yID0gc3lzY3RsLnUubGl2 ZXBhdGNoLnUubGlzdC5ucjsKICAgICAqbmFtZV90b3RhbF9zaXplID0gc3lzY3RsLnUubGl2ZXBh dGNoLnUubGlzdC5uYW1lX3RvdGFsX3NpemU7CisgICAgKm1ldGFkYXRhX3RvdGFsX3NpemUgPSBz eXNjdGwudS5saXZlcGF0Y2gudS5saXN0Lm1ldGFkYXRhX3RvdGFsX3NpemU7CiAKICAgICByZXR1 cm4gMDsKIH0KQEAgLTcwNCw2ICs3MDYsOCBAQCBpbnQgeGNfbGl2ZXBhdGNoX2xpc3RfZ2V0X3Np emVzKHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgKm5yLAogICogICAtIHhlbl9saXZl cGF0Y2hfc3RhdHVzX3Q6IHN0YXRlcyBhbmQgcmV0dXJuIGNvZGVzIG9mIHBheWxvYWRzCiAgKiAg IC0gbmFtZTogbmFtZXMgb2YgcGF5bG9hZHMKICAqICAgLSBsZW46IGxlbmd0aHMgb2YgY29ycmVz cG9uZGluZyBwYXlsb2FkcycgbmFtZXMKKyAqICAgLSBtZXRhZGF0YTogcGF5bG9hZHMnIG1ldGFk YXRhCisgKiAgIC0gbWV0YWRhdGFfbGVuOiBsZW5ndGhzIG9mIGNvcnJlc3BvbmRpbmcgcGF5bG9h ZHMnIG1ldGFkYXRhCiAgKgogICogSG93ZXZlciBpdCBpcyBjb21wbGV4IGJlY2F1c2UgaXQgaGFz IHRvIGRlYWwgd2l0aCB0aGUgaHlwZXJ2aXNvcgogICogcmV0dXJuaW5nIHNvbWUgb2YgdGhlIHJl cXVlc3RlZCBkYXRhIG9yIGRhdGEgYmVpbmcgc3RhbGUKQEAgLTcxNiwxMiArNzIwLDEzIEBAIGlu dCB4Y19saXZlcGF0Y2hfbGlzdF9nZXRfc2l6ZXMoeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2lnbmVk IGludCAqbnIsCiAgKgogICogSXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGUgY2FsbGVyIG9mIHRoaXMg ZnVuY3Rpb24gd2lsbCBmaXJzdCBpc3N1ZSB0aGUKICAqIHhjX2xpdmVwYXRjaF9saXN0X2dldF9z aXplcygpIGluIG9yZGVyIHRvIG9idGFpbiB0b3RhbCBzaXplcyBvZiBuYW1lcwotICogYXMgd2Vs bCBhcyB0aGUgY3VycmVudCBudW1iZXIgb2YgcGF5bG9hZCBlbnRyaWVzLgotICogVGhlIHRvdGFs IHNpemVzIGFyZSByZXF1aXJlZCBhbmQgc3VwcGxpZWQgdmlhIHRoZSAnbmFtZV90b3RhbF9zaXpl JwotICogcGFyYW1ldGVyLgorICogYW5kIGFsbCBtZXRhZGF0YSBhcyB3ZWxsIGFzIHRoZSBjdXJy ZW50IG51bWJlciBvZiBwYXlsb2FkIGVudHJpZXMuCisgKiBUaGUgdG90YWwgc2l6ZXMgYXJlIHJl cXVpcmVkIGFuZCBzdXBwbGllZCB2aWEgdGhlICduYW1lX3RvdGFsX3NpemUnIGFuZAorICogJ21l dGFkYXRhX3RvdGFsX3NpemUnIHBhcmFtZXRlcnMuCiAgKgogICogVGhlICdtYXgnIGlzIHRvIGJl IHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIgd2l0aCB0aGUgbWF4aW11bSBudW1iZXIgb2YKLSAqIGVu dHJpZXMgdGhhdCAnaW5mbycsICduYW1lJywgJ2xlbicgYXJyYXlzIGNhbiBiZSBmaWxsZWQgdXAg d2l0aC4KKyAqIGVudHJpZXMgdGhhdCAnaW5mbycsICduYW1lJywgJ2xlbicsICdtZXRhZGF0YScg YW5kICdtZXRhZGF0YV9sZW4nIGFycmF5cworICogY2FuIGJlIGZpbGxlZCB1cCB3aXRoLgogICoK ICAqIEVhY2ggZW50cnkgaW4gdGhlICdpbmZvJyBhcnJheSBpcyBleHBlY3RlZCB0byBiZSBvZiB4 ZW5fbGl2ZXBhdGNoX3N0YXR1c190CiAgKiBzdHJ1Y3R1cmUgc2l6ZS4KQEAgLTczMCw2ICs3MzUs MTAgQEAgaW50IHhjX2xpdmVwYXRjaF9saXN0X2dldF9zaXplcyh4Y19pbnRlcmZhY2UgKnhjaCwg dW5zaWduZWQgaW50ICpuciwKICAqCiAgKiBFYWNoIGVudHJ5IGluIHRoZSAnbGVuJyBhcnJheSBp cyBleHBlY3RlZCB0byBiZSBvZiB1aW50MzJfdCBzaXplLgogICoKKyAqIEVhY2ggZW50cnkgaW4g dGhlICdtZXRhZGF0YScgYXJyYXkgbWF5IGhhdmUgYW4gYXJiaXRyYXJ5IHNpemUuCisgKgorICog RWFjaCBlbnRyeSBpbiB0aGUgJ21ldGFkYXRhX2xlbicgYXJyYXkgaXMgZXhwZWN0ZWQgdG8gYmUg b2YgdWludDMyX3Qgc2l6ZS4KKyAqCiAgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIHplcm8gaWYgdGhl IGh5cGVyY2FsbCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LgogICogTm90ZSB0aGF0IHRoZSByZXR1 cm4gdmFsdWUgaXMgX25vdF8gdGhlIGFtb3VudCBvZiBlbnRyaWVzIGZpbGxlZAogICogb3V0IC0g dGhhdCBpcyBzYXZlZCBpbiAnZG9uZScuCkBAIC03NDQsNiArNzUzLDggQEAgaW50IHhjX2xpdmVw YXRjaF9saXN0KHhjX2ludGVyZmFjZSAqeGNoLCBjb25zdCB1bnNpZ25lZCBpbnQgbWF4LAogICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX3N0YXR1cyAqaW5mbywKICAg ICAgICAgICAgICAgICAgICAgICBjaGFyICpuYW1lLCB1aW50MzJfdCAqbGVuLAogICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHVpbnQ2NF90IG5hbWVfdG90YWxfc2l6ZSwKKyAgICAgICAgICAg ICAgICAgICAgICBjaGFyICptZXRhZGF0YSwgdWludDMyX3QgKm1ldGFkYXRhX2xlbiwKKyAgICAg ICAgICAgICAgICAgICAgICBjb25zdCB1aW50NjRfdCBtZXRhZGF0YV90b3RhbF9zaXplLAogICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqZG9uZSwgdW5zaWduZWQgaW50ICpsZWZ0 KQogewogICAgIGludCByYzsKQEAgLTc1MiwxMyArNzYzLDE2IEBAIGludCB4Y19saXZlcGF0Y2hf bGlzdCh4Y19pbnRlcmZhY2UgKnhjaCwgY29uc3QgdW5zaWduZWQgaW50IG1heCwKICAgICBERUNM QVJFX0hZUEVSQ0FMTF9CT1VOQ0UoaW5mbywgMCwgWENfSFlQRVJDQUxMX0JVRkZFUl9CT1VOQ0Vf T1VUKTsKICAgICBERUNMQVJFX0hZUEVSQ0FMTF9CT1VOQ0UobmFtZSwgMCwgWENfSFlQRVJDQUxM X0JVRkZFUl9CT1VOQ0VfT1VUKTsKICAgICBERUNMQVJFX0hZUEVSQ0FMTF9CT1VOQ0UobGVuLCAw LCBYQ19IWVBFUkNBTExfQlVGRkVSX0JPVU5DRV9PVVQpOworICAgIERFQ0xBUkVfSFlQRVJDQUxM X0JPVU5DRShtZXRhZGF0YSwgMCwgWENfSFlQRVJDQUxMX0JVRkZFUl9CT1VOQ0VfT1VUKTsKKyAg ICBERUNMQVJFX0hZUEVSQ0FMTF9CT1VOQ0UobWV0YWRhdGFfbGVuLCAwLCBYQ19IWVBFUkNBTExf QlVGRkVSX0JPVU5DRV9PVVQpOwogICAgIHVpbnQzMl90IG1heF9iYXRjaF9zeiwgbnI7CiAgICAg dWludDMyX3QgdmVyc2lvbiA9IDAsIHJldHJpZXMgPSAwOwogICAgIHVpbnQzMl90IGFkanVzdCA9 IDA7Ci0gICAgb2ZmX3QgbmFtZV9vZmYgPSAwOwotICAgIHVpbnQ2NF90IG5hbWVfc3o7CisgICAg b2ZmX3QgbmFtZV9vZmYgPSAwLCBtZXRhZGF0YV9vZmYgPSAwOworICAgIHVpbnQ2NF90IG5hbWVf c3osIG1ldGFkYXRhX3N6OwogCi0gICAgaWYgKCAhbWF4IHx8ICFpbmZvIHx8ICFuYW1lIHx8ICFs ZW4gfHwgIWRvbmUgfHwgIWxlZnQgKQorICAgIGlmICggIW1heCB8fCAhaW5mbyB8fCAhbmFtZSB8 fCAhbGVuIHx8CisgICAgICAgICAhbWV0YWRhdGEgfHwgIW1ldGFkYXRhX2xlbiB8fCAhZG9uZSB8 fCAhbGVmdCApCiAgICAgewogICAgICAgICBlcnJubyA9IEVJTlZBTDsKICAgICAgICAgcmV0dXJu IC0xOwpAQCAtNzc3LDEwICs3OTEsMTEgQEAgaW50IHhjX2xpdmVwYXRjaF9saXN0KHhjX2ludGVy ZmFjZSAqeGNoLCBjb25zdCB1bnNpZ25lZCBpbnQgbWF4LAogCiAgICAgbWF4X2JhdGNoX3N6ID0g bWF4OwogICAgIG5hbWVfc3ogPSBuYW1lX3RvdGFsX3NpemU7CisgICAgbWV0YWRhdGFfc3ogPSBt ZXRhZGF0YV90b3RhbF9zaXplOwogICAgICpkb25lID0gMDsKICAgICAqbGVmdCA9IDA7CiAgICAg ZG8gewotICAgICAgICB1aW50NjRfdCBfbmFtZV9zejsKKyAgICAgICAgdWludDY0X3QgX25hbWVf c3osIF9tZXRhZGF0YV9zejsKIAogICAgICAgICAvKgogICAgICAgICAgKiBUaGUgZmlyc3QgdGlt ZSB3ZSBnbyBpbiB0aGlzIGxvb3Agb3VyICdtYXgnIG1heSBiZSBiaWdnZXIKQEAgLTgwMywxMCAr ODE4LDE0IEBAIGludCB4Y19saXZlcGF0Y2hfbGlzdCh4Y19pbnRlcmZhY2UgKnhjaCwgY29uc3Qg dW5zaWduZWQgaW50IG1heCwKICAgICAgICAgSFlQRVJDQUxMX0JPVU5DRV9TRVRfU0laRShpbmZv LCBuciAqIHNpemVvZigqaW5mbykpOwogICAgICAgICBIWVBFUkNBTExfQk9VTkNFX1NFVF9TSVpF KG5hbWUsIG5hbWVfc3opOwogICAgICAgICBIWVBFUkNBTExfQk9VTkNFX1NFVF9TSVpFKGxlbiwg bnIgKiBzaXplb2YoKmxlbikpOworICAgICAgICBIWVBFUkNBTExfQk9VTkNFX1NFVF9TSVpFKG1l dGFkYXRhLCBtZXRhZGF0YV9zeik7CisgICAgICAgIEhZUEVSQ0FMTF9CT1VOQ0VfU0VUX1NJWkUo bWV0YWRhdGFfbGVuLCBuciAqIHNpemVvZigqbWV0YWRhdGFfbGVuKSk7CiAgICAgICAgIC8qIE1v dmUgdGhlIHBvaW50ZXIgdG8gcHJvcGVyIG9mZnNldCBpbnRvICdpbmZvJy4gKi8KICAgICAgICAg KEhZUEVSQ0FMTF9CVUZGRVIoaW5mbykpLT51YnVmID0gaW5mbyArICpkb25lOwogICAgICAgICAo SFlQRVJDQUxMX0JVRkZFUihuYW1lKSktPnVidWYgPSBuYW1lICsgbmFtZV9vZmY7CiAgICAgICAg IChIWVBFUkNBTExfQlVGRkVSKGxlbikpLT51YnVmID0gbGVuICsgKmRvbmU7CisgICAgICAgIChI WVBFUkNBTExfQlVGRkVSKG1ldGFkYXRhKSktPnVidWYgPSBtZXRhZGF0YSArIG1ldGFkYXRhX29m ZjsKKyAgICAgICAgKEhZUEVSQ0FMTF9CVUZGRVIobWV0YWRhdGFfbGVuKSktPnVidWYgPSBtZXRh ZGF0YV9sZW4gKyAqZG9uZTsKICAgICAgICAgLyogQWxsb2NhdGUgbWVtb3J5LiAqLwogICAgICAg ICByYyA9IHhjX2h5cGVyY2FsbF9ib3VuY2VfcHJlKHhjaCwgaW5mbyk7CiAgICAgICAgIGlmICgg cmMgKQpAQCAtODIwLDkgKzgzOSwxOSBAQCBpbnQgeGNfbGl2ZXBhdGNoX2xpc3QoeGNfaW50ZXJm YWNlICp4Y2gsIGNvbnN0IHVuc2lnbmVkIGludCBtYXgsCiAgICAgICAgIGlmICggcmMgKQogICAg ICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgcmMgPSB4Y19oeXBlcmNhbGxfYm91bmNlX3ByZSh4 Y2gsIG1ldGFkYXRhKTsKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBicmVhazsKKwor ICAgICAgICByYyA9IHhjX2h5cGVyY2FsbF9ib3VuY2VfcHJlKHhjaCwgbWV0YWRhdGFfbGVuKTsK KyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBzZXRfeGVu X2d1ZXN0X2hhbmRsZShzeXNjdGwudS5saXZlcGF0Y2gudS5saXN0LnN0YXR1cywgaW5mbyk7CiAg ICAgICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKHN5c2N0bC51LmxpdmVwYXRjaC51Lmxpc3QubmFt ZSwgbmFtZSk7CiAgICAgICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKHN5c2N0bC51LmxpdmVwYXRj aC51Lmxpc3QubGVuLCBsZW4pOworICAgICAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShzeXNjdGwu dS5saXZlcGF0Y2gudS5saXN0Lm1ldGFkYXRhLCBtZXRhZGF0YSk7CisgICAgICAgIHNldF94ZW5f Z3Vlc3RfaGFuZGxlKHN5c2N0bC51LmxpdmVwYXRjaC51Lmxpc3QubWV0YWRhdGFfbGVuLCBtZXRh ZGF0YV9sZW4pOwogCiAgICAgICAgIHJjID0gZG9fc3lzY3RsKHhjaCwgJnN5c2N0bCk7CiAgICAg ICAgIC8qCkBAIC04MzksNiArODY4LDggQEAgaW50IHhjX2xpdmVwYXRjaF9saXN0KHhjX2ludGVy ZmFjZSAqeGNoLCBjb25zdCB1bnNpZ25lZCBpbnQgbWF4LAogICAgICAgICAgICAgeGNfaHlwZXJj YWxsX2JvdW5jZV9wb3N0KHhjaCwgaW5mbyk7CiAgICAgICAgICAgICB4Y19oeXBlcmNhbGxfYm91 bmNlX3Bvc3QoeGNoLCBuYW1lKTsKICAgICAgICAgICAgIHhjX2h5cGVyY2FsbF9ib3VuY2VfcG9z dCh4Y2gsIGxlbik7CisgICAgICAgICAgICB4Y19oeXBlcmNhbGxfYm91bmNlX3Bvc3QoeGNoLCBt ZXRhZGF0YSk7CisgICAgICAgICAgICB4Y19oeXBlcmNhbGxfYm91bmNlX3Bvc3QoeGNoLCBtZXRh ZGF0YV9sZW4pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgZWxz ZSBpZiAoIHJjIDwgMCApIC8qIEZvciBhbGwgb3RoZXIgZXJyb3JzIHdlIGJhaWwgb3V0LiAqLwpA QCAtODYzLDYgKzg5NCw4IEBAIGludCB4Y19saXZlcGF0Y2hfbGlzdCh4Y19pbnRlcmZhY2UgKnhj aCwgY29uc3QgdW5zaWduZWQgaW50IG1heCwKICAgICAgICAgICAgIHhjX2h5cGVyY2FsbF9ib3Vu Y2VfcG9zdCh4Y2gsIGluZm8pOwogICAgICAgICAgICAgeGNfaHlwZXJjYWxsX2JvdW5jZV9wb3N0 KHhjaCwgbmFtZSk7CiAgICAgICAgICAgICB4Y19oeXBlcmNhbGxfYm91bmNlX3Bvc3QoeGNoLCBs ZW4pOworICAgICAgICAgICAgeGNfaHlwZXJjYWxsX2JvdW5jZV9wb3N0KHhjaCwgbWV0YWRhdGEp OworICAgICAgICAgICAgeGNfaHlwZXJjYWxsX2JvdW5jZV9wb3N0KHhjaCwgbWV0YWRhdGFfbGVu KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTg3NSwxNyArOTA4LDI0 IEBAIGludCB4Y19saXZlcGF0Y2hfbGlzdCh4Y19pbnRlcmZhY2UgKnhjaCwgY29uc3QgdW5zaWdu ZWQgaW50IG1heCwKICAgICAgICAgfQogICAgICAgICAqbGVmdCA9IHN5c2N0bC51LmxpdmVwYXRj aC51Lmxpc3QubnI7IC8qIFRvdGFsIHJlbWFpbmluZyBjb3VudC4gKi8KICAgICAgICAgX25hbWVf c3ogPSBzeXNjdGwudS5saXZlcGF0Y2gudS5saXN0Lm5hbWVfdG90YWxfc2l6ZTsgLyogVG90YWwg cmVjZWl2ZWQgbmFtZSBzaXplLiAqLworICAgICAgICBfbWV0YWRhdGFfc3ogPSBzeXNjdGwudS5s aXZlcGF0Y2gudS5saXN0Lm1ldGFkYXRhX3RvdGFsX3NpemU7IC8qIFRvdGFsIHJlY2VpdmVkIG1l dGFkYXRhIHNpemUuICovCiAgICAgICAgIC8qIENvcHkgb25seSB1cCAncmMnIG9mIGRhdGEnIC0g d2UgY291bGQgYWRkICdtaW4ocmMsbnIpIGlmIGRlc2lyZWQuICovCiAgICAgICAgIEhZUEVSQ0FM TF9CT1VOQ0VfU0VUX1NJWkUoaW5mbywgKHJjICogc2l6ZW9mKCppbmZvKSkpOwogICAgICAgICBI WVBFUkNBTExfQk9VTkNFX1NFVF9TSVpFKG5hbWUsIF9uYW1lX3N6KTsKICAgICAgICAgSFlQRVJD QUxMX0JPVU5DRV9TRVRfU0laRShsZW4sIChyYyAqIHNpemVvZigqbGVuKSkpOworICAgICAgICBI WVBFUkNBTExfQk9VTkNFX1NFVF9TSVpFKG1ldGFkYXRhLCBfbWV0YWRhdGFfc3opOworICAgICAg ICBIWVBFUkNBTExfQk9VTkNFX1NFVF9TSVpFKG1ldGFkYXRhX2xlbiwgKHJjICogc2l6ZW9mKCpt ZXRhZGF0YV9sZW4pKSk7CiAgICAgICAgIC8qIEJvdW5jZSB0aGUgZGF0YSBhbmQgZnJlZSB0aGUg Ym91bmNlIGJ1ZmZlci4gKi8KICAgICAgICAgeGNfaHlwZXJjYWxsX2JvdW5jZV9wb3N0KHhjaCwg aW5mbyk7CiAgICAgICAgIHhjX2h5cGVyY2FsbF9ib3VuY2VfcG9zdCh4Y2gsIG5hbWUpOwogICAg ICAgICB4Y19oeXBlcmNhbGxfYm91bmNlX3Bvc3QoeGNoLCBsZW4pOworICAgICAgICB4Y19oeXBl cmNhbGxfYm91bmNlX3Bvc3QoeGNoLCBtZXRhZGF0YSk7CisgICAgICAgIHhjX2h5cGVyY2FsbF9i b3VuY2VfcG9zdCh4Y2gsIG1ldGFkYXRhX2xlbik7CiAKICAgICAgICAgbmFtZV9zeiAtPSBfbmFt ZV9zejsKICAgICAgICAgbmFtZV9vZmYgKz0gX25hbWVfc3o7CisgICAgICAgIG1ldGFkYXRhX3N6 IC09IF9tZXRhZGF0YV9zejsKKyAgICAgICAgbWV0YWRhdGFfb2ZmICs9IF9tZXRhZGF0YV9zejsK IAogICAgICAgICAvKiBBbmQgdXBkYXRlIGhvdyBtYW55IGVsZW1lbnRzIG9mIGluZm8gd2UgaGF2 ZSBjb3BpZWQgaW50by4gKi8KICAgICAgICAgKmRvbmUgKz0gcmM7CkBAIC04OTgsNiArOTM4LDgg QEAgaW50IHhjX2xpdmVwYXRjaF9saXN0KHhjX2ludGVyZmFjZSAqeGNoLCBjb25zdCB1bnNpZ25l ZCBpbnQgbWF4LAogICAgICAgICB4Y19oeXBlcmNhbGxfYm91bmNlX3Bvc3QoeGNoLCBsZW4pOwog ICAgICAgICB4Y19oeXBlcmNhbGxfYm91bmNlX3Bvc3QoeGNoLCBuYW1lKTsKICAgICAgICAgeGNf aHlwZXJjYWxsX2JvdW5jZV9wb3N0KHhjaCwgaW5mbyk7CisgICAgICAgIHhjX2h5cGVyY2FsbF9i b3VuY2VfcG9zdCh4Y2gsIG1ldGFkYXRhKTsKKyAgICAgICAgeGNfaHlwZXJjYWxsX2JvdW5jZV9w b3N0KHhjaCwgbWV0YWRhdGFfbGVuKTsKICAgICB9CiAKICAgICByZXR1cm4gcmMgPiAwID8gMCA6 IHJjOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbWlzYy94ZW4tbGl2ZXBhdGNoLmMgYi90b29scy9taXNj L3hlbi1saXZlcGF0Y2guYwppbmRleCA4YWMzZDU2N2ZjLi5mMTczNDBhMmVlIDEwMDY0NAotLS0g YS90b29scy9taXNjL3hlbi1saXZlcGF0Y2guYworKysgYi90b29scy9taXNjL3hlbi1saXZlcGF0 Y2guYwpAQCAtNjksOSArNjksMTEgQEAgc3RhdGljIGludCBsaXN0X2Z1bmMoaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKICAgICB1bnNpZ25lZCBpbnQgbnIsIGRvbmUsIGxlZnQsIGk7CiAgICAgeGVu X2xpdmVwYXRjaF9zdGF0dXNfdCAqaW5mbyA9IE5VTEw7CiAgICAgY2hhciAqbmFtZSA9IE5VTEw7 CisgICAgY2hhciAqbWV0YWRhdGEgPSBOVUxMOwogICAgIHVpbnQzMl90ICpsZW4gPSBOVUxMOwot ICAgIHVpbnQ2NF90IG5hbWVfdG90YWxfc2l6ZTsKLSAgICBvZmZfdCBuYW1lX29mZjsKKyAgICB1 aW50MzJfdCAqbWV0YWRhdGFfbGVuID0gTlVMTDsKKyAgICB1aW50NjRfdCBuYW1lX3RvdGFsX3Np emUsIG1ldGFkYXRhX3RvdGFsX3NpemU7CisgICAgb2ZmX3QgbmFtZV9vZmYsIG1ldGFkYXRhX29m ZjsKICAgICBpbnQgcmMgPSBFTk9NRU07CiAKICAgICBpZiAoIGFyZ2MgKQpAQCAtODEsNyArODMs NyBAQCBzdGF0aWMgaW50IGxpc3RfZnVuYyhpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIH0K ICAgICBkb25lID0gbGVmdCA9IDA7CiAKLSAgICByYyA9IHhjX2xpdmVwYXRjaF9saXN0X2dldF9z aXplcyh4Y2gsICZuciwgJm5hbWVfdG90YWxfc2l6ZSk7CisgICAgcmMgPSB4Y19saXZlcGF0Y2hf bGlzdF9nZXRfc2l6ZXMoeGNoLCAmbnIsICZuYW1lX3RvdGFsX3NpemUsICZtZXRhZGF0YV90b3Rh bF9zaXplKTsKICAgICBpZiAoIHJjICkKICAgICB7CiAgICAgICAgIHJjID0gZXJybm87CkBAIC0x MDksMTIgKzExMSwyMyBAQCBzdGF0aWMgaW50IGxpc3RfZnVuYyhpbnQgYXJnYywgY2hhciAqYXJn dltdKQogICAgIGlmICggIWxlbiApCiAgICAgICAgIGdvdG8gZXJyb3JfbGVuOwogCisgICAgbWV0 YWRhdGEgPSBtYWxsb2MobWV0YWRhdGFfdG90YWxfc2l6ZSAqIHNpemVvZigqbWV0YWRhdGEpICsg MSk7CisgICAgaWYgKCAhbWV0YWRhdGEgKQorICAgICAgICBnb3RvIGVycm9yX21ldGFkYXRhOwor CisgICAgbWV0YWRhdGFfbGVuID0gbWFsbG9jKG5yICogc2l6ZW9mKCptZXRhZGF0YV9sZW4pKTsK KyAgICBpZiAoICFtZXRhZGF0YV9sZW4gKQorICAgICAgICBnb3RvIGVycm9yX21ldGFkYXRhX2xl bjsKKwogICAgIG1lbXNldChpbmZvLCAnQScsIG5yICogc2l6ZW9mKCppbmZvKSk7CiAgICAgbWVt c2V0KG5hbWUsICdCJywgbmFtZV90b3RhbF9zaXplICogc2l6ZW9mKCpuYW1lKSk7CiAgICAgbWVt c2V0KGxlbiwgJ0MnLCBuciAqIHNpemVvZigqbGVuKSk7Ci0gICAgbmFtZV9vZmYgPSAwOworICAg IG1lbXNldChtZXRhZGF0YSwgJ0QnLCBtZXRhZGF0YV90b3RhbF9zaXplICogc2l6ZW9mKCptZXRh ZGF0YSkgKyAxKTsKKyAgICBtZW1zZXQobWV0YWRhdGFfbGVuLCAnRScsIG5yICogc2l6ZW9mKCpt ZXRhZGF0YV9sZW4pKTsKKyAgICBuYW1lX29mZiA9IG1ldGFkYXRhX29mZiA9IDA7CiAKLSAgICBy YyA9IHhjX2xpdmVwYXRjaF9saXN0KHhjaCwgbnIsIDAsIGluZm8sIG5hbWUsIGxlbiwgbmFtZV90 b3RhbF9zaXplLCAmZG9uZSwgJmxlZnQpOworICAgIHJjID0geGNfbGl2ZXBhdGNoX2xpc3QoeGNo LCBuciwgMCwgaW5mbywgbmFtZSwgbGVuLCBuYW1lX3RvdGFsX3NpemUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICBtZXRhZGF0YSwgbWV0YWRhdGFfbGVuLCBtZXRhZGF0YV90b3RhbF9zaXpl LCAmZG9uZSwgJmxlZnQpOwogICAgIGlmICggcmMgfHwgZG9uZSAhPSBuciB8fCBsZWZ0ID4gMCkK ICAgICB7CiAgICAgICAgIHJjID0gZXJybm87CkBAIC0xMjQsMjMgKzEzNywzNSBAQCBzdGF0aWMg aW50IGxpc3RfZnVuYyhpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICBnb3RvIGVycm9y OwogICAgIH0KIAotICAgIGZwcmludGYoc3Rkb3V0LCIgSUQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCBzdGF0dXNcbiIKLSAgICAgICAgICAgICAgICAgICAiLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS1cbiIpOworICAgIGZw cmludGYoc3Rkb3V0LCIgSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBz dGF0dXMgICAgIHwgbWV0YWRhdGFcbiIKKyAgICAgICAgICAgICAgICAgICAiLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t XG4iKTsKIAogICAgIGZvciAoIGkgPSAwOyBpIDwgZG9uZTsgaSsrICkKICAgICB7CisgICAgICAg IHVuc2lnbmVkIGludCBqOwogICAgICAgICBjaGFyICpuYW1lX3N0ciA9IG5hbWUgKyBuYW1lX29m ZjsKKyAgICAgICAgY2hhciAqbWV0YWRhdGFfc3RyID0gbWV0YWRhdGEgKyBtZXRhZGF0YV9vZmY7 CiAKICAgICAgICAgcHJpbnRmKCIlLTQwLipzfCAlcyIsIGxlbltpXSwgbmFtZV9zdHIsIHN0YXRl MnN0cihpbmZvW2ldLnN0YXRlKSk7CiAgICAgICAgIGlmICggaW5mb1tpXS5yYyApCi0gICAgICAg ICAgICBwcmludGYoIiAoJWQsICVzKVxuIiwgLWluZm9baV0ucmMsIHN0cmVycm9yKC1pbmZvW2ld LnJjKSk7CisgICAgICAgICAgICBwcmludGYoIiAoJWQsICVzKSAgICB8ICIsIC1pbmZvW2ldLnJj LCBzdHJlcnJvcigtaW5mb1tpXS5yYykpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBwdXRz KCIiKTsKKyAgICAgICAgICAgIHByaW50ZigiICAgIHwgIik7CisKKyAgICAgICAgLyogUmVwbGFj ZSBhbGwgJ1wwJyB3aXRoIHNlbWktY29sb25zLiAqLworICAgICAgICBmb3IgKCBqID0gMDsgbWV0 YWRhdGFfbGVuW2ldICYmIGogPCBtZXRhZGF0YV9sZW5baV0gLSAxOyBqKysgKQorICAgICAgICAg ICAgbWV0YWRhdGFfc3RyW2pdID0gKG1ldGFkYXRhX3N0cltqXSA/OiAnOycpOworICAgICAgICBw cmludGYoIiUuKnNcbiIsIG1ldGFkYXRhX2xlbltpXSwgbWV0YWRhdGFfc3RyKTsKIAogICAgICAg ICBuYW1lX29mZiArPSBsZW5baV07CisgICAgICAgIG1ldGFkYXRhX29mZiArPSBtZXRhZGF0YV9s ZW5baV07CiAgICAgfQogCiBlcnJvcjoKKyAgICBmcmVlKG1ldGFkYXRhX2xlbik7CitlcnJvcl9t ZXRhZGF0YV9sZW46CisgICAgZnJlZShtZXRhZGF0YSk7CitlcnJvcl9tZXRhZGF0YToKICAgICBm cmVlKGxlbik7CiBlcnJvcl9sZW46CiAgICAgZnJlZShuYW1lKTsKZGlmZiAtLWdpdCBhL3hlbi9j b21tb24vbGl2ZXBhdGNoLmMgYi94ZW4vY29tbW9uL2xpdmVwYXRjaC5jCmluZGV4IDhhOWU5MjY2 MGUuLmY2Mzg1MTFiYTUgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbGl2ZXBhdGNoLmMKKysrIGIv eGVuL2NvbW1vbi9saXZlcGF0Y2guYwpAQCAtMTE2MSw3ICsxMTYxLDggQEAgc3RhdGljIGludCBs aXZlcGF0Y2hfbGlzdChzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfbGlzdCAqbGlzdCkKIAog ICAgIGlmICggbGlzdC0+bnIgJiYKICAgICAgICAgICghZ3Vlc3RfaGFuZGxlX29rYXkobGlzdC0+ c3RhdHVzLCBsaXN0LT5ucikgfHwKLSAgICAgICAgICAhZ3Vlc3RfaGFuZGxlX29rYXkobGlzdC0+ bGVuLCBsaXN0LT5ucikpICkKKyAgICAgICAgICAhZ3Vlc3RfaGFuZGxlX29rYXkobGlzdC0+bGVu LCBsaXN0LT5ucikgfHwKKyAgICAgICAgICAhZ3Vlc3RfaGFuZGxlX29rYXkobGlzdC0+bWV0YWRh dGFfbGVuLCBsaXN0LT5ucikpICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKICAgICBzcGlu X2xvY2soJnBheWxvYWRfbG9jayk7CkBAIC0xMTcyLDEzICsxMTczLDE0IEBAIHN0YXRpYyBpbnQg bGl2ZXBhdGNoX2xpc3Qoc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3QgKmxpc3QpCiAg ICAgfQogCiAgICAgbGlzdC0+bmFtZV90b3RhbF9zaXplID0gMDsKKyAgICBsaXN0LT5tZXRhZGF0 YV90b3RhbF9zaXplID0gMDsKICAgICBpZiAoIGxpc3QtPm5yICkKICAgICB7Ci0gICAgICAgIHVp bnQ2NF90IG5hbWVfb2Zmc2V0ID0gMDsKKyAgICAgICAgdWludDY0X3QgbmFtZV9vZmZzZXQgPSAw LCBtZXRhZGF0YV9vZmZzZXQgPSAwOwogCiAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoIGRh dGEsICZwYXlsb2FkX2xpc3QsIGxpc3QgKQogICAgICAgICB7Ci0gICAgICAgICAgICB1aW50MzJf dCBuYW1lX2xlbjsKKyAgICAgICAgICAgIHVpbnQzMl90IG5hbWVfbGVuLCBtZXRhZGF0YV9sZW47 CiAKICAgICAgICAgICAgIGlmICggbGlzdC0+aWR4ID4gaSsrICkKICAgICAgICAgICAgICAgICBj b250aW51ZTsKQEAgLTExODksOCArMTE5MSwxMyBAQCBzdGF0aWMgaW50IGxpdmVwYXRjaF9saXN0 KHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0ICpsaXN0KQogICAgICAgICAgICAgbmFt ZV9sZW4gPSBzdHJsZW4oZGF0YS0+bmFtZSkgKyAxOwogICAgICAgICAgICAgbGlzdC0+bmFtZV90 b3RhbF9zaXplICs9IG5hbWVfbGVuOwogCisgICAgICAgICAgICBtZXRhZGF0YV9sZW4gPSBkYXRh LT5tZXRhZGF0YS5sZW47CisgICAgICAgICAgICBsaXN0LT5tZXRhZGF0YV90b3RhbF9zaXplICs9 IG1ldGFkYXRhX2xlbjsKKwogICAgICAgICAgICAgaWYgKCAhZ3Vlc3RfaGFuZGxlX3N1YnJhbmdl X29rYXkobGlzdC0+bmFtZSwgbmFtZV9vZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuYW1lX29mZnNldCArIG5hbWVfbGVuIC0gMSkgKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9vZmZzZXQgKyBuYW1l X2xlbiAtIDEpIHx8CisgICAgICAgICAgICAgICAgICFndWVzdF9oYW5kbGVfc3VicmFuZ2Vfb2th eShsaXN0LT5tZXRhZGF0YSwgbWV0YWRhdGFfb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFfb2Zmc2V0ICsgbWV0YWRhdGFfbGVuIC0g MSkgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAg ICAgICAgICAgICBicmVhazsKQEAgLTEyMDAsNyArMTIwNywxMCBAQCBzdGF0aWMgaW50IGxpdmVw YXRjaF9saXN0KHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0ICpsaXN0KQogICAgICAg ICAgICAgaWYgKCBfX2NvcHlfdG9fZ3Vlc3Rfb2Zmc2V0KGxpc3QtPm5hbWUsIG5hbWVfb2Zmc2V0 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPm5hbWUsIG5h bWVfbGVuKSB8fAogICAgICAgICAgICAgICAgIF9fY29weV90b19ndWVzdF9vZmZzZXQobGlzdC0+ bGVuLCBpZHgsICZuYW1lX2xlbiwgMSkgfHwKLSAgICAgICAgICAgICAgICBfX2NvcHlfdG9fZ3Vl c3Rfb2Zmc2V0KGxpc3QtPnN0YXR1cywgaWR4LCAmc3RhdHVzLCAxKSApCisgICAgICAgICAgICAg ICAgX19jb3B5X3RvX2d1ZXN0X29mZnNldChsaXN0LT5zdGF0dXMsIGlkeCwgJnN0YXR1cywgMSkg fHwKKyAgICAgICAgICAgICAgICBfX2NvcHlfdG9fZ3Vlc3Rfb2Zmc2V0KGxpc3QtPm1ldGFkYXRh LCBtZXRhZGF0YV9vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhLT5tZXRhZGF0YS5kYXRhLCBtZXRhZGF0YV9sZW4pIHx8CisgICAgICAgICAgICAgICAg X19jb3B5X3RvX2d1ZXN0X29mZnNldChsaXN0LT5tZXRhZGF0YV9sZW4sIGlkeCwgJm1ldGFkYXRh X2xlbiwgMSkgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHJjID0gLUVGQVVMVDsK ICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEyMDgsNiArMTIxOCw3IEBAIHN0YXRpYyBpbnQg bGl2ZXBhdGNoX2xpc3Qoc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3QgKmxpc3QpCiAK ICAgICAgICAgICAgIGlkeCsrOwogICAgICAgICAgICAgbmFtZV9vZmZzZXQgKz0gbmFtZV9sZW47 CisgICAgICAgICAgICBtZXRhZGF0YV9vZmZzZXQgKz0gbWV0YWRhdGFfbGVuOwogCiAgICAgICAg ICAgICBpZiAoIChpZHggPj0gbGlzdC0+bnIpIHx8IGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkg KQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTIxOCw2ICsxMjI5LDcgQEAgc3RhdGljIGlu dCBsaXZlcGF0Y2hfbGlzdChzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfbGlzdCAqbGlzdCkK ICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSggZGF0YSwgJnBheWxvYWRfbGlzdCwgbGlzdCAp CiAgICAgICAgIHsKICAgICAgICAgICAgIGxpc3QtPm5hbWVfdG90YWxfc2l6ZSArPSBzdHJsZW4o ZGF0YS0+bmFtZSkgKyAxOworICAgICAgICAgICAgbGlzdC0+bWV0YWRhdGFfdG90YWxfc2l6ZSAr PSBkYXRhLT5tZXRhZGF0YS5sZW47CiAgICAgICAgIH0KICAgICB9CiAgICAgbGlzdC0+bnIgPSBw YXlsb2FkX2NudCAtIGk7IC8qIFJlbWFpbmluZyBhbW91bnQuICovCmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9wdWJsaWMvc3lzY3RsLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmgKaW5k ZXggZDk1YzYyZjA2Yi4uYTc4MTI1MjhlMiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGlj L3N5c2N0bC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaApAQCAtOTE5LDE2ICs5 MTksMTcgQEAgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2dldCB7CiB9OwogCiAvKgotICog UmV0cmlldmUgYW4gYXJyYXkgb2YgYWJicmV2aWF0ZWQgc3RhdHVzIGFuZCBuYW1lcyBvZiBwYXls b2FkcyB0aGF0IGFyZQotICogbG9hZGVkIGluIHRoZSBoeXBlcnZpc29yLgorICogUmV0cmlldmUg YW4gYXJyYXkgb2YgYWJicmV2aWF0ZWQgc3RhdHVzLCBuYW1lcyBhbmQgbWV0YWRhdGEgb2YgcGF5 bG9hZHMgdGhhdAorICogYXJlIGxvYWRlZCBpbiB0aGUgaHlwZXJ2aXNvci4KICAqCiAgKiBJZiB0 aGUgaHlwZXJjYWxsIHJldHVybnMgYW4gcG9zaXRpdmUgbnVtYmVyLCBpdCBpcyB0aGUgbnVtYmVy ICh1cCB0byBgbnJgKQogICogb2YgdGhlIHBheWxvYWRzIHJldHVybmVkLCBhbG9uZyB3aXRoIGBu cmAgdXBkYXRlZCB3aXRoIHRoZSBudW1iZXIgb2YgcmVtYWluaW5nCiAgKiBwYXlsb2FkcywgYHZl cnNpb25gIHVwZGF0ZWQgKGl0IG1heSBiZSB0aGUgc2FtZSBhY3Jvc3MgaHlwZXJjYWxscy4gSWYg aXQgdmFyaWVzCi0gKiB0aGUgZGF0YSBpcyBzdGFsZSBhbmQgZnVydGhlciBjYWxscyBjb3VsZCBm YWlsKSBhbmQgdGhlIG5hbWVfdG90YWxfc2l6ZQotICogY29udGFpbmluZyB0b3RhbCBzaXplIG9m IHRyYW5zZmVyZWQgZGF0YSBmb3IgdGhlIGFycmF5LgotICogVGhlIGBzdGF0dXNgLCBgbmFtZWAs IGBsZW5gIGFyZSB1cGRhdGVkIGF0IHRoZWlyIGRlc2lnbmVkIGluZGV4IHZhbHVlIChgaWR4YCkK LSAqIHdpdGggdGhlIHJldHVybmVkIHZhbHVlIG9mIGRhdGEuCisgKiB0aGUgZGF0YSBpcyBzdGFs ZSBhbmQgZnVydGhlciBjYWxscyBjb3VsZCBmYWlsKSwgYG5hbWVfdG90YWxfc2l6ZWAgYW5kCisg KiBgbWV0YWRhdGFfdG90YWxfc2l6ZWAgY29udGFpbmluZyB0b3RhbCBzaXplcyBvZiB0cmFuc2Zl cmVkIGRhdGEgZm9yIGJvdGggdGhlCisgKiBhcnJheXMuCisgKiBUaGUgYHN0YXR1c2AsIGBuYW1l YCwgYGxlbmAsIGBtZXRhZGF0YWAgYW5kIGBtZXRhZGF0YV9sZW5gIGFyZSB1cGRhdGVkIGF0IHRo ZWlyCisgKiBkZXNpZ25lZCBpbmRleCB2YWx1ZSAoYGlkeGApIHdpdGggdGhlIHJldHVybmVkIHZh bHVlIG9mIGRhdGEuCiAgKgogICogSWYgdGhlIGh5cGVyY2FsbCByZXR1cm5zIEUyQklHIHRoZSBg bnJgIGlzIHRvbyBiaWcgYW5kIHNob3VsZCBiZQogICogbG93ZXJlZC4gVGhlIHVwcGVyIGxpbWl0 IG9mIGBucmAgaXMgbGVmdCB0byB0aGUgaW1wbGVtZW50aW9uLgpAQCAtOTUyLDYgKzk1Myw3IEBA IHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0IHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT1VUOiBIb3cgbWFueSBwYXlsb2FkcyBsZWZ0LiAq LwogICAgIHVpbnQzMl90IHBhZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogTXVz dCBiZSB6ZXJvLiAqLwogICAgIHVpbnQ2NF90IG5hbWVfdG90YWxfc2l6ZTsgICAgICAgICAgICAg ICAvKiBPVVQ6IFRvdGFsIHNpemUgb2YgYWxsIHRyYW5zZmVyIG5hbWVzICovCisgICAgdWludDY0 X3QgbWV0YWRhdGFfdG90YWxfc2l6ZTsgICAgICAgICAgIC8qIE9VVDogVG90YWwgc2l6ZSBvZiBh bGwgdHJhbnNmZXIgbWV0YWRhdGEgKi8KICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHhlbl9saXZl cGF0Y2hfc3RhdHVzX3QpIHN0YXR1czsgIC8qIE9VVC4gTXVzdCBoYXZlIGVub3VnaAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFjZSBhbGxvY2F0ZSBm b3IgbnIgb2YgdGhlbS4gKi8KICAgICBYRU5fR1VFU1RfSEFORExFXzY0KGNoYXIpIG5hbWU7ICAg ICAgICAgLyogT1VUOiBBcnJheSBvZiBuYW1lcy4gRWFjaCBtZW1iZXIKQEAgLTk2MCw2ICs5NjIs MTEgQEAgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3QgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuciBvZiB0aGVtLiAqLwogICAgIFhFTl9H VUVTVF9IQU5ETEVfNjQodWludDMyKSBsZW47ICAgICAgICAvKiBPVVQ6IEFycmF5IG9mIGxlbmd0 aHMgb2YgbmFtZSdzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNdXN0IGhhdmUgbnIgb2YgdGhlbS4gKi8KKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KGNo YXIpIG1ldGFkYXRhOyAgICAgLyogT1VUOiBBcnJheSBvZiBtZXRhZGF0YSBzdHJpbmdzLiBFYWNo CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbWJlciBt YXkgaGF2ZSBhbiBhcmJpdHJhcnkgbGVuZ3RoLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNdXN0IGhhdmUgbnIgb2YgdGhlbS4gKi8KKyAgICBYRU5fR1VF U1RfSEFORExFXzY0KHVpbnQzMikgbWV0YWRhdGFfbGVuOyAgLyogT1VUOiBBcnJheSBvZiBsZW5n dGhzIG9mIG1ldGFkYXRhJ3MuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE11c3QgaGF2ZSBuciBvZiB0aGVtLiAqLwogfTsKIAogLyoKLS0gCjIuMTYu NQoKCgoKQW1hem9uIERldmVsb3BtZW50IENlbnRlciBHZXJtYW55IEdtYkgKS3JhdXNlbnN0ci4g MzgKMTAxMTcgQmVybGluCkdlc2NoYWVmdHNmdWVocnVuZzogQ2hyaXN0aWFuIFNjaGxhZWdlciwg UmFsZiBIZXJicmljaApFaW5nZXRyYWdlbiBhbSBBbXRzZ2VyaWNodCBDaGFybG90dGVuYnVyZyB1 bnRlciBIUkIgMTQ5MTczIEIKU2l0ejogQmVybGluClVzdC1JRDogREUgMjg5IDIzNyA4NzkKCgoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=