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=-5.3 required=3.0 tests=DKIM_ADSP_ALL,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,INCLUDES_PATCH, MAILING_LIST_MULTI,MIME_HTML_MOSTLY,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED 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 86C61C3A59D for ; Thu, 22 Aug 2019 11:03:03 +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 3BA3F233A0 for ; Thu, 22 Aug 2019 11:03:03 +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="bgKYi4nC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3BA3F233A0 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 1i0krU-0003yt-EO; Thu, 22 Aug 2019 11:02:36 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i0krT-0003yj-O4 for xen-devel@lists.xen.org; Thu, 22 Aug 2019 11:02:35 +0000 X-Inumbo-ID: 57f005ae-c4cc-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 57f005ae-c4cc-11e9-ac23-bc764e2007e4; Thu, 22 Aug 2019 11:02:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209; t=1566471754; x=1598007754; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=FPFA5xWnRJHXXIxcknpAykR01Vnwetkgc7NeJS8r4u8=; b=bgKYi4nCFbbObFQp3vReMbMqMoNRTP3dEhUp1+oBWoGCEL9onJglvNE6 XXdPRoegtILwU36XM8vUHWXaKMgDLe3PlDxaawCK3Li7v+RKCp3/IGXmn WhHDpqjv6v7nreM6spu3WHI8AXASPHmdELFqiXIa6lkmErx0O4QTZmmqT o=; X-IronPort-AV: E=Sophos;i="5.64,416,1559520000"; d="scan'208,217";a="696432082" Received: from sea3-co-svc-lb6-vlan3.sea.amazon.com (HELO email-inbound-relay-2a-119b4f96.us-west-2.amazon.com) ([10.47.22.38]) by smtp-border-fw-out-9102.sea19.amazon.com with ESMTP; 22 Aug 2019 11:02:21 +0000 Received: from EX13MTAUEA001.ant.amazon.com (pdx4-ws-svc-p6-lb7-vlan2.pdx.amazon.com [10.170.41.162]) by email-inbound-relay-2a-119b4f96.us-west-2.amazon.com (Postfix) with ESMTPS id 7FE3F1A24BA; Thu, 22 Aug 2019 11:02:20 +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; Thu, 22 Aug 2019 11:02:19 +0000 Received: from EX13D05EUB004.ant.amazon.com (10.43.166.115) by EX13D05EUB002.ant.amazon.com (10.43.166.45) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 22 Aug 2019 11:02:18 +0000 Received: from EX13D05EUB004.ant.amazon.com ([10.43.166.115]) by EX13D05EUB004.ant.amazon.com ([10.43.166.115]) with mapi id 15.00.1367.000; Thu, 22 Aug 2019 11:02:18 +0000 From: "Wieczorkiewicz, Pawel" To: Julien Grall Thread-Topic: [PATCH 09/14] livepatch: Add per-function applied/reverted state tracking marker Thread-Index: AQHVV/lI+OhiRe5NgkKqw74UV0kjMKcG+QKAgAAJKoA= Date: Thu, 22 Aug 2019 11:02:18 +0000 Message-ID: References: <20190821081931.90887-1-wipawel@amazon.de> <20190821081931.90887-10-wipawel@amazon.de> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.164.196] MIME-Version: 1.0 Precedence: Bulk Subject: Re: [Xen-devel] [PATCH 09/14] livepatch: Add per-function applied/reverted state tracking marker 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: Tim Deegan , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ross Lagerwall , Ian Jackson , xen-devel , "Pohlack, Martin" , "Wieczorkiewicz, Pawel" , Jan Beulich , xen-devel , =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= Content-Type: multipart/mixed; boundary="===============5868951538797878359==" Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" --===============5868951538797878359== Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_DB27F58EDA274A5DBE234CDB5D9736A2amazoncom_" --_000_DB27F58EDA274A5DBE234CDB5D9736A2amazoncom_ Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 DQoNCk9uIDIyLiBBdWcgMjAxOSwgYXQgMTI6MjksIEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxs QGFybS5jb208bWFpbHRvOmp1bGllbi5ncmFsbEBhcm0uY29tPj4gd3JvdGU6DQoNCkhpIFBhd2Vs LA0KDQpIaSBKdWxpZW4sDQoNClRoYW5rIGZvciBsb29raW5nIGF0IHRoaXMhDQoNCg0KT24gMjEv MDgvMjAxOSAwOToxOSwgUGF3ZWwgV2llY3pvcmtpZXdpY3ogd3JvdGU6DQpMaXZlcGF0Y2ggb25s eSB0cmFja3MgYW4gZW50aXJlIHBheWxvYWQgYXBwbGllZC9yZXZlcnRlZCBzdGF0ZS4gQnV0LA0K d2l0aCBhbiBvcHRpb24gdG8gc3VwcGx5IHRoZSBhcHBseV9wYXlsb2FkKCkgYW5kL29yIHJldmVy dF9wYXlsb2FkKCkNCmZ1bmN0aW9ucyBhcyBvcHRpb25hbCBob29rcywgaXQgYmVjb21lcyBwb3Nz aWJsZSB0byBpbnRlcm1peCB0aGUNCmV4ZWN1dGlvbiBvZiB0aGUgb3JpZ2luYWwgYXBwbHlfcGF5 bG9hZCgpL3JldmVydF9wYXlsb2FkKCkgZnVuY3Rpb25zDQp3aXRoIHRoZWlyIGR5bmFtaWNhbGx5 IHN1cHBsaWVkIGNvdW50ZXJwYXJ0cy4NCkl0IGlzIGltcG9ydGFudCB0aGVuIHRvIHRyYWNrIHRo ZSBjdXJyZW50IHN0YXRlIG9mIGV2ZXJ5IGZ1bmN0aW9uDQpiZWluZyBwYXRjaGVkIGFuZCBwcmV2 ZW50IHNpdHVhdGlvbnMgb2YgdW5pbnRlbnRpb25hbCBkb3VibGUtYXBwbHkNCm9yIHVuYXBwbGll ZCByZXZlcnQuDQpUbyBzdXBwb3J0IHRoYXQsIGl0IGlzIG5lY2Vzc2FyeSB0byBleHRlbmQgcHVi bGljIGludGVyZmFjZSBvZiB0aGUNCmxpdmVwYXRjaC4gVGhlIHN0cnVjdCBsaXZlcGF0Y2hfZnVu YyBnZXRzIGFkZGl0aW9uYWwgZmllbGQgaG9sZGluZw0KdGhlIGFwcGxpZWQvcmV2ZXJ0ZWQgc3Rh dGUgbWFya2VyLg0KVG8gcmVmbGVjdCB0aGUgbGl2ZXBhdGNoIHBheWxvYWQgQUJJIGNoYW5nZSwg YnVtcCB0aGUgdmVyc2lvbiBmbGFnDQpMSVZFUEFUQ0hfUEFZTE9BRF9WRVJTSU9OIHVwIHRvIDIu DQpUaGUgYWJvdmUgc29sdXRpb24gb25seSBhcHBsaWVzIHRvIHg4NiBhcmNoaXRlY3R1cmUgZm9y IG5vdy4NClNpZ25lZC1vZmYtYnk6IFBhd2VsIFdpZWN6b3JraWV3aWN6IDx3aXBhd2VsQGFtYXpv bi5kZTxtYWlsdG86d2lwYXdlbEBhbWF6b24uZGU+Pg0KUmV2aWV3ZWQtYnk6IEFuZHJhLUlyaW5h IFBhcmFzY2hpdiA8YW5kcmFwcnNAYW1hem9uLmNvbTxtYWlsdG86YW5kcmFwcnNAYW1hem9uLmNv bT4+DQpSZXZpZXdlZC1ieTogQmpvZXJuIERvZWJlbCA8ZG9lYmVsQGFtYXpvbi5kZTxtYWlsdG86 ZG9lYmVsQGFtYXpvbi5kZT4+DQpSZXZpZXdlZC1ieTogTWFydGluIFBvaGxhY2sgPG1wb2hsYWNr QGFtYXpvbi5kZTxtYWlsdG86bXBvaGxhY2tAYW1hem9uLmRlPj4NCi0tLQ0KIHhlbi9hcmNoL3g4 Ni9saXZlcGF0Y2guYyAgICB8IDIwICsrKysrKysrKysrKysrKysrKystDQogeGVuL2NvbW1vbi9s aXZlcGF0Y2guYyAgICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysN CiB4ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmggfCAxMSArKysrKysrKysrLQ0KIHhlbi9pbmNs dWRlL3hlbi9saXZlcGF0Y2guaCB8ICAyICstDQogNCBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQ0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9saXZlcGF0 Y2guYyBiL3hlbi9hcmNoL3g4Ni9saXZlcGF0Y2guYw0KaW5kZXggNDM2ZWU0MGZlMS4uNzZmYTkx YTA4MiAxMDA2NDQNCi0tLSBhL3hlbi9hcmNoL3g4Ni9saXZlcGF0Y2guYw0KKysrIGIveGVuL2Fy Y2gveDg2L2xpdmVwYXRjaC5jDQpAQCAtNjEsNiArNjEsMTQgQEAgdm9pZCBub2lubGluZSBhcmNo X2xpdmVwYXRjaF9hcHBseShzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpDQogICAgIGlmICgg IWxlbiApDQogICAgICAgICByZXR1cm47DQogKyAgICAvKiBJZiB0aGUgYXBwbHkgYWN0aW9uIGhh cyBiZWVuIGFscmVhZHkgZXhlY3V0ZWQgb24gdGhpcyBmdW5jdGlvbiwgZG8gbm90aGluZy4uLiAq Lw0KKyAgICBpZiAoIGZ1bmMtPmFwcGxpZWQgPT0gTElWRVBBVENIX0ZVTkNfQVBQTElFRCApDQor ICAgIHsNCisgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBMSVZFUEFUQ0ggIiVzOiAlcyBo YXMgYmVlbiBhbHJlYWR5IGFwcGxpZWQgYmVmb3JlXG4iLA0KKyAgICAgICAgICAgICAgICBfX2Z1 bmNfXywgZnVuYy0+bmFtZSk7DQorICAgICAgICByZXR1cm47DQorICAgIH0NCg0KRG9lcyB0aGlz IG5lZWQgdG8gaW4gYXJjaCBzcGVjaWZpYyBjb2RlPw0KDQpBcyBhIG1hdHRlciBvZiBmYWN0IGl0 IGRvZXMgbm90Lg0KTGV0IG1lIGVuYWJsZSB0aGlzIGZlYXR1cmUgZm9yIEFybSBhcyB3ZWxsIGFu ZCBtYWtlIHRoaXMgY29kZSBhIGNvbW1vbiBpbmxpbmUuDQoNCg0KKw0KICAgICBtZW1jcHkoZnVu Yy0+b3BhcXVlLCBvbGRfcHRyLCBsZW4pOw0KICAgICBpZiAoIGZ1bmMtPm5ld19hZGRyICkNCiAg ICAgew0KQEAgLTc3LDE1ICs4NSwyNSBAQCB2b2lkIG5vaW5saW5lIGFyY2hfbGl2ZXBhdGNoX2Fw cGx5KHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYykNCiAgICAgICAgIGFkZF9ub3BzKGluc24s IGxlbik7DQogICAgICAgbWVtY3B5KG9sZF9wdHIsIGluc24sIGxlbik7DQorICAgIGZ1bmMtPmFw cGxpZWQgPSBMSVZFUEFUQ0hfRlVOQ19BUFBMSUVEOw0KIH0NCiAgIC8qDQogICogIm5vaW5saW5l IiB0byBjYXVzZSBjb250cm9sIGZsb3cgY2hhbmdlIGFuZCB0aHVzIGludmFsaWRhdGUgSSQgYW5k DQogICogY2F1c2UgcmVmZXRjaCBhZnRlciBtb2RpZmljYXRpb24uDQogICovDQotdm9pZCBub2lu bGluZSBhcmNoX2xpdmVwYXRjaF9yZXZlcnQoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpm dW5jKQ0KK3ZvaWQgbm9pbmxpbmUgYXJjaF9saXZlcGF0Y2hfcmV2ZXJ0KHN0cnVjdCBsaXZlcGF0 Y2hfZnVuYyAqZnVuYykNCiB7DQorICAgIC8qIElmIHRoZSBhcHBseSBhY3Rpb24gaGFzbid0IGJl ZW4gZXhlY3V0ZWQgb24gdGhpcyBmdW5jdGlvbiwgZG8gbm90aGluZy4uLiAqLw0KKyAgICBpZiAo ICFmdW5jLT5vbGRfYWRkciB8fCBmdW5jLT5hcHBsaWVkID09IExJVkVQQVRDSF9GVU5DX05PVF9B UFBMSUVEICkNCisgICAgew0KKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIExJVkVQQVRD SCAiJXM6ICVzIGhhcyBub3QgYmVlbiBhcHBsaWVkIGJlZm9yZVxuIiwNCisgICAgICAgICAgICAg ICAgX19mdW5jX18sIGZ1bmMtPm5hbWUpOw0KKyAgICAgICAgcmV0dXJuOw0KKyAgICB9DQorDQog ICAgIG1lbWNweShmdW5jLT5vbGRfYWRkciwgZnVuYy0+b3BhcXVlLCBsaXZlcGF0Y2hfaW5zbl9s ZW4oZnVuYykpOw0KKyAgICBmdW5jLT5hcHBsaWVkID0gTElWRVBBVENIX0ZVTkNfTk9UX0FQUExJ RUQ7DQogfQ0KICAgLyoNCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2xpdmVwYXRjaC5jIGIveGVu L2NvbW1vbi9saXZlcGF0Y2guYw0KaW5kZXggNTg1ZWM5ODE5YS4uMDkwYTQ4OTc3YiAxMDA2NDQN Ci0tLSBhL3hlbi9jb21tb24vbGl2ZXBhdGNoLmMNCisrKyBiL3hlbi9jb21tb24vbGl2ZXBhdGNo LmMNCkBAIC0xMjQyLDYgKzEyNDIsMjkgQEAgc3RhdGljIGlubGluZSB2b2lkIHJldmVydF9wYXls b2FkX3RhaWwoc3RydWN0IHBheWxvYWQgKmRhdGEpDQogICAgIGRhdGEtPnN0YXRlID0gTElWRVBB VENIX1NUQVRFX0NIRUNLRUQ7DQogfQ0KICsvKg0KKyAqIENoZWNrIGlmIGFuIGFjdGlvbiBoYXMg YXBwbGllZCB0aGUgc2FtZSBzdGF0ZSB0byBhbGwgcGF5bG9hZCdzIGZ1bmN0aW9ucyBjb25zaXN0 ZW50bHkuDQorICovDQorc3RhdGljIGlubGluZSBib29sIHdhc19hY3Rpb25fY29uc2lzdGVudChj b25zdCBzdHJ1Y3QgcGF5bG9hZCAqZGF0YSwgbGl2ZXBhdGNoX2Z1bmNfc3RhdGVfdCBleHBlY3Rl ZF9zdGF0ZSkNCit7DQorICAgIGludCBpOw0KKw0KKyAgICBmb3IgKCBpID0gMDsgaSA8IGRhdGEt Pm5mdW5jczsgaSsrICkNCisgICAgew0KKyAgICAgICAgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpm ID0gJihkYXRhLT5mdW5jc1tpXSk7DQorDQorICAgICAgICBpZiAoIGYtPmFwcGxpZWQgIT0gZXhw ZWN0ZWRfc3RhdGUgKQ0KDQpQZXIgdGhlIGRlZmluaXRpb24gb2YgbGl2ZXBhdGhfZnVuYywgdGhl IGZpZWxkICJhcHBsaWVkIiBvbmx5IGV4aXN0cyBmb3IgeDg2LiBTbyB0aGlzIHdpbGwgbm90IGNv bXBpbGVkIG9uIEFybS4NCg0KSSB3aWxsIGVuYWJsZSBBcm0gdG9vLg0KDQoNCisgICAgICAgIHsN CisgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUiBMSVZFUEFUQ0ggIiVzOiBQYXlsb2FkIGhh cyBhIGZ1bmN0aW9uOiAnJXMnIHdpdGggaW5jb25zaXN0ZW50IGFwcGxpZWQgc3RhdGUuXG4iLA0K KyAgICAgICAgICAgICAgICAgICBkYXRhLT5uYW1lLCBmLT5uYW1lID86ICJub25hbWUiKTsNCisN CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICB9DQorICAgIH0NCisNCisgICAg cmV0dXJuIHRydWU7DQorfQ0KKw0KIC8qDQogICogVGhpcyBmdW5jdGlvbiBpcyBleGVjdXRlZCBo YXZpbmcgYWxsIG90aGVyIENQVXMgd2l0aCBubyBkZWVwIHN0YWNrICh3ZSBtYXkNCiAgKiBoYXZl IGNwdV9pZGxlIG9uIGl0KSBhbmQgSVJRcyBkaXNhYmxlZC4NCkBAIC0xMjY4LDYgKzEyOTEsOSBA QCBzdGF0aWMgdm9pZCBsaXZlcGF0Y2hfZG9fYWN0aW9uKHZvaWQpDQogICAgICAgICBlbHNlDQog ICAgICAgICAgICAgcmMgPSBhcHBseV9wYXlsb2FkKGRhdGEpOw0KICsgICAgICAgIGlmICggIXdh c19hY3Rpb25fY29uc2lzdGVudChkYXRhLCByYyA/IExJVkVQQVRDSF9GVU5DX05PVF9BUFBMSUVE IDogTElWRVBBVENIX0ZVTkNfQVBQTElFRCkgKQ0KDQpSZWdhcmRsZXNzIHRoZSBjb21waWxhdGlv biBpc3N1ZSBhYm92ZSwgbm9uZSBvZiB0aGUgY29tbW9uIGNvZGUgd2lsbCBzZXQgdGhlIHN0YXRl LiBTbyBmb3IgQXJtLCB0aGlzIHdvdWxkIGxpa2VseSBtZWFuIHRoZSBmdW5jdGlvbiByZXR1cm4g ZmFsc2UuDQoNClRydWUsIEkgc2hvdWxkIGhhdmUgZGlzYWJsZWQgdGhpcyBjb2RlIGZvciBBcm0g dG9vLg0KQnV0IG5vdywgbGV0IG1lIGp1c3QgbWFrZSBpdCBjb21tb24gZm9yIGFsbCBhcmNocy4N Cg0KDQorICAgICAgICAgICAgcGFuaWMoImxpdmVwYXRjaDogcGFydGlhbGx5IGFwcGxpZWQgcGF5 bG9hZCAnJXMnIVxuIiwgZGF0YS0+bmFtZSk7DQoNCkkgY2FuIHNlZSBhdCBsZWFzdCBhIGNhc2Ug d2hlcmUgdGhlIHBhbmljIGNhbiBiZSByZWFjaGVkIGhlcmUuIFBlciB0aGUgY2hhbmdlcyBpbiBh cmNoX2xpdmVwYXRjaF9hcHBseSgpLCBmLT5hcHBsaWVkIHdpbGwgb25seSBiZSBzZXQgdG8gTElW RVBBVENIX0ZVTkNfQVBQTElFRCBpZiBsaXZlcGF0Y2hfaW5zbl9sZW4oKSBpcyBub3QgMC4NCg0K SSBkb24ndCBrbm93IHdoZXRoZXIgbGl2ZXBhdGNoX2luc25fbGVuKCkgY2FuIGV2ZXIgcmV0dXJu IDAgYXMgbXkgbGl2ZXBhdGNoIGtub3dsZWRnZSBpcyBsaW1pdGVkLiBCdXQgdGhlIGNvZGUgbGl2 ZSBsaXR0bGUgZG91YnQgdGhpcyBpcyBhIHRoZW9yaXRpY2FsIHBvc3NpYmlsaXR5IHRoYXQgYWZ0 ZXIgdGhpcyBwYXRjaCB3aWxsIHR1cm4gaW50byBjcmFzaGluZyBYZW4uDQoNCg0KSSBzdXBwb3Nl IHRoZSBsaXZlcGF0Y2hfaW5zbl9sZW4oKSByZXR1cm5pbmcgMCAoaS5lLiBmdW5jLT5uZXdfc2l6 ZSBiZWluZyAwLCB3aGljaCBpcyB2YWxpZCBBRkFJQ1MpIGlzIHRoZSB0by1iZS1pbXBsZW1lbnRl ZCBmZWF0dXJlIG9mIG5vcGluZyBvdXQgY29kZToNCkZyb20gdGhlIGxpdmVwYXRjaCBkb2M6DQoi IiINCiMjIFRPRE8gR29hbHMNCg0KICogTk9QIG91dCB0aGUgY29kZSBzZXF1ZW5jZSBpZiBgbmV3 X3NpemVgIGlzIHplcm8uDQoiIiINClNvLCBpbiB0aGVvcnkgaXQgY2FuIGJlIDAgKGl0IGhhcyB0 byBiZSBpbnRyb2R1Y2VkIHRvIHRoZSBsaXZlcGF0Y2guZnVuY3MpLiBUaHVzLCB5b3XigJlyZSBy aWdodC4NCg0KSSB3aWxsIGZpeCB0aGF0LCBidXQgbWFya2luZyBzdWNoIGZ1bmN0aW9uIChuZXdf c2l6ZT09MCkgYXMgYXBwbGllZC4NCg0KVGhhbmtzIQ0KDQpNb3JlIGdlbmVyYWxseSwgSSBhbSBu b3QgdmVyeSBjb21mb3J0YWJsZSB0byBzZWUgcGFuaWMoKSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBj b2RlLiBDb3VsZCB5b3UgZXhwbGFpbiB3aHkgcGFuaWMgaXMgdGhlIGJlc3Qgc29sdXRpb24gb3Zl ciByZXZlcnRpbmcgdGhlIHdvcms/DQoNCg0KWWVzLiBQcm9kdWN0aW9uLXJlYWR5IGhvdHBhdGNo ZXMgbXVzdCBub3QgY29udGFpbiBpbmNvbnNpc3RlbnQgaG9va3Mgb3IgZnVuY3Rpb25zLXRvLWJl LWFwcGxpZWQvcmV2ZXJ0ZWQuDQpUaGUgZ29hbCBoZXJlIGlzIHRvIGRldGVjdCBzdWNoIGhvdHBh dGNoZXMgYW5kIGZhaWwgaGFyZCBpbW1lZGlhdGVseSBoaWdobGlnaHRpbmcgdGhlIGZhY3QgdGhh dCBzdWNoIGhvdHBhdGNoDQppcyBicm9rZW4uDQoNClRoZSBpbmNvbnNpc3RlbnQgYXBwbGljYXRp b24gb2YgYSBob3RwYXRjaCAoc29tZSBmdW5jdGlvbiBhcHBsaWVkLCBzb21lIHJldmVydGVkIHdo aWxlIG90aGVyIGxlZnQgYmVoaW5lZCkgbGVhdmVzDQp0aGUgc3lzdGVtIGluIGEgdmVyeSBiYWQg c3RhdGUuIEkgdGhpbmsgdGhlIGJlc3Qgd2hhdCB3ZSBjb3VsZCBkbyBoZXJlIGlzIHBhbmljKCkg dG8gZW5hYmxlIHBvc3QtbW9ydGVtIGFuYWx5c2lzDQpvZiB3aGF0IHdlbnQgd3JvbmcgYW5kIGF2 b2lkIGxlYWtpbmcgc3VjaCBzeXN0ZW0gaW50byBwcm9kdWN0aW9uLg0KDQpNaXMtZGV0ZWN0aW5n IHN1Y2ggY29uZGl0aW9ucyBhbmQgbGVhdmluZyBzdWNoIGluY29uc2lzdGVudCBzeXN0ZW0gcnVu bmluZyBpcyBhIHZlcnkgYmFkIGlkZWEuDQoNCk15IHF1ZXN0aW9uIGFwcGxpZXMgZm9yIGFsbCB0 aGUgb3RoZXIgcGFuaWMoKSBiZWxvdy4NCg0KKw0KICAgICAgICAgaWYgKCByYyA9PSAwICkNCiAg ICAgICAgICAgICBhcHBseV9wYXlsb2FkX3RhaWwoZGF0YSk7DQogICAgICAgICBicmVhazsNCkBA IC0xMjgyLDYgKzEzMDgsOSBAQCBzdGF0aWMgdm9pZCBsaXZlcGF0Y2hfZG9fYWN0aW9uKHZvaWQp DQogICAgICAgICBlbHNlDQogICAgICAgICAgICAgcmMgPSByZXZlcnRfcGF5bG9hZChkYXRhKTsN CiArICAgICAgICBpZiAoICF3YXNfYWN0aW9uX2NvbnNpc3RlbnQoZGF0YSwgcmMgPyBMSVZFUEFU Q0hfRlVOQ19BUFBMSUVEIDogTElWRVBBVENIX0ZVTkNfTk9UX0FQUExJRUQpICkNCisgICAgICAg ICAgICBwYW5pYygibGl2ZXBhdGNoOiBwYXJ0aWFsbHkgcmV2ZXJ0ZWQgcGF5bG9hZCAnJXMnIVxu IiwgZGF0YS0+bmFtZSk7DQorDQogICAgICAgICBpZiAoIHJjID09IDAgKQ0KICAgICAgICAgICAg IHJldmVydF9wYXlsb2FkX3RhaWwoZGF0YSk7DQogICAgICAgICBicmVhazsNCkBAIC0xMzA0LDYg KzEzMzMsOSBAQCBzdGF0aWMgdm9pZCBsaXZlcGF0Y2hfZG9fYWN0aW9uKHZvaWQpDQogICAgICAg ICAgICAgICAgIG90aGVyLT5yYyA9IHJldmVydF9wYXlsb2FkKG90aGVyKTsNCiAgICsgICAgICAg ICAgICBpZiAoICF3YXNfYWN0aW9uX2NvbnNpc3RlbnQob3RoZXIsIHJjID8gTElWRVBBVENIX0ZV TkNfQVBQTElFRCA6IExJVkVQQVRDSF9GVU5DX05PVF9BUFBMSUVEKSApDQorICAgICAgICAgICAg ICAgIHBhbmljKCJsaXZlcGF0Y2g6IHBhcnRpYWxseSByZXZlcnRlZCBwYXlsb2FkICclcychXG4i LCBvdGhlci0+bmFtZSk7DQorDQogICAgICAgICAgICAgaWYgKCBvdGhlci0+cmMgPT0gMCApDQog ICAgICAgICAgICAgICAgIHJldmVydF9wYXlsb2FkX3RhaWwob3RoZXIpOw0KICAgICAgICAgICAg IGVsc2UNCkBAIC0xMzI0LDYgKzEzNTYsOSBAQCBzdGF0aWMgdm9pZCBsaXZlcGF0Y2hfZG9fYWN0 aW9uKHZvaWQpDQogICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICByYyA9IGFwcGx5 X3BheWxvYWQoZGF0YSk7DQogKyAgICAgICAgICAgIGlmICggIXdhc19hY3Rpb25fY29uc2lzdGVu dChkYXRhLCByYyA/IExJVkVQQVRDSF9GVU5DX05PVF9BUFBMSUVEIDogTElWRVBBVENIX0ZVTkNf QVBQTElFRCkgKQ0KKyAgICAgICAgICAgICAgICBwYW5pYygibGl2ZXBhdGNoOiBwYXJ0aWFsbHkg YXBwbGllZCBwYXlsb2FkICclcychXG4iLCBkYXRhLT5uYW1lKTsNCisNCiAgICAgICAgICAgICBp ZiAoIHJjID09IDAgKQ0KICAgICAgICAgICAgICAgICBhcHBseV9wYXlsb2FkX3RhaWwoZGF0YSk7 DQogICAgICAgICB9DQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oIGIv eGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oDQppbmRleCAxYjJiMTY1YTZkLi5iNTVhZDZkMDUw IDEwMDY0NA0KLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oDQorKysgYi94ZW4vaW5j bHVkZS9wdWJsaWMvc3lzY3RsLmgNCkBAIC04MTgsNyArODE4LDcgQEAgc3RydWN0IHhlbl9zeXNj dGxfY3B1X2ZlYXR1cmVzZXQgew0KICAqICAgICBJZiB6ZXJvIGV4aXQgd2l0aCBzdWNjZXNzLg0K ICAqLw0KIC0jZGVmaW5lIExJVkVQQVRDSF9QQVlMT0FEX1ZFUlNJT04gMQ0KKyNkZWZpbmUgTElW RVBBVENIX1BBWUxPQURfVkVSU0lPTiAyDQogLyoNCiAgKiAubGl2ZXBhdGNoLmZ1bmNzIHN0cnVj dHVyZSBsYXlvdXQgZGVmaW5lZCBpbiB0aGUgYFBheWxvYWQgZm9ybWF0YA0KICAqIHNlY3Rpb24g aW4gdGhlIExpdmUgUGF0Y2ggZGVzaWduIGRvY3VtZW50Lg0KQEAgLTgyNiw2ICs4MjYsMTEgQEAg c3RydWN0IHhlbl9zeXNjdGxfY3B1X2ZlYXR1cmVzZXQgew0KICAqIFdlIGd1YXJkIHRoaXMgd2l0 aCBfX1hFTl9fIGFzIHRvb2xzdGFja3MgU0hPVUxEIG5vdCB1c2UgaXQuDQogICovDQogI2lmZGVm IF9fWEVOX18NCit0eXBlZGVmIGVudW0gbGl2ZXBhdGNoX2Z1bmNfc3RhdGUgew0KKyAgICBMSVZF UEFUQ0hfRlVOQ19OT1RfQVBQTElFRCA9IDAsDQorICAgIExJVkVQQVRDSF9GVU5DX0FQUExJRUQg PSAxDQoNCkFGQUlLLCBlbnVtIHdpbGwgYWx3YXlzIHN0YXJ0IGNvdW50aW5nIGZyb20gMCwgc28g aXMgaXQgcmVhbGx5IG5lY2Vzc2FyeSB0byBzcGVjaWZ5IHRoZSBleGFjdCB2YWx1ZXM/DQoNCkl0 4oCZcyBwcm9iYWJseSBteSAob3Igc29tZSBlYXJsaWVyIHJldmlld2VyJ3MpIE9DRC4gSSBhbSBo YXBweSB0byByZW1vdmUgdGhlc2UuDQoNCg0KK30gbGl2ZXBhdGNoX2Z1bmNfc3RhdGVfdDsNCisN CiBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgew0KICAgICBjb25zdCBjaGFyICpuYW1lOyAgICAgICAv KiBOYW1lIG9mIGZ1bmN0aW9uIHRvIGJlIHBhdGNoZWQuICovDQogICAgIHZvaWQgKm5ld19hZGRy Ow0KQEAgLTgzNCw2ICs4MzksMTAgQEAgc3RydWN0IGxpdmVwYXRjaF9mdW5jIHsNCiAgICAgdWlu dDMyX3Qgb2xkX3NpemU7DQogICAgIHVpbnQ4X3QgdmVyc2lvbjsgICAgICAgIC8qIE1VU1QgYmUg TElWRVBBVENIX1BBWUxPQURfVkVSU0lPTi4gKi8NCiAgICAgdWludDhfdCBvcGFxdWVbMzFdOw0K KyNpZiBkZWZpbmVkIENPTkZJR19YODYNCisgICAgdWludDhfdCBhcHBsaWVkOw0KKyAgICB1aW50 OF90IF9wYWRbN107DQorI2VuZGlmDQoNCkFib3ZlLCB5b3UgaW5jcmVhc2UgdGhlIHZlcnNpb24g b2YgdGhlIHBheWxvYWQgaGVyZSBldmVuIGZvciBBcm0gd2hlbiB0aGVyZSBhcmUgbm8gbW9kaWZp Y2F0aW9uIGluIEFybS4gVGhpcyByYWlzZXMgdGhlIHF1ZXN0aW9uIG9uIHdoZXRoZXIgd2Ugd291 bGQgbmVlZCB0byBpbmNyZWFzZSB0aGUgdmVyc2lvbiB3aGVuIEFybSBpcyBnb2luZyB0byBiZSBz dXBwb3J0ZWQ/DQoNCkkgdGhpbmsgdGhlIGJlc3Qgd2F5IGZvcndhcmQgaXMgdG8gYWRkIEFybSBz dXBwb3J0Lg0KVGhpcyBmZWF0dXJlIGlzIHNpbXBsZSBlbm91Z2ggYW5kIGl0IGRvZXMgbm90IG1h a2UgbXVjaCBzZW5zZSB0byBjb21wbGljYXRlIGl0IGJ5IGFkZGluZyBzdXBwb3J0IHNwYWdoZXR0 aS4NCg0KDQogfTsNCiB0eXBlZGVmIHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyBsaXZlcGF0Y2hfZnVu Y190Ow0KICNlbmRpZg0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaCBi L3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaA0KaW5kZXggMmFlYzUzMmVlMi4uYTkzMTI2ZjYz MSAxMDA2NDQNCi0tLSBhL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaA0KKysrIGIveGVuL2lu Y2x1ZGUveGVuL2xpdmVwYXRjaC5oDQpAQCAtMTE3LDcgKzExNyw3IEBAIGludCBhcmNoX2xpdmVw YXRjaF9xdWllc2NlKHZvaWQpOw0KIHZvaWQgYXJjaF9saXZlcGF0Y2hfcmV2aXZlKHZvaWQpOw0K ICAgdm9pZCBhcmNoX2xpdmVwYXRjaF9hcHBseShzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMp Ow0KLXZvaWQgYXJjaF9saXZlcGF0Y2hfcmV2ZXJ0KGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZnVu YyAqZnVuYyk7DQordm9pZCBhcmNoX2xpdmVwYXRjaF9yZXZlcnQoc3RydWN0IGxpdmVwYXRjaF9m dW5jICpmdW5jKTsNCiB2b2lkIGFyY2hfbGl2ZXBhdGNoX3Bvc3RfYWN0aW9uKHZvaWQpOw0KICAg dm9pZCBhcmNoX2xpdmVwYXRjaF9tYXNrKHZvaWQpOw0KDQpDaGVlcnMsDQoNCi0tDQpKdWxpZW4g R3JhbGwNCg0KQmVzdCBSZWdhcmRzLA0KUGF3ZWwgV2llY3pvcmtpZXdpY3oNCg0KDQoNCgoKCkFt YXpvbiBEZXZlbG9wbWVudCBDZW50ZXIgR2VybWFueSBHbWJICktyYXVzZW5zdHIuIDM4CjEwMTE3 IEJlcmxpbgpHZXNjaGFlZnRzZnVlaHJ1bmc6IENocmlzdGlhbiBTY2hsYWVnZXIsIFJhbGYgSGVy YnJpY2gKRWluZ2V0cmFnZW4gYW0gQW10c2dlcmljaHQgQ2hhcmxvdHRlbmJ1cmcgdW50ZXIgSFJC IDE0OTE3MyBCClNpdHo6IEJlcmxpbgpVc3QtSUQ6IERFIDI4OSAyMzcgODc5CgoK --_000_DB27F58EDA274A5DBE234CDB5D9736A2amazoncom_ Content-Type: text/html; charset="utf-8" Content-ID: MIME-Version: 1.0 Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgbGluZS1icmVhazogYWZ0 ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0iIj4NCjxiciBjbGFzcz0iIj4NCjxkaXY+PGJyIGNsYXNz PSIiPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPk9u IDIyLiBBdWcgMjAxOSwgYXQgMTI6MjksIEp1bGllbiBHcmFsbCAmbHQ7PGEgaHJlZj0ibWFpbHRv Omp1bGllbi5ncmFsbEBhcm0uY29tIiBjbGFzcz0iIj5qdWxpZW4uZ3JhbGxAYXJtLmNvbTwvYT4m Z3Q7IHdyb3RlOjwvZGl2Pg0KPGJyIGNsYXNzPSJBcHBsZS1pbnRlcmNoYW5nZS1uZXdsaW5lIj4N CjxkaXYgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPkhpIFBhd2VsLDxiciBjbGFzcz0iIj4NCjwv ZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2PjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0K PGRpdj5IaSBKdWxpZW4sPC9kaXY+DQo8ZGl2PjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdj5U aGFuayBmb3IgbG9va2luZyBhdCB0aGlzITwvZGl2Pg0KPGJyIGNsYXNzPSIiPg0KPGJsb2NrcXVv dGUgdHlwZT0iY2l0ZSIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj48 YnIgY2xhc3M9IiI+DQpPbiAyMS8wOC8yMDE5IDA5OjE5LCBQYXdlbCBXaWVjem9ya2lld2ljeiB3 cm90ZTo8YnIgY2xhc3M9IiI+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBjbGFzcz0iIj5MaXZl cGF0Y2ggb25seSB0cmFja3MgYW4gZW50aXJlIHBheWxvYWQgYXBwbGllZC9yZXZlcnRlZCBzdGF0 ZS4gQnV0LDxiciBjbGFzcz0iIj4NCndpdGggYW4gb3B0aW9uIHRvIHN1cHBseSB0aGUgYXBwbHlf cGF5bG9hZCgpIGFuZC9vciByZXZlcnRfcGF5bG9hZCgpPGJyIGNsYXNzPSIiPg0KZnVuY3Rpb25z IGFzIG9wdGlvbmFsIGhvb2tzLCBpdCBiZWNvbWVzIHBvc3NpYmxlIHRvIGludGVybWl4IHRoZTxi ciBjbGFzcz0iIj4NCmV4ZWN1dGlvbiBvZiB0aGUgb3JpZ2luYWwgYXBwbHlfcGF5bG9hZCgpL3Jl dmVydF9wYXlsb2FkKCkgZnVuY3Rpb25zPGJyIGNsYXNzPSIiPg0Kd2l0aCB0aGVpciBkeW5hbWlj YWxseSBzdXBwbGllZCBjb3VudGVycGFydHMuPGJyIGNsYXNzPSIiPg0KSXQgaXMgaW1wb3J0YW50 IHRoZW4gdG8gdHJhY2sgdGhlIGN1cnJlbnQgc3RhdGUgb2YgZXZlcnkgZnVuY3Rpb248YnIgY2xh c3M9IiI+DQpiZWluZyBwYXRjaGVkIGFuZCBwcmV2ZW50IHNpdHVhdGlvbnMgb2YgdW5pbnRlbnRp b25hbCBkb3VibGUtYXBwbHk8YnIgY2xhc3M9IiI+DQpvciB1bmFwcGxpZWQgcmV2ZXJ0LjxiciBj bGFzcz0iIj4NClRvIHN1cHBvcnQgdGhhdCwgaXQgaXMgbmVjZXNzYXJ5IHRvIGV4dGVuZCBwdWJs aWMgaW50ZXJmYWNlIG9mIHRoZTxiciBjbGFzcz0iIj4NCmxpdmVwYXRjaC4gVGhlIHN0cnVjdCBs aXZlcGF0Y2hfZnVuYyBnZXRzIGFkZGl0aW9uYWwgZmllbGQgaG9sZGluZzxiciBjbGFzcz0iIj4N CnRoZSBhcHBsaWVkL3JldmVydGVkIHN0YXRlIG1hcmtlci48YnIgY2xhc3M9IiI+DQpUbyByZWZs ZWN0IHRoZSBsaXZlcGF0Y2ggcGF5bG9hZCBBQkkgY2hhbmdlLCBidW1wIHRoZSB2ZXJzaW9uIGZs YWc8YnIgY2xhc3M9IiI+DQpMSVZFUEFUQ0hfUEFZTE9BRF9WRVJTSU9OIHVwIHRvIDIuPGJyIGNs YXNzPSIiPg0KVGhlIGFib3ZlIHNvbHV0aW9uIG9ubHkgYXBwbGllcyB0byB4ODYgYXJjaGl0ZWN0 dXJlIGZvciBub3cuPGJyIGNsYXNzPSIiPg0KU2lnbmVkLW9mZi1ieTogUGF3ZWwgV2llY3pvcmtp ZXdpY3ogJmx0OzxhIGhyZWY9Im1haWx0bzp3aXBhd2VsQGFtYXpvbi5kZSIgY2xhc3M9IiI+d2lw YXdlbEBhbWF6b24uZGU8L2E+Jmd0OzxiciBjbGFzcz0iIj4NClJldmlld2VkLWJ5OiBBbmRyYS1J cmluYSBQYXJhc2NoaXYgJmx0OzxhIGhyZWY9Im1haWx0bzphbmRyYXByc0BhbWF6b24uY29tIiBj bGFzcz0iIj5hbmRyYXByc0BhbWF6b24uY29tPC9hPiZndDs8YnIgY2xhc3M9IiI+DQpSZXZpZXdl ZC1ieTogQmpvZXJuIERvZWJlbCAmbHQ7PGEgaHJlZj0ibWFpbHRvOmRvZWJlbEBhbWF6b24uZGUi IGNsYXNzPSIiPmRvZWJlbEBhbWF6b24uZGU8L2E+Jmd0OzxiciBjbGFzcz0iIj4NClJldmlld2Vk LWJ5OiBNYXJ0aW4gUG9obGFjayAmbHQ7PGEgaHJlZj0ibWFpbHRvOm1wb2hsYWNrQGFtYXpvbi5k ZSIgY2xhc3M9IiI+bXBvaGxhY2tAYW1hem9uLmRlPC9hPiZndDs8YnIgY2xhc3M9IiI+DQotLS08 YnIgY2xhc3M9IiI+DQombmJzcDt4ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMgJm5ic3A7Jm5ic3A7 Jm5ic3A7fCAyMCAmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0Mzsm IzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOy08YnIgY2xh c3M9IiI+DQombmJzcDt4ZW4vY29tbW9uL2xpdmVwYXRjaC5jICZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwO3wgMzUgJiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYj NDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQz OyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0Mzsm IzQzOyYjNDM7JiM0MzsmIzQzOzxiciBjbGFzcz0iIj4NCiZuYnNwO3hlbi9pbmNsdWRlL3B1Ymxp Yy9zeXNjdGwuaCB8IDExICYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0Mzsm IzQzOyYjNDM7LTxiciBjbGFzcz0iIj4NCiZuYnNwO3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2gu aCB8ICZuYnNwOzIgJiM0MzstPGJyIGNsYXNzPSIiPg0KJm5ic3A7NCBmaWxlcyBjaGFuZ2VkLCA2 NSBpbnNlcnRpb25zKCYjNDM7KSwgMyBkZWxldGlvbnMoLSk8YnIgY2xhc3M9IiI+DQpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2xpdmVwYXRjaC5jIGIveGVuL2FyY2gveDg2L2xpdmVwYXRjaC5j PGJyIGNsYXNzPSIiPg0KaW5kZXggNDM2ZWU0MGZlMS4uNzZmYTkxYTA4MiAxMDA2NDQ8YnIgY2xh c3M9IiI+DQotLS0gYS94ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmM8YnIgY2xhc3M9IiI+DQomIzQz OyYjNDM7JiM0MzsgYi94ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmM8YnIgY2xhc3M9IiI+DQpAQCAt NjEsNiAmIzQzOzYxLDE0IEBAIHZvaWQgbm9pbmxpbmUgYXJjaF9saXZlcGF0Y2hfYXBwbHkoc3Ry dWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKTxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO2lmICggIWxlbiApPGJyIGNsYXNzPSIiPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuOzxiciBjbGFzcz0iIj4N CiZuYnNwOyYjNDM7ICZuYnNwOyZuYnNwOyZuYnNwOy8qIElmIHRoZSBhcHBseSBhY3Rpb24gaGFz IGJlZW4gYWxyZWFkeSBleGVjdXRlZCBvbiB0aGlzIGZ1bmN0aW9uLCBkbyBub3RoaW5nLi4uICov PGJyIGNsYXNzPSIiPg0KJiM0MzsgJm5ic3A7Jm5ic3A7Jm5ic3A7aWYgKCBmdW5jLSZndDthcHBs aWVkID09IExJVkVQQVRDSF9GVU5DX0FQUExJRUQgKTxiciBjbGFzcz0iIj4NCiYjNDM7ICZuYnNw OyZuYnNwOyZuYnNwO3s8YnIgY2xhc3M9IiI+DQomIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDtwcmludGsoWEVOTE9HX1dBUk5JTkcgTElWRVBBVENIICZxdW90 OyVzOiAlcyBoYXMgYmVlbiBhbHJlYWR5IGFwcGxpZWQgYmVmb3JlXG4mcXVvdDssPGJyIGNsYXNz PSIiPg0KJiM0MzsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7X19mdW5jX18sIGZ1 bmMtJmd0O25hbWUpOzxiciBjbGFzcz0iIj4NCiYjNDM7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybjs8YnIgY2xhc3M9IiI+DQomIzQzOyAmbmJzcDsmbmJz cDsmbmJzcDt9PGJyIGNsYXNzPSIiPg0KPC9ibG9ja3F1b3RlPg0KPGJyIGNsYXNzPSIiPg0KRG9l cyB0aGlzIG5lZWQgdG8gaW4gYXJjaCBzcGVjaWZpYyBjb2RlPzxiciBjbGFzcz0iIj4NCjwvZGl2 Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2PjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRp dj5BcyBhIG1hdHRlciBvZiBmYWN0IGl0IGRvZXMgbm90LjwvZGl2Pg0KPGRpdj5MZXQgbWUgZW5h YmxlIHRoaXMgZmVhdHVyZSBmb3IgQXJtIGFzIHdlbGwgYW5kIG1ha2UgdGhpcyBjb2RlIGEgY29t bW9uIGlubGluZS48L2Rpdj4NCjxiciBjbGFzcz0iIj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0K PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2xhc3M9IiI+JiM0Mzs8YnIgY2xhc3M9IiI+DQombmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDttZW1jcHkoZnVuYy0mZ3Q7b3BhcXVlLCBvbGRfcHRy LCBsZW4pOzxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lmICgg ZnVuYy0mZ3Q7bmV3X2FkZHIgKTxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO3s8YnIgY2xhc3M9IiI+DQpAQCAtNzcsMTUgJiM0Mzs4NSwyNSBAQCB2b2lkIG5vaW5s aW5lIGFyY2hfbGl2ZXBhdGNoX2FwcGx5KHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYyk8YnIg Y2xhc3M9IiI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDthZGRfbm9wcyhpbnNuLCBsZW4pOzxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO21lbWNweShvbGRfcHRyLCBpbnNuLCBsZW4pOzxi ciBjbGFzcz0iIj4NCiYjNDM7ICZuYnNwOyZuYnNwOyZuYnNwO2Z1bmMtJmd0O2FwcGxpZWQgPSBM SVZFUEFUQ0hfRlVOQ19BUFBMSUVEOzxiciBjbGFzcz0iIj4NCiZuYnNwO308YnIgY2xhc3M9IiI+ DQombmJzcDsmbmJzcDsmbmJzcDsvKjxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyogJnF1b3Q7 bm9pbmxpbmUmcXVvdDsgdG8gY2F1c2UgY29udHJvbCBmbG93IGNoYW5nZSBhbmQgdGh1cyBpbnZh bGlkYXRlIEkkIGFuZDxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyogY2F1c2UgcmVmZXRjaCBh ZnRlciBtb2RpZmljYXRpb24uPGJyIGNsYXNzPSIiPg0KJm5ic3A7Jm5ic3A7Ki88YnIgY2xhc3M9 IiI+DQotdm9pZCBub2lubGluZSBhcmNoX2xpdmVwYXRjaF9yZXZlcnQoY29uc3Qgc3RydWN0IGxp dmVwYXRjaF9mdW5jICpmdW5jKTxiciBjbGFzcz0iIj4NCiYjNDM7dm9pZCBub2lubGluZSBhcmNo X2xpdmVwYXRjaF9yZXZlcnQoc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKTxiciBjbGFzcz0i Ij4NCiZuYnNwO3s8YnIgY2xhc3M9IiI+DQomIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDsvKiBJZiB0 aGUgYXBwbHkgYWN0aW9uIGhhc24ndCBiZWVuIGV4ZWN1dGVkIG9uIHRoaXMgZnVuY3Rpb24sIGRv IG5vdGhpbmcuLi4gKi88YnIgY2xhc3M9IiI+DQomIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDtpZiAo ICFmdW5jLSZndDtvbGRfYWRkciB8fCBmdW5jLSZndDthcHBsaWVkID09IExJVkVQQVRDSF9GVU5D X05PVF9BUFBMSUVEICk8YnIgY2xhc3M9IiI+DQomIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDt7PGJy IGNsYXNzPSIiPg0KJiM0MzsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7cHJpbnRrKFhFTkxPR19XQVJOSU5HIExJVkVQQVRDSCAmcXVvdDslczogJXMgaGFzIG5vdCBi ZWVuIGFwcGxpZWQgYmVmb3JlXG4mcXVvdDssPGJyIGNsYXNzPSIiPg0KJiM0MzsgJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7X19mdW5jX18sIGZ1bmMtJmd0O25hbWUpOzxiciBjbGFz cz0iIj4NCiYjNDM7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Jl dHVybjs8YnIgY2xhc3M9IiI+DQomIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDt9PGJyIGNsYXNzPSIi Pg0KJiM0Mzs8YnIgY2xhc3M9IiI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDttZW1j cHkoZnVuYy0mZ3Q7b2xkX2FkZHIsIGZ1bmMtJmd0O29wYXF1ZSwgbGl2ZXBhdGNoX2luc25fbGVu KGZ1bmMpKTs8YnIgY2xhc3M9IiI+DQomIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDtmdW5jLSZndDth cHBsaWVkID0gTElWRVBBVENIX0ZVTkNfTk9UX0FQUExJRUQ7PGJyIGNsYXNzPSIiPg0KJm5ic3A7 fTxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyZuYnNwOy8qPGJyIGNsYXNzPSIiPg0KZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vbGl2ZXBhdGNoLmMgYi94ZW4vY29tbW9uL2xpdmVwYXRjaC5jPGJy IGNsYXNzPSIiPg0KaW5kZXggNTg1ZWM5ODE5YS4uMDkwYTQ4OTc3YiAxMDA2NDQ8YnIgY2xhc3M9 IiI+DQotLS0gYS94ZW4vY29tbW9uL2xpdmVwYXRjaC5jPGJyIGNsYXNzPSIiPg0KJiM0MzsmIzQz OyYjNDM7IGIveGVuL2NvbW1vbi9saXZlcGF0Y2guYzxiciBjbGFzcz0iIj4NCkBAIC0xMjQyLDYg JiM0MzsxMjQyLDI5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCByZXZlcnRfcGF5bG9hZF90YWlsKHN0 cnVjdCBwYXlsb2FkICpkYXRhKTxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwO2RhdGEtJmd0O3N0YXRlID0gTElWRVBBVENIX1NUQVRFX0NIRUNLRUQ7PGJyIGNsYXNz PSIiPg0KJm5ic3A7fTxiciBjbGFzcz0iIj4NCiZuYnNwOyYjNDM7Lyo8YnIgY2xhc3M9IiI+DQom IzQzOyAqIENoZWNrIGlmIGFuIGFjdGlvbiBoYXMgYXBwbGllZCB0aGUgc2FtZSBzdGF0ZSB0byBh bGwgcGF5bG9hZCdzIGZ1bmN0aW9ucyBjb25zaXN0ZW50bHkuPGJyIGNsYXNzPSIiPg0KJiM0Mzsg Ki88YnIgY2xhc3M9IiI+DQomIzQzO3N0YXRpYyBpbmxpbmUgYm9vbCB3YXNfYWN0aW9uX2NvbnNp c3RlbnQoY29uc3Qgc3RydWN0IHBheWxvYWQgKmRhdGEsIGxpdmVwYXRjaF9mdW5jX3N0YXRlX3Qg ZXhwZWN0ZWRfc3RhdGUpPGJyIGNsYXNzPSIiPg0KJiM0Mzt7PGJyIGNsYXNzPSIiPg0KJiM0Mzsg Jm5ic3A7Jm5ic3A7Jm5ic3A7aW50IGk7PGJyIGNsYXNzPSIiPg0KJiM0Mzs8YnIgY2xhc3M9IiI+ DQomIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDtmb3IgKCBpID0gMDsgaSAmbHQ7IGRhdGEtJmd0O25m dW5jczsgaSYjNDM7JiM0MzsgKTxiciBjbGFzcz0iIj4NCiYjNDM7ICZuYnNwOyZuYnNwOyZuYnNw O3s8YnIgY2xhc3M9IiI+DQomIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDtzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmYgPSAmYW1wOyhkYXRhLSZndDtmdW5jc1tp XSk7PGJyIGNsYXNzPSIiPg0KJiM0Mzs8YnIgY2xhc3M9IiI+DQomIzQzOyAmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiAoIGYtJmd0O2FwcGxpZWQgIT0gZXhwZWN0 ZWRfc3RhdGUgKTxiciBjbGFzcz0iIj4NCjwvYmxvY2txdW90ZT4NCjxiciBjbGFzcz0iIj4NClBl ciB0aGUgZGVmaW5pdGlvbiBvZiBsaXZlcGF0aF9mdW5jLCB0aGUgZmllbGQgJnF1b3Q7YXBwbGll ZCZxdW90OyBvbmx5IGV4aXN0cyBmb3IgeDg2LiBTbyB0aGlzIHdpbGwgbm90IGNvbXBpbGVkIG9u IEFybS48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48 YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXY+SSB3aWxsIGVuYWJsZSBBcm0gdG9vLjwvZGl2Pg0K PGJyIGNsYXNzPSIiPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2xhc3M9IiI+DQo8ZGl2IGNs YXNzPSIiPg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8YmxvY2txdW90ZSB0eXBlPSJj aXRlIiBjbGFzcz0iIj4mIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDt7PGJyIGNsYXNzPSIiPg0KJiM0MzsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cHJpbnRrKFhFTkxPR19FUlIgTElW RVBBVENIICZxdW90OyVzOiBQYXlsb2FkIGhhcyBhIGZ1bmN0aW9uOiAnJXMnIHdpdGggaW5jb25z aXN0ZW50IGFwcGxpZWQgc3RhdGUuXG4mcXVvdDssPGJyIGNsYXNzPSIiPg0KJiM0MzsgJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZGF0YS0mZ3Q7bmFt ZSwgZi0mZ3Q7bmFtZSA/OiAmcXVvdDtub25hbWUmcXVvdDspOzxiciBjbGFzcz0iIj4NCiYjNDM7 PGJyIGNsYXNzPSIiPg0KJiM0MzsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmV0dXJuIGZhbHNlOzxiciBjbGFzcz0iIj4N CiYjNDM7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO308YnIgY2xh c3M9IiI+DQomIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDt9PGJyIGNsYXNzPSIiPg0KJiM0Mzs8YnIg Y2xhc3M9IiI+DQomIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gdHJ1ZTs8YnIgY2xhc3M9 IiI+DQomIzQzO308YnIgY2xhc3M9IiI+DQomIzQzOzxiciBjbGFzcz0iIj4NCiZuYnNwOy8qPGJy IGNsYXNzPSIiPg0KJm5ic3A7Jm5ic3A7KiBUaGlzIGZ1bmN0aW9uIGlzIGV4ZWN1dGVkIGhhdmlu ZyBhbGwgb3RoZXIgQ1BVcyB3aXRoIG5vIGRlZXAgc3RhY2sgKHdlIG1heTxiciBjbGFzcz0iIj4N CiZuYnNwOyZuYnNwOyogaGF2ZSBjcHVfaWRsZSBvbiBpdCkgYW5kIElSUXMgZGlzYWJsZWQuPGJy IGNsYXNzPSIiPg0KQEAgLTEyNjgsNiAmIzQzOzEyOTEsOSBAQCBzdGF0aWMgdm9pZCBsaXZlcGF0 Y2hfZG9fYWN0aW9uKHZvaWQpPGJyIGNsYXNzPSIiPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZWxzZTxiciBjbGFzcz0iIj4NCiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwO3JjID0gYXBwbHlfcGF5bG9hZChkYXRhKTs8YnIgY2xhc3M9IiI+DQombmJz cDsmIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiAoICF3 YXNfYWN0aW9uX2NvbnNpc3RlbnQoZGF0YSwgcmMgPyBMSVZFUEFUQ0hfRlVOQ19OT1RfQVBQTElF RCA6IExJVkVQQVRDSF9GVU5DX0FQUExJRUQpICk8YnIgY2xhc3M9IiI+DQo8L2Jsb2NrcXVvdGU+ DQo8YnIgY2xhc3M9IiI+DQpSZWdhcmRsZXNzIHRoZSBjb21waWxhdGlvbiBpc3N1ZSBhYm92ZSwg bm9uZSBvZiB0aGUgY29tbW9uIGNvZGUgd2lsbCBzZXQgdGhlIHN0YXRlLiBTbyBmb3IgQXJtLCB0 aGlzIHdvdWxkIGxpa2VseSBtZWFuIHRoZSBmdW5jdGlvbiByZXR1cm4gZmFsc2UuPGJyIGNsYXNz PSIiPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+PGJyIGNsYXNzPSIiPg0K PC9kaXY+DQo8ZGl2PlRydWUsIEkgc2hvdWxkIGhhdmUgZGlzYWJsZWQgdGhpcyBjb2RlIGZvciBB cm0gdG9vLjwvZGl2Pg0KPGRpdj5CdXQgbm93LCBsZXQgbWUganVzdCBtYWtlIGl0IGNvbW1vbiBm b3IgYWxsIGFyY2hzLjwvZGl2Pg0KPGJyIGNsYXNzPSIiPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0 ZSIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+ DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBjbGFzcz0iIj4mIzQzOyAmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwYW5pYygm cXVvdDtsaXZlcGF0Y2g6IHBhcnRpYWxseSBhcHBsaWVkIHBheWxvYWQgJyVzJyFcbiZxdW90Oywg ZGF0YS0mZ3Q7bmFtZSk7PGJyIGNsYXNzPSIiPg0KPC9ibG9ja3F1b3RlPg0KPGJyIGNsYXNzPSIi Pg0KSSBjYW4gc2VlIGF0IGxlYXN0IGEgY2FzZSB3aGVyZSB0aGUgcGFuaWMgY2FuIGJlIHJlYWNo ZWQgaGVyZS4gUGVyIHRoZSBjaGFuZ2VzIGluIGFyY2hfbGl2ZXBhdGNoX2FwcGx5KCksIGYtJmd0 O2FwcGxpZWQgd2lsbCBvbmx5IGJlIHNldCB0byBMSVZFUEFUQ0hfRlVOQ19BUFBMSUVEIGlmIGxp dmVwYXRjaF9pbnNuX2xlbigpIGlzIG5vdCAwLjxiciBjbGFzcz0iIj4NCjxiciBjbGFzcz0iIj4N CkkgZG9uJ3Qga25vdyB3aGV0aGVyIGxpdmVwYXRjaF9pbnNuX2xlbigpIGNhbiBldmVyIHJldHVy biAwIGFzIG15IGxpdmVwYXRjaCBrbm93bGVkZ2UgaXMgbGltaXRlZC4gQnV0IHRoZSBjb2RlIGxp dmUgbGl0dGxlIGRvdWJ0IHRoaXMgaXMgYSB0aGVvcml0aWNhbCBwb3NzaWJpbGl0eSB0aGF0IGFm dGVyIHRoaXMgcGF0Y2ggd2lsbCB0dXJuIGludG8gY3Jhc2hpbmcgWGVuLjxiciBjbGFzcz0iIj4N CjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2PjxiciBj bGFzcz0iIj4NCjwvZGl2Pg0KPGRpdj5JIHN1cHBvc2UgdGhlIGxpdmVwYXRjaF9pbnNuX2xlbigp IHJldHVybmluZyAwIChpLmUuIGZ1bmMtJmd0O25ld19zaXplIGJlaW5nIDAsIHdoaWNoIGlzIHZh bGlkIEFGQUlDUykgaXMgdGhlIHRvLWJlLWltcGxlbWVudGVkIGZlYXR1cmUgb2Ygbm9waW5nIG91 dCBjb2RlOjwvZGl2Pg0KPGRpdj5Gcm9tIHRoZSBsaXZlcGF0Y2ggZG9jOjwvZGl2Pg0KPGRpdj4N CjxkaXY+JnF1b3Q7JnF1b3Q7JnF1b3Q7PC9kaXY+DQo8ZGl2PiMjIFRPRE8gR29hbHM8L2Rpdj4N CjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+Jm5ic3A7 KiBOT1Agb3V0IHRoZSBjb2RlIHNlcXVlbmNlIGlmIGBuZXdfc2l6ZWAgaXMgemVyby48L2Rpdj4N CiZxdW90OyZxdW90OyZxdW90OzwvZGl2Pg0KPGRpdj5TbywgaW4gdGhlb3J5IGl0IGNhbiBiZSAw IChpdCBoYXMgdG8gYmUgaW50cm9kdWNlZCB0byB0aGUgbGl2ZXBhdGNoLmZ1bmNzKS4gVGh1cywg eW914oCZcmUgcmlnaHQuPC9kaXY+DQo8ZGl2PjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdj5J IHdpbGwgZml4IHRoYXQsIGJ1dCBtYXJraW5nIHN1Y2ggZnVuY3Rpb24gKG5ld19zaXplPT0wKSBh cyBhcHBsaWVkLjwvZGl2Pg0KPGRpdj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXY+VGhhbmtz ISZuYnNwOzwvZGl2Pg0KPGRpdj48YnIgY2xhc3M9IiI+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRl IiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPk1vcmUgZ2VuZXJhbGx5 LCBJIGFtIG5vdCB2ZXJ5IGNvbWZvcnRhYmxlIHRvIHNlZSBwYW5pYygpIGluIHRoZSBtaWRkbGUg b2YgdGhlIGNvZGUuIENvdWxkIHlvdSBleHBsYWluIHdoeSBwYW5pYyBpcyB0aGUgYmVzdCBzb2x1 dGlvbiBvdmVyIHJldmVydGluZyB0aGUgd29yaz88YnIgY2xhc3M9IiI+DQo8YnIgY2xhc3M9IiI+ DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48YnIgY2xhc3M9IiI+DQo8L2Rp dj4NCjxkaXY+WWVzLiBQcm9kdWN0aW9uLXJlYWR5IGhvdHBhdGNoZXMgbXVzdCBub3QgY29udGFp biBpbmNvbnNpc3RlbnQgaG9va3Mgb3IgZnVuY3Rpb25zLXRvLWJlLWFwcGxpZWQvcmV2ZXJ0ZWQu PC9kaXY+DQo8ZGl2PlRoZSBnb2FsIGhlcmUgaXMgdG8gZGV0ZWN0IHN1Y2ggaG90cGF0Y2hlcyBh bmQgZmFpbCBoYXJkIGltbWVkaWF0ZWx5IGhpZ2hsaWdodGluZyB0aGUgZmFjdCB0aGF0IHN1Y2gg aG90cGF0Y2g8L2Rpdj4NCjxkaXY+aXMgYnJva2VuLjwvZGl2Pg0KPGRpdj48YnIgY2xhc3M9IiI+ DQo8L2Rpdj4NCjxkaXY+VGhlIGluY29uc2lzdGVudCBhcHBsaWNhdGlvbiBvZiBhIGhvdHBhdGNo IChzb21lIGZ1bmN0aW9uIGFwcGxpZWQsIHNvbWUgcmV2ZXJ0ZWQgd2hpbGUgb3RoZXIgbGVmdCBi ZWhpbmVkKSBsZWF2ZXM8L2Rpdj4NCjxkaXY+dGhlIHN5c3RlbSBpbiBhIHZlcnkgYmFkIHN0YXRl LiBJIHRoaW5rIHRoZSBiZXN0IHdoYXQgd2UgY291bGQgZG8gaGVyZSBpcyBwYW5pYygpIHRvIGVu YWJsZSBwb3N0LW1vcnRlbSBhbmFseXNpczwvZGl2Pg0KPGRpdj5vZiB3aGF0IHdlbnQgd3Jvbmcg YW5kIGF2b2lkIGxlYWtpbmcgc3VjaCBzeXN0ZW0gaW50byBwcm9kdWN0aW9uLjwvZGl2Pg0KPGRp dj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXY+TWlzLWRldGVjdGluZyBzdWNoIGNvbmRpdGlv bnMgYW5kIGxlYXZpbmcgc3VjaCBpbmNvbnNpc3RlbnQgc3lzdGVtIHJ1bm5pbmcgaXMgYSB2ZXJ5 IGJhZCBpZGVhLiZuYnNwOzwvZGl2Pg0KPGJyIGNsYXNzPSIiPg0KPGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj5NeSBxdWVzdGlv biBhcHBsaWVzIGZvciBhbGwgdGhlIG90aGVyIHBhbmljKCkgYmVsb3cuPGJyIGNsYXNzPSIiPg0K PGJyIGNsYXNzPSIiPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2xhc3M9IiI+JiM0Mzs8YnIg Y2xhc3M9IiI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDtpZiAoIHJjID09IDAgKTxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O2FwcGx5X3BheWxvYWRfdGFpbChkYXRhKTs8YnIgY2xhc3M9IiI+DQombmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDticmVhazs8YnIgY2xhc3M9IiI+ DQpAQCAtMTI4Miw2ICYjNDM7MTMwOCw5IEBAIHN0YXRpYyB2b2lkIGxpdmVwYXRjaF9kb19hY3Rp b24odm9pZCk8YnIgY2xhc3M9IiI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDtlbHNlPGJyIGNsYXNzPSIiPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7cmMgPSByZXZlcnRfcGF5bG9hZChkYXRhKTs8YnIgY2xhc3M9IiI+DQombmJzcDsmIzQzOyAm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiAoICF3YXNfYWN0aW9u X2NvbnNpc3RlbnQoZGF0YSwgcmMgPyBMSVZFUEFUQ0hfRlVOQ19BUFBMSUVEIDogTElWRVBBVENI X0ZVTkNfTk9UX0FQUExJRUQpICk8YnIgY2xhc3M9IiI+DQomIzQzOyAmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwYW5pYygm cXVvdDtsaXZlcGF0Y2g6IHBhcnRpYWxseSByZXZlcnRlZCBwYXlsb2FkICclcychXG4mcXVvdDss IGRhdGEtJmd0O25hbWUpOzxiciBjbGFzcz0iIj4NCiYjNDM7PGJyIGNsYXNzPSIiPg0KJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgKCByYyA9 PSAwICk8YnIgY2xhc3M9IiI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXZlcnRfcGF5bG9hZF90 YWlsKGRhdGEpOzxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwO2JyZWFrOzxiciBjbGFzcz0iIj4NCkBAIC0xMzA0LDYgJiM0 MzsxMzMzLDkgQEAgc3RhdGljIHZvaWQgbGl2ZXBhdGNoX2RvX2FjdGlvbih2b2lkKTxiciBjbGFz cz0iIj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO290aGVy LSZndDtyYyA9IHJldmVydF9wYXlsb2FkKG90aGVyKTs8YnIgY2xhc3M9IiI+DQombmJzcDsmbmJz cDsmbmJzcDsmIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiAoICF3YXNfYWN0aW9uX2NvbnNpc3RlbnQob3RoZXIs IHJjID8gTElWRVBBVENIX0ZVTkNfQVBQTElFRCA6IExJVkVQQVRDSF9GVU5DX05PVF9BUFBMSUVE KSApPGJyIGNsYXNzPSIiPg0KJiM0MzsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 cGFuaWMoJnF1b3Q7bGl2ZXBhdGNoOiBwYXJ0aWFsbHkgcmV2ZXJ0ZWQgcGF5bG9hZCAnJXMnIVxu JnF1b3Q7LCBvdGhlci0mZ3Q7bmFtZSk7PGJyIGNsYXNzPSIiPg0KJiM0Mzs8YnIgY2xhc3M9IiI+ DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiAoIG90aGVyLSZndDtyYyA9PSAwICk8YnIgY2xhc3M9 IiI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXZlcnRf cGF5bG9hZF90YWlsKG90aGVyKTs8YnIgY2xhc3M9IiI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtl bHNlPGJyIGNsYXNzPSIiPg0KQEAgLTEzMjQsNiAmIzQzOzEzNTYsOSBAQCBzdGF0aWMgdm9pZCBs aXZlcGF0Y2hfZG9fYWN0aW9uKHZvaWQpPGJyIGNsYXNzPSIiPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7ZWxzZTxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwO3JjID0gYXBwbHlfcGF5bG9hZChkYXRhKTs8YnIgY2xhc3M9IiI+DQombmJzcDsm IzQzOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDtpZiAoICF3YXNfYWN0aW9uX2NvbnNpc3RlbnQoZGF0YSwgcmMgPyBMSVZF UEFUQ0hfRlVOQ19OT1RfQVBQTElFRCA6IExJVkVQQVRDSF9GVU5DX0FQUExJRUQpICk8YnIgY2xh c3M9IiI+DQomIzQzOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwYW5pYygmcXVv dDtsaXZlcGF0Y2g6IHBhcnRpYWxseSBhcHBsaWVkIHBheWxvYWQgJyVzJyFcbiZxdW90OywgZGF0 YS0mZ3Q7bmFtZSk7PGJyIGNsYXNzPSIiPg0KJiM0Mzs8YnIgY2xhc3M9IiI+DQombmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtpZiAoIHJjID09IDAgKTxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2FwcGx5X3BheWxvYWRfdGFpbChkYXRhKTs8YnIg Y2xhc3M9IiI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDt9PGJyIGNsYXNzPSIiPg0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9z eXNjdGwuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaDxiciBjbGFzcz0iIj4NCmluZGV4 IDFiMmIxNjVhNmQuLmI1NWFkNmQwNTAgMTAwNjQ0PGJyIGNsYXNzPSIiPg0KLS0tIGEveGVuL2lu Y2x1ZGUvcHVibGljL3N5c2N0bC5oPGJyIGNsYXNzPSIiPg0KJiM0MzsmIzQzOyYjNDM7IGIveGVu L2luY2x1ZGUvcHVibGljL3N5c2N0bC5oPGJyIGNsYXNzPSIiPg0KQEAgLTgxOCw3ICYjNDM7ODE4 LDcgQEAgc3RydWN0IHhlbl9zeXNjdGxfY3B1X2ZlYXR1cmVzZXQgezxiciBjbGFzcz0iIj4NCiZu YnNwOyZuYnNwOyogJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SWYgemVybyBleGl0IHdpdGggc3Vj Y2Vzcy48YnIgY2xhc3M9IiI+DQombmJzcDsmbmJzcDsqLzxiciBjbGFzcz0iIj4NCiZuYnNwOy0j ZGVmaW5lIExJVkVQQVRDSF9QQVlMT0FEX1ZFUlNJT04gMTxiciBjbGFzcz0iIj4NCiYjNDM7I2Rl ZmluZSBMSVZFUEFUQ0hfUEFZTE9BRF9WRVJTSU9OIDI8YnIgY2xhc3M9IiI+DQombmJzcDsvKjxi ciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNwOyogLmxpdmVwYXRjaC5mdW5jcyBzdHJ1Y3R1cmUgbGF5 b3V0IGRlZmluZWQgaW4gdGhlIGBQYXlsb2FkIGZvcm1hdGA8YnIgY2xhc3M9IiI+DQombmJzcDsm bmJzcDsqIHNlY3Rpb24gaW4gdGhlIExpdmUgUGF0Y2ggZGVzaWduIGRvY3VtZW50LjxiciBjbGFz cz0iIj4NCkBAIC04MjYsNiAmIzQzOzgyNiwxMSBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVfZmVh dHVyZXNldCB7PGJyIGNsYXNzPSIiPg0KJm5ic3A7Jm5ic3A7KiBXZSBndWFyZCB0aGlzIHdpdGgg X19YRU5fXyBhcyB0b29sc3RhY2tzIFNIT1VMRCBub3QgdXNlIGl0LjxiciBjbGFzcz0iIj4NCiZu YnNwOyZuYnNwOyovPGJyIGNsYXNzPSIiPg0KJm5ic3A7I2lmZGVmIF9fWEVOX188YnIgY2xhc3M9 IiI+DQomIzQzO3R5cGVkZWYgZW51bSBsaXZlcGF0Y2hfZnVuY19zdGF0ZSB7PGJyIGNsYXNzPSIi Pg0KJiM0MzsgJm5ic3A7Jm5ic3A7Jm5ic3A7TElWRVBBVENIX0ZVTkNfTk9UX0FQUExJRUQgPSAw LDxiciBjbGFzcz0iIj4NCiYjNDM7ICZuYnNwOyZuYnNwOyZuYnNwO0xJVkVQQVRDSF9GVU5DX0FQ UExJRUQgPSAxPGJyIGNsYXNzPSIiPg0KPC9ibG9ja3F1b3RlPg0KPGJyIGNsYXNzPSIiPg0KQUZB SUssIGVudW0gd2lsbCBhbHdheXMgc3RhcnQgY291bnRpbmcgZnJvbSAwLCBzbyBpcyBpdCByZWFs bHkgbmVjZXNzYXJ5IHRvIHNwZWNpZnkgdGhlIGV4YWN0IHZhbHVlcz88YnIgY2xhc3M9IiI+DQo8 L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4N CjxkaXY+SXTigJlzIHByb2JhYmx5IG15IChvciBzb21lIGVhcmxpZXIgcmV2aWV3ZXIncykgT0NE LiBJIGFtIGhhcHB5IHRvIHJlbW92ZSB0aGVzZS48L2Rpdj4NCjxiciBjbGFzcz0iIj4NCjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgY2xhc3M9 IiI+PGJyIGNsYXNzPSIiPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2xhc3M9IiI+JiM0Mzt9 IGxpdmVwYXRjaF9mdW5jX3N0YXRlX3Q7PGJyIGNsYXNzPSIiPg0KJiM0Mzs8YnIgY2xhc3M9IiI+ DQombmJzcDtzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgezxiciBjbGFzcz0iIj4NCiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO2NvbnN0IGNoYXIgKm5hbWU7ICZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOy8qIE5hbWUgb2YgZnVuY3Rpb24gdG8gYmUgcGF0Y2hlZC4gKi88YnIg Y2xhc3M9IiI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt2b2lkICpuZXdfYWRkcjs8 YnIgY2xhc3M9IiI+DQpAQCAtODM0LDYgJiM0Mzs4MzksMTAgQEAgc3RydWN0IGxpdmVwYXRjaF9m dW5jIHs8YnIgY2xhc3M9IiI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt1aW50MzJf dCBvbGRfc2l6ZTs8YnIgY2xhc3M9IiI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt1 aW50OF90IHZlcnNpb247ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw Oy8qIE1VU1QgYmUgTElWRVBBVENIX1BBWUxPQURfVkVSU0lPTi4gKi88YnIgY2xhc3M9IiI+DQom bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt1aW50OF90IG9wYXF1ZVszMV07PGJyIGNsYXNz PSIiPg0KJiM0MzsjaWYgZGVmaW5lZCBDT05GSUdfWDg2PGJyIGNsYXNzPSIiPg0KJiM0MzsgJm5i c3A7Jm5ic3A7Jm5ic3A7dWludDhfdCBhcHBsaWVkOzxiciBjbGFzcz0iIj4NCiYjNDM7ICZuYnNw OyZuYnNwOyZuYnNwO3VpbnQ4X3QgX3BhZFs3XTs8YnIgY2xhc3M9IiI+DQomIzQzOyNlbmRpZjxi ciBjbGFzcz0iIj4NCjwvYmxvY2txdW90ZT4NCjxiciBjbGFzcz0iIj4NCkFib3ZlLCB5b3UgaW5j cmVhc2UgdGhlIHZlcnNpb24gb2YgdGhlIHBheWxvYWQgaGVyZSBldmVuIGZvciBBcm0gd2hlbiB0 aGVyZSBhcmUgbm8gbW9kaWZpY2F0aW9uIGluIEFybS4gVGhpcyByYWlzZXMgdGhlIHF1ZXN0aW9u IG9uIHdoZXRoZXIgd2Ugd291bGQgbmVlZCB0byBpbmNyZWFzZSB0aGUgdmVyc2lvbiB3aGVuIEFy bSBpcyBnb2luZyB0byBiZSBzdXBwb3J0ZWQ/PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8L2Rpdj4N CjwvYmxvY2txdW90ZT4NCjxkaXY+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2PkkgdGhpbmsg dGhlIGJlc3Qgd2F5IGZvcndhcmQgaXMgdG8gYWRkIEFybSBzdXBwb3J0LjwvZGl2Pg0KPGRpdj5U aGlzIGZlYXR1cmUgaXMgc2ltcGxlIGVub3VnaCBhbmQgaXQgZG9lcyBub3QgbWFrZSBtdWNoIHNl bnNlIHRvIGNvbXBsaWNhdGUgaXQgYnkgYWRkaW5nIHN1cHBvcnQgc3BhZ2hldHRpLjwvZGl2Pg0K PGJyIGNsYXNzPSIiPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2xhc3M9IiI+DQo8ZGl2IGNs YXNzPSIiPg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8YmxvY2txdW90ZSB0eXBlPSJj aXRlIiBjbGFzcz0iIj4mbmJzcDt9OzxiciBjbGFzcz0iIj4NCiZuYnNwO3R5cGVkZWYgc3RydWN0 IGxpdmVwYXRjaF9mdW5jIGxpdmVwYXRjaF9mdW5jX3Q7PGJyIGNsYXNzPSIiPg0KJm5ic3A7I2Vu ZGlmPGJyIGNsYXNzPSIiPg0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2gu aCBiL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaDxiciBjbGFzcz0iIj4NCmluZGV4IDJhZWM1 MzJlZTIuLmE5MzEyNmY2MzEgMTAwNjQ0PGJyIGNsYXNzPSIiPg0KLS0tIGEveGVuL2luY2x1ZGUv eGVuL2xpdmVwYXRjaC5oPGJyIGNsYXNzPSIiPg0KJiM0MzsmIzQzOyYjNDM7IGIveGVuL2luY2x1 ZGUveGVuL2xpdmVwYXRjaC5oPGJyIGNsYXNzPSIiPg0KQEAgLTExNyw3ICYjNDM7MTE3LDcgQEAg aW50IGFyY2hfbGl2ZXBhdGNoX3F1aWVzY2Uodm9pZCk7PGJyIGNsYXNzPSIiPg0KJm5ic3A7dm9p ZCBhcmNoX2xpdmVwYXRjaF9yZXZpdmUodm9pZCk7PGJyIGNsYXNzPSIiPg0KJm5ic3A7Jm5ic3A7 Jm5ic3A7dm9pZCBhcmNoX2xpdmVwYXRjaF9hcHBseShzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1 bmMpOzxiciBjbGFzcz0iIj4NCi12b2lkIGFyY2hfbGl2ZXBhdGNoX3JldmVydChjb25zdCBzdHJ1 Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpOzxiciBjbGFzcz0iIj4NCiYjNDM7dm9pZCBhcmNoX2xp dmVwYXRjaF9yZXZlcnQoc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKTs8YnIgY2xhc3M9IiI+ DQombmJzcDt2b2lkIGFyY2hfbGl2ZXBhdGNoX3Bvc3RfYWN0aW9uKHZvaWQpOzxiciBjbGFzcz0i Ij4NCiZuYnNwOyZuYnNwOyZuYnNwO3ZvaWQgYXJjaF9saXZlcGF0Y2hfbWFzayh2b2lkKTs8YnIg Y2xhc3M9IiI+DQo8L2Jsb2NrcXVvdGU+DQo8YnIgY2xhc3M9IiI+DQpDaGVlcnMsPGJyIGNsYXNz PSIiPg0KPGJyIGNsYXNzPSIiPg0KLS0gPGJyIGNsYXNzPSIiPg0KSnVsaWVuIEdyYWxsPGJyIGNs YXNzPSIiPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPGJyIGNsYXNz PSIiPg0KPGRpdiBjbGFzcz0iIj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBi cmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IGxpbmUtYnJlYWs6IGFmdGVyLXdo aXRlLXNwYWNlOyIgY2xhc3M9IiI+DQo8ZGl2IHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAs IDApOyBjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXNp emU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsg Zm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjog c3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFj ZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDog MHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ij4NCkJlc3QgUmVnYXJkcyw8YnIgY2xhc3M9IiI+ DQpQYXdlbCBXaWVjem9ya2lld2ljejwvZGl2Pg0KPGJyIGNsYXNzPSJBcHBsZS1pbnRlcmNoYW5n ZS1uZXdsaW5lIj4NCjwvZGl2Pg0KPGJyIGNsYXNzPSJBcHBsZS1pbnRlcmNoYW5nZS1uZXdsaW5l Ij4NCjwvZGl2Pg0KPGJyIGNsYXNzPSIiPg0KPGJyPjxicj48YnI+QW1hem9uIERldmVsb3BtZW50 IENlbnRlciBHZXJtYW55IEdtYkgKPGJyPktyYXVzZW5zdHIuIDM4Cjxicj4xMDExNyBCZXJsaW4K PGJyPkdlc2NoYWVmdHNmdWVocnVuZzogQ2hyaXN0aWFuIFNjaGxhZWdlciwgUmFsZiBIZXJicmlj aAo8YnI+RWluZ2V0cmFnZW4gYW0gQW10c2dlcmljaHQgQ2hhcmxvdHRlbmJ1cmcgdW50ZXIgSFJC IDE0OTE3MyBCCjxicj5TaXR6OiBCZXJsaW4KPGJyPlVzdC1JRDogREUgMjg5IDIzNyA4NzkKPGJy Pjxicj48YnI+CjwvYm9keT4NCjwvaHRtbD4NCg== --_000_DB27F58EDA274A5DBE234CDB5D9736A2amazoncom_-- --===============5868951538797878359== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== --===============5868951538797878359==--