From owner-freebsd-net@freebsd.org Fri Dec 23 08:49:15 2016 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 18B5DC899C7 for ; Fri, 23 Dec 2016 08:49:15 +0000 (UTC) (envelope-from hhsheng@corp.netease.com) Received: from corp-front03-corp.i.nease.net (corp-front03-corp.i.nease.net [123.58.164.176]) by mx1.freebsd.org (Postfix) with ESMTP id 877E81C93 for ; Fri, 23 Dec 2016 08:48:56 +0000 (UTC) (envelope-from hhsheng@corp.netease.com) Received: from E13D (unknown [218.107.55.252]) by corp-front03-corp.i.nease.net (Coremail) with SMTP id sKR4CgAXHyvn5FxY_6gEAA--.565S2; Fri, 23 Dec 2016 16:48:39 +0800 (HKT) Date: Fri, 23 Dec 2016 16:48:40 +0800 From: =?UTF-8?B?55ub5oWn5Y2O?= To: "Hongjiang Zhang" , freebsd-net Subject: Re: RE: question about fopen fd limit References: <2016122223570929089978@corp.netease.com>, , <2016122311014089280414@corp.netease.com>, X-Priority: 3 X-Has-Attach: no X-Mailer: Foxmail 7, 2, 5, 140[cn] Mime-Version: 1.0 Message-ID: <2016122316484066524625@corp.netease.com> X-CM-TRANSID: sKR4CgAXHyvn5FxY_6gEAA--.565S2 X-Coremail-Antispam: 1UD129KBjvJXoWxtFW5ZFW7Kw43JFWUur4fAFb_yoW7uF1kp3 yagw42krWkJr1kua4qyr48Cr10v3y8Ww45Gr93GryUA398WF47Jr43tFsY9a48Wrs3CryY qF429F9rGrs8ZaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUjOSb7IF0VCYb41lb7IF0VCYb415M7k042IE4IxYO2xFxVAqjxCE w4Av424lb7IF0VCFIxCj07C26c02F40Eb7x2x7xfM7k0a2IF6F4UM7kC6x804xWl1xkIjI 8I6I8E6xAIw20EY4v20xvaj40_Wr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxS w2x7M28EF7xvwVC0I7IYx2IY67AKxVWDJVCq3wA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxV W0oVCq3wA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0 oVCq3wAawVAFpfBj4fn0lVCYm3Zqqf926ryUJw1UKr1v6r18M2kK64x0aVW7GwIE548m6r I_Jw1UWr17M2kK6xCIbVAIwIAEc20F6c8GOVW8Jr15Jr4ln4vEIxkG6c02xx0F6c8GOVWU tr18Jw1lnx0E84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_GcCE3s0E84ACjcxK6xIIjxv20x vE14v26w1j6s0q6x02cVCv0xWlnx0E84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_GcCE3s0E 84ACjcxK6I8E87Iv67AKxVW0oVCq3VCjxxvEa2IrM2vj628EF7xvwVC0I7IYx2IY6xkF7I 0E14v26rxl6s0q6x02cVCv0xWlnx0Ec2IEnICE548m6r1DJrWUZwAa7VCE64xvF2IEb7IF 0Fy264xvF2IEb7IF0Fy264kE64k0F2IE7I0Y6sxI4wAS0I0E0xvYzxvE52x082IY62kv04 87Mc804VCqF7xvr2I5Mc02F40Eb7x2x7xS6ryj6rWUMc02F40E57IF67AEF4xIwI1l5I8C rVAKz4kIr2xC04v26r1j6r4UMc02F40E42I26xC2a48xMc02F40Ex7xS67I2xxkvbII20V AFz48EcVAYj21lYx0EF7xvrVAajcxG14v26r4j6F4UMcIj6x8ErcxFaVAv8VW8ZwAm72CE 4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41lFcxC0VAYjxAxZF0Ew4CEw7xC0wACY4 xI67k04243AVC20s07Mx02cVCv0xWlc7Ca8VAvwVCjb41lc7Ca8VAvwVCFzxkY4VCF77xA MxkIecxEwVAFwVW8ZwCY0x0Ix7I2Y4AK64vIr41l42xK82IYc2Ij64vIr41l42xK82IY6x 8ErcxFaVAv8VW8ZwCF72vEw2IIxxk0rwCFx2IqxVCFs4IE7xkEbVWUJVW8JwCFI7vE0wC2 0s026c02F40E14v26r106r1rMI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI 0_Jrv_JF1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv2 0xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6rW3Jr0E3s1lIxAIcVC2z2 80aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVWUJVW8JwCE64xvF2IEb7IF0Fy7 YxBIdaVFxhVjvjDU0xZFpf9x07jRYLPUUUUU= X-CM-SenderInfo: xkkvxv1qj6u0tuso0v5whd2voofrz/1tbiAgASBVUojr139QALsS Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Dec 2016 08:49:15 -0000 aGkgYWxsLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgYWR2aWNlIH4NCnNvbHV0aW9uIDIgIGRlZmlu aXRseSBicm9hZGVuIG15IGhvcml6b25zIH5+YnV0IG1heSBiZSAgbm90IGEgZ29vZCBjaG9pY2Ug Zm9yIG15IHByb2plY3Qgfn5Mb0wNCmkgd2lsbCB0cnkgdG8gbWFpbCAgZnJlZWJzZC1jdXJyZW50 IG1haWwgbGlzdCwgaWYgbGliYyBpcyBhcyB5b3VyIGRlc2NyaXB0aW9uICwgbWF5IGJlIGkgc2hv dWxkIG1vZGlmeSBpdCBieSBteXNlbGYgfn4NClRoYW5rIHlvdSBzbyBtdWNofg0KQXJlIHUgS2lu Z1NvZnQncyBEciBaaGFuZyA/IG5pY2UgdG8gbWVldCB5b3UgISEhISENCg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgd2luc29uICBzaGVuZw0KIA0KDQoNCndpbnNvbiBzaGVuZw0KIA0KRnJv bTogSG9uZ2ppYW5nIFpoYW5nDQpEYXRlOiAyMDE2LTEyLTIzIDExOjQ0DQpUbzog55ub5oWn5Y2O OyBmcmVlYnNkLW5ldA0KU3ViamVjdDogUkU6IFJFOiBxdWVzdGlvbiBhYm91dCBmb3BlbiBmZCBs aW1pdA0KT2suIEkga25vdy4NClRoZXJlIGFyZSB0d28gcG9zc2libGUgc29sdXRpb25zOg0KUXVp Y2sgc29sdXRpb24gZm9yIHNob3J0IHRlcm06IG1vZGlmeSBzaG9ydCB0byBpbnQgaW4gbGliYyBi eSB5b3Vyc2VsZiwgYnVpbGR3b3JsZCBhbmQgaW5zdGFsbHdvcmxkLiBQdXNoaW5nIHRvIG1vZGlm eSBsaWJjIG1heSB0YWtlIGEgbG9uZyB0aW1lLCBlc3BlY2lhbGx5IG9ubHkgZmV3IHBlb3BsZSBl bmNvdW50ZXIgdGhpcyBpc3N1ZS4gWW914oCZZCBiZXR0ZXIgc2VuZCBlbWFpbCB0byBmcmVlYnNk LWN1cnJlbnQgdG8gY29uZmlybSB3aGV0aGVyIHRoZXkgYWNjZXB0IHlvdXIgc3VnZ2VzdGlvbi4N CldvcmsgYXJvdW5kOiBZb3UgY2FuIGZpcnN0IHJlc2VydmUgYSBzZXJpZXMgb2YgZmQgYmVmb3Jl IG9wZW5pbmcgVENQIGNvbm5lY3Rpb25zLiBGb3IgZXhhbXBsZSwgaW52b2tlIG9wZW4o4oCcL2Rl di9udWxs4oCdKSBmb3IgMTAwMDAgdGltZXMgdG8gZ2V0IDEwMDAwIGZkcy4gVGhvc2UgZmQgdmFs dWVzIGFyZSBzbWFsbCBlbm91Z2ggdG8gYmUgaGVsZCBieSDigJxzaG9ydOKAnS4gQWZ0ZXIgdGhh dCwgc3RhcnQgVENQIGNvbm5lY3Rpb25zLiBPbmNlIHlvdSBuZWVkIHRvIGZvcGVuIGEgZmlsZSwg cGxlYXNlIGNhbGwgb3BlbijigJx4eHjigJ0pIGluc3RlYWQsIGFuZCB0aGVuIHVzZSBkdXAyKG9s ZF9mZCwgbmV3X2ZkKSB0byBleGNoYW5nZSB0aGUgdHdvIGZkLiBUaGUgb2xkX2ZkIHZhbHVlIGlz IHRoZSBvbmUgb2J0YWluZWQgYnkgb3BlbijigJx4eHjigJ0pLCBhbmQgbmV3X2ZkIGlzIG9uZSBp biB5b3VyIHJlc2VydmVkIGZkIGZpZWxkcywgYW5kIG5leHQgcGxlYXNlIHVzZSBmZG9wZW4oZmQs IG1vZGUpLiBIZXJlLCB5b3UgaGF2ZSB0byBtYW5hZ2UgdGhlIHJlc2VydmVkIGZkcyBieSB5b3Vy c2VsZiBpbmNsdWRpbmcgb3Blbi9jbG9zZS4NCiANCkluIG15IGV5ZXM6DQppcyB0aGUgcXVpY2sg bWV0aG9kLCBhbmQgdGhlcmUgaXMgbm8gbW9kaWZpY2F0aW9ucyBpbiB5b3VyIGxvZ2ljLiANCk5l ZWRzIHlvdSB0byBtYWludGFpbiB0aGUgcmVzZXJ2ZWQgY29uc2VjdXRpdmUgZmllbGRzIGZvciBm ZCBieSB5b3Vyc2VsZiwgd2hpY2ggaW5jcmVhc2VkIHRoZSBjb21wbGV4aXR5IG9mIHlvdXIgbG9n aWMuDQogDQpUaGFua3MNCkhvbmdqaWFuZyBaaGFuZw0KIA0KRnJvbTog55ub5oWn5Y2OIFttYWls dG86aGhzaGVuZ0Bjb3JwLm5ldGVhc2UuY29tXSANClNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgMjMs IDIwMTYgMTE6MDIgQU0NClRvOiBIb25namlhbmcgWmhhbmcgPGhvbnpoYW5AbWljcm9zb2Z0LmNv bT47IGZyZWVic2QtbmV0IDxmcmVlYnNkLW5ldEBmcmVlYnNkLm9yZz4NClN1YmplY3Q6IFJlOiBS RTogcXVlc3Rpb24gYWJvdXQgZm9wZW4gZmQgbGltaXQNCiANCmhpIGFsbCwNCiANCiAgbm90IG1h cCAgVENQIHRvIEZJTEUsIHlvdSBtaXN1bmRlcnN0YW5kaW5nIG15IG1lYW5pbmd+DQogDQogIGZv ciBleGFtcGxlLCBpZiBteSBzZXJ2ZXIgdGNwIGFscmVhZHkgaG9sZHMgMzIwMDAgY29ubmVjdGlv bg0KICBmb3BlbiBvbmx5IGhhcyA3NjcgZmQgdG8gdXNlDQogDQogIHRoZSBwcm9ibGVtIGhhcyBu byBidXNzaW5lc3Mgd2l0aCB0Y3AgZmQsIEJVVCBmb3BlbiAuLi4NCiANCiAgaW4gc29tZSBwYXJ0 aWN1bGFyIHNpdHVsYXRpb25zICwgbXkgc2VydmVyIHdpbGwgb3BlbiAxaysgRklMRSAsIHRoYXQg d2lsbCBleGNlZWQgdGhlIGZpbGVubyBsaW1pdCwgYW5kIG92ZXJmbG93IG9jY3VyDQogIG15IHNl cnZlciBjYW4ndCBvcGVuIGFueSBmaWxlIG1vcmUgLHRoYXQncyB0aGUgcHJvYmxlbSB+DQogDQog IHNvIGkgZmVsdCBpZiBic2Qgb2ZmaWNpYWwgY291bGQgY2hhbmdlIEZJTEUgc3RydWN0J3MgZmls ZW5vIHRvIGEgVU5TSUdORUQgU0hPUlQgdGhhdCBtYXkgYmUgYW4gZWZmZWNpZW50IGFuZCBjb252 ZW5pZW50IHNvbHV0aW9uIGp1c3QgZm9yIG15IGNhc2UgPw0KICBVTlNJR05FRCBTSE9SVCBmaWxl bm8gaXMgZW5vdWdoIGZvciBtZSwgYW5kIGkgZG9uJ3Qgd2FubmEgY2hhbmdlIGEgbG90IG9mIEZJ TEUgZnVuY3Rpb24gdGhhdCB0YWtlIEZJTEUgKiBhcyBpdHMgYXJndW1lbnQgfg0KICANCiAgVGhh bmsgeW91IH5+fg0KIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luc29u IHNoZW5nDQogIA0KIA0KDQoNCndpbnNvbiBzaGVuZw0KIA0KRnJvbTogSG9uZ2ppYW5nIFpoYW5n DQpEYXRlOiAyMDE2LTEyLTIzIDEwOjE3DQpUbzog55ub5oWn5Y2OOyBmcmVlYnNkLW5ldA0KU3Vi amVjdDogUkU6IHF1ZXN0aW9uIGFib3V0IGZvcGVuIGZkIGxpbWl0DQpXaHkgZG8geW91IG5lZWQg dG8gbWFwIFRDUCBmZCB0byBGSUxFPyANCiANCkl0IGlzIGRpZmZpY3VsdCB0byBtb2RpZnkgRklM RSBzdHJ1Y3R1cmUuIElmIGl0IGlzIHBvc3NpYmxlLCBsZXQgdXMgZmlndXJlIG91dCBzb21lIG5l dyBkZXNpZ25zIHRvIG1lZXQgeW91ciByZXF1aXJlbWVudC4NCiANCi0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQpGcm9tOiBvd25lci1mcmVlYnNkLW5ldEBmcmVlYnNkLm9yZyBbbWFpbHRvOm93 bmVyLWZyZWVic2QtbmV0QGZyZWVic2Qub3JnXSBPbiBCZWhhbGYgT2YgPz8/DQpTZW50OiBUaHVy c2RheSwgRGVjZW1iZXIgMjIsIDIwMTYgMTE6NTcgUE0NClRvOiBmcmVlYnNkLW5ldCA8ZnJlZWJz ZC1uZXRAZnJlZWJzZC5vcmc+DQpTdWJqZWN0OiBxdWVzdGlvbiBhYm91dCBmb3BlbiBmZCBsaW1p dA0KIA0KaGkgYWxsLA0KIA0KICAgaGl+DQogICB3ZSBhcmUgZnJvbSBDaGluZXNlIEdhbWUgRGV2 ZWxvcCBDb3JwLCBOZXRlYXNlLg0KICAgYW5kIE9uZSBvZiBvdXIgcHJvZHVjdCB1c2luZyBGcmVl QnNkIGFzIGl0cyBPUyBwbGF0Zm9ybS4NCiAgIFRoaXMgR2FtZSBoYXMgTWlsbGlvbnMgb2YgcGxh eWVycyBvbmxpbmUgLCBhbmQgRWFjaCBTZXJ2ZXIgbWF5IGhvbGRzIDI1MDAwKyB0Y3AgY29ubmVj dGlvbiBhdCB0aGUgc2FtZSB0aW1lLlRoYW5rcyB0byBCU0QgYW5kIGtxdWV1ZSA6KQ0KIA0KICAg Zm9yIGV4YW1wbGUsIGl0J3Mgb25lIG9mIG91ciBzZXJ2ZXIgLCBuZXRzdGF0IGNtZCB0byBsaXN0 IGNvbm5lY3Rpb25zIG92ZXJhbGwuLi4NCiAgIG5ldHN0YXQgLWFuIHwgZ3JlcCAxMzM5NiAoaXQn cyBvdXIgbGlzdGVuaW5nIHBvcnQpIHwgd2MgLWwgDQogICAyMzIyMQ0KIA0KICAgIHJlY2VudGx5 IHdlIGRvIHNvbWUgcGVyZm9ybWFuY2Ugb3B0aW1pemUgYW5kIHByb21vdGUgdGhpcyBjb25uZWN0 IGxpbWl0IHRvIDI4MDAwKyBvciAzMDAwMCsuDQogIEJ1dCB3ZSBmaW5kIEZyZWVic2QgaGFzIGEg bGltaXQgdGhhdCB0aGlzIGh1Z2Ugb25saW5lIG51bWJlciB3aWxsIHRha2UgMjgwMDArIGZkLCBh bmQgYnNkIEZJTEUgKiBzdHJ1Y3Qncw0KICBmZCBvbmx5IHN1cHBvcnQgdG8gU0hPUlQgLiBzdWNo IGFzIC4uDQogDQpzdHJ1Y3QgX19zRklMRSB7DQouLi4NCnNob3J0IF9maWxlOyAvKiAoKikgZmls ZW5vLCBpZiBVbml4IGRlc2NyaXB0b3IsIGVsc2UgLTEgKi8gIC4uLg0KIA0KICBzbyBpZiBvdXIg c2VydmVyIHdhbnQgdG8gZm9wZW4gc29tZSBmaWxlIHdoZW4gd2Ugc3RpbGwgaG9sZCB0aGlzIG9u bGluZSBudW1iZXIsIHRoZSBmZCBhbW91bnQgbWF5IGVhc2lseSBleGNlZWQgMzI3NjcsIGFuZCBm b3BlbiBkZWZpbml0ZWx5IHJldHVybiBhIGVyciBjb2RlLiB0aGVuIHRoZSBzZXJ2ZXIgd2lsbCBh cHBlYXIgc29tZSBmYXRhbHkgRVJST1IuIA0KIA0KICB3ZSBkbyBhIHNpbXBsZSB0ZXN0IGFuZCBj b25maXJtIHRoaXMgc2l0dWF0aW9uLg0KIA0KICB0aGVuIGluIGZvcGVuJ3MgY29kZSAsIHdlIG5v dGljZSB0aGF0IHdlIGNhbiB1c2Ugb3BlbiB0byByZXR1cm4gYSBmZCBpbnN0cmVhZCBvZiBmb3Bl biB0byBhdm9pZCB0aGlzIG92ZXJmbG93LCANCiAgIGFzIGJlbG93DQogDQo2OCAvKg0KMSAqIEZp bGUgZGVzY3JpcHRvcnMgYXJlIGEgZnVsbCBpbnQsIGJ1dCBfZmlsZSBpcyBvbmx5IGEgc2hvcnQu IA0KMiAqIElmIHdlIGdldCBhIHZhbGlkIGZpbGUgZGVzY3JpcHRvciB0aGF0IGlzIGdyZWF0ZXIg dGhhbg0KMyAqIFNIUlRfTUFYLCB0aGVuIHRoZSBmZCB3aWxsIGdldCBzaWduLWV4dGVuZGVkIGlu dG8gYW4NCjQgKiBpbnZhbGlkIGZpbGUgZGVzY3JpcHRvci4gSGFuZGxlIHRoaXMgY2FzZSBieSBm YWlsaW5nIHRoZQ0KNSAqIG9wZW4uIA0KNiAqLw0KIA0KIA0KICBCVVQgLi4uIHNvIG1hbnkgYyBs aWIgRklMRSBzZXJpZXMgZnVuY3Rpb24gbmVlZHMgYSBGSUxFICogcG9pbnRlciBhcyBpbnB1dCBh cmd1bWVudCwgd2UgY2FuJ3QgY29udmVydCBhbGwgb2YgdGhlbSB0byBmZCwgb3IgaXQgd2lsbCBi ZSBhIHJhdGhlciBzdWZmZXJpbmcgdGhpbmdzIHRvIHVzLiANCiANCiAgYW5kIGV2ZW4gaW4gQlNE IDEwICwgaXQgc2VlbXMgdGhpcyBzaG9ydCBsaW1pdCBzdGlsbCB0aGVyZSAsIGJ1dCBvdGhlciBP UyBhcyBkZWJpYW4gLCBGSUxFIHN0cnVjbnQncyBmaWxlbm8gaXMgYSBpbnQgLg0KICANCiAgd2Ug Zm91bmQgYW4gdW5vZmZpY2FsIHBhdGNoIGVhc2lseSBjaGFuZ2UgdGhpcyBmaWxlbm8gdG8gdW5z aWduZWQgLCBidXQgd2UgYXJlIGEgdmVyeSBzdHJlYWR5IHByb2plY3QsIHdlIGNhbid0IGFmZm9y ZCB0aGUgcmlzayB0byB1c2UgYW4gdW5vZmZpY2FsIHBhdGNoLg0KIA0KICBzbywgZG8geW91IGhh dmUgYW55IHBsYW4gdG8gY2hhbmdlIHRoaXMgZm9wZW4gZmQgbGltaXQgdG8gVU5TSUdORUQgU0hP UlQgb3IgaW50IGluIHRoZSBmdXR1cmUgPyB1c2hvcnQgaXMgZW5vdWdoIGZvciB1cyAuIA0KICBp ZiB5b3UgZG8gLCB3ZSBhcmUgcmVhbGx5IGdsYWQgYW5kIGV4Y2l0ZWR+fn5+fn5+aWYgeW91IGRv bid0ICxpdCBkb25lbid0IG1hdHRlciwgIHBseiBnaXZlIHVzIGEgcmVwbHkgc28gdGhhdCB3ZSBt YXkgbmVlZCB0bw0KICBmaW5kIHNvbWUgb3RoZXIgcGxhbiB0byByZXNvbHZlZCB0aGlzIHN1ZmZl cmluZyB0aGluZy4NCiAgTG9MLCB0aGFuayB5b3UgISEhISENCiANCnlvdXJzIHNpbmNlcmVseQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luc29uIHNoZW5nDQogDQog DQp3aW5zb24gc2hlbmcNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQpmcmVlYnNkLW5ldEBmcmVlYnNkLm9yZyBtYWlsaW5nIGxpc3QNCmh0dHBzOi8vbmEw MS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGbGlz dHMuZnJlZWJzZC5vcmclMkZtYWlsbWFuJTJGbGlzdGluZm8lMkZmcmVlYnNkLW5ldCZkYXRhPTAy JTdDMDElN0Nob256aGFuJTQwbWljcm9zb2Z0LmNvbSU3QzRhOWRmY2NiY2NkNDQ2YmUyZjRhMDhk NDJhODMzZmIwJTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclN0MxJTdDMCU3QzYz NjE4MDE5MDU4NDQ3ODg5MCZzZGF0YT1QQXdKUDVJWEh5MFdKd3hiVjdNQiUyQjh6dktoZVpVWWpo SHgzb2hGUlNQWk0lM0QmcmVzZXJ2ZWQ9MA0KVG8gdW5zdWJzY3JpYmUsIHNlbmQgYW55IG1haWwg dG8gImZyZWVic2QtbmV0LXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIg0K