From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 65485 invoked by alias); 2 May 2015 15:49:05 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 65466 invoked by uid 89); 2 May 2015 15:49:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-yh0-f54.google.com Received: from mail-yh0-f54.google.com (HELO mail-yh0-f54.google.com) (209.85.213.54) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Sat, 02 May 2015 15:49:02 +0000 Received: by yhcb70 with SMTP id b70so23322171yhc.0 for ; Sat, 02 May 2015 08:49:00 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.170.65.193 with SMTP id h184mr13357970ykh.34.1430581740625; Sat, 02 May 2015 08:49:00 -0700 (PDT) Received: by 10.129.92.10 with HTTP; Sat, 2 May 2015 08:48:59 -0700 (PDT) In-Reply-To: References: Date: Sat, 02 May 2015 15:49:00 -0000 Message-ID: Subject: Re: [patch] Ignore non relobj files in gc From: Cary Coutant To: =?UTF-8?Q?Rafael_Esp=C3=ADndola?= Cc: Binutils , Sriraman Tallam Content-Type: multipart/mixed; boundary=001a11c0547c79777005151b44e3 X-IsSubscribed: yes X-SW-Source: 2015-05/txt/msg00014.txt.bz2 --001a11c0547c79777005151b44e3 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 2655 > What about the attached compromise patch? It changes the type of just > the local variable. > >>> Using Relobj also helps me in my patch for gcing parts of SHF_MERGE sec= tions. >> >> If that's the case, let's move those changes to a separate patch. >> Nevertheless, I think it would be cleaner to change Section_id to use >> a Relobj* directly. That has some cascading effects, but doesn't >> affect quite as much target-independent code, and we really never need >> a Section_id that refers to a non-relocatable object. The attached >> patch does that. > > It is nicer. I started the patch trying it, hit the icf code and > backed out a bit. I've committed the attached patch to change Object* to Relobj* in Section_id and to propagate that change as necessary. -cary Change Section_id type to use Relobj* instead of Object*. 2015-04-29 Cary Coutant Rafael =C3=81vila de Esp=C3=ADndola gold/ * gc.h (Garbage_collection::is_section_garbage): Change Object* to Relobj*. (Garbage_collection::add_reference): Likewise. (Garbage_collection::gc_process_relocs): Likewise. Don't push object/shndx pair onto *secvec for dynamic objects. Don't follow relocations pointing to dynamic objects for GC. * icf.cc (Icf::find_identical_sections): Change Object* to Relobj*. (Icf::unfold_section): Likewise. (Icf::is_section_folded): Likewise. (Icf::get_folded_section): Likewise. * icf.h: (Icf::get_folded_section): Likewise. (Icf::unfold_section): Likewise. (Icf::is_section_folded): Likewise. (Icf::section_has_function_pointers): Likewise. (Icf::set_section_has_function_pointers): Likewise. * object.h (Section_id): Likewise. (Const_section_id): Likewise. * output.cc (Output_section::update_section_layout): Likewise. * output.h: (Output_section_lookup_maps::find_relaxed_input_section= ): Likewise. * plugin.cc (update_section_order): Likewise. (unique_segment_for_sections): Likewise. * powerpc.cc (Powerpc_relobj::add_reference): Likewise. (Target_powerpc::do_gc_add_reference): Likewise. (Target_powerpc::gc_process_relocs): Likewise. (Target_powerpc::do_gc_add_reference): Likewise. * symtab.cc (Symbol_table::is_section_folded): Likewise. (Symbol_table::gc_mark_symbol): Likewise. * symtab.h: (Symbol_table::is_section_folded): Likewise. * target.h: (Sized_target::gc_add_reference): Likewise. (Sized_target::do_gc_add_reference): Likewise. --001a11c0547c79777005151b44e3 Content-Type: application/octet-stream; name="gold-section-id.patch" Content-Disposition: attachment; filename="gold-section-id.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i977ealg3 Content-length: 20810 Q2hhbmdlIFNlY3Rpb25faWQgdHlwZSB0byB1c2UgUmVsb2JqKiBpbnN0ZWFk IG9mIE9iamVjdCouCgoyMDE1LTA0LTI5ICBDYXJ5IENvdXRhbnQgIDxjYXJ5 QGdvb2dsZS5jb20+CgkgICAgUmFmYWVsIMOBdmlsYSBkZSBFc3DDrW5kb2xh IDxyYWZhZWwuZXNwaW5kb2xhQGdtYWlsLmNvbT4KCmdvbGQvCgkqIGdjLmgg KEdhcmJhZ2VfY29sbGVjdGlvbjo6aXNfc2VjdGlvbl9nYXJiYWdlKTogQ2hh bmdlIE9iamVjdCoKCXRvIFJlbG9iaiouCgkoR2FyYmFnZV9jb2xsZWN0aW9u OjphZGRfcmVmZXJlbmNlKTogTGlrZXdpc2UuCgkoR2FyYmFnZV9jb2xsZWN0 aW9uOjpnY19wcm9jZXNzX3JlbG9jcyk6IExpa2V3aXNlLiBEb24ndCBwdXNo CglvYmplY3Qvc2huZHggcGFpciBvbnRvICpzZWN2ZWMgZm9yIGR5bmFtaWMg b2JqZWN0cy4gRG9uJ3QgZm9sbG93CglyZWxvY2F0aW9ucyBwb2ludGluZyB0 byBkeW5hbWljIG9iamVjdHMgZm9yIEdDLgoJKiBpY2YuY2MgKEljZjo6Zmlu ZF9pZGVudGljYWxfc2VjdGlvbnMpOiBDaGFuZ2UgT2JqZWN0KiB0byBSZWxv YmoqLgoJKEljZjo6dW5mb2xkX3NlY3Rpb24pOiBMaWtld2lzZS4KCShJY2Y6 OmlzX3NlY3Rpb25fZm9sZGVkKTogTGlrZXdpc2UuCgkoSWNmOjpnZXRfZm9s ZGVkX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogaWNmLmg6IChJY2Y6OmdldF9m b2xkZWRfc2VjdGlvbik6IExpa2V3aXNlLgoJKEljZjo6dW5mb2xkX3NlY3Rp b24pOiBMaWtld2lzZS4KCShJY2Y6OmlzX3NlY3Rpb25fZm9sZGVkKTogTGlr ZXdpc2UuCgkoSWNmOjpzZWN0aW9uX2hhc19mdW5jdGlvbl9wb2ludGVycyk6 IExpa2V3aXNlLgoJKEljZjo6c2V0X3NlY3Rpb25faGFzX2Z1bmN0aW9uX3Bv aW50ZXJzKTogTGlrZXdpc2UuCgkqIG9iamVjdC5oIChTZWN0aW9uX2lkKTog TGlrZXdpc2UuCgkoQ29uc3Rfc2VjdGlvbl9pZCk6IExpa2V3aXNlLgoJKiBv dXRwdXQuY2MgKE91dHB1dF9zZWN0aW9uOjp1cGRhdGVfc2VjdGlvbl9sYXlv dXQpOiBMaWtld2lzZS4KCSogb3V0cHV0Lmg6IChPdXRwdXRfc2VjdGlvbl9s b29rdXBfbWFwczo6ZmluZF9yZWxheGVkX2lucHV0X3NlY3Rpb24pOgoJTGlr ZXdpc2UuCgkqIHBsdWdpbi5jYyAodXBkYXRlX3NlY3Rpb25fb3JkZXIpOiBM aWtld2lzZS4KCSh1bmlxdWVfc2VnbWVudF9mb3Jfc2VjdGlvbnMpOiBMaWtl d2lzZS4KCSogcG93ZXJwYy5jYyAoUG93ZXJwY19yZWxvYmo6OmFkZF9yZWZl cmVuY2UpOiBMaWtld2lzZS4KCShUYXJnZXRfcG93ZXJwYzo6ZG9fZ2NfYWRk X3JlZmVyZW5jZSk6IExpa2V3aXNlLgoJKFRhcmdldF9wb3dlcnBjOjpnY19w cm9jZXNzX3JlbG9jcyk6IExpa2V3aXNlLgoJKFRhcmdldF9wb3dlcnBjOjpk b19nY19hZGRfcmVmZXJlbmNlKTogTGlrZXdpc2UuCgkqIHN5bXRhYi5jYyAo U3ltYm9sX3RhYmxlOjppc19zZWN0aW9uX2ZvbGRlZCk6IExpa2V3aXNlLgoJ KFN5bWJvbF90YWJsZTo6Z2NfbWFya19zeW1ib2wpOiBMaWtld2lzZS4KCSog c3ltdGFiLmg6IChTeW1ib2xfdGFibGU6OmlzX3NlY3Rpb25fZm9sZGVkKTog TGlrZXdpc2UuCgkqIHRhcmdldC5oOiAoU2l6ZWRfdGFyZ2V0OjpnY19hZGRf cmVmZXJlbmNlKTogTGlrZXdpc2UuCgkoU2l6ZWRfdGFyZ2V0Ojpkb19nY19h ZGRfcmVmZXJlbmNlKTogTGlrZXdpc2UuCgoKZGlmZiAtLWdpdCBhL2dvbGQv Z2MuaCBiL2dvbGQvZ2MuaAppbmRleCBiZjQwMjNkLi5jNDNmY2JlIDEwMDY0 NAotLS0gYS9nb2xkL2djLmgKKysrIGIvZ29sZC9nYy5oCkBAIC04Nyw3ICs4 Nyw3IEBAIGNsYXNzIEdhcmJhZ2VfY29sbGVjdGlvbgogICBkb190cmFuc2l0 aXZlX2Nsb3N1cmUoKTsKIAogICBib29sCi0gIGlzX3NlY3Rpb25fZ2FyYmFn ZShPYmplY3QqIG9iaiwgdW5zaWduZWQgaW50IHNobmR4KQorICBpc19zZWN0 aW9uX2dhcmJhZ2UoUmVsb2JqKiBvYmosIHVuc2lnbmVkIGludCBzaG5keCkK ICAgeyByZXR1cm4gKHRoaXMtPnJlZmVyZW5jZWRfbGlzdCgpLmZpbmQoU2Vj dGlvbl9pZChvYmosIHNobmR4KSkKICAgICAgICAgICAgID09IHRoaXMtPnJl ZmVyZW5jZWRfbGlzdCgpLmVuZCgpKTsgfQogCkBAIC0xMDMsOCArMTAzLDgg QEAgY2xhc3MgR2FyYmFnZV9jb2xsZWN0aW9uCiAgIC8vIEFkZCBhIHJlZmVy ZW5jZSBmcm9tIHRoZSBTUkNfU0hORFgtdGggc2VjdGlvbiBvZiBTUkNfT0JK RUNUIHRvCiAgIC8vIERTVF9TSE5EWC10aCBzZWN0aW9uIG9mIERTVF9PQkpF Q1QuCiAgIHZvaWQKLSAgYWRkX3JlZmVyZW5jZShPYmplY3QqIHNyY19vYmpl Y3QsIHVuc2lnbmVkIGludCBzcmNfc2huZHgsCi0JCU9iamVjdCogZHN0X29i amVjdCwgdW5zaWduZWQgaW50IGRzdF9zaG5keCkKKyAgYWRkX3JlZmVyZW5j ZShSZWxvYmoqIHNyY19vYmplY3QsIHVuc2lnbmVkIGludCBzcmNfc2huZHgs CisJCVJlbG9iaiogZHN0X29iamVjdCwgdW5zaWduZWQgaW50IGRzdF9zaG5k eCkKICAgewogICAgIFNlY3Rpb25faWQgc3JjX2lkKHNyY19vYmplY3QsIHNy Y19zaG5keCk7CiAgICAgU2VjdGlvbl9pZCBkc3RfaWQoZHN0X29iamVjdCwg ZHN0X3NobmR4KTsKQEAgLTIyOSw3ICsyMjksNyBAQCBnY19wcm9jZXNzX3Jl bG9jcygKICAgICAgIHVuc2lnbmVkIGludCByX3R5cGUgPSBlbGZjcHA6OmVs Zl9yX3R5cGU8c2l6ZT4ocl9pbmZvKTsKICAgICAgIHR5cGVuYW1lIGVsZmNw cDo6RWxmX3R5cGVzPHNpemU+OjpFbGZfU3d4d29yZCBhZGRlbmQgPQogICAg ICAgUmVsb2NfdHlwZXM8c2hfdHlwZSwgc2l6ZSwgYmlnX2VuZGlhbj46Omdl dF9yZWxvY19hZGRlbmRfbm9lcnJvcigmcmVsb2MpOwotICAgICAgT2JqZWN0 KiBkc3Rfb2JqOworICAgICAgUmVsb2JqKiBkc3Rfb2JqOwogICAgICAgdW5z aWduZWQgaW50IGRzdF9pbmR4OwogICAgICAgdHlwZWRlZiB0eXBlbmFtZSBl bGZjcHA6OkVsZl90eXBlczxzaXplPjo6RWxmX0FkZHIgQWRkcmVzczsKICAg ICAgIEFkZHJlc3MgZHN0X29mZjsKQEAgLTI0OSw3ICsyNDksNyBAQCBnY19w cm9jZXNzX3JlbG9jcygKICAgICAgICAgICAgIHsKIAkgICAgICBBZGRyZXNz IHN5bXZhbHVlID0gZHN0X29mZiAtIGFkZGVuZDsKIAkgICAgICBpZiAoaXNf b3JkaW5hcnkpIAotCQkoKnNlY3ZlYykucHVzaF9iYWNrKFNlY3Rpb25faWQo ZHN0X29iaiwgZHN0X2luZHgpKTsKKwkJKCpzZWN2ZWMpLnB1c2hfYmFjayhT ZWN0aW9uX2lkKHNyY19vYmosIGRzdF9pbmR4KSk7CiAJICAgICAgZWxzZQog ICAgICAgICAgICAgICAgICgqc2VjdmVjKS5wdXNoX2JhY2soU2VjdGlvbl9p ZChOVUxMLCAwKSk7CiAgICAgICAgICAgICAgICgqc3ltdmVjKS5wdXNoX2Jh Y2soTlVMTCk7CkBAIC0yODksOSArMjg5LDEwIEBAIGdjX3Byb2Nlc3NfcmVs b2NzKAogICAgICAgICAgIGRzdF9vYmogPSBOVUxMOwogICAgICAgICAgIGRz dF9pbmR4ID0gMDsKICAgICAgICAgICBib29sIGlzX29yZGluYXJ5ID0gZmFs c2U7Ci0gICAgICAgICAgaWYgKGdzeW0tPnNvdXJjZSgpID09IFN5bWJvbDo6 RlJPTV9PQkpFQ1QpCisgICAgICAgICAgaWYgKGdzeW0tPnNvdXJjZSgpID09 IFN5bWJvbDo6RlJPTV9PQkpFQ1QKKwkgICAgICAmJiAhZ3N5bS0+b2JqZWN0 KCktPmlzX2R5bmFtaWMoKSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAg ICAgZHN0X29iaiA9IGdzeW0tPm9iamVjdCgpOworICAgICAgICAgICAgICBk c3Rfb2JqID0gc3RhdGljX2Nhc3Q8UmVsb2JqKj4oZ3N5bS0+b2JqZWN0KCkp OwogICAgICAgICAgICAgICBkc3RfaW5keCA9IGdzeW0tPnNobmR4KCZpc19v cmRpbmFyeSk7CiAgICAgICAgICAgICB9CiAJICBkc3Rfb2ZmID0gc3RhdGlj X2Nhc3Q8Y29uc3QgU2l6ZWRfc3ltYm9sPHNpemU+Kj4oZ3N5bSktPnZhbHVl KCk7CkBAIC0zMDEsNyArMzAyLDcgQEAgZ2NfcHJvY2Vzc19yZWxvY3MoCiAJ ICAvLyBvZiBhIGZ1bmN0aW9uIHBvaW50ZXIgYmVpbmcgdGFrZW4uCiAJICBp ZiAoZ3N5bS0+c291cmNlKCkgPT0gU3ltYm9sOjpGUk9NX09CSkVDVAogICAg ICAgICAgICAgICAmJiBjaGVja19zZWN0aW9uX2Zvcl9mdW5jdGlvbl9wb2lu dGVycwotICAgICAgICAgICAgICAmJiBnc3ltLT50eXBlKCkgIT0gZWxmY3Bw OjpTVFRfT0JKRUNUCisgICAgICAgICAgICAgICYmIGRzdF9vYmogIT0gTlVM TAogICAgICAgICAgICAgICAmJiAoIWlzX29yZGluYXJ5CiAgICAgICAgICAg ICAgICAgICB8fCBzY2FuLmdsb2JhbF9yZWxvY19tYXlfYmVfZnVuY3Rpb25f cG9pbnRlcigKICAgICAgICAgICAgICAgICAgICAgICAgc3ltdGFiLCBOVUxM LCBOVUxMLCBzcmNfb2JqLCBzcmNfaW5keCwgTlVMTCwgcmVsb2MsCkBAIC0z MjQsNyArMzI1LDcgQEAgZ2NfcHJvY2Vzc19yZWxvY3MoCiAgICAgICAgICAg aWYgKGlzX2ljZl90cmFja2VkKQogICAgICAgICAgICAgewogCSAgICAgIEFk ZHJlc3Mgc3ltdmFsdWUgPSBkc3Rfb2ZmIC0gYWRkZW5kOwotICAgICAgICAg ICAgICBpZiAoaXNfb3JkaW5hcnkgJiYgZ3N5bS0+c291cmNlKCkgPT0gU3lt Ym9sOjpGUk9NX09CSkVDVCkKKyAgICAgICAgICAgICAgaWYgKGlzX29yZGlu YXJ5ICYmIGRzdF9vYmogIT0gTlVMTCkKIAkJKCpzZWN2ZWMpLnB1c2hfYmFj ayhTZWN0aW9uX2lkKGRzdF9vYmosIGRzdF9pbmR4KSk7CiAJICAgICAgZWxz ZQogICAgICAgICAgICAgICAgICgqc2VjdmVjKS5wdXNoX2JhY2soU2VjdGlv bl9pZChOVUxMLCAwKSk7CkBAIC0zNDAsNyArMzQxLDcgQEAgZ2NfcHJvY2Vz c19yZWxvY3MoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzcmNfb2JqKSk7CiAJICAgIH0KIAot ICAgICAgICAgIGlmIChnc3ltLT5zb3VyY2UoKSAhPSBTeW1ib2w6OkZST01f T0JKRUNUKQorICAgICAgICAgIGlmIChkc3Rfb2JqID09IE5VTEwpCiAgICAg ICAgICAgICBjb250aW51ZTsKICAgICAgICAgICBpZiAoIWlzX29yZGluYXJ5 KQogICAgICAgICAgICAgY29udGludWU7CkBAIC0zNDksOCArMzUwLDggQEAg Z2NfcHJvY2Vzc19yZWxvY3MoCiAgICAgICAgIHsKIAkgIHN5bXRhYi0+Z2Mo KS0+YWRkX3JlZmVyZW5jZShzcmNfb2JqLCBzcmNfaW5keCwgZHN0X29iaiwg ZHN0X2luZHgpOwogCSAgcGFyYW1ldGVycy0+c2l6ZWRfdGFyZ2V0PHNpemUs IGJpZ19lbmRpYW4+KCkKLQkgICAgLT5nY19hZGRfcmVmZXJlbmNlKHN5bXRh Yiwgc3JjX29iaiwgc3JjX2luZHgsCi0JCQkgICAgICAgZHN0X29iaiwgZHN0 X2luZHgsIGRzdF9vZmYpOworCSAgICAtPmdjX2FkZF9yZWZlcmVuY2Uoc3lt dGFiLCBzcmNfb2JqLCBzcmNfaW5keCwgZHN0X29iaiwgZHN0X2luZHgsCisJ CQkgICAgICAgZHN0X29mZik7CiAgICAgICAgICAgaWYgKGNpZGVudF9zZWN0 aW9uX25hbWUgIT0gTlVMTCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgR2FyYmFnZV9jb2xsZWN0aW9uOjpDaWRlbnRfc2VjdGlvbl9tYXA6Oml0 ZXJhdG9yIGVsZSA9CmRpZmYgLS1naXQgYS9nb2xkL2ljZi5jYyBiL2dvbGQv aWNmLmNjCmluZGV4IDhkZTYzODYuLjk2YjdmMmQgMTAwNjQ0Ci0tLSBhL2dv bGQvaWNmLmNjCisrKyBiL2dvbGQvaWNmLmNjCkBAIC03ODcsNyArNzg3LDcg QEAgSWNmOjpmaW5kX2lkZW50aWNhbF9zZWN0aW9ucyhjb25zdCBJbnB1dF9v YmplY3RzKiBpbnB1dF9vYmplY3RzLAogICAgICAgZWxzZSBpZiAoc3ltLT5z b3VyY2UoKSA9PSBTeW1ib2w6OkZST01fT0JKRUNUIAogICAgICAgICAgICAg ICAgJiYgIXN5bS0+b2JqZWN0KCktPmlzX2R5bmFtaWMoKSkKICAgICAgICAg ewotICAgICAgICAgIE9iamVjdCogb2JqID0gc3ltLT5vYmplY3QoKTsKKyAg ICAgICAgICBSZWxvYmoqIG9iaiA9IHN0YXRpY19jYXN0PFJlbG9iaio+KHN5 bS0+b2JqZWN0KCkpOwogICAgICAgICAgIGJvb2wgaXNfb3JkaW5hcnk7CiAg ICAgICAgICAgdW5zaWduZWQgaW50IHNobmR4ID0gc3ltLT5zaG5keCgmaXNf b3JkaW5hcnkpOwogICAgICAgICAgIGlmIChpc19vcmRpbmFyeSkKQEAgLTgw NCw3ICs4MDQsNyBAQCBJY2Y6OmZpbmRfaWRlbnRpY2FsX3NlY3Rpb25zKGNv bnN0IElucHV0X29iamVjdHMqIGlucHV0X29iamVjdHMsCiAvLyBVbmZvbGRz IHRoZSBzZWN0aW9uIGRlbm90ZWQgYnkgT0JKIGFuZCBTSE5EWCBpZiBmb2xk ZWQuCiAKIHZvaWQKLUljZjo6dW5mb2xkX3NlY3Rpb24oT2JqZWN0KiBvYmos IHVuc2lnbmVkIGludCBzaG5keCkKK0ljZjo6dW5mb2xkX3NlY3Rpb24oUmVs b2JqKiBvYmosIHVuc2lnbmVkIGludCBzaG5keCkKIHsKICAgU2VjdGlvbl9p ZCBzZWNuKG9iaiwgc2huZHgpOwogICBVbmlxX3NlY25faWRfbWFwOjppdGVy YXRvciBpdCA9IHRoaXMtPnNlY3Rpb25faWRfLmZpbmQoc2Vjbik7CkBAIC04 MjEsNyArODIxLDcgQEAgSWNmOjp1bmZvbGRfc2VjdGlvbihPYmplY3QqIG9i aiwgdW5zaWduZWQgaW50IHNobmR4KQogLy8gaXMgZGlmZmVyZW50IGZyb20g dGhpcyBzZWN0aW9uLgogCiBib29sCi1JY2Y6OmlzX3NlY3Rpb25fZm9sZGVk KE9iamVjdCogb2JqLCB1bnNpZ25lZCBpbnQgc2huZHgpCitJY2Y6OmlzX3Nl Y3Rpb25fZm9sZGVkKFJlbG9iaiogb2JqLCB1bnNpZ25lZCBpbnQgc2huZHgp CiB7CiAgIFNlY3Rpb25faWQgc2VjbihvYmosIHNobmR4KTsKICAgVW5pcV9z ZWNuX2lkX21hcDo6aXRlcmF0b3IgaXQgPSB0aGlzLT5zZWN0aW9uX2lkXy5m aW5kKHNlY24pOwpAQCAtODM1LDcgKzgzNSw3IEBAIEljZjo6aXNfc2VjdGlv bl9mb2xkZWQoT2JqZWN0KiBvYmosIHVuc2lnbmVkIGludCBzaG5keCkKIC8v IFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgZm9sZGVkIHNlY3Rpb24gZm9y IHRoZSBnaXZlbiBzZWN0aW9uLgogCiBTZWN0aW9uX2lkCi1JY2Y6OmdldF9m b2xkZWRfc2VjdGlvbihPYmplY3QqIGR1cF9vYmosIHVuc2lnbmVkIGludCBk dXBfc2huZHgpCitJY2Y6OmdldF9mb2xkZWRfc2VjdGlvbihSZWxvYmoqIGR1 cF9vYmosIHVuc2lnbmVkIGludCBkdXBfc2huZHgpCiB7CiAgIFNlY3Rpb25f aWQgZHVwX3NlY24oZHVwX29iaiwgZHVwX3NobmR4KTsKICAgVW5pcV9zZWNu X2lkX21hcDo6aXRlcmF0b3IgaXQgPSB0aGlzLT5zZWN0aW9uX2lkXy5maW5k KGR1cF9zZWNuKTsKZGlmZiAtLWdpdCBhL2dvbGQvaWNmLmggYi9nb2xkL2lj Zi5oCmluZGV4IGQzNDNmYTUuLjdmYWY4MTYgMTAwNjQ0Ci0tLSBhL2dvbGQv aWNmLmgKKysrIGIvZ29sZC9pY2YuaApAQCAtNzQsNyArNzQsNyBAQCBjbGFz cyBJY2YKICAgLy8gUmV0dXJucyB0aGUga2VwdCBmb2xkZWQgaWRlbnRpY2Fs IHNlY3Rpb24gY29ycmVzcG9uZGluZyB0bwogICAvLyBkdXBfb2JqIGFuZCBk dXBfc2huZHguCiAgIFNlY3Rpb25faWQKLSAgZ2V0X2ZvbGRlZF9zZWN0aW9u KE9iamVjdCogZHVwX29iaiwgdW5zaWduZWQgaW50IGR1cF9zaG5keCk7Cisg IGdldF9mb2xkZWRfc2VjdGlvbihSZWxvYmoqIGR1cF9vYmosIHVuc2lnbmVk IGludCBkdXBfc2huZHgpOwogCiAgIC8vIEZvcm1zIGdyb3VwcyBvZiBpZGVu dGljYWwgc2VjdGlvbnMgd2hlcmUgdGhlIGZpcnN0IG1lbWJlcgogICAvLyBv ZiBlYWNoIGdyb3VwIGlzIHRoZSBrZXB0IHNlY3Rpb24gZHVyaW5nIGZvbGRp bmcuCkBAIC05NSwxNyArOTUsMTcgQEAgY2xhc3MgSWNmCiAKICAgLy8gVW5m b2xkcyB0aGUgc2VjdGlvbiBkZW5vdGVkIGJ5IE9CSiBhbmQgU0hORFggaWYg Zm9sZGVkLgogICB2b2lkCi0gIHVuZm9sZF9zZWN0aW9uKE9iamVjdCogb2Jq LCB1bnNpZ25lZCBpbnQgc2huZHgpOworICB1bmZvbGRfc2VjdGlvbihSZWxv YmoqIG9iaiwgdW5zaWduZWQgaW50IHNobmR4KTsKIAogICAvLyBSZXR1cm5z IHRoZSBrZXB0IHNlY3Rpb24gY29ycmVzcG9uZGluZyB0byB0aGUKICAgLy8g Z2l2ZW4gc2VjdGlvbi4KICAgYm9vbAotICBpc19zZWN0aW9uX2ZvbGRlZChP YmplY3QqIG9iaiwgdW5zaWduZWQgaW50IHNobmR4KTsKKyAgaXNfc2VjdGlv bl9mb2xkZWQoUmVsb2JqKiBvYmosIHVuc2lnbmVkIGludCBzaG5keCk7CiAK ICAgLy8gR2l2ZW4gYW4gb2JqZWN0IGFuZCBhIHNlY3Rpb24gaW5kZXgsIHRo aXMgcmV0dXJucyB0cnVlIGlmIHRoZQogICAvLyBwb2ludGVyIG9mIHRoZSBm dW5jdGlvbiBkZWZpbmVkIGluIHRoaXMgc2VjdGlvbiBpcyB0YWtlbi4KICAg Ym9vbAotICBzZWN0aW9uX2hhc19mdW5jdGlvbl9wb2ludGVycyhPYmplY3Qq IG9iaiwgdW5zaWduZWQgaW50IHNobmR4KQorICBzZWN0aW9uX2hhc19mdW5j dGlvbl9wb2ludGVycyhSZWxvYmoqIG9iaiwgdW5zaWduZWQgaW50IHNobmR4 KQogICB7CiAgICAgcmV0dXJuICh0aGlzLT5mcHRyX3NlY3Rpb25faWRfLmZp bmQoU2VjdGlvbl9pZChvYmosIHNobmR4KSkKICAgICAgICAgICAgICE9IHRo aXMtPmZwdHJfc2VjdGlvbl9pZF8uZW5kKCkpOwpAQCAtMTE0LDcgKzExNCw3 IEBAIGNsYXNzIEljZgogICAvLyBSZWNvcmRzIHRoYXQgYSBwb2ludGVyIG9m IHRoZSBmdW5jdGlvbiBkZWZpbmVkIGluIHRoaXMgc2VjdGlvbgogICAvLyBp cyB0YWtlbi4KICAgdm9pZAotICBzZXRfc2VjdGlvbl9oYXNfZnVuY3Rpb25f cG9pbnRlcnMoT2JqZWN0KiBvYmosIHVuc2lnbmVkIGludCBzaG5keCkKKyAg c2V0X3NlY3Rpb25faGFzX2Z1bmN0aW9uX3BvaW50ZXJzKFJlbG9iaiogb2Jq LCB1bnNpZ25lZCBpbnQgc2huZHgpCiAgIHsKICAgICB0aGlzLT5mcHRyX3Nl Y3Rpb25faWRfLmluc2VydChTZWN0aW9uX2lkKG9iaiwgc2huZHgpKTsKICAg fQpkaWZmIC0tZ2l0IGEvZ29sZC9vYmplY3QuaCBiL2dvbGQvb2JqZWN0LmgK aW5kZXggZmM5M2FiZC4uYTNkNWQwZSAxMDA2NDQKLS0tIGEvZ29sZC9vYmpl Y3QuaAorKysgYi9nb2xkL29iamVjdC5oCkBAIC0yODYzLDExICsyODYzLDEx IEBAIHN0cnVjdCBSZWxvY2F0ZV9pbmZvCiAKIC8vIFRoaXMgaXMgdXNlZCB0 byByZXByZXNlbnQgYSBzZWN0aW9uIGluIGFuIG9iamVjdCBhbmQgaXMgdXNl ZCBhcyB0aGUKIC8vIGtleSB0eXBlIGZvciB2YXJpb3VzIHNlY3Rpb24gbWFw cy4KLXR5cGVkZWYgc3RkOjpwYWlyPE9iamVjdCosIHVuc2lnbmVkIGludD4g U2VjdGlvbl9pZDsKK3R5cGVkZWYgc3RkOjpwYWlyPFJlbG9iaiosIHVuc2ln bmVkIGludD4gU2VjdGlvbl9pZDsKIAogLy8gVGhpcyBpcyBzaW1pbGFyIHRv IFNlY3Rpb25faWQgYnV0IGlzIHVzZWQgd2hlbiB0aGUgc2VjdGlvbgogLy8g cG9pbnRlcnMgYXJlIGNvbnN0LgotdHlwZWRlZiBzdGQ6OnBhaXI8Y29uc3Qg T2JqZWN0KiwgdW5zaWduZWQgaW50PiBDb25zdF9zZWN0aW9uX2lkOwordHlw ZWRlZiBzdGQ6OnBhaXI8Y29uc3QgUmVsb2JqKiwgdW5zaWduZWQgaW50PiBD b25zdF9zZWN0aW9uX2lkOwogCiAvLyBUaGUgaGFzaCB2YWx1ZSBpcyBiYXNl ZCBvbiB0aGUgYWRkcmVzcyBvZiBhbiBvYmplY3QgaW4gbWVtb3J5IGR1cmlu ZwogLy8gbGlua2luZy4gIEl0IGlzIG9rYXkgdG8gdXNlIHRoaXMgZm9yIGxv b2tpbmcgdXAgc2VjdGlvbnMgYnV0IG5ldmVyIHVzZQpkaWZmIC0tZ2l0IGEv Z29sZC9vdXRwdXQuY2MgYi9nb2xkL291dHB1dC5jYwppbmRleCBlZTZjNDc1 Li43ODFmYmZiIDEwMDY0NAotLS0gYS9nb2xkL291dHB1dC5jYworKysgYi9n b2xkL291dHB1dC5jYwpAQCAtMzUwMSw3ICszNTAxLDcgQEAgT3V0cHV0X3Nl Y3Rpb246OnVwZGF0ZV9zZWN0aW9uX2xheW91dCgKICAgICAgIGlmIChwLT5p c19pbnB1dF9zZWN0aW9uKCkKIAkgIHx8IHAtPmlzX3JlbGF4ZWRfaW5wdXRf c2VjdGlvbigpKQogCXsKLQkgIE9iamVjdCogb2JqID0gKHAtPmlzX2lucHV0 X3NlY3Rpb24oKQorCSAgUmVsb2JqKiBvYmogPSAocC0+aXNfaW5wdXRfc2Vj dGlvbigpCiAJCQkgPyBwLT5yZWxvYmooKQogCQkJIDogcC0+cmVsYXhlZF9p bnB1dF9zZWN0aW9uKCktPnJlbG9iaigpKTsKIAkgIHVuc2lnbmVkIGludCBz aG5keCA9IHAtPnNobmR4KCk7CmRpZmYgLS1naXQgYS9nb2xkL291dHB1dC5o IGIvZ29sZC9vdXRwdXQuaAppbmRleCAzMThhZjM2Li5iZTcyOTY1IDEwMDY0 NAotLS0gYS9nb2xkL291dHB1dC5oCisrKyBiL2dvbGQvb3V0cHV0LmgKQEAg LTI5MDQsNyArMjkwNCw3IEBAIGNsYXNzIE91dHB1dF9zZWN0aW9uX2xvb2t1 cF9tYXBzCiAKICAgLy8gRmluZCBhIHJlbGF4ZWQgaW5wdXQgc2VjdGlvbiBv ZiBPQkpFQ1Qgd2l0aCBpbmRleCBTSE5EWC4KICAgT3V0cHV0X3JlbGF4ZWRf aW5wdXRfc2VjdGlvbioKLSAgZmluZF9yZWxheGVkX2lucHV0X3NlY3Rpb24o Y29uc3QgT2JqZWN0KiBvYmplY3QsIHVuc2lnbmVkIGludCBzaG5keCkgY29u c3QKKyAgZmluZF9yZWxheGVkX2lucHV0X3NlY3Rpb24oY29uc3QgUmVsb2Jq KiBvYmplY3QsIHVuc2lnbmVkIGludCBzaG5keCkgY29uc3QKICAgewogICAg IGdvbGRfYXNzZXJ0KHRoaXMtPmlzX3ZhbGlkXyk7CiAgICAgUmVsYXhlZF9p bnB1dF9zZWN0aW9uc19ieV9pZDo6Y29uc3RfaXRlcmF0b3IgcCA9CmRpZmYg LS1naXQgYS9nb2xkL3BsdWdpbi5jYyBiL2dvbGQvcGx1Z2luLmNjCmluZGV4 IDY4ZGE4ZTMuLjE1ODhmMzQgMTAwNjQ0Ci0tLSBhL2dvbGQvcGx1Z2luLmNj CisrKyBiL2dvbGQvcGx1Z2luLmNjCkBAIC0xNzMxLDEwICsxNzMxLDEwIEBA IHVwZGF0ZV9zZWN0aW9uX29yZGVyKGNvbnN0IHN0cnVjdCBsZF9wbHVnaW5f c2VjdGlvbiogc2VjdGlvbl9saXN0LAogICAgIHsKICAgICAgIE9iamVjdCog b2JqID0gcGFyYW1ldGVycy0+b3B0aW9ucygpLnBsdWdpbnMoKS0+Z2V0X2Vs Zl9vYmplY3QoCiAgICAgICAgICAgc2VjdGlvbl9saXN0W2ldLmhhbmRsZSk7 Ci0gICAgICBpZiAob2JqID09IE5VTEwpCisgICAgICBpZiAob2JqID09IE5V TEwgfHwgb2JqLT5pc19keW5hbWljKCkpCiAJcmV0dXJuIExEUFNfQkFEX0hB TkRMRTsKICAgICAgIHVuc2lnbmVkIGludCBzaG5keCA9IHNlY3Rpb25fbGlz dFtpXS5zaG5keDsKLSAgICAgIFNlY3Rpb25faWQgc2Vjbl9pZChvYmosIHNo bmR4KTsKKyAgICAgIFNlY3Rpb25faWQgc2Vjbl9pZChzdGF0aWNfY2FzdDxS ZWxvYmoqPihvYmopLCBzaG5keCk7CiAgICAgICAoKm9yZGVyX21hcClbc2Vj bl9pZF0gPSBpICsgMTsKICAgICB9CiAKQEAgLTE4MDAsMTAgKzE4MDAsMTAg QEAgdW5pcXVlX3NlZ21lbnRfZm9yX3NlY3Rpb25zKGNvbnN0IGNoYXIqIHNl Z21lbnRfbmFtZSwKICAgICB7CiAgICAgICBPYmplY3QqIG9iaiA9IHBhcmFt ZXRlcnMtPm9wdGlvbnMoKS5wbHVnaW5zKCktPmdldF9lbGZfb2JqZWN0KAog ICAgICAgICAgIHNlY3Rpb25fbGlzdFtpXS5oYW5kbGUpOwotICAgICAgaWYg KG9iaiA9PSBOVUxMKQorICAgICAgaWYgKG9iaiA9PSBOVUxMIHx8IG9iai0+ aXNfZHluYW1pYygpKQogCXJldHVybiBMRFBTX0JBRF9IQU5ETEU7CiAgICAg ICB1bnNpZ25lZCBpbnQgc2huZHggPSBzZWN0aW9uX2xpc3RbaV0uc2huZHg7 Ci0gICAgICBDb25zdF9zZWN0aW9uX2lkIHNlY25faWQob2JqLCBzaG5keCk7 CisgICAgICBDb25zdF9zZWN0aW9uX2lkIHNlY25faWQoc3RhdGljX2Nhc3Q8 UmVsb2JqKj4ob2JqKSwgc2huZHgpOwogICAgICAgbGF5b3V0LT5pbnNlcnRf c2VjdGlvbl9zZWdtZW50X21hcChzZWNuX2lkLCBzKTsKICAgICB9CiAKZGlm ZiAtLWdpdCBhL2dvbGQvcG93ZXJwYy5jYyBiL2dvbGQvcG93ZXJwYy5jYwpp bmRleCBmZGRmM2ZhLi4yOWFiZDVlIDEwMDY0NAotLS0gYS9nb2xkL3Bvd2Vy cGMuY2MKKysrIGIvZ29sZC9wb3dlcnBjLmNjCkBAIC0yMTIsNyArMjEyLDcg QEAgcHVibGljOgogICAvLyBBZGQgYSByZWZlcmVuY2UgZnJvbSBTUkNfT0JK LCBTUkNfSU5EWCB0byB0aGlzIG9iamVjdCdzIC5vcGQKICAgLy8gc2VjdGlv biBhdCBEU1RfT0ZGLgogICB2b2lkCi0gIGFkZF9yZWZlcmVuY2UoT2JqZWN0 KiBzcmNfb2JqLAorICBhZGRfcmVmZXJlbmNlKFJlbG9iaiogc3JjX29iaiwK IAkJdW5zaWduZWQgaW50IHNyY19pbmR4LAogCQl0eXBlbmFtZSBlbGZjcHA6 OkVsZl90eXBlczxzaXplPjo6RWxmX0FkZHIgZHN0X29mZikKICAgewpAQCAt NzgwLDkgKzc4MCw5IEBAIGNsYXNzIFRhcmdldF9wb3dlcnBjIDogcHVibGlj IFNpemVkX3RhcmdldDxzaXplLCBiaWdfZW5kaWFuPgogICAvLyBzZWN0aW9u IG9mIGEgZnVuY3Rpb24gZGVzY3JpcHRvci4KICAgdm9pZAogICBkb19nY19h ZGRfcmVmZXJlbmNlKFN5bWJvbF90YWJsZSogc3ltdGFiLAotCQkgICAgICBP YmplY3QqIHNyY19vYmosCisJCSAgICAgIFJlbG9iaiogc3JjX29iaiwKIAkJ ICAgICAgdW5zaWduZWQgaW50IHNyY19zaG5keCwKLQkJICAgICAgT2JqZWN0 KiBkc3Rfb2JqLAorCQkgICAgICBSZWxvYmoqIGRzdF9vYmosCiAJCSAgICAg IHVuc2lnbmVkIGludCBkc3Rfc2huZHgsCiAJCSAgICAgIEFkZHJlc3MgZHN0 X29mZikgY29uc3Q7CiAKQEAgLTYzNDcsNyArNjM0Nyw3IEBAIFRhcmdldF9w b3dlcnBjPHNpemUsIGJpZ19lbmRpYW4+OjpnY19wcm9jZXNzX3JlbG9jcygK IAkgIHR5cGVuYW1lIFBvd2VycGNfcmVsb2JqPHNpemUsIGJpZ19lbmRpYW4+ OjpTZWN0aW9uX3JlZnM6Oml0ZXJhdG9yIHM7CiAJICBmb3IgKHMgPSBwLT5z ZWNvbmQuYmVnaW4oKTsgcyAhPSBwLT5zZWNvbmQuZW5kKCk7ICsrcykKIAkg ICAgewotCSAgICAgIE9iamVjdCogc3JjX29iaiA9IHMtPmZpcnN0OworCSAg ICAgIFJlbG9iaiogc3JjX29iaiA9IHMtPmZpcnN0OwogCSAgICAgIHVuc2ln bmVkIGludCBzcmNfaW5keCA9IHMtPnNlY29uZDsKIAkgICAgICBzeW10YWIt PmdjKCktPmFkZF9yZWZlcmVuY2Uoc3JjX29iaiwgc3JjX2luZHgsCiAJCQkJ CSAgcHBjX29iamVjdCwgZHN0X2luZHgpOwpAQCAtNjM4NCw5ICs2Mzg0LDkg QEAgdGVtcGxhdGU8aW50IHNpemUsIGJvb2wgYmlnX2VuZGlhbj4KIHZvaWQK IFRhcmdldF9wb3dlcnBjPHNpemUsIGJpZ19lbmRpYW4+Ojpkb19nY19hZGRf cmVmZXJlbmNlKAogICAgIFN5bWJvbF90YWJsZSogc3ltdGFiLAotICAgIE9i amVjdCogc3JjX29iaiwKKyAgICBSZWxvYmoqIHNyY19vYmosCiAgICAgdW5z aWduZWQgaW50IHNyY19zaG5keCwKLSAgICBPYmplY3QqIGRzdF9vYmosCisg ICAgUmVsb2JqKiBkc3Rfb2JqLAogICAgIHVuc2lnbmVkIGludCBkc3Rfc2hu ZHgsCiAgICAgQWRkcmVzcyBkc3Rfb2ZmKSBjb25zdAogewpkaWZmIC0tZ2l0 IGEvZ29sZC9zeW10YWIuY2MgYi9nb2xkL3N5bXRhYi5jYwppbmRleCBkMmVk MzUyLi45MjUyOTZhIDEwMDY0NAotLS0gYS9nb2xkL3N5bXRhYi5jYworKysg Yi9nb2xkL3N5bXRhYi5jYwpAQCAtNTg1LDcgKzU4NSw3IEBAIFN5bWJvbF90 YWJsZTo6U3ltYm9sX3RhYmxlX2VxOjpvcGVyYXRvcigpKGNvbnN0IFN5bWJv bF90YWJsZV9rZXkmIGsxLAogfQogCiBib29sCi1TeW1ib2xfdGFibGU6Omlz X3NlY3Rpb25fZm9sZGVkKE9iamVjdCogb2JqLCB1bnNpZ25lZCBpbnQgc2hu ZHgpIGNvbnN0CitTeW1ib2xfdGFibGU6OmlzX3NlY3Rpb25fZm9sZGVkKFJl bG9iaiogb2JqLCB1bnNpZ25lZCBpbnQgc2huZHgpIGNvbnN0CiB7CiAgIHJl dHVybiAocGFyYW1ldGVycy0+b3B0aW9ucygpLmljZl9lbmFibGVkKCkKICAg ICAgICAgICAmJiB0aGlzLT5pY2ZfLT5pc19zZWN0aW9uX2ZvbGRlZChvYmos IHNobmR4KSk7CkBAIC02NTAsMTAgKzY1MCwxMSBAQCBTeW1ib2xfdGFibGU6 OmdjX21hcmtfc3ltYm9sKFN5bWJvbCogc3ltKQogICAvLyBBZGQgdGhlIG9i amVjdCBhbmQgc2VjdGlvbiB0byB0aGUgd29yayBsaXN0LgogICBib29sIGlz X29yZGluYXJ5OwogICB1bnNpZ25lZCBpbnQgc2huZHggPSBzeW0tPnNobmR4 KCZpc19vcmRpbmFyeSk7Ci0gIGlmIChpc19vcmRpbmFyeSAmJiBzaG5keCAh PSBlbGZjcHA6OlNITl9VTkRFRikKKyAgaWYgKGlzX29yZGluYXJ5ICYmIHNo bmR4ICE9IGVsZmNwcDo6U0hOX1VOREVGICYmICFzeW0tPm9iamVjdCgpLT5p c19keW5hbWljKCkpCiAgICAgewogICAgICAgZ29sZF9hc3NlcnQodGhpcy0+ Z2NfIT0gTlVMTCk7Ci0gICAgICB0aGlzLT5nY18tPndvcmtsaXN0KCkucHVz aF9iYWNrKFNlY3Rpb25faWQoc3ltLT5vYmplY3QoKSwgc2huZHgpKTsKKyAg ICAgIFJlbG9iaiogcmVsb2JqID0gc3RhdGljX2Nhc3Q8UmVsb2JqKj4oc3lt LT5vYmplY3QoKSk7CisgICAgICB0aGlzLT5nY18tPndvcmtsaXN0KCkucHVz aF9iYWNrKFNlY3Rpb25faWQocmVsb2JqLCBzaG5keCkpOwogICAgIH0KICAg cGFyYW1ldGVycy0+dGFyZ2V0KCkuZ2NfbWFya19zeW1ib2wodGhpcywgc3lt KTsKIH0KZGlmZiAtLWdpdCBhL2dvbGQvc3ltdGFiLmggYi9nb2xkL3N5bXRh Yi5oCmluZGV4IDZmNDdjNWUuLmY2YzBhYzYgMTAwNjQ0Ci0tLSBhL2dvbGQv c3ltdGFiLmgKKysrIGIvZ29sZC9zeW10YWIuaApAQCAtMTM3Miw3ICsxMzcy LDcgQEAgY2xhc3MgU3ltYm9sX3RhYmxlCiAgCiAgIC8vIFJldHVybnMgdHJ1 ZSBpZiBJQ0YgZGV0ZXJtaW5lZCB0aGF0IHRoaXMgaXMgYSBkdXBsaWNhdGUg c2VjdGlvbi4gCiAgIGJvb2wKLSAgaXNfc2VjdGlvbl9mb2xkZWQoT2JqZWN0 KiBvYmosIHVuc2lnbmVkIGludCBzaG5keCkgY29uc3Q7CisgIGlzX3NlY3Rp b25fZm9sZGVkKFJlbG9iaiogb2JqLCB1bnNpZ25lZCBpbnQgc2huZHgpIGNv bnN0OwogCiAgIHZvaWQKICAgc2V0X2djKEdhcmJhZ2VfY29sbGVjdGlvbiog Z2MpCmRpZmYgLS1naXQgYS9nb2xkL3RhcmdldC5oIGIvZ29sZC90YXJnZXQu aAppbmRleCA5NWJjNTdlLi5kZmJjNWVlIDEwMDY0NAotLS0gYS9nb2xkL3Rh cmdldC5oCisrKyBiL2dvbGQvdGFyZ2V0LmgKQEAgLTEwNTYsOSArMTA1Niw5 IEBAIGNsYXNzIFNpemVkX3RhcmdldCA6IHB1YmxpYyBUYXJnZXQKICAgLy8g YW5kIERTVF9PRkYuCiAgIHZvaWQKICAgZ2NfYWRkX3JlZmVyZW5jZShTeW1i b2xfdGFibGUqIHN5bXRhYiwKLQkJICAgT2JqZWN0KiBzcmNfb2JqLAorCQkg ICBSZWxvYmoqIHNyY19vYmosCiAJCSAgIHVuc2lnbmVkIGludCBzcmNfc2hu ZHgsCi0JCSAgIE9iamVjdCogZHN0X29iaiwKKwkJICAgUmVsb2JqKiBkc3Rf b2JqLAogCQkgICB1bnNpZ25lZCBpbnQgZHN0X3NobmR4LAogCQkgICB0eXBl bmFtZSBlbGZjcHA6OkVsZl90eXBlczxzaXplPjo6RWxmX0FkZHIgZHN0X29m ZikgY29uc3QKICAgewpAQCAtMTA4MCw4ICsxMDgwLDggQEAgY2xhc3MgU2l6 ZWRfdGFyZ2V0IDogcHVibGljIFRhcmdldAogCiAgIC8vIEhhbmRsZSB0YXJn ZXQgc3BlY2lmaWMgZ2MgYWN0aW9ucyB3aGVuIGFkZGluZyBhIGdjIHJlZmVy ZW5jZS4KICAgdmlydHVhbCB2b2lkCi0gIGRvX2djX2FkZF9yZWZlcmVuY2Uo U3ltYm9sX3RhYmxlKiwgT2JqZWN0KiwgdW5zaWduZWQgaW50LAotCQkgICAg ICBPYmplY3QqLCB1bnNpZ25lZCBpbnQsCisgIGRvX2djX2FkZF9yZWZlcmVu Y2UoU3ltYm9sX3RhYmxlKiwgUmVsb2JqKiwgdW5zaWduZWQgaW50LAorCQkg ICAgICBSZWxvYmoqLCB1bnNpZ25lZCBpbnQsCiAJCSAgICAgIHR5cGVuYW1l IGVsZmNwcDo6RWxmX3R5cGVzPHNpemU+OjpFbGZfQWRkcikgY29uc3QKICAg eyB9CiAK --001a11c0547c79777005151b44e3--