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_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 8AFCB1F54E for ; Fri, 29 Jul 2022 23:53:49 +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="kr+MB7m9"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 60A7A120E98; Sat, 30 Jul 2022 08:53:37 +0900 (JST) Received: from o1678948x4.outbound-mail.sendgrid.net (o1678948x4.outbound-mail.sendgrid.net [167.89.48.4]) by neon.ruby-lang.org (Postfix) with ESMTPS id 90841120DE6 for ; Sat, 30 Jul 2022 08:53:34 +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=6IzcZg/Uh3b0PMJ2P+qAl2umNnxmOI5e0Nzdebr6UxA=; b=kr+MB7m91ABihv2vzvuF4Imt/t4cfsRH5jyic7H8ojH8QRR+WV9eBJFNgrO+wU7xa5q4 yYOmdgqMCxl3C1nH4KCl8P2YiUkr7brCf3rgdUmKXTpaxakLCjjyMeKt2DQoxLZsEqmRKg HFJZHdf4chswbXVBLvBkSkftVdDwSisJ0= Received: by filterdrecv-7787b7f4d9-7spx2 with SMTP id filterdrecv-7787b7f4d9-7spx2-1-62E472F9-17 2022-07-29 23:53:29.421523995 +0000 UTC m=+704874.406957647 Received: from herokuapp.com (unknown) by geopod-ismtpd-2-0 (SG) with ESMTP id ff7osVbKSGGGXfEcDjr20g for ; Fri, 29 Jul 2022 23:53:29.407 +0000 (UTC) Date: Fri, 29 Jul 2022 23:53:29 +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: 85783 X-SG-EID: =?us-ascii?Q?DvL3W2Xo+Vk=2FeUn3F50L=2FNc8u9NqZCnbE0mXZHiyye4R1YZg=2FtAFc0SAFzpcS=2F?= =?us-ascii?Q?Zcr7BqPN=2FYCcMZBMITNeIci9STxYay0JAJWPbek?= =?us-ascii?Q?rFR+qXGGvX0qQr4OPoKT3TWlr1T5Pkhxv9NMWRt?= =?us-ascii?Q?is6z04Kn4zcqFbF2gsv9DoVFkqj4wJhLZUsFHQ4?= =?us-ascii?Q?V56YQAnE0zUEnWG=2F2ff8jvlAuMsdf=2FCWjD53LKT?= =?us-ascii?Q?bZt0ZNEeUL19p0D1fHRPYO=2F=2Fxy3AWDH=2Foxazy6X?= =?us-ascii?Q?l4JSWLQ8uJLp8LD5BoOIw=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109378 Subject: [ruby-core:109378] [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 Cg0KDQpub2FoZ2liYnMgKE5vYWggR2liYnMpIHdyb3RlIGluICNub3RlLTI6DQo+IEkndmUgYmVl biB3b3JraW5nIG9uIFlKSVQgc3RyaW5nIGhhbmRsaW5nLiBBdCB0aGlzIHBvaW50IG91ciBzdHJp bmcgaGFuZGxpbmcgaXMgc28gc2ltcGxlIHRoYXQgSSBkb24ndCB0aGluayB0aGlzIHdvdWxkIGFm ZmVjdCB1cyBlaXRoZXIgd2F5LiBGb3IgZW5jb2RpbmdzLCB3ZSBtb3N0bHkgY2FsbCBDUnVieSBm dW5jdGlvbnMgdGhhdCBoYW5kbGUgdGhlbS4gU28gc2hvcnQtdGVybSwgSSBkb24ndCB0aGluayB0 aGlzIHdvdWxkIGNhdXNlIHVzIGFueSBpbXBsZW1lbnRhdGlvbiBkaWZmaWN1bHRpZXMuDQoNClJp Z2h0LCBzbyB0aGlzIHNob3VsZCBhbHNvIGJlbmVmaXQgWUpJVCBhcyBtdWNoIGFzIGl0IGJlbmVm aXRzIHRoZSBDUnVieSBpbnRlcnByZXRlciBwZXJmb3JtYW5jZS13aXNlIHNpbmNlIGl0IHdpbGwg bWFrZSBzdHJpbmcvZW5jb2RpbmctcmVsYXRlZCBmdW5jdGlvbnMgZmFzdGVyLg0KSSBhc3N1bWUg IndvdWxkIGFmZmVjdCB1cyBlaXRoZXIgd2F5L3dvdWxkIGNhdXNlIHVzIGFueSBpbXBsZW1lbnRh dGlvbiBkaWZmaWN1bHRpZXMiIG1lYW5zIHRoaXMgY2hhbmdlIHdvdWxkIGJlIGVhc3kgdG8gYWRv cHQgZm9yIFlKSVQsIGkuZS4sIG5vIG9yIGxvdyBlZmZvcnQgYnV0IHlldCB0aGUgcGVyZm9ybWFu Y2UgZ2FpbnMgd291bGQgYmUgdmFsdWFibGUuDQpTaW5jZSBpdCBzaW1wbGlmeSBTdHJpbmcgZW5j b2RpbmdzIGl0IGJlbmVmaXRzIGFsbCBSdWJ5IGltcGxlbWVudGF0aW9ucyBhbmQgYWxsIFJ1Ynkg SklUcy4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVy ZSAjMTg5NDk6IERlcHJlY2F0ZSBhbmQgcmVtb3ZlIHJlcGxpY2F0ZSBhbmQgZHVtbXkgZW5jb2Rp bmdzDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTg5NDkjY2hhbmdlLTk4NTI4 DQoNCiogQXV0aG9yOiBFcmVnb24gKEJlbm9pdCBEYWxvemUpDQoqIFN0YXR1czogT3Blbg0KKiBQ cmlvcml0eTogTm9ybWFsDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQpSdWJ5IGhhcyBhIGxvdCBvZiBhY2NpZGVudGFsIGNvbXBsZXhpdHkuDQpTb21ldGltZXMgaXQg YmVjb21lcyBjbGVhciBzb21lIGZlYXR1cmVzIGJyaW5nIGEgbG90IG9mIGNvbXBsZXhpdHkgYW5k IHlldCBwcm92aWRlIGxpdHRsZSB2YWx1ZSBvciBhcmUgdXNlZCB2ZXJ5IHJhcmVseS4NCkFsc28g bW9zdCBSdWJ5IHVzZXJzIGRvIG5vdCBldmVuIGtub3cgYWJvdXQgdGhlc2UgZmVhdHVyZXMuDQpS ZXBsaWNhdGUgYW5kIGR1bW15IGVuY29kaW5ncyBzZWVtIHRvIGNsZWFybHkgZmFsbCBpbnRvIHRo aXMgY2F0ZWdvcnksIGFsbW9zdCBub2JvZHkgdXNlcyB0aGVtIGJ1dCB0aGV5IGFkZCBhIHNpZ25p ZmljYW50IGNvbXBsZXhpdHkgYW5kIGFsc28gYWRkIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2Ug b3ZlcmhlYWQuDQpOb3RhYmx5LCB0aGUgZXhpc3RlbmNlIG9mIHRob3NlIG1lYW5zIHRoZSBudW1i ZXIgb2YgZW5jb2RpbmdzIGluIGEgUnVieSBydW50aW1lIGlzIGFjdHVhbGx5IHZhcmlhYmxlIGFu ZCBub3QgZml4ZWQuDQpUaGF0IG1lYW5zIGV4dHJhIHN5bmNocm9uaXphdGlvbiwgaGFzaHRhYmxl IGxvb2t1cHMsIGluZGlyZWN0aW9ucywgZnVuY3Rpb24gY2FsbHMsIGV0Yy4NCg0KIyMgUmVwbGlj YXRlIEVuY29kaW5ncw0KDQpSZXBsaWNhdGUgZW5jb2RpbmdzIGFyZSBjcmVhdGVkIHVzaW5nIGBF bmNvZGluZyNyZXBsaWNhdGUobmFtZSlgLg0KSXQgYWxtb3N0IHNvdW5kcyBsaWtlIGFuIGFsaWFz IGJ1dCBpbiBmYWN0IGl0IGlzIG1vcmUgdGhhbiB0aGF0IGFuZCBjcmVhdGVzIGEgbmV3IEVuY29k aW5nIG9iamVjdCwgd2hpY2ggY2FuIGJlIHVzZWQgYnkgYSBTdHJpbmc6DQpgYGBydWJ5DQplID0g RW5jb2Rpbmc6OlVTX0FTQ0lJLnJlcGxpY2F0ZSgnTVktVVMtQVNDSUknKQ0KcyA9ICJhYmMiLmZv cmNlX2VuY29kaW5nKGUpDQpwIHMuZW5jb2RpbmcgIyA9PiBlDQpwIHMuZW5jb2RpbmcubmFtZSAj ID0+ICdNWS1VUy1BU0NJSScNCmBgYA0KDQpUaGlzIHNlZW1zIGNvbXBsZXRlbHkgdXNlbGVzcy4N ClRoZXJlIGlzIGFuIG9idmlvdXMgZmlyc3Qgc3RlcCBoZXJlIHdoaWNoIGlzIHRvIGNoYW5nZSBg RW5jb2RpbmcjcmVwbGljYXRlYCB0byByZXR1cm4gdGhlIHJlY2VpdmVyLCBhbmQganVzdCBpbnN0 YWxsIGFuIGFsaWFzIGZvciBpdC4NClRoYXQgYXZvaWRzIGNyZWF0aW5nIG1vcmUgZW5jb2Rpbmcg aW5zdGFuY2VzIG5lZWRsZXNzbHkuDQoNCkkgdGhpbmsgd2Ugc2hvdWxkIGFsc28gZGVwcmVjYXRl IGFuZCByZW1vdmUgdGhpcyBtZXRob2QgdGhvdWdoLCBpdCBpcyBuZXZlciBhIGdvb2QgaWRlYSB0 byBoYXZlIGEgZ2xvYmFsIG11dGFibGUgbWFwIGxpa2UgdGhpcy4NCklmIHNvbWVvbmUgd2FudCBl eHRyYSBhbGlhc2VzIGZvciBlbmNvZGluZ3MsIHRoZXkgY2FuIGVhc2lseSB0byBkbyBzbyBieSBo YXZpbmcgdGhlaXIgb3duIEhhc2g6IGB7IGFsaWFzID0+IGVuY29kaW5nIH0uZmV0Y2gobmFtZSkg eyBFbmNvZGluZy5maW5kKG5hbWUpIH1gLg0KDQojIyBEdW1teSBFbmNvZGluZ3MNCg0KRHVtbXkg ZW5jb2RpbmdzIGFyZSBub3QgcmVhbCBlbmNvZGluZ3MuIFRoZXkgYXJlIGFydGlmaWNpYWwgZW5j b2RpbmdzIGRlc2lnbmVkIHRvIGxvb2sgbGlrZSBlbmNvZGluZ3MsIGJ1dCBkb24ndCBmdW5jdGlv biBhcyBlbmNvZGluZ3MgaW4gUnVieS4NCkZyb20gdGhlIGRvY3M6DQpgYGANCmVuYy5kdW1teT8g LT4gdHJ1ZSBvciBmYWxzZQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpSZXR1cm5zIHRydWUgZm9yIGR1bW15 IGVuY29kaW5ncy4gQSBkdW1teSBlbmNvZGluZyBpcyBhbiBlbmNvZGluZyBmb3INCndoaWNoIGNo YXJhY3RlciBoYW5kbGluZyBpcyBub3QgcHJvcGVybHkgaW1wbGVtZW50ZWQuIEl0IGlzIHVzZWQg Zm9yDQpzdGF0ZWZ1bCBlbmNvZGluZ3MuDQpgYGANCg0KSSB3b25kZXIgd2h5IHdlIGhhdmUgdGhv c2UgaGFsZi1pbXBsZW1lbnRlZCBlbmNvZGluZ3MgaW4gY29yZSwgaXQgc291bmRzIHRvIG1lIGxp a2UgdW5maW5pc2hlZCB3b3JrIHdoaWNoIHNob3VsZCBub3QgaGF2ZSBiZWVuIG1lcmdlZC4NCg0K VGhlICJjb2RlcG9pbnRzIiBvZiBkdW1teSBlbmNvZGluZ3MgYXJlIGp1c3QgImJ5dGVzIiBhbmQg c28gdGhleSBiZWhhdmUgdGhlIHNhbWUgYXMgYEVuY29kaW5nOjpCSU5BUllgLCB3aXRoIHRoZSBl eGNlcHRpb24gb2YgdGhlIFVURi0xNiBhbmQgVVRGLTMyIGR1bW15IGVuY29kaW5ncy4NCg0KIyMj IFVURi0xNiBhbmQgVVRGLTMyIGR1bW15IGVuY29kaW5ncw0KDQpUaGVzZSB0d28gYXJlIHNwZWNp YWwgZHVtbXkgZW5jb2RpbmdzLg0KV2hhdCB0aGV5IGRvIGlzIHRoZXkgc2NhbiB0aGUgZmlyc3Qg MiBvciA0IGJ5dGVzIG9mIHRoZSBTdHJpbmcsIGFuZCBpZiB0aG9zZSBieXRlcyBhcmUgYSBieXRl LW9yZGVyIG1hcmsgKEJPTSksDQp0aGUgdHJ1ZSAiYWN0dWFsIiBlbmNvZGluZyBpcyByZXNvbHZl ZCB0byBVVEYtMTZCRS9VVEYtMTZMRSBvciBVVEYtMzJCRS9VVEYtMzJMRS4NCk90aGVyd2lzZSwg YEVuY29kaW5nOjpCSU5BUllgIGlzIHJldHVybmVkLg0KVGhpcyBsb2dpYyBpcyBkb25lIGJ5IGBn ZXRfYWN0dWFsX2VuY29kaW5nKClgLg0KDQpXaGF0IGlzIHdlaXJkIGlzIHRoaXMgY2hlY2sgaXMg bm90IGRvbmUgb24gU3RyaW5nIGNyZWF0aW9uLCBubywgaXQgaXMgZG9uZSAqZXZlcnkgdGltZSog dGhlIGVuY29kaW5nIG9mIHRoYXQgU3RyaW5nIGlzIGFjY2Vzc2VkIChhbmQgdGhlIHJlc3VsdCBp cyBub3Qgc3RvcmVkIG9uIHRoZSBTdHJpbmcpLg0KVGhhdCBpcyBhIG5lZWRsZXNzIG92ZXJoZWFk IGFuZCByZWFsbHkgdW5yZWxpYWJsZSBzZW1hbnRpY3MuDQpEbyB3ZSByZWFsbHkgd2FudCBhIFN0 cmluZyB3aGljaCBhdXRvbWFnaWNhbGx5IGNoYW5nZXMgYmV0d2VlbiBVVEYtMTZMRSBhbmQgVVRG LTE2QkUgYmFzZWQgb24gbXV0YXRpbmcgaXRzIGJ5dGVzPyBJIHRoaW5rIG5vYm9keSB3YW50cyB0 aGF0Og0KYGBgcnVieQ0KcyA9ICJceEZGXHhGRWFceDAwYlx4MDBjXHgwMGRceDAwIi5mb3JjZV9l bmNvZGluZygiVVRGLTE2IikNCnAgcyAjID0+ICJcdUZFRkZhYmNkIg0Kcy5zZXRieXRlIDAsIDI1 NA0Kcy5zZXRieXRlIDEsIDI1NQ0KcCBzICMgPT4gIlx1RkVGRlx1NjEwMFx1NjIwMFx1NjMwMFx1 NjQwMCINCmBgYA0KDQpJIHRoaW5rIHRoZSBwYXRoIGlzIGNsZWFyLCB3ZSBzaG91bGQgZGVwcmVj YXRlIGFuZCB0aGVuIHJlbW92ZSBFbmNvZGluZzo6VVRGXzE2IGFuZCBFbmNvZGluZzo6VVRGXzMy IChkdW1teSBlbmNvZGluZ3MpLg0KQW5kIHRoZW4gd2Ugbm8gbG9uZ2VyIG5lZWQgYGdldF9hY3R1 YWxfZW5jb2RpbmcoKWAgYW5kIHRoZSBvdmVyaGVhZCBpdCBhZGRzIHRvIGV2ZXJ5IFN0cmluZyBt ZXRob2QuDQoNCldlIGNvdWxkIGFsc28ga2VlcCB0aG9zZSBjb25zdGFudHMgYW5kIG1ha2UgdGhl bSByZWZlciB0aGUgbmF0aXZlLWVuZGlhbiBVVEYtMTYvMzIuDQpCdXQgdGhhdCBjb3VsZCBjYXVz ZSBjb25mdXNpbmcgZXJyb3JzIGFzIHdlIHdvdWxkIGNoYW5nZSB0aGUgbWVhbmluZyBvZiB0aGVt Lg0KV2UgY291bGQgYWRkIGBFbmNvZGluZzo6VVRGXzE2TkVgIC8gYEVuY29kaW5nOjpVVEZfMTZf TkFUSVZFX0VORElBTmAgaWYgdGhhdCBpcyB1c2VmdWwuDQoNCkFub3RoZXIgcG9zc2liaWxpdHkg d291bGQgYmUgdG8gcmVzb2x2ZSB0aGVzZSBlbmNvZGluZ3Mgb24gU3RyaW5nIGNyZWF0aW9uLCBs aWtlOg0KYGBgDQoiXHhGRlx4RkUiLmZvcmNlX2VuY29kaW5nKCJVVEYtMTYiKS5lbmNvZGluZyAj ID0+IFVURi0xNkxFDQpTdHJpbmcubmV3KCJceEZGXHhGRSIsIGVuY29kaW5nOiBFbmNvZGluZzo6 VVRGXzE2KS5lbmNvZGluZyAjID0+IFVURi0xNkxFDQoiYWIiLmZvcmNlX2VuY29kaW5nKCJVVEYt MTYiKS5lbmNvZGluZyAjIGV4Y2VwdGlvbiwgbm90IGEgQk9NDQpTdHJpbmcubmV3KCJhYiIsIGVu Y29kaW5nOiBFbmNvZGluZzo6VVRGXzE2KS5lbmNvZGluZyAjIGV4Y2VwdGlvbiwgbm90IGEgQk9N DQpgYGANCkkgdGhpbmsgaXQgaXMgdW5uZWNlc3NhcnkgdG8ga2VlcCBzdWNoIGNvbXBsZXhpdHkg dGhvdWdoLg0KQSBjbGFzcyBtZXRob2Qgb24gU3RyaW5nIG9yIEVuY29kaW5nIGxpa2UgZS5nLiBg RW5jb2RpbmcuZmluZF9mcm9tX2JvbShzdHJpbmcpYCBpcyBzbyBtdWNoIGNsZWFyZXIgYW5kIGVm ZmljaWVudCAobm8gbmVlZCB0byBzcGVjaWFsIGNhc2UgdGhvc2UgZW5jb2RpbmdzIGluIFN0cmlu Zy5uZXcsICNmb3JjZV9lbmNvZGluZywgZXRjKS4NCg0KRldJVyBKUnVieSBzZWVtcyB0byB1c2Ug YGdldEFjdHVhbEVuY29kaW5nKClgIG9ubHkgaW4gMiBwbGFjZXMgKHNjYW5Gb3JDb2RlUmFuZ2Us IGluc3BlY3QpLCB3aGljaCBpcyBhbiBpbmRpY2F0aW9uIHRob3NlIGR1bW15IFVURiBlbmNvZGlu Z3MgYXJlIGJhcmVseSB1c2VkIGlmIGV2ZXIuIFNpbWlsYXJseSwgVHJ1ZmZsZVJ1Ynkgb25seSBo YXMgNCB1c2FnZXMgb2YgYEdldEFjdHVhbEVuY29kaW5nTm9kZWAuDQoNCiMjIyBFeGlzdGluZyBk dW1teSBlbmNvZGluZ3MNCg0KYGBgDQo+IEVuY29kaW5nLmxpc3Quc2VsZWN0KCY6ZHVtbXk/KSAN ClsjPEVuY29kaW5nOlVURi0xNiAoZHVtbXkpPiwgICM8RW5jb2Rpbmc6VVRGLTMyIChkdW1teSk+ LA0KICM8RW5jb2Rpbmc6SUJNMDM3IChkdW1teSk+LCAjPEVuY29kaW5nOlVURi03IChkdW1teSk+ LA0KICM8RW5jb2Rpbmc6SVNPLTIwMjItSlAgKGR1bW15KT4sICM8RW5jb2Rpbmc6SVNPLTIwMjIt SlAtMiAoZHVtbXkpPiwgIzxFbmNvZGluZzpJU08tMjAyMi1KUC1LRERJIChkdW1teSk+LA0KICM8 RW5jb2Rpbmc6Q1A1MDIyMCAoZHVtbXkpPiwgIzxFbmNvZGluZzpDUDUwMjIxIChkdW1teSk+XQ0K YGBgDQoNClNvIGJlc2lkZXMgVVRGLTE2L1VURi0zMiBkdW1teSwgaXQncyBvbmx5IDcgZW5jb2Rp bmdzLg0KRG9lcyBhbnlvbmUgdXNlIG9uZSBvZiB0aGVzZSA3IGR1bW15IGVuY29kaW5ncz8NCg0K V2hhdCBpcyBpbnRlcmVzdGluZyB0byBub3RlLCBpcyB0aGF0IHRoZXNlIGVuY29kaW5ncyBhcmUg ZXhhY3RseSB0aGUgb25lcyB0aGF0IGFyZSBhbHNvIG5vdCBBU0NJSS1jb21wYXRpYmxlLCB3aXRo IHRoZSBleGNlcHRpb24gb2YgVVRGLTE2QkUvVVRGLTE2TEUvVVRGLTMyQkUvVVRGLTMyTEUgKG5v bi1kdW1teSkuDQpBcyBhIG5vdGUsIFVURi17MTYsMzJ9e0JFLExFfSBhcmUgQVNDSUktY29tcGF0 aWJsZSBpbiBjb2RlcG9pbnRzIGJ1dCBub3QgaW4gYnl0ZXMsIGFuZCBSdWJ5IHVzZXMgdGhlIGJ5 dGVzIGRlZmluaXRpb24gb2YgQVNDSUktY29tcGF0aWJsZS4NClRoZXJlIGlzIHBvdGVudGlhbCB0 byBzaW1wbGlmeSBlbmNvZGluZyBjb21wYXRpYmlsaXR5IHJ1bGVzIGFuZCBlbmNvZGluZyBjb21w YXRpYmlsaXR5IGNoZWNrcyBiYXNlZCBvbiB0aGF0Lg0KU28gd2hhdCB0aGlzIG1lYW5zIGlzIGlm IHdlIHJlbW92ZWQgZHVtbXkgZW5jb2RpbmdzLCBhbGwgZW5jb2RpbmdzIGV4Y2VwdCBVVEYtezE2 LDMyfXtCRSxMRX0gd291bGQgYmUgQVNDSUktY29tcGF0aWJsZSwgd2hpY2ggd291bGQgbGVhZCB0 byBzaWduaWZpY2FudCBzaW1wbGlmaWNhdGlvbnMgZm9yIG1hbnkgc3RyaW5nIG9wZXJhdGlvbnMg d2hpY2ggY3VycmVudGx5IG5lZWQgdG8gaGFuZGxlIGR1bW15IGVuY29kaW5ncyBzcGVjaWFsbHku DQpVbmljb2RlIGVuY29kaW5ncyBsaWtlIFVURi17MTYsMzJ9e0JFLExFfSBhbHJlYWR5IGhhdmUg c3BlY2lhbCBiZWhhdmlvciBmb3Igc29tZSBSdWJ5IG1ldGhvZHMsIHNvIHRob3NlIGFyZSBhbHJl YWR5IGhhbmRsZWQgc3BlY2lhbGx5IGluIHNvbWUgcGxhY2VzICh0aGV5IGFyZSB0aGUgb25seSBl bmNvZGluZ3Mgd2l0aCBtaW5MZW5ndGggPiAxKS4NCg0KYGBgDQo+IEVuY29kaW5nLmxpc3QucmVq ZWN0KCY6YXNjaWlfY29tcGF0aWJsZT8pDQpbIzxFbmNvZGluZzpVVEYtMTZCRT4sICM8RW5jb2Rp bmc6VVRGLTE2TEU+LA0KICM8RW5jb2Rpbmc6VVRGLTMyQkU+LCAjPEVuY29kaW5nOlVURi0zMkxF PiwNCiAjPEVuY29kaW5nOlVURi0xNiAoZHVtbXkpPiwgIzxFbmNvZGluZzpVVEYtMzIgKGR1bW15 KT4sDQogIzxFbmNvZGluZzpJQk0wMzcgKGR1bW15KT4sICM8RW5jb2Rpbmc6VVRGLTcgKGR1bW15 KT4sDQogIzxFbmNvZGluZzpJU08tMjAyMi1KUCAoZHVtbXkpPiwgIzxFbmNvZGluZzpJU08tMjAy Mi1KUC0yIChkdW1teSk+LCAjPEVuY29kaW5nOklTTy0yMDIyLUpQLUtEREkgKGR1bW15KT4sDQog IzxFbmNvZGluZzpDUDUwMjIwIChkdW1teSk+LCAjPEVuY29kaW5nOkNQNTAyMjEgKGR1bW15KT5d DQpgYGANCg0KV2hhdCBjYW4gd2UgZG8gd2l0aCBzdWNoIGEgZHVtbXkgbm9uLUFTQ0lJLWNvbXBh dGlibGUgZW5jb2Rpbmc/DQpBbG1vc3Qgbm90aGluZyB1c2VmdWw6DQpgYGBydWJ5DQpzID0gImFi YyIuZW5jb2RlKCJJQk0wMzciKQ0KPT4gIlx4ODFceDgyXHg4MyINCj4gcy5ieXRlcw0KPT4gWzEy OSwgMTMwLCAxMzFdDQo+IHMuY29kZXBvaW50cw0KPT4gWzEyOSwgMTMwLCAxMzFdDQo+IHMgPT0g ImFiYyINCj0+IGZhbHNlDQo+ICLDqXTDqSIuZW5jb2RlKCJJQk0wMzciKQ0KPT4gIlx4NTFceEEz XHg1MSINCmBgYA0KDQpTbyBhYm91dCB0aGUgb25seSB0aGluZyB0aGF0IHdvcmtzIHdpdGggdGhl bSBpcyBgU3RyaW5nI2VuY29kZWAuDQoNCkkgdGhpbmsgd2UgY291bGQgcHJlc2VydmUgdGhhdCBm dW5jdGlvbmFsaXR5LCBpZiBhY3R1YWxseSB1c2VkIChkb2VzIGFueW9uZSB1c2Ugb25lIG9mIHRo ZXNlIDcgZHVtbXkgZW5jb2RpbmdzPyksIHRocm91Z2g6DQpgYGBydWJ5DQo+ICLDqXTDqSIuZW5j b2RlKCJJQk0wMzciKQ0KPT4gIlx4NTFceEEzXHg1MSIgKC5lbmNvZGluZyA9PSBCSU5BUlkpDQo+ ICJceDUxXHhBM1x4NTEiLmVuY29kZSgiVVRGLTgiLCAiSUJNMDM3IikgIyBlbmNvZGUgZnJvbSBJ Qk0wMzcgdG8gVVRGLTgNCj0+ICLDqXTDqSIgKC5lbmNvZGluZyA9PSBVVEYtOCkNCmBgYA0KDQpU aGF0IHdheSB0aGVyZSBpcyBubyBuZWVkIGZvciB0aG9zZSB0byBiZSBFbmNvZGluZyBpbnN0YW5j ZXMsIHdlIHdvdWxkIG9ubHkgbmVlZCB0aGUgY29udmVyc2lvbiB0YWJsZXMuDQoNCkl0IGlzIGV2 ZW4gYmV0dGVyIGlmIHdlIGNhbiByZW1vdmUgdGhlbSwgc28gdGhlIG5vdGlvbiBvZiAiZHVtbXkg ZW5jb2RpbmdzIiBjYW4gZGlzYXBwZWFyIGNvbXBsZXRlbHkgYW5kIG5vYm9keSBuZWVkcyB0byB1 bmRlcnN0YW5kIG9yIGltcGxlbWVudCB0aGVtLg0KDQojIyMgcmJfZGVmaW5lX2R1bW15X2VuY29k aW5nKG5hbWUpDQoNClRoZSBDLUFQSSBoYXMgYHJiX2RlZmluZV9kdW1teV9lbmNvZGluZyhjb25z dCBjaGFyICpuYW1lKWAuDQpUaGlzIGNyZWF0ZXMgYSBuZXcgRW5jb2RpbmcgaW5zdGFuY2Ugd2l0 aCBgZHVtbXk/PXRydWVgLCBhbmQgaXQgaXMgYWxzbyBub24tQVNDSUktY29tcGF0aWJsZS4NClRo ZXJlIHNlZW1zIHRvIGJlIG5vIHB1cnBvc2UgdG8gdGhpcyBiZXNpZGVzIHN0b3JpbmcgdGhlIG1l dGFkYXRhIG9mIGFuIGVuY29kaW5nIHdoaWNoIGRvZXMgbm90IGV4aXN0IGluIFJ1YnkuDQpUaGlz IHNlZW1zIGEgcmVhbGx5IGV4cGVuc2l2ZS9jb21wbGV4IHdheSB0byBoYW5kbGUgdGhhdCBmcm9t IHRoZSBWTSBwb2ludCBvZiB2aWV3IChiZWNhdXNlIGl0IGR5bmFtaWNhbGx5IGNyZWF0ZXMgYW4g RW5jb2RpbmcgYW5kIGFkZCBpdCB0byBsaXN0cy9tYXBzL2V0YykuDQpBIHNpbXBsZSByZXBsYWNl bWVudCB3b3VsZCBiZSB0byBtYXJrIHRoZSBTdHJpbmcgYXMgQklOQVJZIGFuZCBzYXZlIHRoZSBl bmNvZGluZyBuYW1lIGFzIGFuIGluc3RhbmNlIHZhcmlhYmxlIG9mIHRoYXQgU3RyaW5nLg0KU2lu Y2UgYW55d2F5IFJ1YnkgY2FuJ3QgdW5kZXJzdGFuZCBhbnl0aGluZyBhYm91dCB0aGF0IFN0cmlu ZywgaXQncyBqdXN0IHJhdyBieXRlcyB0byBSdWJ5J3MgZXllcy4NCg0KIyMgU3VtbWFyeQ0KDQpJ IHN1Z2dlc3Qgd2UgZGVwcmVjYXRlIHJlcGxpY2F0ZSBhbmQgZHVtbXkgZW5jb2RpbmdzIGluIFJ1 YnkgMy4yLg0KQW5kIHRoZW4gd2UgcmVtb3ZlIHRoZW0gaW4gdGhlIG5leHQgdmVyc2lvbi4NCg0K VGhpcyB3aWxsIHNpZ25pZmljYW50bHkgc2ltcGxpZnkgc3RyaW5nLXJlbGF0ZWQgbWV0aG9kcywg YW5kIHRoZSBiZWhhdmlvciBleHBvc2VkIHRvIFJ1YnkgdXNlcnMuDQoNCkl0IHdpbGwgYWxzbyBz aWduaWZpY2FudGx5IHNwZWVkdXAgZW5jb2RpbmcgbG9va3VwIGluIENSdWJ5IChhbmQgb3RoZXIg UnVieSBpbXBsZW1lbnRhdGlvbnMpLg0KV2l0aCBhIGZpeGVkIG51bWJlciBvZiBlbmNvZGluZ3Mg d2UgY2FuIGVuc3VyZSBhbGwgZW5jb2RpbmcgaW5kaWNlcyBmaXQgaW4gNyBiaXRzLCBhbmQgYEVO Q09ESU5HX0dFVGAgY2FuIGJlIHNpbXBseSBgUkJfRU5DT0RJTkdfR0VUX0lOTElORURgLg0KYGdl dF9hY3R1YWxfZW5jb2RpbmcoKWAgd2lsbCBiZSBnb25lIGFuZCBpdHMgb3ZlcmhlYWQgYXMgd2Vs bC4NCmByYl9lbmNfZnJvbV9pbmRleCgpYCB3b3VsZCBiZSBqdXN0IGByZXR1cm4gZ2xvYmFsX2Vu Y190YWJsZS0+bGlzdFtpbmRleF0uZW5jO2AsIGluc3RlYWQgb2YgdGhlIGV4cGVuc2l2ZSBiZWhh dmlvciBjdXJyZW50bHkgd2l0aCBgR0xPQkFMX0VOQ19UQUJMRV9FVkFMYCB3aGljaCB0YWtlcyBh IGxvY2sgYW5kIG1vcmUgd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgUmFjdG9ycy4NCk1hbnkgY2hl Y2tzIGluIHRoZXNlIG1ldGhvZHMgd291bGQgYmUgcmVtb3ZlZCBhcyB3ZWxsLg0KWWV0IGFub3Ro ZXIgaW1wcm92ZW1lbnQgd291bGQgYmUgdG8gbG9hZCBhbGwgZW5jb2RpbmdzIGVhZ2VybHksIHRo YXQgaXMgc21hbGwgYW5kIGZhc3QgaW4gbXkgZXhwZXJpZW5jZSwgd2hhdCBpcyBzbG93IGFuZCBi aWcgaXMgdGhlIGNvbnZlcnNpb24gdGFibGVzLCB0aGF0J2Qgc2ltcGxpZnkgYG11c3RfZW5jaW5k ZXgoKWAgZnVydGhlci4NClRoZXNlIGNoYW5nZXMgd291bGQgYWZmZWN0IG1vc3QgU3RyaW5nIG1l dGhvZHMsIHdoaWNoIHVzZQ0KYGBgDQpTVFJfRU5DX0dFVC0+Z2V0X2VuY29kaW5nIHdoaWNoIGRv ZXM6DQogIGdldF9hY3R1YWxfZW5jb2RpbmctPnJiX2VuY19mcm9tX2luZGV4IGFuZCBwb3NzaWJs eSAtPmVuY19mcm9tX2luZGV4DQogIEVOQ09ESU5HX0dFVC0+UkJfRU5DT0RJTkdfR0VUX0lOTElO RUQgYW5kIHBvc3NpYmx5IC0+cmJfZW5jX2dldF9pbmRleC0+ZW5jX2dldF9pbmRleF9zdHItPnJi X2F0dHJfZ2V0DQpgYGANClNvbWUgb2YgdGhlc2UgZGV0YWlscyBhcmUgbWVudGlvbmVkIGluIGh0 dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC82MDk1I2Rpc2N1c3Npb25fcjkxNTE0OTcw OC4NClRoZSBvdmVyaGVhZCBpcyBzbyBsYXJnZSB0aGF0IGl0IGlzIHdvcnRoIGhhbmRsaW5nIHNv bWUgaGFyZGNvZGVkIGVuY29kaW5nIGluZGljZXMgZGlyZWN0bHkgaW4gU3RyaW5nIG1ldGhvZHMu DQpUaGlzIGZlZWxzIHdyb25nLCBnZXR0aW5nIHRoZSBlbmNvZGluZyBmcm9tIGEgU3RyaW5nIHNo b3VsZCBiZSBzaW1wbGUsIHN0cmFpZ2h0Zm9yd2FyZCBhbmQgZmFzdC4NCg0KRnVydGhlciBvcHRp bWl6YXRpb25zIHdpbGwgYmUgdW5sb2NrZWQgYXMgdGhlIGVuY29kaW5nIGxpc3QgYmVjb21lcyBm aXhlZCBhbmQgaW1tdXRhYmxlLg0KRm9yIGV4YW1wbGUsIHRoZSBuYW1lLXRvLUVuY29kaW5nIG1h cCBpcyB0aGVuIGltbXV0YWJsZSBhbmQgY291bGQgdXNlIHBlcmZlY3QgaGFzaGluZy4NCklubGlu ZSBjYWNoaW5nIHRob3NlIGxvb2t1cHMgYWxzbyBiZWNvbWVzIGVhc2llciBhcyB0aGUgdGhlIG1h cCBjYW5ub3QgY2hhbmdlLg0KQWxzbyB0aGF0IG1hcCB3b3VsZCBubyBsb25nZXIgbmVlZCBzeW5j aHJvbml6YXRpb24sIGV0Yy4NCg0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcv DQo=