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=-2.9 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,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 7C9EA1F4D7 for ; Sun, 15 May 2022 23:36: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="WIdyH0kV"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id D07E6120B98; Mon, 16 May 2022 08:36:24 +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 AF36D120B94 for ; Mon, 16 May 2022 08:36:22 +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; s=smtpapi; bh=sTLW3HLw05jmhhOtBbjb6N/USomb4luHkfPdDkwr9tw=; b=WIdyH0kVoB5TJWolKmpVtchBBiZgUMZEhImZolUHK2gQAEC4tfMurDqfSR822m44JTUk 42rprK/KuD/mnYk/hwjZzL7UXaX49IGHPIx7ktLJB7Cu8924maS9pVLMNI0cUft5v1NwIx yyyZa0+QjoO1lRNEINsMO0mxptDrPJk/c= Received: by filterdrecv-74cbf9986b-scr8v with SMTP id filterdrecv-74cbf9986b-scr8v-1-62818E70-F 2022-05-15 23:36:16.089203152 +0000 UTC m=+3376296.732883591 Received: from herokuapp.com (unknown) by geopod-ismtpd-3-3 (SG) with ESMTP id ULjkQD7VRK6c8GlWe0TpkA for ; Sun, 15 May 2022 23:36:16.036 +0000 (UTC) Date: Sun, 15 May 2022 23:36:16 +0000 (UTC) From: "ioquatix (Samuel Williams)" Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Bug X-Redmine-Issue-Id: 18782 X-Redmine-Issue-Author: ioquatix X-Redmine-Sender: ioquatix 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: 84931 X-SG-EID: =?us-ascii?Q?RXGrw3WrKfUduNFRrzMMcXYHKEABJI9T84jNjq2g6rBTg=2FXhHIicnPoJUXLutJ?= =?us-ascii?Q?tdNFg7BiEDMUtMCwjaLtb0ItKeRyv3NlZm6AYiJ?= =?us-ascii?Q?s0JX4Pwu3UGteMf9j+aPsn1paJUYh2kQr4va9ZL?= =?us-ascii?Q?ZzRMhuou+e52hQLiBr4hzvRXEY8CUxyvQ9CDNI+?= =?us-ascii?Q?w0R=2FCBRqgX1BU+qL15p5qTnEfY3Nn1UHUOfUhp7?= =?us-ascii?Q?zgd=2F9tHX8M4eur8lI9KZPwjNNuvpVoNq8nKAqD2?= =?us-ascii?Q?=2FzYXCYmUHjvp=2F6IIE8AGQ=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 108562 Subject: [ruby-core:108562] [Ruby master Bug#18782] Race conditions in autoload when loading the same feature with multiple threads. 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" SXNzdWUgIzE4NzgyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgaW9xdWF0aXggKFNhbXVlbCBXaWxsaWFt cykuCgoKT2theSwgc28gSSBzdXNwZWN0ZWQgc29tZSBpc3N1ZSB3aXRoIGBhdXRvbG9hZF9kZWxl dGVgIGFuZCBmaW5hbGx5IGZvdW5kIGhvdyB0byByZXByb2R1Y2UgaXQuCgpgYGBjCnN0YXRpYyB2 b2lkCmF1dG9sb2FkX2RlbGV0ZShWQUxVRSBtb2QsIElEIGlkKQp7CiAgICBSQl9WTV9MT0NLX0VO VEVSKCk7CgogICAgc3RfZGF0YV90IHZhbCwgbG9hZCA9IDAsIG4gPSBpZDsKCiAgICBpZiAoc3Rf bG9va3VwKFJDTEFTU19JVl9UQkwobW9kKSwgKHN0X2RhdGFfdClhdXRvbG9hZCwgJnZhbCkpIHsK ICAgICAgICBzdHJ1Y3Qgc3RfdGFibGUgKnRibCA9IGNoZWNrX2F1dG9sb2FkX3RhYmxlKChWQUxV RSl2YWwpOwogICAgICAgIHN0cnVjdCBhdXRvbG9hZF9kYXRhICplbGU7CiAgICAgICAgc3RydWN0 IGF1dG9sb2FkX2NvbnN0ICphYzsKCiAgICAgICAgc3RfZGVsZXRlKHRibCwgJm4sICZsb2FkKTsK CiAgICAgICAgLyogUWZhbHNlIGNhbiBpbmRpY2F0ZSBhbHJlYWR5IGRlbGV0ZWQgKi8KICAgICAg ICBpZiAobG9hZCAhPSBRZmFsc2UpIHsKICAgICAgICAgICAgZWxlID0gZ2V0X2F1dG9sb2FkX2Rh dGEoKFZBTFVFKWxvYWQsICZhYyk7CiAgICAgICAgICAgIFZNX0FTU0VSVChlbGUpOwogICAgICAg ICAgICAvKgogICAgICAgICAgICAgKiB3ZSBtdXN0IGRlbGV0ZSBoZXJlIHRvIGF2b2lkICJhbHJl YWR5IGluaXRpYWxpemVkIiB3YXJuaW5ncwogICAgICAgICAgICAgKiB3aXRoIHBhcmFsbGVsIGF1 dG9sb2FkLiAgVXNpbmcgbGlzdF9kZWxfaW5pdCBoZXJlIHNvIGxpc3RfZGVsCiAgICAgICAgICAg ICAqIHdvcmtzIGluIGF1dG9sb2FkX2NfZnJlZQogICAgICAgICAgICAgKi8KICAgICAgICAgICAg Y2Nhbl9saXN0X2RlbF9pbml0KCZhYy0+Y25vZGUpOwoKICAgICAgICAgICAgaWYgKHRibC0+bnVt X2VudHJpZXMgPT0gMCkgewogICAgICAgICAgICAgICAgbiA9IGF1dG9sb2FkOwogICAgICAgICAg ICAgICAgc3RfZGVsZXRlKFJDTEFTU19JVl9UQkwobW9kKSwgJm4sICZ2YWwpOwogICAgICAgICAg ICB9CiAgICAgICAgfQogICAgfQoKICAgIFJCX1ZNX0xPQ0tfTEVBVkUoKTsKCiAgICByYl90aHJl YWRfc2NoZWR1bGUoKTsgLy8gYWRkIHRoaXMgdG8gY3JlYXRlIG9kZCBiZWhhdmlvdXIgKGV2ZW50 dWFsbHkpLgp9CmBgYAoKVGVzdCBjYXNlOgoKYGBgcnVieQptb2R1bGUgTXlNb2R1bGU7IGVuZAoK ZmlsZSA9ICJhdXRvbG9hZF9kb2VzX25vdF9leGlzdC5yYiIKCjE5MC50aW1lcyBkbwoJcHV0cyAi LiIKCXN0YXJ0ID0gZmFsc2UKCgl0aHJlYWRzID0gQXJyYXkubmV3KDEwKSBkbwoJCVRocmVhZC5u ZXcgZG8KCQkJVGhyZWFkLnBhc3MgdW50aWwgc3RhcnQKCQkJYmVnaW4KCQkJCU15TW9kdWxlLmF1 dG9sb2FkIDpGaWxlRG9lc05vdEV4aXN0LCBmaWxlCgkJCQlUaHJlYWQucGFzcwoJCQkJTXlNb2R1 bGU6OkZpbGVEb2VzTm90RXhpc3QKCQkJcmVzY3VlIExvYWRFcnJvciA9PiBlCgkJCQllCgkJCWVu c3VyZQoJCQkJVGhyZWFkLnBhc3MKCQkJZW5kCgkJZW5kCgllbmQKCglzdGFydCA9IHRydWUKCXRo cmVhZHMuZWFjaCB7IHx0fAoJCXJhaXNlICJGYWlsZWQiIHVubGVzcyB0LnZhbHVlLmlzX2E/KExv YWRFcnJvcikKCX0KZW5kCmBgYAoKRmFpbHVyZSBleGFtcGxlOgoKYGBgCi4uCiM8VGhyZWFkOjB4 MDAwMDdmYWZkMzY2NWMwOCAuLi90ZXN0LnJiOjM1IHJ1bj4gdGVybWluYXRlZCB3aXRoIGV4Y2Vw dGlvbiAocmVwb3J0X29uX2V4Y2VwdGlvbiBpcyB0cnVlKToKLi4vdGVzdC5yYjo0MDppbiBgYmxv Y2sgKDMgbGV2ZWxzKSBpbiA8bWFpbj4nOiB1bmluaXRpYWxpemVkIGNvbnN0YW50IE15TW9kdWxl OjpGaWxlRG9lc05vdEV4aXN0IChOYW1lRXJyb3IpCi4uL3Rlc3QucmI6NDA6aW4gYGJsb2NrICgz IGxldmVscykgaW4gPG1haW4+JzogdW5pbml0aWFsaXplZCBjb25zdGFudCBNeU1vZHVsZTo6Rmls ZURvZXNOb3RFeGlzdCAoTmFtZUVycm9yKQptYWtlOiAqKiogW3VuY29tbW9uLm1rOjEyNTA6IHJ1 bnJ1YnldIEVycm9yIDEKYGBgCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpCdWcgIzE4NzgyOiBSYWNlIGNvbmRpdGlvbnMgaW4gYXV0b2xvYWQgd2hlbiBsb2FkaW5n IHRoZSBzYW1lIGZlYXR1cmUgd2l0aCBtdWx0aXBsZSB0aHJlYWRzLgpodHRwczovL2J1Z3MucnVi eS1sYW5nLm9yZy9pc3N1ZXMvMTg3ODIjY2hhbmdlLTk3NjAxCgoqIEF1dGhvcjogaW9xdWF0aXgg KFNhbXVlbCBXaWxsaWFtcykKKiBTdGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCiogQmFj a3BvcnQ6IDIuNzogVU5LTk9XTiwgMy4wOiBVTktOT1dOLCAzLjE6IFVOS05PV04KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJIGhhdmUgaWRlbnRpZmllZCBzZXZlcmFs IHJhY2UgY29uZGl0aW9ucyBpbiB0aGUgYXV0b2xvYWQgY29kZS4KCjEuIEl0J3MgcG9zc2libGUg dG8gcmFjZSBvbiBhZGRpbmcgYW5kIHRoZW4gZGVsZXRpbmcgaXRlbXMgaW4gYGF1dG9sb2FkX2Zl YXR1cmVtYXBgLiBXaGVuIHRoaXMgaGFwcGVucywgdHdvIHRocmVhZHMgd2lsbCB0cnkgdG8gbG9h ZCB0aGUgc2FtZSBmaWxlIHdpdGggZGlmZmVyZW50IGF1dG9sb2FkIGRhdGEgYW5kIGRlYWRsb2Nr LgoyLiBXaGVuIGZpbmlzaGluZyBhdXRvbG9hZCwgaXQncyBuZWNlc3NhcnkgdG8gY2xlYXIgYGVs ZS0+c3RhdGVgIGJlZm9yZSBzZXR0aW5nIGNvbnN0YW50cy4gSWYgdGhpcyBpcyBub3Qgc3luY2hy b25pc2VkLCBhIHRocmVhZCBjYW4gc2VlIHRoZSBjbGVhcmVkIGBlbGUtPnN0YXRlYCBiZWZvcmUg c2VlaW5nIHRoZSBjb25zdGFudHMgYW5kIGFzc3VtZSB0aGUgY29uc3RhbnQgaXMgbm90IGJlaW5n IGF1dG9sb2FkZWQgYW5kIHRoZW4gZmFpbCB3aXRoIGBOYW1lRXJyb3JgLgoKVGhpcyB0ZXN0IGNh c2UgY2FuIHJlcHJvZHVjZSBib3RoIGNhc2VzOgoKYGBgCiMgdGVzdC5yYgphdXRvbG9hZF9wYXRo ID0gRmlsZS5qb2luKF9fZGlyX18sICJmb29iYXIucmIiKQpGaWxlLndyaXRlKGF1dG9sb2FkX3Bh dGgsICdtb2R1bGUgRm9vOyBlbmQ7IG1vZHVsZSBCYXI7IGVuZCcpCgoxMDBfMDAwLnRpbWVzIGRv Cgkkc3RkZXJyLnB1dHMgIi0tLS0tLS0tLS0tLS0tLS0tLS0tIgoJYXV0b2xvYWQgOkZvbywgYXV0 b2xvYWRfcGF0aAoJYXV0b2xvYWQgOkJhciwgYXV0b2xvYWRfcGF0aAoKCXQxID0gVGhyZWFkLm5l dyB7Rm9vfQoJdDIgPSBUaHJlYWQubmV3IHtCYXJ9CgoJdDEuam9pbgoJdDIuam9pbgoKCU9iamVj dC5zZW5kKDpyZW1vdmVfY29uc3QsIDpGb28pCglPYmplY3Quc2VuZCg6cmVtb3ZlX2NvbnN0LCA6 QmFyKQoKCSRMT0FERURfRkVBVFVSRVMuZGVsZXRlKGF1dG9sb2FkX3BhdGgpCmVuZApgYGAKCkV4 YW1wbGUgZmFpbHVyZSBvZiBjYXNlICgxKToKCmBgYAotLS0tLS0tLS0tLS0tLS0tLS0tLSAoc3Vj Y2VzcykKYXV0b2xvYWRfYnlfc29tZW9uZV9lbHNlIGVsZT0weDU1ZjMzYjgwNmEzMCBlbGUtPnN0 YXRlPShuaWwpCmF1dG9sb2FkX2J5X3NvbWVvbmVfZWxzZSBlbGU9MHg1NWYzM2I4MDZhMzAgZWxl LT5zdGF0ZT0obmlsKQpjaGVja19hdXRvbG9hZF9yZXF1aXJlZCAyCmF1dG9sb2FkX2J5X3NvbWVv bmVfZWxzZSBlbGU9MHg1NWYzM2I4MDZhMzAgZWxlLT5zdGF0ZT0weDdmZGQ2NzhiZTc4MApjaGVj a19hdXRvbG9hZF9yZXF1aXJlZCA0CmF1dG9sb2FkX2J5X3NvbWVvbmVfZWxzZSBlbGU9MHg1NWYz M2I4MDZhMzAgZWxlLT5zdGF0ZT0weDdmZGQ2NzhiZTc4MApjaGVja19hdXRvbG9hZF9yZXF1aXJl ZCA0CmVsZT0weDU1ZjMzYjgwNmEzMCBlbGUtPnN0YXRlPTB4N2ZkZDY3OGJlNzgwID0gTlVMTApj aGVja19hdXRvbG9hZF9yZXF1aXJlZCA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tIChmYWlsdXJlKQph dXRvbG9hZF9ieV9zb21lb25lX2Vsc2UgZWxlPTB4NTVmMzNiODA2YTMwIGVsZS0+c3RhdGU9KG5p bCkKYXV0b2xvYWRfYnlfc29tZW9uZV9lbHNlIGVsZT0weDU1ZjMzYjZlOGY0MCBlbGUtPnN0YXRl PShuaWwpCmNoZWNrX2F1dG9sb2FkX3JlcXVpcmVkIDIKY2hlY2tfYXV0b2xvYWRfcmVxdWlyZWQg MwphdXRvbG9hZF9ieV9zb21lb25lX2Vsc2UgZWxlPTB4NTVmMzNiODA2YTMwIGVsZS0+c3RhdGU9 MHg3ZmRkNjc3OWQ3ODAKY2hlY2tfYXV0b2xvYWRfcmVxdWlyZWQgMQphdXRvbG9hZF9ieV9zb21l b25lX2Vsc2UgZWxlPTB4NTVmMzNiODA2YTMwIGVsZS0+c3RhdGU9MHg3ZmRkNjc3OWQ3ODAKY2hl Y2tfYXV0b2xvYWRfcmVxdWlyZWQgMQplbGU9MHg1NWYzM2I4MDZhMzAgZWxlLT5zdGF0ZT0weDdm ZGQ2Nzc5ZDc4MCA9IE5VTEwKZWxlPTB4NTVmMzNiNmU4ZjQwIGVsZS0+c3RhdGU9MHg3ZmRkNjc4 YmU3ODAgPSBOVUxMCi4uL3Rlc3QucmI6MTI6aW4gYGpvaW4nOiBObyBsaXZlIHRocmVhZHMgbGVm dC4gRGVhZGxvY2s/IChmYXRhbCkKMyB0aHJlYWRzLCAzIHNsZWVwcyBjdXJyZW50OjB4MDAwMDU1 ZjMzYjc3MTI1MCBtYWluIHRocmVhZDoweDAwMDA1NWYzM2I2NmUwOTAKKiAjPFRocmVhZDoweDAw MDA3ZmRkNmEyY2IwYjAgc2xlZXBfZm9yZXZlcj4KICAgcmJfdGhyZWFkX3Q6MHgwMDAwNTVmMzNi NjZlMDkwIG5hdGl2ZToweDAwMDA3ZmRkNmE3MWMzYzAgaW50OjAKICAgCiogIzxUaHJlYWQ6MHgw MDAwN2ZkZDY3NmUwMDkwIC4uL3Rlc3QucmI6OSBzbGVlcF9mb3JldmVyPgogICByYl90aHJlYWRf dDoweDAwMDA1NWYzM2I3NzBmZjAgbmF0aXZlOjB4MDAwMDdmZGQ2Nzg5ZTY0MCBpbnQ6MSBtdXRl eDoweDAwMDA1NWYzM2I3YzUxMDAgY29uZDoxCiAgICBkZXBlbmRlZCBieTogdGJfdGhyZWFkX2lk OjB4MDAwMDU1ZjMzYjY2ZTA5MAogICAKKiAjPFRocmVhZDoweDAwMDA3ZmRkNjc2ZTEyMzggLi4v dGVzdC5yYjoxMCBzbGVlcF9mb3JldmVyPgogICByYl90aHJlYWRfdDoweDAwMDA1NWYzM2I3NzEy NTAgbmF0aXZlOjB4MDAwMDdmZGQ2NzliZjY0MCBpbnQ6MAogICAKCglmcm9tIC4uL3Rlc3QucmI6 MTI6aW4gYGJsb2NrIGluIDxtYWluPicKCWZyb20gLi4vdGVzdC5yYjo0OmluIGB0aW1lcycKCWZy b20gLi4vdGVzdC5yYjo0OmluIGA8bWFpbj4nCm1ha2U6ICoqKiBbdW5jb21tb24ubWs6MTI1MDog cnVucnVieV0gRXJyb3IgMQpgYGAKCkV4YW1wbGUgZmFpbHVyZSBvZiBjYXNlICgyKToKCmBgYApb MHg3ZjE3NWZlNWIwYzhdIHJiX2F1dG9sb2FkX3N0ciBtb2Q9T2JqZWN0IGlkPUZvbyBmaWxlPSIv aG9tZS9zYW11ZWwvUHJvamVjdHMvaW9xdWF0aXgvcnVieS9mb29iYXIucmIiClsweDdmMTc1ZmU1 YjBjOF0gcmJfYXV0b2xvYWRfc3RyIGNvbnN0X3NldCBtb2Q9T2JqZWN0IGlkPUZvbyBmaWxlPSIv aG9tZS9zYW11ZWwvUHJvamVjdHMvaW9xdWF0aXgvcnVieS9mb29iYXIucmIiClsweDdmMTc1ZmU1 YjBjOF0gcmJfYXV0b2xvYWRfc3RyIG1vZD1PYmplY3QgaWQ9QmFyIGZpbGU9Ii9ob21lL3NhbXVl bC9Qcm9qZWN0cy9pb3F1YXRpeC9ydWJ5L2Zvb2Jhci5yYiIKWzB4N2YxNzVmZTViMGM4XSByYl9h dXRvbG9hZF9zdHIgY29uc3Rfc2V0IG1vZD1PYmplY3QgaWQ9QmFyIGZpbGU9Ii9ob21lL3NhbXVl bC9Qcm9qZWN0cy9pb3F1YXRpeC9ydWJ5L2Zvb2Jhci5yYiIKWzB4N2YxNzVmZTYxZDg4XSByYl9j b25zdF9zZWFyY2hfZnJvbSB2YWx1ZSA9PSBRdW5kZWYgLT4gYXV0b2xvYWRpbmcKWzB4N2YxNzVm ZTYxZTc4XSByYl9jb25zdF9zZWFyY2hfZnJvbSB2YWx1ZSA9PSBRdW5kZWYgLT4gYXV0b2xvYWRp bmcKWzB4N2YxNzVmZTYxZTc4XSBBc3NpZ25pbmcgY29uc3RhbnRzLi4uClsweDdmMTc1ZmU2MWQ4 OF0gcmJfY29uc3Rfc2VhcmNoX2Zyb20gdmFsdWUgPT0gUXVuZGVmIC0+IGF1dG9sb2FkaW5nClsw eDdmMTc1ZmU2MWU3OF0gYXV0b2xvYWRfY29uc3Rfc2V0IG5hbWU9OkZvbyB2YWx1ZT1Gb28KWzB4 N2YxNzVmZTYxZTc4XSBhdXRvbG9hZF9jb25zdF9zZXQgbmFtZT06QmFyIHZhbHVlPUJhcgojPFRo cmVhZDoweDAwMDA3ZjE3NWZlNjFkODggLi4vdGVzdC5yYjoxMSBydW4+IHRlcm1pbmF0ZWQgd2l0 aCBleGNlcHRpb24gKHJlcG9ydF9vbl9leGNlcHRpb24gaXMgdHJ1ZSk6Ci4uL3Rlc3QucmI6MTE6 aW4gYGJsb2NrICgyIGxldmVscykgaW4gPG1haW4+JzogdW5pbml0aWFsaXplZCBjb25zdGFudCBC YXIgKE5hbWVFcnJvcikKLi4vdGVzdC5yYjoxMTppbiBgYmxvY2sgKDIgbGV2ZWxzKSBpbiA8bWFp bj4nOiB1bmluaXRpYWxpemVkIGNvbnN0YW50IEJhciAoTmFtZUVycm9yKQptYWtlOiAqKiogW3Vu Y29tbW9uLm1rOjEyNTA6IHJ1bnJ1YnldIEVycm9yIDEKYGBgCgpUaGVzZSBmYWlsdXJlcyBhcmUg dmVyeSB1bmNvbW1vbiBidXQgaXQgZG9lcyBpbXBhY3QgUnVieSBhcyBmYXIgYmFjayBhcyAyLjcs IGFuZCBwcm9iYWJseSBlYXJsaWVyLgoKLS0tRmlsZXMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQowMDAxLUFkZC1SVUJZX1ZNX0NSSVRJQ0FMX1NFQ1RJT04tZm9yLWRldGVjdGluZy11 bmV4cGVjdGUucGF0Y2ggKDIuMDcgS0IpCjAwMDItUHJldmVudC1yYWNlLWJldHdlZW4tR0MtbWFy ay1hbmQtYXV0b2xvYWQtc2V0dXAucGF0Y2ggKDEuMDEgS0IpCjAwMDMtUHJvdGVjdC1yYWNlLW9u LWF1dG9sb2FkLXN0YXRlLnBhdGNoICgxMC42IEtCKQowMDA0LUluY3JlYXNlLXRpbWVvdXQtZm9y LWRlYnVnLXRlc3RzLnBhdGNoICg5MTAgQnl0ZXMpCjAwMDUtUmV2ZXJ0LXJlbW92YWwtb2Ytbm9u LWNvbmRpdGlvbmFsLXhmcmVlLnBhdGNoICg2OTEgQnl0ZXMpCgoKLS0gCmh0dHBzOi8vYnVncy5y dWJ5LWxhbmcub3JnLwo=