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 [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id 2CD26385BF99 for ; Wed, 25 Aug 2021 18:08:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2CD26385BF99 Received: from mail-il1-f197.google.com (mail-il1-f197.google.com [209.85.166.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-72-DssjHj5mPpW1yQwXHugBnA-1; Wed, 25 Aug 2021 14:08:26 -0400 X-MC-Unique: DssjHj5mPpW1yQwXHugBnA-1 Received: by mail-il1-f197.google.com with SMTP id c4-20020a056e020cc4b02902242bd90889so216234ilj.20 for ; Wed, 25 Aug 2021 11:08:25 -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:from:date:message-id:subject:to; bh=ELhMgqMRZ8kQ+YQUGcfPGdf+DjZQzwG0Y8aDni3xjuA=; b=QEmPXFS9ktkNb7ALRw8LHQQRVmEDCSILGQLRQ9tYPz8Ie7xlj8/G8PiuaMu0zfTnZX HjK/RfCEM6/rXFxi6dxAXVx6cRKULnCRwG6PNkzucPr5g5xhaGHdl8h3hIxCfYvvN9e+ NDHT0Us9r2nsZJGKseo0apTIxnRYmLbtkVUNPT2Fq5GlyoTHA145+6CD1lZCXiwR0xO9 4aQBiUf3/WLFzQqYUSTX4zZWSdq/u6hw7RxevAKH9PdbHtaIx59fMguEPyymA7IGiZGi Y/eYQ+HfyXltlUnq9iW6esHIE80nj/43IiaYsvZcj2X/k6NqKqfnp6RiLQWiqDcbixFA zBbA== X-Gm-Message-State: AOAM530BZEY3PvgP70VMa2/Lu+v/zmpoDn1pTM2vRCXzMDByq8jM0SaD 0wujRXS2exI1nSeeAXiC2rOCZR5tAo+TGth4t6He+09vUxwlkLTLmmIDKfssZxh06fzMnyxVGMc IMtdUhDG2V0XeC4xNjM6sVqLarLU1ReRmYYocPkHuig== X-Received: by 2002:a05:6e02:524:: with SMTP id h4mr31725304ils.203.1629914905132; Wed, 25 Aug 2021 11:08:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyPIc2MA6i/qEygNvk1U7q2KZWyjjkfaLrLIY/Y1nvZU89b5f3oFA86EwMhn4Ft5ByikTYvo6aNZ9oqtAAXvuA= X-Received: by 2002:a05:6e02:524:: with SMTP id h4mr31725253ils.203.1629914904091; Wed, 25 Aug 2021 11:08:24 -0700 (PDT) MIME-Version: 1.0 From: Noah Sanci Date: Wed, 25 Aug 2021 14:08:13 -0400 Message-ID: Subject: [Bug debuginfod/27277] Describe retrieved files when verbose To: elfutils-devel@sourceware.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="000000000000e033ac05ca6622ad" X-Spam-Status: No, score=-11.2 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: Wed, 25 Aug 2021 18:08:38 -0000 --000000000000e033ac05ca6622ad Content-Type: text/plain; charset="UTF-8" Hello, There appear to exist use cases that intend to simply check for the existence of content in a debuginfod server, without actually downloading it. In HTTP land, the HEAD operation is the natural expression of this. Instead of implementing a HEAD/describe option, allow users, with enough verbosity, to print the HTTP response headers upon retrieving a file. E.g output: HTTP/1.1 200 OK Connection: Keep-Alive Content-Length: 2428240 Cache-Control: public Last-Modified: Sat, 15 May 2021 20:49:51 GMT Content-Type: application/octet-stream Date: Tue, 03 Aug 2021 18:50:36 GMT Note: the new test is mostly compatible with the nsanci/test-fix commit. When nsanci/test-fix merges with master I can resubmit the patch with the test properly rebased and adjusted for maximum efficiency. The HEAD functionality will (likely) be put into a new PR for existing checking. -Noah Sanci --000000000000e033ac05ca6622ad 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_ksrt8d100 RnJvbSA2MzUxMjU4ZDcwNzMzN2I2OTU2M2Q0YmU4ZWZmYmIzMGZjNDJmNzg0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIFNhbmNpIDxuc2FuY2lAcmVkaGF0LmNvbT4KRGF0ZTog V2VkLCAyOCBKdWwgMjAyMSAxNDo0NjowNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGRlYnVnaW5m b2Q6IFBSMjcyNzcgLSBEZXNjcmliZSByZXRyaWV2ZWQgZmlsZXMgd2hlbiB2ZXJib3NlCgpUaGVy ZSBhcHBlYXIgdG8gZXhpc3QgdXNlIGNhc2VzIHRoYXQgaW50ZW5kIHRvIHNpbXBseSBjaGVjayBm b3IgdGhlCmV4aXN0ZW5jZSBvZiBjb250ZW50IGluIGEgZGVidWdpbmZvZCBzZXJ2ZXIsIHdpdGhv dXQgYWN0dWFsbHkKZG93bmxvYWRpbmcgaXQuICBJbiBIVFRQIGxhbmQsIHRoZSBIRUFEIG9wZXJh dGlvbiBpcyB0aGUgbmF0dXJhbApleHByZXNzaW9uIG9mIHRoaXMuCkluc3RlYWQgb2YgaW1wbGVt ZW50aW5nIGEgSEVBRC9kZXNjcmliZSBvcHRpb24sIGFsbG93IHVzZXJzLCB3aXRoIGVub3VnaAp2 ZXJib3NpdHksIHRvIHByaW50IHRoZSBIVFRQIHJlc3BvbnNlIGhlYWRlcnMgdXBvbiByZXRyaWV2 aW5nIGEgZmlsZS4KRS5nIG91dHB1dDoKCkhUVFAvMS4xIDIwMCBPSwpDb25uZWN0aW9uOiBLZWVw LUFsaXZlCkNvbnRlbnQtTGVuZ3RoOiAyNDI4MjQwCkNhY2hlLUNvbnRyb2w6IHB1YmxpYwpMYXN0 LU1vZGlmaWVkOiBTYXQsIDE1IE1heSAyMDIxIDIwOjQ5OjUxIEdNVApDb250ZW50LVR5cGU6IGFw cGxpY2F0aW9uL29jdGV0LXN0cmVhbQpEYXRlOiBUdWUsIDAzIEF1ZyAyMDIxIDE4OjUwOjM2IEdN VAoKaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjcyNzcK ClNpZ25lZC1vZmYtYnk6IE5vYWggU2FuY2kgPG5zYW5jaUByZWRoYXQuY29tPgotLS0KIGRlYnVn aW5mb2QvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKysKIGRlYnVnaW5mb2Qv ZGVidWdpbmZvZC1jbGllbnQuYyAgICAgICAgICAgfCAgNTggKysrKysrLQogZG9jL0NoYW5nZUxv ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBkb2MvZGVidWdpbmZvZC1maW5k LjEgICAgICAgICAgICAgICAgICAgIHwgICAzICstCiB0ZXN0cy9DaGFuZ2VMb2cgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICA3ICsKIHRlc3RzL01ha2VmaWxlLmFtICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDMgKy0KIHRlc3RzL3J1bi1kZWJ1Z2luZm9kLXJlc3BvbnNlLWhlYWRlcnMu c2ggfCAxODYgKysrKysrKysrKysrKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMjY4IGlu c2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvcnVu LWRlYnVnaW5mb2QtcmVzcG9uc2UtaGVhZGVycy5zaAoKZGlmZiAtLWdpdCBhL2RlYnVnaW5mb2Qv Q2hhbmdlTG9nIGIvZGVidWdpbmZvZC9DaGFuZ2VMb2cKaW5kZXggNTMwZjdkYzcuLmNiOWU1MGM3 IDEwMDY0NAotLS0gYS9kZWJ1Z2luZm9kL0NoYW5nZUxvZworKysgYi9kZWJ1Z2luZm9kL0NoYW5n ZUxvZwpAQCAtNCw2ICs0LDE3IEBACiAJKiBkZWJ1Z2luZm9kLmN4eCAoaGFuZGxlcl9jYik6IEZp eCBhZnRlcl95b3UgdW5pcXVlX3NldCBrZXkKIAl0byB0aGUgZW50aXJlIGluY29taW5nIFVSTC4K IAorMjAyMS0wOC0wMiAgTm9haCBTYW5jaSAgPG5zYW5jaUByZWRoYXQuY29tPgorCisJUFIyNzI3 NworCSogZGVidWdpbmZvZC1jbGllbnQuYyAoc3RydWN0IGRlYnVnaW5mb2RfY2xpZW50KTogTmV3 IGZpZWxkIAorCXdpbm5pbmdfaGVhZGVycy4KKwkoc3RydWN0IGhhbmRsZV9kYXRhKTogTmV3IGZp ZWxkIHJlc3BvbnNlX2RhdGEuCisJKGhlYWRlcl9jYWxsYmFjayk6IFN0b3JlIHJlY2VpdmVkIGhl YWRlcnMgaW4gcmVzcG9uc2VfZGF0YS4KKwkoZGVidWdpbmZvZF9xdWVyeV9zZXJ2ZXIpOiBBY3Rp dmF0ZSBDVVJMT1BUX0hFQURFUkZVTkNUSU9OLgorCVNhdmUgd2lubmluZyByZXNwb25zZV9kYXRh LgorCShkZWJ1Z2luZm9kX2VuZCk6IGZyZWUgY2xpZW50IHdpbm5pbmcgaGVhZGVycy4KKwogMjAy MS0wNy0yNiAgTm9haCBTYW5jaSAgPG5zYW5jaUByZWRoYXQuY29tPgogCiAJUFIyNzk4MgpkaWZm IC0tZ2l0IGEvZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWNsaWVudC5jIGIvZGVidWdpbmZvZC9kZWJ1 Z2luZm9kLWNsaWVudC5jCmluZGV4IDdkNGIyMjBmLi45ODVhMTdjNSAxMDA2NDQKLS0tIGEvZGVi dWdpbmZvZC9kZWJ1Z2luZm9kLWNsaWVudC5jCisrKyBiL2RlYnVnaW5mb2QvZGVidWdpbmZvZC1j bGllbnQuYwpAQCAtMTI3LDYgKzEyNyw3IEBAIHN0cnVjdCBkZWJ1Z2luZm9kX2NsaWVudAogICAg ICB0aW1lb3V0IG9yIG90aGVyIGluZm8gZ290dGVuIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVz LCB0aGUKICAgICAgaGFuZGxlIGRhdGEsIGV0Yy4gU28gdGhvc2UgZG9uJ3QgaGF2ZSB0byBiZSBy ZXBhcnNlZCBhbmQKICAgICAgcmVjcmVhdGVkIG9uIGVhY2ggcmVxdWVzdC4gICovCisgIGNoYXIg KiB3aW5uaW5nX2hlYWRlcnM7CiB9OwogCiAvKiBUaGUgY2FjaGVfY2xlYW5faW50ZXJ2YWxfcyBm aWxlIHdpdGhpbiB0aGUgZGVidWdpbmZvZCBjYWNoZSBzcGVjaWZpZXMKQEAgLTE4Myw2ICsxODQs OCBAQCBzdHJ1Y3QgaGFuZGxlX2RhdGEKICAgICAgdG8gdGhlIGNhY2hlLiBVc2VkIHRvIGVuc3Vy ZSB0aGF0IGEgZmlsZSBpcyBub3QgZG93bmxvYWRlZCBmcm9tCiAgICAgIG11bHRpcGxlIHNlcnZl cnMgdW5uZWNlc3NhcmlseS4gICovCiAgIENVUkwgKip0YXJnZXRfaGFuZGxlOworICAvKiBSZXNw b25zZSBodHRwIGhlYWRlcnMgZm9yIHRoaXMgY2xpZW50IGhhbmRsZSwgc2VudCBmcm9tIHRoZSBz ZXJ2ZXIgKi8KKyAgY2hhciAqcmVzcG9uc2VfZGF0YTsKIH07CiAKIHN0YXRpYyBzaXplX3QKQEAg LTQ5OSw2ICs1MDIsMzMgQEAgZGVmYXVsdF9wcm9ncmVzc2ZuIChkZWJ1Z2luZm9kX2NsaWVudCAq YywgbG9uZyBhLCBsb25nIGIpCiB9CiAKIAorc3RhdGljIHNpemVfdAoraGVhZGVyX2NhbGxiYWNr IChjaGFyICogYnVmZmVyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG51bWl0ZW1zLCB2b2lkICogdXNl cmRhdGEpCit7CisgIGlmIChzaXplICE9IDEpCisgICAgcmV0dXJuIDA7CisgIC8qIFRlbXBvcmFy eSBidWZmZXIgZm9yIHJlYWxsb2MgKi8KKyAgY2hhciAqdGVtcCA9IE5VTEw7CisgIHNpemVfdCB1 c2VybGVuID0gMDsKKyAgaWYgKCooY2hhcioqKXVzZXJkYXRhID09IE5VTEwpCisgICAgeworICAg ICAgdGVtcCA9IG1hbGxvYyhudW1pdGVtcysxKTsKKyAgICAgIGlmICh0ZW1wID09IE5VTEwpCisg ICAgICAgIHJldHVybiAwOworICAgICAgbWVtc2V0KHRlbXAsICdcMCcsIG51bWl0ZW1zKzEpOwor ICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIHVzZXJsZW4gPSBzdHJsZW4oKihjaGFyKiopdXNl cmRhdGEpOworICAgICAgdGVtcCA9IHJlYWxsb2MoKihjaGFyKiopdXNlcmRhdGEsIHVzZXJsZW4g KyBudW1pdGVtcyArIDEpOworICAgICAgaWYgKHRlbXAgPT0gTlVMTCkKKyAgICAgICByZXR1cm4g MDsKKyAgICB9CisgIHN0cm5jYXQodGVtcCwgYnVmZmVyLCBudW1pdGVtcyk7CisgICooY2hhcioq KXVzZXJkYXRhID0gdGVtcDsKKyAgcmV0dXJuIG51bWl0ZW1zOworfQorCiAvKiBRdWVyeSBlYWNo IG9mIHRoZSBzZXJ2ZXIgVVJMcyBmb3VuZCBpbiAkREVCVUdJTkZPRF9VUkxTIGZvciB0aGUgZmls ZQogICAgd2l0aCB0aGUgc3BlY2lmaWVkIGJ1aWxkLWlkLCB0eXBlIChkZWJ1Z2luZm8sIGV4ZWN1 dGFibGUgb3Igc291cmNlKQogICAgYW5kIGZpbGVuYW1lLiBmaWxlbmFtZSBtYXkgYmUgTlVMTC4g SWYgZm91bmQsIHJldHVybiBhIGZpbGUKQEAgLTkzNiwxMCArOTY2LDEzIEBAIGRlYnVnaW5mb2Rf cXVlcnlfc2VydmVyIChkZWJ1Z2luZm9kX2NsaWVudCAqYywKIAkgIGN1cmxfZWFzeV9zZXRvcHQg KGRhdGFbaV0uaGFuZGxlLCBDVVJMT1BUX0xPV19TUEVFRF9MSU1JVCwKIAkJCSAgICAxMDAgKiAx MDI0TCk7CiAJfQorICAgICAgZGF0YVtpXS5yZXNwb25zZV9kYXRhID0gTlVMTDsKICAgICAgIGN1 cmxfZWFzeV9zZXRvcHQoZGF0YVtpXS5oYW5kbGUsIENVUkxPUFRfRklMRVRJTUUsIChsb25nKSAx KTsKICAgICAgIGN1cmxfZWFzeV9zZXRvcHQoZGF0YVtpXS5oYW5kbGUsIENVUkxPUFRfRk9MTE9X TE9DQVRJT04sIChsb25nKSAxKTsKICAgICAgIGN1cmxfZWFzeV9zZXRvcHQoZGF0YVtpXS5oYW5k bGUsIENVUkxPUFRfRkFJTE9ORVJST1IsIChsb25nKSAxKTsKICAgICAgIGN1cmxfZWFzeV9zZXRv cHQoZGF0YVtpXS5oYW5kbGUsIENVUkxPUFRfTk9TSUdOQUwsIChsb25nKSAxKTsKKyAgICAgIGN1 cmxfZWFzeV9zZXRvcHQoZGF0YVtpXS5oYW5kbGUsIENVUkxPUFRfSEVBREVSRlVOQ1RJT04sIGhl YWRlcl9jYWxsYmFjayk7CisgICAgICBjdXJsX2Vhc3lfc2V0b3B0KGRhdGFbaV0uaGFuZGxlLCBD VVJMT1BUX0hFQURFUkRBVEEsICh2b2lkICopICYoZGF0YVtpXS5yZXNwb25zZV9kYXRhKSk7CiAj aWYgTElCQ1VSTF9WRVJTSU9OX05VTSA+PSAweDA3MmEwMCAvKiA3LjQyLjAgKi8KICAgICAgIGN1 cmxfZWFzeV9zZXRvcHQoZGF0YVtpXS5oYW5kbGUsIENVUkxPUFRfUEFUSF9BU19JUywgKGxvbmcp IDEpOwogI2Vsc2UKQEAgLTk2MSw2ICs5OTQsNyBAQCBkZWJ1Z2luZm9kX3F1ZXJ5X3NlcnZlciAo ZGVidWdpbmZvZF9jbGllbnQgKmMsCiAgIGludCBjb21taXR0ZWRfdG8gPSAtMTsKICAgYm9vbCB2 ZXJib3NlX3JlcG9ydGVkID0gZmFsc2U7CiAgIHN0cnVjdCB0aW1lc3BlYyBzdGFydF90aW1lLCBj dXJfdGltZTsKKyAgYy0+d2lubmluZ19oZWFkZXJzID0gTlVMTDsKICAgaWYgKCBtYXh0aW1lID4g MCAmJiBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQ19SQVcsICZzdGFydF90aW1lKSA9PSAt MSkKICAgICB7CiAgICAgICByYyA9IGVycm5vOwpAQCAtOTk1LDggKzEwMjksMTggQEAgZGVidWdp bmZvZF9xdWVyeV9zZXJ2ZXIgKGRlYnVnaW5mb2RfY2xpZW50ICpjLAogCSAgICBpZiAoZGF0YVtp XS5oYW5kbGUgIT0gdGFyZ2V0X2hhbmRsZSkKIAkgICAgICBjdXJsX211bHRpX3JlbW92ZV9oYW5k bGUoY3VybG0sIGRhdGFbaV0uaGFuZGxlKTsKIAkgICAgZWxzZQotCSAgICAgIGNvbW1pdHRlZF90 byA9IGk7Ci0JfQorICAgICAgICAgICAgICB7CisJICAgICAgICBjb21taXR0ZWRfdG8gPSBpOwor ICAgICAgICAgICAgICAgIGlmIChjLT53aW5uaW5nX2hlYWRlcnMgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgYy0+d2lubmluZ19oZWFkZXJzID0gZGF0 YVtjb21taXR0ZWRfdG9dLnJlc3BvbnNlX2RhdGE7CisgICAgICAgICAgICAgICAgICAgIGlmICh2 ZmQgPj0gMCkKKyAgICAgICAgICAgICAgICAgICAgICBkcHJpbnRmKHZmZCwgIlxuJXMiLCBjLT53 aW5uaW5nX2hlYWRlcnMpOworICAgICAgICAgICAgICAgICAgICBkYXRhW2NvbW1pdHRlZF90b10u cmVzcG9uc2VfZGF0YSA9IE5VTEw7CisgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg ICAgfQorICAgICAgICB9CiAKICAgICAgIGlmICh2ZmQgPj0gMCAmJiAhdmVyYm9zZV9yZXBvcnRl ZCAmJiBjb21taXR0ZWRfdG8gPj0gMCkKIAl7CkBAIC0xMTYxLDEwICsxMjA1LDEwIEBAIGRlYnVn aW5mb2RfcXVlcnlfc2VydmVyIChkZWJ1Z2luZm9kX2NsaWVudCAqYywKICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICBjaGFyICplZmZlY3RpdmVfdXJsID0gTlVMTDsKICAgICAg ICAgICAgICAgICAgIGxvbmcgcmVzcF9jb2RlID0gNTAwOwotICAgICAgICAgICAgICAgICAgQ1VS TGNvZGUgb2sxID0gY3VybF9lYXN5X2dldGluZm8gKHRhcmdldF9oYW5kbGUsCisgICAgICAgICAg ICAgICAgICBDVVJMY29kZSBvazEgPSBjdXJsX2Vhc3lfZ2V0aW5mbyAobXNnLT5lYXN5X2hhbmRs ZSwKIAkJCQkJCSAgICBDVVJMSU5GT19FRkZFQ1RJVkVfVVJMLAogCQkJCQkJICAgICZlZmZlY3Rp dmVfdXJsKTsKLSAgICAgICAgICAgICAgICAgIENVUkxjb2RlIG9rMiA9IGN1cmxfZWFzeV9nZXRp bmZvICh0YXJnZXRfaGFuZGxlLAorICAgICAgICAgICAgICAgICAgQ1VSTGNvZGUgb2syID0gY3Vy bF9lYXN5X2dldGluZm8gKG1zZy0+ZWFzeV9oYW5kbGUsCiAJCQkJCQkgICAgQ1VSTElORk9fUkVT UE9OU0VfQ09ERSwKIAkJCQkJCSAgICAmcmVzcF9jb2RlKTsKICAgICAgICAgICAgICAgICAgIGlm KG9rMSA9PSBDVVJMRV9PSyAmJiBvazIgPT0gQ1VSTEVfT0sgJiYgZWZmZWN0aXZlX3VybCkKQEAg LTEyMzgsNyArMTI4MiwxMCBAQCBkZWJ1Z2luZm9kX3F1ZXJ5X3NlcnZlciAoZGVidWdpbmZvZF9j bGllbnQgKmMsCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGN1cmxfbXVsdGlfcmVtb3Zl X2hhbmRsZShjdXJsbSwgZGF0YVtpXS5oYW5kbGUpOyAvKiBvayB0byByZXBlYXQgKi8KICAgICAg ICAgICAgICAgY3VybF9lYXN5X2NsZWFudXAgKGRhdGFbaV0uaGFuZGxlKTsKKyAgICAgICAgICAg ICAgZnJlZShkYXRhW2ldLnJlc3BvbnNlX2RhdGEpOwogICAgICAgICAgICAgfQorICAgICAgICAg ICAgZnJlZShjLT53aW5uaW5nX2hlYWRlcnMpOworICAgICAgICAgICAgYy0+d2lubmluZ19oZWFk ZXJzID0gTlVMTDsKIAkgICAgZ290byBxdWVyeV9pbl9wYXJhbGxlbDsKIAl9CiAgICAgICBlbHNl CkBAIC0xMjgxLDYgKzEzMjgsNyBAQCBkZWJ1Z2luZm9kX3F1ZXJ5X3NlcnZlciAoZGVidWdpbmZv ZF9jbGllbnQgKmMsCiAgICAgewogICAgICAgY3VybF9tdWx0aV9yZW1vdmVfaGFuZGxlKGN1cmxt LCBkYXRhW2ldLmhhbmRsZSk7IC8qIG9rIHRvIHJlcGVhdCAqLwogICAgICAgY3VybF9lYXN5X2Ns ZWFudXAgKGRhdGFbaV0uaGFuZGxlKTsKKyAgICAgIGZyZWUgKGRhdGFbaV0ucmVzcG9uc2VfZGF0 YSk7CiAgICAgfQogCiAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3VybHM7ICsraSkKQEAgLTEz MDQsNiArMTM1Miw3IEBAIGRlYnVnaW5mb2RfcXVlcnlfc2VydmVyIChkZWJ1Z2luZm9kX2NsaWVu dCAqYywKICAgICB7CiAgICAgICBjdXJsX211bHRpX3JlbW92ZV9oYW5kbGUoY3VybG0sIGRhdGFb aV0uaGFuZGxlKTsgLyogb2sgdG8gcmVwZWF0ICovCiAgICAgICBjdXJsX2Vhc3lfY2xlYW51cCAo ZGF0YVtpXS5oYW5kbGUpOworICAgICAgZnJlZSAoZGF0YVtpXS5yZXNwb25zZV9kYXRhKTsKICAg ICB9CiAKICAgdW5saW5rICh0YXJnZXRfY2FjaGVfdG1wcGF0aCk7CkBAIC0xNDE1LDYgKzE0NjQs NyBAQCBkZWJ1Z2luZm9kX2VuZCAoZGVidWdpbmZvZF9jbGllbnQgKmNsaWVudCkKIAogICBjdXJs X211bHRpX2NsZWFudXAgKGNsaWVudC0+c2VydmVyX21oYW5kbGUpOwogICBjdXJsX3NsaXN0X2Zy ZWVfYWxsIChjbGllbnQtPmhlYWRlcnMpOworICBmcmVlIChjbGllbnQtPndpbm5pbmdfaGVhZGVy cyk7CiAgIGZyZWUgKGNsaWVudC0+dXJsKTsKICAgZnJlZSAoY2xpZW50KTsKIH0KZGlmZiAtLWdp dCBhL2RvYy9DaGFuZ2VMb2cgYi9kb2MvQ2hhbmdlTG9nCmluZGV4IDc3ZDFkNzA1Li4zZjU0MmUw OCAxMDA2NDQKLS0tIGEvZG9jL0NoYW5nZUxvZworKysgYi9kb2MvQ2hhbmdlTG9nCkBAIC0xMCw2 ICsxMCwxMiBAQAogCSogTWFrZWZpbGUuYW06IFVwZGF0ZWQgdG8gaW5jbHVkZSBkZWJ1Z2luZm9k LWNsaWVudC1jb25maWcuNwogCSogbWFuMywgbWFuNzogU3ltbGlua3MgZm9yIHNvdXJjZSB0cmVl IG1hbiBwYWdlIHRlc3RpbmcuCiAKKzIwMjEtMDgtMDQgIE5vYWggU2FuY2kgIDxuc2FuY2lAcmVk aGF0LmNvbT4KKworCVBSMjcyNzcKKwkqIGRlYnVnaW5mb2QtZmluZC4xOiBJbmNyZWFzaW5nIHZl cmJvc2l0eSBkZXNjcmliZXMgdGhlIGRvd25sb2FkZWQKKwlmaWxlLgorCiAyMDIxLTA3LTI2ICBO b2FoIFNhbmNpIDxuc2FuY2lAcmVkaGF0LmNvbT4KIAogCVBSMjc5ODIKZGlmZiAtLWdpdCBhL2Rv Yy9kZWJ1Z2luZm9kLWZpbmQuMSBiL2RvYy9kZWJ1Z2luZm9kLWZpbmQuMQppbmRleCBhNjE2NzNm NS4uOTU3ZWM3ZTcgMTAwNjQ0Ci0tLSBhL2RvYy9kZWJ1Z2luZm9kLWZpbmQuMQorKysgYi9kb2Mv ZGVidWdpbmZvZC1maW5kLjEKQEAgLTExMCw3ICsxMTAsOCBAQCBsIGwuCiAKIC5UUAogLkIgIlwt diIKLUluY3JlYXNlIHZlcmJvc2l0eSwgaW5jbHVkaW5nIHByaW50aW5nIGZyZXF1ZW50IGRvd25s b2FkLXByb2dyZXNzIG1lc3NhZ2VzLgorSW5jcmVhc2UgdmVyYm9zaXR5LCBpbmNsdWRpbmcgcHJp bnRpbmcgZnJlcXVlbnQgZG93bmxvYWQtcHJvZ3Jlc3MgbWVzc2FnZXMKK2FuZCBwcmludGluZyB0 aGUgaHR0cCByZXNwb25zZSBoZWFkZXJzIGZyb20gdGhlIHNlcnZlci4KIAogCiAuU0ggIlNFQ1VS SVRZIgpkaWZmIC0tZ2l0IGEvdGVzdHMvQ2hhbmdlTG9nIGIvdGVzdHMvQ2hhbmdlTG9nCmluZGV4 IDNiZmQxY2EyLi5mNGFhZjNlZSAxMDA2NDQKLS0tIGEvdGVzdHMvQ2hhbmdlTG9nCisrKyBiL3Rl c3RzL0NoYW5nZUxvZwpAQCAtNCw2ICs0LDEzIEBACiAJKiBiYWNrdHJhY2UuYyAoY2FsbGJhY2tf dmVyaWZ5KTogQ2hlY2sgZm9yIHB0aHJlYWRfa2lsbCBhcyBmaXJzdAogCWZyYW1lLiBDaGFuZ2Ug YXNzZXJ0cyB0byBmcHJpbnRmIHBsdXMgYWJvcnQuCiAKKzIwMjEtMDgtMDIgIE5vYWggU2FuY2kg IDxuc2FuY2lAcmVkaGF0LmNvbT4KKworCVBSMjcyNzcKKwkqIHJ1bi1kZWJ1Z2luZm9kLXJlc3Bv bnNlLWhlYWRlcnMuc2g6IEFkZCBhIHRlc3QgdG8gZW5zdXJlIHRoYXQgZmlsZSBkZXNjcmlwdGlv bnMKKwlhcmUgYWNjdXJhdGUgZm9yIGZpbGVzIG91dHNpZGUgb3Igd2l0aGluIGFyY2hpdmVzLgor CSogTWFrZWZpbGUuYW06IEFkZCBydW4tZGVidWdpbmZvZC1yZXNwb25zZS1oZWFkZXJzLnNoIHRv IFRFU1RTLgorCiAyMDIxLTA3LTI2ICBOb2FoIFNhbmNpICA8bnNhbmNpQHJlZGhhdC5jb20+CiAK IAlQUjI3OTgyCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5hbSBiL3Rlc3RzL01ha2VmaWxl LmFtCmluZGV4IDQyOTY0OWY0Li45OWZhNjFiYSAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUu YW0KKysrIGIvdGVzdHMvTWFrZWZpbGUuYW0KQEAgLTIxMSw3ICsyMTEsNyBAQCBpZiBERUJVR0lO Rk9ECiBjaGVja19QUk9HUkFNUyArPSBkZWJ1Z2luZm9kX2J1aWxkX2lkX2ZpbmQKICMgV2l0aCB0 aGUgZHVtbXkgZGVsZWdhdGlvbiBkb2Vzbid0IHdvcmsKIGlmICFEVU1NWV9MSUJERUJVR0lORk9E Ci1URVNUUyArPSBydW4tZGVidWdpbmZvZC1maW5kLnNoCitURVNUUyArPSBydW4tZGVidWdpbmZv ZC1maW5kLnNoIHJ1bi1kZWJ1Z2luZm9kLXJlc3BvbnNlLWhlYWRlcnMuc2gKIGVuZGlmCiBlbmRp ZgogCkBAIC00NzUsNiArNDc1LDcgQEAgRVhUUkFfRElTVCA9IHJ1bi1hcmV4dHJhY3Quc2ggcnVu LWFyc3ltdGVzdC5zaCBydW4tYXIuc2ggXAogCSAgICAgcnVuLWRpc2FzbS1yaXNjdjY0LnNoIFwK IAkgICAgIHRlc3RmaWxlLXJpc2N2NjQtZGlzMS5vLmJ6MiB0ZXN0ZmlsZS1yaXNjdjY0LWRpczEu ZXhwZWN0LmJ6MiBcCiAgICAgICAgICAgICAgcnVuLWRlYnVnaW5mb2QtZmluZC5zaCBcCisgICAg ICAgICAgICAgcnVuLWRlYnVnaW5mb2QtcmVzcG9uc2UtaGVhZGVycy5zaCBcCiAJICAgICBkZWJ1 Z2luZm9kLXJwbXMvZmVkb3JhMzAvaGVsbG8yLTEuMC0yLnNyYy5ycG0gXAogCSAgICAgZGVidWdp bmZvZC1ycG1zL2ZlZG9yYTMwL2hlbGxvMi0xLjAtMi54ODZfNjQucnBtIFwKIAkgICAgIGRlYnVn aW5mb2QtcnBtcy9mZWRvcmEzMC9oZWxsbzItZGVidWdpbmZvLTEuMC0yLng4Nl82NC5ycG0gXApk aWZmIC0tZ2l0IGEvdGVzdHMvcnVuLWRlYnVnaW5mb2QtcmVzcG9uc2UtaGVhZGVycy5zaCBiL3Rl c3RzL3J1bi1kZWJ1Z2luZm9kLXJlc3BvbnNlLWhlYWRlcnMuc2gKbmV3IGZpbGUgbW9kZSAxMDA3 NTUKaW5kZXggMDAwMDAwMDAuLmJlMTM0NWZjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcnVu LWRlYnVnaW5mb2QtcmVzcG9uc2UtaGVhZGVycy5zaApAQCAtMCwwICsxLDE4NiBAQAorIyEvdXNy L2Jpbi9lbnYgYmFzaAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBSZWQgSGF0LCBJbmMu CisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVsZnV0aWxzLgorIworIyBUaGlzIGZpbGUgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorIworIyBlbGZ1dGlscyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisuICRz cmNkaXIvdGVzdC1zdWJyLnNoICAjIGluY2x1ZGVzIHNldCAtZQorCisjIGZvciB0ZXN0IGNhc2Ug ZGVidWdnaW5nLCB1bmNvbW1lbnQ6CitzZXQgLXgKKworREI9JHtQV0R9Ly5kZWJ1Z2luZm9kX3Rt cC5zcWxpdGUKK3RlbXBmaWxlcyAkREIKK2V4cG9ydCBERUJVR0lORk9EX0NBQ0hFX1BBVEg9JHtQ V0R9Ly5jbGllbnRfY2FjaGUKKword2hpbGUgdHJ1ZTsgZG8KKyAgICBQT1JUMT1gZXhwciAnKCcg JFJBTkRPTSAlIDEwMDAgJyknICsgOTAwMGAKKyAgICBzcyAtYXRuIHwgZmdyZXAgIjokUE9SVDEi IHx8IGJyZWFrCitkb25lCitQSUQxPTAKK1BJRDI9MAorUElEMz0wCitQSUQ0PTAKKworY2xlYW51 cCgpCit7CisgIGlmIFsgJFBJRDEgLW5lIDAgXTsgdGhlbiBraWxsICRQSUQxOyB3YWl0ICRQSUQx OyBmaQorICBpZiBbICRQSUQyIC1uZSAwIF07IHRoZW4ga2lsbCAkUElEMjsgd2FpdCAkUElEMjsg ZmkKKyAgaWYgWyAkUElEMyAtbmUgMCBdOyB0aGVuIGtpbGwgJFBJRDM7IHdhaXQgJFBJRDM7IGZp CisgIGlmIFsgJFBJRDQgLW5lIDAgXTsgdGhlbiBraWxsICRQSUQ0OyB3YWl0ICRQSUQ0OyBmaQor ICBybSAtcmYgRiBSIEQgTCBaICR7UFdEfS9mb29iYXIgJHtQV0R9L21vY2t0cmVlICR7UFdEfS8u Y2xpZW50X2NhY2hlKiAke1BXRH0vdG1wKgorICBleGl0X2NsZWFudXAKK30KKworIyBjbGVhbiB1 cCB0cmFzaCBpZiB3ZSB3ZXJlIGFib3J0ZWQgZWFybHkKK3RyYXAgY2xlYW51cCAwIDEgMiAzIDUg OSAxNQorCitlcnJmaWxlc19saXN0PQorZXJyKCkgeworICAgIGVjaG8gRVJST1IgUkVQT1JUUwor ICAgIGZvciBwb3J0cyBpbiAkUE9SVDEgJFBPUlQyICRQT1JUMworICAgIGRvCisgICAgICAgIGVj aG8gRVJST1IgUkVQT1JUICRwb3J0IG1ldHJpY3MKKyAgICAgICAgY3VybCAtcyBodHRwOi8vMTI3 LjAuMC4xOiRwb3J0L21ldHJpY3MKKyAgICAgICAgZWNobworICAgIGRvbmUKKyAgICBmb3IgeCBp biAkZXJyZmlsZXNfbGlzdAorICAgIGRvCisgICAgICAgIGVjaG8gRVJST1IgUkVQT1JUICIkeCIK KyAgICAgICAgY2F0ICR4CisgICAgICAgIGVjaG8KKyAgICBkb25lCisgICAgZmFsc2UgIyB0cmln Z2VyIHNldCAtZQorfQordHJhcCBlcnIgRVJSCisKK2VycmZpbGVzKCkgeworICAgIGVycmZpbGVz X2xpc3Q9IiRlcnJmaWxlc19saXN0ICQqIgorfQorCit3YWl0X3JlYWR5KCkKK3sKKyAgcG9ydD0k MTsKKyAgd2hhdD0kMjsKKyAgdmFsdWU9JDM7CisgIHRpbWVvdXQ9MjA7CisKKyAgZWNobyAiV2Fp dCAkdGltZW91dCBzZWNvbmRzIG9uICRwb3J0IGZvciBtZXRyaWMgJHdoYXQgdG8gY2hhbmdlIHRv ICR2YWx1ZSIKKyAgd2hpbGUgWyAkdGltZW91dCAtZ3QgMCBdOyBkbworICAgIG12YWx1ZT0iJChj dXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JHBvcnQvbWV0cmljcyBcCisgICAgICAgICAgICAgIHwg Z3JlcCAiJHdoYXQiIHwgYXdrICd7cHJpbnQgJE5GfScpIgorICAgIGlmIFsgLXogIiRtdmFsdWUi IF07IHRoZW4gbXZhbHVlPTA7IGZpCisgICAgICBlY2hvICJtZXRyaWMgJHdoYXQ6ICRtdmFsdWUi CisgICAgICBpZiBbICIkbXZhbHVlIiAtZXEgIiR2YWx1ZSIgXTsgdGhlbgorICAgICAgICBicmVh azsKKyAgICBmaQorICAgIHNsZWVwIDAuNTsKKyAgICAoKHRpbWVvdXQtLSkpOworICBkb25lOwor CisgIGlmIFsgJHRpbWVvdXQgLWVxIDAgXTsgdGhlbgorICAgIGVjaG8gIm1ldHJpYyAkd2hhdCBu ZXZlciBjaGFuZ2VkIHRvICR2YWx1ZSBvbiBwb3J0ICRwb3J0IgorICAgIGVycgorICBmaQorfQor CisjIFdlIHdhbnQgdG8gcnVuIGRlYnVnaW5mb2QgaW4gdGhlIGJhY2tncm91bmQuICBXZSBhbHNv IHdhbnQgdG8gc3RhcnQKKyMgaXQgd2l0aCB0aGUgc2FtZSBjaGVjay9pbnN0YWxsY2hlY2stc2Vu c2l0aXZlIExEX0xJQlJBUllfUEFUSCBzdHVmZgorIyB0aGF0IHRoZSB0ZXN0cnVuIGFsaWFzIHNl dHMuICBCdXQ6IHdlIGlmIHdlIGp1c3QgdXNlCisjICAgIHRlc3RydW4gLi4uL2RlYnVnaW5mb2QK KyMgaXQgcnVucyBpbiBhIHN1YnNoZWxsLCB3aXRoIGRpZmZlcmVudCBwaWQsIHNvIG5vdCBoZWxw ZnVsLgorIworIyBTbyB3ZSBnYXRoZXIgdGhlIExEX0xJQlJBUllfUEFUSCB3aXRoIHRoaXMgY3Vu bmluZyB0cmljazoKK2xkcGF0aD1gdGVzdHJ1biBzaCAtYyAnZWNobyAkTERfTElCUkFSWV9QQVRI J2AKKworbWtkaXIgRiBSCisKK2VudiBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCBERUJVR0lORk9E X1VSTFM9ICR7YWJzX2J1aWxkZGlyfS8uLi9kZWJ1Z2luZm9kL2RlYnVnaW5mb2QgJFZFUkJPU0Ug LUYgLVIgLWQgJERCIC1wICRQT1JUMSAtdDAgLWcwIC12IFIgRiA+IHZsb2ckUE9SVDEgMj4mMSAm CitQSUQxPSQhCit0ZW1wZmlsZXMgdmxvZyRQT1JUMQorZXJyZmlsZXMgdmxvZyRQT1JUMQorIyBT ZXJ2ZXIgbXVzdCBiZWNvbWUgcmVhZHkKK3dhaXRfcmVhZHkgJFBPUlQxICdyZWFkeScgMQorZXhw b3J0IERFQlVHSU5GT0RfVVJMUz1odHRwOi8vMTI3LjAuMC4xOiRQT1JUMS8gICAjIG9yIHdpdGhv dXQgdHJhaWxpbmcgLworIyBDaGVjayB0aHJlYWQgY29tbSBuYW1lcworcHMgLXEgJFBJRDEgLWUg LUwgLW8gJyVwICVjICVhJyB8IGdyZXAgZ3Jvb20KK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAl YyAlYScgfCBncmVwIHNjYW4KK3BzIC1xICRQSUQxIC1lIC1MIC1vICclcCAlYyAlYScgfCBncmVw IHRyYXZlcnNlCisKKyMgV2UgdXNlIC10MCBhbmQgLWcwIGhlcmUgdG8gdHVybiBvZmYgdGltZS1i YXNlZCBzY2FubmluZyAmIGdyb29taW5nLgorIyBGb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UganVz dCBzaWMgU0lHVVNSMSAvIFNJR1VTUjIgYXQgdGhlIHByb2Nlc3MuCisKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCisjIENvbXBpbGUgYSBzaW1wbGUgcHJvZ3JhbSwgc3RyaXAgaXRzIGRlYnVnaW5mbyBhbmQg c2F2ZSB0aGUgYnVpbGQtaWQuCisjIEFsc28gbW92ZSB0aGUgZGVidWdpbmZvIGludG8gYW5vdGhl ciBkaXJlY3Rvcnkgc28gdGhhdCBlbGZ1dGlscworIyBjYW5ub3QgZmluZCBpdCB3aXRob3V0IGRl YnVnaW5mb2QuCitlY2hvICJpbnQgbWFpbigpIHsgcmV0dXJuIDA7IH0iID4gJHtQV0R9L3Byb2cu YwordGVtcGZpbGVzIHByb2cuYworIyBDcmVhdGUgYSBzdWJkaXJlY3RvcnkgdG8gY29uZm91bmQg c291cmNlIHBhdGggbmFtZXMKK21rZGlyIGZvb2JhcgorZ2NjIC1XbCwtLWJ1aWxkLWlkIC1nIC1v IHByb2cgJHtQV0R9L2Zvb2Jhci8vLy4vLi4vcHJvZy5jCit0ZXN0cnVuICR7YWJzX3RvcF9idWls ZGRpcn0vc3JjL3N0cmlwIC1nIC1mIHByb2cuZGVidWcgJHtQV0R9L3Byb2cKK0JVSUxESUQ9YGVu diBMRF9MSUJSQVJZX1BBVEg9JGxkcGF0aCAke2Fic19idWlsZGRpcn0vLi4vc3JjL3JlYWRlbGYg XAorICAgICAgICAgIC1hIHByb2cgfCBncmVwICdCdWlsZCBJRCcgfCBjdXQgLWQgJyAnIC1mIDdg CisKK212IHByb2cgRgorbXYgcHJvZy5kZWJ1ZyBGCitraWxsIC1VU1IxICRQSUQxCisjIFdhaXQg dGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0aGUgaW5kZXguCit3YWl0X3JlYWR5ICRQT1JUMSAndGhy ZWFkX3dvcmtfdG90YWx7cm9sZT0idHJhdmVyc2UifScgMQord2FpdF9yZWFkeSAkUE9SVDEgJ3Ro cmVhZF93b3JrX3BlbmRpbmd7cm9sZT0ic2NhbiJ9JyAwCit3YWl0X3JlYWR5ICRQT1JUMSAndGhy ZWFkX2J1c3l7cm9sZT0ic2NhbiJ9JyAwCisKK2NwIC1ydnAgJHthYnNfc3JjZGlyfS9kZWJ1Z2lu Zm9kLXJwbXMgUgoraWYgWyAiJHpzdGQiID0gImZhbHNlIiBdOyB0aGVuICAjIG51a2UgdGhlIHpz dGQgZmVkb3JhIDMxIG9uZXMKKyAgICBybSAtdnJmIFIvZGVidWdpbmZvZC1ycG1zL2ZlZG9yYTMx CitmaQorCitraWxsIC1VU1IxICRQSUQxCisjIFdhaXQgdGlsbCBib3RoIGZpbGVzIGFyZSBpbiB0 aGUgaW5kZXggYW5kIHNjYW4vaW5kZXggZnVsbHkgZmluaXNoZWQKK3dhaXRfcmVhZHkgJFBPUlQx ICd0aHJlYWRfd29ya190b3RhbHtyb2xlPSJ0cmF2ZXJzZSJ9JyAyCit3YWl0X3JlYWR5ICRQT1JU MSAndGhyZWFkX3dvcmtfcGVuZGluZ3tyb2xlPSJzY2FuIn0nIDAKK3dhaXRfcmVhZHkgJFBPUlQx ICd0aHJlYWRfYnVzeXtyb2xlPSJzY2FuIn0nIDAKKyMgQWxsIHJwbXMgbmVlZCB0byBiZSBpbiB0 aGUgaW5kZXgsIGV4Y2VwdCB0aGUgZHVtbXkgcGVybWlzc2lvbi0wMDAgb25lCitycG1zPSQoZmlu ZCBSIC1uYW1lIFwqcnBtIHwgZ3JlcCAtdiBub3RoaW5nIHwgd2MgLWwpCit3YWl0X3JlYWR5ICRQ T1JUMSAnc2Nhbm5lZF9maWxlc190b3RhbHtzb3VyY2U9Ii5ycG0gYXJjaGl2ZSJ9JyAkcnBtcwor a2lsbCAtVVNSMSAkUElEMSAgIyB0d28gaGl0cyBvZiBTSUdVU1IxIG1heSBiZSBuZWVkZWQgdG8g cmVzb2x2ZSAuZGVidWctPmR3ei0+c3JlZnMKKyMgV2FpdCB0aWxsIGJvdGggZmlsZXMgYXJlIGlu IHRoZSBpbmRleCBhbmQgc2Nhbi9pbmRleCBmdWxseSBmaW5pc2hlZAord2FpdF9yZWFkeSAkUE9S VDEgJ3RocmVhZF93b3JrX3RvdGFse3JvbGU9InRyYXZlcnNlIn0nIDMKK3dhaXRfcmVhZHkgJFBP UlQxICd0aHJlYWRfd29ya19wZW5kaW5ne3JvbGU9InNjYW4ifScgMAord2FpdF9yZWFkeSAkUE9S VDEgJ3RocmVhZF9idXN5e3JvbGU9InNjYW4ifScgMAorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIFBS MjcyNzcKKyMgTWFrZSBhIHNpbXBsZSByZXF1ZXN0IHRvIHRoZSBkZWJ1Z2luZm9kIHNlcnZlciBh bmQgY2hlY2sgZGVidWdpbmZvZC1maW5kJ3MgdmxvZyB0byBzZWUgaWYKKyMgdGhlIGN1c3RvbSBI VFRQIGhlYWRlcnMgYXJlIHJlY2VpdmVkLgorcm0gLXJmICRERUJVR0lORk9EX0NBQ0hFX1BBVEgK K2VudiBERUJVR0lORk9EX1VSTFM9Imh0dHA6Ly8xMjcuMC4wLjE6IiRQT1JUMSBMRF9MSUJSQVJZ X1BBVEg9JGxkcGF0aCAke2Fic190b3BfYnVpbGRkaXJ9L2RlYnVnaW5mb2QvZGVidWdpbmZvZC1m aW5kXAorICAgIC12dnYgZXhlY3V0YWJsZSBGL3Byb2cgPiB2bG9nLWZpbmQkUE9SVDEuMSAyPiYx Cit0ZW1wZmlsZXMgdmxvZy1maW5kJFBPUlQxLjEKK2NhdCB2bG9nLWZpbmQkUE9SVDEuMQorI2dy ZXAgJ0NvbnRlbnQtTGVuZ3RoOiAnIHZsb2ctZmluZCRQT1JUMS4xCisjZ3JlcCAnQ29ubmVjdGlv bjogJyB2bG9nLWZpbmQkUE9SVDEuMQorI2dyZXAgJ0NhY2hlLUNvbnRyb2w6ICcgdmxvZy1maW5k JFBPUlQxLjEKKworIyBDaGVjayB0byBzZWUgaWYgYW4gZXhlY3V0YWJsZSBmaWxlIGxvY2F0ZWQg aW4gYW4gYXJjaGl2ZSBwcmludHMgdGhlIGZpbGUncyBkZXNjcmlwdGlvbiBhbmQgYXJjaGl2ZQor ZW52IERFQlVHSU5GT0RfVVJMUz0iaHR0cDovLzEyNy4wLjAuMToiJFBPUlQxIExEX0xJQlJBUllf UEFUSD0kbGRwYXRoICR7YWJzX3RvcF9idWlsZGRpcn0vZGVidWdpbmZvZC9kZWJ1Z2luZm9kLWZp bmRcCisgICAgLXZ2diBleGVjdXRhYmxlIGMzNjcwOGE3ODYxOGQ1OTdkZWUxNWQwZGM5ODlmMDkz Y2E1ZjkxMjAgPiB2bG9nLWZpbmQkUE9SVDEuMiAyPiYxCit0ZW1wZmlsZXMgdmxvZy1maW5kJFBP UlQxLjIKK2dyZXAgJ0NvbnRlbnQtTGVuZ3RoOiAnIHZsb2ctZmluZCRQT1JUMS4yCitncmVwICdD b25uZWN0aW9uOiAnIHZsb2ctZmluZCRQT1JUMS4yCitncmVwICdDYWNoZS1Db250cm9sOiAnIHZs b2ctZmluZCRQT1JUMS4yCisKLS0gCjIuMzEuMQoK --000000000000e033ac05ca6622ad--