From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8054 invoked by alias); 23 Jun 2009 01:33:17 -0000 Received: (qmail 8035 invoked by uid 22791); 23 Jun 2009 01:33:15 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 23 Jun 2009 01:33:08 +0000 Received: from spaceape23.eur.corp.google.com (spaceape23.eur.corp.google.com [172.28.16.75]) by smtp-out.google.com with ESMTP id n5N1X3sC010988 for ; Mon, 22 Jun 2009 18:33:04 -0700 Received: from qyk41 (qyk41.prod.google.com [10.241.83.169]) by spaceape23.eur.corp.google.com with ESMTP id n5N1WZCF005575 for ; Mon, 22 Jun 2009 18:33:01 -0700 Received: by qyk41 with SMTP id 41so6649547qyk.6 for ; Mon, 22 Jun 2009 18:33:01 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.100.137 with SMTP id y9mr1341788qcn.33.1245720779634; Mon, 22 Jun 2009 18:32:59 -0700 (PDT) In-Reply-To: <200906230043.n5N0h7Ck020642@d12av02.megacenter.de.ibm.com> References: <8ac60eac0906221504l17329986yb36a5a1cae2412b@mail.gmail.com> <200906230043.n5N0h7Ck020642@d12av02.megacenter.de.ibm.com> Date: Tue, 23 Jun 2009 01:33:00 -0000 Message-ID: <8ac60eac0906221832k142f048dwf0179c934cc6bca3@mail.gmail.com> Subject: Re: [rfc][patch] Eliminate quadratic slow-down on number of solibs. From: Paul Pluzhnikov To: Ulrich Weigand Cc: Joel Brobecker , tromey@redhat.com, gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0016368325288f39c0046cf9f899 X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-06/txt/msg00599.txt.bz2 --0016368325288f39c0046cf9f899 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1248 On Mon, Jun 22, 2009 at 5:43 PM, Ulrich Weigand wrote: > This is OK. =A0(Any reason why we can't inline create_overlay_event_break= point_1 > into its sole caller?) No particular reason (it was that way before my 2009-05-14 change). I've inlined it in the patch below, and that saves a bunch of calls to update_global_location_list as well :-) Tested on Linux/x86_64. >> I also verified that create_overlay_event_breakpoint is not called for >> each solib (though it is called 7 times, which seems like 6 too many). > > Hmm, do you understand where the other calls come from? I've attached a log (to avoid GMail line wrapping): 4 calls at startup, 3 more when all the solibs are loaded. I haven't debugged the exact reason; in my reading of the code it should only fire once after all solibs. Thanks, --=20 Paul Pluzhnikov 2009-06-22 Paul Pluzhnikov Revert 2009-05-14 breakpoint commit (no longer needed). * breakpoint.h (breakpoint_re_set_objfile): Remove * breakpoint.c (breakpoint_re_set_objfile): Likewise (create_overlay_event_breakpoint): Remove objfile parameter, iterate over all objfiles. * objfiles.c (objfile_relocate): Update. * symfile.c (new_symfile_objfile): Likewise. --0016368325288f39c0046cf9f899 Content-Type: text/plain; charset=US-ASCII; name="gdb-overlay-bp-20090622-3.txt" Content-Disposition: attachment; filename="gdb-overlay-bp-20090622-3.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fw9xv5ns0 Content-length: 6922 SW5kZXg6IGJyZWFrcG9pbnQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD UyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2JyZWFrcG9pbnQuYyx2CnJldHJp ZXZpbmcgcmV2aXNpb24gMS40MDcKZGlmZiAtdSAtcCAtdSAtcjEuNDA3IGJy ZWFrcG9pbnQuYwotLS0gYnJlYWtwb2ludC5jCTE5IEp1biAyMDA5IDE1OjE0 OjExIC0wMDAwCTEuNDA3CisrKyBicmVha3BvaW50LmMJMjMgSnVuIDIwMDkg MDE6MjI6MDggLTAwMDAKQEAgLTE0NzYsMjggKzE0NzYsMzMgQEAgY3JlYXRl X2ludGVybmFsX2JyZWFrcG9pbnQgKENPUkVfQUREUiBhZAogfQogCiBzdGF0 aWMgdm9pZAotY3JlYXRlX292ZXJsYXlfZXZlbnRfYnJlYWtwb2ludCAoY2hh ciAqZnVuY19uYW1lLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKK2NyZWF0 ZV9vdmVybGF5X2V2ZW50X2JyZWFrcG9pbnQgKGNoYXIgKmZ1bmNfbmFtZSkK IHsKLSAgc3RydWN0IGJyZWFrcG9pbnQgKmI7Ci0gIHN0cnVjdCBtaW5pbWFs X3N5bWJvbCAqbTsKKyAgc3RydWN0IG9iamZpbGUgKm9iamZpbGU7CiAKLSAg bSA9IGxvb2t1cF9taW5pbWFsX3N5bWJvbF90ZXh0IChmdW5jX25hbWUsIG9i amZpbGUpOwotICBpZiAobSA9PSBOVUxMKQotICAgIHJldHVybjsKKyAgQUxM X09CSkZJTEVTIChvYmpmaWxlKQorICAgIHsKKyAgICAgIHN0cnVjdCBicmVh a3BvaW50ICpiOworICAgICAgc3RydWN0IG1pbmltYWxfc3ltYm9sICptOwor CisgICAgICBtID0gbG9va3VwX21pbmltYWxfc3ltYm9sX3RleHQgKGZ1bmNf bmFtZSwgb2JqZmlsZSk7CisgICAgICBpZiAobSA9PSBOVUxMKQorICAgICAg ICBjb250aW51ZTsKIAotICBiID0gY3JlYXRlX2ludGVybmFsX2JyZWFrcG9p bnQgKFNZTUJPTF9WQUxVRV9BRERSRVNTIChtKSwKLQkJCQkgIGJwX292ZXJs YXlfZXZlbnQpOwotICBiLT5hZGRyX3N0cmluZyA9IHhzdHJkdXAgKGZ1bmNf bmFtZSk7CisgICAgICBiID0gY3JlYXRlX2ludGVybmFsX2JyZWFrcG9pbnQg KFNZTUJPTF9WQUxVRV9BRERSRVNTIChtKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnBfb3ZlcmxheV9ldmVudCk7CisgICAg ICBiLT5hZGRyX3N0cmluZyA9IHhzdHJkdXAgKGZ1bmNfbmFtZSk7CiAKLSAg aWYgKG92ZXJsYXlfZGVidWdnaW5nID09IG92bHlfYXV0bykKLSAgICB7Ci0g ICAgICBiLT5lbmFibGVfc3RhdGUgPSBicF9lbmFibGVkOwotICAgICAgb3Zl cmxheV9ldmVudHNfZW5hYmxlZCA9IDE7Ci0gICAgfQotICBlbHNlCi0gICAg ewotICAgICAgYi0+ZW5hYmxlX3N0YXRlID0gYnBfZGlzYWJsZWQ7Ci0gICAg ICBvdmVybGF5X2V2ZW50c19lbmFibGVkID0gMDsKKyAgICAgIGlmIChvdmVy bGF5X2RlYnVnZ2luZyA9PSBvdmx5X2F1dG8pCisgICAgICAgIHsKKyAgICAg ICAgICBiLT5lbmFibGVfc3RhdGUgPSBicF9lbmFibGVkOworICAgICAgICAg IG92ZXJsYXlfZXZlbnRzX2VuYWJsZWQgPSAxOworICAgICAgICB9CisgICAg ICBlbHNlCisgICAgICAgeworICAgICAgICAgYi0+ZW5hYmxlX3N0YXRlID0g YnBfZGlzYWJsZWQ7CisgICAgICAgICBvdmVybGF5X2V2ZW50c19lbmFibGVk ID0gMDsKKyAgICAgICB9CiAgICAgfQogICB1cGRhdGVfZ2xvYmFsX2xvY2F0 aW9uX2xpc3QgKDEpOwogfQpAQCAtMTUwOCw3ICsxNTEzLDYgQEAgdXBkYXRl X2JyZWFrcG9pbnRzX2FmdGVyX2V4ZWMgKHZvaWQpCiAgIHN0cnVjdCBicmVh a3BvaW50ICpiOwogICBzdHJ1Y3QgYnJlYWtwb2ludCAqdGVtcDsKICAgc3Ry dWN0IGJwX2xvY2F0aW9uICpicGxvYzsKLSAgc3RydWN0IG9iamZpbGUgKm9i amZpbGU7CiAKICAgLyogV2UncmUgYWJvdXQgdG8gZGVsZXRlIGJyZWFrcG9p bnRzIGZyb20gR0RCJ3MgbGlzdHMuICBJZiB0aGUKICAgICAgSU5TRVJURUQg ZmxhZyBpcyB0cnVlLCBHREIgd2lsbCB0cnkgdG8gbGlmdCB0aGUgYnJlYWtw b2ludHMgYnkKQEAgLTE2MDMsOCArMTYwNyw3IEBAIHVwZGF0ZV9icmVha3Bv aW50c19hZnRlcl9leGVjICh2b2lkKQogICAgICAgfQogICB9CiAgIC8qIEZJ WE1FIHdoYXQgYWJvdXQgbG9uZ2ptcCBicmVha3BvaW50cz8gIFJlLWNyZWF0 ZSB0aGVtIGhlcmU/ICAqLwotICBBTExfT0JKRklMRVMgKG9iamZpbGUpCi0g ICAgY3JlYXRlX292ZXJsYXlfZXZlbnRfYnJlYWtwb2ludCAoIl9vdmx5X2Rl YnVnX2V2ZW50Iiwgb2JqZmlsZSk7CisgIGNyZWF0ZV9vdmVybGF5X2V2ZW50 X2JyZWFrcG9pbnQgKCJfb3ZseV9kZWJ1Z19ldmVudCIpOwogfQogCiBpbnQK QEAgLTc3NzEsMTMgKzc3NzQsOSBAQCBicmVha3BvaW50X3JlX3NldF9vbmUg KHZvaWQgKmJpbnQpCiAgIHJldHVybiAwOwogfQogCi0vKiBSZS1zZXQgYWxs IGJyZWFrcG9pbnRzIGFmdGVyIHN5bWJvbHMgaGF2ZSBiZWVuIHJlLWxvYWRl ZC4KLQotICAgSWYgT0JKRklMRSBpcyBub24tbnVsbCwgY3JlYXRlIG92ZXJs YXkgYnJlYWsgcG9pbnQgb25seSBpbiBPQkpGSUxFCi0gICAoc3BlZWQgb3B0 aW1pemF0aW9uKS4gIE90aGVyd2lzZSByZXNjYW4gYWxsIGxvYWRlZCBvYmpm aWxlcy4gICovCi0KKy8qIFJlLXNldCBhbGwgYnJlYWtwb2ludHMgYWZ0ZXIg c3ltYm9scyBoYXZlIGJlZW4gcmUtbG9hZGVkLiAgKi8KIHZvaWQKLWJyZWFr cG9pbnRfcmVfc2V0X29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl KQorYnJlYWtwb2ludF9yZV9zZXQgKHZvaWQpCiB7CiAgIHN0cnVjdCBicmVh a3BvaW50ICpiLCAqdGVtcDsKICAgZW51bSBsYW5ndWFnZSBzYXZlX2xhbmd1 YWdlOwpAQCAtNzc5NywxOSArNzc5Niw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0 X29iamZpbGUgKHN0cnVjdCBvYmpmaWwKICAgc2V0X2xhbmd1YWdlIChzYXZl X2xhbmd1YWdlKTsKICAgaW5wdXRfcmFkaXggPSBzYXZlX2lucHV0X3JhZGl4 OwogCi0gIGlmIChvYmpmaWxlID09IE5VTEwpCi0gICAgQUxMX09CSkZJTEVT IChvYmpmaWxlKQotICAgICAgY3JlYXRlX292ZXJsYXlfZXZlbnRfYnJlYWtw b2ludCAoIl9vdmx5X2RlYnVnX2V2ZW50Iiwgb2JqZmlsZSk7Ci0gIGVsc2UK LSAgICBjcmVhdGVfb3ZlcmxheV9ldmVudF9icmVha3BvaW50ICgiX292bHlf ZGVidWdfZXZlbnQiLCBvYmpmaWxlKTsKLX0KLQotLyogUmUtc2V0IGFsbCBi cmVha3BvaW50cyBhZnRlciBzeW1ib2xzIGhhdmUgYmVlbiByZS1sb2FkZWQu ICAqLwotCi12b2lkCi1icmVha3BvaW50X3JlX3NldCAodm9pZCkKLXsKLSAg YnJlYWtwb2ludF9yZV9zZXRfb2JqZmlsZSAoTlVMTCk7CisgIGNyZWF0ZV9v dmVybGF5X2V2ZW50X2JyZWFrcG9pbnQgKCJfb3ZseV9kZWJ1Z19ldmVudCIp OwogfQogDAogLyogUmVzZXQgdGhlIHRocmVhZCBudW1iZXIgb2YgdGhpcyBi cmVha3BvaW50OgpJbmRleDogYnJlYWtwb2ludC5oCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvYnJlYWtwb2lu dC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkyCmRpZmYgLXUgLXAgLXUg LXIxLjkyIGJyZWFrcG9pbnQuaAotLS0gYnJlYWtwb2ludC5oCTI0IE1heSAy MDA5IDE4OjAwOjA4IC0wMDAwCTEuOTIKKysrIGJyZWFrcG9pbnQuaAkyMyBK dW4gMjAwOSAwMToyMjowOCAtMDAwMApAQCAtNjg3LDcgKzY4Nyw3IEBAIGV4 dGVybiBpbnQgYnJlYWtwb2ludF90aHJlYWRfbWF0Y2ggKENPUkUKIGV4dGVy biB2b2lkIHVudGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKiwgaW50LCBpbnQp OwogCiBleHRlcm4gdm9pZCBicmVha3BvaW50X3JlX3NldCAodm9pZCk7Ci1l eHRlcm4gdm9pZCBicmVha3BvaW50X3JlX3NldF9vYmpmaWxlIChzdHJ1Y3Qg b2JqZmlsZSAqKTsKKwogZXh0ZXJuIHZvaWQgYnJlYWtwb2ludF9yZV9zZXRf dGhyZWFkIChzdHJ1Y3QgYnJlYWtwb2ludCAqKTsKIAogZXh0ZXJuIHN0cnVj dCBicmVha3BvaW50ICpzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnQKSW5kZXg6 IG9iamZpbGVzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2N2cy9zcmMvc3JjL2dkYi9vYmpmaWxlcy5jLHYKcmV0cmlldmluZyByZXZp c2lvbiAxLjgzCmRpZmYgLXUgLXAgLXUgLXIxLjgzIG9iamZpbGVzLmMKLS0t IG9iamZpbGVzLmMJMTQgTWF5IDIwMDkgMjM6MzM6MDggLTAwMDAJMS44Mwor Kysgb2JqZmlsZXMuYwkyMyBKdW4gMjAwOSAwMToyMjowOCAtMDAwMApAQCAt Njc0LDcgKzY3NCw3IEBAIG9iamZpbGVfcmVsb2NhdGUgKHN0cnVjdCBvYmpm aWxlICpvYmpmaWwKICAgICB9CiAKICAgLyogUmVsb2NhdGUgYnJlYWtwb2lu dHMgYXMgbmVjZXNzYXJ5LCBhZnRlciB0aGluZ3MgYXJlIHJlbG9jYXRlZC4g Ki8KLSAgYnJlYWtwb2ludF9yZV9zZXRfb2JqZmlsZSAob2JqZmlsZSk7Cisg IGJyZWFrcG9pbnRfcmVfc2V0ICgpOwogfQogDAogLyogTWFueSBwbGFjZXMg aW4gZ2RiIHdhbnQgdG8gdGVzdCBqdXN0IHRvIHNlZSBpZiB3ZSBoYXZlIGFu eSBwYXJ0aWFsCkluZGV4OiBzeW1maWxlLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9zeW1maWxlLmMsdgpy ZXRyaWV2aW5nIHJldmlzaW9uIDEuMjMyCmRpZmYgLXUgLXAgLXUgLXIxLjIz MiBzeW1maWxlLmMKLS0tIHN5bWZpbGUuYwkxNyBKdW4gMjAwOSAxODozNDoz NCAtMDAwMAkxLjIzMgorKysgc3ltZmlsZS5jCTIzIEp1biAyMDA5IDAxOjIy OjA4IC0wMDAwCkBAIC05MTksNyArOTE5LDcgQEAgbmV3X3N5bWZpbGVfb2Jq ZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iagogICAgIH0KICAgZWxzZSBpZiAo KGFkZF9mbGFncyAmIFNZTUZJTEVfREVGRVJfQlBfUkVTRVQpID09IDApCiAg ICAgewotICAgICAgYnJlYWtwb2ludF9yZV9zZXRfb2JqZmlsZSAob2JqZmls ZSk7CisgICAgICBicmVha3BvaW50X3JlX3NldCAoKTsKICAgICB9CiAKICAg LyogV2UncmUgZG9uZSByZWFkaW5nIHRoZSBzeW1ib2wgZmlsZTsgZmluaXNo IG9mZiBjb21wbGFpbnRzLiAgKi8K --0016368325288f39c0046cf9f899 Content-Type: text/plain; charset=US-ASCII; name="gdblog.txt" Content-Disposition: attachment; filename="gdblog.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fw9xyb8w1 Content-length: 15519 QnJlYWtwb2ludCAxLCBjcmVhdGVfb3ZlcmxheV9ldmVudF9icmVha3BvaW50 IChmdW5jX25hbWU9MHg2NzY2MDkgIl9vdmx5X2RlYnVnX2V2ZW50IikgYXQg Li4vLi4vc3JjL2dkYi9icmVha3BvaW50LmM6MTQ4MAoxNDgwICAgIHsKIzAg IGNyZWF0ZV9vdmVybGF5X2V2ZW50X2JyZWFrcG9pbnQgKGZ1bmNfbmFtZT0w eDY3NjYwOSAiX292bHlfZGVidWdfZXZlbnQiKSBhdCAuLi8uLi9zcmMvZ2Ri L2JyZWFrcG9pbnQuYzoxNDgwCiMxICAweDAwMDAwMDAwMDA0ZTFhMjMgaW4g Y2xlYXJfc3ltdGFiX3VzZXJzICgpIGF0IC4uLy4uL3NyYy9nZGIvc3ltZmls ZS5jOjI4MDAKIzIgIDB4MDAwMDAwMDAwMDRlMjEwNCBpbiBuZXdfc3ltZmls ZV9vYmpmaWxlIChvYmpmaWxlPTB4Njc2NjA5LCBhZGRfZmxhZ3M9NCkgYXQg Li4vLi4vc3JjL2dkYi9zeW1maWxlLmM6OTE4CiMzICAweDAwMDAwMDAwMDA0 ZTNjNmEgaW4gc3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zmc2V0 cyAoYWJmZD0weDAsIGFkZF9mbGFncz00LCBhZGRycz0weDAsIG9mZnNldHM9 MHgwLCBudW1fb2Zmc2V0cz0wLCBmbGFncz0wKSBhdCAuLi8uLi9zcmMvZ2Ri L3N5bWZpbGUuYzoxMDgzCiM0ICAweDAwMDAwMDAwMDA0ZTQ1YTggaW4gc3lt Ym9sX2ZpbGVfYWRkX21haW5fMSAoYXJncz0weDY3NjYwOSAiX292bHlfZGVi dWdfZXZlbnQiLCBmcm9tX3R0eT08dmFsdWUgb3B0aW1pemVkIG91dD4sIGZs YWdzPTk5KSBhdCAuLi8uLi9zcmMvZ2RiL3N5bWZpbGUuYzoxMTM3CiM1ICAw eDAwMDAwMDAwMDA0ZmU2MjYgaW4gY2F0Y2hfY29tbWFuZF9lcnJvcnMgKGNv bW1hbmQ9MHg0ZTQ1YzAgPHN5bWJvbF9maWxlX2FkZF9tYWluPiwgYXJnPTB4 N2ZmZmZmZmZkZWE3ICJibGF6ZS1nb29nbGUzL2JsYXplLW91dC9nY2MtNC4z LjEtZ2xpYmMtMi4zLjYtZ3J0ZS1rOC1kYmcvYmluL2d3cy9vdXRwdXQvcGFn ZXMvY3VzdG9tX3Rlc3QiLCBmcm9tX3R0eT0wLCAKICAgIG1hc2s9PHZhbHVl IG9wdGltaXplZCBvdXQ+KSBhdCAuLi8uLi9zcmMvZ2RiL2V4Y2VwdGlvbnMu Yzo1MjUKIzYgIDB4MDAwMDAwMDAwMDQ0NjU3NCBpbiBjYXB0dXJlZF9tYWlu IChkYXRhPTx2YWx1ZSBvcHRpbWl6ZWQgb3V0PikgYXQgLi4vLi4vc3JjL2dk Yi9tYWluLmM6ODExCiM3ICAweDAwMDAwMDAwMDA0ZmU2YWIgaW4gY2F0Y2hf ZXJyb3JzIChmdW5jPTB4NDQ1ZDIwIDxjYXB0dXJlZF9tYWluPiwgZnVuY19h cmdzPTB4N2ZmZmZmZmZkOTYwLCBlcnJzdHJpbmc9MHg2NjAwNTAgIiIsIG1h c2s9PHZhbHVlIG9wdGltaXplZCBvdXQ+KSBhdCAuLi8uLi9zcmMvZ2RiL2V4 Y2VwdGlvbnMuYzo1MTAKIzggIDB4MDAwMDAwMDAwMDQ0NWFjNCBpbiBnZGJf bWFpbiAoYXJncz0weDY2MzVmMSkgYXQgLi4vLi4vc3JjL2dkYi9tYWluLmM6 OTExCiM5ICAweDAwMDAwMDAwMDA0NDVhOTYgaW4gbWFpbiAoYXJnYz08dmFs dWUgb3B0aW1pemVkIG91dD4sIGFyZ3Y9MHg2NjM1ZjEpIGF0IC4uLy4uL3Ny Yy9nZGIvZ2RiLmM6MzMKQnJlYWtwb2ludCAxIGF0IDB4NDA2YjNkOiBmaWxl IGd3cy9vdXRwdXQvcGFnZXMvY3VzdG9tX3Rlc3QuY2MsIGxpbmUgNzkzLgoK QnJlYWtwb2ludCAxLCBjcmVhdGVfb3ZlcmxheV9ldmVudF9icmVha3BvaW50 IChmdW5jX25hbWU9MHg2NzY2MDkgIl9vdmx5X2RlYnVnX2V2ZW50IikgYXQg Li4vLi4vc3JjL2dkYi9icmVha3BvaW50LmM6MTQ4MAoxNDgwICAgIHsKIzAg IGNyZWF0ZV9vdmVybGF5X2V2ZW50X2JyZWFrcG9pbnQgKGZ1bmNfbmFtZT0w eDY3NjYwOSAiX292bHlfZGVidWdfZXZlbnQiKSBhdCAuLi8uLi9zcmMvZ2Ri L2JyZWFrcG9pbnQuYzoxNDgwCiMxICAweDAwMDAwMDAwMDA0NjJhNjcgaW4g c29saWJfYWRkIChwYXR0ZXJuPTB4MCwgZnJvbV90dHk9MCwgdGFyZ2V0PTx2 YWx1ZSBvcHRpbWl6ZWQgb3V0PiwgcmVhZHN5bXM9MSkgYXQgLi4vLi4vc3Jj L2dkYi9zb2xpYi5jOjc2MwojMiAgMHgwMDAwMDAwMDAwNDY0MjgzIGluIGVu YWJsZV9icmVhayAoaW5mbz0weGE4ZmQ2MCkgYXQgLi4vLi4vc3JjL2dkYi9z b2xpYi1zdnI0LmM6MTM5MwojMyAgMHgwMDAwMDAwMDAwNGVlYTYzIGluIHBv c3RfY3JlYXRlX2luZmVyaW9yICh0YXJnZXQ9MHg5ZTBiYzAsIGZyb21fdHR5 PTApIGF0IC4uLy4uL3NyYy9nZGIvaW5mY21kLmM6NDE5CiM0ICAweDAwMDAw MDAwMDA0ZWYzZjMgaW4gcnVuX2NvbW1hbmRfMSAoYXJncz0weDAsIGZyb21f dHR5PTAsIHRicmVha19hdF9tYWluPTx2YWx1ZSBvcHRpbWl6ZWQgb3V0Pikg YXQgLi4vLi4vc3JjL2dkYi9pbmZjbWQuYzo1NzIKIzUgIDB4MDAwMDAwMDAw MDQ0ZDQzNCBpbiBleGVjdXRlX2NvbW1hbmQgKHA9MHg3ZmZmZmZmZmRlOTQg IiIsIGZyb21fdHR5PTApIGF0IC4uLy4uL3NyYy9nZGIvdG9wLmM6NDQyCiM2 ICAweDAwMDAwMDAwMDA0ZmU2MjYgaW4gY2F0Y2hfY29tbWFuZF9lcnJvcnMg KGNvbW1hbmQ9MHg0NGQxYzAgPGV4ZWN1dGVfY29tbWFuZD4sIGFyZz0weDdm ZmZmZmZmZGU5MSAicnVuIiwgZnJvbV90dHk9MSwgbWFzaz08dmFsdWUgb3B0 aW1pemVkIG91dD4pIGF0IC4uLy4uL3NyYy9nZGIvZXhjZXB0aW9ucy5jOjUy NQojNyAgMHgwMDAwMDAwMDAwNDQ2M2RkIGluIGNhcHR1cmVkX21haW4gKGRh dGE9PHZhbHVlIG9wdGltaXplZCBvdXQ+KSBhdCAuLi8uLi9zcmMvZ2RiL21h aW4uYzo4NjEKIzggIDB4MDAwMDAwMDAwMDRmZTZhYiBpbiBjYXRjaF9lcnJv cnMgKGZ1bmM9MHg0NDVkMjAgPGNhcHR1cmVkX21haW4+LCBmdW5jX2FyZ3M9 MHg3ZmZmZmZmZmQ5NjAsIGVycnN0cmluZz0weDY2MDA1MCAiIiwgbWFzaz08 dmFsdWUgb3B0aW1pemVkIG91dD4pIGF0IC4uLy4uL3NyYy9nZGIvZXhjZXB0 aW9ucy5jOjUxMAojOSAgMHgwMDAwMDAwMDAwNDQ1YWM0IGluIGdkYl9tYWlu IChhcmdzPTB4NjgzN2MzKSBhdCAuLi8uLi9zcmMvZ2RiL21haW4uYzo5MTEK IzEwIDB4MDAwMDAwMDAwMDQ0NWE5NiBpbiBtYWluIChhcmdjPTx2YWx1ZSBv cHRpbWl6ZWQgb3V0PiwgYXJndj0weDY4MzdjMykgYXQgLi4vLi4vc3JjL2dk Yi9nZGIuYzozMwoKQnJlYWtwb2ludCAxLCBjcmVhdGVfb3ZlcmxheV9ldmVu dF9icmVha3BvaW50IChmdW5jX25hbWU9MHg2NzY2MDkgIl9vdmx5X2RlYnVn X2V2ZW50IikgYXQgLi4vLi4vc3JjL2dkYi9icmVha3BvaW50LmM6MTQ4MAox NDgwICAgIHsKIzAgIGNyZWF0ZV9vdmVybGF5X2V2ZW50X2JyZWFrcG9pbnQg KGZ1bmNfbmFtZT0weDY3NjYwOSAiX292bHlfZGVidWdfZXZlbnQiKSBhdCAu Li8uLi9zcmMvZ2RiL2JyZWFrcG9pbnQuYzoxNDgwCiMxICAweDAwMDAwMDAw MDA0ZWVhNjggaW4gcG9zdF9jcmVhdGVfaW5mZXJpb3IgKHRhcmdldD0weDll MGJjMCwgZnJvbV90dHk9MCkgYXQgLi4vLi4vc3JjL2dkYi9pbmZjbWQuYzo0 MzMKIzIgIDB4MDAwMDAwMDAwMDRlZjNmMyBpbiBydW5fY29tbWFuZF8xIChh cmdzPTB4MCwgZnJvbV90dHk9MCwgdGJyZWFrX2F0X21haW49PHZhbHVlIG9w dGltaXplZCBvdXQ+KSBhdCAuLi8uLi9zcmMvZ2RiL2luZmNtZC5jOjU3Mgoj MyAgMHgwMDAwMDAwMDAwNDRkNDM0IGluIGV4ZWN1dGVfY29tbWFuZCAocD0w eDdmZmZmZmZmZGU5NCAiIiwgZnJvbV90dHk9MCkgYXQgLi4vLi4vc3JjL2dk Yi90b3AuYzo0NDIKIzQgIDB4MDAwMDAwMDAwMDRmZTYyNiBpbiBjYXRjaF9j b21tYW5kX2Vycm9ycyAoY29tbWFuZD0weDQ0ZDFjMCA8ZXhlY3V0ZV9jb21t YW5kPiwgYXJnPTB4N2ZmZmZmZmZkZTkxICJydW4iLCBmcm9tX3R0eT0xLCBt YXNrPTx2YWx1ZSBvcHRpbWl6ZWQgb3V0PikgYXQgLi4vLi4vc3JjL2dkYi9l eGNlcHRpb25zLmM6NTI1CiM1ICAweDAwMDAwMDAwMDA0NDYzZGQgaW4gY2Fw dHVyZWRfbWFpbiAoZGF0YT08dmFsdWUgb3B0aW1pemVkIG91dD4pIGF0IC4u Ly4uL3NyYy9nZGIvbWFpbi5jOjg2MQojNiAgMHgwMDAwMDAwMDAwNGZlNmFi IGluIGNhdGNoX2Vycm9ycyAoZnVuYz0weDQ0NWQyMCA8Y2FwdHVyZWRfbWFp bj4sIGZ1bmNfYXJncz0weDdmZmZmZmZmZDk2MCwgZXJyc3RyaW5nPTB4NjYw MDUwICIiLCBtYXNrPTx2YWx1ZSBvcHRpbWl6ZWQgb3V0PikgYXQgLi4vLi4v c3JjL2dkYi9leGNlcHRpb25zLmM6NTEwCiM3ICAweDAwMDAwMDAwMDA0NDVh YzQgaW4gZ2RiX21haW4gKGFyZ3M9MHg2ODM3YzMpIGF0IC4uLy4uL3NyYy9n ZGIvbWFpbi5jOjkxMQojOCAgMHgwMDAwMDAwMDAwNDQ1YTk2IGluIG1haW4g KGFyZ2M9PHZhbHVlIG9wdGltaXplZCBvdXQ+LCBhcmd2PTB4NjgzN2MzKSBh dCAuLi8uLi9zcmMvZ2RiL2dkYi5jOjMzCgpCcmVha3BvaW50IDEsIGNyZWF0 ZV9vdmVybGF5X2V2ZW50X2JyZWFrcG9pbnQgKGZ1bmNfbmFtZT0weDY3NjYw OSAiX292bHlfZGVidWdfZXZlbnQiKSBhdCAuLi8uLi9zcmMvZ2RiL2JyZWFr cG9pbnQuYzoxNDgwCjE0ODAgICAgewojMCAgY3JlYXRlX292ZXJsYXlfZXZl bnRfYnJlYWtwb2ludCAoZnVuY19uYW1lPTB4Njc2NjA5ICJfb3ZseV9kZWJ1 Z19ldmVudCIpIGF0IC4uLy4uL3NyYy9nZGIvYnJlYWtwb2ludC5jOjE0ODAK IzEgIDB4MDAwMDAwMDAwMDRlMjBmNiBpbiBuZXdfc3ltZmlsZV9vYmpmaWxl IChvYmpmaWxlPTB4Njc2NjA5LCBhZGRfZmxhZ3M9PHZhbHVlIG9wdGltaXpl ZCBvdXQ+KSBhdCAuLi8uLi9zcmMvZ2RiL3N5bWZpbGUuYzo5MjIKIzIgIDB4 MDAwMDAwMDAwMDRlM2M2YSBpbiBzeW1ib2xfZmlsZV9hZGRfd2l0aF9hZGRy c19vcl9vZmZzZXRzIChhYmZkPTB4MCwgYWRkX2ZsYWdzPTAsIGFkZHJzPTB4 MTRiY2Q5MCwgb2Zmc2V0cz0weDAsIG51bV9vZmZzZXRzPTAsIGZsYWdzPTIp IGF0IC4uLy4uL3NyYy9nZGIvc3ltZmlsZS5jOjEwODMKIzMgIDB4MDAwMDAw MDAwMDQ2NjFiNiBpbiBzeW1ib2xfZmlsZV9hZGRfZnJvbV9tZW1vcnkgKHRl bXBsPTx2YWx1ZSBvcHRpbWl6ZWQgb3V0PiwgYWRkcj08dmFsdWUgb3B0aW1p emVkIG91dD4sIG5hbWU9PHZhbHVlIG9wdGltaXplZCBvdXQ+LCBmcm9tX3R0 eT0wKSBhdCAuLi8uLi9zcmMvZ2RiL3N5bWZpbGUtbWVtLmM6MTEwCiM0ICAw eDAwMDAwMDAwMDA0NjYyNWEgaW4gc3ltYm9sX2ZpbGVfYWRkX2Zyb21fbWVt b3J5X3dyYXBwZXIgKHVpb3V0PTx2YWx1ZSBvcHRpbWl6ZWQgb3V0PiwgZGF0 YT0weDMpIGF0IC4uLy4uL3NyYy9nZGIvc3ltZmlsZS1tZW0uYzoxNjEKIzUg IDB4MDAwMDAwMDAwMDRmZTc1MCBpbiBjYXRjaF9leGNlcHRpb25zX3dpdGhf bXNnICh1aW91dD0weGE0ZjQwMCwgZnVuYz0weDQ2NjI0MCA8c3ltYm9sX2Zp bGVfYWRkX2Zyb21fbWVtb3J5X3dyYXBwZXI+LCBmdW5jX2FyZ3M9MHg3ZmZm ZmZmZmQ2OTAsIGdkYmVycm1zZz0weDAsIG1hc2s9PHZhbHVlIG9wdGltaXpl ZCBvdXQ+KSBhdCAuLi8uLi9zcmMvZ2RiL2V4Y2VwdGlvbnMuYzo0NzgKIzYg IDB4MDAwMDAwMDAwMDQ2NjBiMCBpbiBhZGRfdnN5c2NhbGxfcGFnZSAodGFy Z2V0PTx2YWx1ZSBvcHRpbWl6ZWQgb3V0PiwgZnJvbV90dHk9PHZhbHVlIG9w dGltaXplZCBvdXQ+KSBhdCAuLi8uLi9zcmMvZ2RiL3N5bWZpbGUtbWVtLmM6 MjA1CiM3ICAweDAwMDAwMDAwMDA0NDhmNGUgaW4gZ2VuZXJpY19vYnNlcnZl cl9ub3RpZnkgKHN1YmplY3Q9PHZhbHVlIG9wdGltaXplZCBvdXQ+LCBhcmdz PTB4N2ZmZmZmZmZkNmYwKSBhdCAuLi8uLi9zcmMvZ2RiL29ic2VydmVyLmM6 MTY2CiM4ICAweDAwMDAwMDAwMDA0NDk2ZWEgaW4gb2JzZXJ2ZXJfbm90aWZ5 X2luZmVyaW9yX2NyZWF0ZWQgKG9iamZpbGU9PHZhbHVlIG9wdGltaXplZCBv dXQ+LCBmcm9tX3R0eT08dmFsdWUgb3B0aW1pemVkIG91dD4pIGF0IC4vb2Jz ZXJ2ZXIuaW5jOjE3NAojOSAgMHgwMDAwMDAwMDAwNGVmM2YzIGluIHJ1bl9j b21tYW5kXzEgKGFyZ3M9MHgwLCBmcm9tX3R0eT0wLCB0YnJlYWtfYXRfbWFp bj08dmFsdWUgb3B0aW1pemVkIG91dD4pIGF0IC4uLy4uL3NyYy9nZGIvaW5m Y21kLmM6NTcyCiMxMCAweDAwMDAwMDAwMDA0NGQ0MzQgaW4gZXhlY3V0ZV9j b21tYW5kIChwPTB4N2ZmZmZmZmZkZTk0ICIiLCBmcm9tX3R0eT0wKSBhdCAu Li8uLi9zcmMvZ2RiL3RvcC5jOjQ0MgojMTEgMHgwMDAwMDAwMDAwNGZlNjI2 IGluIGNhdGNoX2NvbW1hbmRfZXJyb3JzIChjb21tYW5kPTB4NDRkMWMwIDxl eGVjdXRlX2NvbW1hbmQ+LCBhcmc9MHg3ZmZmZmZmZmRlOTEgInJ1biIsIGZy b21fdHR5PTEsIG1hc2s9PHZhbHVlIG9wdGltaXplZCBvdXQ+KSBhdCAuLi8u Li9zcmMvZ2RiL2V4Y2VwdGlvbnMuYzo1MjUKIzEyIDB4MDAwMDAwMDAwMDQ0 NjNkZCBpbiBjYXB0dXJlZF9tYWluIChkYXRhPTx2YWx1ZSBvcHRpbWl6ZWQg b3V0PikgYXQgLi4vLi4vc3JjL2dkYi9tYWluLmM6ODYxCiMxMyAweDAwMDAw MDAwMDA0ZmU2YWIgaW4gY2F0Y2hfZXJyb3JzIChmdW5jPTB4NDQ1ZDIwIDxj YXB0dXJlZF9tYWluPiwgZnVuY19hcmdzPTB4N2ZmZmZmZmZkOTYwLCBlcnJz dHJpbmc9MHg2NjAwNTAgIiIsIG1hc2s9PHZhbHVlIG9wdGltaXplZCBvdXQ+ KSBhdCAuLi8uLi9zcmMvZ2RiL2V4Y2VwdGlvbnMuYzo1MTAKIzE0IDB4MDAw MDAwMDAwMDQ0NWFjNCBpbiBnZGJfbWFpbiAoYXJncz0weDY4MzdjMykgYXQg Li4vLi4vc3JjL2dkYi9tYWluLmM6OTExCiMxNSAweDAwMDAwMDAwMDA0NDVh OTYgaW4gbWFpbiAoYXJnYz08dmFsdWUgb3B0aW1pemVkIG91dD4sIGFyZ3Y9 MHg2ODM3YzMpIGF0IC4uLy4uL3NyYy9nZGIvZ2RiLmM6MzMKW1RocmVhZCBk ZWJ1Z2dpbmcgdXNpbmcgbGlidGhyZWFkX2RiIGVuYWJsZWRdCgpCcmVha3Bv aW50IDEsIGNyZWF0ZV9vdmVybGF5X2V2ZW50X2JyZWFrcG9pbnQgKGZ1bmNf bmFtZT0weDY3NjYwOSAiX292bHlfZGVidWdfZXZlbnQiKSBhdCAuLi8uLi9z cmMvZ2RiL2JyZWFrcG9pbnQuYzoxNDgwCjE0ODAgICAgewojMCAgY3JlYXRl X292ZXJsYXlfZXZlbnRfYnJlYWtwb2ludCAoZnVuY19uYW1lPTB4Njc2NjA5 ICJfb3ZseV9kZWJ1Z19ldmVudCIpIGF0IC4uLy4uL3NyYy9nZGIvYnJlYWtw b2ludC5jOjE0ODAKIzEgIDB4MDAwMDAwMDAwMDQ2MmE2NyBpbiBzb2xpYl9h ZGQgKHBhdHRlcm49MHgwLCBmcm9tX3R0eT0wLCB0YXJnZXQ9PHZhbHVlIG9w dGltaXplZCBvdXQ+LCByZWFkc3ltcz0xKSBhdCAuLi8uLi9zcmMvZ2RiL3Nv bGliLmM6NzYzCiMyICAweDAwMDAwMDAwMDA0ZjRjMmYgaW4gaGFuZGxlX2lu ZmVyaW9yX2V2ZW50IChlY3M9MHg3ZmZmZmZmZmQ1ODApIGF0IC4uLy4uL3Ny Yy9nZGIvaW5mcnVuLmM6MzQ3MwojMyAgMHgwMDAwMDAwMDAwNGY2ZjAwIGlu IHdhaXRfZm9yX2luZmVyaW9yICh0cmVhdF9leGVjX2FzX3NpZ3RyYXA9MCkg YXQgLi4vLi4vc3JjL2dkYi9pbmZydW4uYzoyMDIzCiM0ICAweDAwMDAwMDAw MDA0Zjc0ODEgaW4gcHJvY2VlZCAoYWRkcj0wLCBzaWdnbmFsPVRBUkdFVF9T SUdOQUxfMCwgc3RlcD08dmFsdWUgb3B0aW1pemVkIG91dD4pIGF0IC4uLy4u L3NyYy9nZGIvaW5mcnVuLmM6MTYzMQojNSAgMHgwMDAwMDAwMDAwNGVmNDAz IGluIHJ1bl9jb21tYW5kXzEgKGFyZ3M9MHgwLCBmcm9tX3R0eT0wLCB0YnJl YWtfYXRfbWFpbj08dmFsdWUgb3B0aW1pemVkIG91dD4pIGF0IC4uLy4uL3Ny Yy9nZGIvaW5mY21kLmM6NTc1CiM2ICAweDAwMDAwMDAwMDA0NGQ0MzQgaW4g ZXhlY3V0ZV9jb21tYW5kIChwPTB4N2ZmZmZmZmZkZTk0ICIiLCBmcm9tX3R0 eT0wKSBhdCAuLi8uLi9zcmMvZ2RiL3RvcC5jOjQ0MgojNyAgMHgwMDAwMDAw MDAwNGZlNjI2IGluIGNhdGNoX2NvbW1hbmRfZXJyb3JzIChjb21tYW5kPTB4 NDRkMWMwIDxleGVjdXRlX2NvbW1hbmQ+LCBhcmc9MHg3ZmZmZmZmZmRlOTEg InJ1biIsIGZyb21fdHR5PTEsIG1hc2s9PHZhbHVlIG9wdGltaXplZCBvdXQ+ KSBhdCAuLi8uLi9zcmMvZ2RiL2V4Y2VwdGlvbnMuYzo1MjUKIzggIDB4MDAw MDAwMDAwMDQ0NjNkZCBpbiBjYXB0dXJlZF9tYWluIChkYXRhPTx2YWx1ZSBv cHRpbWl6ZWQgb3V0PikgYXQgLi4vLi4vc3JjL2dkYi9tYWluLmM6ODYxCiM5 ICAweDAwMDAwMDAwMDA0ZmU2YWIgaW4gY2F0Y2hfZXJyb3JzIChmdW5jPTB4 NDQ1ZDIwIDxjYXB0dXJlZF9tYWluPiwgZnVuY19hcmdzPTB4N2ZmZmZmZmZk OTYwLCBlcnJzdHJpbmc9MHg2NjAwNTAgIiIsIG1hc2s9PHZhbHVlIG9wdGlt aXplZCBvdXQ+KSBhdCAuLi8uLi9zcmMvZ2RiL2V4Y2VwdGlvbnMuYzo1MTAK IzEwIDB4MDAwMDAwMDAwMDQ0NWFjNCBpbiBnZGJfbWFpbiAoYXJncz0weDY4 MzdjMykgYXQgLi4vLi4vc3JjL2dkYi9tYWluLmM6OTExCiMxMSAweDAwMDAw MDAwMDA0NDVhOTYgaW4gbWFpbiAoYXJnYz08dmFsdWUgb3B0aW1pemVkIG91 dD4sIGFyZ3Y9MHg2ODM3YzMpIGF0IC4uLy4uL3NyYy9nZGIvZ2RiLmM6MzMK CkJyZWFrcG9pbnQgMSwgY3JlYXRlX292ZXJsYXlfZXZlbnRfYnJlYWtwb2lu dCAoZnVuY19uYW1lPTB4Njc2NjA5ICJfb3ZseV9kZWJ1Z19ldmVudCIpIGF0 IC4uLy4uL3NyYy9nZGIvYnJlYWtwb2ludC5jOjE0ODAKMTQ4MCAgICB7CiMw ICBjcmVhdGVfb3ZlcmxheV9ldmVudF9icmVha3BvaW50IChmdW5jX25hbWU9 MHg2NzY2MDkgIl9vdmx5X2RlYnVnX2V2ZW50IikgYXQgLi4vLi4vc3JjL2dk Yi9icmVha3BvaW50LmM6MTQ4MAojMSAgMHgwMDAwMDAwMDAwNDYyYTY3IGlu IHNvbGliX2FkZCAocGF0dGVybj0weDAsIGZyb21fdHR5PTAsIHRhcmdldD08 dmFsdWUgb3B0aW1pemVkIG91dD4sIHJlYWRzeW1zPTEpIGF0IC4uLy4uL3Ny Yy9nZGIvc29saWIuYzo3NjMKIzIgIDB4MDAwMDAwMDAwMDRmNGMyZiBpbiBo YW5kbGVfaW5mZXJpb3JfZXZlbnQgKGVjcz0weDdmZmZmZmZmZDU4MCkgYXQg Li4vLi4vc3JjL2dkYi9pbmZydW4uYzozNDczCiMzICAweDAwMDAwMDAwMDA0 ZjZmMDAgaW4gd2FpdF9mb3JfaW5mZXJpb3IgKHRyZWF0X2V4ZWNfYXNfc2ln dHJhcD0wKSBhdCAuLi8uLi9zcmMvZ2RiL2luZnJ1bi5jOjIwMjMKIzQgIDB4 MDAwMDAwMDAwMDRmNzQ4MSBpbiBwcm9jZWVkIChhZGRyPTAsIHNpZ2duYWw9 VEFSR0VUX1NJR05BTF8wLCBzdGVwPTx2YWx1ZSBvcHRpbWl6ZWQgb3V0Pikg YXQgLi4vLi4vc3JjL2dkYi9pbmZydW4uYzoxNjMxCiM1ICAweDAwMDAwMDAw MDA0ZWY0MDMgaW4gcnVuX2NvbW1hbmRfMSAoYXJncz0weDAsIGZyb21fdHR5 PTAsIHRicmVha19hdF9tYWluPTx2YWx1ZSBvcHRpbWl6ZWQgb3V0PikgYXQg Li4vLi4vc3JjL2dkYi9pbmZjbWQuYzo1NzUKIzYgIDB4MDAwMDAwMDAwMDQ0 ZDQzNCBpbiBleGVjdXRlX2NvbW1hbmQgKHA9MHg3ZmZmZmZmZmRlOTQgIiIs IGZyb21fdHR5PTApIGF0IC4uLy4uL3NyYy9nZGIvdG9wLmM6NDQyCiM3ICAw eDAwMDAwMDAwMDA0ZmU2MjYgaW4gY2F0Y2hfY29tbWFuZF9lcnJvcnMgKGNv bW1hbmQ9MHg0NGQxYzAgPGV4ZWN1dGVfY29tbWFuZD4sIGFyZz0weDdmZmZm ZmZmZGU5MSAicnVuIiwgZnJvbV90dHk9MSwgbWFzaz08dmFsdWUgb3B0aW1p emVkIG91dD4pIGF0IC4uLy4uL3NyYy9nZGIvZXhjZXB0aW9ucy5jOjUyNQoj OCAgMHgwMDAwMDAwMDAwNDQ2M2RkIGluIGNhcHR1cmVkX21haW4gKGRhdGE9 PHZhbHVlIG9wdGltaXplZCBvdXQ+KSBhdCAuLi8uLi9zcmMvZ2RiL21haW4u Yzo4NjEKIzkgIDB4MDAwMDAwMDAwMDRmZTZhYiBpbiBjYXRjaF9lcnJvcnMg KGZ1bmM9MHg0NDVkMjAgPGNhcHR1cmVkX21haW4+LCBmdW5jX2FyZ3M9MHg3 ZmZmZmZmZmQ5NjAsIGVycnN0cmluZz0weDY2MDA1MCAiIiwgbWFzaz08dmFs dWUgb3B0aW1pemVkIG91dD4pIGF0IC4uLy4uL3NyYy9nZGIvZXhjZXB0aW9u cy5jOjUxMAojMTAgMHgwMDAwMDAwMDAwNDQ1YWM0IGluIGdkYl9tYWluIChh cmdzPTB4NjgzN2MzKSBhdCAuLi8uLi9zcmMvZ2RiL21haW4uYzo5MTEKIzEx IDB4MDAwMDAwMDAwMDQ0NWE5NiBpbiBtYWluIChhcmdjPTx2YWx1ZSBvcHRp bWl6ZWQgb3V0PiwgYXJndj0weDY4MzdjMykgYXQgLi4vLi4vc3JjL2dkYi9n ZGIuYzozMwoKQnJlYWtwb2ludCAxLCBjcmVhdGVfb3ZlcmxheV9ldmVudF9i cmVha3BvaW50IChmdW5jX25hbWU9MHg2NzY2MDkgIl9vdmx5X2RlYnVnX2V2 ZW50IikgYXQgLi4vLi4vc3JjL2dkYi9icmVha3BvaW50LmM6MTQ4MAoxNDgw ICAgIHsKIzAgIGNyZWF0ZV9vdmVybGF5X2V2ZW50X2JyZWFrcG9pbnQgKGZ1 bmNfbmFtZT0weDY3NjYwOSAiX292bHlfZGVidWdfZXZlbnQiKSBhdCAuLi8u Li9zcmMvZ2RiL2JyZWFrcG9pbnQuYzoxNDgwCiMxICAweDAwMDAwMDAwMDA0 NjJhNjcgaW4gc29saWJfYWRkIChwYXR0ZXJuPTB4MCwgZnJvbV90dHk9MCwg dGFyZ2V0PTx2YWx1ZSBvcHRpbWl6ZWQgb3V0PiwgcmVhZHN5bXM9MSkgYXQg Li4vLi4vc3JjL2dkYi9zb2xpYi5jOjc2MwojMiAgMHgwMDAwMDAwMDAwNGY0 YzJmIGluIGhhbmRsZV9pbmZlcmlvcl9ldmVudCAoZWNzPTB4N2ZmZmZmZmZk NTgwKSBhdCAuLi8uLi9zcmMvZ2RiL2luZnJ1bi5jOjM0NzMKIzMgIDB4MDAw MDAwMDAwMDRmNmYwMCBpbiB3YWl0X2Zvcl9pbmZlcmlvciAodHJlYXRfZXhl Y19hc19zaWd0cmFwPTApIGF0IC4uLy4uL3NyYy9nZGIvaW5mcnVuLmM6MjAy MwojNCAgMHgwMDAwMDAwMDAwNGY3NDgxIGluIHByb2NlZWQgKGFkZHI9MCwg c2lnZ25hbD1UQVJHRVRfU0lHTkFMXzAsIHN0ZXA9PHZhbHVlIG9wdGltaXpl ZCBvdXQ+KSBhdCAuLi8uLi9zcmMvZ2RiL2luZnJ1bi5jOjE2MzEKIzUgIDB4 MDAwMDAwMDAwMDRlZjQwMyBpbiBydW5fY29tbWFuZF8xIChhcmdzPTB4MCwg ZnJvbV90dHk9MCwgdGJyZWFrX2F0X21haW49PHZhbHVlIG9wdGltaXplZCBv dXQ+KSBhdCAuLi8uLi9zcmMvZ2RiL2luZmNtZC5jOjU3NQojNiAgMHgwMDAw MDAwMDAwNDRkNDM0IGluIGV4ZWN1dGVfY29tbWFuZCAocD0weDdmZmZmZmZm ZGU5NCAiIiwgZnJvbV90dHk9MCkgYXQgLi4vLi4vc3JjL2dkYi90b3AuYzo0 NDIKIzcgIDB4MDAwMDAwMDAwMDRmZTYyNiBpbiBjYXRjaF9jb21tYW5kX2Vy cm9ycyAoY29tbWFuZD0weDQ0ZDFjMCA8ZXhlY3V0ZV9jb21tYW5kPiwgYXJn PTB4N2ZmZmZmZmZkZTkxICJydW4iLCBmcm9tX3R0eT0xLCBtYXNrPTx2YWx1 ZSBvcHRpbWl6ZWQgb3V0PikgYXQgLi4vLi4vc3JjL2dkYi9leGNlcHRpb25z LmM6NTI1CiM4ICAweDAwMDAwMDAwMDA0NDYzZGQgaW4gY2FwdHVyZWRfbWFp biAoZGF0YT08dmFsdWUgb3B0aW1pemVkIG91dD4pIGF0IC4uLy4uL3NyYy9n ZGIvbWFpbi5jOjg2MQojOSAgMHgwMDAwMDAwMDAwNGZlNmFiIGluIGNhdGNo X2Vycm9ycyAoZnVuYz0weDQ0NWQyMCA8Y2FwdHVyZWRfbWFpbj4sIGZ1bmNf YXJncz0weDdmZmZmZmZmZDk2MCwgZXJyc3RyaW5nPTB4NjYwMDUwICIiLCBt YXNrPTx2YWx1ZSBvcHRpbWl6ZWQgb3V0PikgYXQgLi4vLi4vc3JjL2dkYi9l eGNlcHRpb25zLmM6NTEwCiMxMCAweDAwMDAwMDAwMDA0NDVhYzQgaW4gZ2Ri X21haW4gKGFyZ3M9MHg2ODM3YzMpIGF0IC4uLy4uL3NyYy9nZGIvbWFpbi5j OjkxMQojMTEgMHgwMDAwMDAwMDAwNDQ1YTk2IGluIG1haW4gKGFyZ2M9PHZh bHVlIG9wdGltaXplZCBvdXQ+LCBhcmd2PTB4NjgzN2MzKSBhdCAuLi8uLi9z cmMvZ2RiL2dkYi5jOjMzCgo= --0016368325288f39c0046cf9f899--