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=-18.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS 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 934C3C433E6 for ; Mon, 1 Mar 2021 07:13:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4FDC464DDC for ; Mon, 1 Mar 2021 07:13:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232409AbhCAHNL (ORCPT ); Mon, 1 Mar 2021 02:13:11 -0500 Received: from smtp24.hk.chengmail.me ([113.10.190.40]:52626 "EHLO smtp24.hk.chengmail.me" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232394AbhCAHMt (ORCPT ); Mon, 1 Mar 2021 02:12:49 -0500 X-CHENGMAILHOST: 113.10.190.40 X-CHENGMAIL-INSTANCEID: 3d87.603c93b9.a8e57.0 Date: Mon, 1 Mar 2021 15:11:54 +0800 From: "lilinchao@oschina.cn" To: "Li Linchao via GitGitGadget" , git Cc: "Junio C Hamano" , "Derrick Stolee" , dscho Subject: Re: [PATCH v5] builtin/clone.c: add --reject-shallow option References: , X-Priority: 3 X-Has-Attach: no X-Mailer: Foxmail 7.2.19.158[cn] Mime-Version: 1.0 X-source-message-id: <2021030115115426563054@oschina.cn> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID: <697bdaee7a5d11eb919e0026b95c99cc@oschina.cn> Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org CgoKLS0tLS0tLS0tLS0tLS0KbGlsaW5jaGFvQG9zY2hpbmEuY24KPkZyb206IGxpbGluY2hhbyA8 bGlsaW5jaGFvQG9zY2hpbmEuY24+Cj4KPkluIHNvbWUgc2NlbmFyaW9zLCB1c2VycyBtYXkgd2Fu dCBtb3JlIGhpc3RvcnkgdGhhbiB0aGUgcmVwb3NpdG9yeQo+b2ZmZXJlZCBmb3IgY2xvbmluZywg d2hpY2ggaGFwcGVucyB0byBiZSBhIHNoYWxsb3cgcmVwb3NpdG9yeSwgY2FuCj5naXZlIHRoZW0u IEJ1dCBiZWNhdXNlIHVzZXJzIGRvbid0IGtub3cgaXQgaXMgYSBzaGFsbG93IHJlcG9zaXRvcnkK PnVudGlsIHRoZXkgZG93bmxvYWQgaXQgdG8gbG9jYWwsIHVzZXJzIHNob3VsZCBoYXZlIHRoZSBv cHRpb24gdG8KPnJlZnVzZSB0byBjbG9uZSB0aGlzIGtpbmQgb2YgcmVwb3NpdG9yeSwgYW5kIG1h eSB3YW50IHRvIGV4aXQgdGhlCj5wcm9jZXNzIGltbWVkaWF0ZWx5IHdpdGhvdXQgY3JlYXRpbmcg YW55IHVubmVjZXNzYXJ5IGZpbGVzLgo+Cj5BbHRob3VnaHQgdGhlcmUgaXMgYW4gb3B0aW9uICct LWRlcHRoPXgnIGZvciB1c2VycyB0byBkZWNpZGUgaG93Cj5kZWVwIGhpc3RvcnkgdGhleSBjYW4g ZmV0Y2gsIGJ1dCBhcyB0aGUgdW5zaGFsbG93IGNsb25pbmcncyBkZXB0aAo+aXMgSU5GSU5JVFks IHdlIGNhbid0IGtub3cgZXhhY3RseSB0aGUgbWluaW11biAneCcgdmFsdWUgdGhhdCBjYW4KPnNh dGlzZnkgdGhlIG1pbmltdW0gaW50ZWdyaXR5LCBzbyB3ZSBjYW4ndCBwYXNzICd4JyB2YWx1ZSB0 byAtLWRlcHRoLAo+YW5kIGV4cGVjdCB0aGlzIGNhbiBvYnRhaW4gYSBjb21wbGV0ZSBoaXN0b3J5 IG9mIGEgcmVwb3NpdG9yeS4KPgo+SW4gb3RoZXIgc2NlbmFyaW9zLCBpZiB3ZSBoYXZlIGFuIEFQ SSB0aGF0IGFsbG93IHVzIHRvIGltcG9ydCBleHRlcm5hbAo+cmVwb3NpdG9yeSwgYW5kIHRoZW4g cGVyZm9ybSB2YXJpb3VzIG9wZXJhdGlvbnMgb24gdGhlIHJlcG8uCj5CdXQgaWYgdGhlIGltcG9y dGVkIGlzIGEgc2hhbGxvdyBvbmUod2hpY2ggaXMgYWN0dWFsbHkgcG9zc2libGUpLCBpdAo+d2ls bCBhZmZlY3QgdGhlIHN1YnNlcXVlbnQgb3BlcmF0aW9ucy4gU28gd2UgY2FuIGNob29zZSB0byBy ZWZ1c2UgdG8KPmNsb25lLCBhbmQgbGV0J3MganVzdCBpbXBvcnQgYSBub3JtYWwgcmVwb3NpdG9y eS4KPgo+VGhpcyBwYXRjaCBvZmZlcnMgYSBuZXcgb3B0aW9uICctLXJlamVjdC1zaGFsbG93JyB0 aGF0IGNhbiByZWplY3QgdG8KPmNsb25lIGEgc2hhbGxvdyByZXBvc2l0b3J5Lgo+Cj5TaWduZWQt b2ZmLWJ5OiBsaWxpbmNoYW8gPGxpbGluY2hhb0Bvc2NoaW5hLmNuPgo+LS0tCj7CoMKgwqAgYnVp bHRpbi9jbG9uZS5jOiBhZGQgLS1yZWplY3Qtc2hhbGxvdyBvcHRpb24KPsKgwqDCoAo+wqDCoMKg IENoYW5nZXMgc2luY2UgdjE6Cj7CoMKgwqAKPsKgwqDCoMKgICogUmVuYW1lIC0tbm8tc2hhbGxv dyB0byAtLXJlamVjdC1zaGFsbG93Cj7CoMKgwqDCoCAqIEVuYWJsZSB0byByZWplY3QgYSBub24t bG9jYWwgY2xvbmUKPsKgwqDCoMKgICogRW5hYmxlIC0tW25vLV1yZWplY3Qtc2hhbGxvdyBmcm9t IENMSSBvdmVycmlkZSBjb25maWd1cmF0aW9uLgo+wqDCoMKgwqAgKiBBZGQgbW9yZSB0ZXN0Y2Fz ZXMuCj7CoMKgwqDCoCAqIFJld29yZCBjb21taXQgbWVzc2FnZXMgYW5kIHJlbGF0aXZlIGRvY3Vt ZW50YXRpb24uCj7CoMKgwqAKPsKgwqDCoCBDaGFuZ2VzIHNpbmNlIHYzOgo+wqDCoMKgCj7CoMKg wqDCoCAqIEFkZCBzdXBwb3J0IHRvIHJlamVjdCBjbG9uZSBzaGFsbG93IHJlcG8gb3ZlciBodHRw cyBwcm90b2NvbAo+ICogQWRkIHRlc3RjYXNlIHRvIHJlamVjdCBjbG9uZSBzaGFsbG93IHJlcG8g b3ZlciBodHRwczovLyB0cmFuc3BvcnQKPsKgwqDCoMKgICogUmV3b3JkIGNvbW1pdCBtZXNzYWdl cyBhbmQgcmVsYXRpdmUgZG9jdW1lbnRhdGlvbiBhY2NvcmRpbmcKPsKgwqDCoMKgwqDCoCBzdWdn ZXN0aW9ucyBmcm9tIEp1bmlvLgo+wqDCoMKgCj7CoMKgwqAgU2lnbmVkLW9mZi1ieTogbGlsaW5j aGFvIGxpbGluY2hhb0Bvc2NoaW5hLmNuCj4KPlB1Ymxpc2hlZC1BczogaHR0cHM6Ly9naXRodWIu Y29tL2dpdGdpdGdhZGdldC9naXQvcmVsZWFzZXMvdGFnL3ByLTg2NSUyRkNhY3R1c2luaGFuZCUy RmdpdC1jbG9uZS1vcHRpb25zLXY1Cj5GZXRjaC1JdC1WaWE6IGdpdCBmZXRjaCBodHRwczovL2dp dGh1Yi5jb20vZ2l0Z2l0Z2FkZ2V0L2dpdCBwci04NjUvQ2FjdHVzaW5oYW5kL2dpdC1jbG9uZS1v cHRpb25zLXY1Cj5QdWxsLVJlcXVlc3Q6IGh0dHBzOi8vZ2l0aHViLmNvbS9naXRnaXRnYWRnZXQv Z2l0L3B1bGwvODY1Cj4KPlJhbmdlLWRpZmYgdnMgdjQ6Cj4KPiAxOsKgIGVlNGZiODQwYTMyZiAh IDE6wqAgM2Y3NjVlNDllNGE3IGJ1aWx0aW4vY2xvbmUuYzogYWRkIC0tcmVqZWN0LXNoYWxsb3cg b3B0aW9uCj7CoMKgwqDCoCBAQCBEb2N1bWVudGF0aW9uL2dpdC1jbG9uZS50eHQ6IG9iamVjdHMg ZnJvbSB0aGUgc291cmNlIHJlcG9zaXRvcnkgaW50byBhIHBhY2sgaW4gdAo+wqDCoMKgwqDCoMKg IGNyZWF0aW5nIGA8ZGlyZWN0b3J5PmAgYW5kIHBsYWNpbmcgdGhlIGFkbWluaXN0cmF0aXZlCj7C oMKgwqDCoMKgCj7CoMKgwqDCoMKgwqAgIyMgYnVpbHRpbi9jbG9uZS5jICMjCj7CoMKgwqDCoCAt QEAKPsKgwqDCoMKgIC0gI2luY2x1ZGUgImNvbm5lY3RlZC5oIgo+wqDCoMKgwqAgLSAjaW5jbHVk ZSAicGFja2ZpbGUuaCIKPsKgwqDCoMKgIC0gI2luY2x1ZGUgImxpc3Qtb2JqZWN0cy1maWx0ZXIt b3B0aW9ucy5oIgo+wqDCoMKgwqAgLSsjaW5jbHVkZSAic2hhbGxvdy5oIgo+wqDCoMKgwqAgLQo+ wqDCoMKgwqAgLSAvKgo+wqDCoMKgwqAgLcKgICogT3ZlcmFsbCBGSVhNRXM6Cj7CoMKgwqDCoMKg IEBAIGJ1aWx0aW4vY2xvbmUuYzogc3RhdGljIGludCBvcHRpb25fbm9fY2hlY2tvdXQsIG9wdGlv bl9iYXJlLCBvcHRpb25fbWlycm9yLCBvcHRpb25fc2luZ2xlX2JyYW5jaAo+wqDCoMKgwqDCoMKg IHN0YXRpYyBpbnQgb3B0aW9uX2xvY2FsID0gLTEsIG9wdGlvbl9ub19oYXJkbGlua3MsIG9wdGlv bl9zaGFyZWQ7Cj7CoMKgwqDCoMKgwqAgc3RhdGljIGludCBvcHRpb25fbm9fdGFnczsKPsKgwqDC oMKgIEBAIGJ1aWx0aW4vY2xvbmUuYzogc3RhdGljIGludCBwYXRoX2V4aXN0cyhjb25zdCBjaGFy ICpwYXRoKQo+wqDCoMKgwqDCoMKgIGludCBjbWRfY2xvbmUoaW50IGFyZ2MsIGNvbnN0IGNoYXIg Kiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCj7CoMKgwqDCoMKgwqAgewo+wqDCoMKgwqDCoMKg IGludCBpc19idW5kbGUgPSAwLCBpc19sb2NhbDsKPsKgwqDCoMKgIC0rCWludCBsb2NhbF9zaGFs bG93ID0gMDsKPsKgwqDCoMKgwqAgKwlpbnQgcmVqZWN0X3NoYWxsb3cgPSAwOwo+wqDCoMKgwqDC oMKgIGNvbnN0IGNoYXIgKnJlcG9fbmFtZSwgKnJlcG8sICp3b3JrX3RyZWUsICpnaXRfZGlyOwo+ wqDCoMKgwqDCoMKgIGNoYXIgKnBhdGgsICpkaXIsICpkaXNwbGF5X3JlcG8gPSBOVUxMOwo+wqDC oMKgwqAgQEAgYnVpbHRpbi9jbG9uZS5jOiBpbnQgY21kX2Nsb25lKGludCBhcmdjLCBjb25zdCBj aGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KQo+wqDCoMKgwqDCoMKgIGlmIChmaWx0ZXJf b3B0aW9ucy5jaG9pY2UpCj7CoMKgwqDCoMKgwqAgd2FybmluZyhfKCItLWZpbHRlciBpcyBpZ25v cmVkIGluIGxvY2FsIGNsb25lczsgdXNlIGZpbGU6Ly8gaW5zdGVhZC4iKSk7Cj7CoMKgwqDCoMKg wqAgaWYgKCFhY2Nlc3MobWtwYXRoKCIlcy9zaGFsbG93IiwgcGF0aCksIEZfT0spKSB7Cj7CoMKg wqDCoCAtKwlsb2NhbF9zaGFsbG93ID0gMTsKPsKgwqDCoMKgICsrCWlmIChyZWplY3Rfc2hhbGxv dykKPsKgwqDCoMKgICsrCWRpZSgic291cmNlIHJlcG9zaXRvcnkgaXMgc2hhbGxvdywgcmVqZWN0 IHRvIGNsb25lLiIpOwo+wqDCoMKgwqDCoMKgIGlmIChvcHRpb25fbG9jYWwgPiAwKQo+wqDCoMKg wqDCoMKgIHdhcm5pbmcoXygic291cmNlIHJlcG9zaXRvcnkgaXMgc2hhbGxvdywgaWdub3Jpbmcg LS1sb2NhbCIpKTsKPsKgwqDCoMKgwqDCoCBpc19sb2NhbCA9IDA7Cj7CoMKgwqDCoMKgIEBAIGJ1 aWx0aW4vY2xvbmUuYzogaW50IGNtZF9jbG9uZShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3Ys IGNvbnN0IGNoYXIgKnByZWZpeCkKPsKgwqDCoMKgIC0gZ290byBjbGVhbnVwOwo+wqDCoMKgwqAg LSB9Cj7CoMKgwqDCoMKgwqAKPsKgwqDCoMKgIC0rCWlmIChyZWplY3Rfc2hhbGxvdykgewo+wqDC oMKgwqAgLSsJaWYgKGxvY2FsX3NoYWxsb3cgfHwgaXNfcmVwb3NpdG9yeV9zaGFsbG93KHRoZV9y ZXBvc2l0b3J5KSkgewo+wqDCoMKgwqAgLSsJZGllKF8oInNvdXJjZSByZXBvc2l0b3J5IGlzIHNo YWxsb3csIHJlamVjdCB0byBjbG9uZS4iKSk7Cj7CoMKgwqDCoCAtKwl9Cj7CoMKgwqDCoCAtKwl9 Cj7CoMKgwqDCoCArIHRyYW5zcG9ydF9zZXRfb3B0aW9uKHRyYW5zcG9ydCwgVFJBTlNfT1BUX0tF RVAsICJ5ZXMiKTsKPsKgwqDCoMKgICsKPsKgwqDCoMKgICsrCWlmIChyZWplY3Rfc2hhbGxvdykK PsKgwqDCoMKgICsrCXRyYW5zcG9ydF9zZXRfb3B0aW9uKHRyYW5zcG9ydCwgVFJBTlNfT1BUX1JF SkVDVF9TSEFMTE9XLCAiMSIpOwo+wqDCoMKgwqAgKyBpZiAob3B0aW9uX2RlcHRoKQo+wqDCoMKg wqAgKyB0cmFuc3BvcnRfc2V0X29wdGlvbih0cmFuc3BvcnQsIFRSQU5TX09QVF9ERVBUSCwKPsKg wqDCoMKgICsgwqDCoMKgwqAgb3B0aW9uX2RlcHRoKTsKPsKgwqDCoMKgICsKPsKgwqDCoMKgICsg IyMgZmV0Y2gtcGFjay5jICMjCj7CoMKgwqDCoCArQEAgZmV0Y2gtcGFjay5jOiBzdGF0aWMgc3Ry dWN0IHJlZiAqZG9fZmV0Y2hfcGFjayhzdHJ1Y3QgZmV0Y2hfcGFja19hcmdzICphcmdzLAo+wqDC oMKgwqAgKwo+wqDCoMKgwqAgKyBpZiAoYXJncy0+c3RhdGVsZXNzX3JwYykKPsKgwqDCoMKgICsg cGFja2V0X2ZsdXNoKGZkWzFdKTsKPsKgwqDCoMKgICsrCj7CoMKgwqDCoCArKwlpZiAoIWFyZ3Mt PmRlZXBlbiAmJiBhcmdzLT5yZW1vdGVfc2hhbGxvdykKPsKgwqDCoMKgICsrCWRpZSgic291cmNl IHJlcG9zaXRvcnkgaXMgc2hhbGxvdywgcmVqZWN0IHRvIGNsb25lLiIpOwo+wqDCoMKgwqDCoCAr Cj7CoMKgwqDCoCAtIHVwZGF0ZV9yZW1vdGVfcmVmcyhyZWZzLCBtYXBwZWRfcmVmcywgcmVtb3Rl X2hlYWRfcG9pbnRzX2F0LAo+wqDCoMKgwqAgLSDCoMKgIGJyYW5jaF90b3AuYnVmLCByZWZsb2df bXNnLmJ1ZiwgdHJhbnNwb3J0LAo+wqDCoMKgwqAgLSDCoMKgICFpc19sb2NhbCk7Cj7CoMKgwqDC oCArIGlmIChhcmdzLT5kZWVwZW4pCj7CoMKgwqDCoCArIHNldHVwX2FsdGVybmF0ZV9zaGFsbG93 KCZzaGFsbG93X2xvY2ssICZhbHRlcm5hdGVfc2hhbGxvd19maWxlLAo+wqDCoMKgwqAgKyBOVUxM KTsKPsKgwqDCoMKgICtAQCBmZXRjaC1wYWNrLmM6IHN0YXRpYyB2b2lkIHJlY2VpdmVfc2hhbGxv d19pbmZvKHN0cnVjdCBmZXRjaF9wYWNrX2FyZ3MgKmFyZ3MsCj7CoMKgwqDCoCArICogc2hhbGxv dy4gSW4gdjAsIHJlbW90ZSByZWZzIHRoYXQgcmVhY2ggdGhlc2Ugb2JqZWN0cyBhcmUKPsKgwqDC oMKgICsgKiByZWplY3RlZCAodW5sZXNzIC0tdXBkYXRlLXNoYWxsb3cgaXMgc2V0KTsgZG8gdGhl IHNhbWUuCj7CoMKgwqDCoCArICovCj7CoMKgwqDCoCArKwlpZiAoYXJncy0+cmVtb3RlX3NoYWxs b3cpCj7CoMKgwqDCoCArKwlkaWUoInNvdXJjZSByZXBvc2l0b3J5IGlzIHNoYWxsb3csIHJlamVj dCB0byBjbG9uZS4iKTsKPsKgwqDCoMKgICsgcHJlcGFyZV9zaGFsbG93X2luZm8oc2ksIHNoYWxs b3dzKTsKPsKgwqDCoMKgICsgaWYgKHNpLT5ucl9vdXJzIHx8IHNpLT5ucl90aGVpcnMpCj7CoMKg wqDCoCArIGFsdGVybmF0ZV9zaGFsbG93X2ZpbGUgPQo+wqDCoMKgwqAgKwo+wqDCoMKgwqAgKyAj IyBmZXRjaC1wYWNrLmggIyMKPsKgwqDCoMKgICtAQCBmZXRjaC1wYWNrLmg6IHN0cnVjdCBmZXRj aF9wYWNrX2FyZ3Mgewo+wqDCoMKgwqAgKyB1bnNpZ25lZCBzZWxmX2NvbnRhaW5lZF9hbmRfY29u bmVjdGVkOjE7Cj7CoMKgwqDCoCArIHVuc2lnbmVkIGNsb25pbmc6MTsKPsKgwqDCoMKgICsgdW5z aWduZWQgdXBkYXRlX3NoYWxsb3c6MTsKPsKgwqDCoMKgICsrCXVuc2lnbmVkIHJlbW90ZV9zaGFs bG93OjE7Cj7CoMKgwqDCoCArIHVuc2lnbmVkIGRlZXBlbjoxOwo+wqDCoMKgwqAgKwo+wqDCoMKg wqAgKyAvKgo+wqDCoMKgwqDCoAo+wqDCoMKgwqDCoMKgICMjIHQvdDU2MDYtY2xvbmUtb3B0aW9u cy5zaCAjIwo+wqDCoMKgwqDCoCBAQCB0L3Q1NjA2LWNsb25lLW9wdGlvbnMuc2g6IEdJVF9URVNU X0RFRkFVTFRfSU5JVElBTF9CUkFOQ0hfTkFNRT1tYWluCj7CoMKgwqDCoCBAQCB0L3Q1NjExLWNs b25lLWNvbmZpZy5zaDogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmUgLWMgcmVtb3RlLjxyZW1v dGU+LmZldGNoPTxyZQo+wqDCoMKgwqDCoCArJwo+wqDCoMKgwqDCoCArCj7CoMKgwqDCoMKgICt0 ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZS5yZWplY3RzaGFsbG93PWZhbHNlIHNob3VsZCBzdWNj ZWVkJyAnCj7CoMKgwqDCoCAtKwlybSAtcmYgY2hpbGQgJiYKPsKgwqDCoMKgICsrCXJtIC1yZiBj aGlsZCBvdXQgJiYKPsKgwqDCoMKgwqAgKwlnaXQgY2xvbmUgLS1kZXB0aD0xIC0tbm8tbG9jYWwg LiBjaGlsZCAmJgo+wqDCoMKgwqDCoCArCWdpdCAtYyBjbG9uZS5yZWplY3RzaGFsbG93PWZhbHNl IGNsb25lIC0tbm8tbG9jYWwgY2hpbGQgb3V0Cj7CoMKgwqDCoMKgICsnCj7CoMKgwqDCoCBAQCB0 L3Q1NjExLWNsb25lLWNvbmZpZy5zaDogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmUgLWMgcmVt b3RlLjxyZW1vdGU+LmZldGNoPTxyZQo+wqDCoMKgwqDCoCArJwo+wqDCoMKgwqDCoCArCj7CoMKg wqDCoMKgICt0ZXN0X2V4cGVjdF9zdWNjZXNzICdvcHRpb24gLS1uby1yZWplY3Qtc2hhbGxvdyBv dmVycmlkZSBjbG9uZS5yZWplY3RzaGFsbG93JyAnCj7CoMKgwqDCoCAtKwlybSAtcmYgY2hpbGQg JiYKPsKgwqDCoMKgICsrCXJtIC1yZiBjaGlsZCBvdXQgJiYKPsKgwqDCoMKgwqAgKwlnaXQgY2xv bmUgLS1kZXB0aD0xIC0tbm8tbG9jYWwgLiBjaGlsZCAmJgo+wqDCoMKgwqDCoCArCWdpdCAtYyBj bG9uZS5yZWplY3RzaGFsbG93PXRydWUgY2xvbmUgLS1uby1yZWplY3Qtc2hhbGxvdyAtLW5vLWxv Y2FsIGNoaWxkIG91dAo+wqDCoMKgwqDCoCArJwo+wqDCoMKgwqAgQEAgdC90NTYxMS1jbG9uZS1j b25maWcuc2g6IHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25lIC1jIHJlbW90ZS48cmVtb3RlPi5m ZXRjaD08cmUKPsKgwqDCoMKgwqDCoCB0ZXN0X2V4cGVjdF9zdWNjZXNzIE1JTkdXICdjbG9uZSAt YyBjb3JlLmhpZGVEb3RGaWxlcycgJwo+wqDCoMKgwqDCoMKgIHRlc3RfY29tbWl0IGF0dHJpYnV0 ZXMgLmdpdGF0dHJpYnV0ZXMgIiIgJiYKPsKgwqDCoMKgwqDCoCBybSAtcmYgY2hpbGQgJiYKPsKg wqDCoMKgICsKPsKgwqDCoMKgICsgIyMgdHJhbnNwb3J0LWhlbHBlci5jICMjCj7CoMKgwqDCoCAr QEAgdHJhbnNwb3J0LWhlbHBlci5jOiBzdGF0aWMgY29uc3QgY2hhciAqYm9vbGVhbl9vcHRpb25z W10gPSB7Cj7CoMKgwqDCoCArIFRSQU5TX09QVF9USElOLAo+wqDCoMKgwqAgKyBUUkFOU19PUFRf S0VFUCwKPsKgwqDCoMKgICsgVFJBTlNfT1BUX0ZPTExPV1RBR1MsCj7CoMKgwqDCoCArLQlUUkFO U19PUFRfREVFUEVOX1JFTEFUSVZFCj7CoMKgwqDCoCArKwlUUkFOU19PUFRfREVFUEVOX1JFTEFU SVZFLAo+wqDCoMKgwqAgKysJVFJBTlNfT1BUX1JFSkVDVF9TSEFMTE9XCj7CoMKgwqDCoCArIH07 Cj7CoMKgwqDCoCArCj7CoMKgwqDCoCArIHN0YXRpYyBpbnQgc3RyYnVmX3NldF9oZWxwZXJfb3B0 aW9uKHN0cnVjdCBoZWxwZXJfZGF0YSAqZGF0YSwKPsKgwqDCoMKgICsKPsKgwqDCoMKgICsgIyMg dHJhbnNwb3J0LmMgIyMKPsKgwqDCoMKgICtAQCB0cmFuc3BvcnQuYzogc3RhdGljIGludCBzZXRf Z2l0X29wdGlvbihzdHJ1Y3QgZ2l0X3RyYW5zcG9ydF9vcHRpb25zICpvcHRzLAo+wqDCoMKgwqAg KyBsaXN0X29iamVjdHNfZmlsdGVyX2RpZV9pZl9wb3B1bGF0ZWQoJm9wdHMtPmZpbHRlcl9vcHRp b25zKTsKPsKgwqDCoMKgICsgcGFyc2VfbGlzdF9vYmplY3RzX2ZpbHRlcigmb3B0cy0+ZmlsdGVy X29wdGlvbnMsIHZhbHVlKTsKPsKgwqDCoMKgICsgcmV0dXJuIDA7Cj7CoMKgwqDCoCArKwl9IGVs c2UgaWYgKCFzdHJjbXAobmFtZSwgVFJBTlNfT1BUX1JFSkVDVF9TSEFMTE9XKSkgewo+wqDCoMKg wqAgKysJb3B0cy0+cmVqZWN0X3NoYWxsb3cgPSAhIXZhbHVlOwo+wqDCoMKgwqAgKysJcmV0dXJu IDA7Cj7CoMKgwqDCoCArIH0KPsKgwqDCoMKgICsgcmV0dXJuIDE7Cj7CoMKgwqDCoCArIH0KPsKg wqDCoMKgICtAQCB0cmFuc3BvcnQuYzogc3RhdGljIGludCBmZXRjaF9yZWZzX3ZpYV9wYWNrKHN0 cnVjdCB0cmFuc3BvcnQgKnRyYW5zcG9ydCwKPsKgwqDCoMKgICsgYXJncy5zdGF0ZWxlc3NfcnBj ID0gdHJhbnNwb3J0LT5zdGF0ZWxlc3NfcnBjOwo+wqDCoMKgwqAgKyBhcmdzLnNlcnZlcl9vcHRp b25zID0gdHJhbnNwb3J0LT5zZXJ2ZXJfb3B0aW9uczsKPsKgwqDCoMKgICsgYXJncy5uZWdvdGlh dGlvbl90aXBzID0gZGF0YS0+b3B0aW9ucy5uZWdvdGlhdGlvbl90aXBzOwo+wqDCoMKgwqAgKysJ YXJncy5yZW1vdGVfc2hhbGxvdyA9IHRyYW5zcG9ydC0+c21hcnRfb3B0aW9ucy0+cmVqZWN0X3No YWxsb3c7Cj7CoMKgwqDCoCArCj7CoMKgwqDCoCArIGlmICghZGF0YS0+Z290X3JlbW90ZV9oZWFk cykgewo+wqDCoMKgwqAgKyBpbnQgaTsKPsKgwqDCoMKgICsKPsKgwqDCoMKgICsgIyMgdHJhbnNw b3J0LmggIyMKPsKgwqDCoMKgICtAQCB0cmFuc3BvcnQuaDogc3RydWN0IGdpdF90cmFuc3BvcnRf b3B0aW9ucyB7Cj7CoMKgwqDCoCArIHVuc2lnbmVkIGNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9j b25uZWN0ZWQgOiAxOwo+wqDCoMKgwqAgKyB1bnNpZ25lZCBzZWxmX2NvbnRhaW5lZF9hbmRfY29u bmVjdGVkIDogMTsKPsKgwqDCoMKgICsgdW5zaWduZWQgdXBkYXRlX3NoYWxsb3cgOiAxOwo+wqDC oMKgwqAgKysJdW5zaWduZWQgcmVqZWN0X3NoYWxsb3cgOiAxOwo+wqDCoMKgwqAgKyB1bnNpZ25l ZCBkZWVwZW5fcmVsYXRpdmUgOiAxOwo+wqDCoMKgwqAgKwo+wqDCoMKgwqAgKyAvKiBzZWUgZG9j dW1lbnRhdGlvbiBvZiBjb3JyZXNwb25kaW5nIGZsYWcgaW4gZmV0Y2gtcGFjay5oICovCj7CoMKg wqDCoCArQEAgdHJhbnNwb3J0Lmg6IHZvaWQgdHJhbnNwb3J0X2NoZWNrX2FsbG93ZWQoY29uc3Qg Y2hhciAqdHlwZSk7Cj7CoMKgwqDCoCArIC8qIEFnZ3Jlc3NpdmVseSBmZXRjaCBhbm5vdGF0ZWQg dGFncyBpZiBwb3NzaWJsZSAqLwo+wqDCoMKgwqAgKyAjZGVmaW5lIFRSQU5TX09QVF9GT0xMT1dU QUdTICJmb2xsb3d0YWdzIgo+wqDCoMKgwqAgKwo+wqDCoMKgwqAgKysvKiByZWplY3Qgc2hhbGxv dyByZXBvIHRyYW5zcG9ydMKgICovCj7CoMKgwqDCoCArKyNkZWZpbmUgVFJBTlNfT1BUX1JFSkVD VF9TSEFMTE9XICJyZWplY3RzaGFsbG93Igo+wqDCoMKgwqAgKysKPsKgwqDCoMKgICsgLyogQWNj ZXB0IHJlZnMgdGhhdCBtYXkgdXBkYXRlIC5naXQvc2hhbGxvdyB3aXRob3V0IC0tZGVwdGggKi8K PsKgwqDCoMKgICsgI2RlZmluZSBUUkFOU19PUFRfVVBEQVRFX1NIQUxMT1cgInVwZGF0ZXNoYWxs b3ciCj7CoMKgwqDCoCArCj4KPgo+IERvY3VtZW50YXRpb24vY29uZmlnL2Nsb25lLnR4dCB8wqAg NCArKysKPiBEb2N1bWVudGF0aW9uL2dpdC1jbG9uZS50eHTCoMKgwqAgfMKgIDcgKysrKy0KPiBi dWlsdGluL2Nsb25lLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAyMiArKysrKysr KysrKysrKysrCj4gZmV0Y2gtcGFjay5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHzCoCA2ICsrKysrCj4gZmV0Y2gtcGFjay5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHzCoCAxICsKPiB0L3Q1NjA2LWNsb25lLW9wdGlvbnMuc2jCoMKgwqDCoMKgwqAg fCA0NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gdC90NTYxMS1jbG9uZS1j b25maWcuc2jCoMKgwqDCoMKgwqDCoCB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrCj4gdHJh bnNwb3J0LWhlbHBlci5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAzICsrLQo+IHRyYW5z cG9ydC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDQgKysrCj4g dHJhbnNwb3J0LmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNCAr KysKPiAxMCBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK Pgo+ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vY29uZmlnL2Nsb25lLnR4dCBiL0RvY3VtZW50 YXRpb24vY29uZmlnL2Nsb25lLnR4dAo+aW5kZXggNDdkZTM2YTVmZWRmLi41MGViYzE3MGJiODEg MTAwNjQ0Cj4tLS0gYS9Eb2N1bWVudGF0aW9uL2NvbmZpZy9jbG9uZS50eHQKPisrKyBiL0RvY3Vt ZW50YXRpb24vY29uZmlnL2Nsb25lLnR4dAo+QEAgLTIsMyArMiw3IEBAIGNsb25lLmRlZmF1bHRS ZW1vdGVOYW1lOjoKPiBUaGUgbmFtZSBvZiB0aGUgcmVtb3RlIHRvIGNyZWF0ZSB3aGVuIGNsb25p bmcgYSByZXBvc2l0b3J5LsKgIERlZmF1bHRzIHRvCj4gYG9yaWdpbmAsIGFuZCBjYW4gYmUgb3Zl cnJpZGRlbiBieSBwYXNzaW5nIHRoZSBgLS1vcmlnaW5gIGNvbW1hbmQtbGluZQo+IG9wdGlvbiB0 byBsaW5rZ2l0OmdpdC1jbG9uZVsxXS4KPisKPitjbG9uZS5yZWplY3RzaGFsbG93OjoKPisJUmVq ZWN0IHRvIGNsb25lIGEgcmVwb3NpdG9yeSBpZiBpdCBpcyBhIHNoYWxsb3cgb25lLCBjYW4gYmUg b3ZlcnJpZGRlbiBieQo+KwlwYXNzaW5nIG9wdGlvbiBgLS1yZWplY3Qtc2hhbGxvd2AgaW4gY29t bWFuZCBsaW5lLiBTZWUgbGlua2dpdDpnaXQtY2xvbmVbMV0KPmRpZmYgLS1naXQgYS9Eb2N1bWVu dGF0aW9uL2dpdC1jbG9uZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jbG9uZS50eHQKPmluZGV4 IDAyZDljMTljZWM3NS4uY2I0NTgxMjNlZWY2IDEwMDY0NAo+LS0tIGEvRG9jdW1lbnRhdGlvbi9n aXQtY2xvbmUudHh0Cj4rKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jbG9uZS50eHQKPkBAIC0xNSw3 ICsxNSw3IEBAIFNZTk9QU0lTCj4gwqAgWy0tZGlzc29jaWF0ZV0gWy0tc2VwYXJhdGUtZ2l0LWRp ciA8Z2l0IGRpcj5dCj4gwqAgWy0tZGVwdGggPGRlcHRoPl0gWy0tW25vLV1zaW5nbGUtYnJhbmNo XSBbLS1uby10YWdzXQo+IMKgIFstLXJlY3Vyc2Utc3VibW9kdWxlc1s9PHBhdGhzcGVjPl1dIFst LVtuby1dc2hhbGxvdy1zdWJtb2R1bGVzXQo+LQnCoCBbLS1bbm8tXXJlbW90ZS1zdWJtb2R1bGVz XSBbLS1qb2JzIDxuPl0gWy0tc3BhcnNlXQo+KwnCoCBbLS1bbm8tXXJlbW90ZS1zdWJtb2R1bGVz XSBbLS1qb2JzIDxuPl0gWy0tc3BhcnNlXSBbLS1bbm8tXXJlamVjdC1zaGFsbG93XQo+IMKgIFst LWZpbHRlcj08ZmlsdGVyPl0gWy0tXSA8cmVwb3NpdG9yeT4KPiDCoCBbPGRpcmVjdG9yeT5dCj4K PkBAIC0xNDksNiArMTQ5LDExIEBAIG9iamVjdHMgZnJvbSB0aGUgc291cmNlIHJlcG9zaXRvcnkg aW50byBhIHBhY2sgaW4gdGhlIGNsb25lZCByZXBvc2l0b3J5Lgo+IC0tbm8tY2hlY2tvdXQ6Ogo+ IE5vIGNoZWNrb3V0IG9mIEhFQUQgaXMgcGVyZm9ybWVkIGFmdGVyIHRoZSBjbG9uZSBpcyBjb21w bGV0ZS4KPgo+Ky0tW25vLV1yZWplY3Qtc2hhbGxvdzo6Cj4rCUZhaWwgaWYgdGhlIHNvdXJjZSBy ZXBvc2l0b3J5IGlzIGEgc2hhbGxvdyByZXBvc2l0b3J5LiBUaGUKPisJJ2Nsb25lLnJlamVjdHNo YWxsb3cnIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8KPisJZ2l2ZSB0aGUg ZGVmYXVsdC4KPisKPiAtLWJhcmU6Ogo+IE1ha2UgYSAnYmFyZScgR2l0IHJlcG9zaXRvcnkuwqAg VGhhdCBpcywgaW5zdGVhZCBvZgo+IGNyZWF0aW5nIGA8ZGlyZWN0b3J5PmAgYW5kIHBsYWNpbmcg dGhlIGFkbWluaXN0cmF0aXZlCj5kaWZmIC0tZ2l0IGEvYnVpbHRpbi9jbG9uZS5jIGIvYnVpbHRp bi9jbG9uZS5jCj5pbmRleCA1MWU4NDRhMmRlMGEuLjcwZDhjYTc3OTg4ZiAxMDA2NDQKPi0tLSBh L2J1aWx0aW4vY2xvbmUuYwo+KysrIGIvYnVpbHRpbi9jbG9uZS5jCj5AQCAtNTAsNiArNTAsOCBA QCBzdGF0aWMgaW50IG9wdGlvbl9ub19jaGVja291dCwgb3B0aW9uX2JhcmUsIG9wdGlvbl9taXJy b3IsIG9wdGlvbl9zaW5nbGVfYnJhbmNoCj4gc3RhdGljIGludCBvcHRpb25fbG9jYWwgPSAtMSwg b3B0aW9uX25vX2hhcmRsaW5rcywgb3B0aW9uX3NoYXJlZDsKPiBzdGF0aWMgaW50IG9wdGlvbl9u b190YWdzOwo+IHN0YXRpYyBpbnQgb3B0aW9uX3NoYWxsb3dfc3VibW9kdWxlczsKPitzdGF0aWMg aW50IG9wdGlvbl9zaGFsbG93ID0gLTE7wqDCoMKgIC8qIHVuc3BlY2lmaWVkICovCj4rc3RhdGlj IGludCBjb25maWdfc2hhbGxvdyA9IC0xO8KgwqDCoCAvKiB1bnNwZWNpZmllZCAqLwo+IHN0YXRp YyBpbnQgZGVlcGVuOwo+IHN0YXRpYyBjaGFyICpvcHRpb25fdGVtcGxhdGUsICpvcHRpb25fZGVw dGgsICpvcHRpb25fc2luY2U7Cj4gc3RhdGljIGNoYXIgKm9wdGlvbl9vcmlnaW4gPSBOVUxMOwo+ QEAgLTkwLDYgKzkyLDggQEAgc3RhdGljIHN0cnVjdCBvcHRpb24gYnVpbHRpbl9jbG9uZV9vcHRp b25zW10gPSB7Cj4gT1BUX19WRVJCT1NJVFkoJm9wdGlvbl92ZXJib3NpdHkpLAo+IE9QVF9CT09M KDAsICJwcm9ncmVzcyIsICZvcHRpb25fcHJvZ3Jlc3MsCj4gTl8oImZvcmNlIHByb2dyZXNzIHJl cG9ydGluZyIpKSwKPisJT1BUX0JPT0woMCwgInJlamVjdC1zaGFsbG93IiwgJm9wdGlvbl9zaGFs bG93LAo+KwlOXygiZG9uJ3QgY2xvbmUgc2hhbGxvdyByZXBvc2l0b3J5IikpLAo+IE9QVF9CT09M KCduJywgIm5vLWNoZWNrb3V0IiwgJm9wdGlvbl9ub19jaGVja291dCwKPiBOXygiZG9uJ3QgY3Jl YXRlIGEgY2hlY2tvdXQiKSksCj4gT1BUX0JPT0woMCwgImJhcmUiLCAmb3B0aW9uX2JhcmUsIE5f KCJjcmVhdGUgYSBiYXJlIHJlcG9zaXRvcnkiKSksCj5AQCAtODU4LDYgKzg2Miw5IEBAIHN0YXRp YyBpbnQgZ2l0X2Nsb25lX2NvbmZpZyhjb25zdCBjaGFyICprLCBjb25zdCBjaGFyICp2LCB2b2lk ICpjYikKPiBmcmVlKHJlbW90ZV9uYW1lKTsKPiByZW1vdGVfbmFtZSA9IHhzdHJkdXAodik7Cj4g fQo+KwlpZiAoIXN0cmNtcChrLCAiY2xvbmUucmVqZWN0c2hhbGxvdyIpKSB7Cj4rCWNvbmZpZ19z aGFsbG93ID0gZ2l0X2NvbmZpZ19ib29sKGssIHYpOwo+Kwl9Cj4gcmV0dXJuIGdpdF9kZWZhdWx0 X2NvbmZpZyhrLCB2LCBjYik7Cj4gfQo+Cj5AQCAtOTYzLDYgKzk3MCw3IEBAIHN0YXRpYyBpbnQg cGF0aF9leGlzdHMoY29uc3QgY2hhciAqcGF0aCkKPiBpbnQgY21kX2Nsb25lKGludCBhcmdjLCBj b25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KQo+IHsKPiBpbnQgaXNfYnVuZGxl ID0gMCwgaXNfbG9jYWw7Cj4rCWludCByZWplY3Rfc2hhbGxvdyA9IDA7Cj4gY29uc3QgY2hhciAq cmVwb19uYW1lLCAqcmVwbywgKndvcmtfdHJlZSwgKmdpdF9kaXI7Cj4gY2hhciAqcGF0aCwgKmRp ciwgKmRpc3BsYXlfcmVwbyA9IE5VTEw7Cj4gaW50IGRlc3RfZXhpc3RzLCByZWFsX2Rlc3RfZXhp c3RzID0gMDsKPkBAIC0xMTU2LDYgKzExNjQsMTYgQEAgaW50IGNtZF9jbG9uZShpbnQgYXJnYywg Y29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKPiAqLwo+IGdpdF9jb25maWco Z2l0X2Nsb25lX2NvbmZpZywgTlVMTCk7Cj4KPisJLyoKPisJKiBJZiBvcHRpb25fc2hhbGxvdyBp cyBzcGVjaWZpZWQgZnJvbSBDTEkgb3B0aW9uLAo+KwkqIGlnbm9yZSBjb25maWdfc2hhbGxvdyBm cm9tIGdpdF9jbG9uZV9jb25maWcuCj4rCSovCj4rCWlmIChjb25maWdfc2hhbGxvdyAhPSAtMSkg ewo+KwlyZWplY3Rfc2hhbGxvdyA9IGNvbmZpZ19zaGFsbG93Owo+Kwl9Cj4rCWlmIChvcHRpb25f c2hhbGxvdyAhPSAtMSkgewo+KwlyZWplY3Rfc2hhbGxvdyA9IG9wdGlvbl9zaGFsbG93Owo+Kwl9 Cj4gLyoKPiAqIGFwcGx5IHRoZSByZW1vdGUgbmFtZSBwcm92aWRlZCBieSAtLW9yaWdpbiBvbmx5 IGFmdGVyIHRoaXMgc2Vjb25kCj4gKiBjYWxsIHRvIGdpdF9jb25maWcsIHRvIGVuc3VyZSBpdCBv dmVycmlkZXMgYWxsIGNvbmZpZy1iYXNlZCB2YWx1ZXMuCj5AQCAtMTIxNiw2ICsxMjM0LDggQEAg aW50IGNtZF9jbG9uZShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnBy ZWZpeCkKPiBpZiAoZmlsdGVyX29wdGlvbnMuY2hvaWNlKQo+IHdhcm5pbmcoXygiLS1maWx0ZXIg aXMgaWdub3JlZCBpbiBsb2NhbCBjbG9uZXM7IHVzZSBmaWxlOi8vIGluc3RlYWQuIikpOwo+IGlm ICghYWNjZXNzKG1rcGF0aCgiJXMvc2hhbGxvdyIsIHBhdGgpLCBGX09LKSkgewo+KwlpZiAocmVq ZWN0X3NoYWxsb3cpCj4rCWRpZSgic291cmNlIHJlcG9zaXRvcnkgaXMgc2hhbGxvdywgcmVqZWN0 IHRvIGNsb25lLiIpOwo+IGlmIChvcHRpb25fbG9jYWwgPiAwKQo+IHdhcm5pbmcoXygic291cmNl IHJlcG9zaXRvcnkgaXMgc2hhbGxvdywgaWdub3JpbmcgLS1sb2NhbCIpKTsKPiBpc19sb2NhbCA9 IDA7Cj5AQCAtMTIyNyw2ICsxMjQ3LDggQEAgaW50IGNtZF9jbG9uZShpbnQgYXJnYywgY29uc3Qg Y2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKPgo+IHRyYW5zcG9ydF9zZXRfb3B0aW9u KHRyYW5zcG9ydCwgVFJBTlNfT1BUX0tFRVAsICJ5ZXMiKTsKPgo+KwlpZiAocmVqZWN0X3NoYWxs b3cpCj4rCXRyYW5zcG9ydF9zZXRfb3B0aW9uKHRyYW5zcG9ydCwgVFJBTlNfT1BUX1JFSkVDVF9T SEFMTE9XLCAiMSIpOwo+IGlmIChvcHRpb25fZGVwdGgpCj4gdHJhbnNwb3J0X3NldF9vcHRpb24o dHJhbnNwb3J0LCBUUkFOU19PUFRfREVQVEgsCj4gwqDCoMKgwqAgb3B0aW9uX2RlcHRoKTsKPmRp ZmYgLS1naXQgYS9mZXRjaC1wYWNrLmMgYi9mZXRjaC1wYWNrLmMKPmluZGV4IDFlYWVkY2I1ZGMy ZS4uNDFlZjcwMGJkZTM4IDEwMDY0NAo+LS0tIGEvZmV0Y2gtcGFjay5jCj4rKysgYi9mZXRjaC1w YWNrLmMKPkBAIC0xMDcxLDYgKzEwNzEsMTAgQEAgc3RhdGljIHN0cnVjdCByZWYgKmRvX2ZldGNo X3BhY2soc3RydWN0IGZldGNoX3BhY2tfYXJncyAqYXJncywKPgo+IGlmIChhcmdzLT5zdGF0ZWxl c3NfcnBjKQo+IHBhY2tldF9mbHVzaChmZFsxXSk7Cj4rCj4rCWlmICghYXJncy0+ZGVlcGVuICYm IGFyZ3MtPnJlbW90ZV9zaGFsbG93KQo+KwlkaWUoInNvdXJjZSByZXBvc2l0b3J5IGlzIHNoYWxs b3csIHJlamVjdCB0byBjbG9uZS4iKTsKPisgCkkgYW0gbm90IHN1cmUgaWYgd2Ugc2hvdWxkwqBh cHBseSB0aGlzwqB0b8Kgbm9uLXByb3RvY29sLXYyLgoKPiBpZiAoYXJncy0+ZGVlcGVuKQo+IHNl dHVwX2FsdGVybmF0ZV9zaGFsbG93KCZzaGFsbG93X2xvY2ssICZhbHRlcm5hdGVfc2hhbGxvd19m aWxlLAo+IE5VTEwpOwo+QEAgLTE0NDAsNiArMTQ0NCw4IEBAIHN0YXRpYyB2b2lkIHJlY2VpdmVf c2hhbGxvd19pbmZvKHN0cnVjdCBmZXRjaF9wYWNrX2FyZ3MgKmFyZ3MsCj4gKiBzaGFsbG93LiBJ biB2MCwgcmVtb3RlIHJlZnMgdGhhdCByZWFjaCB0aGVzZSBvYmplY3RzIGFyZQo+ICogcmVqZWN0 ZWQgKHVubGVzcyAtLXVwZGF0ZS1zaGFsbG93IGlzIHNldCk7IGRvIHRoZSBzYW1lLgo+ICovCj4r CWlmIChhcmdzLT5yZW1vdGVfc2hhbGxvdykKPisJZGllKCJzb3VyY2UgcmVwb3NpdG9yeSBpcyBz aGFsbG93LCByZWplY3QgdG8gY2xvbmUuIik7IAoKSSBqdXN0IGZvdW5kIHRoYXQgSm9oYW5uZXMg U2NoaW5kZWxpbiB3cm90ZSBhIGRvY3VtZW50IDE0IHllYXIgYWdvCmluIERvY3VtZW50YXRpb24v dGVjaG5pY2FsL3NoYWxsb3cudHh0OgoKIlRoZXJlIGFyZSBzb21lIHVuZmluaXNoZWQgZW5kcyBv ZiB0aGUgd2hvbGUgc2hhbGxvdyBidXNpbmVzczoKCkEgc3BlY2lhbCBoYW5kbGluZyBvZiBhIHNo YWxsb3cgdXBzdHJlYW0gaXMgbmVlZGVkLiBBdCBzb21lIHN0YWdlLAp1cGxvYWQtcGFjayBoYXMg dG8gY2hlY2sgaWYgaXQgc2VuZHMgYSBzaGFsbG93IGNvbW1pdCwgYW5kIGl0IHNob3VsZApzZW5k IHRoYXQgaW5mb3JtYXRpb24gZWFybHkgKG9yIGZhaWwsIGlmIHRoZSBjbGllbnQgZG9lcyBub3Qg c3VwcG9ydMKgCnNoYWxsb3cgcmVwb3NpdG9yaWVzKS4gVGhlcmUgaXMgbm8gc3VwcG9ydCBhdCBh bGwgZm9yIHRoaXMgaW4gdGhpcyBwYXRjaApzZXJpZXMuIgoKSXQgc2VlbXMgdGhhdCBteSBwYXRj aCBjYW4gc292bGUgaGlzIHdvcnJ5IGluIHNvbWUgZGVncmVlLAphbmQgbWF5YmUgd2UgY291bGQg d2FybiBjbGllbnQgaW4gZmV0Y2gtcGFjayBzdGFnZSwgaWYgd2UgZG9uJ3QKY2hvb3NlIHRvIHJl amVjdCBzaGFsbG93IGNsb25pbmcuCgoJCWlmIChhcmdzLT5yZW1vdGVfc2hhbGxvdykKCQkJZGll KCJzb3VyY2UgcmVwb3NpdG9yeSBpcyBzaGFsbG93LCByZWplY3QgdG8gY2xvbmUuIik7CgkJZWxz ZQoJCQl3YXJuaW5nKCJyZW1vdGUgc291cmNlIHJlcG9zaXRvcnkgaXMgc2hhbGxvdy4iKTsKCj4g cHJlcGFyZV9zaGFsbG93X2luZm8oc2ksIHNoYWxsb3dzKTsKPiBpZiAoc2ktPm5yX291cnMgfHwg c2ktPm5yX3RoZWlycykKPiBhbHRlcm5hdGVfc2hhbGxvd19maWxlID0KPmRpZmYgLS1naXQgYS9m ZXRjaC1wYWNrLmggYi9mZXRjaC1wYWNrLmgKPmluZGV4IDczNmEzZGFlNDY3YS4uNmU0ZjhmMGQ3 MzhjIDEwMDY0NAo+LS0tIGEvZmV0Y2gtcGFjay5oCj4rKysgYi9mZXRjaC1wYWNrLmgKPkBAIC0z OSw2ICszOSw3IEBAIHN0cnVjdCBmZXRjaF9wYWNrX2FyZ3Mgewo+IHVuc2lnbmVkIHNlbGZfY29u dGFpbmVkX2FuZF9jb25uZWN0ZWQ6MTsKPiB1bnNpZ25lZCBjbG9uaW5nOjE7Cj4gdW5zaWduZWQg dXBkYXRlX3NoYWxsb3c6MTsKPisJdW5zaWduZWQgcmVtb3RlX3NoYWxsb3c6MTsKPiB1bnNpZ25l ZCBkZWVwZW46MTsKPgo+IC8qCj5kaWZmIC0tZ2l0IGEvdC90NTYwNi1jbG9uZS1vcHRpb25zLnNo IGIvdC90NTYwNi1jbG9uZS1vcHRpb25zLnNoCj5pbmRleCA1MmU1Nzg5ZmIwNTAuLjYxNzBkMDUx MzIyNyAxMDA3NTUKPi0tLSBhL3QvdDU2MDYtY2xvbmUtb3B0aW9ucy5zaAo+KysrIGIvdC90NTYw Ni1jbG9uZS1vcHRpb25zLnNoCj5AQCAtNSw2ICs1LDggQEAgR0lUX1RFU1RfREVGQVVMVF9JTklU SUFMX0JSQU5DSF9OQU1FPW1haW4KPiBleHBvcnQgR0lUX1RFU1RfREVGQVVMVF9JTklUSUFMX0JS QU5DSF9OQU1FCj4KPiAuIC4vdGVzdC1saWIuc2gKPisuICIkVEVTVF9ESVJFQ1RPUlkiL2xpYi1o dHRwZC5zaAo+K3N0YXJ0X2h0dHBkCj4KPiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCcgJwo+ Cj5AQCAtNDUsNiArNDcsNTEgQEAgdGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlzYWxsb3dzIC0tYmFy ZSB3aXRoIC0tc2VwYXJhdGUtZ2l0LWRpcicgJwo+Cj4gJwo+Cj4rdGVzdF9leHBlY3Rfc3VjY2Vz cyAnZmFpbCB0byBjbG9uZSBodHRwIHNoYWxsb3cgcmVwb3NpdG9yeScgJwo+KwlnaXQgY2xvbmUg LS1kZXB0aD0xIC0tbm8tbG9jYWwgcGFyZW50IHNoYWxsb3ctcmVwbyAmJgo+KwlnaXQgY2xvbmUg LS1iYXJlIC0tbm8tbG9jYWwgc2hhbGxvdy1yZXBvICIkSFRUUERfRE9DVU1FTlRfUk9PVF9QQVRI L3JlcG8uZ2l0IiAmJgo+Kwl0ZXN0X211c3RfZmFpbCBnaXQgY2xvbmUgLS1yZWplY3Qtc2hhbGxv dyAkSFRUUERfVVJML3NtYXJ0L3JlcG8uZ2l0IG91dCAyPmVyciAmJgo+Kwl0ZXN0X2kxOG5ncmVw IC1lICJzb3VyY2UgcmVwb3NpdG9yeSBpcyBzaGFsbG93LCByZWplY3QgdG8gY2xvbmUuIiBlcnIK PisKPisnCj4rCj4rdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmFpbCB0byBjbG9uZSBzaGFsbG93IHJl cG9zaXRvcnknICcKPisJcm0gLXJmIHNoYWxsb3ctcmVwbyAmJgo+KwlnaXQgY2xvbmUgLS1kZXB0 aD0xIC0tbm8tbG9jYWwgcGFyZW50IHNoYWxsb3ctcmVwbyAmJgo+Kwl0ZXN0X211c3RfZmFpbCBn aXQgY2xvbmUgLS1yZWplY3Qtc2hhbGxvdyBzaGFsbG93LXJlcG8gb3V0IDI+ZXJyICYmCj4rCXRl c3RfaTE4bmdyZXAgLWUgInNvdXJjZSByZXBvc2l0b3J5IGlzIHNoYWxsb3csIHJlamVjdCB0byBj bG9uZS4iIGVycgo+Kwo+KycKPisKPit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmYWlsIHRvIGNsb25l IG5vbi1sb2NhbCBzaGFsbG93IHJlcG9zaXRvcnknICcKPisJcm0gLXJmIHNoYWxsb3ctcmVwbyAm Jgo+KwlnaXQgY2xvbmUgLS1kZXB0aD0xIC0tbm8tbG9jYWwgcGFyZW50IHNoYWxsb3ctcmVwbyAm Jgo+Kwl0ZXN0X211c3RfZmFpbCBnaXQgY2xvbmUgLS1yZWplY3Qtc2hhbGxvdyAtLW5vLWxvY2Fs IHNoYWxsb3ctcmVwbyBvdXQgMj5lcnIgJiYKPisJdGVzdF9pMThuZ3JlcCAtZSAic291cmNlIHJl cG9zaXRvcnkgaXMgc2hhbGxvdywgcmVqZWN0IHRvIGNsb25lLiIgZXJyCj4rCj4rJwo+Kwo+K3Rl c3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25lIHNoYWxsb3cgcmVwb3NpdG9yeSB3aXRoIC0tbm8tcmVq ZWN0LXNoYWxsb3cnICcKPisJcm0gLXJmIHNoYWxsb3ctcmVwbyAmJgo+KwlnaXQgY2xvbmUgLS1k ZXB0aD0xIC0tbm8tbG9jYWwgcGFyZW50IHNoYWxsb3ctcmVwbyAmJgo+KwlnaXQgY2xvbmUgLS1u by1yZWplY3Qtc2hhbGxvdyAtLW5vLWxvY2FsIHNoYWxsb3ctcmVwbyBjbG9uZS1yZXBvCj4rCj4r Jwo+Kwo+K3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25lIG5vcm1hbCByZXBvc2l0b3J5IHdpdGgg LS1yZWplY3Qtc2hhbGxvdycgJwo+KwlybSAtcmYgY2xvbmUtcmVwbyAmJgo+KwlnaXQgY2xvbmUg LS1uby1sb2NhbCBwYXJlbnQgbm9ybWFsLXJlcG8gJiYKPisJZ2l0IGNsb25lIC0tcmVqZWN0LXNo YWxsb3cgLS1uby1sb2NhbCBub3JtYWwtcmVwbyBjbG9uZS1yZXBvCj4rCj4rJwo+Kwo+K3Rlc3Rf ZXhwZWN0X3N1Y2Nlc3MgJ3Vuc3BlY2lmaWVkIGFueSBjb25maWdzIG9yIG9wdGlvbnMnICcKPisJ cm0gLXJmIHNoYWxsb3ctcmVwbyBjbG9uZS1yZXBvICYmCj4rCWdpdCBjbG9uZSAtLWRlcHRoPTEg LS1uby1sb2NhbCBwYXJlbnQgc2hhbGxvdy1yZXBvICYmCj4rCWdpdCBjbG9uZSBzaGFsbG93LXJl cG8gY2xvbmUtcmVwbwo+Kwo+KycKPisKPiB0ZXN0X2V4cGVjdF9zdWNjZXNzICd1c2VzICJvcmln aW4iIGZvciBkZWZhdWx0IHJlbW90ZSBuYW1lJyAnCj4KPiBnaXQgY2xvbmUgcGFyZW50IGNsb25l LWRlZmF1bHQtb3JpZ2luICYmCj5kaWZmIC0tZ2l0IGEvdC90NTYxMS1jbG9uZS1jb25maWcuc2gg Yi90L3Q1NjExLWNsb25lLWNvbmZpZy5zaAo+aW5kZXggOWY1NTViODdlY2RmLi5kYTEwZDNmMTAz NTIgMTAwNzU1Cj4tLS0gYS90L3Q1NjExLWNsb25lLWNvbmZpZy5zaAo+KysrIGIvdC90NTYxMS1j bG9uZS1jb25maWcuc2gKPkBAIC05NSw2ICs5NSwzOCBAQCB0ZXN0X2V4cGVjdF9zdWNjZXNzICdj bG9uZSAtYyByZW1vdGUuPHJlbW90ZT4uZmV0Y2g9PHJlZnNwZWM+IC0tb3JpZ2luPTxuYW1lPicg Jwo+IHRlc3RfY21wIGV4cGVjdCBhY3R1YWwKPiAnCj4KPit0ZXN0X2V4cGVjdF9zdWNjZXNzICdj bG9uZS5yZWplY3RzaGFsbG93PXRydWUgc2hvdWxkIGZhaWwgdG8gY2xvbmUnICcKPisJcm0gLXJm IGNoaWxkICYmCj4rCWdpdCBjbG9uZSAtLWRlcHRoPTEgLS1uby1sb2NhbCAuIGNoaWxkICYmCj4r CXRlc3RfbXVzdF9mYWlsIGdpdCAtYyBjbG9uZS5yZWplY3RzaGFsbG93PXRydWUgY2xvbmUgLS1u by1sb2NhbCBjaGlsZCBvdXQgMj5lcnIgJiYKPisJdGVzdF9pMThuZ3JlcCAtZSAic291cmNlIHJl cG9zaXRvcnkgaXMgc2hhbGxvdywgcmVqZWN0IHRvIGNsb25lLiIgZXJyCj4rJwo+Kwo+K3Rlc3Rf ZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25lLnJlamVjdHNoYWxsb3c9ZmFsc2Ugc2hvdWxkIHN1Y2NlZWQn ICcKPisJcm0gLXJmIGNoaWxkIG91dCAmJgo+KwlnaXQgY2xvbmUgLS1kZXB0aD0xIC0tbm8tbG9j YWwgLiBjaGlsZCAmJgo+KwlnaXQgLWMgY2xvbmUucmVqZWN0c2hhbGxvdz1mYWxzZSBjbG9uZSAt LW5vLWxvY2FsIGNoaWxkIG91dAo+KycKPisKPit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZS5y ZWplY3RzaGFsbG93PXRydWUgc2hvdWxkIHN1Y2NlZWQgd2l0aCBub3JtYWwgcmVwbycgJwo+Kwly bSAtcmYgY2hpbGQgb3V0ICYmCj4rCWdpdCBjbG9uZSAtLW5vLWxvY2FsIC4gY2hpbGQgJiYKPisJ Z2l0IC1jIGNsb25lLnJlamVjdHNoYWxsb3c9dHJ1ZSBjbG9uZSAtLW5vLWxvY2FsIGNoaWxkIG91 dAo+KycKPisKPit0ZXN0X2V4cGVjdF9zdWNjZXNzICdvcHRpb24gLS1yZWplY3Qtc2hhbGxvdyBv dmVycmlkZSBjbG9uZS5yZWplY3RzaGFsbG93JyAnCj4rCXJtIC1yZiBjaGlsZCBvdXQgJiYKPisJ Z2l0IGNsb25lIC0tZGVwdGg9MSAtLW5vLWxvY2FsIC4gY2hpbGQgJiYKPisJdGVzdF9tdXN0X2Zh aWwgZ2l0IC1jIGNsb25lLnJlamVjdHNoYWxsb3c9ZmFsc2UgY2xvbmUgLS1yZWplY3Qtc2hhbGxv dyAtLW5vLWxvY2FsIGNoaWxkIG91dCAyPmVyciAmJgo+Kwl0ZXN0X2kxOG5ncmVwIC1lICJzb3Vy Y2UgcmVwb3NpdG9yeSBpcyBzaGFsbG93LCByZWplY3QgdG8gY2xvbmUuIiBlcnIKPisnCj4rCj4r dGVzdF9leHBlY3Rfc3VjY2VzcyAnb3B0aW9uIC0tbm8tcmVqZWN0LXNoYWxsb3cgb3ZlcnJpZGUg Y2xvbmUucmVqZWN0c2hhbGxvdycgJwo+KwlybSAtcmYgY2hpbGQgb3V0ICYmCj4rCWdpdCBjbG9u ZSAtLWRlcHRoPTEgLS1uby1sb2NhbCAuIGNoaWxkICYmCj4rCWdpdCAtYyBjbG9uZS5yZWplY3Rz aGFsbG93PXRydWUgY2xvbmUgLS1uby1yZWplY3Qtc2hhbGxvdyAtLW5vLWxvY2FsIGNoaWxkIG91 dAo+KycKPisKPiB0ZXN0X2V4cGVjdF9zdWNjZXNzIE1JTkdXICdjbG9uZSAtYyBjb3JlLmhpZGVE b3RGaWxlcycgJwo+IHRlc3RfY29tbWl0IGF0dHJpYnV0ZXMgLmdpdGF0dHJpYnV0ZXMgIiIgJiYK PiBybSAtcmYgY2hpbGQgJiYKPmRpZmYgLS1naXQgYS90cmFuc3BvcnQtaGVscGVyLmMgYi90cmFu c3BvcnQtaGVscGVyLmMKPmluZGV4IDQ5YjdmYjRkY2I5YS4uYjU3YjU1YzgxODBjIDEwMDY0NAo+ LS0tIGEvdHJhbnNwb3J0LWhlbHBlci5jCj4rKysgYi90cmFuc3BvcnQtaGVscGVyLmMKPkBAIC0y NjUsNyArMjY1LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmJvb2xlYW5fb3B0aW9uc1tdID0gewo+ IFRSQU5TX09QVF9USElOLAo+IFRSQU5TX09QVF9LRUVQLAo+IFRSQU5TX09QVF9GT0xMT1dUQUdT LAo+LQlUUkFOU19PUFRfREVFUEVOX1JFTEFUSVZFCj4rCVRSQU5TX09QVF9ERUVQRU5fUkVMQVRJ VkUsCj4rCVRSQU5TX09QVF9SRUpFQ1RfU0hBTExPVwo+IH07Cj4KPiBzdGF0aWMgaW50IHN0cmJ1 Zl9zZXRfaGVscGVyX29wdGlvbihzdHJ1Y3QgaGVscGVyX2RhdGEgKmRhdGEsCj5kaWZmIC0tZ2l0 IGEvdHJhbnNwb3J0LmMgYi90cmFuc3BvcnQuYwo+aW5kZXggYjEzZmFiNWRjM2IxLi4zNGZlMDEy MjFlZTAgMTAwNjQ0Cj4tLS0gYS90cmFuc3BvcnQuYwo+KysrIGIvdHJhbnNwb3J0LmMKPkBAIC0y MzYsNiArMjM2LDkgQEAgc3RhdGljIGludCBzZXRfZ2l0X29wdGlvbihzdHJ1Y3QgZ2l0X3RyYW5z cG9ydF9vcHRpb25zICpvcHRzLAo+IGxpc3Rfb2JqZWN0c19maWx0ZXJfZGllX2lmX3BvcHVsYXRl ZCgmb3B0cy0+ZmlsdGVyX29wdGlvbnMpOwo+IHBhcnNlX2xpc3Rfb2JqZWN0c19maWx0ZXIoJm9w dHMtPmZpbHRlcl9vcHRpb25zLCB2YWx1ZSk7Cj4gcmV0dXJuIDA7Cj4rCX0gZWxzZSBpZiAoIXN0 cmNtcChuYW1lLCBUUkFOU19PUFRfUkVKRUNUX1NIQUxMT1cpKSB7Cj4rCW9wdHMtPnJlamVjdF9z aGFsbG93ID0gISF2YWx1ZTsKPisJcmV0dXJuIDA7Cj4gfQo+IHJldHVybiAxOwo+IH0KPkBAIC0z NzAsNiArMzczLDcgQEAgc3RhdGljIGludCBmZXRjaF9yZWZzX3ZpYV9wYWNrKHN0cnVjdCB0cmFu c3BvcnQgKnRyYW5zcG9ydCwKPiBhcmdzLnN0YXRlbGVzc19ycGMgPSB0cmFuc3BvcnQtPnN0YXRl bGVzc19ycGM7Cj4gYXJncy5zZXJ2ZXJfb3B0aW9ucyA9IHRyYW5zcG9ydC0+c2VydmVyX29wdGlv bnM7Cj4gYXJncy5uZWdvdGlhdGlvbl90aXBzID0gZGF0YS0+b3B0aW9ucy5uZWdvdGlhdGlvbl90 aXBzOwo+KwlhcmdzLnJlbW90ZV9zaGFsbG93ID0gdHJhbnNwb3J0LT5zbWFydF9vcHRpb25zLT5y ZWplY3Rfc2hhbGxvdzsKPgo+IGlmICghZGF0YS0+Z290X3JlbW90ZV9oZWFkcykgewo+IGludCBp Owo+ZGlmZiAtLWdpdCBhL3RyYW5zcG9ydC5oIGIvdHJhbnNwb3J0LmgKPmluZGV4IDI0ZTE1Nzk5 ZTcxNC4uZjYyNzNkMjY4YjA5IDEwMDY0NAo+LS0tIGEvdHJhbnNwb3J0LmgKPisrKyBiL3RyYW5z cG9ydC5oCj5AQCAtMTQsNiArMTQsNyBAQCBzdHJ1Y3QgZ2l0X3RyYW5zcG9ydF9vcHRpb25zIHsK PiB1bnNpZ25lZCBjaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkIDogMTsKPiB1bnNp Z25lZCBzZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkIDogMTsKPiB1bnNpZ25lZCB1cGRhdGVf c2hhbGxvdyA6IDE7Cj4rCXVuc2lnbmVkIHJlamVjdF9zaGFsbG93IDogMTsKPiB1bnNpZ25lZCBk ZWVwZW5fcmVsYXRpdmUgOiAxOwo+Cj4gLyogc2VlIGRvY3VtZW50YXRpb24gb2YgY29ycmVzcG9u ZGluZyBmbGFnIGluIGZldGNoLXBhY2suaCAqLwo+QEAgLTE5NCw2ICsxOTUsOSBAQCB2b2lkIHRy YW5zcG9ydF9jaGVja19hbGxvd2VkKGNvbnN0IGNoYXIgKnR5cGUpOwo+IC8qIEFnZ3Jlc3NpdmVs eSBmZXRjaCBhbm5vdGF0ZWQgdGFncyBpZiBwb3NzaWJsZSAqLwo+ICNkZWZpbmUgVFJBTlNfT1BU X0ZPTExPV1RBR1MgImZvbGxvd3RhZ3MiCj4KPisvKiByZWplY3Qgc2hhbGxvdyByZXBvIHRyYW5z cG9ydMKgICovCj4rI2RlZmluZSBUUkFOU19PUFRfUkVKRUNUX1NIQUxMT1cgInJlamVjdHNoYWxs b3ciCj4rCj4gLyogQWNjZXB0IHJlZnMgdGhhdCBtYXkgdXBkYXRlIC5naXQvc2hhbGxvdyB3aXRo b3V0IC0tZGVwdGggKi8KPiAjZGVmaW5lIFRSQU5TX09QVF9VUERBVEVfU0hBTExPVyAidXBkYXRl c2hhbGxvdyIKPgo+Cj5iYXNlLWNvbW1pdDogMjI1MzY1ZmI1MTk1ZTgwNDI3NGFiNTY5YWMzY2M0 OTE5NDUxZGM3Zgo+LS0KPmdpdGdpdGdhZGdldAo+