From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id CF67D3858D34 for ; Fri, 27 Aug 2021 18:38:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CF67D3858D34 Received: from mail-il1-f200.google.com (mail-il1-f200.google.com [209.85.166.200]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-393-wnVH5Te2MS2-e7SDyLS71g-1; Fri, 27 Aug 2021 14:38:39 -0400 X-MC-Unique: wnVH5Te2MS2-e7SDyLS71g-1 Received: by mail-il1-f200.google.com with SMTP id c16-20020a92cf500000b02902243aec7e27so4734133ilr.22 for ; Fri, 27 Aug 2021 11:38:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gIHufgTjOM4oN4z1cdcGregXle7sZbIx/zAH9XKDaGk=; b=oDpW8XDJkBhUiepi1QcJi3pJ33i/hOLnIRPfZQI8eTDIzT3syGPbxnzfLIuqsrz1HZ iE+U40zzMEZc6Z+qiKSiAv6hi7UxEYv5hiLnWlNbd8RUSu9d2muc/8mHfnji5psBrGN9 OB/+XCpD/hND6qws3X0eAMoVRjdlmRY411sXmHi11uMsR8e0uBAJ9ezrIaZyx7wAh+Kw 8nEXCdlZMQJ+8PK0782vytu1Ujn6SxeeQkLoVEepRwRzq+G0qwKyEFKpCR1T2zSJvS4n 1VBrSaiPE0bNsoSdzNWOdAxDImTfhWQqCceaSKWJU2vpCpaEFz2DLu6WQGg8goxmLtYy 3Qrw== X-Gm-Message-State: AOAM533s9XAZP+BDuaWCQFaOPNBaXY1NqoBiLjw6l9m6Tfw81DONzI/y o3Njcvae4O76+pMC63qBn/JXE1KST+MZBQElZniKxg5sbf4lMtIt1Y1W8i9AFx8nTuvKGHvAnYi WXcN1sZ7MadAHMUHZHM5bNxtgoe5bcxWXUWMbC7tjjQ== X-Received: by 2002:a5e:9819:: with SMTP id s25mr8682041ioj.63.1630089518903; Fri, 27 Aug 2021 11:38:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwLKXBciVAZt68oHPTdVX6R9oN6JimR+z6ZVlbM5qi0DHW2ob/jOm2zbqbt0Bwmj/ND9LSTFOIVUES7OdlHZMA= X-Received: by 2002:a5e:9819:: with SMTP id s25mr8682030ioj.63.1630089518705; Fri, 27 Aug 2021 11:38:38 -0700 (PDT) MIME-Version: 1.0 References: <20210805165402.GD4195@redhat.com> <35f2073dfeed8f008d42a78bf60b7efcf13164eb.camel@klomp.org> <20210806185459.GE4195@redhat.com> <9ac621fee207ef233873c40843b3d34ced9019cc.camel@klomp.org> In-Reply-To: From: Noah Sanci Date: Fri, 27 Aug 2021 14:38:27 -0400 Message-ID: Subject: Re: [Bug debuginfod/27277] Describe retrieved files when verbose To: Mark Wielaard Cc: "Frank Ch. Eigler" , elfutils-devel@sourceware.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="000000000000b71d1e05ca8eca8b" X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_BADIPHTTP, KAM_SHORT, NUMERIC_HTTP_ADDR, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Aug 2021 18:38:52 -0000 --000000000000b71d1e05ca8eca8b Content-Type: text/plain; charset="UTF-8" Hello, Here is the patch which prints the http headers when verbose. -Noah Sanci On Tue, Aug 24, 2021 at 4:19 AM Mark Wielaard wrote: > > Hi Noah, > > On Mon, 2021-08-23 at 11:11 -0400, Noah Sanci wrote: > > I'm back to working on this patch, thanks for your patience and > > comments. > > > > On Mon, Aug 9, 2021 at 5:27 AM Mark Wielaard wrote: > > > Yes, separate the verbose printing of http headers (which I really do > > > like) from providing an interface to query what needs to be done to get > > > some file (is it in cache, can it be retieved from a remote server, how > > > big is it?) I don't think providing raw http headers is that interface. > > > > Should I separate the verbose printing of http headers and the new > > interface into > > different PRs? > > Yes, separate bugs/patches for the two features would be ideal IMHO. > > Thanks, > > Mark > --000000000000b71d1e05ca8eca8b Content-Type: text/x-patch; charset="US-ASCII"; name="0001-debuginfod-PR27277-Describe-retrieved-files-when-ver.patch" Content-Disposition: attachment; filename="0001-debuginfod-PR27277-Describe-retrieved-files-when-ver.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ksup67af0 RnJvbSBlZDc2Mzg1NzFmMTg4ZTM0NmRkNDY2YzE5NWI5ZWJkYTAyOGQxYzY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIFNhbmNpIDxuc2FuY2lAcmVkaGF0LmNvbT4KRGF0ZTog V2VkLCAyOCBKdWwgMjAyMSAxNDo0NjowNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGRlYnVnaW5m b2Q6IFBSMjcyNzcgLSBEZXNjcmliZSByZXRyaWV2ZWQgZmlsZXMgd2hlbiB2ZXJib3NlCgpUaGVy ZSBhcHBlYXIgdG8gZXhpc3QgdXNlIGNhc2VzIHRoYXQgaW50ZW5kIHRvIHNpbXBseSBjaGVjayBm b3IgdGhlCmV4aXN0ZW5jZSBvZiBjb250ZW50IGluIGEgZGVidWdpbmZvZCBzZXJ2ZXIsIHdpdGhv dXQgYWN0dWFsbHkKZG93bmxvYWRpbmcgaXQuICBJbiBIVFRQIGxhbmQsIHRoZSBIRUFEIG9wZXJh dGlvbiBpcyB0aGUgbmF0dXJhbApleHByZXNzaW9uIG9mIHRoaXMuCkluc3RlYWQgb2YgaW1wbGVt ZW50aW5nIGEgSEVBRC9kZXNjcmliZSBvcHRpb24sIGFsbG93IHVzZXJzLCB3aXRoIGVub3VnaAp2 ZXJib3NpdHksIHRvIHByaW50IHRoZSBIVFRQIHJlc3BvbnNlIGhlYWRlcnMgdXBvbiByZXRyaWV2 aW5nIGEgZmlsZS4KRS5nIG91dHB1dDoKCkhUVFAvMS4xIDIwMCBPSwpDb25uZWN0aW9uOiBLZWVw LUFsaXZlCkNvbnRlbnQtTGVuZ3RoOiAyNDI4MjQwCkNhY2hlLUNvbnRyb2w6IHB1YmxpYwpMYXN0 LU1vZGlmaWVkOiBTYXQsIDE1IE1heSAyMDIxIDIwOjQ5OjUxIEdNVApYLUZJTEU6ICJmaWxlIG5h bWUiClgtRklMRS1TSVpFOiAiYnl0ZSBsZW5ndGggb2YgZmlsZSIKQ29udGVudC1UeXBlOiBhcHBs aWNhdGlvbi9vY3RldC1zdHJlYW0KRGF0ZTogVHVlLCAwMyBBdWcgMjAyMSAxODo1MDozNiBHTVQK Cmh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI3Mjc3CgpT aWduZWQtb2ZmLWJ5OiBOb2FoIFNhbmNpIDxuc2FuY2lAcmVkaGF0LmNvbT4KLS0tCiBkZWJ1Z2lu Zm9kL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgIHwgIDE1ICsrCiBkZWJ1Z2luZm9kL2Rl YnVnaW5mb2QtY2xpZW50LmMgICAgICAgICAgIHwgIDU4ICsrKysrKy0KIGRlYnVnaW5mb2QvZGVi dWdpbmZvZC5jeHggICAgICAgICAgICAgICAgfCAgMTEgKysKIGRvYy9DaGFuZ2VMb2cgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogZG9jL2RlYnVnaW5mb2QtZmluZC4xICAgICAg ICAgICAgICAgICAgICB8ICAgMyArLQogZG9jL2RlYnVnaW5mb2QuOCAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgNyArCiB0ZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA3ICsKIHRlc3RzL01ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMg Ky0KIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLXJlc3BvbnNlLWhlYWRlcnMuc2ggfCAxOTQgKysrKysr KysrKysrKysrKysrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwgMjk5IGluc2VydGlvbnMoKyksIDYg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVuLWRlYnVnaW5mb2QtcmVz cG9uc2UtaGVhZGVycy5zaAoKZGlmZiAtLWdpdCBhL2RlYnVnaW5mb2QvQ2hhbmdlTG9nIGIvZGVi dWdpbmZvZC9DaGFuZ2VMb2cKaW5kZXggMzk1YWY5NGYuLmQ5MTFkNWI1IDEwMDY0NAotLS0gYS9k ZWJ1Z2luZm9kL0NoYW5nZUxvZworKysgYi9kZWJ1Z2luZm9kL0NoYW5nZUxvZwpAQCAtMTYsNiAr MTYsMjEgQEAKIAkqIGRlYnVnaW5mb2QuY3h4IChoYW5kbGVyX2NiKTogRml4IGFmdGVyX3lvdSB1 bmlxdWVfc2V0IGtleQogCXRvIHRoZSBlbnRpcmUgaW5jb21pbmcgVVJMLgogCisyMDIxLTA4LTAy ICBOb2FoIFNhbmNpICA8bnNhbmNpQHJlZGhhdC5jb20+CisKKwlQUjI3Mjc3CisJKiBkZWJ1Z2lu Zm9kLWNsaWVudC5jIChzdHJ1Y3QgZGVidWdpbmZvZF9jbGllbnQpOiBOZXcgZmllbGQKKwl3aW5u aW5nX2hlYWRlcnMuCisJKHN0cnVjdCBoYW5kbGVfZGF0YSk6IE5ldyBmaWVsZCByZXNwb25zZV9k YXRhLgorCShoZWFkZXJfY2FsbGJhY2spOiBTdG9yZSByZWNlaXZlZCBoZWFkZXJzIGluIHJlc3Bv bnNlX2RhdGEuCisJKGRlYnVnaW5mb2RfcXVlcnlfc2VydmVyKTogQWN0aXZhdGUgQ1VSTE9QVF9I RUFERVJGVU5DVElPTi4KKwlTYXZlIHdpbm5pbmcgcmVzcG9uc2VfZGF0YS4KKwkoZGVidWdpbmZv ZF9lbmQpOiBmcmVlIGNsaWVudCB3aW5uaW5nIGhlYWRlcnMuCisJKiBkZWJ1Z2luZm9kLmN4eCAo aGFuZGxlX2J1aWxkaWRfZl9tYXRjaCk6IHJlbW92ZSBYLUZJTEUgcGF0aC4gQWRkCisJWC1GSUxF IGFuZCBYLUZJTEUtU0laRSBoZWFkZXJzLgorCShoYW5kbGVfYnVpbGRpZF9yX21hdGNoKTogcmVt b3ZlIFgtRklMRSBwYXRoLiBBZGQgWC1GSUxFLCBYLUZJTEUtU0laRQorCWhlYWRlcnMsIGFuZCBY LUFSQ0hJVkUgaGVhZGVycy4KKwogMjAyMS0wNy0yNiAgTm9haCBTYW5jaSAgPG5zYW5jaUByZWRo YXQuY29tPgogCiAJUFIyNzk4MgpkaWZmIC0tZ2l0IGEvZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWNs aWVudC5jIGIvZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWNsaWVudC5jCmluZGV4IDdkNGIyMjBmLi5l YjUyZGRkZiAxMDA2NDQKLS0tIGEvZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWNsaWVudC5jCisrKyBi L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1jbGllbnQuYwpAQCAtMTI3LDYgKzEyNyw3IEBAIHN0cnVj dCBkZWJ1Z2luZm9kX2NsaWVudAogICAgICB0aW1lb3V0IG9yIG90aGVyIGluZm8gZ290dGVuIGZy b20gZW52aXJvbm1lbnQgdmFyaWFibGVzLCB0aGUKICAgICAgaGFuZGxlIGRhdGEsIGV0Yy4gU28g dGhvc2UgZG9uJ3QgaGF2ZSB0byBiZSByZXBhcnNlZCBhbmQKICAgICAgcmVjcmVhdGVkIG9uIGVh Y2ggcmVxdWVzdC4gICovCisgIGNoYXIgKiB3aW5uaW5nX2hlYWRlcnM7CiB9OwogCiAvKiBUaGUg Y2FjaGVfY2xlYW5faW50ZXJ2YWxfcyBmaWxlIHdpdGhpbiB0aGUgZGVidWdpbmZvZCBjYWNoZSBz cGVjaWZpZXMKQEAgLTE4Myw2ICsxODQsOCBAQCBzdHJ1Y3QgaGFuZGxlX2RhdGEKICAgICAgdG8g dGhlIGNhY2hlLiBVc2VkIHRvIGVuc3VyZSB0aGF0IGEgZmlsZSBpcyBub3QgZG93bmxvYWRlZCBm cm9tCiAgICAgIG11bHRpcGxlIHNlcnZlcnMgdW5uZWNlc3NhcmlseS4gICovCiAgIENVUkwgKip0 YXJnZXRfaGFuZGxlOworICAvKiBSZXNwb25zZSBodHRwIGhlYWRlcnMgZm9yIHRoaXMgY2xpZW50 IGhhbmRsZSwgc2VudCBmcm9tIHRoZSBzZXJ2ZXIgKi8KKyAgY2hhciAqcmVzcG9uc2VfZGF0YTsK IH07CiAKIHN0YXRpYyBzaXplX3QKQEAgLTQ5OSw2ICs1MDIsMzMgQEAgZGVmYXVsdF9wcm9ncmVz c2ZuIChkZWJ1Z2luZm9kX2NsaWVudCAqYywgbG9uZyBhLCBsb25nIGIpCiB9CiAKIAorc3RhdGlj IHNpemVfdAoraGVhZGVyX2NhbGxiYWNrIChjaGFyICogYnVmZmVyLCBzaXplX3Qgc2l6ZSwgc2l6 ZV90IG51bWl0ZW1zLCB2b2lkICogdXNlcmRhdGEpCit7CisgIGlmIChzaXplICE9IDEpCisgICAg cmV0dXJuIDA7CisgIC8qIFRlbXBvcmFyeSBidWZmZXIgZm9yIHJlYWxsb2MgKi8KKyAgY2hhciAq dGVtcCA9IE5VTEw7CisgIHNpemVfdCB1c2VybGVuID0gMDsKKyAgaWYgKCooY2hhcioqKXVzZXJk YXRhID09IE5VTEwpCisgICAgeworICAgICAgdGVtcCA9IG1hbGxvYyhudW1pdGVtcysxKTsKKyAg ICAgIGlmICh0ZW1wID09IE5VTEwpCisgICAgICAgIHJldHVybiAwOworICAgICAgbWVtc2V0KHRl bXAsICdcMCcsIG51bWl0ZW1zKzEpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIHVzZXJs ZW4gPSBzdHJsZW4oKihjaGFyKiopdXNlcmRhdGEpOworICAgICAgdGVtcCA9IHJlYWxsb2MoKihj aGFyKiopdXNlcmRhdGEsIHVzZXJsZW4gKyBudW1pdGVtcyArIDEpOworICAgICAgaWYgKHRlbXAg PT0gTlVMTCkKKyAgICAgICByZXR1cm4gMDsKKyAgICB9CisgIHN0cm5jYXQodGVtcCwgYnVmZmVy LCBudW1pdGVtcyk7CisgICooY2hhcioqKXVzZXJkYXRhID0gdGVtcDsKKyAgcmV0dXJuIG51bWl0 ZW1zOworfQorCiAvKiBRdWVyeSBlYWNoIG9mIHRoZSBzZXJ2ZXIgVVJMcyBmb3VuZCBpbiAkREVC VUdJTkZPRF9VUkxTIGZvciB0aGUgZmlsZQogICAgd2l0aCB0aGUgc3BlY2lmaWVkIGJ1aWxkLWlk LCB0eXBlIChkZWJ1Z2luZm8sIGV4ZWN1dGFibGUgb3Igc291cmNlKQogICAgYW5kIGZpbGVuYW1l LiBmaWxlbmFtZSBtYXkgYmUgTlVMTC4gSWYgZm91bmQsIHJldHVybiBhIGZpbGUKQEAgLTkzNiwx MCArOTY2LDEzIEBAIGRlYnVnaW5mb2RfcXVlcnlfc2VydmVyIChkZWJ1Z2luZm9kX2NsaWVudCAq YywKIAkgIGN1cmxfZWFzeV9zZXRvcHQgKGRhdGFbaV0uaGFuZGxlLCBDVVJMT1BUX0xPV19TUEVF RF9MSU1JVCwKIAkJCSAgICAxMDAgKiAxMDI0TCk7CiAJfQorICAgICAgZGF0YVtpXS5yZXNwb25z ZV9kYXRhID0gTlVMTDsKICAgICAgIGN1cmxfZWFzeV9zZXRvcHQoZGF0YVtpXS5oYW5kbGUsIENV UkxPUFRfRklMRVRJTUUsIChsb25nKSAxKTsKICAgICAgIGN1cmxfZWFzeV9zZXRvcHQoZGF0YVtp XS5oYW5kbGUsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIChsb25nKSAxKTsKICAgICAgIGN1cmxf ZWFzeV9zZXRvcHQoZGF0YVtpXS5oYW5kbGUsIENVUkxPUFRfRkFJTE9ORVJST1IsIChsb25nKSAx KTsKICAgICAgIGN1cmxfZWFzeV9zZXRvcHQoZGF0YVtpXS5oYW5kbGUsIENVUkxPUFRfTk9TSUdO QUwsIChsb25nKSAxKTsKKyAgICAgIGN1cmxfZWFzeV9zZXRvcHQoZGF0YVtpXS5oYW5kbGUsIENV UkxPUFRfSEVBREVSRlVOQ1RJT04sIGhlYWRlcl9jYWxsYmFjayk7CisgICAgICBjdXJsX2Vhc3lf c2V0b3B0KGRhdGFbaV0uaGFuZGxlLCBDVVJMT1BUX0hFQURFUkRBVEEsICh2b2lkICopICYoZGF0 YVtpXS5yZXNwb25zZV9kYXRhKSk7CiAjaWYgTElCQ1VSTF9WRVJTSU9OX05VTSA+PSAweDA3MmEw MCAvKiA3LjQyLjAgKi8KICAgICAgIGN1cmxfZWFzeV9zZXRvcHQoZGF0YVtpXS5oYW5kbGUsIENV UkxPUFRfUEFUSF9BU19JUywgKGxvbmcpIDEpOwogI2Vsc2UKQEAgLTk2MSw2ICs5OTQsNyBAQCBk ZWJ1Z2luZm9kX3F1ZXJ5X3NlcnZlciAoZGVidWdpbmZvZF9jbGllbnQgKmMsCiAgIGludCBjb21t aXR0ZWRfdG8gPSAtMTsKICAgYm9vbCB2ZXJib3NlX3JlcG9ydGVkID0gZmFsc2U7CiAgIHN0cnVj dCB0aW1lc3BlYyBzdGFydF90aW1lLCBjdXJfdGltZTsKKyAgYy0+d2lubmluZ19oZWFkZXJzID0g TlVMTDsKICAgaWYgKCBtYXh0aW1lID4gMCAmJiBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05J Q19SQVcsICZzdGFydF90aW1lKSA9PSAtMSkKICAgICB7CiAgICAgICByYyA9IGVycm5vOwpAQCAt OTk1LDggKzEwMjksMTggQEAgZGVidWdpbmZvZF9xdWVyeV9zZXJ2ZXIgKGRlYnVnaW5mb2RfY2xp ZW50ICpjLAogCSAgICBpZiAoZGF0YVtpXS5oYW5kbGUgIT0gdGFyZ2V0X2hhbmRsZSkKIAkgICAg ICBjdXJsX211bHRpX3JlbW92ZV9oYW5kbGUoY3VybG0sIGRhdGFbaV0uaGFuZGxlKTsKIAkgICAg ZWxzZQotCSAgICAgIGNvbW1pdHRlZF90byA9IGk7Ci0JfQorICAgICAgICAgICAgICB7CisJICAg ICAgICBjb21taXR0ZWRfdG8gPSBpOworICAgICAgICAgICAgICAgIGlmIChjLT53aW5uaW5nX2hl YWRlcnMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg Yy0+d2lubmluZ19oZWFkZXJzID0gZGF0YVtjb21taXR0ZWRfdG9dLnJlc3BvbnNlX2RhdGE7Cisg ICAgICAgICAgICAgICAgICAgIGlmICh2ZmQgPj0gMCAmJiBjLT53aW5uaW5nX2hlYWRlcnMgIT0g TlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICBkcHJpbnRmKHZmZCwgIlxuJXMiLCBjLT53aW5u aW5nX2hlYWRlcnMpOworICAgICAgICAgICAgICAgICAgICBkYXRhW2NvbW1pdHRlZF90b10ucmVz cG9uc2VfZGF0YSA9IE5VTEw7CisgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg fQorICAgICAgICB9CiAKICAgICAgIGlmICh2ZmQgPj0gMCAmJiAhdmVyYm9zZV9yZXBvcnRlZCAm JiBjb21taXR0ZWRfdG8gPj0gMCkKIAl7CkBAIC0xMTYxLDEwICsxMjA1LDEwIEBAIGRlYnVnaW5m b2RfcXVlcnlfc2VydmVyIChkZWJ1Z2luZm9kX2NsaWVudCAqYywKICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICBjaGFyICplZmZlY3RpdmVfdXJsID0gTlVMTDsKICAgICAgICAg ICAgICAgICAgIGxvbmcgcmVzcF9jb2RlID0gNTAwOwotICAgICAgICAgICAgICAgICAgQ1VSTGNv ZGUgb2sxID0gY3VybF9lYXN5X2dldGluZm8gKHRhcmdldF9oYW5kbGUsCisgICAgICAgICAgICAg ICAgICBDVVJMY29kZSBvazEgPSBjdXJsX2Vhc3lfZ2V0aW5mbyAobXNnLT5lYXN5X2hhbmRsZSwK IAkJCQkJCSAgICBDVVJMSU5GT19FRkZFQ1RJVkVfVVJMLAogCQkJCQkJICAgICZlZmZlY3RpdmVf dXJsKTsKLSAgICAgICAgICAgICAgICAgIENVUkxjb2RlIG9rMiA9IGN1cmxfZWFzeV9nZXRpbmZv ICh0YXJnZXRfaGFuZGxlLAorICAgICAgICAgICAgICAgICAgQ1VSTGNvZGUgb2syID0gY3VybF9l YXN5X2dldGluZm8gKG1zZy0+ZWFzeV9oYW5kbGUsCiAJCQkJCQkgICAgQ1VSTElORk9fUkVTUE9O U0VfQ09ERSwKIAkJCQkJCSAgICAmcmVzcF9jb2RlKTsKICAgICAgICAgICAgICAgICAgIGlmKG9r MSA9PSBDVVJMRV9PSyAmJiBvazIgPT0gQ1VSTEVfT0sgJiYgZWZmZWN0aXZlX3VybCkKQEAgLTEy MzgsNyArMTI4MiwxMCBAQCBkZWJ1Z2luZm9kX3F1ZXJ5X3NlcnZlciAoZGVidWdpbmZvZF9jbGll bnQgKmMsCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGN1cmxfbXVsdGlfcmVtb3ZlX2hh bmRsZShjdXJsbSwgZGF0YVtpXS5oYW5kbGUpOyAvKiBvayB0byByZXBlYXQgKi8KICAgICAgICAg ICAgICAgY3VybF9lYXN5X2NsZWFudXAgKGRhdGFbaV0uaGFuZGxlKTsKKyAgICAgICAgICAgICAg ZnJlZShkYXRhW2ldLnJlc3BvbnNlX2RhdGEpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAg ZnJlZShjLT53aW5uaW5nX2hlYWRlcnMpOworICAgICAgICAgICAgYy0+d2lubmluZ19oZWFkZXJz ID0gTlVMTDsKIAkgICAgZ290byBxdWVyeV9pbl9wYXJhbGxlbDsKIAl9CiAgICAgICBlbHNlCkBA IC0xMjgxLDYgKzEzMjgsNyBAQCBkZWJ1Z2luZm9kX3F1ZXJ5X3NlcnZlciAoZGVidWdpbmZvZF9j bGllbnQgKmMsCiAgICAgewogICAgICAgY3VybF9tdWx0aV9yZW1vdmVfaGFuZGxlKGN1cmxtLCBk YXRhW2ldLmhhbmRsZSk7IC8qIG9rIHRvIHJlcGVhdCAqLwogICAgICAgY3VybF9lYXN5X2NsZWFu dXAgKGRhdGFbaV0uaGFuZGxlKTsKKyAgICAgIGZyZWUgKGRhdGFbaV0ucmVzcG9uc2VfZGF0YSk7 CiAgICAgfQogCiAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3VybHM7ICsraSkKQEAgLTEzMDQs NiArMTM1Miw3IEBAIGRlYnVnaW5mb2RfcXVlcnlfc2VydmVyIChkZWJ1Z2luZm9kX2NsaWVudCAq YywKICAgICB7CiAgICAgICBjdXJsX211bHRpX3JlbW92ZV9oYW5kbGUoY3VybG0sIGRhdGFbaV0u aGFuZGxlKTsgLyogb2sgdG8gcmVwZWF0ICovCiAgICAgICBjdXJsX2Vhc3lfY2xlYW51cCAoZGF0 YVtpXS5oYW5kbGUpOworICAgICAgZnJlZSAoZGF0YVtpXS5yZXNwb25zZV9kYXRhKTsKICAgICB9 CiAKICAgdW5saW5rICh0YXJnZXRfY2FjaGVfdG1wcGF0aCk7CkBAIC0xNDE1LDYgKzE0NjQsNyBA QCBkZWJ1Z2luZm9kX2VuZCAoZGVidWdpbmZvZF9jbGllbnQgKmNsaWVudCkKIAogICBjdXJsX211 bHRpX2NsZWFudXAgKGNsaWVudC0+c2VydmVyX21oYW5kbGUpOwogICBjdXJsX3NsaXN0X2ZyZWVf YWxsIChjbGllbnQtPmhlYWRlcnMpOworICBmcmVlIChjbGllbnQtPndpbm5pbmdfaGVhZGVycyk7 CiAgIGZyZWUgKGNsaWVudC0+dXJsKTsKICAgZnJlZSAoY2xpZW50KTsKIH0KZGlmZiAtLWdpdCBh L2RlYnVnaW5mb2QvZGVidWdpbmZvZC5jeHggYi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QuY3h4Cmlu ZGV4IDZlMTgyYTg0Li5lOWI3ZTc2YyAxMDA2NDQKLS0tIGEvZGVidWdpbmZvZC9kZWJ1Z2luZm9k LmN4eAorKysgYi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QuY3h4CkBAIC0xMDY4LDYgKzEwNjgsOSBA QCBoYW5kbGVfYnVpbGRpZF9mX21hdGNoIChib29sIGludGVybmFsX3JlcV90LAogICBlbHNlCiAg ICAgewogICAgICAgTUhEX2FkZF9yZXNwb25zZV9oZWFkZXIgKHIsICJDb250ZW50LVR5cGUiLCAi YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7CisgICAgICBzdGQ6OnN0cmluZyBmaWxlID0gYl9z b3VyY2UwLnN1YnN0cihiX3NvdXJjZTAuZmluZF9sYXN0X29mKCIvIikrMSwgYl9zb3VyY2UwLmxl bmd0aCgpKTsKKyAgICAgIE1IRF9hZGRfcmVzcG9uc2VfaGVhZGVyIChyLCAiWC1GSUxFLVNJWkUi LCB0b19zdHJpbmcocy5zdF9zaXplKS5jX3N0cigpICk7CisgICAgICBNSERfYWRkX3Jlc3BvbnNl X2hlYWRlciAociwgIlgtRklMRSIsIGZpbGUuY19zdHIoKSApOwogICAgICAgYWRkX21oZF9sYXN0 X21vZGlmaWVkIChyLCBzLnN0X210aW1lKTsKICAgICAgIGlmICh2ZXJib3NlID4gMSkKICAgICAg ICAgb2JhdGNoZWQoY2xvZykgPDwgInNlcnZpbmcgZmlsZSAiIDw8IGJfc291cmNlMCA8PCBlbmRs OwpAQCAtMTUzNyw2ICsxNTQwLDkgQEAgaGFuZGxlX2J1aWxkaWRfcl9tYXRjaCAoYm9vbCBpbnRl cm5hbF9yZXFfcCwKICAgICAgIGluY19tZXRyaWMgKCJodHRwX3Jlc3BvbnNlc190b3RhbCIsInJl c3VsdCIsImFyY2hpdmUgZmRjYWNoZSIpOwogCiAgICAgICBNSERfYWRkX3Jlc3BvbnNlX2hlYWRl ciAociwgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTsKKyAgICAg IE1IRF9hZGRfcmVzcG9uc2VfaGVhZGVyIChyLCAiWC1GSUxFLVNJWkUiLCB0b19zdHJpbmcoZnMu c3Rfc2l6ZSkuY19zdHIoKSk7CisgICAgICBNSERfYWRkX3Jlc3BvbnNlX2hlYWRlciAociwgIlgt QVJDSElWRSIsIGJfc291cmNlMC5jX3N0cigpKTsKKyAgICAgIE1IRF9hZGRfcmVzcG9uc2VfaGVh ZGVyIChyLCAiWC1GSUxFIiwgYl9zb3VyY2UxLmNfc3RyKCkpOwogICAgICAgYWRkX21oZF9sYXN0 X21vZGlmaWVkIChyLCBmcy5zdF9tdGltZSk7CiAgICAgICBpZiAodmVyYm9zZSA+IDEpCiAgICAg ICAgIG9iYXRjaGVkKGNsb2cpIDw8ICJzZXJ2aW5nIGZkY2FjaGUgYXJjaGl2ZSAiIDw8IGJfc291 cmNlMCA8PCAiIGZpbGUgIiA8PCBiX3NvdXJjZTEgPDwgZW5kbDsKQEAgLTE2NzgsNiArMTY4NCwx MSBAQCBoYW5kbGVfYnVpbGRpZF9yX21hdGNoIChib29sIGludGVybmFsX3JlcV9wLAogICAgICAg ZWxzZQogICAgICAgICB7CiAgICAgICAgICAgTUhEX2FkZF9yZXNwb25zZV9oZWFkZXIgKHIsICJD b250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7CisgICAgICAgICAgc3Rk OjpzdHJpbmcgZmlsZSA9IGJfc291cmNlMS5zdWJzdHIoYl9zb3VyY2UxLmZpbmRfbGFzdF9vZigi LyIpKzEsIGJfc291cmNlMS5sZW5ndGgoKSk7CisgICAgICAgICAgTUhEX2FkZF9yZXNwb25zZV9o ZWFkZXIgKHIsICJYLUZJTEUtU0laRSIsIHRvX3N0cmluZyhmcy5zdF9zaXplKS5jX3N0cigpKTsK KyAgICAgICAgICBNSERfYWRkX3Jlc3BvbnNlX2hlYWRlciAociwgIlgtQVJDSElWRSIsIGJfc291 cmNlMC5jX3N0cigpKTsKKyAgICAgICAgICBNSERfYWRkX3Jlc3BvbnNlX2hlYWRlciAociwgIlgt RklMRSIsIGZpbGUuY19zdHIoKSk7CisKICAgICAgICAgICBhZGRfbWhkX2xhc3RfbW9kaWZpZWQg KHIsIGFyY2hpdmVfZW50cnlfbXRpbWUoZSkpOwogICAgICAgICAgIGlmICh2ZXJib3NlID4gMSkK ICAgICAgICAgICAgIG9iYXRjaGVkKGNsb2cpIDw8ICJzZXJ2aW5nIGFyY2hpdmUgIiA8PCBiX3Nv dXJjZTAgPDwgIiBmaWxlICIgPDwgYl9zb3VyY2UxIDw8IGVuZGw7CmRpZmYgLS1naXQgYS9kb2Mv Q2hhbmdlTG9nIGIvZG9jL0NoYW5nZUxvZwppbmRleCBkNWYzNGYwZi4uZDUxOTg0MDQgMTAwNjQ0 Ci0tLSBhL2RvYy9DaGFuZ2VMb2cKKysrIGIvZG9jL0NoYW5nZUxvZwpAQCAtMTQsNiArMTQsMTMg QEAKIAkqIE1ha2VmaWxlLmFtOiBVcGRhdGVkIHRvIGluY2x1ZGUgZGVidWdpbmZvZC1jbGllbnQt Y29uZmlnLjcKIAkqIG1hbjMsIG1hbjc6IFN5bWxpbmtzIGZvciBzb3VyY2UgdHJlZSBtYW4gcGFn ZSB0ZXN0aW5nLgogCisyMDIxLTA4LTA0ICBOb2FoIFNhbmNpICA8bnNhbmNpQHJlZGhhdC5jb20+ CisKKwlQUjI3Mjc3CisJKiBkZWJ1Z2luZm9kLWZpbmQuMTogSW5jcmVhc2luZyB2ZXJib3NpdHkg ZGVzY3JpYmVzIHRoZSBkb3dubG9hZGVkCisJZmlsZS4KKwkqIGRlYnVnaW5mb2QuODogRGVzY3Jp YmUgWC1GSUxFLCBYLUZJTEUtU0laRSwgYW5kIFgtQVJDSElWRS4KKwogMjAyMS0wNy0yNiAgTm9h aCBTYW5jaSA8bnNhbmNpQHJlZGhhdC5jb20+CiAKIAlQUjI3OTgyCmRpZmYgLS1naXQgYS9kb2Mv ZGVidWdpbmZvZC1maW5kLjEgYi9kb2MvZGVidWdpbmZvZC1maW5kLjEKaW5kZXggYTYxNjczZjUu Ljk1N2VjN2U3IDEwMDY0NAotLS0gYS9kb2MvZGVidWdpbmZvZC1maW5kLjEKKysrIGIvZG9jL2Rl YnVnaW5mb2QtZmluZC4xCkBAIC0xMTAsNyArMTEwLDggQEAgbCBsLgogCiAuVFAKIC5CICJcLXYi Ci1JbmNyZWFzZSB2ZXJib3NpdHksIGluY2x1ZGluZyBwcmludGluZyBmcmVxdWVudCBkb3dubG9h ZC1wcm9ncmVzcyBtZXNzYWdlcy4KK0luY3JlYXNlIHZlcmJvc2l0eSwgaW5jbHVkaW5nIHByaW50 aW5nIGZyZXF1ZW50IGRvd25sb2FkLXByb2dyZXNzIG1lc3NhZ2VzCithbmQgcHJpbnRpbmcgdGhl IGh0dHAgcmVzcG9uc2UgaGVhZGVycyBmcm9tIHRoZSBzZXJ2ZXIuCiAKIAogLlNIICJTRUNVUklU WSIKZGlmZiAtLWdpdCBhL2RvYy9kZWJ1Z2luZm9kLjggYi9kb2MvZGVidWdpbmZvZC44CmluZGV4 IDViMGQ3OTNjLi5lOWM1OGZiYiAxMDA2NDQKLS0tIGEvZG9jL2RlYnVnaW5mb2QuOAorKysgYi9k b2MvZGVidWdpbmZvZC44CkBAIC0yNTYsNiArMjU2LDEzIEBAIFVua25vd24gYnVpbGRpZCAvIHJl cXVlc3QgY29tYmluYXRpb25zIHJlc3VsdCBpbiBIVFRQIGVycm9yIGNvZGVzLgogVGhpcyBmaWxl IHNlcnZpY2UgcmVzZW1ibGFuY2UgaXMgaW50ZW50aW9uYWwsIHNvIHRoYXQgYW4gaW5zdGFsbGF0 aW9uCiBjYW4gdGFrZSBhZHZhbnRhZ2Ugb2Ygc3RhbmRhcmQgSFRUUCBtYW5hZ2VtZW50IGluZnJh c3RydWN0dXJlLgogCitVcG9uIGZpbmRpbmcgYSBmaWxlIGluIGFuIGFyY2hpdmUgb3Igc2ltcGx5 IGluIHRoZSBkYXRhYmFzZSwgc29tZQorY3VzdG9tIGh0dHAgaGVhZGVycyBhcmUgYWRkZWQgdG8g dGhlIHJlc3BvbnNlLiBGb3IgZmlsZXMgaW4gdGhlCitkYXRhYmFzZSBYLUZJTEUgYW5kIFgtRklM RS1TSVpFIGFyZSBhZGRlZC4gWC1GSUxFIGlzIHNpbXBseSB0aGUKK2ZpbGVuYW1lIGFuZCBYLUZJ TEUtU0laRSBpcyB0aGUgc2l6ZSBvZiB0aGUgZmlsZS4gRm9yIGZpbGVzIGZvdW5kCitpbiBhcmNo aXZlcywgaW4gYWRkaXRpb24gdG8gWC1GSUxFIGFuZCBYLUZJTEUtU0laRSwgWC1BUkNISVZFIGlz IGFkZGVkLgorWC1BUkNISVZFIGlzIHRoZSBuYW1lIG9mIHRoZSB0aGUgZmlsZSB3YXMgZm91bmQg aW4uCisKIFRoZXJlIGFyZSB0aHJlZSByZXF1ZXN0cy4gIEluIGVhY2ggY2FzZSwgdGhlIGJ1aWxk aWQgaXMgZW5jb2RlZCBhcyBhCiBsb3dlcmNhc2UgaGV4YWRlY2ltYWwgc3RyaW5nLiAgRm9yIGV4 YW1wbGUsIGZvciBhIHByb2dyYW0gXGZJL2Jpbi9sc1xmUCwKIGxvb2sgYXQgdGhlIEVMRiBub3Rl IEdOVV9CVUlMRF9JRDoKZGlmZiAtLWdpdCBhL3Rlc3RzL0NoYW5nZUxvZyBiL3Rlc3RzL0NoYW5n ZUxvZwppbmRleCAyOWM0OGI5Ny4uMWVkMWUwYzggMTAwNjQ0Ci0tLSBhL3Rlc3RzL0NoYW5nZUxv ZworKysgYi90ZXN0cy9DaGFuZ2VMb2cKQEAgLTgsNiArOCwxMyBAQAogCSogYmFja3RyYWNlLmMg KGNhbGxiYWNrX3ZlcmlmeSk6IENoZWNrIGZvciBwdGhyZWFkX2tpbGwgYXMgZmlyc3QKIAlmcmFt ZS4gQ2hhbmdlIGFzc2VydHMgdG8gZnByaW50ZiBwbHVzIGFib3J0LgogCisyMDIxLTA4LTAyICBO b2FoIFNhbmNpICA8bnNhbmNpQHJlZGhhdC5jb20+CisKKwlQUjI3Mjc3CisJKiBydW4tZGVidWdp bmZvZC1yZXNwb25zZS1oZWFkZXJzLnNoOiBBZGQgYSB0ZXN0IHRvIGVuc3VyZSB0aGF0IGZpbGUg ZGVzY3JpcHRpb25zCisJYXJlIGFjY3VyYXRlIGZvciBmaWxlcyBvdXRzaWRlIG9yIHdpdGhpbiBh cmNoaXZlcy4KKwkqIE1ha2VmaWxlLmFtOiBBZGQgcnVuLWRlYnVnaW5mb2QtcmVzcG9uc2UtaGVh ZGVycy5zaCB0byBURVNUUy4KKwogMjAyMS0wNy0yNiAgTm9haCBTYW5jaSAgPG5zYW5jaUByZWRo YXQuY29tPgogCiAJUFIyNzk4MgpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuYW0gYi90ZXN0 cy9NYWtlZmlsZS5hbQppbmRleCA0Mjk2NDlmNC4uOTlmYTYxYmEgMTAwNjQ0Ci0tLSBhL3Rlc3Rz L01ha2VmaWxlLmFtCisrKyBiL3Rlc3RzL01ha2VmaWxlLmFtCkBAIC0yMTEsNyArMjExLDcgQEAg aWYgREVCVUdJTkZPRAogY2hlY2tfUFJPR1JBTVMgKz0gZGVidWdpbmZvZF9idWlsZF9pZF9maW5k CiAjIFdpdGggdGhlIGR1bW15IGRlbGVnYXRpb24gZG9lc24ndCB3b3JrCiBpZiAhRFVNTVlfTElC REVCVUdJTkZPRAotVEVTVFMgKz0gcnVuLWRlYnVnaW5mb2QtZmluZC5zaAorVEVTVFMgKz0gcnVu LWRlYnVnaW5mb2QtZmluZC5zaCBydW4tZGVidWdpbmZvZC1yZXNwb25zZS1oZWFkZXJzLnNoCiBl bmRpZgogZW5kaWYKIApAQCAtNDc1LDYgKzQ3NSw3IEBAIEVYVFJBX0RJU1QgPSBydW4tYXJleHRy YWN0LnNoIHJ1bi1hcnN5bXRlc3Quc2ggcnVuLWFyLnNoIFwKIAkgICAgIHJ1bi1kaXNhc20tcmlz Y3Y2NC5zaCBcCiAJICAgICB0ZXN0ZmlsZS1yaXNjdjY0LWRpczEuby5iejIgdGVzdGZpbGUtcmlz Y3Y2NC1kaXMxLmV4cGVjdC5iejIgXAogICAgICAgICAgICAgIHJ1bi1kZWJ1Z2luZm9kLWZpbmQu c2ggXAorICAgICAgICAgICAgIHJ1bi1kZWJ1Z2luZm9kLXJlc3BvbnNlLWhlYWRlcnMuc2ggXAog CSAgICAgZGVidWdpbmZvZC1ycG1zL2ZlZG9yYTMwL2hlbGxvMi0xLjAtMi5zcmMucnBtIFwKIAkg ICAgIGRlYnVnaW5mb2QtcnBtcy9mZWRvcmEzMC9oZWxsbzItMS4wLTIueDg2XzY0LnJwbSBcCiAJ ICAgICBkZWJ1Z2luZm9kLXJwbXMvZmVkb3JhMzAvaGVsbG8yLWRlYnVnaW5mby0xLjAtMi54ODZf NjQucnBtIFwKZGlmZiAtLWdpdCBhL3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLXJlc3BvbnNlLWhlYWRl cnMuc2ggYi90ZXN0cy9ydW4tZGVidWdpbmZvZC1yZXNwb25zZS1oZWFkZXJzLnNoCm5ldyBmaWxl IG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwLi42ODJlN2I5YQotLS0gL2Rldi9udWxsCisrKyBi L3Rlc3RzL3J1bi1kZWJ1Z2luZm9kLXJlc3BvbnNlLWhlYWRlcnMuc2gKQEAgLTAsMCArMSwxOTQg QEAKKyMhL3Vzci9iaW4vZW52IGJhc2gKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEgUmVk IEhhdCwgSW5jLgorIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBlbGZ1dGlscy4KKyMKKyMgVGhpcyBm aWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKyMKKyMgZWxmdXRpbHMgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KKworLiAkc3JjZGlyL3Rlc3Qtc3Vici5zaCAgIyBpbmNsdWRlcyBzZXQgLWUKKworIyBmb3Ig dGVzdCBjYXNlIGRlYnVnZ2luZywgdW5jb21tZW50Ogorc2V0IC14CisKK0RCPSR7UFdEfS8uZGVi dWdpbmZvZF90bXAuc3FsaXRlCit0ZW1wZmlsZXMgJERCCitleHBvcnQgREVCVUdJTkZPRF9DQUNI RV9QQVRIPSR7UFdEfS8uY2xpZW50X2NhY2hlCisKK3doaWxlIHRydWU7IGRvCisgICAgUE9SVDE9 YGV4cHIgJygnICRSQU5ET00gJSAxMDAwICcpJyArIDkwMDBgCisgICAgc3MgLWF0biB8IGZncmVw ICI6JFBPUlQxIiB8fCBicmVhaworZG9uZQorUElEMT0wCitQSUQyPTAKK1BJRDM9MAorUElEND0w CisKK2NsZWFudXAoKQoreworICBpZiBbICRQSUQxIC1uZSAwIF07IHRoZW4ga2lsbCAkUElEMTsg d2FpdCAkUElEMTsgZmkKKyAgaWYgWyAkUElEMiAtbmUgMCBdOyB0aGVuIGtpbGwgJFBJRDI7IHdh aXQgJFBJRDI7IGZpCisgIGlmIFsgJFBJRDMgLW5lIDAgXTsgdGhlbiBraWxsICRQSUQzOyB3YWl0 ICRQSUQzOyBmaQorICBpZiBbICRQSUQ0IC1uZSAwIF07IHRoZW4ga2lsbCAkUElENDsgd2FpdCAk UElENDsgZmkKKyAgcm0gLXJmIEYgUiBEIEwgWiAke1BXRH0vZm9vYmFyICR7UFdEfS9tb2NrdHJl ZSAke1BXRH0vLmNsaWVudF9jYWNoZSogJHtQV0R9L3RtcCoKKyAgZXhpdF9jbGVhbnVwCit9CisK KyMgY2xlYW4gdXAgdHJhc2ggaWYgd2Ugd2VyZSBhYm9ydGVkIGVhcmx5Cit0cmFwIGNsZWFudXAg MCAxIDIgMyA1IDkgMTUKKworZXJyZmlsZXNfbGlzdD0KK2VycigpIHsKKyAgICBlY2hvIEVSUk9S IFJFUE9SVFMKKyAgICBmb3IgcG9ydHMgaW4gJFBPUlQxICRQT1JUMiAkUE9SVDMKKyAgICBkbwor ICAgICAgICBlY2hvIEVSUk9SIFJFUE9SVCAkcG9ydCBtZXRyaWNzCisgICAgICAgIGN1cmwgLXMg aHR0cDovLzEyNy4wLjAuMTokcG9ydC9tZXRyaWNzCisgICAgICAgIGVjaG8KKyAgICBkb25lCisg ICAgZm9yIHggaW4gJGVycmZpbGVzX2xpc3QKKyAgICBkbworICAgICAgICBlY2hvIEVSUk9SIFJF UE9SVCAiJHgiCisgICAgICAgIGNhdCAkeAorICAgICAgICBlY2hvCisgICAgZG9uZQorICAgIGZh bHNlICMgdHJpZ2dlciBzZXQgLWUKK30KK3RyYXAgZXJyIEVSUgorCitlcnJmaWxlcygpIHsKKyAg ICBlcnJmaWxlc19saXN0PSIkZXJyZmlsZXNfbGlzdCAkKiIKK30KKword2FpdF9yZWFkeSgpCit7 CisgIHBvcnQ9JDE7CisgIHdoYXQ9JDI7CisgIHZhbHVlPSQzOworICB0aW1lb3V0PTIwOworCisg IGVjaG8gIldhaXQgJHRpbWVvdXQgc2Vjb25kcyBvbiAkcG9ydCBmb3IgbWV0cmljICR3aGF0IHRv IGNoYW5nZSB0byAkdmFsdWUiCisgIHdoaWxlIFsgJHRpbWVvdXQgLWd0IDAgXTsgZG8KKyAgICBt dmFsdWU9IiQoY3VybCAtcyBodHRwOi8vMTI3LjAuMC4xOiRwb3J0L21ldHJpY3MgXAorICAgICAg ICAgICAgICB8IGdyZXAgIiR3aGF0IiB8IGF3ayAne3ByaW50ICRORn0nKSIKKyAgICBpZiBbIC16 ICIkbXZhbHVlIiBdOyB0aGVuIG12YWx1ZT0wOyBmaQorICAgICAgZWNobyAibWV0cmljICR3aGF0 OiAkbXZhbHVlIgorICAgICAgaWYgWyAiJG12YWx1ZSIgLWVxICIkdmFsdWUiIF07IHRoZW4KKyAg ICAgICAgYnJlYWs7CisgICAgZmkKKyAgICBzbGVlcCAwLjU7CisgICAgKCh0aW1lb3V0LS0pKTsK KyAgZG9uZTsKKworICBpZiBbICR0aW1lb3V0IC1lcSAwIF07IHRoZW4KKyAgICBlY2hvICJtZXRy aWMgJHdoYXQgbmV2ZXIgY2hhbmdlZCB0byAkdmFsdWUgb24gcG9ydCAkcG9ydCIKKyAgICBlcnIK KyAgZmkKK30KKworIyBXZSB3YW50IHRvIHJ1biBkZWJ1Z2luZm9kIGluIHRoZSBiYWNrZ3JvdW5k LiAgV2UgYWxzbyB3YW50IHRvIHN0YXJ0CisjIGl0IHdpdGggdGhlIHNhbWUgY2hlY2svaW5zdGFs bGNoZWNrLXNlbnNpdGl2ZSBMRF9MSUJSQVJZX1BBVEggc3R1ZmYKKyMgdGhhdCB0aGUgdGVzdHJ1 biBhbGlhcyBzZXRzLiAgQnV0OiB3ZSBpZiB3ZSBqdXN0IHVzZQorIyAgICB0ZXN0cnVuIC4uLi9k ZWJ1Z2luZm9kCisjIGl0IHJ1bnMgaW4gYSBzdWJzaGVsbCwgd2l0aCBkaWZmZXJlbnQgcGlkLCBz byBub3QgaGVscGZ1bC4KKyMKKyMgU28gd2UgZ2F0aGVyIHRoZSBMRF9MSUJSQVJZX1BBVEggd2l0 aCB0aGlzIGN1bm5pbmcgdHJpY2s6CitsZHBhdGg9YHRlc3RydW4gc2ggLWMgJ2VjaG8gJExEX0xJ QlJBUllfUEFUSCdgCisKK21rZGlyIEYgUgorCitlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGgg REVCVUdJTkZPRF9VUkxTPSAke2Fic19idWlsZGRpcn0vLi4vZGVidWdpbmZvZC9kZWJ1Z2luZm9k ICRWRVJCT1NFIC1GIC1SIC1kICREQiAtcCAkUE9SVDEgLXQwIC1nMCAtdiBSIEYgPiB2bG9nJFBP UlQxIDI+JjEgJgorUElEMT0kIQordGVtcGZpbGVzIHZsb2ckUE9SVDEKK2VycmZpbGVzIHZsb2ck UE9SVDEKKyMgU2VydmVyIG11c3QgYmVjb21lIHJlYWR5Cit3YWl0X3JlYWR5ICRQT1JUMSAncmVh ZHknIDEKK2V4cG9ydCBERUJVR0lORk9EX1VSTFM9aHR0cDovLzEyNy4wLjAuMTokUE9SVDEvICAg IyBvciB3aXRob3V0IHRyYWlsaW5nIC8KKyMgQ2hlY2sgdGhyZWFkIGNvbW0gbmFtZXMKK3BzIC1x ICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVwIGdyb29tCitwcyAtcSAkUElEMSAtZSAt TCAtbyAnJXAgJWMgJWEnIHwgZ3JlcCBzY2FuCitwcyAtcSAkUElEMSAtZSAtTCAtbyAnJXAgJWMg JWEnIHwgZ3JlcCB0cmF2ZXJzZQorCisjIFdlIHVzZSAtdDAgYW5kIC1nMCBoZXJlIHRvIHR1cm4g b2ZmIHRpbWUtYmFzZWQgc2Nhbm5pbmcgJiBncm9vbWluZy4KKyMgRm9yIHRlc3RpbmcgcHVycG9z ZXMsIHdlIGp1c3Qgc2ljIFNJR1VTUjEgLyBTSUdVU1IyIGF0IHRoZSBwcm9jZXNzLgorCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKworIyBDb21waWxlIGEgc2ltcGxlIHByb2dyYW0sIHN0cmlwIGl0cyBkZWJ1 Z2luZm8gYW5kIHNhdmUgdGhlIGJ1aWxkLWlkLgorIyBBbHNvIG1vdmUgdGhlIGRlYnVnaW5mbyBp bnRvIGFub3RoZXIgZGlyZWN0b3J5IHNvIHRoYXQgZWxmdXRpbHMKKyMgY2Fubm90IGZpbmQgaXQg d2l0aG91dCBkZWJ1Z2luZm9kLgorZWNobyAiaW50IG1haW4oKSB7IHJldHVybiAwOyB9IiA+ICR7 UFdEfS9wcm9nLmMKK3RlbXBmaWxlcyBwcm9nLmMKKyMgQ3JlYXRlIGEgc3ViZGlyZWN0b3J5IHRv IGNvbmZvdW5kIHNvdXJjZSBwYXRoIG5hbWVzCitta2RpciBmb29iYXIKK2djYyAtV2wsLS1idWls ZC1pZCAtZyAtbyBwcm9nICR7UFdEfS9mb29iYXIvLy8uLy4uL3Byb2cuYwordGVzdHJ1biAke2Fi c190b3BfYnVpbGRkaXJ9L3NyYy9zdHJpcCAtZyAtZiBwcm9nLmRlYnVnICR7UFdEfS9wcm9nCitC VUlMRElEPWBlbnYgTERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfYnVpbGRkaXJ9Ly4uL3Ny Yy9yZWFkZWxmIFwKKyAgICAgICAgICAtYSBwcm9nIHwgZ3JlcCAnQnVpbGQgSUQnIHwgY3V0IC1k ICcgJyAtZiA3YAorCittdiBwcm9nIEYKK212IHByb2cuZGVidWcgRgora2lsbCAtVVNSMSAkUElE MQorIyBXYWl0IHRpbGwgYm90aCBmaWxlcyBhcmUgaW4gdGhlIGluZGV4Lgord2FpdF9yZWFkeSAk UE9SVDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDEKK3dhaXRfcmVhZHkg JFBPUlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAk UE9SVDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAorCitjcCAtcnZwICR7YWJzX3NyY2Rp cn0vZGVidWdpbmZvZC1ycG1zIFIKK2lmIFsgIiR6c3RkIiA9ICJmYWxzZSIgXTsgdGhlbiAgIyBu dWtlIHRoZSB6c3RkIGZlZG9yYSAzMSBvbmVzCisgICAgcm0gLXZyZiBSL2RlYnVnaW5mb2QtcnBt cy9mZWRvcmEzMQorZmkKKwora2lsbCAtVVNSMSAkUElEMQorIyBXYWl0IHRpbGwgYm90aCBmaWxl cyBhcmUgaW4gdGhlIGluZGV4IGFuZCBzY2FuL2luZGV4IGZ1bGx5IGZpbmlzaGVkCit3YWl0X3Jl YWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMgord2FpdF9y ZWFkeSAkUE9SVDEgJ3RocmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3Jl YWR5ICRQT1JUMSAndGhyZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisjIEFsbCBycG1zIG5lZWQg dG8gYmUgaW4gdGhlIGluZGV4LCBleGNlcHQgdGhlIGR1bW15IHBlcm1pc3Npb24tMDAwIG9uZQor cnBtcz0kKGZpbmQgUiAtbmFtZSBcKnJwbSB8IGdyZXAgLXYgbm90aGluZyB8IHdjIC1sKQord2Fp dF9yZWFkeSAkUE9SVDEgJ3NjYW5uZWRfZmlsZXNfdG90YWx7c291cmNlPSIucnBtIGFyY2hpdmUi fScgJHJwbXMKK2tpbGwgLVVTUjEgJFBJRDEgICMgdHdvIGhpdHMgb2YgU0lHVVNSMSBtYXkgYmUg bmVlZGVkIHRvIHJlc29sdmUgLmRlYnVnLT5kd3otPnNyZWZzCisjIFdhaXQgdGlsbCBib3RoIGZp bGVzIGFyZSBpbiB0aGUgaW5kZXggYW5kIHNjYW4vaW5kZXggZnVsbHkgZmluaXNoZWQKK3dhaXRf cmVhZHkgJFBPUlQxICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAzCit3YWl0 X3JlYWR5ICRQT1JUMSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRf cmVhZHkgJFBPUlQxICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjIyBQUjI3Mjc3CisjIE1ha2UgYSBzaW1wbGUgcmVxdWVzdCB0byB0aGUgZGVidWdpbmZv ZCBzZXJ2ZXIgYW5kIGNoZWNrIGRlYnVnaW5mb2QtZmluZCdzIHZsb2cgdG8gc2VlIGlmCisjIHRo ZSBjdXN0b20gSFRUUCBoZWFkZXJzIGFyZSByZWNlaXZlZC4KK3JtIC1yZiAkREVCVUdJTkZPRF9D QUNIRV9QQVRICitlbnYgREVCVUdJTkZPRF9VUkxTPSJodHRwOi8vMTI3LjAuMC4xOiIkUE9SVDEg TERfTElCUkFSWV9QQVRIPSRsZHBhdGggJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2Rl YnVnaW5mb2QtZmluZFwKKyAgICAtdnZ2IGV4ZWN1dGFibGUgRi9wcm9nID4gdmxvZy1maW5kJFBP UlQxLjEgMj4mMQordGVtcGZpbGVzIHZsb2ctZmluZCRQT1JUMS4xCitncmVwICdDb250ZW50LUxl bmd0aDogJyB2bG9nLWZpbmQkUE9SVDEuMQorZ3JlcCAnQ29ubmVjdGlvbjogJyB2bG9nLWZpbmQk UE9SVDEuMQorZ3JlcCAnQ2FjaGUtQ29udHJvbDogJyB2bG9nLWZpbmQkUE9SVDEuMQorZ3JlcCAn WC1GSUxFOiAnIHZsb2ctZmluZCRQT1JUMS4xCitncmVwICdYLUZJTEUtU0laRTogJyB2bG9nLWZp bmQkUE9SVDEuMQorCisjIENoZWNrIHRvIHNlZSBpZiBhbiBleGVjdXRhYmxlIGZpbGUgbG9jYXRl ZCBpbiBhbiBhcmNoaXZlIHByaW50cyB0aGUgZmlsZSdzIGRlc2NyaXB0aW9uIGFuZCBhcmNoaXZl CitlbnYgREVCVUdJTkZPRF9VUkxTPSJodHRwOi8vMTI3LjAuMC4xOiIkUE9SVDEgTERfTElCUkFS WV9QQVRIPSRsZHBhdGggJHthYnNfdG9wX2J1aWxkZGlyfS9kZWJ1Z2luZm9kL2RlYnVnaW5mb2Qt ZmluZFwKKyAgICAtdnZ2IGV4ZWN1dGFibGUgYzM2NzA4YTc4NjE4ZDU5N2RlZTE1ZDBkYzk4OWYw OTNjYTVmOTEyMCA+IHZsb2ctZmluZCRQT1JUMS4yIDI+JjEKK3RlbXBmaWxlcyB2bG9nLWZpbmQk UE9SVDEuMgorZ3JlcCAnQ29udGVudC1MZW5ndGg6ICcgdmxvZy1maW5kJFBPUlQxLjIKK2dyZXAg J0Nvbm5lY3Rpb246ICcgdmxvZy1maW5kJFBPUlQxLjIKK2dyZXAgJ0NhY2hlLUNvbnRyb2w6ICcg dmxvZy1maW5kJFBPUlQxLjIKK2dyZXAgJ1gtRklMRTogJyB2bG9nLWZpbmQkUE9SVDEuMgorZ3Jl cCAnWC1GSUxFLVNJWkU6ICcgdmxvZy1maW5kJFBPUlQxLjIKK2dyZXAgJ1gtQVJDSElWRTogJyB2 bG9nLWZpbmQkUE9SVDEuMgorCitraWxsICRQSUQxCit3YWl0ICRQSUQxCitQSUQxPTAKK2V4aXQg MAotLSAKMi4zMS4xCgo= --000000000000b71d1e05ca8eca8b--