From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.5 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE,T_SPF_PERMERROR,UNPARSEABLE_RELAY,URIBL_GREY shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id 3F44E1F54E for ; Thu, 18 Aug 2022 09:38:28 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sendgrid.me header.i=@sendgrid.me header.b="M0kjhvBP"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 71A951216D0; Thu, 18 Aug 2022 18:38:27 +0900 (JST) Received: from xtrwkhkc.outbound-mail.sendgrid.net (xtrwkhkc.outbound-mail.sendgrid.net [167.89.16.28]) by neon.ruby-lang.org (Postfix) with ESMTPS id 1BB2C12168E for ; Thu, 18 Aug 2022 18:38:23 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.me; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc; s=smtpapi; bh=zcStWbYK+pgwiLcFdZOkHD/O/ULnOX5nrWEnBCoUpyY=; b=M0kjhvBP9nMBBhp40c5vQcMYgSXYo1Mnobpg2S5SdqxYo5olpkgH3+TI4gEY8pUtMr3m LBIcvZeTlN4t0mwPz2H2siLUUqaRkOfWx3tNspldlHlDpxtMRlq1IDAVmcrMC6L9so+y8X lDjKQS3oUuBRXmjbhWPy5rXwFpkaxKISA= Received: by filterdrecv-66b95c5ffd-6bxgx with SMTP id filterdrecv-66b95c5ffd-6bxgx-1-62FE088E-21 2022-08-18 09:38:22.545883352 +0000 UTC m=+2381551.297574996 Received: from herokuapp.com (unknown) by geopod-ismtpd-3-4 (SG) with ESMTP id yrdaDjMwRKWsp9PN7iDCeQ for ; Thu, 18 Aug 2022 09:38:22.525 +0000 (UTC) Date: Thu, 18 Aug 2022 09:38:22 +0000 (UTC) From: "Eregon (Benoit Daloze)" Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 18949 X-Redmine-Issue-Author: Eregon X-Redmine-Sender: Eregon X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-Redmine-MailingListIntegration-Message-Ids: 85951 X-SG-EID: =?us-ascii?Q?DvL3W2Xo+Vk=2FeUn3F50L=2FNc8u9NqZCnbE0mXZHiyye4R1YZg=2FtAFc0SAFzpcS=2F?= =?us-ascii?Q?Zcr7BqPN=2FYCcMZBMITNeIci9STxYay0JAJWPbek?= =?us-ascii?Q?rFR+qV9TrFEOR8IzMU6IzzoOFWSQqlaoCppkBvR?= =?us-ascii?Q?ZorYPsrpvuvsRI8L3R1YkhDS1afAwm=2FzxoheBGm?= =?us-ascii?Q?RQ0rmKpIA7dvFkqjd9uGyqNRUUIoSfCf6Ewg6C8?= =?us-ascii?Q?o7KkV7Gj0qyov+hWanps5YbAbabKQr7uauPzsuq?= =?us-ascii?Q?IcVJX5m0Sjz+zLW21xV0Q=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109543 Subject: [ruby-core:109543] [Ruby master Feature#18949] Deprecate and remove replicate and dummy encodings X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Reply-To: Ruby developers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE4OTQ5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgRXJlZ29uIChCZW5vaXQgRGFsb3plKS4N Cg0KDQpDb3B5aW5nIGZyb20gdGhlIGRldiBtZWV0aW5nIGxvZzoNCg0KKiBXZSB3aWxsIHRyeSB0 byBjaGFuZ2UgdGhlIGVuY29kaW5nIGxvb2t1cCBmb3Igc3RpbmdzIHNvIHRoYXQgdGhlIGZhc3Qg cGF0aCBnZXRzIGZhc3RlciwgYW5kIGxlc3MgY2hlY2tzIGFyZSBpbnZvbHZlZCwgaW4gYSB3YXkg dGhhdCBzaG91bGQgcmVkdWNlIG9yIGVsaW1pbmF0ZSBsb2NraW5nLg0KICAgICogaHR0cHM6Ly9n aXRodWIuY29tL3J1YnkvcnVieS9ibG9iL2IwYjlmNzIwMWFjYWIwNWMyYTNhZDkyYzMwNDNhMWYw MWRmM2UxN2YvZW5jb2RpbmcuYyNMNDIzDQoqIEZvciAnVVRGLTE2JyBhbmQgJ1VURi0zMicsIHdl IGFncmVlZCB0aGF0IHRoZXJlIGlzIG5vIHBvaW50IGluIGdldHRpbmcgdGhlIGVuZGlhbm5lc3Mg ZHluYW1pY2FsbHkgZXZlcnkgdGltZSB0aGUgc3RyaW5nIGlzIGFjY2Vzc2VkLiBXZSB3aWxsIHRy eSB0byBjaGFuZ2UgdGhlIGltcGxlbWVudGF0aW9uIHNvIHRoYXQgdGhlIGVuZGlhbm5lc3MgaXMg ZXZhbHVhdGVkIG9ubHkgb25jZSAoc3RyaW5nIGNyZWF0aW9uIHRpbWUpIGFuZCB0aGF0IGluZm9y bWF0aW9uIGNhbiB0aGVuIGJlIHJldXNlZC4gVGhpcyB3aWxsIGV2YWx1YXRlIHNvbWUgY2hlY2tz IGluICdob3QnIGNvZGUuDQogICAgKiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L2Jsb2Iv YjBiOWY3MjAxYWNhYjA1YzJhM2FkOTJjMzA0M2ExZjAxZGYzZTE3Zi9zdHJpbmcuYyNMMzY0DQoq IEBtYXR6IGFncmVlZCB0byBkZXByZWNhdGUgYW5kIHJlbW92ZSBgRW5jb2RpbmcjcmVwbGljYXRl YA0KKiBPdGhlciBjb21taXR0ZXJzIGFyZSB1bnN1cmUgaWYgd2UgY2FuIHJlbW92ZSBgcmJfZGVm aW5lX2R1bW15X2VuY29kaW5nKClgLCBidXQgaWYgQGVyZWdvbiBtYWtlcyBQUnMgdG8gcmVwbGFj ZSB1c2FnZXMgaW4gZXhpc3RpbmcgZ2VtcyBpdCBtYXkgYmUgT0sNCg0KDQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGZWF0dXJlICMxODk0OTogRGVwcmVjYXRlIGFu ZCByZW1vdmUgcmVwbGljYXRlIGFuZCBkdW1teSBlbmNvZGluZ3MNCmh0dHBzOi8vYnVncy5ydWJ5 LWxhbmcub3JnL2lzc3Vlcy8xODk0OSNjaGFuZ2UtOTg3MTQNCg0KKiBBdXRob3I6IEVyZWdvbiAo QmVub2l0IERhbG96ZSkNCiogU3RhdHVzOiBPcGVuDQoqIFByaW9yaXR5OiBOb3JtYWwNCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClJ1YnkgaGFzIGEgbG90IG9mIGFj Y2lkZW50YWwgY29tcGxleGl0eS4NClNvbWV0aW1lcyBpdCBiZWNvbWVzIGNsZWFyIHNvbWUgZmVh dHVyZXMgYnJpbmcgYSBsb3Qgb2YgY29tcGxleGl0eSBhbmQgeWV0IHByb3ZpZGUgbGl0dGxlIHZh bHVlIG9yIGFyZSB1c2VkIHZlcnkgcmFyZWx5Lg0KQWxzbyBtb3N0IFJ1YnkgdXNlcnMgZG8gbm90 IGV2ZW4ga25vdyBhYm91dCB0aGVzZSBmZWF0dXJlcy4NClJlcGxpY2F0ZSBhbmQgZHVtbXkgZW5j b2RpbmdzIHNlZW0gdG8gY2xlYXJseSBmYWxsIGludG8gdGhpcyBjYXRlZ29yeSwgYWxtb3N0IG5v Ym9keSB1c2VzIHRoZW0gYnV0IHRoZXkgYWRkIGEgc2lnbmlmaWNhbnQgY29tcGxleGl0eSBhbmQg YWxzbyBhZGQgYSBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBvdmVyaGVhZC4NCk5vdGFibHksIHRo ZSBleGlzdGVuY2Ugb2YgdGhvc2UgbWVhbnMgdGhlIG51bWJlciBvZiBlbmNvZGluZ3MgaW4gYSBS dWJ5IHJ1bnRpbWUgaXMgYWN0dWFsbHkgdmFyaWFibGUgYW5kIG5vdCBmaXhlZC4NClRoYXQgbWVh bnMgZXh0cmEgc3luY2hyb25pemF0aW9uLCBoYXNodGFibGUgbG9va3VwcywgaW5kaXJlY3Rpb25z LCBmdW5jdGlvbiBjYWxscywgZXRjLg0KDQojIyBSZXBsaWNhdGUgRW5jb2RpbmdzDQoNClJlcGxp Y2F0ZSBlbmNvZGluZ3MgYXJlIGNyZWF0ZWQgdXNpbmcgYEVuY29kaW5nI3JlcGxpY2F0ZShuYW1l KWAuDQpJdCBhbG1vc3Qgc291bmRzIGxpa2UgYW4gYWxpYXMgYnV0IGluIGZhY3QgaXQgaXMgbW9y ZSB0aGFuIHRoYXQgYW5kIGNyZWF0ZXMgYSBuZXcgRW5jb2Rpbmcgb2JqZWN0LCB3aGljaCBjYW4g YmUgdXNlZCBieSBhIFN0cmluZzoNCmBgYHJ1YnkNCmUgPSBFbmNvZGluZzo6VVNfQVNDSUkucmVw bGljYXRlKCdNWS1VUy1BU0NJSScpDQpzID0gImFiYyIuZm9yY2VfZW5jb2RpbmcoZSkNCnAgcy5l bmNvZGluZyAjID0+IGUNCnAgcy5lbmNvZGluZy5uYW1lICMgPT4gJ01ZLVVTLUFTQ0lJJw0KYGBg DQoNClRoaXMgc2VlbXMgY29tcGxldGVseSB1c2VsZXNzLg0KVGhlcmUgaXMgYW4gb2J2aW91cyBm aXJzdCBzdGVwIGhlcmUgd2hpY2ggaXMgdG8gY2hhbmdlIGBFbmNvZGluZyNyZXBsaWNhdGVgIHRv IHJldHVybiB0aGUgcmVjZWl2ZXIsIGFuZCBqdXN0IGluc3RhbGwgYW4gYWxpYXMgZm9yIGl0Lg0K VGhhdCBhdm9pZHMgY3JlYXRpbmcgbW9yZSBlbmNvZGluZyBpbnN0YW5jZXMgbmVlZGxlc3NseS4N Cg0KSSB0aGluayB3ZSBzaG91bGQgYWxzbyBkZXByZWNhdGUgYW5kIHJlbW92ZSB0aGlzIG1ldGhv ZCB0aG91Z2gsIGl0IGlzIG5ldmVyIGEgZ29vZCBpZGVhIHRvIGhhdmUgYSBnbG9iYWwgbXV0YWJs ZSBtYXAgbGlrZSB0aGlzLg0KSWYgc29tZW9uZSB3YW50IGV4dHJhIGFsaWFzZXMgZm9yIGVuY29k aW5ncywgdGhleSBjYW4gZWFzaWx5IHRvIGRvIHNvIGJ5IGhhdmluZyB0aGVpciBvd24gSGFzaDog YHsgYWxpYXMgPT4gZW5jb2RpbmcgfS5mZXRjaChuYW1lKSB7IEVuY29kaW5nLmZpbmQobmFtZSkg fWAuDQoNCiMjIER1bW15IEVuY29kaW5ncw0KDQpEdW1teSBlbmNvZGluZ3MgYXJlIG5vdCByZWFs IGVuY29kaW5ncy4gVGhleSBhcmUgYXJ0aWZpY2lhbCBlbmNvZGluZ3MgZGVzaWduZWQgdG8gbG9v ayBsaWtlIGVuY29kaW5ncywgYnV0IGRvbid0IGZ1bmN0aW9uIGFzIGVuY29kaW5ncyBpbiBSdWJ5 Lg0KRnJvbSB0aGUgZG9jczoNCmBgYA0KZW5jLmR1bW15PyAtPiB0cnVlIG9yIGZhbHNlDQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NClJldHVybnMgdHJ1ZSBmb3IgZHVtbXkgZW5jb2RpbmdzLiBBIGR1bW15IGVu Y29kaW5nIGlzIGFuIGVuY29kaW5nIGZvcg0Kd2hpY2ggY2hhcmFjdGVyIGhhbmRsaW5nIGlzIG5v dCBwcm9wZXJseSBpbXBsZW1lbnRlZC4gSXQgaXMgdXNlZCBmb3INCnN0YXRlZnVsIGVuY29kaW5n cy4NCmBgYA0KDQpJIHdvbmRlciB3aHkgd2UgaGF2ZSB0aG9zZSBoYWxmLWltcGxlbWVudGVkIGVu Y29kaW5ncyBpbiBjb3JlLCBpdCBzb3VuZHMgdG8gbWUgbGlrZSB1bmZpbmlzaGVkIHdvcmsgd2hp Y2ggc2hvdWxkIG5vdCBoYXZlIGJlZW4gbWVyZ2VkLg0KDQpUaGUgImNvZGVwb2ludHMiIG9mIGR1 bW15IGVuY29kaW5ncyBhcmUganVzdCAiYnl0ZXMiIGFuZCBzbyB0aGV5IGJlaGF2ZSB0aGUgc2Ft ZSBhcyBgRW5jb2Rpbmc6OkJJTkFSWWAsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgVVRGLTE2 IGFuZCBVVEYtMzIgZHVtbXkgZW5jb2RpbmdzLg0KDQojIyMgVVRGLTE2IGFuZCBVVEYtMzIgZHVt bXkgZW5jb2RpbmdzDQoNClRoZXNlIHR3byBhcmUgc3BlY2lhbCBkdW1teSBlbmNvZGluZ3MuDQpX aGF0IHRoZXkgZG8gaXMgdGhleSBzY2FuIHRoZSBmaXJzdCAyIG9yIDQgYnl0ZXMgb2YgdGhlIFN0 cmluZywgYW5kIGlmIHRob3NlIGJ5dGVzIGFyZSBhIGJ5dGUtb3JkZXIgbWFyayAoQk9NKSwNCnRo ZSB0cnVlICJhY3R1YWwiIGVuY29kaW5nIGlzIHJlc29sdmVkIHRvIFVURi0xNkJFL1VURi0xNkxF IG9yIFVURi0zMkJFL1VURi0zMkxFLg0KT3RoZXJ3aXNlLCBgRW5jb2Rpbmc6OkJJTkFSWWAgaXMg cmV0dXJuZWQuDQpUaGlzIGxvZ2ljIGlzIGRvbmUgYnkgYGdldF9hY3R1YWxfZW5jb2RpbmcoKWAu DQoNCldoYXQgaXMgd2VpcmQgaXMgdGhpcyBjaGVjayBpcyBub3QgZG9uZSBvbiBTdHJpbmcgY3Jl YXRpb24sIG5vLCBpdCBpcyBkb25lICpldmVyeSB0aW1lKiB0aGUgZW5jb2Rpbmcgb2YgdGhhdCBT dHJpbmcgaXMgYWNjZXNzZWQgKGFuZCB0aGUgcmVzdWx0IGlzIG5vdCBzdG9yZWQgb24gdGhlIFN0 cmluZykuDQpUaGF0IGlzIGEgbmVlZGxlc3Mgb3ZlcmhlYWQgYW5kIHJlYWxseSB1bnJlbGlhYmxl IHNlbWFudGljcy4NCkRvIHdlIHJlYWxseSB3YW50IGEgU3RyaW5nIHdoaWNoIGF1dG9tYWdpY2Fs bHkgY2hhbmdlcyBiZXR3ZWVuIFVURi0xNkxFIGFuZCBVVEYtMTZCRSBiYXNlZCBvbiBtdXRhdGlu ZyBpdHMgYnl0ZXM/IEkgdGhpbmsgbm9ib2R5IHdhbnRzIHRoYXQ6DQpgYGBydWJ5DQpzID0gIlx4 RkZceEZFYVx4MDBiXHgwMGNceDAwZFx4MDAiLmZvcmNlX2VuY29kaW5nKCJVVEYtMTYiKQ0KcCBz ICMgPT4gIlx1RkVGRmFiY2QiDQpzLnNldGJ5dGUgMCwgMjU0DQpzLnNldGJ5dGUgMSwgMjU1DQpw IHMgIyA9PiAiXHVGRUZGXHU2MTAwXHU2MjAwXHU2MzAwXHU2NDAwIg0KYGBgDQoNCkkgdGhpbmsg dGhlIHBhdGggaXMgY2xlYXIsIHdlIHNob3VsZCBkZXByZWNhdGUgYW5kIHRoZW4gcmVtb3ZlIEVu Y29kaW5nOjpVVEZfMTYgYW5kIEVuY29kaW5nOjpVVEZfMzIgKGR1bW15IGVuY29kaW5ncykuDQpB bmQgdGhlbiB3ZSBubyBsb25nZXIgbmVlZCBgZ2V0X2FjdHVhbF9lbmNvZGluZygpYCBhbmQgdGhl IG92ZXJoZWFkIGl0IGFkZHMgdG8gZXZlcnkgU3RyaW5nIG1ldGhvZC4NCg0KV2UgY291bGQgYWxz byBrZWVwIHRob3NlIGNvbnN0YW50cyBhbmQgbWFrZSB0aGVtIHJlZmVyIHRoZSBuYXRpdmUtZW5k aWFuIFVURi0xNi8zMi4NCkJ1dCB0aGF0IGNvdWxkIGNhdXNlIGNvbmZ1c2luZyBlcnJvcnMgYXMg d2Ugd291bGQgY2hhbmdlIHRoZSBtZWFuaW5nIG9mIHRoZW0uDQpXZSBjb3VsZCBhZGQgYEVuY29k aW5nOjpVVEZfMTZORWAgLyBgRW5jb2Rpbmc6OlVURl8xNl9OQVRJVkVfRU5ESUFOYCBpZiB0aGF0 IGlzIHVzZWZ1bC4NCg0KQW5vdGhlciBwb3NzaWJpbGl0eSB3b3VsZCBiZSB0byByZXNvbHZlIHRo ZXNlIGVuY29kaW5ncyBvbiBTdHJpbmcgY3JlYXRpb24sIGxpa2U6DQpgYGANCiJceEZGXHhGRSIu Zm9yY2VfZW5jb2RpbmcoIlVURi0xNiIpLmVuY29kaW5nICMgPT4gVVRGLTE2TEUNClN0cmluZy5u ZXcoIlx4RkZceEZFIiwgZW5jb2Rpbmc6IEVuY29kaW5nOjpVVEZfMTYpLmVuY29kaW5nICMgPT4g VVRGLTE2TEUNCiJhYiIuZm9yY2VfZW5jb2RpbmcoIlVURi0xNiIpLmVuY29kaW5nICMgZXhjZXB0 aW9uLCBub3QgYSBCT00NClN0cmluZy5uZXcoImFiIiwgZW5jb2Rpbmc6IEVuY29kaW5nOjpVVEZf MTYpLmVuY29kaW5nICMgZXhjZXB0aW9uLCBub3QgYSBCT00NCmBgYA0KSSB0aGluayBpdCBpcyB1 bm5lY2Vzc2FyeSB0byBrZWVwIHN1Y2ggY29tcGxleGl0eSB0aG91Z2guDQpBIGNsYXNzIG1ldGhv ZCBvbiBTdHJpbmcgb3IgRW5jb2RpbmcgbGlrZSBlLmcuIGBFbmNvZGluZy5maW5kX2Zyb21fYm9t KHN0cmluZylgIGlzIHNvIG11Y2ggY2xlYXJlciBhbmQgZWZmaWNpZW50IChubyBuZWVkIHRvIHNw ZWNpYWwgY2FzZSB0aG9zZSBlbmNvZGluZ3MgaW4gU3RyaW5nLm5ldywgI2ZvcmNlX2VuY29kaW5n LCBldGMpLg0KDQpGV0lXIEpSdWJ5IHNlZW1zIHRvIHVzZSBgZ2V0QWN0dWFsRW5jb2RpbmcoKWAg b25seSBpbiAyIHBsYWNlcyAoc2NhbkZvckNvZGVSYW5nZSwgaW5zcGVjdCksIHdoaWNoIGlzIGFu IGluZGljYXRpb24gdGhvc2UgZHVtbXkgVVRGIGVuY29kaW5ncyBhcmUgYmFyZWx5IHVzZWQgaWYg ZXZlci4gU2ltaWxhcmx5LCBUcnVmZmxlUnVieSBvbmx5IGhhcyA0IHVzYWdlcyBvZiBgR2V0QWN0 dWFsRW5jb2RpbmdOb2RlYC4NCg0KIyMjIEV4aXN0aW5nIGR1bW15IGVuY29kaW5ncw0KDQpgYGAN Cj4gRW5jb2RpbmcubGlzdC5zZWxlY3QoJjpkdW1teT8pIA0KWyM8RW5jb2Rpbmc6VVRGLTE2IChk dW1teSk+LCAgIzxFbmNvZGluZzpVVEYtMzIgKGR1bW15KT4sDQogIzxFbmNvZGluZzpJQk0wMzcg KGR1bW15KT4sICM8RW5jb2Rpbmc6VVRGLTcgKGR1bW15KT4sDQogIzxFbmNvZGluZzpJU08tMjAy Mi1KUCAoZHVtbXkpPiwgIzxFbmNvZGluZzpJU08tMjAyMi1KUC0yIChkdW1teSk+LCAjPEVuY29k aW5nOklTTy0yMDIyLUpQLUtEREkgKGR1bW15KT4sDQogIzxFbmNvZGluZzpDUDUwMjIwIChkdW1t eSk+LCAjPEVuY29kaW5nOkNQNTAyMjEgKGR1bW15KT5dDQpgYGANCg0KU28gYmVzaWRlcyBVVEYt MTYvVVRGLTMyIGR1bW15LCBpdCdzIG9ubHkgNyBlbmNvZGluZ3MuDQpEb2VzIGFueW9uZSB1c2Ug b25lIG9mIHRoZXNlIDcgZHVtbXkgZW5jb2RpbmdzPw0KDQpXaGF0IGlzIGludGVyZXN0aW5nIHRv IG5vdGUsIGlzIHRoYXQgdGhlc2UgZW5jb2RpbmdzIGFyZSBleGFjdGx5IHRoZSBvbmVzIHRoYXQg YXJlIGFsc28gbm90IEFTQ0lJLWNvbXBhdGlibGUsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBVVEYt MTZCRS9VVEYtMTZMRS9VVEYtMzJCRS9VVEYtMzJMRSAobm9uLWR1bW15KS4NCkFzIGEgbm90ZSwg VVRGLXsxNiwzMn17QkUsTEV9IGFyZSBBU0NJSS1jb21wYXRpYmxlIGluIGNvZGVwb2ludHMgYnV0 IG5vdCBpbiBieXRlcywgYW5kIFJ1YnkgdXNlcyB0aGUgYnl0ZXMgZGVmaW5pdGlvbiBvZiBBU0NJ SS1jb21wYXRpYmxlLg0KVGhlcmUgaXMgcG90ZW50aWFsIHRvIHNpbXBsaWZ5IGVuY29kaW5nIGNv bXBhdGliaWxpdHkgcnVsZXMgYW5kIGVuY29kaW5nIGNvbXBhdGliaWxpdHkgY2hlY2tzIGJhc2Vk IG9uIHRoYXQuDQpTbyB3aGF0IHRoaXMgbWVhbnMgaXMgaWYgd2UgcmVtb3ZlZCBkdW1teSBlbmNv ZGluZ3MsIGFsbCBlbmNvZGluZ3MgZXhjZXB0IFVURi17MTYsMzJ9e0JFLExFfSB3b3VsZCBiZSBB U0NJSS1jb21wYXRpYmxlLCB3aGljaCB3b3VsZCBsZWFkIHRvIHNpZ25pZmljYW50IHNpbXBsaWZp Y2F0aW9ucyBmb3IgbWFueSBzdHJpbmcgb3BlcmF0aW9ucyB3aGljaCBjdXJyZW50bHkgbmVlZCB0 byBoYW5kbGUgZHVtbXkgZW5jb2RpbmdzIHNwZWNpYWxseS4NClVuaWNvZGUgZW5jb2RpbmdzIGxp a2UgVVRGLXsxNiwzMn17QkUsTEV9IGFscmVhZHkgaGF2ZSBzcGVjaWFsIGJlaGF2aW9yIGZvciBz b21lIFJ1YnkgbWV0aG9kcywgc28gdGhvc2UgYXJlIGFscmVhZHkgaGFuZGxlZCBzcGVjaWFsbHkg aW4gc29tZSBwbGFjZXMgKHRoZXkgYXJlIHRoZSBvbmx5IGVuY29kaW5ncyB3aXRoIG1pbkxlbmd0 aCA+IDEpLg0KDQpgYGANCj4gRW5jb2RpbmcubGlzdC5yZWplY3QoJjphc2NpaV9jb21wYXRpYmxl PykNClsjPEVuY29kaW5nOlVURi0xNkJFPiwgIzxFbmNvZGluZzpVVEYtMTZMRT4sDQogIzxFbmNv ZGluZzpVVEYtMzJCRT4sICM8RW5jb2Rpbmc6VVRGLTMyTEU+LA0KICM8RW5jb2Rpbmc6VVRGLTE2 IChkdW1teSk+LCAjPEVuY29kaW5nOlVURi0zMiAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklCTTAz NyAoZHVtbXkpPiwgIzxFbmNvZGluZzpVVEYtNyAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklTTy0y MDIyLUpQIChkdW1teSk+LCAjPEVuY29kaW5nOklTTy0yMDIyLUpQLTIgKGR1bW15KT4sICM8RW5j b2Rpbmc6SVNPLTIwMjItSlAtS0RESSAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOkNQNTAyMjAgKGR1 bW15KT4sICM8RW5jb2Rpbmc6Q1A1MDIyMSAoZHVtbXkpPl0NCmBgYA0KDQpXaGF0IGNhbiB3ZSBk byB3aXRoIHN1Y2ggYSBkdW1teSBub24tQVNDSUktY29tcGF0aWJsZSBlbmNvZGluZz8NCkFsbW9z dCBub3RoaW5nIHVzZWZ1bDoNCmBgYHJ1YnkNCnMgPSAiYWJjIi5lbmNvZGUoIklCTTAzNyIpDQo9 PiAiXHg4MVx4ODJceDgzIg0KPiBzLmJ5dGVzDQo9PiBbMTI5LCAxMzAsIDEzMV0NCj4gcy5jb2Rl cG9pbnRzDQo9PiBbMTI5LCAxMzAsIDEzMV0NCj4gcyA9PSAiYWJjIg0KPT4gZmFsc2UNCj4gIsOp dMOpIi5lbmNvZGUoIklCTTAzNyIpDQo9PiAiXHg1MVx4QTNceDUxIg0KYGBgDQoNClNvIGFib3V0 IHRoZSBvbmx5IHRoaW5nIHRoYXQgd29ya3Mgd2l0aCB0aGVtIGlzIGBTdHJpbmcjZW5jb2RlYC4N Cg0KSSB0aGluayB3ZSBjb3VsZCBwcmVzZXJ2ZSB0aGF0IGZ1bmN0aW9uYWxpdHksIGlmIGFjdHVh bGx5IHVzZWQgKGRvZXMgYW55b25lIHVzZSBvbmUgb2YgdGhlc2UgNyBkdW1teSBlbmNvZGluZ3M/ KSwgdGhyb3VnaDoNCmBgYHJ1YnkNCj4gIsOpdMOpIi5lbmNvZGUoIklCTTAzNyIpDQo9PiAiXHg1 MVx4QTNceDUxIiAoLmVuY29kaW5nID09IEJJTkFSWSkNCj4gIlx4NTFceEEzXHg1MSIuZW5jb2Rl KCJVVEYtOCIsICJJQk0wMzciKSAjIGVuY29kZSBmcm9tIElCTTAzNyB0byBVVEYtOA0KPT4gIsOp dMOpIiAoLmVuY29kaW5nID09IFVURi04KQ0KYGBgDQoNClRoYXQgd2F5IHRoZXJlIGlzIG5vIG5l ZWQgZm9yIHRob3NlIHRvIGJlIEVuY29kaW5nIGluc3RhbmNlcywgd2Ugd291bGQgb25seSBuZWVk IHRoZSBjb252ZXJzaW9uIHRhYmxlcy4NCg0KSXQgaXMgZXZlbiBiZXR0ZXIgaWYgd2UgY2FuIHJl bW92ZSB0aGVtLCBzbyB0aGUgbm90aW9uIG9mICJkdW1teSBlbmNvZGluZ3MiIGNhbiBkaXNhcHBl YXIgY29tcGxldGVseSBhbmQgbm9ib2R5IG5lZWRzIHRvIHVuZGVyc3RhbmQgb3IgaW1wbGVtZW50 IHRoZW0uDQoNCiMjIyByYl9kZWZpbmVfZHVtbXlfZW5jb2RpbmcobmFtZSkNCg0KVGhlIEMtQVBJ IGhhcyBgcmJfZGVmaW5lX2R1bW15X2VuY29kaW5nKGNvbnN0IGNoYXIgKm5hbWUpYC4NClRoaXMg Y3JlYXRlcyBhIG5ldyBFbmNvZGluZyBpbnN0YW5jZSB3aXRoIGBkdW1teT89dHJ1ZWAsIGFuZCBp dCBpcyBhbHNvIG5vbi1BU0NJSS1jb21wYXRpYmxlLg0KVGhlcmUgc2VlbXMgdG8gYmUgbm8gcHVy cG9zZSB0byB0aGlzIGJlc2lkZXMgc3RvcmluZyB0aGUgbWV0YWRhdGEgb2YgYW4gZW5jb2Rpbmcg d2hpY2ggZG9lcyBub3QgZXhpc3QgaW4gUnVieS4NClRoaXMgc2VlbXMgYSByZWFsbHkgZXhwZW5z aXZlL2NvbXBsZXggd2F5IHRvIGhhbmRsZSB0aGF0IGZyb20gdGhlIFZNIHBvaW50IG9mIHZpZXcg KGJlY2F1c2UgaXQgZHluYW1pY2FsbHkgY3JlYXRlcyBhbiBFbmNvZGluZyBhbmQgYWRkIGl0IHRv IGxpc3RzL21hcHMvZXRjKS4NCkEgc2ltcGxlIHJlcGxhY2VtZW50IHdvdWxkIGJlIHRvIG1hcmsg dGhlIFN0cmluZyBhcyBCSU5BUlkgYW5kIHNhdmUgdGhlIGVuY29kaW5nIG5hbWUgYXMgYW4gaW5z dGFuY2UgdmFyaWFibGUgb2YgdGhhdCBTdHJpbmcuDQpTaW5jZSBhbnl3YXkgUnVieSBjYW4ndCB1 bmRlcnN0YW5kIGFueXRoaW5nIGFib3V0IHRoYXQgU3RyaW5nLCBpdCdzIGp1c3QgcmF3IGJ5dGVz IHRvIFJ1YnkncyBleWVzLg0KDQojIyBTdW1tYXJ5DQoNCkkgc3VnZ2VzdCB3ZSBkZXByZWNhdGUg cmVwbGljYXRlIGFuZCBkdW1teSBlbmNvZGluZ3MgaW4gUnVieSAzLjIuDQpBbmQgdGhlbiB3ZSBy ZW1vdmUgdGhlbSBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0KDQpUaGlzIHdpbGwgc2lnbmlmaWNhbnRs eSBzaW1wbGlmeSBzdHJpbmctcmVsYXRlZCBtZXRob2RzLCBhbmQgdGhlIGJlaGF2aW9yIGV4cG9z ZWQgdG8gUnVieSB1c2Vycy4NCg0KSXQgd2lsbCBhbHNvIHNpZ25pZmljYW50bHkgc3BlZWR1cCBl bmNvZGluZyBsb29rdXAgaW4gQ1J1YnkgKGFuZCBvdGhlciBSdWJ5IGltcGxlbWVudGF0aW9ucyku DQpXaXRoIGEgZml4ZWQgbnVtYmVyIG9mIGVuY29kaW5ncyB3ZSBjYW4gZW5zdXJlIGFsbCBlbmNv ZGluZyBpbmRpY2VzIGZpdCBpbiA3IGJpdHMsIGFuZCBgRU5DT0RJTkdfR0VUYCBjYW4gYmUgc2lt cGx5IGBSQl9FTkNPRElOR19HRVRfSU5MSU5FRGAuDQpgZ2V0X2FjdHVhbF9lbmNvZGluZygpYCB3 aWxsIGJlIGdvbmUgYW5kIGl0cyBvdmVyaGVhZCBhcyB3ZWxsLg0KYHJiX2VuY19mcm9tX2luZGV4 KClgIHdvdWxkIGJlIGp1c3QgYHJldHVybiBnbG9iYWxfZW5jX3RhYmxlLT5saXN0W2luZGV4XS5l bmM7YCwgaW5zdGVhZCBvZiB0aGUgZXhwZW5zaXZlIGJlaGF2aW9yIGN1cnJlbnRseSB3aXRoIGBH TE9CQUxfRU5DX1RBQkxFX0VWQUxgIHdoaWNoIHRha2VzIGEgbG9jayBhbmQgbW9yZSB3aGVuIHRo ZXJlIGFyZSBtdWx0aXBsZSBSYWN0b3JzLg0KTWFueSBjaGVja3MgaW4gdGhlc2UgbWV0aG9kcyB3 b3VsZCBiZSByZW1vdmVkIGFzIHdlbGwuDQpZZXQgYW5vdGhlciBpbXByb3ZlbWVudCB3b3VsZCBi ZSB0byBsb2FkIGFsbCBlbmNvZGluZ3MgZWFnZXJseSwgdGhhdCBpcyBzbWFsbCBhbmQgZmFzdCBp biBteSBleHBlcmllbmNlLCB3aGF0IGlzIHNsb3cgYW5kIGJpZyBpcyB0aGUgY29udmVyc2lvbiB0 YWJsZXMsIHRoYXQnZCBzaW1wbGlmeSBgbXVzdF9lbmNpbmRleCgpYCBmdXJ0aGVyLg0KVGhlc2Ug Y2hhbmdlcyB3b3VsZCBhZmZlY3QgbW9zdCBTdHJpbmcgbWV0aG9kcywgd2hpY2ggdXNlDQpgYGAN ClNUUl9FTkNfR0VULT5nZXRfZW5jb2Rpbmcgd2hpY2ggZG9lczoNCiAgZ2V0X2FjdHVhbF9lbmNv ZGluZy0+cmJfZW5jX2Zyb21faW5kZXggYW5kIHBvc3NpYmx5IC0+ZW5jX2Zyb21faW5kZXgNCiAg RU5DT0RJTkdfR0VULT5SQl9FTkNPRElOR19HRVRfSU5MSU5FRCBhbmQgcG9zc2libHkgLT5yYl9l bmNfZ2V0X2luZGV4LT5lbmNfZ2V0X2luZGV4X3N0ci0+cmJfYXR0cl9nZXQNCmBgYA0KU29tZSBv ZiB0aGVzZSBkZXRhaWxzIGFyZSBtZW50aW9uZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL3J1Ynkv cnVieS9wdWxsLzYwOTUjZGlzY3Vzc2lvbl9yOTE1MTQ5NzA4Lg0KVGhlIG92ZXJoZWFkIGlzIHNv IGxhcmdlIHRoYXQgaXQgaXMgd29ydGggaGFuZGxpbmcgc29tZSBoYXJkY29kZWQgZW5jb2Rpbmcg aW5kaWNlcyBkaXJlY3RseSBpbiBTdHJpbmcgbWV0aG9kcy4NClRoaXMgZmVlbHMgd3JvbmcsIGdl dHRpbmcgdGhlIGVuY29kaW5nIGZyb20gYSBTdHJpbmcgc2hvdWxkIGJlIHNpbXBsZSwgc3RyYWln aHRmb3J3YXJkIGFuZCBmYXN0Lg0KDQpGdXJ0aGVyIG9wdGltaXphdGlvbnMgd2lsbCBiZSB1bmxv Y2tlZCBhcyB0aGUgZW5jb2RpbmcgbGlzdCBiZWNvbWVzIGZpeGVkIGFuZCBpbW11dGFibGUuDQpG b3IgZXhhbXBsZSwgdGhlIG5hbWUtdG8tRW5jb2RpbmcgbWFwIGlzIHRoZW4gaW1tdXRhYmxlIGFu ZCBjb3VsZCB1c2UgcGVyZmVjdCBoYXNoaW5nLg0KSW5saW5lIGNhY2hpbmcgdGhvc2UgbG9va3Vw cyBhbHNvIGJlY29tZXMgZWFzaWVyIGFzIHRoZSB0aGUgbWFwIGNhbm5vdCBjaGFuZ2UuDQpBbHNv IHRoYXQgbWFwIHdvdWxkIG5vIGxvbmdlciBuZWVkIHN5bmNocm9uaXphdGlvbiwgZXRjLg0KDQoj IyBUbyBEZWNpZGUNCg0KRWFjaCBpdGVtIGlzIGluZGVwZW5kZW50LiBJIHRoaW5rIDEgJiAyIGFy ZSB2ZXJ5IGltcG9ydGFudCwgMyBsZXNzIGJ1dCB3b3VsZCBiZSBuaWNlLg0KDQoxLiBEZXByZWNh dGUgYW5kIHRoZW4gcmVtb3ZlIGBFbmNvZGluZyNyZXBsaWNhdGVgIGFuZCBgcmJfZGVmaW5lX2R1 bW15X2VuY29kaW5nKClgLiBXaXRoIHRoYXQgdGhlcmUgaXMgYSBmaXhlZCBudW1iZXIgb2YgZW5j b2RpbmdzLCBhIGxvdCBvZiBzaW1wbGlmaWNhdGlvbnMgYW5kIG1hbnkgb3B0aW1pemF0aW9ucyBi ZWNvbWUgYXZhaWxhYmxlLiBUaGV5IGFyZSB1c2VkIHJlc3BlY3RpdmVseSBpbiBvbmx5IDEgZ2Vt IGFuZCA1IGdlbXMsIHNlZSBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTg5NDkj bm90ZS00DQoyLiBEZXByZWNhdGUgYW5kIHRoZW4gcmVtb3ZlIHRoZSBkdW1teSBVVEYtMTYgYW5k IFVURi0zMiBlbmNvZGluZ3MuIFRoaXMgcmVtb3ZlcyB0aGUgbmVlZCBmb3IgYGdldF9hY3R1YWxf ZW5jb2RpbmcoKWAgd2hpY2ggaXMgZXhwZW5zaXZlLiBUaGlzIGZ1bmN0aW9uYWxpdHkgc2VlbXMg cmFyZWx5IHVzZWQgaW4gcHJhY3RpY2UsIGFuZCBpdCBvbmx5IHdvcmtzIHdoZW4gc3VjaCBzdHJp bmdzIGhhdmUgYSBCT00sIHdoaWNoIGlzIHZlcnkgcmFyZS4NCjMuIERlcHJlY2F0ZSBhbmQgdGhl biByZW1vdmUgb3RoZXIgZHVtbXkgZW5jb2RpbmdzLCBzbyB0aGVyZSBhcmUgbm8gbW9yZSBkdW1t eSAiaGFsZi1pbXBsZW1lbnRlZCIgZW5jb2RpbmdzIGFuZCBhbGwgZW5jb2RpbmdzIGFyZSBBU0NJ SS1jb21wYXRpYmxlIGluIHRlcm1zIG9mIGNvZGVwb2ludHMuDQoNCg0KDQotLSANCmh0dHBzOi8v YnVncy5ydWJ5LWxhbmcub3JnLw0K