From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by sourceware.org (Postfix) with ESMTPS id 494A13858288 for ; Wed, 2 Aug 2023 10:34:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 494A13858288 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 750A421A5E for ; Wed, 2 Aug 2023 10:34:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1690972492; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=79RFbOTAbI09VRI925Fn+tcu/6pyVgvcCPa8YqDJw+c=; b=Ue9a8lNx0C0yJny+8TdKFUNkks7CHk2jGT+AiA427f+WQo7GBHIbkzDwDI6twJq2QDyJFk sO8PISBTsJLSA/fQy9VjMiT7tQW+gXfPmP3YSKIqoY51OC8WTp1oVxMn31JesORZysDAWj riCWrb7MqmRlAqd+gxPUTk5f+q4PXwk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1690972492; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=79RFbOTAbI09VRI925Fn+tcu/6pyVgvcCPa8YqDJw+c=; b=6r5Um49b7MiY7p5/9ohaTJ9nthUmkuvLBeQ0MZzCT6eQysCiQkOcxOKMt6x3zMzBwllnxf u7ySpSr1iFsEnpCw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 6068413919 for ; Wed, 2 Aug 2023 10:34:52 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id PUBjFkwxymTMCgAAMHmgww (envelope-from ) for ; Wed, 02 Aug 2023 10:34:52 +0000 Message-ID: <64e7a174-08fd-9ff3-d652-fc8324d9129d@suse.de> Date: Wed, 2 Aug 2023 12:34:33 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC 0/3] [gdb/symtab] Fix data-races in gdb.base/index-cache.exp Content-Language: en-US To: gdb-patches@sourceware.org References: <20230728085645.3746-1-tdevries@suse.de> From: Tom de Vries In-Reply-To: <20230728085645.3746-1-tdevries@suse.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,WEIRD_PORT autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: T24gNy8yOC8yMyAxMDo1NiwgVG9tIGRlIFZyaWVzIHZpYSBHZGItcGF0Y2hlcyB3cm90ZToN Cj4gV2hlbiBidWlsZGluZyBnZGIgd2l0aCAtZnNhbml0aXplPXRocmVhZCwgd2UgcnVuIGlu dG8gYSBkYXRhIHJhY2UgaW4NCj4gZ2RiLmJhc2UvaW5kZXgtY2FjaGUuZXhwLg0KPiANCg0K SSd2ZSBzdWJtaXR0ZWQgYSB2MiBoZXJlICggDQpodHRwczovL3NvdXJjZXdhcmUub3JnL3Bp cGVybWFpbC9nZGItcGF0Y2hlcy8yMDIzLUF1Z3VzdC8yMDEyNzAuaHRtbCApLg0KDQo+IEZp eGluZyB0aGlzIGxlYWRzIHVzIHRvIGFub3RoZXIsIGFuZCBhbm90aGVyLCBzbyB0aGVyZSBh cmUgdGhyZWUgcGF0Y2hlcywgZWFjaA0KPiBmaXhpbmcgYSBkYXRhIHJhY2UuDQo+IA0KPiBU aGUgZmlyc3QgdHdvIHBhdGNoZXMgaW1wbGVtZW50IHRoZSBhcHByb2FjaCBtZW50aW9uZWQg aW4gUFIzMDM5MiBjb21tZW50IDI6DQo+IC4uLg0KPiBUaGUgcmVhZGVyIHByb2JhYmx5IHNo b3VsZCBjYXB0dXJlIHRoZSBuZWNlc3NhcmlseSBnbG9iYWxzDQo+IG9uIHRoZSBtYWluIHRo cmVhZCBhbmQgc3Rhc2ggdGhlbSB1bnRpbCB0aGUgaW5kZXggaGFzIGJlZW4NCj4gd3JpdHRl bi4NCj4gLi4uDQo+IA0KPiBUaGUgM3JkIHBhdGNoIGNhbm5vdCBiZSBmaXhlZCB3aXRoIHRo aXMgYXBwcm9hY2gsIHNvIGl0IHVzZXMgdGhlIHN0ZDo6YXRvbWljDQo+IGFwcHJvYWNoOg0K PiAuLi4NCj4gLSAgdW5zaWduZWQgaW50IHF1ZXVlZCA6IDE7DQo+ICsgIHN0ZDo6YXRvbWlj PGJvb2w+IHF1ZXVlZDsNCj4gLi4uDQo+IA0KPiBUaGUgM3JkIHBhdGNoIGlzIHRoZSByZWFz b24gdGhpcyBpcyBhbiBSRkMuDQo+IA0KDQpJbiB2MiBJJ20gbm8gbG9uZ2VyIHVzaW5nIHN0 ZDo6YXRvbWljPGJvb2w+LCBpbnN0ZWFkIEknbSB1c2luZyANCnBhY2tlZDxib29sLCAxPi4N Cg0KPiBJIHNwZW50IHNvbWUgdGltZSBjb252aW5jaW5nIG15c2VsZiB0aGF0IHRoaXMgaXMg bm90IGEgYmVuaWduIGRhdGEgcmFjZS4gIEkNCj4gc3RhcnRlZCB3aXRoIHJlYWRpbmcgWzFd LCBhbmQgZ290IGNvbnZpbmNlZCBieSAiMi41IERpc2pvaW50IGJpdCBtYW5pcHVsYXRpb24i DQo+IGluIFsyXS4gIEFsc28gWzNdIGxvb2tlZCBpbnRlcmVzdGluZywgYnV0IGhhdmVuJ3Qg cmVhZCBpdCBpbiBmdWxsLg0KPiANCj4gQXMgZm9yIGZpeGluZyBpdCwgdGhlIHN0ZDo6YXRv bWljIGFwcHJvYWNoIHdvcmtzLiAgSSBjaGVja2VkIHRoYXQgdGhlIHN0cnVjdA0KPiBzaXpl IGlzIG5vdCBpbmNyZWFzZWQuICBJdCBnaXZlcyBtZSBhbiBhbG1vc3QgY2xlYW4gdGVzdC1z dWl0ZSBydW4gKHN0aWxsDQo+IHJ1bm5pbmcgaW50byBQUjMwNjgwKSwgdGhvdWdoIEknbSBy dW5uaW5nIGludG8gYSBsb3Qgb2YgdGltZW91dHMsIHNvIHRoaW5ncw0KPiBzdGlsbCBtYXkg YmUgaGlkZGVuIHRoZXJlLg0KPiANCg0KSSBub3cgYWxzbyByYW4gb24gYSBmYXN0IHNlcnZl ciB3aXRoIGxvdHMgb2YgbWVtb3J5LCBhbmQgdGhlIHRpbWVvdXRzIGRvIA0Kbm90IGhhcHBl biB0aGVyZS4NCg0KPiBBbHRlcm5hdGl2ZWx5LCBpZiBJIGxpbWl0IHRoZSBmaXggdG86DQo+ IC4uLg0KPiAtICB1bnNpZ25lZCBpbnQgcXVldWVkIDogMTsNCj4gKyAgYm9vbCBxdWV1ZWQ7 DQo+IC4uLg0KPiBJIHJ1biBpbnRvIDE5IG1vcmUgcmVwb3J0ZWQgZGF0YSByYWNlcyBpbiB0 aGUgdGVzdC1jYXNlLiAgTm9uZSBvZiB0aGVtIGxvb2sNCj4gYXMgZXZpZGVuY2UgdGhhdCB0 aGlzIGZpeCBvbiBxdWV1ZWQgaXMgaW5zdWZmaWNpZW50Lg0KPiANCj4gTG9va2luZyBhdCB0 aGUgZmlyc3Qgb25lIChzZWUgYXBwZW5kaXggZm9yIG1vcmUgZGV0YWlsKSwgdGhlcmUncyBh IHJhY2UNCj4gYmV0d2VlbjoNCj4gLSB0aGUgbWFpbiB0aHJlYWQgY2FsbGluZyBmaW5kX21h aW5fbmFtZSwgYmVjYXVzZSBvZiBjYWxsaW5nIG1haW5fbGFuZ3VhZ2UgaW4NCj4gICAgc2V0 X2luaXRpYWxfbGFuZ3VhZ2UsIGFuZA0KPiAtIHRoZSB3b3JrZXIgdGhyZWFkIGNhbGxpbmcg ZmluZF9tYWluX25hbWUsIGJlY2F1c2Ugb2YgY2FsbGluZyBtYWluX25hbWUgaW4NCj4gICAg d3JpdGVfY29va2VkX2luZGV4Lg0KPiBBdCBsZWFzdCAxNCBvdGhlciBvZiB0aGUgMTkgcmVw b3J0ZWQgZGF0YSByYWNlcyBsb29rIGxpa2UgaW5zdGFuY2VzIG9mIHRoZQ0KPiBmaXJzdCBv bmUuDQo+IA0KPiBUaGlzIGxvb2tzIGxpa2UgYSByZWFsIHByb2JsZW0gdG8gbWUsIGJ1dCB3 aXRoIHRoZSBwcm9wb3NlZCBmaXggaXQgbm8gbG9uZ2VyDQo+IHRyaWdnZXJzLCBhbHRob3Vn aCBJIGZhaWwgdG8gc2VlIGhvdyBpdCBmaXhlcyBpdC4NCj4gDQoNCkkgbWFuYWdlZCB0byB0 cmlnZ2VyIGRhdGEgcmFjZXMgYnkgcnVubmluZyB3aXRoIHRhc2tzZXQgLWMgMC4gIEkgZW5k ZWQgDQp1cCBmaXhpbmcgZGF0YSByYWNlcyB1bnRpbCB0aGUgY29tYmluYXRpb24gb2YgbWFr ZS1jaGVjay1hbGwuc2ggYW5kIA0KdGFza3NldCAtYyAwIG5vIGxvbmdlciB0cmlnZ2VyZWQg YW55LiAgSW5kZWVkIG9uZSBvZiB0aGUgcGF0Y2hlcyBpbiB2MiANCmRvZXMgYWRkcmVzcyB0 aGUgZmluZF9tYWluX25hbWUgaXNzdWUuDQoNCj4gV2hpY2ggbGVhdmVzIG1lIHdpdGggdGhl IHF1ZXN0aW9uczoNCj4gLSBpcyB0aGUgc3RkOjphdG9taWMgYXBwcm9hY2ggdG9vIGJsdW50 LCBhbmQgYXJlIHdlIGNvbnNlcXVlbnRseSBoaWRpbmcNCj4gICAgcHJvYmxlbXMsIGFuZA0K PiAtIHNob3VsZCB3ZSBhZGRyZXNzIHRoZSBmaW5kX21haW5fbmFtZSByYWNlIGluIHNvbWUg Zm9ybSBvciBhbm90aGVyLg0KPiANCkkgbm8gbG9uZ2VyIGhhdmUgdGhlc2UgcXVlc3Rpb25z LCBzbyB0aGUgdjIgbm8gbG9uZ2VyIGlzIGFuIFJGQy4NCg0KVGhhbmtzLA0KLSBUb20NCg0K PiBUZXN0ZWQgb24geDg2XzY0LWxpbnV4LCB3aXRoIGFuZCB3aXRob3V0IC1mc2FuaXRpemU9 dGhyZWFkLg0KPiANCj4gUFIgc3ltdGFiLzMwMzkyDQo+IEJ1ZzogaHR0cHM6Ly9zb3VyY2V3 YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzAzOTINCj4gDQo+IFJlZmVyZW5j ZXM6DQo+IFsxXSBodHRwczovL2hhY2tzLm1vemlsbGEub3JnLzIwMjEvMDQvZWxpbWluYXRp bmctZGF0YS1yYWNlcy1pbi1maXJlZm94LWEtdGVjaG5pY2FsLXJlcG9ydC8NCj4gWzJdIGh0 dHBzOi8vd3d3LnVzZW5peC5vcmcvbGVnYWN5L2V2ZW50L2hvdHBhcjExL3RlY2gvZmluYWxf ZmlsZXMvQm9laG0ucGRmDQo+IFszXSBodHRwczovL2JhcnRvc3ptaWxld3NraS5jb20vMjAy MC8wOC8xMS9iZW5pZ24tZGF0YS1yYWNlcy1jb25zaWRlcmVkLWhhcm1mdWwvDQo+IA0KPiBB cHBlbmRpeDoNCj4gLi4uDQo+IChnZGIpIGZpbGUgYnVpbGQvZ2RiL3Rlc3RzdWl0ZS9vdXRw dXRzL2dkYi5iYXNlL2luZGV4LWNhY2hlL2luZGV4LWNhY2hlDQo+IFJlYWRpbmcgc3ltYm9s cyBmcm9tIGJ1aWxkL2dkYi90ZXN0c3VpdGUvb3V0cHV0cy9nZGIuYmFzZS9pbmRleC1jYWNo ZS9pbmRleC1jYWNoZS4uLg0KPiA9PT09PT09PT09PT09PT09PT0NCj4gV0FSTklORzogVGhy ZWFkU2FuaXRpemVyOiBkYXRhIHJhY2UgKHBpZD0xNTY5KQ0KPiAgICBSZWFkIG9mIHNpemUg MSBhdCAweDdiNDQwMDA5N2QwOCBieSB0aHJlYWQgVDEyOg0KPiAgICAgICMwIGJmZF9nZXRf c2VjdGlvbl9saW1pdF9vY3RldHMgYmZkLmg6MjM3NiAoZ2RiKzB4MTQ5YjYxMykNCj4gICAg ICAjMSBiZmRfZ2V0X3NlY3Rpb25fY29udGVudHMgYmZkL3NlY3Rpb24uYzoxNTcxIChnZGIr MHgxNDljYmU0KQ0KPiAgICAgICMyIGdkYl9iZmRfc2Nhbl9lbGZfZHludGFnKGludCwgYmZk KiwgdW5zaWduZWQgbG9uZyosIHVuc2lnbmVkIGxvbmcqKSBnZGIvc29saWIuYzoxNjAxIChn ZGIrMHhlZDhmYzgpDQo+ICAgICAgIzMgZWxmX2xvY2F0ZV9iYXNlIGdkYi9zb2xpYi1zdnI0 LmM6NzA1IChnZGIrMHhlYzI5YWEpDQo+ICAgICAgIzQgc3ZyNF9pdGVyYXRlX292ZXJfb2Jq ZmlsZXNfaW5fc2VhcmNoX29yZGVyIGdkYi9zb2xpYi1zdnI0LmM6MzQzMCAoZ2RiKzB4ZWNh NjViKQ0KPiAgICAgICM1IGdkYmFyY2hfaXRlcmF0ZV9vdmVyX29iamZpbGVzX2luX3NlYXJj aF9vcmRlcihnZGJhcmNoKiwgZ2RiOjpmdW5jdGlvbl92aWV3PGJvb2wgKG9iamZpbGUqKT4s IG9iamZpbGUqKSBnZGIvZ2RiYXJjaC5jOjUwNDEgKGdkYisweDUzN2NhZCkNCj4gICAgICAj NiBmaW5kX21haW5fbmFtZSBnZGIvc3ltdGFiLmM6NjI3MCAoZ2RiKzB4Zjc0NGEzKQ0KPiAg ICAgICM3IG1haW5fbmFtZSgpIGdkYi9zeW10YWIuYzo2Mjk5IChnZGIrMHhmNzQ1MzEpDQo+ ICAgICAgIzggd3JpdGVfY29va2VkX2luZGV4IGdkYi9kd2FyZjIvaW5kZXgtd3JpdGUuYzox MTMxIChnZGIrMHg4MzBhZjQpDQo+ICAgICAgIzkgd3JpdGVfZ2RiaW5kZXggZ2RiL2R3YXJm Mi9pbmRleC13cml0ZS5jOjEyNTYgKGdkYisweDgzMTM0YikNCj4gICAgICAjMTAgd3JpdGVf ZHdhcmZfaW5kZXgoZHdhcmYyX3Blcl9iZmQqLCBjaGFyIGNvbnN0KiwgY2hhciBjb25zdCos IGNoYXIgY29uc3QqLCBkd19pbmRleF9raW5kKSBnZGIvZHdhcmYyL2luZGV4LXdyaXRlLmM6 MTQ4NCAoZ2RiKzB4ODMyMzJmKQ0KPiAgICAgICMxMSBpbmRleF9jYWNoZTo6c3RvcmUoZHdh cmYyX3Blcl9iZmQqLCBpbmRleF9jYWNoZV9zdG9yZV9jb250ZXh0KikgZ2RiL2R3YXJmMi9p bmRleC1jYWNoZS5jOjE3NyAoZ2RiKzB4ODJkNjJiKQ0KPiAgICAgICMxMiBjb29rZWRfaW5k ZXg6Om1heWJlX3dyaXRlX2luZGV4KGR3YXJmMl9wZXJfYmZkKikgZ2RiL2R3YXJmMi9jb29r ZWQtaW5kZXguYzo2NDAgKGdkYisweDdmMWJmNykNCj4gICAgICAjMTMgb3BlcmF0b3IoKSBn ZGIvZHdhcmYyL2Nvb2tlZC1pbmRleC5jOjQ3MCAoZ2RiKzB4N2YwZjQwKQ0KPiAgICAgICMx NCBfTV9pbnZva2UgL3Vzci9pbmNsdWRlL2MrKy83L2JpdHMvc3RkX2Z1bmN0aW9uLmg6MzE2 IChnZGIrMHg3ZjI5MDkpDQo+ICAgICAgIzE1IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT46Om9w ZXJhdG9yKCkoKSBjb25zdCAvdXNyL2luY2x1ZGUvYysrLzcvYml0cy9zdGRfZnVuY3Rpb24u aDo3MDYgKGdkYisweDcwMDk1MikNCj4gICAgICAjMTYgdm9pZCBzdGQ6Ol9faW52b2tlX2lt cGw8dm9pZCwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiY+KHN0ZDo6X19pbnZva2Vfb3RoZXIs IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4mKSAvdXNyL2luY2x1ZGUvYysrLzcvYml0cy9pbnZv a2UuaDo2MCAoZ2RiKzB4NzM4MWEwKQ0KPiAgICAgICMxNyBzdGQ6Ol9faW52b2tlX3Jlc3Vs dDxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+Jj46OnR5cGUgc3RkOjpfX2ludm9rZTxzdGQ6OmZ1 bmN0aW9uPHZvaWQgKCk+Jj4oc3RkOjpmdW5jdGlvbjx2b2lkICgpPiYpIC91c3IvaW5jbHVk ZS9jKysvNy9iaXRzL2ludm9rZS5oOjk1IChnZGIrMHg3MzdlOTEpDQo+ICAgICAgIzE4IHN0 ZDo6X19mdXR1cmVfYmFzZTo6X1Rhc2tfc3RhdGU8c3RkOjpmdW5jdGlvbjx2b2lkICgpPiwg c3RkOjphbGxvY2F0b3I8aW50Piwgdm9pZCAoKT46Ol9NX3J1bigpOjp7bGFtYmRhKCkjMX06 Om9wZXJhdG9yKCkoKSBjb25zdCAvdXNyL2luY2x1ZGUvYysrLzcvZnV0dXJlOjE0MjEgKGdk YisweDczN2I1OSkNCj4gICAgICAjMTkgc3RkOjpfX2Z1dHVyZV9iYXNlOjpfVGFza19zZXR0 ZXI8c3RkOjp1bmlxdWVfcHRyPHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdDx2b2lkPiwg c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2U6Ol9EZWxldGVyPiwgc3RkOjpfX2Z1 dHVyZV9iYXNlOjpfVGFza19zdGF0ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+LCBzdGQ6OmFs bG9jYXRvcjxpbnQ+LCB2b2lkICgpPjo6X01fcnVuKCk6OntsYW1iZGEoKSMxfSwgdm9pZD46 Om9wZXJhdG9yKCkoKSBjb25zdCAvdXNyL2luY2x1ZGUvYysrLzcvZnV0dXJlOjEzNjIgKGdk YisweDczODY2MCkNCj4gICAgICAjMjAgc3RkOjpfRnVuY3Rpb25faGFuZGxlcjxzdGQ6OnVu aXF1ZV9wdHI8c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2UsIHN0ZDo6X19mdXR1 cmVfYmFzZTo6X1Jlc3VsdF9iYXNlOjpfRGVsZXRlcj4gKCksIHN0ZDo6X19mdXR1cmVfYmFz ZTo6X1Rhc2tfc2V0dGVyPHN0ZDo6dW5pcXVlX3B0cjxzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9S ZXN1bHQ8dm9pZD4sIHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9iYXNlOjpfRGVsZXRl cj4sIHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Rhc2tfc3RhdGU8c3RkOjpmdW5jdGlvbjx2b2lk ICgpPiwgc3RkOjphbGxvY2F0b3I8aW50Piwgdm9pZCAoKT46Ol9NX3J1bigpOjp7bGFtYmRh KCkjMX0sIHZvaWQ+ID46Ol9NX2ludm9rZShzdGQ6Ol9BbnlfZGF0YSBjb25zdCYpIC91c3Iv aW5jbHVkZS9jKysvNy9iaXRzL3N0ZF9mdW5jdGlvbi5oOjMwMiAoZ2RiKzB4NzM4MjVjKQ0K PiAgICAgICMyMSBzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxzdGQ6Ol9fZnV0dXJl X2Jhc2U6Ol9SZXN1bHRfYmFzZSwgc3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2U6 Ol9EZWxldGVyPiAoKT46Om9wZXJhdG9yKCkoKSBjb25zdCAvdXNyL2luY2x1ZGUvYysrLzcv Yml0cy9zdGRfZnVuY3Rpb24uaDo3MDYgKGdkYisweDczMzYyMykNCj4gICAgICAjMjIgc3Rk OjpfX2Z1dHVyZV9iYXNlOjpfU3RhdGVfYmFzZVYyOjpfTV9kb19zZXQoc3RkOjpmdW5jdGlv bjxzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2UsIHN0 ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9iYXNlOjpfRGVsZXRlcj4gKCk+KiwgYm9vbCop IC91c3IvaW5jbHVkZS9jKysvNy9mdXR1cmU6NTYxIChnZGIrMHg3MzJiZGYpDQo+ICAgICAg IzIzIHZvaWQgc3RkOjpfX2ludm9rZV9pbXBsPHZvaWQsIHZvaWQgKHN0ZDo6X19mdXR1cmVf YmFzZTo6X1N0YXRlX2Jhc2VWMjo6Kikoc3RkOjpmdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8 c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2UsIHN0ZDo6X19mdXR1cmVfYmFzZTo6 X1Jlc3VsdF9iYXNlOjpfRGVsZXRlcj4gKCk+KiwgYm9vbCopLCBzdGQ6Ol9fZnV0dXJlX2Jh c2U6Ol9TdGF0ZV9iYXNlVjIqLCBzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxzdGQ6 Ol9fZnV0dXJlX2Jhc2U6Ol9SZXN1bHRfYmFzZSwgc3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVz dWx0X2Jhc2U6Ol9EZWxldGVyPiAoKT4qLCBib29sKj4oc3RkOjpfX2ludm9rZV9tZW1mdW5f ZGVyZWYsIHZvaWQgKHN0ZDo6X19mdXR1cmVfYmFzZTo6X1N0YXRlX2Jhc2VWMjo6KiYmKShz dGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9SZXN1 bHRfYmFzZSwgc3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2U6Ol9EZWxldGVyPiAo KT4qLCBib29sKiksIHN0ZDo6X19mdXR1cmVfYmFzZTo6X1N0YXRlX2Jhc2VWMiomJiwgc3Rk OjpmdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0 X2Jhc2UsIHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9iYXNlOjpfRGVsZXRlcj4gKCk+ KiYmLCBib29sKiYmKSAvdXNyL2luY2x1ZGUvYysrLzcvYml0cy9pbnZva2UuaDo3MyAoZ2Ri KzB4NzM0YzRmKQ0KPiAgICAgICMyNCBzdGQ6Ol9faW52b2tlX3Jlc3VsdDx2b2lkIChzdGQ6 Ol9fZnV0dXJlX2Jhc2U6Ol9TdGF0ZV9iYXNlVjI6OiopKHN0ZDo6ZnVuY3Rpb248c3RkOjp1 bmlxdWVfcHRyPHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9iYXNlLCBzdGQ6Ol9fZnV0 dXJlX2Jhc2U6Ol9SZXN1bHRfYmFzZTo6X0RlbGV0ZXI+ICgpPiosIGJvb2wqKSwgc3RkOjpf X2Z1dHVyZV9iYXNlOjpfU3RhdGVfYmFzZVYyKiwgc3RkOjpmdW5jdGlvbjxzdGQ6OnVuaXF1 ZV9wdHI8c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2UsIHN0ZDo6X19mdXR1cmVf YmFzZTo6X1Jlc3VsdF9iYXNlOjpfRGVsZXRlcj4gKCk+KiwgYm9vbCo+Ojp0eXBlIHN0ZDo6 X19pbnZva2U8dm9pZCAoc3RkOjpfX2Z1dHVyZV9iYXNlOjpfU3RhdGVfYmFzZVYyOjoqKShz dGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9SZXN1 bHRfYmFzZSwgc3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2U6Ol9EZWxldGVyPiAo KT4qLCBib29sKiksIHN0ZDo6X19mdXR1cmVfYmFzZTo6X1N0YXRlX2Jhc2VWMiosIHN0ZDo6 ZnVuY3Rpb248c3RkOjp1bmlxdWVfcHRyPHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9i YXNlLCBzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9SZXN1bHRfYmFzZTo6X0RlbGV0ZXI+ICgpPios IGJvb2wqPih2b2lkIChzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9TdGF0ZV9iYXNlVjI6OiomJiko c3RkOjpmdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVz dWx0X2Jhc2UsIHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9iYXNlOjpfRGVsZXRlcj4g KCk+KiwgYm9vbCopLCBzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9TdGF0ZV9iYXNlVjIqJiYsIHN0 ZDo6ZnVuY3Rpb248c3RkOjp1bmlxdWVfcHRyPHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3Vs dF9iYXNlLCBzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9SZXN1bHRfYmFzZTo6X0RlbGV0ZXI+ICgp PiomJiwgYm9vbComJikgL3Vzci9pbmNsdWRlL2MrKy83L2JpdHMvaW52b2tlLmg6OTUgKGdk YisweDczM2JjNSkNCj4gICAgICAjMjUgc3RkOjpjYWxsX29uY2U8dm9pZCAoc3RkOjpfX2Z1 dHVyZV9iYXNlOjpfU3RhdGVfYmFzZVYyOjoqKShzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVl X3B0cjxzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9SZXN1bHRfYmFzZSwgc3RkOjpfX2Z1dHVyZV9i YXNlOjpfUmVzdWx0X2Jhc2U6Ol9EZWxldGVyPiAoKT4qLCBib29sKiksIHN0ZDo6X19mdXR1 cmVfYmFzZTo6X1N0YXRlX2Jhc2VWMiosIHN0ZDo6ZnVuY3Rpb248c3RkOjp1bmlxdWVfcHRy PHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9iYXNlLCBzdGQ6Ol9fZnV0dXJlX2Jhc2U6 Ol9SZXN1bHRfYmFzZTo6X0RlbGV0ZXI+ICgpPiosIGJvb2wqPihzdGQ6Om9uY2VfZmxhZyYs IHZvaWQgKHN0ZDo6X19mdXR1cmVfYmFzZTo6X1N0YXRlX2Jhc2VWMjo6KiYmKShzdGQ6OmZ1 bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9SZXN1bHRfYmFz ZSwgc3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2U6Ol9EZWxldGVyPiAoKT4qLCBi b29sKiksIHN0ZDo6X19mdXR1cmVfYmFzZTo6X1N0YXRlX2Jhc2VWMiomJiwgc3RkOjpmdW5j dGlvbjxzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2Us IHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9iYXNlOjpfRGVsZXRlcj4gKCk+KiYmLCBi b29sKiYmKTo6e2xhbWJkYSgpIzF9OjpvcGVyYXRvcigpKCkgY29uc3QgL3Vzci9pbmNsdWRl L2MrKy83L211dGV4OjY3MiAoZ2RiKzB4NzMzMDBkKQ0KPiAgICAgICMyNiBzdGQ6OmNhbGxf b25jZTx2b2lkIChzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9TdGF0ZV9iYXNlVjI6OiopKHN0ZDo6 ZnVuY3Rpb248c3RkOjp1bmlxdWVfcHRyPHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9i YXNlLCBzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9SZXN1bHRfYmFzZTo6X0RlbGV0ZXI+ICgpPios IGJvb2wqKSwgc3RkOjpfX2Z1dHVyZV9iYXNlOjpfU3RhdGVfYmFzZVYyKiwgc3RkOjpmdW5j dGlvbjxzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2Us IHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9iYXNlOjpfRGVsZXRlcj4gKCk+KiwgYm9v bCo+KHN0ZDo6b25jZV9mbGFnJiwgdm9pZCAoc3RkOjpfX2Z1dHVyZV9iYXNlOjpfU3RhdGVf YmFzZVYyOjoqJiYpKHN0ZDo6ZnVuY3Rpb248c3RkOjp1bmlxdWVfcHRyPHN0ZDo6X19mdXR1 cmVfYmFzZTo6X1Jlc3VsdF9iYXNlLCBzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9SZXN1bHRfYmFz ZTo6X0RlbGV0ZXI+ICgpPiosIGJvb2wqKSwgc3RkOjpfX2Z1dHVyZV9iYXNlOjpfU3RhdGVf YmFzZVYyKiYmLCBzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxzdGQ6Ol9fZnV0dXJl X2Jhc2U6Ol9SZXN1bHRfYmFzZSwgc3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2U6 Ol9EZWxldGVyPiAoKT4qJiYsIGJvb2wqJiYpOjp7bGFtYmRhKCkjMn06Om9wZXJhdG9yKCko KSBjb25zdCAvdXNyL2luY2x1ZGUvYysrLzcvbXV0ZXg6Njc3IChnZGIrMHg3MzMwYjIpDQo+ ICAgICAgIzI3IHN0ZDo6Y2FsbF9vbmNlPHZvaWQgKHN0ZDo6X19mdXR1cmVfYmFzZTo6X1N0 YXRlX2Jhc2VWMjo6Kikoc3RkOjpmdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpfX2Z1 dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2UsIHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9i YXNlOjpfRGVsZXRlcj4gKCk+KiwgYm9vbCopLCBzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9TdGF0 ZV9iYXNlVjIqLCBzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxzdGQ6Ol9fZnV0dXJl X2Jhc2U6Ol9SZXN1bHRfYmFzZSwgc3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2U6 Ol9EZWxldGVyPiAoKT4qLCBib29sKj4oc3RkOjpvbmNlX2ZsYWcmLCB2b2lkIChzdGQ6Ol9f ZnV0dXJlX2Jhc2U6Ol9TdGF0ZV9iYXNlVjI6OiomJikoc3RkOjpmdW5jdGlvbjxzdGQ6OnVu aXF1ZV9wdHI8c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2UsIHN0ZDo6X19mdXR1 cmVfYmFzZTo6X1Jlc3VsdF9iYXNlOjpfRGVsZXRlcj4gKCk+KiwgYm9vbCopLCBzdGQ6Ol9f ZnV0dXJlX2Jhc2U6Ol9TdGF0ZV9iYXNlVjIqJiYsIHN0ZDo6ZnVuY3Rpb248c3RkOjp1bmlx dWVfcHRyPHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9iYXNlLCBzdGQ6Ol9fZnV0dXJl X2Jhc2U6Ol9SZXN1bHRfYmFzZTo6X0RlbGV0ZXI+ICgpPiomJiwgYm9vbComJik6OntsYW1i ZGEoKSMyfTo6X0ZVTigpIC91c3IvaW5jbHVkZS9jKysvNy9tdXRleDo2NzcgKGdkYisweDcz MzBmMikNCj4gICAgICAjMjggcHRocmVhZF9vbmNlIDxudWxsPiAobGlidHNhbi5zby4wKzB4 NDQ1N2MpDQo+ICAgICAgIzI5IF9fZ3RocmVhZF9vbmNlIC91c3IvaW5jbHVkZS9jKysvNy94 ODZfNjQtc3VzZS1saW51eC9iaXRzL2d0aHItZGVmYXVsdC5oOjY5OSAoZ2RiKzB4NzJmNWRk KQ0KPiAgICAgICMzMCB2b2lkIHN0ZDo6Y2FsbF9vbmNlPHZvaWQgKHN0ZDo6X19mdXR1cmVf YmFzZTo6X1N0YXRlX2Jhc2VWMjo6Kikoc3RkOjpmdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8 c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2UsIHN0ZDo6X19mdXR1cmVfYmFzZTo6 X1Jlc3VsdF9iYXNlOjpfRGVsZXRlcj4gKCk+KiwgYm9vbCopLCBzdGQ6Ol9fZnV0dXJlX2Jh c2U6Ol9TdGF0ZV9iYXNlVjIqLCBzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxzdGQ6 Ol9fZnV0dXJlX2Jhc2U6Ol9SZXN1bHRfYmFzZSwgc3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVz dWx0X2Jhc2U6Ol9EZWxldGVyPiAoKT4qLCBib29sKj4oc3RkOjpvbmNlX2ZsYWcmLCB2b2lk IChzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9TdGF0ZV9iYXNlVjI6OiomJikoc3RkOjpmdW5jdGlv bjxzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVzdWx0X2Jhc2UsIHN0 ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9iYXNlOjpfRGVsZXRlcj4gKCk+KiwgYm9vbCop LCBzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9TdGF0ZV9iYXNlVjIqJiYsIHN0ZDo6ZnVuY3Rpb248 c3RkOjp1bmlxdWVfcHRyPHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9iYXNlLCBzdGQ6 Ol9fZnV0dXJlX2Jhc2U6Ol9SZXN1bHRfYmFzZTo6X0RlbGV0ZXI+ICgpPiomJiwgYm9vbCom JikgL3Vzci9pbmNsdWRlL2MrKy83L211dGV4OjY4NCAoZ2RiKzB4NzMzMjI0KQ0KPiAgICAg ICMzMSBzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9TdGF0ZV9iYXNlVjI6Ol9NX3NldF9yZXN1bHQo c3RkOjpmdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpfX2Z1dHVyZV9iYXNlOjpfUmVz dWx0X2Jhc2UsIHN0ZDo6X19mdXR1cmVfYmFzZTo6X1Jlc3VsdF9iYXNlOjpfRGVsZXRlcj4g KCk+LCBib29sKSAvdXNyL2luY2x1ZGUvYysrLzcvZnV0dXJlOjQwMSAoZ2RiKzB4NzMyODUy KQ0KPiAgICAgICMzMiBzdGQ6Ol9fZnV0dXJlX2Jhc2U6Ol9UYXNrX3N0YXRlPHN0ZDo6ZnVu Y3Rpb248dm9pZCAoKT4sIHN0ZDo6YWxsb2NhdG9yPGludD4sIHZvaWQgKCk+OjpfTV9ydW4o KSAvdXNyL2luY2x1ZGUvYysrLzcvZnV0dXJlOjE0MjMgKGdkYisweDczN2JlZikNCj4gICAg ICAjMzMgc3RkOjpwYWNrYWdlZF90YXNrPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkgL3Vzci9p bmNsdWRlL2MrKy83L2Z1dHVyZToxNTU2IChnZGIrMHgxZGFjYTFjKQ0KPiAgICAgICMzNCBn ZGI6OnRocmVhZF9wb29sOjp0aHJlYWRfZnVuY3Rpb24oKSBnZGJzdXBwb3J0L3RocmVhZC1w b29sLmNjOjI0MiAoZ2RiKzB4MWRhYzMzZSkNCj4gICAgICAjMzUgdm9pZCBzdGQ6Ol9faW52 b2tlX2ltcGw8dm9pZCwgdm9pZCAoZ2RiOjp0aHJlYWRfcG9vbDo6KikoKSwgZ2RiOjp0aHJl YWRfcG9vbCo+KHN0ZDo6X19pbnZva2VfbWVtZnVuX2RlcmVmLCB2b2lkIChnZGI6OnRocmVh ZF9wb29sOjoqJiYpKCksIGdkYjo6dGhyZWFkX3Bvb2wqJiYpIC91c3IvaW5jbHVkZS9jKysv Ny9iaXRzL2ludm9rZS5oOjczIChnZGIrMHgxZGFkM2VkKQ0KPiAgICAgICMzNiBzdGQ6Ol9f aW52b2tlX3Jlc3VsdDx2b2lkIChnZGI6OnRocmVhZF9wb29sOjoqKSgpLCBnZGI6OnRocmVh ZF9wb29sKj46OnR5cGUgc3RkOjpfX2ludm9rZTx2b2lkIChnZGI6OnRocmVhZF9wb29sOjoq KSgpLCBnZGI6OnRocmVhZF9wb29sKj4odm9pZCAoZ2RiOjp0aHJlYWRfcG9vbDo6KiYmKSgp LCBnZGI6OnRocmVhZF9wb29sKiYmKSAvdXNyL2luY2x1ZGUvYysrLzcvYml0cy9pbnZva2Uu aDo5NSAoZ2RiKzB4MWRhYzgxZSkNCj4gICAgICAjMzcgZGVjbHR5cGUgKF9faW52b2tlKChf U19kZWNsdmFsPDB1bD4pKCksIChfU19kZWNsdmFsPDF1bD4pKCkpKSBzdGQ6OnRocmVhZDo6 X0ludm9rZXI8c3RkOjp0dXBsZTx2b2lkIChnZGI6OnRocmVhZF9wb29sOjoqKSgpLCBnZGI6 OnRocmVhZF9wb29sKj4gPjo6X01faW52b2tlPDB1bCwgMXVsPihzdGQ6Ol9JbmRleF90dXBs ZTwwdWwsIDF1bD4pIC91c3IvaW5jbHVkZS9jKysvNy90aHJlYWQ6MjM0IChnZGIrMHgxZGFm YjUwKQ0KPiAgICAgICMzOCBzdGQ6OnRocmVhZDo6X0ludm9rZXI8c3RkOjp0dXBsZTx2b2lk IChnZGI6OnRocmVhZF9wb29sOjoqKSgpLCBnZGI6OnRocmVhZF9wb29sKj4gPjo6b3BlcmF0 b3IoKSgpIC91c3IvaW5jbHVkZS9jKysvNy90aHJlYWQ6MjQzIChnZGIrMHgxZGFmYWRiKQ0K PiAgICAgICMzOSBzdGQ6OnRocmVhZDo6X1N0YXRlX2ltcGw8c3RkOjp0aHJlYWQ6Ol9JbnZv a2VyPHN0ZDo6dHVwbGU8dm9pZCAoZ2RiOjp0aHJlYWRfcG9vbDo6KikoKSwgZ2RiOjp0aHJl YWRfcG9vbCo+ID4gPjo6X01fcnVuKCkgL3Vzci9pbmNsdWRlL2MrKy83L3RocmVhZDoxODYg KGdkYisweDFkYWZhOTApDQo+ICAgICAgIzQwIDxudWxsPiA8bnVsbD4gKGxpYnN0ZGMrKy5z by42KzB4ZGNhYzIpDQo+IA0KPiAgICBQcmV2aW91cyB3cml0ZSBvZiBzaXplIDQgYXQgMHg3 YjQ0MDAwOTdkMDggYnkgbWFpbiB0aHJlYWQ6DQo+ICAgICAgIzAgYmZkX29wZW5fZmlsZSBi ZmQvY2FjaGUuYzo1ODQgKGdkYisweDE0OGJjOTApDQo+ICAgICAgIzEgYmZkX2NhY2hlX2xv b2t1cF93b3JrZXIgYmZkL2NhY2hlLmM6MjYxIChnZGIrMHgxNDhiMjI4KQ0KPiAgICAgICMy IGNhY2hlX2JzZWVrIGJmZC9jYWNoZS5jOjI4OSAoZ2RiKzB4MTQ4YjQyMikNCj4gICAgICAj MyBiZmRfc2VlayBiZmQvYmZkaW8uYzo0NTkgKGdkYisweDE0ODlkMmYpDQo+ICAgICAgIzQg X2JmZF9nZW5lcmljX2dldF9zZWN0aW9uX2NvbnRlbnRzIGJmZC9saWJiZmQuYzoxMDY5IChn ZGIrMHgxNDk3OGEyKQ0KPiAgICAgICM1IGJmZF9nZXRfc2VjdGlvbl9jb250ZW50cyBiZmQv c2VjdGlvbi5jOjE2MDYgKGdkYisweDE0OWNkN2EpDQo+ICAgICAgIzYgZ2RiX2JmZF9zY2Fu X2VsZl9keW50YWcoaW50LCBiZmQqLCB1bnNpZ25lZCBsb25nKiwgdW5zaWduZWQgbG9uZyop IGdkYi9zb2xpYi5jOjE2MDEgKGdkYisweGVkOGZjOCkNCj4gICAgICAjNyBlbGZfbG9jYXRl X2Jhc2UgZ2RiL3NvbGliLXN2cjQuYzo3MDUgKGdkYisweGVjMjlhYSkNCj4gICAgICAjOCBz dnI0X2l0ZXJhdGVfb3Zlcl9vYmpmaWxlc19pbl9zZWFyY2hfb3JkZXIgZ2RiL3NvbGliLXN2 cjQuYzozNDMwIChnZGIrMHhlY2E2NWIpDQo+ICAgICAgIzkgZ2RiYXJjaF9pdGVyYXRlX292 ZXJfb2JqZmlsZXNfaW5fc2VhcmNoX29yZGVyKGdkYmFyY2gqLCBnZGI6OmZ1bmN0aW9uX3Zp ZXc8Ym9vbCAob2JqZmlsZSopPiwgb2JqZmlsZSopIGdkYi9nZGJhcmNoLmM6NTA0MSAoZ2Ri KzB4NTM3Y2FkKQ0KPiAgICAgICMxMCBmaW5kX21haW5fbmFtZSBnZGIvc3ltdGFiLmM6NjI3 MCAoZ2RiKzB4Zjc0NGEzKQ0KPiAgICAgICMxMSBtYWluX2xhbmd1YWdlKCkgZ2RiL3N5bXRh Yi5jOjYzMTMgKGdkYisweGY3NDU5NykNCj4gICAgICAjMTIgc2V0X2luaXRpYWxfbGFuZ3Vh Z2UoKSBnZGIvc3ltZmlsZS5jOjE3MDAgKGdkYisweGY0Mjk1YSkNCj4gICAgICAjMTMgc3lt Ym9sX2ZpbGVfYWRkX21haW5fMSBnZGIvc3ltZmlsZS5jOjEyMTIgKGdkYisweGY0MGYyOCkN Cj4gICAgICAjMTQgc3ltYm9sX2ZpbGVfY29tbWFuZChjaGFyIGNvbnN0KiwgaW50KSBnZGIv c3ltZmlsZS5jOjE2ODEgKGdkYisweGY0MjhjZikNCj4gICAgICAjMTUgZmlsZV9jb21tYW5k IGdkYi9leGVjLmM6NTU0IChnZGIrMHg5NGY4NDkpDQo+ICAgICAgIzE2IGRvX3NpbXBsZV9m dW5jIGdkYi9jbGkvY2xpLWRlY29kZS5jOjk1IChnZGIrMHg2ZDk1MjgpDQo+ICAgICAgIzE3 IGNtZF9mdW5jKGNtZF9saXN0X2VsZW1lbnQqLCBjaGFyIGNvbnN0KiwgaW50KSBnZGIvY2xp L2NsaS1kZWNvZGUuYzoyNzM1IChnZGIrMHg2ZTBmNjkpDQo+ICAgICAgIzE4IGV4ZWN1dGVf Y29tbWFuZChjaGFyIGNvbnN0KiwgaW50KSBnZGIvdG9wLmM6NTc1IChnZGIrMHhmZjMxM2Ep DQo+ICAgICAgIzE5IGNvbW1hbmRfaGFuZGxlcihjaGFyIGNvbnN0KikgZ2RiL2V2ZW50LXRv cC5jOjU1MiAoZ2RiKzB4OTRhZWRjKQ0KPiAgICAgICMyMCBjb21tYW5kX2xpbmVfaGFuZGxl cihzdGQ6OnVuaXF1ZV9wdHI8Y2hhciwgZ2RiOjp4ZnJlZV9kZWxldGVyPGNoYXI+ID4mJikg Z2RiL2V2ZW50LXRvcC5jOjc4OCAoZ2RiKzB4OTRiNTk5KQ0KPiAgICAgICMyMSB0dWlfY29t bWFuZF9saW5lX2hhbmRsZXIgZ2RiL3R1aS90dWktaW50ZXJwLmM6MTA0IChnZGIrMHgxMDM0 ODlhKQ0KPiAgICAgICMyMiBnZGJfcmxfY2FsbGJhY2tfaGFuZGxlciBnZGIvZXZlbnQtdG9w LmM6MjU5IChnZGIrMHg5NGE0ODEpDQo+ICAgICAgIzIzIHJsX2NhbGxiYWNrX3JlYWRfY2hh ciByZWFkbGluZS9yZWFkbGluZS9jYWxsYmFjay5jOjI5MCAoZ2RiKzB4MTFiZGY1YikNCj4g ICAgICAjMjQgZ2RiX3JsX2NhbGxiYWNrX3JlYWRfY2hhcl93cmFwcGVyX25vZXhjZXB0IGdk Yi9ldmVudC10b3AuYzoxOTUgKGdkYisweDk0YTI4MCkNCj4gICAgICAjMjUgZ2RiX3JsX2Nh bGxiYWNrX3JlYWRfY2hhcl93cmFwcGVyIGdkYi9ldmVudC10b3AuYzoyMzQgKGdkYisweDk0 YTM0MSkNCj4gICAgICAjMjYgc3RkaW5fZXZlbnRfaGFuZGxlciBnZGIvdWkuYzoxNTUgKGdk YisweDEwNzRiM2UpDQo+ICAgICAgIzI3IGhhbmRsZV9maWxlX2V2ZW50IGdkYnN1cHBvcnQv ZXZlbnQtbG9vcC5jYzo1NzMgKGdkYisweDFkOTUzNmUpDQo+ICAgICAgIzI4IGdkYl93YWl0 X2Zvcl9ldmVudCBnZGJzdXBwb3J0L2V2ZW50LWxvb3AuY2M6Njk0IChnZGIrMHgxZDk1YWE2 KQ0KPiAgICAgICMyOSBnZGJfZG9fb25lX2V2ZW50KGludCkgZ2Ric3VwcG9ydC9ldmVudC1s b29wLmNjOjI2NCAoZ2RiKzB4MWQ5M2U5MikNCj4gICAgICAjMzAgc3RhcnRfZXZlbnRfbG9v cCBnZGIvbWFpbi5jOjQxMiAoZ2RiKzB4YjVhNDcyKQ0KPiAgICAgICMzMSBjYXB0dXJlZF9j b21tYW5kX2xvb3AgZ2RiL21haW4uYzo0NzYgKGdkYisweGI1YTY2MSkNCj4gICAgICAjMzIg Y2FwdHVyZWRfbWFpbiBnZGIvbWFpbi5jOjEzMjAgKGdkYisweGI1YzdlMSkNCj4gICAgICAj MzMgZ2RiX21haW4oY2FwdHVyZWRfbWFpbl9hcmdzKikgZ2RiL21haW4uYzoxMzM5IChnZGIr MHhiNWM4OTApDQo+ICAgICAgIzM0IG1haW4gZ2RiL2dkYi5jOjMyIChnZGIrMHg0MTY3NzYp DQo+ICAgIC4uLg0KPiBTVU1NQVJZOiBUaHJlYWRTYW5pdGl6ZXI6IGRhdGEgcmFjZSBiZmQu aDoyMzc2IGluIGJmZF9nZXRfc2VjdGlvbl9saW1pdF9vY3RldHMNCj4gLi4uDQo+IA0KPiBU b20gZGUgVnJpZXMgKDMpOg0KPiAgICBbZ2RiL3N5bXRhYl0gRml4IGRhdGEgcmFjZSBpbiBp bmRleF9jYWNoZTo6ZW5hYmxlDQo+ICAgIFtnZGIvc3ltdGFiXSBGaXggZGF0YSByYWNlIGlu IGJmZF9vcGVuX2ZpbGUNCj4gICAgW2dkYi9zeW10YWJdIEZpeCByYWNlIG9uIHBlcl9jdS0+ cXVldWVkDQo+IA0KPiAgIGdkYi9kd2FyZjIvY29va2VkLWluZGV4LmMgfCAgOCArKysrLS0N Cj4gICBnZGIvZHdhcmYyL2Nvb2tlZC1pbmRleC5oIHwgIDMgKysNCj4gICBnZGIvZHdhcmYy L2luZGV4LWNhY2hlLmMgIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tDQo+ICAgZ2RiL2R3YXJmMi9pbmRleC1jYWNoZS5oICB8IDIwICsrKysrKysrKysr KystDQo+ICAgZ2RiL2R3YXJmMi9yZWFkLmggICAgICAgICB8ICAyICstDQo+ICAgNSBmaWxl cyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkNCj4gDQo+IA0K PiBiYXNlLWNvbW1pdDogMjljMTA4Yzk2MTA2NDA0MzlkYWE1MjQ0YTU3MzM0OGI3YzQ3ZDk5 NA0KDQo=