From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.9 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.1 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id 729091F453 for ; Sat, 3 Nov 2018 23:52:23 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id F3793120DF3; Sun, 4 Nov 2018 08:52:21 +0900 (JST) Received: from o1678916x28.outbound-mail.sendgrid.net (o1678916x28.outbound-mail.sendgrid.net [167.89.16.28]) by neon.ruby-lang.org (Postfix) with ESMTPS id 9071C120A9A for ; Sun, 4 Nov 2018 08:52:19 +0900 (JST) Received: by filter0058p3mdw1.sendgrid.net with SMTP id filter0058p3mdw1-26805-5BDE34B0-10 2018-11-03 23:52:16.315421443 +0000 UTC m=+263364.887264209 Received: from herokuapp.com (ec2-54-144-75-246.compute-1.amazonaws.com [54.144.75.246]) by ismtpd0018p1iad2.sendgrid.net (SG) with ESMTP id zMfTljncRYC5Cwtwr5iPaQ Sat, 03 Nov 2018 23:52:16.273 +0000 (UTC) Date: Sat, 03 Nov 2018 23:52:16 +0000 (UTC) From: ko1@atdot.net To: ruby-core@ruby-lang.org Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 65088 X-Redmine-Project: ruby-trunk X-Redmine-Issue-Id: 15007 X-Redmine-Issue-Author: methodmissing X-Redmine-Issue-Assignee: naruse X-Redmine-Sender: ko1 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-SG-EID: ync6xU2WACa70kv/Ymy4QrNMhiuLXJG8OTL2vJD1yS69zPEPBwsOJzioP9LlwrCGcVl026f+t9vY9c gFGf5UptwEKl/jhmIdieuhkvSxBo2EmTsauk0NbAiOUExXguEVr63xUs27/p4gVWL9uxSZX38s1oge wHJVb5D+VYwXuRSNMhDv3AajYde6dlOTgytn X-ML-Name: ruby-core X-Mail-Count: 89703 Subject: [ruby-core:89703] [Ruby trunk Misc#15007] Let all Init_xxx and extension APIs frequently called from init code paths be considered cold X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE1MDA3IGhhcyBiZWVuIHVwZGF0ZWQgYnkga28xIChLb2ljaGkgU2FzYWRhKS4KCgpJ IGFncmVlIHRvIGludHJvZHVjZSBjb2xkIGF0dHJpYnV0ZSAoSSBoYXZlIG5vIGlkZWEgYWJvdXQg dGhlIG5hbWluZykuCgpgcmJfYnVnYCBvciBgcmJfd2FybmAgKGV0Yykgc2hvdWxkIGJlIGNvbGQg ZnVuY3Rpb25zIGJlY2F1c2UgdGhleSBzaG91bGQgbm90IGJlIGNhbGxlZC4KCkhvd2V2ZXIsIEkn bSBub3Qgc3VyZSBgcmJfZGVmaW5lXy4uLmAgYW5kIHNvIG9uIGJlY2F1c2UgaXQgY2FuIGFmZmVj dCBzdGFydHVwIHRpbWUgZm9yIGJpZyBSdWJ5IGFwcGxpY2F0aW9uLiBXZSBuZWVkIHRvIHNwZWNp Znkgd2l0aCBiZW5jaG1hcmsgcmVzdWx0cy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KTWlzYyAjMTUwMDc6IExldCBhbGwgSW5pdF94eHggYW5kIGV4dGVuc2lvbiBB UElzIGZyZXF1ZW50bHkgY2FsbGVkIGZyb20gaW5pdCBjb2RlIHBhdGhzIGJlIGNvbnNpZGVyZWQg Y29sZApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTUwMDcjY2hhbmdlLTc0NzQ2 CgoqIEF1dGhvcjogbWV0aG9kbWlzc2luZyAoTG91cmVucyBOYXVkw6kpCiogU3RhdHVzOiBPcGVu CiogUHJpb3JpdHk6IE5vcm1hbAoqIEFzc2lnbmVlOiBuYXJ1c2UgKFl1aSBOQVJVU0UpCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KUmVmZXJlbmNlcyBHaXRodWIgUFIg aHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzE5MzQKCiMjIyBXaHk/CgpBbiBpbmNy ZW1lbnRhbCBleHRyYWN0aW9uIGZyb20gUFIgaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9w dWxsLzE5MjIsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIHRoZSBmZWVkYmFjayBmcm9tIFl1aSBO YXJ1c2UgaW4gaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzE5MjIjaXNzdWVjb21t ZW50LTQxMzc5NjcxMAoKVGhlIFtMaW51eCBrZXJuZWxdKGh0dHBzOi8vZ2l0aHViLmNvbS90b3J2 YWxkcy9saW51eC9ibG9iL2NhMDRiM2NjYTExYWNiYWY5MDRmNzA3ZjJkOWNhOTY1NGQ3Y2MyMjYv aW5jbHVkZS9saW51eC9jb21waWxlci1nY2MuaCNMMTkxLUwyMDYpLCBbUEhQIDddKGh0dHBzOi8v Z2l0aHViLmNvbS9waHAvcGhwLXNyYy9ibG9iLzJkNzFhMjg5NTRhNGYyMDcwOTcxOGVlN2NiMmI4 NTBkMzM0YzU2MWMvWmVuZC96ZW5kX3BvcnRhYmlsaXR5LmgjTDIyMCkgYW5kIG90aGVyIHByb2pl Y3RzIHVzZSB0aGUgYGhvdGAgYW5kIGBjb2xkYCBmdW5jdGlvbiBhdHRyaWJ1dGVzIHRvIGhlbHAg d2l0aCBiZXR0ZXIgY29kZSBsYXlvdXQuCgpJIG5vdGljZWQgUnVieSBpcyB2ZXJ5IG11Y2ggQ1BV IGZyb250ZW5kIGJvdW5kIChub3QgZmVlZGluZyBpbnN0cnVjdGlvbnMgaW50byB0aGUgQ1BVIHBp cGVsaW5lcyBhcyBmYXN0IGFzIGl0IG1heWJlIGNvdWxkKSBhbmQgdGhlcmVmb3JlIGV2ZW4gbW9z dCBtaWNybyBiZW5jaG1hcmtzIGhhdmUgYSBoaWdoIENQSSAoY3ljbGVzIHBlciBpbnN0cnVjdGlv bikgcmF0ZS4gVGhpcyBQUiBpcyBwYXJ0IG9mIGEgbGFyZ2VyIGNodW5rIG9mIHdvcmsgSSdkIGxp a2UgdG8gZG8gYXJvdW5kIGltcHJvdmluZyBDUFUgZnJvbnRlbmQgdGhyb3VnaHB1dCBhbmQgY2Fu IHRha2UgYSBzdGFiIGF0IGZvcm1hbGx5IHdyaXRpbmcgdXAgdGhvc2UgaWRlYXMgaWYgdGhlcmUn cyBhbnkgaW50ZXJlc3QgZnJvbSB0aGUgY29tbXVuaXR5LiBJIGRvbid0IGtub3cuCgojIyMgSW1w bGVtZW50YXRpb24KClRoaXMgUFIgaGFzIGFuIGV4Y2x1c2l2ZSBmb2N1cyBvbiBoYXZpbmcgdGhl IGBJbml0X3h4eGAgZnVuY3Rpb25zIGZvciB0aGUgY29yZSBjbGFzc2VzIGFuZCB0aG9zZSBidW5k bGVkIGluIGBleHRgIGJlaW5nIGZsYWdnZWQgdG8gYmUgb3B0aW1pemVkIGZvciBzaXplIGFzIHRo ZXkncmUgY2FsbGVkIG9ubHkgb25jZSBhdCBydW50aW1lLgoKVGhlIEdDQyBzcGVjaWZpYyBbY29s ZF0oaHR0cHM6Ly9nY2MuZ251Lm9yZy9vbmxpbmVkb2NzL2djYy00LjYuNC9nY2MvRnVuY3Rpb24t QXR0cmlidXRlcy5odG1sKSBmdW5jdGlvbiBhdHRyaWJ1dGUgd29ya3MgaW4gdGhlIGZvbGxvd2lu ZyB3YXkgKGZyb20gR0NDIGRvY3MpOgoKYGBgClRoZSBjb2xkIGF0dHJpYnV0ZSBpcyB1c2VkIHRv IGluZm9ybSB0aGUgY29tcGlsZXIgdGhhdCBhIGZ1bmN0aW9uIGlzIHVubGlrZWx5IGV4ZWN1dGVk LiBUaGUgZnVuY3Rpb24gaXMgb3B0aW1pemVkIGZvciBzaXplIHJhdGhlciB0aGFuIHNwZWVkIGFu ZCBvbiBtYW55IHRhcmdldHMgaXQgaXMgcGxhY2VkIGludG8gc3BlY2lhbCBzdWJzZWN0aW9uIG9m IHRoZSB0ZXh0IHNlY3Rpb24gc28gYWxsIGNvbGQgZnVuY3Rpb25zIGFwcGVhcnMgY2xvc2UgdG9n ZXRoZXIgaW1wcm92aW5nIGNvZGUgbG9jYWxpdHkgb2Ygbm9uLWNvbGQgcGFydHMgb2YgcHJvZ3Jh bS4gVGhlIHBhdGhzIGxlYWRpbmcgdG8gY2FsbCBvZiBjb2xkIGZ1bmN0aW9ucyB3aXRoaW4gY29k ZSBhcmUgbWFya2VkIGFzIHVubGlrZWx5IGJ5IHRoZSBicmFuY2ggcHJlZGljdGlvbiBtZWNoYW5p c20uIEl0IGlzIHRodXMgdXNlZnVsIHRvIG1hcmsgZnVuY3Rpb25zIHVzZWQgdG8gaGFuZGxlIHVu bGlrZWx5IGNvbmRpdGlvbnMsIHN1Y2ggYXMgcGVycm9yLCBhcyBjb2xkIHRvIGltcHJvdmUgb3B0 aW1pemF0aW9uIG9mIGhvdCBmdW5jdGlvbnMgdGhhdCBkbyBjYWxsIG1hcmtlZCBmdW5jdGlvbnMg aW4gcmFyZSBvY2Nhc2lvbnMuCldoZW4gcHJvZmlsZSBmZWVkYmFjayBpcyBhdmFpbGFibGUsIHZp YSAtZnByb2ZpbGUtdXNlLCBob3QgZnVuY3Rpb25zIGFyZSBhdXRvbWF0aWNhbGx5IGRldGVjdGVk IGFuZCB0aGlzIGF0dHJpYnV0ZSBpcyBpZ25vcmVkLgpgYGAKQnkgZGVjbGFyaW5nIGEgZnVuY3Rp b24gYXMgYGNvbGRgIHdoZW4gZGVmaW5lZCB3ZSBnZXQgdGhlIGZvbGxvd2luZyBiZW5lZml0czoK CiogTm8tb3Agb24gcGxhdGZvcm1zIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgYXR0cmlidXRl CiogU2l6ZSBvcHRpbWl6YXRpb24gb2YgY29sZCBmdW5jdGlvbnMgd2l0aCBhIHNtYWxsZXIgZm9v dHByaW50IGluIHRoZSBpbnN0cnVjdGlvbiBjYWNoZQoqIFRoZXJlZm9yZSBDUFUgZnJvbnRlbmQg dGhyb3VnaHB1dCBpbmNyZWFzZXMgZHVlIHRvIGEgbG93ZXIgcmF0aW8gb2YgaW5zdHJ1Y3Rpb24g Y2FjaGUgbWlzc2VzIGFuZCBhIGxvd2VyIElUTEIgb3ZlcmhlYWQgLSBzZWUgW29yaWdpbmFsIGNo dW5reSBQUl0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMzc5LzQ0 MjA0ODU4LTRjMDg1MTAwLWExNGMtMTFlOC04NmI4LWQ4N2ZjYjVlNDk4NS5wbmcpIFZTIFt0aGVu IHRydW5rXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8zNzkvNDQy MDQ4NzAtNGY5YmQ4MDAtYTE0Yy0xMWU4LTliZWUtMTRjOGFkOGQzYTdkLnBuZykKKiBUaGlzIGVm ZmVjdCBjYW4gZnVydGhlciBiZSBhbXBsaWZpZWQgaW4gZnV0dXJlIHdvcmsgd2l0aCB0aGUgYGhv dGAgYXR0cmlidXRlCgojIyMjIEV4dGVuc2lvbiBBUElzIGZsYWdnZWQgYXMgY29sZAoKVGhlc2Ug YXJlIGFuZCBzaG91bGQgdHlwaWNhbGx5IG9ubHkgYmUgY2FsbGVkIG9uIGV4dGVuc2lvbiBpbml0 LCBhbmQgdGh1cyBzYWZlIHRvIG9wdGltaXplIGZvciBzaXplIGFzIHdlbGwuCgoqIGB2b2lkIHJi X2RlZmluZV9tZXRob2RfaWQoVkFMVUUsIElELCBWQUxVRSAoKikoQU5ZQVJHUyksIGludCkpO2AK KiBgdm9pZCByYl91bmRlZihWQUxVRSwgSUQpKTtgCiogYHZvaWQgcmJfZGVmaW5lX3Byb3RlY3Rl ZF9tZXRob2QoVkFMVUUsIGNvbnN0IGNoYXIqLCBWQUxVRSAoKikoQU5ZQVJHUyksIGludCkpO2AK KiBgdm9pZCByYl9kZWZpbmVfcHJpdmF0ZV9tZXRob2QoVkFMVUUsIGNvbnN0IGNoYXIqLCBWQUxV RSAoKikoQU5ZQVJHUyksIGludCkpO2AKKiBgdm9pZCByYl9kZWZpbmVfc2luZ2xldG9uX21ldGhv ZChWQUxVRSwgY29uc3QgY2hhciosIFZBTFVFKCopKEFOWUFSR1MpLCBpbnQpKTtgCiogYHZvaWQg cmJfZGVmaW5lX2FsbG9jX2Z1bmMoVkFMVUUsIHJiX2FsbG9jX2Z1bmNfdCkpO2AKKiBgdm9pZCBy Yl91bmRlZl9hbGxvY19mdW5jKFZBTFVFKSk7YAoqIGBWQUxVRSByYl9kZWZpbmVfY2xhc3MoY29u c3QgY2hhciosVkFMVUUpKTtgCiogYFZBTFVFIHJiX2RlZmluZV9tb2R1bGUoY29uc3QgY2hhciop KTtgCiogYFZBTFVFIHJiX2RlZmluZV9jbGFzc191bmRlcihWQUxVRSwgY29uc3QgY2hhciosIFZB TFVFKSk7YAoqIGBWQUxVRSByYl9kZWZpbmVfbW9kdWxlX3VuZGVyKFZBTFVFLCBjb25zdCBjaGFy KikpO2AKKiBgdm9pZCByYl9kZWZpbmVfdmFyaWFibGUoY29uc3QgY2hhciosVkFMVUUqKSk7YAoq IGB2b2lkIHJiX2RlZmluZV92aXJ0dWFsX3ZhcmlhYmxlKGNvbnN0IGNoYXIqLFZBTFVFKCopKEFO WUFSR1MpLHZvaWQoKikoQU5ZQVJHUykpKTtgCiogYHZvaWQgcmJfZGVmaW5lX2hvb2tlZF92YXJp YWJsZShjb25zdCBjaGFyKixWQUxVRSosVkFMVUUoKikoQU5ZQVJHUyksdm9pZCgqKShBTllBUkdT KSkpO2AKKiBgdm9pZCByYl9kZWZpbmVfcmVhZG9ubHlfdmFyaWFibGUoY29uc3QgY2hhciosY29u c3QgVkFMVUUqKSk7YAoqIGB2b2lkIHJiX2RlZmluZV9jb25zdChWQUxVRSxjb25zdCBjaGFyKixW QUxVRSkpO2AKKiBgdm9pZCByYl9kZWZpbmVfZ2xvYmFsX2NvbnN0KGNvbnN0IGNoYXIqLFZBTFVF KSk7YAoqIGB2b2lkIHJiX2RlZmluZV9tZXRob2QoVkFMVUUsY29uc3QgY2hhciosVkFMVUUoKiko QU5ZQVJHUyksaW50KSk7YAoqIGAodm9pZCByYl9kZWZpbmVfbW9kdWxlX2Z1bmN0aW9uKFZBTFVF LGNvbnN0IGNoYXIqLFZBTFVFKCopKEFOWUFSR1MpLGludCkpO2AKKiBgdm9pZCByYl9kZWZpbmVf Z2xvYmFsX2Z1bmN0aW9uKGNvbnN0IGNoYXIqLFZBTFVFKCopKEFOWUFSR1MpLGludCkpO2AKKiBg dm9pZCByYl91bmRlZl9tZXRob2QoVkFMVUUsY29uc3QgY2hhciopKTtgCiogYHZvaWQgcmJfZGVm aW5lX2FsaWFzKFZBTFVFLGNvbnN0IGNoYXIqLGNvbnN0IGNoYXIqKSk7YAoqIGB2b2lkIHJiX2Rl ZmluZV9hdHRyKFZBTFVFLGNvbnN0IGNoYXIqLGludCxpbnQpKTtgCiogYHZvaWQgcmJfZ2xvYmFs X3ZhcmlhYmxlKFZBTFVFKikpO2AKKiBgdm9pZCByYl9nY19yZWdpc3Rlcl9tYXJrX29iamVjdChW QUxVRSkpO2AKKiBgdm9pZCByYl9nY19yZWdpc3Rlcl9hZGRyZXNzKFZBTFVFKikpO2AKKiBgdm9p ZCByYl9nY191bnJlZ2lzdGVyX2FkZHJlc3MoVkFMVUUqKSk7YAoKIyMjIyBUZXh0IHNlZ21lbnQg cmVkdWN0aW9ucwoKU21hbGwgY2hhbmdlcyAoYDMxNDRgIGJ5dGVzIHJlZHVjdGlvbiBvZiB0aGUg dGV4dCBzZWdtZW50KSBiZWNhdXNlIHRoaXMgaXMgaW5jcmVtZW50YWwgZ3JvdW5kd29yayBhbmQg YW5kIGluaXRpYWwgbG93IHJpc2sgUFIuCgp0aGlzIGJyYW5jaDoKCmBgYApsb3VyZW5zQENhcmJv blgxOn4vc3JjL3J1YnkvcnVieSQgc2l6ZSBydWJ5CiAgIHRleHQJICAgZGF0YQkgICAgYnNzCSAg ICBkZWMJICAgIGhleAlmaWxlbmFtZQozNDYyMTUzCSAgMjEwNTYJICA3MTM0NAkzNTU0NTUzCSAz NjNjZjkJcnVieQpgYGAKCnRydW5rOgoKYGBgCmxvdXJlbnNAQ2FyYm9uWDE6fi9zcmMvcnVieS90 cnVuayQgc2l6ZSBydWJ5CiAgIHRleHQJICAgZGF0YQkgICAgYnNzCSAgICBkZWMJICAgIGhleAlm aWxlbmFtZQozNDY1Mjk3CSAgMjEwNTYJICA3MTM0NAkzNTU3Njk3CSAzNjQ5NDEJcnVieQpgYGAK CkRpZmZzIGZvciBpbmRpdmlkdWFsIG9iamVjdCBmaWxlczogaHR0cHM6Ly93d3cuZGlmZmNoZWNr ZXIuY29tL1QwR1Z6WDFxCgpEZWZhdWx0IGB0ZXh0LnVubGlrZWx5YCBzZWN0aW9uIHdoZXJlIGlu aXQgZnVuY3Rpb25zIGFyZSBtb3ZlZCB0bzoKCmBgYApsb3VyZW5zQENhcmJvblgxOn4vc3JjL3J1 YnkvcnVieSQgcmVhZGVsZiAtUyB2bS5vClRoZXJlIGFyZSAzNCBzZWN0aW9uIGhlYWRlcnMsIHN0 YXJ0aW5nIGF0IG9mZnNldCAweDJhMDRmODoKClNlY3Rpb24gSGVhZGVyczoKICBbTnJdIE5hbWUg ICAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgQWRkcmVzcyAgICAgICAgICAgT2Zmc2V0CiAg ICAgICBTaXplICAgICAgICAgICAgICBFbnRTaXplICAgICAgICAgIEZsYWdzICBMaW5rICBJbmZv ICBBbGlnbgogIFsgMF0gICAgICAgICAgICAgICAgICAgTlVMTCAgICAgICAgICAgICAwMDAwMDAw MDAwMDAwMDAwICAwMDAwMDAwMAogICAgICAgMDAwMDAwMDAwMDAwMDAwMCAgMDAwMDAwMDAwMDAw MDAwMCAgICAgICAgICAgMCAgICAgMCAgICAgMAogIFsgMV0gLnRleHQgICAgICAgICAgICAgUFJP R0JJVFMgICAgICAgICAwMDAwMDAwMDAwMDAwMDAwICAwMDAwMDA0MAogICAgICAgMDAwMDAwMDAw MDAxYzM3ZiAgMDAwMDAwMDAwMDAwMDAwMCAgQVggICAgICAgMCAgICAgMCAgICAgMTYKICBbIDJd IC5yZWxhLnRleHQgICAgICAgIFJFTEEgICAgICAgICAgICAgMDAwMDAwMDAwMDAwMDAwMCAgMDAx MTQxMDAKICAgICAgIDAwMDAwMDAwMDAwMGE3ZDAgIDAwMDAwMDAwMDAwMDAwMTggICBJICAgICAg MzEgICAgIDEgICAgIDgKICBbIDNdIC5kYXRhICAgICAgICAgICAgIFBST0dCSVRTICAgICAgICAg MDAwMDAwMDAwMDAwMDAwMCAgMDAwMWMzYzAKICAgICAgIDAwMDAwMDAwMDAwMDAwMzAgIDAwMDAw MDAwMDAwMDAwMDAgIFdBICAgICAgIDAgICAgIDAgICAgIDE2CiAgWyA0XSAuYnNzICAgICAgICAg ICAgICBOT0JJVFMgICAgICAgICAgIDAwMDAwMDAwMDAwMDAwMDAgIDAwMDFjNDAwCiAgICAgICAw MDAwMDAwMDAwMDAwMmIwICAwMDAwMDAwMDAwMDAwMDAwICBXQSAgICAgICAwICAgICAwICAgICAz MgogIFsgNV0gLnJvZGF0YS5zdHIxLjggICAgUFJPR0JJVFMgICAgICAgICAwMDAwMDAwMDAwMDAw MDAwICAwMDAxYzQwMAogICAgICAgMDAwMDAwMDAwMDAwMGQ2ZiAgMDAwMDAwMDAwMDAwMDAwMSBB TVMgICAgICAgMCAgICAgMCAgICAgOAogIFsgNl0gLnRleHQudW5saWtlbHkgICAgUFJPR0JJVFMg ICAgICAgICAwMDAwMDAwMDAwMDAwMDAwICAwMDAxZDE2ZiA8PDw8PDw8PDw8PDw8PDwKICAgICAg IDAwMDAwMDAwMDAwMDFhYTkgIDAwMDAwMDAwMDAwMDAwMDAgIEFYICAgICAgIDAgICAgIDAgICAg IDEKYGBgCgpUaGUgcmVsb2NhdGlvbnMgZm9yIGB2bS5vYDoKCmBgYApsb3VyZW5zQENhcmJvblgx On4vc3JjL3J1YnkvcnVieSQgbGQgLU0gdm0ubwotLS0gdHJ1bmNhdGVkIC0tLQoudGV4dCAgICAg ICAgICAgMHgwMDAwMDAwMDAwNDAwMTIwICAgIDB4MWRlMmYKICooLnRleHQudW5saWtlbHkgLnRl eHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogLnRleHQudW5saWtlbHkKICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDAwMDQwMDEyMCAgICAgMHgxYWE5IHZtLm8KICAgICAgICAgICAgICAg IDB4MDAwMDAwMDAwMDQwMDM4ZiAgICAgICAgICAgICAgICByYl9kZWZpbmVfYWxsb2NfZnVuYwog ICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDAwM2JmICAgICAgICAgICAgICAgIHJiX3VuZGVm X2FsbG9jX2Z1bmMKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwMDNjNSAgICAgICAgICAg ICAgICBJbml0X01ldGhvZAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDAwNTEyICAgICAg ICAgICAgICAgIEluaXRfdm1fZXZhbAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDAwN2Ex ICAgICAgICAgICAgICAgIEluaXRfZXZhbF9tZXRob2QKICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAwMDQwMGE1NCAgICAgICAgICAgICAgICByYl91bmRlZgogICAgICAgICAgICAgICAgMHgwMDAw MDAwMDAwNDAwYzFkICAgICAgICAgICAgICAgIEluaXRfVk0KICAgICAgICAgICAgICAgIDB4MDAw MDAwMDAwMDQwMTg1ZiAgICAgICAgICAgICAgICBJbml0X0JhcmVWTQogICAgICAgICAgICAgICAg MHgwMDAwMDAwMDAwNDAxYjE2ICAgICAgICAgICAgICAgIEluaXRfdm1fb2JqZWN0cwogICAgICAg ICAgICAgICAgMHgwMDAwMDAwMDAwNDAxYjYxICAgICAgICAgICAgICAgIEluaXRfdG9wX3NlbGYK ICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1 cC4qKQogKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdu dS5saW5rb25jZS50LiopCiAqZmlsbCogICAgICAgICAweDAwMDAwMDAwMDA0MDFiYzkgICAgICAg IDB4NyAKIC50ZXh0ICAgICAgICAgIDB4MDAwMDAwMDAwMDQwMWJkMCAgICAweDFjMzdmIHZtLm8K ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwMjJmMCAgICAgICAgICAgICAgICByYl9mX25v dGltcGxlbWVudAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDA0NzgwICAgICAgICAgICAg ICAgIHJiX3ZtX2VwX2xvY2FsX2VwCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDQ3YjAg ICAgICAgICAgICAgICAgcmJfdm1fZnJhbWVfYmxvY2tfaGFuZGxlcgogICAgICAgICAgICAgICAg MHgwMDAwMDAwMDAwNDA0N2UwICAgICAgICAgICAgICAgIHJiX3ZtX2NyZWZfbmV3X3RvcGxldmVs CiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDQ4NzAgICAgICAgICAgICAgICAgcmJfdm1f YmxvY2tfZXBfdXBkYXRlCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDQ4OTAgICAgICAg ICAgICAgICAgcnVieV92bV9zcGVjaWFsX2V4Y2VwdGlvbl9jb3B5CiAgICAgICAgICAgICAgICAw eDAwMDAwMDAwMDA0MDY5NjAgICAgICAgICAgICAgICAgcmJfZWNfc3RhY2tfb3ZlcmZsb3cKICAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNjljMCAgICAgICAgICAgICAgICByYl92bV9wdXNo X2ZyYW1lCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDZiMjAgICAgICAgICAgICAgICAg cmJfdm1fcG9wX2ZyYW1lCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDZiMzAgICAgICAg ICAgICAgICAgcmJfZXJyb3JfYXJpdHkKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNzE4 MCAgICAgICAgICAgICAgICByYl92bV9mcmFtZV9tZXRob2RfZW50cnkKICAgICAgICAgICAgICAg IDB4MDAwMDAwMDAwMDQwNzVlMCAgICAgICAgICAgICAgICByYl92bV9yZXdyaXRlX2NyZWYKICAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNzZmMCAgICAgICAgICAgICAgICByYl9zaW1wbGVf aXNlcV9wCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDc3MDAgICAgICAgICAgICAgICAg cmJfdm1fb3B0X3N0cnVjdF9hcmVmCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDc3MzAg ICAgICAgICAgICAgICAgcmJfdm1fb3B0X3N0cnVjdF9hc2V0CiAgICAgICAgICAgICAgICAweDAw MDAwMDAwMDA0MDc3NTAgICAgICAgICAgICAgICAgcmJfY2xlYXJfY29uc3RhbnRfY2FjaGUKLS0t IHRydW5jYXRlZCAtLS0KYGBgCkkgYWxzbyBkYWJibGVkIHdpdGggdGhlIGlkZWEgb2YgYW4gYElO SVRGVU5DYCBtYWNybyB0aGF0IGFsc28gcGxhY2VzIHRoZSBgSW5pdF94eHhgIGZ1bmN0aW9ucyBp bnRvIGEgYHRleHQuaW5pdGAgc2VjdGlvbiBhcyB0aGUgW2tlcm5lbCBkb2VzXShodHRwczovL2xp bnV4Z2F6ZXR0ZS5uZXQvMTU3L2FtdXJyYXkuaHRtbCkgZm9yIGEgcG9zc2libGUgZnV0dXJlIG9w dGltaXphdGlvbiBvZiBzdHJpcHBpbmcgb3V0IEVMRiBzZWN0aW9ucyBmb3Igc2V0dXAgLyBpbml0 IHNwZWNpZmljIGZ1bmN0aW9ucy4gSSBkb24ndCB0aGluayB0aGF0IG1ha2VzIHNlbnNlIGZvciBu b3cgYW5kIHBvc3NpYmx5IG9ubHkgaW50ZXJlc3RpbmcgZm9yIG1ydWJ5IG9yIGVtYmVkZGVkLgoK IyMjIFBvc3NpYmxlIG5leHQgdW5pdHMgb2Ygd29yawoKIyMjIyBDb2xkIGNvZGUgc3BlY2lmaWMK CiogSW5jcmVtZW50YWxseSBQUiBjb3JuZXIgY2FzZSBlcnJvciBoYW5kbGluZyBmdW5jdGlvbnMg c3VjaCBhcyBgcmJfYnVnYCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8x OTIyCiogRGl0dG8gZm9yIGdlbmVyaWMgZXJyb3IgaGFuZGxpbmcgZnVuY3Rpb25zIChgcmJfcmFp c2VgIGFuZCBmcmllbmRzKSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8x OTIyCiogQ2xhc3Mgc3BlY2lmaWMgZXJyb3IgaGFuZGxpbmcgZnVuY3Rpb25zIChsb2FkIGVycm9y cywgZW5jb2RpbmcgZXJyb3JzIGluIHRoZSBJTyBtb2R1bGUsIHN5cyBlcnJvcnMgZXRjLikgZnJv bSBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvMTkyMgoqIEdDQyA1KyBhbHNvIHN1 cHBvcnRzIGBjb2xkYCBbbGFiZWxzXShodHRwczovL2djYy5nbnUub3JnL29ubGluZWRvY3MvZ2Nj L0xhYmVsLUF0dHJpYnV0ZXMuaHRtbCkgLCB3aGljaCBJIHRvb2sgYSBzdGFiIHdpdGggaW4gdGhl IGJsb2F0ZWQgaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzE5MjIKCiMjIyMgVExC ICh0cmFuc2xhdGlvbiBsb29rYXNpZGUgYnVmZmVyKSBzcGVjaWZpYwoKKiBGdXJ0aGVyIElUTEIg b3ZlcmhlYWQgaW52ZXN0aWdhdGlvbgoqIFJ1YnkgYmluYXJpZXMgYnVpbHQgd2l0aCBPMyBhbmQg ZGVidWcgc3ltYm9scyBjb21lIGluIGF0IGp1c3Qgc2hvcnQgb2YgMThNQiwgb3Igcm91Z2hseSA5 IGh1Z2VwYWdlcyBvbiBsaW51eC4gUEhQIGNvcmUgZGV2ZWxvcGVycyB3ZXJlIGFibGUgdG8gc3F1 ZWV6ZSBhIGZldyAlIGJ5IHJlbWFwcGluZyBjb2RlIHRvIGh1Z2VwYWdlcyBvbiBzdXBwb3J0ZWQg c3lzdGVtcyAtIGh0dHA6Ly9kZXZlbG9wZXJzLWNsdWIuY29tL3Bvc3RzLzI3MDY4NS8gLiBJbXBs ZW1lbnRhdGlvbiBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL3BocC9waHAtc3JjL2Jsb2IvZmIw Mzg5YjEwMTBkZTVhNjQ1OWJjZjI4NjQwOTQyM2Y2OWU3NGFhZi9leHQvb3BjYWNoZS9aZW5kQWNj ZWxlcmF0b3IuYyNMMjY0NS1MMjc1MCkKCiMjIyMgQnl0ZWNvZGUgc3BlY2lmaWMKCiogVGhlIFtJ bnRlbCBUcmFjaW5nIFRhc2sgQVBJXShodHRwczovL3NvZnR3YXJlLmludGVsLmNvbS9lbi11cy92 dHVuZS1hbXBsaWZpZXItaGVscC10YXNrLWFwaSkgaXMgdmVyeSB3ZWxsIHN1aXRlZCBmb3IgdGhl IGluc3RydWN0aW9uIHNlcXVlbmNlcyBZQVJWIGdlbmVyYXRlcyBhbmQgdG8gaW5mZXIgYmV0dGVy IHBlciBpbnN0cnVjdGlvbiBDUFUgdXRpbGl6YXRpb24gYW5kIGlkZW50aWZ5IGFueSBzdGFsbHMg KGZyb250ZW5kLCBiYWNrZW5kLCBicmFuY2hlcyBldGMuKSB0byBkcml2ZSBmdXJ0aGVyIHdvcmsu CgoKCi0tIApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8K