From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on starla X-Spam-Level: X-Spam-Status: No, score=-1.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 Received: from nue.mailmanlists.eu (nue.mailmanlists.eu [94.130.110.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 550261F4CC for ; Fri, 3 Jan 2025 17:38:18 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=pass (1024-bit key; unprotected) header.d=ml.ruby-lang.org header.i=@ml.ruby-lang.org header.a=rsa-sha256 header.s=mail header.b=cckH6I4X; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.a=rsa-sha256 header.s=s1 header.b=tefNYt9/; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ml.ruby-lang.org; s=mail; t=1735925865; bh=8Ywf3n4KNNTXjMXGQpCdDEmCpTtUSinH1vzZQ2qJYf4=; h=Date:References:To:Reply-To:Subject:List-Id:List-Archive: List-Help:List-Owner:List-Post:List-Subscribe:List-Unsubscribe: From:Cc:From; b=cckH6I4XOQ77GlYZhJQkplCgITRhPJMpxIdRpBK82OkW/8jlQYyWKse92gwc8vfS9 PWYB78vxPcWRMsD3mOshdnozYG1vIwSh1WypGOOdF/aiejJVYrmjed+CJeEe2eTpRl b8yBtUpgW7Bk6Fu+FLBOxPUptJCPpbRc0x5p1F4c= Received: from nue.mailmanlists.eu (localhost [IPv6:::1]) by nue.mailmanlists.eu (Postfix) with ESMTP id 920AA463F2 for ; Fri, 3 Jan 2025 17:37:45 +0000 (UTC) Authentication-Results: nue.mailmanlists.eu; dkim=pass (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.a=rsa-sha256 header.s=s1 header.b=tefNYt9/; dkim-atps=neutral Received: from s.wfbtzhsv.outbound-mail.sendgrid.net (s.wfbtzhsv.outbound-mail.sendgrid.net [159.183.224.104]) by nue.mailmanlists.eu (Postfix) with ESMTPS id 11334463C8 for ; Fri, 3 Jan 2025 17:37:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ruby-lang.org; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc:content-type:from:subject:to; s=s1; bh=h1vYh6fO23dOZ5u5WW6grNyq8WHPceswg2PQ5d2GnIA=; b=tefNYt9/mTSsLNeE+lQMkj/VGMVGUakhnbeR09WUMXZCzQS0zZNAjnjk2uLKwe4YoDuD X59aqy8aKrO+yglx931l6GQuU6aEDTslL90yQIgEXNyZ2RKbHkeJrBcHAS4Yi6XYd1TvbZ ia4TXT9FPkm+AzQIQaLUEVs4R+UKF/qOyTmnvE2/QDc09/onCbY4Ohe3UcFelkauNEyBMg UvsqD4jfsZe0a2lzrQ5BfSTyP73eAOkAKEP1z8LtZql/toUnTGU3OXTUWvar2izddY4wrE f2kERJFSd185CmsdRaT5zitZAb3S6DNnbESpiCROmmX5Pycmdu++r+oMUD1jIIFQ== Received: by recvd-5c8ccdbd88-hf945 with SMTP id recvd-5c8ccdbd88-hf945-1-67782063-2 2025-01-03 17:37:39.067411448 +0000 UTC m=+4306529.075104545 Received: from herokuapp.com (unknown) by geopod-ismtpd-33 (SG) with ESMTP id Ini-clynQo6hyVgn-fhAOg for ; Fri, 03 Jan 2025 17:37:38.983 +0000 (UTC) Date: Fri, 03 Jan 2025 17:37:39 +0000 (UTC) Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 20999 X-Redmine-Issue-Author: bkuhlmann X-Redmine-Issue-Priority: Normal X-Redmine-Sender: kddnewton 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: 97144 X-SG-EID: =?us-ascii?Q?u001=2E41nWPij=2FD1kdGmpgWeHScbb9X8tZePZrQQx3bl8Vy2odBuMhLMhId2kIq?= =?us-ascii?Q?I4MmMJ43lNHfKPNNds=2Fb3JsTYpYoWyQb3+sPV4d?= =?us-ascii?Q?vscaSKwkBzXJMf7EwI=2FVbGjCVOYuSJKW5WWHa9w?= =?us-ascii?Q?4LaBvCuwpS99QjF8gif6kZDMxaQdPVImBuk6jry?= =?us-ascii?Q?GM2e3dV07fQyfXau8C+ND31VkErOwPEWoAldrks?= =?us-ascii?Q?Ns1KRGamaCGEqlcWkdHymnw7mm94msHEKM58DZe?= =?us-ascii?Q?YPZLXx3KCDE+pYzUAwefOGbhXg=3D=3D?= To: ruby-core@ml.ruby-lang.org X-Entity-ID: u001.I8uzylDtAfgbeCOeLBYDww== Message-ID-Hash: MNT6TA56P3UBF4ABLZIZF52SMQ7UC723 X-Message-ID-Hash: MNT6TA56P3UBF4ABLZIZF52SMQ7UC723 X-MailFrom: bounces+313651-b711-ruby-core=ml.ruby-lang.org@em5188.ruby-lang.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.9 Precedence: list Reply-To: Ruby developers Subject: [ruby-core:120468] [Ruby master Feature#20999] Add RubyVM object source support List-Id: Ruby developers Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: "kddnewton (Kevin Newton) via ruby-core" Cc: "kddnewton (Kevin Newton)" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SXNzdWUgIzIwOTk5IGhhcyBiZWVuIHVwZGF0ZWQgYnkga2RkbmV3dG9uIChLZXZpbiBOZXd0b24p Lg0KDQoNClByb2MsIE1ldGhvZCwgYW5kIFVuYm91bmRNZXRob2QgYWxsIHJlc3BvbmQgdG8gYCNz b3VyY2VfbG9jYXRpb25gIGFscmVhZHksIHNvIHRoZXJlIGlzIHByaW9yIGFydCBoZXJlIHdlIGNh biBsZWFuIG9uLiBQZXJzb25hbGx5IEknZCByYXRoZXIgc2VlIHRoYXQgbWV0aG9kIGV4cGFuZGVk IHRvIGluY2x1ZGUgY29sdW1ucyBhbmQgZW5kIGxpbmUsIGJlY2F1c2UgdGhhdCBzaW1wbGlmaWVz IHRoaXMgd2hvbGUgZGlzY3Vzc2lvbi4gRnVydGhlciBlbmhhbmNpbmcgYFJ1YnlWTWAgd2hlbiBp dCBpcyBwcmltYXJpbHkgbWVhbnQgZm9yIGRlYnVnZ2luZyBzZWVtcyBsaWtlIG5vdCBhIGdyZWF0 IGRpcmVjdGlvbi4NCg0KSWYgeW91IF9kb18gaGF2ZSB0aGUgY29sdW1ucyBhbmQgZW5kIGxpbmUs IHRoZW4gaXQncyBwb3NzaWJsZSB0byByZWFkIHRoZSBmaWxlIGFuZCBleHRyYWN0IHRoYXQgc291 cmNlIHlvdSdyZSB0YWxraW5nIGFib3V0LiBJZiBgUnVieVZNYCBpc24ndCBkZWZpbmVkLCB5b3Ug Y2FuIHVzZSBQcmlzbSB0byBkbyBhIHNsaWdodGx5IGJldHRlciBlZHVjYXRlZCBndWVzcy4gSGVy ZSdzIGEgc2NyaXB0IHRoYXQgY29tYmluZXMgYm90aCwgc28gdGhhdCBpdCdzIHBvcnRhYmxlIHRv IG90aGVyIFJ1YnkgaW1wbGVtZW50YXRpb25zOg0KDQpgYGBydWJ5DQpkZWYgcHJpc21fY2FsbGFi bGUoY2FsbGFibGUsIGFic29sdXRlX3BhdGgsIGxpbmVubykNCiAgcmVxdWlyZSAicHJpc20iDQog IHJvb3QgPSBQcmlzbS5wYXJzZV9maWxlKGFic29sdXRlX3BhdGgpLnZhbHVlDQoNCiAgY2FzZSBj YWxsYWJsZQ0KICB3aGVuIE1ldGhvZCwgVW5ib3VuZE1ldGhvZA0KICAgIHJvb3QuYnJlYWR0aF9m aXJzdF9zZWFyY2ggZG8gfG5vZGV8DQogICAgICBub2RlLnN0YXJ0X2xpbmUgPT0gbGluZW5vICYm IG5vZGUuaXNfYT8oUHJpc206OkRlZk5vZGUpICYmDQogICAgICAgIG5vZGUubmFtZSA9PSBjYWxs YWJsZS5uYW1lDQogICAgZW5kDQogIHdoZW4gUHJvYw0KICAgIHJvb3QuYnJlYWR0aF9maXJzdF9z ZWFyY2ggZG8gfG5vZGV8DQogICAgICBub2RlLnN0YXJ0X2xpbmUgPT0gbGluZW5vICYmICgNCiAg ICAgICAgKG5vZGUuaXNfYT8oUHJpc206OkNhbGxOb2RlKSAmJiBub2RlLm5hbWUgPT0gOnByb2Mp IHx8DQogICAgICAgICAgbm9kZS5pc19hPyhQcmlzbTo6TGFtYmRhTm9kZSkNCiAgICAgICkNCiAg ICBlbmQNCiAgZW5kDQplbmQNCg0KZGVmIHNvdXJjZV9sb2NhdGlvbihjYWxsYWJsZSkNCiAgaWYg ZGVmaW5lZD8oUnVieVZNOjpJbnN0cnVjdGlvblNlcXVlbmNlKQ0KICAgIGlzZXEgPSBSdWJ5Vk06 Okluc3RydWN0aW9uU2VxdWVuY2Uub2YoY2FsbGFibGUpDQogICAgW2lzZXEuYWJzb2x1dGVfcGF0 aCwgKmlzZXEudG9fYVs0XVs6Y29kZV9sb2NhdGlvbl1dDQogIGVsc2UNCiAgICBhYnNvbHV0ZV9w YXRoLCBsaW5lbm8gPSBjYWxsYWJsZS5zb3VyY2VfbG9jYXRpb24NCiAgICBmb3VuZCA9IHByaXNt X2NhbGxhYmxlKGNhbGxhYmxlLCBhYnNvbHV0ZV9wYXRoLCBsaW5lbm8pDQogICAgW2Fic29sdXRl X3BhdGgsIGZvdW5kLnN0YXJ0X2xpbmUsIGZvdW5kLnN0YXJ0X2NvbHVtbiwgZm91bmQuZW5kX2xp bmUsIGZvdW5kLmVuZF9jb2x1bW5dIGlmIGZvdW5kDQogIGVuZA0KZW5kDQoNCmRlZiBzb3VyY2Uo Y2FsbGFibGUpDQogIGxvY2F0aW9uID0gc291cmNlX2xvY2F0aW9uKGNhbGxhYmxlKQ0KICByZXR1 cm4gbmlsIHVubGVzcyBsb2NhdGlvbg0KDQogIGZpbGVwYXRoLCBzdGFydF9saW5lLCBzdGFydF9j b2x1bW4sIGVuZF9saW5lLCBlbmRfY29sdW1uID0gbG9jYXRpb24NCiAgbGluZXMgPSBGaWxlLnJl YWQoZmlsZXBhdGgpLmxpbmVzWyhzdGFydF9saW5lIC0gMSkuLihlbmRfbGluZSAtIDEpXQ0KDQog IGxpbmVzWy0xXSA9IGxpbmVzWy0xXS5ieXRlc2xpY2UoMC4uLmVuZF9jb2x1bW4pDQogIGxpbmVz WzBdID0gbGluZXNbMF0uYnl0ZXNsaWNlKHN0YXJ0X2NvbHVtbi4uLTEpDQogIGxpbmVzLmpvaW4N CmVuZA0KDQpjbGFzcyBGb28NCiAgZGVmIGJhcjsgZW5kDQplbmQNCg0KcCBzb3VyY2UoLT4geyBP YmplY3QubmV3IH0pDQpwIHNvdXJjZShwcm9jIHsgT2JqZWN0Lm5ldyB9KQ0KcCBzb3VyY2UoRm9v Lm5ldy5tZXRob2QoOmJhcikpDQpwIHNvdXJjZShGb28uaW5zdGFuY2VfbWV0aG9kKDpiYXIpKQ0K YGBgDQoNClRoZSBQcmlzbSBwYXJ0IHdvbid0IHdvcmsgaW4gd2VpcmQgZWRnZSBjYXNlcyBsaWtl IGRlZmluaW5nIGEgbWV0aG9kIHdpdGggdGhlIHNhbWUgbmFtZSBvbiB0aGUgc2FtZSBsaW5lLCBs aWtlIGBkZWYgZm9vOyBlbmQ7IGRlZiBmb287IGVuZGAsIGJ1dCB0aG9zZSBjYXNlcyBzaG91bGQg YmUgZmV3IGFuZCBmYXIgYmV0d2Vlbi4gTm90ZSB0aGF0IGlmIGAjc291cmNlX2xvY2F0aW9uYCB3 ZXJlIHRvIGJlIGVuaGFuY2VkLCBpdCB3b3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gcHVsbCBpbiBQ cmlzbSBhdCBhbGwgaGVyZQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQpGZWF0dXJlICMyMDk5OTogQWRkIFJ1YnlWTSBvYmplY3Qgc291cmNlIHN1cHBvcnQNCmh0 dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8yMDk5OSNjaGFuZ2UtMTExMjU0DQoNCiog QXV0aG9yOiBia3VobG1hbm4gKEJyb29rZSBLdWhsbWFubikNCiogU3RhdHVzOiBPcGVuDQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpIZWxsby4g8J+Riw0KDQpJJ2Qg bGlrZSB0byBwcm9wb3NlIGFkZGluZyB0aGUgYWJpbGl0eSB0byBhY3F1aXJlIHRoZSBzb3VyY2Ug b2YgYW55IG9iamVjdCB3aXRoaW4gbWVtb3J5IHZpYSB0aGUgUnVieVZNLiBBIGNvdXBsZSB1c2Ug Y2FzZXMgY29tZSB0byBtaW5kOg0KDQotIFRoaXMgd291bGQgc2ltcGxpZnkgdGhlIFtNZXRob2Qg U291cmNlXShodHRwczovL2dpdGh1Yi5jb20vYmFuaXN0ZXIvbWV0aG9kX3NvdXJjZSkgZ2VtIGlt cGxlbWVudGF0aW9uIGFuZCBwb3NzaWJseSBlbGltaW5hdGUgdGhlIG5lZWQgZm9yIHRoZSBnZW0u DQotIEFub3RoZXIgdXNlIGNhc2UgaXMgdGhpcyBhbGxvd3MgRFNMcywgbGlrZSBbSW5pdGFibGVd KGh0dHBzOi8vYWxjaGVtaXN0cy5pby9wcm9qZWN0cy9pbml0YWJsZSksIHRvIGVsZWdhbnRseSBh Y3F1aXJlIHRoZSBzb3VyY2UgY29kZSBvZiBvYmplY3RzIGFuZC9vciBmdW5jdGlvbnMgKGluIG15 IGNhc2UsIEknbSBtb3N0IGludGVyZXN0ZWQgaW4gdGhlIGxhenkgZXZhbHVhdGlvbiBvZiBmdW5j dGlvbiBib2RpZXMpLg0KDQog4pqg77iPIEknbSBhbHNvIGF3YXJlIHRoYXQgdGhlIFtSdWJ5Vk1d KGh0dHBzOi8vZG9jcy5ydWJ5LWxhbmcub3JnL2VuL21hc3Rlci9SdWJ5Vk0uaHRtbCkgZG9jdW1l bnRhdGlvbiBjbGVhcmx5IHN0YXRzIHRoaXMgaXNuJ3QgbWVhbnQgZm9yIHByb2R1Y3Rpb24gdXNl Og0KDQo+IFRoaXMgbW9kdWxlIGlzIGZvciB2ZXJ5IGxpbWl0ZWQgcHVycG9zZXMsIHN1Y2ggYXMg ZGVidWdnaW5nLCBwcm90b3R5cGluZywgYW5kIHJlc2VhcmNoLiBOb3JtYWwgdXNlcnMgbXVzdCBu b3QgdXNlIGl0LiBUaGlzIG1vZHVsZSBpcyBub3QgcG9ydGFibGUgYmV0d2VlbiBSdWJ5IGltcGxl bWVudGF0aW9ucy4NCg0KLi4uYnV0IEknZCBsaWtlIHRvIGVudGVydGFpbiB0aGlzIHByb3Bvc2Vk IGZlYXR1cmUgcmVxdWVzdCwgcmVnYXJkbGVzcy4gSGVyZSdzIGFuIGV4YW1wbGUsIHVzaW5nIHRo ZSBhZm9yZW1lbnRpb25lZCBbSW5pdGFibGVdKGh0dHBzOi8vYWxjaGVtaXN0cy5pby9wcm9qZWN0 cy9pbml0YWJsZSkgZ2VtLCB3aGVyZSBJIHVzZSB0aGUgUnVieVZNIHRvIG9idGFpbiB0aGUgc291 cmNlIG9mIGEgYFByb2NgOg0KDQoNCmBgYCBydWJ5DQpjbGFzcyBEZW1vDQogIGluY2x1ZGUgSW5p dGFibGVbJWlbcmVxIG5hbWVdLCBbOmtleSwgOmRlZmF1bHQsIHByb2MgeyBPYmplY3QubmV3IH1d XQ0KZW5kDQoNCnB1dHMgRGVtby5uZXcoImRlbW8iKS5pbnNwZWN0DQojPERlbW86MHgwMDAwMDAw MTQzNDlhNDAwIEBuYW1lPSJkZW1vIiwgQGRlZmF1bHQ9IzxPYmplY3Q6MHgwMDAwMDAwMTQzNDlh MzYwPj4NCmBgYA0KDQpXaXRoIHRoZSBhYm92ZSwgSSdtIGxhemlseSBvYnRhaW5pbmcgdGhlIHNv dXJjZSBjb2RlIG9mIHRoZSBgUHJvY2AgaW4gb3JkZXIgdG8gZHluYW1pY2FsbHkgZGVmaW5lIHRo ZSBgI2luaXRpYWxpemVgIG1ldGhvZCAoZXNzZW50aWFsbHkgYSBgbW9kdWxlX2V2YWxgIG9uIGBE ZW1vYCwgc2ltcGx5IHNwZWFraW5nKSB1c2luZyBhIG5lc3RlZCBhcnJheSBhcyBzcGVjaWZpZWQg YnkgW01ldGhvZCNwYXJhbWV0ZXJzXShodHRwczovL2RvY3MucnVieS1sYW5nLm9yZy9lbi9tYXN0 ZXIvTWV0aG9kLmh0bWwjbWV0aG9kLWktcGFyYW1ldGVycykgYmVjYXVzZSBJIGRvbid0IHdhbnQg YW4gaW5zdGFuY2Ugb2YgYE9iamVjdGAgdW50aWwgaW5pdGlhbGl6YXRpb24gaXMgbmVjZXNzYXJ5 Lg0KDQoNCiMjIENvbnRleHQNCg0KUHJpb3IgdG8gdGhlIHJlbGVhc2Ugb2YgUnVieSAzLjQuMCwg eW91IGNvdWxkIGRvIHRoaXM6DQoNCmBgYCBydWJ5DQpmdW5jdGlvbiA9IHByb2MgeyBPYmplY3Qu bmV3IH0NCmFzdCA9IFJ1YnlWTTo6QWJzdHJhY3RTeW50YXhUcmVlLm9mIGZ1bmN0aW9uDQphc3Qu Y2hpbGRyZW4ubGFzdC5zb3VyY2UNCg0KIyAiT2JqZWN0Lm5ldyINCmBgYA0KDQpVbmZvcnR1bmF0 ZWx5LCB3aXRoIHRoZSByZWxlYXNlIG9mIFJ1YnkgMy40LjAgLS0gd2hpY2ggZGVmYXVsdHMgdG8g dGhlIFtQcmlzbV0oaHR0cHM6Ly9ydWJ5LmdpdGh1Yi5pby9wcmlzbS9yYi9pbmRleC5odG1sKSBw YXJzZXIgLS0gdGhlIGFiaWxpdHkgdG8gYWNxdWlyZSBzb3VyY2UgY29kZSBpcyBhIGJpdCBtb3Jl IGNvbXBsaWNhdGVkLiBGb3IgZXhhbXBsZSwgdG8gYWNoaWV2ZSB3aGF0IGlzIHNob3duIGFib3Zl LCB5b3UgaGF2ZSB0byBkbyB0aGlzOg0KDQpgYGAgcnVieQ0KZnVuY3Rpb24gPSBwcm9jIHsgT2Jq ZWN0Lm5ldyB9DQpSdWJ5Vk06Okluc3RydWN0aW9uU2VxdWVuY2Uub2YoZnVuY3Rpb24pLnNjcmlw dF9saW5lcw0KDQojIFsNCiMgICAiZnVuY3Rpb24gPSBwcm9jIHsgT2JqZWN0Lm5ldyB9XG4iLA0K IyAgICJSdWJ5Vk06Okluc3RydWN0aW9uU2VxdWVuY2Uub2YoZnVuY3Rpb24pLnNjcmlwdF9saW5l c1xuIiwNCiMgICAiXG4iLA0KIyAgICIiDQojIF0NCmBgYA0KDQpEZWZpbml0ZWx5IGRvYWJsZSwg YnV0IG5vdyByZXF1aXJlcyBtb3JlIHdvcmsgdG8gcGx1Y2sgYCJPYmplY3QubmV3ImAgZnJvbSB0 aGUgYm9keSBvZiB0aGUgYFByb2NgLiBPbmUgc29sdXRpb24gaXMgdG8gdXNlIGEgcmVndWxhciBl eHByZXNzaW9uIHRvIGZpbmQgYW5kIGV4dHJhY3QgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHJlc3Vs dC4gRXhhbXBsZToNCg0KYGBgIHJ1YnkNCi8NCiAgcHJvYyAgICAgICAgICAjIFByb2Mgc3RhdGVt ZW50Lg0KICBccyogICAgICAgICAgICMgT3B0aW9uYWwgc3BhY2UuDQogIFx7ICAgICAgICAgICAg IyBCbG9jayBvcGVuLg0KICAoPzxib2R5Pi4qPykgICMgU291cmNlIGNvZGUgYm9keS4NCiAgXH0g ICAgICAgICAgICAjIEJsb2NrIGNsb3NlLg0KL3gNCmBgYA0KDQpEZWZpbml0ZWx5IGRvZXNuJ3Qg YWNjb3VudCBmb3IgYWxsIHVzZSBjYXNlcyAobGlrZSB3aGVuIGEgYFByb2NgIHNwYW5zIG11bHRp cGxlIGxpbmVzIG9yIHVzZXMgYGRvLi4uZW5kYCBzeW50YXgpIGJ1dCB3aWxsIGdldCB5b3UgY2xv c2UuDQoNCiMjIEhvdw0KDQpJIHRoaW5rIHRoZXJlIGFyZSBhIGNvdXBsZSBvZiBwYXRocyB0aGF0 IG1pZ2h0IGJlIG5pY2UgdG8gc3VwcG9ydCB0aGlzIHVzZSBjYXNlLiANCg0KIyMjIE9wdGlvbiBB DQoNClRlYWNoIGBSdWJ5Vk06Okluc3RydWN0aW9uU2VxdWVuY2VgIHRvIHJlc3BvbmQgdG8gYCNz b3VyY2VgIHdoaWNoIHdvdWxkIGJlIHNpbWlsYXIgdG8gd2hhdCB3YXMgcG9zc2libGUgcHJpb3Ig dG8gUnVieSAzLjQuMC4gRXhhbXBsZToNCg0KYGBgIHJ1YnkNCmZ1bmN0aW9uID0gcHJvYyB7IE9i amVjdC5uZXcgfQ0KUnVieVZNOjpJbnN0cnVjdGlvblNlcXVlbmNlLm9mKGZ1bmN0aW9uKS5zb3Vy Y2UNCg0KIyAiT2JqZWN0Lm5ldyINCmBgYA0KDQojIyMgT3B0aW9uIEINCg0KVGhpcyBpcyBzb21l dGhpbmcgdGhhdCBTYW11ZWwgV2lsbGlhbXMgW21lbnRpb25lZF0oaHR0cHM6Ly9idWdzLnJ1Ynkt bGFuZy5vcmcvaXNzdWVzLzYwMTIjbm90ZS0xMykgaW4gW0ZlYXR1cmUgNjAxMl0oaHR0cHM6Ly9i dWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzYwMTIpIHdoaWNoIHdvdWxkIGJlIHRvIHByb3ZpZGUg YSBgU291cmNlYCBvYmplY3QgYXMgYW5zd2VyZWQgYnkgYE1ldGhvZCNzb3VyY2VgIGFuZCBgUHJv YyNzb3VyY2VgLiBFeGFtcGxlICh1c2luZyBhIGBQcm9jYCk6DQoNCmBgYCBydWJ5DQojIEltcGxl bWVudGF0aW9uDQojIE1ldGhvZCNzb3VyY2UgKGkuZS4gU291cmNlLm5ldyBwYXRoLCBsaW5lX251 bWJlciwgbGluZV9jb3VudCwgYm9keSkNCg0KIyBVc2FnZToNCg0KZnVuY3Rpb24gPSBwcm9jIHsg T2JqZWN0Lm5ldyB9DQoNCm1ldGhvZC5zb3VyY2UuY29kZSAgICAgICMgIk9iamVjdC5uZXciDQpt ZXRob2Quc291cmNlLnBhdGggICAgICAjICIkSE9NRS9kZW1vLnJiIg0KbWV0aG9kLnNvdXJjZS5s b2NhdGlvbiAgIyBbMiwgMCwgMywgM10NCmBgYA0KDQojIyMgT3B0aW9uIEMNCg0KSXQgY291bGQg YmUgbmljZSB0byBzdXBwb3J0IGJvdGggT3B0aW9uIEEgYW5kIEIuDQoNCg0KDQoNCi0tIA0KaHR0 cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwu cnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUt bGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5 LWxhbmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcub3JnLw==