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=-4.1 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 236F31F954 for ; Thu, 23 Aug 2018 18:02:02 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 17269120B56; Fri, 24 Aug 2018 03:02:00 +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 D5D33120B54 for ; Fri, 24 Aug 2018 03:01:58 +0900 (JST) Received: by filter0041p3iad2.sendgrid.net with SMTP id filter0041p3iad2-19793-5B7EF693-27 2018-08-23 18:01:55.564831015 +0000 UTC m=+505393.191621588 Received: from herokuapp.com (ec2-54-90-103-155.compute-1.amazonaws.com [54.90.103.155]) by ismtpd0001p1iad1.sendgrid.net (SG) with ESMTP id 6tGcoqyZRYWS9IZJhAqEmw Thu, 23 Aug 2018 18:01:55.337 +0000 (UTC) Date: Thu, 23 Aug 2018 18:01:56 +0000 (UTC) From: lourens@bearmetal.eu To: ruby-core@ruby-lang.org Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 64003 X-Redmine-Project: ruby-trunk X-Redmine-Issue-Id: 15007 X-Redmine-Issue-Author: methodmissing X-Redmine-Issue-Assignee: naruse X-Redmine-Sender: methodmissing 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/Ymy4QrNMhiuLXJG8OTL2vJD1yS7iWmHh4RTWyqZimhsdXWa0b03I9o1D8CNss6 xI1lZBzSPh0tm61EqZ7t6vooler4gnw8oT68Ne2+/WMYpwqnAt9cy1RFnJoxiH2IHdjCXEgCeM5QqX SPPKIP9B12GQn8HTqhJeKzGs4wjDqRcqjaRRBH9iTqyuIpk3V2WM9mvCCg== X-ML-Name: ruby-core X-Mail-Count: 88621 Subject: [ruby-core:88621] [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" SXNzdWUgIzE1MDA3IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWV0aG9kbWlzc2luZyAoTG91cmVucyBO YXVkw6kpLgoKCkhhbm1hYyAoSGFucyBNYWNrb3dpYWspIHdyb3RlOgo+IHdoYXQgaGFwcGVucyB3 aGVuIGkgd291bGQgY2FsbCBzdWNoIGNvbGQgZnVuY3Rpb24gb3V0c2lkZSBvZiBJbml0X3h4eCA/ CgpJIGNvbnNpZGVyZWQgcHJpbWFyaWx5IG9ubHkgY29yZSBmb3IgdGhpcyBjaGFuZ2UgYW5kIGNh cmVmdWxseSBsb29rZWQgQCB1c2FnZSBvZiB0aGUgZXh0ZW5zaW9uIEFQSSBpbiBgSW5pdF94eHhg IGZ1bmN0aW9ucywgYnV0IGZvciBzdXJlIHRoZXJlJ3MgZ29pbmcgdG8gYmUgZWRnZXMgaW4gdGhl IHdpbGQgd2l0aCBvdGhlciBleHRlbnNpb25zLiBJIG9ubHkgY2hvc2UgdG8gb3ZlcnJpZGUgdGhl IHB1YmxpYyBBUEkgZnVuY3Rpb25zIHRoYXQgeW91IHdvbid0IGNhbGwgbXVjaCBpbiBhIGhvdCBw YXRoIGVpdGhlciAob3Igc2hvdWxkbid0KS4gQWxzbyBvcHRpbWl6ZWQgZm9yIHNpemUgVlMgcGVy Zm9ybWFuY2UsIHNvbWV0aW1lcyBhIGZ1bmN0aW9uIHdpdGggc21hbGxlciBjb2RlIHNpemUgY2Fu IGV4ZWN1dGUgZmFzdGVyIHRoYW4gYW4gb3B0aW1pemVkIG9uZS4KCj4gCj4gd2hhdCBmdW5jdGlv bnMgaW4gbXkgb3duIGJpbmRpbmcgc2hvdWxkIGJlIHVzaW5nIGNvbGQ/Cj4gbGlrZSBmb3IgZXhh bXBsZSBpIGhhdmUgYSBvd24gX2F0dHJfbWV0aG9kIGZ1bmN0aW9uIHRoYXQgbWltaWMgYSBhdHRy aWJ1dGUgYnkgc2V0dGluZyBhIEdldC9TZXQgZnVuY3Rpb24KCkkgY2FuIGRvY3VtZW50IGxpa2Vs eSBjYW5kaWRhdGVzICh3aGF0IHRvIGxvb2sgZm9yLCB0byBjb25zaWRlciAtIG1vc3Qgd291bGQg aGF2ZSBhIHN0cm9uZyBzeXN0ZW0gc3BlY2lmaWMgb3IgZXhjZXB0aW9ucyBlcnJvciBwYXRoLCBk ZXBlbmRpbmcgb24gd2hhdCdzIGJlaW5nIHdyYXBwZWQpIGluIHRoZSBleHRlbnNpb25zIGd1aWRl IGFzIHBhcnQgb2YgdGhpcyBjaGFuZ2UsIGlmIHRoYXQgd29ya3MgLi4uCgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk1pc2MgIzE1MDA3OiBMZXQgYWxsIEluaXRfeHh4 IGFuZCBleHRlbnNpb24gQVBJcyBmcmVxdWVudGx5IGNhbGxlZCBmcm9tIGluaXQgY29kZSBwYXRo cyBiZSBjb25zaWRlcmVkIGNvbGQKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE1 MDA3I2NoYW5nZS03MzY4MQoKKiBBdXRob3I6IG1ldGhvZG1pc3NpbmcgKExvdXJlbnMgTmF1ZMOp KQoqIFN0YXR1czogT3BlbgoqIFByaW9yaXR5OiBOb3JtYWwKKiBBc3NpZ25lZTogbmFydXNlIChZ dWkgTkFSVVNFKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClJlZmVy ZW5jZXMgR2l0aHViIFBSIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8xOTM0Cgoj IyMgV2h5PwoKQW4gaW5jcmVtZW50YWwgZXh0cmFjdGlvbiBmcm9tIFBSIGh0dHBzOi8vZ2l0aHVi LmNvbS9ydWJ5L3J1YnkvcHVsbC8xOTIyLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyB0aGUgZmVl ZGJhY2sgZnJvbSBZdWkgTmFydXNlIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVs bC8xOTIyI2lzc3VlY29tbWVudC00MTM3OTY3MTAKClRoZSBbTGludXgga2VybmVsXShodHRwczov L2dpdGh1Yi5jb20vdG9ydmFsZHMvbGludXgvYmxvYi9jYTA0YjNjY2ExMWFjYmFmOTA0ZjcwN2Yy ZDljYTk2NTRkN2NjMjI2L2luY2x1ZGUvbGludXgvY29tcGlsZXItZ2NjLmgjTDE5MS1MMjA2KSwg W1BIUCA3XShodHRwczovL2dpdGh1Yi5jb20vcGhwL3BocC1zcmMvYmxvYi8yZDcxYTI4OTU0YTRm MjA3MDk3MThlZTdjYjJiODUwZDMzNGM1NjFjL1plbmQvemVuZF9wb3J0YWJpbGl0eS5oI0wyMjAp IGFuZCBvdGhlciBwcm9qZWN0cyB1c2UgdGhlIGBob3RgIGFuZCBgY29sZGAgZnVuY3Rpb24gYXR0 cmlidXRlcyB0byBoZWxwIHdpdGggYmV0dGVyIGNvZGUgbGF5b3V0LgoKSSBub3RpY2VkIFJ1Ynkg aXMgdmVyeSBtdWNoIENQVSBmcm9udGVuZCBib3VuZCAobm90IGZlZWRpbmcgaW5zdHJ1Y3Rpb25z IGludG8gdGhlIENQVSBwaXBlbGluZXMgYXMgZmFzdCBhcyBpdCBtYXliZSBjb3VsZCkgYW5kIHRo ZXJlZm9yZSBldmVuIG1vc3QgbWljcm8gYmVuY2htYXJrcyBoYXZlIGEgaGlnaCBDUEkgKGN5Y2xl cyBwZXIgaW5zdHJ1Y3Rpb24pIHJhdGUuIFRoaXMgUFIgaXMgcGFydCBvZiBhIGxhcmdlciBjaHVu ayBvZiB3b3JrIEknZCBsaWtlIHRvIGRvIGFyb3VuZCBpbXByb3ZpbmcgQ1BVIGZyb250ZW5kIHRo cm91Z2hwdXQgYW5kIGNhbiB0YWtlIGEgc3RhYiBhdCBmb3JtYWxseSB3cml0aW5nIHVwIHRob3Nl IGlkZWFzIGlmIHRoZXJlJ3MgYW55IGludGVyZXN0IGZyb20gdGhlIGNvbW11bml0eS4gSSBkb24n dCBrbm93LgoKIyMjIEltcGxlbWVudGF0aW9uCgpUaGlzIFBSIGhhcyBhbiBleGNsdXNpdmUgZm9j dXMgb24gaGF2aW5nIHRoZSBgSW5pdF94eHhgIGZ1bmN0aW9ucyBmb3IgdGhlIGNvcmUgY2xhc3Nl cyBhbmQgdGhvc2UgYnVuZGxlZCBpbiBgZXh0YCBiZWluZyBmbGFnZ2VkIHRvIGJlIG9wdGltaXpl ZCBmb3Igc2l6ZSBhcyB0aGV5J3JlIGNhbGxlZCBvbmx5IG9uY2UgYXQgcnVudGltZS4KClRoZSBH Q0Mgc3BlY2lmaWMgW2NvbGRdKGh0dHBzOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9nY2MtNC42 LjQvZ2NjL0Z1bmN0aW9uLUF0dHJpYnV0ZXMuaHRtbCkgZnVuY3Rpb24gYXR0cmlidXRlIHdvcmtz IGluIHRoZSBmb2xsb3dpbmcgd2F5IChmcm9tIEdDQyBkb2NzKToKCmBgYApUaGUgY29sZCBhdHRy aWJ1dGUgaXMgdXNlZCB0byBpbmZvcm0gdGhlIGNvbXBpbGVyIHRoYXQgYSBmdW5jdGlvbiBpcyB1 bmxpa2VseSBleGVjdXRlZC4gVGhlIGZ1bmN0aW9uIGlzIG9wdGltaXplZCBmb3Igc2l6ZSByYXRo ZXIgdGhhbiBzcGVlZCBhbmQgb24gbWFueSB0YXJnZXRzIGl0IGlzIHBsYWNlZCBpbnRvIHNwZWNp YWwgc3Vic2VjdGlvbiBvZiB0aGUgdGV4dCBzZWN0aW9uIHNvIGFsbCBjb2xkIGZ1bmN0aW9ucyBh cHBlYXJzIGNsb3NlIHRvZ2V0aGVyIGltcHJvdmluZyBjb2RlIGxvY2FsaXR5IG9mIG5vbi1jb2xk IHBhcnRzIG9mIHByb2dyYW0uIFRoZSBwYXRocyBsZWFkaW5nIHRvIGNhbGwgb2YgY29sZCBmdW5j dGlvbnMgd2l0aGluIGNvZGUgYXJlIG1hcmtlZCBhcyB1bmxpa2VseSBieSB0aGUgYnJhbmNoIHBy ZWRpY3Rpb24gbWVjaGFuaXNtLiBJdCBpcyB0aHVzIHVzZWZ1bCB0byBtYXJrIGZ1bmN0aW9ucyB1 c2VkIHRvIGhhbmRsZSB1bmxpa2VseSBjb25kaXRpb25zLCBzdWNoIGFzIHBlcnJvciwgYXMgY29s ZCB0byBpbXByb3ZlIG9wdGltaXphdGlvbiBvZiBob3QgZnVuY3Rpb25zIHRoYXQgZG8gY2FsbCBt YXJrZWQgZnVuY3Rpb25zIGluIHJhcmUgb2NjYXNpb25zLgpXaGVuIHByb2ZpbGUgZmVlZGJhY2sg aXMgYXZhaWxhYmxlLCB2aWEgLWZwcm9maWxlLXVzZSwgaG90IGZ1bmN0aW9ucyBhcmUgYXV0b21h dGljYWxseSBkZXRlY3RlZCBhbmQgdGhpcyBhdHRyaWJ1dGUgaXMgaWdub3JlZC4KYGBgCkJ5IGRl Y2xhcmluZyBhIGZ1bmN0aW9uIGFzIGBjb2xkYCB3aGVuIGRlZmluZWQgd2UgZ2V0IHRoZSBmb2xs b3dpbmcgYmVuZWZpdHM6CgoqIE5vLW9wIG9uIHBsYXRmb3JtcyB0aGF0IGRvZXMgbm90IHN1cHBv cnQgdGhlIGF0dHJpYnV0ZQoqIFNpemUgb3B0aW1pemF0aW9uIG9mIGNvbGQgZnVuY3Rpb25zIHdp dGggYSBzbWFsbGVyIGZvb3RwcmludCBpbiB0aGUgaW5zdHJ1Y3Rpb24gY2FjaGUKKiBUaGVyZWZv cmUgQ1BVIGZyb250ZW5kIHRocm91Z2hwdXQgaW5jcmVhc2VzIGR1ZSB0byBhIGxvd2VyIHJhdGlv IG9mIGluc3RydWN0aW9uIGNhY2hlIG1pc3NlcyBhbmQgYSBsb3dlciBJVExCIG92ZXJoZWFkIC0g c2VlIFtvcmlnaW5hbCBjaHVua3kgUFJdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNv bnRlbnQuY29tLzM3OS80NDIwNDg1OC00YzA4NTEwMC1hMTRjLTExZTgtODZiOC1kODdmY2I1ZTQ5 ODUucG5nKSBWUyBbdGhlbiB0cnVua10oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29u dGVudC5jb20vMzc5LzQ0MjA0ODcwLTRmOWJkODAwLWExNGMtMTFlOC05YmVlLTE0YzhhZDhkM2E3 ZC5wbmcpCiogVGhpcyBlZmZlY3QgY2FuIGZ1cnRoZXIgYmUgYW1wbGlmaWVkIGluIGZ1dHVyZSB3 b3JrIHdpdGggdGhlIGBob3RgIGF0dHJpYnV0ZQoKIyMjIyBFeHRlbnNpb24gQVBJcyBmbGFnZ2Vk IGFzIGNvbGQKClRoZXNlIGFyZSBhbmQgc2hvdWxkIHR5cGljYWxseSBvbmx5IGJlIGNhbGxlZCBv biBleHRlbnNpb24gaW5pdCwgYW5kIHRodXMgc2FmZSB0byBvcHRpbWl6ZSBmb3Igc2l6ZSBhcyB3 ZWxsLgoKKiBgdm9pZCByYl9kZWZpbmVfbWV0aG9kX2lkKFZBTFVFLCBJRCwgVkFMVUUgKCopKEFO WUFSR1MpLCBpbnQpKTtgCiogYHZvaWQgcmJfdW5kZWYoVkFMVUUsIElEKSk7YAoqIGB2b2lkIHJi X2RlZmluZV9wcm90ZWN0ZWRfbWV0aG9kKFZBTFVFLCBjb25zdCBjaGFyKiwgVkFMVUUgKCopKEFO WUFSR1MpLCBpbnQpKTtgCiogYHZvaWQgcmJfZGVmaW5lX3ByaXZhdGVfbWV0aG9kKFZBTFVFLCBj b25zdCBjaGFyKiwgVkFMVUUgKCopKEFOWUFSR1MpLCBpbnQpKTtgCiogYHZvaWQgcmJfZGVmaW5l X3NpbmdsZXRvbl9tZXRob2QoVkFMVUUsIGNvbnN0IGNoYXIqLCBWQUxVRSgqKShBTllBUkdTKSwg aW50KSk7YAoqIGB2b2lkIHJiX2RlZmluZV9hbGxvY19mdW5jKFZBTFVFLCByYl9hbGxvY19mdW5j X3QpKTtgCiogYHZvaWQgcmJfdW5kZWZfYWxsb2NfZnVuYyhWQUxVRSkpO2AKKiBgVkFMVUUgcmJf ZGVmaW5lX2NsYXNzKGNvbnN0IGNoYXIqLFZBTFVFKSk7YAoqIGBWQUxVRSByYl9kZWZpbmVfbW9k dWxlKGNvbnN0IGNoYXIqKSk7YAoqIGBWQUxVRSByYl9kZWZpbmVfY2xhc3NfdW5kZXIoVkFMVUUs IGNvbnN0IGNoYXIqLCBWQUxVRSkpO2AKKiBgVkFMVUUgcmJfZGVmaW5lX21vZHVsZV91bmRlcihW QUxVRSwgY29uc3QgY2hhciopKTtgCiogYHZvaWQgcmJfZGVmaW5lX3ZhcmlhYmxlKGNvbnN0IGNo YXIqLFZBTFVFKikpO2AKKiBgdm9pZCByYl9kZWZpbmVfdmlydHVhbF92YXJpYWJsZShjb25zdCBj aGFyKixWQUxVRSgqKShBTllBUkdTKSx2b2lkKCopKEFOWUFSR1MpKSk7YAoqIGB2b2lkIHJiX2Rl ZmluZV9ob29rZWRfdmFyaWFibGUoY29uc3QgY2hhciosVkFMVUUqLFZBTFVFKCopKEFOWUFSR1Mp LHZvaWQoKikoQU5ZQVJHUykpKTtgCiogYHZvaWQgcmJfZGVmaW5lX3JlYWRvbmx5X3ZhcmlhYmxl KGNvbnN0IGNoYXIqLGNvbnN0IFZBTFVFKikpO2AKKiBgdm9pZCByYl9kZWZpbmVfY29uc3QoVkFM VUUsY29uc3QgY2hhciosVkFMVUUpKTtgCiogYHZvaWQgcmJfZGVmaW5lX2dsb2JhbF9jb25zdChj b25zdCBjaGFyKixWQUxVRSkpO2AKKiBgdm9pZCByYl9kZWZpbmVfbWV0aG9kKFZBTFVFLGNvbnN0 IGNoYXIqLFZBTFVFKCopKEFOWUFSR1MpLGludCkpO2AKKiBgKHZvaWQgcmJfZGVmaW5lX21vZHVs ZV9mdW5jdGlvbihWQUxVRSxjb25zdCBjaGFyKixWQUxVRSgqKShBTllBUkdTKSxpbnQpKTtgCiog YHZvaWQgcmJfZGVmaW5lX2dsb2JhbF9mdW5jdGlvbihjb25zdCBjaGFyKixWQUxVRSgqKShBTllB UkdTKSxpbnQpKTtgCiogYHZvaWQgcmJfdW5kZWZfbWV0aG9kKFZBTFVFLGNvbnN0IGNoYXIqKSk7 YAoqIGB2b2lkIHJiX2RlZmluZV9hbGlhcyhWQUxVRSxjb25zdCBjaGFyKixjb25zdCBjaGFyKikp O2AKKiBgdm9pZCByYl9kZWZpbmVfYXR0cihWQUxVRSxjb25zdCBjaGFyKixpbnQsaW50KSk7YAoq IGB2b2lkIHJiX2dsb2JhbF92YXJpYWJsZShWQUxVRSopKTtgCiogYHZvaWQgcmJfZ2NfcmVnaXN0 ZXJfbWFya19vYmplY3QoVkFMVUUpKTtgCiogYHZvaWQgcmJfZ2NfcmVnaXN0ZXJfYWRkcmVzcyhW QUxVRSopKTtgCiogYHZvaWQgcmJfZ2NfdW5yZWdpc3Rlcl9hZGRyZXNzKFZBTFVFKikpO2AKCiMj IyMgVGV4dCBzZWdtZW50IHJlZHVjdGlvbnMKClNtYWxsIGNoYW5nZXMgKGAzMTQ0YCBieXRlcyBy ZWR1Y3Rpb24gb2YgdGhlIHRleHQgc2VnbWVudCkgYmVjYXVzZSB0aGlzIGlzIGluY3JlbWVudGFs IGdyb3VuZHdvcmsgYW5kIGFuZCBpbml0aWFsIGxvdyByaXNrIFBSLgoKdGhpcyBicmFuY2g6Cgpg YGAKbG91cmVuc0BDYXJib25YMTp+L3NyYy9ydWJ5L3J1YnkkIHNpemUgcnVieQogICB0ZXh0CSAg IGRhdGEJICAgIGJzcwkgICAgZGVjCSAgICBoZXgJZmlsZW5hbWUKMzQ2MjE1MwkgIDIxMDU2CSAg NzEzNDQJMzU1NDU1MwkgMzYzY2Y5CXJ1YnkKYGBgCgp0cnVuazoKCmBgYApsb3VyZW5zQENhcmJv blgxOn4vc3JjL3J1YnkvdHJ1bmskIHNpemUgcnVieQogICB0ZXh0CSAgIGRhdGEJICAgIGJzcwkg ICAgZGVjCSAgICBoZXgJZmlsZW5hbWUKMzQ2NTI5NwkgIDIxMDU2CSAgNzEzNDQJMzU1NzY5Nwkg MzY0OTQxCXJ1YnkKYGBgCgpEaWZmcyBmb3IgaW5kaXZpZHVhbCBvYmplY3QgZmlsZXM6IGh0dHBz Oi8vd3d3LmRpZmZjaGVja2VyLmNvbS9UMEdWelgxcQoKRGVmYXVsdCBgdGV4dC51bmxpa2VseWAg c2VjdGlvbiB3aGVyZSBpbml0IGZ1bmN0aW9ucyBhcmUgbW92ZWQgdG86CgpgYGAKbG91cmVuc0BD YXJib25YMTp+L3NyYy9ydWJ5L3J1YnkkIHJlYWRlbGYgLVMgdm0ubwpUaGVyZSBhcmUgMzQgc2Vj dGlvbiBoZWFkZXJzLCBzdGFydGluZyBhdCBvZmZzZXQgMHgyYTA0Zjg6CgpTZWN0aW9uIEhlYWRl cnM6CiAgW05yXSBOYW1lICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgIEFkZHJlc3MgICAg ICAgICAgIE9mZnNldAogICAgICAgU2l6ZSAgICAgICAgICAgICAgRW50U2l6ZSAgICAgICAgICBG bGFncyAgTGluayAgSW5mbyAgQWxpZ24KICBbIDBdICAgICAgICAgICAgICAgICAgIE5VTEwgICAg ICAgICAgICAgMDAwMDAwMDAwMDAwMDAwMCAgMDAwMDAwMDAKICAgICAgIDAwMDAwMDAwMDAwMDAw MDAgIDAwMDAwMDAwMDAwMDAwMDAgICAgICAgICAgIDAgICAgIDAgICAgIDAKICBbIDFdIC50ZXh0 ICAgICAgICAgICAgIFBST0dCSVRTICAgICAgICAgMDAwMDAwMDAwMDAwMDAwMCAgMDAwMDAwNDAK ICAgICAgIDAwMDAwMDAwMDAwMWMzN2YgIDAwMDAwMDAwMDAwMDAwMDAgIEFYICAgICAgIDAgICAg IDAgICAgIDE2CiAgWyAyXSAucmVsYS50ZXh0ICAgICAgICBSRUxBICAgICAgICAgICAgIDAwMDAw MDAwMDAwMDAwMDAgIDAwMTE0MTAwCiAgICAgICAwMDAwMDAwMDAwMDBhN2QwICAwMDAwMDAwMDAw MDAwMDE4ICAgSSAgICAgIDMxICAgICAxICAgICA4CiAgWyAzXSAuZGF0YSAgICAgICAgICAgICBQ Uk9HQklUUyAgICAgICAgIDAwMDAwMDAwMDAwMDAwMDAgIDAwMDFjM2MwCiAgICAgICAwMDAwMDAw MDAwMDAwMDMwICAwMDAwMDAwMDAwMDAwMDAwICBXQSAgICAgICAwICAgICAwICAgICAxNgogIFsg NF0gLmJzcyAgICAgICAgICAgICAgTk9CSVRTICAgICAgICAgICAwMDAwMDAwMDAwMDAwMDAwICAw MDAxYzQwMAogICAgICAgMDAwMDAwMDAwMDAwMDJiMCAgMDAwMDAwMDAwMDAwMDAwMCAgV0EgICAg ICAgMCAgICAgMCAgICAgMzIKICBbIDVdIC5yb2RhdGEuc3RyMS44ICAgIFBST0dCSVRTICAgICAg ICAgMDAwMDAwMDAwMDAwMDAwMCAgMDAwMWM0MDAKICAgICAgIDAwMDAwMDAwMDAwMDBkNmYgIDAw MDAwMDAwMDAwMDAwMDEgQU1TICAgICAgIDAgICAgIDAgICAgIDgKICBbIDZdIC50ZXh0LnVubGlr ZWx5ICAgIFBST0dCSVRTICAgICAgICAgMDAwMDAwMDAwMDAwMDAwMCAgMDAwMWQxNmYgPDw8PDw8 PDw8PDw8PDw8CiAgICAgICAwMDAwMDAwMDAwMDAxYWE5ICAwMDAwMDAwMDAwMDAwMDAwICBBWCAg ICAgICAwICAgICAwICAgICAxCmBgYAoKVGhlIHJlbG9jYXRpb25zIGZvciBgdm0ub2A6CgpgYGAK bG91cmVuc0BDYXJib25YMTp+L3NyYy9ydWJ5L3J1YnkkIGxkIC1NIHZtLm8KLS0tIHRydW5jYXRl ZCAtLS0KLnRleHQgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwMDEyMCAgICAweDFkZTJmCiAqKC50 ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKIC50ZXh0LnVu bGlrZWx5CiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDAxMjAgICAgIDB4MWFhOSB2bS5v CiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDAzOGYgICAgICAgICAgICAgICAgcmJfZGVm aW5lX2FsbG9jX2Z1bmMKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwMDNiZiAgICAgICAg ICAgICAgICByYl91bmRlZl9hbGxvY19mdW5jCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0 MDAzYzUgICAgICAgICAgICAgICAgSW5pdF9NZXRob2QKICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAwMDQwMDUxMiAgICAgICAgICAgICAgICBJbml0X3ZtX2V2YWwKICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAwMDQwMDdhMSAgICAgICAgICAgICAgICBJbml0X2V2YWxfbWV0aG9kCiAgICAgICAg ICAgICAgICAweDAwMDAwMDAwMDA0MDBhNTQgICAgICAgICAgICAgICAgcmJfdW5kZWYKICAgICAg ICAgICAgICAgIDB4MDAwMDAwMDAwMDQwMGMxZCAgICAgICAgICAgICAgICBJbml0X1ZNCiAgICAg ICAgICAgICAgICAweDAwMDAwMDAwMDA0MDE4NWYgICAgICAgICAgICAgICAgSW5pdF9CYXJlVk0K ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwMWIxNiAgICAgICAgICAgICAgICBJbml0X3Zt X29iamVjdHMKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwMWI2MSAgICAgICAgICAgICAg ICBJbml0X3RvcF9zZWxmCiAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogKigudGV4dC5zdGFy dHVwIC50ZXh0LnN0YXJ0dXAuKikKICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogKigudGV4dCAu c3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogKmZpbGwqICAgICAgICAgMHgwMDAwMDAw MDAwNDAxYmM5ICAgICAgICAweDcgCiAudGV4dCAgICAgICAgICAweDAwMDAwMDAwMDA0MDFiZDAg ICAgMHgxYzM3ZiB2bS5vCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDIyZjAgICAgICAg ICAgICAgICAgcmJfZl9ub3RpbXBsZW1lbnQKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQw NDc4MCAgICAgICAgICAgICAgICByYl92bV9lcF9sb2NhbF9lcAogICAgICAgICAgICAgICAgMHgw MDAwMDAwMDAwNDA0N2IwICAgICAgICAgICAgICAgIHJiX3ZtX2ZyYW1lX2Jsb2NrX2hhbmRsZXIK ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNDdlMCAgICAgICAgICAgICAgICByYl92bV9j cmVmX25ld190b3BsZXZlbAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDA0ODcwICAgICAg ICAgICAgICAgIHJiX3ZtX2Jsb2NrX2VwX3VwZGF0ZQogICAgICAgICAgICAgICAgMHgwMDAwMDAw MDAwNDA0ODkwICAgICAgICAgICAgICAgIHJ1Ynlfdm1fc3BlY2lhbF9leGNlcHRpb25fY29weQog ICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDA2OTYwICAgICAgICAgICAgICAgIHJiX2VjX3N0 YWNrX292ZXJmbG93CiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDY5YzAgICAgICAgICAg ICAgICAgcmJfdm1fcHVzaF9mcmFtZQogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDA2YjIw ICAgICAgICAgICAgICAgIHJiX3ZtX3BvcF9mcmFtZQogICAgICAgICAgICAgICAgMHgwMDAwMDAw MDAwNDA2YjMwICAgICAgICAgICAgICAgIHJiX2Vycm9yX2FyaXR5CiAgICAgICAgICAgICAgICAw eDAwMDAwMDAwMDA0MDcxODAgICAgICAgICAgICAgICAgcmJfdm1fZnJhbWVfbWV0aG9kX2VudHJ5 CiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDc1ZTAgICAgICAgICAgICAgICAgcmJfdm1f cmV3cml0ZV9jcmVmCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDc2ZjAgICAgICAgICAg ICAgICAgcmJfc2ltcGxlX2lzZXFfcAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDA3NzAw ICAgICAgICAgICAgICAgIHJiX3ZtX29wdF9zdHJ1Y3RfYXJlZgogICAgICAgICAgICAgICAgMHgw MDAwMDAwMDAwNDA3NzMwICAgICAgICAgICAgICAgIHJiX3ZtX29wdF9zdHJ1Y3RfYXNldAogICAg ICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDA3NzUwICAgICAgICAgICAgICAgIHJiX2NsZWFyX2Nv bnN0YW50X2NhY2hlCi0tLSB0cnVuY2F0ZWQgLS0tCmBgYApJIGFsc28gZGFiYmxlZCB3aXRoIHRo ZSBpZGVhIG9mIGFuIGBJTklURlVOQ2AgbWFjcm8gdGhhdCBhbHNvIHBsYWNlcyB0aGUgYEluaXRf eHh4YCBmdW5jdGlvbnMgaW50byBhIGB0ZXh0LmluaXRgIHNlY3Rpb24gYXMgdGhlIFtrZXJuZWwg ZG9lc10oaHR0cHM6Ly9saW51eGdhemV0dGUubmV0LzE1Ny9hbXVycmF5Lmh0bWwpIGZvciBhIHBv c3NpYmxlIGZ1dHVyZSBvcHRpbWl6YXRpb24gb2Ygc3RyaXBwaW5nIG91dCBFTEYgc2VjdGlvbnMg Zm9yIHNldHVwIC8gaW5pdCBzcGVjaWZpYyBmdW5jdGlvbnMuIEkgZG9uJ3QgdGhpbmsgdGhhdCBt YWtlcyBzZW5zZSBmb3Igbm93IGFuZCBwb3NzaWJseSBvbmx5IGludGVyZXN0aW5nIGZvciBtcnVi eSBvciBlbWJlZGRlZC4KCiMjIyBQb3NzaWJsZSBuZXh0IHVuaXRzIG9mIHdvcmsKCiMjIyMgQ29s ZCBjb2RlIHNwZWNpZmljCgoqIEluY3JlbWVudGFsbHkgUFIgY29ybmVyIGNhc2UgZXJyb3IgaGFu ZGxpbmcgZnVuY3Rpb25zIHN1Y2ggYXMgYHJiX2J1Z2AgZnJvbSBodHRwczovL2dpdGh1Yi5jb20v cnVieS9ydWJ5L3B1bGwvMTkyMgoqIERpdHRvIGZvciBnZW5lcmljIGVycm9yIGhhbmRsaW5nIGZ1 bmN0aW9ucyAoYHJiX3JhaXNlYCBhbmQgZnJpZW5kcykgZnJvbSBodHRwczovL2dpdGh1Yi5jb20v cnVieS9ydWJ5L3B1bGwvMTkyMgoqIENsYXNzIHNwZWNpZmljIGVycm9yIGhhbmRsaW5nIGZ1bmN0 aW9ucyAobG9hZCBlcnJvcnMsIGVuY29kaW5nIGVycm9ycyBpbiB0aGUgSU8gbW9kdWxlLCBzeXMg ZXJyb3JzIGV0Yy4pIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzE5MjIK KiBHQ0MgNSsgYWxzbyBzdXBwb3J0cyBgY29sZGAgW2xhYmVsc10oaHR0cHM6Ly9nY2MuZ251Lm9y Zy9vbmxpbmVkb2NzL2djYy9MYWJlbC1BdHRyaWJ1dGVzLmh0bWwpICwgd2hpY2ggSSB0b29rIGEg c3RhYiB3aXRoIGluIHRoZSBibG9hdGVkIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVs bC8xOTIyCgojIyMjIFRMQiAodHJhbnNsYXRpb24gbG9va2FzaWRlIGJ1ZmZlcikgc3BlY2lmaWMK CiogRnVydGhlciBJVExCIG92ZXJoZWFkIGludmVzdGlnYXRpb24KKiBSdWJ5IGJpbmFyaWVzIGJ1 aWx0IHdpdGggTzMgYW5kIGRlYnVnIHN5bWJvbHMgY29tZSBpbiBhdCBqdXN0IHNob3J0IG9mIDE4 TUIsIG9yIHJvdWdobHkgOSBodWdlcGFnZXMgb24gbGludXguIFBIUCBjb3JlIGRldmVsb3BlcnMg d2VyZSBhYmxlIHRvIHNxdWVlemUgYSBmZXcgJSBieSByZW1hcHBpbmcgY29kZSB0byBodWdlcGFn ZXMgb24gc3VwcG9ydGVkIHN5c3RlbXMgLSBodHRwOi8vZGV2ZWxvcGVycy1jbHViLmNvbS9wb3N0 cy8yNzA2ODUvIC4gSW1wbGVtZW50YXRpb24gW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9waHAv cGhwLXNyYy9ibG9iL2ZiMDM4OWIxMDEwZGU1YTY0NTliY2YyODY0MDk0MjNmNjllNzRhYWYvZXh0 L29wY2FjaGUvWmVuZEFjY2VsZXJhdG9yLmMjTDI2NDUtTDI3NTApCgojIyMjIEJ5dGVjb2RlIHNw ZWNpZmljCgoqIFRoZSBbSW50ZWwgVHJhY2luZyBUYXNrIEFQSV0oaHR0cHM6Ly9zb2Z0d2FyZS5p bnRlbC5jb20vZW4tdXMvdnR1bmUtYW1wbGlmaWVyLWhlbHAtdGFzay1hcGkpIGlzIHZlcnkgd2Vs bCBzdWl0ZWQgZm9yIHRoZSBpbnN0cnVjdGlvbiBzZXF1ZW5jZXMgWUFSViBnZW5lcmF0ZXMgYW5k IHRvIGluZmVyIGJldHRlciBwZXIgaW5zdHJ1Y3Rpb24gQ1BVIHV0aWxpemF0aW9uIGFuZCBpZGVu dGlmeSBhbnkgc3RhbGxzIChmcm9udGVuZCwgYmFja2VuZCwgYnJhbmNoZXMgZXRjLikgdG8gZHJp dmUgZnVydGhlciB3b3JrLgoKCgotLSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCg==