From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) by sourceware.org (Postfix) with ESMTPS id D4BB53851C12 for ; Wed, 27 May 2020 13:35:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org D4BB53851C12 Received: by mail-pf1-x433.google.com with SMTP id y198so11834145pfb.4 for ; Wed, 27 May 2020 06:35:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-transfer-encoding; bh=GuCCjdpW93GWRus4TcVf766+OmO2tnwEsop84XZF/Vo=; b=fbr/vE1pqP7hD+YAgZLU/7Uy7Sr3IXcVDEZIHJNnRb0AI2xWdvkHCOBvSFdwYgMDg4 oOrThyDi5ni7FSRPdjTuDBkAnkenCPEsPrOtqzAXOZI1WZEL4wMDc75mcJyp0gxxRd8j ZsMfXE286KGY258qzU0Md7r0GBEugNXmG7dHKIxmNjRidEhRT5s9MJE8xsSaacRcsI0q 6F9qstshzN4NA0GnMKt7Gc8WBNRAl888h4GO9JRvxrxSGKUb8OQOr7VxYd3Jt1oxxIvJ u/vAB9ssiaIrbwk7E5onxjBUwHYf+XO8VIkLrN4uEeOm7c/S/ro2xya2/40aQEmsySRU 1Ekw== X-Gm-Message-State: AOAM532iLThC0Ts0nw3uxWB1KTDNC1MmQOc5mQt779KxPoBvCuXSwQ/d OlcJpvIJgdHPT0da3b0H31e2uyldqms= X-Google-Smtp-Source: ABdhPJwmMwe2jTcfMzqrH8ybySxC+nE1pG/sBeFhKNxMuJzrwMEhzg5Og+rMTYw0aYrRGAh2MJEvuQ== X-Received: by 2002:a63:63c6:: with SMTP id x189mr4020226pgb.36.1590586522563; Wed, 27 May 2020 06:35:22 -0700 (PDT) Received: from [192.168.3.2] ([2400:2411:aa20:4300:9d9:2de2:8825:5c00]) by smtp.gmail.com with ESMTPSA id y14sm2195701pfr.11.2020.05.27.06.35.20 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 May 2020 06:35:21 -0700 (PDT) Date: Wed, 27 May 2020 22:35:14 +0900 From: Lemures Lemniscati To: cygwin@cygwin.com Subject: pdfjam in texlive-collection-binextra-20200406-1 doesn't work Message-Id: <20200527223512.E617.50F79699@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_5ECE657100000000E613_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.75.01 [ja] X-Antivirus: Avast (VPS 200526-0, 2020/05/26), Outbound message X-Antivirus-Status: Clean X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 May 2020 13:35:25 -0000 --------_5ECE657100000000E613_MULTIPART_MIXED_ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SGkgIQ0KDQpwZGZqYW0gaW4gdGV4bGl2ZS1jb2xsZWN0aW9uLWJpbmV4dHJhLTIwMjAwNDA2LTEg ZG9lc24ndCB3b3JrLg0KDQpFdmVuIGEgc2ltcGxlIGludm9jYXRpb24gc3VjaCBhcw0KDQogICAg cGRmamFtIGEucGRmDQoNCmhhbmdzIHdoaWxlIHdhaXRpbmcgZm9yIGlucHV0IGZyb20gc3RkaW4u DQoNCg0KcGRmamFtIDMuMDMgaW4gVGVYIExpdmUgMjAyMCBoYXZlIGdvdCBhIG1ham9yIHVwZGF0 ZSBzaW5jZSBUZVggTGl2ZSAyMDE5Lg0KVGhlcmUgd2FzIGEgbmV3IGNoYWxsZW5nZSB0byBtYWtl IHBkZmphbSB3b3JrIHdpdGggTWlLVGVYIG9uIFdpbmRvd3MgdGhyb3VnaCBDeWd3aW4uDQpCdXQg aXQgaW50cm9kdWNlZCBhIGJ1ZyB0aGF0IG1ha2UgcGRmamFtIGZhaWwgdG8gd29yayB3aXRoIHB1 cmUgQ3lnd2luIFRlWCBMaXZlIHBhY2thZ2VzLg0KVGhpcyBpcyBhIHNpdHVhdGlvbi4NCg0KSSBt YWRlIGEgcHVsbC1yZXF1ZXN0IHRvIGZpeCAxMCsgZGF5cyBhZ28sIGJ1dCBpdCBpcyBub3QgbWVy Z2VkIHlldCwgYW5kIHN0aWxsIEkgZG9uJ3Qga25vdyB3aGV0aGVyIGl0IHdpbGwgYmUgYWNjZXB0 ZWQgb3Igbm90Og0KDQogICAgaHR0cHM6Ly9naXRodWIuY29tL0RhdmlkRmlydGgvcGRmamFtL3B1 bGwvMjINCg0KU28sIGhlcmUsIEkgYXR0YWNoIGEgZmlsZSB0byByZXBsYWNlIC91c3Ivc2hhcmUv dGV4bWYtZGlzdC9zY3JpcHRzL3BkZmphbS9wZGZqYW0gZm9yIGNvbnZlbmllbmNlLg0KLS0NCkxl bQ0K --------_5ECE657100000000E613_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="pdfjam" Content-Disposition: attachment; filename="pdfjam" Content-Transfer-Encoding: base64 IyEvYmluL3NoCnZlcnNpb249My4wM19wYXRjaGVkX2M4MWFlY2UKIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoj IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMjCiMjICBwZGZqYW06IEEgc2hlbGwtc2NyaXB0IGludGVyZmFjZSB0byB0 aGUgInBkZnBhZ2VzIiBMYVRlWCBwYWNrYWdlICAgIyMKIyMgIC0tLS0tLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwojIyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMjCiMjICBBdXRob3I6IERhdmlkIEZpcnRoIChodHRwOi8vd2Fyd2ljay5hYy51ay9k ZmlydGgpICAgICAgICAgICAgICAgICAgIyMKIyMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwojIyAgVXNhZ2U6IHNl ZSBodHRwczovL2dpdGh1Yi5jb20vRGF2aWRGaXJ0aC9wZGZqYW0gICAgICAgICAgICAgICAgICAg ICMjCiMjICAgICAgICAgb3IgInBkZmphbSAtLWhlbHAiICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyMKIyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwojIyAgUmVsaWVzIG9uOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjCiMj ICAtLSBwZGZsYXRleCAob3IgeGVsYXRleCBvciBsdWFsYXRleCkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyMKIyMgIC0tIHRoZSAncGRmcGFnZXMnIHBhY2thZ2UgZm9yIExhVGVYIChp ZGVhbGx5IHZlcnNpb24gPj0gMC40ZikgICAgICAjIwojIyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjCiMjICBMaWNl bnNlOiBHUEwgdmVyc2lvbiAyIG9yIGxhdGVyLiAgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoICAg ICAgICAgIyMKIyMgIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkgb2YgZml0bmVzcyBmb3IgYW55IHB1 cnBvc2UgYXQgYWxsOyBpZiB5b3UgICAjIwojIyAgZG8gbm90IGFjY2VwdCB0aGF0LCB0aGVuIHlv dSBtdXN0IG5vdCB1c2UgaXQuICAgICAgICAgICAgICAgICAgICAgICMjCiMjICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyMKIyMgIFRoZSBwYXRoIHNlYXJjaGVkIGZvciBzaXRlLXdpZGUgY29uZmlndXJhdGlvbiBmaWxl cyBjYW4gYmUgc2V0ICAgICAjIwojIyAgYnkgZWRpdGluZyB0aGUgZm9sbG93aW5nIHZhcmlhYmxl OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjCiMjICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMKICAg IGNvbmZpZ3BhdGg9Jy9ldGM6L3Vzci9zaGFyZS9ldGM6L3Vzci9sb2NhbC9zaGFyZTovdXNyL2xv Y2FsL2V0YycgICAjIwojIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjCiMjICBOb3RoaW5nIGVsc2UgaW4gdGhpcyBm aWxlIHNob3VsZCBuZWVkIHRvIGJlIGNoYW5nZWQuICAgICAgICAgICAgICAgIyMKIyMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjCiMjICBIRUxQIFRFWFQKIyMKIyMgIERlZmluZXMg dGhlIG91dHB1dCBvZiAncGRmamFtIC0taGVscCcKIyMKaGVscHRleHQ9IgpwZGZqYW0gaXMgYSBz aGVsbC1zY3JpcHQgZnJvbnQgZW5kIHRvIHRoZSBMYVRlWCAncGRmcGFnZXMnIHBhY2thZ2UgKGZv cgp3aGljaCwgc2VlIGh0dHA6Ly93d3cuY3Rhbi5vcmcvdGV4LWFyY2hpdmUvbWFjcm9zL2xhdGV4 L2NvbnRyaWIvcGRmcGFnZXMpLgoKVXNhZ2U6IHBkZmphbSBbT1BUSU9OU10gWy0tXSBbRklMRTEg W1NFTDFdXSBbRklMRTIgW1NFTDJdXS4uLgp3aGVyZQoqICdGSUxFMScgZXRjLiBhcmUgUERGIGZp bGVzIChKUEcgYW5kIFBORyBmaWxlcyBhcmUgYWxzbyBhbGxvd2VkKS4gIEZvciAKICAgaW5wdXQg ZnJvbSAvZGV2L3N0ZGluLCB1c2UgdGhlIHNwZWNpYWwgbmFtZSAnL2Rldi9zdGRpbicgaW4gcGxh Y2Ugb2YgYW55IAogICBvZiBGSUxFMSwgRklMRTIsIGV0YzogdGhpcyBjYW4gYmUgbWl4ZWQgd2l0 aCAncmVhbCcgZmlsZXMgYXMgbmVlZGVkLCB0byAKICAgYWxsb3cgaW5wdXQgdGhyb3VnaCBhIHBp cGUgKG5vdGUgdGhhdCBpZiAvZGV2L3N0ZGluIGlzIGNvbm5lY3RlZCB0byB0dHksIAogICBhbiBl cnJvciByZXN1bHRzKS4gIElmICdGSUxFMScgaXMgYWJzZW50LCBwZGZqYW0gd2lsbCB1c2UgJy9k ZXYvc3RkaW4nIAogICAoYW5kIHdpbGwgdXNlICctJyBmb3IgdGhlIHBhZ2Ugc2VsZWN0aW9uIC0t IHNlZSBuZXh0IGl0ZW0pLgoqICdTRUwxJyBpcyBhIHBhZ2Ugc2VsZWN0aW9uIGZvciBGSUxFMSwg ZXRjLgogICBUbyBzZWxlY3QgYWxsIHBhZ2VzICh0aGUgZGVmYXVsdCkgdXNlICctJy4gIFNlZSB0 aGUgcGRmcGFnZXMgbWFudWFsIGZvcgogICBtb3JlIGRldGFpbHMuICBBbiBleGFtcGxlOgogICAg ICAgICAgLi4uIGZpbGUxICd7fSwyLDQtNiw5LScgLi4uCiAgIG1ha2VzIGFuIGVtcHR5IHBhZ2Us IGZvbGxvd2VkIGJ5IHBhZ2VzIDIsNCw1LDYgb2YgZmlsZTEsIGZvbGxvd2VkIGJ5IHBhZ2VzCiAg IDkgb253YXJkcyAodXAgdG8gdGhlIGVuZCBvZiBmaWxlMSkuCiAgIEEgcGFnZSBzZWxlY3Rpb24g Y2FuIGJlIGFwcGxpZWQgdG8gbW9yZSB0aGFuIG9uZSBmaWxlLCBlLmcuLAogICAgICAgICAgLi4u IGZpbGUxIGZpbGUyIGZpbGUzIDEtNyAuLi4KICAgYXBwbGllcyBwYWdlIHNlbGVjdGlvbiAnMS03 JyB0byBhbGwgdGhyZWUgZmlsZXM7IGJ1dCBmb3IgZXhhbXBsZQogICAgICAgICAgLi4uIGZpbGUx IGZpbGUyIDItIGZpbGUzIDEtNyAuLi4KICAgd291bGQgYXBwbHkgdGhlIHBhZ2Ugc2VsZWN0aW9u ICcyLScgdG8gZmlsZTEgYW5kIGZpbGUyLCBhbmQgJzEtNycKICAgdG8gZmlsZTMuICBBIHBhZ2Ug c2VsZWN0aW9uIGFwcGxpZXMgdG8gYWxsIHRoZSBmaWxlcyAqaW1tZWRpYXRlbHkqCiAgIHByZWNl ZGluZyBpdCBpbiB0aGUgYXJndW1lbnQgbGlzdC4gIEEgbWlzc2luZyBwYWdlIHNlbGVjdGlvbiBk ZWZhdWx0cyB0byAKICAgJy0nOyB0aGlzIGluY2x1ZGVzIHRoZSBjYXNlIHdoZXJlICdGSUxFMScg aXMgYWJzZW50IGFuZCBzbyAvZGV2L3N0ZGluIGdldHMgCiAgIHVzZWQgYnkgZGVmYXVsdC4KKiAn b3B0aW9ucycgYXJlIHBkZnBhZ2VzIHNwZWNpZmljYXRpb25zIGluIHRoZSBmb3JtICctLUtFWSBW QUxVRScgKHNlZQogICBiZWxvdyksIG9yCiAgICAgLS1oZWxwICAob3IgLWgsIG9yIC11KQogICAg ICAgICAgICAgICAgICBPdXRwdXQgdGhpcyB0ZXh0IG9ubHk7IG5vIHByb2Nlc3Npbmcgb2YgUERG IGZpbGVzLgogICAgIC0tY29uZmlncGF0aAogICAgICAgICAgICAgICAgICBPdXRwdXQgdGhlICdj b25maWdwYXRoJyB2YXJpYWJsZSBhbmQgZXhpdCBpbW1lZGlhdGVseTsgbm8KICAgICAgICAgICAg ICAgICAgcHJvY2Vzc2luZyBvZiBQREYgZmlsZXMuCiAgICAgLS12ZXJzaW9uIChvciAtVikKICAg ICAgICAgICAgICAgICAgT3V0cHV0IHRoZSB2ZXJzaW9uIG51bWJlciBvZiBwZGZqYW0gYW5kIGV4 aXQgaW1tZWRpYXRlbHk7IG5vCiAgICAgICAgICAgICAgICAgIHByb2Nlc3Npbmcgb2YgUERGIGZp bGVzLgogICAgIC0tcXVpZXQgIChvciAtcSkKICAgICAgICAgICAgICAgICAgU3VwcHJlc3MgdmVy Ym9zZSBjb21tZW50YXJ5IG9uIHByb2dyZXNzLgogICAgIC0tYmF0Y2gKICAgICAgICAgICAgICAg ICAgUnVuIHBkZmphbSBzZXF1ZW50aWFsbHkgb24gZWFjaCBpbnB1dCBmaWxlIGluIHR1cm4sIGFu ZAogICAgICAgICAgICAgICAgICBwcm9kdWNlIGEgc2VwYXJhdGUgb3V0cHV0IGZpbGUgZm9yIGVh Y2ggaW5wdXQsIHJhdGhlcgogICAgICAgICAgICAgICAgICB0aGFuIHRoZSBkZWZhdWx0IGJlaGF2 aW91ciAod2hpY2ggaXMgYSBzaW5nbGUgcnVuIG9mCiAgICAgICAgICAgICAgICAgIHBkZmphbSBv biBhbGwgb2YgdGhlIGlucHV0IGZpbGVzLCBwcm9kdWNpbmcgYSBzaW5nbGUKICAgICAgICAgICAg ICAgICAgb3V0cHV0IGRvY3VtZW50KS4gIEZvciB0aGUgbG9jYXRpb24gb2Ygb3V0cHV0CiAgICAg ICAgICAgICAgICAgIGZpbGVzLCBzZWUgJy0tb3V0ZmlsZScuICBUaGUgLS1iYXRjaCBvcHRpb24g Y2Fubm90IGJlCiAgICAgICAgICAgICAgICAgIHVzZWQgaW4gdGhlIGNhc2Ugb2YgaW5wdXQgZnJv bSBzdGRpbi4KICAgICAtLW91dGZpbGUgUEFUSCAgKG9yIC1vIFBBVEgpCiAgICAgICAgICAgICAg ICAgIFNwZWNpZmllcyB3aGVyZSB0aGUgb3V0cHV0IGZpbGUocykgd2lsbCBnby4gIElmIFBBVEgg aXMgYW4KICAgICAgICAgICAgICAgICAgZXhpc3RpbmcgZGlyZWN0b3J5LCBwZGZqYW0gd2lsbCBh dHRlbXB0IHRvIHdyaXRlIGl0cwogICAgICAgICAgICAgICAgICBvdXRwdXQgUERGIGZpbGUocykg dGhlcmUsIHdpdGggbmFtZShzKSBkZXJpdmVkIGZyb20gdGhlCiAgICAgICAgICAgICAgICAgIGlu cHV0IGZpbGUgbmFtZShzKSBhbmQgdGhlIC0tc3VmZml4IG9wdGlvbiAoc2VlIGJlbG93KS4KICAg ICAgICAgICAgICAgICAgT3RoZXJ3aXNlIHRoZSBvdXRwdXQgZmlsZSB3aWxsIGJlIFBBVEguICBJ ZiAnL2Rldi9zdGRpbicgCiAgICAgICAgICAgICAgICAgIGlzIHRoZSBvbmx5IG9yIGxhc3QgaW5w dXQgZmlsZSwgUEFUSCBjYW5ub3QgYmUgYSBkaXJlY3RvcnkuCiAgICAgICAgICAgICAgICAgIFlv dXIgY3VycmVudCBkZWZhdWx0IFBBVEggZm9yIG91dHB1dCBpczogCiAgICAgICAgICAgICAgICAg ICRvdXRGaWxlCiAgICAgLS1zdWZmaXggU1RSSU5HCiAgICAgICAgICAgICAgICAgIFNwZWNpZmll cyBhIHN1ZmZpeCBmb3Igb3V0cHV0IGZpbGUgbmFtZXMsIHRvIGJlIHVzZWQgd2hlbgogICAgICAg ICAgICAgICAgICAtLW91dGZpbGUgaXMgZWl0aGVyIChhKSBhIGRpcmVjdG9yeSwgb3IKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYikgbm90IHNwZWNpZmllZCBpbiBhIC0t YmF0Y2ggY2FsbC4KICAgICAgICAgICAgICAgICAgQSBnb29kIFNUUklORyBzaG91bGQgYmUgZGVz Y3JpcHRpdmU6IGZvciBleGFtcGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAtLXN1ZmZp eCAncm90YXRlZCcKICAgICAgICAgICAgICAgICAgd291bGQgYXBwZW5kIHRoZSB0ZXh0ICctcm90 YXRlZCcgdG8gdGhlIG5hbWUgb2YgdGhlIGlucHV0CiAgICAgICAgICAgICAgICAgIGZpbGUgaW4g b3JkZXIgdG8gbWFrZSB0aGUgb3V0cHV0IGZpbGUgbmFtZSwgYXMgaW4KICAgICAgICAgICAgICAg ICAgJ215ZmlsZS1yb3RhdGVkLnBkZicuICBUaGUgU1RSSU5HIG11c3Qgbm90IGhhdmUgemVybwog ICAgICAgICAgICAgICAgICBsZW5ndGguCiAgICAgICAgICAgICAgICAgIFtEZWZhdWx0IGZvciB5 b3UgYXQgdGhpcyBzaXRlOiBzdWZmaXg9JHN1ZmZpeF0KICAgICAtLWNoZWNrZmlsZXMKICAgICAt LW5vLWNoZWNrZmlsZXMKICAgICAgICAgICAgICAgICAgSWYgdGhlIFVuaXggJ2ZpbGUnIHV0aWxp dHkgaXMgYXZhaWxhYmxlLCB3aXRoIG9wdGlvbnMKICAgICAgICAgICAgICAgICAgLUwgYW5kIC1i LCB0aGUgb3V0cHV0IG9mICdmaWxlIC1MYiBGSUxFMScgc2hvdWxkIGJlCiAgICAgICAgICAgICAg ICAgICdQREYgZG9jdW1lbnQuLi4nIHdoZXJlICcuLi4nIGdpdmVzIHZlcnNpb24gaW5mb3JtYXRp b24uCiAgICAgICAgICAgICAgICAgIElmIHRoaXMgaXMgdGhlIGNhc2Ugb24geW91ciBzeXN0ZW0g eW91IHNob3VsZCB1c2UKICAgICAgICAgICAgICAgICAgJy0tY2hlY2tmaWxlcyc7IG90aGVyd2lz ZSB1c2UgJy0tbm8tY2hlY2tmaWxlcycsCiAgICAgICAgICAgICAgICAgIGluIHdoaWNoIGNhc2Ug YWxsIGlucHV0IFBERiBmaWxlcyBtdXN0IGhhdmUgLnBkZiBvciAuUERGCiAgICAgICAgICAgICAg ICAgIGFzIHRoZWlyIG5hbWUgZXh0ZW5zaW9uLgogICAgICAgICAgICAgICAgICBbRGVmYXVsdCBm b3IgeW91IGF0IHRoaXMgc2l0ZTogY2hlY2tmaWxlcz0kY2hlY2tmaWxlc10KICAgICAtLXByZWFt YmxlIFNUUklORwogICAgICAgICAgICAgICAgICBBcHBlbmQgdGhlIHN1cHBsaWVkIFNUUklORyB0 byB0aGUgcHJlYW1ibGUgb2YgdGhlIExhVGVYCiAgICAgICAgICAgICAgICAgIHNvdXJjZSBmaWxl KHMpLCBpbW1lZGlhdGVseSBiZWZvcmUgdGhlICdcYmVnaW57ZG9jdW1lbnR9JwogICAgICAgICAg ICAgICAgICBsaW5lLiAgQW4gZXhhbXBsZToKICAgICAgICAgICAgICAgICAgICAgIHBkZmphbSAt LW51cCAyeDIgbXlmaWxlLnBkZiAtbyBteWZpbGUtNHVwLnBkZiBcXAogICAgICAgICAgICAgICAg ICAgICAgICAgIC0tcHJlYW1ibGUgJ1x1c2VwYWNrYWdle2ZhbmN5aGRyfSBccGFnZXN0eWxle2Zh bmN5fScKICAgICAgICAgICAgICAgICAgVGhlICctLXByZWFtYmxlJyBvcHRpb24gY2FuIGJlIHVz ZWQsIGZvciBleGFtcGxlLCB0byBsb2FkIAogICAgICAgICAgICAgICAgICBMYVRlWCBwYWNrYWdl cyBhbmQvb3IgdG8gc2V0IGdsb2JhbCBvcHRpb25zLiAgSWYgJy0tcHJlYW1ibGUnCiAgICAgICAg ICAgICAgICAgIGlzIHVzZWQgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIGNhbGwsIHRoZSBzdXBwbGll ZCBwcmVhbWJsZSAKICAgICAgICAgICAgICAgICAgc3RyaW5ncyBhcmUgc2ltcGx5IGNvbmNhdGVu YXRlZC4gIEZvciBhIG5vdGUgb24gYXZvaWRpbmcKICAgICAgICAgICAgICAgICAgY2xhc2hlcywg c2VlIHRoZSBQREZqYW0tUkVBRE1FIGZpbGUgKGFsc28gYXZhaWxhYmxlIGF0CiAgICAgICAgICAg ICAgICAgIGh0dHA6Ly93d3cucGRmamFtLm5ldCkuCiAgICAgLS1rZWVwaW5mbwogICAgIC0tbm8t a2VlcGluZm8KICAgICAgICAgICAgICAgICAgUHJlc2VydmUgKG9yIG5vdCkgVGl0bGUsIEF1dGhv ciwgU3ViamVjdCBhbmQgS2V5d29yZHMKICAgICAgICAgICAgICAgICAgKGZyb20gdGhlIGxhc3Qg aW5wdXQgUERGIGZpbGUsIGlmIG1vcmUgdGhhbiBvbmUpIGluIHRoZQogICAgICAgICAgICAgICAg ICBvdXRwdXQgUERGIGZpbGUuICBUaGlzIHJlcXVpcmVzIHRoZSBwZGZpbmZvIHV0aWxpdHksIGZy b20KICAgICAgICAgICAgICAgICAgdGhlIHhwZGYgcGFja2FnZSwgYW5kIHRoZSBMYVRlWCAnaHlw ZXJyZWYnIHBhY2thZ2U7IGlmCiAgICAgICAgICAgICAgICAgIGVpdGhlciBvZiB0aG9zZSBpcyBu b3QgYXZhaWxhYmxlLCAnLS1rZWVwaW5mbycgaXMgaWdub3JlZC4KICAgICAgICAgICAgICAgICAg W0RlZmF1bHQgZm9yIHlvdSBhdCB0aGlzIHNpdGU6IGtlZXBpbmZvPSRrZWVwaW5mb10KICAgICAt LXBkZnRpdGxlIFNUUklORwogICAgIC0tcGRmYXV0aG9yIFNUUklORwogICAgIC0tcGRmc3ViamVj dCBTVFJJTkcKICAgICAtLXBkZmtleXdvcmRzIFNUUklORwogICAgICAgICAgICAgICAgICBQcm92 aWRlIHRleHQgZm9yIHRoZSAgVGl0bGUsIEF1dGhvciwgU3ViamVjdCBhbmQgS2V5d29yZHMKICAg ICAgICAgICAgICAgICAgaW4gdGhlIG91dHB1dCBQREYgZmlsZS4gIFJlcXVpcmVzIHRoZSAgTGFU ZVggJ2h5cGVycmVmJwogICAgICAgICAgICAgICAgICBwYWNrYWdlLiAgVGhlc2Ugb3B0aW9ucywg aW5kaXZpZHVhbGx5LCBvdmVyLXJpZGUgLS1rZWVwaW5mby4KICAgICAtLWxhbmRzY2FwZQogICAg IC0tbm8tbGFuZHNjYXBlCiAgICAgICAgICAgICAgICAgIFNwZWNpZnkgbGFuZHNjYXBlIHBhZ2Ug b3JpZW50YXRpb24gKG9yIG5vdCkgaW4gdGhlCiAgICAgICAgICAgICAgICAgIG91dHB1dCBQREYg ZmlsZS4KICAgICAgICAgICAgICAgICAgW0RlZmF1bHQgZm9yIHlvdSBhdCB0aGlzIHNpdGU6IGxh bmRzY2FwZT0kbGFuZHNjYXBlXQogICAgIC0tdHdvc2lkZQogICAgIC0tbm8tdHdvc2lkZQogICAg ICAgICAgICAgICAgICBTcGVjaWZ5IChvciBub3QpIHRoZSAndHdvc2lkZScgZG9jdW1lbnQgY2xh c3Mgb3B0aW9uLgogICAgICAgICAgICAgICAgICBbRGVmYXVsdCBmb3IgeW91IGF0IHRoaXMgc2l0 ZTogdHdvc2lkZT0kdHdvc2lkZV0KICAgICAtLXBhcGVyIFBBUEVSU1BFQyAgKG9yIHNpbXBseSAt LVBBUEVSU1BFQykKICAgICAgICAgICAgICAgICAgU3BlY2lmeSBhIExhVGVYIHBhcGVyIHNpemUs IGZvciBleGFtcGxlCiAgICAgICAgICAgICAgICAgICctLXBhcGVyIGE0cGFwZXInIG9yIHNpbXBs eSAnLS1hNHBhcGVyJyBmb3IgSVNPIEE0IHBhcGVyLgogICAgICAgICAgICAgICAgICBJZiB0aGUg TGFUZVggJ2dlb21ldHJ5JyBwYWNrYWdlIGlzIGluc3RhbGxlZCwgYSB3aWRlciByYW5nZQogICAg ICAgICAgICAgICAgICBvZiBwYXBlciBzaXplcyBpcyBhdmFpbGFibGUuICBGb3IgZGV0YWlscyBz ZWUgZG9jdW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICBmb3IgTGFUZVggYW5kL29yIHRoZSAn Z2VvbWV0cnknIHBhY2thZ2UuCiAgICAgICAgICAgICAgICAgIFtEZWZhdWx0IGZvciB5b3UgYXQg dGhpcyBzaXRlOiBwYXBlcj0kcGFwZXJdCiAgICAgLS1wYXBlcnNpemUgJ3tXSURUSCxIRUlHSFR9 JwogICAgICAgICAgICAgICAgICBTcGVjaWZ5IGEgY3VzdG9tIHBhcGVyIHNpemUsIGUuZy4sCiAg ICAgICAgICAgICAgICAgICAgICAtLXBhcGVyc2l6ZSAnezEwaW4sMThjbX0nCiAgICAgICAgICAg ICAgICAgIChOb3RlIHRoZSBicmFjZXMsIGFuZCB0aGUgY29tbWEhKQogICAgICAgICAgICAgICAg ICBJZiB0aGUgJ2dlb21ldHJ5JyBwYWNrYWdlIGlzIG5vdCBmb3VuZCwgdGhpcyBoYXMgbm8gZWZm ZWN0LgogICAgIC0tcGFnZWNvbG9yIFJHQlNQRUMKICAgICAgICAgICAgICAgICAgU3BlY2lmeSBh IGJhY2tncm91bmQgY29sb3VyIGZvciB0aGUgb3V0cHV0IHBhZ2VzLiAgVGhlIAogICAgICAgICAg ICAgICAgICBSR0JTUEVDIG11c3QgYmUgYSBjb21tYS1zZXBhcmF0ZWQgdHJpbyBvZiBpbnRlZ2Vy cwogICAgICAgICAgICAgICAgICBiZXR3ZWVuIDAgYW5kIDI1NS4gIEFuIGV4YW1wbGU6CiAgICAg ICAgICAgICAgICAgICAgICAgICAtLXBhZ2Vjb2xvciAxNTAsMjAwLDE1MAogICAgICAgICAgICAg ICAgICBbRGVmYXVsdCBpcyBubyBiYWNrZ3JvdW5kIGNvbG91cl0KICAgICAtLXRpZHkKICAgICAt LW5vLXRpZHkKICAgICAgICAgICAgICAgICAgU3BlY2lmeSB3aGV0aGVyIHRoZSB0ZW1wb3Jhcnkg ZGlyZWN0b3J5IGNyZWF0ZWQgYnkKICAgICAgICAgICAgICAgICAgcGRmamFtIHNob3VsZCBiZSBk ZWxldGVkLiAgVXNlICctLW5vLXRpZHknIHRvIGhlbHAgZGVidWcKICAgICAgICAgICAgICAgICAg bW9zdCBlcnJvcnMuCiAgICAgICAgICAgICAgICAgIFtEZWZhdWx0IGZvciB5b3UgYXQgdGhpcyBz aXRlOiB0aWR5PSR0aWR5XQogICAgIC0tbGF0ZXggUEFUSFRPTEFURVgKICAgICAgICAgICAgICAg ICAgU3BlY2lmeSB0aGUgTGFUZVggZW5naW5lIHRvIGJlIHVzZWQgKG9uZSBvZiBwZGZsYXRleCwK CQkgIHhlbGF0ZXgsIGx1YWxhdGV4KS4gIFRoZSBQQVRIVE9MQVRFWCBzdHJpbmcgbXVzdCBiZQoJ CSAgdGhlIGZ1bGwgcGF0aCB0byBhIHN1aXRhYmxlIExhVGVYIGV4ZWN1dGFibGUgKGZvciBleGFt cGxlCgkJICAvdXNyL2Jpbi94ZWxhdGV4IG9uIG1hbnkgdW5peCBzeXN0ZW1zKS4KCQkgIFtEZWZh dWx0IGZvciB5b3UgYXQgdGhpcyBzaXRlOiBsYXRleD0kbGF0ZXhdCiAgICAgLS1ydW5zIE4KICAg ICAgICAgICAgICAgICAgUnVuIGxhdGV4IE4gdGltZXMsIGZvciBlYWNoIG91dHB1dCBkb2N1bWVu dCBtYWRlLiAKICAgICAgICAgICAgICAgICAgW0RlZmF1bHQgZm9yIHlvdSBhdCB0aGlzIHNpdGU6 IHJ1bnM9JHJ1bnNdCiAgICAgLS12YW5pbGxhCiAgICAgICAgICAgICAgICAgIFN1cHByZXNzIHRo ZSByZWFkaW5nIG9mIGFueSBzaXRlLXdpZGUgb3IgdXNlci1zcGVjaWZpYwogICAgICAgICAgICAg ICAgICBjb25maWd1cmF0aW9uIGZpbGVzLgogICAgIC0tS0VZIFZBTFVFCiAgICAgICAgICAgICAg ICAgIFNwZWNpZnkgb3B0aW9ucyB0byAnXGluY2x1ZGVwZGZtZXJnZScsIGluIHRoZSBMYVRlWAog ICAgICAgICAgICAgICAgICAncGRmcGFnZXMnIHBhY2thZ2UuICBIZXJlIEtFWSBpcyB0aGUgbmFt ZSBvZiBhbnkgb2YgdGhlCiAgICAgICAgICAgICAgICAgIG1hbnkgb3B0aW9ucyBmb3IgJ1xpbmNs dWRlcGRmbWVyZ2UnLCBhbmQgVkFMVUUgaXMgYQogICAgICAgICAgICAgICAgICBjb3JyZXNwb25k aW5nIHZhbHVlLiAgRXhhbXBsZXMgYXJlCiAgICAgICAgICAgICAgICAgICAgICAtLW51cCAyeDEg ICAgIChmb3IgMi11cCBzaWRlLWJ5LXNpZGUgaW1wb3NpdGlvbikKICAgICAgICAgICAgICAgICAg ICAgIC0tc2NhbGUgMC43ICAgKHRvIHNjYWxlIGFsbCBpbnB1dCBwYWdlcyB0byA3MCUgc2l6ZSkK ICAgICAgICAgICAgICAgICAgICAgIC0tb2Zmc2V0ICcxY20gMC41Y20nCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh0byBvZmZzZXQgYWxsIHBhZ2VzIC0tIG5vdGUgdGhlIHF1 b3RlcyEpCiAgICAgICAgICAgICAgICAgICAgICAtLWZyYW1lIHRydWUgICh0byBwdXQgYSBmcmFt ZSByb3VuZCBlYWNoIGlucHV0IHBhZ2UpCiAgICAgICAgICAgICAgICAgICAgICAtLXRyaW0gJzFj bSAyY20gMWNtIDJjbScgLS1jbGlwIHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHRvIHRyaW0gdGhvc2UgYW1vdW50cyBmcm9tIGxlZnQsIGJvdHRvbSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0IGFuZCB0b3AsIHJlc3BlY3RpdmVseSwg b2YgaW5wdXQgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlcykgCiAg ICAgICAgICAgICAgICAgIGV0Yy4sIGV0Yy4gIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUg bWFudWFsIGZvcgogICAgICAgICAgICAgICAgICB0aGUgJ3BkZnBhZ2VzJyBwYWNrYWdlLCBhdAog ICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmN0YW4ub3JnL3RleC1hcmNoaXZlL21hY3Jvcy9s YXRleC9jb250cmliL3BkZnBhZ2VzCiogJy0tJyBjYW4gYmUgdXNlZCB0byBzaWduYWwgdGhhdCB0 aGVyZSBhcmUgbm8gbW9yZSBvcHRpb25zIHRvIGNvbWUuCgpEZWZhdWx0cyBmb3IgdGhlIG9wdGlv bnMgJy0tc3VmZml4JywgJy0ta2VlcGluZm8nLCAnLS1wYXBlcicsICctLW91dGZpbGUnLCAKJy0t bGFuZHNjYXBlJywgJy0tdHdvc2lkZScsICctLXRpZHknLCAnLS1sYXRleCcsICctLXJ1bnMnLCAn LS1jaGVja2ZpbGVzJwphbmQgJy0tcHJlYW1ibGUnIGNhbiBiZSBzZXQgaW4gc2l0ZS13aWRlIG9y IHVzZXItc3BlY2lmaWMgY29uZmlndXJhdGlvbiBmaWxlcy4KVGhlIHBhdGggdGhhdCBpcyBzZWFy Y2hlZCBmb3Igc2l0ZS13aWRlIGNvbmZpZ3VyYXRpb24gZmlsZXMgKG5hbWVkIHBkZmphbS5jb25m KQphdCB0aGlzIGluc3RhbGxhdGlvbiBpcwogICAgJGNvbmZpZ3BhdGgKVGhpcyBjb25maWd1cmF0 aW9uIHBhdGggY2FuIGJlIGNoYW5nZWQgYnkgZWRpdGluZyB0aGUgcGRmamFtIHNjcmlwdCBpZgpu ZWNlc3NhcnkuICBBbnkgdXNlci1zcGVjaWZpYyBjb25maWd1cmF0aW9uIHNob3VsZCBiZSBwdXQg aW4gYSBmaWxlIG5hbWVkCi5wZGZqYW0uY29uZiBpbiB5b3VyIGhvbWUgZGlyZWN0b3J5LiAgKEFs bCBvZiB0aGVzZSBmaWxlcyBhcmUgaWdub3JlZAppZiB0aGUgJy0tdmFuaWxsYScgYXJndW1lbnQg aXMgdXNlZC4pCgpGb3IgbW9yZSBpbmZvcm1hdGlvbiwgaW5jbHVkaW5nIGEgc2FtcGxlIGNvbmZp Z3VyYXRpb24gZmlsZSwgc2VlCmh0dHBzOi8vZ2l0aHViLmNvbS9EYXZpZEZpcnRoL3BkZmphbS4K IgojIwojIyAgRU5EIE9GIEhFTFAgVEVYVAojIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjCiMjICBQUkVM SU1JTkFSSUVTCiMjCiMjICBGaXJzdCBkZXRlcm1pbmU6CiMjICAgIC0tLSB3aGV0aGVyIHZlcmJv c2UgY29tbWVudGFyeSBzaG91bGQgYmUgcHJvdmlkZWQgKG5vdCBpZiAtLXF1aWV0IAojICAgICAg ICAgb3IgLS1jb25maWdwYXRoIHdhcyBzcGVjaWZpZWQpOyAKIyMgICAgLS0tIHdoZXRoZXIgdGhp cyBjYWxsIHRvIHBkZmphbSBpcyBhICJiYXRjaCIgY2FsbDsgCiMjICAgIC0tLSB3aGV0aGVyIGp1 c3QgdGhlIGhlbHAgdGV4dCBpcyByZXF1aXJlZDsgCiMjICAgIC0tLSBvciB3aGV0aGVyIGFsbCBj b25maWd1cmF0aW9uIGZpbGVzIHNob3VsZCBiZSBpZ25vcmVkLgojIwp2ZXJib3NlPXRydWUKZm9y IGFyZwpkbwogICAgY2FzZSAkYXJnIGluCgktLXF1aWV0IHwgLXEgfCAtLWNvbmZpZ3BhdGgpCgkg ICAgdmVyYm9zZT1mYWxzZSA7CgkgICAgOzsKCS0tdmVyc2lvbiB8IC1WKQoJICAgIGVjaG8gIiR2 ZXJzaW9uIgoJICAgIGV4aXQgMCA7CgkgICAgOzsKCS0tYmF0Y2gpCgkgICAgYmF0Y2g9dHJ1ZSA7 CgkgICAgOzsKCS0taGVscCB8IC11IHwgLWgpCgkJcHJpbnRmICIlc1xuIiAiJGhlbHB0ZXh0IiA7 CgkJZXhpdCAwIDsKCSAgICA7OwoJLS12YW5pbGxhKQoJICAgIHZhbmlsbGE9dHJ1ZSA7CgkgICAg OzsKCSopCgkgICAgOzsKICAgIGVzYWMKZG9uZQojIwojIyAgQ2hlY2sgdG8gc2VlIHdoZXRoZXIg dGhpcyBpcyBhICJzZWNvbmRhcnkiIGNhbGwgdG8gcGRmamFtOgojIwppZiB0ZXN0IC16ICIkUERG SkFNX0NBTExfTlVNQkVSIiAgIyMgbm90IGEgc2Vjb25kYXJ5IGNhbGwKdGhlbgogICAgUERGSkFN X0NBTExfTlVNQkVSPTAKZmkKIyMKIyMgIEtlZXAgYSBjb3B5IG9mIHRoZSBpbnRlcm5hbCBmaWxl IHNlcGFyYXRvciwgc28gd2UgY2FuIGNoYW5nZSBpdCBzYWZlbHkKIyMKT0lGUz0iJElGUyIKIyMK IyMgIFJlY29yZCB0aGUgZnVsbCBmaWxlbmFtZSBvZiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmFj dG9yeQojIwpwd2Q9JChwd2QpCiMjCiMjICBUcmFwIGludGVycnVwdHMgc28gdGhhdCB0aGV5IGtp bGwgZXZlcnl0aGluZzoKIyMKdHJhcCAnSUZTPSRPSUZTOyBleGl0IDEnIDEgMiAxNQojIwojIyAg VGhlIGZvbGxvd2luZyB3aWxsIGJlIHVzZWZ1bCBmb3IgcmVhZGFiaWxpdHkgb2YgdGhlIHNjcmlw dDoKIyMKbmV3bGluZT0nCicKIyMKIyMgIERlZmluZSBhIGZ1bmN0aW9uIHRvIGVzY2FwZSB0cmlj a3kgY2hhcmFjdGVycyBpbiBmaWxlIG5hbWVzIGV0YzoKIyMKZXNjYXBlX2NoYXJzICgpIHsKICAg IChwcmludGYgIiVzIiAiJHsxfSIgfCBzZWQgJ3MvW15hLXpBLVowLTkuXy9cLV0vXFwmL2cnKQp9 CiMjCiMjICBEZWZpbmUgYSBmdW5jdGlvbiB0byBvdXRwdXQgdmVyYm9zZSBjb21tZW50czoKIyMK cHJhdHRsZSAoKSB7ICMjIHNlY29uZCBhcmd1bWVudCBoZXJlIGlzIG5vbi1udWxsIGZvciBjb250 aW51YXRpb24gbGluZXMKICAgIGlmIHRlc3QgJHZlcmJvc2UgPSB0cnVlOyB0aGVuCglwcmVmaXgx PSIgIHBkZmphbToiIDsKCXByZWZpeDI9JChwcmludGYgIiVzIiAiJHByZWZpeDEiIHwgc2VkICdz L3BkZmphbTovICAgICAgIC8nKSA7CglpbmRlbnQ9IiIgOwoJaWYgdGVzdCAiJFBERkpBTV9DQUxM X05VTUJFUiIgLWd0IDAgICYmCgkgICAgdGVzdCAiJGJhdGNoIiAhPSB0cnVlCgl0aGVuCgkgICAg aW5kZW50PSIgICAgIgoJZmkKCUlGUz0iJG5ld2xpbmUiIDsKCWxpbmVDb3VudGVyPTAgOwoJZm9y IGxpbmUgaW4gJHsxfQoJZG8KCSAgICBsaW5lQ291bnRlcj0kKChsaW5lQ291bnRlciArIDEpKSA7 CgkgICAgaWYgIHRlc3QgJGxpbmVDb3VudGVyIC1lcSAxICAmJiAgdGVzdCAhIC1uICIkezJ9IiA7 CgkgICAgdGhlbiAKCQlpZiB0ZXN0IC13ICIkUERGSkFNX01FU1NBR0VTX0ZJTEUiCgkJdGhlbiBw cmludGYgIiRwcmVmaXgxJGluZGVudCAlc1xuIiAiJGxpbmUiIDE+L2Rldi9udWxsID4+IFwKICAg ICAgICAgICAgICAgICAgICAgICAiJFBERkpBTV9NRVNTQUdFU19GSUxFIgoJCWVsc2UgbWVzc2Fn ZXM9IiRtZXNzYWdlcyRwcmVmaXgxJGluZGVudCAkbGluZSRuZXdsaW5lIiAgCiAgICAgICAgICAg ICAgICAgICAgICAgIyMgbXNnIGZpbGUgbm90IG1hZGUgeWV0CgkJZmkKCSAgICBlbHNlIAoJCWlm IHRlc3QgLXcgIiRQREZKQU1fTUVTU0FHRVNfRklMRSIKCQl0aGVuIHByaW50ZiAiJHByZWZpeDIk aW5kZW50ICVzXG4iICIkbGluZSIgMT4vZGV2L251bGwgPj4gXAogICAgICAgICAgICAgICAgICAg ICAgICIkUERGSkFNX01FU1NBR0VTX0ZJTEUiCgkJZWxzZSBtZXNzYWdlcz0iJG1lc3NhZ2VzJHBy ZWZpeDIkaW5kZW50ICRsaW5lJG5ld2xpbmUiICAKICAgICAgICAgICAgICAgICAgICAgICAjIyBt c2cgZmlsZSBub3QgbWFkZSB5ZXQKCQlmaQoJICAgIGZpIDsKCWRvbmUgOwoJSUZTPSIkT0lGUyIg OwogICAgZmkgOwogICAgcmV0dXJuIDsKfQojIwojIyAgQW5kIGhlcmUncyB0aGUgZmlyc3QgcGll Y2Ugb2YgdmVyYm9zZSBjb21tZW50YXJ5OgojIwpwcmF0dGxlICItLS0tIiAxCnByYXR0bGUgIlRo aXMgaXMgcGRmamFtIHZlcnNpb24gJHt2ZXJzaW9ufS4iCiMjCiMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyMK IyMgIENPTkZJR1VSQVRJT04KIyMKIyMgIFRIRVNFIFNFVFRJTkdTIFdJTEwgQkUgT1ZFUi1SSURE RU4gYnkgYW55IGZvdW5kIGluIGNvbmZpZ3VyYXRpb24KIyMgIGZpbGVzLiAgQnkgZGVmYXVsdCBz dWNoIGZpbGVzIGFyZSBmb3VuZCBhdCBhbnkgb3IgYWxsIG9mCiMjICAgICAvZXRjL3BkZmphbS5j b25mCiMjICAgICAvdXNyL3NoYXJlL2V0Yy9wZGZqYW0uY29uZgojIyAgICAgL3Vzci9sb2NhbC9z aGFyZS9wZGZqYW0uY29uZgojIyAgICAgL3Vzci9sb2NhbC9ldGMvcGRmamFtLmNvbmYKIyMgICAg ICRIT01FLy5wZGZqYW0uY29uZgojIyAgKEFuZCB0aGV5IGFyZSByZWFkIGluIHRoYXQgb3JkZXI7 IGlmIGEgc2V0dGluZyBpcyBtYWRlIG1vcmUgdGhhbgojIyAgb25jZSwgdGhlIGxhc3QgaW5zdGFu Y2UgcHJldmFpbHMuKQojIwojIyAgQW4gZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgY2FuIGJl IGZvdW5kIGF0CiMjICAgICBodHRwczovL2dpdGh1Yi5jb20vRGF2aWRGaXJ0aC9wZGZqYW0KIyMK IyMgIFRoZSBwYXRoIHNlYXJjaGVkIGZvciBzaXRlLXdpZGUgY29uZmlndXJhdGlvbiBmaWxlcyBj YW4gYmUgY2hhbmdlZAojIyAgYnkgZWRpdGluZyB0aGUgdmFyaWFibGUgJ2NvbmZpZ3BhdGgnIGF0 IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgojIwojIwojIyAgRmlyc3QgZ2V0IHRoZSBmdWxsIHBhdGgg KGlmIGl0IGV4aXN0cykgdG8gcGRmbGF0ZXg6CiMjCmxhdGV4PSQoY29tbWFuZCAtdiBwZGZsYXRl eCkKaWYgWyAteiAiJGxhdGV4IiBdIDsgdGhlbiBsYXRleD0ibm90IGZvdW5kIiA7IGZpCiMjCiMj ICBMaWtld2lzZSBmb3IgdGhlIHBkZmluZm8gKG9ubHkgbmVlZGVkIGZvciBgLS1rZWVwaW5mbycp OgojIwpwZGZpbmZvPSQoY29tbWFuZCAtdiBwZGZpbmZvKQppZiBbIC16ICIkcGRmaW5mbyIgXSA7 IHRoZW4gcGRmaW5mbz0ibm90IGZvdW5kIjsgZmkKIyMKIyMKIyMgIE5leHQgYSBwZXJtaXR0ZWQg bG9jYXRpb24gZm9yIHRlbXBvcmFyeSBmaWxlcyBvbiB5b3VyIHN5c3RlbToKIyMKdGVtcGZpbGVE aXI9Jy92YXIvdG1wJyAgICMjICAvdmFyL3RtcCBpcyBzdGFuZGFyZCBvbiBtb3N0IHVuaXggc3lz dGVtcwojIwojIwojIyAgRGVmYXVsdCBmb3IgdGhlIG91dHB1dCBmaWxlIGxvY2F0aW9uOgojIwpv dXRGaWxlPSIkcHdkIiAgICAgICAgICAgIyMgIE91dHB1dCB0byB0aGUgY3VycmVudCB3b3JraW5n IGRpcmVjdG9yeQojIwojIwojIyAgQSBmZXcgbW9yZSBkZWZhdWx0IHNldHRpbmdzIGZvciBwZGZq YW06CiMjCnJ1bnM9MSAgICAgICAgICAgICAgICAgICAgICMjIFJ1biBsYXRleCBqdXN0IG9uY2UK IyMKdGlkeT0ndHJ1ZScgICAgICAgICAgICAgICAgIyMgIERlbGV0ZSBhbGwgdGVtcG9yYXJ5IGZp bGVzIGF0IHRoZSBlbmQKIyMKa2VlcGluZm89J2ZhbHNlJyAgICAgICAgICAgIyMgIERvbid0IHRy eSB0byBwcmVzZXJ2ZSAicGRmaW5mbyIgZGF0YQojIwpjaGVja2ZpbGVzPSdmYWxzZScgICAgICAg ICAjIyAgRG9uJ3QgdXNlIHRoZSBVbml4ICdmaWxlIC1MYicgdXRpbGl0eSB0bwojIyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlkZW50aWZ5IFBERiBmaWxlcyBmcm9tIHRoZWlyIGNvbnRlbnRz OwojIyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbHkgb24gdGhlIC5wZGYgb3IgLlBERiBl eHRlbnNpb24gaW5zdGVhZC4KIyMKc3VmZml4PSdwZGZqYW0nICAgICAgICAgICAgIyMgIERlZmF1 bHQgZmlsZW5hbWUgc3VmZml4IHRvIGJlIHVzZWQgd2hlbiAKIyMgICAgICAgICAgICAgICAgICAg ICAgICAgICAtLW91dGZpbGUgaXMgZWl0aGVyIChhKSBhIGRpcmVjdG9yeSwgb3IgKGIpIAojIyAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCBzcGVjaWZpZWQgaW4gYSAtLWJhdGNoIGNhbGwu CiMjCnByZWFtYmxlPScnICAgICAgICAgICAgICAgICMjICBEZWZhdWx0IExhVGVYIHByZWFtYmxl IHN0cmluZy4KIyMKIyMgIEd1ZXNzIGRlZmF1bHQgcGFwZXIgc2l6ZSBmcm9tIGxvY2FsZSBpZiBw b3NzaWJsZSwgb3RoZXJ3aXNlIEE0CiMjCmlmIGNvbW1hbmQgLXYgbG9jYWxlID4vZGV2L251bGwg OyB0aGVuCiAgICBwYXBlcmhlaWdodD0kKGxvY2FsZSAtayBMQ19QQVBFUiB8IHNlZCAtZSAnMSFk JyAtZSAncy8uKj0vLycpIDsKICAgIGNhc2UgJHBhcGVyaGVpZ2h0IGluCgkyOTcpCgkgICAgcGFw ZXI9J2E0cGFwZXInIDsKCSAgICA7OwoJMjc5KQoJICAgIHBhcGVyPSdsZXR0ZXJwYXBlcicgOwoJ ICAgIDs7CgkqKQoJICAgIHBhcGVyPSdhNHBhcGVyJyA7CgkgICAgOzsKICAgIGVzYWMKZWxzZSBw YXBlcj0nYTRwYXBlcicgOyAgIyMgZmFsbGJhY2sgcGFwZXIgc2l6ZSBpcyBJU08gQTQKZmkKIyMK IyMgIEVORCBPRiBTRVRUSU5HUyBNQURFIERJUkVDVExZIFdJVEhJTiBUSEUgU0NSSVBUCiMjCiMj ICBOb3cgcmVhZCB0aGUgc2l0ZSdzIG9yIHVzZXIncyBjb25maWd1cmF0aW9uIGZpbGUocykgaWYg c3VjaCBleGlzdCwKIyMgIHVubGVzcyAnLS12YW5pbGxhJyB3YXMgc3BlY2lmaWVkLgojIwppZiB0 ZXN0ICIkdmFuaWxsYSIgIT0gdHJ1ZQp0aGVuCiAgICBpZiB0ZXN0ICIkUERGSkFNX0NBTExfTlVN QkVSIiA9IDAgICAjIyBub3QgYSBzZWNvbmRhcnkgY2FsbCB0byBwZGZqYW0KICAgIHRoZW4KCWNv bmZpZ0ZpbGVzPSQocHJpbnRmICIlcyIgIiRjb25maWdwYXRoIiB8IFwKCSAgICBzZWQgJ3MvOi9c L3BkZmphbS5jb25mOi9nOyBzLyQvXC9wZGZqYW0uY29uZi8nKQoJY29uZmlnRmlsZXM9IiR7Y29u ZmlnRmlsZXN9OiRIT01FLy5wZGZqYW0uY29uZiIKCVBERkpBTV9DT05GSUc9IiIKCXByYXR0bGUg IlJlYWRpbmcgYW55IHNpdGUtd2lkZSBvciB1c2VyLXNwZWNpZmljIGRlZmF1bHRzLi4uIgoJSUZT PSc6JwoJZm9yIGQgaW4gJGNvbmZpZ0ZpbGVzCglkbwoJICAgIGlmIHRlc3QgLWYgIiRkIjsgdGhl bgoJCWNoYW5nZT0kKHNlZCAnL14gKiMuKi9kIDsgcy8gKiMuKi8vOyBzL14gKi8vJyAiJGQiKQoJ CWNvbW1lbnQ9IiMjICR7bmV3bGluZX0jIyBGcm9tICR7ZH06ICR7bmV3bGluZX0jIyIKCQlQREZK QU1fQ09ORklHPSIkUERGSkFNX0NPTkZJRyRjb21tZW50JG5ld2xpbmUkY2hhbmdlJG5ld2xpbmUi CgkgICAgZmkKCWRvbmUKCUlGUz0iJE9JRlMiCglQREZKQU1fQ09ORklHPSQocHJpbnRmICIlcyIg IiRQREZKQU1fQ09ORklHIiB8IHNlZCAncy9eLyAgICAvJykKCWlmIHRlc3QgIiRiYXRjaCIgPSB0 cnVlIDsgdGhlbiBleHBvcnQgUERGSkFNX0NPTkZJRyA7IGZpCglpZiB0ZXN0IC16ICIkUERGSkFN X0NPTkZJRyIKCXRoZW4KCSAgICBwcmF0dGxlICIobm9uZSBmb3VuZCkiIDEKCWVsc2UKCSAgICBw cmF0dGxlICIkUERGSkFNX0NPTkZJRyIgMQoJZmkKICAgIGZpCiAgICBpZiB0ZXN0IC1uICIkUERG SkFNX0NPTkZJRyIgOyB0aGVuIGV2YWwgIiRQREZKQU1fQ09ORklHIiA7IGZpCmVsc2UKICAgIGlm IHRlc3QgJFBERkpBTV9DQUxMX05VTUJFUiAtZXEgMAogICAgdGhlbgoJcHJhdHRsZSAiQ2FsbGVk IHdpdGggJy0tdmFuaWxsYSc6IG5vIHVzZXIgb3Igc2l0ZSBjb25maWd1cmF0aW9uIgoJcHJhdHRs ZSAiZmlsZXMgd2lsbCBiZSByZWFkLiIgMQogICAgZmkKZmkKIyMgRm9yIGJhY2t3YXJkcyBjb21w YXRpYmlsaXR5LCBjaGVjayBoZXJlIGZvciBhICRwZGZsYXRleCBzZXR0aW5nIGluIHRoZSBjb25m aWcgZmlsZQppZiBbIC1uICIke3BkZmxhdGV4Oi19IiBdIDsgdGhlbiBsYXRleD0iJHBkZmxhdGV4 IiA7IGZpCiMjCiMjICBFTkQgT0YgQ09ORklHVVJBVElPTiBCTE9DSwojIwojIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCiMjCiMjICBFUlJPUiBDT0RFUwojIwpFX1VTQUdFPTY0ICAgICAgICAgICAjICBjb21tYW5k IGxpbmUgdXNhZ2UgZXJyb3IKRV9OT0lOUFVUPTY2ICAgICAgICAgIyAgY2Fubm90IG9wZW4gaW5w dXQKRV9VTkFWQUlMQUJMRT02OSAgICAgIyAgc2VydmljZSB1bmF2YWlsYWJsZQpFX1NPRlRXQVJF PTcwICAgICAgICAjICBpbnRlcm5hbCBzb2Z0d2FyZSBlcnJvcgpFX09TRklMRT03MiAgICAgICAg ICAjICBmaWxlIGRvZXMgbm90IGV4aXN0IG9yIGNhbm5vdCBiZSBvcGVuZWQKRV9DQU5UQ1JFQVRF PTczICAgICAgIyAgY2FuJ3QgY3JlYXRlICh1c2VyKSBvdXRwdXQgZmlsZQpFX0NPTkZJRz03OCAg ICAgICAgICAjICBjb25maWd1cmF0aW9uIGVycm9yCiMjCiMjICBEZWZpbmUgYSBmdW5jdGlvbiB0 byBwcmludCBhbiBlcnJvciBtZXNzYWdlIGFuZCBleGl0OgojIwplcnJvcl9leGl0ICgpIHsKICAg IGlmIFsgLXIgIiRQREZKQU1fTUVTU0FHRVNfRklMRSIgXQogICAgdGhlbiBjYXQgIiRQREZKQU1f TUVTU0FHRVNfRklMRSIgPiYyCiAgICBlbHNlIHByaW50ZiAiJXMiICIkbWVzc2FnZXMiIDE+JjIK ICAgIGZpCiAgICBwcmludGYgIiAgcGRmamFtIEVSUk9SOiAlc1xuIiAiJDEiIDE+JjIgOwogICAg ZXhpdCAiJDIiIDsKfQojIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjCiMjICBSRUFEIEFORCBQUk9DRVNT IFRIRSBBUkdVTUVOVFMKIyMKIyMgIEluIGNhc2Ugb2YgTk8gYXJndW1lbnQgc3VwcGxpZWQsIG1l bnRpb24gJ3BkZmphbSAtLWhlbHAnOgojIwppZiAgdGVzdCAkIyAtZXEgMAp0aGVuCiAgICBwcmF0 dGxlICJObyBhcmd1bWVudHMgc3VwcGxpZWQ7IGNvbnRpbnVpbmcgYW55d2F5LiAoU2VlIgogICAg cHJhdHRsZSAiJ3BkZmphbSAtLWhlbHAnIGZvciBpbmZvcm1hdGlvbiBvbiB1c2FnZS4pIiAgMQpm aQojIwojIyAgTm93IGRvIHRoZSBhcmd1bWVudCBsb29wLgojIwpmaWxlU3BlYz0iIgptaXNjT3B0 aW9ucz0iIgpjYWxsT3B0aW9ucz0iIgpvcHRpb25zRmluaXNoZWQ9IiIKIyMKIyMgIEZpcnN0IG5v dGUgYW55ICctLWNoZWNrZmlsZXMnIG9yICctLW5vLWNoZWNrZmlsZXMnIG9wdGlvbgojIwpmb3Ig YXJnIApkbwogICAgY2FzZSAkYXJnIGluCgktLWNoZWNrZmlsZXMpCgkgICAgY2hlY2tmaWxlcz10 cnVlIDsKCSAgICBjYWxsT3B0aW9ucz0iJGNhbGxPcHRpb25zIC0tY2hlY2tmaWxlcyIgOwoJICAg IDs7CgktLW5vLWNoZWNrZmlsZXMpCgkgICAgY2hlY2tmaWxlcz1mYWxzZSA7CgkgICAgY2FsbE9w dGlvbnM9IiRjYWxsT3B0aW9ucyAtLW5vLWNoZWNrZmlsZXMiIDsKCSAgICA7OwogICAgZXNhYwpk b25lCndoaWxlIHRlc3QgLW4gIiR7MX0kezJ9IjsgZG8KICAgIGFyZ1VubWF0Y2hlZD0iIgogICAg aWYgdGVzdCAiJG9wdGlvbnNGaW5pc2hlZCIgIT0gdHJ1ZQogICAgdGhlbgoJY2FzZSAkezF9IGlu CgkgICAgLS0pICMjIHNpZ25hbHMgZW5kIG9mIGNvbW1hbmQtbGluZSBvcHRpb25zCgkJb3B0aW9u c0ZpbmlzaGVkPXRydWUgOwoJCXNoaWZ0IDsKCQljb250aW51ZSA7CgkJOzsKCSAgICAtLWNvbmZp Z3BhdGgpCgkJcHJpbnRmICIlc1xuIiAiJGNvbmZpZ3BhdGgiIDsKCQlleGl0IDA7OwoJICAgIC0t KiB8IC1xIHwgLW8pCgkJaWYgdGVzdCAiJHBhZ2VTcGVjQXdhaXRlZCIgPSB0cnVlIDsgdGhlbgoJ CSMjIGZpbGwgaW4gYW55IG1pc3NpbmcgcGFnZSBzcGVjcyBiZWZvcmUgY29udGludWluZwoJCSAg ICBmaWxlU3BlYz0kKHByaW50ZiAiJXMiICIkZmlsZVNwZWMiIHwgc2VkICdzL3xhd2FpdGVkL3wt L2cnKQoJCSAgICBwYWdlU3BlY0F3YWl0ZWQ9ZmFsc2UKCQlmaQoJCWNhc2UgJHsxfSBpbgoJCSAg ICAtLWxhdGV4KQoJCQlsYXRleD0iJHsyfSIgOwoJCQljYWxsT3B0aW9ucz0iJGNhbGxPcHRpb25z IC0tbGF0ZXggJHsyfSIgOwoJCQlzaGlmdCA7OwoJCSAgICAtLWJhdGNoKQoJCQliYXRjaD10cnVl IDsKCQkJOzsKCQkgICAgLS12YW5pbGxhKQoJCQljYWxsT3B0aW9ucz0iJGNhbGxPcHRpb25zICR7 MX0iIDsKCQkJOzsKCQkgICAgLS1xdWlldCB8IC1xKQoJCQl2ZXJib3NlPWZhbHNlIDsKCQkJY2Fs bE9wdGlvbnM9IiRjYWxsT3B0aW9ucyAkezF9IiA7CgkJCTs7CgkJICAgIC0tb3V0ZmlsZSB8IC1v KQoJCQlvdXRGaWxlPSIkezJ9IiA7CgkJCWlmIHRlc3QgIiRiYXRjaCIgPSB0cnVlCgkJCXRoZW4K CQkJICAgIG91dEZpbGU9JChlc2NhcGVfY2hhcnMgIiRvdXRGaWxlIikKCQkJZmkKCQkJY2FsbE9w dGlvbnM9IiRjYWxsT3B0aW9ucyAtLW91dGZpbGUgJG91dEZpbGUiIDsKICAJCQlzaGlmdCA7OwoJ CSAgICAtLXN1ZmZpeCkKCQkJaWYgdGVzdCAtbiAiJHsyfSIKCQkJdGhlbgoJCQkgICAgc3VmZml4 PSIkezJ9IiA7CgkJCSAgICBpZiB0ZXN0ICIkYmF0Y2giID0gdHJ1ZQoJCQkgICAgdGhlbgoJCQkJ c3VmZml4PSQoZXNjYXBlX2NoYXJzICIkc3VmZml4IikKCQkJICAgIGZpCgkJCSAgICBjYWxsT3B0 aW9ucz0iJGNhbGxPcHRpb25zIC0tc3VmZml4ICRzdWZmaXgiCgkJCSAgICBzaGlmdAoJCQllbHNl CgkJCSAgICBlcnJvcl9leGl0IFwKCQkJCSInLS1zdWZmaXgnIHN0cmluZyBoYXMgemVybyBsZW5n dGgiIFwKCQkJCSRFX1VTQUdFIDsKCQkJZmkKCQkJOzsKCQkgICAgLS1ydW5zKQoJCQlydW5zPSIk ezJ9IiA7CgkJCSMjIGNoZWNrIGlmIHRoZSBhcmd1bWVudCBpcyBhIG51bWJlciA+IDAKICAgICAg ICAgICAgICAgICAgICAgICAgaWYgWyAiJHJ1bnMiIC1sdCAxIF0gMj4gL2Rldi9udWxsOyB0aGVu CiAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfZXhpdCBcCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIictLXJ1bnMnIG51bWJlciBtdXN0IGJlIGF0IGxlYXN0IDEiIFwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRV9VU0FHRSA7CiAgICAgICAgICAgICAgICAg ICAgICAgIGZpCiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxPcHRpb25zPSIkY2FsbE9wdGlv bnMgLS1ydW5zICR7Mn0iIDsKICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQgOzsKCQkgICAg LS10aWR5KQoJCQl0aWR5PXRydWUgOwoJCQljYWxsT3B0aW9ucz0iJGNhbGxPcHRpb25zIC0tdGlk eSIgOwoJCQk7OwoJCSAgICAtLW5vLXRpZHkpCgkJCXRpZHk9ZmFsc2UgOwoJCQljYWxsT3B0aW9u cz0iJGNhbGxPcHRpb25zIC0tbm8tdGlkeSIgOwoJCQk7OwoJCSAgICAtLWtlZXBpbmZvKQoJCQlr ZWVwaW5mbz10cnVlIDsKCQkJY2FsbE9wdGlvbnM9IiRjYWxsT3B0aW9ucyAtLWtlZXBpbmZvIiA7 CgkJCTs7CgkJICAgIC0tbm8ta2VlcGluZm8pCgkJCWtlZXBpbmZvPWZhbHNlIDsKCQkJY2FsbE9w dGlvbnM9IiRjYWxsT3B0aW9ucyAtLW5vLWtlZXBpbmZvIiA7CgkJCTs7IAoJCSAgICAtLWNoZWNr ZmlsZXMpCgkJCTs7ICMjIGFscmVhZHkgZG9uZSBhYm92ZQoJCSAgICAtLW5vLWNoZWNrZmlsZXMp CgkJCTs7ICMjIGFscmVhZHkgZG9uZSBhYm92ZQoJCSAgICAtLXBkZnRpdGxlKQoJCQlwZGZUaXRs ZT0iJHsyfSIgOwoJCQlpZiB0ZXN0ICIkYmF0Y2giID0gdHJ1ZQoJCQl0aGVuCgkJCSAgICBwZGZU aXRsZT0kKGVzY2FwZV9jaGFycyAiJHBkZlRpdGxlIikKCQkJZmkKCQkJY2FsbE9wdGlvbnM9IiRj YWxsT3B0aW9ucyAtLXBkZnRpdGxlICRwZGZUaXRsZSIgOwoJCQlzaGlmdCA7OwoJCSAgICAtLXBk ZmF1dGhvcikKCQkJcGRmQXV0aG9yPSIkezJ9IiA7CgkJCWlmIHRlc3QgIiRiYXRjaCIgPSB0cnVl CgkJCXRoZW4KCQkJICAgIHBkZkF1dGhvcj0kKGVzY2FwZV9jaGFycyAiJHBkZkF1dGhvciIpCgkJ CWZpCgkJCWNhbGxPcHRpb25zPSIkY2FsbE9wdGlvbnMgLS1wZGZhdXRob3IgJHBkZkF1dGhvciIg OwoJCQlzaGlmdCA7OwoJCSAgICAtLXBkZnN1YmplY3QpCgkJCXBkZlN1YmplY3Q9IiR7Mn0iIDsK CQkJaWYgdGVzdCAiJGJhdGNoIiA9IHRydWUKCQkJdGhlbgoJCQkgICAgcGRmU3ViamVjdD0kKGVz Y2FwZV9jaGFycyAiJHBkZlN1YmplY3QiKQoJCQlmaQoJCQljYWxsT3B0aW9ucz0iJGNhbGxPcHRp b25zIC0tcGRmc3ViamVjdCAkcGRmU3ViamVjdCIgOwoJCQlzaGlmdCA7OwoJCSAgICAtLXBkZmtl eXdvcmRzKQoJCQlwZGZLZXl3b3Jkcz0iJHsyfSIgOwoJCQlpZiB0ZXN0ICIkYmF0Y2giID0gdHJ1 ZQoJCQl0aGVuCgkJCSAgICBwZGZLZXl3b3Jkcz0kKGVzY2FwZV9jaGFycyAiJHBkZktleXdvcmRz IikKCQkJZmkKCQkJY2FsbE9wdGlvbnM9IiRjYWxsT3B0aW9ucyAtLXBkZmtleXdvcmRzICRwZGZL ZXl3b3JkcyIgOwoJCQlzaGlmdCA7OwoJCSAgICAtLXBhcGVyKQoJCQlwYXBlcj0iJHsyfSIKCQkJ Y2FsbE9wdGlvbnM9IiRjYWxsT3B0aW9ucyAkezF9ICR7Mn0iIDsKCQkJc2hpZnQgOzsKCQkgICAg LS1wYWdlY29sb3IpCgkJCXBhZ2Vjb2xvcj0iJHsyfSIgOwoJCQljYWxsT3B0aW9ucz0iJGNhbGxP cHRpb25zICR7MX0gJHsyfSIgOwoJCQlzaGlmdCA7OwogICAgICAgICAgICAgICAgICAgIC0tYTRw YXBlciB8IC0tYTVwYXBlciB8IC0tYjVwYXBlciB8IC0tbGV0dGVycGFwZXIgfCBcCiAgICAgICAg ICAgICAgICAgICAgICAgIC0tZXhlY3V0aXZlcGFwZXIgfCAtLWxlZ2FscGFwZXIpCgkJCSMjICBz dGFuZGFyZCBMYVRlWCBwYXBlciBzaXplcwoJCQlwYXBlcj0kKHByaW50ZiAiJXMiICIkezF9IiB8 IHNlZCAncy9eLS0vLycpIDsKCQkJY2FsbE9wdGlvbnM9IiRjYWxsT3B0aW9ucyAkezF9IiA7CgkJ CTs7CgkJICAgIC0tYTBwYXBlciB8IC0tYTFwYXBlciB8IC0tYTJwYXBlciB8IC0tYTNwYXBlciB8 IFwKICAgICAgICAgICAgICAgICAgICAgICAgLS1hNnBhcGVyIHwgLS1iMHBhcGVyIHwgLS1iMXBh cGVyIHwgLS1iMnBhcGVyIHwgXAoJCQktLWIzcGFwZXIgfCAtLWI0cGFwZXIgfCAtLWI2cGFwZXIp CgkJCSMjICB0aGUgJ2dlb21ldHJ5JyBwYWNrYWdlIGlzIG5lZWRlZAoJCQlpZiB0ZXN0ICIkZ2Vv bWV0cnkiICE9IGZhbHNlIDsKCQkJdGhlbgoJCQkgICAgcGFwZXI9JChwcmludGYgIiVzIiAiJHsx fSIgfCBzZWQgJ3MvXi0tLy8nKSA7CgkJCSAgICBjYWxsT3B0aW9ucz0iJGNhbGxPcHRpb25zICR7 MX0iIDsKCQkJICAgIGdlb21ldHJ5PXRydWUgOwoJCQlmaSA7CgkJCTs7CgkJICAgIC0tcGFwZXJz aXplKQoJCQkjIyAgdGhlICdnZW9tZXRyeScgcGFja2FnZSBpcyBuZWVkZWQKCQkJaWYgdGVzdCAi JGdlb21ldHJ5IiAhPSBmYWxzZSA7CgkJCXRoZW4KCQkJICAgIHBhcGVyc2l6ZT0icGFwZXJzaXpl PSR7Mn0iIDsKCQkJICAgIGNhbGxPcHRpb25zPSIkY2FsbE9wdGlvbnMgJHsxfSAnJHsyfSciIDsK CQkJICAgIGdlb21ldHJ5PXRydWUgOwoJCQlmaSA7CgkJCXNoaWZ0IDs7CgkJICAgIC0tbGFuZHNj YXBlKQoJCQlsYW5kc2NhcGU9dHJ1ZSA7CgkJCWNhbGxPcHRpb25zPSIkY2FsbE9wdGlvbnMgLS1s YW5kc2NhcGUiIDsKCQkJOzsKCQkgICAgLS1uby1sYW5kc2NhcGUpCgkJCWxhbmRzY2FwZT1mYWxz ZSA7CgkJCWNhbGxPcHRpb25zPSIkY2FsbE9wdGlvbnMgLS1uby1sYW5kc2NhcGUiIDsKCQkJOzsK CQkgICAgLS10d29zaWRlKQoJCQl0d29zaWRlPXRydWUgOwoJCQljYWxsT3B0aW9ucz0iJGNhbGxP cHRpb25zIC0tdHdvc2lkZSIgOwoJCQk7OwoJCSAgICAtLW5vLXR3b3NpZGUpCgkJCXR3b3NpZGU9 ZmFsc2UgOwoJCQljYWxsT3B0aW9ucz0iJGNhbGxPcHRpb25zIC0tbm8tdHdvc2lkZSIgOwoJCQk7 OwoJCSAgICAtLXByZWFtYmxlKQoJCQlwcmVhbWJsZT0iJHByZWFtYmxlJHsyfSIgOwoJCQlzaGlm dCA7OwoJCSAgICAtLSopCiAgICAgICAgICAgICAgICAgICAgICAgICMjICBvcHRpb25zIGZvciBc aW5jbHVkZXBkZm1lcmdlCgkJCWFyZ05hbWU9JChwcmludGYgIiVzIiAiJHsxfSIgfCBzZWQgJ3Mv Xi0tLy8nKTsKCQkJdmFsdWU9IiR7Mn0iCgkJCW1pc2NPcHRpb25zPSRtaXNjT3B0aW9ucywiJGFy Z05hbWU9JHZhbHVlIiA7CgkJICAgICAgICAjIyBzYXZlZCBmb3IgcG9zc2libGUgdXNlIGluIExh VGVYIGZpbGUKCQkJY2FsbE9wdGlvbnM9IiRjYWxsT3B0aW9ucyAkezF9ICckdmFsdWUnIiA7CgkJ ICAgICAgICAjIyBzYXZlZCBmb3IgcG9zc2libGUgdXNlIGluIGEgZnVydGhlciBjYWxsIHRvIHBk ZmphbQoJCQlzaGlmdCA7CgkJCTs7CgkJZXNhYyA7OwoJICAgICcnIHwgKikKCQlhcmdVbm1hdGNo ZWQ9dHJ1ZQoJCTs7Cgllc2FjCiAgICBmaQogICAgaWYgdGVzdCAiJG9wdGlvbnNGaW5pc2hlZCIg PSB0cnVlICB8fCAgdGVzdCAiJGFyZ1VubWF0Y2hlZCIgPSB0cnVlCiAgICB0aGVuCgljYXNlICR7 MX0gaW4KCSAgICAiIiB8IC9kZXYvc3RkaW4pCgkJZmlsZVNwZWM9IiR7ZmlsZVNwZWN9JHtuZXds aW5lfS9kZXYvc3RkaW58YXdhaXRlZCIKCQlwYWdlU3BlY0F3YWl0ZWQ9dHJ1ZQoJCWlucHV0RnJv bVN0ZGluPXRydWUgOzsKCSAgICAtKQoJCWlmIHRlc3QgIiRwYWdlU3BlY0F3YWl0ZWQiID0gdHJ1 ZSAgOyB0aGVuCgkJICAgIGZpbGVTcGVjPSQocHJpbnRmICIlcyIgIiRmaWxlU3BlYyIgfCBcCgkJ CXNlZCAncy98YXdhaXRlZC98LS9nJykKCQkgICAgcGFnZVNwZWNBd2FpdGVkPWZhbHNlCgkJZWxz ZQoJCSAgICBlcnJvcl9leGl0ICJubyBQREYvSlBHL1BORyBmaWxlIGZvdW5kIGF0ICR7MX0iIFwK CQkJJEVfTk9JTlBVVAoJCWZpIDs7CgkgICAgKikgICMjICBBbGwgb3RoZXIgYXJncyBzaG91bGQg YmUgUERGIChvciBKUEcvUE5HKSAKICAgICAgICAgICAgICAgICMjICBzb3VyY2UgZmlsZXMgYW5k IHBhZ2Ugc2VsZWN0aW9uczsgaWYgbm90LCB3ZSdsbCBxdWl0CgkJaWYgdGVzdCAiJGNoZWNrZmls ZXMiID0gdHJ1ZSA7ICAjIyBub3QgYWx3YXlzIGF2YWlsYWJsZQoJCXRoZW4KCQkgICAgY2FzZSAk KGZpbGUgLUxiICIkezF9IikgaW4KCQkJIlBERiBkb2N1bWVudCIqfCJKUEVHIGltYWdlIGRhdGEi KnwiUE5HIGltYWdlIiopICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyAgaXQncyBh IFBERiBmaWxlIChvciBKUEcvUE5HKSBhcyBleHBlY3RlZAoJCQkgICAgZmlsZVNwZWM9IiRmaWxl U3BlYyR7bmV3bGluZX0kezF9fGF3YWl0ZWQiCgkJCSAgICBwYWdlU3BlY0F3YWl0ZWQ9dHJ1ZQoJ CQkgICAgOzsKCQkJKikKCQkJICAgIGNhc2UgJHsxfSBpbgoJCQkJKi5bcFBdW2REXVtmRl0gfCAq LltqSl1bcFBdW2VFXVtnR10gfCBcCgkJCQkgICAgKi5bakpdW3BQXVtnR10gfCAqLltwUF1bbk5d W2dHXSkgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIHNob3VsZCBiZSBQ REYvSlBHL1BORyBmaWxlLCBidXQgaXNuJ3QKCQkJCSAgICBlcnJvcl9leGl0ICJubyBQREYvSlBH L1BORyBmaWxlIGZvdW5kIGF0ICR7MX0iIFwKCQkJCQkkRV9OT0lOUFVUCgkJCQkgICAgOzsKCQkJ CSopICMjICBpZiBwYWdlIHNwZWMgbmVlZGVkLCBhc3N1bWUgdGhpcyBpcyBpdDsKCQkgICAgICAg ICAgICAgICAgICAgIyMgIG90aGVyd2lzZSBzb21ldGhpbmcgaXMgd3JvbmcKCQkJCSAgICBpZiB0 ZXN0ICIkcGFnZVNwZWNBd2FpdGVkIiA9IHRydWUgIDsgdGhlbgoJCQkJCWZpbGVTcGVjPSQocHJp bnRmICIlcyIgIiRmaWxlU3BlYyIgfCBcCgkJCQkJICAgIHNlZCAicy98YXdhaXRlZC98JDEvZyIp CgkJCQkJcGFnZVNwZWNBd2FpdGVkPWZhbHNlCgkJCQkgICAgZWxzZQoJCQkJCWVycm9yX2V4aXQg Im5vIFBERi9KUEcvUE5HIGZpbGUgZm91bmQgYXQgJHsxfSIgXAoJCQkJCSAgICAkRV9OT0lOUFVU CgkJCQkgICAgZmkKCQkJCSAgICA7OwoJCQkgICAgZXNhYwoJCQkgICAgOzsKCQkgICAgZXNhYwoJ CWVsc2UgICMjIG5vIGNoZWNraW5nIG9mIGZpbGUgY29udGVudHM7IHJlbHkgb24gLnBkZiBleHRl bnNpb24KCQkgICAgY2FzZSAkezF9IGluCgkJCSouW3BQXVtkRF1bZkZdIHwgKi5bakpdW3BQXVtl RV1bZ0ddIFwKCQkJICAgIHwgKi5bakpdW3BQXVtnR10gfCAqLltwUF1bbk5dW2dHXSkgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyMgYXNzdW1lIGl0J3MgYSBQREYvSlBHL1BORyBmaWxl CgkJCSAgICB0ZXN0IC1mICIkezF9IiB8fCBlcnJvcl9leGl0IFwKCQkJCSIkezF9IG5vdCBmb3Vu ZCIgJEVfTk9JTlBVVAoJCQkgICAgZmlsZVNwZWM9IiRmaWxlU3BlYyIkbmV3bGluZSR7MX0ifCJh d2FpdGVkCgkJCSAgICBwYWdlU3BlY0F3YWl0ZWQ9dHJ1ZQoJCQkgICAgOzsKCQkJKikgIyMgIGlm IHBhZ2Ugc3BlYyBuZWVkZWQsIGFzc3VtZSB0aGlzIGlzIGl0OwoJCSAgICAgICAgICAgIyMgIG90 aGVyd2lzZSBzb21ldGhpbmcgaXMgd3JvbmcKCQkJICAgIGlmIHRlc3QgIiRwYWdlU3BlY0F3YWl0 ZWQiID0gdHJ1ZSAgOyB0aGVuCgkJCQlmaWxlU3BlYz0kKHByaW50ZiAiJXMiICIkZmlsZVNwZWMi IHwgXAoJCQkJICAgIHNlZCAicy98YXdhaXRlZC98JDEvZyIpCgkJCQlwYWdlU3BlY0F3YWl0ZWQ9 ZmFsc2UKCQkJICAgIGVsc2UKCQkJCWVycm9yX2V4aXQgIm5vIFBERi9KUEcvUE5HIGZpbGUgZm91 bmQgYXQgJHsxfSIgXAoJCQkJICAgICRFX05PSU5QVVQKCQkJICAgIGZpCgkJCSAgICA7OwoJCSAg ICBlc2FjCgkJZmkKCQk7OwoJZXNhYwogICAgZmkKICAgIHNoaWZ0CmRvbmUKIyMKIyMgIFVzZSB0 aGUgZGVmYXVsdCBwYWdlIHNwZWMgZm9yIGFueSB0aGF0IHJlbWFpbiB1bnNwZWNpZmllZDoKIyMK ZmlsZVNwZWM9JChwcmludGYgIiVzIiAiJGZpbGVTcGVjIiB8IHNlZCAnL14kL2Q7IHMvXiAvLzsg cy98YXdhaXRlZCQvfC0vJykKIyMKIyMgIENoZWNrIHdoZXRoZXIgaW5wdXQgZnJvbSBzdGRpbiBz aG91bGQgYmUgdXNlZCBieSBkZWZhdWx0OgppZiAgdGVzdCAkUERGSkFNX0NBTExfTlVNQkVSIC1l cSAwICAmJiAgdGVzdCAiJGlucHV0RnJvbVN0ZGluIiAhPSB0cnVlCnRoZW4KICAgICMjIHRoZSBz cGVjaWFsIGFyZ3VtZW50ICcvZGV2L3N0ZGluJyB3YXMgbm90IHVzZWQKICAgIGlmIHRlc3QgLXog IiRmaWxlU3BlYyIgOyB0aGVuCiAgICAjIyBubyBhcmd1bWVudCBzcGVjaWZ5aW5nIGEgUERGIHNv dXJjZSB3YXMgZ2l2ZW4KCWlucHV0RnJvbVN0ZGluPXRydWUKCWZpbGVTcGVjPSIvZGV2L3N0ZGlu fC0iCglwcmF0dGxlICJObyBQREYvSlBHL1BORyBzb3VyY2Ugc3BlY2lmaWVkOiBpbnB1dCBpcyBm cm9tIHN0ZGluLiIKICAgIGZpCmZpCiMjCiMjICBEZWxldGUgbGVhZGluZyBjb21tYSBmcm9tICRt aXNjT3B0aW9uczoKIyMKbWlzY09wdGlvbnM9JChwcmludGYgIiVzIiAiJG1pc2NPcHRpb25zIiB8 IHNlZCAncy9eLC8vJykKIyMKaWYgdGVzdCAtbiAiJHByZWFtYmxlIgp0aGVuIGNhbGxPcHRpb25z PSIkY2FsbE9wdGlvbnMgLS1wcmVhbWJsZSAnJHByZWFtYmxlJyIKZmkKIyMgIERlbGV0ZSBsZWFk aW5nIHNwYWNlIGZyb20gJGNhbGxPcHRpb25zOgojIwpjYWxsT3B0aW9ucz0kKHByaW50ZiAiJXMi ICIkY2FsbE9wdGlvbnMiIHwgc2VkICdzL14gLy8nKQojIwojIyAgU2V0IHVwIGEgZG9jdW1lbnQg b3B0aW9ucyB2YXJpYWJsZToKIyMKY2FzZSAkbGFuZHNjYXBlIGluCiAgICB0cnVlKQoJb3JpZW50 YXRpb249bGFuZHNjYXBlIDs7CiAgICAqKQoJb3JpZW50YXRpb249IiIgOzsKZXNhYwpjYXNlICR0 d29zaWRlIGluCiAgICB0cnVlKQoJdHdvc2lkZT10d29zaWRlIDs7CiAgICAqKQoJdHdvc2lkZT0i IiA7Owplc2FjCmlmIHRlc3QgIiRnZW9tZXRyeSIgIT0gZmFsc2UKdGhlbgojIyAgd2UgaGF2ZW4n dCBhbHJlYWR5IGZvdW5kIHRoYXQgZ2VvbWV0cnkuc3R5IGlzIG1pc3NpbmcKICAgIGNhc2UgJHBh cGVyIGluCglhMHBhcGVyIHwgYTFwYXBlciB8IGEycGFwZXIgfCBhM3BhcGVyIHwgXAogICAgICAg ICAgICBhNnBhcGVyIHwgYjBwYXBlciB8IGIxcGFwZXIgfCBiMnBhcGVyIHwgXAoJICAgIGIzcGFw ZXIgfCBiNHBhcGVyIHwgYjZwYXBlcikKCSAgICAjIyAgdGhlICdnZW9tZXRyeScgcGFja2FnZSBp cyBuZWVkZWQKCSAgICBnZW9tZXRyeT10cnVlIDsKCSAgICA7OwoJKikKCSAgICA7OwogICAgZXNh YwpmaQpkb2N1bWVudE9wdGlvbnM9IiRwYXBlciIsIiRvcmllbnRhdGlvbiIsIiR0d29zaWRlIgpk b2N1bWVudE9wdGlvbnM9JChwcmludGYgIiVzIiAiJGRvY3VtZW50T3B0aW9ucyIgfCBzZWQgJ3Mv XiwvLycgfCBzZWQgJ3MvLCQvLycpCiMjCiMjICBFTkQgT0YgQVJHVU1FTlQgUFJPQ0VTU0lORwoj IwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCiMjCiMjICBDSEVDSyBTWVNURU0gU0VUVVAKIyMKIyMgIFRoZXNl IGNoZWNrcyBhcmUgbm90IHJlcGVhdGVkIGluIHNlY29uZGFyeSBjYWxscy4KIyMKaWYgdGVzdCAk UERGSkFNX0NBTExfTlVNQkVSIC1lcSAwICAjIyBub3QgYSBzZWNvbmRhcnkgY2FsbAp0aGVuCiAg ICAjIyAgQ2hlY2sgd2hldGhlciB0aGVyZSdzIGEgc3VpdGFibGUgbGF0ZXggdG8gdXNlOgogICAg Y2FzZSAiJGxhdGV4IiBpbgoJIm5vdCBmb3VuZCIpCgkgICAgZXJyb3JfZXhpdCAiY2FuJ3QgZmlu ZCBwZGZsYXRleCEiICRFX1VOQVZBSUxBQkxFCgkgICAgOzsKCSopICAjIyAKCSAgICBpZiB0ZXN0 ICEgLXggIiRsYXRleCIKCSAgICB0aGVuCgkJZXJyb3JfZXhpdCBcCgkJICAgICJjb25maWd1cmF0 aW9uIGVycm9yLCAkbGF0ZXggaXMgbm90IGFuIGV4ZWN1dGFibGUgZmlsZSIgXAoJCSAgICAkRV9D T05GSUcKCSAgICBmaQoJICAgIDs7CiAgICBlc2FjCiAgICAjIwogICAgIyMgIENoZWNrIHRoYXQg bmVjZXNzYXJ5IExhVGVYIHBhY2thZ2VzIGFyZSBpbnN0YWxsZWQ6CiAgICAjIwogICAgbW9kaWZ5 UGF0aD0kKHByaW50ZiAiJXMiICIkbGF0ZXgiIHwgc2VkICdzL1wvW15cL10qJC8vJykKICAgIGlm IFsgLW4gIiRtb2RpZnlQYXRoIiBdIDsgdGhlbgoJUEFUSD0iJG1vZGlmeVBhdGg6JFBBVEgiCgll eHBvcnQgUEFUSAogICAgZmkKICAgIChrcHNld2hpY2ggcGRmcGFnZXMuc3R5ID4vZGV2L251bGwp IHx8CiAgICBlcnJvcl9leGl0IFwKCSJMYVRlWCBwYWNrYWdlIHBkZnBhZ2VzLnN0eSBpcyBub3Qg aW5zdGFsbGVkIiBcCgkkRV9VTkFWQUlMQUJMRQogICAgKGtwc2V3aGljaCBlc28tcGljLnN0eSA+ L2Rldi9udWxsKSB8fAogICAgZXJyb3JfZXhpdCBcCgkiTGFUZVggcGFja2FnZSBlc28tcGljLnN0 eSBub3QgaW5zdGFsbGVkIChzZWUgdGhlIHBkZnBhZ2VzIG1hbnVhbCkiIFwKCSRFX1VOQVZBSUxB QkxFCiAgICAoa3BzZXdoaWNoIGV2ZXJ5c2hpLnN0eSA+L2Rldi9udWxsKSB8fAogICAgZXJyb3Jf ZXhpdCBcCgkiTGFUZVggcGFja2FnZSBldmVyeXNoaS5zdHkgbm90IGluc3RhbGxlZCAoc2VlIHRo ZSBwZGZwYWdlcyBtYW51YWwpIiBcCgkkRV9VTkFWQUlMQUJMRQogICAgaWYgdGVzdCAiJGtlZXBp bmZvIiA9IHRydWUgfHwKCXRlc3QgLW4gIiRwZGZUaXRsZSRwZGZTdWJqZWN0JHBkZkF1dGhvciRw ZGZLZXl3b3JkcyIKICAgICMjICBpZSwgaWYgaHlwZXJyZWYgaXMgcmVxdWlyZWQKICAgIHRoZW4K CShrcHNld2hpY2ggaHlwZXJyZWYuc3R5ID4vZGV2L251bGwpIHx8IHsKCSAgICBwcmF0dGxlICJM YVRlWCBwYWNrYWdlIGh5cGVycmVmLnN0eSBpcyBub3QgaW5zdGFsbGVkLCBzbyBhbnkiCgkgICAg cHJhdHRsZSAiLS1rZWVwaW5mbywgLS1wZGZ0aXRsZSwtLXBkZmF1dGhvciwgLS1wZGZzdWJqZWN0 IG9yIiAxCgkgICAgcHJhdHRsZSAiLS1wZGZrZXl3b3JkcyBzZXR0aW5nIHdpbGwgYmUgaWdub3Jl ZC4iIDEKCSAgICBoeXBlcnJlZj1mYWxzZQoJICAgIGlmIHRlc3QgIiRiYXRjaCIgPSB0cnVlCgkg ICAgdGhlbgoJCWV4cG9ydCBoeXBlcnJlZiAgICMjIGZvciB1c2UgaW4gYW55IHNlY29uZGFyeSBj YWxscwoJICAgIGZpCgl9CiAgICBlbHNlCgloeXBlcnJlZj1mYWxzZQogICAgZmkKICAgIGlmIHRl c3QgIiRnZW9tZXRyeSIgPSB0cnVlCiAgICAjIyAgaWUsIGlmIHRoZSAnZ2VvbWV0cnknIHBhY2th Z2UgaXMgbmVlZGVkIGZvciBwYXBlciBzaXplCiAgICB0aGVuCgkoa3BzZXdoaWNoIGdlb21ldHJ5 LnN0eSA+L2Rldi9udWxsKSB8fCB7CgkgICAgcHJhdHRsZSAiTGFUZVggcGFja2FnZSBnZW9tZXRy eS5zdHkgaXMgbm90IGluc3RhbGxlZCwgc28gb25seSB0aGUiCgkgICAgcHJhdHRsZSAic3RhbmRh cmQgTGFUZVggcGFwZXIgc2l6ZXMgYXJlIGF2YWlsYWJsZS4iIDEKCSAgICBnZW9tZXRyeT1mYWxz ZQoJICAgIGlmIHRlc3QgIiRiYXRjaCIgPSB0cnVlCgkgICAgdGhlbgoJCWV4cG9ydCBnZW9tZXRy eSAgICMjIGZvciB1c2UgaW4gYW55IHNlY29uZGFyeSBjYWxscwoJICAgIGZpCgl9CiAgICBmaQpm aQppZiB0ZXN0ICIkaHlwZXJyZWYiID0gZmFsc2UKdGhlbgogICAga2VlcGluZm89ZmFsc2UKICAg IHBkZlRpdGxlPSIiIDsgcGRmQXV0aG9yPSIiIDsgcGRmU3ViamVjdD0iIiA7IHBkZktleXdvcmRz PSIiCmVsc2UKICAgIGlmICB0ZXN0ICIka2VlcGluZm8iID0gdHJ1ZQogICAgdGhlbgoJY2FzZSAi JHBkZmluZm8iIGluCgkgICAgIm5vdCBmb3VuZCIpCgkJaWYgdGVzdCAkUERGSkFNX0NBTExfTlVN QkVSIC1lcSAwCgkJdGhlbgoJCSAgcHJhdHRsZSBcCgkJICAiVGhlIHBkZmluZm8gdXRpbGl0eSB3 YXMgbm90IGZvdW5kLCBzbyAtLWtlZXBpbmZvIGlzIGlnbm9yZWQuIgoJCWZpCgkJa2VlcGluZm89 ZmFsc2UKCQk7OwoJICAgIHBkZmluZm8pCgkJOzsKCSAgICAqKSAgIyMgJHBkZmluZm8gd2FzIHNl dCBpbiBhIGNvbmZpZ3VyYXRpb24gZmlsZQoJCWlmIHRlc3QgISAteCAiJHBkZmluZm8iCgkJdGhl bgoJCSAgICBpZiB0ZXN0ICRQREZKQU1fQ0FMTF9OVU1CRVIgLWVxIDAKCQkgICAgdGhlbgoJCQlw cmF0dGxlIFwKCQkgICAgICJObyBwZGZpbmZvIHV0aWxpdHkgYXQgJHBkZmluZm8sIHNvIC0ta2Vl cGluZm8gaXMgaWdub3JlZC4iCgkJCWtlZXBpbmZvPWZhbHNlCgkJICAgIGZpCgkJZmkKCQk7OwoJ ZXNhYwogICAgZmkKZmkKIyMgQSBmdW5jdGlvbiB0byBjaGVjayBpZiB1c2luZyBub24tQ3lnd2lu ICIke2xhdGV4fSIgZnJvbSBDeWd3aW4KdXNpbmdfbm9uX2N5Z3dpbl9sYXRleF9mcm9tX2N5Z3dp biAoKSB7CiAgICBpZiBbIC16ICIke19fY2FjaGVfX3VzaW5nX25vbl9jeWd3aW5fbGF0ZXhfZnJv bV9jeWd3aW59IiBdOyB0aGVuCglpZiBbIHgiJCh1bmFtZSAtbykiID0geCJDeWd3aW4iIF0gXAoJ ICAgICYmICIke2xhdGV4fSIgLXZlcnNpb24gfCBoZWFkIC0xIHwgZ3JlcCAtcXYgQ3lnd2luOyB0 aGVuCgkgICAgX19jYWNoZV9fdXNpbmdfbm9uX2N5Z3dpbl9sYXRleF9mcm9tX2N5Z3dpbj0wCgll bHNlCgkgICAgX19jYWNoZV9fdXNpbmdfbm9uX2N5Z3dpbl9sYXRleF9mcm9tX2N5Z3dpbj0xCglm aQogICAgZmkKICAgIHJldHVybiAiJHtfX2NhY2hlX191c2luZ19ub25fY3lnd2luX2xhdGV4X2Zy b21fY3lnd2lufSIKfQojIwojIyAgRU5EIE9GIENIRUNLSU5HIFRIRSBTRVRVUAojIwojIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCiMjCiMjICBURU1QT1JBUlkgRklMRVMKIyMKIyMgIE1ha2UgYSBzZWN1cmUgdGVt cG9yYXJ5IGRpcmVjdG9yeSAoZm9sbG93aW5nCiMjICB0aGUgYXV0b2NvbmYgbWFudWFsKS4KIyMK IyMgIFVzZSBta3RlbXAgaWYgcG9zc2libGU7IG90aGVyd2lzZSBmYWxsIGJhY2sgb24gbWtkaXIs CiMjICB3aXRoIHJhbmRvbSBuYW1lIHRvIG1ha2UgZmlsZSBjb2xsaXNpb25zIGxlc3MgbGlrZWx5 LgojIwpvcmlnaW5hbF91bWFzaz0kKHVtYXNrKQp1bWFzayAxNzcKaWYgdGVzdCAkUERGSkFNX0NB TExfTlVNQkVSID0gMCAgIyMgZG9uJ3QgcmVwZWF0IHRoaXMgd29yayBmb3Igc2Vjb25kYXJ5IGNh bGxzCnRoZW4KICAgIFBERkpBTV9URU1QX0RJUj0nJwogICAgdHJhcCAnSUZTPSIkT0lGUyI7IFwK ICBpZiB0ZXN0ICR0aWR5ICE9IGZhbHNlIDsgdGhlbiBjZCAiJHB3ZCI7IHJtIC1yZiAiJFBERkpB TV9URU1QX0RJUiI7IGZpOyBleGl0IDEnIFwKCTEgMiAxNQogICAgdHJhcCAnSUZTPSIkT0lGUyI7 IFwKICBpZiB0ZXN0ICR0aWR5ICE9IGZhbHNlIDsgdGhlbiBjZCAiJHB3ZCI7IHJtIC1yZiAiJFBE RkpBTV9URU1QX0RJUiI7IGZpJyAwCiAgICB7CglQREZKQU1fVEVNUF9ESVI9JCggKHVtYXNrIDA3 NyAmJiBta3RlbXAgLWQgIiR0ZW1wZmlsZURpci9wZGZqYW0tWFhYWFhYIikgMj4vZGV2L251bGwp ICYmCgl0ZXN0IC1uICIkUERGSkFNX1RFTVBfRElSIiAmJiB0ZXN0IC1kICIkUERGSkFNX1RFTVBf RElSIgogICAgfSB8fCB7CiAgICAjIyAgV2UnbGwgdXNlIGF3ayB0byBtYWtlIHJhbmRvbSBudW1i ZXIsIGZvciBwb3J0YWJpbGl0eQoJcmFuZG9tPSQoYXdrICdFTkQgeyBzcmFuZCgpOyBwcmludGYg KCIlZFxuIiwgcmFuZCgpKjEwMDAwMDApOyB9JyAvZGV2L251bGwpCglQREZKQU1fVEVNUF9ESVI9 IiR0ZW1wZmlsZURpciIvcGRmamFtIiQkIi0iJHJhbmRvbSIKCSh1bWFzayAwNzcgJiYgbWtkaXIg IiRQREZKQU1fVEVNUF9ESVIiKQogICAgfSB8fCBleGl0ICQ/CiMjCiAgICBleHBvcnQgUERGSkFN X1RFTVBfRElSICAgICMjICBzbyB0aGF0IHNhbWUgZGlyIGlzIHVzZWQgaW4gc2Vjb25kYXJ5IGNh bGxzCiAgICBpZiB0ZXN0ICR0aWR5ID0gZmFsc2UgOyB0aGVuCglwcmF0dGxlICJUZW1wb3Jhcnkg ZGlyZWN0b3J5IGZvciB0aGlzIGpvYiBpcwogICAgICAgICAgJFBERkpBTV9URU1QX0RJUiIKICAg IGZpCiAgICBQREZKQU1fTUVTU0FHRVNfRklMRT0iJFBERkpBTV9URU1QX0RJUiIvbWVzc2FnZXMu dHh0CiAgICBleHBvcnQgUERGSkFNX01FU1NBR0VTX0ZJTEUgIAogICAgICAgICMjIHNvIHRoYXQg c2Vjb25kYXJ5IGNhbGxzIGNhbiB3cml0ZSBtZXNzYWdlcyB0aGVyZSBhcyB3ZWxsCiAgICBwcmlu dGYgIiVzIiAiJG1lc3NhZ2VzIiA+ICIkUERGSkFNX01FU1NBR0VTX0ZJTEUiICAjIyBpbml0aWFs IGZpbGUgY29udGVudHMKICAgIG1lc3NhZ2VzPSIiICAjIyB3ZSB3b24ndCBiZSB1c2luZyB0aGlz IHZhcmlhYmxlIGFnYWluIQplbHNlCiAgICBQREZKQU1fVEVNUF9ESVI9IiRQREZKQU1fVEVNUF9E SVIvZmlsZSRQREZKQU1fQ0FMTF9OVU1CRVIiCiAgICAodW1hc2sgMDc3ICYmIG1rZGlyICIkUERG SkFNX1RFTVBfRElSIikKZmkKdW1hc2sgIiRvcmlnaW5hbF91bWFzayIKIyMgTmV4dCBpcyBmcm9t IHRoZSBDeWd3aW4gcGF0Y2ggY29udHJpYnV0ZWQgYnkgTHVjYXMKaWYgdXNpbmdfbm9uX2N5Z3dp bl9sYXRleF9mcm9tX2N5Z3dpbjsgdGhlbgogICAgUERGSkFNX1RFTVBfRElSPSQoY3lncGF0aCAt dyAiJFBERkpBTV9URU1QX0RJUiIpCmZpCiMjCiMjICBURU1QT1JBUlkgRElSRUNUT1JZIEFMTCBE T05FCiMjCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyMKIyMgIEhBTkRMSU5HIFRIRSAiLS1iYXRjaCIgT1BU SU9OCiMjCiMjICBJZiAtLWJhdGNoIHdhcyB1c2VkLCB3ZSdsbCBjYWxsIHBkZmphbSBzZXBhcmF0 ZWx5IG9uIGVhY2ggaW5wdXQKIyMgIGZpbGUuCiMjCmlmIHRlc3QgIiRiYXRjaCIgPSB0cnVlIDsg dGhlbgogICAgaWYgdGVzdCAiJGZpbGVTcGVjIiA9ICIiIDsgdGhlbgoJZXJyb3JfZXhpdCAiLS1i YXRjaCB3YXMgdXNlZCwgYnV0IG5vIFBERi9KUEcvUE5HIHNvdXJjZSBmaWxlKHMpIHNwZWNpZmll ZCIgXAoJICAgICRFX1VTQUdFCiAgICBmaQogICAgaWYgdGVzdCAiJGlucHV0RnJvbVN0ZGluIiA9 IHRydWUgOyB0aGVuCgllcnJvcl9leGl0ICItLWJhdGNoIGNhbm5vdCBiZSB1c2VkIHdpdGggaW5w dXQgZnJvbSBzdGRpbiIgXAoJICAgICRFX1VTQUdFCiAgICBmaQogICAgSUZTPSIkbmV3bGluZSIK ICAgIGZvciBrIGluICRmaWxlU3BlYyA7IGRvCglzb3VyY2VQYXRoPSQocHJpbnRmICIlcyIgIiRr IiB8IHNlZCAncy98W158XSokLy8nKQoJcGFnZVNwZWM9JChwcmludGYgIiVzIiAkayB8IHNlZCAn cy8uKnwvLycpCgljYWxsTnVtYmVyPSQoKFBERkpBTV9DQUxMX05VTUJFUiArIDEpKQoJcHJhdHRs ZSAiLS0iCglwcmF0dGxlICJQcm9jZXNzaW5nIGZpbGUgJHtjYWxsTnVtYmVyfSwgJyRzb3VyY2VQ YXRoJy4uLiIKCXByYXR0bGUgIlBhZ2Ugc3BlYyBpcyAnJHBhZ2VTcGVjJy4iCglzb3VyY2VQYXRo PSQoZXNjYXBlX2NoYXJzICIkc291cmNlUGF0aCIpCglQREZKQU1fRUZGRUNUSVZFX0NBTEw9IiQw ICRjYWxsT3B0aW9ucyAtLSAkc291cmNlUGF0aCAkcGFnZVNwZWMiCglleHBvcnQgUERGSkFNX0VG RkVDVElWRV9DQUxMCglQREZKQU1fQ0FMTF9OVU1CRVI9JGNhbGxOdW1iZXIKCWV4cG9ydCBQREZK QU1fQ0FMTF9OVU1CRVIKCWV2YWwgIiRQREZKQU1fRUZGRUNUSVZFX0NBTEwiCiAgICAgICAgIyMg aS5lLiwgY2FsbCBwZGZqYW0gYWdhaW4gd2l0aCBvbmUgaW5wdXQgZmlsZQogICAgZG9uZQogICAg aWYgWyAiJHZlcmJvc2UiID0gInRydWUiIF07IHRoZW4gY2F0ICIkUERGSkFNX01FU1NBR0VTX0ZJ TEUiID4mMiA7IGZpCiAgICBJRlM9JE9JRlMKICAgIGV4aXQgMApmaQojIwojIyAgRU5EIE9GIFRI RSAnLS1iYXRjaCcgUFJPQ0VTU0lORwojIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjCiMjICBSRUNPUkQg VEhFIEVGRkVDVElWRSBDQUxMIFRPIFBERkpBTSwgRk9SIFBPU1NJQkxFIERFQlVHR0lORyBQVVJQ T1NFUwojIwojIyAgU2F2ZSB0aGUgdGV4dCBvZiB0aGlzIChlZmZlY3RpdmUpIGNhbGwgdG8gcGRm amFtIGluIGEgdGVtcG9yYXJ5IGZpbGUsCiMjICBmb3IgbGF0ZXIgaW5zcGVjdGlvbiBpZiBuZWNl c3NhcnkuCiMjCiMjICBGb3Igc2Vjb25kYXJ5IGNhbGxzLCB0aGUgZWZmZWN0aXZlIGNhbGwgdGV4 dCBpcyBhbHJlYWR5IG1hZGU7CiMjICBvdGhlcndpc2Ugd2UgbWFrZSBpdCBoZXJlLgojIwppZiB0 ZXN0ICIkUERGSkFNX0NBTExfTlVNQkVSIiAtZ3QgMAp0aGVuCiAgICB0aGVDYWxsPSIkUERGSkFN X0VGRkVDVElWRV9DQUxMIgplbHNlCiAgICBmaWxlUGFnZVNwZWM9IiIKICAgIElGUz0iJG5ld2xp bmUiCiAgICBmb3IgayBpbiAkZmlsZVNwZWMgOyBkbwoJIyMgIExhc3Qgc3Vic3RpdHV0aW9uIG9u IG5leHQgbGluZSBpcyBuZWVkZWQgZm9yIHNpbGx5IGNoYXJhY3RlcnMgaW4KCSMjICBmaWxlIG5h bWVzLi4uCglzb3VyY2VQYXRoPSQocHJpbnRmICIlcyIgJGsgfCBzZWQgJ3MvfFtefF0qJC8vJykK CXNvdXJjZVBhdGg9JChlc2NhcGVfY2hhcnMgIiRzb3VyY2VQYXRoIikKCXBhZ2VTcGVjPSQocHJp bnRmICIlcyIgJGsgfCBzZWQgJ3MvLip8Ly8nKQoJZmlsZVBhZ2VTcGVjPSIkZmlsZVBhZ2VTcGVj JHNvdXJjZVBhdGggJHBhZ2VTcGVjICIKICAgIGRvbmUKICAgIElGUz0iJE9JRlMiCiAgICB0aGVD YWxsPSIkMCAkY2FsbE9wdGlvbnMgLS0gJGZpbGVQYWdlU3BlYyIKZmkKcHJpbnRmICIlc1xuJXNc biIgImNkICRwd2QiICIkdGhlQ2FsbCIgPiAiJFBERkpBTV9URU1QX0RJUiIvY2FsbC50eHQKcHJh dHRsZSAiRWZmZWN0aXZlIGNhbGwgZm9yIHRoaXMgcnVuIG9mIHBkZmphbToiCnByYXR0bGUgIiR0 aGVDYWxsIiAxCiMjCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyMKIyMgIE5PVyBNQUtFIFRIRSBJTlBVVCBG SUxFIEVUQy4sIFJFQURZIEZPUiBMQVRFWAojIwpmaWxlUGFnZUxpc3Q9IiIgICMjIGluaXRpYWxp emUgYSBzdHJpbmcgdG8gc3VwcGx5IHRvIFxpbmNsdWRlcGRmbWVyZ2UKY291bnRlcj0wCiMjCiMj ICBNYWtlIHN5bWJvbGljIGxpbmsocykgdG8gdGhlIHNvdXJjZSBmaWxlKHMpIGluIHRoZSB0ZW1w b3JhcnkgZGlyLAojIyAgYW5kIG1ha2UgdGhlICRmaWxlUGFnZUxpc3Qgc3RyaW5nIGZvciBpbnB1 dCB0byBcaW5jbHVkZXBkZm1lcmdlCiMjCnN0ZGluVW5yZWFkPXRydWUKSUZTPSIkbmV3bGluZSIK Zm9yIGsgaW4gJHtmaWxlU3BlY30KZG8KICAgIGNvdW50ZXI9JCgoY291bnRlciArIDEpKQogICAg c291cmNlUGF0aD0kKHByaW50ZiAiJXMiICIkayIgfCBzZWQgJ3MvfFtefF0qJC8vJykKICAgIHBh Z2VTcGVjPSQocHJpbnRmICIlcyIgJGsgfCBzZWQgJ3MvLip8Ly8nKQogICAgIyMgIENoZWNrLCB0 aG91Z2ggbm90IGV4aGF1c3RpdmVseSwgZm9yIHByb2JsZW1zIHdpdGggdGhlCiAgICAjIyAgcGFn ZSBzcGVjOiBsZWFkaW5nIG9yIHRyYWlsaW5nIGNvbW1hLCBkb3VibGUgY29tbWEgb3IKICAgICMj ICBkb3VibGUgZGFzaCwgYWxwaGFiZXRpYyBjaGFyYWN0ZXJzIG90aGVyIHRoYW4gdGhlIHdvcmQg Imxhc3QiLAogICAgIyMgIGJyYWNlcyBub3QgcGFpcmVkIGFzIHt9IHdpdGggbm90aGluZyBpbmJl dHdlZW4uICBBIGZ1bGx5CiAgICAjIyAgc3BlY2lmaWVkIHBhdHRlcm4gZm9yIHZhbGlkIFxpbmNs dWRlcGRmbWVyZ2UgcGFnZSBzcGVjIHdvdWxkCiAgICAjIyAgYmUgYmV0dGVyIGhlcmU7IGJ1dCBs aWZlIGlzIHRvbyBzaG9ydC4uLgogICAgaWYgcHJpbnRmICIlcyIgIiRwYWdlU3BlYyIgfCBzZWQg J3MvbGFzdC85OS9nJyB8IFwKCWdyZXAgICdeLC4qXHwsJFx8LCxcfC0tXHxbQS1aYS16XVx8e1te fV1cfFtee119JyAxPi9kZXYvbnVsbAogICAgdGhlbgoJZXJyb3JfZXhpdCAiaW52YWxpZCBwYWdl IHNwZWMgJHBhZ2VTcGVjIiAkRV9VU0FHRQogICAgZmkKICAgIGNhc2UgJHNvdXJjZVBhdGggaW4K CS9kZXYvc3RkaW4pCgkgICAgdW5pcXVlTmFtZT0iJFBERkpBTV9URU1QX0RJUiIvc3RkaW4ucGRm CgkgICAgaWYgdGVzdCAiJHN0ZGluVW5yZWFkIiA9IHRydWUKCSAgICB0aGVuCgkJaWYgdHR5IC1z IDsgdGhlbgoJCSAgICBlcnJvcl9leGl0IFwKCQkgInR0eSBpcyBjb25uZWN0ZWQgdG8gY29ubmVj dGVkIHRvIHN0ZGluLCBubyBQREYvSlBHL1BORyBmaWxlIGZvdW5kIiBcCgkJCSRFX05PSU5QVVQK CQlmaQoJCWNhdCA+ICIkdW5pcXVlTmFtZSIKCQlzdGRpblVucmVhZD1mYWxzZQoJICAgIGZpCgkg ICAgOzsKCSopCgkgICAgcGRmTmFtZT0kKGJhc2VuYW1lICIkc291cmNlUGF0aCIpCgkgICAgc291 cmNlRGlyPSQoZGlybmFtZSAiJHNvdXJjZVBhdGgiKSAjIyB6c2ggb24gTWFjIE9TIDEwLjUgY2hv a2VzIGhlcmUKCSAgICBjZCAiJHNvdXJjZURpciIgfHwgZXhpdCAxICAgIyMgIGp1c3QgdG8gZ2V0 IHRoZSBmdWxsIHBhdGgKCSAgICBzb3VyY2VEaXI9JChwd2QpCgkgICAgY2QgIiRwd2QiIHx8IGV4 aXQgMQoJICAgIHNvdXJjZUZ1bGxQYXRoPSIkc291cmNlRGlyIi8iJHBkZk5hbWUiCgkgICAgdW5p cXVlTmFtZT0ic291cmNlLSRjb3VudGVyLnBkZiIKCSAgICB1bmlxdWVOYW1lPSIkUERGSkFNX1RF TVBfRElSIi8iJHVuaXF1ZU5hbWUiCgkgICAgIyMgTmV4dCBpcyBmcm9tIHRoZSBDeWd3aW4gcGF0 Y2ggY29udHJpYnV0ZWQgYnkgTHVjYXMKCSAgICBpZiB1c2luZ19ub25fY3lnd2luX2xhdGV4X2Zy b21fY3lnd2luOyB0aGVuCgkJY3AgIiRzb3VyY2VGdWxsUGF0aCIgIiR1bmlxdWVOYW1lIgoJICAg IGVsc2UKCQlsbiAtcyAiJHNvdXJjZUZ1bGxQYXRoIiAiJHVuaXF1ZU5hbWUiCgkgICAgZmkKCSAg ICA7OwogICAgZXNhYwogICAgZmlsZVBhZ2VMaXN0PSIkZmlsZVBhZ2VMaXN0IiwiJHVuaXF1ZU5h bWUiLCIkcGFnZVNwZWMiCmRvbmUKSUZTPSIkT0lGUyIKZmlsZVBhZ2VMaXN0PSQocHJpbnRmICIl cyIgIiRmaWxlUGFnZUxpc3QiIHwgXAogICAgc2VkICdzL14sLy8nKSAgIyMgcmVtb3ZlIGxlYWRp bmcgY29tbWEKIyMKIyMgIERvIHRoZSBwZGZpbmZvIHN0dWZmIChpZiByZWxldmFudCkuLi4KIyMK aWYgIHRlc3QgIiRoeXBlcnJlZiIgIT0gZmFsc2UKdGhlbgogICAgaWYgdGVzdCAiJGtlZXBpbmZv IiA9IHRydWUKICAgIHRoZW4KCXByYXR0bGUgIkNhbGxpbmcgJHtwZGZpbmZvfS4uLiIgIDsKCVBE RmluZm89JChwZGZpbmZvICIkdW5pcXVlTmFtZSIpOwoJcGRmdGl0bD0kKHByaW50ZiAiJXMiICIk UERGaW5mbyIgfCBcCgkgICAgZ3JlcCAtZSAnXlRpdGxlOid8ICdzZWQgcy9eVGl0bGU6XFxcc1wq Ly8nIHwgXAoJICAgIHNlZCAtZSAncy9bIyQlXiZfe31+XS9cXFwmL2cnKTsKCXBkZmF1dGg9JChw cmludGYgIiVzIiAiJFBERmluZm8iIHwgXAoJICAgIGdyZXAgLWUgJ15BdXRob3I6J3wgc2VkICdz L15BdXRob3I6XFxcc1wqLy8nIHwgXAoJICAgIHNlZCAtZSAncy9bIyQlXiZfe31+XS9cXFwmL2cn KTsKCXBkZnN1Ymo9JChwcmludGYgIiVzIiAiJFBERmluZm8iIHwgXAoJICAgIGdyZXAgLWUgJ15T dWJqZWN0Oid8IHNlZCAncy9eU3ViamVjdDpcXFxzXCovLycgfCBcCgkgICAgc2VkIC1lICdzL1sj JCVeJl97fX5dL1xcXCYvZycpOwoJcGRma2V5dz0kKHByaW50ZiAiJXMiICIkUERGaW5mbyIgfCBc CgkgICAgZ3JlcCAtZSAnXktleXdvcmRzOid8IHNlZCAncy9eS2V5d29yZHM6XFxcc1wqLy8nIHwg XAoJICAgIHNlZCAtZSAncy9bIyQlXiZfe31+XS9cXFwmL2cnKTsKICAgIGZpCiAgICBpZiB0ZXN0 IC1uICIkcGRmVGl0bGUiIDsgdGhlbgoJcGRmdGl0bD0iJHBkZlRpdGxlIgogICAgZmkKICAgIGlm IHRlc3QgLW4gIiRwZGZBdXRob3IiIDsgdGhlbgoJcGRmYXV0aD0iJHBkZkF1dGhvciIKICAgIGZp CiAgICBpZiB0ZXN0IC1uICIkcGRmU3ViamVjdCIgOyB0aGVuCglwZGZzdWJqPSIkcGRmU3ViamVj dCIKICAgIGZpCiAgICBpZiB0ZXN0IC1uICIkcGRmS2V5d29yZHMiIDsgdGhlbgoJcGRma2V5dz0i JHBkZktleXdvcmRzIgogICAgZmkKZmkKIyMKIyMgIE5vdyBzZXQgdXAgdGhlIGZpbGVzIGZvciBs YXRleC4uLgojIwpmaWxlTmFtZT0iJFBERkpBTV9URU1QX0RJUiIvYQp0ZXhGaWxlPSIkZmlsZU5h bWUiLnRleAptc2dGaWxlPSIkZmlsZU5hbWUiLm1zZ3MKdGVtcEZpbGU9IiRQREZKQU1fVEVNUF9E SVIiL3RlbXAudGV4CiMjIE5leHQgaXMgYWRhcHRlZCBmcm9tIHRoZSBDeWd3aW4gcGF0Y2ggc2Vu dCBieSBMdWNhcwppZiB1c2luZ19ub25fY3lnd2luX2xhdGV4X2Zyb21fY3lnd2luOyB0aGVuCiAg ICBmaWxlUGFnZUxpc3Q9JChlY2hvICIkZmlsZVBhZ2VMaXN0IiB8IHNlZCAnc35cXH4vfmcnKQpm aQooY2F0IDw8RW5kVGVtcGxhdGUKXGJhdGNobW9kZQpcZG9jdW1lbnRjbGFzc1skZG9jdW1lbnRP cHRpb25zXXthcnRpY2xlfQpcdXNlcGFja2FnZXtjb2xvcn0gXGRlZmluZWNvbG9ye2JnY2xyfXtS R0J9eyRwYWdlY29sb3J9IFxwYWdlY29sb3J7YmdjbHJ9Clx1c2VwYWNrYWdlWyRwYXBlcnNpemVd e2dlb21ldHJ5fQpcdXNlcGFja2FnZVt1dGY4XXtpbnB1dGVuY30KXHVzZXBhY2thZ2V7aHlwZXJy ZWZ9ClxoeXBlcnNldHVwe3BkZnRpdGxlPXskcGRmdGl0bH19ClxoeXBlcnNldHVwe3BkZmF1dGhv cj17JHBkZmF1dGh9fQpcaHlwZXJzZXR1cHtwZGZzdWJqZWN0PXskcGRmc3Vian19ClxoeXBlcnNl dHVwe3BkZmtleXdvcmRzPXskcGRma2V5d319Clx1c2VwYWNrYWdle3BkZnBhZ2VzfQpFbmRUZW1w bGF0ZQogICAgKSAgPiAiJHRleEZpbGUiCmlmIHRlc3QgIiRoeXBlcnJlZiIgPSBmYWxzZTsgdGhl biAgIyMgd2UgZG9uJ3QgbmVlZCBoeXBlcnJlZgogICAgY3AgIiR0ZXhGaWxlIiAiJHRlbXBGaWxl IgogICAgc2VkICcvXFxcdXNlcGFja2FnZXtoeXBlcnJlZn0vZCcgIiR0ZW1wRmlsZSIgfCBcCglz ZWQgJy9cXFxoeXBlcnNldHVwLiovZCcgPiAiJHt0ZXhGaWxlfSIKICAgIHJtICIkdGVtcEZpbGUi CmZpCmlmIHRlc3QgLXogIiRnZW9tZXRyeSIgOyB0aGVuIGdlb21ldHJ5PWZhbHNlIDsgZmkKaWYg dGVzdCAiJGdlb21ldHJ5IiA9IGZhbHNlOyB0aGVuICAgIyMgZ2VvbWV0cnkgcGFja2FnZSBpcyBu b3QgdG8gYmUgdXNlZAogICAgY3AgIiR0ZXhGaWxlIiAiJHRlbXBGaWxlIgogICAgc2VkICcvXFxc dXNlcGFja2FnZS4qe2dlb21ldHJ5fS9kJyAiJHRlbXBGaWxlIiA+ICIkdGV4RmlsZSIKICAgIHJt ICIkdGVtcEZpbGUiCmZpCmlmIHRlc3QgLXogIiRwYWdlY29sb3IiOyB0aGVuICAgIyMgY29sb3Ig cGFja2FnZSBpcyBub3QgbmVlZGVkCiAgICBjcCAiJHRleEZpbGUiICIkdGVtcEZpbGUiCiAgICBz ZWQgJy9cXFx1c2VwYWNrYWdlLip7Y29sb3J9L2QnICIkdGVtcEZpbGUiID4gIiR0ZXhGaWxlIgog ICAgcm0gIiR0ZW1wRmlsZSIKZmkKKGNhdCA8PEVuZFRlbXBsYXRlCiRwcmVhbWJsZQpcYmVnaW57 ZG9jdW1lbnR9ClxpbmNsdWRlcGRmbWVyZ2VbJG1pc2NPcHRpb25zXXskZmlsZVBhZ2VMaXN0fQpc ZW5ke2RvY3VtZW50fQpFbmRUZW1wbGF0ZQogICAgKSAgPj4gIiR0ZXhGaWxlIgojIwojIyAgSU5Q VVQgRklMRVMgQVJFIEFMTCBSRUFEWQojIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjCiMjICBSVU4gTEFU RVggQU5EIENPUFkgVEhFIFJFU1VMVElORyBQREYgRklMRSAKIyMKaWYgWyAiJHJ1bnMiIC1lcSAx IF0gOwp0aGVuIHByYXR0bGUgIkNhbGxpbmcgJHtsYXRleH0uLi4iCmVsc2UgcHJhdHRsZSAiQ2Fs bGluZyAke2xhdGV4fSAkcnVucyB0aW1lcy4uLiIKZmkKY2QgIiRQREZKQU1fVEVNUF9ESVIiIHx8 IGV4aXQgMQpmYWlsdXJlVGV4dD1cCiJGQUlMRUQuClRoZSBjYWxsIHRvICRsYXRleCByZXN1bHRl ZCBpbiBhbiBlcnJvci4KSWYgJy0tbm8tdGlkeScgd2FzIHVzZWQsIHlvdSBjYW4gZXhhbWluZSB0 aGUKbG9nIGZpbGUgYXQKICAgICAgICAkZmlsZU5hbWUubG9nCnRvIHRyeSB0byBkaWFnbm9zZSB0 aGUgcHJvYmxlbS4iCmk9MQp3aGlsZSBbICIkaSIgLWxlICIkcnVucyIgXSA7IGRvCiAgICAiJGxh dGV4IiAiJHRleEZpbGUiID4gIiRtc2dGaWxlIiB8fCB7CiAgICAgICAgcHJhdHRsZSAiJGZhaWx1 cmVUZXh0IgogICAgICAgIGVycm9yX2V4aXQgIlJ1biAkaTogT3V0cHV0IGZpbGUgbm90IHdyaXR0 ZW4iICRFX1NPRlRXQVJFCiAgICB9CiAgICBpPSQoKGkgKyAxKSkKZG9uZQpjZCAiJHB3ZCIgfHwg ZXhpdCAxCmlmIHRlc3QgLWYgIiRmaWxlTmFtZSIucGRmICAjIyBpZiBMYVRlWCBkaWRuJ3QgY2hv a2UKdGhlbgogICAgIyMgIENoZWNrcyBvbiBvdXRwdXQgZmlsZSBwYXRoOgogICAgaWYgdGVzdCAt ZCAiJG91dEZpbGUiICAjIyBvdXRmaWxlIGlzIGEgZGlyZWN0b3J5CiAgICB0aGVuCglpZiB0ZXN0 ICIkc291cmNlUGF0aCIgPSAvZGV2L3N0ZGluIAoJdGhlbgoJICAgIGVycm9yX2V4aXQgXAoJCSIt LW91dGZpbGUgY2Fubm90IGJlIGEgZGlyZWN0b3J5IHdoZW4gaW5wdXQgaXMgc3RkaW4iIFwKCQkk RV9VU0FHRQoJZmkKCWlmIHRlc3QgISAtdyAiJG91dEZpbGUiCgl0aGVuCgkgICAgZXJyb3JfZXhp dCBcCiAgICAgICAgIkZBSUxFRDogbm8gd3JpdGUgcGVybWlzc2lvbiBvbiAke291dEZpbGV9LiIg XAoJICAgICRFX09TRklMRQoJZmkKICAgICAgICBzZXBhcmF0b3I9Ii0iCglpZiB0ZXN0ICIkcGFn ZVNwZWMiICE9ICItIgoJdGhlbgoJICAgIHNlcGFyYXRvcj0tIiRwYWdlU3BlYyItCglmaQoJb3V0 RmlsZT0kKHByaW50ZiAiJXMiICIkb3V0RmlsZSIgfCBzZWQgJ3MvXC8kLy8nKQogICAgICAgICAg ICAgICAgIyMgKGRlbGV0ZSBhbnkgdHJhaWxpbmcgc2xhc2gpCglwZGZOYW1lPSQoYmFzZW5hbWUg IiRzb3VyY2VQYXRoIikKCXBkZk5hbWU9JChwcmludGYgIiVzIiAiJHBkZk5hbWUiIHwgXAoJICAg IHNlZCAncy9cLltwUF1bZERdW2ZGXSQvLycpICAgICAgICMjIHN0cmlwIGV4dGVuc2lvbgoJcGRm TmFtZT0iJHBkZk5hbWUkc2VwYXJhdG9yJHN1ZmZpeCIucGRmCglvdXRGaWxlPSIkb3V0RmlsZSIv IiRwZGZOYW1lIgogICAgZmkJCQpmaQppZiAgdGVzdCAtZiAiJG91dEZpbGUiICAmJiAgdGVzdCAh IC13ICIkb3V0RmlsZSIKICAgICMjIGZpbGUgZXhpc3RzIGFuZCB3ZSBjYW4ndCBvdmVyLXdyaXRl IGl0CnRoZW4KICAgIGVycm9yX2V4aXQgIm5vIHdyaXRlIHBlcm1pc3Npb24gYXQgJHtvdXRGaWxl fSIgJEVfQ0FOVENSRUFURQpmaQojZmlsZVNpemU9JCh3YyAtYyA8ICIkZmlsZU5hbWUucGRmIiB8 IHNlZCAncy9eXCAqLy8nKQppZiBjYXQgIiRmaWxlTmFtZSIucGRmID4gIiRvdXRGaWxlIiAyPi9k ZXYvbnVsbAp0aGVuCiAgICBwcmF0dGxlICJGaW5pc2hlZC4gIE91dHB1dCB3YXMgd3JpdHRlbiB0 byAnJHtvdXRGaWxlfScuIgplbHNlCiAgICBlcnJvcl9leGl0ICJjYW5ub3Qgd3JpdGUgb3V0cHV0 IGF0ICR7b3V0RmlsZX0iICRFX0NBTlRDUkVBVEUKZmkKaWYgWyAiJFBERkpBTV9DQUxMX05VTUJF UiIgPSAiMCIgXSAmJiBbICIkdmVyYm9zZSIgPSAidHJ1ZSIgXQp0aGVuIGNhdCAiJFBERkpBTV9N RVNTQUdFU19GSUxFIiA+JjIKZmkKZXhpdCAwCiMjCiMjICBFTkQKIyMKIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Iwo= --------_5ECE657100000000E613_MULTIPART_MIXED_--