From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH RFC 1/2] scripts: Add script to do the repetitive bits of the release process Date: Fri, 5 Apr 2019 18:13:41 +0100 Message-ID: <20190405171342.10902-1-george.dunlap@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hCSPb-0005jC-OM for xen-devel@lists.xenproject.org; Fri, 05 Apr 2019 17:13:55 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Ian Jackson , George Dunlap List-Id: xen-devel@lists.xenproject.org V2l0aCB0aGlzIHNjcmlwdCwgb25jZSB0aGUgbWFpbiBjaGVja3MgYXJlIG91dCBvZiB0aGUgd2F5 LCBkb2luZyBhCnJlbGVhc2UgKGVpdGhlciBhbiBSQyBvciB0aGUgZmluYWwgcmVsZWFzZSkgc2hv dWxkIG1vc3RseSBiZSBhIG1hdHRlcgpvZiBleGVjdXRpbmcgYSBzZXF1ZW5jZSBvZiA0IGNvbW1h bmRzIGdpdmVuIGJ5IHRoZSBgaGVscGAgZnVuY3Rpb24gaW4KdGhpcyBzY3JpcHQuCgpTaWduZWQt b2ZmLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Ci0tLQpUaGVy ZSdzIG9uZSBoYXJkLWNvZGVkICJkZWZhdWx0IiBwYXRoIGluIGhlcmUgdGhhdCByZWZlcnMgdG8g bXkgb3duCmRpcmVjdG9yeSBzdHJ1Y3R1cmUuICBJZiBJYW4gZmluZHMgdGhlc2Ugc2NyaXB0cyB1 c2VmdWwsIHdlIHNob3VsZApwcm9iYWJseSBtb3ZlIHRoYXQgdG8gYSBjb3B5IG9uIG1haWwueGVu cHJvamVjdC5vcmcgc29tZXdoZXJlIGluc3RlYWQuCgpUaGVyZSBhcmUgYWxzbyBsb3RzIG9mIG9w cG9ydHVuaXRpZXMgZm9yIHRoaXMgc2NyaXB0IHRvIGJlIGltcHJvdmVkLApieSAoZm9yIGluc3Rh bmNlKSBpbXBsZW1lbnRpbmcgcHJvZ3JhbW1hdGljIGNoZWNrcyBmb3IgdGhlIHZhcmlvdXMKY2hl Y2tzIGxpc3RlZCBhcyAnbWFudWFsJyBhdCB0aGUgbW9tZW50LgoKSSBwbGFuIHRvIGltcGxlbWVu dCBjb250YWluZXJpemUtYWJsZSB0ZXN0cyBmb3IgdGhlIGZpcnN0IHRocmVlIHN0ZXBzCih0YWcs IG1ha2UgdGFyYmFsbCwgcHVzaCB0YWcpLCB1c2luZyAiZHVtbXkiIHBhdGhzIGFuZCBncGcga2V5 cy4gIEkndmUKbWFkZSByZXZpc2lvbnMgdG8gdGFyYmFsbC1jdnMtY2hlY2tpbi1hbmQtcG9zdCB3 aGljaCBJIGhhdmVuJ3QgaGFkIHRoZQpvcHBvcnR1bml0eSB0byB0ZXN0IHlldDsgaWRlYXMgZm9y IGhvdyB0byBrZWVwIHRoaXMgImZyZXNoIiBhcmUKd2VsY29tZS4KCkNDOiBJYW4gSmFja3NvbiA8 aWFuLmphY2tzb25AY2l0cml4LmNvbT4KLS0tCiBzY3JpcHRzL3JlbGVhc2UgfCA0NTAgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdl ZCwgNDUwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDc1NSBzY3JpcHRzL3JlbGVhc2UK CmRpZmYgLS1naXQgYS9zY3JpcHRzL3JlbGVhc2UgYi9zY3JpcHRzL3JlbGVhc2UKbmV3IGZpbGUg bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMC4uMDQ0MmNkNGVmOQotLS0gL2Rldi9udWxsCisr KyBiL3NjcmlwdHMvcmVsZWFzZQpAQCAtMCwwICsxLDQ1MCBAQAorIyEvYmluL2Jhc2gKKworIyMj CisjIEdlb3JnZSdzIGJhc2ggbGlicmFyeSBjb3JlCisjIyMKKworIyBhcmctcGFyc2UgZGVidWcK K19hcGQ9ZmFsc2UKKworYXJnX3BhcnNlX2NtZD1cCisibG9jYWwgLWEgYXJnczsKK2xvY2FsIF9h OworbG9jYWwgX3ZuOworbG9jYWwgX207Citsb2NhbCBDTFZMPVwkKChcJENMVkwrMSkpCisKK19t PXRydWU7CisKK2ZvciBfYSBpbiBcIlwkQFwiIDsgZG8KKyAgICAkX2FwZCAmJiBlY2hvIFwiRXZh bHVhdGluZyBcJHtfYX0gW1sgXCJcJHtfYS89fVwiID0gXCJcJHtfYX1cIiBdXVwiOworICAgIGlm IFwkX20gJiYgW1sgXCJcJHtfYS89fVwiICE9IFwiXCR7X2F9XCIgXV0gOyB0aGVuCisgICAgICAg ICRfYXBkICYmIGVjaG8gUGFyYW1ldGVyOworICAgICAgICBfdm49XCR7X2ElJT0qfTsKKyAgICAg ICAgZXZhbCBcImxvY2FsIFwkX3ZuXCI7CisgICAgICAgIGV2YWwgXCJcJF9hXCI7CisgICAgZWxp ZiBcJF9tICYmIFtbIFwiXCR7X2F9XCIgPT0gXCItLVwiIF1dIDsgdGhlbgorICAgICAgICAkX2Fw ZCAmJiBlY2hvIFNlcGFyYXRvcjsKKyAgICAgICAgX209ZmFsc2U7CisgICAgZWxzZQorICAgICAg ICAkX2FwZCAmJiBlY2hvIEFyZ3VtZW50OworICAgICAgICBfbT1mYWxzZTsKKyAgICAgICAgYXJn cys9KFwiXCRfYVwiKTsKKyAgICBmaTsKK2RvbmUiCisKK2FyZ19wYXJzZT0iZXZhbCAkYXJnX3Bh cnNlX2NtZCIKKworIyBQYXNzIGluIGVpdGhlciB0aGUgY3VycmVudCBmdW5jdGlvbiBuYW1lLCBv ciB0aGUgbmFtZSBvZiB0aGUgc2NyaXB0CityZXF1aXJlYXJncz0iZXZhbCBfZnVuYz1cIlwkRlVO Q05BTUVcIiA7IGV2YWwgW1sgLW4gXFxcIlwkX2Z1bmNcXFwiIF1dIHx8IF9mdW5jPVwkMCA7IGV2 YWwgX3JlcXVpcmUtYXJncyBcJF9mdW5jIgorCitmdW5jdGlvbiBfcmVxdWlyZS1hcmdzKCkKK3sK KyAgICBsb2NhbCBfYXJnCisgICAgbG9jYWwgX2FyZ3MKKworICAgIF9hcmdzPSgkQCkKKworICAg IGZvciBfYXJnIGluICR7X2FyZ3NbQF06MX0gOyBkbworCWV2YWwgIltbIC1uIFwiXCR7JF9hcmd9 XCIgXV0gfHwgZmFpbCBcIiR7X2FyZ3NbMF19OiBNaXNzaW5nICRfYXJnXCIiCisgICAgZG9uZQor fQorCitmdW5jdGlvbiBkZWZhdWx0KCkKK3sKKyAgICAjIGwwOiBldmFsIGk9IjUiCisgICAgIyBs MTogZGVmYXVsdF9wb3N0PSJldmFsICQxPVwiJDJcIiIKKyAgICAjIGwzOiBldmFsICJpZiBbWyAt eiBcIlwkJDFcIiBdXSA7IHRoZW4gZGVmYXVsdF9wb3N0PVwiZXZhbCBcJDE9XFxcIiQyXFxcIlwi IDsgZmkiCisgICAgZXZhbCAiaWYgW1sgLXogXCJcJCQxXCIgXV0gOyB0aGVuIGRlZmF1bHRfcG9z dD1cImV2YWwgbG9jYWwgXCQxPVxcXCIkMlxcXCJcIiA7IGVsc2UgdW5zZXQgZGVmYXVsdF9wb3N0 IDsgZmkiCit9CisKK2Z1bmN0aW9uIGZhaWwoKQoreworICAgZWNobyBGQVRBTCAkQAorICAgW1sg LW4gIiRmYWlsX2NsZWFudXAiIF1dICYmICRmYWlsX2NsZWFudXAKKyAgIGV4aXQgMQorfQorCitm dW5jdGlvbiBpbmZvKCkKK3sKKyAgIGVjaG8gSU5GTyAkQ0xWTCAkQCAxPiYyCit9CisKK2Z1bmN0 aW9uIGVycm9yKCkKK3sKKyAgIGVjaG8gRVJST1IgJEAgMT4mMgorfQorCitmdW5jdGlvbiBzdGF0 dXMoKQoreworICAgZWNobyBTVEFUVVMgJENMVkwgJEAgMT4mMgorICAgcmV0dXJuIDAKK30KKwor ZnVuY3Rpb24gcmVwb3J0LXJlc3VsdCgpCit7CisgICAgaWYgW1sgLW4gIiR2YXIiIF1dIDsgdGhl bgorCWV2YWwgIiR7dmFyfT1cIiQxXCIiCisgICAgZWxzZQorCWlmIFtbIC1uICIkMSIgXV0gOyB0 aGVuCisJICAgIGVjaG8gIiQxIgorCWVsc2UKKwkgICAgZWNobyAiKGVtcHR5KSIKKwlmaQorICAg IGZpCit9CisKK2Z1bmN0aW9uIGNtZGxpbmUoKQoreworICAgIGxvY2FsIGNtZDsKKworICAgIGlm IFtbICIkIyIgLWVxICIwIiBdXSA7IHRoZW4KKwloZWxwCisJZXhpdCAxCisgICAgZmkKKworICAg ICRhcmdfcGFyc2UKKyAgICBpbmZvIFJ1bm5pbmcgIiR7YXJnc1swXX0iCisgICAgIiR7YXJnc1sw XX0iICIke2FyZ3NbQF06MX0iIHx8IGV4aXQgMQorCisgICAgaWYgISBbWyAteiAiJFJFVCIgXV0g OyB0aGVuCisJZWNobyAkUkVUCisgICAgZmkKK30KKworIyMjCisjIHJlbGVhc2Utc3BlY2lmaWMg Y29kZQorIyMjCisKKyMgR2xvYmFsIC8gbWV0YSB2YXJpYWJsZXM6CisjCisjIHRkaXI6ICJyb290 IiBkaXJlY3RvcnkgdG8gZG8gdGFyYmFsbCB3b3JrLgorIyByZGlyOiBEaXJlY3Rvcnkgd2hlcmUg dGFyYmFsbCAmIHNpZyB3aWxsIGJlIHB1dCAoPT0kdGRpci8kdikKKyMgcnRnejogQmFzZSBmaWxl bmFtZSBmb3IgdGFyYmFsbCAoJHJkaXIveGVuLSR2LnRhci5neikKKyMKKyMgdjogRnVsbCByZWxl YXNlIHZlcnNpb24gKGUuZy4sIDQuMTIuMC1yYzUsIDQuMTAuMykKKyMgeDogTWFqb3IrbWlub3Ig eGVuIHJlbGVhc2UgdmVyc2lvbiAoZS5nLiwgNC4xMiwgNC4xMCkKKyMgcDogcG9pbnQgcmVsZWFz ZSAoZS5nLiwgMCBpbiA0LjEyLjA7IDMgaW4gNC4xMC4zKQorIyAjcjogTnVtYmVycy1vbmx5IHJl bGVhc2UgKGUuZy4sIDQuMTIuMCwgNC4xMC4zKSAjIFBST0JBQkxZIE5PVCBORUVERUQKKyMgcmM6 IC1yY04KKyMKKyMgczogYnJhbmNoIG5hbWUgKGUuZy4sIG1hc3Rlciwgc3RhYmxlLTQuMTIsIHN0 YWJsZS00LjEwKQorIyB0OiBUYWcgZnJvbSBhIGdpdmVuIHJlbGVhc2UgKGUuZywuIDQuMTIuMC1y YzUsIFJFTEVBU0UtNC4xMC4zKQorIyBpc3JjOiBCb29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0 aGUgdmVyc2lvbiBpcyBhbiByYyAoZS5nLiwgdHJ1ZSBmb3IgNC4xMi4wLXJjNSwgZmFsc2UgZm9y IDQuMTAuMykKKworCisKK2Z1bmN0aW9uIHhlbi1tYWtlLXByZWZpeC1jb25maWcoKSB7CisgICAg JGFyZ19wYXJzZQorCisgICAgIyBUT0RPOiBQaW5nIGRyYWxsLnVrLnhlbnNvdXJjZS5jb20gdG8g c2VlIGlmIHdlIGNhbiByZWFjaCBpdD8KKyAgICAKKyAgICBkZWZhdWx0IGNhY2hlX3ByZWZpeCAi Z2l0Oi8vZHJhbGwudWsueGVuc291cmNlLmNvbTo5NDE5LyIgOyAkZGVmYXVsdF9wb3N0CisKKyAg ICBwZXJsIC1uZSAiaWYoL14oW0EtWl9dK19VUkwpIFw/PSAoZ2l0LiopLykgeyBwcmludCBcIlwk MSA/PSAke2NhY2hlX3ByZWZpeH1cJDJcblwiOyB9IiBDb25maWcubWsgPj4gLmNvbmZpZyB8fCBm YWlsICJHZW5lcmF0aW5nIC5jb25maWciCisgICAgY2F0IC5jb25maWcKK30KKworZnVuY3Rpb24g c2V0LXRkaXIoKSB7CisgICAgaWYgW1sgLXogIiR0ZGlyIiB8fCAhIC1lICIkdGRpciIgXV0gOyB0 aGVuCisJaW5mbyAiJHRkaXIgZG9lc24ndCBleGlzdCwgdXNpbmcgL3RtcCIKKwl0ZGlyPSIvdG1w IgorICAgIGZpCit9CisKKyMgVGFrZSBgdmAgYW5kIGdlbmVyYXRlIHRoZSBhcHByb3ByaWF0ZSBt ZXRhdmFyaWFibGVzIHZhcmlhYmxlcy4KK2Z1bmN0aW9uIHBhcnNlLXZlcnNpb24oKSB7CisgICAg JGFyZ19wYXJzZQorCisgICAgJHJlcXVpcmVhcmdzIHYKKworICAgIGlmIFtbIC1uICIkeCIgJiYg LW4gIiRwIiBdXSA7IHRoZW4KKwllY2hvICJWZXJzaW9uIGFscmVhZHkgcGFyc2VkIgorCXJldHVy bgorICAgIGZpCisKKyAgICBpZiBbWyAkdiA9fiAoWzAtOV0rXC5bMC05XSspXC4oWzAtOV0pKC1y Y1swLTldKSBdXSA7IHRoZW4KKwl4PSR7QkFTSF9SRU1BVENIWzFdfQorCXA9JHtCQVNIX1JFTUFU Q0hbMl19CisJcmM9JHtCQVNIX1JFTUFUQ0hbM119CisJaXNyYz10cnVlCisgICAgZWxpZiBbWyAk diA9fiAoWzAtOV0rXC5bMC05XSspXC4oWzAtOV0pIF1dIDsgdGhlbgorCXg9JHtCQVNIX1JFTUFU Q0hbMV19CisJcD0ke0JBU0hfUkVNQVRDSFsyXX0KKwlpc3JjPWZhbHNlCisgICAgZWxzZQorCWZh aWwgIkJhZCB2ZXJzaW9uIgorICAgIGZpCisKKyAgICBpZiAkaXNyYyA7IHRoZW4KKwl0PSR2Cisg ICAgZWxzZQorCXQ9UkVMRUFTRS0kdgorICAgIGZpCit9CisKK2Z1bmN0aW9uIGNoZWNrKCkgewor ICAgICMgVE9ETzogQXV0b21hdGUgc29tZSBvZiB0aGVzZQorICAgIGluZm8gIlBsZWFzZSBwZXJm b3JtIG1hbnVhbGx5OiBBbGwgWFNBcyAgaGF2ZSBiZWVuIGFwcGxpZWQiCisgICAgaW5mbyAiUGxl YXNlIHBlcmZvcm0gbWFudWFsbHk6IENoZWNrIGh0dHA6Ly9sb2dzLnRlc3QtbGFiLnhlbnByb2pl Y3Qub3JnL29zc3Rlc3QvcmVzdWx0cy9hbGwtYnJhbmNoLXN0YXR1c2VzLnR4dCIKKyAgICBpbmZv ICJQbGVhc2UgcGVyZm9ybSBtYW51YWxseTogQ2hlY2sgdmVyc2lvbiBpbiBSRUFETUUiCisgICAg aW5mbyAiUGxlYXNlIHBlcmZvcm0gbWFudWFsbHk6IENoZWNrIHZlcnNpb24gaW4gU1VQUE9SVC5t ZCIKKyAgICBpbmZvICJQbGVhc2UgcGVyZm9ybSBtYW51YWxseTogVGFncyBmb3IgYXBwcm9wcmlh dGUgKl9SRVZJU0lPTidzIGluIENvbmZpZy5tayIKKyAgICBpbmZvICJQbGVhc2UgcGVyZm9ybSBt YW51YWxseTogeGVuL01ha2VmaWxlOlhFTl9FWFRSQVZFUlNJT04gc2V0IHRvIDAiCisgICAgaW5m byAiUGxlYXNlIHBlcmZvcm0gbWFudWFsbHk6IHRvb2xzL1J1bGVzLm1rOiBkZWJ1ZyA/PSBuIgor ICAgIGluZm8gIlBsZWFzZSBwZXJmb3JtIG1hbnVhbGx5OiB4ZW4vS2NvbmZpZy5kZWJ1Zzpjb25m aWcgREVCVUcgc2hvdWxkIGRlZmF1bHQgdG8gYG5gIgorfQorCisjIFVzYWdlOgorIyAgIHRhZyB2 PVt2ZXJzaW9uIHlvdSB3YW50IHRvIHJlbGVhc2VdIFtjPWNvbW1pdGhhc2hdCisjIGVnLgorIyAg IHRhZyB2PTQuMTIuMC1yYzYKKyMgT3RoZXIgYXJndW1lbnRzOgorIyAga2V5OiAgTmFtZSBvZiBr ZXkgdG8gc2lnbiB0aGUgY29tbWl0IHdpdGgKKyMgIHRkaXI6IE5hbWUgb2YgdG9wLWxldmVsIHRh cmJhbGwgZGlyZWN0b3J5CitmdW5jdGlvbiB0YWcoKSB7CisgICAgJGFyZ19wYXJzZQorCisgICAg ZGVmYXVsdCBrZXkgIjIzRTMyMjJDMTQ1RjQ0NzVGQTgwNjBBNzgzRkUxNEM5NTdFODJCRDkiOyAk ZGVmYXVsdF9wb3N0CisKKyAgICAkcmVxdWlyZWFyZ3MgdgorCisgICAgc2V0LXRkaXIKKworICAg ICRyZXF1aXJlYXJncyB0ZGlyCisKKyAgICBwYXJzZS12ZXJzaW9uCisKKyAgICAkcmVxdWlyZWFy Z3MgdAorCisgICAgZ2l0IGZldGNoIG9yaWdpbgorCisgICAgaWYgW1sgLW4gIiRjIiBdXSA7IHRo ZW4KKwlpbmZvICJDaGVja2luZyBvdXQgY29tbWl0ICRjIgorCWdpdCBjaGVja291dCAkYyB8fCBm YWlsCisgICAgZWxzZQorCWxvY2FsIHEKKwlnaXQgY2hlY2tvdXQgc3RhYmxlLSR4IHx8IGZhaWwg IkNvdWxkbid0IGNoZWNrIG91dCBzdGFibGUgYnJhbmNoIgorCWdpdCBtZXJnZSB8fCBmYWlsICJN ZXJnZSIKKwlnaXQgbG9nIC1uIDEwCisJcmVhZCAtcCAiRW50ZXIgdG8gY29udGludWUsIGFueXRo aW5nIGVsc2UgdG8gcXVpdDogIiBxCisJW1sgLXogIiRxIiBdXSB8fCByZXR1cm4KKyAgICBmaQor CisgICAgIyBGSVhNRTogQWRkIGNoZWNrczoKKyAgICAjIC0gTWFrZSBzdXJlIENvbmZpZy5tayBo YXMgdGFncywgbm90IGhhc2hlcworICAgICMgLSBzb25hbWVzPworICAgICMgLSBBcHByb3ByaWF0 ZSB2ZXJzaW9uIG51bWJlcnMgaW4gU1VQUE9SVC5tZCwgeGVuL01ha2VmaWxlLCAmYworCisgICAg ZWNobyBnaXQgdGFnIC11ICIka2V5IiAtcyAtbSAiWGVuICR2IiAkdCA7IHNsZWVwIDEKKyAgICBn aXQgdGFnIC11ICIka2V5IiAtcyAtbSAiWGVuICR2IiAkdCB8fCBmYWlsICJDcmVhdGluZyBzaWdu ZWQgdGFnIgorCisgICAgaW5mbyAiUmVsZWFzZSB0YWdnZWQuICBOb3cgcnVuIHJlbGVhc2UgbWFr ZS10YXJiYWxsIHY9JHYiCit9CisKK2Z1bmN0aW9uIHB1c2gtdGFnKCkgeworICAgICRhcmdfcGFy c2UKKworICAgICRyZXF1aXJlYXJncyB2CisKKyAgICBwYXJzZS12ZXJzaW9uCisKKyAgICBnaXQg cHVzaCBvcmlnaW4gJHQgfHwgZmFpbCAiUHVzaGluZyB0YWciCisgICAgIyBGSVhNRTogVGhpcyBp cyBpbiB0aGUgcmVsZWFzZSBjaGVja2xpc3QsIGJ1dCBJJ20gbm90IHN1cmUgd2h5CisgICAgIyBn aXQgcHVzaCBvcmlnaW4gc3RhZ2luZy0keCB8fCBmYWlsICJQdXNoaW5nIHRhZyBjb21taXQiCisK KyAgICBpbmZvICJUYWcgcHVzaGVkLiAgTm93IHJ1biByZWxlYXNlIHRhcmJhbGwtY3ZzLWNoZWNr aW4tYW5kLXBvc3Qgdj0kdiIKK30KKworZnVuY3Rpb24gbWFrZS10YXJiYWxsLW9ubHkoKQorewor ICAgICRhcmdfcGFyc2UKKworICAgICRyZXF1aXJlYXJncyB2IHRkaXIKKworICAgIHBhcnNlLXZl cnNpb24KKworICAgIGdpdCBmZXRjaCB8fCBmYWlsICJnaXQgZmV0Y2giCisgICAgCisgICAgZ2l0 IGNoZWNrb3V0ICR0IHx8IGZhaWwgIkNoZWNraW5nIG91dCB0YWcgJHQiCisKKyAgICBnaXQgY2xl YW4gLWZmZHgKKworICAgIHhlbi1tYWtlLXByZWZpeC1jb25maWcKKworICAgIC4vY29uZmlndXJl IHx8IGZhaWwgIkNvbmZpZ3VyaW5nIgorICAgIAorICAgIGlmICRpc3JjIDsgdGhlbgorCW1ha2Ug c3JjLXRhcmJhbGwgfHwgZmFpbCAiTWFraW5nIHNyYy10YXJiYWxsIgorICAgIGVsc2UKKwltYWtl IHNyYy10YXJiYWxsLXJlbGVhc2UgfHwgZmFpbCAiTWFraW5nIHNyYy10YXJiYWxsIgorICAgIGZp CisKKyAgICBybSAtcmYgJHRkaXIvJHYKKworICAgIG1rZGlyIC1wICR0ZGlyLyR2IHx8IGZhaWwg IkNvdWxkbid0IG1ha2UgdGFyZ2V0IGRpcmVjdG9yeSIKKworICAgIGNwIGRpc3QveGVuLSR2LnRh ci5neiAkdGRpci8kdiB8fCBmYWlsICJDb3VsZG4ndCBjb3B5IHRhcmJhbGwiCit9CisKK2Z1bmN0 aW9uIGJ1aWxkdGVzdC10YXJiYWxsKCkgeworICAgICRhcmdfcGFyc2UKKworICAgIGRlZmF1bHQg YmRpciAiL3RtcCIgOyAkZGVmYXVsdF9wb3N0CisKKyAgICAkcmVxdWlyZWFyZ3MgdGRpciB2Cisg ICAgCisgICAgY2QgJGJkaXIgfHwgZmFpbCAiY2QgJGJkaXIiCisKKyAgICBybSAtcmYgYnVpbGQt JHYKKyAgICBta2RpciBidWlsZC0kdiB8fCBmYWlsICJta2RpciIKKworICAgIGNkIGJ1aWxkLSR2 CisKKyAgICB0YXIgeGZ6ICR0ZGlyLyR2L3hlbi0kdi50YXIuZ3ogfHwgZmFpbCAiVW50YXIiCisK KyAgICBjZCB4ZW4tJHYgfHwgZmFpbCAiY2QiCisKKyAgICB4ZW4tbWFrZS1wcmVmaXgtY29uZmln CisgICAgaW5mbyAiVGVzdGluZyBidWlsZCAodGFpbCAtZiAkYmRpci9idWlsZC0kdi9sb2cuJHYp Li4uIgorICAgICguL2NvbmZpZ3VyZSAmJiBtYWtlIC1qNCAmJiB0b3VjaCAkdGRpci8kdi9idWls ZC10ZXN0ZWQgJiYgZWNobyBPSykgMj4mMSA+IC4uL2xvZy4kdgorCisgICAgW1sgLWUgJHRkaXIv JHYvYnVpbGQtdGVzdGVkIF1dIHx8IGZhaWwgIkJ1aWxkIGZhaWxlZDsgbG9nIGF0ICRiZGlyL2J1 aWxkLSR2L2xvZy4kdiIKK30KKworZnVuY3Rpb24gc2lnbi10YXJiYWxsKCkgeworICAgICRhcmdf cGFyc2UKKworICAgICRyZXF1aXJlYXJncyB2CisKKyAgICBpZiBbWyAteiAiJHJ0Z3oiIF1dIDsg dGhlbgorCXNldC10ZGlyCisJcnRnej0kdGRpci8kdi94ZW4tJHYudGFyLmd6CisgICAgZmkKKwor ICAgIGRlZmF1bHQga2V5ICIyM0UzMjIyQzE0NUY0NDc1RkE4MDYwQTc4M0ZFMTRDOTU3RTgyQkQ5 IiA7ICRkZWZhdWx0X3Bvc3QKKworICAgIGlmICEgZ3BnIC0tbGlzdC1zZWNyZXQta2V5cyB8IGdy ZXAgJGtleSA7IHRoZW4KKwlpbmZvICJTaWduYXR1cmUgcmVxdWlyZWQ7IHBsZWFzZSBydW4gdGhl IGZvbGxvd2luZyBjb21tYW5kIHdpdGggdGhlIHB1YmxpYyBrZXkgYXZhaWxhYmxlIgorCWluZm8g IiBncGcgLS1kZXRhY2gtc2lnbiAtdSAneGVuIHRyZWUnICRydGd6IgorCWV4aXQgMAorICAgIGZp CisKKyAgICBncGcgLS1kZXRhY2gtc2lnbiAtdSAka2V5ICRydGd6IHx8IGZhaWwgIlNpZ25pbmcg JHJ0Z3oiCit9CisKK2Z1bmN0aW9uIHRhcmJhbGwtY2hlY2tzaWcoKSB7CisgICAgZ3BnIC0tdmVy aWZ5ICRydGd6LnNpZyB8fCBmYWlsICJTaWduYXR1cmUgZmFpbGVkIgorfQorCitmdW5jdGlvbiBt YWtlLXRhcmJhbGwoKSB7CisgICAgbG9jYWwgcmRpcgorICAgIGxvY2FsIHJ0Z3oKKyAgICAKKyAg ICAkYXJnX3BhcnNlCisKKyAgICAkcmVxdWlyZWFyZ3MgdgorCisgICAgc2V0LXRkaXIKKworICAg ICRyZXF1aXJlYXJncyB0ZGlyCisKKyAgICBwYXJzZS12ZXJzaW9uCisgICAgCisgICAgaW5mbyAi VXNpbmcgdGFnICR0IgorCisgICAgcmRpcj0kdGRpci8kdgorCisgICAgcnRnej0kcmRpci94ZW4t JHYudGFyLmd6CisKKyAgICBpZiBbWyAhIC1lICRydGd6IF1dIDsgdGhlbgorCWluZm8gIiRydGd6 IG5vdCBwcmVzZW50LCBnZW5lcmF0aW5nIgorCW1ha2UtdGFyYmFsbC1vbmx5CisgICAgZmkKKwor ICAgIGluZm8gIlRhcmJhbGwgY3JlYXRlZCIKKworICAgIGlmIFtbICEgLWUgJHJkaXIvYnVpbGQt dGVzdGVkIF1dIDsgdGhlbgorCWJ1aWxkdGVzdC10YXJiYWxsCisgICAgZmkKKworICAgIGluZm8g IkJ1aWxkIHRlc3RlZCIKKworICAgIGlmIFtbICEgLWUgJHJ0Z3ouc2lnIF1dIDsgdGhlbgorCXNp Z24tdGFyYmFsbAorICAgIGVsc2UKKwl0YXJiYWxsLWNoZWNrc2lnCisgICAgZmkKKworICAgIGlu Zm8gIlRhcmJhbGwgbWFkZSwgc2lnbmVkLCBhbmQgYnVpbGQtdGVzdGVkLiAgTm93IHJ1biByZWxl YXNlIHB1c2gtdGFnIHY9JHYiCit9CisKK2Z1bmN0aW9uIHRhcmJhbGwtY3ZzLWNoZWNraW4tYW5k LXBvc3QoKSB7CisgICAgJGFyZ19wYXJzZQorCisgICAgJHJlcXVpcmVhcmdzIHYKKworICAgICMg VE9ETzogVGhpcyB0cmVlIHByb2JhYmx5IHdhbnRzIHRvIGJlIHB1dCBzb21ld2hlcmUgb24KKyAg ICAjIG1haWwueGVucHJvamVjdC5vcmcKKyAgICAKKyAgICBkZWZhdWx0IGN2c2RpciAiL2J1aWxk L2hnL3B1c2gveGVuLm9yZy8iIDsgJGRlZmF1bHRfcG9zdAorCisgICAgaWYgW1sgISAtZSAkY3Zz ZGlyIF1dIDsgdGhlbgorCWZhaWwgIiRjdnNkaXIgZG9lcyBub3QgZXhpc3QiCisgICAgZmkKKwor ICAgIGlmIFtbIC16ICIkcnRneiIgXV0gOyB0aGVuCisJc2V0LXRkaXIKKwlydGd6PSR0ZGlyLyR2 L3hlbi0kdi50YXIuZ3oKKyAgICBmaQorCisgICAgY2QgJGN2c2RpciB8fCBmYWlsICJjZCIKKwor ICAgIG1rZGlyIC1wIG9zcy14ZW4vcmVsZWFzZS8kdiB8fCBmYWlsICJDcmVhdGluZyBkaXJlY3Rv cnkgaW4gQ1ZTIgorCisgICAgY3ZzIGFkZCAta2Igb3NzLXhlbi9yZWxlYXNlLyR2LyB8fCBmYWls ICJjdnMgYWRkIHJlbGVhc2UgZGlyZWN0b3J5IgorCisgICAgY2Qgb3NzLXhlbi9yZWxlYXNlLyR2 IHx8IGZhaWwgImNkIgorCisgICAgY3AgJHRkaXIvJHYveGVuLSR2LnRhci5neiAuIHx8IGZhaWwg IkNvcHlpbmcgdGFyYmFsbCIKKyAgICBjcCAkdGRpci8kdi94ZW4tJHYudGFyLmd6LnNpZyAuIHx8 IGZhaWwgIkNvcHlpbmcgc2lnIgorICAgIAorICAgIGN2cyBhZGQgLWtiIHhlbi0kdi50YXIuZ3og fHwgZmFpbCAiY3ZzIGFkZCB0YXJiYWxsIgorICAgIGN2cyBhZGQgLWtiIHhlbi0kdi50YXIuZ3ou c2lnIHx8IGZhaWwgImN2cyBhZGQgc2lnIgorICAgIAorICAgIGNkIC4uLy4uLy4uCisKKyAgICBj dnMgY2kgLW0gJHYgfHwgZmFpbCAiY3ZzIGNoZWNraW4iCisKKyAgICBzc2ggbWFpbC54ZW5wcm9q ZWN0Lm9yZyAiY2QgL2RhdGEvZG93bmxvYWRzLnhlbnByb2plY3Qub3JnL3hlbi5vcmcgJiYgY3Zz IC1xIHVwIC1kIiB8fCBmYWlsICJEZXBsb3lpbmcgdGFyYmFsbCIKKworICAgIGluZm8gIlRhcmJh bGwgVXBsb2FkZWQuICBYZW4gdmVyc2lvbiAkdiByZWxlYXNlZC4iCit9CisKK2Z1bmN0aW9uIGhl bHAoKSB7CisgICAgY2F0IDw8RU9GCitHZW5lcmFsIHdvcmtmbG93OgorCisqIERvIGEgbnVtYmVy IG9mIHByZS1yZWxlYXNlIHNhbml0eSBjaGVja3MKKyAgcmVsZWFzZSBjaGVjayB2PTQuMTIuMC1y YzUKKworKiBUYWcgYW5kIHNpZ24gYSBYZW4gY29tbWl0CisgIHJlbGVhc2UgdGFnIHY9NC4xMi4w LXJjNQorICAgb3IKKyAgcmVsZWFzZSB0YWcgdj00LjEyLjAtcmM1IGM9MDdjMTgxYworCisqIENy ZWF0ZSwgdGVzdCwgYW5kIHNpZ24gYSByZWxlYXNlIHRhcmJhbGwKKyAgcmVsZWFzZSBtYWtlLXRh cmJhbGwgdj00LjEyLjAtcmM1CisKKyogUHVzaCB0YWdzCisgIHJlbGVhc2UgcHVzaC10YWcgdj00 LjEyLjAtcmM1CisKKyogUHVibGlzaCB0YXJiYWxsCisgIHJlbGVhc2UgdGFyYmFsbC1jdnMtY2hl Y2tpbi1hbmQtcG9zdCB2PTQuMTIuMC1yYzUKK0VPRgorfQorCisjIyMKKyMgVGhlIGFjdHVhbCBj b21tYW5kLWxpbmUKKyMjIworY21kbGluZSAiJEAiCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A7687C282CE for ; Fri, 5 Apr 2019 17:14:27 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 74DD821738 for ; Fri, 5 Apr 2019 17:14:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 74DD821738 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hCSPd-0005jJ-0K; Fri, 05 Apr 2019 17:13:57 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hCSPb-0005jC-OM for xen-devel@lists.xenproject.org; Fri, 05 Apr 2019 17:13:55 +0000 X-Inumbo-ID: 2fc8dac4-57c6-11e9-8912-b7acbfcfa4da Received: from SMTP03.CITRIX.COM (unknown [162.221.156.55]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 2fc8dac4-57c6-11e9-8912-b7acbfcfa4da; Fri, 05 Apr 2019 17:13:52 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.60,313,1549929600"; d="scan'208";a="82877097" From: George Dunlap To: Date: Fri, 5 Apr 2019 18:13:41 +0100 Message-ID: <20190405171342.10902-1-george.dunlap@citrix.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [Xen-devel] [PATCH RFC 1/2] scripts: Add script to do the repetitive bits of the release process X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Ian Jackson , George Dunlap Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190405171341.FFk167JOLZfHLZVAig0vEOQZlLRxIekwbVPzmpEpyD8@z> V2l0aCB0aGlzIHNjcmlwdCwgb25jZSB0aGUgbWFpbiBjaGVja3MgYXJlIG91dCBvZiB0aGUgd2F5 LCBkb2luZyBhCnJlbGVhc2UgKGVpdGhlciBhbiBSQyBvciB0aGUgZmluYWwgcmVsZWFzZSkgc2hv dWxkIG1vc3RseSBiZSBhIG1hdHRlcgpvZiBleGVjdXRpbmcgYSBzZXF1ZW5jZSBvZiA0IGNvbW1h bmRzIGdpdmVuIGJ5IHRoZSBgaGVscGAgZnVuY3Rpb24gaW4KdGhpcyBzY3JpcHQuCgpTaWduZWQt b2ZmLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Ci0tLQpUaGVy ZSdzIG9uZSBoYXJkLWNvZGVkICJkZWZhdWx0IiBwYXRoIGluIGhlcmUgdGhhdCByZWZlcnMgdG8g bXkgb3duCmRpcmVjdG9yeSBzdHJ1Y3R1cmUuICBJZiBJYW4gZmluZHMgdGhlc2Ugc2NyaXB0cyB1 c2VmdWwsIHdlIHNob3VsZApwcm9iYWJseSBtb3ZlIHRoYXQgdG8gYSBjb3B5IG9uIG1haWwueGVu cHJvamVjdC5vcmcgc29tZXdoZXJlIGluc3RlYWQuCgpUaGVyZSBhcmUgYWxzbyBsb3RzIG9mIG9w cG9ydHVuaXRpZXMgZm9yIHRoaXMgc2NyaXB0IHRvIGJlIGltcHJvdmVkLApieSAoZm9yIGluc3Rh bmNlKSBpbXBsZW1lbnRpbmcgcHJvZ3JhbW1hdGljIGNoZWNrcyBmb3IgdGhlIHZhcmlvdXMKY2hl Y2tzIGxpc3RlZCBhcyAnbWFudWFsJyBhdCB0aGUgbW9tZW50LgoKSSBwbGFuIHRvIGltcGxlbWVu dCBjb250YWluZXJpemUtYWJsZSB0ZXN0cyBmb3IgdGhlIGZpcnN0IHRocmVlIHN0ZXBzCih0YWcs IG1ha2UgdGFyYmFsbCwgcHVzaCB0YWcpLCB1c2luZyAiZHVtbXkiIHBhdGhzIGFuZCBncGcga2V5 cy4gIEkndmUKbWFkZSByZXZpc2lvbnMgdG8gdGFyYmFsbC1jdnMtY2hlY2tpbi1hbmQtcG9zdCB3 aGljaCBJIGhhdmVuJ3QgaGFkIHRoZQpvcHBvcnR1bml0eSB0byB0ZXN0IHlldDsgaWRlYXMgZm9y IGhvdyB0byBrZWVwIHRoaXMgImZyZXNoIiBhcmUKd2VsY29tZS4KCkNDOiBJYW4gSmFja3NvbiA8 aWFuLmphY2tzb25AY2l0cml4LmNvbT4KLS0tCiBzY3JpcHRzL3JlbGVhc2UgfCA0NTAgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdl ZCwgNDUwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDc1NSBzY3JpcHRzL3JlbGVhc2UK CmRpZmYgLS1naXQgYS9zY3JpcHRzL3JlbGVhc2UgYi9zY3JpcHRzL3JlbGVhc2UKbmV3IGZpbGUg bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMC4uMDQ0MmNkNGVmOQotLS0gL2Rldi9udWxsCisr KyBiL3NjcmlwdHMvcmVsZWFzZQpAQCAtMCwwICsxLDQ1MCBAQAorIyEvYmluL2Jhc2gKKworIyMj CisjIEdlb3JnZSdzIGJhc2ggbGlicmFyeSBjb3JlCisjIyMKKworIyBhcmctcGFyc2UgZGVidWcK K19hcGQ9ZmFsc2UKKworYXJnX3BhcnNlX2NtZD1cCisibG9jYWwgLWEgYXJnczsKK2xvY2FsIF9h OworbG9jYWwgX3ZuOworbG9jYWwgX207Citsb2NhbCBDTFZMPVwkKChcJENMVkwrMSkpCisKK19t PXRydWU7CisKK2ZvciBfYSBpbiBcIlwkQFwiIDsgZG8KKyAgICAkX2FwZCAmJiBlY2hvIFwiRXZh bHVhdGluZyBcJHtfYX0gW1sgXCJcJHtfYS89fVwiID0gXCJcJHtfYX1cIiBdXVwiOworICAgIGlm IFwkX20gJiYgW1sgXCJcJHtfYS89fVwiICE9IFwiXCR7X2F9XCIgXV0gOyB0aGVuCisgICAgICAg ICRfYXBkICYmIGVjaG8gUGFyYW1ldGVyOworICAgICAgICBfdm49XCR7X2ElJT0qfTsKKyAgICAg ICAgZXZhbCBcImxvY2FsIFwkX3ZuXCI7CisgICAgICAgIGV2YWwgXCJcJF9hXCI7CisgICAgZWxp ZiBcJF9tICYmIFtbIFwiXCR7X2F9XCIgPT0gXCItLVwiIF1dIDsgdGhlbgorICAgICAgICAkX2Fw ZCAmJiBlY2hvIFNlcGFyYXRvcjsKKyAgICAgICAgX209ZmFsc2U7CisgICAgZWxzZQorICAgICAg ICAkX2FwZCAmJiBlY2hvIEFyZ3VtZW50OworICAgICAgICBfbT1mYWxzZTsKKyAgICAgICAgYXJn cys9KFwiXCRfYVwiKTsKKyAgICBmaTsKK2RvbmUiCisKK2FyZ19wYXJzZT0iZXZhbCAkYXJnX3Bh cnNlX2NtZCIKKworIyBQYXNzIGluIGVpdGhlciB0aGUgY3VycmVudCBmdW5jdGlvbiBuYW1lLCBv ciB0aGUgbmFtZSBvZiB0aGUgc2NyaXB0CityZXF1aXJlYXJncz0iZXZhbCBfZnVuYz1cIlwkRlVO Q05BTUVcIiA7IGV2YWwgW1sgLW4gXFxcIlwkX2Z1bmNcXFwiIF1dIHx8IF9mdW5jPVwkMCA7IGV2 YWwgX3JlcXVpcmUtYXJncyBcJF9mdW5jIgorCitmdW5jdGlvbiBfcmVxdWlyZS1hcmdzKCkKK3sK KyAgICBsb2NhbCBfYXJnCisgICAgbG9jYWwgX2FyZ3MKKworICAgIF9hcmdzPSgkQCkKKworICAg IGZvciBfYXJnIGluICR7X2FyZ3NbQF06MX0gOyBkbworCWV2YWwgIltbIC1uIFwiXCR7JF9hcmd9 XCIgXV0gfHwgZmFpbCBcIiR7X2FyZ3NbMF19OiBNaXNzaW5nICRfYXJnXCIiCisgICAgZG9uZQor fQorCitmdW5jdGlvbiBkZWZhdWx0KCkKK3sKKyAgICAjIGwwOiBldmFsIGk9IjUiCisgICAgIyBs MTogZGVmYXVsdF9wb3N0PSJldmFsICQxPVwiJDJcIiIKKyAgICAjIGwzOiBldmFsICJpZiBbWyAt eiBcIlwkJDFcIiBdXSA7IHRoZW4gZGVmYXVsdF9wb3N0PVwiZXZhbCBcJDE9XFxcIiQyXFxcIlwi IDsgZmkiCisgICAgZXZhbCAiaWYgW1sgLXogXCJcJCQxXCIgXV0gOyB0aGVuIGRlZmF1bHRfcG9z dD1cImV2YWwgbG9jYWwgXCQxPVxcXCIkMlxcXCJcIiA7IGVsc2UgdW5zZXQgZGVmYXVsdF9wb3N0 IDsgZmkiCit9CisKK2Z1bmN0aW9uIGZhaWwoKQoreworICAgZWNobyBGQVRBTCAkQAorICAgW1sg LW4gIiRmYWlsX2NsZWFudXAiIF1dICYmICRmYWlsX2NsZWFudXAKKyAgIGV4aXQgMQorfQorCitm dW5jdGlvbiBpbmZvKCkKK3sKKyAgIGVjaG8gSU5GTyAkQ0xWTCAkQCAxPiYyCit9CisKK2Z1bmN0 aW9uIGVycm9yKCkKK3sKKyAgIGVjaG8gRVJST1IgJEAgMT4mMgorfQorCitmdW5jdGlvbiBzdGF0 dXMoKQoreworICAgZWNobyBTVEFUVVMgJENMVkwgJEAgMT4mMgorICAgcmV0dXJuIDAKK30KKwor ZnVuY3Rpb24gcmVwb3J0LXJlc3VsdCgpCit7CisgICAgaWYgW1sgLW4gIiR2YXIiIF1dIDsgdGhl bgorCWV2YWwgIiR7dmFyfT1cIiQxXCIiCisgICAgZWxzZQorCWlmIFtbIC1uICIkMSIgXV0gOyB0 aGVuCisJICAgIGVjaG8gIiQxIgorCWVsc2UKKwkgICAgZWNobyAiKGVtcHR5KSIKKwlmaQorICAg IGZpCit9CisKK2Z1bmN0aW9uIGNtZGxpbmUoKQoreworICAgIGxvY2FsIGNtZDsKKworICAgIGlm IFtbICIkIyIgLWVxICIwIiBdXSA7IHRoZW4KKwloZWxwCisJZXhpdCAxCisgICAgZmkKKworICAg ICRhcmdfcGFyc2UKKyAgICBpbmZvIFJ1bm5pbmcgIiR7YXJnc1swXX0iCisgICAgIiR7YXJnc1sw XX0iICIke2FyZ3NbQF06MX0iIHx8IGV4aXQgMQorCisgICAgaWYgISBbWyAteiAiJFJFVCIgXV0g OyB0aGVuCisJZWNobyAkUkVUCisgICAgZmkKK30KKworIyMjCisjIHJlbGVhc2Utc3BlY2lmaWMg Y29kZQorIyMjCisKKyMgR2xvYmFsIC8gbWV0YSB2YXJpYWJsZXM6CisjCisjIHRkaXI6ICJyb290 IiBkaXJlY3RvcnkgdG8gZG8gdGFyYmFsbCB3b3JrLgorIyByZGlyOiBEaXJlY3Rvcnkgd2hlcmUg dGFyYmFsbCAmIHNpZyB3aWxsIGJlIHB1dCAoPT0kdGRpci8kdikKKyMgcnRnejogQmFzZSBmaWxl bmFtZSBmb3IgdGFyYmFsbCAoJHJkaXIveGVuLSR2LnRhci5neikKKyMKKyMgdjogRnVsbCByZWxl YXNlIHZlcnNpb24gKGUuZy4sIDQuMTIuMC1yYzUsIDQuMTAuMykKKyMgeDogTWFqb3IrbWlub3Ig eGVuIHJlbGVhc2UgdmVyc2lvbiAoZS5nLiwgNC4xMiwgNC4xMCkKKyMgcDogcG9pbnQgcmVsZWFz ZSAoZS5nLiwgMCBpbiA0LjEyLjA7IDMgaW4gNC4xMC4zKQorIyAjcjogTnVtYmVycy1vbmx5IHJl bGVhc2UgKGUuZy4sIDQuMTIuMCwgNC4xMC4zKSAjIFBST0JBQkxZIE5PVCBORUVERUQKKyMgcmM6 IC1yY04KKyMKKyMgczogYnJhbmNoIG5hbWUgKGUuZy4sIG1hc3Rlciwgc3RhYmxlLTQuMTIsIHN0 YWJsZS00LjEwKQorIyB0OiBUYWcgZnJvbSBhIGdpdmVuIHJlbGVhc2UgKGUuZywuIDQuMTIuMC1y YzUsIFJFTEVBU0UtNC4xMC4zKQorIyBpc3JjOiBCb29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0 aGUgdmVyc2lvbiBpcyBhbiByYyAoZS5nLiwgdHJ1ZSBmb3IgNC4xMi4wLXJjNSwgZmFsc2UgZm9y IDQuMTAuMykKKworCisKK2Z1bmN0aW9uIHhlbi1tYWtlLXByZWZpeC1jb25maWcoKSB7CisgICAg JGFyZ19wYXJzZQorCisgICAgIyBUT0RPOiBQaW5nIGRyYWxsLnVrLnhlbnNvdXJjZS5jb20gdG8g c2VlIGlmIHdlIGNhbiByZWFjaCBpdD8KKyAgICAKKyAgICBkZWZhdWx0IGNhY2hlX3ByZWZpeCAi Z2l0Oi8vZHJhbGwudWsueGVuc291cmNlLmNvbTo5NDE5LyIgOyAkZGVmYXVsdF9wb3N0CisKKyAg ICBwZXJsIC1uZSAiaWYoL14oW0EtWl9dK19VUkwpIFw/PSAoZ2l0LiopLykgeyBwcmludCBcIlwk MSA/PSAke2NhY2hlX3ByZWZpeH1cJDJcblwiOyB9IiBDb25maWcubWsgPj4gLmNvbmZpZyB8fCBm YWlsICJHZW5lcmF0aW5nIC5jb25maWciCisgICAgY2F0IC5jb25maWcKK30KKworZnVuY3Rpb24g c2V0LXRkaXIoKSB7CisgICAgaWYgW1sgLXogIiR0ZGlyIiB8fCAhIC1lICIkdGRpciIgXV0gOyB0 aGVuCisJaW5mbyAiJHRkaXIgZG9lc24ndCBleGlzdCwgdXNpbmcgL3RtcCIKKwl0ZGlyPSIvdG1w IgorICAgIGZpCit9CisKKyMgVGFrZSBgdmAgYW5kIGdlbmVyYXRlIHRoZSBhcHByb3ByaWF0ZSBt ZXRhdmFyaWFibGVzIHZhcmlhYmxlcy4KK2Z1bmN0aW9uIHBhcnNlLXZlcnNpb24oKSB7CisgICAg JGFyZ19wYXJzZQorCisgICAgJHJlcXVpcmVhcmdzIHYKKworICAgIGlmIFtbIC1uICIkeCIgJiYg LW4gIiRwIiBdXSA7IHRoZW4KKwllY2hvICJWZXJzaW9uIGFscmVhZHkgcGFyc2VkIgorCXJldHVy bgorICAgIGZpCisKKyAgICBpZiBbWyAkdiA9fiAoWzAtOV0rXC5bMC05XSspXC4oWzAtOV0pKC1y Y1swLTldKSBdXSA7IHRoZW4KKwl4PSR7QkFTSF9SRU1BVENIWzFdfQorCXA9JHtCQVNIX1JFTUFU Q0hbMl19CisJcmM9JHtCQVNIX1JFTUFUQ0hbM119CisJaXNyYz10cnVlCisgICAgZWxpZiBbWyAk diA9fiAoWzAtOV0rXC5bMC05XSspXC4oWzAtOV0pIF1dIDsgdGhlbgorCXg9JHtCQVNIX1JFTUFU Q0hbMV19CisJcD0ke0JBU0hfUkVNQVRDSFsyXX0KKwlpc3JjPWZhbHNlCisgICAgZWxzZQorCWZh aWwgIkJhZCB2ZXJzaW9uIgorICAgIGZpCisKKyAgICBpZiAkaXNyYyA7IHRoZW4KKwl0PSR2Cisg ICAgZWxzZQorCXQ9UkVMRUFTRS0kdgorICAgIGZpCit9CisKK2Z1bmN0aW9uIGNoZWNrKCkgewor ICAgICMgVE9ETzogQXV0b21hdGUgc29tZSBvZiB0aGVzZQorICAgIGluZm8gIlBsZWFzZSBwZXJm b3JtIG1hbnVhbGx5OiBBbGwgWFNBcyAgaGF2ZSBiZWVuIGFwcGxpZWQiCisgICAgaW5mbyAiUGxl YXNlIHBlcmZvcm0gbWFudWFsbHk6IENoZWNrIGh0dHA6Ly9sb2dzLnRlc3QtbGFiLnhlbnByb2pl Y3Qub3JnL29zc3Rlc3QvcmVzdWx0cy9hbGwtYnJhbmNoLXN0YXR1c2VzLnR4dCIKKyAgICBpbmZv ICJQbGVhc2UgcGVyZm9ybSBtYW51YWxseTogQ2hlY2sgdmVyc2lvbiBpbiBSRUFETUUiCisgICAg aW5mbyAiUGxlYXNlIHBlcmZvcm0gbWFudWFsbHk6IENoZWNrIHZlcnNpb24gaW4gU1VQUE9SVC5t ZCIKKyAgICBpbmZvICJQbGVhc2UgcGVyZm9ybSBtYW51YWxseTogVGFncyBmb3IgYXBwcm9wcmlh dGUgKl9SRVZJU0lPTidzIGluIENvbmZpZy5tayIKKyAgICBpbmZvICJQbGVhc2UgcGVyZm9ybSBt YW51YWxseTogeGVuL01ha2VmaWxlOlhFTl9FWFRSQVZFUlNJT04gc2V0IHRvIDAiCisgICAgaW5m byAiUGxlYXNlIHBlcmZvcm0gbWFudWFsbHk6IHRvb2xzL1J1bGVzLm1rOiBkZWJ1ZyA/PSBuIgor ICAgIGluZm8gIlBsZWFzZSBwZXJmb3JtIG1hbnVhbGx5OiB4ZW4vS2NvbmZpZy5kZWJ1Zzpjb25m aWcgREVCVUcgc2hvdWxkIGRlZmF1bHQgdG8gYG5gIgorfQorCisjIFVzYWdlOgorIyAgIHRhZyB2 PVt2ZXJzaW9uIHlvdSB3YW50IHRvIHJlbGVhc2VdIFtjPWNvbW1pdGhhc2hdCisjIGVnLgorIyAg IHRhZyB2PTQuMTIuMC1yYzYKKyMgT3RoZXIgYXJndW1lbnRzOgorIyAga2V5OiAgTmFtZSBvZiBr ZXkgdG8gc2lnbiB0aGUgY29tbWl0IHdpdGgKKyMgIHRkaXI6IE5hbWUgb2YgdG9wLWxldmVsIHRh cmJhbGwgZGlyZWN0b3J5CitmdW5jdGlvbiB0YWcoKSB7CisgICAgJGFyZ19wYXJzZQorCisgICAg ZGVmYXVsdCBrZXkgIjIzRTMyMjJDMTQ1RjQ0NzVGQTgwNjBBNzgzRkUxNEM5NTdFODJCRDkiOyAk ZGVmYXVsdF9wb3N0CisKKyAgICAkcmVxdWlyZWFyZ3MgdgorCisgICAgc2V0LXRkaXIKKworICAg ICRyZXF1aXJlYXJncyB0ZGlyCisKKyAgICBwYXJzZS12ZXJzaW9uCisKKyAgICAkcmVxdWlyZWFy Z3MgdAorCisgICAgZ2l0IGZldGNoIG9yaWdpbgorCisgICAgaWYgW1sgLW4gIiRjIiBdXSA7IHRo ZW4KKwlpbmZvICJDaGVja2luZyBvdXQgY29tbWl0ICRjIgorCWdpdCBjaGVja291dCAkYyB8fCBm YWlsCisgICAgZWxzZQorCWxvY2FsIHEKKwlnaXQgY2hlY2tvdXQgc3RhYmxlLSR4IHx8IGZhaWwg IkNvdWxkbid0IGNoZWNrIG91dCBzdGFibGUgYnJhbmNoIgorCWdpdCBtZXJnZSB8fCBmYWlsICJN ZXJnZSIKKwlnaXQgbG9nIC1uIDEwCisJcmVhZCAtcCAiRW50ZXIgdG8gY29udGludWUsIGFueXRo aW5nIGVsc2UgdG8gcXVpdDogIiBxCisJW1sgLXogIiRxIiBdXSB8fCByZXR1cm4KKyAgICBmaQor CisgICAgIyBGSVhNRTogQWRkIGNoZWNrczoKKyAgICAjIC0gTWFrZSBzdXJlIENvbmZpZy5tayBo YXMgdGFncywgbm90IGhhc2hlcworICAgICMgLSBzb25hbWVzPworICAgICMgLSBBcHByb3ByaWF0 ZSB2ZXJzaW9uIG51bWJlcnMgaW4gU1VQUE9SVC5tZCwgeGVuL01ha2VmaWxlLCAmYworCisgICAg ZWNobyBnaXQgdGFnIC11ICIka2V5IiAtcyAtbSAiWGVuICR2IiAkdCA7IHNsZWVwIDEKKyAgICBn aXQgdGFnIC11ICIka2V5IiAtcyAtbSAiWGVuICR2IiAkdCB8fCBmYWlsICJDcmVhdGluZyBzaWdu ZWQgdGFnIgorCisgICAgaW5mbyAiUmVsZWFzZSB0YWdnZWQuICBOb3cgcnVuIHJlbGVhc2UgbWFr ZS10YXJiYWxsIHY9JHYiCit9CisKK2Z1bmN0aW9uIHB1c2gtdGFnKCkgeworICAgICRhcmdfcGFy c2UKKworICAgICRyZXF1aXJlYXJncyB2CisKKyAgICBwYXJzZS12ZXJzaW9uCisKKyAgICBnaXQg cHVzaCBvcmlnaW4gJHQgfHwgZmFpbCAiUHVzaGluZyB0YWciCisgICAgIyBGSVhNRTogVGhpcyBp cyBpbiB0aGUgcmVsZWFzZSBjaGVja2xpc3QsIGJ1dCBJJ20gbm90IHN1cmUgd2h5CisgICAgIyBn aXQgcHVzaCBvcmlnaW4gc3RhZ2luZy0keCB8fCBmYWlsICJQdXNoaW5nIHRhZyBjb21taXQiCisK KyAgICBpbmZvICJUYWcgcHVzaGVkLiAgTm93IHJ1biByZWxlYXNlIHRhcmJhbGwtY3ZzLWNoZWNr aW4tYW5kLXBvc3Qgdj0kdiIKK30KKworZnVuY3Rpb24gbWFrZS10YXJiYWxsLW9ubHkoKQorewor ICAgICRhcmdfcGFyc2UKKworICAgICRyZXF1aXJlYXJncyB2IHRkaXIKKworICAgIHBhcnNlLXZl cnNpb24KKworICAgIGdpdCBmZXRjaCB8fCBmYWlsICJnaXQgZmV0Y2giCisgICAgCisgICAgZ2l0 IGNoZWNrb3V0ICR0IHx8IGZhaWwgIkNoZWNraW5nIG91dCB0YWcgJHQiCisKKyAgICBnaXQgY2xl YW4gLWZmZHgKKworICAgIHhlbi1tYWtlLXByZWZpeC1jb25maWcKKworICAgIC4vY29uZmlndXJl IHx8IGZhaWwgIkNvbmZpZ3VyaW5nIgorICAgIAorICAgIGlmICRpc3JjIDsgdGhlbgorCW1ha2Ug c3JjLXRhcmJhbGwgfHwgZmFpbCAiTWFraW5nIHNyYy10YXJiYWxsIgorICAgIGVsc2UKKwltYWtl IHNyYy10YXJiYWxsLXJlbGVhc2UgfHwgZmFpbCAiTWFraW5nIHNyYy10YXJiYWxsIgorICAgIGZp CisKKyAgICBybSAtcmYgJHRkaXIvJHYKKworICAgIG1rZGlyIC1wICR0ZGlyLyR2IHx8IGZhaWwg IkNvdWxkbid0IG1ha2UgdGFyZ2V0IGRpcmVjdG9yeSIKKworICAgIGNwIGRpc3QveGVuLSR2LnRh ci5neiAkdGRpci8kdiB8fCBmYWlsICJDb3VsZG4ndCBjb3B5IHRhcmJhbGwiCit9CisKK2Z1bmN0 aW9uIGJ1aWxkdGVzdC10YXJiYWxsKCkgeworICAgICRhcmdfcGFyc2UKKworICAgIGRlZmF1bHQg YmRpciAiL3RtcCIgOyAkZGVmYXVsdF9wb3N0CisKKyAgICAkcmVxdWlyZWFyZ3MgdGRpciB2Cisg ICAgCisgICAgY2QgJGJkaXIgfHwgZmFpbCAiY2QgJGJkaXIiCisKKyAgICBybSAtcmYgYnVpbGQt JHYKKyAgICBta2RpciBidWlsZC0kdiB8fCBmYWlsICJta2RpciIKKworICAgIGNkIGJ1aWxkLSR2 CisKKyAgICB0YXIgeGZ6ICR0ZGlyLyR2L3hlbi0kdi50YXIuZ3ogfHwgZmFpbCAiVW50YXIiCisK KyAgICBjZCB4ZW4tJHYgfHwgZmFpbCAiY2QiCisKKyAgICB4ZW4tbWFrZS1wcmVmaXgtY29uZmln CisgICAgaW5mbyAiVGVzdGluZyBidWlsZCAodGFpbCAtZiAkYmRpci9idWlsZC0kdi9sb2cuJHYp Li4uIgorICAgICguL2NvbmZpZ3VyZSAmJiBtYWtlIC1qNCAmJiB0b3VjaCAkdGRpci8kdi9idWls ZC10ZXN0ZWQgJiYgZWNobyBPSykgMj4mMSA+IC4uL2xvZy4kdgorCisgICAgW1sgLWUgJHRkaXIv JHYvYnVpbGQtdGVzdGVkIF1dIHx8IGZhaWwgIkJ1aWxkIGZhaWxlZDsgbG9nIGF0ICRiZGlyL2J1 aWxkLSR2L2xvZy4kdiIKK30KKworZnVuY3Rpb24gc2lnbi10YXJiYWxsKCkgeworICAgICRhcmdf cGFyc2UKKworICAgICRyZXF1aXJlYXJncyB2CisKKyAgICBpZiBbWyAteiAiJHJ0Z3oiIF1dIDsg dGhlbgorCXNldC10ZGlyCisJcnRnej0kdGRpci8kdi94ZW4tJHYudGFyLmd6CisgICAgZmkKKwor ICAgIGRlZmF1bHQga2V5ICIyM0UzMjIyQzE0NUY0NDc1RkE4MDYwQTc4M0ZFMTRDOTU3RTgyQkQ5 IiA7ICRkZWZhdWx0X3Bvc3QKKworICAgIGlmICEgZ3BnIC0tbGlzdC1zZWNyZXQta2V5cyB8IGdy ZXAgJGtleSA7IHRoZW4KKwlpbmZvICJTaWduYXR1cmUgcmVxdWlyZWQ7IHBsZWFzZSBydW4gdGhl IGZvbGxvd2luZyBjb21tYW5kIHdpdGggdGhlIHB1YmxpYyBrZXkgYXZhaWxhYmxlIgorCWluZm8g IiBncGcgLS1kZXRhY2gtc2lnbiAtdSAneGVuIHRyZWUnICRydGd6IgorCWV4aXQgMAorICAgIGZp CisKKyAgICBncGcgLS1kZXRhY2gtc2lnbiAtdSAka2V5ICRydGd6IHx8IGZhaWwgIlNpZ25pbmcg JHJ0Z3oiCit9CisKK2Z1bmN0aW9uIHRhcmJhbGwtY2hlY2tzaWcoKSB7CisgICAgZ3BnIC0tdmVy aWZ5ICRydGd6LnNpZyB8fCBmYWlsICJTaWduYXR1cmUgZmFpbGVkIgorfQorCitmdW5jdGlvbiBt YWtlLXRhcmJhbGwoKSB7CisgICAgbG9jYWwgcmRpcgorICAgIGxvY2FsIHJ0Z3oKKyAgICAKKyAg ICAkYXJnX3BhcnNlCisKKyAgICAkcmVxdWlyZWFyZ3MgdgorCisgICAgc2V0LXRkaXIKKworICAg ICRyZXF1aXJlYXJncyB0ZGlyCisKKyAgICBwYXJzZS12ZXJzaW9uCisgICAgCisgICAgaW5mbyAi VXNpbmcgdGFnICR0IgorCisgICAgcmRpcj0kdGRpci8kdgorCisgICAgcnRnej0kcmRpci94ZW4t JHYudGFyLmd6CisKKyAgICBpZiBbWyAhIC1lICRydGd6IF1dIDsgdGhlbgorCWluZm8gIiRydGd6 IG5vdCBwcmVzZW50LCBnZW5lcmF0aW5nIgorCW1ha2UtdGFyYmFsbC1vbmx5CisgICAgZmkKKwor ICAgIGluZm8gIlRhcmJhbGwgY3JlYXRlZCIKKworICAgIGlmIFtbICEgLWUgJHJkaXIvYnVpbGQt dGVzdGVkIF1dIDsgdGhlbgorCWJ1aWxkdGVzdC10YXJiYWxsCisgICAgZmkKKworICAgIGluZm8g IkJ1aWxkIHRlc3RlZCIKKworICAgIGlmIFtbICEgLWUgJHJ0Z3ouc2lnIF1dIDsgdGhlbgorCXNp Z24tdGFyYmFsbAorICAgIGVsc2UKKwl0YXJiYWxsLWNoZWNrc2lnCisgICAgZmkKKworICAgIGlu Zm8gIlRhcmJhbGwgbWFkZSwgc2lnbmVkLCBhbmQgYnVpbGQtdGVzdGVkLiAgTm93IHJ1biByZWxl YXNlIHB1c2gtdGFnIHY9JHYiCit9CisKK2Z1bmN0aW9uIHRhcmJhbGwtY3ZzLWNoZWNraW4tYW5k LXBvc3QoKSB7CisgICAgJGFyZ19wYXJzZQorCisgICAgJHJlcXVpcmVhcmdzIHYKKworICAgICMg VE9ETzogVGhpcyB0cmVlIHByb2JhYmx5IHdhbnRzIHRvIGJlIHB1dCBzb21ld2hlcmUgb24KKyAg ICAjIG1haWwueGVucHJvamVjdC5vcmcKKyAgICAKKyAgICBkZWZhdWx0IGN2c2RpciAiL2J1aWxk L2hnL3B1c2gveGVuLm9yZy8iIDsgJGRlZmF1bHRfcG9zdAorCisgICAgaWYgW1sgISAtZSAkY3Zz ZGlyIF1dIDsgdGhlbgorCWZhaWwgIiRjdnNkaXIgZG9lcyBub3QgZXhpc3QiCisgICAgZmkKKwor ICAgIGlmIFtbIC16ICIkcnRneiIgXV0gOyB0aGVuCisJc2V0LXRkaXIKKwlydGd6PSR0ZGlyLyR2 L3hlbi0kdi50YXIuZ3oKKyAgICBmaQorCisgICAgY2QgJGN2c2RpciB8fCBmYWlsICJjZCIKKwor ICAgIG1rZGlyIC1wIG9zcy14ZW4vcmVsZWFzZS8kdiB8fCBmYWlsICJDcmVhdGluZyBkaXJlY3Rv cnkgaW4gQ1ZTIgorCisgICAgY3ZzIGFkZCAta2Igb3NzLXhlbi9yZWxlYXNlLyR2LyB8fCBmYWls ICJjdnMgYWRkIHJlbGVhc2UgZGlyZWN0b3J5IgorCisgICAgY2Qgb3NzLXhlbi9yZWxlYXNlLyR2 IHx8IGZhaWwgImNkIgorCisgICAgY3AgJHRkaXIvJHYveGVuLSR2LnRhci5neiAuIHx8IGZhaWwg IkNvcHlpbmcgdGFyYmFsbCIKKyAgICBjcCAkdGRpci8kdi94ZW4tJHYudGFyLmd6LnNpZyAuIHx8 IGZhaWwgIkNvcHlpbmcgc2lnIgorICAgIAorICAgIGN2cyBhZGQgLWtiIHhlbi0kdi50YXIuZ3og fHwgZmFpbCAiY3ZzIGFkZCB0YXJiYWxsIgorICAgIGN2cyBhZGQgLWtiIHhlbi0kdi50YXIuZ3ou c2lnIHx8IGZhaWwgImN2cyBhZGQgc2lnIgorICAgIAorICAgIGNkIC4uLy4uLy4uCisKKyAgICBj dnMgY2kgLW0gJHYgfHwgZmFpbCAiY3ZzIGNoZWNraW4iCisKKyAgICBzc2ggbWFpbC54ZW5wcm9q ZWN0Lm9yZyAiY2QgL2RhdGEvZG93bmxvYWRzLnhlbnByb2plY3Qub3JnL3hlbi5vcmcgJiYgY3Zz IC1xIHVwIC1kIiB8fCBmYWlsICJEZXBsb3lpbmcgdGFyYmFsbCIKKworICAgIGluZm8gIlRhcmJh bGwgVXBsb2FkZWQuICBYZW4gdmVyc2lvbiAkdiByZWxlYXNlZC4iCit9CisKK2Z1bmN0aW9uIGhl bHAoKSB7CisgICAgY2F0IDw8RU9GCitHZW5lcmFsIHdvcmtmbG93OgorCisqIERvIGEgbnVtYmVy IG9mIHByZS1yZWxlYXNlIHNhbml0eSBjaGVja3MKKyAgcmVsZWFzZSBjaGVjayB2PTQuMTIuMC1y YzUKKworKiBUYWcgYW5kIHNpZ24gYSBYZW4gY29tbWl0CisgIHJlbGVhc2UgdGFnIHY9NC4xMi4w LXJjNQorICAgb3IKKyAgcmVsZWFzZSB0YWcgdj00LjEyLjAtcmM1IGM9MDdjMTgxYworCisqIENy ZWF0ZSwgdGVzdCwgYW5kIHNpZ24gYSByZWxlYXNlIHRhcmJhbGwKKyAgcmVsZWFzZSBtYWtlLXRh cmJhbGwgdj00LjEyLjAtcmM1CisKKyogUHVzaCB0YWdzCisgIHJlbGVhc2UgcHVzaC10YWcgdj00 LjEyLjAtcmM1CisKKyogUHVibGlzaCB0YXJiYWxsCisgIHJlbGVhc2UgdGFyYmFsbC1jdnMtY2hl Y2tpbi1hbmQtcG9zdCB2PTQuMTIuMC1yYzUKK0VPRgorfQorCisjIyMKKyMgVGhlIGFjdHVhbCBj b21tYW5kLWxpbmUKKyMjIworY21kbGluZSAiJEAiCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs