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_HI,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE,T_SPF_PERMERROR,UNPARSEABLE_RELAY,URIBL_GREY shortcircuit=no autolearn=ham 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 D91CE1F54E for ; Mon, 12 Sep 2022 12:06:05 +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="DF2w1v6p"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 176A7120DBA; Mon, 12 Sep 2022 21:06:04 +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 404EF120DB0 for ; Mon, 12 Sep 2022 21:06:01 +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=M+KDtPIXHKlF3OX7IjrGXq/0taicUPpTVNPnfPCJMKQ=; b=DF2w1v6p04yF1KzExYlyqcCcZEwhwudcPWyVR4DrXpwene9rWyeegLpNRDfImr3QJhPO UBFDGaAIgWSVMiuTVcax5Ve5vhvikxDFXvin8xW7SOF3TBC2U/GlCN2OWC9BnnVefCukBd MKTsK3CeaaihS7EdFWFRSWTNrRhy/Qhh4= Received: by filterdrecv-5657f5d76d-8v4c6 with SMTP id filterdrecv-5657f5d76d-8v4c6-1-631F20A7-1F 2022-09-12 12:05:59.30059263 +0000 UTC m=+1518908.599598028 Received: from herokuapp.com (unknown) by geopod-ismtpd-5-1 (SG) with ESMTP id zg_sUoccQQiEhUfIXH0m5A for ; Mon, 12 Sep 2022 12:05:59.179 +0000 (UTC) Date: Mon, 12 Sep 2022 12:05:59 +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-Issue-Assignee: 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: 86330 X-SG-EID: =?us-ascii?Q?DvL3W2Xo+Vk=2FeUn3F50L=2FNc8u9NqZCnbE0mXZHiyye4R1YZg=2FtAFc0SAFzpcS=2F?= =?us-ascii?Q?Zcr7BqPN=2FYCcMZBMITNeIci9STxYay0JAJWPbek?= =?us-ascii?Q?rFR+qUWwKUF6TkNMzz1kfvuS5Jso1YcsCxHSIAH?= =?us-ascii?Q?fdc3QX=2Fmx8cE3CxwFRccHZpnqK3TSQVO7CiMwmu?= =?us-ascii?Q?G9iTlmjvViyhmynVoL=2FGl8tx696fWeCQBKVuO7S?= =?us-ascii?Q?4UqDTGeRhf32dw1RTravjDepOiFA0+euL64PgBt?= =?us-ascii?Q?5fZ6zvpSMhKnQZXPjx=2FLA=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109889 Subject: [ruby-core:109889] [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 Cg0KU3RhdHVzIGNoYW5nZWQgZnJvbSBDbG9zZWQgdG8gT3Blbg0KDQpEb25lOg0KKiBEZXByZWNh dGUgRW5jb2RpbmcjcmVwbGljYXRlDQoqIFJlbW92ZSBnZXRfYWN0dWFsX2VuY29kaW5nKCkgYW5k IHRoZSBkeW5hbWljIGVuZGlhbiBkZXRlY3Rpb24gZm9yIGR1bW15IFVURi0xNi9VVEYtMzINCg0K U3RpbGwgdG8gZG86DQoqIExpbWl0IHRoZSBudW1iZXIgb2YgZHluYW1pYyBlbmNvZGluZ3MgZGVm aW5lZCBieSByYl9kZWZpbmVfZHVtbXlfZW5jb2RpbmcoKSwgb3IgZGVwcmVjYXRlIGl0IGFmdGVy IGFkZHJlc3NpbmcgYWxsIHVzYWdlcy4gDQoqIEJhc2VkIG9uIGEgZml4ZWQgbnVtYmVyIG9mIGVu Y29kaW5ncywgb3B0aW1pemUgcmJfZW5jX2Zyb21faW5kZXgoKSB0byBhdm9pZCBsb2NraW5nIGFu ZCBvdGhlciBwbGFjZXMgd2hpY2ggY2FuIGJlIHNpbXBsaWZpZWQgZHVlIHRvIHRoZSBmaXhlZCBu dW1iZXIgb2YgZW5jb2RpbmdzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCkZlYXR1cmUgIzE4OTQ5OiBEZXByZWNhdGUgYW5kIHJlbW92ZSByZXBsaWNhdGUgYW5k IGR1bW15IGVuY29kaW5ncw0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE4OTQ5 I2NoYW5nZS05OTEzMg0KDQoqIEF1dGhvcjogRXJlZ29uIChCZW5vaXQgRGFsb3plKQ0KKiBTdGF0 dXM6IE9wZW4NCiogUHJpb3JpdHk6IE5vcm1hbA0KKiBBc3NpZ25lZTogRXJlZ29uIChCZW5vaXQg RGFsb3plKQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KUnVieSBo YXMgYSBsb3Qgb2YgYWNjaWRlbnRhbCBjb21wbGV4aXR5Lg0KU29tZXRpbWVzIGl0IGJlY29tZXMg Y2xlYXIgc29tZSBmZWF0dXJlcyBicmluZyBhIGxvdCBvZiBjb21wbGV4aXR5IGFuZCB5ZXQgcHJv dmlkZSBsaXR0bGUgdmFsdWUgb3IgYXJlIHVzZWQgdmVyeSByYXJlbHkuDQpBbHNvIG1vc3QgUnVi eSB1c2VycyBkbyBub3QgZXZlbiBrbm93IGFib3V0IHRoZXNlIGZlYXR1cmVzLg0KUmVwbGljYXRl IGFuZCBkdW1teSBlbmNvZGluZ3Mgc2VlbSB0byBjbGVhcmx5IGZhbGwgaW50byB0aGlzIGNhdGVn b3J5LCBhbG1vc3Qgbm9ib2R5IHVzZXMgdGhlbSBidXQgdGhleSBhZGQgYSBzaWduaWZpY2FudCBj b21wbGV4aXR5IGFuZCBhbHNvIGFkZCBhIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIG92ZXJoZWFk Lg0KTm90YWJseSwgdGhlIGV4aXN0ZW5jZSBvZiB0aG9zZSBtZWFucyB0aGUgbnVtYmVyIG9mIGVu Y29kaW5ncyBpbiBhIFJ1YnkgcnVudGltZSBpcyBhY3R1YWxseSB2YXJpYWJsZSBhbmQgbm90IGZp eGVkLg0KVGhhdCBtZWFucyBleHRyYSBzeW5jaHJvbml6YXRpb24sIGhhc2h0YWJsZSBsb29rdXBz LCBpbmRpcmVjdGlvbnMsIGZ1bmN0aW9uIGNhbGxzLCBldGMuDQoNCiMjIFJlcGxpY2F0ZSBFbmNv ZGluZ3MNCg0KUmVwbGljYXRlIGVuY29kaW5ncyBhcmUgY3JlYXRlZCB1c2luZyBgRW5jb2Rpbmcj cmVwbGljYXRlKG5hbWUpYC4NCkl0IGFsbW9zdCBzb3VuZHMgbGlrZSBhbiBhbGlhcyBidXQgaW4g ZmFjdCBpdCBpcyBtb3JlIHRoYW4gdGhhdCBhbmQgY3JlYXRlcyBhIG5ldyBFbmNvZGluZyBvYmpl Y3QsIHdoaWNoIGNhbiBiZSB1c2VkIGJ5IGEgU3RyaW5nOg0KYGBgcnVieQ0KZSA9IEVuY29kaW5n OjpVU19BU0NJSS5yZXBsaWNhdGUoJ01ZLVVTLUFTQ0lJJykNCnMgPSAiYWJjIi5mb3JjZV9lbmNv ZGluZyhlKQ0KcCBzLmVuY29kaW5nICMgPT4gZQ0KcCBzLmVuY29kaW5nLm5hbWUgIyA9PiAnTVkt VVMtQVNDSUknDQpgYGANCg0KVGhpcyBzZWVtcyBjb21wbGV0ZWx5IHVzZWxlc3MuDQpUaGVyZSBp cyBhbiBvYnZpb3VzIGZpcnN0IHN0ZXAgaGVyZSB3aGljaCBpcyB0byBjaGFuZ2UgYEVuY29kaW5n I3JlcGxpY2F0ZWAgdG8gcmV0dXJuIHRoZSByZWNlaXZlciwgYW5kIGp1c3QgaW5zdGFsbCBhbiBh bGlhcyBmb3IgaXQuDQpUaGF0IGF2b2lkcyBjcmVhdGluZyBtb3JlIGVuY29kaW5nIGluc3RhbmNl cyBuZWVkbGVzc2x5Lg0KDQpJIHRoaW5rIHdlIHNob3VsZCBhbHNvIGRlcHJlY2F0ZSBhbmQgcmVt b3ZlIHRoaXMgbWV0aG9kIHRob3VnaCwgaXQgaXMgbmV2ZXIgYSBnb29kIGlkZWEgdG8gaGF2ZSBh IGdsb2JhbCBtdXRhYmxlIG1hcCBsaWtlIHRoaXMuDQpJZiBzb21lb25lIHdhbnQgZXh0cmEgYWxp YXNlcyBmb3IgZW5jb2RpbmdzLCB0aGV5IGNhbiBlYXNpbHkgdG8gZG8gc28gYnkgaGF2aW5nIHRo ZWlyIG93biBIYXNoOiBgeyBhbGlhcyA9PiBlbmNvZGluZyB9LmZldGNoKG5hbWUpIHsgRW5jb2Rp bmcuZmluZChuYW1lKSB9YC4NCg0KIyMgRHVtbXkgRW5jb2RpbmdzDQoNCkR1bW15IGVuY29kaW5n cyBhcmUgbm90IHJlYWwgZW5jb2RpbmdzLiBUaGV5IGFyZSBhcnRpZmljaWFsIGVuY29kaW5ncyBk ZXNpZ25lZCB0byBsb29rIGxpa2UgZW5jb2RpbmdzLCBidXQgZG9uJ3QgZnVuY3Rpb24gYXMgZW5j b2RpbmdzIGluIFJ1YnkuDQpGcm9tIHRoZSBkb2NzOg0KYGBgDQplbmMuZHVtbXk/IC0+IHRydWUg b3IgZmFsc2UNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KUmV0dXJucyB0cnVlIGZvciBkdW1teSBlbmNvZGlu Z3MuIEEgZHVtbXkgZW5jb2RpbmcgaXMgYW4gZW5jb2RpbmcgZm9yDQp3aGljaCBjaGFyYWN0ZXIg aGFuZGxpbmcgaXMgbm90IHByb3Blcmx5IGltcGxlbWVudGVkLiBJdCBpcyB1c2VkIGZvcg0Kc3Rh dGVmdWwgZW5jb2RpbmdzLg0KYGBgDQoNCkkgd29uZGVyIHdoeSB3ZSBoYXZlIHRob3NlIGhhbGYt aW1wbGVtZW50ZWQgZW5jb2RpbmdzIGluIGNvcmUsIGl0IHNvdW5kcyB0byBtZSBsaWtlIHVuZmlu aXNoZWQgd29yayB3aGljaCBzaG91bGQgbm90IGhhdmUgYmVlbiBtZXJnZWQuDQoNClRoZSAiY29k ZXBvaW50cyIgb2YgZHVtbXkgZW5jb2RpbmdzIGFyZSBqdXN0ICJieXRlcyIgYW5kIHNvIHRoZXkg YmVoYXZlIHRoZSBzYW1lIGFzIGBFbmNvZGluZzo6QklOQVJZYCwgd2l0aCB0aGUgZXhjZXB0aW9u IG9mIHRoZSBVVEYtMTYgYW5kIFVURi0zMiBkdW1teSBlbmNvZGluZ3MuDQoNCiMjIyBVVEYtMTYg YW5kIFVURi0zMiBkdW1teSBlbmNvZGluZ3MNCg0KVGhlc2UgdHdvIGFyZSBzcGVjaWFsIGR1bW15 IGVuY29kaW5ncy4NCldoYXQgdGhleSBkbyBpcyB0aGV5IHNjYW4gdGhlIGZpcnN0IDIgb3IgNCBi eXRlcyBvZiB0aGUgU3RyaW5nLCBhbmQgaWYgdGhvc2UgYnl0ZXMgYXJlIGEgYnl0ZS1vcmRlciBt YXJrIChCT00pLA0KdGhlIHRydWUgImFjdHVhbCIgZW5jb2RpbmcgaXMgcmVzb2x2ZWQgdG8gVVRG LTE2QkUvVVRGLTE2TEUgb3IgVVRGLTMyQkUvVVRGLTMyTEUuDQpPdGhlcndpc2UsIGBFbmNvZGlu Zzo6QklOQVJZYCBpcyByZXR1cm5lZC4NClRoaXMgbG9naWMgaXMgZG9uZSBieSBgZ2V0X2FjdHVh bF9lbmNvZGluZygpYC4NCg0KV2hhdCBpcyB3ZWlyZCBpcyB0aGlzIGNoZWNrIGlzIG5vdCBkb25l IG9uIFN0cmluZyBjcmVhdGlvbiwgbm8sIGl0IGlzIGRvbmUgKmV2ZXJ5IHRpbWUqIHRoZSBlbmNv ZGluZyBvZiB0aGF0IFN0cmluZyBpcyBhY2Nlc3NlZCAoYW5kIHRoZSByZXN1bHQgaXMgbm90IHN0 b3JlZCBvbiB0aGUgU3RyaW5nKS4NClRoYXQgaXMgYSBuZWVkbGVzcyBvdmVyaGVhZCBhbmQgcmVh bGx5IHVucmVsaWFibGUgc2VtYW50aWNzLg0KRG8gd2UgcmVhbGx5IHdhbnQgYSBTdHJpbmcgd2hp Y2ggYXV0b21hZ2ljYWxseSBjaGFuZ2VzIGJldHdlZW4gVVRGLTE2TEUgYW5kIFVURi0xNkJFIGJh c2VkIG9uIG11dGF0aW5nIGl0cyBieXRlcz8gSSB0aGluayBub2JvZHkgd2FudHMgdGhhdDoNCmBg YHJ1YnkNCnMgPSAiXHhGRlx4RkVhXHgwMGJceDAwY1x4MDBkXHgwMCIuZm9yY2VfZW5jb2Rpbmco IlVURi0xNiIpDQpwIHMgIyA9PiAiXHVGRUZGYWJjZCINCnMuc2V0Ynl0ZSAwLCAyNTQNCnMuc2V0 Ynl0ZSAxLCAyNTUNCnAgcyAjID0+ICJcdUZFRkZcdTYxMDBcdTYyMDBcdTYzMDBcdTY0MDAiDQpg YGANCg0KSSB0aGluayB0aGUgcGF0aCBpcyBjbGVhciwgd2Ugc2hvdWxkIGRlcHJlY2F0ZSBhbmQg dGhlbiByZW1vdmUgRW5jb2Rpbmc6OlVURl8xNiBhbmQgRW5jb2Rpbmc6OlVURl8zMiAoZHVtbXkg ZW5jb2RpbmdzKS4NCkFuZCB0aGVuIHdlIG5vIGxvbmdlciBuZWVkIGBnZXRfYWN0dWFsX2VuY29k aW5nKClgIGFuZCB0aGUgb3ZlcmhlYWQgaXQgYWRkcyB0byBldmVyeSBTdHJpbmcgbWV0aG9kLg0K DQpXZSBjb3VsZCBhbHNvIGtlZXAgdGhvc2UgY29uc3RhbnRzIGFuZCBtYWtlIHRoZW0gcmVmZXIg dGhlIG5hdGl2ZS1lbmRpYW4gVVRGLTE2LzMyLg0KQnV0IHRoYXQgY291bGQgY2F1c2UgY29uZnVz aW5nIGVycm9ycyBhcyB3ZSB3b3VsZCBjaGFuZ2UgdGhlIG1lYW5pbmcgb2YgdGhlbS4NCldlIGNv dWxkIGFkZCBgRW5jb2Rpbmc6OlVURl8xNk5FYCAvIGBFbmNvZGluZzo6VVRGXzE2X05BVElWRV9F TkRJQU5gIGlmIHRoYXQgaXMgdXNlZnVsLg0KDQpBbm90aGVyIHBvc3NpYmlsaXR5IHdvdWxkIGJl IHRvIHJlc29sdmUgdGhlc2UgZW5jb2RpbmdzIG9uIFN0cmluZyBjcmVhdGlvbiwgbGlrZToNCmBg YA0KIlx4RkZceEZFIi5mb3JjZV9lbmNvZGluZygiVVRGLTE2IikuZW5jb2RpbmcgIyA9PiBVVEYt MTZMRQ0KU3RyaW5nLm5ldygiXHhGRlx4RkUiLCBlbmNvZGluZzogRW5jb2Rpbmc6OlVURl8xNiku ZW5jb2RpbmcgIyA9PiBVVEYtMTZMRQ0KImFiIi5mb3JjZV9lbmNvZGluZygiVVRGLTE2IikuZW5j b2RpbmcgIyBleGNlcHRpb24sIG5vdCBhIEJPTQ0KU3RyaW5nLm5ldygiYWIiLCBlbmNvZGluZzog RW5jb2Rpbmc6OlVURl8xNikuZW5jb2RpbmcgIyBleGNlcHRpb24sIG5vdCBhIEJPTQ0KYGBgDQpJ IHRoaW5rIGl0IGlzIHVubmVjZXNzYXJ5IHRvIGtlZXAgc3VjaCBjb21wbGV4aXR5IHRob3VnaC4N CkEgY2xhc3MgbWV0aG9kIG9uIFN0cmluZyBvciBFbmNvZGluZyBsaWtlIGUuZy4gYEVuY29kaW5n LmZpbmRfZnJvbV9ib20oc3RyaW5nKWAgaXMgc28gbXVjaCBjbGVhcmVyIGFuZCBlZmZpY2llbnQg KG5vIG5lZWQgdG8gc3BlY2lhbCBjYXNlIHRob3NlIGVuY29kaW5ncyBpbiBTdHJpbmcubmV3LCAj Zm9yY2VfZW5jb2RpbmcsIGV0YykuDQoNCkZXSVcgSlJ1Ynkgc2VlbXMgdG8gdXNlIGBnZXRBY3R1 YWxFbmNvZGluZygpYCBvbmx5IGluIDIgcGxhY2VzIChzY2FuRm9yQ29kZVJhbmdlLCBpbnNwZWN0 KSwgd2hpY2ggaXMgYW4gaW5kaWNhdGlvbiB0aG9zZSBkdW1teSBVVEYgZW5jb2RpbmdzIGFyZSBi YXJlbHkgdXNlZCBpZiBldmVyLiBTaW1pbGFybHksIFRydWZmbGVSdWJ5IG9ubHkgaGFzIDQgdXNh Z2VzIG9mIGBHZXRBY3R1YWxFbmNvZGluZ05vZGVgLg0KDQojIyMgRXhpc3RpbmcgZHVtbXkgZW5j b2RpbmdzDQoNCmBgYA0KPiBFbmNvZGluZy5saXN0LnNlbGVjdCgmOmR1bW15PykgDQpbIzxFbmNv ZGluZzpVVEYtMTYgKGR1bW15KT4sICAjPEVuY29kaW5nOlVURi0zMiAoZHVtbXkpPiwNCiAjPEVu Y29kaW5nOklCTTAzNyAoZHVtbXkpPiwgIzxFbmNvZGluZzpVVEYtNyAoZHVtbXkpPiwNCiAjPEVu Y29kaW5nOklTTy0yMDIyLUpQIChkdW1teSk+LCAjPEVuY29kaW5nOklTTy0yMDIyLUpQLTIgKGR1 bW15KT4sICM8RW5jb2Rpbmc6SVNPLTIwMjItSlAtS0RESSAoZHVtbXkpPiwNCiAjPEVuY29kaW5n OkNQNTAyMjAgKGR1bW15KT4sICM8RW5jb2Rpbmc6Q1A1MDIyMSAoZHVtbXkpPl0NCmBgYA0KDQpT byBiZXNpZGVzIFVURi0xNi9VVEYtMzIgZHVtbXksIGl0J3Mgb25seSA3IGVuY29kaW5ncy4NCkRv ZXMgYW55b25lIHVzZSBvbmUgb2YgdGhlc2UgNyBkdW1teSBlbmNvZGluZ3M/DQoNCldoYXQgaXMg aW50ZXJlc3RpbmcgdG8gbm90ZSwgaXMgdGhhdCB0aGVzZSBlbmNvZGluZ3MgYXJlIGV4YWN0bHkg dGhlIG9uZXMgdGhhdCBhcmUgYWxzbyBub3QgQVNDSUktY29tcGF0aWJsZSwgd2l0aCB0aGUgZXhj ZXB0aW9uIG9mIFVURi0xNkJFL1VURi0xNkxFL1VURi0zMkJFL1VURi0zMkxFIChub24tZHVtbXkp Lg0KQXMgYSBub3RlLCBVVEYtezE2LDMyfXtCRSxMRX0gYXJlIEFTQ0lJLWNvbXBhdGlibGUgaW4g Y29kZXBvaW50cyBidXQgbm90IGluIGJ5dGVzLCBhbmQgUnVieSB1c2VzIHRoZSBieXRlcyBkZWZp bml0aW9uIG9mIEFTQ0lJLWNvbXBhdGlibGUuDQpUaGVyZSBpcyBwb3RlbnRpYWwgdG8gc2ltcGxp ZnkgZW5jb2RpbmcgY29tcGF0aWJpbGl0eSBydWxlcyBhbmQgZW5jb2RpbmcgY29tcGF0aWJpbGl0 eSBjaGVja3MgYmFzZWQgb24gdGhhdC4NClNvIHdoYXQgdGhpcyBtZWFucyBpcyBpZiB3ZSByZW1v dmVkIGR1bW15IGVuY29kaW5ncywgYWxsIGVuY29kaW5ncyBleGNlcHQgVVRGLXsxNiwzMn17QkUs TEV9IHdvdWxkIGJlIEFTQ0lJLWNvbXBhdGlibGUsIHdoaWNoIHdvdWxkIGxlYWQgdG8gc2lnbmlm aWNhbnQgc2ltcGxpZmljYXRpb25zIGZvciBtYW55IHN0cmluZyBvcGVyYXRpb25zIHdoaWNoIGN1 cnJlbnRseSBuZWVkIHRvIGhhbmRsZSBkdW1teSBlbmNvZGluZ3Mgc3BlY2lhbGx5Lg0KVW5pY29k ZSBlbmNvZGluZ3MgbGlrZSBVVEYtezE2LDMyfXtCRSxMRX0gYWxyZWFkeSBoYXZlIHNwZWNpYWwg YmVoYXZpb3IgZm9yIHNvbWUgUnVieSBtZXRob2RzLCBzbyB0aG9zZSBhcmUgYWxyZWFkeSBoYW5k bGVkIHNwZWNpYWxseSBpbiBzb21lIHBsYWNlcyAodGhleSBhcmUgdGhlIG9ubHkgZW5jb2Rpbmdz IHdpdGggbWluTGVuZ3RoID4gMSkuDQoNCmBgYA0KPiBFbmNvZGluZy5saXN0LnJlamVjdCgmOmFz Y2lpX2NvbXBhdGlibGU/KQ0KWyM8RW5jb2Rpbmc6VVRGLTE2QkU+LCAjPEVuY29kaW5nOlVURi0x NkxFPiwNCiAjPEVuY29kaW5nOlVURi0zMkJFPiwgIzxFbmNvZGluZzpVVEYtMzJMRT4sDQogIzxF bmNvZGluZzpVVEYtMTYgKGR1bW15KT4sICM8RW5jb2Rpbmc6VVRGLTMyIChkdW1teSk+LA0KICM8 RW5jb2Rpbmc6SUJNMDM3IChkdW1teSk+LCAjPEVuY29kaW5nOlVURi03IChkdW1teSk+LA0KICM8 RW5jb2Rpbmc6SVNPLTIwMjItSlAgKGR1bW15KT4sICM8RW5jb2Rpbmc6SVNPLTIwMjItSlAtMiAo ZHVtbXkpPiwgIzxFbmNvZGluZzpJU08tMjAyMi1KUC1LRERJIChkdW1teSk+LA0KICM8RW5jb2Rp bmc6Q1A1MDIyMCAoZHVtbXkpPiwgIzxFbmNvZGluZzpDUDUwMjIxIChkdW1teSk+XQ0KYGBgDQoN CldoYXQgY2FuIHdlIGRvIHdpdGggc3VjaCBhIGR1bW15IG5vbi1BU0NJSS1jb21wYXRpYmxlIGVu Y29kaW5nPw0KQWxtb3N0IG5vdGhpbmcgdXNlZnVsOg0KYGBgcnVieQ0KcyA9ICJhYmMiLmVuY29k ZSgiSUJNMDM3IikNCj0+ICJceDgxXHg4Mlx4ODMiDQo+IHMuYnl0ZXMNCj0+IFsxMjksIDEzMCwg MTMxXQ0KPiBzLmNvZGVwb2ludHMNCj0+IFsxMjksIDEzMCwgMTMxXQ0KPiBzID09ICJhYmMiDQo9 PiBmYWxzZQ0KPiAiw6l0w6kiLmVuY29kZSgiSUJNMDM3IikNCj0+ICJceDUxXHhBM1x4NTEiDQpg YGANCg0KU28gYWJvdXQgdGhlIG9ubHkgdGhpbmcgdGhhdCB3b3JrcyB3aXRoIHRoZW0gaXMgYFN0 cmluZyNlbmNvZGVgLg0KDQpJIHRoaW5rIHdlIGNvdWxkIHByZXNlcnZlIHRoYXQgZnVuY3Rpb25h bGl0eSwgaWYgYWN0dWFsbHkgdXNlZCAoZG9lcyBhbnlvbmUgdXNlIG9uZSBvZiB0aGVzZSA3IGR1 bW15IGVuY29kaW5ncz8pLCB0aHJvdWdoOg0KYGBgcnVieQ0KPiAiw6l0w6kiLmVuY29kZSgiSUJN MDM3IikNCj0+ICJceDUxXHhBM1x4NTEiICguZW5jb2RpbmcgPT0gQklOQVJZKQ0KPiAiXHg1MVx4 QTNceDUxIi5lbmNvZGUoIlVURi04IiwgIklCTTAzNyIpICMgZW5jb2RlIGZyb20gSUJNMDM3IHRv IFVURi04DQo9PiAiw6l0w6kiICguZW5jb2RpbmcgPT0gVVRGLTgpDQpgYGANCg0KVGhhdCB3YXkg dGhlcmUgaXMgbm8gbmVlZCBmb3IgdGhvc2UgdG8gYmUgRW5jb2RpbmcgaW5zdGFuY2VzLCB3ZSB3 b3VsZCBvbmx5IG5lZWQgdGhlIGNvbnZlcnNpb24gdGFibGVzLg0KDQpJdCBpcyBldmVuIGJldHRl ciBpZiB3ZSBjYW4gcmVtb3ZlIHRoZW0sIHNvIHRoZSBub3Rpb24gb2YgImR1bW15IGVuY29kaW5n cyIgY2FuIGRpc2FwcGVhciBjb21wbGV0ZWx5IGFuZCBub2JvZHkgbmVlZHMgdG8gdW5kZXJzdGFu ZCBvciBpbXBsZW1lbnQgdGhlbS4NCg0KIyMjIHJiX2RlZmluZV9kdW1teV9lbmNvZGluZyhuYW1l KQ0KDQpUaGUgQy1BUEkgaGFzIGByYl9kZWZpbmVfZHVtbXlfZW5jb2RpbmcoY29uc3QgY2hhciAq bmFtZSlgLg0KVGhpcyBjcmVhdGVzIGEgbmV3IEVuY29kaW5nIGluc3RhbmNlIHdpdGggYGR1bW15 Pz10cnVlYCwgYW5kIGl0IGlzIGFsc28gbm9uLUFTQ0lJLWNvbXBhdGlibGUuDQpUaGVyZSBzZWVt cyB0byBiZSBubyBwdXJwb3NlIHRvIHRoaXMgYmVzaWRlcyBzdG9yaW5nIHRoZSBtZXRhZGF0YSBv ZiBhbiBlbmNvZGluZyB3aGljaCBkb2VzIG5vdCBleGlzdCBpbiBSdWJ5Lg0KVGhpcyBzZWVtcyBh IHJlYWxseSBleHBlbnNpdmUvY29tcGxleCB3YXkgdG8gaGFuZGxlIHRoYXQgZnJvbSB0aGUgVk0g cG9pbnQgb2YgdmlldyAoYmVjYXVzZSBpdCBkeW5hbWljYWxseSBjcmVhdGVzIGFuIEVuY29kaW5n IGFuZCBhZGQgaXQgdG8gbGlzdHMvbWFwcy9ldGMpLg0KQSBzaW1wbGUgcmVwbGFjZW1lbnQgd291 bGQgYmUgdG8gbWFyayB0aGUgU3RyaW5nIGFzIEJJTkFSWSBhbmQgc2F2ZSB0aGUgZW5jb2Rpbmcg bmFtZSBhcyBhbiBpbnN0YW5jZSB2YXJpYWJsZSBvZiB0aGF0IFN0cmluZy4NClNpbmNlIGFueXdh eSBSdWJ5IGNhbid0IHVuZGVyc3RhbmQgYW55dGhpbmcgYWJvdXQgdGhhdCBTdHJpbmcsIGl0J3Mg anVzdCByYXcgYnl0ZXMgdG8gUnVieSdzIGV5ZXMuDQoNCiMjIFN1bW1hcnkNCg0KSSBzdWdnZXN0 IHdlIGRlcHJlY2F0ZSByZXBsaWNhdGUgYW5kIGR1bW15IGVuY29kaW5ncyBpbiBSdWJ5IDMuMi4N CkFuZCB0aGVuIHdlIHJlbW92ZSB0aGVtIGluIHRoZSBuZXh0IHZlcnNpb24uDQoNClRoaXMgd2ls bCBzaWduaWZpY2FudGx5IHNpbXBsaWZ5IHN0cmluZy1yZWxhdGVkIG1ldGhvZHMsIGFuZCB0aGUg YmVoYXZpb3IgZXhwb3NlZCB0byBSdWJ5IHVzZXJzLg0KDQpJdCB3aWxsIGFsc28gc2lnbmlmaWNh bnRseSBzcGVlZHVwIGVuY29kaW5nIGxvb2t1cCBpbiBDUnVieSAoYW5kIG90aGVyIFJ1YnkgaW1w bGVtZW50YXRpb25zKS4NCldpdGggYSBmaXhlZCBudW1iZXIgb2YgZW5jb2RpbmdzIHdlIGNhbiBl bnN1cmUgYWxsIGVuY29kaW5nIGluZGljZXMgZml0IGluIDcgYml0cywgYW5kIGBFTkNPRElOR19H RVRgIGNhbiBiZSBzaW1wbHkgYFJCX0VOQ09ESU5HX0dFVF9JTkxJTkVEYC4NCmBnZXRfYWN0dWFs X2VuY29kaW5nKClgIHdpbGwgYmUgZ29uZSBhbmQgaXRzIG92ZXJoZWFkIGFzIHdlbGwuDQpgcmJf ZW5jX2Zyb21faW5kZXgoKWAgd291bGQgYmUganVzdCBgcmV0dXJuIGdsb2JhbF9lbmNfdGFibGUt Pmxpc3RbaW5kZXhdLmVuYztgLCBpbnN0ZWFkIG9mIHRoZSBleHBlbnNpdmUgYmVoYXZpb3IgY3Vy cmVudGx5IHdpdGggYEdMT0JBTF9FTkNfVEFCTEVfRVZBTGAgd2hpY2ggdGFrZXMgYSBsb2NrIGFu ZCBtb3JlIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIFJhY3RvcnMuDQpNYW55IGNoZWNrcyBpbiB0 aGVzZSBtZXRob2RzIHdvdWxkIGJlIHJlbW92ZWQgYXMgd2VsbC4NCllldCBhbm90aGVyIGltcHJv dmVtZW50IHdvdWxkIGJlIHRvIGxvYWQgYWxsIGVuY29kaW5ncyBlYWdlcmx5LCB0aGF0IGlzIHNt YWxsIGFuZCBmYXN0IGluIG15IGV4cGVyaWVuY2UsIHdoYXQgaXMgc2xvdyBhbmQgYmlnIGlzIHRo ZSBjb252ZXJzaW9uIHRhYmxlcywgdGhhdCdkIHNpbXBsaWZ5IGBtdXN0X2VuY2luZGV4KClgIGZ1 cnRoZXIuDQpUaGVzZSBjaGFuZ2VzIHdvdWxkIGFmZmVjdCBtb3N0IFN0cmluZyBtZXRob2RzLCB3 aGljaCB1c2UNCmBgYA0KU1RSX0VOQ19HRVQtPmdldF9lbmNvZGluZyB3aGljaCBkb2VzOg0KICBn ZXRfYWN0dWFsX2VuY29kaW5nLT5yYl9lbmNfZnJvbV9pbmRleCBhbmQgcG9zc2libHkgLT5lbmNf ZnJvbV9pbmRleA0KICBFTkNPRElOR19HRVQtPlJCX0VOQ09ESU5HX0dFVF9JTkxJTkVEIGFuZCBw b3NzaWJseSAtPnJiX2VuY19nZXRfaW5kZXgtPmVuY19nZXRfaW5kZXhfc3RyLT5yYl9hdHRyX2dl dA0KYGBgDQpTb21lIG9mIHRoZXNlIGRldGFpbHMgYXJlIG1lbnRpb25lZCBpbiBodHRwczovL2dp dGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvNjA5NSNkaXNjdXNzaW9uX3I5MTUxNDk3MDguDQpUaGUg b3ZlcmhlYWQgaXMgc28gbGFyZ2UgdGhhdCBpdCBpcyB3b3J0aCBoYW5kbGluZyBzb21lIGhhcmRj b2RlZCBlbmNvZGluZyBpbmRpY2VzIGRpcmVjdGx5IGluIFN0cmluZyBtZXRob2RzLg0KVGhpcyBm ZWVscyB3cm9uZywgZ2V0dGluZyB0aGUgZW5jb2RpbmcgZnJvbSBhIFN0cmluZyBzaG91bGQgYmUg c2ltcGxlLCBzdHJhaWdodGZvcndhcmQgYW5kIGZhc3QuDQoNCkZ1cnRoZXIgb3B0aW1pemF0aW9u cyB3aWxsIGJlIHVubG9ja2VkIGFzIHRoZSBlbmNvZGluZyBsaXN0IGJlY29tZXMgZml4ZWQgYW5k IGltbXV0YWJsZS4NCkZvciBleGFtcGxlLCB0aGUgbmFtZS10by1FbmNvZGluZyBtYXAgaXMgdGhl biBpbW11dGFibGUgYW5kIGNvdWxkIHVzZSBwZXJmZWN0IGhhc2hpbmcuDQpJbmxpbmUgY2FjaGlu ZyB0aG9zZSBsb29rdXBzIGFsc28gYmVjb21lcyBlYXNpZXIgYXMgdGhlIHRoZSBtYXAgY2Fubm90 IGNoYW5nZS4NCkFsc28gdGhhdCBtYXAgd291bGQgbm8gbG9uZ2VyIG5lZWQgc3luY2hyb25pemF0 aW9uLCBldGMuDQoNCiMjIFRvIERlY2lkZQ0KDQpFYWNoIGl0ZW0gaXMgaW5kZXBlbmRlbnQuIEkg dGhpbmsgMSAmIDIgYXJlIHZlcnkgaW1wb3J0YW50LCAzIGxlc3MgYnV0IHdvdWxkIGJlIG5pY2Uu DQoNCjEuIERlcHJlY2F0ZSBhbmQgdGhlbiByZW1vdmUgYEVuY29kaW5nI3JlcGxpY2F0ZWAgYW5k IGByYl9kZWZpbmVfZHVtbXlfZW5jb2RpbmcoKWAuIFdpdGggdGhhdCB0aGVyZSBpcyBhIGZpeGVk IG51bWJlciBvZiBlbmNvZGluZ3MsIGEgbG90IG9mIHNpbXBsaWZpY2F0aW9ucyBhbmQgbWFueSBv cHRpbWl6YXRpb25zIGJlY29tZSBhdmFpbGFibGUuIFRoZXkgYXJlIHVzZWQgcmVzcGVjdGl2ZWx5 IGluIG9ubHkgMSBnZW0gYW5kIDUgZ2Vtcywgc2VlIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3Jn L2lzc3Vlcy8xODk0OSNub3RlLTQNCjIuIERlcHJlY2F0ZSBhbmQgdGhlbiByZW1vdmUgdGhlIGR1 bW15IFVURi0xNiBhbmQgVVRGLTMyIGVuY29kaW5ncy4gVGhpcyByZW1vdmVzIHRoZSBuZWVkIGZv ciBgZ2V0X2FjdHVhbF9lbmNvZGluZygpYCB3aGljaCBpcyBleHBlbnNpdmUuIFRoaXMgZnVuY3Rp b25hbGl0eSBzZWVtcyByYXJlbHkgdXNlZCBpbiBwcmFjdGljZSwgYW5kIGl0IG9ubHkgd29ya3Mg d2hlbiBzdWNoIHN0cmluZ3MgaGF2ZSBhIEJPTSwgd2hpY2ggaXMgdmVyeSByYXJlLg0KMy4gRGVw cmVjYXRlIGFuZCB0aGVuIHJlbW92ZSBvdGhlciBkdW1teSBlbmNvZGluZ3MsIHNvIHRoZXJlIGFy ZSBubyBtb3JlIGR1bW15ICJoYWxmLWltcGxlbWVudGVkIiBlbmNvZGluZ3MgYW5kIGFsbCBlbmNv ZGluZ3MgYXJlIEFTQ0lJLWNvbXBhdGlibGUgaW4gdGVybXMgb2YgY29kZXBvaW50cy4NCg0KDQoN Ci0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQo=