From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 12715EB64DD for ; Wed, 9 Aug 2023 05:40:52 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTbvK-0005ir-K2; Wed, 09 Aug 2023 01:39:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qTbvG-0005hW-0v for qemu-devel@nongnu.org; Wed, 09 Aug 2023 01:39:54 -0400 Received: from m1368.mail.163.com ([220.181.13.68]) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTbvC-0007sd-OA for qemu-devel@nongnu.org; Wed, 09 Aug 2023 01:39:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Date:From:Subject:Content-Type:MIME-Version: Message-ID; bh=fkLh1475YyjR7W1+VShSHhwbzaMN7n6N4/jsqnTTy0Q=; b=f i3eKfZwiYKatRikbADA/5maa4+rZkatK31s/ZNr1VsBn5eQzSffmHV0zHDI8cl57 h0vOALnPIm7ma+zBzBIebj5joHMuv4p4vCgnuUY9Z1bm8L4XSjP0DfDiuMaC2/f0 sRtMJWlpPZyyt7HKpXA+cJX38AbBujnzjE5k2kpnpE= Received: from logoerthiner1$163.com ( [183.242.254.172] ) by ajax-webmail-wmsvr68 (Coremail) ; Wed, 9 Aug 2023 13:39:39 +0800 (CST) X-Originating-IP: [183.242.254.172] Date: Wed, 9 Aug 2023 13:39:39 +0800 (CST) From: ThinerLogoer To: "Peter Xu" , qemu-devel@nongnu.org Cc: "David Hildenbrand" , "Paolo Bonzini" , "Igor Mammedov" , =?GBK?Q?Philippe_Mathieu-Daud=A8=A6?= Subject: Re:Re: [PATCH v1 1/3] softmmu/physmem: fallback to opening guest RAM file as readonly in a MAP_PRIVATE mapping X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.14 build 20230109(dcb5de15) Copyright (c) 2002-2023 www.mailtech.cn 163com In-Reply-To: References: <20230807190736.572665-1-david@redhat.com> <20230807190736.572665-2-david@redhat.com> X-NTES-SC: AL_QuySA/metk0s7yCYYekXnk4Shuc2XMu4u/gu34JTP5E0mSrkxCkyRXBkLVnYwtKRDyGBvxeTXjF11NxHVIlbQpJDr8WyzDziQhlkeHd0JyCq Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=GBK MIME-Version: 1.0 Message-ID: <5ea77364.4e8d.189d8cecd7f.Coremail.logoerthiner1@163.com> X-Coremail-Locale: zh_CN X-CM-TRANSID: RMGowACndbCbJtNk17oQAA--.9342W X-CM-SenderInfo: 5orj0vpuwkx0thurqiywtou0bp/xtbBoR7GnmI0ZtCDYwABsm X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== Received-SPF: pass client-ip=220.181.13.68; envelope-from=logoerthiner1@163.com; helo=m1368.mail.163.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org QXQgMjAyMy0wOC0wOSAwNTowMToxNywgIlBldGVyIFh1IiA8cGV0ZXJ4QHJlZGhhdC5jb20+IHdy b3RlOgo+T24gTW9uLCBBdWcgMDcsIDIwMjMgYXQgMDk6MDc6MzJQTSArMDIwMCwgRGF2aWQgSGls ZGVuYnJhbmQgd3JvdGU6Cj4+IEZyb206IFRoaW5lciBMb2dvZXIgPGxvZ29lcnRoaW5lcjFAMTYz LmNvbT4KPj4gCj4+IFVzZXJzIG1heSBzcGVjaWZ5Cj4+ICogIi1tZW0tcGF0aCIgb3IKPj4gKiAi LW9iamVjdCBtZW1vcnktYmFja2VuZC1maWxlLHNoYXJlPW9mZixyZWFkb25seT1vZmYiCj4+IGFu ZCBleHBlY3Qgc3VjaCBDT1cgKE1BUF9QUklWQVRFKSBtYXBwaW5ncyB0byB3b3JrLCBldmVuIGlm IHRoZSB1c2VyCj4+IGRvZXMgbm90IGhhdmUgd3JpdGUgcGVybWlzc2lvbnMgdG8gb3BlbiB0aGUg ZmlsZS4KPj4gCj4+IEZvciBub3csIHdlIHdvdWxkIGFsd2F5cyBmYWlsIGluIHRoYXQgY2FzZSwg YWx3YXlzIHJlcXVpcmluZyBmaWxlIHdyaXRlCj4+IHBlcm1pc3Npb25zLiBMZXQncyBkZXRlY3Qg d2hlbiB0aGF0IGZhaWx1cmUgaGFwcGVucyBhbmQgZmFsbGJhY2sgdG8gb3BlbmluZwo+PiB0aGUg ZmlsZSByZWFkb25seS4KPj4gCj4+IFdhcm4gdGhlIHVzZXIsIHNpbmNlIHRoZXJlIGFyZSBvdGhl ciB1c2UgY2FzZXMgd2hlcmUgd2Ugd2FudCB0aGUgZmlsZSB0bwo+PiBiZSBtYXBwZWQgd3JpdGFi bGU6IGZ0cnVuY2F0ZSgpIGFuZCBmYWxsb2NhdGUoKSB3aWxsIGZhaWwgaWYgdGhlIGZpbGUKPj4g d2FzIG5vdCBvcGVuZWQgd2l0aCB3cml0ZSBwZXJtaXNzaW9ucy4KPj4gCj4+IFNpZ25lZC1vZmYt Ynk6IFRoaW5lciBMb2dvZXIgPGxvZ29lcnRoaW5lcjFAMTYzLmNvbT4KPj4gQ28tZGV2ZWxvcGVk LWJ5OiBEYXZpZCBIaWxkZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT4KPj4gU2lnbmVkLW9mZi1i eTogRGF2aWQgSGlsZGVuYnJhbmQgPGRhdmlkQHJlZGhhdC5jb20+Cj4+IC0tLQo+PiAgc29mdG1t dS9waHlzbWVtLmMgfCAyNiArKysrKysrKysrKysrKysrKystLS0tLS0tLQo+PiAgMSBmaWxlIGNo YW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4+IAo+PiBkaWZmIC0tZ2l0 IGEvc29mdG1tdS9waHlzbWVtLmMgYi9zb2Z0bW11L3BoeXNtZW0uYwo+PiBpbmRleCAzZGY3MzU0 MmUxLi5kMWFlNjk0YjIwIDEwMDY0NAo+PiAtLS0gYS9zb2Z0bW11L3BoeXNtZW0uYwo+PiArKysg Yi9zb2Z0bW11L3BoeXNtZW0uYwo+PiBAQCAtMTI4OSw4ICsxMjg5LDcgQEAgc3RhdGljIGludDY0 X3QgZ2V0X2ZpbGVfYWxpZ24oaW50IGZkKQo+PiAgc3RhdGljIGludCBmaWxlX3JhbV9vcGVuKGNv bnN0IGNoYXIgKnBhdGgsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq cmVnaW9uX25hbWUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByZWFkb25seSwK Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICBib29sICpjcmVhdGVkLAo+PiAtICAgICAgICAg ICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCkKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICBib29sICpjcmVhdGVkKQo+PiAgewo+PiAgICAgIGNoYXIgKmZpbGVuYW1lOwo+PiAgICAgIGNo YXIgKnNhbml0aXplZF9uYW1lOwo+PiBAQCAtMTMzNCwxMCArMTMzMyw3IEBAIHN0YXRpYyBpbnQg ZmlsZV9yYW1fb3Blbihjb25zdCBjaGFyICpwYXRoLAo+PiAgICAgICAgICAgICAgZ19mcmVlKGZp bGVuYW1lKTsKPj4gICAgICAgICAgfQo+PiAgICAgICAgICBpZiAoZXJybm8gIT0gRUVYSVNUICYm IGVycm5vICE9IEVJTlRSKSB7Cj4+IC0gICAgICAgICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAs IGVycm5vLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FuJ3Qgb3BlbiBiYWNr aW5nIHN0b3JlICVzIGZvciBndWVzdCBSQU0iLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYXRoKTsKPj4gLSAgICAgICAgICAgIHJldHVybiAtMTsKPj4gKyAgICAgICAgICAgIHJl dHVybiAtZXJybm87Cj4+ICAgICAgICAgIH0KPj4gICAgICAgICAgLyoKPj4gICAgICAgICAgICog VHJ5IGFnYWluIG9uIEVJTlRSIGFuZCBFRVhJU1QuICBUaGUgbGF0dGVyIGhhcHBlbnMgd2hlbgo+ PiBAQCAtMTk0Niw5ICsxOTQyLDIzIEBAIFJBTUJsb2NrICpxZW11X3JhbV9hbGxvY19mcm9tX2Zp bGUocmFtX2FkZHJfdCBzaXplLCBNZW1vcnlSZWdpb24gKm1yLAo+PiAgICAgIGJvb2wgY3JlYXRl ZDsKPj4gICAgICBSQU1CbG9jayAqYmxvY2s7Cj4+ICAKPj4gLSAgICBmZCA9IGZpbGVfcmFtX29w ZW4obWVtX3BhdGgsIG1lbW9yeV9yZWdpb25fbmFtZShtciksIHJlYWRvbmx5LCAmY3JlYXRlZCwK Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgZXJycCk7Cj4+ICsgICAgZmQgPSBmaWxlX3JhbV9v cGVuKG1lbV9wYXRoLCBtZW1vcnlfcmVnaW9uX25hbWUobXIpLCByZWFkb25seSwgJmNyZWF0ZWQp Owo+PiArICAgIGlmIChmZCA9PSAtRUFDQ0VTICYmICEocmFtX2ZsYWdzICYgUkFNX1NIQVJFRCkg JiYgIXJlYWRvbmx5KSB7Cj4+ICsgICAgICAgIC8qCj4+ICsgICAgICAgICAqIFdlIGNhbiBoYXZl IGEgd3JpdGFibGUgTUFQX1BSSVZBVEUgbWFwcGluZyBvZiBhIHJlYWRvbmx5IGZpbGUuCj4+ICsg ICAgICAgICAqIEhvd2V2ZXIsIHNvbWUgb3BlcmF0aW9ucyBsaWtlIGZ0cnVuY2F0ZSgpIG9yIGZh bGxvY2F0ZSgpIG1pZ2h0IGZhaWwKPj4gKyAgICAgICAgICogbGF0ZXIsIGxldCdzIHdhcm4gdGhl IHVzZXIuCj4+ICsgICAgICAgICAqLwo+PiArICAgICAgICBmZCA9IGZpbGVfcmFtX29wZW4obWVt X3BhdGgsIG1lbW9yeV9yZWdpb25fbmFtZShtciksIHRydWUsICZjcmVhdGVkKTsKPj4gKyAgICAg ICAgaWYgKGZkID49IDApIHsKPj4gKyAgICAgICAgICAgIHdhcm5fcmVwb3J0KCJiYWNraW5nIHN0 b3JlICVzIGZvciBndWVzdCBSQU0gKE1BUF9QUklWQVRFKSBvcGVuZWQiCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAiIHJlYWRvbmx5IGJlY2F1c2UgdGhlIGZpbGUgaXMgbm90IHdyaXRhYmxl IiwgbWVtX3BhdGgpOwo+Cj5JIGNhbiB1bmRlcnN0YW5kIHRoZSB1c2UgY2FzZSwgYnV0IHRoaXMg d2lsbCBiZSBzbGlnaHRseSB1bndhbnRlZCwKPmVzcGVjaWFsbHkgdGhlIHVzZXIgZG9lc24ndCB5 ZXQgaGF2ZSBhIHdheSB0byBwcmVkaWN0IHdoZW4gd2lsbCBpdCBoYXBwZW4uCj4KPk1lYW53aGls ZSB0aGlzIGNoYW5nZXMgdGhlIGJlaGF2aW9yLCBpcyBpdCBhIGNvbmNlcm4gdGhhdCBzb21lb25l IG1heSB3YW50Cj50byByZWx5IG9uIGN1cnJlbnQgYmVoYXZpb3Igb2YgZmFpbGluZz8KPgoKSSBh bSBoYXBweSB0byBsZWFybiBpZiB0aGVyZSBpcyBzb21lIHNvbGlkIGV2aWRlbmNlIHN1cHBvcnRp bmcgdGhpcyB2aWV3LgoKVGhlIHRhcmdldCBvZiBjb21wYXRpYmlsaXR5IGlzICJwcml2YXRlK2Rp c2NhcmQiIHdoaWNoIHNlZW1zIGl0c2VsZiBwYXRob2xvZ2ljYWwKcHJhY3RpY2UgaW4gZWFybHkg ZGlzY3Vzc2lvbi4gVGhlIG9ubHkgZGlmZmVyZW5jZSBpbiBiZWhhdmlvciB0aGF0IG1pZ2h0IGJl IHVud2FudGVkCmluIHlvdXIgYXJndW1lbnQgbGllcyBpbiAicmVhZG9ubHkgZmlsZStwcml2YXRl K2Rpc2NhcmQiIGZhaWx1cmUgdGltZS4gQmVmb3JlIHRoZQpwYXRjaCBpdCBmYWlscyBlYXJseSwg YWZ0ZXIgdGhlIHBhdGNoIGl0IGZhaWxzIGxhdGVyIGFuZCBtYXkgZG9lcyBhZGRpdGlvbmFsIHN0 dWZmLgpEbyB5b3UgdGhpbmsgdGhhdCBhIGJ1ZyByZXBvcnRpbmcgbWVjaGFuaXNtIHdoaWNoIHJl bGllcyBvbiBxZW11IGZhaWx1cmUKdGltaW5nIGlzIHZhbGlkPwoKSWYgc29tZW9uZSBhcmd1ZXMg dGhhdCAicmVhZG9ubHkgZmlsZStwcml2YXRlK2Rpc2NhcmQiIGVhcmx5IGZhaWx1cmUgYmVoYXZp b3IKaXMgYWxsIHdoZXJlIHRoZWlyIHN5c3RlbSByZWxpZXMsIEkgd291bGQgYmUgaGFwcHkgdG8g bGVhcm4gd2h5LiBBY3R1YWxseSB0aGlzCmlzIG11Y2ggZWFzaWVyIHRvIHNvbHZlIG91dHNpZGUg cWVtdSwgYnkgY2hlY2tpbmcgbWVtb3J5IGZpbGUgcGVybWlzc2lvbiwKY29tcGFyZWQgdG8gdGhl ICJyZWFkb25seStwcml2YXRlIiBhbHRlcm5hdGl2ZSBwbGFuIHRoYXQgcmVxdWlyZXMgYSBidHJm cy4KCkluIHRoZSBsb25nIHJ1biB0aGUgInByaXZhdGUrZGlzY2FyZCIgc2V0dXAgbWF5IGl0c2Vs ZiBiZSB3YXJuZWQgYW5kCmRlcHJlY2F0ZWQsIHJhdGhlciB0aGFuICJwcml2YXRlK3JlYWRvbmx5 IGZpbGUiIHdoaWNoIGlzIHN1cHBvcnRlZCBieQpsaW51eCBrZXJuZWwuCgpDdXJyZW50IHBhdGNo IGlzIGFscmVhZHkgYSBjb21wcm9taXNlIGNvbnNpZGVyaW5nIGNvbXBhdGliaWxpdHksIGFzIGl0 CmFsd2F5cyB0cmllcyBvcGVuIHRoZSBmaWxlIGluIHJlYWR3cml0ZSBtb2RlIGZpcnN0LCB0byBw ZXJzaXN0IGJlaGF2aW9yIG9uCiJyZWFkd3JpdGUrcHJpdmF0ZStkaXNjYXJkIiBjYXNlLiBQZXJz b25hbGx5IEkgcHJlZmVyIHRvIHRyeSBvcGVuaW5nIHRoZSBmaWxlCnJlYWRvbmx5IGZpcnN0LCBh cyB0aGlzIHdpbGwgcmVkdWNlIHRoZSByaXNrIG9mIG9wZW5pbmcgcmFtIGZpbGUgYWNjaWRlbnRh bGx5CndpdGggd3JpdGUgcGVybWlzc2lvbi4KCkhvd2V2ZXIgSSBjYW4gYWNjZXB0IGEgc2Vjb25k IGxldmVsIG9mIGNvbXByb21pc2UsIGFrYSBhZGRpbmcgIi1kaXNhbGxvdy1wcml2YXRlLWRpc2Nh cmQiCnRvIHFlbXUgYXJndW1lbnQgZm9yIGF0IGxlYXN0IHRocmVlIHFlbXUgcmVsZWFzZXMgYmVm b3JlICJwcml2YXRlK2Rpc2NhcmQiCmdldCBkZXByZWNhdGVkIGFuZCByZW1vdmVkLCBpZiBleHRy ZW1lIGNvbXBhdGliaWxpdHkgZW50aHVzaWFzdCBpcyBpbnZvbHZlZC4KV2l0aCB0aGlzIGFyZ3Vt ZW50LCByZWFkb25seSBwcml2YXRlIGlzIGVuYWJsZWQgYW5kIHByaXZhdGUKZGlzY2FyZCBmYWls cyBpbW1lZGlhdGVseSB3aGVuIGRpc2NhcmQgcmVxdWVzdCBpcyBkZXRlY3RlZCwgYW5kIHdpdGhv dXQgdGhpcwphcmd1bWVudCByZWFkb25seSBwcml2YXRlIGlzIGRpc2FibGVkIGFuZCB0aGUgYmVo YXZpb3IgaXMgdW5jaGFuZ2VkLgpUaGlzIGFyZ3VtZW50IGlzIHVzZWZ1bCBhbHNvIGJlY2F1c2Ug aXQgaGVscHMKZmluZGluZyBvdXQgZXhpc3RlbnQgInByaXZhdGUrZGlzY2FyZCIgYmVoYXZpb3Ig YW5kIGFzc2lzdHMgZGVidWdnaW5nLgpEbyB5b3UgdGhpbmsgdGhhdCB0aGlzIHNvbHV0aW9uIHBh eXMgb2ZmPwooSSBhbSBubyBleHBlcnQgcWVtdSBwcm9ncmFtbWVyLCBob3BlIGFueW9uZSBlbHNl IHRvIGhhbmRsZSB0aGUgY29tbWFuZApsaW5lIGFyZ3VtZW50cyBpZiB0aGlzIGlzIHByZWZlcnJl ZCkKCj5UbyB0aGluayBmcm9tIGEgaGlnaGVyIGxldmVsIG9mIGN1cnJlbnQgdXNlIGNhc2UsIHRo ZSBpZGVhbCBzb2x1dGlvbiBzZWVtcwo+dG8gbWUgdGhhdCBpZiB0aGUgcmFtIGZpbGUgY2FuIGJl IHB1dCBvbiBhIGZpbGUgc3lzdGVtIHRoYXQgc3VwcG9ydHMgQ29XCj5pdHNlbGYgKGxpa2UgYnRy ZnMpLCB3ZSBjYW4gc25hcHNob3QgdGhhdCByYW0gZmlsZSBhbmQgbWFrZSBpdCBSVyBmb3IgdGhl Cj5xZW11IGluc3RhbmNlLiBUaGVuIGhlcmUgaXQnbGwgYmUgYWJsZSB0byBvcGVuIHRoZSBmaWxl LiAgV2UnbGwgYmUgYWJsZSB0bwo+a2VlcCB0aGUgaW50ZXJmYWNlIHdvcmtpbmcgYXMgYmVmb3Jl LCBtZWFud2hpbGUgaXQnbGwgd29yayB3aXRoIGZhbGxvY2F0ZQo+b3IgdHJ1bmNhdGlvbnMgdG9v IEkgYXNzdW1lLgo+Cj5Xb3VsZCB0aGF0IGJlIGJldHRlciBpbnN0ZWFkIG9mIGNoYW5naW5nIFFF TVU/Cj4KCkkgYW0gYWZyYWlkIHRoYXQgeW91ciBhbHRlcm5hdGl2ZSBzb2x1dGlvbiB3aWxsIG1h a2UgaXQgc3RpbGwgaW1wb3NzaWJsZQpmb3IgdGhlIHVzZSBjYXNlIHRvIGJlIHVzZWQgb24gcm9v dGxlc3Mgc3lzdGVtOyB3aGlsZSBNQVBfUFJJVkFURQpiYXNlZCBDb1cgd29ya3MgYW55d2hlcmUu IEZvciBleGFtcGxlIHRoaXMgd2lsbCBub3Qgd29yayBvbiBleHQ0IHdpdGgKcmVhZG9ubHkgZmls ZSBtb2RlLCBvciB0aGF0IHRoZSBmaWxlIGlzIG93bmVkIGJ5IHJvb3QgYW5kIHlvdSBhcmUKbm9y bWFsIHVzZXIsIGFuZCBvbiBzcXVhc2hmcy4gQmFzaWNhbGx5IGV2ZXJ5dGhpbmcgb24gdGhlIG1h Y2hpbmUKc2hvdWxkIGJlIHJlYWRvbmx5IGFuZCB5b3UgYXJlIGFsc28gb25seSBhIG5vYm9keSwg dGhlbgpvbmx5IHRoZSBpbi1xZW11IGNob2ljZSBpcyBwb3NzaWJsZS4KCkkgYmVsaWV2ZSB0aGUg d2FybmluZyB0aGF0IHRoZSBmaWxlIGlzIG9wZW5lZCByZWFkb25seSBpcyBlbm91Z2gKZm9yIHBv dGVudGlhbCB1c2VyIHRvIGNvbnNpZGVyIGRvaW5nIG90aGVyd2lzZS4gRG8geW91IHRoaW5rIHRo YXQKbG9va2luZyBzb2xlbHkgYXQgcWVtdSBleGl0IHN0YXR1cyBhbmQgcGlwZSBhbGwgcWVtdSBz dGRlcnIgbG9nIHRvIC9kZXYvbnVsbAphbGwgdGhlIHRpbWUgaXMgb25lIG9mIHRoZSBzdXBwb3J0 ZWQgdXNlIGNhc2VzPwoKLS0KClJlZ2FyZHMsCgpsb2dvZXJ0aGluZXI=