Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id A07777AA for ; Sun, 12 Mar 2017 15:47:36 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail4.protonmail.ch (mail4.protonmail.ch [185.70.40.27]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 7EFFDD3 for ; Sun, 12 Mar 2017 15:47:35 +0000 (UTC) Date: Sun, 12 Mar 2017 11:47:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.ch; s=default; t=1489333653; bh=1x66CxtJ6fFP3t2zY1sbTMQm94zaxXsd62eUk8UJMzE=; h=To:From:Reply-To:Subject:In-Reply-To:References:Feedback-ID:From; b=mj/Ep2XQeh9bmcSFwK9BMrCYNmo8hdVgYNYP0kmT8gS3a7/M9tuVTZxP1hiE6Lb7A +Jvq+mYS6mBShZWKr0YCygAQh5Q0VvxBZeHQyvY0X9H/McOXczt568jCiHC2QbDblc GGm5zLYCosf78L5ZMIjge1zv1MiDoTxX/4fH8iIs= To: Bitcoin Protocol Discussion From: shaolinfry Reply-To: shaolinfry Message-ID: In-Reply-To: References: Feedback-ID: Y5llRh4tUlFiplzPC9cgQYTUTuUx7scPmkmqk9f4Yy7D0SdDIRdKO5IFhLq1b82dV-ODb_X41Mb0rOaJi_gGlw==:Ext:ProtonMail MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1_1be8282d0dd025d70957682437be3ffe" X-Spam-Status: No, score=-3.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE, MIME_BASE64_BLANKS, RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Sun, 12 Mar 2017 16:44:32 +0000 Subject: Re: [bitcoin-dev] Moving towards user activated soft fork activation X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Mar 2017 15:47:36 -0000 This is a multi-part message in MIME format. --b1_1be8282d0dd025d70957682437be3ffe Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 VGhhbmsgeW91IGFsbCBmb3IgdGhlIGluc2lnaHRmdWwgZmVlZGJhY2ssIG9uIGxpc3QsIGluIHBy aXZhdGUgYW5kIG9uIHZhcmlvdXMgc29jaWFsIG1lZGlhIHBsYXRmb3Jtcy4gSSBoYXZlIGV4dGVu ZGVkIHRoZSBnZW5lcmFsaXplZCBwcm9wb3NhbCB3aGljaCBleHRlbmRzIEJJUDkuIFRoaXMgYmFz aWNhbGx5IGludHJvZHVjZXMgYW4gZXh0cmEgd29ya2Zsb3cgc3RhdGUgaWYgYWN0aXZhdGlvbnRp bWUgPiBzdGFydHRpbWUgYW5kIDwgdGltZW91dCAtIDEgbW9udGguIEl0IGFsbG93cyBleHRyYSBi dXNpbmVzcyBsb2dpYyB0byBiZSBhZGRlZCwgc3VjaCBhcyByZXF1aXJpbmcgbWFuZGF0b3J5IHNp Z25hbGxpbmcuCgpQbGVhc2UgZmluZCB0aGUgZHJhZnQgaGVyZToKCmh0dHBzOi8vZ2lzdC5naXRo dWIuY29tL3NoYW9saW5mcnkvNzBkMDU4MmRiN2RlOTU4YjdkNWI2NDIyY2ZlZjRlMjIKCjxwcmU+ IEJJUDogYmlwLXVhdmVyc2lvbmJpdHMtc3Ryb25nIFRpdGxlOiBWZXJzaW9uIGJpdHMgZXh0ZW5z aW9uIHdpdGggbWFuZGF0b3J5IGFjdGl2YXRpb24gQXV0aG9yOiBTaGFvbGluIEZyeSA8c2hhb2xp bmZyeUBwcm90b25tYWlsLmNoPiBDb21tZW50cy1TdW1tYXJ5OiBObyBjb21tZW50cyB5ZXQuIENv bW1lbnRzLVVSSTogaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy93aWtpL0NvbW1lbnRz OkJJUC0/Pz8/IFN0YXR1czogRHJhZnQgVHlwZTogSW5mb3JtYXRpb25hbCBDcmVhdGVkOiAyMDE3 LTAzLTA5IExpY2Vuc2U6IEJTRC0zLUNsYXVzZSBDQzAtMS4wIDwvcHJlPiA9PUFic3RyYWN0PT0g VGhpcyBkb2N1bWVudCBzcGVjaWZpZXMgYW4gZXh0ZW5zaW9uIHRvIEJJUDkgdGhhdCBpbnRyb2R1 Y2VzIGFuIGFkZGl0aW9uYWwgYWN0aXZhdGlvbiBwYXJhbWV0ZXIgdG8gZGVwbG95IGJhY2t3YXJk LWNvbXBhdGlibGUgY2hhbmdlcyAoZnVydGhlciBjYWxsZWQgInNvZnQgZm9ya3MiKSB0byBiZSBh Y3RpdmF0ZWQgYnkgYSBkZWFkbGluZS4gPT1Nb3RpdmF0aW9uPT0gQklQOSBpbnRyb2R1Y2VkIGEg bWVjaGFuaXNtIGZvciBkb2luZyBwYXJhbGxlbCBzb2Z0IGZvcmtpbmcgZGVwbG95bWVudHMgYmFz ZWQgb24gcmVwdXJwb3NpbmcgdGhlIGJsb2NrIG5WZXJzaW9uIGZpZWxkLiBBY3RpdmF0aW9uIGlz IGRlcGVuZGVudCBvbiBuZWFyIHVuYW5pbW91cyBoYXNocmF0ZSBzaWduYWxsaW5nIHdoaWNoIG1h eSBiZSBpbXByYWN0aWNhbCBhbmQgaXMgYWxzbyBzdWJqZWN0IHRvIHZldG8gYnkgYSBzbWFsbCBt aW5vcml0eSBvZiBub24tc2lnbmFsbGluZyBoYXNocmF0ZS4gVGhpcyBzcGVjaWZpY2F0aW9uIHBy b3ZpZGVzIGFuIHdheSBmb3IgZnVsbCBub2RlcyB0byBjb29yZGluYXRlIHN5bmNyb25pemVkIGFj dGl2YXRpb24gYmFzZWQgb24gYSBtZWRpYW4gcGFzdCB0aW1lIHVzaW5nIHRoZSBCSVA5IHN0YXRl IG1hY2hpbmUuIEhhc2hyYXRlIG1heSBvcHRpb25hbGx5IHRyaWdnZXIgYWN0aXZhdGlvbiBiZWZv cmUgdGhlIHVzZXIgZGVmaW5lZCBhY3RpdmF0aW9uIHNlcXVlbmNlIHRyaWdnZXJzLiA9PVNwZWNp ZmljYXRpb249PSBUaGlzIHNwZWNpZmljYXRpb24gYWRkcyBhIG5ldyBwZXItY2hhaW4gZGVwbG95 bWVudCBwYXJhbWV0ZXIgdG8gdGhlIGV4aXN0aW5nIEJJUDkgc3BlY2lmaWNhdGlvbiBhcyBmb2xs b3dzOiAjIFRoZSAnJydhY3RpdmF0aW9udGltZScnJyBzcGVjaWZpZXMgYSBtaW5pbXVtIG1lZGlh biB0aW1lIHBhc3Qgb2YgYSBibG9jayBhdCB3aGljaCB0aGUgZGVwbG95bWVudCBzaG91bGQgdHJh bnNpdGlvbiB0byB0aGUgbG9ja2VkLWluIHN0YXRlLiBUaGlzIHNwZWNpZmljYXRpb24gYWRkcyBh IG5ldyB3b3JrZmxvdyBzdGF0ZSwgJycnUFJFX0xPQ0tfSU4nJycgdG8gdGhlIEJJUDkgc3RhdGUg bWFjaGluZSBpZiB0aGUgZGVwbG95bWVudCAnJydhY3RpdmF0aW9udGltZScnJyBpcyBncmVhdGVy IHRoYW4gemVybyB3aGVuIHRoZSB3b3JrZmxvdyB3aWxsIGJlICcnJ0RFRklORUQnJycgLT4gJycn U1RBUlRFRCcnJyAtPiAnJydQUkVfTE9DS19JTicnJyAtPiAnJydMT0NLRURfSU4nJycgLT4gJycn QUNUSVZFJycnLiBUaGUgJycnUFJFX0xPQ0tfSU4nJycgcGhhc2UgYWxsb3dzIG9wdGlvbmFsIHBl ciBkZXBsb3ltZW50IHByb2Nlc3NpbmcsIGUuZy4gbWFuZGF0b3J5IHNpZ25hbGxpbmcuID09PVNl bGVjdGlvbiBndWlkZWxpbmVzPT09IFRoZSBmb2xsb3dpbmcgZ3VpZGVsaW5lcyBhcmUgc3VnZ2Vz dGVkIGZvciBzZWxlY3RpbmcgdGhlc2UgcGFyYW1ldGVycyBmb3IgYSBzb2Z0IGZvcms6ICMgJycn YWN0aXZhdGlvbnRpbWUnJycgc2hvdWxkIGJlIHNldCB0byBzb21lIGRhdGUgaW4gdGhlIGZ1dHVy ZSBhbmQgbXVzdCBiZSBsZXNzIHRoYW4gdGhlIEJJUDkgJycndGltZW91dCcnJy4gSXQgaXMgcmVj b21tZW5kZWQgdG8gaGF2ZSBhbiBhY3RpdmF0aW9uIHRpbWUgb2YgMSB5ZWFyIG1pbnVzIDMwIGRh eXMgKDI4OTQ0MDAwIHNlY29uZHMpLiBUaGUgJycnYWN0aXZhdGlvbnRpbWUnJycgY2Fubm90IGJl IGxlc3MgdGhhbiAzMCBkYXlzIGJlZm9yZSB0aGUgJycndGltZW91dCcnJy4gPT09U3RhdGUgdHJh bnNpdGlvbnM9PT0gVGhlIHN0YXRlIHRyYW5zaXRpb24gd29ya2Zsb3cgaXMgZXhhY3RseSB0aGUg c2FtZSBhcyBpbiBCSVA5IGV4Y2VwdCB3aGVuICcnJ2FjdGl2YXRpb250aW1lJycnIGlzIGdyZWF0 ZXIgdGhhbiB6ZXJvLiBUaGVuIHRoZSB3b3JrZmxvdyB3aWxsIGJlICcnJ0RFRklORUQnJycgLT4g JycnU1RBUlRFRCcnJyAtPiAnJydQUkVfTE9DS19JTicnJyAtPiAnJydMT0NLRURfSU4nJycgLT4g JycnQUNUSVZFJycnLiBXaGVuIGluIHRoZSBTVEFSVEVEIHN0YXRlIGlmIHRoZSBtZWRpYW4gdGlt ZSBwYXN0IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgJycnYWN0aXZhdGlvbnRpbWUn JycgdGhlbiB0aGUgc3RhdGUgd2lsbCB0cmFuc2l0aW9uIHRvIFBSRV9MT0NLX0lOIG9uIHRoZSBu ZXh0IHJldGFyZ2V0IGFmdGVyICcnJ2FjdGl2YXRpb250aW1lJycnLiBjYXNlIFNUQVJURUQ6IC8v IFRyYW5zaXRpb24gdG8gVEhSRVNIT0xEX1BSRV9MT0NLX0lOIGlmIG1hbmRhdG9yeSBhY3RpdmF0 aW9uIGlzIHNldCBpZiAoKG5BY3RpdmF0aW9uVGltZSAhPSAwKSAmJiBwaW5kZXhQcmV2LT5HZXRN ZWRpYW5UaW1lUGFzdCgpID49IG5BY3RpdmF0aW9uVGltZSkgeyBzdGF0ZU5leHQgPSBUSFJFU0hP TERfUFJFX0xPQ0tfSU47IGJyZWFrOyB9IC8vIEJJUDkgc3BlY2lmaWNhdGlvbiBmb2xsb3dzIGlm IChHZXRNZWRpYW5UaW1lUGFzdChibG9jay5wYXJlbnQpID49IHRpbWVvdXQpIHsgcmV0dXJuIEZB SUxFRDsgfSBpbnQgY291bnQgPSAwOyB3YWxrID0gYmxvY2s7IGZvciAoaSA9IDA7IGkgPCAyMDE2 OyBpKyspIHsgd2FsayA9IHdhbGsucGFyZW50OyBpZiAod2Fsay5uVmVyc2lvbiAmIDB4RTAwMDAw MDAgPT0gMHgyMDAwMDAwMCAmJiAod2Fsay5uVmVyc2lvbiA+PiBiaXQpICYgMSA9PSAxKSB7IGNv dW50Kys7IH0gfSBpZiAoY291bnQgPj0gdGhyZXNob2xkKSB7IHJldHVybiBMT0NLRURfSU47IH0g cmV0dXJuIFNUQVJURUQ7ID09PSBSZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gPT09IGh0dHBzOi8v Z2l0aHViLmNvbS9iaXRjb2luL2JpdGNvaW4vY29tcGFyZS9tYXN0ZXIuLi5zaGFvbGluZnJ5OmJp cC11YXZlcnNpb25iaXRzLXN0cm9uZyA9PT09IE9wdGlvbmFsIG1hbmRhdG9yeSBzaWduYWxsaW5n ID09PT0gPHByZT4gLyoqICogUmV0dXJuIHRydWUgaWYgblZlcnNpb24gQklQOSBkZXBsb3ltZW50 IGlzIHNpZ25hbGxpbmcgZHVyaW5nICogbWFuZGF0b3J5IHBlcmlvZHMuICovIGJvb2wgSXNNYW5k YXRvcnlTaWduYWxsaW5nKGludDMyX3QgblZlcnNpb24sIENvbnNlbnN1czo6RGVwbG95bWVudFBv cyBwb3MsIGNvbnN0IENCbG9ja0luZGV4KiBwaW5kZXhQcmV2LCBjb25zdCBDb25zZW5zdXM6OlBh cmFtcyYgcGFyYW1zKSB7IC8vIENoZWNrIHRoZSBkZXBsb3ltZW50IGlzIGluIHRoZSBjb3JyZWN0 IHN0YXRlIGZvciB0aGlzIGNoZWNrIHRvIGFwcGx5LiBpZiAoISgoVmVyc2lvbkJpdHNTdGF0ZShw aW5kZXhQcmV2LCBwYXJhbXMsIHBvcywgdmVyc2lvbmJpdHNjYWNoZSkgPT0gVEhSRVNIT0xEX1BS RV9MT0NLX0lOKSB8fCAoVmVyc2lvbkJpdHNTdGF0ZShwaW5kZXhQcmV2LCBwYXJhbXMsIHBvcywg dmVyc2lvbmJpdHNjYWNoZSkgPT0gVEhSRVNIT0xEX0xPQ0tFRF9JTikpKSByZXR1cm4gdHJ1ZTsg Ly8gcmV0dXJuIHNpZ25hbGxpbmcgc3RhdGUgcmV0dXJuICgoKG5WZXJzaW9uICYgVkVSU0lPTkJJ VFNfVE9QX01BU0spID09IFZFUlNJT05CSVRTX1RPUF9CSVRTKSAmJiAoblZlcnNpb24gJiBWZXJz aW9uQml0c01hc2socGFyYW1zLCBwb3MpKSAhPSAwKTsgfSAvLyBzZWd3aXQgc2lnbmFsbGluZyBp cyBtYW5kYXRvcnkgZHVyaW5nIFBSRV9MT0NLX0lOIGFuZCBMT0NLRURfSU4gcGhhc2UgaWYgKCFJ c01hbmRhdG9yeVNpZ25hbGxpbmcoYmxvY2sublZlcnNpb24sIENvbnNlbnN1czo6REVQTE9ZTUVO VF9FWEFNUExFLCBwaW5kZXhQcmV2LCBjb25zZW5zdXNQYXJhbXMpKSByZXR1cm4gc3RhdGUuSW52 YWxpZChmYWxzZSwgUkVKRUNUX09CU09MRVRFLCBzdHJwcmludGYoImJhZC12ZXJzaW9uKDB4JTA4 eCkiLCBibG9jay5uVmVyc2lvbiksIHN0cnByaW50ZigicmVqZWN0ZWQgblZlcnNpb249MHglMDh4 IGJsb2NrLCBtdXN0IHVwZ3JhZGUiLCBibG9jay5uVmVyc2lvbikpOyA8L3ByZT4gPT1EZXBsb3lt ZW50cz09IEEgbGl2aW5nIGxpc3Qgb2YgZGVwbG95bWVudCBwcm9wb3NhbHMgY2FuIGJlIGZvdW5k IFtbYmlwLTAwMDkvYXNzaWdubWVudHMubWVkaWF3aWtpfGhlcmVdXS4gPT1Db3B5cmlnaHQ9PSBU aGlzIGRvY3VtZW50IGlzIHBsYWNlZCBpbiB0aGUgcHVibGljIGRvbWFpbi4= --b1_1be8282d0dd025d70957682437be3ffe Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0iY29sb3I6IHJnYig4NSwgODUsIDg1KTsgZm9udC1mYW1pbHk6IEFyaWFsLCAm cXVvdDtIZWx2ZXRpY2EgTmV1ZSZxdW90OywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNp emU6IDE0cHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9y bWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0 ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1p bmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdp ZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBw eDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyI+VGhhbmsgeW91IGFsbCBm b3IgdGhlIGluc2lnaHRmdWwgZmVlZGJhY2ssIG9uIGxpc3QsIGluIHByaXZhdGUgYW5kIG9uIHZh cmlvdXMgc29jaWFsIG1lZGlhIHBsYXRmb3Jtcy4gSSBoYXZlIGV4dGVuZGVkIHRoZSBnZW5lcmFs aXplZCBwcm9wb3NhbCB3aGljaCBleHRlbmRzIEJJUDkuIFRoaXMgYmFzaWNhbGx5IGludHJvZHVj ZXMgYW4gZXh0cmEgd29ya2Zsb3cgc3RhdGUgaWYgYWN0aXZhdGlvbnRpbWUgJmd0OyBzdGFydHRp bWUgJm5ic3A7YW5kICZsdDsgdGltZW91dCAtIDEgbW9udGguIEl0IGFsbG93cyBleHRyYSBidXNp bmVzcyBsb2dpYyB0byBiZSBhZGRlZCwgc3VjaCBhcyByZXF1aXJpbmcgbWFuZGF0b3J5IHNpZ25h bGxpbmcuPGJyPjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoODUsIDg1LCA4NSk7IGZvbnQt ZmFtaWx5OiBBcmlhbCwgJnF1b3Q7SGVsdmV0aWNhIE5ldWUmcXVvdDssIEhlbHZldGljYSwgc2Fu cy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFu dC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWln aHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGln bjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1z cGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQt c3Ryb2tlLXdpZHRoOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsi Pjxicj48L2Rpdj48ZGl2IHN0eWxlPSJjb2xvcjogcmdiKDg1LCA4NSwgODUpOyBmb250LWZhbWls eTogQXJpYWwsICZxdW90O0hlbHZldGljYSBOZXVlJnF1b3Q7LCBIZWx2ZXRpY2EsIHNhbnMtc2Vy aWY7IGZvbnQtc2l6ZTogMTRweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtbGln YXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBu b3JtYWw7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0 YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6 IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9r ZS13aWR0aDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7Ij5QbGVh c2UgZmluZCB0aGUgZHJhZnQgaGVyZTo8YnI+PC9kaXY+PGRpdiBzdHlsZT0iY29sb3I6IHJnYig4 NSwgODUsIDg1KTsgZm9udC1mYW1pbHk6IEFyaWFsLCAmcXVvdDtIZWx2ZXRpY2EgTmV1ZSZxdW90 OywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGZvbnQtc3R5bGU6IG5v cm1hbDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczog bm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBo YW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zv cm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAw cHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdi KDI1NSwgMjU1LCAyNTUpOyI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoODUsIDg1 LCA4NSk7IGZvbnQtZmFtaWx5OiBBcmlhbCwgJnF1b3Q7SGVsdmV0aWNhIE5ldWUmcXVvdDssIEhl bHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBmb250LXN0eWxlOiBub3JtYWw7 IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1h bDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczog MjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBu b25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAt d2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUs IDI1NSwgMjU1KTsiPjxhIGhyZWY9Imh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3NoYW9saW5mcnkv NzBkMDU4MmRiN2RlOTU4YjdkNWI2NDIyY2ZlZjRlMjIiIHJlbD0ibm9yZWZlcnJlciBub2ZvbGxv dyBub29wZW5lciI+aHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vc2hhb2xpbmZyeS83MGQwNTgyZGI3 ZGU5NThiN2Q1YjY0MjJjZmVmNGUyMjwvYT48YnI+PC9kaXY+PGRpdiBzdHlsZT0iY29sb3I6IHJn Yig4NSwgODUsIDg1KTsgZm9udC1mYW1pbHk6IEFyaWFsLCAmcXVvdDtIZWx2ZXRpY2EgTmV1ZSZx dW90OywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGZvbnQtc3R5bGU6 IG5vcm1hbDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fw czogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBv cnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFu c2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5n OiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjog cmdiKDI1NSwgMjU1LCAyNTUpOyI+PGJyPjwvZGl2PjxwcmUgc3R5bGU9ImNvbG9yOiByZ2IoMCwg MCwgMCk7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFs OyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXIt c3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRl bnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAw cHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgd29yZC13cmFwOiBicmVhay13b3Jk OyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Ij4mbHQ7cHJlJmd0OwogIEJJUDogYmlwLXVhdmVyc2lv bmJpdHMtc3Ryb25nCiAgVGl0bGU6IFZlcnNpb24gYml0cyBleHRlbnNpb24gd2l0aCBtYW5kYXRv cnkgYWN0aXZhdGlvbgogIEF1dGhvcjogU2hhb2xpbiBGcnkgJmx0OzxhIGhyZWY9Im1haWx0bzpz aGFvbGluZnJ5QHByb3Rvbm1haWwuY2giPnNoYW9saW5mcnlAcHJvdG9ubWFpbC5jaDwvYT4mZ3Q7 CiAgQ29tbWVudHMtU3VtbWFyeTogTm8gY29tbWVudHMgeWV0LgogIENvbW1lbnRzLVVSSTogPGEg aHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy93aWtpL0NvbW1lbnRzOkJJUC0i Pmh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpcHMvd2lraS9Db21tZW50czpCSVAtPC9hPj8/ Pz8KICBTdGF0dXM6IERyYWZ0CiAgVHlwZTogSW5mb3JtYXRpb25hbAogIENyZWF0ZWQ6IDIwMTct MDMtMDkKICBMaWNlbnNlOiBCU0QtMy1DbGF1c2UKICAgICAgICAgICBDQzAtMS4wCiZsdDsvcHJl Jmd0OwoKPT1BYnN0cmFjdD09CgpUaGlzIGRvY3VtZW50IHNwZWNpZmllcyBhbiBleHRlbnNpb24g dG8gQklQOSB0aGF0IGludHJvZHVjZXMgYW4gYWRkaXRpb25hbCBhY3RpdmF0aW9uIHBhcmFtZXRl ciB0byBkZXBsb3kgYmFja3dhcmQtY29tcGF0aWJsZSBjaGFuZ2VzIChmdXJ0aGVyIGNhbGxlZCAi c29mdCBmb3JrcyIpIHRvIGJlIGFjdGl2YXRlZCBieSBhIGRlYWRsaW5lLgoKPT1Nb3RpdmF0aW9u PT0KCkJJUDkgaW50cm9kdWNlZCBhIG1lY2hhbmlzbSBmb3IgZG9pbmcgcGFyYWxsZWwgc29mdCBm b3JraW5nIGRlcGxveW1lbnRzIGJhc2VkIG9uIHJlcHVycG9zaW5nIHRoZSBibG9jayBuVmVyc2lv biBmaWVsZC4gQWN0aXZhdGlvbiBpcyBkZXBlbmRlbnQgb24gbmVhciB1bmFuaW1vdXMgaGFzaHJh dGUgc2lnbmFsbGluZyB3aGljaCBtYXkgYmUgaW1wcmFjdGljYWwgYW5kIGlzIGFsc28gc3ViamVj dCB0byB2ZXRvIGJ5IGEgc21hbGwgbWlub3JpdHkgb2Ygbm9uLXNpZ25hbGxpbmcgaGFzaHJhdGUu CgpUaGlzIHNwZWNpZmljYXRpb24gcHJvdmlkZXMgYW4gd2F5IGZvciBmdWxsIG5vZGVzIHRvIGNv b3JkaW5hdGUgc3luY3Jvbml6ZWQgYWN0aXZhdGlvbiBiYXNlZCBvbiBhIG1lZGlhbiBwYXN0IHRp bWUgdXNpbmcgdGhlIEJJUDkgc3RhdGUgbWFjaGluZS4gSGFzaHJhdGUgbWF5IG9wdGlvbmFsbHkg dHJpZ2dlciBhY3RpdmF0aW9uIGJlZm9yZSB0aGUgdXNlciBkZWZpbmVkIGFjdGl2YXRpb24gc2Vx dWVuY2UgdHJpZ2dlcnMuCgo9PVNwZWNpZmljYXRpb249PQoKVGhpcyBzcGVjaWZpY2F0aW9uIGFk ZHMgYSBuZXcgcGVyLWNoYWluIGRlcGxveW1lbnQgcGFyYW1ldGVyIHRvIHRoZSBleGlzdGluZyBC SVA5IHNwZWNpZmljYXRpb24gYXMgZm9sbG93czoKCiMgVGhlICcnJ2FjdGl2YXRpb250aW1lJycn IHNwZWNpZmllcyBhIG1pbmltdW0gbWVkaWFuIHRpbWUgcGFzdCBvZiBhIGJsb2NrIGF0IHdoaWNo IHRoZSBkZXBsb3ltZW50IHNob3VsZCB0cmFuc2l0aW9uIHRvIHRoZSBsb2NrZWQtaW4gc3RhdGUu CgpUaGlzIHNwZWNpZmljYXRpb24gYWRkcyBhIG5ldyB3b3JrZmxvdyBzdGF0ZSwgJycnUFJFX0xP Q0tfSU4nJycgdG8gdGhlIEJJUDkgc3RhdGUgbWFjaGluZSBpZiB0aGUgZGVwbG95bWVudCAnJydh Y3RpdmF0aW9udGltZScnJyBpcyBncmVhdGVyIHRoYW4gemVybyB3aGVuIHRoZSB3b3JrZmxvdyB3 aWxsIGJlICcnJ0RFRklORUQnJycgLSZndDsgJycnU1RBUlRFRCcnJyAtJmd0OyAnJydQUkVfTE9D S19JTicnJyAtJmd0OyAnJydMT0NLRURfSU4nJycgLSZndDsgJycnQUNUSVZFJycnLgoKVGhlICcn J1BSRV9MT0NLX0lOJycnIHBoYXNlIGFsbG93cyBvcHRpb25hbCBwZXIgZGVwbG95bWVudCBwcm9j ZXNzaW5nLCBlLmcuIG1hbmRhdG9yeSBzaWduYWxsaW5nLgoKPT09U2VsZWN0aW9uIGd1aWRlbGlu ZXM9PT0KClRoZSBmb2xsb3dpbmcgZ3VpZGVsaW5lcyBhcmUgc3VnZ2VzdGVkIGZvciBzZWxlY3Rp bmcgdGhlc2UgcGFyYW1ldGVycyBmb3IgYSBzb2Z0IGZvcms6CgojICcnJ2FjdGl2YXRpb250aW1l JycnIHNob3VsZCBiZSBzZXQgdG8gc29tZSBkYXRlIGluIHRoZSBmdXR1cmUgYW5kIG11c3QgYmUg bGVzcyB0aGFuIHRoZSBCSVA5ICcnJ3RpbWVvdXQnJycuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGhh dmUgYW4gYWN0aXZhdGlvbiB0aW1lIG9mIDEgeWVhciBtaW51cyAzMCBkYXlzICgyODk0NDAwMCBz ZWNvbmRzKS4gVGhlICcnJ2FjdGl2YXRpb250aW1lJycnIGNhbm5vdCBiZSBsZXNzIHRoYW4gMzAg ZGF5cyBiZWZvcmUgdGhlICcnJ3RpbWVvdXQnJycuCgo9PT1TdGF0ZSB0cmFuc2l0aW9ucz09PQoK VGhlIHN0YXRlIHRyYW5zaXRpb24gd29ya2Zsb3cgaXMgZXhhY3RseSB0aGUgc2FtZSBhcyBpbiBC SVA5IGV4Y2VwdCB3aGVuICcnJ2FjdGl2YXRpb250aW1lJycnIGlzIGdyZWF0ZXIgdGhhbiB6ZXJv LiBUaGVuIHRoZSB3b3JrZmxvdyB3aWxsIGJlICcnJ0RFRklORUQnJycgLSZndDsgJycnU1RBUlRF RCcnJyAtJmd0OyAnJydQUkVfTE9DS19JTicnJyAtJmd0OyAnJydMT0NLRURfSU4nJycgLSZndDsg JycnQUNUSVZFJycnLiBXaGVuIGluIHRoZSBTVEFSVEVEIHN0YXRlIGlmIHRoZSBtZWRpYW4gdGlt ZSBwYXN0IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgJycnYWN0aXZhdGlvbnRpbWUn JycgdGhlbiB0aGUgc3RhdGUgd2lsbCB0cmFuc2l0aW9uIHRvIFBSRV9MT0NLX0lOIG9uIHRoZSBu ZXh0IHJldGFyZ2V0IGFmdGVyICcnJ2FjdGl2YXRpb250aW1lJycnLgoKICAgICAgICBjYXNlIFNU QVJURUQ6CiAgICAgICAgICAgIC8vIFRyYW5zaXRpb24gdG8gVEhSRVNIT0xEX1BSRV9MT0NLX0lO IGlmIG1hbmRhdG9yeSBhY3RpdmF0aW9uIGlzIHNldAogICAgICAgICAgICBpZiAoKG5BY3RpdmF0 aW9uVGltZSAhPSAwKSAmYW1wOyZhbXA7IHBpbmRleFByZXYtJmd0O0dldE1lZGlhblRpbWVQYXN0 KCkgJmd0Oz0gbkFjdGl2YXRpb25UaW1lKSB7CiAgICAgICAgICAgICAgICBzdGF0ZU5leHQgPSBU SFJFU0hPTERfUFJFX0xPQ0tfSU47CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg fQogICAgICAgICAgICAvLyBCSVA5IHNwZWNpZmljYXRpb24gZm9sbG93cwogICAgICAgICAgICBp ZiAoR2V0TWVkaWFuVGltZVBhc3QoYmxvY2sucGFyZW50KSAmZ3Q7PSB0aW1lb3V0KSB7CiAgICAg ICAgICAgICAgICByZXR1cm4gRkFJTEVEOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGludCBj b3VudCA9IDA7CiAgICAgICAgICAgIHdhbGsgPSBibG9jazsKICAgICAgICAgICAgZm9yIChpID0g MDsgaSAmbHQ7IDIwMTY7IGkrKykgewogICAgICAgICAgICAgICAgd2FsayA9IHdhbGsucGFyZW50 OwogICAgICAgICAgICAgICAgaWYgKHdhbGsublZlcnNpb24gJmFtcDsgMHhFMDAwMDAwMCA9PSAw eDIwMDAwMDAwICZhbXA7JmFtcDsgKHdhbGsublZlcnNpb24gJmd0OyZndDsgYml0KSAmYW1wOyAx ID09IDEpIHsKICAgICAgICAgICAgICAgICAgICBjb3VudCsrOwogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjb3VudCAmZ3Q7PSB0aHJlc2hvbGQpIHsKICAg ICAgICAgICAgICAgIHJldHVybiBMT0NLRURfSU47CiAgICAgICAgICAgIH0KICAgICAgICAgICAg cmV0dXJuIFNUQVJURUQ7Cgo9PT0gUmVmZXJlbmNlIGltcGxlbWVudGF0aW9uID09PQoKPGEgaHJl Zj0iaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYml0Y29pbi9jb21wYXJlL21hc3Rlci4uLnNo YW9saW5mcnk6YmlwLXVhdmVyc2lvbmJpdHMtc3Ryb25nIj5odHRwczovL2dpdGh1Yi5jb20vYml0 Y29pbi9iaXRjb2luL2NvbXBhcmUvbWFzdGVyLi4uc2hhb2xpbmZyeTpiaXAtdWF2ZXJzaW9uYml0 cy1zdHJvbmc8L2E+Cgo9PT09IE9wdGlvbmFsIG1hbmRhdG9yeSBzaWduYWxsaW5nID09PT0KCiZs dDtwcmUmZ3Q7Ci8qKgogKiBSZXR1cm4gdHJ1ZSBpZiBuVmVyc2lvbiBCSVA5IGRlcGxveW1lbnQg aXMgc2lnbmFsbGluZyBkdXJpbmcKICogbWFuZGF0b3J5IHBlcmlvZHMuCiAqLwpib29sIElzTWFu ZGF0b3J5U2lnbmFsbGluZyhpbnQzMl90IG5WZXJzaW9uLCBDb25zZW5zdXM6OkRlcGxveW1lbnRQ b3MgcG9zLCBjb25zdCBDQmxvY2tJbmRleCogcGluZGV4UHJldiwgY29uc3QgQ29uc2Vuc3VzOjpQ YXJhbXMmYW1wOyBwYXJhbXMpCnsKICAgIC8vIENoZWNrIHRoZSBkZXBsb3ltZW50IGlzIGluIHRo ZSBjb3JyZWN0IHN0YXRlIGZvciB0aGlzIGNoZWNrIHRvIGFwcGx5LgogICAgaWYgKCEoKFZlcnNp b25CaXRzU3RhdGUocGluZGV4UHJldiwgcGFyYW1zLCBwb3MsIHZlcnNpb25iaXRzY2FjaGUpID09 IFRIUkVTSE9MRF9QUkVfTE9DS19JTikgfHwKICAgICAgICAgIChWZXJzaW9uQml0c1N0YXRlKHBp bmRleFByZXYsIHBhcmFtcywgcG9zLCB2ZXJzaW9uYml0c2NhY2hlKSA9PSBUSFJFU0hPTERfTE9D S0VEX0lOKSkpCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAvLyByZXR1cm4gc2lnbmFsbGluZyBz dGF0ZQogICAgcmV0dXJuICgoKG5WZXJzaW9uICZhbXA7IFZFUlNJT05CSVRTX1RPUF9NQVNLKSA9 PSBWRVJTSU9OQklUU19UT1BfQklUUykgJmFtcDsmYW1wOyAoblZlcnNpb24gJmFtcDsgVmVyc2lv bkJpdHNNYXNrKHBhcmFtcywgcG9zKSkgIT0gMCk7Cn0JCgovLyBzZWd3aXQgc2lnbmFsbGluZyBp cyBtYW5kYXRvcnkgZHVyaW5nIFBSRV9MT0NLX0lOIGFuZCBMT0NLRURfSU4gcGhhc2UKaWYgKCFJ c01hbmRhdG9yeVNpZ25hbGxpbmcoYmxvY2sublZlcnNpb24sIENvbnNlbnN1czo6REVQTE9ZTUVO VF9FWEFNUExFLCBwaW5kZXhQcmV2LCBjb25zZW5zdXNQYXJhbXMpKQogICAgcmV0dXJuIHN0YXRl LkludmFsaWQoZmFsc2UsIFJFSkVDVF9PQlNPTEVURSwgc3RycHJpbnRmKCJiYWQtdmVyc2lvbigw eCUwOHgpIiwgYmxvY2sublZlcnNpb24pLAogICAgICAgICAgICAgICAgICAgICAgICAgc3RycHJp bnRmKCJyZWplY3RlZCBuVmVyc2lvbj0weCUwOHggYmxvY2ssIG11c3QgdXBncmFkZSIsIGJsb2Nr Lm5WZXJzaW9uKSk7CiZsdDsvcHJlJmd0OwoKPT1EZXBsb3ltZW50cz09CgpBIGxpdmluZyBsaXN0 IG9mIGRlcGxveW1lbnQgcHJvcG9zYWxzIGNhbiBiZSBmb3VuZCBbW2JpcC0wMDA5L2Fzc2lnbm1l bnRzLm1lZGlhd2lraXxoZXJlXV0uCgo9PUNvcHlyaWdodD09CgpUaGlzIGRvY3VtZW50IGlzIHBs YWNlZCBpbiB0aGUgcHVibGljIGRvbWFpbi48YnI+PC9wcmU+PGRpdiBzdHlsZT0iY29sb3I6IHJn Yig4NSwgODUsIDg1KTsgZm9udC1mYW1pbHk6IEFyaWFsLCAmcXVvdDtIZWx2ZXRpY2EgTmV1ZSZx dW90OywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGZvbnQtc3R5bGU6 IG5vcm1hbDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fw czogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBv cnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFu c2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5n OiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjog cmdiKDI1NSwgMjU1LCAyNTUpOyI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoODUs IDg1LCA4NSk7IGZvbnQtZmFtaWx5OiBBcmlhbCwgJnF1b3Q7SGVsdmV0aWNhIE5ldWUmcXVvdDss IEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBmb250LXN0eWxlOiBub3Jt YWw7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5v cm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFu czogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3Jt OiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4 OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigy NTUsIDI1NSwgMjU1KTsiPjxicj48L2Rpdj4= --b1_1be8282d0dd025d70957682437be3ffe--