From owner-freebsd-performance@FreeBSD.ORG Sun Jan 6 02:14:52 2008 Return-Path: Delivered-To: performance@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E5AB16A417 for ; Sun, 6 Jan 2008 02:14:52 +0000 (UTC) (envelope-from kris@FreeBSD.org) Received: from weak.local (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id B5EB713C45A for ; Sun, 6 Jan 2008 02:14:50 +0000 (UTC) (envelope-from kris@FreeBSD.org) Message-ID: <47803998.6020808@FreeBSD.org> Date: Sun, 06 Jan 2008 03:14:48 +0100 From: Kris Kennaway User-Agent: Thunderbird 2.0.0.9 (Macintosh/20071031) MIME-Version: 1.0 To: performance@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Subject: DNS zone query data X-BeenThere: freebsd-performance@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Performance/tuning List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jan 2008 02:14:52 -0000 Hi, Some months ago someone on this list offered to provide to me a data set of DNS query data and the corresponding zone file for benchmarking of BIND performance as an authoritative server. Unfortunately I have lost the email and forgot who it was who made the offer :) If it was you, please contact me again privately as I would like to proceed with this. Thanks, Kris From owner-freebsd-performance@FreeBSD.ORG Tue Jan 8 01:37:56 2008 Return-Path: Delivered-To: performance@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 826C816A419; Tue, 8 Jan 2008 01:37:56 +0000 (UTC) (envelope-from cswiger@mac.com) Received: from mail-out4.apple.com (mail-out4.apple.com [17.254.13.23]) by mx1.freebsd.org (Postfix) with ESMTP id 60E3E13C46E; Tue, 8 Jan 2008 01:37:56 +0000 (UTC) (envelope-from cswiger@mac.com) Received: from relay14.apple.com (relay14.apple.com [17.128.113.52]) by mail-out4.apple.com (Postfix) with ESMTP id 1914B1E2EE67; Mon, 7 Jan 2008 17:22:54 -0800 (PST) Received: from relay14.apple.com (unknown [127.0.0.1]) by relay14.apple.com (Symantec Mail Security) with ESMTP id 0223A28088; Mon, 7 Jan 2008 17:22:54 -0800 (PST) X-AuditID: 11807134-9cdecbb0000065e4-ae-4782d06d47be Received: from cswiger1.apple.com (cswiger1.apple.com [17.214.13.96]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by relay14.apple.com (Apple SCV relay) with ESMTP id BDC8328085; Mon, 7 Jan 2008 17:22:53 -0800 (PST) Message-Id: From: Chuck Swiger To: Kris Kennaway In-Reply-To: <47803998.6020808@FreeBSD.org> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v915) Date: Mon, 7 Jan 2008 17:22:52 -0800 References: <47803998.6020808@FreeBSD.org> X-Mailer: Apple Mail (2.915) X-Brightmail-Tracker: AAAAAA== Cc: performance@freebsd.org Subject: Re: DNS zone query data X-BeenThere: freebsd-performance@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Performance/tuning List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jan 2008 01:37:56 -0000 Hi, Kris-- Jan 5, 2008, at 6:14 PM, Kris Kennaway wrote: > Some months ago someone on this list offered to provide to me a data > set of DNS query data and the corresponding zone file for > benchmarking of BIND performance as an authoritative server. > Unfortunately I have lost the email and forgot who it was who made > the offer :) If it was you, please contact me again privately as I > would like to proceed with this. Was it this thread: Begin forwarded message: > From: Chuck Swiger > Date: June 4, 2007 1:21:51 PM PDT > To: Kris Kennaway > Cc: Doug Barton , freebsd-current@freebsd.org > Subject: Re: HEADS UP: BIND 9.4.1 imported > On Jun 2, 2007, at 7:27 PM, Kris Kennaway wrote: >>> For the vast majority of users, this should be a noop. Please test, >>> especially if you have a heavier loaded name server, and report any >>> issues. >> >> Also I'll remark that we remain very interested in getting access to >> either a busy nameserver or the data stream from one, in order to >> profile FreeBSD kernel activity and look for places to optimize >> performance. > > I've mentioned this before, but the dns/adns port provides some > handy utilities for putting a DNS server under high loads. > > Something like the following command will generate anywhere from 200 > queries/sec to 1500+ queries/sec, depending on the IPs involved in > the logfile you use, and how rapidly the remote nameservers respond: > > /usr/local/bin/adnslogres -c 500 < /var/log/httpd-access.log >! / > var/log/httpd-access.log.dns > > -- > -Chuck ----- Begin forwarded message: > From: Chuck Swiger > Date: June 14, 2007 4:53:01 PM PDT > To: Kris Kennaway > Cc: performance@FreeBSD.org, smp@FreeBSD.org, current@FreeBSD.org > Subject: Re: BIND 9.4.1 performance on FreeBSD 6.2 vs. 7.0 > > Hi, Kris-- > > This was interesting, thanks for putting together the testing and > graphs. > > On Jun 14, 2007, at 1:48 AM, Kris Kennaway wrote: >> I have been benchmarking BIND 9.4.1 recursive query performance on an >> 8-core opteron, using the resperf utility (dns/dnsperf in ports). >> The >> query data set was taken from www.freebsd.org's httpd-access.log with >> some of the highly aggressive robot IP addresses pruned out (to avoid >> huge numbers of repeated queries against a small subset of addresses, >> which would skew the results). > > It's at least arguable that doing queries against a data set > including a bunch of repeats is "skewed" in a more realistic > fashion. :-) A quick look at some of the data sources I have handy > such as http access logs or Squid proxy logs suggests that (for > example) out of a database of 17+ million requests, there were only > 46000 unique IPs involved. > > You might find it interesting to compare doing queries against your > raw and filtered datasets, just to see what kind of difference you > get, if any. > >> Testing was done over a broadcom gigabit ethernet cable connected >> back-to-back between two identical machines. named was restarted in >> between tests to flush the cache. > > What was the external network connectivity in terms of speed? The > docs suggest you need something like a 16MBs up/8 Mbs down > connectivity in order to get up to 50K requests/sec.... > > [ ... ] >> It would be interesting to test BIND performance when acting as an >> authoritative server, which probably has very different performance >> characteristics; the difficulty there is getting access to a suitably >> interesting and representative zone file and query data. > > I suppose you could also set up a test nameserver which claims to be > authoritative for all of in-addr.arpa, and set up a bunch (65K?) /16 > reverse zone files, and then test against real unmodified IPs, but > it would be easier to do something like this: > > Set up a nameserver which is authoritative for 1.10.in-addr.arpa > (ie, the reverse zone for 10.1/16), and use a zonefile with the > $GENERATE directive to populate your PTR records: > > $TTL 86400 > $origin 1.10.in-addr.arpa. > > @ IN SOA localhost. hostmaster.localhost. ( > 1 ; serial (YYYYMMDD##) > 3h ; Refresh 3 hours > 1h ; Retry 1 hour > 30d ; Expire 30 days > 1d ) ; Minimum 24 hours > > @ NS localhost. > > $GENERATE 0-255 $.0 PTR ip-10-1-0-$.example.com. > $GENERATE 0-255 $.1 PTR ip-10-1-1-$.example.org. > $GENERATE 0-255 $.2 PTR ip-10-1-2-$.example.net. > ; ...etc... > > ...and then feed it a query database consisting of PTR lookups. If > you wanted to, you could take your existing IP database, and glue > the last two octets of the real IPs onto 10.1 to produce a > reasonable assortment of IPs to perform a reverse lookup upon. > > -- > -Chuck From owner-freebsd-performance@FreeBSD.ORG Tue Jan 8 02:22:22 2008 Return-Path: Delivered-To: performance@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1E3FD16A418; Tue, 8 Jan 2008 02:22:22 +0000 (UTC) (envelope-from dlac@aldridge.com) Received: from starbase.aldridge.com (starbase.aldridge.com [205.196.186.12]) by mx1.freebsd.org (Postfix) with ESMTP id CABAA13C442; Tue, 8 Jan 2008 02:22:21 +0000 (UTC) (envelope-from dlac@aldridge.com) Received: from mail01.corporate.aldridge.com ([216.139.94.15]) by starbase.aldridge.com (8.14.2/8.14.2) with ESMTP id m0826blZ004316; Mon, 7 Jan 2008 20:06:37 -0600 (CST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Date: Mon, 7 Jan 2008 20:06:38 -0600 Message-ID: <89FBAC661DE5AD46867FD4E18D8AF60902B6DD@mail01.corporate.aldridge.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: DNS zone query data Thread-Index: AchRl2mj0y7bWmeBQUCjiE2FDDQGwQAA7Ck2 From: "David L. Aldridge" To: , X-Scanned-By: MIMEDefang 2.61 on 205.196.186.12 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: performance@freebsd.org Subject: Re: DNS zone query data X-BeenThere: freebsd-performance@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Performance/tuning List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jan 2008 02:22:22 -0000 S3Jpcw0KSSBtYXkgYmUgYWJsZSB0byBoZWxwIHlvdS4gDQpDYWxsIG1lIHRvbW9ycm93LiA3MTMt NDAzLTkxNTAuICBPciBlbWFpbCBtZSB3aXRoIHF1ZXN0aW9ucy4gDQpEYXZlDQpodHRwOi8vd3d3 LmFsZHJpZGdlLmNvbS8NCg0KDQotLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tDQpGcm9tOiBv d25lci1mcmVlYnNkLXBlcmZvcm1hbmNlQGZyZWVic2Qub3JnIDxvd25lci1mcmVlYnNkLXBlcmZv cm1hbmNlQGZyZWVic2Qub3JnPg0KVG86IEtyaXMgS2VubmF3YXkgPGtyaXNAZnJlZWJzZC5vcmc+ DQpDYzogcGVyZm9ybWFuY2VAZnJlZWJzZC5vcmcgPHBlcmZvcm1hbmNlQGZyZWVic2Qub3JnPg0K U2VudDogTW9uIEphbiAwNyAxOToyMjo1MiAyMDA4DQpTdWJqZWN0OiBSZTogRE5TIHpvbmUgcXVl cnkgZGF0YQ0KDQpIaSwgS3Jpcy0tDQoNCiAgSmFuIDUsIDIwMDgsIGF0IDY6MTQgUE0sIEtyaXMg S2VubmF3YXkgd3JvdGU6DQo+IFNvbWUgbW9udGhzIGFnbyBzb21lb25lIG9uIHRoaXMgbGlzdCBv ZmZlcmVkIHRvIHByb3ZpZGUgdG8gbWUgYSBkYXRhICANCj4gc2V0IG9mIEROUyBxdWVyeSBkYXRh IGFuZCB0aGUgY29ycmVzcG9uZGluZyB6b25lIGZpbGUgZm9yICANCj4gYmVuY2htYXJraW5nIG9m IEJJTkQgcGVyZm9ybWFuY2UgYXMgYW4gYXV0aG9yaXRhdGl2ZSBzZXJ2ZXIuICAgDQo+IFVuZm9y dHVuYXRlbHkgSSBoYXZlIGxvc3QgdGhlIGVtYWlsIGFuZCBmb3Jnb3Qgd2hvIGl0IHdhcyB3aG8g bWFkZSAgDQo+IHRoZSBvZmZlciA6KSAgSWYgaXQgd2FzIHlvdSwgcGxlYXNlIGNvbnRhY3QgbWUg YWdhaW4gcHJpdmF0ZWx5IGFzIEkgIA0KPiB3b3VsZCBsaWtlIHRvIHByb2NlZWQgd2l0aCB0aGlz Lg0KDQoNCldhcyBpdCB0aGlzIHRocmVhZDoNCg0KQmVnaW4gZm9yd2FyZGVkIG1lc3NhZ2U6DQo+ IEZyb206IENodWNrIFN3aWdlciA8Y3N3aWdlckBtYWMuY29tPg0KPiBEYXRlOiBKdW5lIDQsIDIw MDcgMToyMTo1MSBQTSBQRFQNCj4gVG86IEtyaXMgS2VubmF3YXkgPGtyaXNAb2JzZWN1cml0eS5v cmc+DQo+IENjOiBEb3VnIEJhcnRvbiA8ZG91Z2JARnJlZUJTRC5vcmc+LCBmcmVlYnNkLWN1cnJl bnRAZnJlZWJzZC5vcmcNCj4gU3ViamVjdDogUmU6IEhFQURTIFVQOiBCSU5EIDkuNC4xIGltcG9y dGVkDQo+IE9uIEp1biAyLCAyMDA3LCBhdCA3OjI3IFBNLCBLcmlzIEtlbm5hd2F5IHdyb3RlOg0K Pj4+IEZvciB0aGUgdmFzdCBtYWpvcml0eSBvZiB1c2VycywgdGhpcyBzaG91bGQgYmUgYSBub29w LiBQbGVhc2UgdGVzdCwNCj4+PiBlc3BlY2lhbGx5IGlmIHlvdSBoYXZlIGEgaGVhdmllciBsb2Fk ZWQgbmFtZSBzZXJ2ZXIsIGFuZCByZXBvcnQgYW55DQo+Pj4gaXNzdWVzLg0KPj4NCj4+IEFsc28g SSdsbCByZW1hcmsgdGhhdCB3ZSByZW1haW4gdmVyeSBpbnRlcmVzdGVkIGluIGdldHRpbmcgYWNj ZXNzIHRvDQo+PiBlaXRoZXIgYSBidXN5IG5hbWVzZXJ2ZXIgb3IgdGhlIGRhdGEgc3RyZWFtIGZy b20gb25lLCBpbiBvcmRlciB0bw0KPj4gcHJvZmlsZSBGcmVlQlNEIGtlcm5lbCBhY3Rpdml0eSBh bmQgbG9vayBmb3IgcGxhY2VzIHRvIG9wdGltaXplDQo+PiBwZXJmb3JtYW5jZS4NCj4NCj4gSSd2 ZSBtZW50aW9uZWQgdGhpcyBiZWZvcmUsIGJ1dCB0aGUgZG5zL2FkbnMgcG9ydCBwcm92aWRlcyBz b21lICANCj4gaGFuZHkgdXRpbGl0aWVzIGZvciBwdXR0aW5nIGEgRE5TIHNlcnZlciB1bmRlciBo aWdoIGxvYWRzLg0KPg0KPiBTb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQgd2ls bCBnZW5lcmF0ZSBhbnl3aGVyZSBmcm9tIDIwMCAgDQo+IHF1ZXJpZXMvc2VjIHRvIDE1MDArIHF1 ZXJpZXMvc2VjLCBkZXBlbmRpbmcgb24gdGhlIElQcyBpbnZvbHZlZCBpbiAgDQo+IHRoZSBsb2dm aWxlIHlvdSB1c2UsIGFuZCBob3cgcmFwaWRseSB0aGUgcmVtb3RlIG5hbWVzZXJ2ZXJzIHJlc3Bv bmQ6DQo+DQo+ICAvdXNyL2xvY2FsL2Jpbi9hZG5zbG9ncmVzIC1jIDUwMCA8IC92YXIvbG9nL2h0 dHBkLWFjY2Vzcy5sb2cgPiEgLyANCj4gdmFyL2xvZy9odHRwZC1hY2Nlc3MubG9nLmRucw0KPg0K PiAtLSANCj4gLUNodWNrDQoNCgktLS0tLQ0KDQpCZWdpbiBmb3J3YXJkZWQgbWVzc2FnZToNCj4g RnJvbTogQ2h1Y2sgU3dpZ2VyIDxjc3dpZ2VyQG1hYy5jb20+DQo+IERhdGU6IEp1bmUgMTQsIDIw MDcgNDo1MzowMSBQTSBQRFQNCj4gVG86IEtyaXMgS2VubmF3YXkgPGtyaXNAb2JzZWN1cml0eS5v cmc+DQo+IENjOiBwZXJmb3JtYW5jZUBGcmVlQlNELm9yZywgc21wQEZyZWVCU0Qub3JnLCBjdXJy ZW50QEZyZWVCU0Qub3JnDQo+IFN1YmplY3Q6IFJlOiBCSU5EIDkuNC4xIHBlcmZvcm1hbmNlIG9u IEZyZWVCU0QgNi4yIHZzLiA3LjANCj4NCj4gSGksIEtyaXMtLQ0KPg0KPiBUaGlzIHdhcyBpbnRl cmVzdGluZywgdGhhbmtzIGZvciBwdXR0aW5nIHRvZ2V0aGVyIHRoZSB0ZXN0aW5nIGFuZCAgDQo+ IGdyYXBocy4NCj4NCj4gT24gSnVuIDE0LCAyMDA3LCBhdCAxOjQ4IEFNLCBLcmlzIEtlbm5hd2F5 IHdyb3RlOg0KPj4gSSBoYXZlIGJlZW4gYmVuY2htYXJraW5nIEJJTkQgOS40LjEgcmVjdXJzaXZl IHF1ZXJ5IHBlcmZvcm1hbmNlIG9uIGFuDQo+PiA4LWNvcmUgb3B0ZXJvbiwgdXNpbmcgdGhlIHJl c3BlcmYgdXRpbGl0eSAoZG5zL2Ruc3BlcmYgaW4gcG9ydHMpLiAgIA0KPj4gVGhlDQo+PiBxdWVy eSBkYXRhIHNldCB3YXMgdGFrZW4gZnJvbSB3d3cuZnJlZWJzZC5vcmcncyBodHRwZC1hY2Nlc3Mu bG9nIHdpdGgNCj4+IHNvbWUgb2YgdGhlIGhpZ2hseSBhZ2dyZXNzaXZlIHJvYm90IElQIGFkZHJl c3NlcyBwcnVuZWQgb3V0ICh0byBhdm9pZA0KPj4gaHVnZSBudW1iZXJzIG9mIHJlcGVhdGVkIHF1 ZXJpZXMgYWdhaW5zdCBhIHNtYWxsIHN1YnNldCBvZiBhZGRyZXNzZXMsDQo+PiB3aGljaCB3b3Vs ZCBza2V3IHRoZSByZXN1bHRzKS4NCj4NCj4gSXQncyBhdCBsZWFzdCBhcmd1YWJsZSB0aGF0IGRv aW5nIHF1ZXJpZXMgYWdhaW5zdCBhIGRhdGEgc2V0ICANCj4gaW5jbHVkaW5nIGEgYnVuY2ggb2Yg cmVwZWF0cyBpcyAic2tld2VkIiBpbiBhIG1vcmUgcmVhbGlzdGljICANCj4gZmFzaGlvbi4gOi0p ICBBIHF1aWNrIGxvb2sgYXQgc29tZSBvZiB0aGUgZGF0YSBzb3VyY2VzIEkgaGF2ZSBoYW5keSAg DQo+IHN1Y2ggYXMgaHR0cCBhY2Nlc3MgbG9ncyBvciBTcXVpZCBwcm94eSBsb2dzIHN1Z2dlc3Rz IHRoYXQgKGZvciAgDQo+IGV4YW1wbGUpIG91dCBvZiBhIGRhdGFiYXNlIG9mIDE3KyBtaWxsaW9u IHJlcXVlc3RzLCB0aGVyZSB3ZXJlIG9ubHkgIA0KPiA0NjAwMCB1bmlxdWUgSVBzIGludm9sdmVk Lg0KPg0KPiBZb3UgbWlnaHQgZmluZCBpdCBpbnRlcmVzdGluZyB0byBjb21wYXJlIGRvaW5nIHF1 ZXJpZXMgYWdhaW5zdCB5b3VyICANCj4gcmF3IGFuZCBmaWx0ZXJlZCBkYXRhc2V0cywganVzdCB0 byBzZWUgd2hhdCBraW5kIG9mIGRpZmZlcmVuY2UgeW91ICANCj4gZ2V0LCBpZiBhbnkuDQo+DQo+ PiBUZXN0aW5nIHdhcyBkb25lIG92ZXIgYSBicm9hZGNvbSBnaWdhYml0IGV0aGVybmV0IGNhYmxl IGNvbm5lY3RlZA0KPj4gYmFjay10by1iYWNrIGJldHdlZW4gdHdvIGlkZW50aWNhbCBtYWNoaW5l cy4gIG5hbWVkIHdhcyByZXN0YXJ0ZWQgaW4NCj4+IGJldHdlZW4gdGVzdHMgdG8gZmx1c2ggdGhl IGNhY2hlLg0KPg0KPiBXaGF0IHdhcyB0aGUgZXh0ZXJuYWwgbmV0d29yayBjb25uZWN0aXZpdHkg aW4gdGVybXMgb2Ygc3BlZWQ/ICBUaGUgIA0KPiBkb2NzIHN1Z2dlc3QgeW91IG5lZWQgc29tZXRo aW5nIGxpa2UgYSAxNk1CcyB1cC84IE1icyBkb3duICANCj4gY29ubmVjdGl2aXR5IGluIG9yZGVy IHRvIGdldCB1cCB0byA1MEsgcmVxdWVzdHMvc2VjLi4uLg0KPg0KPiBbIC4uLiBdDQo+PiBJdCB3 b3VsZCBiZSBpbnRlcmVzdGluZyB0byB0ZXN0IEJJTkQgcGVyZm9ybWFuY2Ugd2hlbiBhY3Rpbmcg YXMgYW4NCj4+IGF1dGhvcml0YXRpdmUgc2VydmVyLCB3aGljaCBwcm9iYWJseSBoYXMgdmVyeSBk aWZmZXJlbnQgcGVyZm9ybWFuY2UNCj4+IGNoYXJhY3RlcmlzdGljczsgdGhlIGRpZmZpY3VsdHkg dGhlcmUgaXMgZ2V0dGluZyBhY2Nlc3MgdG8gYSBzdWl0YWJseQ0KPj4gaW50ZXJlc3RpbmcgYW5k IHJlcHJlc2VudGF0aXZlIHpvbmUgZmlsZSBhbmQgcXVlcnkgZGF0YS4NCj4NCj4gSSBzdXBwb3Nl IHlvdSBjb3VsZCBhbHNvIHNldCB1cCBhIHRlc3QgbmFtZXNlcnZlciB3aGljaCBjbGFpbXMgdG8g YmUgIA0KPiBhdXRob3JpdGF0aXZlIGZvciBhbGwgb2YgaW4tYWRkci5hcnBhLCBhbmQgc2V0IHVw IGEgYnVuY2ggKDY1Sz8pIC8xNiAgDQo+IHJldmVyc2Ugem9uZSBmaWxlcywgYW5kIHRoZW4gdGVz dCBhZ2FpbnN0IHJlYWwgdW5tb2RpZmllZCBJUHMsIGJ1dCAgDQo+IGl0IHdvdWxkIGJlIGVhc2ll ciB0byBkbyBzb21ldGhpbmcgbGlrZSB0aGlzOg0KPg0KPiBTZXQgdXAgYSBuYW1lc2VydmVyIHdo aWNoIGlzIGF1dGhvcml0YXRpdmUgZm9yIDEuMTAuaW4tYWRkci5hcnBhICANCj4gKGllLCB0aGUg cmV2ZXJzZSB6b25lIGZvciAxMC4xLzE2KSwgYW5kIHVzZSBhIHpvbmVmaWxlIHdpdGggdGhlICAN Cj4gJEdFTkVSQVRFIGRpcmVjdGl2ZSB0byBwb3B1bGF0ZSB5b3VyIFBUUiByZWNvcmRzOg0KPg0K PiAkVFRMICAgIDg2NDAwDQo+ICRvcmlnaW4gMS4xMC5pbi1hZGRyLmFycGEuDQo+DQo+IEAgICAg ICAgSU4gICAgICBTT0EgICAgIGxvY2FsaG9zdC4gaG9zdG1hc3Rlci5sb2NhbGhvc3QuICgNCj4g ICAgICAgIDEgICAgICAgOyBzZXJpYWwgKFlZWVlNTUREIyMpDQo+ICAgICAgICAzaCAgICAgIDsg UmVmcmVzaCAzIGhvdXJzDQo+ICAgICAgICAxaCAgICAgIDsgUmV0cnkgICAxIGhvdXINCj4gICAg ICAgIDMwZCAgICAgOyBFeHBpcmUgIDMwIGRheXMNCj4gICAgICAgIDFkICkgICAgOyBNaW5pbXVt IDI0IGhvdXJzDQo+DQo+IEAgICAgICAgTlMgICAgICBsb2NhbGhvc3QuDQo+DQo+ICRHRU5FUkFU RSAwLTI1NSAkLjAgUFRSIGlwLTEwLTEtMC0kLmV4YW1wbGUuY29tLg0KPiAkR0VORVJBVEUgMC0y NTUgJC4xIFBUUiBpcC0xMC0xLTEtJC5leGFtcGxlLm9yZy4NCj4gJEdFTkVSQVRFIDAtMjU1ICQu MiBQVFIgaXAtMTAtMS0yLSQuZXhhbXBsZS5uZXQuDQo+IDsgLi4uZXRjLi4uDQo+DQo+IC4uLmFu ZCB0aGVuIGZlZWQgaXQgYSBxdWVyeSBkYXRhYmFzZSBjb25zaXN0aW5nIG9mIFBUUiBsb29rdXBz LiAgSWYgIA0KPiB5b3Ugd2FudGVkIHRvLCB5b3UgY291bGQgdGFrZSB5b3VyIGV4aXN0aW5nIElQ IGRhdGFiYXNlLCBhbmQgZ2x1ZSAgDQo+IHRoZSBsYXN0IHR3byBvY3RldHMgb2YgdGhlIHJlYWwg SVBzIG9udG8gMTAuMSB0byBwcm9kdWNlIGEgIA0KPiByZWFzb25hYmxlIGFzc29ydG1lbnQgb2Yg SVBzIHRvIHBlcmZvcm0gYSByZXZlcnNlIGxvb2t1cCB1cG9uLg0KPg0KPiAtLSANCj4gLUNodWNr DQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpmcmVl YnNkLXBlcmZvcm1hbmNlQGZyZWVic2Qub3JnIG1haWxpbmcgbGlzdA0KaHR0cDovL2xpc3RzLmZy ZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWJzZC1wZXJmb3JtYW5jZQ0KVG8gdW5zdWJz Y3JpYmUsIHNlbmQgYW55IG1haWwgdG8gImZyZWVic2QtcGVyZm9ybWFuY2UtdW5zdWJzY3JpYmVA ZnJlZWJzZC5vcmciDQo=