
From tom_a_sparks@yahoo.com.au  Fri Mar  1 08:42:27 2013
Return-Path: <tom_a_sparks@yahoo.com.au>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3EE6921E809F for <dtn-users@ietfa.amsl.com>; Fri,  1 Mar 2013 08:42:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.001
X-Spam-Level: 
X-Spam-Status: No, score=0.001 tagged_above=-999 required=5 tests=[BAYES_50=0.001]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DazfKpRopn64 for <dtn-users@ietfa.amsl.com>; Fri,  1 Mar 2013 08:42:26 -0800 (PST)
Received: from nm38-vm0.bullet.mail.bf1.yahoo.com (nm38-vm0.bullet.mail.bf1.yahoo.com [72.30.239.16]) by ietfa.amsl.com (Postfix) with ESMTP id DB1A821E808A for <dtn-users@irtf.org>; Fri,  1 Mar 2013 08:42:25 -0800 (PST)
Received: from [98.139.215.140] by nm38.bullet.mail.bf1.yahoo.com with NNFMP; 01 Mar 2013 16:42:25 -0000
Received: from [98.139.212.199] by tm11.bullet.mail.bf1.yahoo.com with NNFMP; 01 Mar 2013 16:42:25 -0000
Received: from [127.0.0.1] by omp1008.mail.bf1.yahoo.com with NNFMP; 01 Mar 2013 16:42:25 -0000
X-Yahoo-Newman-Property: ymail-3
X-Yahoo-Newman-Id: 141101.73124.bm@omp1008.mail.bf1.yahoo.com
Received: (qmail 75012 invoked by uid 60001); 1 Mar 2013 16:42:25 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com.au; s=s1024; t=1362156145; bh=NX42gWewwD0j1gk5R7+ZMoQfSPlg5whAq2TKct5x5eE=; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:References:Message-ID:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=Bje/fz7K8rLnRHhWUsQtFkL5ASvJlf1aX7G03q9jeiYpRH4ZbU/+el896uIU1nysTcdkWW2pptkSWTck6Mg0hEgN54lcn5DBkZQKen5b5+Pn8rAzTUHkugAs9pgjFlgP8clPhbqYZStZPjvyCSeQaswLoKD+Z05R1Gff2plgnYc=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com.au; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:References:Message-ID:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=BL4M8R8ezETwt44wvqWFKrl4u1vxZPTTex0T5205BIkQjAmTzFPjtwb52Rr3J7Iq5//FV0I/KXoxdZF/CFx2uoM7ccpF+lsWgZSpJj+seNolDLEbggIGzBEYbSdZduratSfcPHWruqXKyMl9+ueeRVk8RIEICkYECRlGkY1O+7U=;
X-YMail-OSG: uNFgG3UVM1l7_iX.ewZbp59FxQfPjObF5UMcHXL3HXt4BEY LfsrcdoQAh5ooWtMP_IN058LHM8kXUNhCOMIZ3Cri070U5qvlmlHUr4RCRSa NqwzxWZIwuIEFQSx6x3R_8r3NSH_eOeGV2OC_ebCKB685f5eMTHuoXufBdle 9RZgFRPttxwcXFe0sGjVLJPIYiyaSbjvrgCqVV9WIS6D2v_pzjMBFqRN.cMs oGzqpMcPAdOjvyj1nx5XL2cr5CuMIR7yMo_WB4MhQ8pO.jlYs2xJzS8zG6Wv GkUDonEEnW65vOKv4mRj9p1APIMc3Y0ZgWOutOnh6pvVZpYL7KPEab.7lTuR gRfUKb2HA9vBFwpxeafoqiRxcgFWQJ5R2GYMIxdx_LdsV8rsZrX5l_GYD9Z_ DGgdTrzmArDmgrc6ZGjVEsfq_ypBn_Jg._GAfpkSnYObn.GOLrVuU4x1Qxeu 6DSaD8J1oULifAF.gFBXDjJ66wgXgibtcZEGsDnkWrxdGwVdbfE4f73yCyyz wY3O5bHcMjlSMYTJoqmubw.LlmmMWYRufofjeystcbZNDSnBGLhDEkjme7tW AmnFbO7j6jJXovksUGXCSZkx_Ke1r6T4c7Cz0RGD0zt2k0EqD9QYjW2iElli Wd9ATuNPl4001KC_vCFfU9E5ovvDZqNWtvvo-
Received: from [101.171.213.77] by web142503.mail.bf1.yahoo.com via HTTP; Fri, 01 Mar 2013 08:42:24 PST
X-Rocket-MIMEInfo: 001.001, SSBhbSB3b25kZXJpbmcgaWYgYW55Ym9keSBoYXMgbG9va2VkIGF0IHRoZXNlIGUtaW5rIGRldmljZXMgKGxpa2UgdGhlIGtpbmRsZSkgZm9yIHVzZSBpbi9vbiBhIERUTj8KCgrCoAotLS0KdG9tX2Ffc3BhcmtzICJJdCdzIGEgbmVyZHkgdGhpbmcgSSBsaWtlIHRvIGRvIgpDaGlsZCBvZiB0aGUgSW50ZXJuZXQgYm9ybiAxOTgzClBsZWFzZSB1c2UgSVNPIGFwcHJvdmVkIGZpbGUgZm9ybWF0cyBleGNsdWRpbmcgT2ZmaWNlIE9wZW4gWE1MIC0gaHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvbm8td29yZC0BMAEBAQE-
X-Mailer: YahooMailWebService/0.8.135.514
References: 
Message-ID: <1362156144.64336.YahooMailNeo@web142503.mail.bf1.yahoo.com>
Date: Fri, 1 Mar 2013 08:42:24 -0800 (PST)
From: Tom Sparks <tom_a_sparks@yahoo.com.au>
To: "dtn-users@irtf.org" <dtn-users@irtf.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Subject: [dtn-users] e-ink devices on DTN
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: Tom Sparks <tom_a_sparks@yahoo.com.au>
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Fri, 01 Mar 2013 16:42:27 -0000

I am wondering if anybody has looked at these e-ink devices (like the kindl=
e) for use in/on a DTN?=0A=0A=0A=A0=0A---=0Atom_a_sparks "It's a nerdy thin=
g I like to do"=0AChild of the Internet born 1983=0APlease use ISO approved=
 file formats excluding Office Open XML - http://www.gnu.org/philosophy/no-=
word-attachments.html=0AUbuntu wiki page https://wiki.ubuntu.com/tomsparks

From robert.l.pitts@nasa.gov  Fri Mar  1 09:08:13 2013
Return-Path: <robert.l.pitts@nasa.gov>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2B8E611E80C5 for <dtn-users@ietfa.amsl.com>; Fri,  1 Mar 2013 09:08:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.598
X-Spam-Level: 
X-Spam-Status: No, score=-4.598 tagged_above=-999 required=5 tests=[AWL=-1.999, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QyAWe57ifOrh for <dtn-users@ietfa.amsl.com>; Fri,  1 Mar 2013 09:08:12 -0800 (PST)
Received: from ndmsnpf01.ndc.nasa.gov (NDMSNPF01.ndc.nasa.gov [IPv6:2001:4d0:8302:1100::101]) by ietfa.amsl.com (Postfix) with ESMTP id 59DEB11E80B8 for <dtn-users@irtf.org>; Fri,  1 Mar 2013 09:08:12 -0800 (PST)
Received: from ndmsppt104.ndc.nasa.gov (NDMSPPT104.ndc.nasa.gov [198.117.0.69]) by ndmsnpf01.ndc.nasa.gov (Postfix) with ESMTP id B9E6B2609A3; Fri,  1 Mar 2013 11:08:11 -0600 (CST)
Received: from ndmshub05.ndc.nasa.gov (ndmshub05.ndc.nasa.gov [198.117.2.164]) by ndmsppt104.ndc.nasa.gov (8.14.5/8.14.5) with ESMTP id r21H8Biq032416; Fri, 1 Mar 2013 11:08:11 -0600
Received: from NDMSSCC04.ndc.nasa.gov ([198.117.2.172]) by ndmshub05.ndc.nasa.gov ([198.117.2.164]) with mapi; Fri, 1 Mar 2013 11:08:11 -0600
From: "Pitts, Robert L. (MSFC-EO60)[HOSC SERVICES CONTRACT]" <robert.l.pitts@nasa.gov>
To: Tom Sparks <tom_a_sparks@yahoo.com.au>, "dtn-users@irtf.org" <dtn-users@irtf.org>
Date: Fri, 1 Mar 2013 11:08:10 -0600
Thread-Topic: [dtn-users] e-ink devices on DTN
Thread-Index: Ac4Wm8QBTZgd41CnSf+/iJhJVpaFnAAA0+Ew
Message-ID: <8A674285E0E0E344965DF27CCFEE30EC59B67C868D@NDMSSCC04.ndc.nasa.gov>
References: <1362156144.64336.YahooMailNeo@web142503.mail.bf1.yahoo.com>
In-Reply-To: <1362156144.64336.YahooMailNeo@web142503.mail.bf1.yahoo.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.9.8327, 1.0.431, 0.0.0000 definitions=2013-03-01_05:2013-03-01, 2013-03-01, 1970-01-01 signatures=0
Subject: Re: [dtn-users] e-ink devices on DTN
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Fri, 01 Mar 2013 17:08:13 -0000

I don't think anyone at MSFC has but it is a good idea since they are extre=
mely low power devices.

Lee

-----Original Message-----
From: dtn-users-bounces@irtf.org [mailto:dtn-users-bounces@irtf.org] On Beh=
alf Of Tom Sparks
Sent: Friday, March 01, 2013 10:42 AM
To: dtn-users@irtf.org
Subject: [dtn-users] e-ink devices on DTN

I am wondering if anybody has looked at these e-ink devices (like the kindl=
e) for use in/on a DTN?


=A0
---
tom_a_sparks "It's a nerdy thing I like to do"
Child of the Internet born 1983
Please use ISO approved file formats excluding Office Open XML - http://www=
.gnu.org/philosophy/no-word-attachments.html
Ubuntu wiki page https://wiki.ubuntu.com/tomsparks ________________________=
_______________________
dtn-users mailing list
dtn-users@irtf.org
https://www.irtf.org/mailman/listinfo/dtn-users

From sickmind@lavabit.com  Fri Mar  1 16:49:30 2013
Return-Path: <sickmind@lavabit.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1F87E21F8C32 for <dtn-users@ietfa.amsl.com>; Fri,  1 Mar 2013 16:49:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.224
X-Spam-Level: 
X-Spam-Status: No, score=-2.224 tagged_above=-999 required=5 tests=[AWL=0.375,  BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0y+N5T1OuFAE for <dtn-users@ietfa.amsl.com>; Fri,  1 Mar 2013 16:49:29 -0800 (PST)
Received: from karen.lavabit.com (karen.lavabit.com [72.249.41.33]) by ietfa.amsl.com (Postfix) with ESMTP id 7CFA621F8C2C for <dtn-users@irtf.org>; Fri,  1 Mar 2013 16:49:29 -0800 (PST)
Received: from a.earth.lavabit.com (a.earth.lavabit.com [192.168.111.10]) by karen.lavabit.com (Postfix) with ESMTP id 9634E11BB2E; Fri,  1 Mar 2013 18:49:28 -0600 (CST)
Received: from localhost (pppoe.178-66-165-181.dynamic.avangarddsl.ru [178.66.165.181]) by lavabit.com with ESMTP id I6ZYH22LKKWO; Fri, 01 Mar 2013 18:49:28 -0600
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=lavabit; d=lavabit.com; b=dlsPmA8cECseqAxmaaw455OEelpEUkpfLNx3RmEmNSyWW2xTo7xqzrj9j103/cMyi2NJUWl30VvIX9eFK7rd7pNbv2TF86hGj5yGIROB1NEHwdiIBAhXmsvdI9pRDWmuQFLhqGgkaEZv3Oqsy45VpDlqb8IcYpf+5UmHX8TGXoY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:Content-Type:Content-Disposition:In-Reply-To:User-Agent;
Date: Sat, 2 Mar 2013 00:49:38 +0000
From: Lana Black <sickmind@lavabit.com>
To: Tom Sparks <tom_a_sparks@yahoo.com.au>
Message-ID: <20130302004937.GA9727@glow>
References: <1362156144.64336.YahooMailNeo@web142503.mail.bf1.yahoo.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1362156144.64336.YahooMailNeo@web142503.mail.bf1.yahoo.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Cc: dtn-users maillist <dtn-users@irtf.org>
Subject: Re: [dtn-users] e-ink devices on DTN
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Mar 2013 00:49:30 -0000

On 08:42 Fri 01 Mar     , Tom Sparks wrote:
> I am wondering if anybody has looked at these e-ink devices (like the kindle) for use in/on a DTN?
> 

Just like any other mobile node, it could be used as a data mule. Of
course, it imposes certain requirements on the device in question, but I
think any device capable of running linux should be able to serve as a
dtn node.


From william.d.ivancic@nasa.gov  Fri Mar  1 20:11:56 2013
Return-Path: <william.d.ivancic@nasa.gov>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BA40021E80FB for <dtn-users@ietfa.amsl.com>; Fri,  1 Mar 2013 20:11:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.749
X-Spam-Level: 
X-Spam-Status: No, score=-3.749 tagged_above=-999 required=5 tests=[AWL=-1.150, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oUfS9vykGCVC for <dtn-users@ietfa.amsl.com>; Fri,  1 Mar 2013 20:11:50 -0800 (PST)
Received: from ndjsnpf02.ndc.nasa.gov (NDJSNPF02.ndc.nasa.gov [IPv6:2001:4d0:a302:1100::102]) by ietfa.amsl.com (Postfix) with ESMTP id 8159621E80CD for <dtn-users@irtf.org>; Fri,  1 Mar 2013 20:11:48 -0800 (PST)
Received: from ndjsppt103.ndc.nasa.gov (NDJSPPT103.ndc.nasa.gov [198.117.1.197]) by ndjsnpf02.ndc.nasa.gov (Postfix) with ESMTP id C8139A88C1; Fri,  1 Mar 2013 22:11:46 -0600 (CST)
Received: from ndjshub06.ndc.nasa.gov (ndjshub06.ndc.nasa.gov [198.117.4.165]) by ndjsppt103.ndc.nasa.gov (8.14.5/8.14.5) with ESMTP id r224BjTw005611; Fri, 1 Mar 2013 22:11:45 -0600
Received: from NDJSSCC07.ndc.nasa.gov ([198.117.4.178]) by ndjshub06.ndc.nasa.gov ([198.117.4.165]) with mapi; Fri, 1 Mar 2013 22:11:45 -0600
From: "Ivancic, William D. (GRC-RHN0)" <william.d.ivancic@nasa.gov>
To: Lana Black <sickmind@lavabit.com>, Tom Sparks <tom_a_sparks@yahoo.com.au>
Date: Fri, 1 Mar 2013 22:11:42 -0600
Thread-Topic: [dtn-users] e-ink devices on DTN
Thread-Index: Ac4W39ajRPXeCo/9Rs+5Ja98WbQUIAAHDTQB
Message-ID: <CD56E62E.114F2%william.d.ivancic@nasa.gov>
In-Reply-To: <20130302004937.GA9727@glow>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-Entourage/13.11.0.110726
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.9.8327, 1.0.431, 0.0.0000 definitions=2013-03-02_01:2013-03-01, 2013-03-02, 1970-01-01 signatures=0
Cc: dtn-users maillist <dtn-users@irtf.org>
Subject: Re: [dtn-users] e-ink devices on DTN
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Mar 2013 04:11:57 -0000

My wife works at a library and deals with numerous e-ink devices.  I believ=
e
the applications are pretty interactive for security reasons - security her=
e
being data-rights management.  It is not just file transfers.

The application has to be written to handle disconnection unless you are
fully connected in which case you don't need DTN.


Will





> From: Lana Black <sickmind@lavabit.com>
> Date: Fri, 1 Mar 2013 18:49:38 -0600
> To: Tom Sparks <tom_a_sparks@yahoo.com.au>
> Cc: dtn-users maillist <dtn-users@irtf.org>
> Subject: Re: [dtn-users] e-ink devices on DTN
>=20
> On 08:42 Fri 01 Mar     , Tom Sparks wrote:
>> I am wondering if anybody has looked at these e-ink devices (like the ki=
ndle)
>> for use in/on a DTN?
>>=20
>=20
> Just like any other mobile node, it could be used as a data mule. Of
> course, it imposes certain requirements on the device in question, but I
> think any device capable of running linux should be able to serve as a
> dtn node.
>=20
> _______________________________________________
> dtn-users mailing list
> dtn-users@irtf.org
> https://www.irtf.org/mailman/listinfo/dtn-users


From tom_a_sparks@yahoo.com.au  Sat Mar  2 08:03:45 2013
Return-Path: <tom_a_sparks@yahoo.com.au>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5F31021F8550 for <dtn-users@ietfa.amsl.com>; Sat,  2 Mar 2013 08:03:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7x2vY7nCs93V for <dtn-users@ietfa.amsl.com>; Sat,  2 Mar 2013 08:03:44 -0800 (PST)
Received: from nm23-vm0.bullet.mail.bf1.yahoo.com (nm23-vm0.bullet.mail.bf1.yahoo.com [98.139.212.191]) by ietfa.amsl.com (Postfix) with ESMTP id EBF5B21F84D1 for <dtn-users@irtf.org>; Sat,  2 Mar 2013 08:03:41 -0800 (PST)
Received: from [98.139.212.148] by nm23.bullet.mail.bf1.yahoo.com with NNFMP; 02 Mar 2013 16:03:41 -0000
Received: from [98.139.212.225] by tm5.bullet.mail.bf1.yahoo.com with NNFMP; 02 Mar 2013 16:03:41 -0000
Received: from [127.0.0.1] by omp1034.mail.bf1.yahoo.com with NNFMP; 02 Mar 2013 16:03:41 -0000
X-Yahoo-Newman-Property: ymail-3
X-Yahoo-Newman-Id: 278622.81145.bm@omp1034.mail.bf1.yahoo.com
Received: (qmail 52973 invoked by uid 60001); 2 Mar 2013 16:03:41 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com.au; s=s1024; t=1362240221; bh=RODfFvx0lSTaaBlfKTbWSnf2lzDu0FCO1pxebKTRp3A=; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:References:Message-ID:Date:From:Reply-To:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=h/9bfaQpFNbS0BrcJFtOdh9+4WHWZ7aYKtTV7sV2cWezwzZh7ZrCYKJHlk2vdY4TOQxxCBFXwRpAyeZgXbBpWcV3UcwDxoKcwh0oMOI0NBuBBIjPzLC0xKzcxj6aAWX9ybjoAxtVCPhVRS7SeH9pjGnd5Thh+gIb+TJoybKdPYo=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com.au; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:References:Message-ID:Date:From:Reply-To:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=CIQgWMO+PwpsmoJI8abHCa1TDUzu14vVy37iQBkavkio1va6ySupuXuNVXvZ6miZZAyHK8DnEiQkg88LKIIRdLKWlU84yFnetVhLam/hK0PEJgq4A2RRk4Fujtxprrc5joBusN7hWpIoBSIAYoZYGBiV3CnangJBJaWRZln+AeU=;
X-YMail-OSG: Fhd2AHQVM1ld6YdDjJHZgYMI09VB7OGJSICyJzaRfBiZJDB ZvitRTPNEOruIC9Azetn4RRpVu36N0rch7KYOfko3kgtXbcQkymJti5DUwD_ ImvzMik4vGDUJWjL67qQC60Kyz7Nf_dPviJr5yJh3nHOoqsRNCinDU7cpT2U 0j55k7i46kKpKG5s6b7SVKmppSAOSljnG82gJElyw7d1SRq2jmiz7R67XFtH Cv0sjkTpHb80wo6LIn_pvqzM60F.fJ90sY8upHvphalPgoCu8Qdwx1sD8M4p EOVxTe.q_3v5ybDXf1Zxy1JqebRl03K_IfYzC19ZkS903EGzdRdNUV9cyz8O q6SApLAYiQOEyWUYMFtR4b.UL5wdMTCXtlUg9s3MHTRF.N1cbiCDiXnxliOA PCQaMHGa_yIzMef3L6m_MCbGeb5_PczFiEOGKFjMV7Jo4aG8i5WEtblPMKlv fAadVJBAHVbKdlS.pbrwBv_.zxWFg6XO9D8vITeGi38mx8YxtZfQ0skFbLtX VEvy3foJcGo_S5uaPsfOhYFR1VeBUVdPw_HyhsFSSc4.qgWimr8eXZdexDgz 0B7QVoWzNhCvpOzOyByctA7T3vUFV4hyAjAAMUUNa_SMI4xFfs1web5YqH3y dsTuWbK8ZpMoeM9r4s.H6y_SoKfXdouT.7oZC0AIWbGjAYe9AeLN.FJzc0HH xfwIti_ebg_w7C19.MywtJcttNhnm48S63tojKdoQxzKFOOfrl9Sqq46PjiR KNziat.M-
Received: from [101.170.255.245] by web142503.mail.bf1.yahoo.com via HTTP; Sat, 02 Mar 2013 08:03:41 PST
X-Rocket-MIMEInfo: 001.001, LS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLQo.IEZyb206ICJJdmFuY2ljLCBXaWxsaWFtIEQuIChHUkMtUkhOMCkiIDx3aWxsaWFtLmQuaXZhbmNpY0BuYXNhLmdvdj4KPiBUbzogTGFuYSBCbGFjayA8c2lja21pbmRAbGF2YWJpdC5jb20.OyBUb20gU3BhcmtzIDx0b21fYV9zcGFya3NAeWFob28uY29tLmF1Pgo.IENjOiBkdG4tdXNlcnMgbWFpbGxpc3QgPGR0bi11c2Vyc0BpcnRmLm9yZz4KPiBTZW50OiBTYXR1cmRheSwgMiBNYXJjaCAyMDEzIDM6MTEgUE0KPiBTdWJqZWN0OiBSZTogW2R0bi11c2Vyc10BMAEBAQE-
X-Mailer: YahooMailWebService/0.8.135.514
References: <20130302004937.GA9727@glow> <CD56E62E.114F2%william.d.ivancic@nasa.gov>
Message-ID: <1362240221.40410.YahooMailNeo@web142503.mail.bf1.yahoo.com>
Date: Sat, 2 Mar 2013 08:03:41 -0800 (PST)
From: Tom Sparks <tom_a_sparks@yahoo.com.au>
To: "Ivancic, William D. \(GRC-RHN0\)" <william.d.ivancic@nasa.gov>, Lana Black <sickmind@lavabit.com>
In-Reply-To: <CD56E62E.114F2%william.d.ivancic@nasa.gov>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: dtn-users maillist <dtn-users@irtf.org>
Subject: Re: [dtn-users] e-ink devices on DTN
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: Tom Sparks <tom_a_sparks@yahoo.com.au>
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Mar 2013 16:03:45 -0000

----- Original Message -----=0A> From: "Ivancic, William D. (GRC-RHN0)" <wi=
lliam.d.ivancic@nasa.gov>=0A> To: Lana Black <sickmind@lavabit.com>; Tom Sp=
arks <tom_a_sparks@yahoo.com.au>=0A> Cc: dtn-users maillist <dtn-users@irtf=
.org>=0A> Sent: Saturday, 2 March 2013 3:11 PM=0A> Subject: Re: [dtn-users]=
 e-ink devices on DTN=0A> =0A> My wife works at a library and deals with nu=
merous e-ink devices.=A0 I believe=0A> the applications are pretty interact=
ive for security reasons - security here=0A> being data-rights management.=
=A0 It is not just file transfers.=0A> =0A> The application has to be writt=
en to handle disconnection unless you are=0A> fully connected in which case=
 you don't need DTN.=0A> Will=0Afor email:=0Amutt[1] could be used with mai=
ldir[2]=0Asee Configuring Mutt from [3]=0A=0AFor Web access:=0Aa lot of the=
 current system like TEK[4], freenet[5] use proxy servers witch are too mem=
ory hungry for e-ink devices=0A=0Athe offline browsing[6] method makes sens=
e,=0Abut when a url has not been mirrored the browser trys to connect to th=
e internet and fails=0AI have not seen a TEK, Freenet interface that is not=
 proxy server based=0A=0A=0A[1] http://en.wikipedia.org/wiki/Mutt_%28e-mail=
_client%29=0A[2] http://en.wikipedia.org/wiki/Maildir=0A[3] http://dannf.or=
g/docs/offlinemail.html=0A[4] http://tek.sourceforge.net/index.shtml=0A[5] =
http://en.wikipedia.org/wiki/Freenet=0A=0A[6] http://en.wikipedia.org/wiki/=
Offline_reader=0A

From aloomis@sarn.org  Sat Mar  2 15:23:09 2013
Return-Path: <aloomis@sarn.org>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 05C3F21F85BD for <dtn-users@ietfa.amsl.com>; Sat,  2 Mar 2013 15:23:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.883
X-Spam-Level: 
X-Spam-Status: No, score=-1.883 tagged_above=-999 required=5 tests=[AWL=1.093,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 32qfhFJtUWpC for <dtn-users@ietfa.amsl.com>; Sat,  2 Mar 2013 15:23:08 -0800 (PST)
Received: from mail-qe0-f53.google.com (mail-qe0-f53.google.com [209.85.128.53]) by ietfa.amsl.com (Postfix) with ESMTP id D429A21F8554 for <dtn-users@irtf.org>; Sat,  2 Mar 2013 15:23:07 -0800 (PST)
Received: by mail-qe0-f53.google.com with SMTP id cz11so3100844qeb.40 for <dtn-users@irtf.org>; Sat, 02 Mar 2013 15:23:07 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:x-gm-message-state; bh=Flo4Zg0CaGYNxErqS1p6s56xGfCMtn//4oVlimsUcl4=; b=I6uu+oB9jsczYOXSMXGF2JBUpBCqi3rvrBeWJLFMJ0IKu2SPNjkaqD/q2v7xZLLNH8 mcJ0hP0lkF8enFuegZCHgGnpG3H0tVixkJLnBoSIYBjFq1aWYJHNG5e/YWCne1pAo/3L ZFKF5oxo3rUDom5NR8Y9hTADI9jnQCWjpDvNgpmaAuHmEVcXN2rGJlsy340skP4Q/1mO VOR/q+vZMnNPFosRgr3rBeNd3qnBLx+F+9buz/d8Md29oIl7jEWv6ZXOu3R7mt74PD+z 5NrVzZoyArdMggc5As570PHXHG4/IVrSrJSQtXywV5RVTj8On/wBgQYvZUwCKxHMFF9Z VDsw==
MIME-Version: 1.0
X-Received: by 10.229.106.134 with SMTP id x6mr5458516qco.132.1362266587137; Sat, 02 Mar 2013 15:23:07 -0800 (PST)
Received: by 10.49.27.69 with HTTP; Sat, 2 Mar 2013 15:23:07 -0800 (PST)
In-Reply-To: <1361882036.4494.1350.camel@mightyatom>
References: <20130224123309.GA19354@glow> <1361716256.4494.1191.camel@mightyatom> <CAB9rx+8Sd2TOFr2jKwq+Mv8nH6CgKoEEkSOOHSohxwVzTYn1zA@mail.gmail.com> <1361811760.4494.1284.camel@mightyatom> <CAB9rx+9XGh6nWdsth6wu7D7WarA5SEpaxTtq8vSvzntnMo3OiA@mail.gmail.com> <1361882036.4494.1350.camel@mightyatom>
Date: Sat, 2 Mar 2013 18:23:07 -0500
Message-ID: <CAB9rx+_6ccT=mBkx28j97nMwApWptOhRb8CXHs_mFFGEG6YQKw@mail.gmail.com>
From: Amy Alford <aloomis@sarn.org>
To: Elwyn Davies <elwynd@folly.org.uk>
Content-Type: multipart/alternative; boundary=002354332a3a042e9b04d6f96881
X-Gm-Message-State: ALoCoQn6zUIFpKVd3pv3rFaeYgJWGJ4kGApWqF6V1klc41i+QsbouhHny3dG0MoSUoS64BJtdw9X
Cc: dtn-users maillist <dtn-users@irtf.org>
Subject: Re: [dtn-users] bundle fragmentation
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Mar 2013 23:23:09 -0000

--002354332a3a042e9b04d6f96881
Content-Type: text/plain; charset=ISO-8859-1

Makes sense.  I modified my implementation to use recv_blocks, and that did
make for a much cleaner solution.

The one glaring issue is predicting the size of the generated extension
blocks.  Currently, I'm letting the user configure the maximum length of a
payload, and fragmenting based on that.  That works beautifully for my
testing purposes, but is obviously unhelpful if the concern is MTUs.

There are a whole bunch of cases to consider in predicting the size of the
extension blocks:
1) Received extension blocks which may be copied unchanged, or
expanded/reduced by their block processors.
2) Extension blocks created by registered block processors when their
prepare methods are called to give them a chance to add blocks.
3) Extension Security Blocks encapsulating either of the above.
4) Age blocks, metadata blocks, PIB/PCB/BAB, and anything else which has
its own hooks in BundleProtocol::prepare_out_blocks

Existing BSP ciphersuites can predict a maximum block size.  PIB/PCB/ESB
need to know the security src/destination (which isn't link dependent) to
predict the size of the CMS formatted security result (which may contain
large amounts of data related to the security certificates).  BAB doesn't
use CMS, so while it may change security src/dest based on the link, the
security result size won't change based on this.  It is possible that
future ciphersuites will need to know the link in order to provide maximum
block sizes.

I'm thinking the best solution is to add a maximum_block_size method to
BlockProcessors, which takes a bundle and optionally a received block.  ESB
(which encapsulates another block) will probably need some special handling.


On Tue, Feb 26, 2013 at 7:33 AM, Elwyn Davies <elwynd@folly.org.uk> wrote:

> Hi, Amy.
>
> On Mon, 2013-02-25 at 20:21 -0500, Amy Alford wrote:
> >
> > Why is it pointless to copy the xmit_blocks?  They certainly need
> > patching up, but I've been able to do that AFAICT.  It ends up
> > behaving as though you sent the original bundle on the link, then the
> > next hop fragmented it.
> Perhaps pointless was the wrong word. The problem is that the Bundle
> structure that is created for each fragment is not properly 'valid'.
> Things will probably work out as long as it remains on the link for
> which the xmit blocks were created, but things will a.s. go very pear
> shaped if the daemon is shutdown and restarted because the bundle, as
> stored in persistent storage, will have no blocks since the storage is
> driven from recv_blocks and api_blocks which remain empty.  The
> resulting bundle read back will be flagged as invalid because it has no
> primary or payload blocks - at best it will be flagged and discarded -
> but there is a good chance it will trigger an assert somewhere.  A
> similar problem will occur if a new link is opened along which the
> fragment bundle could be routed - reroute_all_blocks will be called and
> the fragments may end up on other links. An attempt to create
> xmit_blocks for this new link will also barf. The same will happen if
> the the link is closed down and/or restarted.
>
> > Whether that's what you want for BSP (as opposed to fragmenting then
> > adding BSP blocks), I don't know.
> Right.. that depends on what sort of blocks you were adding.  The
> hop-by-hop integrity checks might have to be different - I don't know
> whether BAB blocks for hop-by-hop would be verified at the next security
> destination before or after reassembly (or indeed whether fragmentation
> of such a bundle would be allowed).
>
> Generated metadata blocks could also be a problem although that is more
> of a theoretical problem at the moment because the generated metadata
> block capability is not really used at present (the BPQ stuff that I am
> working on is nearest to it AFAICS as it generates bundles in response
> to queries if it has a match in the bundle cache and these have metadata
> blocks).
> >
> > On Mon, Feb 25, 2013 at 12:02 PM, Elwyn Davies <elwynd@folly.org.uk>
> > wrote:
> >         Looking at the two create_fragment methods, the second one is
> >         essentially useless (that's the one with 'link' in its
> >         parameters - it
> >         should probably be deleted as it is pointless copying the xmit
> >         blocks as
> >         Amy discovered) and the first one needs some refinement to
> >         make it work
> >         properly. If we actually generated a new recv_blocks list (and
> >         possibly
> >         an api_blocks list - but that is probably not vital) the new
> >         fragments
> >         would get transmitted properly without needing to fudge
> >         queue_bundles
> >         and also without deleteing the original full size bundle (I
> >         believe).
> >         However I think recording the MTU size to which the bundle has
> >         been
> >         fragmented would help as we could avoid refragmenting the
> >         whole bundle
> >         if it got tested on the same  link again (as it might after a
> >         new link
> >         opened).
> >
>
>

--002354332a3a042e9b04d6f96881
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Makes sense. =A0I modified my implementation to use recv_blocks, and that d=
id make for a much cleaner solution. =A0<div><br></div><div>The one glaring=
 issue is predicting the size of the generated extension blocks. =A0Current=
ly, I&#39;m letting the user configure the maximum length of a payload, and=
 fragmenting based on that. =A0That works beautifully for my testing purpos=
es, but is obviously unhelpful if the concern is MTUs. =A0</div>


<div><br></div><div>There are a whole bunch of cases to consider in predict=
ing the size of the extension blocks:</div><div>1) Received extension block=
s which may be copied unchanged, or expanded/reduced by their block process=
ors.</div>

<div>2) Extension blocks created by registered block processors when their =
prepare methods are called to give them a chance to add blocks.</div><div>3=
) Extension Security Blocks encapsulating either of the above.</div><div>

4) Age blocks, metadata blocks, PIB/PCB/BAB, and anything else which has it=
s own hooks in BundleProtocol::prepare_out_blocks</div><div><br></div><div>=
Existing BSP ciphersuites can predict a maximum block size. =A0PIB/PCB/ESB =
need to know the security src/destination (which isn&#39;t link dependent) =
to predict the size of the CMS formatted security result (which may contain=
 large amounts of data related to the security certificates). =A0BAB doesn&=
#39;t use CMS, so while it may change security src/dest based on the link, =
the security result size won&#39;t change based on this. =A0It is possible =
that future ciphersuites will need to know the link in order to provide max=
imum block sizes.</div>

<div><br></div><div>I&#39;m thinking the best solution is to add a maximum_=
block_size method to BlockProcessors, which takes a bundle and optionally a=
 received block. =A0ESB (which encapsulates another block) will probably ne=
ed some special handling.</div>
<div><br></div><div><br></div><div>
<div class=3D"gmail_quote">On Tue, Feb 26, 2013 at 7:33 AM, Elwyn Davies <s=
pan dir=3D"ltr">&lt;<a href=3D"mailto:elwynd@folly.org.uk" target=3D"_blank=
">elwynd@folly.org.uk</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_q=
uote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1e=
x">


Hi, Amy.<br>
<div><br>
On Mon, 2013-02-25 at 20:21 -0500, Amy Alford wrote:<br>
&gt;<br>
&gt; Why is it pointless to copy the xmit_blocks? =A0They certainly need<br=
>
&gt; patching up, but I&#39;ve been able to do that AFAICT. =A0It ends up<b=
r>
&gt; behaving as though you sent the original bundle on the link, then the<=
br>
&gt; next hop fragmented it.<br>
</div>Perhaps pointless was the wrong word. The problem is that the Bundle<=
br>
structure that is created for each fragment is not properly &#39;valid&#39;=
.<br>
Things will probably work out as long as it remains on the link for<br>
which the xmit blocks were created, but things will a.s. go very pear<br>
shaped if the daemon is shutdown and restarted because the bundle, as<br>
stored in persistent storage, will have no blocks since the storage is<br>
driven from recv_blocks and api_blocks which remain empty. =A0The<br>
resulting bundle read back will be flagged as invalid because it has no<br>
primary or payload blocks - at best it will be flagged and discarded -<br>
but there is a good chance it will trigger an assert somewhere. =A0A<br>
similar problem will occur if a new link is opened along which the<br>
fragment bundle could be routed - reroute_all_blocks will be called and<br>
the fragments may end up on other links. An attempt to create<br>
xmit_blocks for this new link will also barf. The same will happen if<br>
the the link is closed down and/or restarted.<br>
<div><br>
&gt; Whether that&#39;s what you want for BSP (as opposed to fragmenting th=
en<br>
&gt; adding BSP blocks), I don&#39;t know.<br>
</div>Right.. that depends on what sort of blocks you were adding. =A0The<b=
r>
hop-by-hop integrity checks might have to be different - I don&#39;t know<b=
r>
whether BAB blocks for hop-by-hop would be verified at the next security<br=
>
destination before or after reassembly (or indeed whether fragmentation<br>
of such a bundle would be allowed).<br>
<br>
Generated metadata blocks could also be a problem although that is more<br>
of a theoretical problem at the moment because the generated metadata<br>
block capability is not really used at present (the BPQ stuff that I am<br>
working on is nearest to it AFAICS as it generates bundles in response<br>
to queries if it has a match in the bundle cache and these have metadata<br=
>
blocks).<br>
<div><div>&gt;<br>
&gt; On Mon, Feb 25, 2013 at 12:02 PM, Elwyn Davies &lt;<a href=3D"mailto:e=
lwynd@folly.org.uk" target=3D"_blank">elwynd@folly.org.uk</a>&gt;<br>
&gt; wrote:<br>
&gt; =A0 =A0 =A0 =A0 Looking at the two create_fragment methods, the second=
 one is<br>
&gt; =A0 =A0 =A0 =A0 essentially useless (that&#39;s the one with &#39;link=
&#39; in its<br>
&gt; =A0 =A0 =A0 =A0 parameters - it<br>
&gt; =A0 =A0 =A0 =A0 should probably be deleted as it is pointless copying =
the xmit<br>
&gt; =A0 =A0 =A0 =A0 blocks as<br>
&gt; =A0 =A0 =A0 =A0 Amy discovered) and the first one needs some refinemen=
t to<br>
&gt; =A0 =A0 =A0 =A0 make it work<br>
&gt; =A0 =A0 =A0 =A0 properly. If we actually generated a new recv_blocks l=
ist (and<br>
&gt; =A0 =A0 =A0 =A0 possibly<br>
&gt; =A0 =A0 =A0 =A0 an api_blocks list - but that is probably not vital) t=
he new<br>
&gt; =A0 =A0 =A0 =A0 fragments<br>
&gt; =A0 =A0 =A0 =A0 would get transmitted properly without needing to fudg=
e<br>
&gt; =A0 =A0 =A0 =A0 queue_bundles<br>
&gt; =A0 =A0 =A0 =A0 and also without deleteing the original full size bund=
le (I<br>
&gt; =A0 =A0 =A0 =A0 believe).<br>
&gt; =A0 =A0 =A0 =A0 However I think recording the MTU size to which the bu=
ndle has<br>
&gt; =A0 =A0 =A0 =A0 been<br>
&gt; =A0 =A0 =A0 =A0 fragmented would help as we could avoid refragmenting =
the<br>
&gt; =A0 =A0 =A0 =A0 whole bundle<br>
&gt; =A0 =A0 =A0 =A0 if it got tested on the same =A0link again (as it migh=
t after a<br>
&gt; =A0 =A0 =A0 =A0 new link<br>
&gt; =A0 =A0 =A0 =A0 opened).<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>

--002354332a3a042e9b04d6f96881--

From elwynd@folly.org.uk  Sat Mar  2 18:13:35 2013
Return-Path: <elwynd@folly.org.uk>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C270E21F85EE for <dtn-users@ietfa.amsl.com>; Sat,  2 Mar 2013 18:13:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.079
X-Spam-Level: 
X-Spam-Status: No, score=-2.079 tagged_above=-999 required=5 tests=[AWL=0.520,  BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jJpLr-tNnHdJ for <dtn-users@ietfa.amsl.com>; Sat,  2 Mar 2013 18:13:34 -0800 (PST)
Received: from a.painless.aa.net.uk (a.painless.aa.net.uk [IPv6:2001:8b0:0:30::51bb:1e33]) by ietfa.amsl.com (Postfix) with ESMTP id 705B921F85EB for <dtn-users@irtf.org>; Sat,  2 Mar 2013 18:13:34 -0800 (PST)
Received: from mightyatom.folly.org.uk ([81.187.254.250]) by a.painless.aa.net.uk with esmtp (Exim 4.77) (envelope-from <elwynd@folly.org.uk>) id 1UByQd-0001rD-H3; Sun, 03 Mar 2013 02:13:31 +0000
From: Elwyn Davies <elwynd@folly.org.uk>
To: Amy Alford <aloomis@sarn.org>
In-Reply-To: <CAB9rx+_6ccT=mBkx28j97nMwApWptOhRb8CXHs_mFFGEG6YQKw@mail.gmail.com>
References: <20130224123309.GA19354@glow> <1361716256.4494.1191.camel@mightyatom> <CAB9rx+8Sd2TOFr2jKwq+Mv8nH6CgKoEEkSOOHSohxwVzTYn1zA@mail.gmail.com> <1361811760.4494.1284.camel@mightyatom> <CAB9rx+9XGh6nWdsth6wu7D7WarA5SEpaxTtq8vSvzntnMo3OiA@mail.gmail.com> <1361882036.4494.1350.camel@mightyatom> <CAB9rx+_6ccT=mBkx28j97nMwApWptOhRb8CXHs_mFFGEG6YQKw@mail.gmail.com>
Content-Type: text/plain
Organization: Folly Consulting
Date: Sun, 03 Mar 2013 02:12:01 +0000
Message-Id: <1362276721.4494.2433.camel@mightyatom>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.3 
Content-Transfer-Encoding: 7bit
Cc: dtn-users maillist <dtn-users@irtf.org>
Subject: Re: [dtn-users] bundle fragmentation
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Mar 2013 02:13:35 -0000

Hi.

I was wondering how you were getting on with this!

Is it not the case that at the point you find out you need to do
proactive fragmentation that you have a set of xmit blocks set up?  

I don't think that any of these blocks will get bigger if you reduce the
size of the payload (not certain about the security blocks but can't see
how that would be likely).  So I would have thought you could use the
xmit block sizes to decide (firstly) whether fragmentation is possible
and (if it is) how to split up the payload.

However, a horrible thought just struck me... The security blocks with a
before and after part if fragmentation is taking place at a security
source... How do these calculate the after part in a fragmented bundle?
This needs the whole payload.  May have to have a pointer to the
original bundle or some other fudge. Yuck!  A nasty horrible trick I
just thought up would be to send the 'securitized' bundle to yourself in
such a way that the node is no longer the security source.  The blocks
then all end up on the recv_blocks list and just have to be split up by
the fragmentation rather needing regeneration.  Super-yuck!!

OTOH if the fragmenting node is not a security source, then the two part
security blocks can't be altered so the smit blocks solution works I
think.
Some comments on the changing block size question below...

Regards,
Elwyn 

On Sat, 2013-03-02 at 18:23 -0500, Amy Alford wrote:
> Makes sense.  I modified my implementation to use recv_blocks, and
> that did make for a much cleaner solution.  
> 
> 
> The one glaring issue is predicting the size of the generated
> extension blocks.  Currently, I'm letting the user configure the
> maximum length of a payload, and fragmenting based on that.  That
> works beautifully for my testing purposes, but is obviously unhelpful
> if the concern is MTUs.  
> 
> 
> There are a whole bunch of cases to consider in predicting the size of
> the extension blocks:
> 1) Received extension blocks which may be copied unchanged, or
> expanded/reduced by their block processors.
As far as I know changes can't happen apart possibly for the age block
(have to check that one).
> 2) Extension blocks created by registered block processors when their
> prepare methods are called to give them a chance to add blocks.
Again there aren't any examples AFAIK apart from the two part security
blocks.
You could get (in theory - but as far as I know nobody has found a use
for it) extra generated metadata blocks but you'd know about those
because (A) they have to be in the generated metadata block list for the
link when the prepare method is called and (B) you's have seen them in
the xmit blocks list for the whole bundle.
> 3) Extension Security Blocks encapsulating either of the above.
(see previous comment)
> 4) Age blocks, metadata blocks, PIB/PCB/BAB, and anything else which
> has its own hooks in BundleProtocol::prepare_out_blocks
It might be legitimate to force 'don't fragment' for any of these cases
that was really serious, but I don't think in practice its a big deal.
I think the xmit blocks list is still your friend here.
> 
> 
> Existing BSP ciphersuites can predict a maximum block size.
>  PIB/PCB/ESB need to know the security src/destination (which isn't
> link dependent) to predict the size of the CMS formatted security
> result (which may contain large amounts of data related to the
> security certificates).  BAB doesn't use CMS, so while it may change
> security src/dest based on the link, the security result size won't
> change based on this.  It is possible that future ciphersuites will
> need to know the link in order to provide maximum block sizes.
> 
> 
> I'm thinking the best solution is to add a maximum_block_size method
> to BlockProcessors, which takes a bundle and optionally a received
> block.  ESB (which encapsulates another block) will probably need some
> special handling.
> 
> 
> 
> 
> On Tue, Feb 26, 2013 at 7:33 AM, Elwyn Davies <elwynd@folly.org.uk>
> wrote:
>         Hi, Amy.
>         
>         On Mon, 2013-02-25 at 20:21 -0500, Amy Alford wrote:
>         >
>         > Why is it pointless to copy the xmit_blocks?  They certainly
>         need
>         > patching up, but I've been able to do that AFAICT.  It ends
>         up
>         > behaving as though you sent the original bundle on the link,
>         then the
>         > next hop fragmented it.
>         
>         Perhaps pointless was the wrong word. The problem is that the
>         Bundle
>         structure that is created for each fragment is not properly
>         'valid'.
>         Things will probably work out as long as it remains on the
>         link for
>         which the xmit blocks were created, but things will a.s. go
>         very pear
>         shaped if the daemon is shutdown and restarted because the
>         bundle, as
>         stored in persistent storage, will have no blocks since the
>         storage is
>         driven from recv_blocks and api_blocks which remain empty.
>          The
>         resulting bundle read back will be flagged as invalid because
>         it has no
>         primary or payload blocks - at best it will be flagged and
>         discarded -
>         but there is a good chance it will trigger an assert
>         somewhere.  A
>         similar problem will occur if a new link is opened along which
>         the
>         fragment bundle could be routed - reroute_all_blocks will be
>         called and
>         the fragments may end up on other links. An attempt to create
>         xmit_blocks for this new link will also barf. The same will
>         happen if
>         the the link is closed down and/or restarted.
>         
>         > Whether that's what you want for BSP (as opposed to
>         fragmenting then
>         > adding BSP blocks), I don't know.
>         
>         Right.. that depends on what sort of blocks you were adding.
>          The
>         hop-by-hop integrity checks might have to be different - I
>         don't know
>         whether BAB blocks for hop-by-hop would be verified at the
>         next security
>         destination before or after reassembly (or indeed whether
>         fragmentation
>         of such a bundle would be allowed).
>         
>         Generated metadata blocks could also be a problem although
>         that is more
>         of a theoretical problem at the moment because the generated
>         metadata
>         block capability is not really used at present (the BPQ stuff
>         that I am
>         working on is nearest to it AFAICS as it generates bundles in
>         response
>         to queries if it has a match in the bundle cache and these
>         have metadata
>         blocks).
>         >
>         > On Mon, Feb 25, 2013 at 12:02 PM, Elwyn Davies
>         <elwynd@folly.org.uk>
>         > wrote:
>         >         Looking at the two create_fragment methods, the
>         second one is
>         >         essentially useless (that's the one with 'link' in
>         its
>         >         parameters - it
>         >         should probably be deleted as it is pointless
>         copying the xmit
>         >         blocks as
>         >         Amy discovered) and the first one needs some
>         refinement to
>         >         make it work
>         >         properly. If we actually generated a new recv_blocks
>         list (and
>         >         possibly
>         >         an api_blocks list - but that is probably not vital)
>         the new
>         >         fragments
>         >         would get transmitted properly without needing to
>         fudge
>         >         queue_bundles
>         >         and also without deleteing the original full size
>         bundle (I
>         >         believe).
>         >         However I think recording the MTU size to which the
>         bundle has
>         >         been
>         >         fragmented would help as we could avoid
>         refragmenting the
>         >         whole bundle
>         >         if it got tested on the same  link again (as it
>         might after a
>         >         new link
>         >         opened).
>         >
>         
>         
> 
> 


From elwynd@folly.org.uk  Sun Mar  3 03:25:58 2013
Return-Path: <elwynd@folly.org.uk>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 44C5721F868F for <dtn-users@ietfa.amsl.com>; Sun,  3 Mar 2013 03:25:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.131
X-Spam-Level: 
X-Spam-Status: No, score=-2.131 tagged_above=-999 required=5 tests=[AWL=0.468,  BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SvT-FHM3pS3c for <dtn-users@ietfa.amsl.com>; Sun,  3 Mar 2013 03:25:57 -0800 (PST)
Received: from b.painless.aa.net.uk (b.painless.aa.net.uk [IPv6:2001:8b0:0:30::51bb:1e34]) by ietfa.amsl.com (Postfix) with ESMTP id D085B21F8654 for <dtn-users@irtf.org>; Sun,  3 Mar 2013 03:25:56 -0800 (PST)
Received: from mightyatom.folly.org.uk ([81.187.254.250]) by b.painless.aa.net.uk with esmtp (Exim 4.72) (envelope-from <elwynd@folly.org.uk>) id 1UC73C-0002nv-UC; Sun, 03 Mar 2013 11:25:55 +0000
From: Elwyn Davies <elwynd@folly.org.uk>
To: Amy Alford <aloomis@sarn.org>
In-Reply-To: <CAB9rx+_6ccT=mBkx28j97nMwApWptOhRb8CXHs_mFFGEG6YQKw@mail.gmail.com>
References: <20130224123309.GA19354@glow> <1361716256.4494.1191.camel@mightyatom> <CAB9rx+8Sd2TOFr2jKwq+Mv8nH6CgKoEEkSOOHSohxwVzTYn1zA@mail.gmail.com> <1361811760.4494.1284.camel@mightyatom> <CAB9rx+9XGh6nWdsth6wu7D7WarA5SEpaxTtq8vSvzntnMo3OiA@mail.gmail.com> <1361882036.4494.1350.camel@mightyatom> <CAB9rx+_6ccT=mBkx28j97nMwApWptOhRb8CXHs_mFFGEG6YQKw@mail.gmail.com>
Content-Type: text/plain
Organization: Folly Consulting
Date: Sun, 03 Mar 2013 11:24:23 +0000
Message-Id: <1362309863.4494.3006.camel@mightyatom>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.3 
Content-Transfer-Encoding: 7bit
Cc: dtn-users maillist <dtn-users@irtf.org>
Subject: Re: [dtn-users] bundle fragmentation
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Mar 2013 11:25:58 -0000

PS.

After sleeping on it, I realized that there is still a snag if somebody
eventually gets around to using the generated metadata blocks on a per
link basis - and also the previous hop block which is also essentially a
per link (type) but would have to go with every fragment on a link type
that needed it.

I have a horrible suspiscion that this is just rerunning all the
discussion there has been about IPv6 and tunnel MTUs with a slightly
different set of parameters.

I guess the best one can do is to leave a bit of slack in every fragment
to cater for (particularly) Previous Hop Blocks.

Thoughts?

All this stuff is certainly something that needs to feed into the
RFC5050bis discussion that we are supposed to be having in DTNRG.

Regards,
Elwyn


Hi.

I was wondering how you were getting on with this!

Is it not the case that at the point you find out you need to do
proactive fragmentation that you have a set of xmit blocks set up?  

I don't think that any of these blocks will get bigger if you reduce the
size of the payload (not certain about the security blocks but can't see
how that would be likely).  So I would have thought you could use the
xmit block sizes to decide (firstly) whether fragmentation is possible
and (if it is) how to split up the payload.

However, a horrible thought just struck me... The security blocks with a
before and after part if fragmentation is taking place at a security
source... How do these calculate the after part in a fragmented bundle?
This needs the whole payload.  May have to have a pointer to the
original bundle or some other fudge. Yuck!  A nasty horrible trick I
just thought up would be to send the 'securitized' bundle to yourself in
such a way that the node is no longer the security source.  The blocks
then all end up on the recv_blocks list and just have to be split up by
the fragmentation rather needing regeneration.  Super-yuck!!

OTOH if the fragmenting node is not a security source, then the two part
security blocks can't be altered so the smit blocks solution works I
think.
Some comments on the changing block size question below...

Regards,
Elwyn 

On Sat, 2013-03-02 at 18:23 -0500, Amy Alford wrote:
> Makes sense.  I modified my implementation to use recv_blocks, and
> that did make for a much cleaner solution.  
> 
> 
> The one glaring issue is predicting the size of the generated
> extension blocks.  Currently, I'm letting the user configure the
> maximum length of a payload, and fragmenting based on that.  That
> works beautifully for my testing purposes, but is obviously unhelpful
> if the concern is MTUs.  
> 
> 
> There are a whole bunch of cases to consider in predicting the size of
> the extension blocks:
> 1) Received extension blocks which may be copied unchanged, or
> expanded/reduced by their block processors.
As far as I know changes can't happen apart possibly for the age block
(have to check that one).
> 2) Extension blocks created by registered block processors when their
> prepare methods are called to give them a chance to add blocks.
Again there aren't any examples AFAIK apart from the two part security
blocks.
You could get (in theory - but as far as I know nobody has found a use
for it) extra generated metadata blocks but you'd know about those
because (A) they have to be in the generated metadata block list for the
link when the prepare method is called and (B) you's have seen them in
the xmit blocks list for the whole bundle.
> 3) Extension Security Blocks encapsulating either of the above.
(see previous comment)
> 4) Age blocks, metadata blocks, PIB/PCB/BAB, and anything else which
> has its own hooks in BundleProtocol::prepare_out_blocks
It might be legitimate to force 'don't fragment' for any of these cases
that was really serious, but I don't think in practice its a big deal.
I think the xmit blocks list is still your friend here.
> 
> 
> Existing BSP ciphersuites can predict a maximum block size.
>  PIB/PCB/ESB need to know the security src/destination (which isn't
> link dependent) to predict the size of the CMS formatted security
> result (which may contain large amounts of data related to the
> security certificates).  BAB doesn't use CMS, so while it may change
> security src/dest based on the link, the security result size won't
> change based on this.  It is possible that future ciphersuites will
> need to know the link in order to provide maximum block sizes.
> 
> 
> I'm thinking the best solution is to add a maximum_block_size method
> to BlockProcessors, which takes a bundle and optionally a received
> block.  ESB (which encapsulates another block) will probably need some
> special handling.
> 
> 
> 
> 
> On Tue, Feb 26, 2013 at 7:33 AM, Elwyn Davies <elwynd@folly.org.uk>
> wrote:
>         Hi, Amy.
>         
>         On Mon, 2013-02-25 at 20:21 -0500, Amy Alford wrote:
>         >
>         > Why is it pointless to copy the xmit_blocks?  They certainly
>         need
>         > patching up, but I've been able to do that AFAICT.  It ends
>         up
>         > behaving as though you sent the original bundle on the link,
>         then the
>         > next hop fragmented it.
>         
>         Perhaps pointless was the wrong word. The problem is that the
>         Bundle
>         structure that is created for each fragment is not properly
>         'valid'.
>         Things will probably work out as long as it remains on the
>         link for
>         which the xmit blocks were created, but things will a.s. go
>         very pear
>         shaped if the daemon is shutdown and restarted because the
>         bundle, as
>         stored in persistent storage, will have no blocks since the
>         storage is
>         driven from recv_blocks and api_blocks which remain empty.
>          The
>         resulting bundle read back will be flagged as invalid because
>         it has no
>         primary or payload blocks - at best it will be flagged and
>         discarded -
>         but there is a good chance it will trigger an assert
>         somewhere.  A
>         similar problem will occur if a new link is opened along which
>         the
>         fragment bundle could be routed - reroute_all_blocks will be
>         called and
>         the fragments may end up on other links. An attempt to create
>         xmit_blocks for this new link will also barf. The same will
>         happen if
>         the the link is closed down and/or restarted.
>         
>         > Whether that's what you want for BSP (as opposed to
>         fragmenting then
>         > adding BSP blocks), I don't know.
>         
>         Right.. that depends on what sort of blocks you were adding.
>          The
>         hop-by-hop integrity checks might have to be different - I
>         don't know
>         whether BAB blocks for hop-by-hop would be verified at the
>         next security
>         destination before or after reassembly (or indeed whether
>         fragmentation
>         of such a bundle would be allowed).
>         
>         Generated metadata blocks could also be a problem although
>         that is more
>         of a theoretical problem at the moment because the generated
>         metadata
>         block capability is not really used at present (the BPQ stuff
>         that I am
>         working on is nearest to it AFAICS as it generates bundles in
>         response
>         to queries if it has a match in the bundle cache and these
>         have metadata
>         blocks).
>         >
>         > On Mon, Feb 25, 2013 at 12:02 PM, Elwyn Davies
>         <elwynd@folly.org.uk>
>         > wrote:
>         >         Looking at the two create_fragment methods, the
>         second one is
>         >         essentially useless (that's the one with 'link' in
>         its
>         >         parameters - it
>         >         should probably be deleted as it is pointless
>         copying the xmit
>         >         blocks as
>         >         Amy discovered) and the first one needs some
>         refinement to
>         >         make it work
>         >         properly. If we actually generated a new recv_blocks
>         list (and
>         >         possibly
>         >         an api_blocks list - but that is probably not vital)
>         the new
>         >         fragments
>         >         would get transmitted properly without needing to
>         fudge
>         >         queue_bundles
>         >         and also without deleteing the original full size
>         bundle (I
>         >         believe).
>         >         However I think recording the MTU size to which the
>         bundle has
>         >         been
>         >         fragmented would help as we could avoid
>         refragmenting the
>         >         whole bundle
>         >         if it got tested on the same  link again (as it
>         might after a
>         >         new link
>         >         opened).
>         >
>         
>         
> 
> 

_______________________________________________
dtn-users mailing list
dtn-users@irtf.org
https://www.irtf.org/mailman/listinfo/dtn-users


From James.R.Wright@colorado.edu  Mon Mar  4 10:05:04 2013
Return-Path: <James.R.Wright@colorado.edu>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1DD6221F8CD0 for <dtn-users@ietfa.amsl.com>; Mon,  4 Mar 2013 10:05:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id m4-ugUxDKvZ2 for <dtn-users@ietfa.amsl.com>; Mon,  4 Mar 2013 10:05:03 -0800 (PST)
Received: from ipmx6.colorado.edu (ipmx6.colorado.edu [128.138.128.246]) by ietfa.amsl.com (Postfix) with ESMTP id 588EB21F8CCE for <dtn-users@irtf.org>; Mon,  4 Mar 2013 10:05:00 -0800 (PST)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AqEEAN/hNFHAqBGb/2dsb2JhbABBA4Jmv2qBGHOCHwEBAQMBAQEBaAMDCAULAgEIGC4nCyUBAQQOBYgNBgELu1aINgSNYngjEAcRgk5hA4g2Np5GgyiBSg
X-IronPort-AV: E=Sophos;i="4.84,781,1355122800"; d="scan'208";a="22808226"
Received: from omr-raz-2-priv.int.colorado.edu ([192.168.17.155]) by ipmx6-priv.int.colorado.edu with ESMTP; 04 Mar 2013 11:04:59 -0700
Received: from exhub2-pub.colorado.edu (EHLO exhub2.ad.colorado.edu) ([128.138.123.208]) by omr-raz-2-priv.int.colorado.edu (MOS 4.1.10-GA FastPath queued) with ESMTP id KBL02170; Mon, 04 Mar 2013 11:04:59 -0700 (MST)
Received: from exc4.ad.colorado.edu ([fe80::34e1:313d:54f:f797]) by exhub2.ad.colorado.edu ([::1]) with mapi; Mon, 4 Mar 2013 11:04:58 -0700
From: Jim Wright <James.R.Wright@Colorado.EDU>
To: Elwyn Davies <elwynd@folly.org.uk>
Date: Mon, 4 Mar 2013 11:04:57 -0700
Thread-Topic: [dtn-users] DTN2 and oasys tests
Thread-Index: Ac4ZAsf4aM1tct5WR5eM+Y0IFINBVQ==
Message-ID: <FADAB229-57B3-42D7-BC38-96BFD1BE4947@colorado.edu>
References: <7B23C357-CC4C-4438-A030-CBDDEB8E4104@colorado.edu> <1362007123.4494.1468.camel@mightyatom>
In-Reply-To: <1362007123.4494.1468.camel@mightyatom>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: dtn-users maillist <dtn-users@irtf.org>
Subject: Re: [dtn-users] DTN2 and oasys tests
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Mar 2013 18:05:04 -0000

Thanks Elwyn. With that I was able to run the tests.

Jim


On Feb 27, 2013, at 4:18 PM, Elwyn Davies wrote:

> Hi, Jim.
>=20
> Have you grabbed the test_utils component from the Sourceforge site?
> That has scripts for running multiple tests.
>=20
> Alex McMahon (TCD) is the expert on the tests.  We run nightly
> compilation and test runs on the most up to date code on one of the
> machines at TCD.  I'll let him give you the low down on what does and
> does not work.
>=20
> A small warning: The ODBC/SQLite persistent storage mechanism in 2.8.0
> is only marginally stable and it is conceivable that you may encounter
> problems with forwarding logs and opportunistic or manually configured
> (i.e. not setup by the config file) links after restarts because the
> link names may change after restarts leading to inconsistent forwarding
> logs. This was not handled correctly by changeset 3518.=20
>=20
> Also considerable work has been done on the LTP implementation since
> 2.8.0 to ensure that it interoperates with ION - Stephen Farrell can
> give you chapter and verse on this one.
>=20
> Regards,
> Elwyn Davies=20
>=20
> On Wed, 2013-02-27 at 15:00 -0700, Jim Wright wrote:
>> I'm beginning to use DTN2. I am setting up a single DTN2 node to
>> emulate a configuration which will be in use with our experiments
>> onboard ISS. Our ground equipment and payloads run ION and will be
>> communicating through a NASA DTN2 node. Because of my focus on
>> interoperability testing, I am using DTN2 2.8.0 hg
>> revision 14ffb2a3aa16 and oasys 1.5.0 hg revision 2a143c1f5eea. I
>> realize this is not the most recent code, but it is what our partners
>> at NASA recommend using. We will be following their update schedule.
>>=20
>> I need to run this with as few local modifications as possible. I have
>> created RPM spec files for DTN2 and oasys and that is working fine. I
>> have everything building and packaging well. I'd like to run the tests
>> included with both the oasys and DTN2 code to verify that all is
>> working. My concern is that while there are a number of tests present,
>> there appears to be no way to systematically run them. Is anyone
>> actually using these tests?
>>=20
>>=20
>> Here are some specifics:
>>=20
>>=20
>> * In oasys, running the tests by hand in the test directory, I find
>> that 4 of the tests
>> fail: berkeley-db-test, filesys-db-test, memory-store-test, stack-trace-=
test. Is this expected behavior, or should I be concerned that my setup has=
 problems?
>>=20
>>=20
>> * In dtn2, running the tests by hand in the test/unit-test directory,
>> I find that 1 of the tests fails: prophet-bundle-core-test. Actually,
>> two tests failed using just the code from the mercurial pull, but one
>> of my patches appears to have fixed one of them.
>>=20
>>=20
>> * In dtn2, there are a great many tcl scripts intended to run tests. I
>> still can't figure out how to get any of them to execute. Help!?!
>>=20
>>=20
>> Thanks for any assistance. I've been following the DTN2 mailing lists
>> for nearly a year, and I haven't seen these tests discussed.
>>=20
>>=20
>> Jim Wright
>> BioServe Space Technologies
>> james.r.wright@colorado.edu
>> 303-492-1579
>>=20
>>=20
>> _______________________________________________
>> dtn-users mailing list
>> dtn-users@irtf.org
>> https://www.irtf.org/mailman/listinfo/dtn-users
>=20


From elwynd@folly.org.uk  Mon Mar  4 10:57:27 2013
Return-Path: <elwynd@folly.org.uk>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7F86821F8DB6 for <dtn-users@ietfa.amsl.com>; Mon,  4 Mar 2013 10:57:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id V2lVQA-o+2-h for <dtn-users@ietfa.amsl.com>; Mon,  4 Mar 2013 10:57:23 -0800 (PST)
Received: from a.painless.aa.net.uk (a.painless.aa.net.uk [IPv6:2001:8b0:0:30::51bb:1e33]) by ietfa.amsl.com (Postfix) with ESMTP id 291D521F8D53 for <dtn-users@irtf.org>; Mon,  4 Mar 2013 10:57:23 -0800 (PST)
Received: from mightyatom.folly.org.uk ([81.187.254.250]) by a.painless.aa.net.uk with esmtp (Exim 4.77) (envelope-from <elwynd@folly.org.uk>) id 1UCaZc-0004dY-8Y; Mon, 04 Mar 2013 18:57:20 +0000
From: Elwyn Davies <elwynd@folly.org.uk>
To: Jim Wright <James.R.Wright@Colorado.EDU>
In-Reply-To: <FADAB229-57B3-42D7-BC38-96BFD1BE4947@colorado.edu>
References: <7B23C357-CC4C-4438-A030-CBDDEB8E4104@colorado.edu> <1362007123.4494.1468.camel@mightyatom> <FADAB229-57B3-42D7-BC38-96BFD1BE4947@colorado.edu>
Content-Type: text/plain
Organization: Folly Consulting
Date: Mon, 04 Mar 2013 18:55:41 +0000
Message-Id: <1362423342.4494.3265.camel@mightyatom>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.3 
Content-Transfer-Encoding: 7bit
Cc: dtn-users maillist <dtn-users@irtf.org>
Subject: Re: [dtn-users] DTN2 and oasys tests
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Mar 2013 18:57:27 -0000

Excellent news!

Any issues?

Regards,
Elwyn

On Mon, 2013-03-04 at 11:04 -0700, Jim Wright wrote:
> Thanks Elwyn. With that I was able to run the tests.
> 
> Jim
> 
> 
> On Feb 27, 2013, at 4:18 PM, Elwyn Davies wrote:
> 
> > Hi, Jim.
> > 
> > Have you grabbed the test_utils component from the Sourceforge site?
> > That has scripts for running multiple tests.
> > 
> > Alex McMahon (TCD) is the expert on the tests.  We run nightly
> > compilation and test runs on the most up to date code on one of the
> > machines at TCD.  I'll let him give you the low down on what does and
> > does not work.
> > 
> > A small warning: The ODBC/SQLite persistent storage mechanism in 2.8.0
> > is only marginally stable and it is conceivable that you may encounter
> > problems with forwarding logs and opportunistic or manually configured
> > (i.e. not setup by the config file) links after restarts because the
> > link names may change after restarts leading to inconsistent forwarding
> > logs. This was not handled correctly by changeset 3518. 
> > 
> > Also considerable work has been done on the LTP implementation since
> > 2.8.0 to ensure that it interoperates with ION - Stephen Farrell can
> > give you chapter and verse on this one.
> > 
> > Regards,
> > Elwyn Davies 
> > 
> > On Wed, 2013-02-27 at 15:00 -0700, Jim Wright wrote:
> >> I'm beginning to use DTN2. I am setting up a single DTN2 node to
> >> emulate a configuration which will be in use with our experiments
> >> onboard ISS. Our ground equipment and payloads run ION and will be
> >> communicating through a NASA DTN2 node. Because of my focus on
> >> interoperability testing, I am using DTN2 2.8.0 hg
> >> revision 14ffb2a3aa16 and oasys 1.5.0 hg revision 2a143c1f5eea. I
> >> realize this is not the most recent code, but it is what our partners
> >> at NASA recommend using. We will be following their update schedule.
> >> 
> >> I need to run this with as few local modifications as possible. I have
> >> created RPM spec files for DTN2 and oasys and that is working fine. I
> >> have everything building and packaging well. I'd like to run the tests
> >> included with both the oasys and DTN2 code to verify that all is
> >> working. My concern is that while there are a number of tests present,
> >> there appears to be no way to systematically run them. Is anyone
> >> actually using these tests?
> >> 
> >> 
> >> Here are some specifics:
> >> 
> >> 
> >> * In oasys, running the tests by hand in the test directory, I find
> >> that 4 of the tests
> >> fail: berkeley-db-test, filesys-db-test, memory-store-test, stack-trace-test. Is this expected behavior, or should I be concerned that my setup has problems?
> >> 
> >> 
> >> * In dtn2, running the tests by hand in the test/unit-test directory,
> >> I find that 1 of the tests fails: prophet-bundle-core-test. Actually,
> >> two tests failed using just the code from the mercurial pull, but one
> >> of my patches appears to have fixed one of them.
> >> 
> >> 
> >> * In dtn2, there are a great many tcl scripts intended to run tests. I
> >> still can't figure out how to get any of them to execute. Help!?!
> >> 
> >> 
> >> Thanks for any assistance. I've been following the DTN2 mailing lists
> >> for nearly a year, and I haven't seen these tests discussed.
> >> 
> >> 
> >> Jim Wright
> >> BioServe Space Technologies
> >> james.r.wright@colorado.edu
> >> 303-492-1579
> >> 
> >> 
> >> _______________________________________________
> >> dtn-users mailing list
> >> dtn-users@irtf.org
> >> https://www.irtf.org/mailman/listinfo/dtn-users
> > 
> 


From James.R.Wright@colorado.edu  Mon Mar  4 13:09:13 2013
Return-Path: <James.R.Wright@colorado.edu>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BFBB921F892A for <dtn-users@ietfa.amsl.com>; Mon,  4 Mar 2013 13:09:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jC8HxgkscUfi for <dtn-users@ietfa.amsl.com>; Mon,  4 Mar 2013 13:09:13 -0800 (PST)
Received: from ipmx5.colorado.edu (ipmx5.colorado.edu [128.138.128.235]) by ietfa.amsl.com (Postfix) with ESMTP id D11F121F892D for <dtn-users@irtf.org>; Mon,  4 Mar 2013 13:09:12 -0800 (PST)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AqAEAPAMNVHAqBGb/2dsb2JhbABBA4Jmv26BH3OCHwEBAQMBAQEBaAMDDQsCAQgYLicLJQEBBBMah3MGAQu5DYg2BI1heCMXEYJOYQOINjaeRoMogUo
X-IronPort-AV: E=Sophos;i="4.84,783,1355122800"; d="scan'208";a="22857694"
Received: from omr-raz-2-priv.int.colorado.edu ([192.168.17.155]) by ironport5-priv.int.colorado.edu with ESMTP; 04 Mar 2013 14:09:11 -0700
Received: from exhub2-pub.colorado.edu (EHLO exhub2.ad.colorado.edu) ([128.138.123.208]) by omr-raz-2-priv.int.colorado.edu (MOS 4.1.10-GA FastPath queued) with ESMTP id KBL76878; Mon, 04 Mar 2013 14:09:11 -0700 (MST)
Received: from exc4.ad.colorado.edu ([fe80::34e1:313d:54f:f797]) by exhub2.ad.colorado.edu ([::1]) with mapi; Mon, 4 Mar 2013 14:09:11 -0700
From: Jim Wright <James.R.Wright@Colorado.EDU>
To: dtn-users maillist <dtn-users@irtf.org>
Date: Mon, 4 Mar 2013 14:09:10 -0700
Thread-Topic: [dtn-users] DTN2 and oasys tests
Thread-Index: Ac4ZHIPBDWrUgeyfQV2txz4xsAb+Wg==
Message-ID: <C97A8C8A-AC6A-4EA9-BE6C-EF450E657837@colorado.edu>
References: <7B23C357-CC4C-4438-A030-CBDDEB8E4104@colorado.edu> <1362007123.4494.1468.camel@mightyatom> <FADAB229-57B3-42D7-BC38-96BFD1BE4947@colorado.edu> <1362423342.4494.3265.camel@mightyatom>
In-Reply-To: <1362423342.4494.3265.camel@mightyatom>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [dtn-users] DTN2 and oasys tests
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Mar 2013 21:09:13 -0000

As best I can tell, the source directories of DTN2, oasys and test_utils ar=
e intimately intertwined. They seem to compile and run tests only if they c=
an poke into each other via paths similar to ../oasys/*. I'm close to the c=
onclusion that the work of separating this out, or re-architecting our buil=
dbot infrastructure to accommodate it, is more than we want to take on. Par=
t of that is the knowledge that we are using an older version, so that any =
changes may be less likely to be accepted back into the source. Another par=
t is that we just want a DTN2 node as a "black box" for testing, and our de=
velopment work for our payload and ground equipment is on ION which will in=
teroperate with this. And finally, the time set aside to get this up and wo=
rking is relatively small.

Jim


On Mar 4, 2013, at 11:55 AM, Elwyn Davies wrote:

> Excellent news!
>=20
> Any issues?
>=20
> Regards,
> Elwyn
>=20
> On Mon, 2013-03-04 at 11:04 -0700, Jim Wright wrote:
>> Thanks Elwyn. With that I was able to run the tests.
>>=20
>> Jim
>>=20
>>=20
>> On Feb 27, 2013, at 4:18 PM, Elwyn Davies wrote:
>>=20
>>> Hi, Jim.
>>>=20
>>> Have you grabbed the test_utils component from the Sourceforge site?
>>> That has scripts for running multiple tests.
>>>=20
>>> Alex McMahon (TCD) is the expert on the tests.  We run nightly
>>> compilation and test runs on the most up to date code on one of the
>>> machines at TCD.  I'll let him give you the low down on what does and
>>> does not work.
>>>=20
>>> A small warning: The ODBC/SQLite persistent storage mechanism in 2.8.0
>>> is only marginally stable and it is conceivable that you may encounter
>>> problems with forwarding logs and opportunistic or manually configured
>>> (i.e. not setup by the config file) links after restarts because the
>>> link names may change after restarts leading to inconsistent forwarding
>>> logs. This was not handled correctly by changeset 3518.=20
>>>=20
>>> Also considerable work has been done on the LTP implementation since
>>> 2.8.0 to ensure that it interoperates with ION - Stephen Farrell can
>>> give you chapter and verse on this one.
>>>=20
>>> Regards,
>>> Elwyn Davies=20
>>>=20
>>> On Wed, 2013-02-27 at 15:00 -0700, Jim Wright wrote:
>>>> I'm beginning to use DTN2. I am setting up a single DTN2 node to
>>>> emulate a configuration which will be in use with our experiments
>>>> onboard ISS. Our ground equipment and payloads run ION and will be
>>>> communicating through a NASA DTN2 node. Because of my focus on
>>>> interoperability testing, I am using DTN2 2.8.0 hg
>>>> revision 14ffb2a3aa16 and oasys 1.5.0 hg revision 2a143c1f5eea. I
>>>> realize this is not the most recent code, but it is what our partners
>>>> at NASA recommend using. We will be following their update schedule.
>>>>=20
>>>> I need to run this with as few local modifications as possible. I have
>>>> created RPM spec files for DTN2 and oasys and that is working fine. I
>>>> have everything building and packaging well. I'd like to run the tests
>>>> included with both the oasys and DTN2 code to verify that all is
>>>> working. My concern is that while there are a number of tests present,
>>>> there appears to be no way to systematically run them. Is anyone
>>>> actually using these tests?
>>>>=20
>>>>=20
>>>> Here are some specifics:
>>>>=20
>>>>=20
>>>> * In oasys, running the tests by hand in the test directory, I find
>>>> that 4 of the tests
>>>> fail: berkeley-db-test, filesys-db-test, memory-store-test, stack-trac=
e-test. Is this expected behavior, or should I be concerned that my setup h=
as problems?
>>>>=20
>>>>=20
>>>> * In dtn2, running the tests by hand in the test/unit-test directory,
>>>> I find that 1 of the tests fails: prophet-bundle-core-test. Actually,
>>>> two tests failed using just the code from the mercurial pull, but one
>>>> of my patches appears to have fixed one of them.
>>>>=20
>>>>=20
>>>> * In dtn2, there are a great many tcl scripts intended to run tests. I
>>>> still can't figure out how to get any of them to execute. Help!?!
>>>>=20
>>>>=20
>>>> Thanks for any assistance. I've been following the DTN2 mailing lists
>>>> for nearly a year, and I haven't seen these tests discussed.
>>>>=20
>>>>=20
>>>> Jim Wright
>>>> BioServe Space Technologies
>>>> james.r.wright@colorado.edu
>>>> 303-492-1579
>>>>=20
>>>>=20
>>>> _______________________________________________
>>>> dtn-users mailing list
>>>> dtn-users@irtf.org
>>>> https://www.irtf.org/mailman/listinfo/dtn-users
>>>=20
>>=20
>=20


From aloomis@sarn.org  Mon Mar  4 17:02:29 2013
Return-Path: <aloomis@sarn.org>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B108B21F8994 for <dtn-users@ietfa.amsl.com>; Mon,  4 Mar 2013 17:02:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.976
X-Spam-Level: 
X-Spam-Status: No, score=-2.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BEc6QIZYRk84 for <dtn-users@ietfa.amsl.com>; Mon,  4 Mar 2013 17:02:28 -0800 (PST)
Received: from mail-qe0-f41.google.com (mail-qe0-f41.google.com [209.85.128.41]) by ietfa.amsl.com (Postfix) with ESMTP id EA97D1F0D05 for <dtn-users@irtf.org>; Mon,  4 Mar 2013 17:02:27 -0800 (PST)
Received: by mail-qe0-f41.google.com with SMTP id 6so4380625qeb.14 for <dtn-users@irtf.org>; Mon, 04 Mar 2013 17:02:27 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:x-gm-message-state; bh=OtOnqeLQpIpOpqTQ8YIdTbOZdsSJLG/PO5s3AUVlOFE=; b=Olh/N+EOpBkbEdctcsEXeeBXsCIGrtL41OnC1tuzgTYceJ5p5ba78yxDIFNYzbl9xr d2e5ZKzjGgKKNb7mI+4KFK7H5c0Q3rMbssQZlVwWM5qgMYws0O5ARXjNpLZN+6QNSb/a da/lTWPopzRHvOjgNd4SGKSzZByurNivv/jIxiF9F6BLtPT5lhWt75UcQm+vkle1WgJS DEmcQQ8vR00c2KbmOWeOGI+mbHyXmp60KBGNMyUM0YRnxj8QoHCQvpnsGKHaGTWWmicP kd3JCbIHbEKATQX66J8Ynj8cUQkCrd2pUUfu0WOL0Gm0mjlcUv9ECfPSueaVjF/gOahj ou0Q==
MIME-Version: 1.0
X-Received: by 10.224.27.20 with SMTP id g20mr14540699qac.31.1362445347223; Mon, 04 Mar 2013 17:02:27 -0800 (PST)
Received: by 10.49.0.198 with HTTP; Mon, 4 Mar 2013 17:02:27 -0800 (PST)
In-Reply-To: <1362276721.4494.2433.camel@mightyatom>
References: <20130224123309.GA19354@glow> <1361716256.4494.1191.camel@mightyatom> <CAB9rx+8Sd2TOFr2jKwq+Mv8nH6CgKoEEkSOOHSohxwVzTYn1zA@mail.gmail.com> <1361811760.4494.1284.camel@mightyatom> <CAB9rx+9XGh6nWdsth6wu7D7WarA5SEpaxTtq8vSvzntnMo3OiA@mail.gmail.com> <1361882036.4494.1350.camel@mightyatom> <CAB9rx+_6ccT=mBkx28j97nMwApWptOhRb8CXHs_mFFGEG6YQKw@mail.gmail.com> <1362276721.4494.2433.camel@mightyatom>
Date: Mon, 4 Mar 2013 20:02:27 -0500
Message-ID: <CAB9rx+-9qL5j+BhwZX3gXb9ZRAKGQpwHPPeyQh3HifYkdThK_w@mail.gmail.com>
From: Amy Alford <aloomis@sarn.org>
To: Elwyn Davies <elwynd@folly.org.uk>
Content-Type: multipart/alternative; boundary=bcaec51a8524f28afc04d7230617
X-Gm-Message-State: ALoCoQnWYz2FRAJX5lX/Wo+wMJgdtRCyupmYVrzleqr/TUinryFhKzUjkz3J+nHttzkJvOiS3lLX
Cc: dtn-users maillist <dtn-users@irtf.org>
Subject: Re: [dtn-users] bundle fragmentation
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Mar 2013 01:02:29 -0000

--bcaec51a8524f28afc04d7230617
Content-Type: text/plain; charset=ISO-8859-1

On Sat, Mar 2, 2013 at 9:12 PM, Elwyn Davies <elwynd@folly.org.uk> wrote:

> Hi.
>
> I was wondering how you were getting on with this!
>
> Is it not the case that at the point you find out you need to do
> proactive fragmentation that you have a set of xmit blocks set up?
>
> I don't think that any of these blocks will get bigger if you reduce the
> size of the payload (not certain about the security blocks but can't see
> how that would be likely).  So I would have thought you could use the
> xmit block sizes to decide (firstly) whether fragmentation is possible
> and (if it is) how to split up the payload.
>
Reducing the payload size won't increase any of the existing security
blocks's sizes.  Changing which link you send the bundle on may.  So, I
guess the worst case there is that the bundle is fragmented repeatedly at
the node.



>
> However, a horrible thought just struck me... The security blocks with a
> before and after part if fragmentation is taking place at a security
> source... How do these calculate the after part in a fragmented bundle?
> This needs the whole payload.  May have to have a pointer to the
> original bundle or some other fudge. Yuck!  A nasty horrible trick I
> just thought up would be to send the 'securitized' bundle to yourself in
> such a way that the node is no longer the security source.  The blocks
> then all end up on the recv_blocks list and just have to be split up by
> the fragmentation rather needing regeneration.  Super-yuck!!
>
I think this isn't an issue in practice.  Adding BAB either before or after
fragmentation is acceptable.  If we add BAB after fragmentation (which is
what naturally happens if we use the recv_blocks in fragmentation), then it
all works cleanly.


>
> OTOH if the fragmenting node is not a security source, then the two part
> security blocks can't be altered so the smit blocks solution works I
> think.
> Some comments on the changing block size question below...
>
> Regards,
> Elwyn
>
> On Sat, 2013-03-02 at 18:23 -0500, Amy Alford wrote:
> > Makes sense.  I modified my implementation to use recv_blocks, and
> > that did make for a much cleaner solution.
> >
> >
> > The one glaring issue is predicting the size of the generated
> > extension blocks.  Currently, I'm letting the user configure the
> > maximum length of a payload, and fragmenting based on that.  That
> > works beautifully for my testing purposes, but is obviously unhelpful
> > if the concern is MTUs.
> >
> >
> > There are a whole bunch of cases to consider in predicting the size of
> > the extension blocks:
> > 1) Received extension blocks which may be copied unchanged, or
> > expanded/reduced by their block processors.
> As far as I know changes can't happen apart possibly for the age block
> (have to check that one).
>
We have an experimental extension block that accumulates data over time.
 Not only does it get longer at each node, it gets longer as it sits at a
node (meaning that if it's sent out two links, the version that goes out
the second link may be longer).


> > 2) Extension blocks created by registered block processors when their
> > prepare methods are called to give them a chance to add blocks.
> Again there aren't any examples AFAIK apart from the two part security
> blocks.

The two part security blocks are actually added elsewhere.  The security
blocks need to be added after everything else, so they have their own hooks
in BundleProtocol::prepare_blocks


>

You could get (in theory - but as far as I know nobody has found a use
> for it) extra generated metadata blocks but you'd know about those
> because (A) they have to be in the generated metadata block list for the
> link when the prepare method is called and (B) you's have seen them in
> the xmit blocks list for the whole bundle.
> > 3) Extension Security Blocks encapsulating either of the above.
> (see previous comment)
> > 4) Age blocks, metadata blocks, PIB/PCB/BAB, and anything else which
> > has its own hooks in BundleProtocol::prepare_out_blocks
> It might be legitimate to force 'don't fragment' for any of these cases
> that was really serious, but I don't think in practice its a big deal.
> I think the xmit blocks list is still your friend here.
> >
> >
> > Existing BSP ciphersuites can predict a maximum block size.
> >  PIB/PCB/ESB need to know the security src/destination (which isn't
> > link dependent) to predict the size of the CMS formatted security
> > result (which may contain large amounts of data related to the
> > security certificates).  BAB doesn't use CMS, so while it may change
> > security src/dest based on the link, the security result size won't
> > change based on this.  It is possible that future ciphersuites will
> > need to know the link in order to provide maximum block sizes.
> >
> >
> > I'm thinking the best solution is to add a maximum_block_size method
> > to BlockProcessors, which takes a bundle and optionally a received
> > block.  ESB (which encapsulates another block) will probably need some
> > special handling.
> >
> >
> >
> >
> > On Tue, Feb 26, 2013 at 7:33 AM, Elwyn Davies <elwynd@folly.org.uk>
> > wrote:
> >         Hi, Amy.
> >
> >         On Mon, 2013-02-25 at 20:21 -0500, Amy Alford wrote:
> >         >
> >         > Why is it pointless to copy the xmit_blocks?  They certainly
> >         need
> >         > patching up, but I've been able to do that AFAICT.  It ends
> >         up
> >         > behaving as though you sent the original bundle on the link,
> >         then the
> >         > next hop fragmented it.
> >
> >         Perhaps pointless was the wrong word. The problem is that the
> >         Bundle
> >         structure that is created for each fragment is not properly
> >         'valid'.
> >         Things will probably work out as long as it remains on the
> >         link for
> >         which the xmit blocks were created, but things will a.s. go
> >         very pear
> >         shaped if the daemon is shutdown and restarted because the
> >         bundle, as
> >         stored in persistent storage, will have no blocks since the
> >         storage is
> >         driven from recv_blocks and api_blocks which remain empty.
> >          The
> >         resulting bundle read back will be flagged as invalid because
> >         it has no
> >         primary or payload blocks - at best it will be flagged and
> >         discarded -
> >         but there is a good chance it will trigger an assert
> >         somewhere.  A
> >         similar problem will occur if a new link is opened along which
> >         the
> >         fragment bundle could be routed - reroute_all_blocks will be
> >         called and
> >         the fragments may end up on other links. An attempt to create
> >         xmit_blocks for this new link will also barf. The same will
> >         happen if
> >         the the link is closed down and/or restarted.
> >
> >         > Whether that's what you want for BSP (as opposed to
> >         fragmenting then
> >         > adding BSP blocks), I don't know.
> >
> >         Right.. that depends on what sort of blocks you were adding.
> >          The
> >         hop-by-hop integrity checks might have to be different - I
> >         don't know
> >         whether BAB blocks for hop-by-hop would be verified at the
> >         next security
> >         destination before or after reassembly (or indeed whether
> >         fragmentation
> >         of such a bundle would be allowed).
> >
> >         Generated metadata blocks could also be a problem although
> >         that is more
> >         of a theoretical problem at the moment because the generated
> >         metadata
> >         block capability is not really used at present (the BPQ stuff
> >         that I am
> >         working on is nearest to it AFAICS as it generates bundles in
> >         response
> >         to queries if it has a match in the bundle cache and these
> >         have metadata
> >         blocks).
> >         >
> >         > On Mon, Feb 25, 2013 at 12:02 PM, Elwyn Davies
> >         <elwynd@folly.org.uk>
> >         > wrote:
> >         >         Looking at the two create_fragment methods, the
> >         second one is
> >         >         essentially useless (that's the one with 'link' in
> >         its
> >         >         parameters - it
> >         >         should probably be deleted as it is pointless
> >         copying the xmit
> >         >         blocks as
> >         >         Amy discovered) and the first one needs some
> >         refinement to
> >         >         make it work
> >         >         properly. If we actually generated a new recv_blocks
> >         list (and
> >         >         possibly
> >         >         an api_blocks list - but that is probably not vital)
> >         the new
> >         >         fragments
> >         >         would get transmitted properly without needing to
> >         fudge
> >         >         queue_bundles
> >         >         and also without deleteing the original full size
> >         bundle (I
> >         >         believe).
> >         >         However I think recording the MTU size to which the
> >         bundle has
> >         >         been
> >         >         fragmented would help as we could avoid
> >         refragmenting the
> >         >         whole bundle
> >         >         if it got tested on the same  link again (as it
> >         might after a
> >         >         new link
> >         >         opened).
> >         >
> >
> >
> >
> >
>
>

--bcaec51a8524f28afc04d7230617
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<br><br><div class=3D"gmail_quote">On Sat, Mar 2, 2013 at 9:12 PM, Elwyn Da=
vies <span dir=3D"ltr">&lt;<a href=3D"mailto:elwynd@folly.org.uk" target=3D=
"_blank">elwynd@folly.org.uk</a>&gt;</span> wrote:<br><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-=
left:1ex">

Hi.<br>
<br>
I was wondering how you were getting on with this!<br>
<br>
Is it not the case that at the point you find out you need to do<br>
proactive fragmentation that you have a set of xmit blocks set up?<br>
<br>
I don&#39;t think that any of these blocks will get bigger if you reduce th=
e<br>
size of the payload (not certain about the security blocks but can&#39;t se=
e<br>
how that would be likely). =A0So I would have thought you could use the<br>
xmit block sizes to decide (firstly) whether fragmentation is possible<br>
and (if it is) how to split up the payload.<br></blockquote><div>Reducing t=
he payload size won&#39;t increase any of the existing security blocks&#39;=
s sizes. =A0Changing which link you send the bundle on may. =A0So, I guess =
the worst case there is that the bundle is fragmented repeatedly at the nod=
e.</div>

<div><br></div><div>=A0</div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
However, a horrible thought just struck me... The security blocks with a<br=
>
before and after part if fragmentation is taking place at a security<br>
source... How do these calculate the after part in a fragmented bundle?<br>
This needs the whole payload. =A0May have to have a pointer to the<br>
original bundle or some other fudge. Yuck! =A0A nasty horrible trick I<br>
just thought up would be to send the &#39;securitized&#39; bundle to yourse=
lf in<br>
such a way that the node is no longer the security source. =A0The blocks<br=
>
then all end up on the recv_blocks list and just have to be split up by<br>
the fragmentation rather needing regeneration. =A0Super-yuck!!<br></blockqu=
ote><div>I think this isn&#39;t an issue in practice. =A0Adding BAB either =
before or after fragmentation is acceptable. =A0If we add BAB after fragmen=
tation (which is what naturally happens if we use the recv_blocks in fragme=
ntation), then it all works cleanly.</div>

<div>=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex">
<br>
OTOH if the fragmenting node is not a security source, then the two part<br=
>
security blocks can&#39;t be altered so the smit blocks solution works I<br=
>
think.<br>
Some comments on the changing block size question below...<br>
<br>
Regards,<br>
Elwyn<br>
<div><br>
On Sat, 2013-03-02 at 18:23 -0500, Amy Alford wrote:<br>
&gt; Makes sense. =A0I modified my implementation to use recv_blocks, and<b=
r>
&gt; that did make for a much cleaner solution.<br>
&gt;<br>
&gt;<br>
&gt; The one glaring issue is predicting the size of the generated<br>
&gt; extension blocks. =A0Currently, I&#39;m letting the user configure the=
<br>
&gt; maximum length of a payload, and fragmenting based on that. =A0That<br=
>
&gt; works beautifully for my testing purposes, but is obviously unhelpful<=
br>
&gt; if the concern is MTUs.<br>
&gt;<br>
&gt;<br>
&gt; There are a whole bunch of cases to consider in predicting the size of=
<br>
&gt; the extension blocks:<br>
&gt; 1) Received extension blocks which may be copied unchanged, or<br>
&gt; expanded/reduced by their block processors.<br>
</div>As far as I know changes can&#39;t happen apart possibly for the age =
block<br>
(have to check that one).<br></blockquote><div>We have an experimental exte=
nsion block that accumulates data over time. =A0Not only does it get longer=
 at each node, it gets longer as it sits at a node (meaning that if it&#39;=
s sent out two links, the version that goes out the second link may be long=
er).</div>
<div>=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex">
<div>&gt; 2) Extension blocks created by registered block processors when t=
heir<br>
&gt; prepare methods are called to give them a chance to add blocks.<br>
</div>Again there aren&#39;t any examples AFAIK apart from the two part sec=
urity<br>
blocks.</blockquote><div>The two part security blocks are actually added el=
sewhere. =A0The security blocks need to be added after everything else, so =
they have their own hooks in BundleProtocol::prepare_blocks</div><div>=A0</=
div>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">=A0</blockquote><blockquote class=3D"gmail_q=
uote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1e=
x">
You could get (in theory - but as far as I know nobody has found a use<br>
for it) extra generated metadata blocks but you&#39;d know about those<br>
because (A) they have to be in the generated metadata block list for the<br=
>
link when the prepare method is called and (B) you&#39;s have seen them in<=
br>
the xmit blocks list for the whole bundle.<br>
<div>&gt; 3) Extension Security Blocks encapsulating either of the above.<b=
r>
</div>(see previous comment)<br>
<div>&gt; 4) Age blocks, metadata blocks, PIB/PCB/BAB, and anything else wh=
ich<br>
&gt; has its own hooks in BundleProtocol::prepare_out_blocks<br>
</div>It might be legitimate to force &#39;don&#39;t fragment&#39; for any =
of these cases<br>
that was really serious, but I don&#39;t think in practice its a big deal.<=
br>
I think the xmit blocks list is still your friend here.<br>
<div><div>&gt;<br>
&gt;<br>
&gt; Existing BSP ciphersuites can predict a maximum block size.<br>
&gt; =A0PIB/PCB/ESB need to know the security src/destination (which isn&#3=
9;t<br>
&gt; link dependent) to predict the size of the CMS formatted security<br>
&gt; result (which may contain large amounts of data related to the<br>
&gt; security certificates). =A0BAB doesn&#39;t use CMS, so while it may ch=
ange<br>
&gt; security src/dest based on the link, the security result size won&#39;=
t<br>
&gt; change based on this. =A0It is possible that future ciphersuites will<=
br>
&gt; need to know the link in order to provide maximum block sizes.<br>
&gt;<br>
&gt;<br>
&gt; I&#39;m thinking the best solution is to add a maximum_block_size meth=
od<br>
&gt; to BlockProcessors, which takes a bundle and optionally a received<br>
&gt; block. =A0ESB (which encapsulates another block) will probably need so=
me<br>
&gt; special handling.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Feb 26, 2013 at 7:33 AM, Elwyn Davies &lt;<a href=3D"mailto:el=
wynd@folly.org.uk" target=3D"_blank">elwynd@folly.org.uk</a>&gt;<br>
&gt; wrote:<br>
&gt; =A0 =A0 =A0 =A0 Hi, Amy.<br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 On Mon, 2013-02-25 at 20:21 -0500, Amy Alford wrote:<b=
r>
&gt; =A0 =A0 =A0 =A0 &gt;<br>
&gt; =A0 =A0 =A0 =A0 &gt; Why is it pointless to copy the xmit_blocks? =A0T=
hey certainly<br>
&gt; =A0 =A0 =A0 =A0 need<br>
&gt; =A0 =A0 =A0 =A0 &gt; patching up, but I&#39;ve been able to do that AF=
AICT. =A0It ends<br>
&gt; =A0 =A0 =A0 =A0 up<br>
&gt; =A0 =A0 =A0 =A0 &gt; behaving as though you sent the original bundle o=
n the link,<br>
&gt; =A0 =A0 =A0 =A0 then the<br>
&gt; =A0 =A0 =A0 =A0 &gt; next hop fragmented it.<br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 Perhaps pointless was the wrong word. The problem is t=
hat the<br>
&gt; =A0 =A0 =A0 =A0 Bundle<br>
&gt; =A0 =A0 =A0 =A0 structure that is created for each fragment is not pro=
perly<br>
&gt; =A0 =A0 =A0 =A0 &#39;valid&#39;.<br>
&gt; =A0 =A0 =A0 =A0 Things will probably work out as long as it remains on=
 the<br>
&gt; =A0 =A0 =A0 =A0 link for<br>
&gt; =A0 =A0 =A0 =A0 which the xmit blocks were created, but things will a.=
s. go<br>
&gt; =A0 =A0 =A0 =A0 very pear<br>
&gt; =A0 =A0 =A0 =A0 shaped if the daemon is shutdown and restarted because=
 the<br>
&gt; =A0 =A0 =A0 =A0 bundle, as<br>
&gt; =A0 =A0 =A0 =A0 stored in persistent storage, will have no blocks sinc=
e the<br>
&gt; =A0 =A0 =A0 =A0 storage is<br>
&gt; =A0 =A0 =A0 =A0 driven from recv_blocks and api_blocks which remain em=
pty.<br>
&gt; =A0 =A0 =A0 =A0 =A0The<br>
&gt; =A0 =A0 =A0 =A0 resulting bundle read back will be flagged as invalid =
because<br>
&gt; =A0 =A0 =A0 =A0 it has no<br>
&gt; =A0 =A0 =A0 =A0 primary or payload blocks - at best it will be flagged=
 and<br>
&gt; =A0 =A0 =A0 =A0 discarded -<br>
&gt; =A0 =A0 =A0 =A0 but there is a good chance it will trigger an assert<b=
r>
&gt; =A0 =A0 =A0 =A0 somewhere. =A0A<br>
&gt; =A0 =A0 =A0 =A0 similar problem will occur if a new link is opened alo=
ng which<br>
&gt; =A0 =A0 =A0 =A0 the<br>
&gt; =A0 =A0 =A0 =A0 fragment bundle could be routed - reroute_all_blocks w=
ill be<br>
&gt; =A0 =A0 =A0 =A0 called and<br>
&gt; =A0 =A0 =A0 =A0 the fragments may end up on other links. An attempt to=
 create<br>
&gt; =A0 =A0 =A0 =A0 xmit_blocks for this new link will also barf. The same=
 will<br>
&gt; =A0 =A0 =A0 =A0 happen if<br>
&gt; =A0 =A0 =A0 =A0 the the link is closed down and/or restarted.<br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 &gt; Whether that&#39;s what you want for BSP (as oppo=
sed to<br>
&gt; =A0 =A0 =A0 =A0 fragmenting then<br>
&gt; =A0 =A0 =A0 =A0 &gt; adding BSP blocks), I don&#39;t know.<br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 Right.. that depends on what sort of blocks you were a=
dding.<br>
&gt; =A0 =A0 =A0 =A0 =A0The<br>
&gt; =A0 =A0 =A0 =A0 hop-by-hop integrity checks might have to be different=
 - I<br>
&gt; =A0 =A0 =A0 =A0 don&#39;t know<br>
&gt; =A0 =A0 =A0 =A0 whether BAB blocks for hop-by-hop would be verified at=
 the<br>
&gt; =A0 =A0 =A0 =A0 next security<br>
&gt; =A0 =A0 =A0 =A0 destination before or after reassembly (or indeed whet=
her<br>
&gt; =A0 =A0 =A0 =A0 fragmentation<br>
&gt; =A0 =A0 =A0 =A0 of such a bundle would be allowed).<br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 Generated metadata blocks could also be a problem alth=
ough<br>
&gt; =A0 =A0 =A0 =A0 that is more<br>
&gt; =A0 =A0 =A0 =A0 of a theoretical problem at the moment because the gen=
erated<br>
&gt; =A0 =A0 =A0 =A0 metadata<br>
&gt; =A0 =A0 =A0 =A0 block capability is not really used at present (the BP=
Q stuff<br>
&gt; =A0 =A0 =A0 =A0 that I am<br>
&gt; =A0 =A0 =A0 =A0 working on is nearest to it AFAICS as it generates bun=
dles in<br>
&gt; =A0 =A0 =A0 =A0 response<br>
&gt; =A0 =A0 =A0 =A0 to queries if it has a match in the bundle cache and t=
hese<br>
&gt; =A0 =A0 =A0 =A0 have metadata<br>
&gt; =A0 =A0 =A0 =A0 blocks).<br>
&gt; =A0 =A0 =A0 =A0 &gt;<br>
&gt; =A0 =A0 =A0 =A0 &gt; On Mon, Feb 25, 2013 at 12:02 PM, Elwyn Davies<br=
>
&gt; =A0 =A0 =A0 =A0 &lt;<a href=3D"mailto:elwynd@folly.org.uk" target=3D"_=
blank">elwynd@folly.org.uk</a>&gt;<br>
&gt; =A0 =A0 =A0 =A0 &gt; wrote:<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 Looking at the two create_fragmen=
t methods, the<br>
&gt; =A0 =A0 =A0 =A0 second one is<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 essentially useless (that&#39;s t=
he one with &#39;link&#39; in<br>
&gt; =A0 =A0 =A0 =A0 its<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 parameters - it<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 should probably be deleted as it =
is pointless<br>
&gt; =A0 =A0 =A0 =A0 copying the xmit<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 blocks as<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 Amy discovered) and the first one=
 needs some<br>
&gt; =A0 =A0 =A0 =A0 refinement to<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 make it work<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 properly. If we actually generate=
d a new recv_blocks<br>
&gt; =A0 =A0 =A0 =A0 list (and<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 possibly<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 an api_blocks list - but that is =
probably not vital)<br>
&gt; =A0 =A0 =A0 =A0 the new<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 fragments<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 would get transmitted properly wi=
thout needing to<br>
&gt; =A0 =A0 =A0 =A0 fudge<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 queue_bundles<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 and also without deleteing the or=
iginal full size<br>
&gt; =A0 =A0 =A0 =A0 bundle (I<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 believe).<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 However I think recording the MTU=
 size to which the<br>
&gt; =A0 =A0 =A0 =A0 bundle has<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 been<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 fragmented would help as we could=
 avoid<br>
&gt; =A0 =A0 =A0 =A0 refragmenting the<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 whole bundle<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 if it got tested on the same =A0l=
ink again (as it<br>
&gt; =A0 =A0 =A0 =A0 might after a<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 new link<br>
&gt; =A0 =A0 =A0 =A0 &gt; =A0 =A0 =A0 =A0 opened).<br>
&gt; =A0 =A0 =A0 =A0 &gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br>

--bcaec51a8524f28afc04d7230617--

From ssireskin@gmail.com  Tue Mar  5 02:47:26 2013
Return-Path: <ssireskin@gmail.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0527921F8896 for <dtn-users@ietfa.amsl.com>; Tue,  5 Mar 2013 02:47:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.597
X-Spam-Level: 
X-Spam-Status: No, score=-3.597 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4xTru6QENqhM for <dtn-users@ietfa.amsl.com>; Tue,  5 Mar 2013 02:47:19 -0800 (PST)
Received: from mail-ve0-f193.google.com (mail-ve0-f193.google.com [209.85.128.193]) by ietfa.amsl.com (Postfix) with ESMTP id 6663221F8629 for <dtn-users@irtf.org>; Tue,  5 Mar 2013 02:47:19 -0800 (PST)
Received: by mail-ve0-f193.google.com with SMTP id 15so936530vea.8 for <dtn-users@irtf.org>; Tue, 05 Mar 2013 02:47:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=TnV8A7rc9lUlLbxIUSTcc2ViPkxP7Kmk6TAFikltNZA=; b=SOdKmZgvXjZdejMALwmIgjcWhvd2KvZn2T/JumckCN9aYB7S7P9+ChdYuGz3eqH7KA omYxI19AfGFC4fkyJrMTvaRNbnOoELCIDrbIKJw0fl6ONZnjSrA8dJZCfFnbTBiXPenR qkQBv75coc1H2oSORLh9oYNmRYz0MxZP0dnYAzvzJ7qJMd6mJ/oLcJDm7yCnLMeNaoJl tUpoehZVmG9NF+qLQRGBWSt1M3jemwdnBtOtcL6qHRLc6Xoih0Wwamr9ArlqdDRhD7eK I2mIicR+caelAlWTEGzkiMDU7qlfviOZShSp7YFxhnfpa4NBk7VVe2j93ySb7s6v0TAo bbLw==
MIME-Version: 1.0
X-Received: by 10.58.196.170 with SMTP id in10mr2509906vec.37.1362480438889; Tue, 05 Mar 2013 02:47:18 -0800 (PST)
Received: by 10.58.231.164 with HTTP; Tue, 5 Mar 2013 02:47:18 -0800 (PST)
Date: Tue, 5 Mar 2013 13:47:18 +0300
Message-ID: <CAJR8z9_WHCvSa+WPOZ-SfsQzs8dX7BNisUnJwVo0BswmTdx6ig@mail.gmail.com>
From: "ssireskin@gmail.com" <ssireskin@gmail.com>
To: dtn-users@irtf.org
Content-Type: multipart/mixed; boundary=047d7b6dc9c692d97404d72b321e
Subject: [dtn-users] Several improvements of dtntunnel
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Mar 2013 10:47:26 -0000

--047d7b6dc9c692d97404d72b321e
Content-Type: multipart/alternative; boundary=047d7b6dc9c692d96f04d72b321c

--047d7b6dc9c692d96f04d72b321c
Content-Type: text/plain; charset=ISO-8859-1

Hello dtn users,

I would like to share a patch that turns dtntunnel into a transparent proxy
which
intercepts TCP and UDP traffic and transports it from one IP network to
another
through a DTN in a way that application client and server "think" that they
are
connected to a usual IP network. Hosts running dtntunnel on different DTN
nodes
act as network routers from the IP networks point of view.

Here is a description of how this works.

--------------------------------------------------------------------------------------------------------
A host running dtntunnel in transparent mode ("-p" option) can act as an IP
network router for TCP and UDP protocols, that are redirected to dtntunnel
with
the help of IPTables and TProxy.

Transparent mode is implemented with the use of Tproxy mechanism, which is
supported in Linux only. For the description of Tproxy see tproxy.txt in
the
Documentation/networking subdirectory of Linux kernel source tree.

Here is how this looks at the network level. Hosts A and B are reachable
via DTN
while local networks of A and B may even be not connected via IP protocol:
[IP Host A] <-> [DTN node with dtntunnel] <-> (DTN Network) <->
            <-> [DTN node with dtntunnel] <-> [IP Host B]

Here is how this looks at the application level. Application client and
server
communicate transparently as if there was an IP network between them. Both
client and server see IP addresses and ports of each other, not of
dtntunnel as
it is without transparent mode enabled:
[Application client] <-> [dtntunnel -T] <-> (DTN Network) <->
                     <-> [dtntunnel -L] <-> [Application server]

In order to let transparent mode work, insert the following IPTables and
routing
rules on the host where you run dtntunnel in tunnel mode ("-T" option):
iptables -t mangle -N DTNTUNNEL
iptables -t mangle -A DTNTUNNEL -j MARK --set-mark 1
iptables -t mangle -A DTNTUNNEL -j ACCEPT
iptables -t mangle -A PREROUTING -p $PROTO -m socket -j DTNTUNNEL
iptables -t mangle -A PREROUTING -p $PROTO --dport $APPLICATION_PORT -j
TPROXY \
         --on-port $DTNTUNNEL_PORT --tproxy-mark 1/1
ip rule add fwmark 1 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100

If you run application client on the same host as dtntunnel in tunnel mode,
you
have to insert an additional IPTables rule:
iptables -t mangle -A OUTPUT -o $EXTERNAL_IF -p $PROTO --dport
$APPLICATION_PORT \
         -j MARK --set-xmark 1
NOTE: This will work only for application client running on the same host
as
dtntunnel in tunnel mode, not for a server running on the same host as
dtntunnel
in listen mode ("-L" option).

In the above commands $PROTO is either tcp or udp;
$APPLICATION_PORT is a port number used by an application protocol, ex. 22
for SSH,
53 for DNS, 80 for HTTP, port range can be given in the form 22:23;
$DTNTUNNEL_PORT is the dtntunnel lport as given in tunnel specification;
$EXTERNAL_IF is a name of a network interface towards the remote network
that is
to be reached via DTN.

NOTE: Don't forget to add network routes on the hosts that will use
dtntunnel host
as a router. In the most simple case setting the default gateway address to
the
address of the host running dtntunnel is enough.

In transparent mode dtntunnel can use multiple destination EIDs in order to
be able
to transport data to multiple IP networks reachable through different DTN
nodes.
To enable this feature specify <destination eid table file name> instead of
<destination_eid> in dtntunnel command line.

Eid table file format: <IP network address> <DTN node EID>.
Eid table file example:
192.168.4.0/24 dtn://dtn1.dtn/dtntunnel/app
192.168.5.0/24 dtn://dtn2.dtn/dtntunnel/app
--------------------------------------------------------------------------------------------------------

My patch dtntunnel_transparent.ss.patch should be applied on top of a patch
dtntunnel.udp_bidirectional.dz.patch, written by David Zoller and published
here with his
kind permission. Both patches apply cleanly to the today's Sourceforge
version of dtn2.
To apply the patches, go to apps/dtntunnel subdirectory of dtn2 source tree
and issue the
commands:
patch -p1 < dtntunnel.udp_bidirectional.dz.patch
patch -p1 < dtntunnel_transparent.ss.patch

David's patch brings the following improvements:
1) fix two memory leaks in TCPTunnel;
2) fix an issue with TCPTunnel when the connection closed by the server
side of an
application is not closed on the client side;
3) a complete rewrite of UDPTunnel code that enables bidirectional data
transmission,
packet reordering option and possibly something else which I could have
missed.

I hope these two patches will be accepted to the dtn2 mainstream.

I would like to thank David for his support, it would be hardly possible
for me to make
transparent dtntunnel without his help and advices.
I would also like to thank Elwyn Davies for his help with building NORM CL
libraries and
making NORM work with recent DTN2 code.

Best regards,
Sergey Sireskin

--047d7b6dc9c692d96f04d72b321c
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hello dtn users,<br><br>I would like to share a patch that turns dtntunnel =
into a transparent proxy which <br>intercepts TCP and UDP traffic and trans=
ports it from one IP network to another<br>through a DTN in a way that appl=
ication client and server &quot;think&quot; that they are <br>
connected to a usual IP network. Hosts running dtntunnel on different DTN n=
odes<br>act as network routers from the IP networks point of view.<br><br>H=
ere is a description of how this works.<br><br>----------------------------=
---------------------------------------------------------------------------=
-<br>
A host running dtntunnel in transparent mode (&quot;-p&quot; option) can ac=
t as an IP <br>network router for TCP and UDP protocols, that are redirecte=
d to dtntunnel with <br>the help of IPTables and TProxy.<br><br>Transparent=
 mode is implemented with the use of Tproxy mechanism, which is <br>
supported in Linux only. For the description of Tproxy see tproxy.txt in th=
e <br>Documentation/networking subdirectory of Linux kernel source tree.<br=
><br>Here is how this looks at the network level. Hosts A and B are reachab=
le via DTN<br>
while local networks of A and B may even be not connected via IP protocol:<=
br>[IP Host A] &lt;-&gt; [DTN node with dtntunnel] &lt;-&gt; (DTN Network) =
&lt;-&gt; <br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 &lt;-&gt; [DTN node with dt=
ntunnel] &lt;-&gt; [IP Host B]<br>
<br>Here is how this looks at the application level. Application client and=
 server<br>communicate transparently as if there was an IP network between =
them. Both <br>client and server see IP addresses and ports of each other, =
not of dtntunnel as <br>
it is without transparent mode enabled:<br>[Application client] &lt;-&gt; [=
dtntunnel -T] &lt;-&gt; (DTN Network) &lt;-&gt;<br>=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 &lt;-&gt; [dtntunnel -L] &lt;-&gt; [Ap=
plication server]<br><br>In order to let transparent mode work, insert the =
following IPTables and routing <br>
rules on the host where you run dtntunnel in tunnel mode (&quot;-T&quot; op=
tion):<br>iptables -t mangle -N DTNTUNNEL<br>iptables -t mangle -A DTNTUNNE=
L -j MARK --set-mark 1<br>iptables -t mangle -A DTNTUNNEL -j ACCEPT<br>
iptables -t mangle -A PREROUTING -p $PROTO -m socket -j DTNTUNNEL<br>iptabl=
es -t mangle -A PREROUTING -p $PROTO --dport $APPLICATION_PORT -j TPROXY \<=
br>=A0=A0=A0=A0=A0=A0=A0=A0 --on-port $DTNTUNNEL_PORT --tproxy-mark 1/1<br>=
ip rule add fwmark 1 lookup 100<br>
ip route add local <a href=3D"http://0.0.0.0/0">0.0.0.0/0</a> dev lo table =
100<br><br>If you run application client on the same host as dtntunnel in t=
unnel mode, you <br>have to insert an additional IPTables rule:<br>iptables=
 -t mangle -A OUTPUT -o $EXTERNAL_IF -p $PROTO --dport $APPLICATION_PORT \<=
br>
=A0=A0=A0=A0=A0=A0=A0=A0 -j MARK --set-xmark 1<br>NOTE: This will work only=
 for application client running on the same host as <br>dtntunnel in tunnel=
 mode, not for a server running on the same host as dtntunnel <br>in listen=
 mode (&quot;-L&quot; option).<br>
<br>In the above commands $PROTO is either tcp or udp;<br>$APPLICATION_PORT=
 is a port number used by an application protocol, ex. 22 for SSH, <br>53 f=
or DNS, 80 for HTTP, port range can be given in the form 22:23;<br>$DTNTUNN=
EL_PORT is the dtntunnel lport as given in tunnel specification;<br>
$EXTERNAL_IF is a name of a network interface towards the remote network th=
at is <br>to be reached via DTN.<br><br>NOTE: Don&#39;t forget to add netwo=
rk routes on the hosts that will use dtntunnel host <br>as a router. In the=
 most simple case setting the default gateway address to the <br>
address of the host running dtntunnel is enough.<br><br>In transparent mode=
 dtntunnel can use multiple destination EIDs in order to be able<br>to tran=
sport data to multiple IP networks reachable through different DTN nodes.<b=
r>
To enable this feature specify &lt;destination eid table file name&gt; inst=
ead of <br>&lt;destination_eid&gt; in dtntunnel command line.<br><br>Eid ta=
ble file format: &lt;IP network address&gt; &lt;DTN node EID&gt;.<br>Eid ta=
ble file example:<br>
<a href=3D"http://192.168.4.0/24">192.168.4.0/24</a> dtn://dtn1.dtn/dtntunn=
el/app<br><a href=3D"http://192.168.5.0/24">192.168.5.0/24</a> dtn://dtn2.d=
tn/dtntunnel/app<br clear=3D"all">-----------------------------------------=
---------------------------------------------------------------<br>
<br>My patch dtntunnel_transparent.ss.patch should be applied on top of a p=
atch <br>dtntunnel.udp_bidirectional.dz.patch, written by David Zoller and =
published here with his<br>kind permission. Both patches apply cleanly to t=
he today&#39;s Sourceforge version of dtn2.<br>
To apply the patches, go to apps/dtntunnel subdirectory of dtn2 source tree=
 and issue the <br>commands:<br>patch -p1 &lt; dtntunnel.udp_bidirectional.=
dz.patch<br>patch -p1 &lt; dtntunnel_transparent.ss.patch<br><br>David&#39;=
s patch brings the following improvements:<br>
1) fix two memory leaks in TCPTunnel;<br>2) fix an issue with TCPTunnel whe=
n the connection closed by the server side of an <br>application is not clo=
sed on the client side;<br>3) a complete rewrite of UDPTunnel code that ena=
bles bidirectional data transmission,<br>
packet reordering option and possibly something else which I could have mis=
sed. <br><br>I hope these two patches will be accepted to the dtn2 mainstre=
am.<br><br>I would like to thank David for his support, it would be hardly =
possible for me to make <br>
transparent dtntunnel without his help and advices.<br>I would also like to=
 thank Elwyn Davies for his help with building NORM CL libraries and <br>ma=
king NORM work with recent DTN2 code.<br><br>Best regards,<br>Sergey Siresk=
in<br>
<br>

--047d7b6dc9c692d96f04d72b321c--
--047d7b6dc9c692d97404d72b321e
Content-Type: application/octet-stream; 
	name="dtntunnel.udp_bidirectional.dz.patch"
Content-Disposition: attachment; 
	filename="dtntunnel.udp_bidirectional.dz.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hdws7e8j0

ZGlmZiAtTnVyIGR0bnR1bm5lbC5vcmlnL0RUTlR1bm5lbC5jYyBkdG50dW5uZWwuZHovRFROVHVu
bmVsLmNjCi0tLSBkdG50dW5uZWwub3JpZy9EVE5UdW5uZWwuY2MJMjAxMy0wMi0xOCAxMzo1NTo1
OC4wMDAwMDAwMDAgKzA0MDAKKysrIGR0bnR1bm5lbC5kei9EVE5UdW5uZWwuY2MJMjAxMy0wMi0y
MCAwNTo0MToyMy4wMDAwMDAwMDAgKzA0MDAKQEAgLTUzLDExICs1MywxMyBAQAogICAgICAgZXhw
aXJhdGlvbl8oNjAwKSwKICAgICAgIHRjcF8odHJ1ZSksCiAgICAgICB1ZHBfKGZhbHNlKSwKKyAg
ICAgIHJlb3JkZXJfdWRwXyhmYWxzZSksCiAgICAgICBsb2NhbF9hZGRyXyhodG9ubChJTkFERFJf
QU5ZKSksCiAgICAgICBsb2NhbF9wb3J0XygwKSwKICAgICAgIHJlbW90ZV9hZGRyXyhodG9ubChJ
TkFERFJfTk9ORSkpLAogICAgICAgcmVtb3RlX3BvcnRfKDApLAogICAgICAgZGVsYXlfKDApLAor
ICAgICAgZGVsYXlfc2V0XyhmYWxzZSksCiAgICAgICBtYXhfc2l6ZV8oMzIgKiAxMDI0KSwKICAg
ICAgIHR1bm5lbF9zcGVjXygiIiksCiAgICAgICB0dW5uZWxfc3BlY19zZXRfKGZhbHNlKQpAQCAt
MTAxLDcgKzEwMyw4IEBACiAKICAgICBvcHRzXy5hZGRvcHQoCiAgICAgICAgIG5ldyBvYXN5czo6
VUludE9wdCgnRCcsICJkZWxheSIsICZkZWxheV8sICI8bWlsbGlzZWNzPiIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAibmFnbGUgZGVsYXkgaW4gbXNlY3MgZm9yIHN0cmVhbSB0cmFuc3Bv
cnRzIChlLmcuIHRjcCkiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFnbGUgZGVs
YXkgaW4gbXNlY3MgZm9yIHN0cmVhbSB0cmFuc3BvcnRzIChlLmcuIHRjcCkiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJmRlbGF5X3NldF8pKTsKICAgICAKICAgICBvcHRzXy5hZGRvcHQo
CiAgICAgICAgIG5ldyBvYXN5czo6VUludE9wdCgneicsICJtYXhfc2l6ZSIsICZtYXhfc2l6ZV8s
ICI8Ynl0ZXM+IiwKQEAgLTExMSw2ICsxMTQsMTAgQEAKICAgICAgICAgbmV3IG9hc3lzOjpTdHJp
bmdPcHQoJ1QnLCAidHVubmVsIiwgJnR1bm5lbF9zcGVjXywgIjxzcGVjPiIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ0dW5uZWwgc3BlY2lmaWNhdGlvbiBbbGhvc3Q6XWxwb3J0OnJo
b3N0OnJwb3J0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnR1bm5lbF9zcGVjX3Nl
dF8pKTsKKyAgICBvcHRzXy5hZGRvcHQoCisgICAgICAgIG5ldyBvYXN5czo6Qm9vbE9wdCgncics
ICJyZW9yZGVyX3VkcCIsICZyZW9yZGVyX3VkcF8sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAidWRwIGJ1bmRsZXMgcmVjZWl2ZWQgb3V0IG9mIG9yZGVyIHdpbGwgYnVmZmVyIHVudGlsIGlu
LW9yZGVyIGRlbGl2ZXIgY2FuIGJlIG1hZGUiKSk7CisgICAgCiB9CiAKIC8vLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQpkaWZmIC1OdXIgZHRudHVubmVsLm9yaWcvRFROVHVubmVsLmggZHRudHVubmVsLmR6L0RUTlR1
bm5lbC5oCi0tLSBkdG50dW5uZWwub3JpZy9EVE5UdW5uZWwuaAkyMDEzLTAyLTE4IDEzOjU1OjU4
LjAwMDAwMDAwMCArMDQwMAorKysgZHRudHVubmVsLmR6L0RUTlR1bm5lbC5oCTIwMTMtMDItMjAg
MDU6NDE6NTkuMDAwMDAwMDAwICswNDAwCkBAIC0xMDUsNiArMTA1LDggQEAKICAgICAvLy8gQWNj
ZXNzb3JzCiAgICAgdV9pbnQgbWF4X3NpemUoKSAgICAgICAgICAgICAgeyByZXR1cm4gbWF4X3Np
emVfOyB9CiAgICAgdV9pbnQgZGVsYXkoKSAgICAgICAgICAgICAgICAgeyByZXR1cm4gZGVsYXlf
OyB9CisgICAgdV9pbnQgZGVsYXlfc2V0KCkgICAgICAgICAgICAgeyByZXR1cm4gZGVsYXlfc2V0
XzsgfQorICAgIGJvb2wgcmVvcmRlcl91ZHAoKSAgICAgICAgICAgIHsgcmV0dXJuIHJlb3JkZXJf
dWRwXzsgfQogICAgIGR0bl9lbmRwb2ludF9pZF90KiBkZXN0X2VpZCgpIHsgcmV0dXJuICZkZXN0
X2VpZF87IH0KIAogcHJvdGVjdGVkOgpAQCAtMTIxLDExICsxMjMsMTMgQEAKICAgICB1X2ludAkJ
ZXhwaXJhdGlvbl87CiAgICAgYm9vbCAgICAgICAgICAgICAgICB0Y3BfOwogICAgIGJvb2wgICAg
ICAgICAgICAgICAgdWRwXzsKKyAgICBib29sICAgICAgICAgICAgICAgIHJlb3JkZXJfdWRwXzsK
ICAgICBpbl9hZGRyX3QJCWxvY2FsX2FkZHJfOwogICAgIHVfaW50MTZfdAkJbG9jYWxfcG9ydF87
CiAgICAgaW5fYWRkcl90CQlyZW1vdGVfYWRkcl87CiAgICAgdV9pbnQxNl90CQlyZW1vdGVfcG9y
dF87CiAgICAgdV9pbnQJCWRlbGF5XzsKKyAgICBib29sCQlkZWxheV9zZXRfOwogICAgIHVfaW50
CQltYXhfc2l6ZV87CiAgICAgc3RkOjpzdHJpbmcJICAgICAgICB0dW5uZWxfc3BlY187CiAgICAg
Ym9vbAkgICAgICAgIHR1bm5lbF9zcGVjX3NldF87CmRpZmYgLU51ciBkdG50dW5uZWwub3JpZy9U
Q1BUdW5uZWwuY2MgZHRudHVubmVsLmR6L1RDUFR1bm5lbC5jYwotLS0gZHRudHVubmVsLm9yaWcv
VENQVHVubmVsLmNjCTIwMTMtMDItMTggMTM6NTU6NTguMDAwMDAwMDAwICswNDAwCisrKyBkdG50
dW5uZWwuZHovVENQVHVubmVsLmNjCTIwMTMtMDItMTAgMjI6MTk6MjQuMDAwMDAwMDAwICswNDAw
CkBAIC0zMzMsNiArMzMzLDcgQEAKICAgICAgICAgICAgICAgICB0Y3B0dW5fLT5raWxsX2Nvbm5l
Y3Rpb24odGhpcyk7CiAgICAgICAgICAgICAgICAgZXhpdCgxKTsKICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGRlbGV0ZSBiOwogICAgICAgICAgICAgZ290byBkb25lOwogICAgICAgICB9CiAg
ICAgfQpAQCAtNDIyLDYgKzQyMyw3IEBACiAgICAgICAgICAgICAgICAgdG90YWxfc2VudCArPSBs
ZW47CiAgICAgICAgICAgICAgICAgbG9nX2RlYnVnKCJzZW50ICV6dSBieXRlIHBheWxvYWQgIyV1
IHRvIGR0biAoJXUgdG90YWwpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuLCBzZW5k
X3NlcW5vLCB0b3RhbF9zZW50KTsKKyAgICAgICAgICAgICAgICBkZWxldGUgYl94bWl0OwogICAg
ICAgICAgICAgICAgIGJfeG1pdCA9IE5VTEw7CiAgICAgICAgICAgICAgICAgdGJlZ2luLnNlY18g
PSAwOwogICAgICAgICAgICAgICAgIHRiZWdpbi51c2VjXyA9IDA7CkBAIC00ODEsOSArNDgzLDM0
IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKIAorICAgICAgICAgICAgLy9pZiAocmVj
dl9oZHItPmVvZl8pIHsKKyAgICAgICAgICAgIC8vICAgIGxvZ19pbmZvKCJidW5kbGUgaGFkIGVv
ZiBiaXQgc2V0Li4uIGNsb3NpbmcgY29ubmVjdGlvbiIpOworICAgICAgICAgICAgLy8gICAgc29j
a18uY2xvc2UoKTsKKyAgICAgICAgICAgIC8vfQorCisKICAgICAgICAgICAgIGlmIChyZWN2X2hk
ci0+ZW9mXykgewogICAgICAgICAgICAgICAgIGxvZ19pbmZvKCJidW5kbGUgaGFkIGVvZiBiaXQg
c2V0Li4uIGNsb3NpbmcgY29ubmVjdGlvbiIpOworCisgICAgICAgICAgICAgICAgaWYgKCAhc29j
a19lb2YgKSB7CisgICAgICAgICAgICAgICAgICAgIHNvY2tfZW9mID0gdHJ1ZTsKKworICAgICAg
ICAgICAgICAgICAgICBkdG46OkFQSUJ1bmRsZSogYiA9IG5ldyBkdG46OkFQSUJ1bmRsZSgpOwor
ICAgICAgICAgICAgICAgICAgICBoZHIuZW9mXyA9IDE7CisgICAgICAgICAgICAgICAgICAgIGhk
ci5zZXFub18gPSBudG9obChzZW5kX3NlcW5vKyspOworICAgICAgICAgICAgICAgICAgICBtZW1j
cHkoYi0+cGF5bG9hZF8uYnVmKHNpemVvZihoZHIpKSwgJmhkciwgc2l6ZW9mKGhkcikpOworICAg
ICAgICAgICAgICAgICAgICBiLT5wYXlsb2FkXy5zZXRfbGVuKHNpemVvZihoZHIpKTsKKyAgICAg
ICAgICAgICAgICAgICAgaW50IGVycjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChlcnIgPSB0
dW5uZWwtPnNlbmRfYnVuZGxlKGIsICZkZXN0X2VpZF8pKSAhPSBEVE5fU1VDQ0VTUykgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbG9nX2VycigiZXJyb3Igc2VuZGluZyBmaW5hbCBzb2NrZXQg
Y2xvc2VkIHBhY2tldCBidW5kbGU6ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZHRuX3N0cmVycm9yKGVycikpOworICAgICAgICAgICAgICAgICAgICAgICAgdGNwdHVuXy0+
a2lsbF9jb25uZWN0aW9uKHRoaXMpOworICAgICAgICAgICAgICAgICAgICAgICAgZXhpdCgxKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkZWxldGUgYjsKKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgc29ja18uY2xvc2UoKTsKKyAgICAgICAg
ICAgICAgICBnb3RvIGRvbmU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGRlbGV0ZSBiX3JlY3Y7CmRpZmYgLU51ciBkdG50dW5uZWwub3JpZy9VRFBUdW5uZWwuY2Mg
ZHRudHVubmVsLmR6L1VEUFR1bm5lbC5jYwotLS0gZHRudHVubmVsLm9yaWcvVURQVHVubmVsLmNj
CTIwMTMtMDItMTggMTM6NTU6NTguMDAwMDAwMDAwICswNDAwCisrKyBkdG50dW5uZWwuZHovVURQ
VHVubmVsLmNjCTIwMTMtMDItMjAgMDU6NDU6MjIuMDAwMDAwMDAwICswNDAwCkBAIC0xOSw3ICsx
OSw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgPG9hc3lzL2lvL05ldFV0aWxzLmg+Ci0KKyNpbmNs
dWRlIDxvYXN5cy91dGlsL1RpbWUuaD4KICNpbmNsdWRlICJEVE5UdW5uZWwuaCIKICNpbmNsdWRl
ICJVRFBUdW5uZWwuaCIKIApAQCAtMjgsOSArMjgsOSBAQAogLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBVRFBU
dW5uZWw6OlVEUFR1bm5lbCgpCiAgICAgOiBJUFR1bm5lbCgiVURQVHVubmVsIiwgIi9kdG50dW5u
ZWwvdWRwIiksCi0gICAgICBzb2NrXygiL2R0bnR1bm5lbC91ZHAvc29jayIpCisgICAgICBuZXh0
X2Nvbm5lY3Rpb25faWRfKDApLAorICAgICAgbGlzdGVuZXJfKE5VTEwpCiB7Ci0gICAgc29ja18u
aW5pdF9zb2NrZXQoKTsKIH0KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zOCw0MSArMzgsMzk0IEBA
CiBVRFBUdW5uZWw6OmFkZF9saXN0ZW5lcihpbl9hZGRyX3QgbGlzdGVuX2FkZHIsIHVfaW50MTZf
dCBsaXN0ZW5fcG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgIGluX2FkZHJfdCByZW1vdGVf
YWRkciwgdV9pbnQxNl90IHJlbW90ZV9wb3J0KQogewotICAgIC8vIHRoZSBvYmplY3Qgd2lsbCBk
ZWxldGUgaXRzZWxmIHdoZW4gdGhlIHRocmVhZCBleGl0cwotICAgIG5ldyBMaXN0ZW5lcihsaXN0
ZW5fYWRkciwgbGlzdGVuX3BvcnQsIHJlbW90ZV9hZGRyLCByZW1vdGVfcG9ydCk7CisgICAgaWYg
KE5VTEwgIT0gbGlzdGVuZXJfKSB7CisgICAgICAgIGxvZ19jcml0KCJhdHRlbXB0IHdhcyBtYWRl
IHRvIGFkZCBsaXN0ZW5lciBhZnRlciBhbHJlYWR5IGluc3RhbnRpYXRlZCIpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGxpc3RlbmVyXyA9IG5ldyBMaXN0ZW5lcih0aGlzLCBsaXN0ZW5fYWRkciwg
bGlzdGVuX3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGVfYWRk
ciwgcmVtb3RlX3BvcnQpOworICAgIH0KIH0KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit1X2ludDMyX3QK
K1VEUFR1bm5lbDo6bmV4dF9jb25uZWN0aW9uX2lkKCkKK3sKKyAgICBvYXN5czo6U2NvcGVMb2Nr
IGwoJmxvY2tfLCAiVURQVHVubmVsOjpuZXh0X2Nvbm5lY3Rpb25faWQiKTsKKyAgICByZXR1cm4g
KytuZXh0X2Nvbm5lY3Rpb25faWRfOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQKK1VEUFR1
bm5lbDo6a2lsbF9jb25uZWN0aW9uKENvbm5lY3Rpb24qIGMpCit7CisgICAgb2FzeXM6OlNjb3Bl
TG9jayBsKCZsb2NrXywgIlVEUFR1bm5lbDo6a2lsbF9jb25uZWN0aW9uIik7CisgICAgCisgICAg
Q29ublRhYmxlOjppdGVyYXRvciBpOworICAgIENvbm5LZXkga2V5KGMtPmRlc3RfZWlkXywKKyAg
ICAgICAgICAgICAgICBjLT5jbGllbnRfYWRkcl8sCisgICAgICAgICAgICAgICAgYy0+Y2xpZW50
X3BvcnRfLAorICAgICAgICAgICAgICAgIGMtPnJlbW90ZV9hZGRyXywKKyAgICAgICAgICAgICAg
ICBjLT5yZW1vdGVfcG9ydF8sCisgICAgICAgICAgICAgICAgYy0+Y29ubmVjdGlvbl9pZF8pOwog
ICAgIAorICAgIGkgPSBjb25uZWN0aW9uc18uZmluZChrZXkpOworCisgICAgaWYgKGkgPT0gY29u
bmVjdGlvbnNfLmVuZCgpKSB7CisgICAgICAgIGxvZ19lcnIoImNhbid0IGZpbmQgY29ubmVjdGlv
biAqJXAgaW4gdGFibGUiLCBjKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIHRo
ZXJlJ3MgYSBjaGFuY2UgdGhhdCB0aGUgY29ubmVjdGlvbiB3YXMgcmVwbGFjZWQgYnkgYQorICAg
IC8vIHJlc3RhcnRlZCBvbmUsIGluIHdoaWNoIGNhc2Ugd2UgbGVhdmUgdGhlIGV4aXN0aW5nIG9u
ZSBpbiB0aGUKKyAgICAvLyB0YWJsZSBhbmQgZG9uJ3Qgd2FudCB0byBibG93IGl0IGF3YXkKKyAg
ICBpZiAoaS0+c2Vjb25kID09IGMpIHsKKyAgICAgICAgY29ubmVjdGlvbnNfLmVyYXNlKGkpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIGxvZ19ub3RpY2UoIm5vdCBlcmFzaW5nIGNvbm5lY3Rpb24g
aW4gdGFibGUgc2luY2UgYWxyZWFkeSByZXBsYWNlZCIpOworICAgIH0KKworfQorCiAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIHZvaWQKIFVEUFR1bm5lbDo6aGFuZGxlX2J1bmRsZShkdG46OkFQSUJ1bmRsZSog
YnVuZGxlKQogeworICAgIG9hc3lzOjpTY29wZUxvY2sgbCgmbG9ja18sICJVRFBUdW5uZWw6Omhh
bmRsZV9idW5kbGUiKTsKKwogICAgIERUTlR1bm5lbDo6QnVuZGxlSGVhZGVyIGhkcjsKICAgICBt
ZW1jcHkoJmhkciwgYnVuZGxlLT5wYXlsb2FkXy5idWYoKSwgc2l6ZW9mKGhkcikpOwotICAgIGhk
ci5yZW1vdGVfcG9ydF8gPSBodG9ucyhoZHIucmVtb3RlX3BvcnRfKTsKKyAgICBoZHIuY29ubmVj
dGlvbl9pZF8gPSBudG9obChoZHIuY29ubmVjdGlvbl9pZF8pOworICAgIGhkci5zZXFub18gPSBu
dG9obChoZHIuc2Vxbm9fKTsKKyAgICBoZHIuY2xpZW50X3BvcnRfID0gbnRvaHMoaGRyLmNsaWVu
dF9wb3J0Xyk7CisgICAgaGRyLnJlbW90ZV9wb3J0XyA9IG50b2hzKGhkci5yZW1vdGVfcG9ydF8p
OworCisgICAgbG9nX2RlYnVnKCJoYW5kbGVfYnVuZGxlIGdvdCAlenUgYnl0ZSBidW5kbGUgZnJv
bSAlcyBmb3IgJXM6JWQgLT4gJXM6JWQgKGlkICV1IHNlcW5vICV1KSIsCisgICAgICAgICAgICAg
IGJ1bmRsZS0+cGF5bG9hZF8ubGVuKCksCisgICAgICAgICAgICAgIGJ1bmRsZS0+c3BlY18uc291
cmNlLnVyaSwKKyAgICAgICAgICAgICAgaW50b2EoaGRyLmNsaWVudF9hZGRyXyksCisgICAgICAg
ICAgICAgIGhkci5jbGllbnRfcG9ydF8sCisgICAgICAgICAgICAgIGludG9hKGhkci5yZW1vdGVf
YWRkcl8pLAorICAgICAgICAgICAgICBoZHIucmVtb3RlX3BvcnRfLAorICAgICAgICAgICAgICBo
ZHIuY29ubmVjdGlvbl9pZF8sCisgICAgICAgICAgICAgIGhkci5zZXFub18pOworCisKKyAgICBp
ZiAoTlVMTCAhPSBsaXN0ZW5lcl8pIHsKKyAgICAgICAgbGlzdGVuZXJfLT5oYW5kbGVfYnVuZGxl
KGJ1bmRsZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICBjaGFyKiBicCA9IGJ1bmRs
ZS0+cGF5bG9hZF8uYnVmKCkgKyBzaXplb2YoaGRyKTsKLSAgICBpbnQgIGxlbiA9IGJ1bmRsZS0+
cGF5bG9hZF8ubGVuKCkgLSBzaXplb2YoaGRyKTsKICAgICAKLSAgICBpbnQgY2MgPSBzb2NrXy5z
ZW5kdG8oYnAsIGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGhkci5yZW1vdGVf
YWRkcl8sIGhkci5yZW1vdGVfcG9ydF8pOwotICAgIGlmIChjYyAhPSBsZW4pIHsKLSAgICAgICAg
bG9nX2VycigiZXJyb3Igc2VuZGluZyBwYWNrZXQgdG8gJXM6JWQ6ICVzIiwKLSAgICAgICAgICAg
ICAgICBpbnRvYShoZHIucmVtb3RlX2FkZHJfKSwgaGRyLnJlbW90ZV9wb3J0Xywgc3RyZXJyb3Io
ZXJybm8pKTsKKyAgICBDb25uZWN0aW9uKiBjb25uID0gTlVMTDsKKyAgICBDb25uVGFibGU6Oml0
ZXJhdG9yIGk7CisgICAgQ29ubktleSBrZXkoYnVuZGxlLT5zcGVjXy5zb3VyY2UsCisgICAgICAg
ICAgICAgICAgaGRyLmNsaWVudF9hZGRyXywKKyAgICAgICAgICAgICAgICBoZHIuY2xpZW50X3Bv
cnRfLAorICAgICAgICAgICAgICAgIGhkci5yZW1vdGVfYWRkcl8sCisgICAgICAgICAgICAgICAg
aGRyLnJlbW90ZV9wb3J0XywKKyAgICAgICAgICAgICAgICBoZHIuY29ubmVjdGlvbl9pZF8pOwor
ICAgIAorICAgIGkgPSBjb25uZWN0aW9uc18uZmluZChrZXkpOworICAgIAorICAgIGlmIChpID09
IGNvbm5lY3Rpb25zXy5lbmQoKSkgeworICAgICAgICBsb2dfZGVidWcoImdvdCBidW5kbGUgd2l0
aCBzZXFubyAldSBidXQgbm8gY29ubmVjdGlvbi4uLiAiCisgICAgICAgICAgICAgICAgICJjcmVh
dGluZyBuZXcgY29ubmVjdGlvbiBmb3IgY2xpZW50ICVzOiVkIiwKKyAgICAgICAgICAgICAgICAg
aGRyLnNlcW5vXywgaW50b2EoaGRyLmNsaWVudF9hZGRyXyksIGhkci5jbGllbnRfcG9ydF8pOwor
CisgICAgICAgIGNvbm4gPSBuZXcgQ29ubmVjdGlvbih0aGlzLCAmYnVuZGxlLT5zcGVjXy5zb3Vy
Y2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZHIuY2xpZW50X2FkZHJfLCBoZHIu
Y2xpZW50X3BvcnRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGRyLnJlbW90ZV9h
ZGRyXywgaGRyLnJlbW90ZV9wb3J0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhk
ci5jb25uZWN0aW9uX2lkXyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZXh0
X2Nvbm5lY3Rpb25faWQoKSk7IC0gbGlzdGVuZXIgbm93IGFzc2lnbnMgYW4gSUQKKworICAgICAg
ICBsb2dfaW5mbygibmV3IGNvbm5lY3Rpb24gKiVwIiwgY29ubik7CisgICAgICAgIGNvbm4tPnN0
YXJ0KCk7CisgICAgICAgIGNvbm5lY3Rpb25zX1trZXldID0gY29ubjsKKworICAgICAgICAvLyB3
YWl0IGZvciBuZXcgY29ubmVjdGlvbiB0byBlc3RhYmxpc2ggYSBjb25uZWN0aW9uCisgICAgICAg
IC8vCiAgICAgfSBlbHNlIHsKLSAgICAgICAgbG9nX2RlYnVnKCJzZW50ICV6dSBieXRlIHBhY2tl
dCB0byAlczolZCIsCi0gICAgICAgICAgICAgICAgICBidW5kbGUtPnBheWxvYWRfLmxlbigpIC0g
c2l6ZW9mKGhkciksCi0gICAgICAgICAgICAgICAgICBpbnRvYShoZHIucmVtb3RlX2FkZHJfKSwg
aGRyLnJlbW90ZV9wb3J0Xyk7CisgICAgICAgIGNvbm4gPSBpLT5zZWNvbmQ7CiAgICAgfQogCi0g
ICAgZGVsZXRlIGJ1bmRsZTsKKyAgICBBU1NFUlQoY29ubiAhPSBOVUxMKTsKKyAgICBjb25uLT5o
YW5kbGVfYnVuZGxlKGJ1bmRsZSk7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVURQVHVubmVsOjpD
b25uZWN0aW9uOjpDb25uZWN0aW9uKFVEUFR1bm5lbCogdCwgZHRuX2VuZHBvaW50X2lkX3QqIGRl
c3RfZWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluX2FkZHJfdCBjbGll
bnRfYWRkciwgdV9pbnQxNl90IGNsaWVudF9wb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluX2FkZHJfdCByZW1vdGVfYWRkciwgdV9pbnQxNl90IHJlbW90ZV9wb3J0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfaW50MzJfdCBjb25uZWN0aW9uX2lk
KQorICAgIDogVGhyZWFkKCJVRFBUdW5uZWw6OkNvbm5lY3Rpb24iLCBUaHJlYWQ6OkRFTEVURV9P
Tl9FWElUKSwKKyAgICAgIExvZ2dlcigiVURQVHVubmVsOjpDb25uZWN0aW9uIiwgIi9kdG50dW5u
ZWwvdWRwL2Nvbm4iKSwKKyAgICAgIHVkcHR1bl8odCksCisgICAgICBzb2NrXygiL2R0bnR1bm5l
bC91ZHAvY29ubi9zb2NrIiksCisgICAgICBxdWV1ZV8oIi9kdG50dW5uZWwvdWRwL2Nvbm4iKSwK
KyAgICAgIG5leHRfc2Vxbm9fKDApLAorICAgICAgY2xpZW50X2FkZHJfKGNsaWVudF9hZGRyKSwK
KyAgICAgIGNsaWVudF9wb3J0XyhjbGllbnRfcG9ydCksCisgICAgICByZW1vdGVfYWRkcl8ocmVt
b3RlX2FkZHIpLAorICAgICAgcmVtb3RlX3BvcnRfKHJlbW90ZV9wb3J0KSwKKyAgICAgIGNvbm5l
Y3Rpb25faWRfKGNvbm5lY3Rpb25faWQpCit7CisgICAgZHRuX2NvcHlfZWlkKCZkZXN0X2VpZF8s
IGRlc3RfZWlkKTsKKyAgICByZW9yZGVyX3VkcF8gPSBEVE5UdW5uZWw6Omluc3RhbmNlKCktPnJl
b3JkZXJfdWRwKCk7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVURQVHVubmVsOjpDb25uZWN0aW9u
Ojp+Q29ubmVjdGlvbigpCit7CisgICAgZHRuOjpBUElCdW5kbGUqIGI7CisgICAgd2hpbGUocXVl
dWVfLnRyeV9wb3AoJmIpKSB7CisgICAgICAgIGRlbGV0ZSBiOworICAgIH0KK30KKworLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitpbnQKK1VEUFR1bm5lbDo6Q29ubmVjdGlvbjo6Zm9ybWF0KGNoYXIqIGJ1Ziwg
c2l6ZV90IHN6KSBjb25zdAoreworICAgIHJldHVybiBzbnByaW50ZihidWYsIHN6LCAiWyVzICVz
OiVkIC0+ICVzOiVkIChpZCAldSkiLAorICAgICAgICAgICAgICAgICAgICBkZXN0X2VpZF8udXJp
LAorICAgICAgICAgICAgICAgICAgICBpbnRvYShjbGllbnRfYWRkcl8pLAorICAgICAgICAgICAg
ICAgICAgICBjbGllbnRfcG9ydF8sCisgICAgICAgICAgICAgICAgICAgIGludG9hKHJlbW90ZV9h
ZGRyXyksCisgICAgICAgICAgICAgICAgICAgIHJlbW90ZV9wb3J0XywKKyAgICAgICAgICAgICAg
ICAgICAgY29ubmVjdGlvbl9pZF8pOwogfQogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVVEUFR1bm5lbDo6
TGlzdGVuZXI6Okxpc3RlbmVyKGluX2FkZHJfdCBsaXN0ZW5fYWRkciwgdV9pbnQxNl90IGxpc3Rl
bl9wb3J0LAordm9pZAorVURQVHVubmVsOjpDb25uZWN0aW9uOjpydW4oKQoreworICAgIERUTlR1
bm5lbCogdHVubmVsID0gRFROVHVubmVsOjppbnN0YW5jZSgpOworICAgIHVfaW50MzJfdCBzZW5k
X3NlcW5vID0gMDsKKyAgICB1X2ludDMyX3QgbmV4dF9yZWN2X3NlcW5vID0gMDsKKworICAgIC8v
IFhYWC9keiBpbiBpcGVyZiB0ZXN0IHdpdGggMTAgcGFyYWxsZWwgY29ubmVjdGlvbnMsIHVzaW5n
IHRpbWVvdXQ9MCAKKyAgICAvLyBkb3VibGVzIHRoZSB0aW1lIG5lZWRlZCBmb3IgdGhlIHNlcnZl
ciB0byBmaW5pc2gKKyAgICBpbnQgdGltZW91dCA9IDE7CisgICAgaWYgKHR1bm5lbC0+ZGVsYXlf
c2V0KCkpIHRpbWVvdXQgPSB0dW5uZWwtPmRlbGF5KCk7CisKKyAgICByZW9yZGVyX3VkcF8gPSB0
dW5uZWwtPnJlb3JkZXJfdWRwKCk7CisKKyAgICAvLyBvdXRnb2luZyAodWRwIC0+IGR0bikgLyBp
bmNvbWluZyAoZHRuIC0+IHVkcCkgYnVuZGxlcworICAgIGR0bjo6QVBJQnVuZGxlKiBiX3htaXQg
PSBOVUxMOworICAgIGR0bjo6QVBJQnVuZGxlKiBiX3JlY3YgPSBOVUxMOworCisgICAgLy8gdGlt
ZSB2YWx1ZXMgdG8gaW1wbGVtZW50IG5hZ2xlCisgICAgb2FzeXM6OlRpbWUgdGJlZ2luLCB0bm93
OworICAgIEFTU0VSVCh0YmVnaW4uc2VjXyA9PSAwKTsKKyAgICAKKyAgICAvLyBoZWFkZXIgZm9y
IG91dGdvaW5nIGJ1bmRsZXMKKyAgICBEVE5UdW5uZWw6OkJ1bmRsZUhlYWRlciBoZHI7CisgICAg
aGRyLmVvZl8gICAgICAgICAgID0gMDsKKyAgICBoZHIucHJvdG9jb2xfICAgICAgPSBJUFBST1RP
X1VEUDsKKyAgICBoZHIuY29ubmVjdGlvbl9pZF8gPSBodG9ubChjb25uZWN0aW9uX2lkXyk7Cisg
ICAgaGRyLnNlcW5vXyAgICAgICAgID0gMDsKKyAgICBoZHIuY2xpZW50X2FkZHJfICAgPSBjbGll
bnRfYWRkcl87CisgICAgaGRyLmNsaWVudF9wb3J0XyAgID0gaHRvbnMoY2xpZW50X3BvcnRfKTsK
KyAgICBoZHIucmVtb3RlX2FkZHJfICAgPSByZW1vdGVfYWRkcl87CisgICAgaGRyLnJlbW90ZV9w
b3J0XyAgID0gaHRvbnMocmVtb3RlX3BvcnRfKTsKKyAgICAKKyAgICBzb2NrXy5pbml0X3NvY2tl
dCgpOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgc3RydWN0IHBvbGxmZCBwb2xsZmRzWzJd
OworCisgICAgICAgIHN0cnVjdCBwb2xsZmQqIG1zZ19wb2xsICA9ICZwb2xsZmRzWzBdOworICAg
ICAgICBtc2dfcG9sbC0+ZmQgICAgICAgICAgICAgPSBxdWV1ZV8ucmVhZF9mZCgpOworICAgICAg
ICBtc2dfcG9sbC0+ZXZlbnRzICAgICAgICAgPSBQT0xMSU47CisgICAgICAgIG1zZ19wb2xsLT5y
ZXZlbnRzICAgICAgICA9IDA7CisKKyAgICAgICAgc3RydWN0IHBvbGxmZCogc29ja19wb2xsID0g
JnBvbGxmZHNbMV07CisgICAgICAgIHNvY2tfcG9sbC0+ZmQgICAgICAgICAgICA9IHNvY2tfLmZk
KCk7CisgICAgICAgIHNvY2tfcG9sbC0+ZXZlbnRzICAgICAgICA9IFBPTExJTiB8IFBPTExFUlI7
CisgICAgICAgIHNvY2tfcG9sbC0+cmV2ZW50cyAgICAgICA9IDA7CisKKyAgICAgICAgLy8gaWYg
dGhlIHNvY2tldCBhbHJlYWR5IGhhZCBhbiBlb2Ygb3IgaWYgZHRuIGlzIHdyaXRlCisgICAgICAg
IC8vIGJsb2NrZWQsIHdlIGp1c3QgcG9sbCBmb3IgYWN0aXZpdHkgb24gdGhlIG1lc3NhZ2UgcXVl
dWUgdG8KKyAgICAgICAgLy8gbG9vayBmb3IgZGF0YSB0aGF0IG5lZWRzIHRvIGJlIHJldHVybmVk
IG91dCB0aGUgVENQIHNvY2tldAorICAgICAgICAvL2ludCBuZmRzID0gKHNvY2tfZW9mIHx8IGR0
bl9ibG9ja2VkKSA/IDEgOiAyOworICAgICAgICBpbnQgbmZkcyA9IDI7CisKKyAgICAgICAgaW50
IG5yZWFkeSA9IG9hc3lzOjpJTzo6cG9sbF9tdWx0aXBsZShwb2xsZmRzLCBuZmRzLCB0aW1lb3V0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGxv
Z3BhdGhfKTsKKyAgICAgICAgaWYgKG5yZWFkeSA9PSBvYXN5czo6SU9FUlJPUikgeworICAgICAg
ICAgICAgbG9nX2VycigidW5leHBlY3RlZCBlcnJvciBpbiBwb2xsOiAlcyIsIHN0cmVycm9yKGVy
cm5vKSk7CisgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgIH0KKworICAgICAgICAvLyBu
b3cgd2UgY2hlY2sgaWYgdGhlcmUgcmVhbGx5IGlzIGRhdGEgb24gdGhlIHNvY2tldAorICAgICAg
ICBpZiAoc29ja19wb2xsLT5yZXZlbnRzICE9IDApIHsKKyAgICAgICAgICAgIGludCByZXQgPSBz
b2NrXy5yZWN2KHJlY3ZfYnVmXywgc2l6ZW9mKHJlY3ZfYnVmXyksIDApOworICAgICAgICAgICAg
aWYgKHJldCA8IDApIHsKKyAgICAgICAgICAgICAgICBsb2dfZXJyKCJlcnJvciByZWFkaW5nIGZy
b20gc29ja2V0IChmb3IgY2xpZW50ICVzOiVkKTogJXMiLCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGludG9hKGNsaWVudF9hZGRyXyksIGNsaWVudF9wb3J0XywKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cmVycm9yKGVycm5vKSk7CisgICAgICAgICAgICAgICAgZGVsZXRlIGJfeG1pdDsK
KyAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICBoZHIuc2Vxbm9fID0gbnRvaGwoc2VuZF9zZXFubysrKTsKKworICAg
ICAgICAgICAgZHRuOjpBUElCdW5kbGUqIGIgPSBuZXcgZHRuOjpBUElCdW5kbGUoKTsKKyAgICAg
ICAgICAgIGNoYXIqIGJwID0gYi0+cGF5bG9hZF8uYnVmKHNpemVvZihoZHIpICsgcmV0KTsKKyAg
ICAgICAgICAgIG1lbWNweShicCwgJmhkciwgc2l6ZW9mKGhkcikpOworICAgICAgICAgICAgbWVt
Y3B5KGJwICsgc2l6ZW9mKGhkciksIHJlY3ZfYnVmXywgcmV0KTsKKyAgICAgICAgICAgIGItPnBh
eWxvYWRfLnNldF9sZW4oc2l6ZW9mKGhkcikgKyByZXQpOworICAgICAgIAorICAgICAgICAgICAg
aW50IHN0YXR1cyA9ICB0dW5uZWwtPnNlbmRfYnVuZGxlKGIsICZkZXN0X2VpZF8pOworICAgICAg
ICAgICAgaWYgKHN0YXR1cyAhPSBEVE5fU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIC8vZXhp
dCgxKTsKKyAgICAgICAgICAgICAgICBsb2dfY3JpdCgiZXJyb3Igc2VuZGluZyBidW5kbGUgLSBz
dGF0dXM6ICVkIiwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZGVsZXRl
IGI7CisgICAgICAgIH0KKworICAgICAgICAvLyBub3cgY2hlY2sgZm9yIGFjdGl2aXR5IG9uIHRo
ZSBpbmNvbWluZyBidW5kbGUgcXVldWUKKyAgICAgICAgaWYgKG1zZ19wb2xsLT5yZXZlbnRzICE9
IDApIHsKKyAgICAgICAgICAgIGJfcmVjdiA9IHF1ZXVlXy5wb3BfYmxvY2tpbmcoKTsKKworICAg
ICAgICAgICAgLy8gaWYgYSBOVUxMIGJ1bmRsZSBpcyBwdXQgb24gdGhlIHF1ZXVlLCB0aGVuIHRo
ZSBtYWluCisgICAgICAgICAgICAvLyB0aHJlYWQgaXMgc2lnbmFsbGluZyB0aGF0IHdlIHNob3Vs
ZCBhYm9ydCB0aGUKKyAgICAgICAgICAgIC8vIGNvbm5lY3Rpb24KKyAgICAgICAgICAgIGlmIChi
X3JlY3YgPT0gTlVMTCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBsb2dfZGVidWco
ImdvdCBzaWduYWwgdG8gYWJvcnQgY29ubmVjdGlvbiIpOworICAgICAgICAgICAgICAgIGdvdG8g
ZG9uZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgRFROVHVubmVsOjpCdW5kbGVIZWFk
ZXIqIHJlY3ZfaGRyID0KKyAgICAgICAgICAgICAgICAoRFROVHVubmVsOjpCdW5kbGVIZWFkZXIq
KWJfcmVjdi0+cGF5bG9hZF8uYnVmKCk7CisKKyAgICAgICAgICAgIHVfaW50MzJfdCByZWN2X3Nl
cW5vID0gbnRvaGwocmVjdl9oZHItPnNlcW5vXyk7CisKKyAgICAgICAgICAgIC8vIGNoZWNrIHRo
ZSBzZXFubyBtYXRjaCAtLSByZW9yZGVyaW5nIHNob3VsZCBoYXZlIGJlZW4KKyAgICAgICAgICAg
IC8vIGhhbmRsZWQgYmVmb3JlIHRoZSBidW5kbGUgd2FzIHB1dCBvbiB0aGUgYmxvY2tpbmcKKyAg
ICAgICAgICAgIC8vIG1lc3NhZ2UgcXVldWUKKyAgICAgICAgICAgIGlmICggcmVvcmRlcl91ZHBf
ICkgeworICAgICAgICAgICAgICAgIGlmIChyZWN2X3NlcW5vICE9IG5leHRfcmVjdl9zZXFubykg
eworICAgICAgICAgICAgICAgICAgICBsb2dfZXJyKCJnb3Qgb3V0IG9mIG9yZGVyIGJ1bmRsZTog
c2Vxbm8gJWQsIGV4cGVjdGVkICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN2
X3NlcW5vLCBuZXh0X3JlY3Zfc2Vxbm8pOworICAgICAgICAgICAgICAgICAgICBkZWxldGUgYl9y
ZWN2OworICAgICAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgKytuZXh0X3JlY3Zfc2Vxbm87CisKKyAgICAgICAg
ICAgIHVfaW50IGxlbiA9IGJfcmVjdi0+cGF5bG9hZF8ubGVuKCkgLSBzaXplb2YoaGRyKTsKKwor
ICAgICAgICAgICAgaWYgKGxlbiAhPSAwKSB7CisgICAgICAgICAgICAgICAgRFROVHVubmVsOjpC
dW5kbGVIZWFkZXIgaGRyOworICAgICAgICAgICAgICAgIG1lbWNweSgmaGRyLCBiX3JlY3YtPnBh
eWxvYWRfLmJ1ZigpLCBzaXplb2YoaGRyKSk7CisgICAgICAgICAgICAgICAgaGRyLnJlbW90ZV9w
b3J0XyA9IGh0b25zKGhkci5yZW1vdGVfcG9ydF8pOworCisgICAgICAgICAgICAgICAgY2hhciog
YnAgPSBiX3JlY3YtPnBheWxvYWRfLmJ1ZigpICsgc2l6ZW9mKGhkcik7CisgICAgICAgICAgICAg
ICAgaW50ICBsZW4gPSBiX3JlY3YtPnBheWxvYWRfLmxlbigpIC0gc2l6ZW9mKGhkcik7CisgICAg
CisgICAgICAgICAgICAgICAgaW50IGNjID0gc29ja18uc2VuZHRvKGJwLCBsZW4sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBoZHIucmVtb3RlX2FkZHJfLCBoZHIu
cmVtb3RlX3BvcnRfKTsKKyAgICAgICAgICAgICAgICBpZiAoY2MgIT0gbGVuKSB7CisgICAgICAg
ICAgICAgICAgICAgIGxvZ19lcnIoImVycm9yIHNlbmRpbmcgcGFja2V0IHRvICVzOiVkIGZvciBj
bGllbnQgJXM6JWQ6ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRvYShoZHIu
cmVtb3RlX2FkZHJfKSwgaGRyLnJlbW90ZV9wb3J0XywgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50b2EoY2xpZW50X2FkZHJfKSwgY2xpZW50X3BvcnRfLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgbG9nX2RlYnVnKCJzZW50ICV6dSBieXRlIHBheWxvYWQgdG8g
JXM6JWQgZm9yIGNsaWVudCAlczolZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRvYShoZHIucmVtb3RlX2FkZHJf
KSwgaGRyLnJlbW90ZV9wb3J0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludG9h
KGNsaWVudF9hZGRyXyksIGNsaWVudF9wb3J0Xyk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGNjICE9IGxlbikgeworICAgICAgICAgICAgICAg
ICAgdWRwdHVuXy0+a2lsbF9jb25uZWN0aW9uKHRoaXMpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgZGVsZXRlIGJfcmVjdjsKKyAgICAgICAgfQorICAg
IH0KKworIGRvbmU6CisgICAgdWRwdHVuXy0+a2lsbF9jb25uZWN0aW9uKHRoaXMpOworfQorCisv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK3ZvaWQKK1VEUFR1bm5lbDo6Q29ubmVjdGlvbjo6aGFuZGxlX2J1bmRs
ZShkdG46OkFQSUJ1bmRsZSogYnVuZGxlKQoreworICAgIERUTlR1bm5lbDo6QnVuZGxlSGVhZGVy
KiBoZHIgPQorICAgICAgICAoRFROVHVubmVsOjpCdW5kbGVIZWFkZXIqKWJ1bmRsZS0+cGF5bG9h
ZF8uYnVmKCk7CisgICAgCisgICAgdV9pbnQzMl90IHJlY3Zfc2Vxbm8gPSBudG9obChoZHItPnNl
cW5vXyk7CisKKyAgICBpZiAoIHJlb3JkZXJfdWRwXyApIHsKKyAgICAgICAgLy8gaWYgdGhlIHNl
cW5vIGlzIGluIHRoZSBwYXN0LCB0aGVuIGl0J3MgYSBkdXBsaWNhdGUgZGVsaXZlcnkgc28KKyAg
ICAgICAgLy8ganVzdCBpZ25vcmUgaXQKKyAgICAgICAgaWYgKHJlY3Zfc2Vxbm8gPCBuZXh0X3Nl
cW5vXykKKyAgICAgICAgeworICAgICAgICAgICAgbG9nX3dhcm4oImdvdCBzZXFubyAldSwgYnV0
IGFscmVhZHkgZGVsaXZlcmVkIHVwIHRvICV1OiAiCisgICAgICAgICAgICAgICAgICAgICAiaWdu
b3JpbmcgYnVuZGxlIiwKKyAgICAgICAgICAgICAgICAgICAgIHJlY3Zfc2Vxbm8sIG5leHRfc2Vx
bm9fKTsKKyAgICAgICAgICAgIGRlbGV0ZSBidW5kbGU7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gb3RoZXJ3aXNlLCBpZiBpdCdzIG5vdCB0aGUgbmV4
dCBvbmUgZXhwZWN0ZWQsIHB1dCBpdCBvbiB0aGUKKyAgICAgICAgLy8gcXVldWUgYW5kIHdhaXQg
Zm9yIHRoZSBvbmUgdGhhdCdzIG1pc3NpbmcKKyAgICAgICAgZWxzZSBpZiAocmVjdl9zZXFubyAh
PSBuZXh0X3NlcW5vXykKKyAgICAgICAgeworICAgICAgICAgICAgbG9nX2RlYnVnKCJnb3Qgb3V0
IG9mIG9yZGVyIGJ1bmRsZSAoY2xpZW50OiAlczolZCk6IGV4cGVjdGVkIHNlcW5vICVkLCBnb3Qg
JWQiLAorICAgICAgICAgICAgICAgICAgICAgaW50b2EoY2xpZW50X2FkZHJfKSwgY2xpZW50X3Bv
cnRfLAorICAgICAgICAgICAgICAgICAgICAgbmV4dF9zZXFub18sIHJlY3Zfc2Vxbm8pOworICAg
ICAgICAgICAgCisgICAgICAgICAgICByZW9yZGVyX3RhYmxlX1tyZWN2X3NlcW5vXSA9IGJ1bmRs
ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGRlbGl2
ZXIgdGhlIG9uZSB0aGF0IGp1c3QgYXJyaXZlZAorICAgIGxvZ19kZWJ1ZygiZGVsaXZlcmluZyAl
enUgYnl0ZSBidW5kbGUgd2l0aCBzZXFubyAlZCBmb3IgY2xpZW50ICVzOiVkIiwKKyAgICAgICAg
ICAgICAgYnVuZGxlLT5wYXlsb2FkXy5sZW4oKSwgcmVjdl9zZXFubywKKyAgICAgICAgICAgICAg
aW50b2EoY2xpZW50X2FkZHJfKSwgY2xpZW50X3BvcnRfKTsKKyAgICBxdWV1ZV8ucHVzaF9iYWNr
KGJ1bmRsZSk7CisgICAgbmV4dF9zZXFub18rKzsKKworCisgICAgaWYgKCByZW9yZGVyX3VkcF8g
KSB7CisgICAgICAgIC8vIG9uY2Ugd2UgZ2V0IG9uZSB0aGF0J3MgaW4gb3JkZXIsIHRoYXQgbWln
aHQgbGV0IHVzIHRyYW5zZmVyCisgICAgICAgIC8vIG1vcmUgYnVuZGxlcyBvdXQgb2YgdGhlIHJl
b3JkZXIgdGFibGUgYW5kIGludG8gdGhlIHF1ZXVlCisgICAgICAgIFJlb3JkZXJUYWJsZTo6aXRl
cmF0b3IgaXRlcjsKKyAgICAgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgICAgIGl0ZXIgPSByZW9y
ZGVyX3RhYmxlXy5maW5kKG5leHRfc2Vxbm9fKTsKKyAgICAgICAgICAgIGlmIChpdGVyID09IHJl
b3JkZXJfdGFibGVfLmVuZCgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGJ1bmRsZSA9IGl0ZXItPnNlY29uZDsKKyAgICAgICAgICAgIGxv
Z19kZWJ1ZygiZGVsaXZlcmluZyAlenUgYnl0ZSBidW5kbGUgd2l0aCBzZXFubyAlZCBmb3IgY2xp
ZW50ICVzOiVkIChmcm9tIHJlb3JkZXIgdGFibGUpIiwKKyAgICAgICAgICAgICAgICAgICAgIGJ1
bmRsZS0+cGF5bG9hZF8ubGVuKCksIG5leHRfc2Vxbm9fLAorICAgICAgICAgICAgICAgICAgICAg
aW50b2EoY2xpZW50X2FkZHJfKSwgY2xpZW50X3BvcnRfKTsKKyAgICAgICAgCisgICAgICAgICAg
ICByZW9yZGVyX3RhYmxlXy5lcmFzZShpdGVyKTsKKyAgICAgICAgICAgIG5leHRfc2Vxbm9fKys7
CisgICAgICAgIAorICAgICAgICAgICAgcXVldWVfLnB1c2hfYmFjayhidW5kbGUpOworICAgICAg
ICB9CisgICAgfQorfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1VEUFR1bm5lbDo6TGlzdGVuZXI6Okxp
c3RlbmVyKFVEUFR1bm5lbCogdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluX2Fk
ZHJfdCBsaXN0ZW5fYWRkciwgdV9pbnQxNl90IGxpc3Rlbl9wb3J0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5fYWRkcl90IHJlbW90ZV9hZGRyLCB1X2ludDE2X3QgcmVtb3RlX3Bv
cnQpCiAgICAgOiBUaHJlYWQoIlVEUFR1bm5lbDo6TGlzdGVuZXIiLCBERUxFVEVfT05fRVhJVCks
CiAgICAgICBMb2dnZXIoIlVEUFR1bm5lbDo6TGlzdGVuZXIiLCAiL2R0bnR1bm5lbC91ZHAvbGlz
dGVuZXIiKSwgCiAgICAgICBzb2NrXygiL2R0bnR1bm5lbC91ZHAvbGlzdGVuZXIvc29jayIpLAor
ICAgICAgdWRwdHVuXyh0KSwKICAgICAgIGxpc3Rlbl9hZGRyXyhsaXN0ZW5fYWRkciksCiAgICAg
ICBsaXN0ZW5fcG9ydF8obGlzdGVuX3BvcnQpLAogICAgICAgcmVtb3RlX2FkZHJfKHJlbW90ZV9h
ZGRyKSwKQEAgLTkzLDIxICs0NDYsMjcgQEAKICAgICB9CiAKICAgICBEVE5UdW5uZWw6OkJ1bmRs
ZUhlYWRlciBoZHI7Ci0gICAgaGRyLnByb3RvY29sXyAgICA9IElQUFJPVE9fVURQOwotICAgIGhk
ci5zZXFub18gICAgICAgPSAwOwotICAgIGhkci5jbGllbnRfYWRkcl8gPSBsaXN0ZW5fYWRkcl87
Ci0gICAgaGRyLmNsaWVudF9wb3J0XyA9IGh0b25zKGxpc3Rlbl9wb3J0Xyk7Ci0gICAgaGRyLnJl
bW90ZV9hZGRyXyA9IHJlbW90ZV9hZGRyXzsKLSAgICBoZHIucmVtb3RlX3BvcnRfID0gaHRvbnMo
cmVtb3RlX3BvcnRfKTsKLSAgICAKKyAgICBoZHIucHJvdG9jb2xfICAgICAgICAgPSBJUFBST1RP
X1VEUDsKKyAgICBoZHIuY29ubmVjdGlvbl9pZF8gICAgPSAwOworICAgIGhkci5zZXFub18gICAg
ICAgICAgICA9IDA7CisgICAgaGRyLnJlbW90ZV9hZGRyXyAgICAgID0gcmVtb3RlX2FkZHJfOwor
ICAgIGhkci5yZW1vdGVfcG9ydF8gICAgICA9IGh0b25zKHJlbW90ZV9wb3J0Xyk7CisgICAKICAg
ICB3aGlsZSAoMSkgewotICAgICAgICBpbnQgbGVuID0gc29ja18ucmVjdihyZWN2X2J1Zl8sIHNp
emVvZihyZWN2X2J1Zl8pLCAwKTsKKyAgICAgICAgaW50IGxlbiA9IHNvY2tfLnJlY3Zmcm9tKHJl
Y3ZfYnVmXywgc2l6ZW9mKHJlY3ZfYnVmXyksIDAsICZoZHIuY2xpZW50X2FkZHJfLCAmaGRyLmNs
aWVudF9wb3J0Xyk7CisKICAgICAgICAgaWYgKGxlbiA8PSAwKSB7CiAgICAgICAgICAgICBsb2df
ZXJyKCJlcnJvciByZWFkaW5nIGZyb20gc29ja2V0OiAlcyIsIHN0cmVycm9yKGVycm5vKSk7CiAg
ICAgICAgICAgICByZXR1cm47IC8vIGRpZQogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBs
b2dfZGVidWcoImdvdCAlZCBieXRlIHBhY2tldCIsIGxlbik7CisKKyAgICAgICAgbG9nX2RlYnVn
KCJnb3QgJWQgYnl0ZSBwYWNrZXQgZnJvbSA8dWRwIHNyYzogJXM6JWQ+IiwgbGVuLCBpbnRvYSho
ZHIuY2xpZW50X2FkZHJfKSwgaGRyLmNsaWVudF9wb3J0Xyk7CisKKyAgICAgICAgaGRyLnNlcW5v
XyA9IG5leHRfc2Vxbm8oaGRyLmNsaWVudF9hZGRyXywgaGRyLmNsaWVudF9wb3J0XywgJmhkci5j
b25uZWN0aW9uX2lkXyk7CisgICAgICAgIGhkci5zZXFub18gPSBudG9obChoZHIuc2Vxbm9fKTsK
KyAgICAgICAgaGRyLmNsaWVudF9wb3J0XyA9IGh0b25zKGhkci5jbGllbnRfcG9ydF8pOworICAg
ICAgICBoZHIuY29ubmVjdGlvbl9pZF8gPSBudG9obChoZHIuY29ubmVjdGlvbl9pZF8pOwogCiAg
ICAgICAgIGR0bjo6QVBJQnVuZGxlKiBiID0gbmV3IGR0bjo6QVBJQnVuZGxlKCk7CiAgICAgICAg
IGNoYXIqIGJwID0gYi0+cGF5bG9hZF8uYnVmKHNpemVvZihoZHIpICsgbGVuKTsKQEAgLTExNyw3
ICs0NzYsNzQgQEAKICAgICAgICAgCiAgICAgICAgIGlmICh0dW5uZWwtPnNlbmRfYnVuZGxlKGIs
IHR1bm5lbC0+ZGVzdF9laWQoKSkgIT0gRFROX1NVQ0NFU1MpCiAgICAgICAgICAgICBleGl0KDEp
OworCisgICAgICAgIGRlbGV0ZSBiOworICAgIH0KK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit1X2lu
dDMyX3QgCitVRFBUdW5uZWw6Okxpc3RlbmVyOjpuZXh0X3NlcW5vKGluX2FkZHJfdCBjbGllbnRf
YWRkciwgdV9pbnQxNl90IGNsaWVudF9wb3J0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdV9pbnQzMl90KiBjb25uZWN0aW9uX2lkKQoreworICAgIExDb25uKiBsY29ubjsKKwor
ICAgIExDb25uVGFibGU6Oml0ZXJhdG9yIGk7CisgICAgTENvbm5LZXkga2V5KGNsaWVudF9hZGRy
LCBjbGllbnRfcG9ydCk7CisgICAgCisgICAgaSA9IGxjb25uZWN0aW9uc18uZmluZChrZXkpOwor
ICAgIAorICAgIGlmIChpID09IGxjb25uZWN0aW9uc18uZW5kKCkpIHsKKyAgICAgICAgbG9nX2Rl
YnVnKCJsaXN0ZW5lciBkZXRlY3RlZCBuZXcgY29ubmVjdGlvbiAoJXM6JWQpLi4uICIKKyAgICAg
ICAgICAgICAgICAgImNyZWF0aW5nIG5ldyBlbnRyeSB0byB0cmFjayBzZXF1ZW5jZSBudW1iZXIi
LAorICAgICAgICAgICAgICAgICBpbnRvYShjbGllbnRfYWRkciksIGNsaWVudF9wb3J0KTsKKwor
ICAgICAgICBsY29ubiA9IG5ldyBzdHJ1Y3QgTENvbm4oKTsKKyAgICAgICAgbGNvbm4tPmNvbm5l
Y3Rpb25faWRfID0gdWRwdHVuXy0+bmV4dF9jb25uZWN0aW9uX2lkKCk7CisgICAgICAgIGxjb25u
LT5zZXFub18gPSAwOworCisgICAgICAgIGxjb25uZWN0aW9uc19ba2V5XSA9IGxjb25uOworICAg
IH0gZWxzZSB7CisgICAgICAgIGxjb25uID0gaS0+c2Vjb25kOworICAgIH0KKworICAgIEFTU0VS
VChsY29ubiAhPSBOVUxMKTsKKworICAgICpjb25uZWN0aW9uX2lkID0gbGNvbm4tPmNvbm5lY3Rp
b25faWRfOyAgICAKKyAgICB1X2ludDMyX3QgcmVzdWx0ID0gbGNvbm4tPnNlcW5vXysrOworCisg
ICAgLy9keiBkZWJ1ZyAtIHVuY29tbWVudCB0byB0ZXN0IG91dCBvZiBvcmRlciBwYWNrZXRzIChh
ZnRlciB0aGUgZmlyc3Qgb25lKQorICAgIC8vIG5vdGUgdGhhdCBhZGp1c3RpbmcgdGhlIHNlcW5v
IHdpbGwgcmVzdWx0IGluIGxpbmVzIGJlaW5nIHJldmVyc2VkCisgICAgLy9yZXN1bHQgKz0gKHJl
c3VsdCAlIDIgPT0gMSkgPyAxIDogKHJlc3VsdCA+IDApID8gLTEgOiAwOworCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkCitVRFBUdW5uZWw6Okxpc3RlbmVy
OjpoYW5kbGVfYnVuZGxlKGR0bjo6QVBJQnVuZGxlKiBidW5kbGUpCit7CisgICAgRFROVHVubmVs
OjpCdW5kbGVIZWFkZXIgaGRyOworICAgIG1lbWNweSgmaGRyLCBidW5kbGUtPnBheWxvYWRfLmJ1
ZigpLCBzaXplb2YoaGRyKSk7CisgICAgaGRyLmNsaWVudF9wb3J0XyA9IGh0b25zKGhkci5jbGll
bnRfcG9ydF8pOworCisgICAgY2hhciogYnAgPSBidW5kbGUtPnBheWxvYWRfLmJ1ZigpICsgc2l6
ZW9mKGhkcik7CisgICAgaW50ICBsZW4gPSBidW5kbGUtPnBheWxvYWRfLmxlbigpIC0gc2l6ZW9m
KGhkcik7CisKKyAgICAvLyB0cmFuc21pdCBwYWNrZXQgdG8gdGhlIHNvY2tldCB0aGF0IGluaXRp
YXRlZCB0aGUgY29ubmVjdGlvbgorICAgIGludCBjYyA9IHNvY2tfLnNlbmR0byhicCwgbGVuLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgaGRyLmNsaWVudF9hZGRyXywgaGRyLmNsaWVu
dF9wb3J0Xyk7CisgICAgaWYgKGNjICE9IGxlbikgeworICAgICAgICBsb2dfZXJyKCJlcnJvciBz
ZW5kaW5nIHBhY2tldCB0byAlczolZDogJXMiLAorICAgICAgICAgICAgICAgIGludG9hKGhkci5j
bGllbnRfYWRkcl8pLCBoZHIuY2xpZW50X3BvcnRfLCBzdHJlcnJvcihlcnJubykpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIGxvZ19kZWJ1Zygic2VudCAlenUgYnl0ZSBwYWNrZXQgdG8gJXM6JWQi
LAorICAgICAgICAgICAgICAgICAgYnVuZGxlLT5wYXlsb2FkXy5sZW4oKSAtIHNpemVvZihoZHIp
LAorICAgICAgICAgICAgICAgICAgaW50b2EoaGRyLmNsaWVudF9hZGRyXyksIGhkci5jbGllbnRf
cG9ydF8pOwogICAgIH0KKworICAgIGRlbGV0ZSBidW5kbGU7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IGR0bnR1bm5lbAorCmRpZmYgLU51ciBkdG50dW5uZWwub3JpZy9VRFBUdW5uZWwuaCBkdG50dW5u
ZWwuZHovVURQVHVubmVsLmgKLS0tIGR0bnR1bm5lbC5vcmlnL1VEUFR1bm5lbC5oCTIwMTMtMDIt
MTggMTM6NTU6NTguMDAwMDAwMDAwICswNDAwCisrKyBkdG50dW5uZWwuZHovVURQVHVubmVsLmgJ
MjAxMy0wMi0yMCAwNTowOToyNS4wMDAwMDAwMDAgKzA0MDAKQEAgLTE3LDYgKzE3LDcgQEAKICNp
Zm5kZWYgX1VEUFRVTk5FTF9IXwogI2RlZmluZSBfVURQVFVOTkVMX0hfCiAKKyNpbmNsdWRlIDxt
YXA+CiAjaW5jbHVkZSA8ZHRuX2FwaS5oPgogCiAjaW5jbHVkZSA8b2FzeXMvZGVidWcvTG9nLmg+
CkBAIC0yOSwxNCArMzAsMTYgQEAKIAogbmFtZXNwYWNlIGR0bnR1bm5lbCB7CiAKLWNsYXNzIERU
TlR1bm5lbDsKLQorLyoqCisgKiBDbGFzcyB0byBtYW5hZ2UgVURQIDwtPiBEVE4gdHVubmVscy4K
KyAqLwogY2xhc3MgVURQVHVubmVsIDogcHVibGljIElQVHVubmVsIHsKIHB1YmxpYzoKICAgICAv
Ly8gQ29uc3RydWN0b3IKICAgICBVRFBUdW5uZWwoKTsKLQotICAgIC8vLyBBZGQgYSBuZXcgbGlz
dGVuZXIKKyAgICAKKyAgICAvLy8gQWRkIGEgbmV3IGxpc3RlbmluZyB0byBmcm9tIHRoZSBnaXZl
biBsaXN0ZW5pbmcKKyAgICAvLy8gYWRkcmVzcy9wb3J0IHRvIHRoZSBnaXZlbiByZW1vdGUgYWRk
cmVzcy9wb3J0CiAgICAgdm9pZCBhZGRfbGlzdGVuZXIoaW5fYWRkcl90IGxpc3Rlbl9hZGRyLCB1
X2ludDE2X3QgbGlzdGVuX3BvcnQsCiAgICAgICAgICAgICAgICAgICAgICAgaW5fYWRkcl90IHJl
bW90ZV9hZGRyLCB1X2ludDE2X3QgcmVtb3RlX3BvcnQpOwogICAgIApAQCAtNDQsMjYgKzQ3LDMz
IEBACiAgICAgdm9pZCBoYW5kbGVfYnVuZGxlKGR0bjo6QVBJQnVuZGxlKiBidW5kbGUpOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgLy8vIFNlbmRlciBzb2NrZXQKLSAgICBvYXN5czo6VURQQ2xpZW50IHNv
Y2tfOwotICAgIAogICAgIC8vLyBIZWxwZXIgY2xhc3MgdG8gaGFuZGxlIGEgcHJveGllZCBVRFAg
cG9ydAogICAgIGNsYXNzIExpc3RlbmVyIDogcHVibGljIG9hc3lzOjpUaHJlYWQsIHB1YmxpYyBv
YXN5czo6TG9nZ2VyIHsKICAgICBwdWJsaWM6CiAgICAgICAgIC8vLyBDb25zdHJ1Y3RvcgotICAg
ICAgICBMaXN0ZW5lcihpbl9hZGRyX3QgbGlzdGVuX2FkZHIsIHVfaW50MTZfdCBsaXN0ZW5fcG9y
dCwKKyAgICAgICAgTGlzdGVuZXIoVURQVHVubmVsKiB0LAorICAgICAgICAgICAgICAgICBpbl9h
ZGRyX3QgbGlzdGVuX2FkZHIsIHVfaW50MTZfdCBsaXN0ZW5fcG9ydCwKICAgICAgICAgICAgICAg
ICAgaW5fYWRkcl90IHJlbW90ZV9hZGRyLCB1X2ludDE2X3QgcmVtb3RlX3BvcnQpOwogICAgICAg
ICAKKyAgICAgICAgLy8vIGhhbmRsZSByZXR1cm5lZCBidW5kbGVzIAorICAgICAgICB2b2lkIGhh
bmRsZV9idW5kbGUoZHRuOjpBUElCdW5kbGUqIGJ1bmRsZSk7CisgCiAgICAgcHJvdGVjdGVkOgog
ICAgICAgICAvLy8gTWFpbiBsaXN0ZW4gbG9vcAogICAgICAgICB2b2lkIHJ1bigpOwotICAgICAg
ICAKKworICAgICAgICAvLy8gZ2V0IHRoZSBuZXh0IHNlcXVlbmNlIG51bWJlciBmb3IgdGhlIHNv
dXJjZSAgICAgICAgCisgICAgICAgIHVfaW50MzJfdCBuZXh0X3NlcW5vKGluX2FkZHJfdCBjbGll
bnRfYWRkciwgdV9pbnQxNl90IGNsaWVudF9wb3J0LCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdV9pbnQzMl90KiBjb25uZWN0aW9uX2lkKTsKKwogICAgICAgICAvLy8gUmVjZWl2
ZXIgc29ja2V0CiAgICAgICAgIG9hc3lzOjpVRFBDbGllbnQgc29ja187CiAKICAgICAgICAgLy8v
IFN0YXRpYyByZWNlaXZpbmcgYnVmZmVyCiAgICAgICAgIGNoYXIgcmVjdl9idWZfWzY1NTM2XTsK
ICAgICAgICAgCisgICAgICAgIFVEUFR1bm5lbCogdWRwdHVuXzsKKwogICAgICAgICAvLy8gQHsK
ICAgICAgICAgLy8vIFByb3h5IHBhcmFtZXRlcnMKICAgICAgICAgaW5fYWRkcl90IGxpc3Rlbl9h
ZGRyXzsKQEAgLTcxLDggKzgxLDE2MiBAQAogICAgICAgICBpbl9hZGRyX3QgcmVtb3RlX2FkZHJf
OwogICAgICAgICB1X2ludDE2X3QgcmVtb3RlX3BvcnRfOwogICAgICAgICAvLy8gQH0KKyAgICAg
ICAgCisgICAgICAgCisgICAgICAgIC8vLyBIZWxwZXIgc3RydWN0IHVzZWQgYXMgdGhlIGluZGV4
IGtleSBpbnRvIHRoZSBsaXN0ZW5lcl9zZXFubyB0YWJsZQorICAgICAgICBzdHJ1Y3QgTENvbm5L
ZXkgeworICAgICAgICAgICAgTENvbm5LZXkoKQorICAgICAgICAgICAgICAgIDogY2xpZW50X2Fk
ZHJfKElOQUREUl9OT05FKSwgCisgICAgICAgICAgICAgICAgICBjbGllbnRfcG9ydF8oMCkge30K
KworICAgICAgICAgICAgTENvbm5LZXkoaW5fYWRkcl90IGNsaWVudF9hZGRyLCB1X2ludDE2X3Qg
Y2xpZW50X3BvcnQpCisgICAgICAgICAgICAgICAgOiBjbGllbnRfYWRkcl8oY2xpZW50X2FkZHIp
LCAKKyAgICAgICAgICAgICAgICAgIGNsaWVudF9wb3J0XyhjbGllbnRfcG9ydCkge30KKworICAg
ICAgICAgICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgTENvbm5LZXkmIG90aGVyKSBjb25zdAorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICNkZWZpbmUgQ09NUEFSRShfeCkgaWYgKF94ICE9
IG90aGVyLl94KSByZXR1cm4gX3ggPCBvdGhlci5feDsKKyAgICAgICAgICAgICAgICBDT01QQVJF
KGNsaWVudF9hZGRyXyk7CisgICAgICAgICAgICAgICAgQ09NUEFSRShjbGllbnRfcG9ydF8pOwor
ICAgICAgICAgICAgICAgICN1bmRlZiBDT01QQVJFCisKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGluX2FkZHJfdCAgIGNsaWVudF9h
ZGRyXzsKKyAgICAgICAgICAgIHVfaW50MTZfdCAgIGNsaWVudF9wb3J0XzsKKyAgICAgICAgfTsK
KworICAgICAgICBzdHJ1Y3QgTENvbm4geworICAgICAgICAgICAgdV9pbnQzMl90ICAgY29ubmVj
dGlvbl9pZF87CisgICAgICAgICAgICB1X2ludDMyX3QgICBzZXFub187CisgICAgICAgIH07CisK
KyAgICAgICAgLy8vIFRhYmxlIG9mIGNvbm5lY3Rpb24gY2xhc3NlcyBpbmRleGVkIGJ5IHRoZSBy
ZW1vdGUgYWRkcmVzcy9wb3J0CisgICAgICAgIHR5cGVkZWYgc3RkOjptYXA8TENvbm5LZXksIHN0
cnVjdCBMQ29ubio+IExDb25uVGFibGU7CisgICAgICAgIExDb25uVGFibGUgbGNvbm5lY3Rpb25z
XzsKKwogICAgIH07CiAgICAgCisgICAgLy8vIEhlbHBlciBjbGFzcyB0byBoYW5kbGUgYW4gYWN0
aXZlbHkgcHJveGllZCBjb25uZWN0aW9uCisgICAgY2xhc3MgQ29ubmVjdGlvbiA6IHB1YmxpYyBv
YXN5czo6Rm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgb2FzeXM6OlRo
cmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIG9hc3lzOjpMb2dnZXIKKyAgICB7
CisgICAgcHVibGljOgorICAgICAgICAvLy8gQ29uc3RydWN0b3IgY2FsbGVkIHRvIGluaXRpYXRl
IGEgY29ubmVjdGlvbiBkdWUgdG8gYW4KKyAgICAgICAgLy8vIGFycml2aW5nIGJ1bmRsZSByZXF1
ZXN0CisgICAgICAgIENvbm5lY3Rpb24oVURQVHVubmVsKiB0LCBkdG5fZW5kcG9pbnRfaWRfdCog
ZGVzdF9laWQsCisgICAgICAgICAgICAgICAgICAgaW5fYWRkcl90IGNsaWVudF9hZGRyLCB1X2lu
dDE2X3QgY2xpZW50X3BvcnQsCisgICAgICAgICAgICAgICAgICAgaW5fYWRkcl90IHJlbW90ZV9h
ZGRyLCB1X2ludDE2X3QgcmVtb3RlX3BvcnQsCisgICAgICAgICAgICAgICAgICAgdV9pbnQzMl90
IGNvbm5lY3Rpb25faWQpOworCisgICAgICAgIC8vLyBEZXN0cnVjdG9yCisgICAgICAgIH5Db25u
ZWN0aW9uKCk7CisKKyAgICAgICAgLy8vIFZpcnR1YWwgZnJvbSBGb3JtYXR0ZXIKKyAgICAgICAg
aW50IGZvcm1hdChjaGFyKiBidWYsIHNpemVfdCBzeikgY29uc3Q7CisKKyAgICAgICAgLy8vIEhh
bmRsZSBhIG5ld2x5IGFycml2aW5nIGJ1bmRsZQorICAgICAgICB2b2lkIGhhbmRsZV9idW5kbGUo
ZHRuOjpBUElCdW5kbGUqIGJ1bmRsZSk7CisgICAgICAgIAorICAgIHByb3RlY3RlZDoKKyAgICAg
ICAgZnJpZW5kIGNsYXNzIFVEUFR1bm5lbDsKKyAgICAgICAgCisgICAgICAgIC8vLyB2aXJ0dWFs
IHJ1biBtZXRob2QKKyAgICAgICAgdm9pZCBydW4oKTsKKworICAgICAgICAvLy8gVGhlIHVkcCB0
dW5uZWwgb2JqZWN0CisgICAgICAgIFVEUFR1bm5lbCogdWRwdHVuXzsKKyAgICAgICAgCisgICAg
ICAgIC8vLyBUaGUgdWRwIHNvY2tldAorICAgICAgICBvYXN5czo6VURQQ2xpZW50IHNvY2tfOwor
CisgICAgICAgIC8vLyBTdGF0aWMgcmVjZWl2aW5nIGJ1ZmZlcgorICAgICAgICBjaGFyIHJlY3Zf
YnVmX1s2NTUzNl07CisgICAgICAgIAorICAgICAgICAvLy8gUXVldWUgZm9yIGJ1bmRsZXMgb24g
dGhpcyBjb25uZWN0aW9uCisgICAgICAgIGR0bjo6QVBJQnVuZGxlUXVldWUgcXVldWVfOworCisg
ICAgICAgIC8vLyBUYWJsZSBmb3Igb3V0LW9mLW9yZGVyIGJ1bmRsZXMKKyAgICAgICAgdHlwZWRl
ZiBzdGQ6Om1hcDx1X2ludDMyX3QsIGR0bjo6QVBJQnVuZGxlKj4gUmVvcmRlclRhYmxlOworICAg
ICAgICBSZW9yZGVyVGFibGUgcmVvcmRlcl90YWJsZV87CisKKyAgICAgICAgLy8vIFJ1bm5pbmcg
c2VxdWVuY2UgbnVtYmVyIGNvdW50ZXIKKyAgICAgICAgLy8vIFJ1bm5pbmcgc2VxdWVuY2UgbnVt
YmVyIGNvdW50ZXIKKyAgICAgICAgdV9pbnQzMl90IG5leHRfc2Vxbm9fOworCisgICAgICAgIC8v
LyBQYXJhbWV0ZXJzIGZvciB0aGUgY29ubmVjdGlvbgorICAgICAgICBkdG5fZW5kcG9pbnRfaWRf
dCBkZXN0X2VpZF87CisgICAgICAgIGluX2FkZHJfdCAgICAgICAgIGNsaWVudF9hZGRyXzsKKyAg
ICAgICAgdV9pbnQxNl90ICAgICAgICAgY2xpZW50X3BvcnRfOworICAgICAgICBpbl9hZGRyX3Qg
ICAgICAgICByZW1vdGVfYWRkcl87CisgICAgICAgIHVfaW50MTZfdCAgICAgICAgIHJlbW90ZV9w
b3J0XzsKKyAgICAgICAgdV9pbnQzMl90ICAgICAgICAgY29ubmVjdGlvbl9pZF87CisKKyAgICAg
ICAgLy8vIGZsYWcgdG8gZGVsaXZlciBVRFAgYnVuZGxlcyBpbiBvcmRlcgorICAgICAgICBib29s
IHJlb3JkZXJfdWRwXzsKKyAgICB9OworCisgICAgLy8vIFJldHVybiB0aGUgbmV4dCBjb25uZWN0
aW9uIGlkCisgICAgdV9pbnQzMl90IG5leHRfY29ubmVjdGlvbl9pZCgpOworCisgICAgLy8vIEhv
b2sgY2FsbGVkIHdoZW4gYSBuZXcgY29ubmVjdGlvbiBkaWVzCisgICAgdm9pZCBraWxsX2Nvbm5l
Y3Rpb24oQ29ubmVjdGlvbiogYyk7CisKKyAgICAvLy8gSGVscGVyIHN0cnVjdCB1c2VkIGFzIHRo
ZSBpbmRleCBrZXkgaW50byB0aGUgY29ubmVjdGlvbiB0YWJsZQorICAgIHN0cnVjdCBDb25uS2V5
IHsKKyAgICAgICAgQ29ubktleSgpCisgICAgICAgICAgICA6IGVuZHBvaW50X2lkXygiIiksCisg
ICAgICAgICAgICAgIGNsaWVudF9hZGRyXyhJTkFERFJfTk9ORSksIGNsaWVudF9wb3J0XygwKSwK
KyAgICAgICAgICAgICAgcmVtb3RlX2FkZHJfKElOQUREUl9OT05FKSwgcmVtb3RlX3BvcnRfKDAp
LAorICAgICAgICAgICAgICBjb25uZWN0aW9uX2lkXygwKSB7fQorCisgICAgICAgIENvbm5LZXko
Y29uc3QgZHRuX2VuZHBvaW50X2lkX3QmIGVpZCwKKyAgICAgICAgICAgICAgICBpbl9hZGRyX3Qg
Y2xpZW50X2FkZHIsIHVfaW50MTZfdCBjbGllbnRfcG9ydCwKKyAgICAgICAgICAgICAgICBpbl9h
ZGRyX3QgcmVtb3RlX2FkZHIsIHVfaW50MTZfdCByZW1vdGVfcG9ydCwKKyAgICAgICAgICAgICAg
ICB1X2ludDMyX3QgY29ubmVjdGlvbl9pZCkKKyAgICAgICAgICAgIDogZW5kcG9pbnRfaWRfKGVp
ZC51cmkpLAorICAgICAgICAgICAgICBjbGllbnRfYWRkcl8oY2xpZW50X2FkZHIpLAorICAgICAg
ICAgICAgICBjbGllbnRfcG9ydF8oY2xpZW50X3BvcnQpLAorICAgICAgICAgICAgICByZW1vdGVf
YWRkcl8ocmVtb3RlX2FkZHIpLAorICAgICAgICAgICAgICByZW1vdGVfcG9ydF8ocmVtb3RlX3Bv
cnQpLAorICAgICAgICAgICAgICBjb25uZWN0aW9uX2lkXyhjb25uZWN0aW9uX2lkKSB7fQorCisg
ICAgICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IENvbm5LZXkmIG90aGVyKSBjb25zdAorICAgICAg
ICB7CisgICAgICAgICAgICAjZGVmaW5lIENPTVBBUkUoX3gpIGlmIChfeCAhPSBvdGhlci5feCkg
cmV0dXJuIF94IDwgb3RoZXIuX3g7CisgICAgICAgICAgICBDT01QQVJFKGNvbm5lY3Rpb25faWRf
KTsKKyAgICAgICAgICAgIENPTVBBUkUoY2xpZW50X2FkZHJfKTsKKyAgICAgICAgICAgIENPTVBB
UkUoY2xpZW50X3BvcnRfKTsKKyAgICAgICAgICAgIENPTVBBUkUocmVtb3RlX2FkZHJfKTsKKyAg
ICAgICAgICAgIENPTVBBUkUocmVtb3RlX3BvcnRfKTsKKyAgICAgICAgICAgICN1bmRlZiBDT01Q
QVJFCisKKyAgICAgICAgICAgIHJldHVybiBlbmRwb2ludF9pZF8gPCBvdGhlci5lbmRwb2ludF9p
ZF87CisgICAgICAgIH0KKworICAgICAgICBzdGQ6OnN0cmluZyBlbmRwb2ludF9pZF87CisgICAg
ICAgIGluX2FkZHJfdCAgIGNsaWVudF9hZGRyXzsKKyAgICAgICAgdV9pbnQxNl90ICAgY2xpZW50
X3BvcnRfOworICAgICAgICBpbl9hZGRyX3QgICByZW1vdGVfYWRkcl87CisgICAgICAgIHVfaW50
MTZfdCAgIHJlbW90ZV9wb3J0XzsKKyAgICAgICAgdV9pbnQzMl90ICAgY29ubmVjdGlvbl9pZF87
CisgICAgfTsKKworICAgIC8vLyBUYWJsZSBvZiBjb25uZWN0aW9uIGNsYXNzZXMgaW5kZXhlZCBi
eSB0aGUgcmVtb3RlIGFkZHJlc3MvcG9ydAorICAgIHR5cGVkZWYgc3RkOjptYXA8Q29ubktleSwg
Q29ubmVjdGlvbio+IENvbm5UYWJsZTsKKyAgICBDb25uVGFibGUgY29ubmVjdGlvbnNfOworCisg
ICAgLy8vIExvY2sgdG8gcHJvdGVjdCB0aGUgY29ubmVjdGlvbnMgdGFibGUKKyAgICBvYXN5czo6
U3BpbkxvY2sgbG9ja187CisKKyAgICAvLy8gSW5jcmVhc2luZyBjb3VudGVyIGZvciBjb25uZWN0
aW9uIGlkZW50aWZpZXJzCisgICAgdV9pbnQzMl90IG5leHRfY29ubmVjdGlvbl9pZF87CisKKwor
ICAgIC8vLyBUaGUgbGlzdGVuZXIgZm9yIHRoZSBmcm9udCBlbmQgb2YgdGhlIHR1bm5lbAorICAg
IExpc3RlbmVyKiBsaXN0ZW5lcl87CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBkdG50dW5uZWwK
--047d7b6dc9c692d97404d72b321e
Content-Type: application/octet-stream; 
	name="dtntunnel_transparent.ss.patch"
Content-Disposition: attachment; filename="dtntunnel_transparent.ss.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hdws7o4g1

ZGlmZiAtTnVyIGR0bnR1bm5lbC5kei9EVE5UdW5uZWwuY2MgZHRudHVubmVsL0RUTlR1bm5lbC5j
YwotLS0gZHRudHVubmVsLmR6L0RUTlR1bm5lbC5jYwkyMDEzLTAyLTIwIDA1OjQxOjIzLjAwMDAw
MDAwMCArMDQwMAorKysgZHRudHVubmVsL0RUTlR1bm5lbC5jYwkyMDEzLTAzLTA0IDE5OjU5OjUx
LjAwMDAwMDAwMCArMDQwMApAQCAtNjIsNyArNjIsOCBAQAogICAgICAgZGVsYXlfc2V0XyhmYWxz
ZSksCiAgICAgICBtYXhfc2l6ZV8oMzIgKiAxMDI0KSwKICAgICAgIHR1bm5lbF9zcGVjXygiIiks
Ci0gICAgICB0dW5uZWxfc3BlY19zZXRfKGZhbHNlKQorICAgICAgdHVubmVsX3NwZWNfc2V0Xyhm
YWxzZSksCisgICAgICB0cmFuc3BhcmVudF8oZmFsc2UpCiB7CiAgICAgLy8gb3ZlcnJpZGUgZGVm
YXVsdCBsb2dnaW5nIHNldHRpbmcKICAgICBsb2dsZXZlbF8gPSBvYXN5czo6TE9HX05PVElDRTsK
QEAgLTc2LDcgKzc3LDcgQEAKIERUTlR1bm5lbDo6ZmlsbF9vcHRpb25zKCkKIHsKICAgICBBcHA6
OmZpbGxfZGVmYXVsdF9vcHRpb25zKERBRU1PTklaRV9PUFQpOwotICAgIEFwcDo6c2V0X2V4dHJh
X3VzYWdlKCI8ZGVzdGluYXRpb25fZWlkPiIpOworICAgIEFwcDo6c2V0X2V4dHJhX3VzYWdlKCI8
ZGVzdGluYXRpb25fZWlkfGRlc3RpbmF0aW9uIGVpZCB0YWJsZSBmaWxlIG5hbWU+Iik7CiAgICAg
CiAgICAgb3B0c18uYWRkb3B0KAogICAgICAgICBuZXcgb2FzeXM6OkJvb2xPcHQoJ0wnLCAibGlz
dGVuIiwgJmxpc3Rlbl8sCkBAIC0xMTQsMTAgKzExNSwxNSBAQAogICAgICAgICBuZXcgb2FzeXM6
OlN0cmluZ09wdCgnVCcsICJ0dW5uZWwiLCAmdHVubmVsX3NwZWNfLCAiPHNwZWM+IiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInR1bm5lbCBzcGVjaWZpY2F0aW9uIFtsaG9zdDpdbHBv
cnQ6cmhvc3Q6cnBvcnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdHVubmVsX3Nw
ZWNfc2V0XykpOworCiAgICAgb3B0c18uYWRkb3B0KAogICAgICAgICBuZXcgb2FzeXM6OkJvb2xP
cHQoJ3InLCAicmVvcmRlcl91ZHAiLCAmcmVvcmRlcl91ZHBfLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInVkcCBidW5kbGVzIHJlY2VpdmVkIG91dCBvZiBvcmRlciB3aWxsIGJ1ZmZlciB1
bnRpbCBpbi1vcmRlciBkZWxpdmVyIGNhbiBiZSBtYWRlIikpOwotICAgIAorI2lmZGVmIF9fbGlu
dXhfXworICAgIG9wdHNfLmFkZG9wdCgKKyAgICAgICAgbmV3IG9hc3lzOjpCb29sT3B0KCdwJywg
InRyYW5zcGFyZW50X3Byb3h5IiwgJnRyYW5zcGFyZW50XywgCisgICAgCQkJICAgICJwcm94eSBh
cHBsaWNhdGlvbiB0cmFmZmljIHRyYW5zcGFyZW50bHkiKSk7CisjZW5kaWYKIH0KIAogLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCkBAIC0xMzAsMTQgKzEzNiwyMiBAQAogICAgIAogICAgIGJvb2wgZGVzdF9laWRf
c2V0ID0gZmFsc2U7CiAgICAgaWYgKHJlbWFpbmRlciA9PSBhcmdjIC0gMSkgewotICAgICAgICBp
ZiAoZHRuX3BhcnNlX2VpZF9zdHJpbmcoJmRlc3RfZWlkXywgYXJndlthcmdjLTFdKSA9PSAtMSkg
ewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJpbnZhbGlkIGRlc3RpbmF0aW9uIGVuZHBv
aW50IGlkICclcydcbiIsCi0gICAgICAgICAgICAgICAgICAgIGFyZ3ZbYXJnYyAtIDFdKTsKLSAg
ICAgICAgICAgIHByaW50X3VzYWdlX2FuZF9leGl0KCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBkZXN0X2VpZF9zZXQgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIAorCS8vIGNo
ZWNrIGlmIGEgZGVzdGluYXRpb24gZWlkIHRhYmxlIGZpbGUgbmFtZSBpcyBnaXZlbgorCWNoYXIg
dG9rZW5bNF0gPSAiOi8vIjsKKwlpZiAoc3Ryc3RyKGFyZ3ZbYXJnYy0xXSwgdG9rZW4pICE9IE5V
TEwpIHsKKwkgICAgLy8gaGF2ZSAiOi8vIiBpbiB0aGUgYXJnID0+IGdvdCBhIGVpZCBzdHJpbmcK
KyAgICAgICAgICAgIGlmIChkdG5fcGFyc2VfZWlkX3N0cmluZygmZGVzdF9laWRfLCBhcmd2W2Fy
Z2MtMV0pID09IC0xKSB7CisJICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImludmFsaWQgZGVzdGlu
YXRpb24gZW5kcG9pbnQgaWQgJyVzJ1xuIiwgCisJCQlhcmd2W2FyZ2MgLSAxXSk7CisgICAgICAg
IAlwcmludF91c2FnZV9hbmRfZXhpdCgpOworICAgIAkgICAgfSBlbHNlIHsKKyAgICAgICAgCWRl
c3RfZWlkX3NldCA9IHRydWU7CisgICAgCSAgICB9CisJfSBlbHNlIHsKKwkgICAgLy8gbm8gIjov
LyIgaW4gdGhlIGFyZyA9PiBnb3QgYSBmaWxlIHBhdGgKKwkgICAgbG9hZF9kZXN0X2VpZF90YWJs
ZShhcmd2W2FyZ2MtMV0pOworCSAgICBkZXN0X2VpZF9zZXQgPSB0cnVlOworCX0KICAgICB9IGVs
c2UgaWYgKHJlbWFpbmRlciAhPSBhcmdjKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiaW52
YWxpZCBhcmd1bWVudCAnJXMnXG4iLCBhcmd2W3JlbWFpbmRlcl0pOwogICAgICAgICBwcmludF91
c2FnZV9hbmRfZXhpdCgpOwpAQCAtMjAzLDYgKzIxNywxMSBAQAogICAgICAgICBDSEVDS19PUFQo
bG9jYWxfYWRkcl8gID09IElOQUREUl9OT05FLCAibG9jYWwgYWRkciBpcyBpbnZhbGlkIik7CiAg
ICAgICAgIENIRUNLX09QVChsb2NhbF9wb3J0XyAgPT0gMCwgICJtdXN0IHNldCBsb2NhbCBwb3J0
Iik7CiAgICAgICAgIENIRUNLX09QVChyZW1vdGVfcG9ydF8gPT0gMCwgICJtdXN0IHNldCByZW1v
dGUgcG9ydCIpOworCWlmICghZGVzdF9laWRfdGFibGVfLmVtcHR5KCkpIHsKKwkgICAgQ0hFQ0tf
T1BUKHRyYW5zcGFyZW50XyA9PSBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICJkZXN0aW5hdGlv
biBlaWQgdGFibGUgaXMgc3VwcG9ydGVkICIKKwkJICAib25seSBpbiB0cmFuc3BhcmVudF9wcm94
eSBtb2RlIik7CisJfQogICAgIH0KICAgICAKICN1bmRlZiBDSEVDS19PUFQKQEAgLTIxMCw2ICsy
MjksMTAyIEBACiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogdm9pZAorRFROVHVubmVsOjpsb2FkX2Rlc3Rf
ZWlkX3RhYmxlKGNoYXIqIGZpbGVuYW1lKQoreworICAgIEZJTEUqIGlmaWxlOworICAgIGNoYXIg
bGluZVs1MTJdOworCisgICAgaWZpbGUgPSBmb3BlbihmaWxlbmFtZSwgInIiKTsKKyAgICBpZiAo
aWZpbGUgPT0gTlVMTCkgeworCWZwcmludGYoc3RkZXJyLCAiZXJyb3Igb3BlbmluZyBkZXN0aW5h
dGlvbiBlaWQgdGFibGUgZmlsZSAnJXMnIGZvciByZWFkaW5nXG4iLCBmaWxlbmFtZSk7CisgICAg
ICAgIHByaW50X3VzYWdlX2FuZF9leGl0KCk7CisgICAgfQorCisgICAgaW50IGxudW0gPSAwOwor
ICAgIHdoaWxlKCFmZW9mKGlmaWxlKSkgeworCWlmIChmZ2V0cyhsaW5lLCBzaXplb2YobGluZSks
IGlmaWxlKSAhPSBOVUxMKSB7CisJICAgIGludCBhLCBiLCBjLCBkLCBiaXRzOworCSAgICBjaGFy
KiBlaWRfc3RyOworCSAgICBjaGFyIGFkZHJfc3RyWzE2XTsKKwkgICAgdV9pbnQzMl90IGFkZHI7
CisJICAgIGR0bl9lbmRwb2ludF9pZF90KiBlaWQgPSBuZXcgZHRuX2VuZHBvaW50X2lkX3QoKTsK
KworCSAgICBsbnVtKys7CisJICAgIGVpZF9zdHIgPSAoY2hhciopY2FsbG9jKERUTl9NQVhfRU5E
UE9JTlRfSUQsIHNpemVvZihjaGFyKSk7CisJICAgIGludCBuID0gc3NjYW5mKGxpbmUsICIlZC4l
ZC4lZC4lZC8lZCAlcyIsICZhLCAmYiwgJmMsICZkLCAmYml0cywgZWlkX3N0cik7CisJICAgIGlm
IChuIDwgNikgeworICAgIAkJaWYgKGVycm5vICE9IDApIHsKKwkJICAgIGZwcmludGYoc3RkZXJy
LCAiZXJyb3IgcGFyc2luZyBkZXN0aW5hdGlvbiBlaWQgdGFibGUgZmlsZSBhdCBsaW5lICVkOiAl
c1xuIiwgCisJCQkgICAgbG51bSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJICAgIGV4aXQoMSk7CisJ
CX0gZWxzZSB7CisJCSAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yIHBhcnNpbmcgZGVzdGluYXRp
b24gZWlkIHRhYmxlIGZpbGUgYXQgbGluZSAlZFxuIiwgbG51bSk7CisJCSAgICBleGl0KDEpOwor
CSAgICAJfQorCSAgICB9CisgICAgCSAgICAvLyBmcHJpbnRmKHN0ZGVyciwgIkRFQlVHOiAlZC4l
ZC4lZC4lZC8lZCAlc1xuIiwgYSwgYiwgYywgZCwgYml0cywgZWlkX3N0cik7CisKKwkgICAgc3By
aW50ZihhZGRyX3N0ciwgIiVkLiVkLiVkLiVkIiwgYSwgYiwgYywgZCk7CisJICAgIGFkZHIgPSBp
bmV0X2FkZHIoYWRkcl9zdHIpOworCSAgICBpZiAoYWRkciA9PSBJTkFERFJfTk9ORSkgeworCQlm
cHJpbnRmKHN0ZGVyciwgImVycm9yIHBhcnNpbmcgbmV0d29yayBhZGRyZXNzIGluIGRlc3RpbmF0
aW9uIGVpZCB0YWJsZSBhdCBsaW5lICVkXG4iLCBsbnVtKTsKKwkJZXhpdCgxKTsKKwkgICAgfQor
CisJICAgIGlmICgoYml0cyA8IDApIHx8IChiaXRzID4gMzIpKSB7CisJCWZwcmludGYoc3RkZXJy
LCAiZXJyb3IgcGFyc2luZyBuZXR3b3JrIG1hc2sgaW4gZGVzdGluYXRpb24gZWlkIHRhYmxlIGF0
IGxpbmUgJWRcbiIsIGxudW0pOworCQlleGl0KDEpOworCSAgICB9CisKKyAgICAJICAgIGlmIChk
dG5fcGFyc2VfZWlkX3N0cmluZyhlaWQsIGVpZF9zdHIpID09IC0xKSB7CisJCWZwcmludGYoc3Rk
ZXJyLCAiaW52YWxpZCBlbmRwb2ludCBpZCBpbiBkZXN0aW5hdGlvbiBlaWQgdGFibGUgJyVzJyBh
dCBsaW5lICVkXG4iLCAKKwkJCWVpZF9zdHIsIGxudW0pOworICAgIAkJZXhpdCgxKTsKKyAgICAJ
ICAgIH0KKworICAgICAgICAgICAgTmV0d29ya0VpZFRhYmxlOjppdGVyYXRvciBpOworICAgICAg
ICAgICAgQ0lEUiBrZXkoYWRkciwgYml0cyk7CisKKyAgICAgICAgICAgIGkgPSBkZXN0X2VpZF90
YWJsZV8uZmluZChrZXkpOworCSAgICBpZiAoaSAhPSBkZXN0X2VpZF90YWJsZV8uZW5kKCkpIHsK
KyAgICAJICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImR1cGxpY2F0ZSBuZXR3b3JrIGFkZHJlc3Mg
aW4gZGVzdGluYXRpb24gZWlkIHRhYmxlICVzLyVkIGF0IGxpbmUgJWRcbiIsIAorCQkJYWRkcl9z
dHIsIGJpdHMsIGxudW0pOworICAgIAkJZXhpdCgxKTsKKyAgICAJICAgIH0KKworICAgICAgICAg
ICAgZGVzdF9laWRfdGFibGVfW2tleV0gPSBlaWRfc3RyOworCX0KKyAgICB9CisgICAgZmNsb3Nl
KGlmaWxlKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkCitEVE5UdW5uZWw6OmdldF9kZXN0
X2VpZChpbl9hZGRyX3QgcmVtb3RlX2FkZHIsIGR0bl9lbmRwb2ludF9pZF90KiBkZXN0X2VpZCkK
K3sKKyAgICAvLyBpZiB3ZSBkb24ndCBoYXZlIGRlc3RfZWlkX3RhYmxlLCByZXR1cm4KKyAgICBp
ZiAoZGVzdF9laWRfdGFibGVfLmVtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1lbXNl
dChkZXN0X2VpZC0+dXJpLCAwLCBzaXplb2YoZGVzdF9laWQtPnVyaSkpOworICAgIGZvciAoTmV0
d29ya0VpZFRhYmxlOjppdGVyYXRvciBpID0gZGVzdF9laWRfdGFibGVfLmJlZ2luKCk7CisgICAg
ICAgICBpICE9IGRlc3RfZWlkX3RhYmxlXy5lbmQoKTsgaSsrKQorICAgIHsKKyAgICAgICAgQ0lE
UiBuZXQgPSBpLT5maXJzdDsKKyAgICAgICAgdV9pbnQzMl90IG1hc2sgPSB+KH51X2ludDMyX3Qo
MCkgPDwgbmV0LmJpdHNfKTsKKyAgICAgICAgLy9sb2dfZGVidWcoInJlbW90ZV9hZGRyPSVzLCBh
ZGRyPSVzLCBiaXRzPSVkLCBtYXNrPSVzIiwKKyAgICAgICAgLy8gICAgICAgIGludG9hKHJlbW90
ZV9hZGRyKSwgaW50b2EobmV0LmFkZHJfKSwgbmV0LmJpdHNfLCBpbnRvYShtYXNrKSk7CisgICAg
ICAgIGlmICgocmVtb3RlX2FkZHIgJiBtYXNrKSA9PSAobmV0LmFkZHJfICYgbWFzaykpIHsKKwkg
ICAgbWVtY3B5KGRlc3RfZWlkLT51cmksIGRlc3RfZWlkX3RhYmxlX1tpLT5maXJzdF0sIERUTl9N
QVhfRU5EUE9JTlRfSUQpOworICAgICAgICAgICAgbG9nX2RlYnVnKCJmb3VuZCBkZXN0X2VpZD0l
cyBmb3IgYWRkcmVzcz0lcyIsIAorCQkgICAgICBkZXN0X2VpZC0+dXJpLCBpbnRvYShyZW1vdGVf
YWRkcikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQordm9pZAogRFROVHVubmVsOjppbml0X3R1bm5lbCgpCiB7CiAgICAgdGNwdHVu
bmVsXyA9IG5ldyBUQ1BUdW5uZWwoKTsKZGlmZiAtTnVyIGR0bnR1bm5lbC5kei9EVE5UdW5uZWwu
aCBkdG50dW5uZWwvRFROVHVubmVsLmgKLS0tIGR0bnR1bm5lbC5kei9EVE5UdW5uZWwuaAkyMDEz
LTAyLTIwIDA1OjQxOjU5LjAwMDAwMDAwMCArMDQwMAorKysgZHRudHVubmVsL0RUTlR1bm5lbC5o
CTIwMTMtMDMtMDEgMTg6NDk6NTIuMDAwMDAwMDAwICswNDAwCkBAIC0xNyw2ICsxNyw4IEBACiAj
aWZuZGVmIF9EVE5UVU5ORUxfSF8KICNkZWZpbmUgX0RUTlRVTk5FTF9IXwogCisjaW5jbHVkZSA8
bWFwPgorCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgog
I2luY2x1ZGUgPG5ldGRiLmg+CkBAIC0xMDIsMTEgKzEwNCwxNSBAQAogICAgIHZvaWQgZmlsbF9v
cHRpb25zKCk7CiAgICAgdm9pZCB2YWxpZGF0ZV9vcHRpb25zKGludCBhcmdjLCBjaGFyKiBjb25z
dCBhcmd2W10sIGludCByZW1haW5kZXIpOwogCisgICAgLy8vIEdldCBkZXN0aW5hdGlvbiBlaWQg
ZnJvbSB0aGUgZGVzdF9laWRfdGFibGUKKyAgICB2b2lkIGdldF9kZXN0X2VpZChpbl9hZGRyX3Qg
cmVtb3RlX2FkZHIsIGR0bl9lbmRwb2ludF9pZF90KiBkZXN0X2VpZCk7CisKICAgICAvLy8gQWNj
ZXNzb3JzCiAgICAgdV9pbnQgbWF4X3NpemUoKSAgICAgICAgICAgICAgeyByZXR1cm4gbWF4X3Np
emVfOyB9CiAgICAgdV9pbnQgZGVsYXkoKSAgICAgICAgICAgICAgICAgeyByZXR1cm4gZGVsYXlf
OyB9CiAgICAgdV9pbnQgZGVsYXlfc2V0KCkgICAgICAgICAgICAgeyByZXR1cm4gZGVsYXlfc2V0
XzsgfQogICAgIGJvb2wgcmVvcmRlcl91ZHAoKSAgICAgICAgICAgIHsgcmV0dXJuIHJlb3JkZXJf
dWRwXzsgfQorICAgIGJvb2wgdHJhbnNwYXJlbnQoKSAgICAgICAgICAgIHsgcmV0dXJuIHRyYW5z
cGFyZW50XzsgfQogICAgIGR0bl9lbmRwb2ludF9pZF90KiBkZXN0X2VpZCgpIHsgcmV0dXJuICZk
ZXN0X2VpZF87IH0KIAogcHJvdGVjdGVkOgpAQCAtMTMzLDkgKzEzOSwzOCBAQAogICAgIHVfaW50
CQltYXhfc2l6ZV87CiAgICAgc3RkOjpzdHJpbmcJICAgICAgICB0dW5uZWxfc3BlY187CiAgICAg
Ym9vbAkgICAgICAgIHR1bm5lbF9zcGVjX3NldF87CisgICAgYm9vbAkJdHJhbnNwYXJlbnRfOwor
CisgICAgLy8vIEhlbHBlciBzdHJ1Y3QgZm9yIG5ldHdvcmsgSVAgYWRkcmVzcyBpbiBDSURSIG5v
dGF0aW9uCisgICAgc3RydWN0IENJRFIgeworCUNJRFIoKQorCSAgICA6IGFkZHJfKDApLAorCSAg
ICAgIGJpdHNfKDApIHt9CisJCisJQ0lEUih1X2ludDMyX3QgYWRkciwgdV9pbnQxNl90IGJpdHMp
CisJICAgIDogYWRkcl8oYWRkciksCisJICAgICAgYml0c18oYml0cykge30KKworICAgICAgICBi
b29sIG9wZXJhdG9yPChjb25zdCBDSURSJiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAg
ICAgICAgI2RlZmluZSBDT01QQVJFKF94KSBpZiAoX3ggIT0gb3RoZXIuX3gpIHJldHVybiBfeCA8
IG90aGVyLl94OworICAgICAgICAgICAgQ09NUEFSRShhZGRyXyk7CisgICAgICAgICAgICAjdW5k
ZWYgQ09NUEFSRQorCisJICAgIHJldHVybiBiaXRzXyA8IG90aGVyLmJpdHNfOworICAgICAgICB9
CisKKwl1X2ludDMyX3QgYWRkcl87CisJdV9pbnQxNl90IGJpdHNfOworICAgIH07CisKKyAgICAv
Ly8gVGFibGUgZm9yIElQIG5ldHdvcmsgYWRkcmVzcyA8LT4gRUlEIG1hdGNoaW5nCisgICAgdHlw
ZWRlZiBzdGQ6Om1hcDxEVE5UdW5uZWw6OkNJRFIsIGNoYXIqPiBOZXR3b3JrRWlkVGFibGU7Cisg
ICAgTmV0d29ya0VpZFRhYmxlIGRlc3RfZWlkX3RhYmxlXzsKIAogICAgIHZvaWQgaW5pdF90dW5u
ZWwoKTsKICAgICB2b2lkIGluaXRfcmVnaXN0cmF0aW9uKCk7CisgICAgdm9pZCBsb2FkX2Rlc3Rf
ZWlkX3RhYmxlKGNoYXIqIGZpbGVuYW1lKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIGR0bnR1bm5l
bApkaWZmIC1OdXIgZHRudHVubmVsLmR6L1JFQURNRS50cmFuc3BhcmVudF9tb2RlIGR0bnR1bm5l
bC9SRUFETUUudHJhbnNwYXJlbnRfbW9kZQotLS0gZHRudHVubmVsLmR6L1JFQURNRS50cmFuc3Bh
cmVudF9tb2RlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCisrKyBkdG50dW5u
ZWwvUkVBRE1FLnRyYW5zcGFyZW50X21vZGUJMjAxMy0wMy0wNCAyMDowMDozMi4wMDAwMDAwMDAg
KzA0MDAKQEAgLTAsMCArMSw2MyBAQAorQWJvdXQgVHJhbnNwYXJlbnQgTW9kZQorCitBIGhvc3Qg
cnVubmluZyBkdG50dW5uZWwgaW4gdHJhbnNwYXJlbnQgbW9kZSAoIi1wIiBvcHRpb24pIGNhbiBh
Y3QgYXMgYW4gSVAgCituZXR3b3JrIHJvdXRlciBmb3IgVENQIGFuZCBVRFAgcHJvdG9jb2xzLCB0
aGF0IGFyZSByZWRpcmVjdGVkIHRvIGR0bnR1bm5lbCB3aXRoIAordGhlIGhlbHAgb2YgSVBUYWJs
ZXMgYW5kIFRQcm94eS4KKworVHJhbnNwYXJlbnQgbW9kZSBpcyBpbXBsZW1lbnRlZCB3aXRoIHRo
ZSB1c2Ugb2YgVHByb3h5IG1lY2hhbmlzbSwgd2hpY2ggaXMgCitzdXBwb3J0ZWQgaW4gTGludXgg
b25seS4gRm9yIHRoZSBkZXNjcmlwdGlvbiBvZiBUcHJveHkgc2VlIHRwcm94eS50eHQgaW4gdGhl
IAorRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nIHN1YmRpcmVjdG9yeSBvZiBMaW51eCBrZXJuZWwg
c291cmNlIHRyZWUuCisKK0hlcmUgaXMgaG93IHRoaXMgbG9va3MgYXQgdGhlIG5ldHdvcmsgbGV2
ZWwuIEhvc3RzIEEgYW5kIEIgYXJlIHJlYWNoYWJsZSB2aWEgRFROCit3aGlsZSBsb2NhbCBuZXR3
b3JrcyBvZiBBIGFuZCBCIG1heSBldmVuIGJlIG5vdCBjb25uZWN0ZWQgdmlhIElQIHByb3RvY29s
OgorW0lQIEhvc3QgQV0gPC0+IFtEVE4gbm9kZSB3aXRoIGR0bnR1bm5lbF0gPC0+IChEVE4gTmV0
d29yaykgPC0+IAorICAgICAgICAgICAgPC0+IFtEVE4gbm9kZSB3aXRoIGR0bnR1bm5lbF0gPC0+
IFtJUCBIb3N0IEJdCisKK0hlcmUgaXMgaG93IHRoaXMgbG9va3MgYXQgdGhlIGFwcGxpY2F0aW9u
IGxldmVsLiBBcHBsaWNhdGlvbiBjbGllbnQgYW5kIHNlcnZlcgorY29tbXVuaWNhdGUgdHJhbnNw
YXJlbnRseSBhcyBpZiB0aGVyZSB3YXMgYW4gSVAgbmV0d29yayBiZXR3ZWVuIHRoZW0uIEJvdGgg
CitjbGllbnQgYW5kIHNlcnZlciBzZWUgSVAgYWRkcmVzc2VzIGFuZCBwb3J0cyBvZiBlYWNoIG90
aGVyLCBub3Qgb2YgZHRudHVubmVsIGFzIAoraXQgaXMgd2l0aG91dCB0cmFuc3BhcmVudCBtb2Rl
IGVuYWJsZWQ6CitbQXBwbGljYXRpb24gY2xpZW50XSA8LT4gW2R0bnR1bm5lbCAtVF0gPC0+IChE
VE4gTmV0d29yaykgPC0+CisgICAgICAgICAgICAgICAgICAgICA8LT4gW2R0bnR1bm5lbCAtTF0g
PC0+IFtBcHBsaWNhdGlvbiBzZXJ2ZXJdCisKK0luIG9yZGVyIHRvIGxldCB0cmFuc3BhcmVudCBt
b2RlIHdvcmssIGluc2VydCB0aGUgZm9sbG93aW5nIElQVGFibGVzIGFuZCByb3V0aW5nIAorcnVs
ZXMgb24gdGhlIGhvc3Qgd2hlcmUgeW91IHJ1biBkdG50dW5uZWwgaW4gdHVubmVsIG1vZGUgKCIt
VCIgb3B0aW9uKToKK2lwdGFibGVzIC10IG1hbmdsZSAtTiBEVE5UVU5ORUwKK2lwdGFibGVzIC10
IG1hbmdsZSAtQSBEVE5UVU5ORUwgLWogTUFSSyAtLXNldC1tYXJrIDEKK2lwdGFibGVzIC10IG1h
bmdsZSAtQSBEVE5UVU5ORUwgLWogQUNDRVBUCitpcHRhYmxlcyAtdCBtYW5nbGUgLUEgUFJFUk9V
VElORyAtcCAkUFJPVE8gLW0gc29ja2V0IC1qIERUTlRVTk5FTAoraXB0YWJsZXMgLXQgbWFuZ2xl
IC1BIFBSRVJPVVRJTkcgLXAgJFBST1RPIC0tZHBvcnQgJEFQUExJQ0FUSU9OX1BPUlQgLWogVFBS
T1hZIFwKKyAgICAgICAgIC0tb24tcG9ydCAkRFROVFVOTkVMX1BPUlQgLS10cHJveHktbWFyayAx
LzEKK2lwIHJ1bGUgYWRkIGZ3bWFyayAxIGxvb2t1cCAxMDAKK2lwIHJvdXRlIGFkZCBsb2NhbCAw
LjAuMC4wLzAgZGV2IGxvIHRhYmxlIDEwMAorCitJZiB5b3UgcnVuIGFwcGxpY2F0aW9uIGNsaWVu
dCBvbiB0aGUgc2FtZSBob3N0IGFzIGR0bnR1bm5lbCBpbiB0dW5uZWwgbW9kZSwgeW91IAoraGF2
ZSB0byBpbnNlcnQgYW4gYWRkaXRpb25hbCBJUFRhYmxlcyBydWxlOgoraXB0YWJsZXMgLXQgbWFu
Z2xlIC1BIE9VVFBVVCAtbyAkRVhURVJOQUxfSUYgLXAgJFBST1RPIC0tZHBvcnQgJEFQUExJQ0FU
SU9OX1BPUlQgXAorICAgICAgICAgLWogTUFSSyAtLXNldC14bWFyayAxCitOT1RFOiBUaGlzIHdp
bGwgd29yayBvbmx5IGZvciBhcHBsaWNhdGlvbiBjbGllbnQgcnVubmluZyBvbiB0aGUgc2FtZSBo
b3N0IGFzIAorZHRudHVubmVsIGluIHR1bm5lbCBtb2RlLCBub3QgZm9yIGEgc2VydmVyIHJ1bm5p
bmcgb24gdGhlIHNhbWUgaG9zdCBhcyBkdG50dW5uZWwgCitpbiBsaXN0ZW4gbW9kZSAoIi1MIiBv
cHRpb24pLgorCitJbiB0aGUgYWJvdmUgY29tbWFuZHMgJFBST1RPIGlzIGVpdGhlciB0Y3Agb3Ig
dWRwOworJEFQUExJQ0FUSU9OX1BPUlQgaXMgYSBwb3J0IG51bWJlciB1c2VkIGJ5IGFuIGFwcGxp
Y2F0aW9uIHByb3RvY29sLCBleC4gMjIgZm9yIFNTSCwgCis1MyBmb3IgRE5TLCA4MCBmb3IgSFRU
UCwgcG9ydCByYW5nZSBjYW4gYmUgZ2l2ZW4gaW4gdGhlIGZvcm0gMjI6MjM7CiskRFROVFVOTkVM
X1BPUlQgaXMgdGhlIGR0bnR1bm5lbCBscG9ydCBhcyBnaXZlbiBpbiB0dW5uZWwgc3BlY2lmaWNh
dGlvbjsKKyRFWFRFUk5BTF9JRiBpcyBhIG5hbWUgb2YgYSBuZXR3b3JrIGludGVyZmFjZSB0b3dh
cmRzIHRoZSByZW1vdGUgbmV0d29yayB0aGF0IGlzIAordG8gYmUgcmVhY2hlZCB2aWEgRFROLgor
CitOT1RFOiBEb24ndCBmb3JnZXQgdG8gYWRkIG5ldHdvcmsgcm91dGVzIG9uIHRoZSBob3N0cyB0
aGF0IHdpbGwgdXNlIGR0bnR1bm5lbCBob3N0IAorYXMgYSByb3V0ZXIuIEluIHRoZSBtb3N0IHNp
bXBsZSBjYXNlIHNldHRpbmcgdGhlIGRlZmF1bHQgZ2F0ZXdheSBhZGRyZXNzIHRvIHRoZSAKK2Fk
ZHJlc3Mgb2YgdGhlIGhvc3QgcnVubmluZyBkdG50dW5uZWwgaXMgZW5vdWdoLgorCitJbiB0cmFu
c3BhcmVudCBtb2RlIGR0bnR1bm5lbCBjYW4gdXNlIG11bHRpcGxlIGRlc3RpbmF0aW9uIEVJRHMg
aW4gb3JkZXIgdG8gYmUgYWJsZQordG8gdHJhbnNwb3J0IGRhdGEgdG8gbXVsdGlwbGUgSVAgbmV0
d29ya3MgcmVhY2hhYmxlIHRocm91Z2ggZGlmZmVyZW50IERUTiBub2Rlcy4KK1RvIGVuYWJsZSB0
aGlzIGZlYXR1cmUgc3BlY2lmeSA8ZGVzdGluYXRpb24gZWlkIHRhYmxlIGZpbGUgbmFtZT4gaW5z
dGVhZCBvZiAKKzxkZXN0aW5hdGlvbl9laWQ+IGluIGR0bnR1bm5lbCBjb21tYW5kIGxpbmUuCisK
K0VpZCB0YWJsZSBmaWxlIGZvcm1hdDogPElQIG5ldHdvcmsgYWRkcmVzcz4gPERUTiBub2RlIEVJ
RD4uCitFaWQgdGFibGUgZmlsZSBleGFtcGxlOgorMTkyLjE2OC40LjAvMjQgZHRuOi8vZHRuMS5k
dG4vZHRudHVubmVsL2FwcAorMTkyLjE2OC41LjAvMjQgZHRuOi8vZHRuMi5kdG4vZHRudHVubmVs
L2FwcAorCitTZXJnZXkgU2lyZXNraW4gc3NpcmVza2luIGF0IGdtYWlsIGNvbQpkaWZmIC1OdXIg
ZHRudHVubmVsLmR6L1RDUFR1bm5lbC5jYyBkdG50dW5uZWwvVENQVHVubmVsLmNjCi0tLSBkdG50
dW5uZWwuZHovVENQVHVubmVsLmNjCTIwMTMtMDItMTAgMjI6MTk6MjQuMDAwMDAwMDAwICswNDAw
CisrKyBkdG50dW5uZWwvVENQVHVubmVsLmNjCTIwMTMtMDMtMDEgMTg6NTE6MDMuMDAwMDAwMDAw
ICswNDAwCkBAIC0yMyw2ICsyMyw5IEBACiAjaW5jbHVkZSAiRFROVHVubmVsLmgiCiAjaW5jbHVk
ZSAiVENQVHVubmVsLmgiCiAKKyNpbmNsdWRlIDxsaW51eC9uZXRmaWx0ZXJfaXB2NC5oPgkvLyBm
b3IgU09fT1JJR0lOQUxfRFNUCisjaW5jbHVkZSA8bmV0aW5ldC90Y3AuaD4JCS8vIGZvciBTT0xf
VENQCisKIG5hbWVzcGFjZSBkdG50dW5uZWwgewogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwMiw2
ICsxMDUsNyBAQAogICAgIC8vIHJlc3RhcnRlZCBvbmUsIGluIHdoaWNoIGNhc2Ugd2UgbGVhdmUg
dGhlIGV4aXN0aW5nIG9uZSBpbiB0aGUKICAgICAvLyB0YWJsZSBhbmQgZG9uJ3Qgd2FudCB0byBi
bG93IGl0IGF3YXkKICAgICBpZiAoaS0+c2Vjb25kID09IGMpIHsKKwlsb2dfZGVidWcoImVyYXNp
bmcgY29ubmVjdGlvbiBmcm9tIHRhYmxlIColcCIsIGMpOwogICAgICAgICBjb25uZWN0aW9uc18u
ZXJhc2UoaSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbG9nX25vdGljZSgibm90IGVyYXNpbmcg
Y29ubmVjdGlvbiBpbiB0YWJsZSBzaW5jZSBhbHJlYWR5IHJlcGxhY2VkIik7CkBAIC0yMDQsNiAr
MjA4LDI0IEBACiAgICAgICByZW1vdGVfYWRkcl8ocmVtb3RlX2FkZHIpLAogICAgICAgcmVtb3Rl
X3BvcnRfKHJlbW90ZV9wb3J0KQogeworICAgIHRyYW5zcGFyZW50XyA9IERUTlR1bm5lbDo6aW5z
dGFuY2UoKS0+dHJhbnNwYXJlbnQoKTsKKyAgICAKKyAgICAvLyBzZXQgSVBfVFJBTlNQQVJFTlQg
c29ja2V0IG9wdGlvbiBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGludGVyY2VwdCB0cmFmZmljCisg
ICAgLy8gd2l0aCB0aGUgaGVscCBvZiBUUHJveHkKKyAgICBpZiAodHJhbnNwYXJlbnRfKSB7Cisj
aWZkZWYgX19saW51eF9fCisJdGhpcy0+aW5pdF9zb2NrZXQoKTsKKyAgICAgICAgaW50IG9uLCBl
cnI7CisgICAgICAgIG9uID0gMTsKKyAgICAgICAgZXJyID0gc2V0c29ja29wdCh0aGlzLT5mZCgp
LCBTT0xfSVAsIElQX1RSQU5TUEFSRU5ULCAmb24sIHNpemVvZihvbikpOworICAgIAlpZiAoZXJy
KSB7CisgICAgCSAgICBsb2dfZXJyKCJzZXRzb2Nrb3B0KElQX1RSQU5TUEFSRU5UKSBlcnJvcjog
JWQsICVzIiwgZXJyLCBzdHJlcnJvcihlcnJubykpOworICAgIAl9IGVsc2UgeworCSAgICBsb2df
ZGVidWcoInNldCBJUF9UUkFOU1BBUkVOVCBvbiBsaXN0ZW5lciBzb2NrZXQiKTsKKwl9CisjZW5k
aWYKKyAgICB9CisKICAgICBpZiAoYmluZF9saXN0ZW5fc3RhcnQobGlzdGVuX2FkZHIsIGxpc3Rl
bl9wb3J0KSAhPSAwKSB7CiAgICAgICAgIGxvZ19lcnIoImNhbid0IGluaXRpYWxpemUgbGlzdGVu
ZXIgc29ja2V0LCBiYWlsaW5nIik7CiAgICAgICAgIGV4aXQoMSk7CkBAIC0yMTIsOSArMjM0LDY5
IEBACiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogdm9pZAorVENQVHVubmVsOjpMaXN0ZW5lcjo6Zm9yY2Vf
Y2xvc2Vfc29ja2V0KGludCBmZCkKK3sKKyAgICBzdHJ1Y3QgbGluZ2VyIGw7CisgICAgaW50IG9m
ZiA9IDA7CisgICAgbC5sX29ub2ZmID0gMTsKKyAgICBsLmxfbGluZ2VyID0gMDsKKyAgICBpbnQg
ZXJyOworCisgICAgZXJyID0gc2V0c29ja29wdChmZCwgU09MX1NPQ0tFVCwgU09fTElOR0VSLCAm
bCwgc2l6ZW9mKGwpKTsKKyAgICBpZiAoZXJyKSB7CisgICAgCWxvZ19lcnIoInNldHNvY2tvcHQo
U09fTElOR0VSKSBlcnJvcjogJWQsICVzIiwgZXJyLCBzdHJlcnJvcihlcnJubykpOworICAgIH0K
KyAgICBlcnIgPSBzZXRzb2Nrb3B0KGZkLCBTT0xfVENQLCBUQ1BfTk9ERUxBWSwgJm9mZiwgc2l6
ZW9mKG9mZikpOworICAgIGlmIChlcnIpIHsKKyAgICAJbG9nX2Vycigic2V0c29ja29wdChUQ1Bf
Tk9ERUxBWSkgZXJyb3I6ICVkLCAlcyIsIGVyciwgc3RyZXJyb3IoZXJybm8pKTsKKyAgICB9Cisg
ICAgOjp3cml0ZShmZCwgIiIsIDEpOworICAgIDo6Y2xvc2UoZmQpOworfQorCisvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK3ZvaWQKIFRDUFR1bm5lbDo6TGlzdGVuZXI6OmFjY2VwdGVkKGludCBmZCwgaW5fYWRk
cl90IGFkZHIsIHVfaW50MTZfdCBwb3J0KQogewotICAgIENvbm5lY3Rpb24qIGMgPSBuZXcgQ29u
bmVjdGlvbih0Y3B0dW5fLCBEVE5UdW5uZWw6Omluc3RhbmNlKCktPmRlc3RfZWlkKCksCisgICAg
Ly8gc3RvcmUgb3JpZ2luYWwgZGVzdGluYXRpb24gYWRkcmVzcyBhbmQgcG9ydAorICAgIGlmICh0
cmFuc3BhcmVudF8pIHsKKyNpZmRlZiBfX2xpbnV4X18KKyAgICAgICAgaW50IHJjOworICAgICAg
ICBzb2NrbGVuX3Qgc29ja3NpemU7CisJc3RydWN0IHNvY2thZGRyX2luIHNvY2s7CisgICAgCisJ
Ly8gcHJlcGFyZSBzb2NrZXQgZm9yIGdldHRpbmcgb3JpZ2luYWwgZGVzdGluYXRpb24gYWRkcmVz
cyBhbmQgcG9ydAorICAgICAgICBzb2Nrc2l6ZSA9IHNpemVvZihzb2NrKTsKKyAgICAgICAgcmMg
PSBnZXRzb2Nrb3B0KGZkLCBTT0xfSVAsIFNPX09SSUdJTkFMX0RTVCwgJnNvY2ssICZzb2Nrc2l6
ZSk7CisKKyAgICAgICAgaWYgKHJjICE9IDApIHsKKyAgICAJICAgIGxvZ19lcnIoImdldHRpbmcg
b3JpZ2luYWwgZGVzdGluYXRpb24gZmFpbGVkLCBnZXRzb2Nrb3B0KFNPX09SSUdJTkFMX0RTVCkg
ZXJyb3I6ICVzIiwgCisJCSAgICBzdHJlcnJvcihlcnJubykpOworICAgICAgICB9CisgICAgICAg
IGVsc2UgCisgICAgICAgIGlmICgoc29jay5zaW5fYWRkci5zX2FkZHIgIT0gcmVtb3RlX2FkZHJf
KSB8fCAKKyAgICAJICAgIChudG9ocyhzb2NrLnNpbl9wb3J0KSAhPSByZW1vdGVfcG9ydF8pKSB7
CisJICAgIC8vIHNldCByZW1vdGUgYWRkcmVzcyBhbmQgcG9ydCBpbiBUQ1BUdW5uZWwgdG8gdGhl
aXIgb3JpZ2luYWwgdmFsdWVzCisJICAgIHJlbW90ZV9hZGRyXyA9IHNvY2suc2luX2FkZHIuc19h
ZGRyOworICAgICAgICAgICAgcmVtb3RlX3BvcnRfID0gbnRvaHMoc29jay5zaW5fcG9ydCk7CisJ
ICAgIGxvZ19kZWJ1ZygiY29ubmVjdGlvbiByZWRpcmVjdGVkLCBvcmlnaW5hbCBkZXN0aW5hdGlv
bjogJXM6JXUiLCAKKwkJCWludG9hKHJlbW90ZV9hZGRyXyksIHJlbW90ZV9wb3J0Xyk7CisJfQor
I2VuZGlmCisgICAgfQorCisgICAgZHRuX2VuZHBvaW50X2lkX3QgZGVzdF9laWQ7CisgICAgZHRu
X2NvcHlfZWlkKCZkZXN0X2VpZCwgRFROVHVubmVsOjppbnN0YW5jZSgpLT5kZXN0X2VpZCgpKTsK
KyAgICBEVE5UdW5uZWw6Omluc3RhbmNlKCktPmdldF9kZXN0X2VpZChyZW1vdGVfYWRkcl8sICZk
ZXN0X2VpZCk7CisgICAgaWYgKGRlc3RfZWlkLnVyaVswXSA9PSAnXDAnKSB7CisJbG9nX3dhcm4o
ImNhbm5vdCBmaW5kIGRlc3RpbmF0aW9uIGVpZCBmb3IgYWRkcmVzcyAlcywgaWdub3JpbmcgY29u
bmVjdGlvbiIsIAorCQkgaW50b2EocmVtb3RlX2FkZHJfKSk7CisJLy8gTm90aWZ5IHNlbmRpbmcg
YXBwbGljYXRpb24gdGhhdCB0aGUgY29ubmVjdGlvbiBjYW4gbm90IGJlIGVzdGFibGlzaGVkCisJ
Zm9yY2VfY2xvc2Vfc29ja2V0KGZkKTsKKwlyZXR1cm47CisgICAgfQorCisgICAgQ29ubmVjdGlv
biogYyA9IG5ldyBDb25uZWN0aW9uKHRjcHR1bl8sICZkZXN0X2VpZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmQsIGFkZHIsIHBvcnQsIHJlbW90ZV9hZGRyXywgcmVtb3Rl
X3BvcnRfLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Y3B0dW5fLT5uZXh0
X2Nvbm5lY3Rpb25faWQoKSk7CiAgICAgdGNwdHVuXy0+bmV3X2Nvbm5lY3Rpb24oYyk7CkBAIC0y
OTUsNiArMzc3LDggQEAKICAgICBib29sIHNvY2tfZW9mID0gZmFsc2U7CiAgICAgYm9vbCBkdG5f
YmxvY2tlZCA9IGZhbHNlOwogICAgIGJvb2wgZmlyc3QgPSB0cnVlOworICAgIAorICAgIHRyYW5z
cGFyZW50XyA9IHR1bm5lbC0+dHJhbnNwYXJlbnQoKTsKIAogICAgIC8vIG91dGdvaW5nICh0Y3Ag
LT4gZHRuKSAvIGluY29taW5nIChkdG4gLT4gdGNwKSBidW5kbGVzCiAgICAgZHRuOjpBUElCdW5k
bGUqIGJfeG1pdCA9IE5VTEw7CkBAIC0zMTYsNiArNDAwLDI4IEBACiAgICAgaGRyLnJlbW90ZV9w
b3J0XyAgID0gaHRvbnMocmVtb3RlX3BvcnRfKTsKICAgICAKICAgICBpZiAoc29ja18uc3RhdGUo
KSAhPSBvYXN5czo6SVBTb2NrZXQ6OkVTVEFCTElTSEVEKSB7CisJLy8gYmluZCBzb2NrZXQgdG8g
bm9uLWxvY2FsIGFkZHJlc3Mgb2YgdGhlIHNlbmRpbmcgdGNwIGFwcGxpY2F0aW9uIAorCS8vIGlu
IG9yZGVyIHRvIHRyYW5zbWl0IGRhdGEgdG8gdGhlIHJlY2VpdmluZyB0Y3AgYXBwbGljYXRpb24g
dHJhbnNwYXJyZW50bHkKKwlpZiAodHJhbnNwYXJlbnRfKSB7CisjaWZkZWYgX19saW51eF9fCisJ
ICAgIHNvY2tfLmluaXRfc29ja2V0KCk7CisgICAgCSAgICBpbnQgb24sIGVycjsKKyAgICAgICAg
ICAgIG9uID0gMTsKKwkgICAgZXJyID0gc2V0c29ja29wdChzb2NrXy5mZCgpLCBTT0xfSVAsIElQ
X1RSQU5TUEFSRU5ULCAmb24sIHNpemVvZihvbikpOworICAgIAkgICAgaWYgKGVycikgeworICAg
ICAgICAJbG9nX2Vycigic2V0c29ja29wdChJUF9UUkFOU1BBUkVOVCkgZXJyb3I6ICVkLCAlcyIs
IGVyciwgc3RyZXJyb3IoZXJybm8pKTsKKyAgICAJICAgIH0gZWxzZSB7CisJCWxvZ19kZWJ1Zygi
c2V0IElQX1RSQU5TUEFSRU5UIG9uIGNvbm5lY3Rpb24gc29ja2V0Iik7CisJICAgIH0KKyAgICAg
ICAgICAgIGVyciA9IHNvY2tfLmJpbmQoY2xpZW50X2FkZHJfLCBjbGllbnRfcG9ydF8pOworICAg
IAkgICAgaWYgKGVyciAhPSAwKSB7CisgICAgCSAgICAgICAgbG9nX2VycigiY2FuJ3QgYmluZCB0
byAlczoldSwgZXJyb3I6ICVkICglcykiLCBpbnRvYShjbGllbnRfYWRkcl8pLCBjbGllbnRfcG9y
dF8sIAorICAgIAkgICAgCQllcnIsIHN0cmVycm9yKGVycm5vKSk7CisJICAgICAgICBnb3RvIGRv
bmU7CisgICAgCSAgICB9CisjZW5kaWYKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgaW50
IGVyciA9IHNvY2tfLmNvbm5lY3QocmVtb3RlX2FkZHJfLCByZW1vdGVfcG9ydF8pOwogICAgICAg
ICBpZiAoZXJyICE9IDApIHsKICAgICAgICAgICAgIGxvZ19lcnIoImVycm9yIGNvbm5lY3Rpbmcg
dG8gJXM6JWQiLApAQCAtNDcxLDYgKzU3Nyw3IEBACiAKICAgICAgICAgICAgIHVfaW50IGxlbiA9
IGJfcmVjdi0+cGF5bG9hZF8ubGVuKCkgLSBzaXplb2YoaGRyKTsKIAorCSAgICAvLyBzZW5kIGRh
dGEgdG8gdGhlIHJlY2VpdmluZyBhcHBsaWNhdGlvbgogICAgICAgICAgICAgaWYgKGxlbiAhPSAw
KSB7CiAgICAgICAgICAgICAgICAgaW50IGNjID0gc29ja18ud3JpdGVhbGwoYl9yZWN2LT5wYXls
b2FkXy5idWYoKSArIHNpemVvZihoZHIpLCBsZW4pOwogICAgICAgICAgICAgICAgIGlmIChjYyAh
PSAoaW50KWxlbikgewpAQCAtNDgxLDEzICs1ODgsNiBAQAogCiAgICAgICAgICAgICAgICAgbG9n
X2RlYnVnKCJzZW50ICVkIGJ5dGUgcGF5bG9hZCB0byBjbGllbnQiLCBsZW4pOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgCi0KLSAgICAgICAgICAgIC8vaWYgKHJlY3ZfaGRyLT5lb2ZfKSB7
Ci0gICAgICAgICAgICAvLyAgICBsb2dfaW5mbygiYnVuZGxlIGhhZCBlb2YgYml0IHNldC4uLiBj
bG9zaW5nIGNvbm5lY3Rpb24iKTsKLSAgICAgICAgICAgIC8vICAgIHNvY2tfLmNsb3NlKCk7Ci0g
ICAgICAgICAgICAvL30KLQogCiAgICAgICAgICAgICBpZiAocmVjdl9oZHItPmVvZl8pIHsKICAg
ICAgICAgICAgICAgICBsb2dfaW5mbygiYnVuZGxlIGhhZCBlb2YgYml0IHNldC4uLiBjbG9zaW5n
IGNvbm5lY3Rpb24iKTsKZGlmZiAtTnVyIGR0bnR1bm5lbC5kei9UQ1BUdW5uZWwuaCBkdG50dW5u
ZWwvVENQVHVubmVsLmgKLS0tIGR0bnR1bm5lbC5kei9UQ1BUdW5uZWwuaAkyMDEzLTAxLTEwIDIx
OjE0OjU5LjAwMDAwMDAwMCArMDQwMAorKysgZHRudHVubmVsL1RDUFR1bm5lbC5oCTIwMTMtMDIt
MjYgMjA6NDQ6MDEuMDAwMDAwMDAwICswNDAwCkBAIC0zNiw3ICszNiw3IEBACiAgKi8KIGNsYXNz
IFRDUFR1bm5lbCA6IHB1YmxpYyBJUFR1bm5lbCB7CiBwdWJsaWM6Ci0gICAgLy8vIENvbnN0cnVj
dG9yCisgICAgLy8vIENvbnN0cnVjdG9yIGZvciB0aGUgYnVuZGxlIHJlY2VpdmluZyBzaWRlIG9m
IHRoZSBUQ1BUdW5uZWwKICAgICBUQ1BUdW5uZWwoKTsKICAgICAKICAgICAvLy8gQWRkIGEgbmV3
IGxpc3RlbmluZyB0byBmcm9tIHRoZSBnaXZlbiBsaXN0ZW5pbmcKQEAgLTY3LDYgKzY3LDEyIEBA
CiAgICAgICAgIGluX2FkZHJfdCByZW1vdGVfYWRkcl87CiAgICAgICAgIHVfaW50MTZfdCByZW1v
dGVfcG9ydF87CiAgICAgICAgIC8vLyBAfQorCisgICAgICAgIC8vLyBQcm94eSBhcHBsaWNhdGlv
biB0cmFmZmljIHRyYW5zcGFyZW50bHkgKExpbnV4IG9ubHkpCisgICAgICAgIGJvb2wgdHJhbnNw
YXJlbnRfOworCisJLy8vIEZvcmNlIGNsb3NlIGEgVENQIHNvY2tldAorCXZvaWQgZm9yY2VfY2xv
c2Vfc29ja2V0KGludCBmZCk7CiAgICAgfTsKIAogICAgIC8vLyBIZWxwZXIgY2xhc3MgdG8gaGFu
ZGxlIGFuIGFjdGl2ZWx5IHByb3hpZWQgY29ubmVjdGlvbgpAQCAtMTI2LDYgKzEzMiw5IEBACiAg
ICAgICAgIGluX2FkZHJfdCAgICAgICAgIHJlbW90ZV9hZGRyXzsKICAgICAgICAgdV9pbnQxNl90
ICAgICAgICAgcmVtb3RlX3BvcnRfOwogICAgICAgICB1X2ludDMyX3QgICAgICAgICBjb25uZWN0
aW9uX2lkXzsKKworICAgICAgICAvLy8gUHJveHkgYXBwbGljYXRpb24gdHJhZmZpYyB0cmFuc3Bh
cmVudGx5IChMaW51eCBvbmx5KQorICAgICAgICBib29sIHRyYW5zcGFyZW50XzsKICAgICB9Owog
CiAgICAgLy8vIFJldHVybiB0aGUgbmV4dCBjb25uZWN0aW9uIGlkCmRpZmYgLU51ciBkdG50dW5u
ZWwuZHovVURQVHVubmVsLmNjIGR0bnR1bm5lbC9VRFBUdW5uZWwuY2MKLS0tIGR0bnR1bm5lbC5k
ei9VRFBUdW5uZWwuY2MJMjAxMy0wMi0yMCAwNTo0NToyMi4wMDAwMDAwMDAgKzA0MDAKKysrIGR0
bnR1bm5lbC9VRFBUdW5uZWwuY2MJMjAxMy0wMy0wNSAxMTozMjo0NC4wMDAwMDAwMDAgKzA0MDAK
QEAgLTEwOSwxMiArMTA5LDEwIEBACiAgICAgICAgICAgICAgIGhkci5jb25uZWN0aW9uX2lkXywK
ICAgICAgICAgICAgICAgaGRyLnNlcW5vXyk7CiAKLQogICAgIGlmIChOVUxMICE9IGxpc3RlbmVy
XykgewogICAgICAgICBsaXN0ZW5lcl8tPmhhbmRsZV9idW5kbGUoYnVuZGxlKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLQogICAgIAogICAgIENvbm5lY3Rpb24qIGNvbm4gPSBOVUxMOwogICAg
IENvbm5UYWJsZTo6aXRlcmF0b3IgaTsKQEAgLTE2Nyw5ICsxNjUsMTEgQEAKICAgICAgIGNsaWVu
dF9wb3J0XyhjbGllbnRfcG9ydCksCiAgICAgICByZW1vdGVfYWRkcl8ocmVtb3RlX2FkZHIpLAog
ICAgICAgcmVtb3RlX3BvcnRfKHJlbW90ZV9wb3J0KSwKLSAgICAgIGNvbm5lY3Rpb25faWRfKGNv
bm5lY3Rpb25faWQpCisgICAgICBjb25uZWN0aW9uX2lkXyhjb25uZWN0aW9uX2lkKSwKKyAgICAg
IHRyYW5zcGFyZW50XyhmYWxzZSkKIHsKICAgICBkdG5fY29weV9laWQoJmRlc3RfZWlkXywgZGVz
dF9laWQpOworCiAgICAgcmVvcmRlcl91ZHBfID0gRFROVHVubmVsOjppbnN0YW5jZSgpLT5yZW9y
ZGVyX3VkcCgpOwogfQogCkBAIC0yMDMsNyArMjAzLDkgQEAKICAgICB1X2ludDMyX3Qgc2VuZF9z
ZXFubyA9IDA7CiAgICAgdV9pbnQzMl90IG5leHRfcmVjdl9zZXFubyA9IDA7CiAKLSAgICAvLyBY
WFgvZHogaW4gaXBlcmYgdGVzdCB3aXRoIDEwIHBhcmFsbGVsIGNvbm5lY3Rpb25zLCB1c2luZyB0
aW1lb3V0PTAgCisgICAgdHJhbnNwYXJlbnRfID0gdHVubmVsLT50cmFuc3BhcmVudCgpOworCisg
ICAgLy8gWFhYL2R6IGluIGlwZXJmIHRlc3Qgd2l0aCAxMCBwYXJhbGxlbCBjb25uZWN0aW9ucywg
dXNpbmcgdGltZW91dD0wCiAgICAgLy8gZG91YmxlcyB0aGUgdGltZSBuZWVkZWQgZm9yIHRoZSBz
ZXJ2ZXIgdG8gZmluaXNoCiAgICAgaW50IHRpbWVvdXQgPSAxOwogICAgIGlmICh0dW5uZWwtPmRl
bGF5X3NldCgpKSB0aW1lb3V0ID0gdHVubmVsLT5kZWxheSgpOwpAQCAtMjI4LDkgKzIzMCwyOSBA
QAogICAgIGhkci5jbGllbnRfcG9ydF8gICA9IGh0b25zKGNsaWVudF9wb3J0Xyk7CiAgICAgaGRy
LnJlbW90ZV9hZGRyXyAgID0gcmVtb3RlX2FkZHJfOwogICAgIGhkci5yZW1vdGVfcG9ydF8gICA9
IGh0b25zKHJlbW90ZV9wb3J0Xyk7Ci0gICAgCisKICAgICBzb2NrXy5pbml0X3NvY2tldCgpOwog
CisgICAgaWYgKHRyYW5zcGFyZW50XykgeworI2lmZGVmIF9fbGludXhfXworICAgIAkvLyBiaW5k
IHNvY2tldCB0byB0aGUgbm9uLWxvY2FsIGFkZHJlc3Mgb2YgdGhlIHNlbmRpbmcgdWRwIGFwcGxp
Y2F0aW9uCisgICAgCS8vIGluIG9yZGVyIHRvIHRyYW5zbWl0IGRhdGEgdG8gdGhlIHJlY2Vpdmlu
ZyB1ZHAgYXBwbGljYXRpb24gdHJhbnNwYXJyZW50bHkKKyAgICAJaW50IG9uLCBlcnI7CisgICAg
ICAgIG9uID0gMTsKKwllcnIgPSBzZXRzb2Nrb3B0KHNvY2tfLmZkKCksIFNPTF9JUCwgSVBfVFJB
TlNQQVJFTlQsICZvbiwgc2l6ZW9mKG9uKSk7CisgICAgICAgIGlmIChlcnIpIHsKKwkgICAgbG9n
X2Vycigic2V0c29ja29wdChJUF9UUkFOU1BBUkVOVCkgZXJyb3I6ICVkLCAlcyIsIGVyciwgc3Ry
ZXJyb3IoZXJybm8pKTsKKyAgICAJfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ19kZWJ1Zygic2V0
IElQX1RSQU5TUEFSRU5UIG9uIGNvbm5lY3Rpb24gc29ja2V0Iik7CisgICAgICAgIH0KKyAgICAg
ICAgZXJyID0gc29ja18uYmluZChjbGllbnRfYWRkcl8sIGNsaWVudF9wb3J0Xyk7CisJaWYgKGVy
ciAhPSAwKSB7CisgICAgCSAgICBsb2dfZXJyKCJjYW4ndCBiaW5kIHRvICVzOiV1LCBlcnJvcjog
JWQgKCVzKSIsIGludG9hKGNsaWVudF9hZGRyXyksIGNsaWVudF9wb3J0XywKKyAgICAgICAgCSAg
ICBlcnIsIHN0cmVycm9yKGVycm5vKSk7CisgICAgICAgIH0KKyNlbmRpZgorICAgIH0KKwogICAg
IHdoaWxlICgxKSB7CiAgICAgICAgIHN0cnVjdCBwb2xsZmQgcG9sbGZkc1syXTsKIApAQCAtMjQ2
LDggKzI2OCw4IEBACiAKICAgICAgICAgLy8gaWYgdGhlIHNvY2tldCBhbHJlYWR5IGhhZCBhbiBl
b2Ygb3IgaWYgZHRuIGlzIHdyaXRlCiAgICAgICAgIC8vIGJsb2NrZWQsIHdlIGp1c3QgcG9sbCBm
b3IgYWN0aXZpdHkgb24gdGhlIG1lc3NhZ2UgcXVldWUgdG8KLSAgICAgICAgLy8gbG9vayBmb3Ig
ZGF0YSB0aGF0IG5lZWRzIHRvIGJlIHJldHVybmVkIG91dCB0aGUgVENQIHNvY2tldAotICAgICAg
ICAvL2ludCBuZmRzID0gKHNvY2tfZW9mIHx8IGR0bl9ibG9ja2VkKSA/IDEgOiAyOworICAgICAg
ICAvLyBsb29rIGZvciBkYXRhIHRoYXQgbmVlZHMgdG8gYmUgcmV0dXJuZWQgb3V0IHRoZSBVRFAg
c29ja2V0CisgICAgICAgIC8vIGludCBuZmRzID0gKHNvY2tfZW9mIHx8IGR0bl9ibG9ja2VkKSA/
IDEgOiAyOwogICAgICAgICBpbnQgbmZkcyA9IDI7CiAKICAgICAgICAgaW50IG5yZWFkeSA9IG9h
c3lzOjpJTzo6cG9sbF9tdWx0aXBsZShwb2xsZmRzLCBuZmRzLCB0aW1lb3V0LApAQCAtMzM0LDcg
KzM1Niw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50b2EoY2xpZW50X2FkZHJf
KSwgY2xpZW50X3BvcnRfLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVycm9yKGVy
cm5vKSk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbG9n
X2RlYnVnKCJzZW50ICV6dSBieXRlIHBheWxvYWQgdG8gJXM6JWQgZm9yIGNsaWVudCAlczolZCIs
CisgICAgICAgICAgICAgICAgICAgIGxvZ19kZWJ1Zygic2VudCAlZCBieXRlIHBheWxvYWQgdG8g
JXM6JWQgZm9yIGNsaWVudCAlczolZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRvYShoZHIucmVtb3RlX2FkZHJf
KSwgaGRyLnJlbW90ZV9wb3J0XywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludG9h
KGNsaWVudF9hZGRyXyksIGNsaWVudF9wb3J0Xyk7CkBAIC00MjUsMTEgKzQ0NywxMyBAQAogICAg
IDogVGhyZWFkKCJVRFBUdW5uZWw6Okxpc3RlbmVyIiwgREVMRVRFX09OX0VYSVQpLAogICAgICAg
TG9nZ2VyKCJVRFBUdW5uZWw6Okxpc3RlbmVyIiwgIi9kdG50dW5uZWwvdWRwL2xpc3RlbmVyIiks
IAogICAgICAgc29ja18oIi9kdG50dW5uZWwvdWRwL2xpc3RlbmVyL3NvY2siKSwKKyAgICAgIHRz
b2NrXygiL2R0bnR1bm5lbC91ZHAvbGlzdGVuZXIvdHNvY2siKSwKICAgICAgIHVkcHR1bl8odCks
CiAgICAgICBsaXN0ZW5fYWRkcl8obGlzdGVuX2FkZHIpLAogICAgICAgbGlzdGVuX3BvcnRfKGxp
c3Rlbl9wb3J0KSwKICAgICAgIHJlbW90ZV9hZGRyXyhyZW1vdGVfYWRkciksCi0gICAgICByZW1v
dGVfcG9ydF8ocmVtb3RlX3BvcnQpCisgICAgICByZW1vdGVfcG9ydF8ocmVtb3RlX3BvcnQpLAor
ICAgICAgdHJhbnNwYXJlbnRfKGZhbHNlKQogewogICAgIHN0YXJ0KCk7CiB9CkBAIC00MzksMTEg
KzQ2Myw3IEBACiBVRFBUdW5uZWw6Okxpc3RlbmVyOjpydW4oKQogewogICAgIERUTlR1bm5lbCog
dHVubmVsID0gRFROVHVubmVsOjppbnN0YW5jZSgpOwotICAgIGludCByZXQgPSBzb2NrXy5iaW5k
KGxpc3Rlbl9hZGRyXywgbGlzdGVuX3BvcnRfKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAg
ICAgbG9nX2VycigiY2FuJ3QgYmluZCB0byAlczoldSIsIGludG9hKGxpc3Rlbl9hZGRyXyksIGxp
c3Rlbl9wb3J0Xyk7Ci0gICAgICAgIHJldHVybjsgLy8gZGllCi0gICAgfQorICAgIHRyYW5zcGFy
ZW50XyA9IHR1bm5lbC0+dHJhbnNwYXJlbnQoKTsKIAogICAgIERUTlR1bm5lbDo6QnVuZGxlSGVh
ZGVyIGhkcjsKICAgICBoZHIucHJvdG9jb2xfICAgICAgICAgPSBJUFBST1RPX1VEUDsKQEAgLTQ1
MSwxNiArNDcxLDExMyBAQAogICAgIGhkci5zZXFub18gICAgICAgICAgICA9IDA7CiAgICAgaGRy
LnJlbW90ZV9hZGRyXyAgICAgID0gcmVtb3RlX2FkZHJfOwogICAgIGhkci5yZW1vdGVfcG9ydF8g
ICAgICA9IGh0b25zKHJlbW90ZV9wb3J0Xyk7Ci0gICAKKworICAgIGR0bl9lbmRwb2ludF9pZF90
IGRlc3RfZWlkOworICAgIGR0bl9jb3B5X2VpZCgmZGVzdF9laWQsIERUTlR1bm5lbDo6aW5zdGFu
Y2UoKS0+ZGVzdF9laWQoKSk7CisKKyAgICBpZiAodHJhbnNwYXJlbnRfKSB7CisjaWZkZWYgX19s
aW51eF9fCisJLy8gcHJlcGFyZSBzb2NrZXQgdG8gZ2V0dGluZyBvcmlnaW5hbCBkZXN0aW5hdGlv
biBhZGRyZXNzIGFuZCBwb3J0CisgICAgICAgIGxvZ19kZWJ1ZygiaW5pdGlhbGl6aW5nIHNvY2tl
dCIpOworICAgICAgICBzb2NrXy5pbml0X3NvY2tldCgpOworICAgICAgICBpbnQgb24sIHJldDsK
KyAgICAgICAgb24gPSAxOworICAgICAgICByZXQgPSBzZXRzb2Nrb3B0KHNvY2tfLmZkKCksIFNP
TF9JUCwgSVBfVFJBTlNQQVJFTlQsICZvbiwgc2l6ZW9mKG9uKSk7CisgICAgICAgIGlmIChyZXQp
IHsKKyAgICAgICAgICAgIGxvZ19lcnIoInNldHNvY2tvcHQoSVBfVFJBTlNQQVJFTlQpIGVycm9y
OiAlZCwgJXMiLCByZXQsIHN0cmVycm9yKGVycm5vKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBsb2dfZGVidWcoInNldCBJUF9UUkFOU1BBUkVOVCBvbiBsaXN0ZW5lciBzb2NrZXQi
KTsKKyAgICAgICAgfQorICAgICAgICBvbiA9IDE7CisgICAgICAgIHJldCA9IHNldHNvY2tvcHQo
c29ja18uZmQoKSwgU09MX0lQLCBJUF9SRUNWT1JJR0RTVEFERFIsICZvbiwgc2l6ZW9mKG9uKSk7
CisgICAgICAgIGlmIChyZXQpIHsKKyAgICAgICAgICAgIGxvZ19lcnIoImdldHRpbmcgb3JpZ2lu
YWwgZGVzdGluYXRpb24gZmFpbGVkLCBzZXRzb2Nrb3B0KElQX1JFQ1ZPUklHRFNUQUREUikgZXJy
b3I6ICVzIiwgCisJCSAgICBzdHJlcnJvcihlcnJubykpOworICAgICAgICB9CisjZW5kaWYKKyAg
ICB9CisKKyAgICBpbnQgcmV0ID0gc29ja18uYmluZChsaXN0ZW5fYWRkcl8sIGxpc3Rlbl9wb3J0
Xyk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGxvZ19lcnIoImNhbid0IGJpbmQgdG8g
JXM6JXUiLCBpbnRvYShsaXN0ZW5fYWRkcl8pLCBsaXN0ZW5fcG9ydF8pOworICAgICAgICByZXR1
cm47IC8vIGRpZQorICAgIH0KKwogICAgIHdoaWxlICgxKSB7Ci0gICAgICAgIGludCBsZW4gPSBz
b2NrXy5yZWN2ZnJvbShyZWN2X2J1Zl8sIHNpemVvZihyZWN2X2J1Zl8pLCAwLCAmaGRyLmNsaWVu
dF9hZGRyXywgJmhkci5jbGllbnRfcG9ydF8pOworICAgICAgICBpbnQgbGVuOworICAgICAgICAK
KyAgICAgICAgaWYgKHRyYW5zcGFyZW50XykgeworI2lmZGVmIF9fbGludXhfXworICAgICAgICAg
ICAgLy8gZ2V0IG9yaWdpbmFsIGRlc3RpbmF0aW9uIGFkZHJlc3MgYW5kIHBvcnQgYW5kIHB1dCB0
aGVtIHRvIHRoZSBidW5kbGUgaGVhZGVyCisgICAgICAgICAgICBjaGFyIGNtYnVmWzY0XTsKKyAg
ICAgICAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBmcm9tOworICAgICAgICAgICAgc3RydWN0IGlv
dmVjIGlvOworICAgICAgICAgICAgc3RydWN0IG1zZ2hkciBtc2c7CisgICAgICAgICAgICBib29s
IGZvdW5kX29yaWdkc3QgPSBmYWxzZTsKKworICAgICAgICAgICAgbWVtc2V0KCZtc2csIDAsIHNp
emVvZihtc2cpKTsKKyAgICAgICAgICAgIG1zZy5tc2dfbmFtZSA9ICZmcm9tOworICAgICAgICAg
ICAgbXNnLm1zZ19uYW1lbGVuID0gc2l6ZW9mKGZyb20pOworICAgICAgICAgICAgbXNnLm1zZ19j
b250cm9sID0gY21idWY7CisgICAgICAgICAgICBtc2cubXNnX2NvbnRyb2xsZW4gPSBzaXplb2Yo
Y21idWYpOworICAgICAgICAgICAgbXNnLm1zZ19pb3YgPSAmaW87CisgICAgICAgICAgICBtc2cu
bXNnX2lvdmxlbiA9IDE7CisgICAgICAgICAgICBpby5pb3ZfYmFzZSA9IHJlY3ZfYnVmXzsKKyAg
ICAgICAgICAgIGlvLmlvdl9sZW4gPSBzaXplb2YocmVjdl9idWZfKTsKKworICAgICAgICAgICAg
bGVuID0gc29ja18ucmVjdm1zZygmbXNnLCAwKTsKKworICAgICAgICAgICAgaGRyLmNsaWVudF9h
ZGRyXyA9IGZyb20uc2luX2FkZHIuc19hZGRyOworICAgICAgICAgICAgaGRyLmNsaWVudF9wb3J0
XyA9IG50b2hzKGZyb20uc2luX3BvcnQpOworCisgICAgICAgICAgICAvLyBpdGVyYXRlIHRocm91
Z2ggYWxsIHRoZSBjb250cm9sIGhlYWRlcnMKKyAgICAgICAgICAgIGZvciAoCisgICAgICAgICAg
ICAgICAgc3RydWN0IGNtc2doZHIqIGNtc2cgPSBDTVNHX0ZJUlNUSERSKCZtc2cpOworICAgICAg
ICAgICAgICAgIGNtc2cgIT0gTlVMTDsKKyAgICAgICAgICAgICAgICBjbXNnID0gQ01TR19OWFRI
RFIoJm1zZywgY21zZykpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gaWdub3Jl
IHRoZSBjb250cm9sIGhlYWRlcnMgdGhhdCBkb24ndCBtYXRjaCB3aGF0IHdlIG5lZWQKKyAgICAg
ICAgICAgICAgICBpZiAoY21zZy0+Y21zZ19sZXZlbCAhPSBTT0xfSVAgfHwgY21zZy0+Y21zZ190
eXBlICE9IElQX09SSUdEU1RBRERSKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3VuZF9vcmlnZHN0ID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4qIG9yaWcgPSAoc3RydWN0IHNvY2th
ZGRyX2luKilDTVNHX0RBVEEoY21zZyk7CisKKyAgICAgICAgICAgICAgICBpZiAoKHJlbW90ZV9h
ZGRyXyAhPSBvcmlnLT5zaW5fYWRkci5zX2FkZHIpIHx8CisgICAgICAgICAgICAgICAgICAgIChy
ZW1vdGVfcG9ydF8gIT0gbnRvaHMob3JpZy0+c2luX3BvcnQpKSkKKyAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgIGxvZ19kZWJ1ZygiY29ubmVjdGlvbiByZWRpcmVjdGVkLCBv
cmlnaW5hbCBkZXN0aW5hdGlvbjogJXM6JXUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnRvYShvcmlnLT5zaW5fYWRkci5zX2FkZHIpLCBudG9ocyhvcmlnLT5zaW5fcG9ydCkp
OworICAgICAgICAgICAgICAgICAgICByZW1vdGVfYWRkcl8gPSBvcmlnLT5zaW5fYWRkci5zX2Fk
ZHI7CisgICAgICAgICAgICAgICAgICAgIHJlbW90ZV9wb3J0XyA9IG50b2hzKG9yaWctPnNpbl9w
b3J0KTsKKyAgICAgICAgICAgICAgICAgICAgaGRyLnJlbW90ZV9hZGRyXyA9IHJlbW90ZV9hZGRy
XzsKKyAgICAgICAgICAgICAgICAgICAgaGRyLnJlbW90ZV9wb3J0XyA9IGh0b25zKHJlbW90ZV9w
b3J0Xyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KCFmb3VuZF9vcmlnZHN0KSB7CisgICAgICAgICAgICAgICAgbG9nX2VycigiZ2V0dGluZyBvcmln
aW5hbCBkZXN0aW5hdGlvbiBmYWlsZWQsIChjbXNnLT5jbXNnX3R5cGU9PUlQX09SSUdEU1RBRERS
KSBub3QgZm91bmQiKTsKKyAgICAgICAgICAgIH0KKworCSAgICBEVE5UdW5uZWw6Omluc3RhbmNl
KCktPmdldF9kZXN0X2VpZChyZW1vdGVfYWRkcl8sICZkZXN0X2VpZCk7CisgICAgCSAgICBpZiAo
ZGVzdF9laWQudXJpWzBdID09ICdcMCcpIHsKKwkJbG9nX3dhcm4oImNhbm5vdCBmaW5kIGRlc3Rp
bmF0aW9uIGVpZCBmb3IgYWRkcmVzcyAlcywgaWdub3JpbmcgY29ubmVjdGlvbiIsCisgICAgICAg
IAkgICAgICAgICBpbnRvYShyZW1vdGVfYWRkcl8pKTsKKwkJY29udGludWU7CisgICAgICAgIAkv
LyBTUyBUT0RPOiBmaW5kIGEgd2F5IHRvIGdyYWNlZnVsbHkgbm90aWZ5IGFwcGxpY2F0aW9uIHRo
YXQgdGhlIGNvbm5lY3Rpb24KKwkJLy8gY2FuIG5vdCBiZSBlc3RhYmxpc2hlZCBieSBzZW5kaW5n
IElDTVAgcG9ydCB1bnJlYWNoYWJsZSBvciBzb21ldGhpbmcgCisJCS8vIGVxdWl2YWxlbnQuIFBv
c3NpYmx5IHNlbmQgYSBoYW5kLWNyYWZ0ZWQgcGFja2V0IHdpdGggcmF3IHNvY2tldHMuCisgICAg
CSAgICB9CisKKyNlbmRpZgorICAgICAgICB9IGVsc2UgeyAgICAgICAgCisgICAgCSAgICBsZW4g
PSBzb2NrXy5yZWN2ZnJvbShyZWN2X2J1Zl8sIHNpemVvZihyZWN2X2J1Zl8pLCAwLCAmaGRyLmNs
aWVudF9hZGRyXywgJmhkci5jbGllbnRfcG9ydF8pOworICAgIAl9CiAKICAgICAgICAgaWYgKGxl
biA8PSAwKSB7CiAgICAgICAgICAgICBsb2dfZXJyKCJlcnJvciByZWFkaW5nIGZyb20gc29ja2V0
OiAlcyIsIHN0cmVycm9yKGVycm5vKSk7CiAgICAgICAgICAgICByZXR1cm47IC8vIGRpZQogICAg
ICAgICB9CiAgICAgICAgIAotCiAgICAgICAgIGxvZ19kZWJ1ZygiZ290ICVkIGJ5dGUgcGFja2V0
IGZyb20gPHVkcCBzcmM6ICVzOiVkPiIsIGxlbiwgaW50b2EoaGRyLmNsaWVudF9hZGRyXyksIGhk
ci5jbGllbnRfcG9ydF8pOwogCiAgICAgICAgIGhkci5zZXFub18gPSBuZXh0X3NlcW5vKGhkci5j
bGllbnRfYWRkcl8sIGhkci5jbGllbnRfcG9ydF8sICZoZHIuY29ubmVjdGlvbl9pZF8pOwpAQCAt
NDc0LDggKzU5MSw4IEBACiAgICAgICAgIG1lbWNweShicCArIHNpemVvZihoZHIpLCByZWN2X2J1
Zl8sIGxlbik7CiAgICAgICAgIGItPnBheWxvYWRfLnNldF9sZW4oc2l6ZW9mKGhkcikgKyBsZW4p
OwogICAgICAgICAKLSAgICAgICAgaWYgKHR1bm5lbC0+c2VuZF9idW5kbGUoYiwgdHVubmVsLT5k
ZXN0X2VpZCgpKSAhPSBEVE5fU1VDQ0VTUykKLSAgICAgICAgICAgIGV4aXQoMSk7CisgICAgICAg
IGlmICh0dW5uZWwtPnNlbmRfYnVuZGxlKGIsICZkZXN0X2VpZCkgIT0gRFROX1NVQ0NFU1MpCisg
ICAgCSAgICBleGl0KDEpOwogCiAgICAgICAgIGRlbGV0ZSBiOwogICAgIH0KQEAgLTUzMCwyMCAr
NjQ3LDU2IEBACiAgICAgY2hhciogYnAgPSBidW5kbGUtPnBheWxvYWRfLmJ1ZigpICsgc2l6ZW9m
KGhkcik7CiAgICAgaW50ICBsZW4gPSBidW5kbGUtPnBheWxvYWRfLmxlbigpIC0gc2l6ZW9mKGhk
cik7CiAKLSAgICAvLyB0cmFuc21pdCBwYWNrZXQgdG8gdGhlIHNvY2tldCB0aGF0IGluaXRpYXRl
ZCB0aGUgY29ubmVjdGlvbgotICAgIGludCBjYyA9IHNvY2tfLnNlbmR0byhicCwgbGVuLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMCwgaGRyLmNsaWVudF9hZGRyXywgaGRyLmNsaWVudF9w
b3J0Xyk7Ci0gICAgaWYgKGNjICE9IGxlbikgewotICAgICAgICBsb2dfZXJyKCJlcnJvciBzZW5k
aW5nIHBhY2tldCB0byAlczolZDogJXMiLAotICAgICAgICAgICAgICAgIGludG9hKGhkci5jbGll
bnRfYWRkcl8pLCBoZHIuY2xpZW50X3BvcnRfLCBzdHJlcnJvcihlcnJubykpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGxvZ19kZWJ1Zygic2VudCAlenUgYnl0ZSBwYWNrZXQgdG8gJXM6JWQiLAot
ICAgICAgICAgICAgICAgICAgYnVuZGxlLT5wYXlsb2FkXy5sZW4oKSAtIHNpemVvZihoZHIpLAot
ICAgICAgICAgICAgICAgICAgaW50b2EoaGRyLmNsaWVudF9hZGRyXyksIGhkci5jbGllbnRfcG9y
dF8pOworICAgIGlmICh0cmFuc3BhcmVudF8pIHsKKyNpZmRlZiBfX2xpbnV4X18KKwkvLyB0cmFu
c3BhcnJlbnRseSB0cmFuc21pdCBwYWNrZXQgdG8gdGhlIHNvY2tldCB0aGF0IGluaXRpYXRlZCB0
aGUgY29ubmVjdGlvbgorICAgICAgICB0c29ja18uaW5pdF9zb2NrZXQoKTsKKworICAgICAgICBp
bnQgb24sIHJldDsKKyAgICAgICAgb24gPSAxOworICAgICAgICByZXQgPSBzZXRzb2Nrb3B0KHRz
b2NrXy5mZCgpLCBTT0xfSVAsIElQX1RSQU5TUEFSRU5ULCAmb24sIHNpemVvZihvbikpOworICAg
ICAgICBpZiAocmV0KSB7CisgICAgICAgICAgICBsb2dfZXJyKCJzZXRzb2Nrb3B0KElQX1RSQU5T
UEFSRU5UKSBlcnJvcjogJWQsICVzIiwgcmV0LCBzdHJlcnJvcihlcnJubykpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgbG9nX2RlYnVnKCJzZXQgSVBfVFJBTlNQQVJFTlQgb24gbGlz
dGVuZXIgcmVwbHkgc29ja2V0Iik7CisgICAgICAgIH0KKworICAgICAgICByZXQgPSB0c29ja18u
YmluZChyZW1vdGVfYWRkcl8sIHJlbW90ZV9wb3J0Xyk7CisgICAgICAgIGlmIChyZXQgIT0gMCkg
eworICAgICAgICAgICAgbG9nX2VycigiY2FuJ3QgYmluZCB0byAlczoldSwgZXJyb3I6ICVkICgl
cykiLCAKKwkJICAgIGludG9hKHJlbW90ZV9hZGRyXyksIHJlbW90ZV9wb3J0XywgcmV0LCBzdHJl
cnJvcihlcnJubykpOworICAgICAgICAgICAgZGVsZXRlIGJ1bmRsZTsKKyAgICAgICAgICAgIHJl
dHVybjsgLy8gZGllCisgICAgICAgIH0KKworICAgICAgICBpbnQgY2MgPSB0c29ja18uc2VuZHRv
KGJwLCBsZW4sIDAsIGhkci5jbGllbnRfYWRkcl8sIGhkci5jbGllbnRfcG9ydF8pOworICAgICAg
ICBpZiAoY2MgIT0gbGVuKSB7CisgICAgICAgICAgICBsb2dfZXJyKCJlcnJvciBzZW5kaW5nIHBh
Y2tldCB0byAlczolZDogJXMiLAorICAgICAgICAgICAgICAgICAgICBpbnRvYShoZHIuY2xpZW50
X2FkZHJfKSwgaGRyLmNsaWVudF9wb3J0Xywgc3RyZXJyb3IoZXJybm8pKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGxvZ19kZWJ1Zygic2VudCAlenUgYnl0ZSBwYWNrZXQgdG8gJXM6
JWQiLAorICAgICAgICAgICAgICAgICAgICAgIGJ1bmRsZS0+cGF5bG9hZF8ubGVuKCkgLSBzaXpl
b2YoaGRyKSwKKyAgICAgICAgICAgICAgICAgICAgICBpbnRvYShoZHIuY2xpZW50X2FkZHJfKSwg
aGRyLmNsaWVudF9wb3J0Xyk7CisgICAgICAgIH0KKworICAgICAgICB0c29ja18uY2xvc2UoKTsK
KyNlbmRpZgorICAgIH0KKyAgICBlbHNlIHsKKwkvLyB0cmFuc21pdCBwYWNrZXQgdG8gdGhlIHNv
Y2tldCB0aGF0IGluaXRpYXRlZCB0aGUgY29ubmVjdGlvbgorICAgICAgICBpbnQgY2MgPSBzb2Nr
Xy5zZW5kdG8oYnAsIGxlbiwKKwkgICAgICAgICAgICAgICAgICAgICAgIDAsIGhkci5jbGllbnRf
YWRkcl8sIGhkci5jbGllbnRfcG9ydF8pOworICAgICAgICBpZiAoY2MgIT0gbGVuKSB7CisJICAg
IGxvZ19lcnIoImVycm9yIHNlbmRpbmcgcGFja2V0IHRvICVzOiVkOiAlcyIsCisgICAgCQkgICAg
aW50b2EoaGRyLmNsaWVudF9hZGRyXyksIGhkci5jbGllbnRfcG9ydF8sIHN0cmVycm9yKGVycm5v
KSk7CisgICAgICAgIH0gZWxzZSB7CisJICAgIGxvZ19kZWJ1Zygic2VudCAlenUgYnl0ZSBwYWNr
ZXQgdG8gJXM6JWQiLAorICAgIAkgICAgICAgICAgICAgIGJ1bmRsZS0+cGF5bG9hZF8ubGVuKCkg
LSBzaXplb2YoaGRyKSwKKyAgICAgICAgICAgIAkgICAgICBpbnRvYShoZHIuY2xpZW50X2FkZHJf
KSwgaGRyLmNsaWVudF9wb3J0Xyk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBkZWxldGUgYnVu
ZGxlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBkdG50dW5uZWwKLQpkaWZmIC1OdXIgZHRudHVubmVs
LmR6L1VEUFR1bm5lbC5oIGR0bnR1bm5lbC9VRFBUdW5uZWwuaAotLS0gZHRudHVubmVsLmR6L1VE
UFR1bm5lbC5oCTIwMTMtMDItMjAgMDU6MDk6MjUuMDAwMDAwMDAwICswNDAwCisrKyBkdG50dW5u
ZWwvVURQVHVubmVsLmgJMjAxMy0wMi0yMCAxNjowODo1Mi4wMDAwMDAwMDAgKzA0MDAKQEAgLTY4
LDYgKzY4LDEwIEBACiAKICAgICAgICAgLy8vIFJlY2VpdmVyIHNvY2tldAogICAgICAgICBvYXN5
czo6VURQQ2xpZW50IHNvY2tfOworICAgICAgICAKKyAgICAgICAgLy8vIFRyYW5zcGFyZW50IHNv
Y2tldAorICAgICAgICAvLy8gZm9yIHNlbmRpbmcgcmVwbGllcyBmcm9tIHRoZSByZW1vdGUgc2lk
ZSB0byB0aGUgYXBwbGljYXRpb24gb24gdGhlIGxvY2FsIHNpZGUKKyAgICAgICAgb2FzeXM6OlVE
UENsaWVudCB0c29ja187CiAKICAgICAgICAgLy8vIFN0YXRpYyByZWNlaXZpbmcgYnVmZmVyCiAg
ICAgICAgIGNoYXIgcmVjdl9idWZfWzY1NTM2XTsKQEAgLTgxLDcgKzg1LDkgQEAKICAgICAgICAg
aW5fYWRkcl90IHJlbW90ZV9hZGRyXzsKICAgICAgICAgdV9pbnQxNl90IHJlbW90ZV9wb3J0XzsK
ICAgICAgICAgLy8vIEB9Ci0gICAgICAgIAorCisgICAgICAgIC8vLyBQcm94eSBhcHBsaWNhdGlv
biB0cmFmZmljIHRyYW5zcGFyZW50bHkgKExpbnV4IG9ubHkpCisJYm9vbCB0cmFuc3BhcmVudF87
CiAgICAgICAgCiAgICAgICAgIC8vLyBIZWxwZXIgc3RydWN0IHVzZWQgYXMgdGhlIGluZGV4IGtl
eSBpbnRvIHRoZSBsaXN0ZW5lcl9zZXFubyB0YWJsZQogICAgICAgICBzdHJ1Y3QgTENvbm5LZXkg
ewpAQCAtMTc2LDYgKzE4Miw5IEBACiAKICAgICAgICAgLy8vIGZsYWcgdG8gZGVsaXZlciBVRFAg
YnVuZGxlcyBpbiBvcmRlcgogICAgICAgICBib29sIHJlb3JkZXJfdWRwXzsKKworICAgICAgICAv
Ly8gUHJveHkgYXBwbGljYXRpb24gdHJhZmZpYyB0cmFuc3BhcmVudGx5IChMaW51eCBvbmx5KQor
CWJvb2wgdHJhbnNwYXJlbnRfOwogICAgIH07CiAKICAgICAvLy8gUmV0dXJuIHRoZSBuZXh0IGNv
bm5lY3Rpb24gaWQK
--047d7b6dc9c692d97404d72b321e--

From zollerd@gmail.com  Tue Mar  5 20:02:37 2013
Return-Path: <zollerd@gmail.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5B6EF11E8126 for <dtn-users@ietfa.amsl.com>; Tue,  5 Mar 2013 20:02:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level: 
X-Spam-Status: No, score=x tagged_above=-999 required=5 tests=[]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0JrEHIi6ddfm for <dtn-users@ietfa.amsl.com>; Tue,  5 Mar 2013 20:02:37 -0800 (PST)
Received: from mail-oa0-f49.google.com (mail-oa0-f49.google.com [209.85.219.49]) by ietfa.amsl.com (Postfix) with ESMTP id 817CF11E8123 for <dtn-users@irtf.org>; Tue,  5 Mar 2013 20:02:36 -0800 (PST)
Received: by mail-oa0-f49.google.com with SMTP id j6so11858481oag.22 for <dtn-users@irtf.org>; Tue, 05 Mar 2013 20:02:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=2DjbQOIgW/A8F2s2q5UcUX/trMo/FBTyHwzE9iZmx+0=; b=HpQKj7N5PUWvj60ZRLQkqwjXkOhVSqp7URwjG4bZq8JZKj5KhtjNLzQj/QtRmlXgrJ mLYttTrLeWE2zrEejgB+JCh2zYu+oAFloLEQ0yQlArz3GD31OtOxJ7v4ZFM41Ca+AORw x1I/AOnlFA95ilh3B+yUnixBRFUKYGh/T3Ahi8a2O+qhnqKs/F4oDtrEUX2f4p1w7m3N HhQewItgsJVNIgKGUsv2cTrr9YQuusI2K7XKfmuWCZPBYxgB+zsuYQZJUXFK1u/rGoT9 4pvtvfwRfDtrw2Tb7QUfJMPJmqIOm2zxoJEc12g7jQ9eOf/VJ+EplnrIKOUcrm/BwBUb GkQw==
MIME-Version: 1.0
X-Received: by 10.182.52.102 with SMTP id s6mr21453246obo.87.1362542551018; Tue, 05 Mar 2013 20:02:31 -0800 (PST)
Received: by 10.182.136.98 with HTTP; Tue, 5 Mar 2013 20:02:30 -0800 (PST)
In-Reply-To: <CAJR8z9_WHCvSa+WPOZ-SfsQzs8dX7BNisUnJwVo0BswmTdx6ig@mail.gmail.com>
References: <CAJR8z9_WHCvSa+WPOZ-SfsQzs8dX7BNisUnJwVo0BswmTdx6ig@mail.gmail.com>
Date: Tue, 5 Mar 2013 22:02:30 -0600
Message-ID: <CA+X1CofM+XYvOc6wxyg_C=XjEaXnStJYVynK1rioSmhu9xZsbg@mail.gmail.com>
From: David Zoller <zollerd@gmail.com>
To: "ssireskin@gmail.com" <ssireskin@gmail.com>
Content-Type: multipart/mixed; boundary=14dae9399607bedc8104d739a853
Cc: dtn-users@irtf.org
Subject: Re: [dtn-users] Several improvements of dtntunnel
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Mar 2013 04:02:37 -0000

--14dae9399607bedc8104d739a853
Content-Type: multipart/alternative; boundary=14dae9399607bedc7c04d739a851

--14dae9399607bedc7c04d739a851
Content-Type: text/plain; charset=ISO-8859-1

Hi Sergey,
Nice working with you and thanks for advancing my knowledge of sockets and
network manipulation. The transparent proxy is a pretty cool patch! I've
attached a PDF with some experimenting I did that includes the
configurations I used. This evening I was able to use the one tunnel to
connect to two systems on three different ports. I'll have to figure out
how to get more systems involved to give the destination EID table file a
workout :)
Best regards,
DZ



On Tue, Mar 5, 2013 at 4:47 AM, ssireskin@gmail.com <ssireskin@gmail.com>wrote:

> Hello dtn users,
>
> I would like to share a patch that turns dtntunnel into a transparent
> proxy which
> intercepts TCP and UDP traffic and transports it from one IP network to
> another
> through a DTN in a way that application client and server "think" that
> they are
> connected to a usual IP network. Hosts running dtntunnel on different DTN
> nodes
> act as network routers from the IP networks point of view.
>
> Here is a description of how this works.
>
>
> --------------------------------------------------------------------------------------------------------
> A host running dtntunnel in transparent mode ("-p" option) can act as an
> IP
> network router for TCP and UDP protocols, that are redirected to dtntunnel
> with
> the help of IPTables and TProxy.
>
> Transparent mode is implemented with the use of Tproxy mechanism, which is
> supported in Linux only. For the description of Tproxy see tproxy.txt in
> the
> Documentation/networking subdirectory of Linux kernel source tree.
>
> Here is how this looks at the network level. Hosts A and B are reachable
> via DTN
> while local networks of A and B may even be not connected via IP protocol:
> [IP Host A] <-> [DTN node with dtntunnel] <-> (DTN Network) <->
>             <-> [DTN node with dtntunnel] <-> [IP Host B]
>
> Here is how this looks at the application level. Application client and
> server
> communicate transparently as if there was an IP network between them. Both
> client and server see IP addresses and ports of each other, not of
> dtntunnel as
> it is without transparent mode enabled:
> [Application client] <-> [dtntunnel -T] <-> (DTN Network) <->
>                      <-> [dtntunnel -L] <-> [Application server]
>
> In order to let transparent mode work, insert the following IPTables and
> routing
> rules on the host where you run dtntunnel in tunnel mode ("-T" option):
> iptables -t mangle -N DTNTUNNEL
> iptables -t mangle -A DTNTUNNEL -j MARK --set-mark 1
> iptables -t mangle -A DTNTUNNEL -j ACCEPT
> iptables -t mangle -A PREROUTING -p $PROTO -m socket -j DTNTUNNEL
> iptables -t mangle -A PREROUTING -p $PROTO --dport $APPLICATION_PORT -j
> TPROXY \
>          --on-port $DTNTUNNEL_PORT --tproxy-mark 1/1
> ip rule add fwmark 1 lookup 100
> ip route add local 0.0.0.0/0 dev lo table 100
>
> If you run application client on the same host as dtntunnel in tunnel
> mode, you
> have to insert an additional IPTables rule:
> iptables -t mangle -A OUTPUT -o $EXTERNAL_IF -p $PROTO --dport
> $APPLICATION_PORT \
>          -j MARK --set-xmark 1
> NOTE: This will work only for application client running on the same host
> as
> dtntunnel in tunnel mode, not for a server running on the same host as
> dtntunnel
> in listen mode ("-L" option).
>
> In the above commands $PROTO is either tcp or udp;
> $APPLICATION_PORT is a port number used by an application protocol, ex. 22
> for SSH,
> 53 for DNS, 80 for HTTP, port range can be given in the form 22:23;
> $DTNTUNNEL_PORT is the dtntunnel lport as given in tunnel specification;
> $EXTERNAL_IF is a name of a network interface towards the remote network
> that is
> to be reached via DTN.
>
> NOTE: Don't forget to add network routes on the hosts that will use
> dtntunnel host
> as a router. In the most simple case setting the default gateway address
> to the
> address of the host running dtntunnel is enough.
>
> In transparent mode dtntunnel can use multiple destination EIDs in order
> to be able
> to transport data to multiple IP networks reachable through different DTN
> nodes.
> To enable this feature specify <destination eid table file name> instead
> of
> <destination_eid> in dtntunnel command line.
>
> Eid table file format: <IP network address> <DTN node EID>.
> Eid table file example:
> 192.168.4.0/24 dtn://dtn1.dtn/dtntunnel/app
> 192.168.5.0/24 dtn://dtn2.dtn/dtntunnel/app
>
> --------------------------------------------------------------------------------------------------------
>
> My patch dtntunnel_transparent.ss.patch should be applied on top of a
> patch
> dtntunnel.udp_bidirectional.dz.patch, written by David Zoller and
> published here with his
> kind permission. Both patches apply cleanly to the today's Sourceforge
> version of dtn2.
> To apply the patches, go to apps/dtntunnel subdirectory of dtn2 source
> tree and issue the
> commands:
> patch -p1 < dtntunnel.udp_bidirectional.dz.patch
> patch -p1 < dtntunnel_transparent.ss.patch
>
> David's patch brings the following improvements:
> 1) fix two memory leaks in TCPTunnel;
> 2) fix an issue with TCPTunnel when the connection closed by the server
> side of an
> application is not closed on the client side;
> 3) a complete rewrite of UDPTunnel code that enables bidirectional data
> transmission,
> packet reordering option and possibly something else which I could have
> missed.
>
> I hope these two patches will be accepted to the dtn2 mainstream.
>
> I would like to thank David for his support, it would be hardly possible
> for me to make
> transparent dtntunnel without his help and advices.
> I would also like to thank Elwyn Davies for his help with building NORM CL
> libraries and
> making NORM work with recent DTN2 code.
>
> Best regards,
> Sergey Sireskin
>
>
> _______________________________________________
> dtn-users mailing list
> dtn-users@irtf.org
> https://www.irtf.org/mailman/listinfo/dtn-users
>
>

--14dae9399607bedc7c04d739a851
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi Sergey,<div>Nice working with you and thanks for advancing my knowledge =
of sockets and network manipulation. The transparent proxy is a pretty cool=
 patch! I&#39;ve attached a PDF with some experimenting I did that includes=
 the configurations I used. This evening I was able to use the one tunnel t=
o connect to two systems on three different ports. I&#39;ll have to figure =
out how to get more systems involved to give the destination EID table file=
 a workout :)</div>
<div>Best regards,</div><div>DZ</div><div><br></div><div><br><br><div class=
=3D"gmail_quote">On Tue, Mar 5, 2013 at 4:47 AM, <a href=3D"mailto:ssireski=
n@gmail.com">ssireskin@gmail.com</a> <span dir=3D"ltr">&lt;<a href=3D"mailt=
o:ssireskin@gmail.com" target=3D"_blank">ssireskin@gmail.com</a>&gt;</span>=
 wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Hello dtn users,<br><br>I would like to shar=
e a patch that turns dtntunnel into a transparent proxy which <br>intercept=
s TCP and UDP traffic and transports it from one IP network to another<br>
through a DTN in a way that application client and server &quot;think&quot;=
 that they are <br>
connected to a usual IP network. Hosts running dtntunnel on different DTN n=
odes<br>act as network routers from the IP networks point of view.<br><br>H=
ere is a description of how this works.<br><br>----------------------------=
---------------------------------------------------------------------------=
-<br>

A host running dtntunnel in transparent mode (&quot;-p&quot; option) can ac=
t as an IP <br>network router for TCP and UDP protocols, that are redirecte=
d to dtntunnel with <br>the help of IPTables and TProxy.<br><br>Transparent=
 mode is implemented with the use of Tproxy mechanism, which is <br>

supported in Linux only. For the description of Tproxy see tproxy.txt in th=
e <br>Documentation/networking subdirectory of Linux kernel source tree.<br=
><br>Here is how this looks at the network level. Hosts A and B are reachab=
le via DTN<br>

while local networks of A and B may even be not connected via IP protocol:<=
br>[IP Host A] &lt;-&gt; [DTN node with dtntunnel] &lt;-&gt; (DTN Network) =
&lt;-&gt; <br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 &lt;-&gt; [DTN node with dt=
ntunnel] &lt;-&gt; [IP Host B]<br>

<br>Here is how this looks at the application level. Application client and=
 server<br>communicate transparently as if there was an IP network between =
them. Both <br>client and server see IP addresses and ports of each other, =
not of dtntunnel as <br>

it is without transparent mode enabled:<br>[Application client] &lt;-&gt; [=
dtntunnel -T] &lt;-&gt; (DTN Network) &lt;-&gt;<br>=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 &lt;-&gt; [dtntunnel -L] &lt;-&gt; [Ap=
plication server]<br><br>In order to let transparent mode work, insert the =
following IPTables and routing <br>

rules on the host where you run dtntunnel in tunnel mode (&quot;-T&quot; op=
tion):<br>iptables -t mangle -N DTNTUNNEL<br>iptables -t mangle -A DTNTUNNE=
L -j MARK --set-mark 1<br>iptables -t mangle -A DTNTUNNEL -j ACCEPT<br>

iptables -t mangle -A PREROUTING -p $PROTO -m socket -j DTNTUNNEL<br>iptabl=
es -t mangle -A PREROUTING -p $PROTO --dport $APPLICATION_PORT -j TPROXY \<=
br>=A0=A0=A0=A0=A0=A0=A0=A0 --on-port $DTNTUNNEL_PORT --tproxy-mark 1/1<br>=
ip rule add fwmark 1 lookup 100<br>

ip route add local <a href=3D"http://0.0.0.0/0" target=3D"_blank">0.0.0.0/0=
</a> dev lo table 100<br><br>If you run application client on the same host=
 as dtntunnel in tunnel mode, you <br>have to insert an additional IPTables=
 rule:<br>
iptables -t mangle -A OUTPUT -o $EXTERNAL_IF -p $PROTO --dport $APPLICATION=
_PORT \<br>
=A0=A0=A0=A0=A0=A0=A0=A0 -j MARK --set-xmark 1<br>NOTE: This will work only=
 for application client running on the same host as <br>dtntunnel in tunnel=
 mode, not for a server running on the same host as dtntunnel <br>in listen=
 mode (&quot;-L&quot; option).<br>

<br>In the above commands $PROTO is either tcp or udp;<br>$APPLICATION_PORT=
 is a port number used by an application protocol, ex. 22 for SSH, <br>53 f=
or DNS, 80 for HTTP, port range can be given in the form 22:23;<br>$DTNTUNN=
EL_PORT is the dtntunnel lport as given in tunnel specification;<br>

$EXTERNAL_IF is a name of a network interface towards the remote network th=
at is <br>to be reached via DTN.<br><br>NOTE: Don&#39;t forget to add netwo=
rk routes on the hosts that will use dtntunnel host <br>as a router. In the=
 most simple case setting the default gateway address to the <br>

address of the host running dtntunnel is enough.<br><br>In transparent mode=
 dtntunnel can use multiple destination EIDs in order to be able<br>to tran=
sport data to multiple IP networks reachable through different DTN nodes.<b=
r>

To enable this feature specify &lt;destination eid table file name&gt; inst=
ead of <br>&lt;destination_eid&gt; in dtntunnel command line.<br><br>Eid ta=
ble file format: &lt;IP network address&gt; &lt;DTN node EID&gt;.<br>Eid ta=
ble file example:<br>

<a href=3D"http://192.168.4.0/24" target=3D"_blank">192.168.4.0/24</a> dtn:=
//dtn1.dtn/dtntunnel/app<br><a href=3D"http://192.168.5.0/24" target=3D"_bl=
ank">192.168.5.0/24</a> dtn://dtn2.dtn/dtntunnel/app<br clear=3D"all">-----=
---------------------------------------------------------------------------=
------------------------<br>

<br>My patch dtntunnel_transparent.ss.patch should be applied on top of a p=
atch <br>dtntunnel.udp_bidirectional.dz.patch, written by David Zoller and =
published here with his<br>kind permission. Both patches apply cleanly to t=
he today&#39;s Sourceforge version of dtn2.<br>

To apply the patches, go to apps/dtntunnel subdirectory of dtn2 source tree=
 and issue the <br>commands:<br>patch -p1 &lt; dtntunnel.udp_bidirectional.=
dz.patch<br>patch -p1 &lt; dtntunnel_transparent.ss.patch<br><br>David&#39;=
s patch brings the following improvements:<br>

1) fix two memory leaks in TCPTunnel;<br>2) fix an issue with TCPTunnel whe=
n the connection closed by the server side of an <br>application is not clo=
sed on the client side;<br>3) a complete rewrite of UDPTunnel code that ena=
bles bidirectional data transmission,<br>

packet reordering option and possibly something else which I could have mis=
sed. <br><br>I hope these two patches will be accepted to the dtn2 mainstre=
am.<br><br>I would like to thank David for his support, it would be hardly =
possible for me to make <br>

transparent dtntunnel without his help and advices.<br>I would also like to=
 thank Elwyn Davies for his help with building NORM CL libraries and <br>ma=
king NORM work with recent DTN2 code.<br><br>Best regards,<br>Sergey Siresk=
in<br>

<br>
<br>_______________________________________________<br>
dtn-users mailing list<br>
<a href=3D"mailto:dtn-users@irtf.org">dtn-users@irtf.org</a><br>
<a href=3D"https://www.irtf.org/mailman/listinfo/dtn-users" target=3D"_blan=
k">https://www.irtf.org/mailman/listinfo/dtn-users</a><br>
<br></blockquote></div><br></div>

--14dae9399607bedc7c04d739a851--
--14dae9399607bedc8104d739a853
Content-Type: application/pdf; name="Transparent DTN Tunnel Experiment.pdf"
Content-Disposition: attachment; 
	filename="Transparent DTN Tunnel Experiment.pdf"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hdxyl8y83

JVBERi0xLjUNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFu
Zyhlbi1VUykgL1N0cnVjdFRyZWVSb290IDM3IDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4+
Pg0KZW5kb2JqDQoyIDAgb2JqDQo8PC9UeXBlL1BhZ2VzL0NvdW50IDkvS2lkc1sgMyAwIFIgOCAw
IFIgMTcgMCBSIDE5IDAgUiAyMSAwIFIgMjggMCBSIDMwIDAgUiAzMiAwIFIgMzQgMCBSXSA+Pg0K
ZW5kb2JqDQozIDAgb2JqDQo8PC9UeXBlL1BhZ2UvUGFyZW50IDIgMCBSL1Jlc291cmNlczw8L0Zv
bnQ8PC9GMSA1IDAgUj4+L0V4dEdTdGF0ZTw8L0dTNyA3IDAgUj4+L1Byb2NTZXRbL1BERi9UZXh0
L0ltYWdlQi9JbWFnZUMvSW1hZ2VJXSA+Pi9NZWRpYUJveFsgMCAwIDcyMCA1NDBdIC9Db250ZW50
cyA0IDAgUi9Hcm91cDw8L1R5cGUvR3JvdXAvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCPj4v
VGFicy9TL1N0cnVjdFBhcmVudHMgMD4+DQplbmRvYmoNCjQgMCBvYmoNCjw8L0ZpbHRlci9GbGF0
ZURlY29kZS9MZW5ndGggMjg5Pj4NCnN0cmVhbQ0KeJx1kEFrwkAQhe8L+x/ecVdwM7PZ7CYgHjRW
WrBYGuih9JBDFKGmNlroz28CsRjFy8DAe+97M4jWmEyi1fwxB02nmOVzfEtBIENEbC0FBEtIHKGp
pHgboZaCsf3XEHkmNxBtRlK8SIHFag5cALgHzAopogeGc6Z1FpsusE0Dg11iKEZsE5MFFPuO0qKi
5WvA9thtSyneVaG9VY3mTJX18aDHsSrbLVZVrYM6QScq10yqeIb+QPEkxaIldtQzxyXO+PSS04f+
1HWlx1Z93jEmwZnMDY3XkPNpfnibZTZxBhtiw663Ln4PVbPbt70zddLMquzGafdV3+NT2hUfhFzy
b35ur37OdlDKBzLew5LJbNrn8R22D96EdKi9Yf8BAMt3ow0KZW5kc3RyZWFtDQplbmRvYmoNCjUg
MCBvYmoNCjw8L1R5cGUvRm9udC9TdWJ0eXBlL1RydWVUeXBlL05hbWUvRjEvQmFzZUZvbnQvQUJD
REVFK0NhbGlicmkvRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nL0ZvbnREZXNjcmlwdG9yIDYgMCBS
L0ZpcnN0Q2hhciAzMi9MYXN0Q2hhciAxMjEvV2lkdGhzIDc5NSAwIFI+Pg0KZW5kb2JqDQo2IDAg
b2JqDQo8PC9UeXBlL0ZvbnREZXNjcmlwdG9yL0ZvbnROYW1lL0FCQ0RFRStDYWxpYnJpL0ZsYWdz
IDMyL0l0YWxpY0FuZ2xlIDAvQXNjZW50IDc1MC9EZXNjZW50IC0yNTAvQ2FwSGVpZ2h0IDc1MC9B
dmdXaWR0aCA1MjEvTWF4V2lkdGggMTc0My9Gb250V2VpZ2h0IDQwMC9YSGVpZ2h0IDI1MC9TdGVt
ViA1Mi9Gb250QkJveFsgLTUwMyAtMjUwIDEyNDAgNzUwXSAvRm9udEZpbGUyIDc5MyAwIFI+Pg0K
ZW5kb2JqDQo3IDAgb2JqDQo8PC9UeXBlL0V4dEdTdGF0ZS9CTS9Ob3JtYWwvQ0EgMT4+DQplbmRv
YmoNCjggMCBvYmoNCjw8L1R5cGUvUGFnZS9QYXJlbnQgMiAwIFIvUmVzb3VyY2VzPDwvRXh0R1N0
YXRlPDwvR1M3IDcgMCBSPj4vRm9udDw8L0YyIDEwIDAgUi9GMSA1IDAgUi9GMyAxMiAwIFI+Pi9Q
cm9jU2V0Wy9QREYvVGV4dC9JbWFnZUIvSW1hZ2VDL0ltYWdlSV0gPj4vTWVkaWFCb3hbIDAgMCA3
MjAgNTQwXSAvQ29udGVudHMgOSAwIFIvR3JvdXA8PC9UeXBlL0dyb3VwL1MvVHJhbnNwYXJlbmN5
L0NTL0RldmljZVJHQj4+L1RhYnMvUy9TdHJ1Y3RQYXJlbnRzIDE+Pg0KZW5kb2JqDQo5IDAgb2Jq
DQo8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDg2NjU+Pg0Kc3RyZWFtDQp4nN09XY8ct5Hv
AvQfGsjLTIAdNb9JQxHgSHaQQ+zzxcrlQfbDerSS9jJaOauVFf/7qw+ym2STMz3rffIdIi85rCJZ
LNYXi+zhyXfD06dPvnn+1xfD+OzZ8OcXz4d/P340DuNuHEch5egGJ8fB6HG4vXr86J9/HG4ePxLD
26nNOFox6qLRmz8+fvQ/jx8NX33zfBiyDkTsYNwpAf+Y0cK/TovhFtAJsxN+0DbsrByMEDsdBr2T
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
8OaKYlX0Vhh08IESDP61CC21v1Bu9IhvNxQzPkHG+jm7RUoMvkmLD5LRG6uMsk5s6uhjfl13nOH+
+/b67fUNBYTYHmkIX+Cmn6f3om7vUKbQbyTsUE78lGKwtx+n1ADgXFwB3uZIWxPPZfjeWiZSF2cs
d1Nnw9UNW+v15JqXyQJ9Qm+a3IPdJRNSn1oRD4ssaUXEWAc1lulKzcXx+AVAGn9C8Wrz/RUlsyfF
Mx1gHQ4fPsMqMSnf0roh5Q/Xr2lHD28+3PZD3PzYcN7NupOq+Jp0Dtg9qcK3A1XZtng28BNxx/z8
x4VdXCRqLrK0/BTfjPgBV7n+uG3lfuOtV8rWBQbzizXu3rLBXDSfQzXG8f/dYxprDQplbmRzdHJl
YW0NCmVuZG9iag0KMTAgMCBvYmoNCjw8L1R5cGUvRm9udC9TdWJ0eXBlL1RydWVUeXBlL05hbWUv
RjIvQmFzZUZvbnQvQUJDREVFK0NhbGlicmksQm9sZC9FbmNvZGluZy9XaW5BbnNpRW5jb2Rpbmcv
Rm9udERlc2NyaXB0b3IgMTEgMCBSL0ZpcnN0Q2hhciAzMi9MYXN0Q2hhciAxMjEvV2lkdGhzIDc5
OSAwIFI+Pg0KZW5kb2JqDQoxMSAwIG9iag0KPDwvVHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFt
ZS9BQkNERUUrQ2FsaWJyaSxCb2xkL0ZsYWdzIDMyL0l0YWxpY0FuZ2xlIDAvQXNjZW50IDc1MC9E
ZXNjZW50IC0yNTAvQ2FwSGVpZ2h0IDc1MC9BdmdXaWR0aCA1MzYvTWF4V2lkdGggMTc1OS9Gb250
V2VpZ2h0IDcwMC9YSGVpZ2h0IDI1MC9TdGVtViA1My9Gb250QkJveFsgLTUxOSAtMjUwIDEyNDAg
NzUwXSAvRm9udEZpbGUyIDc5NyAwIFI+Pg0KZW5kb2JqDQoxMiAwIG9iag0KPDwvVHlwZS9Gb250
L1N1YnR5cGUvVHlwZTAvQmFzZUZvbnQvQUJDREVFK0NhbGlicmkvRW5jb2RpbmcvSWRlbnRpdHkt
SC9EZXNjZW5kYW50Rm9udHMgMTMgMCBSL1RvVW5pY29kZSA3OTIgMCBSPj4NCmVuZG9iag0KMTMg
MCBvYmoNClsgMTQgMCBSXSANCmVuZG9iag0KMTQgMCBvYmoNCjw8L0Jhc2VGb250L0FCQ0RFRStD
YWxpYnJpL1N1YnR5cGUvQ0lERm9udFR5cGUyL1R5cGUvRm9udC9DSURUb0dJRE1hcC9JZGVudGl0
eS9EVyAxMDAwL0NJRFN5c3RlbUluZm8gMTUgMCBSL0ZvbnREZXNjcmlwdG9yIDE2IDAgUi9XIDc5
NCAwIFI+Pg0KZW5kb2JqDQoxNSAwIG9iag0KPDwvT3JkZXJpbmcoSWRlbnRpdHkpIC9SZWdpc3Ry
eShBZG9iZSkgL1N1cHBsZW1lbnQgMD4+DQplbmRvYmoNCjE2IDAgb2JqDQo8PC9UeXBlL0ZvbnRE
ZXNjcmlwdG9yL0ZvbnROYW1lL0FCQ0RFRStDYWxpYnJpL0ZsYWdzIDMyL0l0YWxpY0FuZ2xlIDAv
QXNjZW50IDc1MC9EZXNjZW50IC0yNTAvQ2FwSGVpZ2h0IDc1MC9BdmdXaWR0aCA1MjEvTWF4V2lk
dGggMTc0My9Gb250V2VpZ2h0IDQwMC9YSGVpZ2h0IDI1MC9TdGVtViA1Mi9Gb250QkJveFsgLTUw
MyAtMjUwIDEyNDAgNzUwXSAvRm9udEZpbGUyIDc5MyAwIFI+Pg0KZW5kb2JqDQoxNyAwIG9iag0K
PDwvVHlwZS9QYWdlL1BhcmVudCAyIDAgUi9SZXNvdXJjZXM8PC9Gb250PDwvRjEgNSAwIFIvRjIg
MTAgMCBSPj4vRXh0R1N0YXRlPDwvR1M3IDcgMCBSPj4vUHJvY1NldFsvUERGL1RleHQvSW1hZ2VC
L0ltYWdlQy9JbWFnZUldID4+L01lZGlhQm94WyAwIDAgNzIwIDU0MF0gL0NvbnRlbnRzIDE4IDAg
Ui9Hcm91cDw8L1R5cGUvR3JvdXAvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCPj4vVGFicy9T
L1N0cnVjdFBhcmVudHMgMj4+DQplbmRvYmoNCjE4IDAgb2JqDQo8PC9GaWx0ZXIvRmxhdGVEZWNv
ZGUvTGVuZ3RoIDMzNzM+Pg0Kc3RyZWFtDQp4nK1bbW8bNxL+bsD/YQ/5sirgNd+5eygKuLEvaK9J
fK6C6yE5BK4tu7roxSfJ1+Tf3wy5kkiuyaXWTuBNZA1nOC+ceTjkFqeXxfffn759/dN5QX74ofjx
/HXx3+MjUpCKEEIZI7rQjBRSkGI1OT7653fF4viIFvc7GkIUJcIjuvvu+Ogfx0fFxdvXReEIoK2A
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
JF5TwNfT9gsidoyqEF+4pIPXjcukZ924pAeumywpdt24pHbdXF6ZK2IH3WGSHKM2Ryw2MgPS/HMW
3SAWyBJTs5B0PsqTwmG36M0ws3bTwAbxZZTRLFUUi1SOpviGZUBqW6UZCwkqC/d9kV5IiRMKfEMz
cyG5pENfcq2rWnmM4psDmJ5P2i7ez7+8fxOLHiLCiaYNk3yZPJeJ/2I0HuV6R8qQpiUHTQjDi1uW
IfhYlqsRw/dB12jGB3wAlqEKjGdanLCiIeQot1/BNxIMTuvy6zez0cSXdYDk+nfIYCeqfVOHwkYV
ome5wF7p9P7RjkQpiK+mS4PSIHrvDLdVtCnCJN4/8WZ8a3b7OHrzaLbIC4OjeLTdKwFxkkDtmEBJ
eEfg3Qq1XS42xSTZ4ZXaXLyNyun6qw79JSBN+LcAsGXCzA12LVuen0psvM7MjZnln4BQ1ibrgik1
mLK9m4Hmxls3i/bqBhrtftReN7qZTc3iWOAVDdtKwReCjX8fZvic3iCiRV+ZT8v2ygdrwA725oe5
sTOfGH7rEWCLb8jDXPpAyDq3LNepPCmUwntSnnK3G9vCbyXj/GGiUdcygfcufPPEYLBk5oUQjzjt
nya4pEGZ5xylCZ4R4g0fVrcMeUS4ArCBN6lc2o7w/wPVNV9wDQplbmRzdHJlYW0NCmVuZG9iag0K
MTkgMCBvYmoNCjw8L1R5cGUvUGFnZS9QYXJlbnQgMiAwIFIvUmVzb3VyY2VzPDwvRm9udDw8L0Yx
IDUgMCBSL0YyIDEwIDAgUj4+L0V4dEdTdGF0ZTw8L0dTNyA3IDAgUj4+L1Byb2NTZXRbL1BERi9U
ZXh0L0ltYWdlQi9JbWFnZUMvSW1hZ2VJXSA+Pi9NZWRpYUJveFsgMCAwIDcyMCA1NDBdIC9Db250
ZW50cyAyMCAwIFIvR3JvdXA8PC9UeXBlL0dyb3VwL1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJH
Qj4+L1RhYnMvUy9TdHJ1Y3RQYXJlbnRzIDM+Pg0KZW5kb2JqDQoyMCAwIG9iag0KPDwvRmlsdGVy
L0ZsYXRlRGVjb2RlL0xlbmd0aCAyMzgwPj4NCnN0cmVhbQ0KeJy1Wm1vI7cR/m7A/4FAv+wG8Jrv
uwsEAS62e0jbu7iOgqa4KwJbknWubcmVpSb5950hVxbJvVlRsovDrS153vjMcPiQXHZ6yb799vTD
2Q/njH/3Hfv+/Iz95/iIM15xzoWUvGa15MxozpbT46N/fMPmx0eCzV5kOLeC60jo9pvjo78fH7GL
D2eMBQ5E5+D70fHR6Z8Fa6vWstEt2gNjDL5QFZeaaS7gJxs9ohPwdPr+p5rNnvHT++OjT8WfSl2w
8cMUflzPy5O6YGt8PpUn8P2iPDHFw6Q8UQUr2+LuCX9bXePfbvABaqZ4Lv/FRn85PrqASDCaTQCi
UVXThgF8Aitb2d6QZH9Ijf7amFTTVG3bmbx7WmFU1zcu1mlZQ0A2chQFJetKmtjCCSWreE92xdDZ
I3hAtEwxewDgEAXSoW0qUYdG2Ank2hjBRmPwTTqvdarHncYtOHtYP4PbL5QqwNQkcQ8CrzJrSdU2
xP3rxTAARYd9aGUX9ltZnCFSaYfBinShDNZcpOY05hjh9YpS022lVBwZ6cKISscuMKG6bnYk1NSp
3iahgN0awUTwyKTWtasHKsReUnWQ1DSPVr9FHkMru/IYyuIc0sUSPMriN2w/JGKqMirUzUW6TfX2
Q7qtpIhDHkTaDCBtZKYRO2BE87dIV2hlV7pCWZ+ux5cFYgYeBxps1++yvNWiJ/sLeBOqOB+Bj4/o
eARD+7lU/oN7XGDj/RthU0qYyonNQeDrAeBlbgdtBoyIYMa61fZh4ZrRxK22sKzeT5dzTCquwQ/s
cTHB8a273FLINVWtYtuDAbYDAfKg0DHNC5yYE/TvWMBygcG5WiPDgbZb17ElukU3sPzFsq474+z8
Ff6PF/DR+u9W2CVMMb7/9a7swvkvFIamki9UZQ0dR59F8VzOIVuYyXWWzVxqJhu+Nekq46cpTjah
ffY9ByNndYNLVmQDp8rl0lXX73+QzdFUbaJHN+AGO2Eke7spkCWWLno8u8SYZdcdJj7o1s3Z80ty
lurBKPqgSrqAJbScFysH98fIyo7+GMke1B/zvPn+GMm6DsjORx9HgO8+fREiN4mtYcTVAOLGvgXi
oZVdiIeyhyGe5a1DPJR9B2hvcKYWI8q3VDJ7pBKaaCr7bzfSD++u/loqcoDS1thRA8U8niRrlep5
noS5w8WIosuyMZVoM0cFu5BU1mVuiU3kHltHXQhCGdc3lSgPF+0A65Vav0XRhlZ2FW0oe1jRZnnr
ijaUfYuizfG9KdpQ1hftuzMY6tkFZvlyRFYgRK5i7eH8DnBtDPsN8hta2ZXfUPaw/GZ56/Ibyr5j
l4js1QU6vfrx59Kn+YePmNn3A5uqTcJyHEugaqmsJyUrfI6f/MEQ1ZW4W+KzHFnVk0Uk2fNifD8l
d/uKy6oWeS4UNz1ZKNT68J2GwgEmFoeLd2CPJ+ULE8KzQNvCQwnNlrPki6v3rytvyfPLO5Q9rLyz
vHXlHcq+urxzHG/KO5Tdu7yzHHXlvZV1C7Ty6/Mj6QKPAGM1vz777PsDFLdNmlEbM9wJNQm29Gyq
K2F6Ue6kEQo2XYmeD9NtBbAmKR6hpKlsJoa4F09lYwSw9nHvJGCnJizUCDDdihPmNLQOnlmgmnu6
E8oKcMUL8OR++k9Q8/7bSrqfxj8pvLW1FWC7N966lqnelrYtx5RWo6tMqHVTp6I7kRatHzuFt7Gw
7cxzb2yLFwYx3G150hbgzQPtnk33yXkWhTQoQqJtoTFYHVv9/JkUbivd0NOm39oHTpEkJ7ZcccM0
jovznG2hbXqynnO5A4CrH3/558BCIHmdaGfuFoRK9XzZrZ7wuMafEpHHDlK5E/as8Ukte7LRlsEW
/HdxCv/pVgYrZr3/GBW3qR72aeHvahZzsgPC2qq+Ag3dzHii0K08/mRlhUMUbdvCoFuSfbgzLrK4
+iXa5B51iRa2W3p7ZdjdFB500RbY2sk3ItlDL9ryHHrKEckC5bi6QKphCmSESDUkUA16hB3VyHLY
UY1I1tOLNQ7O3bDuoBuqakSmM1hYUlkEkuGlIRJq3NrTU8dUps1zpKD4UlloRA1y6qZwACKUCKn7
4B6O0tGcWlV1YnG4qtvMw1YB699LUf8fCXbgZ3fBh7IHEew8b121h7KvJdhZjjdVH8p6gr1+OSoe
POTeVH2Ws67qt7KZJBuWQxWp7U+y66pOhklOL8FTd5kk2349zAySDZM0E0OlRE/2VSQb7GTWioZe
wpMifROS3VbW7o+3rk2ql0WyYQvVZA645T3ZN6DZDe4NsgIw0BZS2Q5x93wd24aik7Ftmm0j37P0
/Om/KMRpti1gd7RzFnZsO5LdwbYj2b3ZdqC9F9sO9fZn21nj69h2JHsQ2957jB3bjsaYz7b70Oxg
29EID2PbZHH1S1QMlCgeHaX82kEmeLNZe4hiBKhNE1roxk5WOh6RRi4/dcXjrphXU3aLxHq9WUW+
bM+/kOjXnvfgfS64pnw0nvmEPobBGbjMFbqJqigbkkAvD5KtAkCy7jY1MNbrjpHrzV02xeEafMso
MoOX4/hGUzB/yK7iXlOJtElP0KitiWWFf03mYeFu+++DdzZLKQZyhRfvUtB++7kauAYWyh6Wq0Av
L1fKUuV7jR/CbLUAyth9+8BKXCor9++U0y3a4DFr5GPi33bBt02o/tziGy+REulASse/Q9mHBd49
pPsLNpA4KJhW0Q77iRu4ChUye6k10f4Kl/R4d6VhElhmIE9WdQZhXQSOVEp8JeQZJ8ETPmA+CAuY
QmLmmBdou0L5P8FfDDRj0cCKBt9Kd9QAItc3gAqsdv6cQbTFGDBazHGW3c3WXhO9IJJ3C/h2jhuX
W2dtSTJCaZD2RBFP0NYKtVdrd9owd4cNUEIUd4JC5smwKYeGq57DG4fIGFZXs4HEvXNFMzWoUNJb
P2s2zZqG9ThKHL4/1DbuWBj2Lh1DKxDDxcpPJMjDCsPzmwv4ZeLSINvitzt3EvQFZEQxAQHYKWP8
d24ULh3u4wIU5qDRFDfTOzQ6nzFMjvvrlynDjD+XwHD/QGeYZeeH3Kup1qUuinniop1vfK7nLnVU
3rRR2E8iC2ShGFuZWPTu2UOjofCwB83de3t+2LOya76L+eeSSiTMXm1o9/1E1snxhpBRFm3NcZuC
59Sy6QxSL8fZ2t83hLI95/8DDVam4Q0KZW5kc3RyZWFtDQplbmRvYmoNCjIxIDAgb2JqDQo8PC9U
eXBlL1BhZ2UvUGFyZW50IDIgMCBSL1Jlc291cmNlczw8L0ZvbnQ8PC9GMiAxMCAwIFIvRjEgNSAw
IFIvRjMgMTIgMCBSL0Y0IDIzIDAgUj4+L0V4dEdTdGF0ZTw8L0dTNyA3IDAgUj4+L1Byb2NTZXRb
L1BERi9UZXh0L0ltYWdlQi9JbWFnZUMvSW1hZ2VJXSA+Pi9NZWRpYUJveFsgMCAwIDcyMCA1NDBd
IC9Db250ZW50cyAyMiAwIFIvR3JvdXA8PC9UeXBlL0dyb3VwL1MvVHJhbnNwYXJlbmN5L0NTL0Rl
dmljZVJHQj4+L1RhYnMvUy9TdHJ1Y3RQYXJlbnRzIDQ+Pg0KZW5kb2JqDQoyMiAwIG9iag0KPDwv
RmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA4NzUwPj4NCnN0cmVhbQ0KeJzdPV2PHLeR7wL8HxrI
y0wAjZrfpOEIcCQ7yCH2+WLl8iD7YT1aWXtZrZTdlZz8+6sPsptkkz09ax0SXIIoSw6rSBaL9cUi
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
+P5hnac1kVbTo0H5FNbJIhdX9BZfasfgMH42INA79Vl49vUHumh4PVDw9J6fQAXCvKOksr8NeyXo
Fui7G7ozenm8R7a/+nh1j7//s5Fm8ORr3fpUvOE39bMBgPZ2eqG1W6NX/JHdYvTd1CgQA/jsf972
+t27v13R3bCfB7wY+3ovXJwhlOXueIsnhHe0lLSgH/egvS5vea1lYLoAC8ndBd63fX11xIpFmJnO
QhejN9LQs1290TcWtL7DuMgRxU934Je18FMNCefGRHaLb5ngYw0T4H/eXv18dUOWLfsSDV0BzPx+
MoVv71EC0m8km1Gs/ZROZG7vpoQ52GjIMyyV8IUCE89o+bWCTAMszlvvZ7v78obd7CWnLJ8QMPQF
iGx2n+wJAYA4tSj4qS/8Wtm8KLkC2XSDzOOnk2W5PN9f0tXGpCjfTy9BUCjhHR2KEc3vrtH7eJVI
S3Wv3932j73oCwRFX9vOrvnjIQVg9+x6dPi2ftG2eDL6A/HI/PQbTWbDUkuLH5H7v1npFI2S+Qs1
j8CkCfRyvYzfqkgVOn07pvUqgZApGvOInqWX9B0qQU8apIrpZfU2ghPpFvj+irUD3k+VfsF29anS
DEVBhwyqQZb/Bf1B4vUNCmVuZHN0cmVhbQ0KZW5kb2JqDQoyMyAwIG9iag0KPDwvVHlwZS9Gb250
L1N1YnR5cGUvVHlwZTAvQmFzZUZvbnQvQUJDREVFK0NhbGlicmksQm9sZC9FbmNvZGluZy9JZGVu
dGl0eS1IL0Rlc2NlbmRhbnRGb250cyAyNCAwIFIvVG9Vbmljb2RlIDc5NiAwIFI+Pg0KZW5kb2Jq
DQoyNCAwIG9iag0KWyAyNSAwIFJdIA0KZW5kb2JqDQoyNSAwIG9iag0KPDwvQmFzZUZvbnQvQUJD
REVFK0NhbGlicmksQm9sZC9TdWJ0eXBlL0NJREZvbnRUeXBlMi9UeXBlL0ZvbnQvQ0lEVG9HSURN
YXAvSWRlbnRpdHkvRFcgMTAwMC9DSURTeXN0ZW1JbmZvIDI2IDAgUi9Gb250RGVzY3JpcHRvciAy
NyAwIFIvVyA3OTggMCBSPj4NCmVuZG9iag0KMjYgMCBvYmoNCjw8L09yZGVyaW5nKElkZW50aXR5
KSAvUmVnaXN0cnkoQWRvYmUpIC9TdXBwbGVtZW50IDA+Pg0KZW5kb2JqDQoyNyAwIG9iag0KPDwv
VHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9BQkNERUUrQ2FsaWJyaSxCb2xkL0ZsYWdzIDMy
L0l0YWxpY0FuZ2xlIDAvQXNjZW50IDc1MC9EZXNjZW50IC0yNTAvQ2FwSGVpZ2h0IDc1MC9BdmdX
aWR0aCA1MzYvTWF4V2lkdGggMTc1OS9Gb250V2VpZ2h0IDcwMC9YSGVpZ2h0IDI1MC9TdGVtViA1
My9Gb250QkJveFsgLTUxOSAtMjUwIDEyNDAgNzUwXSAvRm9udEZpbGUyIDc5NyAwIFI+Pg0KZW5k
b2JqDQoyOCAwIG9iag0KPDwvVHlwZS9QYWdlL1BhcmVudCAyIDAgUi9SZXNvdXJjZXM8PC9Gb250
PDwvRjEgNSAwIFI+Pi9FeHRHU3RhdGU8PC9HUzcgNyAwIFI+Pi9Qcm9jU2V0Wy9QREYvVGV4dC9J
bWFnZUIvSW1hZ2VDL0ltYWdlSV0gPj4vTWVkaWFCb3hbIDAgMCA3MjAgNTQwXSAvQ29udGVudHMg
MjkgMCBSL0dyb3VwPDwvVHlwZS9Hcm91cC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0I+Pi9U
YWJzL1MvU3RydWN0UGFyZW50cyA1Pj4NCmVuZG9iag0KMjkgMCBvYmoNCjw8L0ZpbHRlci9GbGF0
ZURlY29kZS9MZW5ndGggMzY2Pj4NCnN0cmVhbQ0KeJx9kl9rwjAUxd8L/Q73MRFMb/40SUEcWJ1s
IGyssAfZg8wqA22dVfb1l1odRsleWm449/zOvQkkLzAYJLP8aQw4HMJonMN3HCEgQ0QuBBowAiFV
CPsyjt57UMURh/WfBlFzVJ5o1Yuj1ziCySwHuALwM2BUxFHyyIFbKFatm7MCV2YpExlItEwLKLYt
wnGS6ZuBddNW0ziak3xR0b4gQPua/FBLSjjSviRN2X6hrro//YDiOY4mDtXiLgzJFbPymjEny0NF
U3I4ViffchNqtYbxzG8NYjLO5I12Rbkl9T7Uorhm0votn5Qjqat2JOUKSQ5fLmldNd2Ife5O3Abq
kGcqLDPhxHcXJK4u6OIhFGcqA+Gmx4vJ9rhxSTTZbcouxfK09IZy3kWsFlT5YbtLWzq5DW5NyZRl
ykft6v2hCemNYkL4+oeQ1op2CZ72313I28cqvMeqDTKtQSDLhD376QBbG82M9bV37F+4Q7iqDQpl
bmRzdHJlYW0NCmVuZG9iag0KMzAgMCBvYmoNCjw8L1R5cGUvUGFnZS9QYXJlbnQgMiAwIFIvUmVz
b3VyY2VzPDwvRm9udDw8L0YxIDUgMCBSL0YyIDEwIDAgUi9GMyAxMiAwIFI+Pi9FeHRHU3RhdGU8
PC9HUzcgNyAwIFI+Pi9Qcm9jU2V0Wy9QREYvVGV4dC9JbWFnZUIvSW1hZ2VDL0ltYWdlSV0gPj4v
TWVkaWFCb3hbIDAgMCA3MjAgNTQwXSAvQ29udGVudHMgMzEgMCBSL0dyb3VwPDwvVHlwZS9Hcm91
cC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0I+Pi9UYWJzL1MvU3RydWN0UGFyZW50cyA2Pj4N
CmVuZG9iag0KMzEgMCBvYmoNCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTAzODI+Pg0K
c3RyZWFtDQp4nN1933Mdt5Huu6r8P5yqvBymSkeD3wNXoqqsZefmVpzru9bdPCh5oI8oibsUpSUp
K/nvb3/dwAyAGZwzlP2yiSsUAaI/AA1Mo7vRAHbPftj97nfPvv/mTy92w/Pnu3978c3uv796MuyG
wzAMSush7IIeds4Ou7urr5789be726+eqN3bqcwweDXYqtCb33715P9+9WT37fff7HZFBSpV8G8v
v3ry7Du1i4fody/fAI/Admpnw3DQ9I8dD4PZvXyPSqimZ3/8Meze3iP1x6+evNq/v7D7y2O4+Pvu
5f/+6sm3hAbECSTqgwolyKv9rii7aJYumtW2xPgZJB5sr8pRH8am9MkqTapyOBjCOLjB089g1e6O
uqvcQY076+PB651T6mDjzh60MW7irt59Jm4ctAaCd4Ag4n8n7pyj/nGlNTa3Buyl7vzn7okaD1G7
nbHU6XGnhnE32i69S/RU90BkG6l8ptLBb6cKmcoO43aqMVEJcwyRmlAxx0+sXeUqseY/d+Pu+ydn
ANbqjtWs1zulqzmv1WEcCdLZw6jTnB8OPvLcsDwhqgxuzlP69KjKl8dX+5/fq96sNNSLCpmyQXJy
aqph0d7DoG3VZuVoogdGDkGQ0SIbbGqS7jRJhXBwY0W4pUlq5QvVoyK+n2iD6bTBDPoQ1KPboE8P
o1Wq4nQ1Ql25YTQm72NHyDRytGkKfbuOJLKlzwrMyFI0CU8VL566PYnIi6dm70ckDvEwPONci587
/GXXaXKkr64Gf7X/j4unev/9xVO7/+uFGfaXdxdq3F/1poCluk0N0KtMWXtwTdmfUM/d9Wu09O2F
Uvsr+tUThPb7W/zt6mLcP+CXzxfK7T+gbXf/1alAa8drRa8xS97blamYGK6jI4GRUNbYjDyzZ17b
LbxWg6NPr8Zd8voUq1lMVfTdukh0k8iryv75D39BRdzG+6u3769Q9+2FE/b2xI4mieZO1LrkaV4/
9IGWnM9ppso6FDSvQ9YYfCiElTNofRvN7mZd5Kp5bRksVgnQk+wk+pxB9CS6e/TTKmM0ldP8odKy
QPQ5w9OY+y79ONEbWRFJiJrI9CmDhoZmXI8+Tquc10Kf258zZNnr0OvhnKY1QkfyO2NITUgiIkmH
Q29cI3FclSTn1Ko1qZ3r1WECEW2uu2LQeFHPS4LTta5pc1rxXETTjZ8+0EOvTo3ZMtbFT1dqTlRK
LTd1X3vLgTa0OtYEp6tdE0akijDDmr52V0NnDuFRfXUnKl321XfrHQ/qMX31fS297WtfTQ+H0T2m
r+FEpcu+jqctkkd0dlypl9aogUSOtbRW1fV2v1iygGxNcLraeKJaY2eUvpAYR1pFmtKnLaFh7dMZ
AqyXla72prEmsezVI/pqVnXKVG/d166Y0GwrPKKva7LJyNJmLU0OW/XVdT8dd7C2pjhd75p4yvUa
Bxs097UrJoixQ1P6dJ1ZNomp2lowT8g4IdvK0KLi3I7WNBdhCUVSg3t2lHGt2msxvSslnPQdsgIt
DeNQLGusjDvFmvXtsdNDT1pLTZt08ac9Aiea8Ezwan+kgbu5vrq9UIaUpM5XGQ6qpTvNSj/Z5wsu
qgAFmcy8g/Yb2bgq07SGzmaCyzbRdsZhToSK9gzjrCXUWBK8IvXy7uJp3P8MbfauRwcCU9OdZtzY
ZZxyrD/aYTiEnfeHqBxpXYcQTzBuTToqTxYKyYDBQ2MoFKmHT6Qn3/aUmtEceK5NVH1uKRKppHZV
Zd/cYYJ9uL2I3VmmlefPuyQ7ySw79Jk1RtZkiPHGbeSWbZ19+Fq9bVwf6oCJQ0NRsu4FdevlX7o6
EndoJjrXLd3tlh4dL+TR4xva9PFYMyn21B+ShMYP+Iq3EduzAsxAUyNOe3aTbJ1OxtCq60uq/nQy
ZH7HsS77Ey83VEHPTDZkLemmgtNcX1USB40RsPSPy17SF/TBd8caChOs85LgdLW+4rBe2j2k7UL2
Gl7NmL8Hxf4+PcIFSyYhO9zaTPEBHgZFrINo+9zTf2hRgDiY8bc4dOyaSIaMUA1U0YDeQq3I7PaP
bsCavmkUWaos3b1e1t9VTrShNbgm29CANdlqFFyjpbpetaBrWWiLFlRk51vg1vRQa6kX/RZ09X3H
IvuxLVBrkoo3BGiVou/bEmsjOwGmjICMm6+ekBrlvVvLMCnj3UwFD0QFQwpsTbXMGFZgQgNjVUO1
yDBhCWNtCzO2MIsMu4RxqoEhJbmmWmaoFZixgSH5bkJJtchw4wxDS4k2pFbAGokZBqs36VfRoRD7
M3KBlNaWM6IRb4cMkUbKiPOKqzyisMF8RIZT/GfKR8pKYaJBSkUUpvYFbotFxk3qUpEmRXSIIVPc
cOujGzMgpbxTuTJKWWWKtlCGCjY3lVJDnLpRs+HIrHmzNuXz4mxoAQ2alz9x83GGYWkibi5D+nnO
iFNGIomJ/ROVL2HgDBlKmJQRK1zfwLhsIWUYfNChhEkZM0wiqWCokB1KGFJ4aP4WMCkjlrh2aGBI
CNlQwpD+TPO3gEkZM0wiKWFkq2FGQTokPypoUtqWaVtCeBi8xmksLgnDsCsnYdBvJPG4QMwZTEFY
ngsaTpDNhwSUSjRaYY4gA8ygDI1/IipByjhOJRzHEyqPtGONJDc3VBlO2qKKDCeA0LDcQdBZr/HQ
CvhPCZ06Kn9m68pnpNHuaiacmNtZVVSBppZYWOxBzmmPND5LUqvX0jql380ksYagyVaRtGkpX0EY
X0PQRKtI2rTxCwhrGojQQLRps4BwQw3hbE2ySA9LiNBAjFnAJpI2HUoIkvwk+PSImfZeypCqo3m4
mUasQymQMhIFBC/+HDk1SoqXWq7xKIWtyHj6CpBKCZQdM04QiY7WBR7tkGqiyWaqDJ3bMmdAjc6I
mvWtXJk+qLot1FU1N1VlLCepmQ0nZnK2WxAYAim35tDZvTKyf/N30l92r3fTyifr5czkaf38cT1I
xGXTwZL6BJ8EBDwDIMOmJYARMFtThsvpROHSUIPGJPHuM4gW+e8zjaQniFS+hIC7AqI9QYwwK1j4
C4aJU0bMKJkkTjAjy0A7FDBYwCD8XYbJGTFnjM1qACqvRbS7DGNFVs0wOWPMGZmkhDFJvE8w2rJU
nmFyxgRjphVkhoHfn4SvtQmGZau1iURSE0AuPANY3oz3Ku2PcXdU9mgxL8U1RSX8lJFIaPCR8gIK
a4lSVqzyyFMaGXAXUAYmvpVFwrNlY0WBAKXhslT1oNnKpQ/rJg2Z2MpD6o/D+sP0OmdYzxlejB76
+pByUbRoaQtVc5S+eql9FCUboRCoXlIzH058i/5LvkWslrBjJvXKDYqHQhW7iKsfY2htkpiDlGiA
0HNS9Uiw8OfNNoIh+1Ml2c1fuomk4Ir+SXyMXCDmaQgRBH2HyjgnKKwOm6gx8xnFMNMoY0iyWeGD
jQbrf0ZxcMKgjBatG2EmQIHCm4QqzQczxkmGWugCUSVJwiCiu0QEbjDIOPB6P45QGG4kA5rJGCA9
b6SakVG1yigjT1OUCSL1Rtm/HNkgZxTD8xnOJ1mgiERxgegmFMsChco4YS7hWaAYBIowkeeZPOrE
TJCggE12BaPwNwQiLcylluKLHHUadZQgPDPmbwv1CKqdmTschHVRmuKD8MmjiWmBRQ9hIUwLruY0
CQOkvKSoEKd4CtDopuUPH0Hk70qJgxGpRIkgo4j1+ygzTskES9OJJKFhZK/yzJABTOMV5AOPgyyN
CuV4DkgKvaCUD3mhVPJnmonoNDMGNt6uYsEx8dZzw0cOA0i8jcLKNDmw1W2Zl0PI4wxpPrJyPE0U
jfWGUyOnPFeBDBkIEkBIRBl9ptTstkRKmj7GXJMLeVhJI0FbxjTFxI8BV7LJGc7L3Aa+428MZJLi
ntDcEHjPu5cjx9shZYUSCkXFhhNiKzuYtGV5Ycj2jDwnUwYc8TL9tXWrGYlEJuVEpVoY28IsMtQK
jGthxpZqkeFWYGIDo3RDtcgQkhpGmRbGtzCLDLMC07JYtyxeZKgVFuuWxbrl6DJjhcW6ZbFuObrM
WGGxbllsWo4uMvQKi03LYtNydJmxwmLTsti2HF1kmBUW25bFtuXoMmOFxbZlsW05usxYYbFtWexa
ji4y7AqLXcti13J0mbHCYtey2LV9WGZULNbsIxtIXcgoRhWrlybbEv43LpDSsKcGdpxyioWIlsTg
OWVYMmrq96g5g2xLpJxIHFqqkeKKiVTKOl6wI63J0lgOOSzSRtph53QBxh6fqSKNNapsh0ancjMp
BUdg6kHJgBMCOjvgDYF4w7JhZDUIGdBmychKTp7BTRkuZ2SSzHemGlk2FDCWPdQFTMqYYDJJBSMG
6wyDkGujCpicMcMkkhKGYx10CWNZYS9gUsYEk0kqGNmSmWFMZEt1hskZM0wiKWEwJLZksRFPSQGT
MuyUkUgqGM2yYYbREkkyw+SMGSaR2AJGy3GJAsawe7yASRkTTCapYDTLhhkGBxFcyeKcMcMkkhIG
W36uZLEq/TkMkzL8lJFIZpgRejGcat4KjFCpeWDEYIShn1ozYGMUGfBC0p8H2WGBF5JShhOaP2ak
nWQYKTvKTCbzAynGIUonhVnXwqqopCIr/huVnaTUWG5KSNoZMrSb4UehZ3cDUoJuUlMi72iCGA2N
uVejHFOYudD/+H1x8kdVFmXM5x/IolSTOZmEaBqTxF1TjFHHmvR5h0vDVnBi9vEoaxKDLJbZWof4
i+yvg4UmYbYIJ2Y70CTT+51QRcOFUnAtwjnEIhvyoLJyakWmxmRBDMkMfCdDKUaeTl0xYjQ5uPgY
QsNIZHttzBMFFg2ZSt5MKIYZToWUyhyBf3rknYQ06tFxRh5k1uZhsc0O9sGzATSyY+59mgmKox18
mjyBjaswJruPZ1dgEuOK2T8aLjRK0LLi8TRwlQahigeJwMlfA4cKgmIyZbH9KtE2Xpz9iEEmzpBB
bqQHil2PJrA/5kaqwaCJOZ5RJL6UCjn5EhH1EDlDyRhRCYw9GWDioQVujJxRDDUHaYDpepQZwwLb
ZKGgD+IkSJiUjuIRQLcSq6Ps0QwCH3m35CiFR8mA62HgWA6klMQsYLsAf2PDDPVipOF/SBPT83bG
5ObIU3cM07QLYmwFtA4pfNUw4COneBbw+nAUOLY8WdthcHY57GoOHCfmahnoMGbmGs2sG1yeL4MM
WkwTyMNnESy7uiiBjypILMsgog++ES+METES+HgKoJT8GRM5T0ReSo7SllEG2uRh1TKswigMq5Y5
5u2UIVN5ipDHTEcllPISGiRs5zlhJcNJOLwUHiQ1c+GEmMu7jdU5gyfOM521eWcsZ/jsW1k9vTZt
7/CmP1xizrN3xnqOy2QgWX+nswYTcsDcQkZgl1VRggYquIzBGVg2rHdpmZoKmHR+YILI+1xTJSYt
kFMz5hKpoROGZ8Ew1/JOzsLxYiAdrE7B/Wv1dHV421itZSRRFM3OxRyctD2U6NX+9xd2v3t98TTs
r+8vwv744RaHmNL5Jbs/Ply93l08VX5/fYvTNw9Xd28u3P7yeNU7v+NJkIAXc3POhJv4tRCt3Ckb
CpTdhcePTr1JJy4p/rbvFg6LwtfoWOr/G+r69dsesVkSd1uFrZS6KNj68A61/KMbu8V7x9sqcLw1
U5V9jdHj82afqS4ey79d9OhJUwgn6loO10po21gHDzrHbluoAtNhts+d+h3aH8qyEuurOU7pN71u
O88qcEm2IbLJh+XH1LYdeh37NJ1eNOf3/cknrvOZSlrzmWbs9d0VfVj39Ns7fEGX3TOA3iZfb4FC
i2M6vNmf+Ja91MvKj5cfMQcePvFBxSt8PD2IwFu4BcQ5Ro7npRLzUXSp01PYxRRJqyqeR3Wm30n9
Lcik37fT9O/FqXolvuOydd3oemxNNWU/Mkc/YDhxQkIk5yckuVpm+P2FO8FvIwHkHe4s+b0WlphY
7OJ2Fs9lH8XigkxYnLjLZzLjytLwVGmRoTcPEHdtID1mjMeWSDljPHZCDEdgTf1po1tXp5oPbMdW
rSQFN57pW9LgFn07ORBhNTidlS7sastBat6HcW6Y0zdzWiUbJZfP6XcoojmAo8BwRcZNkTGhZJIK
JnC87IQiu8wzSErPGKFKvxN1RVUtIXVFVS3JGRNKJqlgxponQdU8SekZY1zwBNuuVUuCb3iSMyaU
TFLBjDVPYNmWICk9Y4wLnji2IzhKRTCsl/hTnXZUcwnjko2DDPbCeYhXpPhQF/u6kQo6H1o5SmGE
BsjWPv85yDknzyknMdCaLSLMHpca6PN0cqlHU91OYoPmxgSJshl3uTIE4ISpLZSSTf/cVM1meO4G
pZQ0fObDMbE3cASP9Jz5K8dRZt6kEjqHUyAjzKAhiG9JKgzsYiraQxnGTc3Fn1XuSQhFP1F2NA0n
csbEq0Qi3EwZVk3MTpWlgUhtmccpNTUNY+pGGuKKD30LMKwd+oPOO6R9ItVX5JPO/v9e/LD7gJP7
dzsI45cker/5QSQv1v0gi9TN9fGCdA4+J3/9obseRu5LUfM5Mag3KFLSGxXgXji3PLHHsimrhtPa
fov+cHf55g0Uru7JOs3bzt0mLbtpelEn+PZ5d8ZlW91yEEDKuCkybIoPmUjsHDDibGxgnGpgcsYM
E5cwTrcwtoWxDUwmqWBcCxNamNDCuBWYsYFBVFIFkzNmmHEJgxCkGsa0MKaBySQVjG1hfAvjWxi7
AhNamNjCxBYmLGHC0MAgiLKCyRkTTCapYEwL41oY18KYFZh2Fod2Fod2FoeVWRzaWTy2s3hsZ3FY
mcVjO4tHjlsvYVLGBDOuzWINnxziKyQIy+HwjGUYNSlNXIK99vljCBwEMVg2X738deREkLiLUVZG
neMwcK2VY7c6UiZyygVOaVm2rJcMizXipshwKa5pIlFFUxiRN72m2hBQNDVFwf2Q2uKlo9JqI0hK
mj0z4TiNdnS52+/TwqhKxuQSKrmQkRFm0MB7VLlCOPFt2ZwUMSyNlWjo1I3gi14eZdxqPuSMiVOZ
ZCyaYidO56pkFHJL8hjldsoI5j7I4FZMOLFCr11p4XCyBF77M8szWX4vXtJK9BeszFiTTbk40eL9
tz3+/A39+kPfM+NHmbZ666KcHWnD8voaZzgUnDeZENGGCDgLN3n3ejN/1sKnuYxtRolgbm93ioff
XPCNPcrun+GM7m8WptzaqUhSGxFiVWA+wpfZVS/GwJbljHqOkyt+oqV7A3srmr1vAslq2c1lNv4f
dny7EpQ09qM+3LMHBgxh8xn28e5PsJx/6JqoHBJe1nG62WunJ1nTl22NlWGSCx62jQ1WFF8B/Rpj
QwvMUKGe62Tc6HpSqhma78H1P3wzTctLdnu/Tt4xGTT22rBazcOz4tzo9CMMHGJf1XqyH+PaOU9P
5CScAh+jbsfqz9+ivX+kdn2LBvKVWC+2jJy3os8UsF84csteTGdFD6Pj2zgVx63iziGqEqecAy7z
OujpXkPoN3oqgQsLqz+zTDf5z9gpH0xdQs1bZhmLVvgh38rlOWKB0iptmU2QU6mUUZdSvIeX6gUU
thmnjKoQn24pC6WMupDm5acoJBlVIfa+q6JQypgLubJ7kq7bHQb2fxQ8kIzV3lmOhip6JxlVIUR1
VW1KGZ0NyPHMhYQw4jVfcDddKznP6R9xf8Q/LxS+PtwhEfZXF3CqzlPuv6XXXo432XRwHod6xuIi
2HrPBTvBRYX1HF4LCBnXLqZRBGR1DfRN8nwGkg8kFq7x4y19kZ/4dj/c83eJzjxcY3/nw+10a92l
bMRoiBstWX/AD/bQ84+bCe94MS5R7nuHzGHMjv3eLru6pthYBKPXIH+d2nNHgg+jcv8u9+QOLept
YzjLEUvdFtVlDaZfzeLLi8QX7Fy4VH1vZecL0rbVhU+rLvrvmH3cNXbe8xA8tJzGlB7b+zG8hpKr
5Q4+AetdhEDyCIErVdnTI+TOfFB8tZSmL8D+yve08smrAniLR3w8qyjikCIpnVoiWGoJwA3Dnbmo
5/pj7zKvcCCRXSKstKwigMSoCF6l/Rrem3m42l0iwWv/67yNoRC142l6j7gsUw17uY2UftH809Jn
69X+Z2jxlzsSAQXBicu5SIoYVzflNEPDcoN1laFKDpjkjUJHkvrk/UjEFNuSnbwfibrXEOBiKf5Q
HIkGfJZ5G+ihHYnVmaBIWHlXA3bvAUWEpKpay9fqDrJn9fvnWzQfpWNTYWfirDcX3uutzTWWz8+U
ZZkzx51Mk5HEDJnkB5pKKk+lSP/r3unGV/V1615Om3HrtAljxVEl9xTfk3jvTAOE29V0Z+aNbwl+
6bzRHCJXAXYHQvM2R9vLR84bYxDnuOzyxnnj8xnrDfNm5HFumuvsuVFRjo+Lnm/iTGAQ4lG1qhR5
JB0wK9npzhcCx9XeLpZCrUae+SXu3/bQiWDwXsGo2tGPjx9IYt5RDpQ82afQuuv8gNTUps/C5fRv
bzdf3umvcF6vXIV+nRuX1h8Q0OzQXl/zZJy+3rEo2L16Twy5PKreuCFmTDVrWfdGO+8XZZ/DkH1/
eTR/F/+D9vXCxa3o1s77D3Zb7bzJYFdqZ3O7nmuyonZjLh6zYMbVG5N4tGvxmeLHMLmLX7u3CTIr
K4RXRJWu/zw1WjipWZKdGq22bB4ttTpaWS+x/eHiqNxN1WMXpi27Olz9W1ZpoA6thnB6rNY2PtNY
Vd/6+li1v3YvduSLBgrE8yryq/3vqLO8aXp5/C+sVhyoJ8GPcAbN8T67e0R03f3M4m0Z3TJf8Yag
sE2rgMN6Y+uyPxVNgTB+YEfi7nhzfcVX8K2tnrMLjO+8qPDYx3UE7fXPbGdPqi8mGRxfrBsfjxKu
Jr6wN2Lb2v3NzT+7Xkq7aHu7yJZBN84/QqzHc84FtoUUZv28eE6GTk8nF0OnoNpg58T2sYOufuX4
6Evr6SDjBtYlu4d5aG+usr+RBhd8lhcCdtnyTVG4Uyjuze7NnUSnPuzS+N0W9kvvFj4O6y/a9Gr/
8BEgMp3/0RtVrflOr4qwVwlsat+UrWIQEHv4eksMmHaOD8V7PSN1DStU5+qyp0fQbtWQbZghX5De
vrgYcnX8idV+qKi3xKGpQRT9kko0VRrgJI51X9Qp5SHHqibzjHjgqdJyfVY7+VhRRXaaea1Toss8
44qp9gmzoBd2Ei2VbCi6NkVYln1zl0IuTRKH22xQDgIpgCAztDoTCklaIU6KlWSLYVInvkPDF39U
zS+GafV770EFDpapoLrV4gYot43DuM6hLfuSxZOoA2Sq2n38mn6QiMV/X2NsA2skIeDS5CBWbdGv
r5/R1/MMyw3WTXMo/vTsXPd7fcKprqi29YnP9DRle04mHIAj1b/L1+UncfaS16TYFAvCl5kcrWvx
lMmxuvx8mclRCfQzJkdV9lcxOTbVnkyOZe1fYnJ0F7vl0K/eXS6jXYnULzI5SoRHmBwl2TmToyz7
K5kcW6rPJkex2JXOmeenjnv4lTXyUUbK9rWudaWtK51qq2lRK6W9fYKklKrtx1liuxW+2s44v6wz
a6NnXl47+2xPXuwVX9EjPP0VNNyfkFnYPFuVXL5poWrMRiVXsY+5JOwruYZX8LLsipJLv/72hMI6
mH5tK+OgtipdckHvl2qsM/VjNNaS6gs01rLJj9BYS7Iz3Gttxx73oirmzRaNtSQ4o7CWRZNFjynZ
bp52VFW+nWCG2Kip8q0CNVXh/+6rqAZe64JORvWL1VQ+nl/2v6+l8tUpW7gKz0FVlPUkL3rSn7sV
4Bq7sOxaXxUOdfl05OvEGr7uGpdbY0oc9oy/xtOAiAa8/MQcFKf4Pb4by79+gNDESwv3KLn7lsPE
8F3vLozev34g0Xj79bNnP79Hq0itBs0tadSGqW/x9094H+8W5MDvOtqNHBPpDdPKV2U2ar2zmPtC
rbe92f+k1lvU1tN6u1oX4gIqgG2+wvmcIZaq492He0QSXKSnHifvoEjDh7vLHFXGB+OOO344kn2M
V8cHrJT8ofU8Z87jjoLVbp4dsbN+jzRis2j9whFrX0I4OWJFbWfsFH/OTinXhHN2Slk2a77jL7JT
ttSe7ZRF7V9kpzxiDVw7XC/DXX3yX2KnlACzmTKeMVO2SPlkpZRF81D5X2SkbKk82SiLyh+9K/II
mdp6ElaeOhZlHheABr9RTDXvEPdfI4ThUSBvsT3UcP4sfVKv+Jrw1gSR0ANvNgX+FAgrbasIJPCn
IEDgTwr6wSjmuJ/0g0+ZKXi28EKuxQO5lp8hhhb4TOMndsUdXgQLCPuhCYAS07yzJ96qS6E/VWPO
MHVrEAcOUE0c2R77U5Ftif0pCNLbaIE4YSSCY+1Y96q/1YSq5qe42nyDv9WFlQY3/tZbtOjYRbF8
+V7Vi67S59Si7A3PjxNhOnzpf0N0ZojPBiqkIcb5wYJjm+N0SrpNcToFwZeOsearhNsWn7teQGm+
SWrZ4NM+9VVVW+GCU1P3hXVthJyILnwNrfmtfPUIP4GSfbuD47qOTTkVljL4RS2nh3vxiv1STMpy
XErJR2lfpH7p9Weg1qVy0r/WpXLSvxLviVOv6Nf3sFTOamGVmDujhVVln8PYeY9jylDEIq/ubk0o
8yJ/Th3b1Iykji2bwZ1eVM0ZKXLvhF72CEGv2lcJOzp5LVi2BUV0xwnvTJWIvyQowrYxEfypHm+u
L8zstZOCKXBhY9CE51vYugK1Khv4tYeq7C+OcuiGLni+hf8Rkl6tvbIrw1oIkMqO+xI1vBJG2/Xw
iuyMIl6V/XU08U3VJ1V8Wf2jdfHHSOzWwYERq79NrRA54gA9b5QqmtOaOH97/xEnxe4w+26hPuAr
0MP+BQ4bvPyLrD+jUHy6wNa1/P/qRmKNXl5oJVc5uP338AHdPFz3hsdahDeXDem/dcuP2JRFf+C3
W3mRpyZS2y7GuL/CXUa9t1zdwLeElSBneNm6HpYvjWoj99/Gcd6d4YX7xx9pfv0vZsOlHJ3puuZx
ssPWELdXvJxDJvFxmn6njOajhxV1d+9Zy33IZdkHtO3dHTHww6e373YYPcm6IuVx3N+zxfG+e18e
riXBUeYS8vWDuFiDIH26vRXRG7reVhzgwQ0aFRdbLabzVnXkWOdu/1dGtX0AexHHgyu4cak4cXb6
6jZuYuNVQhyVmej+z9312+tb9p6JOr6yyNBn83HyxmE2Jy81C3XIw5+yu/rufgppoE+USl+JOMMx
T5c2r65v80o3nQ1pNqIeZtff1a0Yk23nVs9hjoiTKnr3q53DVKo9hrMYE9xwpHCcmMyx5dLTRlmt
jg6uHiZUHSeIV/sfry7EjSlLwbQv8A+eurv7G3g7X2eGztwv9wM75oFXck9tUdumbT0lN95WhP2t
AT75Vhat7oD8xJNkvkDnqV8cxVsda235DacC+Fcc69b1svz+cK6OKufT/u1QrwWwL+wpi1cOPInW
MUOsHX4wa4R8yrgk/N2g9Pjc0z/uBf/jv+N/4h+eB/pHffvc0T/jN8g0LgzDYJ6TgYbEt8+3tBV6
YFWleL6SXdT1Llm52qmkO+1dsnJrScUUWpssliYyI3nZ4h/NYQcV9jTKFySlYHMif/eR9wncXAhO
BpLY+DxsmFBd/w5T3JWAaPuyMfd32InoEUS+GPnkkM5l5dBiWRb6Fj4G0rno+x3xg9Qu0iHIMqOf
pPF5NXewp49Zvvq8HSstroLX971V2uMp4w1DtToncUlqbKak+fbFYL5z9O+3NM/G5091ztPPlaXf
v7Ocr8xUVvLdSL8Pkh++e27nf9x3W2ZrUHy+sjsMK9/79GjR6itrT/Ds6eDzZdubnoBXahE7slAM
cFdxlHuxyzfg4XMwwzlnFK6XdxXxGWcUnnMKFQEOjXFgxS2mV29i8JnCUNOdZqdevcOROZken8Ad
6mErJ3VryoOTvpFQjh/3xV0u2tesTDO/z0kb+NmwgvYMJ22wfJvdTFC49UY+79y1vtXANwCUpGeY
qdeYyVekDeyPMZrfKHxfZNh0nb7D9aKrGflZw3eJylFeKGHwwrEqqdYyhKSAwdOYtoRBxlhSrWbY
JYxVJQxeTnYl1SJjIilgUGgsYUZ+zLegWmRMJAUMCrkWJrYwiwzXwES+ebWAifzCcEG1mqFXYGIB
E+TK/4moTc8EM0jgByIKDATnDiXIIiNTFCByn3GDElqURYZpYOTdvgJGs3goqFYzqhksr3HiYb7p
0UstTxHKrWVW7j/kEjFnJBJcBoY/G05ZSVl5MdDwHZPIkFcB8foMLkyR5wNxD0ocM448MZHnb5yu
VEODY5XBj/cwyZRh5QlC3PolV61xbZ5T6T1LudcLL+lI7RZlXe4W9aJmQ//mLaWnFw3w+IKXp1bk
3cickR/WUkp1MooXvBJVesjvfZFha6qVjGEFJjQwSjVUi4whLGGUbWHGFmaRYZcw06t4U4ZrqJYZ
agVmbGCm1+sy1SJjeiavgDGuhYktzCLDLWGsbmCsb6iWGXoFJjYw07tumWqRUT4gN1H5FiamRxwm
mEVG+YYqrrCDThEh7BKMkjdhcuUet8dLgZTmt2cjNpv4rzIXOT6YBTdS8uYaMrCJN/CTN0jxLYAD
PkCk+AW2Qd5+q9KpuUHUnZTWB18kB34xfCo98EtXGXvgtz1zvcMoOsfUrIHPtedW41mfOPWo4sgp
SdA+ftEEOOOCNNiaELaFnftqH3pWBO4CHEuCs/pN9nXVb7VYWfjwGKOS96ZThssv2K7ritlLIw2C
msSvBPKUYRgX5TGPEWN+U+DyMw2c4fm56aIEX2drXUo5fr7PpTGc/qrlUdyJfEiv/k4V6PSK1NSE
qURu4QQxsMMwV3HmjZZ/iQ6uj2ZYmxs7vnAxoFJRSo1KN5Nxhs1P9K1DZlMPT1TjQVtMMKbHezX4
aAw/eXczAxqdHghDKAJeDJtLgDMqYyADrNO5UUUJHdNjwRlD89vKRS06i7jcjqlEbumMMXBU+VzL
mQnyL9bV9XGN/amCKOGoi6mSM05PFZPNWBXZ+zjzT8uVrDN3phoy/zTEtalKRH56bOKfJp0Fa9DU
s1xi6nvGmLiTa5n4l9sxlcgtLTD4nenNU+VfrKvr43o2NAC39eNBeNKlTPYtB9Lv3+Zfpti/FDP0
uXeGmmRpHCqkFbfaShPXdrbxnjz2Fwqsqg29yAmc3tFf0Ia1K/vwjjCUIVzAY1ba0NMLsALUZJua
YHu+D+h2uHTV8v3G75Hh+f5dmy88NulxPpvNLDzAi1fkpxLshNEVSeQ39aDqphKDTO0Rft0SVKUr
K6HK8aSbSzi2TyeM9MF1PIv/o/qx/jVl/W3EExd2p/FUG6vhuBSYNNSUQRD8PCdlhPwMLIJJTVkC
EXamTJMGoZHh0yXVeADUIINfGCwwvU2CAu/d67IA7p5XBUQakCf/g9q7zvh2Q5JsjcbBjLevcVOn
h8un3aX60+7z5T1vnVz+BDfwFTZdOV4BWyRmwC6t298/XN7c8J775Y43HK9uOJbiQcIsqNj91d3P
fNJCzh0y/S2fpFGRiP56fftajmy4/WeqT4/7//ge92vIDsyFnEM8fpCDTylS4/gg+8IEj+CmkMGo
5No+Kj+RW8d2jQfmMr9POompQaKhb9euylhyLxn2M/fObV7h8ZRYlH+1v/8n2HT/cCVRXF66VLOI
i2R+RmELl3h4B5bqYf/xIg3LXTduhF8vL2s+I1hDX7DytqpRMb0RkDO0meRPWM9QWUK9K6h8A4Mr
wiuqRYaQ1DDGtDA2v2+bYRYZZobhK/SheI6Qae9n+Uc6izxPBH8W3oKVEikjkVh5BBZPsmq2uflJ
2MCpgb1ykJ7wCcIfzta9SYmRUwknvW8qrjQ0WB7gNelh2CmDLf6YSVJGMBkRnRlSSp4KKJuCDKdy
SzkVcy9qNtRugf8PBWylYw0KZW5kc3RyZWFtDQplbmRvYmoNCjMyIDAgb2JqDQo8PC9UeXBlL1Bh
Z2UvUGFyZW50IDIgMCBSL1Jlc291cmNlczw8L0ZvbnQ8PC9GMSA1IDAgUi9GMiAxMCAwIFIvRjQg
MjMgMCBSPj4vRXh0R1N0YXRlPDwvR1M3IDcgMCBSPj4vUHJvY1NldFsvUERGL1RleHQvSW1hZ2VC
L0ltYWdlQy9JbWFnZUldID4+L01lZGlhQm94WyAwIDAgNzIwIDU0MF0gL0NvbnRlbnRzIDMzIDAg
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
ZkDsNOJTtIY8GO5zxWTIl4Wwld0l5JireN2jzUDYMU8jYKaZJUjjtiMoCq8BrmER8IXGsXVFSyXj
06Zf3hMnfJx2ezBDsTXN6cG12Jr67aOB2HrHPQxbd/iGY+sc81psTYP+23BsPdTCLbbuWjgAW/cc
sw9b07CVORxb09x+H+e5x2u4nhsZIG3rQKbFdj2KpAgUEXByR0LriXjWU6TsMEDVaewR9hovLpBr
PGBr7+7o4nfbBAsP/MgIygKjQBirRpxZQOSpSXtLZJ7j4KH41lTrIlrnuajDl+eiHQO4aNMaD7Pc
XmWwS+8seehvy6EnBU/k8RpWZ3JFYVuF9dHjjsNBg00Nj5a5Y7ZFY28Y3HVulI44rJ00GjfFcaJE
9fbjlrj8xip+WKg6fHmh2jF8bstim9EYLOEFy4BTpvbtwqYxjAv/ndJobYN9kBC+jpm7RYO3WCJM
ssIy4TFFFSiKB6Ye7aLB3VO4BSGJwJkam8xRhf3A+QenmD/edIOKqYQG/MRLLEL37aUVAD8jjjdI
HjF9H/ABmczw+BhcukSPQjWF1LM/wS8KaiyrYZmCt9xeHgCSyVewB5Ywd3OAmWIK1jVLnB+3NxvH
iVrQB7cNvF3a0mSlrWJ+xAubkD3eiGcoa43c683SXWXBwEHwo3iR4q1WT0gcW4qewusVWtss12S+
dFkX4a3s7jqqpx8vHcYLAGqwnAh3fRkmb6W2CKwAgz9c2k0dXgJzwUOv3GA85o/ulAOKwsZ+nM/s
rLi1JBieNURmPnFXybDyc1M01zaWD80KPbp2p/q+mac/yGcGCAt7WdfeAN9QUcm3IfNz1glWl3Vg
XXSnBQUIlg+P9vHW7rFvF3byr5zdYMZ0BPHaLGydgBes+Dq3Lpg11gfwhVOo3Kwqmh0T1BDwy2Sx
k7Kw4iHo2nnkyygWeaGxnkTt6Ec+vCzJuOcYxNLYp4ZSyOtWYB3F3RpT1qPtKf8Tqre/CA0KZW5k
c3RyZWFtDQplbmRvYmoNCjM0IDAgb2JqDQo8PC9UeXBlL1BhZ2UvUGFyZW50IDIgMCBSL1Jlc291
cmNlczw8L0ZvbnQ8PC9GMSA1IDAgUi9GMiAxMCAwIFI+Pi9FeHRHU3RhdGU8PC9HUzcgNyAwIFI+
Pi9Qcm9jU2V0Wy9QREYvVGV4dC9JbWFnZUIvSW1hZ2VDL0ltYWdlSV0gPj4vTWVkaWFCb3hbIDAg
MCA3MjAgNTQwXSAvQ29udGVudHMgMzUgMCBSL0dyb3VwPDwvVHlwZS9Hcm91cC9TL1RyYW5zcGFy
ZW5jeS9DUy9EZXZpY2VSR0I+Pi9UYWJzL1MvU3RydWN0UGFyZW50cyA4Pj4NCmVuZG9iag0KMzUg
MCBvYmoNCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjQ1Mz4+DQpzdHJlYW0NCnictVpt
bxs3Ev5uwP+BQL/sFvCar8tdoCiQOr6gd5fUdR1cD8mhsCXZVm1rfbLUJP/+ZsiVRXJNipJ8CLK2
5OG8Phw+5JIcn5Effjh+f/LzW0J//JH89PaE/PfwgBJaUUoZ51QTzSlRkpL55PDgX9+T2eEBIzfP
MpTWjEpP6Pr7w4NfDw/I6fsTQhwDrDfw08XhwfHfGGmrtiYX16gPlBH4QlS65URyVVFOLh7QCFg6
fvebJjdP+Ond4cGn4rtSFmR0P4Efl7PySBdkic/H8gi+78ojVdyPyyNRkLItpo/42+IS/3aFDxim
iqfyP+Ti74cHp+AJerNygDWyqoXrwCfQspYdhMSdkMIomFgribmhPPWeK1xXbetrOYrJCjqQXRA0
8/CcoxuwWMet1U3VMlcDOYLySt2QixEYjlrWMhxHzYhrMHy/xKAxyNvY8FZWKnA8mW+RyDdlr5Fv
V8umfK9lcS5wIU3oi6gJURt0ucPMiBl6eLmIDVOgXPueRU0oXnHfRF4dVROO26qOWhsYxFwc1FEO
W0EjX+oFomkw1auqLtCTyyszxyelBqcSmLYV9TRsqKgnizNIFPPLLynUKFlx7Y4z+VaKbch3TcNx
q3xDZMsnyHo815As5buazLXKbLtC15ka6/gsFLV067XjLPS0bKqZK7tT18uzptlA9newxkTx9gJs
fEDDFxDax1LYD+ZxilD9Z0QnhwhYoDOZeJ1IPMz8PCVNQomkayVmmb3vTG8am2UW1tO7yXyGRcXF
9548dGOMb9nXNg5YqX3dSQfbhIPcQT2WGdzjxRjtm+V/3qFzBmtRd6ALw/T0NMU7dgNmfVnTrLEt
/gH/Rx18rO13i/klJmN098e07N35C4AhY8VnshJt3I8hfaKJvLDcuctYQguVQfl/m+CMYtKW2DKs
6NRtcZnydOB8OJsbCH39Fm2hsCoG4+LttjG9z5W9XqFgjvhEiydn6DPvW8DYOt2aifn2LFYNoHwp
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
KSAvTW9kRGF0ZShEOjIwMTMwMzA1MjIwMDI1LTA2JzAwJykgL1Byb2R1Y2VyKP7/AE0AaQBjAHIA
bwBzAG8AZgB0AK4AIABQAG8AdwBlAHIAUABvAGkAbgB0AK4AIAAyADAAMQAwKSAvQ3JlYXRvcij+
/wBNAGkAYwByAG8AcwBvAGYAdACuACAAUABvAHcAZQByAFAAbwBpAG4AdACuACAAMgAwADEAMCkg
Pj4NCmVuZG9iag0KNDMgMCBvYmoNCjw8L1R5cGUvT2JqU3RtL04gNTAwL0ZpcnN0IDQ3NTQvRmls
dGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA1ODkwPj4NCnN0cmVhbQ0KeJytXU2rJTly3Rv8H3Jpr0oK
fcMwYLCNYTZNd++MFzN2MQy07WHogfG/9znKyNevq6TQfVItXmXWvRmKkBTnROgrb/SXu2K6kr9i
vLwLVyyXz+mK+RKfr+guKfWK7QpJ+lN4BHcx5yvxrl0pXqnhu3Rl/KV8FV+vVK9S/ZXKVYNc2V21
8bGrQVcWKHLlyh5XPJih2Iu7csC14Ol8eQkRxeFa85Xr5UPEc7AsOjzXcEUhxV0+CfXh2twFUVge
r4JyaENBuaXiOZRXUZ8C+drwOcptCc+3S5xvV0UdHQpBPQWKL4iIR41quETQKqiHSMtXTZcEGAWT
JHrULOIKYyrkUqioIq6wo5ZLcpSrQa54f6EoKagcvpLqE9oAVwg3lNdCvhr0NBTSyhUcWgwmBu/Q
VhlXNFJD40tAZZ3HTWM3uSsEdpSTK0TPryJuyt2D6Cl+lXDT+BWKZbN4h/KK41dQUNh6kAw18Cuo
qLDbw9zAtkGHoKs9eybiBk3jPXzDB7Q13cLTDNQlCs1AY8RAM9DqMdAMNGuMaBP2a0ww0wt8J91d
C+9hdYRuhEb2gnJK5FfQVVBdjwrESj9B98bm6QgosNEMgXM5moG/5GgGykqeZgQ6JM2Ay8ExUHKA
QwaUAf/BDTrchwKHRed4NHyK6AIPK1NK9DH4coZRcDLcoJd9pAezNSCQKlsjQkWlGZHuzHLo0M7x
YXiqY6tGujZblT7rGx9ucHpWJ9HLaQ8glAN7ByDKaCnceNw0fkUg0dfRZzkLn0GBvaEIlhL4DAos
8DcPZOVKMxJxwurAYXKrhEIAQtiqwFdxbFVihpqJ7yLoBw81Rdjv6JgSUG+fiRtHBAEgkWbAw0ui
GcBXSbWDC5iiGejpklkyIFcKSwbWCn3cA2SlErlorNLYX4BfaXB7D7xVx/5CWZW+7GFuZUt4QKwC
g8QrbkgAtTMIpQDA0CHsgTxqJ9QSHBagxg1ZhKDNrBcgVTNxDwzWAt8B4HHD5iWQa+QnKLnRM+FD
aDmSBDBI1xLY1AgXj7o1trHguQZSwA1wLKiuAHEtwE9BIbghR0AA9JZJJsC2pxTAfhuGkjNLxqet
OHIrpEovGSroWgJ8gQX4DEpu8FwhVzSyiu+MCS8RT/gSZoI/3JXOVSQCuQkbd53P+G2AKwkdGqL4
TMi3kazF9nSJ5QF6uENTdHdwOZHrqIMEKsJSCnWwCV2lDnqvq9RBn3AtsbMbuYQ6Oj8QmgIM4q5z
ZqcToIukzi/5HLk+oGmEPQl8wQJUGXdsARIH3J/fkl0Smi/yowznFnopnkUhhI3QWcnSuGPbR3IF
eIHUzDv4fKcoyWhNYSkCLOGuswyaRIhvKXBlQeVBLzSFriy9kvRKsDS/pY7WyZ6s4YA6odcEB5eS
RP4hvqVTCd0DwYB3+L9kklJANwqDXgiAW+eDENGIN1ORvYW+AvqmBHUkhiJyZiDchGgMmWGkh8TC
Bsqd09BAQuoJNTHYUEejlzEkhkY3Y1DshC6k5+jYBgyEkTQspZNdoQSDLLtMOstJD3KkuYBOoWv5
ztkIZCQ6dI+w88HaaElyA2ib4Y0SjS4U+G3rEon8B3vRsKQ76iWFJXKFdC6kw0ljOGf50shrgW3f
SH6BgZWED8+AfSQ7MDiDZ2dNZiyNtJmAWiHtppz4LXUw7gXXuRQ9EBx1kKcCCSBVWBVIekhkED8d
dbTSwzEpNlCCROoqJciJDBaBIMvkGrgA2RV+1qNgZvmBzJQ7BDvBRsZYT87NiQE+kn3hEfQK3OUe
7Mm/LJkMCjpnq/G51iVIpg59HghkMDq0dVqm1wXCt5AxOlkWekgg9AufDoR5CY2ynbYTU4pClhZ+
xpJT5WfkciYLgaAtBdQSCORSKj+j3go/YJ8A9Mw1COTS4P2BQK7gIdyRtx28iT4DvkYYDaEzN/qs
R5lKRAT6RmVLBHpYZXxGNkPyR6mB6AZRQxvR3Qk+EN2VyUMgutFt+ep5UC2ZmRDLq6gN2QF3lZ/R
AmZZzF8RMtgLxDTgwUzJM0SAVNlPuIMXBmK6kVFC6iGFFhDTLQBXgZhG3GdyVXhHm4lp8CC0EdOA
G7QR8S2zlp3/C2tETCOHYT5GCyrbhZhujW1ATLfGfiM7uN6SRAtMhrbCAMPgjhSO4Yg9TWLudM+U
C5EpMsHroYkJIlGF+M/nGKUSvZgIR8rNzyoDFj1H01/KUhsTwzucVfRjIAO5Rn8mE4DqClNGBjL6
FVNhRAPIkug9M6eOUs/QF+7QxVYja5IKkVwywDHz4R9CHduZfu7J2YGpMmAbmIQynLEvmS4DDGgN
hik4Lywg48LFmKxSRyV6yIHoLse8lXewiO2AMAU/i45BjGlyjxfC9CaSo4UBKDoGSnJBJGsK+wJJ
LwNloARDYXKUaLzLTIBZMnI53DFkZoYo8juoNDJPZvCEn0YyLmiOErkPIyjBYOd6Gt3DI21hbhGY
XsbOmsxOovQwSglyZSA/gJp5RwlheOS/PYYABrBAWB6TxzugZnhdJKeiQvwsM6DC66JQG7OO2EM1
I11PEQIjXQzU1tCyrD0CLIeDgVG2p/WhD38qn2NEZbBmpo+m4uiRESESG52jIy2PDP0xwveYeCNC
04LISJ7Qy/QAxGogBY8wVtMqcjkEUHKkLDEdI3UQ05FJSmTyHXsW0Ni6YAZ0EbCL4hnJ2TNk/8TE
sWcGiRlBTIzujASRzJyIcbIhonsfjjB+d0uZaaTEHmQGgfEBn2Psz6wvo2wqXYKlMP5Gxr1U+9iY
Oprvwxve0V+I5OzonT32u8Ixj2c+wEE1kZyZQEbiNzNLiKVnBuzzzM+IDVqGHIHtQkznxLEUcZ4T
e5/4zZm1JKZzAQ56OpUL24WIz9XzM5bH4V5PBnNvSeIXqTw/Yz7gWA+ySuGAKxK/hTlNJLoLM5vY
elZBj+gDXXJQJOJL7GO1wDuWR/wWsiNHW4CH42fMNDI9uw+Oi+/jPeYctJmJKWiSz1Fvo3cS5xUZ
LUeBvIP2RJxXjnOITeQcvg8NeVf5GfMLRqBEnNc+cUGcV7ZsIrpr4miQiK+cwQjEZUVTXj1/bIwO
HF8g50AJiZhu9ItETDf+m4j4RrwlortljhyJ6ZYbtTGbQWDFZ7yrHDMS08jpIUFMN461ObiCR/aJ
FeYSjJw9Lrs+AJWepTh+lnlX+BlzE0Zc5orIV9AS9FXccV5GmJsk9AzGvryrHPz2HIatEVhyoTbG
JDgibGF8RHqPUS4531VawDiP8TVLpjaYigGzY4YDlKSepXBygGjGXeFEUM9mOJuEHkSug7ZjEo+7
wlF3YtbDAXTPk9jGKTKvId8ze+NkR7l+85tP33HayV3ff/rh0w9//v3/fPrx//78+dMPP//lr//5
87/89Pm/P333xyv07393ud/+9u//7haJKvJv/iuB3/375f/jepP7ReZR8+Pnv/38h//920gQZuOZ
oXRW6e9GcrKtsMwUhvK0yk9/+q/PQ1lO532vbaEGDu2oi/atX7fvI/Kvf/rjX//y+dM//fTzP/zj
ZTR1HWtcisuZeDgTj2fi6Uw8j8RTsfysmBoNP0v1F+/4QmGzFNZdhdnNFGZvKWzbCmWqMFgKvdvW
GKcak6nRxoylMU81mm7jbZhZGqd+8wGKOESpP4SpP8SpHwL1A/I2atfyQxAW28eGOLJlZBsJpfsl
11wmzlKqqXgIiIXMtkuXTnhcCJoYW02CkqE3L2RsDzaMrXIbG6bGRlPx0PUXMra7W8am29gpS1WT
pWSIk4XMdoCq9Ta2zYxtzlQ8BJgtE7YB1u5Ur01jXDNjXBgCbCGzDbB2J6QtTY01c+kwBNhCZhtg
rdzGfoM4F4Zg45qXZfk22rhCfG7zEHNcWLZs3gYd5+TObR5Cj0t4hs1xG3tcUz+2OQ4RyKV4y+Zt
CHKx/9zm09HVEJTcWmDV2U7WzDpPfYubFyyd+xj001j3gXY6zA+jDce1vD3mWg+DbWit5cfYELH6
LO1jQ6bJFPekWDptQJg6p8GQu14snduRjftqpjrN3DrtY1Cm6RR37lg69zEYpnGQCwOWzu3pFO4+
muq0fWg/doa5DwXbh7YnVXz4BrEvH/JDPpxjzIeTjPkwDubD+Yt8Os94OH+RD+NTPoxP+TA+lUP/
K4f+V4b+x6VAA7Nl6HQrof1gke6JBm7Mm5FMMomt7AeNNCe2ZBJbGXr2Smg85FkIDX14JbTPu/cy
QN8Eel/vSSs/n1Z/3R/rEA8+m7GyjpO0hdB+knZP2vf9rOcVHmMpm51X97GUv0HQrOPJhGyv1uwn
UWXqWNwBbOncT6LKdDqLe4wtnftJVJkPEu3Z8boP5jIdJPpizm62/UmLe/Z8rPPxodV6cPO/CFUT
6G0c4t5mxX/85/HCxjzY2HPUbYzopb55oKkmGbTxVMZS33wE9tYJP34/FtV4fLfDY9/YCpMT2phI
arVNb3M+aPYC7jgmL4TGMXlppDZSm/tRs/1oHNYXQuP5R1vIu3HUXVYxaRWzXg9cSnMIXUxQg8d1
MV3Ku3Ey0Oy68KTFRKE40z28G/LLUmrIEkupMdaXlbt9Ue6p835kZFpZe+nWDRG7lJrgbmV2VnP3
/ep2lqddH0PHdVj41ZAGllJDEPNUjFnze4q8H86ZmevNoOfdkAhWUuMNJ0upIeTWlVRvvOfG+ymj
aWXNCOjHe0iWUmMIrqSGEFxXtmglq17nk5ELn1aXe3rlMXholdh0Mt59wvNUZl1kmhuL2PuZxttV
llJj6C3NVL+az2+LPb/tx7tbllJj6C2kxjtc1pVUvxL1K2OSe+VXohwpiktZrx/9+Ps//DTc/+nv
LSxPGvrkEg/nP3h56jesuj0p78c7c5ZS28N+Cdo+Ye7+wXbk8f6c15TPQ3awg+/+Bh8Jc2YJi019
2zNuPMYxUfrCtuObGu+ZyEvnDe9pw+ueIrzuCb3rnh3TLa260VS3f+qmTN0pqdsXr3t247rnIq57
3uG6Zwmue0bgusfvupNN94jp7ivd16Q7hnQvju5y0f0jl+Yquimjn6m/rzrd5DTd1rTIK4R0ob4f
mb+vKqfxVReY++H4+6pyXuVE9Sn+dXHzWXB8FgGfhblnsexZwHoWlZ6Fnn6O/b5q+VGf1z3hPMN+
X9U+3STuo9oZtZyo9kYtTzuXpwzvq5anHasTnv3g+X1VPdqPOqfWT5bfVy1P+1LndZ65lmf+4+HN
h1kekD+4e6AwRslqOuPuk1/tb5doZ1u3olvwVSHZEQo7QnFHKO0I5R2hsiNUd4TajtCTf39Qassn
/JZT+C2v8Ftu4bf8wm85ht/yDL/lGn7LN2TLN2SPL7Z8Q7Z8Q7Z8Q7Z8Q7Z8Q7Z8Q7Z8Q7Z8I2z5
RtjyjbAXTLZ8I2z5RtjyjTDxjbcYbiWtmsuI5jKiuYxoLiOay4jmMqK5jGguI5rLiKasojmraG4j
mrWK5jiieavoGqxoAitZy9McSDQHEk1pJWt5mhOJ5kSiSa5obiSaG4mmu6I5kmjCK5oriaa8ojmT
6GkL0dxJ3i/1fNmwxZw6CxPQLaQmoHupE3XMKtXPjbbXmsIEva+pD1O165GPaJatTv6002PwpDLP
ssA0Pb3t/lV6ah96eCilfaHJPimxIxR2hOKOUNoRyjtCZUeo7gi1HaG39PRjUls+4becwm95hd9y
C7/lF37LMfyWZ/gt1/BbviFbviF7fLHlG7LlGzLzjYc7TUrXcKrLm6LzPqLLnKKLxKITQaLHk0RX
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
Kv85foH78fvo+PInbQcxhGGMYBTjoGHFuTgP52N2NHViFE2fODmaWszdd4vvXit8Gii+PW17Wdsg
axtk2z6y7TjZdoNsO1W2nSPbTpRtxxbeeiZfDkyeHu4ovOms8J6zwpvNCu81SzaGR5K98iwdJZPv
ysGB6Kxinq0vvuls0sdVcXZ00H8bf6bxrzL+CcY/0tFnGvtXhXeUFd5QVngzWeG9ZMb7u/FOj7Yy
ygajbDDKNkb5pFEuNcpBRjnIKPsbpfA2wTVG2tdIhTexHVJ8n1gh0teL7//ayRj/MMY/jLFvyXfC
X41zkHG+Y5zDjHOqcY4pvNvLWAeVLAzPFd7YZbxS411VeEtX4R1dhXdzFd7MlVwXxsyuKdmvWgei
A5KZLRU7yaj7GbXOqEca9QSj7mXEfY22svA+nuL7Hf8if6u2dJgPdZJCZ7k3qg9xNB834ibcjJ/i
FvwMt+I2NIV8tBxvoBlv4i20oBUrsBJtaEcn/hlCtAY9eAdrsQ69YXm0HmmMhu5oozofQxY5jCOv
u22yfzPexwf4EB+ZSwhxSYSSYlfsTZ4pw74dNiTPtq0NG0pXhLh0JdrQjg6sQifeRhe6sRr/RH/I
lw4gg/cQYxBD2IBhjGAUGzEGcyn9CCEsn7BtWF5+bMiXn4CT8GXMCn3l37A9DWfafxbOxndCXF6L
c3CRfT+0vRxX+nw1rsG1vv/Edq7tPNzk883gQ/kC25/b/gJ3+vwr3IW7cY/x7/f7H3x+yOcnfX7a
57+BR+U8KudROY/Ku0MoXw0elfOonEfl7zhnLdaBR+UDobs8g/fEEmMwtJQPYYN9w8YewSjGfOdd
ec523HceVZyL83A+vxLRHdHk4sqVjO6Qu6fJ4cLqNcG3p3w7ybcTZfnS5FvR/lGJX3PRF2Vmt8zs
lpndMrNbZnbLzG6Z2S0zu2Vmt8zsdnSfTMvLtLxMy8u0vEzLy7S8LIplTE7G5GRMTsbkXK/wxq7u
5H9EE5LfxTky6NzQK2u6ZU23rOmWNd2yplvWdMuablnTLWu6ZU23rOmWNd2czHEyx8kcF7u52M25
HNe6udbNrRyncpzq5ko3N7qpnqd6nup5quepnqdqTNWYojmK5iiao2I3FXNU7KZiNxW7ixXbFZXT
8jiVXGHtfcHauzjZYq1ttQpZbYr6ZkTYKsK1RX1/4lvh7au70vcGI6yKzrBO1lgna6yTNdbJGutk
jXWyxjpZY52ssU7WWCdrXOkIa+Ve1sq91Gybmm1Ts21qdq2azarZrJrNqtmsms1aT7dVs2k1m1az
aTWbVrP8jr5s3TxMna5Vpz3qdK067UmeE+2TPBcXR/Oto1Oto1Oto1OsnTXWzhprZ421s8baWWPt
rLF21lg7a6ydNdbOGmtnjbWzRi2m1WJaLabVYpvay6q5NjXXpubS1rgaa1yN9a3G+lZjXatRK2lr
W421bS+1kra+1cj/NvnfJv/b5H+b/F8r/9fK/6z8z1r/trX+bSv/03K+Tc5n5XzaGlhj/aux/tVY
/2oK+R5GaT3q/uyOcCMHZurna/Xz2ZyYyYmH7b1Ntp+QXOFOqi18lGyPzim61+3oLkd1WjHvCNf5
do5zVzh3pV+Pde4dzn3NuSc5t81534rKttTRNx3Z7sg2R55UvL8q5MyjxZHOt/8Y+9+0v8P+6Ua6
xd5njHS8kZqM9Oni8W8X7xPXFP+ZiypLto6mlpyJi3EJfoDL8ENcjivxMyv9pMJ7F13lhsLbFgvv
VyzeGz0Q7Zj8W3R48kX+r4v2tGqf6i5xWyv3Lu4S90z26wwDZpDx23vR4dbzy8OLztjBPeUehTXd
+RdHJ1rBzpTzZ0UnJs8u3n2dGG1lZlPMbIqZTTGzKWY2xcymmNkUM5tiZlPMbIozJzvzUmdOdual
xTOrnVntzGpnVjuz2pnVzqx2ZrUzq51Z7cx9nHmwM/dx5sHFM1POTDkz5cyUM1POTDkz5cyUM1PO
TG0587AtZx4mkrOi/Xzar6hxQ/EeYZxa3YV3h+HrOAWn4htRpXu3Svdule7dKt27VU4s/Hva0sK7
E53ztS13GkuLHq2N2kr2DetKpmE/7I9P4QAciIPwaRyMQ3AoDsPhOAJH4jP4LI7CdByNz+HzOAbH
4jgcjy/gizgBM/AlzMSJOAlfxldwMmbhq/g17sNv8Dvcjwfwe/wBD+IhPIxH8Cgew+N4Ak/ij3gK
i/A0nsGf8Cwa8Gcsdre2xPbF0FXyEl7GUryCV/3+WmgvWYbX0YTleCO8W9KMN/GWO4gzPa2cHVpK
X3En8SpewzK8jiYsxxtoDu2lb+Kt0D5hUlg3YTK2xw7YETth57CubAHuBQ3KfhfeLXskbCh7FI/h
cTyBP/v9ZVt3m2Wv+NwS2stWOr7T51xYV74bPoGp2B01YUP5HtgTe2Fv7BPayz+JfUNX+TTIhXK5
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
2Gb8zse9bo6ecX1YXvXjkKn6CebgOlyPuZiHG1CP+bgRN0FvrNIbq/TGKr2xSm+s0hur9MYqvbFK
b6zSG6v0xSp9sUpfrNIXq/TFKn2xSl+s0he3mohKVOl5hc6eKc49q8bTajytxtN0Kzyn72PvCrWb
VrtptZtWu2m1mzb3rLlnzT1r7llzz5p71tyz5p4196y5Z809a+5Zc8+ae9bcs+aeNfesuWfNPWvu
WXPPmnvW3LPmnjX3rLlnzT1r7llzz5p71tyz5p4190LPOiO8Te03KPzixz2rEFFPdIiIGuxfZ/84
Nz7gxgfc+MCxPY6tcGyVSqkU6YEqpVK0B275M6BXOfQBhz4QZYMoG0TZIMoGUTaIskGUDaJsEGWD
KBtE2SDKBlE2iLJBlA2ibBBlgygbRNkgygZRNoiyQZQNomwQZYMoG0TZIMoGUTaIskGUDaJsEGVD
dLhI6nmzjDfLEnXRrvxZJoJzVcAmFZATyXyR7LjlT2Z2LPzJjEjuKfxpFu+W8W4Z75bxbhnvlomq
XlT1oqoXVb2o6kVVL6p6UdWLql5U9aKqF1W9qOpFVS+qelHVi6peVPWiqhdVvajqRVUvqnpR1Yuq
XlT1oqoXVb2o6kVVL6p6UdWLql4dn1Gs48+I4q0t/85phlnfadbPRlXibRZvs1ibxbW9mLa35y7x
NIunWTzN4mkWT3NUlpjN16vCpsTV4d3EfHlxexhK3FX4k3a/bk7MD7moxD83RdMckUtcIyOuxfzQ
nrgpqkjc7OzbQn/i7sL73cP7iXvD+1Xub6vc31bthk9gKnZHDfbAeY45Hxfge/g+6nAhLsLFuASX
4ge4DD/E5bgCV2I2rsLVuAbX4kfh/WI8m820NzEn9IllfeJXYUPCk150ZuJy2X4FZvv1GlFei+tD
S2Iu5uEGzI+2T9wUnk4scNzPwzuJX+CXuBMLw/Pie74qEd6oSqIUE1CGclRgIipRhRSqsRW2xjaY
hG2xHSZje+yAHbETdsYumBKGaDhEwyEaDtFwiIZDNByi4VDVUaGlajqOxufweRyDY3EcjscX8EWc
gBn4EmbiRJwnjvNxAb6H76MOF+IiXIxLcCl+gMvwQ1yOK3AlZuMqXI1rcC1+FJ6PSmXOGiqupOLa
xN1hRC7ND6PyZDz6GhfyXMhzYDMHChm21oqTs+LkHJGjcp7KeStMzgqTs8LkrDA5K0zOCpOjfp76
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
2Aor2GK1Oag2B61gK9Tn4+pzUH0+rj4fV5+PW8FWpOY770bcittCh67eoat3qM1Bq9kKq9kKHb5D
h+9Qm49bzRarzcfV0lPy/il5/pScHrCetFlP2uTtgDWlTa4OyNOl8vIhefmQvHxILg7ItXVybZ1c
Wye3BuTWgLxaJ6/Wyaul1qI2ObXUCrdYTj1uhVth5eiQHw/JjwH5sc4d5AvyoBEvukN7LTxH6fVW
h1a5cLxuvlo3Xy0fllP1Haq2ULVFTvxF515D2WU69WrKLqPsMrnxntx4VzdeqRuv1I1XypFPyZFx
XbZLl+2SK2/Lk7TO2qyzNuuszXKmXTd9Wxft1DlX6oitOmIr1ddTfT211+uArTpgqw7YqgO26oCt
lF2v67Xqeq06XauO1qmLdeliXbpYpy7WrIs162CdOtjbOtjbutXbulWX7tSlO3XpTl26U7Pu1Kw7
NetOb+tKXbpS15au1KwbdelGnbrRSu4s01lW6yyrubSMQ8t0lzW6yxodZI1usVq3WK0zrNYZVusM
qznVwqkWTrXoCmt0gNWcauFUi8pfzallKr9Vxbeq+FYV36riW1V8q4pvVu3Nqr1LtXep9i7V3qza
u1T7ai62qPLVqny1Kl+tyld7Ju53d1y4rz4sfBAdrsoKz1kXqaiFKmqhinqJz3NVzSa+PsLXBr42
qJYMX3v5uoini3i6SEXkVUGeF3N5MVcF5PkxV8bnZflCWb5Qli/kxVxZnpfleVm+UJYvlM2b6LWI
Totk8yZaLaJVL616ZfUmevXK5E30aaBPA30a6NMrmzfJ5k00aqBRA30Wyd687F0oczeJuUGML4fb
Zey4CF7wbaO5Z8MTcnNNtIvINvqWFtmAyAZENiyqZn0gI7JmkTWb3Uazaza7ZrPbaHbNZrXRjDaa
0YAZDZjRgNlsNJuNZjNgNgNm02wWhWfZgWiqK2Vd6W1XSrtS2pX6aVh4Rm1xtTFXa3G1FlfLulqL
q7W4WtbVWmgxSotRV83SYtSVs66cduW0K6dpMerqWVfPunra1dOu3uLqhefDtGeENfrlxvCWqN9y
5TFXXK2XPa/jrtJxC88Hfyl23DJHjW15hsps+W+YDkqeER1SVO4de1bb807xW+HZ7v2ijhO2nDXq
W2z8DuOPuBvudE8bU3izOCspEWGCe9IylKPG933w2zBsjDVFZ1od3W0VKcxxLNrHGK/Y8xz9Rv8H
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
cVXdYZHmo5ty6QfHcJrigwxURI9axgbPXZF5bttRv5mVN0c8FL9d1h2Tw5Ao3rAwlvXBpaXs/Y13
99J75rW+Sa/Kq9GdAR6UnV5wPv5s+a+ZPbopZ3V2EJQLlfm8Puaoo9MlT2Uxj8EqzybZJPzMG1o4
t8htzI6UiOv2SQmU0ef1Ds9DoZ/SwXerJw+svzE0+labmXCdpFjA9Ma5ZwjifwDrKSyhDQplbmRz
dHJlYW0NCmVuZG9iag0KNzk0IDAgb2JqDQpbIDBbIDUwN10gIDNbIDIyNiA1NzldICAxOFsgNTMz
XSAgMjRbIDYxNV0gIDI4WyA0ODhdICAzOVsgNjMxXSAgNDdbIDI1Ml0gIDYwWyA1MjBdICA2Mlsg
NDIwXSAgNjhbIDg1NSA2NDZdICA3NVsgNjYyXSAgODdbIDUxN10gIDkwWyA1NDNdICA5NFsgNDU5
XSAgMTAwWyA0ODddICAxMDRbIDY0Ml0gIDExNVsgNTY3IDg5MF0gIDEyMVsgNTE5IDQ4N10gIDI1
OFsgNDc5XSAgMjcxWyA1MjUgNDIzXSAgMjgyWyA1MjVdICAyODZbIDQ5OF0gIDI5NlsgMzA1XSAg
MzM2WyA0NzFdICAzNDZbIDUyNV0gIDM0OVsgMjMwXSAgMzYxWyAyMzldICAzNjRbIDQ1NV0gIDM2
N1sgMjMwXSAgMzczWyA3OTkgNTI1XSAgMzgxWyA1MjddICAzOTNbIDUyNV0gIDM5NlsgMzQ5XSAg
NDAwWyAzOTFdICA0MTBbIDMzNV0gIDQzN1sgNTI1XSAgNDQ4WyA0NTIgNzE1XSAgNDU0WyA0MzMg
NDUzXSAgODQyWyAzMjZdICA4NDVbIDQ2M10gIDg1NVsgMjY4IDI1Ml0gIDg2MlsgNDE4IDQxOF0g
IDg3NlsgMzg2XSAgODgwWyAzODZdICA4ODJbIDMwNl0gIDg5MFsgNDk4XSAgODk0WyAzMDMgMzAz
IDMwNyAzMDddICA5MTBbIDQ5OF0gIDk1MVsgNDk4XSAgMTAwNFsgNTA3IDUwNyA1MDcgNTA3IDUw
NyA1MDcgNTA3IDUwNyA1MDcgNTA3XSAgMTA4OVsgNDk4XSAgMTA5MlsgNDk4IDQ5OF0gXSANCmVu
ZG9iag0KNzk1IDAgb2JqDQpbIDIyNiAzMjYgMCA0OTggMCAwIDAgMCAzMDMgMzAzIDQ5OCAwIDAg
MzA2IDI1MiAzODYgNTA3IDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3IDI2OCAw
IDQ5OCA0OTggNDk4IDQ2MyAwIDU3OSAwIDUzMyA2MTUgNDg4IDAgNjMxIDAgMjUyIDAgNTIwIDQy
MCA4NTUgNjQ2IDY2MiA1MTcgMCA1NDMgNDU5IDQ4NyA2NDIgNTY3IDg5MCA1MTkgNDg3IDAgMzA3
IDM4NiAzMDcgMCA0OTggMCA0NzkgNTI1IDQyMyA1MjUgNDk4IDMwNSA0NzEgNTI1IDIzMCAyMzkg
NDU1IDIzMCA3OTkgNTI1IDUyNyA1MjUgMCAzNDkgMzkxIDMzNSA1MjUgNDUyIDcxNSA0MzMgNDUz
XSANCmVuZG9iag0KNzk2IDAgb2JqDQo8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDIyNz4+
DQpzdHJlYW0NCnicXZBNasQwDIX3PoWW08XgZKbQTQiUKYUs+kPTHsCxlYyhkY3iLHL7ym6YQgU2
yO994ln60j115BPodw62xwSjJ8e4hJUtwoCTJ1VX4LxNe1duO5uotMD9tiScOxqDahrQHyIuiTc4
PLow4J3Sb+yQPU1w+Lr00vdrjN84IyWoVNuCw1EGvZj4amYEXbBj50T3aTsK8+f43CLCqfT1bxgb
HC7RWGRDE6qmkmqheZZqFZL7p+/UMNqrYXGfH+7Ffarqc3Hv75nL37uFsiuz5Ck7KEFyBE94W1MM
MVP5/AAHr28mDQplbmRzdHJlYW0NCmVuZG9iag0KNzk3IDAgb2JqDQo8PC9GaWx0ZXIvRmxhdGVE
ZWNvZGUvTGVuZ3RoIDg4NzU0L0xlbmd0aDEgMTg2MzUyPj4NCnN0cmVhbQ0KeJzsnAl8U1XWwM99
L0uzJ13StGnatGnSJW3SNm2hbA2lK6VAWyIta0sBcUFqoSAogjpuFcRxX0Zx3B1E0oBYBBEVlxnX
mWFccEPFcaOK+wzQ9jv3naQU1Pmp4zff9/2+XnLe/95zl3fvuefed1+aH8AAIA4vMpha3lhT9Yn/
iwdAePQ8gMRlFWXl01yl330O8NSNANFFFWWTJly8/QwNwGMWAMXaqvKKyg+f/BpA2LEOQPysauqU
xoPN7HqAV18GdvPbVY2BMlGedRSEjiBA5f4pjd6CY+r9GQDsNbxrS9vi1vadf33yLYDMduyArG35
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
eU4zz1nJc1bW74wOqB9A2fW7vM7+eNDsyu90/V/7jv67f+vrXd+1r3yPPjM5zM9YV2ZGuCZzJfhN
ht9k+E2G32T4TYbfZG7GbMzBLbDezK24DbdjHuZjAe7AnfgZFuIu3I17QJ/MIizGz3EflkTjR18W
HTr6cszAFbgSV+FqXIOZmIWf4Ke4FtfhetyAG3ETbsZszMEtuBW34XbMw3wswB24Mzq08fho/JhR
0aFjMhgdHapaXM8Ltld/xWR99ZdPDqv9sWiWFc2yollWNMtW/8eEUaj8X9Kj0YgmjMFY1e2BGIeD
cDAOwdFQQasACiqAggqgIPJNEPkmqASKKoGiSqCoEiiqBIoqgaJKoKgSKKoEiiqBokqgKEpOEyWn
iZLTon/VaU3F+fgOLsB38T18v/K36vghLsSPwiX/ZUS9NEwSTSeJppNE00mi6STRNCOaZkTTjGia
EU0zomlGNM2IphnRNCOaZuTdHnm3R97tkXd75N0eebdH3u2Rd3vk3R55t0fe7RF5J4i8E+TfRP5N
5N9E/k3k30T+TeTfRP5N5N9E/k3k30T+TeTfRLSeK1rPFa3nRsXQH/WihNfQh37sxADK+D0SDIbH
RfYVIvsKkX2FyL5CZF8hqs8U1WeK6jNF9Zmi+kw1fV5Nn1fT59X0eTV9Xk2fV9Pn1fR5NX1eTZ9X
0+fV9Hk1fV5Nn1fT59X0eTV9Xk2fV9Pn1fR5NX1eTZ9X0+fV9Hk1fV5Nn1fT59X0eTV9Xk2fV9Pn
1fR5NX1eTZ9X0+fV9Hk1fV5Nn1fT59X0+ZozovE1Z+JL+DL+ET8LOZkoJxPlZKKcTJSTiXIyUU4m
yslEOZkoJxPlZKKcTJSTiXIyUU4myslEOZkoJxPlZKKcTJSTiXIyUU4myslEOZkop5do0Uu06SXa
9BJteok2vUSbXqJFL9Gil2jRS7ToJVpqfhNlal5EDuujjCyWlcXGyGLZWv2OTJat1dPIZitksymy
2ZRqNvtq6K+dgqlhwbuzWu13q7/uMklmO19mmySzVX4l6dH4R+GBuFUWWxk1xavCtfH68Jgsl5Xl
MrJcUZbLxJtCt0zXPPLbRYdVf+fyNef7ojpZLivLZWW5rCyXleWyslxWlsvKcllZLivLZWW5rCyX
VUkXVdJFlXRRJV1USRdV0kWVdFElXVRJF1XSRZV0USVdVEkXUwtCkroDd+JnWIi7cDfuwb1hksw5
SeacpO9q0Xe16LtaZNGMLJqRRTOyaEYWzciiGVk0I4tmZNGMLJqRRTOyaEadmagzE3Vmos5M1JmJ
OjNRZybqzESdmagzE3Vmos5M1JlJanfoTw1jD17HXryBfXgTfEJmnikzz5SZp8nMOZl5rv4vr//L
6//y+r+8/i+v/8vrEgq6hIIuoahLKMjgk+p2hESnUNApFGTyaTL5tDpzqjMnGX2SjJ7VNRTq9nse
QpKOUINaxFFWps/qKAo6ioKOoqCjKMj8WZk/q7Mo6CwK6fe79gOY4NyHPD8KYq0uo6AymKQyyKY/
4vWTHE+OJug6CiqESSqErM6joPMo6DwKOo+CzqOg8yioHKapHKapHKapHKalxdG0OJoWR9M/wjRM
D5eoJi55p5oQQ/WzeZVETiWRS98TZdKPRuPTj+EJj3/p+GvH9tCiysil7aW+N5+u/CLnB0JOxZFT
ceRUHDm9cIteuEUv3KYXblOB5PTDbfrhlvpTo4yeuEVfkOgLEn1Boi9I9AU9qpQV+oJEX5CoVuaq
VubWfy30138d54SZ+oOk/gKP+VT99/B9/AA/dM8LYV16hx69Q6J3SPQOiQono8LJ6CESPURSf4Pr
b6z+smGi6snoJxL9RKKfSPQTiSpopiooowqaoK9IVEIzVUIZvUWit0j0FoneItFbJHqLRIU0V4U0
V4U0V4U0t36He7+KHoj19WK9qulxVdPjqqYVqqYVqqWZqqW5qqUVqqWZqqWMXj+v18/r9fN6/bxe
P6/Xz+v183r9vF4/r9fP6/Xzev28Xj+v18/r9fN6/bxeP6/Xz6u6cqqunKorp+rKqbpyqq6cqiun
6sqpunKqrpyqK6fqyqm6cqqunKorp+rKqbpyqq5cw0RzOhmfCC0Nn8Q33Ptbnk/Befi2c//T8V8x
Fefj+6GoQsup0HIqtFzDVd4zx/kHXPtgaGt4yONl2B3yo6JovAouN8raRh0YWkYdFGUyXw4dGX1h
5iuYHKao7KZkvubxxaE/cwkuwx8qvas9/gmujbIqvqyKL6viy6r4siq+rIovq+LLqviyKr6sii+r
4suq+LIqvqyKL6viy6r4siq+rIovq+LLqviyKr6sii+r4suq+LIqvqyKL6viy6r4siq+7P/Hii/7
RxXfQdHs8Hc150Rn15yLb0YX1/xL9M2ab0Vn1EyJptT+ffTXtVOjT8Vnha/Ek8OZcUtoiVeGKXF3
6FAbjot3VH/jdXHcG3JxSS/1mn6rLwxHh0ez9/dGzWFH9GzY4e6fHvlF2jPc/TR3P23kl2SHK78V
bZTxRskY5dNGmWSUW+JfhRfip7AyZOKnHVeF7fEz7r463Gv0xUbeF79aHf2LRr/L6BmjLzd6R9QQ
51zRbk46+XiDuXeE5+ONznXKiJtc0Whu68xtnSvPlTtzrl7s6utcfZCrm139FXm0zTuu8I6Z0RGV
35c020Wy+Z/L3lNrT5fJp4abar9X+dvO6Ija1WF67XNhce3W6NTa3frRcernE8OT8a9k35XRR6xg
rZFa9KOZeEO1F83J0ll332dFr8jU141k6sxIT5qxsiQuWVX1lwZDueafolRYGtUhjXo0YBQylW9n
oxFNGIOszv49+GTIRadiZrg+moWf4Ke4FtfhetyAG3ETZoenoxXhiaglPFFTq/6JkUId0qhHA0Yh
g9FownsgT9aMxYEQS2rEkhqxpEYsqRFLasSSGrGjRuyoETtqxI4asaNG7KgRO2rEjpqjcDTOCB01
Z+JL4Ns1fLtmBq7AlbgKV+MazMQs/AQ/xbW4DreE52vm4lbchtsxD/OxIDxf+5Fwfe0p+AzOtHvX
h1ztDXZmZfiSXelnZ8Ns7DE70f/2bz56Prz/mXhPGBe/vr8Q793fEb+xf1m8b38+fnP/ivitMDre
73zY35+q2/9MKh3Gper3F1IN+ztSo/YvS2X251Oj969INYbRqSbnx7huWliamo6L8GNcjEtwKS7D
5ZiBK3Al1LYptW1KbZtS26bUtim1bUptm1LbptS2KbVtSm2bUtum1LYptW1KbZtS26bUtim1bUpt
m1qO/wgdqRVoQSt+haewEm14GqvwDFbjWWwI16c6sBEvoxObkMdm/Ba/wxYUwvV1+8LSdAz2m64L
zemxjgdiAo7DSThZXfBxx5tCR3o+7vDcOtP3e2w9aetJW0/aetKPOvcYHscv8EuscL4FrfgVzD1t
7ukXPF6H33j8InJYj05sCs+nf+u1IvqQYBBD2IXd2BM66scgi/fgABwanq8fj/fifXg/TlGnfBw/
DNfXX4ircDXm4l4sDk/UNzvuCdc3HB06Go6X4z7s+BHHL+CLHv9zeL7hW16fgvPAHhvucP5O/AwL
0Yx94flRUegYdYAj/xrFr0bJ0aPk58y3cD4uwPfwA0wDf8/w9wx/z/D3DH/P8PfMzZiNObgF5pu5
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
bmSozJU1sl2OBbl+DJl+VLk5V4nJaZXT0bN1ztWeOruiPieX9e8Wavr3PBe53WJNUT+m77mucf6d
linh7/dyXeM2i/F3WzzXuK2e6yQkQktLebfdj3WVL/2a6xq3w19X+/tvuK75neXOxPLbxHJXYvld
Yvlf472C8bZlvFcy3v8qaUdJe0o6/L7ErWeE7zHCDxjhf5VsoGQjJZsoMZJh/H9+mxUy+lcmRU1R
79US3qs2p2XO5d7rq9wqSfkxrfae8u+ydS9aPi/0/1fx9e/ws7rD3xYJishtQengLBnPv5U8Iega
dJM7g/xggEzm30eeGgwJhstdwdRgqtwbzA4ekunBz8HPcn9wJDgiDwTHg+MyQ0NDHjQpk5KZJsfk
yCxTzBST2aakKSkPmTPNmTLHVDAV5GFT1VSVuaam6SCPmOFmhLxuRplRsspn/zHyhrnVjJPVZoKZ
IG+ZSWaSvG1mmBmyxswys2StWWA+lXW2sI+a32xdW1fStpltLgW2tW0dGPuIfSSw4fDwr0EY5UV5
Qe2od9Q7qBPdGN0Y1I36Rf2CetGwaFhQPxoRjQgaRKOiUUHD6OPU5KBR9tXZPYIfsycVCoJ0TtGc
FubmnGtzHjXPF+5VuL85WPi2wtPMMWdcps105Vw5W8RVcBVsUVfJVbLF3LnuXFvcVXVV7WnuPHee
zXXnu/NtCXeBu8CWdLVcLXu6q+vq2lKuvqtvz3ANXUNb2jV2je2Z7iJ3kS3jmrgm9izX1DW1Z7tm
rpk9xzV3zW1Z18q1suXcde46W971cr1sBdfH9bEVXV/X11ZyA9wAW9kNcoPsuW6IG2KruBFuhK3q
RrlRtpq72d1sz3O3udtsdXe7u92e7+50d9oabrKbbC9wU91UW9Pd7e62tdy97l5b293v7rd13Aw3
w9Z1M91MW8/NdrNtfTfHzbEN3Fw31zZ0j7pHbSM3z82zjd18N99e6Ba4BfYi96R70l7sFrqFtol7
xj1jL3GL3CLb1C12i+2l7kX3om3m/ub+Zi9zL7uXbXP3invFtnCvuddsS7fcLbeXu9fd67aVe8O9
YVu7N92bto17271tr3Br3Vrb1r3j3rFXunfdu7ade9+9b9u7D92HtoP7yH1kr3Ifu49tR/eJ+8Re
7T51n9pO7jP3mb3Gfe4+t53dV+4r+ye3z+2zXdxP7if7Z3fAHbBd3SF3yF7rjrhfbDcfvD3IX0Lm
CoJjwTGfxQqCAp89IuPfB7DPIvZZin2WYUqb0pJpypvykmWqmCqSrVEohaKeUU/JiXpFvaRw1Cfq
Iy7qG/WVItHQaKgUjYZHw6VYNDIaKcVdWVdWTnPlXXm/xyu6ilLCVXaVpaSr4qrI6a6aqyalXHVX
Xc5wNVwNKe1qupr8Gyh1pIyr5+rJWa6BayBnu0aukZzjLnQXSll3sbtYyrlL3CU+W2n+rUD+regu
d5dLJdfddZfKLs/lybmut+stVdyN7kap6vJdvlRzA91AOc8NdoOluhvuhsv5bqQbKTXcaDdaLnDj
3Dip6ca78VLLTXATpLab5CZJHTfFTZG6bpqbJvXcPe4eqe/uc/dJA/eAe0Aaugfdg9LIzXKzpLF7
yD0kF7qH3cM+Xz/iHpGL3WPuMWni/ur+Kpe4x93j0tQ94Z6QS91T7ilp5p52T8tl7ln3rDR3z7nn
pIV7wb0gLd1L7iW53C1xS6SVW+qWSmv3qntV2rhlbplc4Va6ldKW/Hcl+a+dz51vSXufO9dIB7fO
Z8+r3HqfbTu693y2vdp94LNtJ7fBZ9lr3EafZTu7TT7L/slt9mdGF7fFnxl/dlv9mdHVbXPb5Fr+
/ZFu7kf3o3R3P7uf5Tp30B2U691hd5jnXvH7q0Dqkmur+tiKgu5Bd6/uHfSWIHwlfEVM6kTqhNjM
JplNfB7+T/T9J/r+t6OvNNFXTV9tBf1Sn/8nxv4TY/9LMRZE/f3r+aJBeVPXtgy7SBlpLM2kjXSU
rv79Qn//+n2Mf2U5Ve6XOTJfnpGXZJmslvWyUbbKDtkjB/wrewlSQU7WaLFZw7KGZ93MdUTWGK4j
s27hOirrVn8d7qVxXIdn3cZ1RNZ4riOzbuc6Kusv/jrC203gOjzrTq4jsiZyHZk1ieuorCn+OtLb
TeU6POsuriOypnEdmXU311FZ9/rrKG83nevwrPu4jsi6n+vIrAe4jsoaK8aX3uE5Imuy58isezxH
/RseeZCZD8uamXhmVuKZ2YlnHko8MyfxzMOJR+YmHnkk8chjiUfmJR75a+KR+YlHHk888kTikScT
jzyVeGRh4pGnE488m3hkUeKR5xKPLE488nzikRl+/sOyHsUjC/DIM/+mR15MPPJS4pG/JR5Zknjk
5cQjryQeeTWJldcSzyxLPLM88cyKxDMrE8+8nnjk74lH3kg8sjrxyJuJR95KPPJ24pG1iUfWJR55
J/HI+sQj7yYeeQGPLCVSVuGRNf+mR95PPPJB4pEPE49sSDzyUeKRjxOPbEo88knikc2JRz5NPPJZ
4pGtiUc+T2Lli8QzXyae2ZZ45qvEM9sTz3ydeOSbxCM7E498m3hkV+KR7xKPvIdHNuKRLUTKjn/T
I98nHtmTeGRv4pEfEo/sSzzyY+KRnxKP/Jx45EDikYOJRw4nHjmSeOSXxCNHE4/8mnjkeOKR3xKP
nEg8kk5ipSD2TLbEnskOYs9km9gz2TbxzG48sh+PHMIjxzRS9N8A1nHzNK2LVA02msdsW9ve9rE3
2v72JjvMjrCj7M32VjvZTrFT7V12mr3bvwveYb+xO+23dpf9zu6239s9dq/9we6z++2P9if7sz1g
D9pD9nDh+vpv9AUbgg2+g0f1b/PtFfYKMbadbSfW9rK9JbR9bT9J2aF2qGTa4Xa4ZNmRdqR/JTDa
jpZCdqwdKzl2nP2LFLYP24flNLvMvi+5hesVrsdThtKSHZ4dnhOWDcuF5cMKYcWwUlg5PFdn5kd0
mKfr8euVMsmzifO0zNeJn10HNv+/LaokFtX12ZTN9yUS5ob6O75VwipS6Hf14n5zwxJhyfD0sFR4
Rlg6PDMs423/b79GKkqRsHh4WhiFqTAjzAyzwuywUJgTFg5dWCQsGurzrtDP7TY/SK1jwovDJpIT
XhpeKs6X1ZdS9km70C6yz9u37Nt2jV1r19l37Hr7rn3Pvv+PPK5Py+wT9gnf4lNWv2/1rH3W+3ux
9XnUe+5N398Ou/e/W3/CWz3rS5fZ5XaFXWlft3+3q+wbdrV98x+tMa0/aZ/0rS+0+mshi+wi3/rz
1mdnP8L3fes6D229huT+w1b/wTzw2Y7EZ1rvD0YX9TQafL1ooFkif5EJcqdMlEkyWab4fX2XTONf
rr5Xpst9fpc/IDPkQZkps2S2POT3/MMyVx6RR+UxmSd/9RngcVkgT8iT8pQslKd9PnhWFslzslie
lxfkRZ8d/iZL5GVZKq/Iq/KazxXLZYWslNfl77JK3vCZ4015S96WNbJW1sk7Po+8K+/J+/KBfCgb
5COfVT6WTfKJbJZPZYt85nPM5/KFfCnb5CvZLl/7jPON7JRvZZd8J7vle59/9soPsk/2y4/yk/zs
s9FBOSSH5Yj8IkflVzkmx+U3OSFpKfBhHJirTEdztelkrjGdzZ9MF/Nn09Vca7qZ7uY6c725wfQw
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
mHFHOHOzSrdcbqxPcapXtUTFOtWjYUc3uztPvvxGry2v1Jdng9TM9RUaOQwMAMjDlnINCmVuZHN0
cmVhbQ0KZW5kb2JqDQo3OTggMCBvYmoNClsgMFsgNTA3XSAgM1sgMjI2IDYwNl0gIDE4WyA1Mjld
ICAyNFsgNjMwXSAgNDRbIDYzMV0gIDQ3WyAyNjddICA2OFsgODc0IDY1OV0gIDg3WyA1MzJdICA5
MFsgNTYzXSAgOTRbIDQ3M10gIDEwMFsgNDk1XSAgMTA0WyA2NTNdICAxMTZbIDkwNl0gIDI1OFsg
NDk0XSAgMjcxWyA1MzcgNDE4XSAgMjgyWyA1MzddICAyODZbIDUwM10gIDI5NlsgMzE2XSAgMzM2
WyA0NzRdICAzNDZbIDUzN10gIDM0OVsgMjQ2XSAgMzY0WyA0ODBdICAzNjdbIDI0Nl0gIDM3M1sg
ODEzIDUzN10gIDM4MVsgNTM4XSAgMzkzWyA1MzddICAzOTZbIDM1NV0gIDQwMFsgMzk5XSAgNDEw
WyAzNDddICA0MzdbIDUzN10gIDQ0OFsgNDczIDc0NV0gIDQ1NFsgNDU5IDQ3NF0gIDg4MlsgMzA2
XSAgODg0WyA0OThdICA4OTRbIDMxMiAzMTJdICA5NTFbIDQ5OF0gIDEwMDVbIDUwNyA1MDcgNTA3
IDUwNyA1MDcgNTA3IDUwNyA1MDddIF0gDQplbmRvYmoNCjc5OSAwIG9iag0KWyAyMjYgMCAwIDQ5
OCAwIDAgMCAwIDMxMiAzMTIgMCAwIDAgMzA2IDAgMCAwIDUwNyA1MDcgNTA3IDUwNyA1MDcgNTA3
IDUwNyA1MDcgMCAwIDAgMCAwIDAgMCAwIDYwNiAwIDUyOSA2MzAgMCAwIDAgNjMxIDI2NyAwIDAg
MCA4NzQgNjU5IDAgNTMyIDAgNTYzIDQ3MyA0OTUgNjUzIDAgOTA2IDAgMCAwIDAgMCAwIDAgMCAw
IDQ5NCA1MzcgNDE4IDUzNyA1MDMgMzE2IDQ3NCA1MzcgMjQ2IDAgNDgwIDI0NiA4MTMgNTM3IDUz
OCA1MzcgMCAzNTUgMzk5IDM0NyA1MzcgNDczIDc0NSA0NTkgNDc0XSANCmVuZG9iag0KODAwIDAg
b2JqDQo8PC9UeXBlL1hSZWYvU2l6ZSA4MDAvV1sgMSA0IDJdIC9Sb290IDEgMCBSL0luZm8gMzYg
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
MiAwMDAwMCBuDQowMDAwMDAxMjYyIDAwMDAwIG4NCjAwMDAwMDEzMTUgMDAwMDAgbg0KMDAwMDAw
MTU4OSAwMDAwMCBuDQowMDAwMDEwMzI5IDAwMDAwIG4NCjAwMDAwMTA1MDUgMDAwMDAgbg0KMDAw
MDAxMDc1MSAwMDAwMCBuDQowMDAwMDEwODg0IDAwMDAwIG4NCjAwMDAwMTA5MTQgMDAwMDAgbg0K
MDAwMDAxMTA3NSAwMDAwMCBuDQowMDAwMDExMTQ5IDAwMDAwIG4NCjAwMDAwMTEzOTAgMDAwMDAg
bg0KMDAwMDAxMTY1NiAwMDAwMCBuDQowMDAwMDE1MTA1IDAwMDAwIG4NCjAwMDAwMTUzNzEgMDAw
MDAgbg0KMDAwMDAxNzgyNyAwMDAwMCBuDQowMDAwMDE4MTEzIDAwMDAwIG4NCjAwMDAwMjY5Mzkg
MDAwMDAgbg0KMDAwMDAyNzA3NyAwMDAwMCBuDQowMDAwMDI3MTA3IDAwMDAwIG4NCjAwMDAwMjcy
NzMgMDAwMDAgbg0KMDAwMDAyNzM0NyAwMDAwMCBuDQowMDAwMDI3NTkzIDAwMDAwIG4NCjAwMDAw
Mjc4NDkgMDAwMDAgbg0KMDAwMDAyODI5MCAwMDAwMCBuDQowMDAwMDI4NTY2IDAwMDAwIG4NCjAw
MDAwMzkwMjUgMDAwMDAgbg0KMDAwMDAzOTMwMSAwMDAwMCBuDQowMDAwMDQxNzk3IDAwMDAwIG4N
CjAwMDAwNDIwNjMgMDAwMDAgbg0KMDAwMDA0NDU5MiAwMDAwMCBuDQowMDAwMDAwMDM4IDY1NTM1
IGYNCjAwMDAwMDAwMzkgNjU1MzUgZg0KMDAwMDAwMDA0MCA2NTUzNSBmDQowMDAwMDAwMDQxIDY1
NTM1IGYNCjAwMDAwMDAwNDIgNjU1MzUgZg0KMDAwMDAwMDA0MyA2NTUzNSBmDQowMDAwMDAwMDQ0
IDY1NTM1IGYNCjAwMDAwMDAwNDUgNjU1MzUgZg0KMDAwMDAwMDA0NiA2NTUzNSBmDQowMDAwMDAw
MDQ3IDY1NTM1IGYNCjAwMDAwMDAwNDggNjU1MzUgZg0KMDAwMDAwMDA0OSA2NTUzNSBmDQowMDAw
MDAwMDUwIDY1NTM1IGYNCjAwMDAwMDAwNTEgNjU1MzUgZg0KMDAwMDAwMDA1MiA2NTUzNSBmDQow
MDAwMDAwMDUzIDY1NTM1IGYNCjAwMDAwMDAwNTQgNjU1MzUgZg0KMDAwMDAwMDA1NSA2NTUzNSBm
DQowMDAwMDAwMDU2IDY1NTM1IGYNCjAwMDAwMDAwNTcgNjU1MzUgZg0KMDAwMDAwMDA1OCA2NTUz
NSBmDQowMDAwMDAwMDU5IDY1NTM1IGYNCjAwMDAwMDAwNjAgNjU1MzUgZg0KMDAwMDAwMDA2MSA2
NTUzNSBmDQowMDAwMDAwMDYyIDY1NTM1IGYNCjAwMDAwMDAwNjMgNjU1MzUgZg0KMDAwMDAwMDA2
NCA2NTUzNSBmDQowMDAwMDAwMDY1IDY1NTM1IGYNCjAwMDAwMDAwNjYgNjU1MzUgZg0KMDAwMDAw
MDA2NyA2NTUzNSBmDQowMDAwMDAwMDY4IDY1NTM1IGYNCjAwMDAwMDAwNjkgNjU1MzUgZg0KMDAw
MDAwMDA3MCA2NTUzNSBmDQowMDAwMDAwMDcxIDY1NTM1IGYNCjAwMDAwMDAwNzIgNjU1MzUgZg0K
MDAwMDAwMDA3MyA2NTUzNSBmDQowMDAwMDAwMDc0IDY1NTM1IGYNCjAwMDAwMDAwNzUgNjU1MzUg
Zg0KMDAwMDAwMDA3NiA2NTUzNSBmDQowMDAwMDAwMDc3IDY1NTM1IGYNCjAwMDAwMDAwNzggNjU1
MzUgZg0KMDAwMDAwMDA3OSA2NTUzNSBmDQowMDAwMDAwMDgwIDY1NTM1IGYNCjAwMDAwMDAwODEg
NjU1MzUgZg0KMDAwMDAwMDA4MiA2NTUzNSBmDQowMDAwMDAwMDgzIDY1NTM1IGYNCjAwMDAwMDAw
ODQgNjU1MzUgZg0KMDAwMDAwMDA4NSA2NTUzNSBmDQowMDAwMDAwMDg2IDY1NTM1IGYNCjAwMDAw
MDAwODcgNjU1MzUgZg0KMDAwMDAwMDA4OCA2NTUzNSBmDQowMDAwMDAwMDg5IDY1NTM1IGYNCjAw
MDAwMDAwOTAgNjU1MzUgZg0KMDAwMDAwMDA5MSA2NTUzNSBmDQowMDAwMDAwMDkyIDY1NTM1IGYN
CjAwMDAwMDAwOTMgNjU1MzUgZg0KMDAwMDAwMDA5NCA2NTUzNSBmDQowMDAwMDAwMDk1IDY1NTM1
IGYNCjAwMDAwMDAwOTYgNjU1MzUgZg0KMDAwMDAwMDA5NyA2NTUzNSBmDQowMDAwMDAwMDk4IDY1
NTM1IGYNCjAwMDAwMDAwOTkgNjU1MzUgZg0KMDAwMDAwMDEwMCA2NTUzNSBmDQowMDAwMDAwMTAx
IDY1NTM1IGYNCjAwMDAwMDAxMDIgNjU1MzUgZg0KMDAwMDAwMDEwMyA2NTUzNSBmDQowMDAwMDAw
MTA0IDY1NTM1IGYNCjAwMDAwMDAxMDUgNjU1MzUgZg0KMDAwMDAwMDEwNiA2NTUzNSBmDQowMDAw
MDAwMTA3IDY1NTM1IGYNCjAwMDAwMDAxMDggNjU1MzUgZg0KMDAwMDAwMDEwOSA2NTUzNSBmDQow
MDAwMDAwMTEwIDY1NTM1IGYNCjAwMDAwMDAxMTEgNjU1MzUgZg0KMDAwMDAwMDExMiA2NTUzNSBm
DQowMDAwMDAwMTEzIDY1NTM1IGYNCjAwMDAwMDAxMTQgNjU1MzUgZg0KMDAwMDAwMDExNSA2NTUz
NSBmDQowMDAwMDAwMTE2IDY1NTM1IGYNCjAwMDAwMDAxMTcgNjU1MzUgZg0KMDAwMDAwMDExOCA2
NTUzNSBmDQowMDAwMDAwMTE5IDY1NTM1IGYNCjAwMDAwMDAxMjAgNjU1MzUgZg0KMDAwMDAwMDEy
MSA2NTUzNSBmDQowMDAwMDAwMTIyIDY1NTM1IGYNCjAwMDAwMDAxMjMgNjU1MzUgZg0KMDAwMDAw
MDEyNCA2NTUzNSBmDQowMDAwMDAwMTI1IDY1NTM1IGYNCjAwMDAwMDAxMjYgNjU1MzUgZg0KMDAw
MDAwMDEyNyA2NTUzNSBmDQowMDAwMDAwMTI4IDY1NTM1IGYNCjAwMDAwMDAxMjkgNjU1MzUgZg0K
MDAwMDAwMDEzMCA2NTUzNSBmDQowMDAwMDAwMTMxIDY1NTM1IGYNCjAwMDAwMDAxMzIgNjU1MzUg
Zg0KMDAwMDAwMDEzMyA2NTUzNSBmDQowMDAwMDAwMTM0IDY1NTM1IGYNCjAwMDAwMDAxMzUgNjU1
MzUgZg0KMDAwMDAwMDEzNiA2NTUzNSBmDQowMDAwMDAwMTM3IDY1NTM1IGYNCjAwMDAwMDAxMzgg
NjU1MzUgZg0KMDAwMDAwMDEzOSA2NTUzNSBmDQowMDAwMDAwMTQwIDY1NTM1IGYNCjAwMDAwMDAx
NDEgNjU1MzUgZg0KMDAwMDAwMDE0MiA2NTUzNSBmDQowMDAwMDAwMTQzIDY1NTM1IGYNCjAwMDAw
MDAxNDQgNjU1MzUgZg0KMDAwMDAwMDE0NSA2NTUzNSBmDQowMDAwMDAwMTQ2IDY1NTM1IGYNCjAw
MDAwMDAxNDcgNjU1MzUgZg0KMDAwMDAwMDE0OCA2NTUzNSBmDQowMDAwMDAwMTQ5IDY1NTM1IGYN
CjAwMDAwMDAxNTAgNjU1MzUgZg0KMDAwMDAwMDE1MSA2NTUzNSBmDQowMDAwMDAwMTUyIDY1NTM1
IGYNCjAwMDAwMDAxNTMgNjU1MzUgZg0KMDAwMDAwMDE1NCA2NTUzNSBmDQowMDAwMDAwMTU1IDY1
NTM1IGYNCjAwMDAwMDAxNTYgNjU1MzUgZg0KMDAwMDAwMDE1NyA2NTUzNSBmDQowMDAwMDAwMTU4
IDY1NTM1IGYNCjAwMDAwMDAxNTkgNjU1MzUgZg0KMDAwMDAwMDE2MCA2NTUzNSBmDQowMDAwMDAw
MTYxIDY1NTM1IGYNCjAwMDAwMDAxNjIgNjU1MzUgZg0KMDAwMDAwMDE2MyA2NTUzNSBmDQowMDAw
MDAwMTY0IDY1NTM1IGYNCjAwMDAwMDAxNjUgNjU1MzUgZg0KMDAwMDAwMDE2NiA2NTUzNSBmDQow
MDAwMDAwMTY3IDY1NTM1IGYNCjAwMDAwMDAxNjggNjU1MzUgZg0KMDAwMDAwMDE2OSA2NTUzNSBm
DQowMDAwMDAwMTcwIDY1NTM1IGYNCjAwMDAwMDAxNzEgNjU1MzUgZg0KMDAwMDAwMDE3MiA2NTUz
NSBmDQowMDAwMDAwMTczIDY1NTM1IGYNCjAwMDAwMDAxNzQgNjU1MzUgZg0KMDAwMDAwMDE3NSA2
NTUzNSBmDQowMDAwMDAwMTc2IDY1NTM1IGYNCjAwMDAwMDAxNzcgNjU1MzUgZg0KMDAwMDAwMDE3
OCA2NTUzNSBmDQowMDAwMDAwMTc5IDY1NTM1IGYNCjAwMDAwMDAxODAgNjU1MzUgZg0KMDAwMDAw
MDE4MSA2NTUzNSBmDQowMDAwMDAwMTgyIDY1NTM1IGYNCjAwMDAwMDAxODMgNjU1MzUgZg0KMDAw
MDAwMDE4NCA2NTUzNSBmDQowMDAwMDAwMTg1IDY1NTM1IGYNCjAwMDAwMDAxODYgNjU1MzUgZg0K
MDAwMDAwMDE4NyA2NTUzNSBmDQowMDAwMDAwMTg4IDY1NTM1IGYNCjAwMDAwMDAxODkgNjU1MzUg
Zg0KMDAwMDAwMDE5MCA2NTUzNSBmDQowMDAwMDAwMTkxIDY1NTM1IGYNCjAwMDAwMDAxOTIgNjU1
MzUgZg0KMDAwMDAwMDE5MyA2NTUzNSBmDQowMDAwMDAwMTk0IDY1NTM1IGYNCjAwMDAwMDAxOTUg
NjU1MzUgZg0KMDAwMDAwMDE5NiA2NTUzNSBmDQowMDAwMDAwMTk3IDY1NTM1IGYNCjAwMDAwMDAx
OTggNjU1MzUgZg0KMDAwMDAwMDE5OSA2NTUzNSBmDQowMDAwMDAwMjAwIDY1NTM1IGYNCjAwMDAw
MDAyMDEgNjU1MzUgZg0KMDAwMDAwMDIwMiA2NTUzNSBmDQowMDAwMDAwMjAzIDY1NTM1IGYNCjAw
MDAwMDAyMDQgNjU1MzUgZg0KMDAwMDAwMDIwNSA2NTUzNSBmDQowMDAwMDAwMjA2IDY1NTM1IGYN
CjAwMDAwMDAyMDcgNjU1MzUgZg0KMDAwMDAwMDIwOCA2NTUzNSBmDQowMDAwMDAwMjA5IDY1NTM1
IGYNCjAwMDAwMDAyMTAgNjU1MzUgZg0KMDAwMDAwMDIxMSA2NTUzNSBmDQowMDAwMDAwMjEyIDY1
NTM1IGYNCjAwMDAwMDAyMTMgNjU1MzUgZg0KMDAwMDAwMDIxNCA2NTUzNSBmDQowMDAwMDAwMjE1
IDY1NTM1IGYNCjAwMDAwMDAyMTYgNjU1MzUgZg0KMDAwMDAwMDIxNyA2NTUzNSBmDQowMDAwMDAw
MjE4IDY1NTM1IGYNCjAwMDAwMDAyMTkgNjU1MzUgZg0KMDAwMDAwMDIyMCA2NTUzNSBmDQowMDAw
MDAwMjIxIDY1NTM1IGYNCjAwMDAwMDAyMjIgNjU1MzUgZg0KMDAwMDAwMDIyMyA2NTUzNSBmDQow
MDAwMDAwMjI0IDY1NTM1IGYNCjAwMDAwMDAyMjUgNjU1MzUgZg0KMDAwMDAwMDIyNiA2NTUzNSBm
DQowMDAwMDAwMjI3IDY1NTM1IGYNCjAwMDAwMDAyMjggNjU1MzUgZg0KMDAwMDAwMDIyOSA2NTUz
NSBmDQowMDAwMDAwMjMwIDY1NTM1IGYNCjAwMDAwMDAyMzEgNjU1MzUgZg0KMDAwMDAwMDIzMiA2
NTUzNSBmDQowMDAwMDAwMjMzIDY1NTM1IGYNCjAwMDAwMDAyMzQgNjU1MzUgZg0KMDAwMDAwMDIz
NSA2NTUzNSBmDQowMDAwMDAwMjM2IDY1NTM1IGYNCjAwMDAwMDAyMzcgNjU1MzUgZg0KMDAwMDAw
MDIzOCA2NTUzNSBmDQowMDAwMDAwMjM5IDY1NTM1IGYNCjAwMDAwMDAyNDAgNjU1MzUgZg0KMDAw
MDAwMDI0MSA2NTUzNSBmDQowMDAwMDAwMjQyIDY1NTM1IGYNCjAwMDAwMDAyNDMgNjU1MzUgZg0K
MDAwMDAwMDI0NCA2NTUzNSBmDQowMDAwMDAwMjQ1IDY1NTM1IGYNCjAwMDAwMDAyNDYgNjU1MzUg
Zg0KMDAwMDAwMDI0NyA2NTUzNSBmDQowMDAwMDAwMjQ4IDY1NTM1IGYNCjAwMDAwMDAyNDkgNjU1
MzUgZg0KMDAwMDAwMDI1MCA2NTUzNSBmDQowMDAwMDAwMjUxIDY1NTM1IGYNCjAwMDAwMDAyNTIg
NjU1MzUgZg0KMDAwMDAwMDI1MyA2NTUzNSBmDQowMDAwMDAwMjU0IDY1NTM1IGYNCjAwMDAwMDAy
NTUgNjU1MzUgZg0KMDAwMDAwMDI1NiA2NTUzNSBmDQowMDAwMDAwMjU3IDY1NTM1IGYNCjAwMDAw
MDAyNTggNjU1MzUgZg0KMDAwMDAwMDI1OSA2NTUzNSBmDQowMDAwMDAwMjYwIDY1NTM1IGYNCjAw
MDAwMDAyNjEgNjU1MzUgZg0KMDAwMDAwMDI2MiA2NTUzNSBmDQowMDAwMDAwMjYzIDY1NTM1IGYN
CjAwMDAwMDAyNjQgNjU1MzUgZg0KMDAwMDAwMDI2NSA2NTUzNSBmDQowMDAwMDAwMjY2IDY1NTM1
IGYNCjAwMDAwMDAyNjcgNjU1MzUgZg0KMDAwMDAwMDI2OCA2NTUzNSBmDQowMDAwMDAwMjY5IDY1
NTM1IGYNCjAwMDAwMDAyNzAgNjU1MzUgZg0KMDAwMDAwMDI3MSA2NTUzNSBmDQowMDAwMDAwMjcy
IDY1NTM1IGYNCjAwMDAwMDAyNzMgNjU1MzUgZg0KMDAwMDAwMDI3NCA2NTUzNSBmDQowMDAwMDAw
Mjc1IDY1NTM1IGYNCjAwMDAwMDAyNzYgNjU1MzUgZg0KMDAwMDAwMDI3NyA2NTUzNSBmDQowMDAw
MDAwMjc4IDY1NTM1IGYNCjAwMDAwMDAyNzkgNjU1MzUgZg0KMDAwMDAwMDI4MCA2NTUzNSBmDQow
MDAwMDAwMjgxIDY1NTM1IGYNCjAwMDAwMDAyODIgNjU1MzUgZg0KMDAwMDAwMDI4MyA2NTUzNSBm
DQowMDAwMDAwMjg0IDY1NTM1IGYNCjAwMDAwMDAyODUgNjU1MzUgZg0KMDAwMDAwMDI4NiA2NTUz
NSBmDQowMDAwMDAwMjg3IDY1NTM1IGYNCjAwMDAwMDAyODggNjU1MzUgZg0KMDAwMDAwMDI4OSA2
NTUzNSBmDQowMDAwMDAwMjkwIDY1NTM1IGYNCjAwMDAwMDAyOTEgNjU1MzUgZg0KMDAwMDAwMDI5
MiA2NTUzNSBmDQowMDAwMDAwMjkzIDY1NTM1IGYNCjAwMDAwMDAyOTQgNjU1MzUgZg0KMDAwMDAw
MDI5NSA2NTUzNSBmDQowMDAwMDAwMjk2IDY1NTM1IGYNCjAwMDAwMDAyOTcgNjU1MzUgZg0KMDAw
MDAwMDI5OCA2NTUzNSBmDQowMDAwMDAwMjk5IDY1NTM1IGYNCjAwMDAwMDAzMDAgNjU1MzUgZg0K
MDAwMDAwMDMwMSA2NTUzNSBmDQowMDAwMDAwMzAyIDY1NTM1IGYNCjAwMDAwMDAzMDMgNjU1MzUg
Zg0KMDAwMDAwMDMwNCA2NTUzNSBmDQowMDAwMDAwMzA1IDY1NTM1IGYNCjAwMDAwMDAzMDYgNjU1
MzUgZg0KMDAwMDAwMDMwNyA2NTUzNSBmDQowMDAwMDAwMzA4IDY1NTM1IGYNCjAwMDAwMDAzMDkg
NjU1MzUgZg0KMDAwMDAwMDMxMCA2NTUzNSBmDQowMDAwMDAwMzExIDY1NTM1IGYNCjAwMDAwMDAz
MTIgNjU1MzUgZg0KMDAwMDAwMDMxMyA2NTUzNSBmDQowMDAwMDAwMzE0IDY1NTM1IGYNCjAwMDAw
MDAzMTUgNjU1MzUgZg0KMDAwMDAwMDMxNiA2NTUzNSBmDQowMDAwMDAwMzE3IDY1NTM1IGYNCjAw
MDAwMDAzMTggNjU1MzUgZg0KMDAwMDAwMDMxOSA2NTUzNSBmDQowMDAwMDAwMzIwIDY1NTM1IGYN
CjAwMDAwMDAzMjEgNjU1MzUgZg0KMDAwMDAwMDMyMiA2NTUzNSBmDQowMDAwMDAwMzIzIDY1NTM1
IGYNCjAwMDAwMDAzMjQgNjU1MzUgZg0KMDAwMDAwMDMyNSA2NTUzNSBmDQowMDAwMDAwMzI2IDY1
NTM1IGYNCjAwMDAwMDAzMjcgNjU1MzUgZg0KMDAwMDAwMDMyOCA2NTUzNSBmDQowMDAwMDAwMzI5
IDY1NTM1IGYNCjAwMDAwMDAzMzAgNjU1MzUgZg0KMDAwMDAwMDMzMSA2NTUzNSBmDQowMDAwMDAw
MzMyIDY1NTM1IGYNCjAwMDAwMDAzMzMgNjU1MzUgZg0KMDAwMDAwMDMzNCA2NTUzNSBmDQowMDAw
MDAwMzM1IDY1NTM1IGYNCjAwMDAwMDAzMzYgNjU1MzUgZg0KMDAwMDAwMDMzNyA2NTUzNSBmDQow
MDAwMDAwMzM4IDY1NTM1IGYNCjAwMDAwMDAzMzkgNjU1MzUgZg0KMDAwMDAwMDM0MCA2NTUzNSBm
DQowMDAwMDAwMzQxIDY1NTM1IGYNCjAwMDAwMDAzNDIgNjU1MzUgZg0KMDAwMDAwMDM0MyA2NTUz
NSBmDQowMDAwMDAwMzQ0IDY1NTM1IGYNCjAwMDAwMDAzNDUgNjU1MzUgZg0KMDAwMDAwMDM0NiA2
NTUzNSBmDQowMDAwMDAwMzQ3IDY1NTM1IGYNCjAwMDAwMDAzNDggNjU1MzUgZg0KMDAwMDAwMDM0
OSA2NTUzNSBmDQowMDAwMDAwMzUwIDY1NTM1IGYNCjAwMDAwMDAzNTEgNjU1MzUgZg0KMDAwMDAw
MDM1MiA2NTUzNSBmDQowMDAwMDAwMzUzIDY1NTM1IGYNCjAwMDAwMDAzNTQgNjU1MzUgZg0KMDAw
MDAwMDM1NSA2NTUzNSBmDQowMDAwMDAwMzU2IDY1NTM1IGYNCjAwMDAwMDAzNTcgNjU1MzUgZg0K
MDAwMDAwMDM1OCA2NTUzNSBmDQowMDAwMDAwMzU5IDY1NTM1IGYNCjAwMDAwMDAzNjAgNjU1MzUg
Zg0KMDAwMDAwMDM2MSA2NTUzNSBmDQowMDAwMDAwMzYyIDY1NTM1IGYNCjAwMDAwMDAzNjMgNjU1
MzUgZg0KMDAwMDAwMDM2NCA2NTUzNSBmDQowMDAwMDAwMzY1IDY1NTM1IGYNCjAwMDAwMDAzNjYg
NjU1MzUgZg0KMDAwMDAwMDM2NyA2NTUzNSBmDQowMDAwMDAwMzY4IDY1NTM1IGYNCjAwMDAwMDAz
NjkgNjU1MzUgZg0KMDAwMDAwMDM3MCA2NTUzNSBmDQowMDAwMDAwMzcxIDY1NTM1IGYNCjAwMDAw
MDAzNzIgNjU1MzUgZg0KMDAwMDAwMDM3MyA2NTUzNSBmDQowMDAwMDAwMzc0IDY1NTM1IGYNCjAw
MDAwMDAzNzUgNjU1MzUgZg0KMDAwMDAwMDM3NiA2NTUzNSBmDQowMDAwMDAwMzc3IDY1NTM1IGYN
CjAwMDAwMDAzNzggNjU1MzUgZg0KMDAwMDAwMDM3OSA2NTUzNSBmDQowMDAwMDAwMzgwIDY1NTM1
IGYNCjAwMDAwMDAzODEgNjU1MzUgZg0KMDAwMDAwMDM4MiA2NTUzNSBmDQowMDAwMDAwMzgzIDY1
NTM1IGYNCjAwMDAwMDAzODQgNjU1MzUgZg0KMDAwMDAwMDM4NSA2NTUzNSBmDQowMDAwMDAwMzg2
IDY1NTM1IGYNCjAwMDAwMDAzODcgNjU1MzUgZg0KMDAwMDAwMDM4OCA2NTUzNSBmDQowMDAwMDAw
Mzg5IDY1NTM1IGYNCjAwMDAwMDAzOTAgNjU1MzUgZg0KMDAwMDAwMDM5MSA2NTUzNSBmDQowMDAw
MDAwMzkyIDY1NTM1IGYNCjAwMDAwMDAzOTMgNjU1MzUgZg0KMDAwMDAwMDM5NCA2NTUzNSBmDQow
MDAwMDAwMzk1IDY1NTM1IGYNCjAwMDAwMDAzOTYgNjU1MzUgZg0KMDAwMDAwMDM5NyA2NTUzNSBm
DQowMDAwMDAwMzk4IDY1NTM1IGYNCjAwMDAwMDAzOTkgNjU1MzUgZg0KMDAwMDAwMDQwMCA2NTUz
NSBmDQowMDAwMDAwNDAxIDY1NTM1IGYNCjAwMDAwMDA0MDIgNjU1MzUgZg0KMDAwMDAwMDQwMyA2
NTUzNSBmDQowMDAwMDAwNDA0IDY1NTM1IGYNCjAwMDAwMDA0MDUgNjU1MzUgZg0KMDAwMDAwMDQw
NiA2NTUzNSBmDQowMDAwMDAwNDA3IDY1NTM1IGYNCjAwMDAwMDA0MDggNjU1MzUgZg0KMDAwMDAw
MDQwOSA2NTUzNSBmDQowMDAwMDAwNDEwIDY1NTM1IGYNCjAwMDAwMDA0MTEgNjU1MzUgZg0KMDAw
MDAwMDQxMiA2NTUzNSBmDQowMDAwMDAwNDEzIDY1NTM1IGYNCjAwMDAwMDA0MTQgNjU1MzUgZg0K
MDAwMDAwMDQxNSA2NTUzNSBmDQowMDAwMDAwNDE2IDY1NTM1IGYNCjAwMDAwMDA0MTcgNjU1MzUg
Zg0KMDAwMDAwMDQxOCA2NTUzNSBmDQowMDAwMDAwNDE5IDY1NTM1IGYNCjAwMDAwMDA0MjAgNjU1
MzUgZg0KMDAwMDAwMDQyMSA2NTUzNSBmDQowMDAwMDAwNDIyIDY1NTM1IGYNCjAwMDAwMDA0MjMg
NjU1MzUgZg0KMDAwMDAwMDQyNCA2NTUzNSBmDQowMDAwMDAwNDI1IDY1NTM1IGYNCjAwMDAwMDA0
MjYgNjU1MzUgZg0KMDAwMDAwMDQyNyA2NTUzNSBmDQowMDAwMDAwNDI4IDY1NTM1IGYNCjAwMDAw
MDA0MjkgNjU1MzUgZg0KMDAwMDAwMDQzMCA2NTUzNSBmDQowMDAwMDAwNDMxIDY1NTM1IGYNCjAw
MDAwMDA0MzIgNjU1MzUgZg0KMDAwMDAwMDQzMyA2NTUzNSBmDQowMDAwMDAwNDM0IDY1NTM1IGYN
CjAwMDAwMDA0MzUgNjU1MzUgZg0KMDAwMDAwMDQzNiA2NTUzNSBmDQowMDAwMDAwNDM3IDY1NTM1
IGYNCjAwMDAwMDA0MzggNjU1MzUgZg0KMDAwMDAwMDQzOSA2NTUzNSBmDQowMDAwMDAwNDQwIDY1
NTM1IGYNCjAwMDAwMDA0NDEgNjU1MzUgZg0KMDAwMDAwMDQ0MiA2NTUzNSBmDQowMDAwMDAwNDQz
IDY1NTM1IGYNCjAwMDAwMDA0NDQgNjU1MzUgZg0KMDAwMDAwMDQ0NSA2NTUzNSBmDQowMDAwMDAw
NDQ2IDY1NTM1IGYNCjAwMDAwMDA0NDcgNjU1MzUgZg0KMDAwMDAwMDQ0OCA2NTUzNSBmDQowMDAw
MDAwNDQ5IDY1NTM1IGYNCjAwMDAwMDA0NTAgNjU1MzUgZg0KMDAwMDAwMDQ1MSA2NTUzNSBmDQow
MDAwMDAwNDUyIDY1NTM1IGYNCjAwMDAwMDA0NTMgNjU1MzUgZg0KMDAwMDAwMDQ1NCA2NTUzNSBm
DQowMDAwMDAwNDU1IDY1NTM1IGYNCjAwMDAwMDA0NTYgNjU1MzUgZg0KMDAwMDAwMDQ1NyA2NTUz
NSBmDQowMDAwMDAwNDU4IDY1NTM1IGYNCjAwMDAwMDA0NTkgNjU1MzUgZg0KMDAwMDAwMDQ2MCA2
NTUzNSBmDQowMDAwMDAwNDYxIDY1NTM1IGYNCjAwMDAwMDA0NjIgNjU1MzUgZg0KMDAwMDAwMDQ2
MyA2NTUzNSBmDQowMDAwMDAwNDY0IDY1NTM1IGYNCjAwMDAwMDA0NjUgNjU1MzUgZg0KMDAwMDAw
MDQ2NiA2NTUzNSBmDQowMDAwMDAwNDY3IDY1NTM1IGYNCjAwMDAwMDA0NjggNjU1MzUgZg0KMDAw
MDAwMDQ2OSA2NTUzNSBmDQowMDAwMDAwNDcwIDY1NTM1IGYNCjAwMDAwMDA0NzEgNjU1MzUgZg0K
MDAwMDAwMDQ3MiA2NTUzNSBmDQowMDAwMDAwNDczIDY1NTM1IGYNCjAwMDAwMDA0NzQgNjU1MzUg
Zg0KMDAwMDAwMDQ3NSA2NTUzNSBmDQowMDAwMDAwNDc2IDY1NTM1IGYNCjAwMDAwMDA0NzcgNjU1
MzUgZg0KMDAwMDAwMDQ3OCA2NTUzNSBmDQowMDAwMDAwNDc5IDY1NTM1IGYNCjAwMDAwMDA0ODAg
NjU1MzUgZg0KMDAwMDAwMDQ4MSA2NTUzNSBmDQowMDAwMDAwNDgyIDY1NTM1IGYNCjAwMDAwMDA0
ODMgNjU1MzUgZg0KMDAwMDAwMDQ4NCA2NTUzNSBmDQowMDAwMDAwNDg1IDY1NTM1IGYNCjAwMDAw
MDA0ODYgNjU1MzUgZg0KMDAwMDAwMDQ4NyA2NTUzNSBmDQowMDAwMDAwNDg4IDY1NTM1IGYNCjAw
MDAwMDA0ODkgNjU1MzUgZg0KMDAwMDAwMDQ5MCA2NTUzNSBmDQowMDAwMDAwNDkxIDY1NTM1IGYN
CjAwMDAwMDA0OTIgNjU1MzUgZg0KMDAwMDAwMDQ5MyA2NTUzNSBmDQowMDAwMDAwNDk0IDY1NTM1
IGYNCjAwMDAwMDA0OTUgNjU1MzUgZg0KMDAwMDAwMDQ5NiA2NTUzNSBmDQowMDAwMDAwNDk3IDY1
NTM1IGYNCjAwMDAwMDA0OTggNjU1MzUgZg0KMDAwMDAwMDQ5OSA2NTUzNSBmDQowMDAwMDAwNTAw
IDY1NTM1IGYNCjAwMDAwMDA1MDEgNjU1MzUgZg0KMDAwMDAwMDUwMiA2NTUzNSBmDQowMDAwMDAw
NTAzIDY1NTM1IGYNCjAwMDAwMDA1MDQgNjU1MzUgZg0KMDAwMDAwMDUwNSA2NTUzNSBmDQowMDAw
MDAwNTA2IDY1NTM1IGYNCjAwMDAwMDA1MDcgNjU1MzUgZg0KMDAwMDAwMDUwOCA2NTUzNSBmDQow
MDAwMDAwNTA5IDY1NTM1IGYNCjAwMDAwMDA1MTAgNjU1MzUgZg0KMDAwMDAwMDUxMSA2NTUzNSBm
DQowMDAwMDAwNTEyIDY1NTM1IGYNCjAwMDAwMDA1MTMgNjU1MzUgZg0KMDAwMDAwMDUxNCA2NTUz
NSBmDQowMDAwMDAwNTE1IDY1NTM1IGYNCjAwMDAwMDA1MTYgNjU1MzUgZg0KMDAwMDAwMDUxNyA2
NTUzNSBmDQowMDAwMDAwNTE4IDY1NTM1IGYNCjAwMDAwMDA1MTkgNjU1MzUgZg0KMDAwMDAwMDUy
MCA2NTUzNSBmDQowMDAwMDAwNTIxIDY1NTM1IGYNCjAwMDAwMDA1MjIgNjU1MzUgZg0KMDAwMDAw
MDUyMyA2NTUzNSBmDQowMDAwMDAwNTI0IDY1NTM1IGYNCjAwMDAwMDA1MjUgNjU1MzUgZg0KMDAw
MDAwMDUyNiA2NTUzNSBmDQowMDAwMDAwNTI3IDY1NTM1IGYNCjAwMDAwMDA1MjggNjU1MzUgZg0K
MDAwMDAwMDUyOSA2NTUzNSBmDQowMDAwMDAwNTMwIDY1NTM1IGYNCjAwMDAwMDA1MzEgNjU1MzUg
Zg0KMDAwMDAwMDUzMiA2NTUzNSBmDQowMDAwMDAwNTMzIDY1NTM1IGYNCjAwMDAwMDA1MzQgNjU1
MzUgZg0KMDAwMDAwMDUzNSA2NTUzNSBmDQowMDAwMDAwNTM2IDY1NTM1IGYNCjAwMDAwMDA1Mzcg
NjU1MzUgZg0KMDAwMDAwMDUzOCA2NTUzNSBmDQowMDAwMDAwNTM5IDY1NTM1IGYNCjAwMDAwMDA1
NDAgNjU1MzUgZg0KMDAwMDAwMDU0MSA2NTUzNSBmDQowMDAwMDAwNTQyIDY1NTM1IGYNCjAwMDAw
MDA1NDMgNjU1MzUgZg0KMDAwMDAwMDU0NCA2NTUzNSBmDQowMDAwMDAwNTQ1IDY1NTM1IGYNCjAw
MDAwMDA1NDYgNjU1MzUgZg0KMDAwMDAwMDU0NyA2NTUzNSBmDQowMDAwMDAwNTQ4IDY1NTM1IGYN
CjAwMDAwMDA1NDkgNjU1MzUgZg0KMDAwMDAwMDU1MCA2NTUzNSBmDQowMDAwMDAwNTUxIDY1NTM1
IGYNCjAwMDAwMDA1NTIgNjU1MzUgZg0KMDAwMDAwMDU1MyA2NTUzNSBmDQowMDAwMDAwNTU0IDY1
NTM1IGYNCjAwMDAwMDA1NTUgNjU1MzUgZg0KMDAwMDAwMDU1NiA2NTUzNSBmDQowMDAwMDAwNTU3
IDY1NTM1IGYNCjAwMDAwMDA1NTggNjU1MzUgZg0KMDAwMDAwMDU1OSA2NTUzNSBmDQowMDAwMDAw
NTYwIDY1NTM1IGYNCjAwMDAwMDA1NjEgNjU1MzUgZg0KMDAwMDAwMDU2MiA2NTUzNSBmDQowMDAw
MDAwNTYzIDY1NTM1IGYNCjAwMDAwMDA1NjQgNjU1MzUgZg0KMDAwMDAwMDU2NSA2NTUzNSBmDQow
MDAwMDAwNTY2IDY1NTM1IGYNCjAwMDAwMDA1NjcgNjU1MzUgZg0KMDAwMDAwMDU2OCA2NTUzNSBm
DQowMDAwMDAwNTY5IDY1NTM1IGYNCjAwMDAwMDA1NzAgNjU1MzUgZg0KMDAwMDAwMDU3MSA2NTUz
NSBmDQowMDAwMDAwNTcyIDY1NTM1IGYNCjAwMDAwMDA1NzMgNjU1MzUgZg0KMDAwMDAwMDU3NCA2
NTUzNSBmDQowMDAwMDAwNTc1IDY1NTM1IGYNCjAwMDAwMDA1NzYgNjU1MzUgZg0KMDAwMDAwMDU3
NyA2NTUzNSBmDQowMDAwMDAwNTc4IDY1NTM1IGYNCjAwMDAwMDA1NzkgNjU1MzUgZg0KMDAwMDAw
MDU4MCA2NTUzNSBmDQowMDAwMDAwNTgxIDY1NTM1IGYNCjAwMDAwMDA1ODIgNjU1MzUgZg0KMDAw
MDAwMDU4MyA2NTUzNSBmDQowMDAwMDAwNTg0IDY1NTM1IGYNCjAwMDAwMDA1ODUgNjU1MzUgZg0K
MDAwMDAwMDU4NiA2NTUzNSBmDQowMDAwMDAwNTg3IDY1NTM1IGYNCjAwMDAwMDA1ODggNjU1MzUg
Zg0KMDAwMDAwMDU4OSA2NTUzNSBmDQowMDAwMDAwNTkwIDY1NTM1IGYNCjAwMDAwMDA1OTEgNjU1
MzUgZg0KMDAwMDAwMDU5MiA2NTUzNSBmDQowMDAwMDAwNTkzIDY1NTM1IGYNCjAwMDAwMDA1OTQg
NjU1MzUgZg0KMDAwMDAwMDU5NSA2NTUzNSBmDQowMDAwMDAwNTk2IDY1NTM1IGYNCjAwMDAwMDA1
OTcgNjU1MzUgZg0KMDAwMDAwMDU5OCA2NTUzNSBmDQowMDAwMDAwNTk5IDY1NTM1IGYNCjAwMDAw
MDA2MDAgNjU1MzUgZg0KMDAwMDAwMDYwMSA2NTUzNSBmDQowMDAwMDAwNjAyIDY1NTM1IGYNCjAw
MDAwMDA2MDMgNjU1MzUgZg0KMDAwMDAwMDYwNCA2NTUzNSBmDQowMDAwMDAwNjA1IDY1NTM1IGYN
CjAwMDAwMDA2MDYgNjU1MzUgZg0KMDAwMDAwMDYwNyA2NTUzNSBmDQowMDAwMDAwNjA4IDY1NTM1
IGYNCjAwMDAwMDA2MDkgNjU1MzUgZg0KMDAwMDAwMDYxMCA2NTUzNSBmDQowMDAwMDAwNjExIDY1
NTM1IGYNCjAwMDAwMDA2MTIgNjU1MzUgZg0KMDAwMDAwMDYxMyA2NTUzNSBmDQowMDAwMDAwNjE0
IDY1NTM1IGYNCjAwMDAwMDA2MTUgNjU1MzUgZg0KMDAwMDAwMDYxNiA2NTUzNSBmDQowMDAwMDAw
NjE3IDY1NTM1IGYNCjAwMDAwMDA2MTggNjU1MzUgZg0KMDAwMDAwMDYxOSA2NTUzNSBmDQowMDAw
MDAwNjIwIDY1NTM1IGYNCjAwMDAwMDA2MjEgNjU1MzUgZg0KMDAwMDAwMDYyMiA2NTUzNSBmDQow
MDAwMDAwNjIzIDY1NTM1IGYNCjAwMDAwMDA2MjQgNjU1MzUgZg0KMDAwMDAwMDYyNSA2NTUzNSBm
DQowMDAwMDAwNjI2IDY1NTM1IGYNCjAwMDAwMDA2MjcgNjU1MzUgZg0KMDAwMDAwMDYyOCA2NTUz
NSBmDQowMDAwMDAwNjI5IDY1NTM1IGYNCjAwMDAwMDA2MzAgNjU1MzUgZg0KMDAwMDAwMDYzMSA2
NTUzNSBmDQowMDAwMDAwNjMyIDY1NTM1IGYNCjAwMDAwMDA2MzMgNjU1MzUgZg0KMDAwMDAwMDYz
NCA2NTUzNSBmDQowMDAwMDAwNjM1IDY1NTM1IGYNCjAwMDAwMDA2MzYgNjU1MzUgZg0KMDAwMDAw
MDYzNyA2NTUzNSBmDQowMDAwMDAwNjM4IDY1NTM1IGYNCjAwMDAwMDA2MzkgNjU1MzUgZg0KMDAw
MDAwMDY0MCA2NTUzNSBmDQowMDAwMDAwNjQxIDY1NTM1IGYNCjAwMDAwMDA2NDIgNjU1MzUgZg0K
MDAwMDAwMDY0MyA2NTUzNSBmDQowMDAwMDAwNjQ0IDY1NTM1IGYNCjAwMDAwMDA2NDUgNjU1MzUg
Zg0KMDAwMDAwMDY0NiA2NTUzNSBmDQowMDAwMDAwNjQ3IDY1NTM1IGYNCjAwMDAwMDA2NDggNjU1
MzUgZg0KMDAwMDAwMDY0OSA2NTUzNSBmDQowMDAwMDAwNjUwIDY1NTM1IGYNCjAwMDAwMDA2NTEg
NjU1MzUgZg0KMDAwMDAwMDY1MiA2NTUzNSBmDQowMDAwMDAwNjUzIDY1NTM1IGYNCjAwMDAwMDA2
NTQgNjU1MzUgZg0KMDAwMDAwMDY1NSA2NTUzNSBmDQowMDAwMDAwNjU2IDY1NTM1IGYNCjAwMDAw
MDA2NTcgNjU1MzUgZg0KMDAwMDAwMDY1OCA2NTUzNSBmDQowMDAwMDAwNjU5IDY1NTM1IGYNCjAw
MDAwMDA2NjAgNjU1MzUgZg0KMDAwMDAwMDY2MSA2NTUzNSBmDQowMDAwMDAwNjYyIDY1NTM1IGYN
CjAwMDAwMDA2NjMgNjU1MzUgZg0KMDAwMDAwMDY2NCA2NTUzNSBmDQowMDAwMDAwNjY1IDY1NTM1
IGYNCjAwMDAwMDA2NjYgNjU1MzUgZg0KMDAwMDAwMDY2NyA2NTUzNSBmDQowMDAwMDAwNjY4IDY1
NTM1IGYNCjAwMDAwMDA2NjkgNjU1MzUgZg0KMDAwMDAwMDY3MCA2NTUzNSBmDQowMDAwMDAwNjcx
IDY1NTM1IGYNCjAwMDAwMDA2NzIgNjU1MzUgZg0KMDAwMDAwMDY3MyA2NTUzNSBmDQowMDAwMDAw
Njc0IDY1NTM1IGYNCjAwMDAwMDA2NzUgNjU1MzUgZg0KMDAwMDAwMDY3NiA2NTUzNSBmDQowMDAw
MDAwNjc3IDY1NTM1IGYNCjAwMDAwMDA2NzggNjU1MzUgZg0KMDAwMDAwMDY3OSA2NTUzNSBmDQow
MDAwMDAwNjgwIDY1NTM1IGYNCjAwMDAwMDA2ODEgNjU1MzUgZg0KMDAwMDAwMDY4MiA2NTUzNSBm
DQowMDAwMDAwNjgzIDY1NTM1IGYNCjAwMDAwMDA2ODQgNjU1MzUgZg0KMDAwMDAwMDY4NSA2NTUz
NSBmDQowMDAwMDAwNjg2IDY1NTM1IGYNCjAwMDAwMDA2ODcgNjU1MzUgZg0KMDAwMDAwMDY4OCA2
NTUzNSBmDQowMDAwMDAwNjg5IDY1NTM1IGYNCjAwMDAwMDA2OTAgNjU1MzUgZg0KMDAwMDAwMDY5
MSA2NTUzNSBmDQowMDAwMDAwNjkyIDY1NTM1IGYNCjAwMDAwMDA2OTMgNjU1MzUgZg0KMDAwMDAw
MDY5NCA2NTUzNSBmDQowMDAwMDAwNjk1IDY1NTM1IGYNCjAwMDAwMDA2OTYgNjU1MzUgZg0KMDAw
MDAwMDY5NyA2NTUzNSBmDQowMDAwMDAwNjk4IDY1NTM1IGYNCjAwMDAwMDA2OTkgNjU1MzUgZg0K
MDAwMDAwMDcwMCA2NTUzNSBmDQowMDAwMDAwNzAxIDY1NTM1IGYNCjAwMDAwMDA3MDIgNjU1MzUg
Zg0KMDAwMDAwMDcwMyA2NTUzNSBmDQowMDAwMDAwNzA0IDY1NTM1IGYNCjAwMDAwMDA3MDUgNjU1
MzUgZg0KMDAwMDAwMDcwNiA2NTUzNSBmDQowMDAwMDAwNzA3IDY1NTM1IGYNCjAwMDAwMDA3MDgg
NjU1MzUgZg0KMDAwMDAwMDcwOSA2NTUzNSBmDQowMDAwMDAwNzEwIDY1NTM1IGYNCjAwMDAwMDA3
MTEgNjU1MzUgZg0KMDAwMDAwMDcxMiA2NTUzNSBmDQowMDAwMDAwNzEzIDY1NTM1IGYNCjAwMDAw
MDA3MTQgNjU1MzUgZg0KMDAwMDAwMDcxNSA2NTUzNSBmDQowMDAwMDAwNzE2IDY1NTM1IGYNCjAw
MDAwMDA3MTcgNjU1MzUgZg0KMDAwMDAwMDcxOCA2NTUzNSBmDQowMDAwMDAwNzE5IDY1NTM1IGYN
CjAwMDAwMDA3MjAgNjU1MzUgZg0KMDAwMDAwMDcyMSA2NTUzNSBmDQowMDAwMDAwNzIyIDY1NTM1
IGYNCjAwMDAwMDA3MjMgNjU1MzUgZg0KMDAwMDAwMDcyNCA2NTUzNSBmDQowMDAwMDAwNzI1IDY1
NTM1IGYNCjAwMDAwMDA3MjYgNjU1MzUgZg0KMDAwMDAwMDcyNyA2NTUzNSBmDQowMDAwMDAwNzI4
IDY1NTM1IGYNCjAwMDAwMDA3MjkgNjU1MzUgZg0KMDAwMDAwMDczMCA2NTUzNSBmDQowMDAwMDAw
NzMxIDY1NTM1IGYNCjAwMDAwMDA3MzIgNjU1MzUgZg0KMDAwMDAwMDczMyA2NTUzNSBmDQowMDAw
MDAwNzM0IDY1NTM1IGYNCjAwMDAwMDA3MzUgNjU1MzUgZg0KMDAwMDAwMDczNiA2NTUzNSBmDQow
MDAwMDAwNzM3IDY1NTM1IGYNCjAwMDAwMDA3MzggNjU1MzUgZg0KMDAwMDAwMDczOSA2NTUzNSBm
DQowMDAwMDAwNzQwIDY1NTM1IGYNCjAwMDAwMDA3NDEgNjU1MzUgZg0KMDAwMDAwMDc0MiA2NTUz
NSBmDQowMDAwMDAwNzQzIDY1NTM1IGYNCjAwMDAwMDA3NDQgNjU1MzUgZg0KMDAwMDAwMDc0NSA2
NTUzNSBmDQowMDAwMDAwNzQ2IDY1NTM1IGYNCjAwMDAwMDA3NDcgNjU1MzUgZg0KMDAwMDAwMDc0
OCA2NTUzNSBmDQowMDAwMDAwNzQ5IDY1NTM1IGYNCjAwMDAwMDA3NTAgNjU1MzUgZg0KMDAwMDAw
MDc1MSA2NTUzNSBmDQowMDAwMDAwNzUyIDY1NTM1IGYNCjAwMDAwMDA3NTMgNjU1MzUgZg0KMDAw
MDAwMDc1NCA2NTUzNSBmDQowMDAwMDAwNzU1IDY1NTM1IGYNCjAwMDAwMDA3NTYgNjU1MzUgZg0K
MDAwMDAwMDc1NyA2NTUzNSBmDQowMDAwMDAwNzU4IDY1NTM1IGYNCjAwMDAwMDA3NTkgNjU1MzUg
Zg0KMDAwMDAwMDc2MCA2NTUzNSBmDQowMDAwMDAwNzYxIDY1NTM1IGYNCjAwMDAwMDA3NjIgNjU1
MzUgZg0KMDAwMDAwMDc2MyA2NTUzNSBmDQowMDAwMDAwNzY0IDY1NTM1IGYNCjAwMDAwMDA3NjUg
NjU1MzUgZg0KMDAwMDAwMDc2NiA2NTUzNSBmDQowMDAwMDAwNzY3IDY1NTM1IGYNCjAwMDAwMDA3
NjggNjU1MzUgZg0KMDAwMDAwMDc2OSA2NTUzNSBmDQowMDAwMDAwNzcwIDY1NTM1IGYNCjAwMDAw
MDA3NzEgNjU1MzUgZg0KMDAwMDAwMDc3MiA2NTUzNSBmDQowMDAwMDAwNzczIDY1NTM1IGYNCjAw
MDAwMDA3NzQgNjU1MzUgZg0KMDAwMDAwMDc3NSA2NTUzNSBmDQowMDAwMDAwNzc2IDY1NTM1IGYN
CjAwMDAwMDA3NzcgNjU1MzUgZg0KMDAwMDAwMDc3OCA2NTUzNSBmDQowMDAwMDAwNzc5IDY1NTM1
IGYNCjAwMDAwMDA3ODAgNjU1MzUgZg0KMDAwMDAwMDc4MSA2NTUzNSBmDQowMDAwMDAwNzgyIDY1
NTM1IGYNCjAwMDAwMDA3ODMgNjU1MzUgZg0KMDAwMDAwMDc4NCA2NTUzNSBmDQowMDAwMDAwNzg1
IDY1NTM1IGYNCjAwMDAwMDA3ODYgNjU1MzUgZg0KMDAwMDAwMDc4NyA2NTUzNSBmDQowMDAwMDAw
Nzg4IDY1NTM1IGYNCjAwMDAwMDA3ODkgNjU1MzUgZg0KMDAwMDAwMDc5MCA2NTUzNSBmDQowMDAw
MDAwNzkxIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDA1NTM0NSAwMDAwMCBuDQow
MDAwMDU1Nzk3IDAwMDAwIG4NCjAwMDAxNTA2NjYgMDAwMDAgbg0KMDAwMDE1MTM0MSAwMDAwMCBu
DQowMDAwMTUxNjg5IDAwMDAwIG4NCjAwMDAxNTE5OTIgMDAwMDAgbg0KMDAwMDI0MDgzOSAwMDAw
MCBuDQowMDAwMjQxMzE1IDAwMDAwIG4NCjAwMDAyNDE2MTcgMDAwMDAgbg0KdHJhaWxlcg0KPDwv
U2l6ZSA4MDEvUm9vdCAxIDAgUi9JbmZvIDM2IDAgUi9JRFs8NEEyRDdGQjJENDI4NDc0N0IzQTM0
MDU5QjQzRTc1NkI+PDRBMkQ3RkIyRDQyODQ3NDdCM0EzNDA1OUI0M0U3NTZCPl0gPj4NCnN0YXJ0
eHJlZg0KMjQzMzYyDQolJUVPRg0KeHJlZg0KMCAwDQp0cmFpbGVyDQo8PC9TaXplIDgwMS9Sb290
IDEgMCBSL0luZm8gMzYgMCBSL0lEWzw0QTJEN0ZCMkQ0Mjg0NzQ3QjNBMzQwNTlCNDNFNzU2Qj48
NEEyRDdGQjJENDI4NDc0N0IzQTM0MDU5QjQzRTc1NkI+XSAvUHJldiAyNDMzNjIvWFJlZlN0bSAy
NDE2MTc+Pg0Kc3RhcnR4cmVmDQoyNTk1NDINCiUlRU9G
--14dae9399607bedc8104d739a853--

From ssireskin@gmail.com  Wed Mar  6 00:42:42 2013
Return-Path: <ssireskin@gmail.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CCACB21F87D2 for <dtn-users@ietfa.amsl.com>; Wed,  6 Mar 2013 00:42:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zN-aBx8TLgrS for <dtn-users@ietfa.amsl.com>; Wed,  6 Mar 2013 00:42:41 -0800 (PST)
Received: from mail-ie0-x22c.google.com (mail-ie0-x22c.google.com [IPv6:2607:f8b0:4001:c03::22c]) by ietfa.amsl.com (Postfix) with ESMTP id 910BD21F8651 for <dtn-users@irtf.org>; Wed,  6 Mar 2013 00:42:41 -0800 (PST)
Received: by mail-ie0-f172.google.com with SMTP id c10so9049926ieb.17 for <dtn-users@irtf.org>; Wed, 06 Mar 2013 00:42:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=N/5p+7G8RphcYeD6nbIxMttSfYU8bv2MaD/K4CjZup4=; b=QR/8iyqfxjf3Y87TuDJRPGhC6oBfbQ6e3s3VoMHextwOyv5/xoNxSaPTKx+rZ5xJkZ Zp/JBQOcPIk7ewcJPab5WmBMHp8SOwbSLHSFXuBvlYF/r4mzgfsP74BZEtuO4Bz+kux7 B5Zyvk9CF6xV7rVW+Pkj1vkcWQQMINZ5BPntivtywajGXIQxr8ANObJd7rf0hLn+lKV1 gGIzmH/EC+unoC6HAbW+MzvDUP5JuSJPQmiSgWWfQE45cK/dmE2E4Y+llyvRYm3EtiU3 rXcvJITm5Y8IdnxAsfORgKFHjOFH/as8N7nZKsVg1p5mv2ihjtRxcnm4wBB5zIZAY6uW aV6A==
MIME-Version: 1.0
X-Received: by 10.50.208.101 with SMTP id md5mr9852909igc.60.1362559361158; Wed, 06 Mar 2013 00:42:41 -0800 (PST)
Received: by 10.50.38.230 with HTTP; Wed, 6 Mar 2013 00:42:40 -0800 (PST)
In-Reply-To: <CA+X1CofM+XYvOc6wxyg_C=XjEaXnStJYVynK1rioSmhu9xZsbg@mail.gmail.com>
References: <CAJR8z9_WHCvSa+WPOZ-SfsQzs8dX7BNisUnJwVo0BswmTdx6ig@mail.gmail.com> <CA+X1CofM+XYvOc6wxyg_C=XjEaXnStJYVynK1rioSmhu9xZsbg@mail.gmail.com>
Date: Wed, 6 Mar 2013 11:42:40 +0300
Message-ID: <CAJR8z9_9e982kKMSgJRHFmNOaV5K=wcDMfrg=15SxOWZ9fo9sQ@mail.gmail.com>
From: "ssireskin@gmail.com" <ssireskin@gmail.com>
To: David Zoller <zollerd@gmail.com>
Content-Type: multipart/alternative; boundary=14dae934063bb5660b04d73d9237
Cc: dtn-users@irtf.org
Subject: Re: [dtn-users] Several improvements of dtntunnel
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Mar 2013 08:42:42 -0000

--14dae934063bb5660b04d73d9237
Content-Type: text/plain; charset=ISO-8859-1

Hi David,

Thanks for sharing your presentation! I think it would be nice if you add
one or two less detailed and less complex slides to your presentation as an
overview of transparent dtntunnel concept. Just to make it easier to
understand what it's all about for those who are not familiar with things
like iptables, NAT, policy routing, tproxy, etc.

Best regards,
Sergey

2013/3/6 David Zoller <zollerd@gmail.com>

> Hi Sergey,
> Nice working with you and thanks for advancing my knowledge of sockets and
> network manipulation. The transparent proxy is a pretty cool patch! I've
> attached a PDF with some experimenting I did that includes the
> configurations I used. This evening I was able to use the one tunnel to
> connect to two systems on three different ports. I'll have to figure out
> how to get more systems involved to give the destination EID table file a
> workout :)
> Best regards,
> DZ
>
>
>
> On Tue, Mar 5, 2013 at 4:47 AM, ssireskin@gmail.com <ssireskin@gmail.com>wrote:
>
>> Hello dtn users,
>>
>> I would like to share a patch that turns dtntunnel into a transparent
>> proxy which
>> intercepts TCP and UDP traffic and transports it from one IP network to
>> another
>> through a DTN in a way that application client and server "think" that
>> they are
>> connected to a usual IP network. Hosts running dtntunnel on different DTN
>> nodes
>> act as network routers from the IP networks point of view.
>>
>> Here is a description of how this works.
>>
>>
>> --------------------------------------------------------------------------------------------------------
>> A host running dtntunnel in transparent mode ("-p" option) can act as an
>> IP
>> network router for TCP and UDP protocols, that are redirected to
>> dtntunnel with
>> the help of IPTables and TProxy.
>>
>> Transparent mode is implemented with the use of Tproxy mechanism, which
>> is
>> supported in Linux only. For the description of Tproxy see tproxy.txt in
>> the
>> Documentation/networking subdirectory of Linux kernel source tree.
>>
>> Here is how this looks at the network level. Hosts A and B are reachable
>> via DTN
>> while local networks of A and B may even be not connected via IP protocol:
>> [IP Host A] <-> [DTN node with dtntunnel] <-> (DTN Network) <->
>>             <-> [DTN node with dtntunnel] <-> [IP Host B]
>>
>> Here is how this looks at the application level. Application client and
>> server
>> communicate transparently as if there was an IP network between them.
>> Both
>> client and server see IP addresses and ports of each other, not of
>> dtntunnel as
>> it is without transparent mode enabled:
>> [Application client] <-> [dtntunnel -T] <-> (DTN Network) <->
>>                      <-> [dtntunnel -L] <-> [Application server]
>>
>> In order to let transparent mode work, insert the following IPTables and
>> routing
>> rules on the host where you run dtntunnel in tunnel mode ("-T" option):
>> iptables -t mangle -N DTNTUNNEL
>> iptables -t mangle -A DTNTUNNEL -j MARK --set-mark 1
>> iptables -t mangle -A DTNTUNNEL -j ACCEPT
>> iptables -t mangle -A PREROUTING -p $PROTO -m socket -j DTNTUNNEL
>> iptables -t mangle -A PREROUTING -p $PROTO --dport $APPLICATION_PORT -j
>> TPROXY \
>>          --on-port $DTNTUNNEL_PORT --tproxy-mark 1/1
>> ip rule add fwmark 1 lookup 100
>> ip route add local 0.0.0.0/0 dev lo table 100
>>
>> If you run application client on the same host as dtntunnel in tunnel
>> mode, you
>> have to insert an additional IPTables rule:
>> iptables -t mangle -A OUTPUT -o $EXTERNAL_IF -p $PROTO --dport
>> $APPLICATION_PORT \
>>          -j MARK --set-xmark 1
>> NOTE: This will work only for application client running on the same host
>> as
>> dtntunnel in tunnel mode, not for a server running on the same host as
>> dtntunnel
>> in listen mode ("-L" option).
>>
>> In the above commands $PROTO is either tcp or udp;
>> $APPLICATION_PORT is a port number used by an application protocol, ex.
>> 22 for SSH,
>> 53 for DNS, 80 for HTTP, port range can be given in the form 22:23;
>> $DTNTUNNEL_PORT is the dtntunnel lport as given in tunnel specification;
>> $EXTERNAL_IF is a name of a network interface towards the remote network
>> that is
>> to be reached via DTN.
>>
>> NOTE: Don't forget to add network routes on the hosts that will use
>> dtntunnel host
>> as a router. In the most simple case setting the default gateway address
>> to the
>> address of the host running dtntunnel is enough.
>>
>> In transparent mode dtntunnel can use multiple destination EIDs in order
>> to be able
>> to transport data to multiple IP networks reachable through different DTN
>> nodes.
>> To enable this feature specify <destination eid table file name> instead
>> of
>> <destination_eid> in dtntunnel command line.
>>
>> Eid table file format: <IP network address> <DTN node EID>.
>> Eid table file example:
>> 192.168.4.0/24 dtn://dtn1.dtn/dtntunnel/app
>> 192.168.5.0/24 dtn://dtn2.dtn/dtntunnel/app
>>
>> --------------------------------------------------------------------------------------------------------
>>
>> My patch dtntunnel_transparent.ss.patch should be applied on top of a
>> patch
>> dtntunnel.udp_bidirectional.dz.patch, written by David Zoller and
>> published here with his
>> kind permission. Both patches apply cleanly to the today's Sourceforge
>> version of dtn2.
>> To apply the patches, go to apps/dtntunnel subdirectory of dtn2 source
>> tree and issue the
>> commands:
>> patch -p1 < dtntunnel.udp_bidirectional.dz.patch
>> patch -p1 < dtntunnel_transparent.ss.patch
>>
>> David's patch brings the following improvements:
>> 1) fix two memory leaks in TCPTunnel;
>> 2) fix an issue with TCPTunnel when the connection closed by the server
>> side of an
>> application is not closed on the client side;
>> 3) a complete rewrite of UDPTunnel code that enables bidirectional data
>> transmission,
>> packet reordering option and possibly something else which I could have
>> missed.
>>
>> I hope these two patches will be accepted to the dtn2 mainstream.
>>
>> I would like to thank David for his support, it would be hardly possible
>> for me to make
>> transparent dtntunnel without his help and advices.
>> I would also like to thank Elwyn Davies for his help with building NORM
>> CL libraries and
>> making NORM work with recent DTN2 code.
>>
>> Best regards,
>> Sergey Sireskin
>>
>>
>> _______________________________________________
>> dtn-users mailing list
>> dtn-users@irtf.org
>> https://www.irtf.org/mailman/listinfo/dtn-users
>>
>>
>


-- 
Best regards,
Sergey Sireskin

--14dae934063bb5660b04d73d9237
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi David,<br><br>Thanks for sharing your presentation! I think it would be =
nice if you add one or two less detailed and less complex slides to your pr=
esentation as an overview of transparent dtntunnel concept. Just to make it=
 easier to understand what it&#39;s all about for those who are not familia=
r with things like iptables, NAT, policy routing, tproxy, etc.<br>
<br>Best regards,<br>Sergey<br><br><div class=3D"gmail_quote">2013/3/6 Davi=
d Zoller <span dir=3D"ltr">&lt;<a href=3D"mailto:zollerd@gmail.com" target=
=3D"_blank">zollerd@gmail.com</a>&gt;</span><br><blockquote class=3D"gmail_=
quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1=
ex">
Hi Sergey,<div>Nice working with you and thanks for advancing my knowledge =
of sockets and network manipulation. The transparent proxy is a pretty cool=
 patch! I&#39;ve attached a PDF with some experimenting I did that includes=
 the configurations I used. This evening I was able to use the one tunnel t=
o connect to two systems on three different ports. I&#39;ll have to figure =
out how to get more systems involved to give the destination EID table file=
 a workout :)</div>

<div>Best regards,</div><div>DZ</div><div><br></div><div><br><br><div class=
=3D"gmail_quote"><div><div class=3D"h5">On Tue, Mar 5, 2013 at 4:47 AM, <a =
href=3D"mailto:ssireskin@gmail.com" target=3D"_blank">ssireskin@gmail.com</=
a> <span dir=3D"ltr">&lt;<a href=3D"mailto:ssireskin@gmail.com" target=3D"_=
blank">ssireskin@gmail.com</a>&gt;</span> wrote:<br>

</div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex"><div><div class=3D"h5">Hello dtn=
 users,<br><br>I would like to share a patch that turns dtntunnel into a tr=
ansparent proxy which <br>
intercepts TCP and UDP traffic and transports it from one IP network to ano=
ther<br>
through a DTN in a way that application client and server &quot;think&quot;=
 that they are <br>
connected to a usual IP network. Hosts running dtntunnel on different DTN n=
odes<br>act as network routers from the IP networks point of view.<br><br>H=
ere is a description of how this works.<br><br>----------------------------=
---------------------------------------------------------------------------=
-<br>


A host running dtntunnel in transparent mode (&quot;-p&quot; option) can ac=
t as an IP <br>network router for TCP and UDP protocols, that are redirecte=
d to dtntunnel with <br>the help of IPTables and TProxy.<br><br>Transparent=
 mode is implemented with the use of Tproxy mechanism, which is <br>


supported in Linux only. For the description of Tproxy see tproxy.txt in th=
e <br>Documentation/networking subdirectory of Linux kernel source tree.<br=
><br>Here is how this looks at the network level. Hosts A and B are reachab=
le via DTN<br>


while local networks of A and B may even be not connected via IP protocol:<=
br>[IP Host A] &lt;-&gt; [DTN node with dtntunnel] &lt;-&gt; (DTN Network) =
&lt;-&gt; <br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 &lt;-&gt; [DTN node with dt=
ntunnel] &lt;-&gt; [IP Host B]<br>


<br>Here is how this looks at the application level. Application client and=
 server<br>communicate transparently as if there was an IP network between =
them. Both <br>client and server see IP addresses and ports of each other, =
not of dtntunnel as <br>


it is without transparent mode enabled:<br>[Application client] &lt;-&gt; [=
dtntunnel -T] &lt;-&gt; (DTN Network) &lt;-&gt;<br>=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 &lt;-&gt; [dtntunnel -L] &lt;-&gt; [Ap=
plication server]<br><br>In order to let transparent mode work, insert the =
following IPTables and routing <br>


rules on the host where you run dtntunnel in tunnel mode (&quot;-T&quot; op=
tion):<br>iptables -t mangle -N DTNTUNNEL<br>iptables -t mangle -A DTNTUNNE=
L -j MARK --set-mark 1<br>iptables -t mangle -A DTNTUNNEL -j ACCEPT<br>


iptables -t mangle -A PREROUTING -p $PROTO -m socket -j DTNTUNNEL<br>iptabl=
es -t mangle -A PREROUTING -p $PROTO --dport $APPLICATION_PORT -j TPROXY \<=
br>=A0=A0=A0=A0=A0=A0=A0=A0 --on-port $DTNTUNNEL_PORT --tproxy-mark 1/1<br>=
ip rule add fwmark 1 lookup 100<br>


ip route add local <a href=3D"http://0.0.0.0/0" target=3D"_blank">0.0.0.0/0=
</a> dev lo table 100<br><br>If you run application client on the same host=
 as dtntunnel in tunnel mode, you <br>have to insert an additional IPTables=
 rule:<br>

iptables -t mangle -A OUTPUT -o $EXTERNAL_IF -p $PROTO --dport $APPLICATION=
_PORT \<br>
=A0=A0=A0=A0=A0=A0=A0=A0 -j MARK --set-xmark 1<br>NOTE: This will work only=
 for application client running on the same host as <br>dtntunnel in tunnel=
 mode, not for a server running on the same host as dtntunnel <br>in listen=
 mode (&quot;-L&quot; option).<br>


<br>In the above commands $PROTO is either tcp or udp;<br>$APPLICATION_PORT=
 is a port number used by an application protocol, ex. 22 for SSH, <br>53 f=
or DNS, 80 for HTTP, port range can be given in the form 22:23;<br>$DTNTUNN=
EL_PORT is the dtntunnel lport as given in tunnel specification;<br>


$EXTERNAL_IF is a name of a network interface towards the remote network th=
at is <br>to be reached via DTN.<br><br>NOTE: Don&#39;t forget to add netwo=
rk routes on the hosts that will use dtntunnel host <br>as a router. In the=
 most simple case setting the default gateway address to the <br>


address of the host running dtntunnel is enough.<br><br>In transparent mode=
 dtntunnel can use multiple destination EIDs in order to be able<br>to tran=
sport data to multiple IP networks reachable through different DTN nodes.<b=
r>


To enable this feature specify &lt;destination eid table file name&gt; inst=
ead of <br>&lt;destination_eid&gt; in dtntunnel command line.<br><br>Eid ta=
ble file format: &lt;IP network address&gt; &lt;DTN node EID&gt;.<br>Eid ta=
ble file example:<br>


<a href=3D"http://192.168.4.0/24" target=3D"_blank">192.168.4.0/24</a> dtn:=
//dtn1.dtn/dtntunnel/app<br><a href=3D"http://192.168.5.0/24" target=3D"_bl=
ank">192.168.5.0/24</a> dtn://dtn2.dtn/dtntunnel/app<br clear=3D"all">-----=
---------------------------------------------------------------------------=
------------------------<br>


<br>My patch dtntunnel_transparent.ss.patch should be applied on top of a p=
atch <br>dtntunnel.udp_bidirectional.dz.patch, written by David Zoller and =
published here with his<br>kind permission. Both patches apply cleanly to t=
he today&#39;s Sourceforge version of dtn2.<br>


To apply the patches, go to apps/dtntunnel subdirectory of dtn2 source tree=
 and issue the <br>commands:<br>patch -p1 &lt; dtntunnel.udp_bidirectional.=
dz.patch<br>patch -p1 &lt; dtntunnel_transparent.ss.patch<br><br>David&#39;=
s patch brings the following improvements:<br>


1) fix two memory leaks in TCPTunnel;<br>2) fix an issue with TCPTunnel whe=
n the connection closed by the server side of an <br>application is not clo=
sed on the client side;<br>3) a complete rewrite of UDPTunnel code that ena=
bles bidirectional data transmission,<br>


packet reordering option and possibly something else which I could have mis=
sed. <br><br>I hope these two patches will be accepted to the dtn2 mainstre=
am.<br><br>I would like to thank David for his support, it would be hardly =
possible for me to make <br>


transparent dtntunnel without his help and advices.<br>I would also like to=
 thank Elwyn Davies for his help with building NORM CL libraries and <br>ma=
king NORM work with recent DTN2 code.<br><br>Best regards,<br>Sergey Siresk=
in<br>


<br>
<br></div></div>_______________________________________________<br>
dtn-users mailing list<br>
<a href=3D"mailto:dtn-users@irtf.org" target=3D"_blank">dtn-users@irtf.org<=
/a><br>
<a href=3D"https://www.irtf.org/mailman/listinfo/dtn-users" target=3D"_blan=
k">https://www.irtf.org/mailman/listinfo/dtn-users</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br><br clear=3D"all"><br>-- <br>Best regards,<br>Sergey=
 Sireskin<br><br>

--14dae934063bb5660b04d73d9237--

From sickmind@lavabit.com  Thu Mar  7 01:14:19 2013
Return-Path: <sickmind@lavabit.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 52CFD21F8B16 for <dtn-users@ietfa.amsl.com>; Thu,  7 Mar 2013 01:14:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.015
X-Spam-Level: *
X-Spam-Status: No, score=1.015 tagged_above=-999 required=5 tests=[BAYES_40=-0.185, J_CHICKENPOX_35=0.6, J_CHICKENPOX_45=0.6]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rgpii3lSVWrg for <dtn-users@ietfa.amsl.com>; Thu,  7 Mar 2013 01:14:17 -0800 (PST)
Received: from karen.lavabit.com (karen.lavabit.com [72.249.41.33]) by ietfa.amsl.com (Postfix) with ESMTP id 8CBCE21F89CB for <dtn-users@irtf.org>; Thu,  7 Mar 2013 01:14:17 -0800 (PST)
Received: from a.earth.lavabit.com (a.earth.lavabit.com [192.168.111.10]) by karen.lavabit.com (Postfix) with ESMTP id 8718D11B960 for <dtn-users@irtf.org>; Thu,  7 Mar 2013 03:14:12 -0600 (CST)
Received: from localhost (pppoe.178-66-158-25.dynamic.avangarddsl.ru [178.66.158.25]) by lavabit.com with ESMTP id 49FR2ZZJY5PJ for <dtn-users@irtf.org>; Thu, 07 Mar 2013 03:14:12 -0600
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=lavabit; d=lavabit.com; b=npqBnePEORIQtNmitpgjxa/O3AF1OPBgwB+YGdooG+WH75+LdfGEhRMQ96mj249stJ/5X+u4Xajl42M1u7BDhV0JvPRzU4q1z9KMUfSubC2QB2ETdBJ7Fl+gD7GnApeYVeRbi4mTGKpGF67ahfNmMLHGCKqqc0n6R6vSxqj+xg4=; h=Date:From:To:Subject:Message-ID:MIME-Version:Content-Type:Content-Disposition:User-Agent;
Date: Thu, 7 Mar 2013 09:14:12 +0000
From: Lana Black <sickmind@lavabit.com>
To: dtn-users maillist <dtn-users@irtf.org>
Message-ID: <20130307091412.GA1586@glow>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="IS0zKkzwUGydFO0o"
Content-Disposition: inline
User-Agent: Mutt/1.5.21 (2010-09-15)
Subject: [dtn-users] gcc bug and dtn
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Mar 2013 09:14:19 -0000

--IS0zKkzwUGydFO0o
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi,

DTN code currently relies on a gcc bug in order to be built (please see
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21534). The patch attached 
allows DTN to be built using other than gcc compilers.

With best regards.

--IS0zKkzwUGydFO0o
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="template-namespace.patch"

diff --git a/apps/dtntunnel/DTNTunnel.cc b/apps/dtntunnel/DTNTunnel.cc
index e631a18..436861e 100644
--- a/apps/dtntunnel/DTNTunnel.cc
+++ b/apps/dtntunnel/DTNTunnel.cc
@@ -39,10 +39,10 @@
 #include "TCPTunnel.h"
 #include "UDPTunnel.h"
 
-namespace dtntunnel {
-
 template <>
-DTNTunnel* oasys::Singleton<DTNTunnel>::instance_ = 0;
+dtntunnel::DTNTunnel* oasys::Singleton<dtntunnel::DTNTunnel>::instance_ = 0;
+
+namespace dtntunnel {
 
 //----------------------------------------------------------------------
 DTNTunnel::DTNTunnel()
diff --git a/servlib/bundling/APIBlockProcessor.cc b/servlib/bundling/APIBlockProcessor.cc
index 56014f8..0338d6c 100644
--- a/servlib/bundling/APIBlockProcessor.cc
+++ b/servlib/bundling/APIBlockProcessor.cc
@@ -23,11 +23,11 @@
 #include "BlockInfo.h"
 #include "BundleProtocol.h"
 
+template <> dtn::APIBlockProcessor*
+oasys::Singleton<dtn::APIBlockProcessor>::instance_ = NULL;
+
 namespace dtn {
 
-template <> APIBlockProcessor*
-oasys::Singleton<APIBlockProcessor>::instance_ = NULL;
-        
 //----------------------------------------------------------------------
 APIBlockProcessor::APIBlockProcessor() :
         BlockProcessor(BundleProtocol::API_EXTENSION_BLOCK)
diff --git a/servlib/bundling/BundleDaemon.cc b/servlib/bundling/BundleDaemon.cc
index d507528..da7b224 100644
--- a/servlib/bundling/BundleDaemon.cc
+++ b/servlib/bundling/BundleDaemon.cc
@@ -54,10 +54,10 @@
 #  include "security/KeyDB.h"
 #endif
 
-namespace dtn {
-
 template <>
-BundleDaemon* oasys::Singleton<BundleDaemon, false>::instance_ = NULL;
+dtn::BundleDaemon* oasys::Singleton<dtn::BundleDaemon, false>::instance_ = NULL;
+
+namespace dtn {
 
 BundleDaemon::Params::Params()
     :  early_deletion_(true),
@@ -146,6 +146,19 @@ BundleDaemon::do_init()
 
 //----------------------------------------------------------------------
 void
+BundleDaemon::init()
+{       
+    if (instance_ != NULL) 
+    {
+        PANIC("BundleDaemon already initialized");
+    }
+
+    instance_ = new BundleDaemon();     
+    instance_->do_init();
+}
+
+//----------------------------------------------------------------------
+void
 BundleDaemon::post(BundleEvent* event)
 {
     instance_->post_event(event);
diff --git a/servlib/bundling/BundleDaemon.h b/servlib/bundling/BundleDaemon.h
index 6f0976a..787001b 100644
--- a/servlib/bundling/BundleDaemon.h
+++ b/servlib/bundling/BundleDaemon.h
@@ -88,16 +88,7 @@ public:
     /**
      * Boot time initializer.
      */
-    static void init()
-    {       
-        if (instance_ != NULL) 
-        {
-            PANIC("BundleDaemon already initialized");
-        }
-
-        instance_ = new BundleDaemon();     
-        instance_->do_init();
-    }
+    static void init();
     
     /**
      * Return the number of events currently waiting for processing.
diff --git a/servlib/bundling/UnknownBlockProcessor.cc b/servlib/bundling/UnknownBlockProcessor.cc
index 39e39bf..f210ffe 100644
--- a/servlib/bundling/UnknownBlockProcessor.cc
+++ b/servlib/bundling/UnknownBlockProcessor.cc
@@ -24,10 +24,10 @@
 #include "BundleProtocol.h"
 #include "Bundle.h"
 
-namespace dtn {
+template <> dtn::UnknownBlockProcessor*
+oasys::Singleton<dtn::UnknownBlockProcessor>::instance_ = NULL;
 
-template <> UnknownBlockProcessor*
-oasys::Singleton<UnknownBlockProcessor>::instance_ = NULL;
+namespace dtn {
 
 //----------------------------------------------------------------------
 UnknownBlockProcessor::UnknownBlockProcessor()
diff --git a/servlib/cmd/CompletionNotifier.cc b/servlib/cmd/CompletionNotifier.cc
index b398ebf..478110f 100644
--- a/servlib/cmd/CompletionNotifier.cc
+++ b/servlib/cmd/CompletionNotifier.cc
@@ -20,9 +20,6 @@
 
 #include "CompletionNotifier.h"
 
-namespace dtn {
-
 template <>
-CompletionNotifier* oasys::Singleton<CompletionNotifier>::instance_ = 0;
+dtn::CompletionNotifier* oasys::Singleton<dtn::CompletionNotifier>::instance_ = 0;
 
-} // namespace dtn
diff --git a/servlib/conv_layers/ConvergenceLayer.cc b/servlib/conv_layers/ConvergenceLayer.cc
index 352530e..0736ec2 100644
--- a/servlib/conv_layers/ConvergenceLayer.cc
+++ b/servlib/conv_layers/ConvergenceLayer.cc
@@ -32,10 +32,10 @@
 
 #include "bundling/BundleDaemon.h"
 
-namespace dtn {
-
 template<>
-CLVector* oasys::Singleton<CLVector>::instance_ = NULL;
+dtn::CLVector* oasys::Singleton<dtn::CLVector>::instance_ = NULL;
+
+namespace dtn {
 
 //----------------------------------------------------------------------
 ConvergenceLayer::~ConvergenceLayer()
diff --git a/servlib/discovery/DiscoveryTable.cc b/servlib/discovery/DiscoveryTable.cc
index 57b0176..818659d 100644
--- a/servlib/discovery/DiscoveryTable.cc
+++ b/servlib/discovery/DiscoveryTable.cc
@@ -22,10 +22,10 @@
 #include "DiscoveryTable.h"
 #include "conv_layers/ConvergenceLayer.h"
 
-namespace dtn {
-
 template<>
-DiscoveryTable* oasys::Singleton<DiscoveryTable,false>::instance_ = NULL;
+dtn::DiscoveryTable* oasys::Singleton<dtn::DiscoveryTable,false>::instance_ = NULL;
+
+namespace dtn {
 
 DiscoveryTable::DiscoveryTable()
     : Logger("DiscoveryTable","/dtn/discovery/table")
@@ -37,6 +37,17 @@ DiscoveryTable::~DiscoveryTable()
 }
 
 void
+DiscoveryTable::init()
+{
+    if (instance_ != NULL)
+    {
+        PANIC("DiscoveryTable already initialized");
+    }
+    instance_ = new DiscoveryTable();
+}
+
+
+void
 DiscoveryTable::shutdown()
 {
     for(DiscoveryList::iterator i = dlist_.begin();
diff --git a/servlib/discovery/DiscoveryTable.h b/servlib/discovery/DiscoveryTable.h
index c7a1bb9..2986ac2 100644
--- a/servlib/discovery/DiscoveryTable.h
+++ b/servlib/discovery/DiscoveryTable.h
@@ -34,14 +34,7 @@ class DiscoveryTable : public oasys::Singleton<DiscoveryTable,false>,
 public:
     virtual ~DiscoveryTable();
 
-    static void init()
-    {
-        if (instance_ != NULL)
-        {
-            PANIC("DiscoveryTable already initialized");
-        }
-        instance_ = new DiscoveryTable();
-    }
+    static void init();
 
     bool add(const std::string& name, const char* addr_family,
              int argc, const char* argv[], const char** error);
diff --git a/servlib/naming/DTNScheme.cc b/servlib/naming/DTNScheme.cc
index 88c276b..e277585 100644
--- a/servlib/naming/DTNScheme.cc
+++ b/servlib/naming/DTNScheme.cc
@@ -25,10 +25,10 @@
 #include "DTNScheme.h"
 #include "EndpointID.h"
 
-namespace dtn {
-
 template <>
-DTNScheme* oasys::Singleton<DTNScheme>::instance_ = 0;
+dtn::DTNScheme* oasys::Singleton<dtn::DTNScheme>::instance_ = 0;
+
+namespace dtn {
 
 //----------------------------------------------------------------------
 bool
diff --git a/servlib/naming/EthernetScheme.cc b/servlib/naming/EthernetScheme.cc
index 064e369..40eddc4 100644
--- a/servlib/naming/EthernetScheme.cc
+++ b/servlib/naming/EthernetScheme.cc
@@ -26,10 +26,10 @@
 #include "EthernetScheme.h"
 #include "EndpointID.h"
 
-namespace dtn {
-
 template <>
-EthernetScheme* oasys::Singleton<EthernetScheme>::instance_ = 0;
+dtn::EthernetScheme* oasys::Singleton<dtn::EthernetScheme>::instance_ = 0;
+
+namespace dtn {
 
 /*
  * Parse out an ethernet address from the ssp.
diff --git a/servlib/naming/IPNScheme.cc b/servlib/naming/IPNScheme.cc
index 6436d1a..66cbda4 100644
--- a/servlib/naming/IPNScheme.cc
+++ b/servlib/naming/IPNScheme.cc
@@ -8,10 +8,10 @@
 #include "IPNScheme.h"
 #include "EndpointID.h"
 
-namespace dtn {
+template <>
+dtn::IPNScheme* oasys::Singleton<dtn::IPNScheme>::instance_ = 0;
 
-        template <>
-        IPNScheme* oasys::Singleton<IPNScheme>::instance_ = 0;
+namespace dtn {
 
         bool
         IPNScheme::validate(const URI& uri, bool is_pattern)
diff --git a/servlib/naming/SchemeTable.cc b/servlib/naming/SchemeTable.cc
index 49d6166..2f88d57 100644
--- a/servlib/naming/SchemeTable.cc
+++ b/servlib/naming/SchemeTable.cc
@@ -27,10 +27,10 @@
 #include "WildcardScheme.h"
 #include "TCAScheme.h"
 
-namespace dtn {
-
 template <>
-SchemeTable* oasys::Singleton<SchemeTable>::instance_ = 0;
+dtn::SchemeTable* oasys::Singleton<dtn::SchemeTable>::instance_ = 0;
+
+namespace dtn {
 
 //----------------------------------------------------------------------
 SchemeTable::SchemeTable()
diff --git a/servlib/naming/SessionScheme.cc b/servlib/naming/SessionScheme.cc
index 235ff83..b4ff5c4 100644
--- a/servlib/naming/SessionScheme.cc
+++ b/servlib/naming/SessionScheme.cc
@@ -25,10 +25,10 @@
 #include "SessionScheme.h"
 #include "EndpointID.h"
 
-namespace dtn {
-
 template <>
-SessionScheme* oasys::Singleton<SessionScheme>::instance_ = 0;
+dtn::SessionScheme* oasys::Singleton<dtn::SessionScheme>::instance_ = 0;
+
+namespace dtn {
 
 //----------------------------------------------------------------------
 bool
diff --git a/servlib/naming/StringScheme.cc b/servlib/naming/StringScheme.cc
index d85bd52..f6cae00 100755
--- a/servlib/naming/StringScheme.cc
+++ b/servlib/naming/StringScheme.cc
@@ -21,10 +21,10 @@
 #include "StringScheme.h"
 #include "EndpointID.h"
 
-namespace dtn {
-
 template <>
-StringScheme* oasys::Singleton<StringScheme>::instance_ = 0;
+dtn::StringScheme* oasys::Singleton<dtn::StringScheme>::instance_ = 0;
+
+namespace dtn {
 
 //----------------------------------------------------------------------
 bool
diff --git a/servlib/naming/TCAScheme.cc b/servlib/naming/TCAScheme.cc
index 07437b2..30f5c27 100644
--- a/servlib/naming/TCAScheme.cc
+++ b/servlib/naming/TCAScheme.cc
@@ -24,10 +24,10 @@
 #include "TCAScheme.h"
 #include "EndpointID.h"
 
-namespace dtn {
-
 template <>
-TCAScheme* oasys::Singleton<TCAScheme>::instance_ = 0;
+dtn::TCAScheme* oasys::Singleton<dtn::TCAScheme>::instance_ = 0;
+
+namespace dtn {
 
 /**
  * Validate that the SSP in the given URI is legitimate for
diff --git a/servlib/naming/WildcardScheme.cc b/servlib/naming/WildcardScheme.cc
index c73a2e9..abc06e3 100644
--- a/servlib/naming/WildcardScheme.cc
+++ b/servlib/naming/WildcardScheme.cc
@@ -21,11 +21,10 @@
 #include "WildcardScheme.h"
 #include "EndpointID.h"
 
-namespace dtn {
-
-//----------------------------------------------------------------------
 template <>
-WildcardScheme* oasys::Singleton<WildcardScheme>::instance_ = 0;
+dtn::WildcardScheme* oasys::Singleton<dtn::WildcardScheme>::instance_ = 0;
+
+namespace dtn {
 
 //----------------------------------------------------------------------
 bool
diff --git a/servlib/routing/DTLSRConfig.cc b/servlib/routing/DTLSRConfig.cc
index ac41e6f..bad15b2 100644
--- a/servlib/routing/DTLSRConfig.cc
+++ b/servlib/routing/DTLSRConfig.cc
@@ -20,11 +20,10 @@
 
 #include "DTLSRConfig.h"
 
-namespace dtn {
-
-//----------------------------------------------------------------------
 template <>
-DTLSRConfig* oasys::Singleton<DTLSRConfig>::instance_ = NULL;
+dtn::DTLSRConfig* oasys::Singleton<dtn::DTLSRConfig>::instance_ = NULL;
+
+namespace dtn {
 
 //----------------------------------------------------------------------
 DTLSRConfig::DTLSRConfig()
diff --git a/servlib/storage/BundleStore.cc b/servlib/storage/BundleStore.cc
index c1a3638..474de26 100644
--- a/servlib/storage/BundleStore.cc
+++ b/servlib/storage/BundleStore.cc
@@ -23,10 +23,10 @@
 
 #include <oasys/storage/DurableStore.h>
 
-namespace dtn {
-
 template <>
-BundleStore* oasys::Singleton<BundleStore, false>::instance_ = 0;
+dtn::BundleStore* oasys::Singleton<dtn::BundleStore, false>::instance_ = 0;
+
+namespace dtn {
 
 bool BundleStore::using_aux_table_ = false;
 
diff --git a/servlib/storage/LinkStore.cc b/servlib/storage/LinkStore.cc
index bc63ff9..b19ae68 100644
--- a/servlib/storage/LinkStore.cc
+++ b/servlib/storage/LinkStore.cc
@@ -21,16 +21,31 @@
 #include "LinkStore.h"
 #include "contacts/Link.h"
 
-namespace dtn {
-
 template<>
-LinkStore* oasys::Singleton<LinkStore, false>::instance_ = NULL;
+dtn::LinkStore* oasys::Singleton<dtn::LinkStore, false>::instance_ = NULL;
+
+namespace dtn {
 
 LinkStore::LinkStore()
     : LinkStoreImpl("LinkStore", "/dtn/storage/links", "link", "links")
 {
 }
 
+/**
+ * Boot time initializer that takes as a parameter the storage
+ * configuration to use.
+ */
+int
+LinkStore::init(const oasys::StorageConfig& cfg,
+                oasys::DurableStore*        store) 
+{
+    if (instance_ != NULL) {
+        PANIC("LinkStore::init called multiple times");
+    }
+    instance_ = new LinkStore();
+    return instance_->do_init(cfg, store);
+}
+
 
 } // namespace dtn
 
diff --git a/servlib/storage/LinkStore.h b/servlib/storage/LinkStore.h
index 2379264..e4d1744 100644
--- a/servlib/storage/LinkStore.h
+++ b/servlib/storage/LinkStore.h
@@ -44,14 +44,7 @@ public:
      * configuration to use.
      */
     static int init(const oasys::StorageConfig& cfg,
-                    oasys::DurableStore*        store) 
-    {
-        if (instance_ != NULL) {
-            PANIC("LinkStore::init called multiple times");
-        }
-        instance_ = new LinkStore();
-        return instance_->do_init(cfg, store);
-    }
+                    oasys::DurableStore*        store); 
     
     /**
      * Constructor.
diff --git a/servlib/storage/ProphetStore.cc b/servlib/storage/ProphetStore.cc
index ce6ec75..1b29963 100644
--- a/servlib/storage/ProphetStore.cc
+++ b/servlib/storage/ProphetStore.cc
@@ -21,10 +21,10 @@
 #include <oasys/debug/Log.h>
 #include "ProphetStore.h"
 
-namespace dtn {
-
 template <>
-ProphetStore* oasys::Singleton<ProphetStore,false>::instance_ = 0;
+dtn::ProphetStore* oasys::Singleton<dtn::ProphetStore,false>::instance_ = 0;
+
+namespace dtn {
 
 //----------------------------------------------------------------------
 ProphetStore::ProphetStore(const oasys::StorageConfig& cfg)
diff --git a/servlib/storage/RegistrationStore.cc b/servlib/storage/RegistrationStore.cc
index c279182..bc66176 100644
--- a/servlib/storage/RegistrationStore.cc
+++ b/servlib/storage/RegistrationStore.cc
@@ -21,10 +21,10 @@
 #include "RegistrationStore.h"
 #include "reg/Registration.h"
 
-namespace dtn {
-
 template<>
-RegistrationStore* oasys::Singleton<RegistrationStore, false>::instance_ = NULL;
+dtn::RegistrationStore* oasys::Singleton<dtn::RegistrationStore, false>::instance_ = NULL;
+
+namespace dtn {
 
 RegistrationStore::RegistrationStore()
     : RegistrationStoreImpl("RegistrationStore", "/dtn/storage/registrations",
@@ -32,6 +32,21 @@ RegistrationStore::RegistrationStore()
 {
 }
 
+/**
+ * Boot time initializer that takes as a parameter the storage
+ * configuration to use.
+ */
+int
+RegistrationStore::init(const oasys::StorageConfig& cfg,
+                        oasys::DurableStore*        store) 
+{
+    if (instance_ != NULL) {
+        PANIC("RegistrationStore::init called multiple times");
+    }
+    instance_ = new RegistrationStore();
+    return instance_->do_init(cfg, store);
+}
+
 
 } // namespace dtn
 
diff --git a/servlib/storage/RegistrationStore.h b/servlib/storage/RegistrationStore.h
index 7ea2ba6..46f7d7f 100644
--- a/servlib/storage/RegistrationStore.h
+++ b/servlib/storage/RegistrationStore.h
@@ -44,15 +44,8 @@ public:
      * configuration to use.
      */
     static int init(const oasys::StorageConfig& cfg,
-                    oasys::DurableStore*        store) 
-    {
-        if (instance_ != NULL) {
-            PANIC("RegistrationStore::init called multiple times");
-        }
-        instance_ = new RegistrationStore();
-        return instance_->do_init(cfg, store);
-    }
-    
+                    oasys::DurableStore*        store);
+        
     /**
      * Constructor.
      */
diff --git a/sim/SimLog.cc b/sim/SimLog.cc
index 4cf1820..c563b39 100644
--- a/sim/SimLog.cc
+++ b/sim/SimLog.cc
@@ -24,11 +24,10 @@
 #include "SimLog.h"
 #include "Simulator.h"
 
-namespace dtnsim {
-
 template <>
-SimLog* oasys::Singleton<SimLog>::instance_ = NULL;
+dtnsim::SimLog* oasys::Singleton<dtnsim::SimLog>::instance_ = NULL;
 
+namespace dtnsim {
 
 //----------------------------------------------------------------------
 SimLog::SimLog()
diff --git a/sim/Simulator.cc b/sim/Simulator.cc
index f484cdd..b1dc6e3 100644
--- a/sim/Simulator.cc
+++ b/sim/Simulator.cc
@@ -28,10 +28,10 @@
 
 using namespace dtn;
 
-namespace dtnsim {
-
 template<>
-Simulator* oasys::Singleton<Simulator, false>::instance_ = NULL;
+dtnsim::Simulator* oasys::Singleton<dtnsim::Simulator, false>::instance_ = NULL;
+
+namespace dtnsim {
 
 //----------------------------------------------------------------------
 

--IS0zKkzwUGydFO0o--


From david.a.zoller@nasa.gov  Thu Mar  7 17:50:50 2013
Return-Path: <david.a.zoller@nasa.gov>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3619821F86D5 for <dtn-users@ietfa.amsl.com>; Thu,  7 Mar 2013 17:50:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.426
X-Spam-Level: 
X-Spam-Status: No, score=-1.426 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, EXTRA_MPART_TYPE=1, HTML_IMAGE_RATIO_04=0.172,  HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GijbDBYtNU0h for <dtn-users@ietfa.amsl.com>; Thu,  7 Mar 2013 17:50:47 -0800 (PST)
Received: from ndjsnpf03.ndc.nasa.gov (NDJSNPF03.ndc.nasa.gov [IPv6:2001:4d0:a302:1100::103]) by ietfa.amsl.com (Postfix) with ESMTP id 14E8A21F863C for <dtn-users@irtf.org>; Thu,  7 Mar 2013 17:50:43 -0800 (PST)
Received: from ndmsppt102.ndc.nasa.gov (NDMSPPT102.ndc.nasa.gov [198.117.0.67]) by ndjsnpf03.ndc.nasa.gov (Postfix) with ESMTP id 801292D80F2 for <dtn-users@irtf.org>; Thu,  7 Mar 2013 19:50:42 -0600 (CST)
Received: from ndmshub01.ndc.nasa.gov (ndmshub01-pub.ndc.nasa.gov [198.117.0.160]) by ndmsppt102.ndc.nasa.gov (8.14.5/8.14.5) with ESMTP id r281ofQJ001846 for <dtn-users@irtf.org>; Thu, 7 Mar 2013 19:50:42 -0600
Received: from NDMSSCC05.ndc.nasa.gov ([198.117.2.174]) by ndmshub01.ndc.nasa.gov ([192.168.0.111]) with mapi; Thu, 7 Mar 2013 19:50:42 -0600
From: "Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]" <david.a.zoller@nasa.gov>
To: "dtn-users@irtf.org" <dtn-users@irtf.org>
Date: Thu, 7 Mar 2013 19:50:40 -0600
Thread-Topic: DTN2.9 - ACS and some performance improvement patches uploaded
Thread-Index: Ac4Z365md31eBPucTSWquiuoYsyYbA==
Message-ID: <04E3D99A62496240BCD6A576813E6E31E0C38B285B@NDMSSCC05.ndc.nasa.gov>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: multipart/related; boundary="_005_04E3D99A62496240BCD6A576813E6E31E0C38B285BNDMSSCC05ndcn_"; type="multipart/alternative"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.9.8327, 1.0.431, 0.0.0000 definitions=2013-03-07_09:2013-03-07, 2013-03-07, 1970-01-01 signatures=0
Subject: [dtn-users] DTN2.9 - ACS and some performance improvement patches uploaded
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Mar 2013 01:50:50 -0000

--_005_04E3D99A62496240BCD6A576813E6E31E0C38B285BNDMSSCC05ndcn_
Content-Type: multipart/alternative;
	boundary="_000_04E3D99A62496240BCD6A576813E6E31E0C38B285BNDMSSCC05ndcn_"

--_000_04E3D99A62496240BCD6A576813E6E31E0C38B285BNDMSSCC05ndcn_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hello all,
I have uploaded two patches to the DTN2 Sourceforge Tracker/Patches section=
:
http://sourceforge.net/tracker/?group_id=3D101657&atid=3D630169

The DTN2.9 Aggregate Custody Signals and Performance Improvements set of pa=
tches include the 2.8 ACS and improvements uploaded last year plus addition=
al modifications dealing with the delivery of bundles to registrations to a=
llow more then 64K bundles to be delivered upon connection (oasys::notifier=
) and to make the initial deliveries in the background to prevent stalling =
the main BundleDaemon processing  thread. The DTN2 patch is against changes=
et 3564 and is not compatible with the two dtntunnel changesets that were a=
pplied this morning - it can be hard to keep up sometimes  :).
Here is a direct link to download this set of patches:
http://sourceforge.net/tracker/download.php?group_id=3D101657&atid=3D630169=
&file_id=3D461297&aid=3D3607104
The list of modified files can be seen here:
http://sourceforge.net/tracker/?func=3Ddetail&aid=3D3607104&group_id=3D1016=
57&atid=3D630169


The DTN2 - 3 Node Test patch provides scripts, configuration files and a Ja=
va utility to generate UDP packets for the test introduced below. This patc=
h can be applied to any DTN2 changeset as it is all new directories and fil=
es. You'll need a Java JDK installed to build the Java utility (udprepeater=
.jar) or you can download a copy below.
Here is a direct link to download the 3 node test patch:
http://sourceforge.net/tracker/download.php?group_id=3D101657&atid=3D630169=
&file_id=3D461292&aid=3D3607106

A tutorial for patching and building the software, running the 3 Node Test =
and compiling the results can be downloaded here:

https://docs.google.com/file/d/0B8ZX0kVfBMtqS2hoVnRFRVlGNUU/edit?usp=3Dshar=
ing


A patched set of source code (includes the Java utility) ready to configure=
 and build can be download here:

https://docs.google.com/file/d/0B8ZX0kVfBMtqeWNlZEF5eHBqMkk/edit?usp=3Dshar=
ing
md5sum  dtn2.9_patched_src.tar.gz  =3D  f7da2083b8fe4da3cb124594b4123e76

The Java utility pre-built using jdk1.6.0_41 can be downloaded here:

https://docs.google.com/file/d/0B8ZX0kVfBMtqakd1bGdKa3ZWbWM/edit?usp=3Dshar=
ing
md5sum udprepeater.jar  =3D  c49d26f825a8d80f29aeca8745034048
To run it:   java -jar udprepeater.jar


if only certain elements of the patches are desired then let me know and I =
can pull them out and repackage them into smaller more specialized patches.

New DTN2 configure options:

*         --with-acs              to enable inclusion of the draft Aggregat=
e Custody Signals and Custody Transfer Enhancement Block

*         --with-ecos           to enable a partial implementation of the E=
xtended Class of Service Block

*         --with-bid64bit    to enable 64 bit Bundle IDs

*         --with-bdstats     to enable generating spreadsheet compatible on=
ce per second BundleDaemon event statistics



The 3 Node Test
>From the tutorial (reprinted with permission):
[cid:image001.png@01CE1B6D.0C1549B0]

Results running on three of our virtual systems:
[cid:image002.png@01CE1B6D.0C1549B0]


Please let me know if you run into any issues.
Best regards,
DZ


David Zoller
COLSA Corporation
Marshall Space Flight Center

--_000_04E3D99A62496240BCD6A576813E6E31E0C38B285BNDMSSCC05ndcn_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" xmlns:dt=3D"uuid:C2F4101=
0-65B3-11d1-A29F-00AA00C14882" xmlns:m=3D"http://schemas.microsoft.com/offi=
ce/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html40"><head><META HTTP=
-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=3Dus-ascii"><meta nam=
e=3DGenerator content=3D"Microsoft Word 14 (filtered medium)"><!--[if !mso]=
><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
p
	{mso-style-priority:99;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
span.EmailStyle19
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
span.EmailStyle20
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
p.Default, li.Default, div.Default
	{mso-style-name:Default;
	margin:0in;
	margin-bottom:.0001pt;
	text-autospace:none;
	font-size:12.0pt;
	font-family:"Calibri","sans-serif";
	color:black;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:29381450;
	mso-list-type:hybrid;
	mso-list-template-ids:1743923140 -1625911146 67698691 67698693 67698689 67=
698691 67698693 67698689 67698691 67698693;}
@list l0:level1
	{mso-level-start-at:0;
	mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:.75in;
	text-indent:-.25in;
	font-family:Symbol;
	mso-fareast-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:1.25in;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:1.75in;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:2.25in;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:2.75in;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:3.25in;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:3.75in;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:4.25in;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:4.75in;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l1
	{mso-list-id:931745232;
	mso-list-type:hybrid;
	mso-list-template-ids:591532870 1076793494 -1527377286 67698693 67698689 6=
7698691 67698693 67698689 67698691 67698693;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;
	mso-fareast-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";}
@list l1:level2
	{mso-level-start-at:0;
	mso-level-number-format:bullet;
	mso-level-text:\F0D8;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;
	mso-fareast-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";}
@list l1:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l1:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l1:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l1:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l1:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l1:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l1:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l2
	{mso-list-id:1194808677;
	mso-list-type:hybrid;
	mso-list-template-ids:1281531230 1076793494 67698691 67698693 67698689 676=
98691 67698693 67698689 67698691 67698693;}
@list l2:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;
	mso-fareast-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";}
@list l2:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l2:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l2:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l2:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l2:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l2:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l2:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l2:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l3
	{mso-list-id:2015716918;
	mso-list-type:hybrid;
	mso-list-template-ids:140547706 969861630 936572626 1504099026 -1175707642=
 -243789848 -1707156304 -103254196 247487226 -1031091204;}
@list l3:level1
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial","sans-serif";
	mso-bidi-font-family:"Times New Roman";}
@list l3:level2
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial","sans-serif";
	mso-bidi-font-family:"Times New Roman";}
@list l3:level3
	{mso-level-start-at:1626;
	mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial","sans-serif";
	mso-bidi-font-family:"Times New Roman";}
@list l3:level4
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial","sans-serif";
	mso-bidi-font-family:"Times New Roman";}
@list l3:level5
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial","sans-serif";
	mso-bidi-font-family:"Times New Roman";}
@list l3:level6
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial","sans-serif";
	mso-bidi-font-family:"Times New Roman";}
@list l3:level7
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial","sans-serif";
	mso-bidi-font-family:"Times New Roman";}
@list l3:level8
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial","sans-serif";
	mso-bidi-font-family:"Times New Roman";}
@list l3:level9
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial","sans-serif";
	mso-bidi-font-family:"Times New Roman";}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue vli=
nk=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal>Hello all,<o:p><=
/o:p></p><p class=3DMsoNormal>I have uploaded two patches to the DTN2 Sourc=
eforge Tracker/Patches section:<o:p></o:p></p><p class=3DMsoNormal><a href=
=3D"http://sourceforge.net/tracker/?group_id=3D101657&amp;atid=3D630169">ht=
tp://sourceforge.net/tracker/?group_id=3D101657&amp;atid=3D630169</a> <o:p>=
</o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>Th=
e <b>DTN2.9 Aggregate Custody Signals and Performance Improvements</b> set =
of patches include the 2.8 ACS and improvements uploaded last year plus add=
itional modifications dealing with the delivery of bundles to registrations=
 to allow more then 64K bundles to be delivered upon connection (oasys::not=
ifier) and to make the initial deliveries in the background to prevent stal=
ling the main BundleDaemon processing &nbsp;thread. The DTN2 patch is again=
st changeset 3564 and is <b>not</b> compatible with the two dtntunnel chang=
esets that were applied this morning &#8211; it can be hard to keep up some=
times &nbsp;:).<o:p></o:p></p><p class=3DMsoNormal>Here is a direct link to=
 download this set of patches:<o:p></o:p></p><p class=3DMsoNormal><span sty=
le=3D'font-size:11.5pt'><a href=3D"http://sourceforge.net/tracker/download.=
php?group_id=3D101657&amp;atid=3D630169&amp;file_id=3D461297&amp;aid=3D3607=
104">http://sourceforge.net/tracker/download.php?group_id=3D101657&amp;atid=
=3D630169&amp;file_id=3D461297&amp;aid=3D3607104</a> </span><o:p></o:p></p>=
<p class=3DMsoNormal>The list of modified files can be seen here:<o:p></o:p=
></p><p class=3DMsoNormal><a href=3D"http://sourceforge.net/tracker/?func=
=3Ddetail&amp;aid=3D3607104&amp;group_id=3D101657&amp;atid=3D630169">http:/=
/sourceforge.net/tracker/?func=3Ddetail&amp;aid=3D3607104&amp;group_id=3D10=
1657&amp;atid=3D630169</a> <o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;<=
/o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>The=
 <b>DTN2 &#8211; 3 Node Test</b> patch provides scripts, configuration file=
s and a Java utility to generate UDP packets for the test introduced below.=
 This patch can be applied to any DTN2 changeset as it is all new directori=
es and files. You&#8217;ll need a Java JDK installed to build the Java util=
ity (udprepeater.jar) or you can download a copy below.<o:p></o:p></p><p cl=
ass=3DMsoNormal>Here is a direct link to download the 3 node test patch:<o:=
p></o:p></p><p class=3DMsoNormal><span style=3D'font-size:11.5pt'><a href=
=3D"http://sourceforge.net/tracker/download.php?group_id=3D101657&amp;atid=
=3D630169&amp;file_id=3D461292&amp;aid=3D3607106">http://sourceforge.net/tr=
acker/download.php?group_id=3D101657&amp;atid=3D630169&amp;file_id=3D461292=
&amp;aid=3D3607106</a> </span><o:p></o:p></p><p class=3DMsoNormal><o:p>&nbs=
p;</o:p></p><p class=3DMsoNormal>A tutorial for patching and building the s=
oftware, running the 3 Node Test and compiling the results can be downloade=
d here:<o:p></o:p></p><p style=3D'margin:0in;margin-bottom:.0001pt'><span s=
tyle=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><a href=3D"htt=
ps://docs.google.com/file/d/0B8ZX0kVfBMtqS2hoVnRFRVlGNUU/edit?usp=3Dsharing=
">https://docs.google.com/file/d/0B8ZX0kVfBMtqS2hoVnRFRVlGNUU/edit?usp=3Dsh=
aring</a><o:p></o:p></span></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p=
 class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>A patched set =
of source code (includes the Java utility) ready to configure and build can=
 be download here:<o:p></o:p></p><p style=3D'margin:0in;margin-bottom:.0001=
pt'><span style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><a =
href=3D"https://docs.google.com/file/d/0B8ZX0kVfBMtqeWNlZEF5eHBqMkk/edit?us=
p=3Dsharing">https://docs.google.com/file/d/0B8ZX0kVfBMtqeWNlZEF5eHBqMkk/ed=
it?usp=3Dsharing</a><o:p></o:p></span></p><p class=3DMsoNormal>md5sum&nbsp;=
 dtn2.9_patched_src.tar.gz&nbsp; =3D&nbsp; f7da2083b8fe4da3cb124594b4123e76=
&nbsp; <o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3D=
MsoNormal>The Java utility pre-built using jdk1.6.0_41 can be downloaded he=
re:<o:p></o:p></p><p style=3D'margin:0in;margin-bottom:.0001pt'><span style=
=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><a href=3D"https:/=
/docs.google.com/file/d/0B8ZX0kVfBMtqakd1bGdKa3ZWbWM/edit?usp=3Dsharing">ht=
tps://docs.google.com/file/d/0B8ZX0kVfBMtqakd1bGdKa3ZWbWM/edit?usp=3Dsharin=
g</a><o:p></o:p></span></p><p class=3DMsoNormal>md5sum udprepeater.jar&nbsp=
; =3D&nbsp; c49d26f825a8d80f29aeca8745034048<o:p></o:p></p><p class=3DMsoNo=
rmal>To run it: &nbsp;&nbsp;java -jar udprepeater.jar<o:p></o:p></p><p clas=
s=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></=
p><p class=3DMsoNormal>if only certain elements of the patches are desired =
then let me know and I can pull them out and repackage them into smaller mo=
re specialized patches. <o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:=
p></p><p class=3DMsoNormal>New DTN2 configure options:<o:p></o:p></p><p cla=
ss=3DMsoListParagraph style=3D'margin-left:.75in;text-indent:-.25in;mso-lis=
t:l0 level1 lfo6'><![if !supportLists]><span style=3D'font-family:Symbol'><=
span style=3D'mso-list:Ignore'>&middot;<span style=3D'font:7.0pt "Times New=
 Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></s=
pan><![endif]>--with-acs&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; &nbsp;&nbsp;to enable inclusion of the draft Aggregate Custody S=
ignals and Custody Transfer Enhancement Block<o:p></o:p></p><p class=3DMsoL=
istParagraph style=3D'margin-left:.75in;text-indent:-.25in;mso-list:l0 leve=
l1 lfo6'><![if !supportLists]><span style=3D'font-family:Symbol'><span styl=
e=3D'mso-list:Ignore'>&middot;<span style=3D'font:7.0pt "Times New Roman"'>=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><![en=
dif]>--with-ecos&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;to enable a partial implementation of the Extended Class of Service Block=
<o:p></o:p></p><p class=3DMsoListParagraph style=3D'margin-left:.75in;text-=
indent:-.25in;mso-list:l0 level1 lfo6'><![if !supportLists]><span style=3D'=
font-family:Symbol'><span style=3D'mso-list:Ignore'>&middot;<span style=3D'=
font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp; </span></span></span><![endif]>--with-bid64bit&nbsp; &nbsp;&nbsp;to ena=
ble 64 bit Bundle IDs<o:p></o:p></p><p class=3DMsoListParagraph style=3D'ma=
rgin-left:.75in;text-indent:-.25in;mso-list:l0 level1 lfo6'><![if !supportL=
ists]><span style=3D'font-family:Symbol'><span style=3D'mso-list:Ignore'>&m=
iddot;<span style=3D'font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><![endif]>--with-bdstats&nbsp=
; &nbsp;&nbsp;&nbsp;to enable generating spreadsheet compatible once per se=
cond BundleDaemon event statistics <o:p></o:p></p><p class=3DMsoNormal><o:p=
>&nbsp;</o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNo=
rmal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal><b>The 3 Node Test<o:p></o:p=
></b></p><p class=3DMsoNormal>From the tutorial (reprinted with permission)=
:<o:p></o:p></p><p class=3DMsoNormal><img border=3D0 width=3D829 height=3D6=
25 id=3D"Picture_x0020_1" src=3D"cid:image001.png@01CE1B6D.0C1549B0"><o:p><=
/o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>Res=
ults running on three of our virtual systems:<o:p></o:p></p><p class=3DMsoN=
ormal><img border=3D0 width=3D1031 height=3D401 id=3D"Picture_x0020_2" src=
=3D"cid:image002.png@01CE1B6D.0C1549B0"><o:p></o:p></p><p class=3DMsoNormal=
><o:p>&nbsp;</o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3D=
MsoNormal>Please let me know if you run into any issues.<o:p></o:p></p><p c=
lass=3DMsoNormal>Best regards,<o:p></o:p></p><p class=3DMsoNormal>DZ<o:p></=
o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal><o:p=
>&nbsp;</o:p></p><div><p class=3DMsoNormal><span style=3D'font-size:10.0pt;=
font-family:"Arial","sans-serif"'>David Zoller</span><o:p></o:p></p><p clas=
s=3DMsoNormal><span style=3D'font-size:10.0pt;font-family:"Arial","sans-ser=
if"'>COLSA Corporation</span><o:p></o:p></p><p class=3DMsoNormal><span styl=
e=3D'font-size:10.0pt;font-family:"Arial","sans-serif"'>Marshall Space Flig=
ht Center</span><o:p></o:p></p></div></div></body></html>=

--_000_04E3D99A62496240BCD6A576813E6E31E0C38B285BNDMSSCC05ndcn_--

--_005_04E3D99A62496240BCD6A576813E6E31E0C38B285BNDMSSCC05ndcn_
Content-Type: image/png; name="image001.png"
Content-Description: image001.png
Content-Disposition: inline; filename="image001.png"; size=118138;
	creation-date="Fri, 08 Mar 2013 01:50:41 GMT";
	modification-date="Fri, 08 Mar 2013 01:50:41 GMT"
Content-ID: <image001.png@01CE1B6D.0C1549B0>
Content-Transfer-Encoding: base64

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

--_005_04E3D99A62496240BCD6A576813E6E31E0C38B285BNDMSSCC05ndcn_
Content-Type: image/png; name="image002.png"
Content-Description: image002.png
Content-Disposition: inline; filename="image002.png"; size=36887;
	creation-date="Fri, 08 Mar 2013 01:50:41 GMT";
	modification-date="Fri, 08 Mar 2013 01:50:41 GMT"
Content-ID: <image002.png@01CE1B6D.0C1549B0>
Content-Transfer-Encoding: base64

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
SUVORK5CYII=

--_005_04E3D99A62496240BCD6A576813E6E31E0C38B285BNDMSSCC05ndcn_--

From zollerd@gmail.com  Thu Mar  7 20:09:12 2013
Return-Path: <zollerd@gmail.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BFEEE21F8505 for <dtn-users@ietfa.amsl.com>; Thu,  7 Mar 2013 20:09:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.598
X-Spam-Level: 
X-Spam-Status: No, score=-3.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3hFF49cng18G for <dtn-users@ietfa.amsl.com>; Thu,  7 Mar 2013 20:09:12 -0800 (PST)
Received: from mail-oa0-f41.google.com (mail-oa0-f41.google.com [209.85.219.41]) by ietfa.amsl.com (Postfix) with ESMTP id E3B1C21F8503 for <dtn-users@irtf.org>; Thu,  7 Mar 2013 20:09:11 -0800 (PST)
Received: by mail-oa0-f41.google.com with SMTP id i10so1552850oag.14 for <dtn-users@irtf.org>; Thu, 07 Mar 2013 20:09:11 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=Nv0kGSrSK3/ZR5fVhofmmg62HfZFPhytUtuualw85hE=; b=y3oSgmyWHIFFRj6cyKgamIxjtWclUXq37F2n8QGoe4Am21s20pilXxVe/gienTFkUk 9IIsELNYuIf6fAxWbHJ0IBkugxMEB7BBh+Y+HnsjYNhuVS4Cd5EkYq+Z/Bfp5C0gdkCk gmzJUMlzmv8gStGIl3Oe9Y/hHbrytsFfblO8+1VCDYyiuDX92CIr2FNdI3VXUBVeH1W1 TyiOsNC6TEMFanWywLPb0PU95+8EnSCs3vg9KHNxMPOjpLxqxUldEl8BcNrtfUiwgEpb ++/e49Uktxfpk4h9y6PuO2ZvR4sQ2c/xsBbvXqtiVPjBRMdWn3khOqpO9vaZFUcu6QQZ kfDw==
MIME-Version: 1.0
X-Received: by 10.182.2.132 with SMTP id 4mr510489obu.42.1362715751464; Thu, 07 Mar 2013 20:09:11 -0800 (PST)
Received: by 10.182.136.98 with HTTP; Thu, 7 Mar 2013 20:09:11 -0800 (PST)
Date: Thu, 7 Mar 2013 22:09:11 -0600
Message-ID: <CA+X1Cod+OexES4Uno3_mG+Lfu3-=21o+o2Es-1JbY01m7UuO8Q@mail.gmail.com>
From: David Zoller <zollerd@gmail.com>
To: dtn-users@irtf.org
Content-Type: multipart/alternative; boundary=f46d044519d94bc38104d761fc8c
Subject: Re: [dtn-users] DTN2.9 - ACS and some performance improvement patches uploaded
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Mar 2013 04:09:12 -0000

--f46d044519d94bc38104d761fc8c
Content-Type: text/plain; charset=ISO-8859-1

So... I made it home and found that several DTN2 patches have been applied
and others uploaded. It looks like the two dtntunnel implementations have
diverged a bit and the patches by that DZ character are slightly out of
date. With my home-hobbyist hat on, maybe I can remedy that...

This patch can be applied to the *DTN2.9 Aggregate Custody Signals and
Performance Improvements* set of patches as applied to DTN2 changeset 3564
to update it with the last 4 patches. It also updates some of the new files
with the fix that Lana Black pointed out in changeset 3568.
*apply_last_4_patches_to_dtn2.9.0x.patch* can be downloaded here:
https://docs.google.com/file/d/0B8ZX0kVfBMtqQXQ0X0FsZ01uaUE/edit?usp=sharing
Set default to the dtn2.9.0x directory and run:  patch -p1 -i
apply_last_4_patches_to_dtn2.9.0x.patch

Or you can download the fully patched source code here:
https://docs.google.com/file/d/0B8ZX0kVfBMtqZkdJcXlIWDA0OGc/edit?usp=sharing
md5sum dtn2.9_acs_patched_src_with_last_4_patches.tar.gz  =
 a42206d2c6615406133965dc3d07964d



This optional patch can be applied to the latest DTN2 Sourceforge version
to merge the two dtntunnel implementations into Sergey's transparent
tunnel. I see that it adds options to override the default UDP
socket buffer sizes, monitor the throughput rate and to monitor a sequence
counter used in the 3 Node Test. It updates the files in dtntunnel and also
adds librt to the LDLIBS in apps/Makefile for the monitor feature.
*update_transparent_tunnel.patch* can be downloaded here:
https://docs.google.com/file/d/0B8ZX0kVfBMtqc1ZWVWllYXY5S0k/edit?usp=sharing
Set default to your dtn2.9.0 directory and run:  patch -p1 -i
update_transparent_tunnel.patch

Best regards,
h-h DZ  ;-)

--f46d044519d94bc38104d761fc8c
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<font face=3D"tahoma, sans-serif">So... I made it home and found that sever=
al DTN2 patches have been applied and others uploaded. It looks like the tw=
o dtntunnel implementations have diverged a bit and the patches by that DZ =
character are slightly out of date. With my home-hobbyist hat on, maybe I c=
an remedy that...</font><div>
<font face=3D"tahoma, sans-serif"><br></font></div><div><font face=3D"tahom=
a, sans-serif">This patch can be applied to the=A0<b>DTN2.9 Aggregate Custo=
dy Signals and Performance Improvements</b>=A0set of patches as applied to =
DTN2 changeset 3564 to update it with the last 4 patches. It also updates s=
ome of the new files with the fix that Lana Black pointed out in changeset =
3568.</font></div>
<div><font face=3D"tahoma, sans-serif"><b>apply_last_4_patches_to_dtn2.9.0x=
.patch</b> can be downloaded here:</font></div><div><font face=3D"tahoma, s=
ans-serif"><a href=3D"https://docs.google.com/file/d/0B8ZX0kVfBMtqQXQ0X0FsZ=
01uaUE/edit?usp=3Dsharing">https://docs.google.com/file/d/0B8ZX0kVfBMtqQXQ0=
X0FsZ01uaUE/edit?usp=3Dsharing</a></font></div>
<div><font face=3D"tahoma, sans-serif">Set default to the dtn2.9.0x directo=
ry and run: =A0patch -p1 -i apply_last_4_patches_to_dtn2.9.0x.patch</font><=
/div><div><font face=3D"tahoma, sans-serif"><br></font></div><div><font fac=
e=3D"tahoma, sans-serif">Or you can download the fully patched source code =
here:</font></div>
<div><a href=3D"https://docs.google.com/file/d/0B8ZX0kVfBMtqZkdJcXlIWDA0OGc=
/edit?usp=3Dsharing"><font face=3D"tahoma, sans-serif">https://docs.google.=
com/file/d/0B8ZX0kVfBMtqZkdJcXlIWDA0OGc/edit?usp=3Dsharing</font></a></div>=
<div>
md5sum dtn2.9_acs_patched_src_with_last_4_patches.tar.gz =A0=3D =A0a42206d2=
c6615406133965dc3d07964d</div><div><br></div><div><br></div><div><br></div>=
<div>This optional patch=A0can be applied to the latest DTN2 Sourceforge ve=
rsion to merge the two dtntunnel implementations into Sergey&#39;s transpar=
ent tunnel. I see that it adds options to override the default UDP socket=
=A0buffer=A0sizes, monitor the throughput rate and to monitor a sequence co=
unter used in the 3 Node Test. It updates the files in dtntunnel and also a=
dds librt to the LDLIBS in apps/Makefile for the monitor feature.</div>
<div><span style=3D"font-family:tahoma,sans-serif"><b>update_transparent_tu=
nnel.patch</b>=A0can be downloaded here:</span></div><div><a href=3D"https:=
//docs.google.com/file/d/0B8ZX0kVfBMtqc1ZWVWllYXY5S0k/edit?usp=3Dsharing">h=
ttps://docs.google.com/file/d/0B8ZX0kVfBMtqc1ZWVWllYXY5S0k/edit?usp=3Dshari=
ng</a></div>
<div><span style=3D"font-family:tahoma,sans-serif">Set default to your dtn2=
.9.0 directory and run: =A0patch -p1 -i update_transparent_tunnel.patch</sp=
an></div><div><br></div><div><div>Best regards,</div></div><div>h-h DZ =A0;=
-)</div>

--f46d044519d94bc38104d761fc8c--

From aloomis@sarn.org  Fri Mar  8 12:43:10 2013
Return-Path: <aloomis@sarn.org>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C78AF21F8706 for <dtn-users@ietfa.amsl.com>; Fri,  8 Mar 2013 12:43:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.976
X-Spam-Level: 
X-Spam-Status: No, score=-2.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gTH6Rf2yXZcL for <dtn-users@ietfa.amsl.com>; Fri,  8 Mar 2013 12:43:10 -0800 (PST)
Received: from mail-qe0-f50.google.com (mail-qe0-f50.google.com [209.85.128.50]) by ietfa.amsl.com (Postfix) with ESMTP id 5FD8621F86EF for <dtn-users@irtf.org>; Fri,  8 Mar 2013 12:43:03 -0800 (PST)
Received: by mail-qe0-f50.google.com with SMTP id k5so1291705qej.9 for <dtn-users@irtf.org>; Fri, 08 Mar 2013 12:43:02 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:x-gm-message-state; bh=dwbK7hZL9DWFmJp7Xu81i5fKWp7bYVjjDc8vxJAELnU=; b=BFVCP3ouud9N6kg1mvZmOpUOR+OUyMPYeGDZmP7E82Ei2UE3wcov0Pm9UsIWd0KcyB 8/7klyldCNPky8uY/xct9vlqQoNsF1DLwNi2ICnNdrT67ePMlUbqU3fuwHzPYGYL6ory xylUmsXeAEMdBs1Qbau7FaWA4P0ALH+NtAK7WRKCTDVcAUnqZ4mTY6ssU7oHsfBR6okn uOeg73+ma1omhsla2BsmDCBkkFJRBVnX8TKt3T92rq9zB7WiK+jgO0/btauk9iWT9iYE Xu6T+gHV4vaJP/O5wyQNoc5N/nG8ZEw1R+IsghewmedalnWqMxxA9afSCDyDpycZBs4R oKag==
MIME-Version: 1.0
X-Received: by 10.229.204.167 with SMTP id fm39mr1262738qcb.97.1362775382763;  Fri, 08 Mar 2013 12:43:02 -0800 (PST)
Received: by 10.49.72.1 with HTTP; Fri, 8 Mar 2013 12:43:02 -0800 (PST)
In-Reply-To: <CAB9rx+-9qL5j+BhwZX3gXb9ZRAKGQpwHPPeyQh3HifYkdThK_w@mail.gmail.com>
References: <20130224123309.GA19354@glow> <1361716256.4494.1191.camel@mightyatom> <CAB9rx+8Sd2TOFr2jKwq+Mv8nH6CgKoEEkSOOHSohxwVzTYn1zA@mail.gmail.com> <1361811760.4494.1284.camel@mightyatom> <CAB9rx+9XGh6nWdsth6wu7D7WarA5SEpaxTtq8vSvzntnMo3OiA@mail.gmail.com> <1361882036.4494.1350.camel@mightyatom> <CAB9rx+_6ccT=mBkx28j97nMwApWptOhRb8CXHs_mFFGEG6YQKw@mail.gmail.com> <1362276721.4494.2433.camel@mightyatom> <CAB9rx+-9qL5j+BhwZX3gXb9ZRAKGQpwHPPeyQh3HifYkdThK_w@mail.gmail.com>
Date: Fri, 8 Mar 2013 15:43:02 -0500
Message-ID: <CAB9rx+9nnHx_TNRhau6tsbbNCDcUGiwGn3fW172SbpVNo7YXvw@mail.gmail.com>
From: Amy Alford <aloomis@sarn.org>
To: Elwyn Davies <elwynd@folly.org.uk>
Content-Type: multipart/alternative; boundary=0016369fa19999572204d76fde87
X-Gm-Message-State: ALoCoQkyrlkx4dw/inb6whxB2ecuStyp0R3cJFD88Jq6z3bd6hfw2ig9iHe8YqjSHDxTarKvF/x2
Cc: dtn-users maillist <dtn-users@irtf.org>
Subject: Re: [dtn-users] bundle fragmentation
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Mar 2013 20:43:10 -0000

--0016369fa19999572204d76fde87
Content-Type: text/plain; charset=ISO-8859-1

Am I correct in my read of 5050 section 5.8 and 5.9: there are no
requirements on how extension blocks are handled during fragment
reassembly? In other words, while it would be a horrible idea, a conforming
implementation could simply drop all extension blocks during reassembly.

Assuming no extension blocks are added or modified after fragmentation
occurs, the sensible behavior is obvious.

However, BSP can add PIB blocks after fragmentation.  In this case, I can't
see how to reconstruct what PIB blocks already existed at the time a given
PIB block was added (which is important, because we hash over those
blocks).
- Amy

--0016369fa19999572204d76fde87
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>Am I correct in my read of 5050 section 5.8 and 5.9: there are no requ=
irements on how extension blocks are handled during fragment reassembly? In=
 other words, while it would be a horrible idea, a conforming implementatio=
n could simply drop all extension blocks during reassembly.</div>
<div><br></div><div>Assuming no extension blocks are added or modified afte=
r fragmentation occurs, the sensible behavior is obvious. =A0</div><div><br=
></div><div>However, BSP can add PIB blocks after fragmentation. =A0In this=
 case, I can&#39;t see how to reconstruct what PIB blocks already existed a=
t the time a given PIB block was added (which is important, because we hash=
 over those blocks). =A0=A0</div>
<div>- Amy</div>

--0016369fa19999572204d76fde87--

From elwynd@folly.org.uk  Fri Mar  8 16:59:43 2013
Return-Path: <elwynd@folly.org.uk>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7A94221F85A1 for <dtn-users@ietfa.amsl.com>; Fri,  8 Mar 2013 16:59:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id twR1K1x37RSk for <dtn-users@ietfa.amsl.com>; Fri,  8 Mar 2013 16:59:42 -0800 (PST)
Received: from a.painless.aa.net.uk (a.painless.aa.net.uk [IPv6:2001:8b0:0:30::51bb:1e33]) by ietfa.amsl.com (Postfix) with ESMTP id 13E3721F85A0 for <dtn-users@irtf.org>; Fri,  8 Mar 2013 16:59:42 -0800 (PST)
Received: from mightyatom.folly.org.uk ([81.187.254.250]) by a.painless.aa.net.uk with esmtp (Exim 4.77) (envelope-from <elwynd@folly.org.uk>) id 1UE88R-0006eb-Nc; Sat, 09 Mar 2013 00:59:39 +0000
From: Elwyn Davies <elwynd@folly.org.uk>
To: Amy Alford <aloomis@sarn.org>
In-Reply-To: <CAB9rx+9nnHx_TNRhau6tsbbNCDcUGiwGn3fW172SbpVNo7YXvw@mail.gmail.com>
References: <20130224123309.GA19354@glow> <1361716256.4494.1191.camel@mightyatom> <CAB9rx+8Sd2TOFr2jKwq+Mv8nH6CgKoEEkSOOHSohxwVzTYn1zA@mail.gmail.com> <1361811760.4494.1284.camel@mightyatom> <CAB9rx+9XGh6nWdsth6wu7D7WarA5SEpaxTtq8vSvzntnMo3OiA@mail.gmail.com> <1361882036.4494.1350.camel@mightyatom> <CAB9rx+_6ccT=mBkx28j97nMwApWptOhRb8CXHs_mFFGEG6YQKw@mail.gmail.com> <1362276721.4494.2433.camel@mightyatom> <CAB9rx+-9qL5j+BhwZX3gXb9ZRAKGQpwHPPeyQh3HifYkdThK_w@mail.gmail.com> <CAB9rx+9nnHx_TNRhau6tsbbNCDcUGiwGn3fW172SbpVNo7YXvw@mail.gmail.com>
Content-Type: text/plain
Organization: Folly Consulting
Date: Sat, 09 Mar 2013 00:57:39 +0000
Message-Id: <1362790659.4494.3582.camel@mightyatom>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.3 
Content-Transfer-Encoding: 7bit
Cc: DTN Users <dtn-users@irtf.org>
Subject: Re: [dtn-users] bundle fragmentation
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Sat, 09 Mar 2013 00:59:43 -0000

Hi Amy.

I think you just prised the lid off a large can of worms.
Better go find the larger can to put them back in :-(

On Fri, 2013-03-08 at 15:43 -0500, Amy Alford wrote:
> Am I correct in my read of 5050 section 5.8 and 5.9: there are no
> requirements on how extension blocks are handled during fragment
> reassembly? 
Well, reading the specification from a "let's do the absolute minimum"
perspective, you could come to that conclusion.  There is indeed lots of
stuff about explicitly dropping blocks .. but it doesn't say anything
about insisting on keeping blocks if aren't explicitly dropped. 
> In other words, while it would be a horrible idea, a conforming
> implementation could simply drop all extension blocks during
> reassembly.
Hmm! I feel a rather large erratum coming on here!

The stuff I have just spent several months fiddling with would be
completely wrecked if this was a valid interprestation.  I want a BPQ
block and one or two Metadata blocks carried e2e please and no
arguments.

Let's think briefly about custody.. I inject a bundle like the one I
just mentioned with extension and metadata blocks and it asks for
custody transfer.  So it arrives at a node which says: "yes, I'll take
custody"... so what has it committed itself to taking custody of????

> 
> 
> Assuming no extension blocks are added or modified after fragmentation
> occurs, the sensible behavior is obvious. 
Certainly I would like to get the set of blocks I injected at the source
back at the destination less possibly ones that couldn't be processed.
Of course having a block that has been hashed over but can't be
processed at some intemediate node might get you into trouble.. there
are weasel words in the BSP about this.  
>  
> 
> 
> However, BSP can add PIB blocks after fragmentation.  In this case, I
> can't see how to reconstruct what PIB blocks already existed at the
> time a given PIB block was added (which is important, because we hash
> over those blocks). 
And in principle, any node is free to add on metadata blocks and take
them away. However going back to the PIB Block issue:

I don't think the PIB stuff is a problem (assuming the implementation
conforms to the BSP spec) but I may not understand the problem.  

- Any PIB block from before a fragmentation will only be in the first
fragment of the block that was fragmented; its corresponding correlator
(if it has one) will be in the last fragment.  If there are intermediate
fragments they won't have PIBs (but might have PCBs if they have
replicate in all blocks set)
- There's a stack of PIB blocks with associated security destinations
and if the PIB applies to a part of payload it is supposed to say what
part (I think - s2.3 of BSP).
- When you reach a security destination (maybe the final destination),
you start unwinding the stack in each bundle.  Deal with the BAB in each
fragment first.  Then for each fragment that has an PIB as its first
security block and has the current node as current 'outside' (top of the
tack) security destination, look at the range of payload bytes the PIB
covers.  Do whatever reassembly is implied by this (may have to be
postponed if not all the bits have arrived yet) putting together the
fragments needed to make up the piece of payload protected by the PIB.
Reconstruct the bundle that was fragmented after this PIB was put in
place (which may be a fragment of the larger bundle.) Check the PIB and
its correlator and then discard them (or the whole bundle if the check
fails).  Repeat the exercise for all the fragments in turn.  Do any PCB
and ESB actions for this security destination.  Then recurse up the
stack of PIBs if relevent starting from the lowest offset fragemnt each
time.

That's pretty complex and tedious but I think it works.

But I am wondering if we need a Metadata block to say whet extension
blocks (and other Metadata blocks were in the original bundle plus a
flag in the primary block to say it is there??  That way custody would
know what it was taking charge of.

Thoughts?

/Elwyn

 

>   
> - Amy


From yuanp1990@163.com  Mon Mar 11 05:04:44 2013
Return-Path: <yuanp1990@163.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3199021F86AF for <dtn-users@ietfa.amsl.com>; Mon, 11 Mar 2013 05:04:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 3.873
X-Spam-Level: ***
X-Spam-Status: No, score=3.873 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, MIME_BASE64_TEXT=1.753, RELAY_IS_220=2.118]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id z61-jFMuo4D5 for <dtn-users@ietfa.amsl.com>; Mon, 11 Mar 2013 05:04:43 -0700 (PDT)
Received: from m12-17.163.com (m12-17.163.com [220.181.12.17]) by ietfa.amsl.com (Postfix) with ESMTP id 7D75A21F8518 for <dtn-users@irtf.org>; Mon, 11 Mar 2013 05:04:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Received:Date:From:To:Reply-To:Subject:Mime-Version: Message-ID:Content-Type; bh=f3tydZcgTKJk5Gb04lIJkjVNaWN79SxSmvsp f4jWsbU=; b=A24eLt+nJNHu3CoGAPY0wVD0oqaC56vvqB3ATN7v2w/GFM7aNFFo oDThj38Cqz5z0uj8BM5MWf9wRqlfxofEHeLMfO35jHgHB7+wQvcEsXaVp3hiFa8M YsqG88K+vZvKNMqs3xfpr/ytRsvEnFJzE2B0Z7hk3Y351fDyqA7Oymw=
Received: from ghost-PC (unknown [58.60.1.79]) by smtp13 (Coremail) with SMTP id EcCowEApp2RHyD1RXwFfAA--.1041S2; Mon, 11 Mar 2013 20:04:24 +0800 (CST)
Date: Mon, 11 Mar 2013 20:04:24 +0800
From: yuanp1990 <yuanp1990@163.com>
To: "dtn-users maillist" <dtn-users@irtf.org>
X-Priority: 3
X-Has-Attach: no
X-Mailer: Foxmail 7.0.1.92[cn]
Mime-Version: 1.0
Message-ID: <201303112004229502382@163.com>
Content-Type: multipart/alternative; boundary="----=_001_NextPart737504353234_=----"
X-CM-TRANSID: EcCowEApp2RHyD1RXwFfAA--.1041S2
X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73 VFW2AGmfu7bjvjm3AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxUOxRDUUUUU
X-CM-SenderInfo: h1xd01arzziqqrwthudrp/1tbiDhbc71EABUW0DQAAsD
Subject: [dtn-users] Simulation using DTN2 and ONE?
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: yuanp1990 <yuanp1990@163.com>
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Mar 2013 12:04:44 -0000

This is a multi-part message in MIME format.

------=_001_NextPart737504353234_=----
Content-Type: text/plain;
	charset="gb2312"
Content-Transfer-Encoding: base64

SGVsbG8sIA0KRG9lcyBhbnlvbmUgdXNlICBPcHBvcnR1bmlzdGljIE5ldHdvcmtpbmcgRW52aXJv
bm1lbnQgYXMgdGhlIEVDTCBmb3IgRFROMj8gSXMgdGhlcmUgYW55IGRpZmZlcmVuY2UgaW4gaW5z
dGFsbGluZyBEVE4yPw0KUmVnYXJkcyENCg0KDQoNCg0KeXVhbnAxOTkw

------=_001_NextPart737504353234_=----
Content-Type: text/html;
	charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Dgb2312" http-equiv=3DContent-Type>
<STYLE>
BLOCKQUOTE {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
}
OL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
UL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
P {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
BODY {
	LINE-HEIGHT: 1.5; FONT-FAMILY: =CE=A2=C8=ED=D1=C5=BA=DA; COLOR: #000000; =
FONT-SIZE: 10.5pt
}
</STYLE>

<META name=3DGENERATOR content=3D"MSHTML 8.00.7600.17209"></HEAD>
<BODY style=3D"MARGIN: 10px">
<DIV>Hello, </DIV>
<DIV>Does anyone use&nbsp;&nbsp;Opportunistic&nbsp;Networking&nbsp;Environ=
ment=20
as the ECL for DTN2? Is there any difference in installing DTN2?</DIV>
<DIV>Regards!</DIV>
<DIV>&nbsp;</DIV>
<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
=3D1>

<DIV><SPAN>yuanp1990</SPAN></DIV></BODY></HTML>

------=_001_NextPart737504353234_=------



From sickmind@lavabit.com  Mon Mar 11 07:58:01 2013
Return-Path: <sickmind@lavabit.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 78B6311E8103 for <dtn-users@ietfa.amsl.com>; Mon, 11 Mar 2013 07:58:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 4.308
X-Spam-Level: ****
X-Spam-Status: No, score=4.308 tagged_above=-999 required=5 tests=[AWL=-3.293,  BAYES_00=-2.599, J_CHICKENPOX_22=0.6, J_CHICKENPOX_23=0.6, J_CHICKENPOX_24=0.6, J_CHICKENPOX_25=0.6, J_CHICKENPOX_29=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_32=0.6, J_CHICKENPOX_36=0.6, J_CHICKENPOX_38=0.6, J_CHICKENPOX_62=0.6, J_CHICKENPOX_63=0.6, J_CHICKENPOX_64=0.6, J_CHICKENPOX_65=0.6, J_CHICKENPOX_66=0.6, J_CHICKENPOX_75=0.6, J_CHICKENPOX_84=0.6, J_CHICKENPOX_93=0.6]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KQbNL9u6NzNa for <dtn-users@ietfa.amsl.com>; Mon, 11 Mar 2013 07:57:59 -0700 (PDT)
Received: from karen.lavabit.com (karen.lavabit.com [72.249.41.33]) by ietfa.amsl.com (Postfix) with ESMTP id 7AFC811E80DF for <dtn-users@irtf.org>; Mon, 11 Mar 2013 07:57:59 -0700 (PDT)
Received: from d.earth.lavabit.com (d.earth.lavabit.com [192.168.111.13]) by karen.lavabit.com (Postfix) with ESMTP id 129A911B96A for <dtn-users@irtf.org>; Mon, 11 Mar 2013 09:57:59 -0500 (CDT)
Received: from localhost (pppoe.178-66-177-183.dynamic.avangarddsl.ru [178.66.177.183]) by lavabit.com with ESMTP id KQ23S6O867EN for <dtn-users@irtf.org>; Mon, 11 Mar 2013 09:57:59 -0500
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=lavabit; d=lavabit.com; b=NOSAbLYQPrpCDUOOGnKmuLXMWmG7ozEBWnWT0P594XNNrMopcs6W2OhPfqDoISKRsMsnznoay4sIC8apRHaYR69GrBd2YrYU5hUEm5YdAWsReBSzKxfkylT6UaLuFTjDRqyePxK8DfFaGxlYxyl9VwA1BUnw6A3j3HFu/CoYl7g=; h=Date:From:To:Subject:Message-ID:MIME-Version:Content-Type:Content-Disposition:User-Agent;
Date: Mon, 11 Mar 2013 14:58:04 +0000
From: Lana Black <sickmind@lavabit.com>
To: dtn-users maillist <dtn-users@irtf.org>
Message-ID: <20130311145804.GA1560@glow>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="9amGYk9869ThD9tj"
Content-Disposition: inline
User-Agent: Mutt/1.5.21 (2010-09-15)
Subject: [dtn-users] Ethernet discovery
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Mar 2013 14:58:01 -0000

--9amGYk9869ThD9tj
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi

I have reimplemented ethernet beacons as a discovery module. The
example of usage below:

discovery add eth0d eth interface=eth0
discovery announce eth0a eth0d eth interval=1

The interface argument is mandatory, otherwise all of the interfaces
present in the system will be used which is undesirable. Local EID is
also transmitted with every beacon, so that the receiving node might set
the correct route.

The other patch fixes a bug where discovery entry is deleted twice,
which results in abort() call.


With best regards.

--9amGYk9869ThD9tj
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="0001-Add-ethernet-discovery-module.patch"

>From 96c814928924b62d2fba9c9e1e74b4e71869e759 Mon Sep 17 00:00:00 2001
From: Lana Black <sickmind@lavabit.com>
Date: Wed, 6 Mar 2013 03:31:02 +0000
Subject: [PATCH] Add ethernet discovery module

---
 servlib/Makefile                           |   2 +
 servlib/conv_layers/EthConvergenceLayer.cc | 252 +------------------------
 servlib/conv_layers/EthConvergenceLayer.h  |  47 +----
 servlib/discovery/Announce.cc              |   6 +-
 servlib/discovery/Discovery.cc             |   5 +
 servlib/discovery/DiscoveryTable.cc        |   1 -
 servlib/discovery/EthAnnounce.cc           |  88 +++++++++
 servlib/discovery/EthAnnounce.h            |  56 ++++++
 servlib/discovery/EthDiscovery.cc          | 288 +++++++++++++++++++++++++++++
 servlib/discovery/EthDiscovery.h           |  72 ++++++++
 10 files changed, 518 insertions(+), 299 deletions(-)
 create mode 100644 servlib/discovery/EthAnnounce.cc
 create mode 100644 servlib/discovery/EthAnnounce.h
 create mode 100644 servlib/discovery/EthDiscovery.cc
 create mode 100644 servlib/discovery/EthDiscovery.h

diff --git a/servlib/Makefile b/servlib/Makefile
index a9f9efa..e8c22a2 100644
--- a/servlib/Makefile
+++ b/servlib/Makefile
@@ -123,6 +123,8 @@ DISCOVERY_SRCS :=				\
 	discovery/BonjourDiscovery.cc		\
 	discovery/Discovery.cc			\
 	discovery/DiscoveryTable.cc		\
+	discovery/EthAnnounce.cc 		\
+	discovery/EthDiscovery.cc 		\
 	discovery/IPAnnounce.cc			\
 	discovery/IPDiscovery.cc
 
diff --git a/servlib/conv_layers/EthConvergenceLayer.cc b/servlib/conv_layers/EthConvergenceLayer.cc
index 3ec5dc1..fe781b6 100644
--- a/servlib/conv_layers/EthConvergenceLayer.cc
+++ b/servlib/conv_layers/EthConvergenceLayer.cc
@@ -61,7 +61,6 @@ struct EthConvergenceLayer::Params EthConvergenceLayer::defaults_;
 void
 EthConvergenceLayer::Params::serialize(oasys::SerializeAction *a)
 {
-	a->process("beacon_interval", &beacon_interval_);
 	a->process("interface", &if_name_);
 }
 
@@ -74,7 +73,7 @@ EthConvergenceLayer::Params::serialize(oasys::SerializeAction *a)
 EthConvergenceLayer::EthConvergenceLayer()
     : ConvergenceLayer("EthConvergenceLayer", "eth")
 {
-    defaults_.beacon_interval_          = 1;
+    defaults_.if_name_ = "";
 }
 
 //----------------------------------------------------------------------
@@ -103,7 +102,6 @@ EthConvergenceLayer::parse_params(Params* params,
 {
     oasys::OptParser p;
 
-    p.addopt(new oasys::UIntOpt("beacon_interval", &params->beacon_interval_));
     p.addopt(new oasys::StringOpt("interface", &params->if_name_));
 
     if (! p.parse(argc, argv, invalidp)) {
@@ -149,11 +147,6 @@ EthConvergenceLayer::interface_up(Interface* iface,
     receiver->start();
     iface->set_cl_info(receiver);
 
-    // remembers the interface beacon object
-    if_beacon_ = new Beacon(if_name, params.beacon_interval_);
-    if_beacon_->logpathf("/cl/eth");
-    if_beacon_->start();
-    
     return true;
 }
 
@@ -165,13 +158,6 @@ EthConvergenceLayer::interface_down(Interface* iface)
   //             interface and kill them.
   // NOTIMPLEMENTED;
 
-    // xxx/shawn needs to find a way to delete beacon;
-    if_beacon_->set_should_stop();
-    while (! if_beacon_->is_stopped()) {
-        oasys::Thread::yield();
-    }
-    delete if_beacon_;
-
     Receiver *receiver = (Receiver *)iface->cl_info();
     receiver->set_should_stop();
     //receiver->interrupt();
@@ -270,7 +256,6 @@ EthConvergenceLayer::dump_link(const LinkRef& link, oasys::StringBuffer* buf)
     Params* params = dynamic_cast<Params*>(link->cl_info());
     ASSERT(params != NULL);
 
-    buf->appendf("beacon_interval: %u\n", params->beacon_interval_);
     buf->appendf("interface: %s\n", params->if_name_.c_str());
 }
 
@@ -365,96 +350,7 @@ EthConvergenceLayer::Receiver::process_data(u_char* bp, size_t len)
         return;
     }
 
-    if(ethclhdr.type == ETHCL_BEACON) {
-        ContactManager* cm = BundleDaemon::instance()->contactmgr();
-
-        char bundles_string[60];
-        memset(bundles_string,0,60);
-        EthernetScheme::to_string(&ethhdr->ether_shost[0],
-                                  bundles_string);
-        char next_hop_string[50], *ptr;
-        memset(next_hop_string,0,50);
-        ptr = strrchr(bundles_string, '/');
-        strcpy(next_hop_string, ptr+1);
-        
-        ConvergenceLayer* cl = ConvergenceLayer::find_clayer("eth");
-        EndpointID remote_eid(bundles_string);
-
-        LinkRef link = cm->find_link_to(cl,
-                                        next_hop_string,
-                                        remote_eid,
-                                        Link::OPPORTUNISTIC);
-        
-        if(link == NULL) {
-            log_info("EthConvergenceLayer::Receiver::process_data: "
-                     "Discovered next_hop %s on interface %s.",
-                     next_hop_string, if_name_);
-            
-            // registers a new contact with the routing layer
-            link = cm->new_opportunistic_link(cl,
-                                              next_hop_string,
-                                              EndpointID(bundles_string));
-
-            if (link == NULL) {
-                log_debug("EthConvergenceLayer::Receiver::process_data: "
-                          "failed to create new opportunistic link");
-                return;
-            }
-
-            oasys::ScopeLock l(link->lock(), "EthConvergenceLayer::Receiver");
-            // It is doubtful that the link would be deleted already,
-            // but check just in case.
-            if (link->isdeleted()) {
-                log_warn("EthConvergenceLayer::Receiver::process_data: "
-                         "link %s deleted before fully initialized",
-                         link->name());
-                return;
-            }
-            ASSERT(link->cl_info() != NULL);
-            Params *params = dynamic_cast<Params*>(link->cl_info());
-            params->if_name_ = if_name_;
-            l.unlock();
-        }
-
-        ASSERT(link != NULL);
-        oasys::ScopeLock l(link->lock(), "EthConvergenceLayer::Receiver");
-
-        if (link->isdeleted()) {
-            log_warn("EthConvergenceLayer::Receiver::process_data: "
-                     "link %s already deleted", link->name());
-            return;
-        }
-
-        ASSERT(link->cl_info() != NULL);
-        ASSERT(dynamic_cast<Params*>(link->cl_info())->if_name_ == if_name_);
-
-        if(!link->isavailable()) {
-            log_info("EthConvergenceLayer::Receiver::process_data: "
-                     "Got beacon for previously unavailable link %s",
-                     link->name());
-            
-            // Kicking the link available here
-            BundleDaemon::post(
-                    new LinkStateChangeRequest(link, Link::OPEN, ContactUpEvent::DISCOVERY));
-        }
-        
-        /**
-         * If there already is a timer for this link, cancel it, which
-         * will delete it when it bubbles to the top of the timer
-         * queue. Then create a new timer.
-         */
-        BeaconTimer *timer = ((Params*)link->cl_info())->timer;
-        if (timer)
-            timer->cancel();
-
-        timer = new BeaconTimer(next_hop_string); 
-        timer->schedule_in(ETHCL_BEACON_TIMEOUT_INTERVAL);
-        
-        ((Params*)link->cl_info())->timer = timer;
-
-        l.unlock();
-    }
-    else if(ethclhdr.type == ETHCL_BUNDLE) {
+    if(ethclhdr.type == ETHCL_BUNDLE) {
         // infer the bundle length based on the packet length minus the
         // eth cl header
         bundle_len = len - sizeof(EthCLHeader) - sizeof(struct ether_header);
@@ -715,150 +611,6 @@ EthConvergenceLayer::Sender::send_bundle(const BundleRef& bundle)
     return ok;
 }
 
-//----------------------------------------------------------------------
-EthConvergenceLayer::Beacon::Beacon(const char* if_name,
-                                    unsigned int beacon_interval)
-  : Logger("EthConvergenceLayer::Beacon", "/dtn/cl/eth/beacon"),
-    Thread("EthConvergenceLayer::Beacon")
-{
-    Thread::flags_ |= INTERRUPTABLE;
-    memset(if_name_, 0, IFNAMSIZ);
-    strcpy(if_name_, if_name);
-    beacon_interval_ = beacon_interval;
-}
-
-//----------------------------------------------------------------------
-void EthConvergenceLayer::Beacon::run()
-{
-    // ethernet broadcast address
-    char bcast_mac_addr[6]={0xff,0xff,0xff,0xff,0xff,0xff};
-    
-    struct ether_header hdr;
-    struct sockaddr_ll iface;
-    EthCLHeader ethclhdr;
-    
-    int sock,cc;
-    struct iovec iov[2];
-    
-    memset(&hdr,0,sizeof(hdr));
-    memset(&ethclhdr,0,sizeof(ethclhdr));
-    memset(&iface,0,sizeof(iface));
-
-    ethclhdr.version = ETHCL_VERSION;
-    ethclhdr.type    = ETHCL_BEACON;
-    
-    hdr.ether_type=htons(ETHERTYPE_DTN);
-    
-    // iovec slot 0 holds the ethernet header
-    iov[0].iov_base = (char*)&hdr;
-    iov[0].iov_len = sizeof(struct ether_header);
-    
-    // use iovec slot 1 for the eth cl header
-    iov[1].iov_base = (char*)&ethclhdr;
-    iov[1].iov_len  = sizeof(EthCLHeader); 
-    
-    /* 
-       Get ourselves a raw socket, and configure it.
-    */
-    if((sock = socket(AF_PACKET,SOCK_RAW, htons(ETHERTYPE_DTN))) < 0) { 
-        perror("socket");
-        exit(1);
-    }
-
-    struct ifreq req;
-    strcpy(req.ifr_name, if_name_);
-    if(ioctl(sock, SIOCGIFINDEX, &req))
-    {
-        perror("ioctl");
-        exit(1);
-    }    
-
-    iface.sll_ifindex=req.ifr_ifindex;
-
-    if(ioctl(sock, SIOCGIFHWADDR, &req))
-    {
-        perror("ioctl");
-        exit(1);
-    } 
-    
-    memcpy(hdr.ether_dhost,bcast_mac_addr,6);
-    memcpy(hdr.ether_shost,req.ifr_hwaddr.sa_data,6);
-    
-    log_info("Interface %s has interface number %d.",if_name_,req.ifr_ifindex);
-    
-    iface.sll_family=AF_PACKET;
-    iface.sll_protocol=htons(ETHERTYPE_DTN);
-    
-    if (bind(sock, (struct sockaddr *) &iface, sizeof(iface)) == -1) {
-        perror("bind");
-        exit(1);
-    }
-
-    /*
-     * Send the beacon on the socket every beacon_interval_ second.
-     */
-    while(1) {
-        sleep(beacon_interval_);
-
-        if (should_stop())
-            break;
-
-        log_debug("Sent beacon out interface %s.\n",if_name_ );
-        
-        cc=IO::writevall(sock, iov, 2);
-        if(cc<0) {
-            perror("send beacon");
-            log_err("Send beacon failed!\n");
-        }
-    }
-}
-
-//----------------------------------------------------------------------
-EthConvergenceLayer::BeaconTimer::BeaconTimer(char * next_hop)
-    :  Logger("EthConvergenceLayer::BeaconTimer", "/dtn/cl/eth/beacontimer")
-{
-    next_hop_=(char*)malloc(strlen(next_hop)+1);
-    strcpy(next_hop_, next_hop);
-}
-
-//----------------------------------------------------------------------
-EthConvergenceLayer::BeaconTimer::~BeaconTimer()
-{
-    free(next_hop_);
-}
-
-//----------------------------------------------------------------------
-void
-EthConvergenceLayer::BeaconTimer::timeout(const struct timeval& now)
-{
-    ContactManager* cm = BundleDaemon::instance()->contactmgr();
-    ConvergenceLayer* cl = ConvergenceLayer::find_clayer("eth");
-    LinkRef link = cm->find_link_to(cl, next_hop_);
-
-    (void)now;
-
-    log_info("Neighbor %s timer expired.",next_hop_);
-
-    if(link == NULL) {
-      log_warn("No link for next_hop %s.",next_hop_);
-    }
-    else if(link->isopen()) {
-        BundleDaemon::post(
-            new LinkStateChangeRequest(link, Link::CLOSED,
-                                       ContactDownEvent::BROKEN));
-    }
-    else {
-        log_warn("next_hop %s unexpectedly not open",next_hop_);
-    }
-}
-
-//----------------------------------------------------------------------
-Timer *
-EthConvergenceLayer::BeaconTimer::copy()
-{
-    return new BeaconTimer(*this);
-}
-
 } // namespace dtn
 
 #endif // __linux
diff --git a/servlib/conv_layers/EthConvergenceLayer.h b/servlib/conv_layers/EthConvergenceLayer.h
index a4a8c07..9796d12 100644
--- a/servlib/conv_layers/EthConvergenceLayer.h
+++ b/servlib/conv_layers/EthConvergenceLayer.h
@@ -22,7 +22,7 @@
 
 #include <sys/types.h>
 #include <netinet/in.h>
-#include <linux/if.h>
+#include <net/if.h>
 
 #include <oasys/thread/Thread.h>
 #include <oasys/thread/Timer.h>
@@ -62,8 +62,6 @@ public:
     static const u_int8_t  ETHCL_BEACON = 0x01;
     static const u_int8_t  ETHCL_BUNDLE = 0x02;
 
-    static const u_int32_t ETHCL_BEACON_TIMEOUT_INTERVAL = 2500; // 2.5 seconds
-
     static const u_int16_t MAX_ETHER_PACKET = 1518;
 
     /**
@@ -154,16 +152,7 @@ public:
          */
         virtual void serialize(oasys::SerializeAction *a);
 
-        ~Params() {
-            if(timer) {
-                timer->cancel();
-            }
-        }
-
-        u_int32_t beacon_interval_;       ///< Beacon Interval
         std::string if_name_;             ///< Interface name to bind sender to
-        
-        BeaconTimer *timer;               ///< XXX this should be moved somewhere else
     };
     
     /**
@@ -265,36 +254,6 @@ public:
         u_char buf_[EthConvergenceLayer::MAX_BUNDLE_LEN];
     };
 
-    /** 
-     *  helper class (and thread) that periodically sends beacon messages
-     *  over the specified ethernet interface.
-     */
-    class Beacon : public oasys::Logger,
-                   public oasys::Thread
-    {
-    public:
-        Beacon(const char* if_name, unsigned int beacon_interval);
-
-        virtual ~Beacon() {};
-
-    private:
-        virtual void run();
-        char if_name_[IFNAMSIZ];
-        unsigned int beacon_interval_;
-    };
-
-    class BeaconTimer : public oasys::Logger, public oasys::Timer, public CLInfo {
-    public:
-        char * next_hop_;
-
-        BeaconTimer(char * next_hop);
-        ~BeaconTimer();
-
-        void timeout(const struct timeval& now);
-
-        Timer* copy();
-    };    
-
 protected:
     /**
      * Parses parameters during EthConvegenceLayer initialization
@@ -303,10 +262,6 @@ protected:
                       const char** invalidp);
 
     virtual CLInfo* new_link_params();
-
-
-private:
-    Beacon *if_beacon_;
 };
 
 
diff --git a/servlib/discovery/Announce.cc b/servlib/discovery/Announce.cc
index 0af62b8..8d6dc9a 100644
--- a/servlib/discovery/Announce.cc
+++ b/servlib/discovery/Announce.cc
@@ -19,6 +19,7 @@
 #endif
 
 #include "IPAnnounce.h"
+#include "EthAnnounce.h"
 #include "BluetoothAnnounce.h"
 #include "Announce.h"
 
@@ -46,8 +47,9 @@ Announce::create_announce(const std::string& name, ConvergenceLayer* cl,
         announce = new BluetoothAnnounce();
     }
 #endif
-    else
-    {
+    else if(strncmp(cl->name(), "eth", 3) == 0) {
+        announce = new EthAnnounce();
+    } else {
         //no announce implemented for CL type
         return NULL;
     }
diff --git a/servlib/discovery/Discovery.cc b/servlib/discovery/Discovery.cc
index 98eca27..6ed497e 100644
--- a/servlib/discovery/Discovery.cc
+++ b/servlib/discovery/Discovery.cc
@@ -28,6 +28,7 @@
 #include "IPNDDiscovery.h"
 #endif
 #include "IPDiscovery.h"
+#include "EthDiscovery.h"
 #include "contacts/ContactManager.h"
 #include "bundling/BundleDaemon.h"
 
@@ -71,6 +72,10 @@ Discovery::create_discovery(const std::string& name,
         disc = new BluetoothDiscovery(name);
     }
 #endif
+    else if (af == "eth")
+    {
+        disc = new EthDiscovery(name);
+    }
     else
     {
         // not a recognized address family
diff --git a/servlib/discovery/EthAnnounce.cc b/servlib/discovery/EthAnnounce.cc
new file mode 100644
index 0000000..426817d
--- /dev/null
+++ b/servlib/discovery/EthAnnounce.cc
@@ -0,0 +1,88 @@
+/*
+ *    Copyright 2013 Lana Black <sickmind@lavabit.com>
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include <dtn-config.h>
+#endif
+
+#include <net/ethernet.h>
+
+#include <oasys/util/OptParser.h>
+#include <bundling/BundleDaemon.h>
+#include "EthAnnounce.h"
+
+namespace dtn {
+
+EthAnnounce::EthAnnounce()
+{
+}
+
+size_t EthAnnounce::format_advertisement(u_char *bp, size_t len)
+{
+    const EndpointID& eid = BundleDaemon::instance()->local_eid();
+
+    if(len < sizeof(EthBeaconHeader) + eid.length()) {
+        log_warn("Not enough room to fill");
+        return 0;
+    }
+
+    EthBeaconHeader *beacon= reinterpret_cast<EthBeaconHeader*>(bp);
+
+    memset(bp, 0, len);
+
+    beacon->version = ETHCL_VERSION;
+    beacon->type = ETHCL_BEACON;
+    beacon->interval = interval_ / 100;     // 100ms units
+    beacon->eid_len = htons(eid.length());
+    memcpy(beacon->sender_eid, eid.c_str(), eid.length());
+
+    return sizeof(*beacon) + eid.length();
+}
+
+bool EthAnnounce::configure(const std::string &name, ConvergenceLayer *cl, int argc, const char *argv[])
+{
+    cl_ = cl;
+    name_ = name;
+    type_.assign(cl->name());
+
+    if(strncmp(cl_->name(), "eth", 3)) {
+        log_err("ethernet announce does not support cl type %s", cl_->name());
+        return false;
+    }
+
+    oasys::OptParser p;
+
+    p.addopt(new oasys::UIntOpt("interval", &interval_));
+
+    const char* invalid;
+    if(!p.parse(argc, argv, &invalid)) {
+        log_err("bad parameter %s", invalid);
+        return false;
+    }
+
+    if (interval_ == 0)
+    {
+        log_err("interval must be greater than 0");
+        return false;
+    }
+
+    // convert from seconds to ms
+    interval_ *= 1000;
+
+    return true;
+}
+
+} // dtn
diff --git a/servlib/discovery/EthAnnounce.h b/servlib/discovery/EthAnnounce.h
new file mode 100644
index 0000000..de27955
--- /dev/null
+++ b/servlib/discovery/EthAnnounce.h
@@ -0,0 +1,56 @@
+/*
+ *    Copyright 2013 Lana Black <sickmind@lavabit.com>
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ */
+
+#ifndef _ETH_ANNOUNCE_H_
+#define _ETH_ANNOUNCE_H_
+
+#ifndef DTN_CONFIG_STATE
+#error "MUST INCLUDE dtn-config.h before including this file"
+#endif
+
+#include "Announce.h"
+#include "EthDiscovery.h"
+
+namespace dtn {
+
+class EthAnnounce : public Announce
+{
+public:
+
+    size_t format_advertisement(u_char*, size_t);
+
+    virtual ~EthAnnounce() {}
+
+protected:
+
+    friend class Announce;
+
+    // Some stuff from EthConvergenceLayer here
+    typedef EthDiscovery::EthBeaconHeader EthBeaconHeader;
+    static const u_int8_t  ETHCL_VERSION = 0x01;
+    static const u_int16_t ETHERTYPE_DTN = 0xd710;
+    static const u_int8_t  ETHCL_BEACON = 0x01;
+
+
+    EthAnnounce();
+
+    bool configure(const std::string& name, ConvergenceLayer* cl,
+                   int argc, const char *argv[]);
+};
+
+} // dtn
+
+#endif
diff --git a/servlib/discovery/EthDiscovery.cc b/servlib/discovery/EthDiscovery.cc
new file mode 100644
index 0000000..60a7a88
--- /dev/null
+++ b/servlib/discovery/EthDiscovery.cc
@@ -0,0 +1,288 @@
+/*
+ *    Copyright 2013 Lana Black <sickmind@lavabit.com>
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include <dtn-config.h>
+#endif
+
+#include <cstring>
+#include <climits>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <net/ethernet.h>
+#include <net/if.h>
+#include <netpacket/packet.h>
+#include <sys/ioctl.h>
+#include <errno.h>
+#include <poll.h>
+
+#include <oasys/io/IO.h>
+#include <oasys/util/OptParser.h>
+#include <bundling/BundleDaemon.h>
+#include <contacts/ContactManager.h>
+#include <contacts/InterfaceTable.h>
+#include <conv_layers/EthConvergenceLayer.h>
+
+#include "EthDiscovery.h"
+#include "EthAnnounce.h"
+
+namespace dtn {
+
+EthDiscovery::EthDiscovery(const std::string& name)
+    : Discovery(name, "eth"),
+      oasys::Thread("EthDiscovery", DELETE_ON_EXIT)
+{
+    shutdown_ = false;
+}
+
+bool EthDiscovery::configure(int argc, const char *argv[])
+{
+    if(oasys::Thread::started()) {
+        log_warn("reconfiguration of EthDiscovery no supported");
+        return false;
+    }
+
+    oasys::OptParser p;
+
+    p.addopt(new oasys::StringOpt("interface", &iface_));
+
+    const char *invalid;
+    if(!p.parse(argc, argv, &invalid)) {
+        log_err("bad option for Ethernet discovery: %s", invalid);
+        return false;
+    }
+
+    // Check the interface
+    if(!iface_.empty()) {
+        oasys::StringBuffer iface_list;
+
+        InterfaceTable::instance()->list(&iface_list);
+        if(strstr(iface_list.c_str(), iface_.c_str()) == NULL) {
+            // No interface found
+            log_err("bad interface name");
+            return false;
+        }
+    } else {
+        log_err("Ethernet discovery requires interface name");
+        return false;
+    }
+
+
+    log_debug("starting thread");
+    start();
+
+    return true;
+}
+
+void EthDiscovery::run()
+{
+    struct sockaddr_ll ifaddr;
+    struct ifreq req;
+    struct pollfd fds;
+    struct iovec iov[2];
+    struct ether_header ethhdr;
+    struct ::ether_addr src_addr;
+    u_char buf[1500];   // Buffer to store beacons
+    int cc;
+
+    log_debug("discovery thread running");
+
+    sock_ = socket(PF_PACKET, SOCK_RAW, htons(ETHERTYPE_DTN_BEACON));
+    if(sock_ < 0) {
+        log_err("socket() failed: %s", strerror(errno));
+        return;
+    }
+
+    memset(&req, 0, sizeof(req));
+    strcpy(req.ifr_name, iface_.c_str());
+    ioctl(sock_, SIOCGIFHWADDR, &req);
+    memcpy(&src_addr.ether_addr_octet, req.ifr_hwaddr.sa_data, 6);
+
+    memset(&req, 0, sizeof(req));
+    strcpy(req.ifr_name, iface_.c_str());
+    ioctl(sock_, SIOCGIFINDEX, &req);
+
+    memset(&ifaddr, 0, sizeof(ifaddr));
+    ifaddr.sll_family = AF_PACKET;
+    ifaddr.sll_protocol = htons(ETHERTYPE_DTN_BEACON);
+    ifaddr.sll_ifindex = req.ifr_ifindex;
+
+    if(bind(sock_, (struct sockaddr*) &ifaddr, sizeof(ifaddr)) == -1) {
+        log_err("bind() failed: %s", strerror(errno));
+        return;
+    }
+
+    fds.fd = sock_;
+    fds.events = POLLIN;
+
+    memset(iov, 0, sizeof(iov));
+
+    iov[0].iov_base = &ethhdr;
+    iov[0].iov_len = sizeof(ethhdr);
+
+    // The following code is an adapted copy of the same code from IPDiscovery.cc
+
+    while(true) {
+        if(shutdown_) break;
+
+        memset(&ethhdr.ether_dhost, 0xff, sizeof(ethhdr.ether_dhost));
+        memcpy(&ethhdr.ether_shost, src_addr.ether_addr_octet, 6);
+        ethhdr.ether_type = htons(ETHERTYPE_DTN_BEACON);
+
+        iov[0].iov_base = &ethhdr;
+        iov[0].iov_len = sizeof(ethhdr);
+
+        iov[1].iov_base = buf;
+
+        u_int timeout = UINT_MAX;
+        for(iterator iter = list_.begin(); iter != list_.end(); ++iter) {
+            EthAnnounce* announce = dynamic_cast<EthAnnounce*>(*iter);
+
+            u_int remaining = announce->interval_remaining();
+
+            if(remaining) {
+                log_debug("announce not ready: %u ms remaining", remaining);
+                if(remaining < timeout)
+                    timeout = remaining;
+            } else {
+                int len;
+
+                len = announce->format_advertisement(buf, sizeof(buf));
+                iov[1].iov_len = len;
+
+                cc = oasys::IO::writevall(sock_, iov, 2);
+                if(cc != sizeof(ethhdr)+len) {
+                    log_err("send failed: %s", strerror(errno));
+                    return;
+                }
+
+                timeout = announce->interval();
+            }
+        }
+
+        // We cannot obviously wait UINT_MAX milliseconds
+        cc = poll(&fds, 1, timeout == UINT_MAX ? 1 : timeout);
+        if(cc == 0) {
+            continue;
+        } else if(cc < 0) {
+            if(errno == EINTR) {
+                continue;
+            } else {
+                log_err("poll failed: %s", strerror(errno));
+                return;
+            }
+        }
+
+        iov[1].iov_len = sizeof(buf);
+
+        cc = oasys::IO::readv(sock_, iov, 2);
+        if(cc < 0) {
+            log_err("readvall() failed");
+            return;
+        } else if(cc < sizeof(ethhdr)) {
+            log_warn("corrupt packet received, ignore");
+            continue;
+        }
+
+        std::string nexthop;
+        EndpointID remote_eid;
+
+        if(!parse_advertisement(buf, cc - sizeof(ethhdr), ethhdr.ether_shost, nexthop, remote_eid)) {
+            log_warn("unable to parse beacon");
+            continue;
+        }
+
+        if(remote_eid.equals(BundleDaemon::instance()->local_eid())) {
+            log_debug("ignoring our own beacon");
+            continue;
+        }
+
+        handle_neighbor_discovered("eth", nexthop, remote_eid);
+    }
+
+}
+
+bool EthDiscovery::parse_advertisement(u_char *bp, size_t len, u_char *remote_addr, std::string& nexthop, EndpointID& remote_eid)
+{
+    if(len < sizeof(struct EthBeaconHeader))
+        return false;
+
+    struct EthBeaconHeader *beacon = reinterpret_cast<struct EthBeaconHeader*>(bp);
+
+    if(beacon->version != ETHCL_VERSION)
+        return false;
+    if(beacon->type != ETHCL_BEACON) {
+        log_warn("Received non beacon packet with type %u", beacon->type);
+        return false;
+    }
+
+    size_t eid_len = ntohs(beacon->eid_len);
+    std::string eid(beacon->sender_eid, eid_len);
+
+    oasys::StringBuffer buf("%x:%x:%x:%x:%x:%x", remote_addr[0], remote_addr[1], remote_addr[2],
+                                                 remote_addr[3], remote_addr[4], remote_addr[5]);
+    nexthop.assign(buf.c_str());
+
+    return remote_eid.assign(eid);
+}
+
+// Have to reimplement this method to fill the interface name
+// in the link parameters structure
+void
+EthDiscovery::handle_neighbor_discovered(const std::string& cl_type,
+                                         const std::string& cl_addr,
+                                         const EndpointID& remote_eid)
+{
+    ContactManager* cm = BundleDaemon::instance()->contactmgr();
+
+    ConvergenceLayer* cl = ConvergenceLayer::find_clayer(cl_type.c_str());
+    if (cl == NULL) {
+        log_err("handle_neighbor_discovered: "
+                "unknown convergence layer type '%s'", cl_type.c_str());
+        return;
+    }
+
+    // Look for match on convergence layer and remote EID
+    LinkRef link("Announce::handle_neighbor_discovered");
+    link = cm->find_link_to(cl, "", remote_eid);
+
+    if (link == NULL) {
+        link = cm->new_opportunistic_link(cl, cl_addr, remote_eid);
+        if (link == NULL) {
+            log_debug("Discovery::handle_neighbor_discovered: "
+                      "failed to create opportunistic link");
+            return;
+        }
+    }
+
+    ASSERT(link != NULL);
+    ASSERT(link->cl_info() != NULL)
+
+    EthConvergenceLayer::Params* link_params = dynamic_cast<EthConvergenceLayer::Params*>(link->cl_info());
+    link_params->if_name_ = iface_;
+
+    if (!link->isavailable())
+    {
+        // request to set link available
+        BundleDaemon::post(
+            new LinkStateChangeRequest(link, Link::AVAILABLE,
+                                       ContactEvent::DISCOVERY)
+            );
+    }
+}
+
+
+} //dtn
diff --git a/servlib/discovery/EthDiscovery.h b/servlib/discovery/EthDiscovery.h
new file mode 100644
index 0000000..094372a
--- /dev/null
+++ b/servlib/discovery/EthDiscovery.h
@@ -0,0 +1,72 @@
+/*
+ *    Copyright 2013 Lana Black <sickmind@lavabit.com>
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ */
+
+#ifndef _ETH_DISCOVERY_H_
+#define _ETH_DISCOVERY_H_
+
+#include <oasys/thread/Thread.h>
+
+#include "Discovery.h"
+
+namespace dtn {
+
+class EthDiscovery : public Discovery,
+                     public oasys::Thread
+{
+public:
+
+    void shutdown() { shutdown_ = true; }
+
+    virtual ~EthDiscovery() {}
+
+protected:
+    friend class Discovery;
+    friend class EthAnnounce;
+
+    /**
+     * Ethernet beacon header structure.
+     * Version and type fields are for compatibility with EthCLHeader
+     */
+    struct EthBeaconHeader {
+        u_int8_t version;               ///< ethcl protocol version
+        u_int8_t type;                  ///<
+        u_int8_t interval;              ///< interval in 100ms units
+        u_int16_t eid_len;              ///<
+        char sender_eid[0];
+    } __attribute__((packed));
+
+
+    static const u_int8_t  ETHCL_VERSION = 0x01;
+    static const u_int16_t ETHERTYPE_DTN_BEACON = 0xd711;
+    static const u_int8_t  ETHCL_BEACON = 0x01;
+
+    EthDiscovery(const std::string& name);
+    bool configure(int argc, const char* argv[]);
+    void run();
+    bool parse_advertisement(u_char* bp, size_t len, u_char* remote_addr,
+                             std::string& nexthop, EndpointID& remote_eid);
+    void handle_neighbor_discovered(const std::string& cl_type,
+                                    const std::string& cl_addr,
+                                    const EndpointID& remote_eid);
+
+    volatile bool shutdown_;
+    std::string iface_;
+    int sock_;
+};
+
+} // dtn
+
+#endif
-- 
1.8.1.5


--9amGYk9869ThD9tj
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="0002-DiscoveryTable-do-not-delete-discovery-agent-explici.patch"

>From 8f7e213e220d73635670867da86c9586e844ef9e Mon Sep 17 00:00:00 2001
From: Lana Black <sickmind@lavabit.com>
Date: Wed, 6 Mar 2013 05:38:53 +0000
Subject: [PATCH] DiscoveryTable: do not delete discovery agent explicitely,
 because it is already deleted by Discovery::shutdown()

---
 servlib/discovery/DiscoveryTable.cc | 1 -
 1 file changed, 1 deletion(-)

diff --git a/servlib/discovery/DiscoveryTable.cc b/servlib/discovery/DiscoveryTable.cc
index dcb85c7..818659d 100644
--- a/servlib/discovery/DiscoveryTable.cc
+++ b/servlib/discovery/DiscoveryTable.cc
@@ -120,7 +120,6 @@ DiscoveryTable::del(const std::string& name)
     disc = *iter;
     dlist_.erase(iter);
     disc->shutdown(); 
-    delete disc;
 
     return true;
 }
-- 
1.8.1.5


--9amGYk9869ThD9tj--


From sickmind@lavabit.com  Fri Mar 15 10:51:35 2013
Return-Path: <sickmind@lavabit.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F3DA221F89AA for <dtn-users@ietfa.amsl.com>; Fri, 15 Mar 2013 10:51:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.11
X-Spam-Level: 
X-Spam-Status: No, score=-1.11 tagged_above=-999 required=5 tests=[BAYES_05=-1.11]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8yQ0T9GoHNMO for <dtn-users@ietfa.amsl.com>; Fri, 15 Mar 2013 10:51:33 -0700 (PDT)
Received: from karen.lavabit.com (karen.lavabit.com [72.249.41.33]) by ietfa.amsl.com (Postfix) with ESMTP id AB5EF21F896E for <dtn-users@irtf.org>; Fri, 15 Mar 2013 10:51:33 -0700 (PDT)
Received: from d.earth.lavabit.com (d.earth.lavabit.com [192.168.111.13]) by karen.lavabit.com (Postfix) with ESMTP id 16B4311B95B for <dtn-users@irtf.org>; Fri, 15 Mar 2013 12:51:33 -0500 (CDT)
Received: from localhost (pppoe.178-66-132-97.dynamic.avangarddsl.ru [178.66.132.97]) by lavabit.com with ESMTP id 6JZ61WBKB3GM for <dtn-users@irtf.org>; Fri, 15 Mar 2013 12:51:33 -0500
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=lavabit; d=lavabit.com; b=E7giNpWzU1+eUux0wCEKyjbVSaxefJQK/E9GPxfr7SMnYZGuHQrOvH4fNyzj5QGf95cM2+szNl7FIn5C5v0n1fAa6m2HuNmQZEanLqR7Rx63cEdoeSmrr/Z/TQXKH3SibtKCWB2TqZdqM1jmd5JPANRuBqL6npkH8PDPL9trH30=; h=Date:From:To:Subject:Message-ID:MIME-Version:Content-Type:Content-Disposition:User-Agent;
Date: Fri, 15 Mar 2013 17:51:31 +0000
From: Lana Black <sickmind@lavabit.com>
To: dtn-users maillist <dtn-users@irtf.org>
Message-ID: <20130315175130.GA21667@glow>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="BOKacYhQ+x31HxR3"
Content-Disposition: inline
User-Agent: Mutt/1.5.21 (2010-09-15)
Subject: [dtn-users] namespace bug patch
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Mar 2013 17:51:35 -0000

--BOKacYhQ+x31HxR3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi,

Turned out my last patch didnt fix the issue entirely, and several
errors were left in the BSP code which I didnt check.

Also, dtn::KeyDB::shutdown() method was defined twice for some reason,
the patch removes the older definition.

With best regards.

--BOKacYhQ+x31HxR3
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="security-namespace.patch"

diff --git a/servlib/security/KeyDB.cc b/servlib/security/KeyDB.cc
index 83508fc..83f32d9 100644
--- a/servlib/security/KeyDB.cc
+++ b/servlib/security/KeyDB.cc
@@ -31,10 +31,10 @@
 #include "KeyDB.h"
 #include "Ciphersuite.h"
 
-namespace dtn {
-
 template <>
-KeyDB* oasys::Singleton<KeyDB, false>::instance_ = NULL;
+dtn::KeyDB* oasys::Singleton<dtn::KeyDB, false>::instance_ = NULL;
+
+namespace dtn {
 
 static const char * log = "/dtn/bundle/security";
 
@@ -60,15 +60,6 @@ KeyDB::init()
 
 void KeyDB::shutdown()
 {
-    if(instance_ != NULL) 
-    {
-        delete instance_;
-        log_debug_p(log, "KeyDB::shutdown() completed");
-    }
-}
-
-void KeyDB::shutdown()
-{
     if(instance_ != NULL && !getenv("OASYS_CLEANUP_SINGLETONS")) 
     {
         delete instance_;
diff --git a/servlib/security/SPD.cc b/servlib/security/SPD.cc
index 19d5dc7..2ee7e6e 100644
--- a/servlib/security/SPD.cc
+++ b/servlib/security/SPD.cc
@@ -28,10 +28,10 @@
 #include "Ciphersuite_ES4.h"
 #include "SecurityPolicy.h"
 
-namespace dtn {
-
 template <>
-SPD* oasys::Singleton<SPD, false>::instance_ = NULL;
+dtn::SPD* oasys::Singleton<dtn::SPD, false>::instance_ = NULL;
+
+namespace dtn {
 
 static const char * log = "/dtn/bundle/security";
 

--BOKacYhQ+x31HxR3--


From aloomis@sarn.org  Fri Mar 15 17:13:32 2013
Return-Path: <aloomis@sarn.org>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9E77C1F0D0B for <dtn-users@ietfa.amsl.com>; Fri, 15 Mar 2013 17:13:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.976
X-Spam-Level: 
X-Spam-Status: No, score=-2.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1oDT3jJhVFV9 for <dtn-users@ietfa.amsl.com>; Fri, 15 Mar 2013 17:13:31 -0700 (PDT)
Received: from mail-qa0-f47.google.com (mail-qa0-f47.google.com [209.85.216.47]) by ietfa.amsl.com (Postfix) with ESMTP id 7D7A41F0D05 for <dtn-users@irtf.org>; Fri, 15 Mar 2013 17:13:31 -0700 (PDT)
Received: by mail-qa0-f47.google.com with SMTP id j8so646024qah.6 for <dtn-users@irtf.org>; Fri, 15 Mar 2013 17:13:22 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:x-gm-message-state; bh=fJC4VbA6Xx6uGc6DCElLeByJPbXyzAQKFIgNeZsbWyQ=; b=pLz0LtXRhNSl4TT9FRk9mjT5IsLN6wUmBCu8AZRvnd7xFy0fccBHNI4F8YistvHPI7 BwQIA8x7PUBMilHU/vdZWd/IwWepX6QQOtbemYJ5ttKmjaDTC/EdFnuQFaAtbUp0THuI lEtZNyN/h/LLo+bvmfaGxp9zXh/nD13dIVaq0VRWoStEJl7R+XWOnmhP270c4kRdQp8I t/F9RaZspAa8ljS5OhLtx7ZqJT4pYJyzQaDY0e4IJ5//qZB5G2d3rajvmvKES+8SCzDo IpmYgz7/AOlcW+qDNSIcNhBHE2CKl1eOC+T4/9xoNtiNGHEIZGDGiHef7H43OTtjGT1j vRVA==
MIME-Version: 1.0
X-Received: by 10.49.12.194 with SMTP id a2mr9637469qec.11.1363392801910; Fri, 15 Mar 2013 17:13:21 -0700 (PDT)
Received: by 10.49.24.38 with HTTP; Fri, 15 Mar 2013 17:13:21 -0700 (PDT)
In-Reply-To: <1362790659.4494.3582.camel@mightyatom>
References: <20130224123309.GA19354@glow> <1361716256.4494.1191.camel@mightyatom> <CAB9rx+8Sd2TOFr2jKwq+Mv8nH6CgKoEEkSOOHSohxwVzTYn1zA@mail.gmail.com> <1361811760.4494.1284.camel@mightyatom> <CAB9rx+9XGh6nWdsth6wu7D7WarA5SEpaxTtq8vSvzntnMo3OiA@mail.gmail.com> <1361882036.4494.1350.camel@mightyatom> <CAB9rx+_6ccT=mBkx28j97nMwApWptOhRb8CXHs_mFFGEG6YQKw@mail.gmail.com> <1362276721.4494.2433.camel@mightyatom> <CAB9rx+-9qL5j+BhwZX3gXb9ZRAKGQpwHPPeyQh3HifYkdThK_w@mail.gmail.com> <CAB9rx+9nnHx_TNRhau6tsbbNCDcUGiwGn3fW172SbpVNo7YXvw@mail.gmail.com> <1362790659.4494.3582.camel@mightyatom>
Date: Fri, 15 Mar 2013 20:13:21 -0400
Message-ID: <CAB9rx+8ovZK-Z=LQKc_XFrqoobHhgTt2rBrK-iQ3EdGnhUhHog@mail.gmail.com>
From: Amy Alford <aloomis@sarn.org>
To: Elwyn Davies <elwynd@folly.org.uk>
Content-Type: multipart/alternative; boundary=047d7b6787d2a5e62e04d7ff9f6b
X-Gm-Message-State: ALoCoQlV36fUeh01ent+VHswP2sx1BjmGaUIaJXkc2dDRt6+fEdmcsT05PTkgLKQTDhYcSNq6AfN
Cc: DTN Users <dtn-users@irtf.org>
Subject: Re: [dtn-users] bundle fragmentation
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Mar 2013 00:13:32 -0000

--047d7b6787d2a5e62e04d7ff9f6b
Content-Type: text/plain; charset=ISO-8859-1

I can't prove to myself that you can't successfully do incremental
defragmentation using the BSP info to decide which subset of fragments to
reassemble.  However, it would require major reworking of DTN2 since you'd
have to use the BSP blocks to decide which fragments to recombine.

I was hoping that you could reassemble the bundle and use the heuristic
that PIB blocks always applied to other blocks whose range is a superset of
theirs and who start at the same offset.  Unfortunately, if a bundle is
fragmented differently along different paths, this isn't true.

I have a crazy scenario I'm trying to untangle.

A bundle of 100 bytes is created.  It's fragmented into bytes 0-50 and
50-100 and independently into 0-25 and 25-100.  Some node adds PIB to the
0-50 fragment, so that fragment is now (PIB 0-50)(0-50).  Another node
fragments this fragment into (PIB 0-50)(0-25) and (25-50).  Another node
adds PIB to the first of these, yielding (PIB 0-25)(PIB 0-50)(0-25).  Some
other node also adds PIB to the original unadorned 0-25 giving us (PIB
0-25)(0-25).

Now, I have PIB 0-50 and PIB 0-25 blocks floating around when I reassemble.
 One PIB 0-25 covers one PIB 0-50, but the other PIB 0-25 does not relate
to any PIB 0-50s.

So, this leaves us needing to use your idea of partial reassembly. Which
means making really substantial changes to the validation/fragment
reassembly code since there's no conceptual idea of a "subfragment" in 5050
and so we need to try to use the extension blocks to infer a subfragment
structure.


On Fri, Mar 8, 2013 at 7:57 PM, Elwyn Davies <elwynd@folly.org.uk> wrote:

> > However, BSP can add PIB blocks after fragmentation.  In this case, I
> > can't see how to reconstruct what PIB blocks already existed at the
> > time a given PIB block was added (which is important, because we hash
> > over those blocks).
> And in principle, any node is free to add on metadata blocks and take
> them away. However going back to the PIB Block issue:
>
> I don't think the PIB stuff is a problem (assuming the implementation
> conforms to the BSP spec) but I may not understand the problem.
>
> - Any PIB block from before a fragmentation will only be in the first
> fragment of the block that was fragmented; its corresponding correlator
> (if it has one) will be in the last fragment.  If there are intermediate
> fragments they won't have PIBs (but might have PCBs if they have
> replicate in all blocks set)
> - There's a stack of PIB blocks with associated security destinations
> and if the PIB applies to a part of payload it is supposed to say what
> part (I think - s2.3 of BSP).
> - When you reach a security destination (maybe the final destination),
> you start unwinding the stack in each bundle.  Deal with the BAB in each
> fragment first.  Then for each fragment that has an PIB as its first
> security block and has the current node as current 'outside' (top of the
> tack) security destination, look at the range of payload bytes the PIB
> covers.  Do whatever reassembly is implied by this (may have to be
> postponed if not all the bits have arrived yet) putting together the
> fragments needed to make up the piece of payload protected by the PIB.
> Reconstruct the bundle that was fragmented after this PIB was put in
> place (which may be a fragment of the larger bundle.) Check the PIB and
> its correlator and then discard them (or the whole bundle if the check
> fails).  Repeat the exercise for all the fragments in turn.  Do any PCB
> and ESB actions for this security destination.  Then recurse up the
> stack of PIBs if relevent starting from the lowest offset fragemnt each
> time.
>
> That's pretty complex and tedious but I think it works.
>
> But I am wondering if we need a Metadata block to say whet extension
> blocks (and other Metadata blocks were in the original bundle plus a
> flag in the primary block to say it is there??  That way custody would
> know what it was taking charge of.
>
> Thoughts?
>
> /Elwyn
>
>
>
> >
> > - Amy
>
>

--047d7b6787d2a5e62e04d7ff9f6b
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>I can&#39;t prove to myself that you can&#39;t successfully do increme=
ntal defragmentation using the BSP info to decide which subset of fragments=
 to reassemble. =A0However, it would require major reworking of DTN2 since =
you&#39;d have to use the BSP blocks to decide which fragments to recombine=
.</div>
<div><br></div><div>I was hoping that you could reassemble the bundle and u=
se the heuristic that PIB blocks always applied to other blocks whose range=
 is a superset of theirs and who start at the same offset. =A0Unfortunately=
, if a bundle is fragmented differently along different paths, this isn&#39=
;t true.</div>
<div><br></div><div>I have a crazy scenario I&#39;m trying to untangle.</di=
v><div><br></div><div>A bundle of 100 bytes is created. =A0It&#39;s fragmen=
ted into bytes 0-50 and 50-100 and independently into 0-25 and 25-100. =A0S=
ome node adds PIB to the 0-50 fragment, so that fragment is now (PIB 0-50)(=
0-50). =A0Another node fragments this fragment into (PIB 0-50)(0-25) and (2=
5-50). =A0Another node adds PIB to the first of these, yielding (PIB 0-25)(=
PIB 0-50)(0-25). =A0Some other node also adds PIB to the original unadorned=
 0-25 giving us (PIB 0-25)(0-25).</div>
<div><br></div><div>Now, I have PIB 0-50 and PIB 0-25 blocks floating aroun=
d when I reassemble. =A0One PIB 0-25 covers one PIB 0-50, but the other PIB=
 0-25 does not relate to any PIB 0-50s. =A0</div><div><br></div><div>So, th=
is leaves us needing to use your idea of partial reassembly. Which means ma=
king really substantial changes to the validation/fragment reassembly code =
since there&#39;s no conceptual idea of a &quot;subfragment&quot; in 5050 a=
nd so we need to try to use the extension blocks to infer a subfragment str=
ucture.</div>
<div><br></div><div><br><div class=3D"gmail_quote">
On Fri, Mar 8, 2013 at 7:57 PM, Elwyn Davies <span dir=3D"ltr">&lt;<a href=
=3D"mailto:elwynd@folly.org.uk" target=3D"_blank">elwynd@folly.org.uk</a>&g=
t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>&gt; However, BSP can add PIB blocks after fragmentation. =A0In this c=
ase, I<br>
&gt; can&#39;t see how to reconstruct what PIB blocks already existed at th=
e<br>
&gt; time a given PIB block was added (which is important, because we hash<=
br>
&gt; over those blocks).<br>
</div>And in principle, any node is free to add on metadata blocks and take=
<br>
them away. However going back to the PIB Block issue:<br>
<br>
I don&#39;t think the PIB stuff is a problem (assuming the implementation<b=
r>
conforms to the BSP spec) but I may not understand the problem.<br>
<br>
- Any PIB block from before a fragmentation will only be in the first<br>
fragment of the block that was fragmented; its corresponding correlator<br>
(if it has one) will be in the last fragment. =A0If there are intermediate<=
br>
fragments they won&#39;t have PIBs (but might have PCBs if they have<br>
replicate in all blocks set)<br>
- There&#39;s a stack of PIB blocks with associated security destinations<b=
r>
and if the PIB applies to a part of payload it is supposed to say what<br>
part (I think - s2.3 of BSP).<br>
- When you reach a security destination (maybe the final destination),<br>
you start unwinding the stack in each bundle. =A0Deal with the BAB in each<=
br>
fragment first. =A0Then for each fragment that has an PIB as its first<br>
security block and has the current node as current &#39;outside&#39; (top o=
f the<br>
tack) security destination, look at the range of payload bytes the PIB<br>
covers. =A0Do whatever reassembly is implied by this (may have to be<br>
postponed if not all the bits have arrived yet) putting together the<br>
fragments needed to make up the piece of payload protected by the PIB.<br>
Reconstruct the bundle that was fragmented after this PIB was put in<br>
place (which may be a fragment of the larger bundle.) Check the PIB and<br>
its correlator and then discard them (or the whole bundle if the check<br>
fails). =A0Repeat the exercise for all the fragments in turn. =A0Do any PCB=
<br>
and ESB actions for this security destination. =A0Then recurse up the<br>
stack of PIBs if relevent starting from the lowest offset fragemnt each<br>
time.<br>
<br>
That&#39;s pretty complex and tedious but I think it works.<br>
<br>
But I am wondering if we need a Metadata block to say whet extension<br>
blocks (and other Metadata blocks were in the original bundle plus a<br>
flag in the primary block to say it is there?? =A0That way custody would<br=
>
know what it was taking charge of.<br>
<br>
Thoughts?<br>
<br>
/Elwyn<br>
<br>
<br>
<br>
&gt;<br>
&gt; - Amy<br>
<br>
</blockquote></div><br></div>

--047d7b6787d2a5e62e04d7ff9f6b--

From elwynd@folly.org.uk  Mon Mar 18 00:45:53 2013
Return-Path: <elwynd@folly.org.uk>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E02F921F8689 for <dtn-users@ietfa.amsl.com>; Mon, 18 Mar 2013 00:45:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4wVMcuFnI+5o for <dtn-users@ietfa.amsl.com>; Mon, 18 Mar 2013 00:45:52 -0700 (PDT)
Received: from b.painless.aa.net.uk (b.painless.aa.net.uk [IPv6:2001:8b0:0:30::51bb:1e34]) by ietfa.amsl.com (Postfix) with ESMTP id 88B5321F8681 for <dtn-users@irtf.org>; Mon, 18 Mar 2013 00:45:51 -0700 (PDT)
Received: from mightyatom.folly.org.uk ([81.187.254.250]) by b.painless.aa.net.uk with esmtp (Exim 4.72) (envelope-from <elwynd@folly.org.uk>) id 1UHUlQ-0003Wi-MV; Mon, 18 Mar 2013 07:45:49 +0000
From: Elwyn Davies <elwynd@folly.org.uk>
To: Amy Alford <aloomis@sarn.org>
In-Reply-To: <CAB9rx+8ovZK-Z=LQKc_XFrqoobHhgTt2rBrK-iQ3EdGnhUhHog@mail.gmail.com>
References: <20130224123309.GA19354@glow> <1361716256.4494.1191.camel@mightyatom> <CAB9rx+8Sd2TOFr2jKwq+Mv8nH6CgKoEEkSOOHSohxwVzTYn1zA@mail.gmail.com> <1361811760.4494.1284.camel@mightyatom> <CAB9rx+9XGh6nWdsth6wu7D7WarA5SEpaxTtq8vSvzntnMo3OiA@mail.gmail.com> <1361882036.4494.1350.camel@mightyatom> <CAB9rx+_6ccT=mBkx28j97nMwApWptOhRb8CXHs_mFFGEG6YQKw@mail.gmail.com> <1362276721.4494.2433.camel@mightyatom> <CAB9rx+-9qL5j+BhwZX3gXb9ZRAKGQpwHPPeyQh3HifYkdThK_w@mail.gmail.com> <CAB9rx+9nnHx_TNRhau6tsbbNCDcUGiwGn3fW172SbpVNo7YXvw@mail.gmail.com> <1362790659.4494.3582.camel@mightyatom> <CAB9rx+8ovZK-Z=LQKc_XFrqoobHhgTt2rBrK-iQ3EdGnhUhHog@mail.gmail.com>
Content-Type: text/plain
Organization: Folly Consulting
Date: Mon, 18 Mar 2013 07:42:58 +0000
Message-Id: <1363592578.23866.2828.camel@mightyatom>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.3 
Content-Transfer-Encoding: 7bit
Cc: DTN Users <dtn-users@irtf.org>
Subject: Re: [dtn-users] bundle fragmentation
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Mar 2013 07:45:53 -0000

Hi.

I think you are part of the way there, at least for some cases in your
second paragraph...

Let's consider the simple case first.. assume the security destination
for all of these PIBs is the final bundle destination ao the reassembly
is being done at the final destination and so all the fragments that are
going to arrive will arrive there.

Let's also initially assume that there is no encryption, just PIBs.  

One way of handling this seems to be:
- ignore the PIBs for a moment and reassemble the payload.  Assuming we
have a full set of fragments, we can put the whole payload back
together.  If there are no overlaps and no gaps then this is
straightforward. 

- Now, if I understand correctly, the PIB(s) are still applicable to
whatever chunks of payload they were applied to in the first place.
Thus, you can look at the PIB and take the chunk of payload that it
covered and check whether the hash is satisfied. Furthermore, assuming
that the PIB is a good strong one, we can optimize this.  If a PIB
covers a range of octets that are fully covered by some other PIB, we
can just ignore it - checking the covering one should be good enough.
So if there is a PIB for the whole payload, then we can just ignore any
others that it has accumulated.

So much for the easy case... some more awkward cases:

- In the case above let's suppose that all is not well.  There are now
some overlapping fragments and their contents don't match in the
overlap.  What do we do?  I just checked the existing code in
FragmentManager.cc and FragmentState.cc and it appears that we don't
compare the content - we just overwrite with later arriving overlapping
fragments.  So as it stands, all we can do is check the PIB(s) and if
any of them fails then junk the bundle and all its fragments.  I think
that the Sainted Michael originally had a more cunning plan because the
fragmented payload was originally supposed to be represented by a sparse
bitmap (there are traces of this still in the code) and this would have
allowed us to check more easily if there was an overlap and do something
cleverer like taking the content from a PIBbed fragment rather than an
unPIBbed one or keeping both copies and seeing if either satisfied the
PIB.  In practice this is probably far too complicated and the status
quo may be good enough.  

- If the security destination is not the final destination, then we can
use the partly reassembled payload which we get for free to see if the
whole segment protected by the fragment is present.  There is no need to
actually defragment the bundle, BUT you have to hold unchecked fragments
off the pending queue until the whole segment has arrived and can be
checked - the router code shouldn't try to forward these fragments until
they have been checked.

In all these cases checking the PIB(s) has to be postponed until the
whole segment concerned has arrived.  I'm not sure how this ties in with
the BSP code as it stands but you could make a version of
FragmentState::check_completed which looked to see if you had the whole
of the segment protected by a PIB.  In the case of the final destination
its easy enough to postpone the checks until the whole bundle has
arrived.  For intermediate security destinations life is more
complicated: There is a nasty corner case where a corrupted overlapping
fragment arrives after you have checked the PIB.  It definitely
indicates that you ought to check for inconsistent data in overlapping
fragments but doing something other than throwing away the whole
bundle/set of fragments is going to be hideously complicated, and with
the intermediate security destination you may already have forwarded
correctly checked fragments (actually this is probably good news
provided you know you have checked the existing fragments - you can just
throw away the incoming one).

What I am not up to speed on is how all this interacts with encrypted
fragments that are not the whole bundle.  Presumably you have a similar
problem in that you have to postpone decryption.. but on the other hand
the accumulated payload is just what you need to operate on.

Hope this all make some sort of sense.

/Elwyn 



On Fri, 2013-03-15 at 20:13 -0400, Amy Alford wrote:
> I can't prove to myself that you can't successfully do incremental
> defragmentation using the BSP info to decide which subset of fragments
> to reassemble.  However, it would require major reworking of DTN2
> since you'd have to use the BSP blocks to decide which fragments to
> recombine.
> 
> 
> I was hoping that you could reassemble the bundle and use the
> heuristic that PIB blocks always applied to other blocks whose range
> is a superset of theirs and who start at the same offset.
>  Unfortunately, if a bundle is fragmented differently along different
> paths, this isn't true.
> 
> 
> I have a crazy scenario I'm trying to untangle.
> 
> 
> A bundle of 100 bytes is created.  It's fragmented into bytes 0-50 and
> 50-100 and independently into 0-25 and 25-100.  Some node adds PIB to
> the 0-50 fragment, so that fragment is now (PIB 0-50)(0-50).  Another
> node fragments this fragment into (PIB 0-50)(0-25) and (25-50).
>  Another node adds PIB to the first of these, yielding (PIB 0-25)(PIB
> 0-50)(0-25).  Some other node also adds PIB to the original unadorned
> 0-25 giving us (PIB 0-25)(0-25).
> 
> 
> Now, I have PIB 0-50 and PIB 0-25 blocks floating around when I
> reassemble.  One PIB 0-25 covers one PIB 0-50, but the other PIB 0-25
> does not relate to any PIB 0-50s.  
> 
> 
> So, this leaves us needing to use your idea of partial reassembly.
> Which means making really substantial changes to the
> validation/fragment reassembly code since there's no conceptual idea
> of a "subfragment" in 5050 and so we need to try to use the extension
> blocks to infer a subfragment structure.
> 
> 
> 
> On Fri, Mar 8, 2013 at 7:57 PM, Elwyn Davies <elwynd@folly.org.uk>
> wrote:
>         > However, BSP can add PIB blocks after fragmentation.  In
>         this case, I
>         > can't see how to reconstruct what PIB blocks already existed
>         at the
>         > time a given PIB block was added (which is important,
>         because we hash
>         > over those blocks).
>         
>         And in principle, any node is free to add on metadata blocks
>         and take
>         them away. However going back to the PIB Block issue:
>         
>         I don't think the PIB stuff is a problem (assuming the
>         implementation
>         conforms to the BSP spec) but I may not understand the
>         problem.
>         
>         - Any PIB block from before a fragmentation will only be in
>         the first
>         fragment of the block that was fragmented; its corresponding
>         correlator
>         (if it has one) will be in the last fragment.  If there are
>         intermediate
>         fragments they won't have PIBs (but might have PCBs if they
>         have
>         replicate in all blocks set)
>         - There's a stack of PIB blocks with associated security
>         destinations
>         and if the PIB applies to a part of payload it is supposed to
>         say what
>         part (I think - s2.3 of BSP).
>         - When you reach a security destination (maybe the final
>         destination),
>         you start unwinding the stack in each bundle.  Deal with the
>         BAB in each
>         fragment first.  Then for each fragment that has an PIB as its
>         first
>         security block and has the current node as current
>         'outside' (top of the
>         tack) security destination, look at the range of payload bytes
>         the PIB
>         covers.  Do whatever reassembly is implied by this (may have
>         to be
>         postponed if not all the bits have arrived yet) putting
>         together the
>         fragments needed to make up the piece of payload protected by
>         the PIB.
>         Reconstruct the bundle that was fragmented after this PIB was
>         put in
>         place (which may be a fragment of the larger bundle.) Check
>         the PIB and
>         its correlator and then discard them (or the whole bundle if
>         the check
>         fails).  Repeat the exercise for all the fragments in turn.
>          Do any PCB
>         and ESB actions for this security destination.  Then recurse
>         up the
>         stack of PIBs if relevent starting from the lowest offset
>         fragment each
>         time.
>         
>         That's pretty complex and tedious but I think it works.
>         
>         But I am wondering if we need a Metadata block to say whet
>         extension
>         blocks (and other Metadata blocks were in the original bundle
>         plus a
>         flag in the primary block to say it is there??  That way
>         custody would
>         know what it was taking charge of.
>         
>         Thoughts?
>         
>         /Elwyn
>         
>         
>         
>         >
>         > - Amy
>         
> 
> 


From aloomis@sarn.org  Tue Mar 19 11:09:39 2013
Return-Path: <aloomis@sarn.org>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0359221F8A54 for <dtn-users@ietfa.amsl.com>; Tue, 19 Mar 2013 11:09:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.976
X-Spam-Level: 
X-Spam-Status: No, score=-2.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id O9cVA31OCFlX for <dtn-users@ietfa.amsl.com>; Tue, 19 Mar 2013 11:09:37 -0700 (PDT)
Received: from mail-qa0-f44.google.com (mail-qa0-f44.google.com [209.85.216.44]) by ietfa.amsl.com (Postfix) with ESMTP id 134E121F86D5 for <dtn-users@irtf.org>; Tue, 19 Mar 2013 11:09:36 -0700 (PDT)
Received: by mail-qa0-f44.google.com with SMTP id hg5so512851qab.3 for <dtn-users@irtf.org>; Tue, 19 Mar 2013 11:09:35 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:x-gm-message-state; bh=YZCEc/I8waa63W7Qr3I2+evp8bsjG25DKXtDWlEwm5E=; b=mjKllJ9nEhZLRmz8P689wYKXAxo3bkUu+8gb0sEDuY8UHIpV3gpRzP9VYBpUR8ZOy1 J7X562Kyp1y39KDnCabOFWQcBm03NjBOW8yM36Xarkr+xMma92V3BHctwI3JnZKL92dG F8uaO0anucwzYwVair8WAR1DZWiKUoMUuTU/F1y0wPfZkAEKdjx5+3RPLNSU6foo8RLk wmZBCpOEUm2OUiZpFH5YHYpkfQmgv7lE5yOidvJjStjknBFjcjTKStSaS9Rn36+f4HnV 13OYBhREtqTu3UGl/V9o49Dr0vF7uq0fB36nRo4cj63jnoZr/qDayXk4uOf4IqO0x33w RtSg==
MIME-Version: 1.0
X-Received: by 10.224.10.141 with SMTP id p13mr3049135qap.91.1363716575797; Tue, 19 Mar 2013 11:09:35 -0700 (PDT)
Received: by 10.49.24.38 with HTTP; Tue, 19 Mar 2013 11:09:35 -0700 (PDT)
In-Reply-To: <1363592578.23866.2828.camel@mightyatom>
References: <20130224123309.GA19354@glow> <1361716256.4494.1191.camel@mightyatom> <CAB9rx+8Sd2TOFr2jKwq+Mv8nH6CgKoEEkSOOHSohxwVzTYn1zA@mail.gmail.com> <1361811760.4494.1284.camel@mightyatom> <CAB9rx+9XGh6nWdsth6wu7D7WarA5SEpaxTtq8vSvzntnMo3OiA@mail.gmail.com> <1361882036.4494.1350.camel@mightyatom> <CAB9rx+_6ccT=mBkx28j97nMwApWptOhRb8CXHs_mFFGEG6YQKw@mail.gmail.com> <1362276721.4494.2433.camel@mightyatom> <CAB9rx+-9qL5j+BhwZX3gXb9ZRAKGQpwHPPeyQh3HifYkdThK_w@mail.gmail.com> <CAB9rx+9nnHx_TNRhau6tsbbNCDcUGiwGn3fW172SbpVNo7YXvw@mail.gmail.com> <1362790659.4494.3582.camel@mightyatom> <CAB9rx+8ovZK-Z=LQKc_XFrqoobHhgTt2rBrK-iQ3EdGnhUhHog@mail.gmail.com> <1363592578.23866.2828.camel@mightyatom>
Date: Tue, 19 Mar 2013 14:09:35 -0400
Message-ID: <CAB9rx+9PprvkJeK6Vs16-qK3r9cv9ac7zkq2qi==-tAztDC3QA@mail.gmail.com>
From: Amy Alford <aloomis@sarn.org>
To: Elwyn Davies <elwynd@folly.org.uk>
Content-Type: multipart/alternative; boundary=14dae93995a9133c9704d84b027c
X-Gm-Message-State: ALoCoQlZlemmS15mvffFB3Tjubx/7PWhVZEc2FE2+qNQ/XdHzbMCkOk4kzBxfJ5xExQA0FYv4Z8B
Cc: DTN Users <dtn-users@irtf.org>
Subject: Re: [dtn-users] bundle fragmentation
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Mar 2013 18:09:39 -0000

--14dae93995a9133c9704d84b027c
Content-Type: text/plain; charset=ISO-8859-1

I think I explained the situation badly.  The default PIB ciphersuite
doesn't just hash and sign the payload.  It also hashes most of the primary
block and any existing PIB or PCB blocks.  So, in order to validate a PIB
block, I need to know what PIB/PCB blocks were attached to the bundle at
the time this one was added.  BSP uses the order of PIB/PCB blocks to
determine this.

If you reassemble the bundle before validating, you need some way to figure
out which PIB blocks hash over each other.  I haven't thought of a good way
to do this yet.  In particular, if an intermediate node reassembles a
bundle, I don't think we have enough information left to validate the PIB
blocks.  The example I gave demonstrates this.  If I'm wrong and there's
some way to infer the order of BSP blocks in the fragments from the
reassembled bundle, that would be the easy solution.

OTOH, if all the reassembling nodes are BSP aware, I think it's doable, but
it isn't elegant.  The individual fragments carry the most information
about the order in which BSP fragments were added.  Those fragments can
only be validated with access to the payload (and possibly other fragments
if you have a two block PIB ciphersuite).  So, reassembly and validation
probably have to happen in a few passes (reassemble the payload, validate
the fragments, confirm that the validated fragments let you reassemble the
whole payload).  There are probably additional headaches if a node receives
a set of fragments that allow it to reassemble the whole payload, but is
missing a fragment needed to validate another fragment (you receive only
one of a pair of fragments containing correlated PIB blocks in a two block
PIB ciphersuite).




On Mon, Mar 18, 2013 at 3:42 AM, Elwyn Davies <elwynd@folly.org.uk> wrote:

> Hi.
>
> I think you are part of the way there, at least for some cases in your
> second paragraph...
>
> Let's consider the simple case first.. assume the security destination
> for all of these PIBs is the final bundle destination ao the reassembly
> is being done at the final destination and so all the fragments that are
> going to arrive will arrive there.
>
> Let's also initially assume that there is no encryption, just PIBs.
>
> One way of handling this seems to be:
> - ignore the PIBs for a moment and reassemble the payload.  Assuming we
> have a full set of fragments, we can put the whole payload back
> together.  If there are no overlaps and no gaps then this is
> straightforward.
>
> - Now, if I understand correctly, the PIB(s) are still applicable to
> whatever chunks of payload they were applied to in the first place.
> Thus, you can look at the PIB and take the chunk of payload that it
> covered and check whether the hash is satisfied. Furthermore, assuming
> that the PIB is a good strong one, we can optimize this.  If a PIB
> covers a range of octets that are fully covered by some other PIB, we
> can just ignore it - checking the covering one should be good enough.
> So if there is a PIB for the whole payload, then we can just ignore any
> others that it has accumulated.
>
> So much for the easy case... some more awkward cases:
>
> - In the case above let's suppose that all is not well.  There are now
> some overlapping fragments and their contents don't match in the
> overlap.  What do we do?  I just checked the existing code in
> FragmentManager.cc and FragmentState.cc and it appears that we don't
> compare the content - we just overwrite with later arriving overlapping
> fragments.  So as it stands, all we can do is check the PIB(s) and if
> any of them fails then junk the bundle and all its fragments.  I think
> that the Sainted Michael originally had a more cunning plan because the
> fragmented payload was originally supposed to be represented by a sparse
> bitmap (there are traces of this still in the code) and this would have
> allowed us to check more easily if there was an overlap and do something
> cleverer like taking the content from a PIBbed fragment rather than an
> unPIBbed one or keeping both copies and seeing if either satisfied the
> PIB.  In practice this is probably far too complicated and the status
> quo may be good enough.
>
> - If the security destination is not the final destination, then we can
> use the partly reassembled payload which we get for free to see if the
> whole segment protected by the fragment is present.  There is no need to
> actually defragment the bundle, BUT you have to hold unchecked fragments
> off the pending queue until the whole segment has arrived and can be
> checked - the router code shouldn't try to forward these fragments until
> they have been checked.
>
> In all these cases checking the PIB(s) has to be postponed until the
> whole segment concerned has arrived.  I'm not sure how this ties in with
> the BSP code as it stands but you could make a version of
> FragmentState::check_completed which looked to see if you had the whole
> of the segment protected by a PIB.  In the case of the final destination
> its easy enough to postpone the checks until the whole bundle has
> arrived.  For intermediate security destinations life is more
> complicated: There is a nasty corner case where a corrupted overlapping
> fragment arrives after you have checked the PIB.  It definitely
> indicates that you ought to check for inconsistent data in overlapping
> fragments but doing something other than throwing away the whole
> bundle/set of fragments is going to be hideously complicated, and with
> the intermediate security destination you may already have forwarded
> correctly checked fragments (actually this is probably good news
> provided you know you have checked the existing fragments - you can just
> throw away the incoming one).
>
> What I am not up to speed on is how all this interacts with encrypted
> fragments that are not the whole bundle.  Presumably you have a similar
> problem in that you have to postpone decryption.. but on the other hand
> the accumulated payload is just what you need to operate on.
>
> Hope this all make some sort of sense.
>
> /Elwyn
>
>
>
> On Fri, 2013-03-15 at 20:13 -0400, Amy Alford wrote:
> > I can't prove to myself that you can't successfully do incremental
> > defragmentation using the BSP info to decide which subset of fragments
> > to reassemble.  However, it would require major reworking of DTN2
> > since you'd have to use the BSP blocks to decide which fragments to
> > recombine.
> >
> >
> > I was hoping that you could reassemble the bundle and use the
> > heuristic that PIB blocks always applied to other blocks whose range
> > is a superset of theirs and who start at the same offset.
> >  Unfortunately, if a bundle is fragmented differently along different
> > paths, this isn't true.
> >
> >
> > I have a crazy scenario I'm trying to untangle.
> >
> >
> > A bundle of 100 bytes is created.  It's fragmented into bytes 0-50 and
> > 50-100 and independently into 0-25 and 25-100.  Some node adds PIB to
> > the 0-50 fragment, so that fragment is now (PIB 0-50)(0-50).  Another
> > node fragments this fragment into (PIB 0-50)(0-25) and (25-50).
> >  Another node adds PIB to the first of these, yielding (PIB 0-25)(PIB
> > 0-50)(0-25).  Some other node also adds PIB to the original unadorned
> > 0-25 giving us (PIB 0-25)(0-25).
> >
> >
> > Now, I have PIB 0-50 and PIB 0-25 blocks floating around when I
> > reassemble.  One PIB 0-25 covers one PIB 0-50, but the other PIB 0-25
> > does not relate to any PIB 0-50s.
> >
> >
> > So, this leaves us needing to use your idea of partial reassembly.
> > Which means making really substantial changes to the
> > validation/fragment reassembly code since there's no conceptual idea
> > of a "subfragment" in 5050 and so we need to try to use the extension
> > blocks to infer a subfragment structure.
> >
> >
> >
> > On Fri, Mar 8, 2013 at 7:57 PM, Elwyn Davies <elwynd@folly.org.uk>
> > wrote:
> >         > However, BSP can add PIB blocks after fragmentation.  In
> >         this case, I
> >         > can't see how to reconstruct what PIB blocks already existed
> >         at the
> >         > time a given PIB block was added (which is important,
> >         because we hash
> >         > over those blocks).
> >
> >         And in principle, any node is free to add on metadata blocks
> >         and take
> >         them away. However going back to the PIB Block issue:
> >
> >         I don't think the PIB stuff is a problem (assuming the
> >         implementation
> >         conforms to the BSP spec) but I may not understand the
> >         problem.
> >
> >         - Any PIB block from before a fragmentation will only be in
> >         the first
> >         fragment of the block that was fragmented; its corresponding
> >         correlator
> >         (if it has one) will be in the last fragment.  If there are
> >         intermediate
> >         fragments they won't have PIBs (but might have PCBs if they
> >         have
> >         replicate in all blocks set)
> >         - There's a stack of PIB blocks with associated security
> >         destinations
> >         and if the PIB applies to a part of payload it is supposed to
> >         say what
> >         part (I think - s2.3 of BSP).
> >         - When you reach a security destination (maybe the final
> >         destination),
> >         you start unwinding the stack in each bundle.  Deal with the
> >         BAB in each
> >         fragment first.  Then for each fragment that has an PIB as its
> >         first
> >         security block and has the current node as current
> >         'outside' (top of the
> >         tack) security destination, look at the range of payload bytes
> >         the PIB
> >         covers.  Do whatever reassembly is implied by this (may have
> >         to be
> >         postponed if not all the bits have arrived yet) putting
> >         together the
> >         fragments needed to make up the piece of payload protected by
> >         the PIB.
> >         Reconstruct the bundle that was fragmented after this PIB was
> >         put in
> >         place (which may be a fragment of the larger bundle.) Check
> >         the PIB and
> >         its correlator and then discard them (or the whole bundle if
> >         the check
> >         fails).  Repeat the exercise for all the fragments in turn.
> >          Do any PCB
> >         and ESB actions for this security destination.  Then recurse
> >         up the
> >         stack of PIBs if relevent starting from the lowest offset
> >         fragment each
> >         time.
> >
> >         That's pretty complex and tedious but I think it works.
> >
> >         But I am wondering if we need a Metadata block to say whet
> >         extension
> >         blocks (and other Metadata blocks were in the original bundle
> >         plus a
> >         flag in the primary block to say it is there??  That way
> >         custody would
> >         know what it was taking charge of.
> >
> >         Thoughts?
> >
> >         /Elwyn
> >
> >
> >
> >         >
> >         > - Amy
> >
> >
> >
>
>

--14dae93995a9133c9704d84b027c
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

I think I explained the situation badly. =A0The default PIB ciphersuite doe=
sn&#39;t just hash and sign the payload. =A0It also hashes most of the prim=
ary block and any existing PIB or PCB blocks. =A0So, in order to validate a=
 PIB block, I need to know what PIB/PCB blocks were attached to the bundle =
at the time this one was added. =A0BSP uses the order of PIB/PCB blocks to =
determine this. =A0<div>

<br></div><div>If you reassemble the bundle before validating, you need som=
e way to figure out which PIB blocks hash over each other. =A0I haven&#39;t=
 thought of a good way to do this yet. =A0In particular, if an intermediate=
 node reassembles a bundle, I don&#39;t think we have enough information le=
ft to validate the PIB blocks. =A0The example I gave demonstrates this. =A0=
If I&#39;m wrong and there&#39;s some way to infer the order of BSP blocks =
in the fragments from the reassembled bundle, that would be the easy soluti=
on.</div>

<div><br></div><div>OTOH, if all the reassembling nodes are BSP aware, I th=
ink it&#39;s doable, but it isn&#39;t elegant. =A0The individual fragments =
carry the most information about the order in which BSP fragments were adde=
d. =A0Those fragments can only be validated with access to the payload (and=
 possibly other fragments if you have a two block PIB ciphersuite). =A0So, =
reassembly and validation probably have to happen in a few passes (reassemb=
le the payload, validate the fragments, confirm that the validated fragment=
s let you reassemble the whole payload). =A0There are probably additional h=
eadaches if a node receives a set of fragments that allow it to reassemble =
the whole payload, but is missing a fragment needed to validate another fra=
gment (you receive only one of a pair of fragments containing correlated PI=
B blocks in a two block PIB ciphersuite).</div>

<div><br></div><div><br></div><div><br></div><div><br></div><div><div class=
=3D"gmail_quote">On Mon, Mar 18, 2013 at 3:42 AM, Elwyn Davies <span dir=3D=
"ltr">&lt;<a href=3D"mailto:elwynd@folly.org.uk" target=3D"_blank">elwynd@f=
olly.org.uk</a>&gt;</span> wrote:<br>

<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Hi.<br>
<br>
I think you are part of the way there, at least for some cases in your<br>
second paragraph...<br>
<br>
Let&#39;s consider the simple case first.. assume the security destination<=
br>
for all of these PIBs is the final bundle destination ao the reassembly<br>
is being done at the final destination and so all the fragments that are<br=
>
going to arrive will arrive there.<br>
<br>
Let&#39;s also initially assume that there is no encryption, just PIBs.<br>
<br>
One way of handling this seems to be:<br>
- ignore the PIBs for a moment and reassemble the payload. =A0Assuming we<b=
r>
have a full set of fragments, we can put the whole payload back<br>
together. =A0If there are no overlaps and no gaps then this is<br>
straightforward.<br>
<br>
- Now, if I understand correctly, the PIB(s) are still applicable to<br>
whatever chunks of payload they were applied to in the first place.<br>
Thus, you can look at the PIB and take the chunk of payload that it<br>
covered and check whether the hash is satisfied. Furthermore, assuming<br>
that the PIB is a good strong one, we can optimize this. =A0If a PIB<br>
covers a range of octets that are fully covered by some other PIB, we<br>
can just ignore it - checking the covering one should be good enough.<br>
So if there is a PIB for the whole payload, then we can just ignore any<br>
others that it has accumulated.<br>
<br>
So much for the easy case... some more awkward cases:<br>
<br>
- In the case above let&#39;s suppose that all is not well. =A0There are no=
w<br>
some overlapping fragments and their contents don&#39;t match in the<br>
overlap. =A0What do we do? =A0I just checked the existing code in<br>
FragmentManager.cc and FragmentState.cc and it appears that we don&#39;t<br=
>
compare the content - we just overwrite with later arriving overlapping<br>
fragments. =A0So as it stands, all we can do is check the PIB(s) and if<br>
any of them fails then junk the bundle and all its fragments. =A0I think<br=
>
that the Sainted Michael originally had a more cunning plan because the<br>
fragmented payload was originally supposed to be represented by a sparse<br=
>
bitmap (there are traces of this still in the code) and this would have<br>
allowed us to check more easily if there was an overlap and do something<br=
>
cleverer like taking the content from a PIBbed fragment rather than an<br>
unPIBbed one or keeping both copies and seeing if either satisfied the<br>
PIB. =A0In practice this is probably far too complicated and the status<br>
quo may be good enough.<br>
<br>
- If the security destination is not the final destination, then we can<br>
use the partly reassembled payload which we get for free to see if the<br>
whole segment protected by the fragment is present. =A0There is no need to<=
br>
actually defragment the bundle, BUT you have to hold unchecked fragments<br=
>
off the pending queue until the whole segment has arrived and can be<br>
checked - the router code shouldn&#39;t try to forward these fragments unti=
l<br>
they have been checked.<br>
<br>
In all these cases checking the PIB(s) has to be postponed until the<br>
whole segment concerned has arrived. =A0I&#39;m not sure how this ties in w=
ith<br>
the BSP code as it stands but you could make a version of<br>
FragmentState::check_completed which looked to see if you had the whole<br>
of the segment protected by a PIB. =A0In the case of the final destination<=
br>
its easy enough to postpone the checks until the whole bundle has<br>
arrived. =A0For intermediate security destinations life is more<br>
complicated: There is a nasty corner case where a corrupted overlapping<br>
fragment arrives after you have checked the PIB. =A0It definitely<br>
indicates that you ought to check for inconsistent data in overlapping<br>
fragments but doing something other than throwing away the whole<br>
bundle/set of fragments is going to be hideously complicated, and with<br>
the intermediate security destination you may already have forwarded<br>
correctly checked fragments (actually this is probably good news<br>
provided you know you have checked the existing fragments - you can just<br=
>
throw away the incoming one).<br>
<br>
What I am not up to speed on is how all this interacts with encrypted<br>
fragments that are not the whole bundle. =A0Presumably you have a similar<b=
r>
problem in that you have to postpone decryption.. but on the other hand<br>
the accumulated payload is just what you need to operate on.<br>
<br>
Hope this all make some sort of sense.<br>
<br>
/Elwyn<br>
<div><div><br>
<br>
<br>
On Fri, 2013-03-15 at 20:13 -0400, Amy Alford wrote:<br>
&gt; I can&#39;t prove to myself that you can&#39;t successfully do increme=
ntal<br>
&gt; defragmentation using the BSP info to decide which subset of fragments=
<br>
&gt; to reassemble. =A0However, it would require major reworking of DTN2<br=
>
&gt; since you&#39;d have to use the BSP blocks to decide which fragments t=
o<br>
&gt; recombine.<br>
&gt;<br>
&gt;<br>
&gt; I was hoping that you could reassemble the bundle and use the<br>
&gt; heuristic that PIB blocks always applied to other blocks whose range<b=
r>
&gt; is a superset of theirs and who start at the same offset.<br>
&gt; =A0Unfortunately, if a bundle is fragmented differently along differen=
t<br>
&gt; paths, this isn&#39;t true.<br>
&gt;<br>
&gt;<br>
&gt; I have a crazy scenario I&#39;m trying to untangle.<br>
&gt;<br>
&gt;<br>
&gt; A bundle of 100 bytes is created. =A0It&#39;s fragmented into bytes 0-=
50 and<br>
&gt; 50-100 and independently into 0-25 and 25-100. =A0Some node adds PIB t=
o<br>
&gt; the 0-50 fragment, so that fragment is now (PIB 0-50)(0-50). =A0Anothe=
r<br>
&gt; node fragments this fragment into (PIB 0-50)(0-25) and (25-50).<br>
&gt; =A0Another node adds PIB to the first of these, yielding (PIB 0-25)(PI=
B<br>
&gt; 0-50)(0-25). =A0Some other node also adds PIB to the original unadorne=
d<br>
&gt; 0-25 giving us (PIB 0-25)(0-25).<br>
&gt;<br>
&gt;<br>
&gt; Now, I have PIB 0-50 and PIB 0-25 blocks floating around when I<br>
&gt; reassemble. =A0One PIB 0-25 covers one PIB 0-50, but the other PIB 0-2=
5<br>
&gt; does not relate to any PIB 0-50s.<br>
&gt;<br>
&gt;<br>
&gt; So, this leaves us needing to use your idea of partial reassembly.<br>
&gt; Which means making really substantial changes to the<br>
&gt; validation/fragment reassembly code since there&#39;s no conceptual id=
ea<br>
&gt; of a &quot;subfragment&quot; in 5050 and so we need to try to use the =
extension<br>
&gt; blocks to infer a subfragment structure.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Mar 8, 2013 at 7:57 PM, Elwyn Davies &lt;<a href=3D"mailto:elw=
ynd@folly.org.uk" target=3D"_blank">elwynd@folly.org.uk</a>&gt;<br>
&gt; wrote:<br>
&gt; =A0 =A0 =A0 =A0 &gt; However, BSP can add PIB blocks after fragmentati=
on. =A0In<br>
&gt; =A0 =A0 =A0 =A0 this case, I<br>
&gt; =A0 =A0 =A0 =A0 &gt; can&#39;t see how to reconstruct what PIB blocks =
already existed<br>
&gt; =A0 =A0 =A0 =A0 at the<br>
&gt; =A0 =A0 =A0 =A0 &gt; time a given PIB block was added (which is import=
ant,<br>
&gt; =A0 =A0 =A0 =A0 because we hash<br>
&gt; =A0 =A0 =A0 =A0 &gt; over those blocks).<br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 And in principle, any node is free to add on metadata =
blocks<br>
&gt; =A0 =A0 =A0 =A0 and take<br>
&gt; =A0 =A0 =A0 =A0 them away. However going back to the PIB Block issue:<=
br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 I don&#39;t think the PIB stuff is a problem (assuming=
 the<br>
&gt; =A0 =A0 =A0 =A0 implementation<br>
&gt; =A0 =A0 =A0 =A0 conforms to the BSP spec) but I may not understand the=
<br>
&gt; =A0 =A0 =A0 =A0 problem.<br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 - Any PIB block from before a fragmentation will only =
be in<br>
&gt; =A0 =A0 =A0 =A0 the first<br>
&gt; =A0 =A0 =A0 =A0 fragment of the block that was fragmented; its corresp=
onding<br>
&gt; =A0 =A0 =A0 =A0 correlator<br>
&gt; =A0 =A0 =A0 =A0 (if it has one) will be in the last fragment. =A0If th=
ere are<br>
&gt; =A0 =A0 =A0 =A0 intermediate<br>
&gt; =A0 =A0 =A0 =A0 fragments they won&#39;t have PIBs (but might have PCB=
s if they<br>
&gt; =A0 =A0 =A0 =A0 have<br>
&gt; =A0 =A0 =A0 =A0 replicate in all blocks set)<br>
&gt; =A0 =A0 =A0 =A0 - There&#39;s a stack of PIB blocks with associated se=
curity<br>
&gt; =A0 =A0 =A0 =A0 destinations<br>
&gt; =A0 =A0 =A0 =A0 and if the PIB applies to a part of payload it is supp=
osed to<br>
&gt; =A0 =A0 =A0 =A0 say what<br>
&gt; =A0 =A0 =A0 =A0 part (I think - s2.3 of BSP).<br>
&gt; =A0 =A0 =A0 =A0 - When you reach a security destination (maybe the fin=
al<br>
&gt; =A0 =A0 =A0 =A0 destination),<br>
&gt; =A0 =A0 =A0 =A0 you start unwinding the stack in each bundle. =A0Deal =
with the<br>
&gt; =A0 =A0 =A0 =A0 BAB in each<br>
&gt; =A0 =A0 =A0 =A0 fragment first. =A0Then for each fragment that has an =
PIB as its<br>
&gt; =A0 =A0 =A0 =A0 first<br>
&gt; =A0 =A0 =A0 =A0 security block and has the current node as current<br>
&gt; =A0 =A0 =A0 =A0 &#39;outside&#39; (top of the<br>
&gt; =A0 =A0 =A0 =A0 tack) security destination, look at the range of paylo=
ad bytes<br>
&gt; =A0 =A0 =A0 =A0 the PIB<br>
&gt; =A0 =A0 =A0 =A0 covers. =A0Do whatever reassembly is implied by this (=
may have<br>
&gt; =A0 =A0 =A0 =A0 to be<br>
&gt; =A0 =A0 =A0 =A0 postponed if not all the bits have arrived yet) puttin=
g<br>
&gt; =A0 =A0 =A0 =A0 together the<br>
&gt; =A0 =A0 =A0 =A0 fragments needed to make up the piece of payload prote=
cted by<br>
&gt; =A0 =A0 =A0 =A0 the PIB.<br>
&gt; =A0 =A0 =A0 =A0 Reconstruct the bundle that was fragmented after this =
PIB was<br>
&gt; =A0 =A0 =A0 =A0 put in<br>
&gt; =A0 =A0 =A0 =A0 place (which may be a fragment of the larger bundle.) =
Check<br>
&gt; =A0 =A0 =A0 =A0 the PIB and<br>
&gt; =A0 =A0 =A0 =A0 its correlator and then discard them (or the whole bun=
dle if<br>
&gt; =A0 =A0 =A0 =A0 the check<br>
&gt; =A0 =A0 =A0 =A0 fails). =A0Repeat the exercise for all the fragments i=
n turn.<br>
&gt; =A0 =A0 =A0 =A0 =A0Do any PCB<br>
&gt; =A0 =A0 =A0 =A0 and ESB actions for this security destination. =A0Then=
 recurse<br>
&gt; =A0 =A0 =A0 =A0 up the<br>
&gt; =A0 =A0 =A0 =A0 stack of PIBs if relevent starting from the lowest off=
set<br>
</div></div>&gt; =A0 =A0 =A0 =A0 fragment each<br>
<div><div>&gt; =A0 =A0 =A0 =A0 time.<br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 That&#39;s pretty complex and tedious but I think it w=
orks.<br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 But I am wondering if we need a Metadata block to say =
whet<br>
&gt; =A0 =A0 =A0 =A0 extension<br>
&gt; =A0 =A0 =A0 =A0 blocks (and other Metadata blocks were in the original=
 bundle<br>
&gt; =A0 =A0 =A0 =A0 plus a<br>
&gt; =A0 =A0 =A0 =A0 flag in the primary block to say it is there?? =A0That=
 way<br>
&gt; =A0 =A0 =A0 =A0 custody would<br>
&gt; =A0 =A0 =A0 =A0 know what it was taking charge of.<br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 Thoughts?<br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 /Elwyn<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; =A0 =A0 =A0 =A0 &gt;<br>
&gt; =A0 =A0 =A0 =A0 &gt; - Amy<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>

--14dae93995a9133c9704d84b027c--

From shepherd0309@qq.com  Mon Mar 25 21:33:42 2013
Return-Path: <shepherd0309@qq.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1071121F8506 for <dtn-users@ietfa.amsl.com>; Mon, 25 Mar 2013 21:33:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 4.816
X-Spam-Level: ****
X-Spam-Status: No, score=4.816 tagged_above=-999 required=5 tests=[BAYES_60=1,  HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, MIME_BASE64_TEXT=1.753, MISSING_SUBJECT=1.762]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id w9tTZaVGXU3P for <dtn-users@ietfa.amsl.com>; Mon, 25 Mar 2013 21:33:38 -0700 (PDT)
Received: from smtpbg298.qq.com (smtpbg298.qq.com [184.105.67.102]) by ietfa.amsl.com (Postfix) with SMTP id 3502121F893D for <dtn-users@irtf.org>; Mon, 25 Mar 2013 21:33:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s0907; t=1364272413; bh=IBOjda5XbwB/A72cUFEUUgdvtK7hVvyCi/TTdciiYFc=; h=X-QQ-mid:Received:X-QQ-SSF:Date:From:To:Reply-To:X-Priority: X-Has-Attach:X-Mailer:Mime-Version:Message-ID:Content-Type: X-QQ-FName:X-QQ-LocalIP; b=PCDpK7r/8ZwnWW916/9RsYYw6e29CdMQ38N8frJS5nyNKw5TtS9X5K7nvVf7slgl0 +UBYVsI/aEECZe8juXwTxZvSnkqTqqlBRHGZzoRFtyuwwxsdp0DkPvt7pBz4BW+
X-QQ-mid: esmtp29t1364272408t601t04875
Received: from WWW-337DD9F2496 (unknown [58.18.168.125]) by esmtp4.qq.com (ESMTP) with SMTP id 0 for <dtn-users@irtf.org>; Tue, 26 Mar 2013 12:33:27 +0800 (CST)
X-QQ-SSF: 01000000000000F0FxF00F000000000
Date: Tue, 26 Mar 2013 12:33:36 +0800
From: jx <shepherd0309@qq.com>
To: =?gb2312?B?b25lzNbC29fp?= <dtn-users@irtf.org>
X-Priority: 3
X-Has-Attach: no
X-Mailer: Foxmail 7.0.1.92[cn]
Mime-Version: 1.0
Message-ID: <201303261233322340424@qq.com>
Content-Type: multipart/alternative; boundary="----=_001_NextPart388754610545_=----"
X-QQ-FName: D3CAF2DE6FD54FDB907E133B903E5EDC
X-QQ-LocalIP: 58.250.132.20
Subject: [dtn-users] (no subject)
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: shepherd0309 <shepherd0309@qq.com>
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Mar 2013 04:33:43 -0000

This is a multi-part message in MIME format.

------=_001_NextPart388754610545_=----
Content-Type: text/plain;
	charset="gb2312"
Content-Transfer-Encoding: base64

SGkgYWxsLA0KSWYgSSB3YW50IHRvIHNlbmQgYSBSQVIgZmlsZSB3aGljaCBjb250YWlucyB0aGUg
Y29tcGlsZWQgT05FIHRoYXQgY2FuIGJlIHJ1biBvbiBlY2xpcHNlIGFzIGFuIGF0dGFjaG1lbnQg
dG8gc29tZW9uZS5Ib3cgY2FuIEkgZG8gaXQgPyAgSSB0cmllZCBtYW55IHRpbWVzIGJ1dCB0aGUg
Z21haWwgc2V2ZXIgYWxsIGRlbmllZCBteSByZXF1ZXN0IQ0KDQpJIHdpbGwgYXBwcmVjaWF0ZSBp
dCBpZiB5b3UgY2FuIGhlbHAgbWUgd2l0aCB0aGlzIHByb2JsZW0hIA0KDQoNCg0KDQp3aXRoIHJl
Z2FyZHMhDQoNCkppYW5nWGlu

------=_001_NextPart388754610545_=----
Content-Type: text/html;
	charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Dgb2312" http-equiv=3DContent-Type>
<STYLE>
BLOCKQUOTE {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
}
OL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
UL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
P {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
BODY {
	LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 1=
0.5pt
}
</STYLE>

<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.19403"></HEAD>
<BODY style=3D"MARGIN: 10px">
<DIV>Hi all,</DIV>
<DIV>If I want to send a RAR file which contains the compiled ONE that can=
 be=20
run on eclipse&nbsp;as an attachment to someone.How can I do&nbsp;it ?&nbs=
p; I=20
tried many times but the gmail sever all denied my request!</DIV>
<DIV>&nbsp;</DIV>
<DIV>I&nbsp;will appreciate it&nbsp;if you&nbsp;can help&nbsp;me with this=
=20
problem!&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
=3D1>

<DIV><SPAN>
<DIV><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 10.5pt">wit=
h&nbsp;regards!</SPAN></DIV>
<DIV><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 10.5pt"></S=
PAN>&nbsp;</DIV>
<DIV><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 10.5pt">Jia=
ngXin</SPAN></DIV></SPAN></DIV></BODY></HTML>

------=_001_NextPart388754610545_=------




From shepherd0309@qq.com  Tue Mar 26 19:28:22 2013
Return-Path: <shepherd0309@qq.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A3B2E21F8536 for <dtn-users@ietfa.amsl.com>; Tue, 26 Mar 2013 19:28:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.674
X-Spam-Level: **
X-Spam-Status: No, score=2.674 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, MIME_BASE64_TEXT=1.753, RCVD_IN_SORBS_WEB=0.619]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id it-GUH0TewG0 for <dtn-users@ietfa.amsl.com>; Tue, 26 Mar 2013 19:28:22 -0700 (PDT)
Received: from smtpbg52.qq.com (smtpbg52.qq.com [64.71.138.43]) by ietfa.amsl.com (Postfix) with SMTP id 2C25A21F8526 for <dtn-users@irtf.org>; Tue, 26 Mar 2013 19:28:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s0907; t=1364351298; bh=/lDktfbuDFDem90t+xTV08ASd40Wh2sbZsbMVJIHi/Y=; h=X-QQ-mid:Received:X-QQ-SSF:Date:From:To:Reply-To:Subject: X-Priority:X-Has-Attach:X-Mailer:Mime-Version:Message-ID: Content-Type:X-QQ-FName:X-QQ-LocalIP; b=SEKwIoz5LTEVWAS4p+ehTqf1T+asjiItKunuc/MwIwAlEH7oIKIuYkOiPg9oiRBsR fiiCJGHLqsaQu9TLyYlDVvluaYd/Ak7/57X8kk2Uzds5cFq5wJUcVlB/ZwiAqh7
X-QQ-mid: esmtp11t1364351294t669t12689
Received: from WWW-337DD9F2496 (unknown [183.175.12.105]) by esmtp4.qq.com (ESMTP) with SMTP id 0 for <dtn-users@irtf.org>; Wed, 27 Mar 2013 10:28:05 +0800 (CST)
X-QQ-SSF: 01000000000000F0FxF00F000000000
Date: Wed, 27 Mar 2013 10:28:21 +0800
From: jx <shepherd0309@qq.com>
To: =?gb2312?B?b25lzNbC29fp?= <dtn-users@irtf.org>
X-Priority: 3
X-Has-Attach: no
X-Mailer: Foxmail 7.0.1.92[cn]
Mime-Version: 1.0
Message-ID: <201303271028118907555@qq.com>
Content-Type: multipart/alternative; boundary="----=_001_NextPart285676358533_=----"
X-QQ-FName: 97E6C03F57324BF7AB1519F68D62D349
X-QQ-LocalIP: 163.177.66.155
Subject: [dtn-users] sth about the incentive mechanism
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: shepherd0309 <shepherd0309@qq.com>
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Wed, 27 Mar 2013 02:28:22 -0000

This is a multi-part message in MIME format.

------=_001_NextPart285676358533_=----
Content-Type: text/plain;
	charset="gb2312"
Content-Transfer-Encoding: base64

SGksIGFsbCwNCg0KSXMgdGhlcmUgYW55IG9uZSB3aG8gaGF2ZSBpbXBsZW1lbXRlZCBzb21lIGlu
Y2VudGl2ZSBtZWNoYW5pc21zIG9mIERUTiA/IGlmIHNvIGNhbiB5b3Ugc2VuZCBtZSB0aGUgc2Ny
aXB0Pw0KDQoNCg0KDQp3aXRoIHJlZ2FyZHMhDQoNCkppYW5nWGlu

------=_001_NextPart285676358533_=----
Content-Type: text/html;
	charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Dgb2312" http-equiv=3DContent-Type>
<STYLE>
BLOCKQUOTE {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
}
OL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
UL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
P {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
BODY {
	LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 1=
0.5pt
}
</STYLE>

<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.19403"></HEAD>
<BODY style=3D"MARGIN: 10px">
<DIV>Hi, all,</DIV>
<DIV>&nbsp;</DIV>
<DIV>Is there any one who have implememted some incentive mechanisms of DT=
N ? if=20
so can you send me the script?</DIV>
<DIV>&nbsp;</DIV>
<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
=3D1>

<DIV><SPAN>
<DIV><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 10.5pt">wit=
h&nbsp;regards!</SPAN></DIV>
<DIV><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 10.5pt"></S=
PAN>&nbsp;</DIV>
<DIV><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 10.5pt">Jia=
ngXin</SPAN></DIV></SPAN></DIV></BODY></HTML>

------=_001_NextPart285676358533_=------




From shepherd0309@qq.com  Tue Mar 26 19:32:59 2013
Return-Path: <shepherd0309@qq.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 66D4221F8548 for <dtn-users@ietfa.amsl.com>; Tue, 26 Mar 2013 19:32:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.864
X-Spam-Level: **
X-Spam-Status: No, score=2.864 tagged_above=-999 required=5 tests=[AWL=-0.190,  BAYES_60=1, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, MIME_BASE64_TEXT=1.753]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pDQVUSRPIBFW for <dtn-users@ietfa.amsl.com>; Tue, 26 Mar 2013 19:32:58 -0700 (PDT)
Received: from smtpbg297.qq.com (smtpbg297.qq.com [184.105.67.100]) by ietfa.amsl.com (Postfix) with SMTP id D8F4E21F850C for <dtn-users@irtf.org>; Tue, 26 Mar 2013 19:32:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s0907; t=1364351575; bh=ibA6heCbzw6D3Zs2irmKvYu1o/WAyfi8MzMjSNH4Txo=; h=X-QQ-mid:Received:X-QQ-SSF:Date:From:To:Reply-To:Subject: X-Priority:X-Has-Attach:X-Mailer:Mime-Version:Message-ID: Content-Type:X-QQ-FName:X-QQ-LocalIP; b=R9GkxtTm3GJPE9KquK4LGiaP8ONi45CqWvrZRemK9LiwPQnN4W9LPSkWQxUfYcJ7Q fJ38DL0fEq1q3/tFLUQz3as5Ev8Yke0ntveKBilEbEU3FxZ1KCtM1zV+Z3x40RB
X-QQ-mid: esmtp26t1364351572t720t27612
Received: from WWW-337DD9F2496 (unknown [183.175.12.105]) by esmtp4.qq.com (ESMTP) with SMTP id 0 for <dtn-users@irtf.org>; Wed, 27 Mar 2013 10:32:35 +0800 (CST)
X-QQ-SSF: 01000000000000F0FxF00F000000000
Date: Wed, 27 Mar 2013 10:32:58 +0800
From: jx <shepherd0309@qq.com>
To: =?gb2312?B?b25lzNbC29fp?= <dtn-users@irtf.org>
X-Priority: 3
X-Has-Attach: no
X-Mailer: Foxmail 7.0.1.92[cn]
Mime-Version: 1.0
Message-ID: <201303271032294689886@qq.com>
Content-Type: multipart/alternative; boundary="----=_001_NextPart856515735337_=----"
X-QQ-FName: 3291A336549E4C07BCEBBF395DD6F314
X-QQ-LocalIP: 58.250.134.100
Subject: [dtn-users] Change the map of ONE
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: =?gb2312?B?0MfT7w==?= <shepherd0309@qq.com>
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Wed, 27 Mar 2013 02:32:59 -0000

This is a multi-part message in MIME format.

------=_001_NextPart856515735337_=----
Content-Type: text/plain;
	charset="gb2312"
Content-Transfer-Encoding: base64

SGksIGFsbCwNCg0KSWYgSSB3YW50IHRvIGNoYW5nZSB0aGUgbWFwIG9mIE9ORSAsaG93IGNvdWxk
IEkgaW1wbGVtZW50IGl0ID8gIENvdWxkIHlvdSBoZWxwIG1lID8NCg0KDQoNCg0Kd2l0aCByZWdh
cmRzIQ0KDQpKaWFuZ1hpbg==

------=_001_NextPart856515735337_=----
Content-Type: text/html;
	charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Dgb2312" http-equiv=3DContent-Type>
<STYLE>
BLOCKQUOTE {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
}
OL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
UL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
P {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
BODY {
	LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 1=
0.5pt
}
</STYLE>

<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.19403"></HEAD>
<BODY style=3D"MARGIN: 10px">
<DIV>Hi, all,</DIV>
<DIV>&nbsp;</DIV>
<DIV>If I want to change the map of ONE ,how could I implement it ?&nbsp; =
Could=20
you help me ?</DIV>
<DIV>&nbsp;</DIV>
<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
=3D1>

<DIV><SPAN>
<DIV><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 10.5pt">wit=
h&nbsp;regards!</SPAN></DIV>
<DIV><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 10.5pt"></S=
PAN>&nbsp;</DIV>
<DIV><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 10.5pt">Jia=
ngXin</SPAN></DIV></SPAN></DIV></BODY></HTML>

------=_001_NextPart856515735337_=------




From yuanp1990@163.com  Wed Mar 27 04:08:24 2013
Return-Path: <yuanp1990@163.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DB3EA21F8F06 for <dtn-users@ietfa.amsl.com>; Wed, 27 Mar 2013 04:08:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.755
X-Spam-Level: *
X-Spam-Status: No, score=1.755 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, MIME_BASE64_TEXT=1.753]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cc9LI3kZe1ur for <dtn-users@ietfa.amsl.com>; Wed, 27 Mar 2013 04:08:24 -0700 (PDT)
Received: from m50-133.163.com (m50-133.163.com [123.125.50.133]) by ietfa.amsl.com (Postfix) with ESMTP id C4F8521F8EE1 for <dtn-users@irtf.org>; Wed, 27 Mar 2013 04:08:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Received:Date:From:To:Reply-To:Subject:Mime-Version: Message-ID:Content-Type; bh=pdEzipJbUUVsZg123jViktcGjqEJ2UZlmkQ2 /G60k0E=; b=EFHiV7qU8eEy3rzf+yvAzHNxMUpX7XcK5SzsCjSw2mYGrhkGHGUL rP0GgcacMpHV8jk5uwwEDH0kvcYPAxW1YF91q5r/5pZgyxyFGHOYrlqbkHGk/7de Yd+aI759cW4ObcbsSj9F51Wjb0jNGP9JVdqz+mPKnsL2Ke0fQy1nSf4=
Received: from ghost-PC (unknown [219.223.240.27]) by smtp3 (Coremail) with SMTP id DdGowEB5WUci01JR3U56AA--.14752S2; Wed, 27 Mar 2013 19:08:21 +0800 (CST)
Date: Wed, 27 Mar 2013 19:08:10 +0800
From: yuanp1990 <yuanp1990@163.com>
To: "dtn-users maillist" <dtn-users@irtf.org>,  dtn-users <dtn-users@irtf.org>, dtn-users <dtn-users@irtf.org>,  dtn-users <dtn-users@irtf.org>, dtn-users <dtn-users@irtf.org>
X-Priority: 3
X-Has-Attach: no
X-Mailer: Foxmail 7.0.1.92[cn]
Mime-Version: 1.0
Message-ID: <201303271908080305805@163.com>
Content-Type: multipart/alternative; boundary="----=_001_NextPart510825236864_=----"
X-CM-TRANSID: DdGowEB5WUci01JR3U56AA--.14752S2
X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73 VFW2AGmfu7bjvjm3AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxUrjjyUUUUU
X-CM-SenderInfo: h1xd01arzziqqrwthudrp/1tbiQAPs71EABxySBwAAsf
Subject: [dtn-users] Install DTN2 with External Convergence Layer
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: yuanp1990 <yuanp1990@163.com>
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Wed, 27 Mar 2013 11:08:25 -0000

This is a multi-part message in MIME format.

------=_001_NextPart510825236864_=----
Content-Type: text/plain;
	charset="gb2312"
Content-Transfer-Encoding: base64

SGkgYWxsLA0KSSB3YW50IHRvIGNvbm5lY3QgT05FIGFuZCBEVE4yLCBoYXMgYW55b25lIGRvbmUg
dGhpcyBiZWZvcmU/IElzIHRoZXJlIGFueSBzcGVjaWFsIGlzc3VlcyBJIHNob3VsZCBwYXkgYXR0
ZW50aW9uIHRvPw0KUmVnYXJkcyENCg0KDQoNCnl1YW5wMTk5MA==

------=_001_NextPart510825236864_=----
Content-Type: text/html;
	charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Dgb2312" http-equiv=3DContent-Type>
<STYLE>
BLOCKQUOTE {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
}
OL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
UL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
P {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
BODY {
	LINE-HEIGHT: 1.5; FONT-FAMILY: =CE=A2=C8=ED=D1=C5=BA=DA; COLOR: #000000; =
FONT-SIZE: 10.5pt
}
</STYLE>

<META name=3DGENERATOR content=3D"MSHTML 8.00.7600.17256"></HEAD>
<BODY style=3D"MARGIN: 10px">
<DIV>Hi all,</DIV>
<DIV>I want to connect ONE and DTN2, has anyone done this before? Is there=
 any=20
special issues I should pay attention to?</DIV>
<DIV>Regards!</DIV>
<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
=3D1>

<DIV><SPAN>yuanp1990</SPAN></DIV></BODY></HTML>

------=_001_NextPart510825236864_=------



From shepherd0309@qq.com  Wed Mar 27 08:21:17 2013
Return-Path: <shepherd0309@qq.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5221121F8FF9 for <dtn-users@ietfa.amsl.com>; Wed, 27 Mar 2013 08:21:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 3.935
X-Spam-Level: ***
X-Spam-Status: No, score=3.935 tagged_above=-999 required=5 tests=[AWL=0.881,  BAYES_60=1, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, MIME_BASE64_TEXT=1.753]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UEypugJhCpQr for <dtn-users@ietfa.amsl.com>; Wed, 27 Mar 2013 08:21:16 -0700 (PDT)
Received: from smtpbg297.qq.com (smtpbg297.qq.com [184.105.67.100]) by ietfa.amsl.com (Postfix) with SMTP id B1E1521F8E69 for <dtn-users@irtf.org>; Wed, 27 Mar 2013 08:21:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s0907; t=1364397673; bh=RVOZJnBZa39kG/Pj3XFhnhVwmlyMFH/KUT+5vwVQx0I=; h=X-QQ-mid:Received:X-QQ-SSF:Date:From:To:Reply-To:Subject: X-Priority:X-Has-Attach:X-Mailer:Mime-Version:Message-ID: Content-Type:X-QQ-FName:X-QQ-LocalIP; b=Aa4bOgsWeiuWkCBTo+tJmnHil+UMP2tOX4ZxDkZt8M0HieQtEHzujFvgfidIazqx9 E7pqx3B5EusnwI0KlU131KdsxuaO3ob92efBSRAmaNaZd7tCKgBG2WiKne2iEeW
X-QQ-mid: esmtp15t1364397669t609t29601
Received: from WWW-337DD9F2496 (unknown [58.18.168.125]) by esmtp5.qq.com (ESMTP) with SMTP id 0 for <dtn-users@irtf.org>; Wed, 27 Mar 2013 23:21:01 +0800 (CST)
X-QQ-SSF: 01000000000000F0FxF00F000000000
Date: Wed, 27 Mar 2013 23:21:15 +0800
From: jiangxin <shepherd0309@qq.com>
To: =?gb2312?B?b25lzNbC29fp?= <dtn-users@irtf.org>
X-Priority: 3
X-Has-Attach: no
X-Mailer: Foxmail 7.0.1.92[cn]
Mime-Version: 1.0
Message-ID: <201303272321011714652@qq.com>
Content-Type: multipart/alternative; boundary="----=_001_NextPart830858842135_=----"
X-QQ-FName: 91F66CB3131145969CBADB4E5172E0D5
X-QQ-LocalIP: 58.250.132.20
Subject: [dtn-users] sth about the DTN mechanism
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: =?gb2312?B?0MfT7w==?= <shepherd0309@qq.com>
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Wed, 27 Mar 2013 15:21:17 -0000

This is a multi-part message in MIME format.

------=_001_NextPart830858842135_=----
Content-Type: text/plain;
	charset="gb2312"
Content-Transfer-Encoding: base64

SGkgYWxsLCBJIHdhbnQgdG8gaW1wbGV0ZSBhIERUTiBpbmNlbnRpdmUgbWVjaGFuaXNtIG9uIE9O
RSAuQnV0IEkgaGF2ZSBubyBpZGVhIGFib3V0IGl0ICwgaXMgdGhlcmUgYW55IG9uZSAgd2hvIGNh
biBoZWxwIG1lIHdpdGggdGhpcyB0YXNrID8gV2Ugc2hhcmUgdGhlIHJlc3VsdHMgdG9nZXRoZXIh
DQoNCg0KDQoNCndpdGggcmVnYXJkcyENCg0KSmlhbmdYaW4=

------=_001_NextPart830858842135_=----
Content-Type: text/html;
	charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Dgb2312" http-equiv=3DContent-Type>
<STYLE>
BLOCKQUOTE {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
}
OL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
UL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
P {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
BODY {
	LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 1=
0.5pt
}
</STYLE>

<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.19403"></HEAD>
<BODY style=3D"MARGIN: 10px">
<DIV>Hi all, I want to implete a DTN incentive mechanism on ONE .But I hav=
e no=20
idea about it , is there any one&nbsp; who can help me with this task ? We=
 share=20
the results together!</DIV>
<DIV>&nbsp;</DIV>
<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
=3D1>

<DIV><SPAN>
<DIV><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 10.5pt">wit=
h&nbsp;regards!</SPAN></DIV>
<DIV><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 10.5pt"></S=
PAN>&nbsp;</DIV>
<DIV><SPAN=20
style=3D"FONT-FAMILY: =CB=CE=CC=E5; COLOR: #000000; FONT-SIZE: 10.5pt">Jia=
ngXin</SPAN></DIV></SPAN></DIV></BODY></HTML>

------=_001_NextPart830858842135_=------




From yuanp1990@163.com  Thu Mar 28 01:42:02 2013
Return-Path: <yuanp1990@163.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5026321F9012 for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 01:42:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.878
X-Spam-Level: 
X-Spam-Status: No, score=0.878 tagged_above=-999 required=5 tests=[AWL=0.876,  BAYES_50=0.001, WEIRD_PORT=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HVsDtUK6IbNv for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 01:42:01 -0700 (PDT)
Received: from m50-133.163.com (m50-133.163.com [123.125.50.133]) by ietfa.amsl.com (Postfix) with ESMTP id 429F921F8FF8 for <dtn-users@irtf.org>; Thu, 28 Mar 2013 01:41:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Received:Subject:From:To:Content-Type:Date: Message-ID:Mime-Version:Content-Transfer-Encoding; bh=IGakYjXC8H d7wqoz/5Z6r78jEGdc+dzD4PEy3NlM6zA=; b=WyJA783kQFjuRN6cO2sIkD9s7F vY67xxDo4XSbSEfLyYs+NX7mg/MUjxfK864v4DtvZDgL4UL0ngLx/kFlmoc6MlL4 uVDxdtq7HzeG/98gXoltu7x3oVQxngAKPWVnQbMI+utZrvWrrv7DKuQyaIdesxvG bBqfq8Q6IYPH1D90w=
Received: from [192.168.119.128] (unknown [219.223.240.27]) by smtp3 (Coremail) with SMTP id DdGowEAZ+1I2AlRRpmKxAA--.1411S2; Thu, 28 Mar 2013 16:41:41 +0800 (CST)
From: yuanp <yuanp1990@163.com>
To: dtn-users@irtf.org
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 28 Mar 2013 16:41:20 +0800
Message-ID: <1364460080.18758.106.camel@yuanp-desktop>
Mime-Version: 1.0
X-Mailer: Evolution 2.28.3 
Content-Transfer-Encoding: 8bit
X-CM-TRANSID: DdGowEAZ+1I2AlRRpmKxAA--.1411S2
X-Coremail-Antispam: 1Uf129KBjvJXoW7CrW5Wr4kKw4kKFyfAry8AFb_yoW8Cr1DpF yfK3WDt3yrJF15AwnxX39Yv348CFZYkw10kFy5CrnFyFWav3Z7uw1DAw1rKr40grW8ur1a vw4UGay09rs8ArJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07UkhL5UUUUU=
X-CM-SenderInfo: h1xd01arzziqqrwthudrp/xtbBUQft71D+LONG7gAAsd
Subject: [dtn-users] Error in compiling DTN2
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Mar 2013 08:42:02 -0000

Hi all,
I am trying to install DTN2 in Ubuntu 10.04, but meet some error. The
vision of dtn2 is dtn-2.9.0x. I have also installed oasys-1.6.0x,
tcl8.5.10, db-5.1.29 and xerces-c-src_2_8_0.

When configure dtn2, I receive some error:

../servlib/bundling/GbofId.h:114: error: ‘dtn::EndpointID
dtn::GbofId::source_’ is private
conv_layers/ExternalConvergenceLayer.cc:1405: error: within this context
../servlib/bundling/GbofId.h:115: error: ‘dtn::BundleTimestamp
dtn::GbofId::creation_ts_’ is private
conv_layers/ExternalConvergenceLayer.cc:1406: error: within this context
../servlib/bundling/GbofId.h:115: error: ‘dtn::BundleTimestamp
dtn::GbofId::creation_ts_’ is private
conv_layers/ExternalConvergenceLayer.cc:1408: error: within this context
../servlib/bundling/GbofId.h:116: error: ‘bool
dtn::GbofId::is_fragment_’ is private
conv_layers/ExternalConvergenceLayer.cc:1410: error: within this context
../servlib/bundling/GbofId.h:117: error: ‘u_int32_t
dtn::GbofId::frag_length_’ is private
conv_layers/ExternalConvergenceLayer.cc:1413: error: within this context
../servlib/bundling/GbofId.h:117: error: ‘u_int32_t
dtn::GbofId::frag_length_’ is private
conv_layers/ExternalConvergenceLayer.cc:1415: error: within this context
../servlib/bundling/GbofId.h:118: error: ‘u_int32_t
dtn::GbofId::frag_offset_’ is private
conv_layers/ExternalConvergenceLayer.cc:1418: error: within this context
../servlib/bundling/GbofId.h:118: error: ‘u_int32_t
dtn::GbofId::frag_offset_’ is private
conv_layers/ExternalConvergenceLayer.cc:1420: error: within this context

Has anyone met this error? I am greatly appreciated for some help.

Regards!



From elwynd@folly.org.uk  Thu Mar 28 05:59:23 2013
Return-Path: <elwynd@folly.org.uk>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D197321F8ED5 for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 05:59:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.669
X-Spam-Level: 
X-Spam-Status: No, score=-1.669 tagged_above=-999 required=5 tests=[AWL=0.929,  BAYES_00=-2.599, WEIRD_PORT=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iEWTtXve4Z10 for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 05:59:23 -0700 (PDT)
Received: from b.painless.aa.net.uk (b.painless.aa.net.uk [IPv6:2001:8b0:0:30::51bb:1e34]) by ietfa.amsl.com (Postfix) with ESMTP id 1F93521F8EC9 for <dtn-users@irtf.org>; Thu, 28 Mar 2013 05:59:23 -0700 (PDT)
Received: from mightyatom.folly.org.uk ([81.187.254.250]) by b.painless.aa.net.uk with esmtp (Exim 4.72) (envelope-from <elwynd@folly.org.uk>) id 1ULCQD-0006QX-Ej; Thu, 28 Mar 2013 12:59:13 +0000
From: Elwyn Davies <elwynd@folly.org.uk>
To: yuanp <yuanp1990@163.com>
In-Reply-To: <1364460080.18758.106.camel@yuanp-desktop>
References: <1364460080.18758.106.camel@yuanp-desktop>
Content-Type: text/plain; charset="iso-8859-7"
Organization: Folly Consulting
Date: Thu, 28 Mar 2013 12:55:29 +0000
Message-Id: <1364475329.23866.4747.camel@mightyatom>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.3 
Content-Transfer-Encoding: quoted-printable
Cc: dtn-users@irtf.org
Subject: Re: [dtn-users] Error in compiling DTN2
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Mar 2013 12:59:24 -0000

Hi.

It looks as if you have turned on something that hasn't been used in a
while.  If you look at servlib/GbofId.h you will see that it isn't
surprising that you get these compilation errors. =20

This function needs to be rewritten:
> BundleRef
> ECLLinkResource::get_outgoing_bundle(clmessage::bundle_attributes bundle_=
attribs)

to use the GbofId constructor:
> GbofId(EndpointID      source,
>            BundleTimestamp creation_ts,
>            bool            is_fragment,
>            u_int32_t       frag_length,
>            u_int32_t       frag_offset);

rather than trying to access the private data items in the GbofId instance.

I don't think the External Convergence Layer has seen much use for a
while - I presume you have a use for it - otherwise just turn it off
during configuration.  Please send in a patch if you succeed in fixing
it (it isn't a big problem).  If not I guess we'll just file the bug for
whan somebody else has a few minutes to fix it.

Regards,
Elwyn

On Thu, 2013-03-28 at 16:41 +0800, yuanp wrote:
> Hi all,
> I am trying to install DTN2 in Ubuntu 10.04, but meet some error. The
> vision of dtn2 is dtn-2.9.0x. I have also installed oasys-1.6.0x,
> tcl8.5.10, db-5.1.29 and xerces-c-src_2_8_0.
>=20
> When configure dtn2, I receive some error:
>=20
> ../servlib/bundling/GbofId.h:114: error: =A1dtn::EndpointID
> dtn::GbofId::source_=A2 is private
> conv_layers/ExternalConvergenceLayer.cc:1405: error: within this context
> ../servlib/bundling/GbofId.h:115: error: =A1dtn::BundleTimestamp
> dtn::GbofId::creation_ts_=A2 is private
> conv_layers/ExternalConvergenceLayer.cc:1406: error: within this context
> ../servlib/bundling/GbofId.h:115: error: =A1dtn::BundleTimestamp
> dtn::GbofId::creation_ts_=A2 is private
> conv_layers/ExternalConvergenceLayer.cc:1408: error: within this context
> ../servlib/bundling/GbofId.h:116: error: =A1bool
> dtn::GbofId::is_fragment_=A2 is private
> conv_layers/ExternalConvergenceLayer.cc:1410: error: within this context
> ../servlib/bundling/GbofId.h:117: error: =A1u_int32_t
> dtn::GbofId::frag_length_=A2 is private
> conv_layers/ExternalConvergenceLayer.cc:1413: error: within this context
> ../servlib/bundling/GbofId.h:117: error: =A1u_int32_t
> dtn::GbofId::frag_length_=A2 is private
> conv_layers/ExternalConvergenceLayer.cc:1415: error: within this context
> ../servlib/bundling/GbofId.h:118: error: =A1u_int32_t
> dtn::GbofId::frag_offset_=A2 is private
> conv_layers/ExternalConvergenceLayer.cc:1418: error: within this context
> ../servlib/bundling/GbofId.h:118: error: =A1u_int32_t
> dtn::GbofId::frag_offset_=A2 is private
> conv_layers/ExternalConvergenceLayer.cc:1420: error: within this context
>=20
> Has anyone met this error? I am greatly appreciated for some help.
>=20
> Regards!
>=20
>=20
> _______________________________________________
> dtn-users mailing list
> dtn-users@irtf.org
> https://www.irtf.org/mailman/listinfo/dtn-users


From david.a.zoller@nasa.gov  Thu Mar 28 06:01:20 2013
Return-Path: <david.a.zoller@nasa.gov>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BEC2A21F88B0 for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 06:01:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.597
X-Spam-Level: 
X-Spam-Status: No, score=-2.597 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, WEIRD_PORT=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id a7lDylVKIHus for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 06:01:20 -0700 (PDT)
Received: from ndmsnpf03.ndc.nasa.gov (NDMSNPF03.ndc.nasa.gov [IPv6:2001:4d0:8302:1100::103]) by ietfa.amsl.com (Postfix) with ESMTP id 8AFF521F87F5 for <dtn-users@irtf.org>; Thu, 28 Mar 2013 06:01:19 -0700 (PDT)
Received: from ndmsppt104.ndc.nasa.gov (NDMSPPT104.ndc.nasa.gov [198.117.0.69]) by ndmsnpf03.ndc.nasa.gov (Postfix) with ESMTP id DD8DE2D80CA; Thu, 28 Mar 2013 08:01:18 -0500 (CDT)
Received: from ndmshub06.ndc.nasa.gov (ndmshub06.ndc.nasa.gov [198.117.2.165]) by ndmsppt104.ndc.nasa.gov (8.14.5/8.14.5) with ESMTP id r2SD1IPw022535; Thu, 28 Mar 2013 08:01:18 -0500
Received: from NDMSSCC05.ndc.nasa.gov ([198.117.2.174]) by ndmshub06.ndc.nasa.gov ([198.117.2.165]) with mapi; Thu, 28 Mar 2013 08:01:18 -0500
From: "Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]" <david.a.zoller@nasa.gov>
To: yuanp <yuanp1990@163.com>, "dtn-users@irtf.org" <dtn-users@irtf.org>
Date: Thu, 28 Mar 2013 08:01:18 -0500
Thread-Topic: [dtn-users] Error in compiling DTN2  (2.9.0x - not the official version)
Thread-Index: Ac4rtCvUpWsEXK+5SXi0CujolDw+gg==
Message-ID: <04E3D99A62496240BCD6A576813E6E31E0C4C93951@NDMSSCC05.ndc.nasa.gov>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: multipart/alternative; boundary="_000_04E3D99A62496240BCD6A576813E6E31E0C4C93951NDMSSCC05ndcn_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8626, 1.0.431, 0.0.0000 definitions=2013-03-28_04:2013-03-28, 2013-03-28, 1970-01-01 signatures=0
Subject: Re: [dtn-users] Error in compiling DTN2 (2.9.0x - not the official version)
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Mar 2013 13:01:20 -0000

--_000_04E3D99A62496240BCD6A576813E6E31E0C4C93951NDMSSCC05ndcn_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGksDQoNCkJlIHdhcm5lZCB0aGF0IHRoaXMgaXMgbm90IGFuIG9mZmljaWFsIHZlcnNpb24sIGJ1
dCB0aGFua3MgZm9yIHRyeWluZyBkdG4tMi45LjB4LiBJIGJlbGlldmUgdGhlIGNoYW5nZXMgYmVs
b3cgd2lsbCBmaXggdGhlIGVycm9ycyBidXQgaGF2ZSBub3QgYmVlbiBhYmxlIHRvIGNvbXBpbGUg
aXQgeWV0LiBJIGFtIGxvb2tpbmcgaW50byBpbnN0YWxsaW5nIFhlcmNlcyBDIHNvIHRoYXQgSSBj
YW4gYnVpbGQgdGhlIGV4dGVybmFsIGNvbnZlcmdlbmNlIGxheWVyIGFsc28uDQoNClJlZ2FyZHMs
DQoNCkRaDQoNCg0KDQoNCg0KSW4gRXh0ZXJuYWxDb252ZXJnZW5jZUxheWVyLmNjLCBnZXRfb3V0
Z29pbmdfYnVuZGxlIGlzIGRlZmluZWQgb24gbGluZSAxNDAyIGFuZCBuZWVkcyB0byBiZSB1cGRh
dGVkOg0KDQoNCg0KDQoNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpCdW5kbGVSZWYNCg0KRUNMTGlua1Jl
c291cmNlOjpnZXRfb3V0Z29pbmdfYnVuZGxlKGNsbWVzc2FnZTo6YnVuZGxlX2F0dHJpYnV0ZXMg
YnVuZGxlX2F0dHJpYnMpDQoNCnsNCg0KLy8gICAgR2JvZklkIGdib2ZfaWQ7DQoNCi8vICAgIGdi
b2ZfaWQuc291cmNlXyA9IEVuZHBvaW50SUQoIGJ1bmRsZV9hdHRyaWJzLnNvdXJjZV9laWQoKSAp
Ow0KDQovLyAgICBnYm9mX2lkLmNyZWF0aW9uX3RzXy5zZWNvbmRzXyA9DQoNCi8vICAgICAgICAg
ICAgKHVfaW50MzJfdClidW5kbGVfYXR0cmlicy50aW1lc3RhbXBfc2Vjb25kcygpOw0KDQovLyAg
ICBnYm9mX2lkLmNyZWF0aW9uX3RzXy5zZXFub18gPQ0KDQovLyAgICAgICAgICAgICh1X2ludDMy
X3QpYnVuZGxlX2F0dHJpYnMudGltZXN0YW1wX3NlcXVlbmNlKCk7DQoNCi8vICAgIGdib2ZfaWQu
aXNfZnJhZ21lbnRfID0gYnVuZGxlX2F0dHJpYnMuaXNfZnJhZ21lbnQoKTsNCg0KLy8NCg0KLy8g
ICAgaWYgKCBidW5kbGVfYXR0cmlicy5mcmFnbWVudF9sZW5ndGgoKS5wcmVzZW50KCkgKQ0KDQov
LyAgICAgICAgZ2JvZl9pZC5mcmFnX2xlbmd0aF8gPSAodV9pbnQzMl90KWJ1bmRsZV9hdHRyaWJz
LmZyYWdtZW50X2xlbmd0aCgpLmdldCgpOw0KDQovLyAgICBlbHNlDQoNCi8vICAgICAgICBnYm9m
X2lkLmZyYWdfbGVuZ3RoXyA9IDA7DQoNCi8vDQoNCi8vICAgIGlmICggYnVuZGxlX2F0dHJpYnMu
ZnJhZ21lbnRfbGVuZ3RoKCkucHJlc2VudCgpICkNCg0KLy8gICAgICAgIGdib2ZfaWQuZnJhZ19v
ZmZzZXRfID0gKHVfaW50MzJfdClidW5kbGVfYXR0cmlicy5mcmFnbWVudF9vZmZzZXQoKS5nZXQo
KTsNCg0KLy8gICAgZWxzZQ0KDQovLyAgICAgICAgZ2JvZl9pZC5mcmFnX29mZnNldF8gPSAwOw0K
DQoNCg0KDQoNCiAgICBHYm9mSWQgZ2JvZl9pZDsNCg0KICAgIGdib2ZfaWQubXV0YWJsZV9zb3Vy
Y2UoKS0+YXNzaWduKCBFbmRwb2ludElEKCBidW5kbGVfYXR0cmlicy5zb3VyY2VfZWlkKCkgKSAp
Ow0KDQogICAgZ2JvZl9pZC5tdXRhYmxlX2NyZWF0aW9uX3RzKCktPnNlY29uZHNfID0gKHVfaW50
MzJfdClidW5kbGVfYXR0cmlicy50aW1lc3RhbXBfc2Vjb25kcygpOw0KDQogICAgZ2JvZl9pZC5t
dXRhYmxlX2NyZWF0aW9uX3RzKCktPnNlcW5vXyA9ICh1X2ludDMyX3QpYnVuZGxlX2F0dHJpYnMu
dGltZXN0YW1wX3NlcXVlbmNlKCk7DQoNCiAgICBnYm9mX2lkLnNldF9pc19mcmFnbWVudCggYnVu
ZGxlX2F0dHJpYnMuaXNfZnJhZ21lbnQoKSApOw0KDQogICAgaWYgKCBidW5kbGVfYXR0cmlicy5m
cmFnbWVudF9sZW5ndGgoKS5wcmVzZW50KCkgKQ0KDQogICAgICAgIGdib2ZfaWQuc2V0X2ZyYWdf
bGVuZ3RoKCAodV9pbnQzMl90KWJ1bmRsZV9hdHRyaWJzLmZyYWdtZW50X2xlbmd0aCgpLmdldCgp
ICk7DQoNCiAgICBlbHNlDQoNCiAgICAgICAgZ2JvZl9pZC5zZXRfZnJhZ19sZW5ndGgoMCk7DQoN
Cg0KDQogICAgaWYgKCBidW5kbGVfYXR0cmlicy5mcmFnbWVudF9sZW5ndGgoKS5wcmVzZW50KCkg
KQ0KDQogICAgICAgIGdib2ZfaWQuc2V0X2ZyYWdfb2Zmc2V0KCAodV9pbnQzMl90KWJ1bmRsZV9h
dHRyaWJzLmZyYWdtZW50X29mZnNldCgpLmdldCgpICk7DQoNCiAgICBlbHNlDQoNCiAgICAgICAg
Z2JvZl9pZC5zZXRfZnJhZ19vZmZzZXQoMCk7DQoNCg0KDQoNCg0KICAgIHJldHVybiBvdXRnb2lu
Z19idW5kbGVzXy5maW5kKGdib2ZfaWQpOw0KDQp9DQoNCg0KDQoNCg0KRGF2aWQgWm9sbGVyDQoN
CkNPTFNBIENvcnBvcmF0aW9uDQoNCk1hcnNoYWxsIFNwYWNlIEZsaWdodCBDZW50ZXINCg0KDQoN
Ci0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBkdG4tdXNlcnMtYm91bmNlc0BpcnRm
Lm9yZyBbbWFpbHRvOmR0bi11c2Vycy1ib3VuY2VzQGlydGYub3JnXSBPbiBCZWhhbGYgT2YgeXVh
bnANClNlbnQ6IFRodXJzZGF5LCBNYXJjaCAyOCwgMjAxMyAzOjQxIEFNDQpUbzogZHRuLXVzZXJz
QGlydGYub3JnDQpTdWJqZWN0OiBbZHRuLXVzZXJzXSBFcnJvciBpbiBjb21waWxpbmcgRFROMg0K
DQoNCg0KSGkgYWxsLA0KDQpJIGFtIHRyeWluZyB0byBpbnN0YWxsIERUTjIgaW4gVWJ1bnR1IDEw
LjA0LCBidXQgbWVldCBzb21lIGVycm9yLiBUaGUgdmlzaW9uIG9mIGR0bjIgaXMgZHRuLTIuOS4w
eC4gSSBoYXZlIGFsc28gaW5zdGFsbGVkIG9hc3lzLTEuNi4weCwgdGNsOC41LjEwLCBkYi01LjEu
MjkgYW5kIHhlcmNlcy1jLXNyY18yXzhfMC4NCg0KDQoNCldoZW4gY29uZmlndXJlIGR0bjIsIEkg
cmVjZWl2ZSBzb21lIGVycm9yOg0KDQoNCg0KLi4vc2VydmxpYi9idW5kbGluZy9HYm9mSWQuaDox
MTQ6IGVycm9yOiDigJhkdG46OkVuZHBvaW50SUQgZHRuOjpHYm9mSWQ6OnNvdXJjZV/igJkgaXMg
cHJpdmF0ZQ0KDQpjb252X2xheWVycy9FeHRlcm5hbENvbnZlcmdlbmNlTGF5ZXIuY2M6MTQwNTog
ZXJyb3I6IHdpdGhpbiB0aGlzIGNvbnRleHQNCg0KLi4vc2VydmxpYi9idW5kbGluZy9HYm9mSWQu
aDoxMTU6IGVycm9yOiDigJhkdG46OkJ1bmRsZVRpbWVzdGFtcCBkdG46Okdib2ZJZDo6Y3JlYXRp
b25fdHNf4oCZIGlzIHByaXZhdGUNCg0KY29udl9sYXllcnMvRXh0ZXJuYWxDb252ZXJnZW5jZUxh
eWVyLmNjOjE0MDY6IGVycm9yOiB3aXRoaW4gdGhpcyBjb250ZXh0DQoNCi4uL3NlcnZsaWIvYnVu
ZGxpbmcvR2JvZklkLmg6MTE1OiBlcnJvcjog4oCYZHRuOjpCdW5kbGVUaW1lc3RhbXAgZHRuOjpH
Ym9mSWQ6OmNyZWF0aW9uX3RzX+KAmSBpcyBwcml2YXRlDQoNCmNvbnZfbGF5ZXJzL0V4dGVybmFs
Q29udmVyZ2VuY2VMYXllci5jYzoxNDA4OiBlcnJvcjogd2l0aGluIHRoaXMgY29udGV4dA0KDQou
Li9zZXJ2bGliL2J1bmRsaW5nL0dib2ZJZC5oOjExNjogZXJyb3I6IOKAmGJvb2wgZHRuOjpHYm9m
SWQ6OmlzX2ZyYWdtZW50X+KAmSBpcyBwcml2YXRlDQoNCmNvbnZfbGF5ZXJzL0V4dGVybmFsQ29u
dmVyZ2VuY2VMYXllci5jYzoxNDEwOiBlcnJvcjogd2l0aGluIHRoaXMgY29udGV4dA0KDQouLi9z
ZXJ2bGliL2J1bmRsaW5nL0dib2ZJZC5oOjExNzogZXJyb3I6IOKAmHVfaW50MzJfdCBkdG46Okdi
b2ZJZDo6ZnJhZ19sZW5ndGhf4oCZIGlzIHByaXZhdGUNCg0KY29udl9sYXllcnMvRXh0ZXJuYWxD
b252ZXJnZW5jZUxheWVyLmNjOjE0MTM6IGVycm9yOiB3aXRoaW4gdGhpcyBjb250ZXh0DQoNCi4u
L3NlcnZsaWIvYnVuZGxpbmcvR2JvZklkLmg6MTE3OiBlcnJvcjog4oCYdV9pbnQzMl90IGR0bjo6
R2JvZklkOjpmcmFnX2xlbmd0aF/igJkgaXMgcHJpdmF0ZQ0KDQpjb252X2xheWVycy9FeHRlcm5h
bENvbnZlcmdlbmNlTGF5ZXIuY2M6MTQxNTogZXJyb3I6IHdpdGhpbiB0aGlzIGNvbnRleHQNCg0K
Li4vc2VydmxpYi9idW5kbGluZy9HYm9mSWQuaDoxMTg6IGVycm9yOiDigJh1X2ludDMyX3QgZHRu
OjpHYm9mSWQ6OmZyYWdfb2Zmc2V0X+KAmSBpcyBwcml2YXRlDQoNCmNvbnZfbGF5ZXJzL0V4dGVy
bmFsQ29udmVyZ2VuY2VMYXllci5jYzoxNDE4OiBlcnJvcjogd2l0aGluIHRoaXMgY29udGV4dA0K
DQouLi9zZXJ2bGliL2J1bmRsaW5nL0dib2ZJZC5oOjExODogZXJyb3I6IOKAmHVfaW50MzJfdCBk
dG46Okdib2ZJZDo6ZnJhZ19vZmZzZXRf4oCZIGlzIHByaXZhdGUNCg0KY29udl9sYXllcnMvRXh0
ZXJuYWxDb252ZXJnZW5jZUxheWVyLmNjOjE0MjA6IGVycm9yOiB3aXRoaW4gdGhpcyBjb250ZXh0
DQoNCg0KDQpIYXMgYW55b25lIG1ldCB0aGlzIGVycm9yPyBJIGFtIGdyZWF0bHkgYXBwcmVjaWF0
ZWQgZm9yIHNvbWUgaGVscC4NCg0KDQoNClJlZ2FyZHMhDQoNCg0KDQoNCg0KX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCg0KZHRuLXVzZXJzIG1haWxpbmcg
bGlzdA0KDQpkdG4tdXNlcnNAaXJ0Zi5vcmc8bWFpbHRvOmR0bi11c2Vyc0BpcnRmLm9yZz4NCg0K
aHR0cHM6Ly93d3cuaXJ0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9kdG4tdXNlcnMNCg==

--_000_04E3D99A62496240BCD6A576813E6E31E0C4C93951NDMSSCC05ndcn_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6eD0idXJuOnNjaGVtYXMtbWljcm9z
b2Z0LWNvbTpvZmZpY2U6ZXhjZWwiIHhtbG5zOm09Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5j
b20vb2ZmaWNlLzIwMDQvMTIvb21tbCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1o
dG1sNDAiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD11dGYtOCI+PG1ldGEgbmFtZT1HZW5lcmF0b3IgY29udGVudD0iTWljcm9z
b2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPjxzdHlsZT48IS0tDQovKiBGb250IERlZmlu
aXRpb25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6
MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9y
bWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4t
Ym90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJy
aSIsInNhbnMtc2VyaWYiO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxl
LXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9
DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9y
aXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAu
TXNvUGxhaW5UZXh0LCBsaS5Nc29QbGFpblRleHQsIGRpdi5Nc29QbGFpblRleHQNCgl7bXNvLXN0
eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJQbGFpbiBUZXh0IENoYXIiOw0KCW1h
cmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJ
Zm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjt9DQpzcGFuLlBsYWluVGV4dENoYXIN
Cgl7bXNvLXN0eWxlLW5hbWU6IlBsYWluIFRleHQgQ2hhciI7DQoJbXNvLXN0eWxlLXByaW9yaXR5
Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJQbGFpbiBUZXh0IjsNCglmb250LWZhbWlseToiQ2FsaWJy
aSIsInNhbnMtc2VyaWYiO30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9y
dC1vbmx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7fQ0KQHBhZ2UgV29y
ZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBp
biAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwv
c3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJl
ZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNv
IDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0i
ZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT48L2hl
YWQ+PGJvZHkgbGFuZz1FTi1VUyBsaW5rPWJsdWUgdmxpbms9cHVycGxlPjxkaXYgY2xhc3M9V29y
ZFNlY3Rpb24xPjxwIGNsYXNzPU1zb1BsYWluVGV4dD5IaSw8bzpwPjwvbzpwPjwvcD48cCBjbGFz
cz1Nc29QbGFpblRleHQ+QmUgd2FybmVkIHRoYXQgdGhpcyBpcyBub3QgYW4gb2ZmaWNpYWwgdmVy
c2lvbiwgYnV0IHRoYW5rcyBmb3IgdHJ5aW5nIGR0bi0yLjkuMHguIEkgYmVsaWV2ZSB0aGUgY2hh
bmdlcyBiZWxvdyB3aWxsIGZpeCB0aGUgZXJyb3JzIGJ1dCBoYXZlIG5vdCBiZWVuIGFibGUgdG8g
Y29tcGlsZSBpdCB5ZXQuIEkgYW0gbG9va2luZyBpbnRvIGluc3RhbGxpbmcgWGVyY2VzIEMgc28g
dGhhdCBJIGNhbiBidWlsZCB0aGUgZXh0ZXJuYWwgY29udmVyZ2VuY2UgbGF5ZXIgYWxzby48bzpw
PjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+UmVnYXJkcyw8bzpwPjwvbzpwPjwvcD48
cCBjbGFzcz1Nc29QbGFpblRleHQ+RFo8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRl
eHQ+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxvOnA+Jm5ic3A7
PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD5JbiBFeHRlcm5hbENvbnZlcmdlbmNlTGF5
ZXIuY2MsIGdldF9vdXRnb2luZ19idW5kbGUgaXMgZGVmaW5lZCBvbiBsaW5lIDE0MDIgYW5kIG5l
ZWRzIHRvIGJlIHVwZGF0ZWQ6PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0Pjxv
OnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48bzpwPiZuYnNwOzwvbzpw
PjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtm
b250LWZhbWlseToiQ291cmllciBOZXciJz4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08bzpwPjwvbzpwPjwvc3Bh
bj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7
Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+QnVuZGxlUmVmPG86cD48L286cD48L3NwYW4+PC9w
PjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQt
ZmFtaWx5OiJDb3VyaWVyIE5ldyInPkVDTExpbmtSZXNvdXJjZTo6Z2V0X291dGdvaW5nX2J1bmRs
ZShjbG1lc3NhZ2U6OmJ1bmRsZV9hdHRyaWJ1dGVzIGJ1bmRsZV9hdHRyaWJzKTxvOnA+PC9vOnA+
PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5
LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz57PG86cD48L286cD48L3NwYW4+PC9wPjxw
IGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFt
aWx5OiJDb3VyaWVyIE5ldyInPi8vwqDCoMKgIEdib2ZJZCBnYm9mX2lkOzxvOnA+PC9vOnA+PC9z
cGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBw
dDtmb250LWZhbWlseToiQ291cmllciBOZXciJz4vL8KgwqDCoCBnYm9mX2lkLnNvdXJjZV8gPSBF
bmRwb2ludElEKCBidW5kbGVfYXR0cmlicy5zb3VyY2VfZWlkKCkgKTs8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7
Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+Ly/CoMKgwqAgZ2JvZl9pZC5jcmVhdGlvbl90c18u
c2Vjb25kc18gPSA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0Pjxz
cGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+Ly/C
oMKgwqDCoMKgwqDCoMKgwqDCoMKgICh1X2ludDMyX3QpYnVuZGxlX2F0dHJpYnMudGltZXN0YW1w
X3NlY29uZHMoKTs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0Pjxz
cGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+Ly/C
oMKgwqAgZ2JvZl9pZC5jcmVhdGlvbl90c18uc2Vxbm9fID0gPG86cD48L286cD48L3NwYW4+PC9w
PjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQt
ZmFtaWx5OiJDb3VyaWVyIE5ldyInPi8vwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodV9pbnQzMl90
KWJ1bmRsZV9hdHRyaWJzLnRpbWVzdGFtcF9zZXF1ZW5jZSgpOzxvOnA+PC9vOnA+PC9zcGFuPjwv
cD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250
LWZhbWlseToiQ291cmllciBOZXciJz4vL8KgwqDCoCBnYm9mX2lkLmlzX2ZyYWdtZW50XyA9IGJ1
bmRsZV9hdHRyaWJzLmlzX2ZyYWdtZW50KCk7PG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNz
PU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJD
b3VyaWVyIE5ldyInPi8vwqDCoMKgIDxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29Q
bGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmll
ciBOZXciJz4vL8KgwqDCoCBpZiAoIGJ1bmRsZV9hdHRyaWJzLmZyYWdtZW50X2xlbmd0aCgpLnBy
ZXNlbnQoKSApPG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3Bh
biBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPi8vwqDC
oMKgwqDCoMKgwqAgZ2JvZl9pZC5mcmFnX2xlbmd0aF8gPSAodV9pbnQzMl90KWJ1bmRsZV9hdHRy
aWJzLmZyYWdtZW50X2xlbmd0aCgpLmdldCgpOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFz
cz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToi
Q291cmllciBOZXciJz4vL8KgwqDCoCBlbHNlIDxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFz
cz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToi
Q291cmllciBOZXciJz4vL8KgwqDCoMKgwqDCoMKgIGdib2ZfaWQuZnJhZ19sZW5ndGhfID0gMDsg
PG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0n
Zm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPi8vwqDCoMKgIDxvOnA+
PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQt
c2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz4vL8KgwqDCoCBpZiAoIGJ1bmRs
ZV9hdHRyaWJzLmZyYWdtZW50X2xlbmd0aCgpLnByZXNlbnQoKSApPG86cD48L286cD48L3NwYW4+
PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2Zv
bnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPi8vwqDCoMKgwqDCoMKgwqAgZ2JvZl9pZC5mcmFnX29m
ZnNldF8gPSAodV9pbnQzMl90KWJ1bmRsZV9hdHRyaWJzLmZyYWdtZW50X29mZnNldCgpLmdldCgp
OzxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9
J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz4vL8KgwqDCoCBlbHNl
IDxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9
J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz4vL8KgwqDCoMKgwqDC
oMKgIGdib2ZfaWQuZnJhZ19vZmZzZXRfID0gMDsgPG86cD48L286cD48L3NwYW4+PC9wPjxwIGNs
YXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5
OiJDb3VyaWVyIE5ldyInPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29Q
bGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmll
ciBOZXciJz7CoMKgwqAgPG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4
dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyIn
PsKgwqDCoMKgR2JvZklkIGdib2ZfaWQ7PG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1z
b1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3Vy
aWVyIE5ldyInPsKgwqDCoCBnYm9mX2lkLm11dGFibGVfc291cmNlKCktJmd0O2Fzc2lnbiggRW5k
cG9pbnRJRCggYnVuZGxlX2F0dHJpYnMuc291cmNlX2VpZCgpICkgKTsgPG86cD48L286cD48L3Nw
YW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0
O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPsKgwqDCoMKgZ2JvZl9pZC5tdXRhYmxlX2NyZWF0
aW9uX3RzKCktJmd0O3NlY29uZHNfID0gKHVfaW50MzJfdClidW5kbGVfYXR0cmlicy50aW1lc3Rh
bXBfc2Vjb25kcygpOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+
PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz7C
oMKgwqAgZ2JvZl9pZC5tdXRhYmxlX2NyZWF0aW9uX3RzKCktJmd0O3NlcW5vXyA9ICh1X2ludDMy
X3QpYnVuZGxlX2F0dHJpYnMudGltZXN0YW1wX3NlcXVlbmNlKCk7PG86cD48L286cD48L3NwYW4+
PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2Zv
bnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPsKgwqDCoCBnYm9mX2lkLnNldF9pc19mcmFnbWVudCgg
YnVuZGxlX2F0dHJpYnMuaXNfZnJhZ21lbnQoKSApOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBj
bGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWls
eToiQ291cmllciBOZXciJz7CoMKgwqAgaWYgKCBidW5kbGVfYXR0cmlicy5mcmFnbWVudF9sZW5n
dGgoKS5wcmVzZW50KCkgKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRl
eHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXci
Jz7CoMKgIMKgwqDCoMKgwqBnYm9mX2lkLnNldF9mcmFnX2xlbmd0aCggKHVfaW50MzJfdClidW5k
bGVfYXR0cmlicy5mcmFnbWVudF9sZW5ndGgoKS5nZXQoKSApOzxvOnA+PC9vOnA+PC9zcGFuPjwv
cD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250
LWZhbWlseToiQ291cmllciBOZXciJz7CoMKgwqAgZWxzZSA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7Zm9udC1m
YW1pbHk6IkNvdXJpZXIgTmV3Iic+wqDCoMKgwqDCoMKgwqDCoGdib2ZfaWQuc2V0X2ZyYWdfbGVu
Z3RoKDApOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4g
c3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdm
b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+wqDCoMKgIGlmICggYnVu
ZGxlX2F0dHJpYnMuZnJhZ21lbnRfbGVuZ3RoKCkucHJlc2VudCgpICk8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7
Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+wqDCoMKgwqDCoMKgwqAgZ2JvZl9pZC5zZXRfZnJh
Z19vZmZzZXQoICh1X2ludDMyX3QpYnVuZGxlX2F0dHJpYnMuZnJhZ21lbnRfb2Zmc2V0KCkuZ2V0
KCkgKTs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0
eWxlPSdmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+wqDCoMKgIGVs
c2UgPG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHls
ZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPsKgwqDCoMKgwqDC
oMKgwqBnYm9mX2lkLnNldF9mcmFnX29mZnNldCgwKTs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAg
Y2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1p
bHk6IkNvdXJpZXIgTmV3Iic+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1z
b1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3Vy
aWVyIE5ldyInPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRl
eHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXci
Jz7CoMKgwqAgcmV0dXJuIG91dGdvaW5nX2J1bmRsZXNfLmZpbmQoZ2JvZl9pZCk7PG86cD48L286
cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXpl
OjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPn08L3NwYW4+PG86cD48L286cD48L3A+
PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1Bs
YWluVGV4dD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+RGF2aWQg
Wm9sbGVyPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PkNPTFNBIENvcnBvcmF0
aW9uPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0Pk1hcnNoYWxsIFNwYWNlIEZs
aWdodCBDZW50ZXI8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PG86cD4mbmJz
cDs8L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0Pi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t
LS0tPGJyPkZyb206IGR0bi11c2Vycy1ib3VuY2VzQGlydGYub3JnIFttYWlsdG86ZHRuLXVzZXJz
LWJvdW5jZXNAaXJ0Zi5vcmddIE9uIEJlaGFsZiBPZiB5dWFucDxicj5TZW50OiBUaHVyc2RheSwg
TWFyY2ggMjgsIDIwMTMgMzo0MSBBTTxicj5UbzogZHRuLXVzZXJzQGlydGYub3JnPGJyPlN1Ympl
Y3Q6IFtkdG4tdXNlcnNdIEVycm9yIGluIGNvbXBpbGluZyBEVE4yPC9wPjxwIGNsYXNzPU1zb1Bs
YWluVGV4dD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+SGkgYWxs
LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD5JIGFtIHRyeWluZyB0byBpbnN0
YWxsIERUTjIgaW4gVWJ1bnR1IDEwLjA0LCBidXQgbWVldCBzb21lIGVycm9yLiBUaGUgdmlzaW9u
IG9mIGR0bjIgaXMgZHRuLTIuOS4weC4gSSBoYXZlIGFsc28gaW5zdGFsbGVkIG9hc3lzLTEuNi4w
eCwgdGNsOC41LjEwLCBkYi01LjEuMjkgYW5kIHhlcmNlcy1jLXNyY18yXzhfMC48bzpwPjwvbzpw
PjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9
TXNvUGxhaW5UZXh0PldoZW4gY29uZmlndXJlIGR0bjIsIEkgcmVjZWl2ZSBzb21lIGVycm9yOjxv
OnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48bzpwPiZuYnNwOzwvbzpwPjwvcD48
cCBjbGFzcz1Nc29QbGFpblRleHQ+Li4vc2VydmxpYi9idW5kbGluZy9HYm9mSWQuaDoxMTQ6IGVy
cm9yOiDigJhkdG46OkVuZHBvaW50SUQgZHRuOjpHYm9mSWQ6OnNvdXJjZV/igJkgaXMgcHJpdmF0
ZTxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD5jb252X2xheWVycy9FeHRlcm5h
bENvbnZlcmdlbmNlTGF5ZXIuY2M6MTQwNTogZXJyb3I6IHdpdGhpbiB0aGlzIGNvbnRleHQ8bzpw
PjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+Li4vc2VydmxpYi9idW5kbGluZy9HYm9m
SWQuaDoxMTU6IGVycm9yOiDigJhkdG46OkJ1bmRsZVRpbWVzdGFtcCBkdG46Okdib2ZJZDo6Y3Jl
YXRpb25fdHNf4oCZIGlzIHByaXZhdGU8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRl
eHQ+Y29udl9sYXllcnMvRXh0ZXJuYWxDb252ZXJnZW5jZUxheWVyLmNjOjE0MDY6IGVycm9yOiB3
aXRoaW4gdGhpcyBjb250ZXh0PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0Pi4u
L3NlcnZsaWIvYnVuZGxpbmcvR2JvZklkLmg6MTE1OiBlcnJvcjog4oCYZHRuOjpCdW5kbGVUaW1l
c3RhbXAgZHRuOjpHYm9mSWQ6OmNyZWF0aW9uX3RzX+KAmSBpcyBwcml2YXRlPG86cD48L286cD48
L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PmNvbnZfbGF5ZXJzL0V4dGVybmFsQ29udmVyZ2VuY2VM
YXllci5jYzoxNDA4OiBlcnJvcjogd2l0aGluIHRoaXMgY29udGV4dDxvOnA+PC9vOnA+PC9wPjxw
IGNsYXNzPU1zb1BsYWluVGV4dD4uLi9zZXJ2bGliL2J1bmRsaW5nL0dib2ZJZC5oOjExNjogZXJy
b3I6IOKAmGJvb2wgZHRuOjpHYm9mSWQ6OmlzX2ZyYWdtZW50X+KAmSBpcyBwcml2YXRlPG86cD48
L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PmNvbnZfbGF5ZXJzL0V4dGVybmFsQ29udmVy
Z2VuY2VMYXllci5jYzoxNDEwOiBlcnJvcjogd2l0aGluIHRoaXMgY29udGV4dDxvOnA+PC9vOnA+
PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD4uLi9zZXJ2bGliL2J1bmRsaW5nL0dib2ZJZC5oOjEx
NzogZXJyb3I6IOKAmHVfaW50MzJfdCBkdG46Okdib2ZJZDo6ZnJhZ19sZW5ndGhf4oCZIGlzIHBy
aXZhdGU8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+Y29udl9sYXllcnMvRXh0
ZXJuYWxDb252ZXJnZW5jZUxheWVyLmNjOjE0MTM6IGVycm9yOiB3aXRoaW4gdGhpcyBjb250ZXh0
PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0Pi4uL3NlcnZsaWIvYnVuZGxpbmcv
R2JvZklkLmg6MTE3OiBlcnJvcjog4oCYdV9pbnQzMl90IGR0bjo6R2JvZklkOjpmcmFnX2xlbmd0
aF/igJkgaXMgcHJpdmF0ZTxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD5jb252
X2xheWVycy9FeHRlcm5hbENvbnZlcmdlbmNlTGF5ZXIuY2M6MTQxNTogZXJyb3I6IHdpdGhpbiB0
aGlzIGNvbnRleHQ8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+Li4vc2Vydmxp
Yi9idW5kbGluZy9HYm9mSWQuaDoxMTg6IGVycm9yOiDigJh1X2ludDMyX3QgZHRuOjpHYm9mSWQ6
OmZyYWdfb2Zmc2V0X+KAmSBpcyBwcml2YXRlPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxh
aW5UZXh0PmNvbnZfbGF5ZXJzL0V4dGVybmFsQ29udmVyZ2VuY2VMYXllci5jYzoxNDE4OiBlcnJv
cjogd2l0aGluIHRoaXMgY29udGV4dDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4
dD4uLi9zZXJ2bGliL2J1bmRsaW5nL0dib2ZJZC5oOjExODogZXJyb3I6IOKAmHVfaW50MzJfdCBk
dG46Okdib2ZJZDo6ZnJhZ19vZmZzZXRf4oCZIGlzIHByaXZhdGU8bzpwPjwvbzpwPjwvcD48cCBj
bGFzcz1Nc29QbGFpblRleHQ+Y29udl9sYXllcnMvRXh0ZXJuYWxDb252ZXJnZW5jZUxheWVyLmNj
OjE0MjA6IGVycm9yOiB3aXRoaW4gdGhpcyBjb250ZXh0PG86cD48L286cD48L3A+PHAgY2xhc3M9
TXNvUGxhaW5UZXh0PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD5I
YXMgYW55b25lIG1ldCB0aGlzIGVycm9yPyBJIGFtIGdyZWF0bHkgYXBwcmVjaWF0ZWQgZm9yIHNv
bWUgaGVscC48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PG86cD4mbmJzcDs8
L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PlJlZ2FyZHMhPG86cD48L286cD48L3A+PHAg
Y2xhc3M9TXNvUGxhaW5UZXh0PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWlu
VGV4dD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+X19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188bzpwPjwvbzpwPjwvcD48cCBj
bGFzcz1Nc29QbGFpblRleHQ+ZHRuLXVzZXJzIG1haWxpbmcgbGlzdDxvOnA+PC9vOnA+PC9wPjxw
IGNsYXNzPU1zb1BsYWluVGV4dD48YSBocmVmPSJtYWlsdG86ZHRuLXVzZXJzQGlydGYub3JnIj48
c3BhbiBzdHlsZT0nY29sb3I6d2luZG93dGV4dDt0ZXh0LWRlY29yYXRpb246bm9uZSc+ZHRuLXVz
ZXJzQGlydGYub3JnPC9zcGFuPjwvYT48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRl
eHQ+PGEgaHJlZj0iaHR0cHM6Ly93d3cuaXJ0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9kdG4tdXNl
cnMiPjxzcGFuIHN0eWxlPSdjb2xvcjp3aW5kb3d0ZXh0O3RleHQtZGVjb3JhdGlvbjpub25lJz5o
dHRwczovL3d3dy5pcnRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2R0bi11c2Vyczwvc3Bhbj48L2E+
PG86cD48L286cD48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4=

--_000_04E3D99A62496240BCD6A576813E6E31E0C4C93951NDMSSCC05ndcn_--

From david.a.zoller@nasa.gov  Thu Mar 28 07:49:39 2013
Return-Path: <david.a.zoller@nasa.gov>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6811D21F8C8C for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 07:49:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.597
X-Spam-Level: 
X-Spam-Status: No, score=-2.597 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, WEIRD_PORT=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id z-5mVCOowr97 for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 07:49:38 -0700 (PDT)
Received: from ndmsnpf01.ndc.nasa.gov (NDMSNPF01.ndc.nasa.gov [IPv6:2001:4d0:8302:1100::101]) by ietfa.amsl.com (Postfix) with ESMTP id 036CA21F8DE4 for <dtn-users@irtf.org>; Thu, 28 Mar 2013 07:49:38 -0700 (PDT)
Received: from ndmsppt105.ndc.nasa.gov (NDMSPPT105.ndc.nasa.gov [198.117.0.70]) by ndmsnpf01.ndc.nasa.gov (Postfix) with ESMTP id 8C0C3260005; Thu, 28 Mar 2013 09:49:37 -0500 (CDT)
Received: from ndmshub03.ndc.nasa.gov (ndmshub03-pub.ndc.nasa.gov [198.117.0.42]) by ndmsppt105.ndc.nasa.gov (8.14.5/8.14.5) with ESMTP id r2SEnbYk008119; Thu, 28 Mar 2013 09:49:37 -0500
Received: from NDMSSCC05.ndc.nasa.gov ([198.117.2.174]) by ndmshub03.ndc.nasa.gov ([198.117.2.162]) with mapi; Thu, 28 Mar 2013 09:49:37 -0500
From: "Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]" <david.a.zoller@nasa.gov>
To: "Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]" <david.a.zoller@nasa.gov>, yuanp <yuanp1990@163.com>, "dtn-users@irtf.org" <dtn-users@irtf.org>
Date: Thu, 28 Mar 2013 09:49:41 -0500
Thread-Topic: [dtn-users] Error in compiling DTN2 (2.9.0x - not the official version)
Thread-Index: Ac4rtCvUpWsEXK+5SXi0CujolDw+ggADgveA
Message-ID: <04E3D99A62496240BCD6A576813E6E31E0C4C93AA1@NDMSSCC05.ndc.nasa.gov>
References: <04E3D99A62496240BCD6A576813E6E31E0C4C93951@NDMSSCC05.ndc.nasa.gov>
In-Reply-To: <04E3D99A62496240BCD6A576813E6E31E0C4C93951@NDMSSCC05.ndc.nasa.gov>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: multipart/alternative; boundary="_000_04E3D99A62496240BCD6A576813E6E31E0C4C93AA1NDMSSCC05ndcn_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8626, 1.0.431, 0.0.0000 definitions=2013-03-28_05:2013-03-28, 2013-03-28, 1970-01-01 signatures=0
Subject: Re: [dtn-users] Error in compiling DTN2 (2.9.0x - not the official version)
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Mar 2013 14:49:39 -0000

--_000_04E3D99A62496240BCD6A576813E6E31E0C4C93AA1NDMSSCC05ndcn_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgYWdhaW4sDQpBZnRlciBpbnN0YWxsaW5nIFhlcmNlcyBDLCBJIGZvdW5kIHRoYXQgdGhlIGNv
ZGUgYmVsb3cgY29tcGlsZXMgY29ycmVjdGx5IGJ1dCBFeHRlcm5hbFJvdXRlci5jYyBoYWQgc2lt
aWxhciBpc3N1ZXMgd2hlbiByZWZlcmVuY2luZyB0aGUgY2hhbmdlZCBHYm9mSWQgb2JqZWN0LiBJ
IGhhdmUgc2VudCB0aGUgdXBkYXRlZCBmaWxlcyBvbiBhIHNlcGFyYXRlIGVtYWlsIGFuZCB3aWxs
IHVwZGF0ZSB0aGUgb25saW5lIHZlcnNpb25zIHRoaXMgZXZlbmluZy4gUGxlYXNlIGxldCBtZSBr
bm93IGlmIHlvdSBydW4gaW50byBvdGhlciBpc3N1ZXMuDQoNCkVsd3luIOKAkyBJIHdhcyBhYmxl
IHRvIHZlcmlmeSB0aGF0IHRoZSBvZmZpY2lhbCBEVE4yIHZlcnNpb24gc3RpbGwgY29tcGlsZXMg
Y29ycmVjdGx5IHdpdGggdGhlIGV4dGVybmFsIGNvbnZlcmdlbmNlIGxheWVyIGVuYWJsZWQuDQpT
b3JyeSBmb3IgdGhlIGNvbmZ1c2lvbiwNCkRaDQoNCkRhdmlkIFpvbGxlcg0KQ09MU0EgQ29ycG9y
YXRpb24NCk1hcnNoYWxsIFNwYWNlIEZsaWdodCBDZW50ZXINCg0KRnJvbTogZHRuLXVzZXJzLWJv
dW5jZXNAaXJ0Zi5vcmcgW21haWx0bzpkdG4tdXNlcnMtYm91bmNlc0BpcnRmLm9yZ10gT24gQmVo
YWxmIE9mIFpvbGxlciwgRGF2aWQgQS4gKE1TRkMtRU81MClbSE9TQyBTRVJWSUNFUyBDT05UUkFD
VF0NClNlbnQ6IFRodXJzZGF5LCBNYXJjaCAyOCwgMjAxMyA4OjAxIEFNDQpUbzogeXVhbnA7IGR0
bi11c2Vyc0BpcnRmLm9yZw0KU3ViamVjdDogUmU6IFtkdG4tdXNlcnNdIEVycm9yIGluIGNvbXBp
bGluZyBEVE4yICgyLjkuMHggLSBub3QgdGhlIG9mZmljaWFsIHZlcnNpb24pDQoNCg0KSGksDQoN
CkJlIHdhcm5lZCB0aGF0IHRoaXMgaXMgbm90IGFuIG9mZmljaWFsIHZlcnNpb24sIGJ1dCB0aGFu
a3MgZm9yIHRyeWluZyBkdG4tMi45LjB4LiBJIGJlbGlldmUgdGhlIGNoYW5nZXMgYmVsb3cgd2ls
bCBmaXggdGhlIGVycm9ycyBidXQgaGF2ZSBub3QgYmVlbiBhYmxlIHRvIGNvbXBpbGUgaXQgeWV0
LiBJIGFtIGxvb2tpbmcgaW50byBpbnN0YWxsaW5nIFhlcmNlcyBDIHNvIHRoYXQgSSBjYW4gYnVp
bGQgdGhlIGV4dGVybmFsIGNvbnZlcmdlbmNlIGxheWVyIGFsc28uDQoNClJlZ2FyZHMsDQoNCkRa
DQoNCg0KDQoNCg0KSW4gRXh0ZXJuYWxDb252ZXJnZW5jZUxheWVyLmNjLCBnZXRfb3V0Z29pbmdf
YnVuZGxlIGlzIGRlZmluZWQgb24gbGluZSAxNDAyIGFuZCBuZWVkcyB0byBiZSB1cGRhdGVkOg0K
DQoNCg0KDQoNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpCdW5kbGVSZWYNCg0KRUNMTGlua1Jlc291cmNl
OjpnZXRfb3V0Z29pbmdfYnVuZGxlKGNsbWVzc2FnZTo6YnVuZGxlX2F0dHJpYnV0ZXMgYnVuZGxl
X2F0dHJpYnMpDQoNCnsNCg0KLy8gICAgR2JvZklkIGdib2ZfaWQ7DQoNCi8vICAgIGdib2ZfaWQu
c291cmNlXyA9IEVuZHBvaW50SUQoIGJ1bmRsZV9hdHRyaWJzLnNvdXJjZV9laWQoKSApOw0KDQov
LyAgICBnYm9mX2lkLmNyZWF0aW9uX3RzXy5zZWNvbmRzXyA9DQoNCi8vICAgICAgICAgICAgKHVf
aW50MzJfdClidW5kbGVfYXR0cmlicy50aW1lc3RhbXBfc2Vjb25kcygpOw0KDQovLyAgICBnYm9m
X2lkLmNyZWF0aW9uX3RzXy5zZXFub18gPQ0KDQovLyAgICAgICAgICAgICh1X2ludDMyX3QpYnVu
ZGxlX2F0dHJpYnMudGltZXN0YW1wX3NlcXVlbmNlKCk7DQoNCi8vICAgIGdib2ZfaWQuaXNfZnJh
Z21lbnRfID0gYnVuZGxlX2F0dHJpYnMuaXNfZnJhZ21lbnQoKTsNCg0KLy8NCg0KLy8gICAgaWYg
KCBidW5kbGVfYXR0cmlicy5mcmFnbWVudF9sZW5ndGgoKS5wcmVzZW50KCkgKQ0KDQovLyAgICAg
ICAgZ2JvZl9pZC5mcmFnX2xlbmd0aF8gPSAodV9pbnQzMl90KWJ1bmRsZV9hdHRyaWJzLmZyYWdt
ZW50X2xlbmd0aCgpLmdldCgpOw0KDQovLyAgICBlbHNlDQoNCi8vICAgICAgICBnYm9mX2lkLmZy
YWdfbGVuZ3RoXyA9IDA7DQoNCi8vDQoNCi8vICAgIGlmICggYnVuZGxlX2F0dHJpYnMuZnJhZ21l
bnRfbGVuZ3RoKCkucHJlc2VudCgpICkNCg0KLy8gICAgICAgIGdib2ZfaWQuZnJhZ19vZmZzZXRf
ID0gKHVfaW50MzJfdClidW5kbGVfYXR0cmlicy5mcmFnbWVudF9vZmZzZXQoKS5nZXQoKTsNCg0K
Ly8gICAgZWxzZQ0KDQovLyAgICAgICAgZ2JvZl9pZC5mcmFnX29mZnNldF8gPSAwOw0KDQoNCg0K
DQoNCiAgICBHYm9mSWQgZ2JvZl9pZDsNCg0KICAgIGdib2ZfaWQubXV0YWJsZV9zb3VyY2UoKS0+
YXNzaWduKCBFbmRwb2ludElEKCBidW5kbGVfYXR0cmlicy5zb3VyY2VfZWlkKCkgKSApOw0KDQog
ICAgZ2JvZl9pZC5tdXRhYmxlX2NyZWF0aW9uX3RzKCktPnNlY29uZHNfID0gKHVfaW50MzJfdCli
dW5kbGVfYXR0cmlicy50aW1lc3RhbXBfc2Vjb25kcygpOw0KDQogICAgZ2JvZl9pZC5tdXRhYmxl
X2NyZWF0aW9uX3RzKCktPnNlcW5vXyA9ICh1X2ludDMyX3QpYnVuZGxlX2F0dHJpYnMudGltZXN0
YW1wX3NlcXVlbmNlKCk7DQoNCiAgICBnYm9mX2lkLnNldF9pc19mcmFnbWVudCggYnVuZGxlX2F0
dHJpYnMuaXNfZnJhZ21lbnQoKSApOw0KDQogICAgaWYgKCBidW5kbGVfYXR0cmlicy5mcmFnbWVu
dF9sZW5ndGgoKS5wcmVzZW50KCkgKQ0KDQogICAgICAgIGdib2ZfaWQuc2V0X2ZyYWdfbGVuZ3Ro
KCAodV9pbnQzMl90KWJ1bmRsZV9hdHRyaWJzLmZyYWdtZW50X2xlbmd0aCgpLmdldCgpICk7DQoN
CiAgICBlbHNlDQoNCiAgICAgICAgZ2JvZl9pZC5zZXRfZnJhZ19sZW5ndGgoMCk7DQoNCg0KDQog
ICAgaWYgKCBidW5kbGVfYXR0cmlicy5mcmFnbWVudF9sZW5ndGgoKS5wcmVzZW50KCkgKQ0KDQog
ICAgICAgIGdib2ZfaWQuc2V0X2ZyYWdfb2Zmc2V0KCAodV9pbnQzMl90KWJ1bmRsZV9hdHRyaWJz
LmZyYWdtZW50X29mZnNldCgpLmdldCgpICk7DQoNCiAgICBlbHNlDQoNCiAgICAgICAgZ2JvZl9p
ZC5zZXRfZnJhZ19vZmZzZXQoMCk7DQoNCg0KDQoNCg0KICAgIHJldHVybiBvdXRnb2luZ19idW5k
bGVzXy5maW5kKGdib2ZfaWQpOw0KDQp9DQoNCg0KDQoNCg0KRGF2aWQgWm9sbGVyDQoNCkNPTFNB
IENvcnBvcmF0aW9uDQoNCk1hcnNoYWxsIFNwYWNlIEZsaWdodCBDZW50ZXINCg0KDQoNCi0tLS0t
T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBkdG4tdXNlcnMtYm91bmNlc0BpcnRmLm9yZzxt
YWlsdG86ZHRuLXVzZXJzLWJvdW5jZXNAaXJ0Zi5vcmc+IFttYWlsdG86ZHRuLXVzZXJzLWJvdW5j
ZXNAaXJ0Zi5vcmddIE9uIEJlaGFsZiBPZiB5dWFucA0KU2VudDogVGh1cnNkYXksIE1hcmNoIDI4
LCAyMDEzIDM6NDEgQU0NClRvOiBkdG4tdXNlcnNAaXJ0Zi5vcmc8bWFpbHRvOmR0bi11c2Vyc0Bp
cnRmLm9yZz4NClN1YmplY3Q6IFtkdG4tdXNlcnNdIEVycm9yIGluIGNvbXBpbGluZyBEVE4yDQoN
Cg0KDQpIaSBhbGwsDQoNCkkgYW0gdHJ5aW5nIHRvIGluc3RhbGwgRFROMiBpbiBVYnVudHUgMTAu
MDQsIGJ1dCBtZWV0IHNvbWUgZXJyb3IuIFRoZSB2aXNpb24gb2YgZHRuMiBpcyBkdG4tMi45LjB4
LiBJIGhhdmUgYWxzbyBpbnN0YWxsZWQgb2FzeXMtMS42LjB4LCB0Y2w4LjUuMTAsIGRiLTUuMS4y
OSBhbmQgeGVyY2VzLWMtc3JjXzJfOF8wLg0KDQoNCg0KV2hlbiBjb25maWd1cmUgZHRuMiwgSSBy
ZWNlaXZlIHNvbWUgZXJyb3I6DQoNCg0KDQouLi9zZXJ2bGliL2J1bmRsaW5nL0dib2ZJZC5oOjEx
NDogZXJyb3I6IOKAmGR0bjo6RW5kcG9pbnRJRCBkdG46Okdib2ZJZDo6c291cmNlX+KAmSBpcyBw
cml2YXRlDQoNCmNvbnZfbGF5ZXJzL0V4dGVybmFsQ29udmVyZ2VuY2VMYXllci5jYzoxNDA1OiBl
cnJvcjogd2l0aGluIHRoaXMgY29udGV4dA0KDQouLi9zZXJ2bGliL2J1bmRsaW5nL0dib2ZJZC5o
OjExNTogZXJyb3I6IOKAmGR0bjo6QnVuZGxlVGltZXN0YW1wIGR0bjo6R2JvZklkOjpjcmVhdGlv
bl90c1/igJkgaXMgcHJpdmF0ZQ0KDQpjb252X2xheWVycy9FeHRlcm5hbENvbnZlcmdlbmNlTGF5
ZXIuY2M6MTQwNjogZXJyb3I6IHdpdGhpbiB0aGlzIGNvbnRleHQNCg0KLi4vc2VydmxpYi9idW5k
bGluZy9HYm9mSWQuaDoxMTU6IGVycm9yOiDigJhkdG46OkJ1bmRsZVRpbWVzdGFtcCBkdG46Okdi
b2ZJZDo6Y3JlYXRpb25fdHNf4oCZIGlzIHByaXZhdGUNCg0KY29udl9sYXllcnMvRXh0ZXJuYWxD
b252ZXJnZW5jZUxheWVyLmNjOjE0MDg6IGVycm9yOiB3aXRoaW4gdGhpcyBjb250ZXh0DQoNCi4u
L3NlcnZsaWIvYnVuZGxpbmcvR2JvZklkLmg6MTE2OiBlcnJvcjog4oCYYm9vbCBkdG46Okdib2ZJ
ZDo6aXNfZnJhZ21lbnRf4oCZIGlzIHByaXZhdGUNCg0KY29udl9sYXllcnMvRXh0ZXJuYWxDb252
ZXJnZW5jZUxheWVyLmNjOjE0MTA6IGVycm9yOiB3aXRoaW4gdGhpcyBjb250ZXh0DQoNCi4uL3Nl
cnZsaWIvYnVuZGxpbmcvR2JvZklkLmg6MTE3OiBlcnJvcjog4oCYdV9pbnQzMl90IGR0bjo6R2Jv
ZklkOjpmcmFnX2xlbmd0aF/igJkgaXMgcHJpdmF0ZQ0KDQpjb252X2xheWVycy9FeHRlcm5hbENv
bnZlcmdlbmNlTGF5ZXIuY2M6MTQxMzogZXJyb3I6IHdpdGhpbiB0aGlzIGNvbnRleHQNCg0KLi4v
c2VydmxpYi9idW5kbGluZy9HYm9mSWQuaDoxMTc6IGVycm9yOiDigJh1X2ludDMyX3QgZHRuOjpH
Ym9mSWQ6OmZyYWdfbGVuZ3RoX+KAmSBpcyBwcml2YXRlDQoNCmNvbnZfbGF5ZXJzL0V4dGVybmFs
Q29udmVyZ2VuY2VMYXllci5jYzoxNDE1OiBlcnJvcjogd2l0aGluIHRoaXMgY29udGV4dA0KDQou
Li9zZXJ2bGliL2J1bmRsaW5nL0dib2ZJZC5oOjExODogZXJyb3I6IOKAmHVfaW50MzJfdCBkdG46
Okdib2ZJZDo6ZnJhZ19vZmZzZXRf4oCZIGlzIHByaXZhdGUNCg0KY29udl9sYXllcnMvRXh0ZXJu
YWxDb252ZXJnZW5jZUxheWVyLmNjOjE0MTg6IGVycm9yOiB3aXRoaW4gdGhpcyBjb250ZXh0DQoN
Ci4uL3NlcnZsaWIvYnVuZGxpbmcvR2JvZklkLmg6MTE4OiBlcnJvcjog4oCYdV9pbnQzMl90IGR0
bjo6R2JvZklkOjpmcmFnX29mZnNldF/igJkgaXMgcHJpdmF0ZQ0KDQpjb252X2xheWVycy9FeHRl
cm5hbENvbnZlcmdlbmNlTGF5ZXIuY2M6MTQyMDogZXJyb3I6IHdpdGhpbiB0aGlzIGNvbnRleHQN
Cg0KDQoNCkhhcyBhbnlvbmUgbWV0IHRoaXMgZXJyb3I/IEkgYW0gZ3JlYXRseSBhcHByZWNpYXRl
ZCBmb3Igc29tZSBoZWxwLg0KDQoNCg0KUmVnYXJkcyENCg0KDQoNCg0KDQpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KDQpkdG4tdXNlcnMgbWFpbGluZyBs
aXN0DQoNCmR0bi11c2Vyc0BpcnRmLm9yZzxtYWlsdG86ZHRuLXVzZXJzQGlydGYub3JnPg0KDQpo
dHRwczovL3d3dy5pcnRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2R0bi11c2Vycw0K

--_000_04E3D99A62496240BCD6A576813E6E31E0C4C93AA1NDMSSCC05ndcn_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij48bWV0YSBuYW1lPUdlbmVyYXRvciBjb250ZW50
PSJNaWNyb3NvZnQgV29yZCAxNCAoZmlsdGVyZWQgbWVkaXVtKSI+PHN0eWxlPjwhLS0NCi8qIEZv
bnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglw
YW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5
OlRhaG9tYTsNCglwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDt9DQovKiBTdHlsZSBEZWZp
bml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXtt
YXJnaW46MGluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0K
CWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5
cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRl
Y29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dl
ZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3Jh
dGlvbjp1bmRlcmxpbmU7fQ0KcC5Nc29QbGFpblRleHQsIGxpLk1zb1BsYWluVGV4dCwgZGl2Lk1z
b1BsYWluVGV4dA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IlBs
YWluIFRleHQgQ2hhciI7DQoJbWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiO30N
CnAuTXNvQWNldGF0ZSwgbGkuTXNvQWNldGF0ZSwgZGl2Lk1zb0FjZXRhdGUNCgl7bXNvLXN0eWxl
LXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJCYWxsb29uIFRleHQgQ2hhciI7DQoJbWFy
Z2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjguMHB0Ow0KCWZv
bnQtZmFtaWx5OiJUYWhvbWEiLCJzYW5zLXNlcmlmIjt9DQpzcGFuLlBsYWluVGV4dENoYXINCgl7
bXNvLXN0eWxlLW5hbWU6IlBsYWluIFRleHQgQ2hhciI7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5
Ow0KCW1zby1zdHlsZS1saW5rOiJQbGFpbiBUZXh0IjsNCglmb250LWZhbWlseToiQ2FsaWJyaSIs
InNhbnMtc2VyaWYiO30NCnNwYW4uRW1haWxTdHlsZTE5DQoJe21zby1zdHlsZS10eXBlOnBlcnNv
bmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7DQoJY29sb3I6
IzFGNDk3RDt9DQpzcGFuLkJhbGxvb25UZXh0Q2hhcg0KCXttc28tc3R5bGUtbmFtZToiQmFsbG9v
biBUZXh0IENoYXIiOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoi
QmFsbG9vbiBUZXh0IjsNCglmb250LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiI7fQ0KLk1z
b0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEw
LjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFyZ2lu
OjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3Jk
U2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBl
ZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0t
LT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4N
CjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1s
PjwhW2VuZGlmXS0tPjwvaGVhZD48Ym9keSBsYW5nPUVOLVVTIGxpbms9Ymx1ZSB2bGluaz1wdXJw
bGU+PGRpdiBjbGFzcz1Xb3JkU2VjdGlvbjE+PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFuIHN0eWxl
PSdjb2xvcjojMUY0OTdEJz5IaSBhZ2Fpbiw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9
TXNvTm9ybWFsPjxzcGFuIHN0eWxlPSdjb2xvcjojMUY0OTdEJz5BZnRlciBpbnN0YWxsaW5nIFhl
cmNlcyBDLCBJIGZvdW5kIHRoYXQgdGhlIGNvZGUgYmVsb3cgY29tcGlsZXMgY29ycmVjdGx5IGJ1
dCBFeHRlcm5hbFJvdXRlci5jYyBoYWQgc2ltaWxhciBpc3N1ZXMgd2hlbiByZWZlcmVuY2luZyB0
aGUgY2hhbmdlZCBHYm9mSWQgb2JqZWN0LiBJIGhhdmUgc2VudCB0aGUgdXBkYXRlZCBmaWxlcyBv
biBhIHNlcGFyYXRlIGVtYWlsIGFuZCB3aWxsIHVwZGF0ZSB0aGUgb25saW5lIHZlcnNpb25zIHRo
aXMgZXZlbmluZy4gUGxlYXNlIGxldCBtZSBrbm93IGlmIHlvdSBydW4gaW50byBvdGhlciBpc3N1
ZXMuPG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48c3BhbiBzdHlsZT0n
Y29sb3I6IzFGNDk3RCc+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb05v
cm1hbD48c3BhbiBzdHlsZT0nY29sb3I6IzFGNDk3RCc+RWx3eW4g4oCTIEkgd2FzIGFibGUgdG8g
dmVyaWZ5IHRoYXQgdGhlIG9mZmljaWFsIERUTjIgdmVyc2lvbiBzdGlsbCBjb21waWxlcyBjb3Jy
ZWN0bHkgd2l0aCB0aGUgZXh0ZXJuYWwgY29udmVyZ2VuY2UgbGF5ZXIgZW5hYmxlZC48bzpwPjwv
bzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFuIHN0eWxlPSdjb2xvcjojMUY0
OTdEJz5Tb3JyeSBmb3IgdGhlIGNvbmZ1c2lvbiw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xh
c3M9TXNvTm9ybWFsPjxzcGFuIHN0eWxlPSdjb2xvcjojMUY0OTdEJz5EWjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHNwYW4gc3R5bGU9J2NvbG9yOiMxRjQ5N0QnPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD48ZGl2PjxwIGNsYXNzPU1zb05vcm1hbD48c3BhbiBz
dHlsZT0nZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseToiQXJpYWwiLCJzYW5zLXNlcmlmIjtj
b2xvcjojMUY0OTdEJz5EYXZpZCBab2xsZXI8L3NwYW4+PHNwYW4gc3R5bGU9J2NvbG9yOiMxRjQ5
N0QnPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHNwYW4gc3R5bGU9
J2ZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6IkFyaWFsIiwic2Fucy1zZXJpZiI7Y29sb3I6
IzFGNDk3RCc+Q09MU0EgQ29ycG9yYXRpb248L3NwYW4+PHNwYW4gc3R5bGU9J2NvbG9yOiMxRjQ5
N0QnPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHNwYW4gc3R5bGU9
J2ZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6IkFyaWFsIiwic2Fucy1zZXJpZiI7Y29sb3I6
IzFGNDk3RCc+TWFyc2hhbGwgU3BhY2UgRmxpZ2h0IENlbnRlcjwvc3Bhbj48c3BhbiBzdHlsZT0n
Y29sb3I6IzFGNDk3RCc+PG86cD48L286cD48L3NwYW4+PC9wPjwvZGl2PjxwIGNsYXNzPU1zb05v
cm1hbD48c3BhbiBzdHlsZT0nY29sb3I6IzFGNDk3RCc+PG86cD4mbmJzcDs8L286cD48L3NwYW4+
PC9wPjxkaXY+PGRpdiBzdHlsZT0nYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERG
IDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4nPjxwIGNsYXNzPU1zb05vcm1hbD48Yj48
c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseToiVGFob21hIiwic2Fucy1z
ZXJpZiInPkZyb206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdDtmb250
LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiInPiBkdG4tdXNlcnMtYm91bmNlc0BpcnRmLm9y
ZyBbbWFpbHRvOmR0bi11c2Vycy1ib3VuY2VzQGlydGYub3JnXSA8Yj5PbiBCZWhhbGYgT2YgPC9i
PlpvbGxlciwgRGF2aWQgQS4gKE1TRkMtRU81MClbSE9TQyBTRVJWSUNFUyBDT05UUkFDVF08YnI+
PGI+U2VudDo8L2I+IFRodXJzZGF5LCBNYXJjaCAyOCwgMjAxMyA4OjAxIEFNPGJyPjxiPlRvOjwv
Yj4geXVhbnA7IGR0bi11c2Vyc0BpcnRmLm9yZzxicj48Yj5TdWJqZWN0OjwvYj4gUmU6IFtkdG4t
dXNlcnNdIEVycm9yIGluIGNvbXBpbGluZyBEVE4yICgyLjkuMHggLSBub3QgdGhlIG9mZmljaWFs
IHZlcnNpb24pPG86cD48L286cD48L3NwYW4+PC9wPjwvZGl2PjwvZGl2PjxwIGNsYXNzPU1zb05v
cm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+SGksPG86cD48
L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PkJlIHdhcm5lZCB0aGF0IHRoaXMgaXMgbm90
IGFuIG9mZmljaWFsIHZlcnNpb24sIGJ1dCB0aGFua3MgZm9yIHRyeWluZyBkdG4tMi45LjB4LiBJ
IGJlbGlldmUgdGhlIGNoYW5nZXMgYmVsb3cgd2lsbCBmaXggdGhlIGVycm9ycyBidXQgaGF2ZSBu
b3QgYmVlbiBhYmxlIHRvIGNvbXBpbGUgaXQgeWV0LiBJIGFtIGxvb2tpbmcgaW50byBpbnN0YWxs
aW5nIFhlcmNlcyBDIHNvIHRoYXQgSSBjYW4gYnVpbGQgdGhlIGV4dGVybmFsIGNvbnZlcmdlbmNl
IGxheWVyIGFsc28uPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PlJlZ2FyZHMs
PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PkRaPG86cD48L286cD48L3A+PHAg
Y2xhc3M9TXNvUGxhaW5UZXh0PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWlu
VGV4dD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+SW4gRXh0ZXJu
YWxDb252ZXJnZW5jZUxheWVyLmNjLCBnZXRfb3V0Z29pbmdfYnVuZGxlIGlzIGRlZmluZWQgb24g
bGluZSAxNDAyIGFuZCBuZWVkcyB0byBiZSB1cGRhdGVkOjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNz
PU1zb1BsYWluVGV4dD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+
PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdm
b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+Ly8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
PG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0n
Zm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPkJ1bmRsZVJlZjxvOnA+
PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQt
c2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz5FQ0xMaW5rUmVzb3VyY2U6Omdl
dF9vdXRnb2luZ19idW5kbGUoY2xtZXNzYWdlOjpidW5kbGVfYXR0cmlidXRlcyBidW5kbGVfYXR0
cmlicyk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0
eWxlPSdmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+ezxvOnA+PC9v
OnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6
ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz4vLyZuYnNwOyZuYnNwOyZuYnNwOyBH
Ym9mSWQgZ2JvZl9pZDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0
PjxzcGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+
Ly8mbmJzcDsmbmJzcDsmbmJzcDsgZ2JvZl9pZC5zb3VyY2VfID0gRW5kcG9pbnRJRCggYnVuZGxl
X2F0dHJpYnMuc291cmNlX2VpZCgpICk7PG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1z
b1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3Vy
aWVyIE5ldyInPi8vJm5ic3A7Jm5ic3A7Jm5ic3A7IGdib2ZfaWQuY3JlYXRpb25fdHNfLnNlY29u
ZHNfID0gPG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBz
dHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPi8vJm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7ICh1X2ludDMyX3QpYnVuZGxlX2F0dHJpYnMudGltZXN0YW1wX3NlY29uZHMoKTs8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdmb250LXNp
emU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+Ly8mbmJzcDsmbmJzcDsmbmJzcDsg
Z2JvZl9pZC5jcmVhdGlvbl90c18uc2Vxbm9fID0gPG86cD48L286cD48L3NwYW4+PC9wPjxwIGNs
YXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5
OiJDb3VyaWVyIE5ldyInPi8vJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICh1X2ludDMyX3QpYnVuZGxlX2F0dHJpYnMudGlt
ZXN0YW1wX3NlcXVlbmNlKCk7PG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWlu
VGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5l
dyInPi8vJm5ic3A7Jm5ic3A7Jm5ic3A7IGdib2ZfaWQuaXNfZnJhZ21lbnRfID0gYnVuZGxlX2F0
dHJpYnMuaXNfZnJhZ21lbnQoKTs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvUGxh
aW5UZXh0PjxzcGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIg
TmV3Iic+Ly8mbmJzcDsmbmJzcDsmbmJzcDsgPG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNz
PU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJD
b3VyaWVyIE5ldyInPi8vJm5ic3A7Jm5ic3A7Jm5ic3A7IGlmICggYnVuZGxlX2F0dHJpYnMuZnJh
Z21lbnRfbGVuZ3RoKCkucHJlc2VudCgpICk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9
TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNv
dXJpZXIgTmV3Iic+Ly8mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg
Z2JvZl9pZC5mcmFnX2xlbmd0aF8gPSAodV9pbnQzMl90KWJ1bmRsZV9hdHRyaWJzLmZyYWdtZW50
X2xlbmd0aCgpLmdldCgpOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRl
eHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXci
Jz4vLyZuYnNwOyZuYnNwOyZuYnNwOyBlbHNlIDxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFz
cz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToi
Q291cmllciBOZXciJz4vLyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyBnYm9mX2lkLmZyYWdfbGVuZ3RoXyA9IDA7IDxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFz
cz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToi
Q291cmllciBOZXciJz4vLyZuYnNwOyZuYnNwOyZuYnNwOyA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7Zm9udC1m
YW1pbHk6IkNvdXJpZXIgTmV3Iic+Ly8mbmJzcDsmbmJzcDsmbmJzcDsgaWYgKCBidW5kbGVfYXR0
cmlicy5mcmFnbWVudF9sZW5ndGgoKS5wcmVzZW50KCkgKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD48
cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZh
bWlseToiQ291cmllciBOZXciJz4vLyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyBnYm9mX2lkLmZyYWdfb2Zmc2V0XyA9ICh1X2ludDMyX3QpYnVuZGxlX2F0dHJpYnMu
ZnJhZ21lbnRfb2Zmc2V0KCkuZ2V0KCk7PG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1z
b1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3Vy
aWVyIE5ldyInPi8vJm5ic3A7Jm5ic3A7Jm5ic3A7IGVsc2UgPG86cD48L286cD48L3NwYW4+PC9w
PjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQt
ZmFtaWx5OiJDb3VyaWVyIE5ldyInPi8vJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7IGdib2ZfaWQuZnJhZ19vZmZzZXRfID0gMDsgPG86cD48L286cD48L3NwYW4+PC9w
PjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQt
ZmFtaWx5OiJDb3VyaWVyIE5ldyInPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFz
cz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToi
Q291cmllciBOZXciJz4mbmJzcDsmbmJzcDsmbmJzcDsgPG86cD48L286cD48L3NwYW4+PC9wPjxw
IGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFt
aWx5OiJDb3VyaWVyIE5ldyInPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dib2ZJZCBnYm9mX2lk
OzxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9
J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz4mbmJzcDsmbmJzcDsm
bmJzcDsgZ2JvZl9pZC5tdXRhYmxlX3NvdXJjZSgpLSZndDthc3NpZ24oIEVuZHBvaW50SUQoIGJ1
bmRsZV9hdHRyaWJzLnNvdXJjZV9laWQoKSApICk7IDxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBj
bGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWls
eToiQ291cmllciBOZXciJz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtnYm9mX2lkLm11dGFibGVf
Y3JlYXRpb25fdHMoKS0mZ3Q7c2Vjb25kc18gPSAodV9pbnQzMl90KWJ1bmRsZV9hdHRyaWJzLnRp
bWVzdGFtcF9zZWNvbmRzKCk7PG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWlu
VGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5l
dyInPiZuYnNwOyZuYnNwOyZuYnNwOyBnYm9mX2lkLm11dGFibGVfY3JlYXRpb25fdHMoKS0mZ3Q7
c2Vxbm9fID0gKHVfaW50MzJfdClidW5kbGVfYXR0cmlicy50aW1lc3RhbXBfc2VxdWVuY2UoKTs8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdm
b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+Jm5ic3A7Jm5ic3A7Jm5i
c3A7IGdib2ZfaWQuc2V0X2lzX2ZyYWdtZW50KCBidW5kbGVfYXR0cmlicy5pc19mcmFnbWVudCgp
ICk7PG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHls
ZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPiZuYnNwOyZuYnNw
OyZuYnNwOyBpZiAoIGJ1bmRsZV9hdHRyaWJzLmZyYWdtZW50X2xlbmd0aCgpLnByZXNlbnQoKSAp
PG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0n
Zm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPiZuYnNwOyZuYnNwOyAm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtnYm9mX2lkLnNldF9mcmFnX2xlbmd0aCggKHVf
aW50MzJfdClidW5kbGVfYXR0cmlicy5mcmFnbWVudF9sZW5ndGgoKS5nZXQoKSApOzxvOnA+PC9v
OnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6
ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz4mbmJzcDsmbmJzcDsmbmJzcDsgZWxz
ZSA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxl
PSdmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Z2JvZl9pZC5zZXRfZnJhZ19sZW5n
dGgoMCk7PG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBz
dHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2Zv
bnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz4mbmJzcDsmbmJzcDsmbmJz
cDsgaWYgKCBidW5kbGVfYXR0cmlicy5mcmFnbWVudF9sZW5ndGgoKS5wcmVzZW50KCkgKTxvOnA+
PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9J2ZvbnQt
c2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz4mbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZ2JvZl9pZC5zZXRfZnJhZ19vZmZzZXQoICh1X2ludDMy
X3QpYnVuZGxlX2F0dHJpYnMuZnJhZ21lbnRfb2Zmc2V0KCkuZ2V0KCkgKTs8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdmb250LXNpemU6OS4w
cHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGVsc2UgPG86
cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9u
dC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2dib2ZfaWQuc2V0X2ZyYWdfb2Zmc2V0KDAp
OzxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PHNwYW4gc3R5bGU9
J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdmb250LXNp
emU6OS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+PG86cD4mbmJzcDs8L286cD48L3Nw
YW4+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0
O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPiZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gb3V0
Z29pbmdfYnVuZGxlc18uZmluZChnYm9mX2lkKTs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xh
c3M9TXNvUGxhaW5UZXh0PjxzcGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6
IkNvdXJpZXIgTmV3Iic+fTwvc3Bhbj48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRl
eHQ+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxvOnA+Jm5ic3A7
PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD5EYXZpZCBab2xsZXI8bzpwPjwvbzpwPjwv
cD48cCBjbGFzcz1Nc29QbGFpblRleHQ+Q09MU0EgQ29ycG9yYXRpb248bzpwPjwvbzpwPjwvcD48
cCBjbGFzcz1Nc29QbGFpblRleHQ+TWFyc2hhbGwgU3BhY2UgRmxpZ2h0IENlbnRlcjxvOnA+PC9v
OnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFz
cz1Nc29QbGFpblRleHQ+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS08YnI+RnJvbTogPGEgaHJl
Zj0ibWFpbHRvOmR0bi11c2Vycy1ib3VuY2VzQGlydGYub3JnIj5kdG4tdXNlcnMtYm91bmNlc0Bp
cnRmLm9yZzwvYT4gWzxhIGhyZWY9Im1haWx0bzpkdG4tdXNlcnMtYm91bmNlc0BpcnRmLm9yZyI+
bWFpbHRvOmR0bi11c2Vycy1ib3VuY2VzQGlydGYub3JnPC9hPl0gT24gQmVoYWxmIE9mIHl1YW5w
PGJyPlNlbnQ6IFRodXJzZGF5LCBNYXJjaCAyOCwgMjAxMyAzOjQxIEFNPGJyPlRvOiA8YSBocmVm
PSJtYWlsdG86ZHRuLXVzZXJzQGlydGYub3JnIj5kdG4tdXNlcnNAaXJ0Zi5vcmc8L2E+PGJyPlN1
YmplY3Q6IFtkdG4tdXNlcnNdIEVycm9yIGluIGNvbXBpbGluZyBEVE4yPG86cD48L286cD48L3A+
PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1Bs
YWluVGV4dD5IaSBhbGwsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PkkgYW0g
dHJ5aW5nIHRvIGluc3RhbGwgRFROMiBpbiBVYnVudHUgMTAuMDQsIGJ1dCBtZWV0IHNvbWUgZXJy
b3IuIFRoZSB2aXNpb24gb2YgZHRuMiBpcyBkdG4tMi45LjB4LiBJIGhhdmUgYWxzbyBpbnN0YWxs
ZWQgb2FzeXMtMS42LjB4LCB0Y2w4LjUuMTAsIGRiLTUuMS4yOSBhbmQgeGVyY2VzLWMtc3JjXzJf
OF8wLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD48bzpwPiZuYnNwOzwvbzpw
PjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+V2hlbiBjb25maWd1cmUgZHRuMiwgSSByZWNlaXZl
IHNvbWUgZXJyb3I6PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxvOnA+Jm5i
c3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD4uLi9zZXJ2bGliL2J1bmRsaW5nL0di
b2ZJZC5oOjExNDogZXJyb3I6IOKAmGR0bjo6RW5kcG9pbnRJRCBkdG46Okdib2ZJZDo6c291cmNl
X+KAmSBpcyBwcml2YXRlPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PmNvbnZf
bGF5ZXJzL0V4dGVybmFsQ29udmVyZ2VuY2VMYXllci5jYzoxNDA1OiBlcnJvcjogd2l0aGluIHRo
aXMgY29udGV4dDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD4uLi9zZXJ2bGli
L2J1bmRsaW5nL0dib2ZJZC5oOjExNTogZXJyb3I6IOKAmGR0bjo6QnVuZGxlVGltZXN0YW1wIGR0
bjo6R2JvZklkOjpjcmVhdGlvbl90c1/igJkgaXMgcHJpdmF0ZTxvOnA+PC9vOnA+PC9wPjxwIGNs
YXNzPU1zb1BsYWluVGV4dD5jb252X2xheWVycy9FeHRlcm5hbENvbnZlcmdlbmNlTGF5ZXIuY2M6
MTQwNjogZXJyb3I6IHdpdGhpbiB0aGlzIGNvbnRleHQ8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1N
c29QbGFpblRleHQ+Li4vc2VydmxpYi9idW5kbGluZy9HYm9mSWQuaDoxMTU6IGVycm9yOiDigJhk
dG46OkJ1bmRsZVRpbWVzdGFtcCBkdG46Okdib2ZJZDo6Y3JlYXRpb25fdHNf4oCZIGlzIHByaXZh
dGU8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+Y29udl9sYXllcnMvRXh0ZXJu
YWxDb252ZXJnZW5jZUxheWVyLmNjOjE0MDg6IGVycm9yOiB3aXRoaW4gdGhpcyBjb250ZXh0PG86
cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0Pi4uL3NlcnZsaWIvYnVuZGxpbmcvR2Jv
ZklkLmg6MTE2OiBlcnJvcjog4oCYYm9vbCBkdG46Okdib2ZJZDo6aXNfZnJhZ21lbnRf4oCZIGlz
IHByaXZhdGU8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+Y29udl9sYXllcnMv
RXh0ZXJuYWxDb252ZXJnZW5jZUxheWVyLmNjOjE0MTA6IGVycm9yOiB3aXRoaW4gdGhpcyBjb250
ZXh0PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0Pi4uL3NlcnZsaWIvYnVuZGxp
bmcvR2JvZklkLmg6MTE3OiBlcnJvcjog4oCYdV9pbnQzMl90IGR0bjo6R2JvZklkOjpmcmFnX2xl
bmd0aF/igJkgaXMgcHJpdmF0ZTxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD5j
b252X2xheWVycy9FeHRlcm5hbENvbnZlcmdlbmNlTGF5ZXIuY2M6MTQxMzogZXJyb3I6IHdpdGhp
biB0aGlzIGNvbnRleHQ8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+Li4vc2Vy
dmxpYi9idW5kbGluZy9HYm9mSWQuaDoxMTc6IGVycm9yOiDigJh1X2ludDMyX3QgZHRuOjpHYm9m
SWQ6OmZyYWdfbGVuZ3RoX+KAmSBpcyBwcml2YXRlPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNv
UGxhaW5UZXh0PmNvbnZfbGF5ZXJzL0V4dGVybmFsQ29udmVyZ2VuY2VMYXllci5jYzoxNDE1OiBl
cnJvcjogd2l0aGluIHRoaXMgY29udGV4dDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWlu
VGV4dD4uLi9zZXJ2bGliL2J1bmRsaW5nL0dib2ZJZC5oOjExODogZXJyb3I6IOKAmHVfaW50MzJf
dCBkdG46Okdib2ZJZDo6ZnJhZ19vZmZzZXRf4oCZIGlzIHByaXZhdGU8bzpwPjwvbzpwPjwvcD48
cCBjbGFzcz1Nc29QbGFpblRleHQ+Y29udl9sYXllcnMvRXh0ZXJuYWxDb252ZXJnZW5jZUxheWVy
LmNjOjE0MTg6IGVycm9yOiB3aXRoaW4gdGhpcyBjb250ZXh0PG86cD48L286cD48L3A+PHAgY2xh
c3M9TXNvUGxhaW5UZXh0Pi4uL3NlcnZsaWIvYnVuZGxpbmcvR2JvZklkLmg6MTE4OiBlcnJvcjog
4oCYdV9pbnQzMl90IGR0bjo6R2JvZklkOjpmcmFnX29mZnNldF/igJkgaXMgcHJpdmF0ZTxvOnA+
PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD5jb252X2xheWVycy9FeHRlcm5hbENvbnZl
cmdlbmNlTGF5ZXIuY2M6MTQyMDogZXJyb3I6IHdpdGhpbiB0aGlzIGNvbnRleHQ8bzpwPjwvbzpw
PjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9
TXNvUGxhaW5UZXh0PkhhcyBhbnlvbmUgbWV0IHRoaXMgZXJyb3I/IEkgYW0gZ3JlYXRseSBhcHBy
ZWNpYXRlZCBmb3Igc29tZSBoZWxwLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4
dD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+UmVnYXJkcyE8bzpw
PjwvbzpwPjwvcD48cCBjbGFzcz1Nc29QbGFpblRleHQ+PG86cD4mbmJzcDs8L286cD48L3A+PHAg
Y2xhc3M9TXNvUGxhaW5UZXh0PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWlu
VGV4dD5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxvOnA+
PC9vOnA+PC9wPjxwIGNsYXNzPU1zb1BsYWluVGV4dD5kdG4tdXNlcnMgbWFpbGluZyBsaXN0PG86
cD48L286cD48L3A+PHAgY2xhc3M9TXNvUGxhaW5UZXh0PjxhIGhyZWY9Im1haWx0bzpkdG4tdXNl
cnNAaXJ0Zi5vcmciPjxzcGFuIHN0eWxlPSdjb2xvcjp3aW5kb3d0ZXh0O3RleHQtZGVjb3JhdGlv
bjpub25lJz5kdG4tdXNlcnNAaXJ0Zi5vcmc8L3NwYW4+PC9hPjxvOnA+PC9vOnA+PC9wPjxwIGNs
YXNzPU1zb1BsYWluVGV4dD48YSBocmVmPSJodHRwczovL3d3dy5pcnRmLm9yZy9tYWlsbWFuL2xp
c3RpbmZvL2R0bi11c2VycyI+PHNwYW4gc3R5bGU9J2NvbG9yOndpbmRvd3RleHQ7dGV4dC1kZWNv
cmF0aW9uOm5vbmUnPmh0dHBzOi8vd3d3LmlydGYub3JnL21haWxtYW4vbGlzdGluZm8vZHRuLXVz
ZXJzPC9zcGFuPjwvYT48bzpwPjwvbzpwPjwvcD48L2Rpdj48L2JvZHk+PC9odG1sPg==

--_000_04E3D99A62496240BCD6A576813E6E31E0C4C93AA1NDMSSCC05ndcn_--

From elwynd@folly.org.uk  Thu Mar 28 08:39:46 2013
Return-Path: <elwynd@folly.org.uk>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8240F21F9023 for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 08:39:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.204
X-Spam-Level: 
X-Spam-Status: No, score=-1.204 tagged_above=-999 required=5 tests=[AWL=-0.465, BAYES_20=-0.74]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2mu-8Zh+D6aS for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 08:39:46 -0700 (PDT)
Received: from a.painless.aa.net.uk (a.painless.aa.net.uk [IPv6:2001:8b0:0:30::51bb:1e33]) by ietfa.amsl.com (Postfix) with ESMTP id EFBC521F901D for <dtn-users@irtf.org>; Thu, 28 Mar 2013 08:39:45 -0700 (PDT)
Received: from mightyatom.folly.org.uk ([81.187.254.250]) by a.painless.aa.net.uk with esmtp (Exim 4.77) (envelope-from <elwynd@folly.org.uk>) id 1ULEvQ-0003wW-6p; Thu, 28 Mar 2013 15:39:36 +0000
From: Elwyn Davies <elwynd@folly.org.uk>
To: "Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]" <david.a.zoller@nasa.gov>
In-Reply-To: <04E3D99A62496240BCD6A576813E6E31E0C4C93AA1@NDMSSCC05.ndc.nasa.gov>
References: <04E3D99A62496240BCD6A576813E6E31E0C4C93951@NDMSSCC05.ndc.nasa.gov> <04E3D99A62496240BCD6A576813E6E31E0C4C93AA1@NDMSSCC05.ndc.nasa.gov>
Content-Type: text/plain; charset="windows-1251"
Organization: Folly Consulting
Date: Thu, 28 Mar 2013 15:35:50 +0000
Message-Id: <1364484951.5273.9.camel@mightyatom>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.3 
Content-Transfer-Encoding: quoted-printable
Cc: "dtn-users@irtf.org" <dtn-users@irtf.org>, yuanp <yuanp1990@163.com>
Subject: Re: [dtn-users] Error in compiling DTN2 (2.9.0x - not the official version)
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Mar 2013 15:39:46 -0000

OK.

Yes.. the official version should be OK but also ought to be fixed up.

What is the status of the patches - Are they sufficiently stable to
include in the main line code now? Do you have any figures for what the
performance improvements have done to make thinsg better?

I'll talk to Alex about getting these merged into Sourceforge.

Regards,
Elwyn


On Thu, 2013-03-28 at 09:49 -0500, Zoller, David A. (MSFC-EO50)[HOSC
SERVICES CONTRACT] wrote:
> Hi again,

> Elwyn =96 I was able to verify that the official DTN2 version still
> compiles correctly with the external convergence layer enabled.
>=20
> Sorry for the confusion,
>=20
> DZ
>=20
> =20
>=20
> David Zoller
>=20
> COLSA Corporation
>=20
> Marshall Space Flight Center

>=20


From James.R.Wright@colorado.edu  Thu Mar 28 09:06:28 2013
Return-Path: <James.R.Wright@colorado.edu>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 645F721F8EC1 for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 09:06:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Slnsw3AE-C+W for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 09:06:27 -0700 (PDT)
Received: from ipmx6.colorado.edu (ipmx6.colorado.edu [128.138.128.246]) by ietfa.amsl.com (Postfix) with ESMTP id ADDF521F8BE9 for <dtn-users@irtf.org>; Thu, 28 Mar 2013 09:06:27 -0700 (PDT)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AqMEADZpVFHAqBGa/2dsb2JhbABDgmZUgx67SYEadIIfAQEBAwEBAQEBHAQRAjcQCwIBCBgDKAMnAwglAQEEE4gOBgELrEYMiSaJCwSBJI1BOoIuMWEDiHieeIMq
X-IronPort-AV: E=Sophos;i="4.84,927,1355122800"; d="scan'208";a="25216368"
Received: from omr-raz-1-priv.int.colorado.edu ([192.168.17.154]) by ipmx6-priv.int.colorado.edu with ESMTP; 28 Mar 2013 10:06:27 -0600
Received: from exhub2-pub.colorado.edu (EHLO exhub2.ad.colorado.edu) ([128.138.123.208]) by omr-raz-1-priv.int.colorado.edu (MOS 4.1.10-GA FastPath queued) with ESMTP id JZV32096; Thu, 28 Mar 2013 10:06:26 -0600 (MDT)
Received: from exc4.ad.colorado.edu ([fe80::884c:d8ff:be51:8b4f]) by exhub2.ad.colorado.edu ([::1]) with mapi; Thu, 28 Mar 2013 10:06:25 -0600
From: Jim Wright <James.R.Wright@Colorado.EDU>
To: dtn-users maillist <dtn-users@irtf.org>
Date: Thu, 28 Mar 2013 10:06:25 -0600
Thread-Topic: [dtn-users] Error in compiling DTN2 (2.9.0x - not the official version)
Thread-Index: Ac4rzjKvBzso+fw8RcKYSHNJvHGnJA==
Message-ID: <9A0235FA-48F0-46B3-A009-046F987C71E9@colorado.edu>
References: <04E3D99A62496240BCD6A576813E6E31E0C4C93951@NDMSSCC05.ndc.nasa.gov> <04E3D99A62496240BCD6A576813E6E31E0C4C93AA1@NDMSSCC05.ndc.nasa.gov> <1364484951.5273.9.camel@mightyatom>
In-Reply-To: <1364484951.5273.9.camel@mightyatom>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="windows-1251"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [dtn-users] Error in compiling DTN2 (2.9.0x - not the official version)
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Mar 2013 16:06:28 -0000

Regarding the dependency on xerces-c, it explicitly states that it must be =
less than version 3.0.0. This is fine for Ubuntu 10.04, but 12.04 has a new=
er version. I presume a number of other distributions also include the newe=
r version since 3.0.0 was released in 2008. It would be useful to investiga=
te whether this restriction is necessary.

On a more general note, is user-contributed code welcome in DTN2? I've done=
 a bit of work lately but have no idea how to contribute it back. What is t=
he process for the evolution of the DTN2 code? Is there some sort of system=
 for submitting patches and tracking whether they are being accepted or not=
?

Thanks,
Jim


On Mar 28, 2013, at 9:35 AM, Elwyn Davies wrote:

> OK.
>=20
> Yes.. the official version should be OK but also ought to be fixed up.
>=20
> What is the status of the patches - Are they sufficiently stable to
> include in the main line code now? Do you have any figures for what the
> performance improvements have done to make thinsg better?
>=20
> I'll talk to Alex about getting these merged into Sourceforge.
>=20
> Regards,
> Elwyn
>=20
>=20
> On Thu, 2013-03-28 at 09:49 -0500, Zoller, David A. (MSFC-EO50)[HOSC
> SERVICES CONTRACT] wrote:
>> Hi again,
>=20
>> Elwyn =96 I was able to verify that the official DTN2 version still
>> compiles correctly with the external convergence layer enabled.
>>=20
>> Sorry for the confusion,
>>=20
>> DZ
>>=20
>>=20
>>=20
>> David Zoller
>>=20
>> COLSA Corporation
>>=20
>> Marshall Space Flight Center
>=20
>>=20
>=20
> _______________________________________________
> dtn-users mailing list
> dtn-users@irtf.org
> https://www.irtf.org/mailman/listinfo/dtn-users


From elwynd@folly.org.uk  Thu Mar 28 09:32:22 2013
Return-Path: <elwynd@folly.org.uk>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 50DE621F8EBB for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 09:32:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[AWL=0.620,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id INsEBh7tm-Fu for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 09:32:21 -0700 (PDT)
Received: from a.painless.aa.net.uk (a.painless.aa.net.uk [IPv6:2001:8b0:0:30::51bb:1e33]) by ietfa.amsl.com (Postfix) with ESMTP id 785B121F8E6B for <dtn-users@irtf.org>; Thu, 28 Mar 2013 09:32:21 -0700 (PDT)
Received: from mightyatom.folly.org.uk ([81.187.254.250]) by a.painless.aa.net.uk with esmtp (Exim 4.77) (envelope-from <elwynd@folly.org.uk>) id 1ULFkQ-0007yG-Jf; Thu, 28 Mar 2013 16:32:18 +0000
From: Elwyn Davies <elwynd@folly.org.uk>
To: Jim Wright <James.R.Wright@Colorado.EDU>
In-Reply-To: <9A0235FA-48F0-46B3-A009-046F987C71E9@colorado.edu>
References: <04E3D99A62496240BCD6A576813E6E31E0C4C93951@NDMSSCC05.ndc.nasa.gov> <04E3D99A62496240BCD6A576813E6E31E0C4C93AA1@NDMSSCC05.ndc.nasa.gov> <1364484951.5273.9.camel@mightyatom> <9A0235FA-48F0-46B3-A009-046F987C71E9@colorado.edu>
Content-Type: text/plain; charset="windows-1251"
Organization: Folly Consulting
Date: Thu, 28 Mar 2013 16:28:32 +0000
Message-Id: <1364488112.5273.30.camel@mightyatom>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.3 
Content-Transfer-Encoding: quoted-printable
Cc: dtn-users maillist <dtn-users@irtf.org>
Subject: Re: [dtn-users] Error in compiling DTN2 (2.9.0x - not the official version)
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Mar 2013 16:32:22 -0000

Hi, Jim.

On Thu, 2013-03-28 at 10:06 -0600, Jim Wright wrote:
> Regarding the dependency on xerces-c, it explicitly states that it
> must be less than version 3.0.0. This is fine for Ubuntu 10.04, but
> 12.04 has a newer version. I presume a number of other distributions
> also include the newer version since 3.0.0 was released in 2008. It
> would be useful to investigate whether this restriction is necessary.

The restriction is necessary.  I was bitten by this some time ago and
put in the ACS check to require v2.x (x >=3D 6).  The interface has been
changed for Xerces-3 and the DTN2 code is not compatible... of course if
anybody has time or inclination to update it but it didn't appear to be
trivial.

As regards Ubuntu 12.04, the repositories have both 3.0 and 2.8. I have
a machine here running Ubuntu 12.04 with Xerces 2.8 from the repository
which is just fine - you need libxerces-c28 and libxerces-c2-dev.

>=20
> On a more general note, is user-contributed code welcome in DTN2?=20

Certainly.  The chief maintainer is Alex McMahon at TCD.

> I've done a bit of work lately but have no idea how to contribute it
> back. What is the process for the evolution of the DTN2 code? Is there
> some sort of system for submitting patches and tracking whether they
> are being accepted or not?

The first stage is to send a set of patches against the current
sourceforge tip changeset together with a description of what has been
done as a text file that can be used for the change log.

There should preferably by some unit test code to go with it.

The patches can either be incorporated into the mainline by Alex if they
seem of general use or left as a set of patches for people to use
according to taste.  The acceptance of patches is pretty informal -
email exchange on dtn-users is the usual way!  Conforming to the general
coding standard uased in DTN2 is obviously important.  We run a nightly
build/test process to check everything is still in good shape.

So let us know what you have done.

BRW I have a set of API improvements and a completion for the scripting
API to allow it to handle extension and metadata blocks in bundles which
was previously missing.  This will be coming out very shortly.

Regards,
Elwyn
>=20
> Thanks,
> Jim
>=20
>=20
> On Mar 28, 2013, at 9:35 AM, Elwyn Davies wrote:
>=20
> > OK.
> >=20
> > Yes.. the official version should be OK but also ought to be fixed up.
> >=20
> > What is the status of the patches - Are they sufficiently stable to
> > include in the main line code now? Do you have any figures for what the
> > performance improvements have done to make thinsg better?
> >=20
> > I'll talk to Alex about getting these merged into Sourceforge.
> >=20
> > Regards,
> > Elwyn
> >=20
> >=20
> > On Thu, 2013-03-28 at 09:49 -0500, Zoller, David A. (MSFC-EO50)[HOSC
> > SERVICES CONTRACT] wrote:
> >> Hi again,
> >=20
> >> Elwyn =96 I was able to verify that the official DTN2 version still
> >> compiles correctly with the external convergence layer enabled.
> >>=20
> >> Sorry for the confusion,
> >>=20
> >> DZ
> >>=20
> >>=20
> >>=20
> >> David Zoller
> >>=20
> >> COLSA Corporation
> >>=20
> >> Marshall Space Flight Center
> >=20
> >>=20
> >=20
> > _______________________________________________
> > dtn-users mailing list
> > dtn-users@irtf.org
> > https://www.irtf.org/mailman/listinfo/dtn-users
>=20
> _______________________________________________
> dtn-users mailing list
> dtn-users@irtf.org
> https://www.irtf.org/mailman/listinfo/dtn-users


From elwynd@folly.org.uk  Thu Mar 28 09:53:19 2013
Return-Path: <elwynd@folly.org.uk>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 98FD821F8F16 for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 09:53:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.134
X-Spam-Level: 
X-Spam-Status: No, score=-2.134 tagged_above=-999 required=5 tests=[AWL=0.465,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Krg4LAF85Nii for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 09:53:18 -0700 (PDT)
Received: from b.painless.aa.net.uk (b.painless.aa.net.uk [IPv6:2001:8b0:0:30::51bb:1e34]) by ietfa.amsl.com (Postfix) with ESMTP id 80F0C21F8AE3 for <dtn-users@irtf.org>; Thu, 28 Mar 2013 09:53:18 -0700 (PDT)
Received: from mightyatom.folly.org.uk ([81.187.254.250]) by b.painless.aa.net.uk with esmtp (Exim 4.72) (envelope-from <elwynd@folly.org.uk>) id 1ULG4h-0006Ku-KX; Thu, 28 Mar 2013 16:53:15 +0000
From: Elwyn Davies <elwynd@folly.org.uk>
To: Brian Adamson <brian.adamson@nrl.navy.mil>
In-Reply-To: <FF0E7945-11DB-43A6-9242-4F7DAB4FF4FF@nrl.navy.mil>
References: <1358030312.28723.4339.camel@mightyatom> <FF0E7945-11DB-43A6-9242-4F7DAB4FF4FF@nrl.navy.mil>
Content-Type: text/plain
Organization: Folly Consulting
Date: Thu, 28 Mar 2013 16:49:30 +0000
Message-Id: <1364489370.5273.34.camel@mightyatom>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.3 
Content-Transfer-Encoding: 7bit
Cc: Brian Adamson <adamson@itd.nrl.navy.mil>, DTN Users <dtn-users@irtf.org>
Subject: Re: [dtn-users] DTN2 NORM convergence layer
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Mar 2013 16:53:19 -0000

Hi, Brian.

Did you make any progress with this?

In the meantime would it be OK to upload my snapshot of the NORM 1.4b4
code to the DTN2 Sourceforge site so that people can continue working
with NORM if they wish to?

Regards,
Elwyn

On Sat, 2013-01-12 at 18:40 -0500, Brian Adamson wrote:
> I'll talk to the guys who did the DTN binding.  There are some
> important fixes to pick up from the current code and I suspect the
> NORM API calls may need some minor tweaking
> 
> Sent from my iPhone
> 
> On Jan 12, 2013, at 5:38 PM, Elwyn Davies <elwynd@folly.org.uk> wrote:
> 
> > Hi, Brian.
> > 
> > Sergey Reskin and I have been trying to get the NORM convergence layer
> > working in DTN2.
> > 
> > I get the impression that the NORM code has moved along a bit since
> > there was much activity with NORM and DTN2 with the result that it
> > appears the latest daily snapshot compiles and links OK with DTN2 but
> > doesn't run.  Crashes when trying to send a bundle for transmission.
> > 
> > I took a snapshot of the version 1.4b4 code about 2 years ago - the
> > README.TXT is dated March 13 2009 and the TODO.TXT April 12 2010.  This
> > version appears to be nearly compabible with DTN2 - it runs after I
> > added case statements for NORM_TX_RATE_CHANGED to NORMReceiver.cc and
> > NORMSessionManager.cc event case statements.
> > 
> > Would it be possible to:
> > 1. Put a snapshot of the code that will work on the navy.mil downlaod
> > site.
> > 2. Let us know what has been changed and/or provide some patches that
> > will allow the most recent code to be used with DTN2.
> > 
> > Regards,
> > Elwyn Davies
> > Folly Consulting/ Trinity College Dublin
> > 
> > 


From david.a.zoller@nasa.gov  Thu Mar 28 11:28:50 2013
Return-Path: <david.a.zoller@nasa.gov>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CC6FF21F9012 for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 11:28:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[AWL=0.001,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8GdjKaarB5aC for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 11:28:46 -0700 (PDT)
Received: from ndmsnpf02.ndc.nasa.gov (NDMSNPF02.ndc.nasa.gov [IPv6:2001:4d0:8302:1100::102]) by ietfa.amsl.com (Postfix) with ESMTP id 88DE921F8AE6 for <dtn-users@irtf.org>; Thu, 28 Mar 2013 11:28:44 -0700 (PDT)
Received: from ndmsppt102.ndc.nasa.gov (NDMSPPT102.ndc.nasa.gov [198.117.0.67]) by ndmsnpf02.ndc.nasa.gov (Postfix) with ESMTP id D369DD8058; Thu, 28 Mar 2013 13:28:42 -0500 (CDT)
Received: from ndmshub02.ndc.nasa.gov (ndmshub02-pub.ndc.nasa.gov [198.117.0.161]) by ndmsppt102.ndc.nasa.gov (8.14.5/8.14.5) with ESMTP id r2SISgjx021500; Thu, 28 Mar 2013 13:28:42 -0500
Received: from NDMSSCC05.ndc.nasa.gov ([198.117.2.174]) by ndmshub02.ndc.nasa.gov ([198.117.2.161]) with mapi; Thu, 28 Mar 2013 13:28:42 -0500
From: "Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]" <david.a.zoller@nasa.gov>
To: Elwyn Davies <elwynd@folly.org.uk>
Date: Thu, 28 Mar 2013 13:28:41 -0500
Thread-Topic: DTN2.9 performance imprevement patches
Thread-Index: Ac4r3hmAOoKD7yX0RsWb1KDAdF8EAw==
Message-ID: <04E3D99A62496240BCD6A576813E6E31E0C4C93CCC@NDMSSCC05.ndc.nasa.gov>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8626, 1.0.431, 0.0.0000 definitions=2013-03-28_07:2013-03-28, 2013-03-28, 1970-01-01 signatures=0
Cc: "dtn-users@irtf.org" <dtn-users@irtf.org>
Subject: [dtn-users] DTN2.9 performance imprevement patches
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Mar 2013 18:28:50 -0000

Elwyn,
The patches were started using 2.8 with the final touches made after upgrad=
ing recently to the 2.9 version so they don't have a long running history y=
et. These patches are fairly wide reaching so I cannot say positively that =
nothing was inadvertently broken. Watching the mailing list, I recently lea=
rned that the test-utils component is needed for the tcl tests so I'll pull=
 that to see if those tests run properly.=20

As for general performance on the systems I was using, the 2.8 baseline cou=
ld not sustain a 40 bundle per second input for 20 minutes, halted other pr=
ocessing when a link connected while it transferred accumulated bundles and=
 aborted if more than 64K bundles were ready for delivery when a registrati=
on connected. In my testing, the patches overcome all of the above while ru=
nning at 160 bundles per second. I admit that I have not run the same test =
with the 2.9 baseline but have not seen any other patches targeting any of =
this either.=20

I have not seen an overwhelming interest in the patches so I don't know if =
there is much desire to incorporate them as is. If nothing else there may b=
e some ideas hidden in there that might be pulled out and improved upon. I'=
d be happy to accept some direction and/or help vetting the patches...

Regards,
DZ

David Zoller
COLSA Corporation
Marshall Space Flight Center


-----Original Message-----
From: Elwyn Davies [mailto:elwynd@folly.org.uk]=20
Sent: Thursday, March 28, 2013 10:36 AM
To: Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]
Cc: yuanp; dtn-users@irtf.org
Subject: Re: [dtn-users] Error in compiling DTN2 (2.9.0x - not the official=
 version)

OK.

Yes.. the official version should be OK but also ought to be fixed up.

What is the status of the patches - Are they sufficiently stable to include=
 in the main line code now? Do you have any figures for what the performanc=
e improvements have done to make thinsg better?

I'll talk to Alex about getting these merged into Sourceforge.

Regards,
Elwyn


On Thu, 2013-03-28 at 09:49 -0500, Zoller, David A. (MSFC-EO50)[HOSC SERVIC=
ES CONTRACT] wrote:
> Hi again,

> Elwyn - I was able to verify that the official DTN2 version still=20
> compiles correctly with the external convergence layer enabled.
>=20
> Sorry for the confusion,
>=20
> DZ
>=20
> =20
>=20
> David Zoller
>=20
> COLSA Corporation
>=20
> Marshall Space Flight Center

>=20


From brian.adamson@nrl.navy.mil  Thu Mar 28 13:10:56 2013
Return-Path: <brian.adamson@nrl.navy.mil>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ED22D21F8E6B for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 13:10:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.043
X-Spam-Level: 
X-Spam-Status: No, score=-2.043 tagged_above=-999 required=5 tests=[AWL=0.555,  BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4yTdIkx4d9iL for <dtn-users@ietfa.amsl.com>; Thu, 28 Mar 2013 13:10:55 -0700 (PDT)
Received: from ccs.nrl.navy.mil (mx0.ccs.nrl.navy.mil [IPv6:2001:480:20:118:118::211]) by ietfa.amsl.com (Postfix) with ESMTP id C76F321F8733 for <dtn-users@irtf.org>; Thu, 28 Mar 2013 13:10:54 -0700 (PDT)
Received: from macsimus.itd.nrl.navy.mil (macsimus.itd.nrl.navy.mil [132.250.92.151]) by ccs.nrl.navy.mil (8.14.4/8.14.4) with ESMTP id r2SKAlJY006902 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Thu, 28 Mar 2013 16:10:48 -0400
Mime-Version: 1.0 (Apple Message framework v1085)
Content-Type: multipart/alternative; boundary=Apple-Mail-17--352974983
From: Brian Adamson <brian.adamson@nrl.navy.mil>
In-Reply-To: <1364489370.5273.34.camel@mightyatom>
Date: Thu, 28 Mar 2013 16:08:01 -0400
Message-Id: <6838A562-5331-4CCD-B2FE-CECA6B29F0D6@nrl.navy.mil>
References: <1358030312.28723.4339.camel@mightyatom> <FF0E7945-11DB-43A6-9242-4F7DAB4FF4FF@nrl.navy.mil> <1364489370.5273.34.camel@mightyatom>
To: Elwyn Davies <elwynd@folly.org.uk>
X-Mailer: Apple Mail (2.1085)
X-CCS-MailScanner: No viruses found.
X-CCS-MailScanner-Info: See: http://www.nrl.navy.mil/ccs/support/email
Cc: Brian Adamson <adamson@itd.nrl.navy.mil>, DTN Users <dtn-users@irtf.org>
Subject: Re: [dtn-users] DTN2 NORM convergence layer
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Mar 2013 20:10:56 -0000

--Apple-Mail-17--352974983
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi Elwyn,

Can you send me that snapshot?  I could probably troll through the SVN =
history and possibly get to your "golden" version myself, but this would =
guarantee I had a good reference to look at the delta from the current =
code and see what the issue might be.  I suspect there were some NORM =
API changes I made where I didn't realize it would create a backwards =
compatibility issue (likely where a pointer is now passed instead of an =
"int" or something that slips through the compiler but causes a runtime =
issue).  Looking at the delta in "normApi.h" would let me quickly see =
where the DTN code may be passing NORM what is now a problematic =
parameter value. =20

I had spoken briefly to Keith Scott about your issue but my follow =
through with his guys slipped by the wayside (my fault).  I am =
re-enaging them, too in parallel with this. Sorry for the slow response!

cheers,


Brian Adamson
brian.adamson@nrl.navy.mil




On Mar 28, 2013, at 12:49 PM, Elwyn Davies wrote:

> Hi, Brian.
>=20
> Did you make any progress with this?
>=20
> In the meantime would it be OK to upload my snapshot of the NORM 1.4b4
> code to the DTN2 Sourceforge site so that people can continue working
> with NORM if they wish to?
>=20
> Regards,
> Elwyn
>=20
> On Sat, 2013-01-12 at 18:40 -0500, Brian Adamson wrote:
>> I'll talk to the guys who did the DTN binding.  There are some
>> important fixes to pick up from the current code and I suspect the
>> NORM API calls may need some minor tweaking
>>=20
>> Sent from my iPhone
>>=20
>> On Jan 12, 2013, at 5:38 PM, Elwyn Davies <elwynd@folly.org.uk> =
wrote:
>>=20
>>> Hi, Brian.
>>>=20
>>> Sergey Reskin and I have been trying to get the NORM convergence =
layer
>>> working in DTN2.
>>>=20
>>> I get the impression that the NORM code has moved along a bit since
>>> there was much activity with NORM and DTN2 with the result that it
>>> appears the latest daily snapshot compiles and links OK with DTN2 =
but
>>> doesn't run.  Crashes when trying to send a bundle for transmission.
>>>=20
>>> I took a snapshot of the version 1.4b4 code about 2 years ago - the
>>> README.TXT is dated March 13 2009 and the TODO.TXT April 12 2010.  =
This
>>> version appears to be nearly compabible with DTN2 - it runs after I
>>> added case statements for NORM_TX_RATE_CHANGED to NORMReceiver.cc =
and
>>> NORMSessionManager.cc event case statements.
>>>=20
>>> Would it be possible to:
>>> 1. Put a snapshot of the code that will work on the navy.mil =
downlaod
>>> site.
>>> 2. Let us know what has been changed and/or provide some patches =
that
>>> will allow the most recent code to be used with DTN2.
>>>=20
>>> Regards,
>>> Elwyn Davies
>>> Folly Consulting/ Trinity College Dublin
>>>=20
>>>=20


--Apple-Mail-17--352974983
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi =
Elwyn,<div><br></div><div>Can you send me that snapshot? &nbsp;I could =
probably troll through the SVN history and possibly get to your "golden" =
version myself, but this would guarantee I had a good reference to look =
at the delta from the current code and see what the issue might be. =
&nbsp;I suspect there were some NORM API changes I made where I didn't =
realize it would create a backwards compatibility issue (likely where a =
pointer is now passed instead of an "int" or something that slips =
through the compiler but causes a runtime issue). &nbsp;Looking at the =
delta in "normApi.h" would let me quickly see where the DTN code may be =
passing NORM what is now a problematic parameter value. =
&nbsp;</div><div><br></div><div>I had spoken briefly to Keith Scott =
about your issue but my follow through with his guys slipped by the =
wayside (my fault). &nbsp;I am re-enaging them, too in parallel with =
this. Sorry for the slow =
response!</div><div><br></div><div>cheers,</div><div><br></div><div><br><d=
iv>
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: =
0px; text-transform: none; white-space: normal; widows: 2; word-spacing: =
0px; -webkit-border-horizontal-spacing: 0px; =
-webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; color: =
rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: =
normal; font-weight: normal; letter-spacing: normal; line-height: =
normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: =
0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; "><div><div>Brian =
Adamson</div><div><a =
href=3D"mailto:brian.adamson@nrl.navy.mil">brian.adamson@nrl.navy.mil</a><=
/div><div><br></div></div></div></span><br =
class=3D"Apple-interchange-newline"></span><br =
class=3D"Apple-interchange-newline">
</div>
<br><div><div>On Mar 28, 2013, at 12:49 PM, Elwyn Davies wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div>Hi, =
Brian.<br><br>Did you make any progress with this?<br><br>In the =
meantime would it be OK to upload my snapshot of the NORM 1.4b4<br>code =
to the DTN2 Sourceforge site so that people can continue working<br>with =
NORM if they wish to?<br><br>Regards,<br>Elwyn<br><br>On Sat, 2013-01-12 =
at 18:40 -0500, Brian Adamson wrote:<br><blockquote type=3D"cite">I'll =
talk to the guys who did the DTN binding. &nbsp;There are =
some<br></blockquote><blockquote type=3D"cite">important fixes to pick =
up from the current code and I suspect the<br></blockquote><blockquote =
type=3D"cite">NORM API calls may need some minor =
tweaking<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">Sent from my =
iPhone<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">On Jan 12, =
2013, at 5:38 PM, Elwyn Davies &lt;<a =
href=3D"mailto:elwynd@folly.org.uk">elwynd@folly.org.uk</a>&gt; =
wrote:<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">Hi, Brian.<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">Sergey Reskin and I have been =
trying to get the NORM convergence =
layer<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">working in DTN2.<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">I get the impression that the =
NORM code has moved along a bit =
since<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">there was much activity with NORM and DTN2 with the result =
that it<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote=
 type=3D"cite">appears the latest daily snapshot compiles and links OK =
with DTN2 but<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">doesn't run. &nbsp;Crashes when =
trying to send a bundle for =
transmission.<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">I took a snapshot of the version =
1.4b4 code about 2 years ago - =
the<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">README.TXT is dated March 13 2009 and the TODO.TXT April =
12 2010. &nbsp;This<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">version appears to be nearly =
compabible with DTN2 - it runs after =
I<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">added case statements for NORM_TX_RATE_CHANGED to =
NORMReceiver.cc and<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">NORMSessionManager.cc event case =
statements.<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">Would it be possible =
to:<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">1. Put a snapshot of the code that will work on the =
navy.mil downlaod<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite">site.<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">2. Let us know what has been =
changed and/or provide some patches =
that<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">will allow the most recent code to be used with =
DTN2.<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite">Regards,<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">Elwyn =
Davies<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">Folly Consulting/ Trinity College =
Dublin<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote></div></blockquote></div><br><=
/div></body></html>=

--Apple-Mail-17--352974983--

From nageshblore@gmail.com  Sat Mar 30 14:32:05 2013
Return-Path: <nageshblore@gmail.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4674421F858C for <dtn-users@ietfa.amsl.com>; Sat, 30 Mar 2013 14:32:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.699
X-Spam-Level: 
X-Spam-Status: No, score=-1.699 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_13=0.6, MIME_8BIT_HEADER=0.3, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CEbIlYeyLceA for <dtn-users@ietfa.amsl.com>; Sat, 30 Mar 2013 14:32:04 -0700 (PDT)
Received: from mail-ob0-x234.google.com (mail-ob0-x234.google.com [IPv6:2607:f8b0:4003:c01::234]) by ietfa.amsl.com (Postfix) with ESMTP id B129D21F8581 for <dtn-users@irtf.org>; Sat, 30 Mar 2013 14:32:01 -0700 (PDT)
Received: by mail-ob0-f180.google.com with SMTP id wo10so1076083obc.25 for <dtn-users@irtf.org>; Sat, 30 Mar 2013 14:32:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=cbOAg8QgyXf4BwmFZzB8fMLO/sQSA0X3ra1YXkrgWQw=; b=QfPUf23M4jnWFIV+tOQmL3N2czlO9bT2Sp3D4m6cgpuXA18iwTV//eF2mCRc14/xzO F53IPJt6y2BLgL3W0tQRDtwbBOE3SnCINeUCT/LmpczRIapboNvdEI7x1d1kjucFmU4y JEtxzGidGimkaQOSmEiCelO++VKgNbGjVPjutvvuAdrD8nBGZvYXXRJfakGYizQRAjMM AceuEbnLzx2bvfxryZwCUS0aS0JFqS476/jcP85870vXNY80/p9OAX7LN/x1s1rZT45z aPHCCCk8F3a75D4wmgLiDNTB8NuA9viT8Fb2jBK5xwAX3VIxEOVWVMbEeIH6u82Lw+If JO5g==
MIME-Version: 1.0
X-Received: by 10.60.13.162 with SMTP id i2mr2333693oec.121.1364679121302; Sat, 30 Mar 2013 14:32:01 -0700 (PDT)
Received: by 10.60.133.36 with HTTP; Sat, 30 Mar 2013 14:32:01 -0700 (PDT)
Date: Sun, 31 Mar 2013 03:02:01 +0530
Message-ID: <CAK6GkD201USKSNS0GF4B7tMNKq+bc-FVjegxbKXtfXFp_oePgw@mail.gmail.com>
From: =?UTF-8?B?4LKo4LK+4LKX4LOH4LK24LONIOCyuOCzgeCyrOCzjeCysOCyueCzjeCyruCyo+CzjeCyryAoTg==?= =?UTF-8?B?YWdlc2ggUyk=?= <nageshblore@gmail.com>
To: dtn-users@irtf.org
Content-Type: multipart/alternative; boundary=e89a8fb2011841fb7e04d92b1ed6
Subject: [dtn-users] DTN2 configuration unable to find OASYS.
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Sat, 30 Mar 2013 21:32:43 -0000

--e89a8fb2011841fb7e04d92b1ed6
Content-Type: text/plain; charset=ISO-8859-1

Hi,
I am using oasys-1.6.0 and dtn-2.9.0. The configuration for DTN is unable
to locate oasys installation with the --with-oasys parameter. How do I get
around this problem ?

This is Ubuntu-12.04 LTS on 64-bit machine.

user@host:~/dtn-2.9.0$ sh configure --with-oasys=/home/user/oasys-1.6.0
checking location of source directory... "/home/user/dtn-2.9.0"
checking location of build directory... "/home/user/dtn-2.9.0"
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for an oasys installation (version 1.5 or better)...

Configure error finding oasys.

This script first looks for an oasys installation in the same location
as the tool that is using the oasys library (where this configure
script is run from). In other words, it first tries ../oasys.

If ../oasys does not exist, it looks for an oasys installation in
/usr. If that is not found, you need to specify the location of oasys
using the --with-oasys argument to configure.

If problems still exist, then look in the config.log to see exactly
what the failing command was.

Download oasys-1.5 (or later)
from http://dtn.hg.sourceforge.net/hgweb/dtn/oasys to
/home/user/oasys-1.6.0.
You will then probably have to run ./configure and make
in the oasys code tree in order to be able to compile DTN2

configure: error: nonexistent oasys include directory
/home/user/oasys-1.6.0/include

--e89a8fb2011841fb7e04d92b1ed6
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>Hi,<br></div>I am using oasys-1.6.0 and dtn-2.9.=
0. The configuration for DTN is unable to locate oasys installation with th=
e --with-oasys parameter. How do I get around this problem ?<br><br></div>
This is Ubuntu-12.04 LTS on 64-bit machine.<br><br>user@host:~/dtn-2.9.0$ s=
h configure --with-oasys=3D/home/user/oasys-1.6.0<br>checking location of s=
ource directory... &quot;/home/user/dtn-2.9.0&quot;<br>checking location of=
 build directory... &quot;/home/user/dtn-2.9.0&quot;<br>
checking for gcc... gcc<br>checking whether the C compiler works... yes<br>=
checking for C compiler default output file name... a.out<br>checking for s=
uffix of executables... <br>checking whether we are cross compiling... no<b=
r>
checking for suffix of object files... o<br>checking whether we are using t=
he GNU C compiler... yes<br>checking whether gcc accepts -g... yes<br>check=
ing for gcc option to accept ISO C89... none needed<br>checking for an oasy=
s installation (version 1.5 or better)... <br>
<br>Configure error finding oasys.<br><br>This script first looks for an oa=
sys installation in the same location<br>as the tool that is using the oasy=
s library (where this configure<br>script is run from). In other words, it =
first tries ../oasys.<br>
<br>If ../oasys does not exist, it looks for an oasys installation in<br>/u=
sr. If that is not found, you need to specify the location of oasys<br>usin=
g the --with-oasys argument to configure.<br><br>If problems still exist, t=
hen look in the config.log to see exactly<br>
what the failing command was.<br><br>Download oasys-1.5 (or later)<br>from =
<a href=3D"http://dtn.hg.sourceforge.net/hgweb/dtn/oasys">http://dtn.hg.sou=
rceforge.net/hgweb/dtn/oasys</a> to /home/user/oasys-1.6.0.<br>You will the=
n probably have to run ./configure and make<br>
in the oasys code tree in order to be able to compile DTN2<br><br>configure=
: error: nonexistent oasys include directory /home/user/oasys-1.6.0/include=
<br><br></div>

--e89a8fb2011841fb7e04d92b1ed6--

From nageshblore@gmail.com  Sat Mar 30 14:36:50 2013
Return-Path: <nageshblore@gmail.com>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A05CE21F8265 for <dtn-users@ietfa.amsl.com>; Sat, 30 Mar 2013 14:36:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.922
X-Spam-Level: 
X-Spam-Status: No, score=-2.922 tagged_above=-999 required=5 tests=[AWL=-0.224, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_13=0.6, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2G7rWkAA6vG3 for <dtn-users@ietfa.amsl.com>; Sat, 30 Mar 2013 14:36:50 -0700 (PDT)
Received: from mail-oa0-f48.google.com (mail-oa0-f48.google.com [209.85.219.48]) by ietfa.amsl.com (Postfix) with ESMTP id EEAEE21F8206 for <dtn-users@irtf.org>; Sat, 30 Mar 2013 14:36:47 -0700 (PDT)
Received: by mail-oa0-f48.google.com with SMTP id j1so1163657oag.21 for <dtn-users@irtf.org>; Sat, 30 Mar 2013 14:36:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=hOE3ikOPlg6QV5srIMlffwySmX1mpvgeh8mc+agopWw=; b=fndU2XsdlS3quEHVWtceRgLEuKCs53zEaWjIz6kNGFGcVH6G+TclOylNOZJq2sqtI7 ft4JuTwGJqJOcUAw8bqvUJlDgRlJ3jXsll5BNMXbKIdTfzvDh1+YQy6UAjswhevLDU7k Ak3WQuZnyZUWElfM9ZA+tXzFAkw1SFw4/P3BHipGD0jswnDL3Bwr1289+dOMvHht9C4B dfc2Ci9lBG1ebaOCJAbPjDD0jI2Wp6We3TUSKmjDtGKYlHgn7tVGZ7hbFpkQIIKu8Byx 6i9eB/D5PFeGziJno4DZ1B+udvNhsXOpydQNouy3cMOWOfxTlL/XXjw16OzxTeN+nrmX Oy3w==
MIME-Version: 1.0
X-Received: by 10.182.52.102 with SMTP id s6mr2327177obo.87.1364679397942; Sat, 30 Mar 2013 14:36:37 -0700 (PDT)
Received: by 10.60.133.36 with HTTP; Sat, 30 Mar 2013 14:36:37 -0700 (PDT)
Date: Sun, 31 Mar 2013 03:06:37 +0530
Message-ID: <CAK6GkD3yKxkEHCUkoqdR4VWj6b_onEMg_W_Jyr7hKUsftP1GFA@mail.gmail.com>
From: =?UTF-8?B?4LKo4LK+4LKX4LOH4LK24LONIOCyuOCzgeCyrOCzjeCysOCyueCzjeCyruCyo+CzjeCyryAoTg==?= =?UTF-8?B?YWdlc2ggUyk=?= <nageshblore@gmail.com>
To: dtn-users@irtf.org
Content-Type: multipart/alternative; boundary=14dae9399607bf2f7704d92b2e70
Subject: [dtn-users] DTN configuration does not locate oasys
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Sat, 30 Mar 2013 21:36:50 -0000

--14dae9399607bf2f7704d92b2e70
Content-Type: text/plain; charset=ISO-8859-1

Hi,
I am using oasys-1.6.0 and dtn-2.9.0. The configuration for DTN is unable
to locate oasys installation with the --with-oasys parameter. How do I get
around this problem ?

This is Ubuntu-12.04 LTS on 64-bit machine.

user@host:~/dtn-2.9.0$ sh configure --with-oasys=/home/user/oasys-1.6.0
checking location of source directory... "/home/user/dtn-2.9.0"
checking location of build directory... "/home/user/dtn-2.9.0"
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for an oasys installation (version 1.5 or better)...

Configure error finding oasys.

This script first looks for an oasys installation in the same location
as the tool that is using the oasys library (where this configure
script is run from). In other words, it first tries ../oasys.

If ../oasys does not exist, it looks for an oasys installation in
/usr. If that is not found, you need to specify the location of oasys
using the --with-oasys argument to configure.
If problems still exist, then look in the config.log to see exactly
what the failing command was.

Download oasys-1.5 (or later)
from http://dtn.hg.sourceforge.net/hgweb/dtn/oasys to
/home/user/oasys-1.6.0.
You will then probably have to run ./configure and make
in the oasys code tree in order to be able to compile DTN2

configure: error: nonexistent oasys include directory
/home/user/oasys-1.6.0/include

--14dae9399607bf2f7704d92b2e70
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi,<br>I am using oasys-1.6.0 and dtn-2.9.0. The configuration for DTN is u=
nable to locate oasys installation with the --with-oasys parameter. How do =
I get around this problem ?<br><br>This is Ubuntu-12.04 LTS on 64-bit machi=
ne.<br>
<br>user@host:~/dtn-2.9.0$ sh configure --with-oasys=3D/home/user/oasys-1.6=
.0<br>checking location of source directory... &quot;/home/user/dtn-2.9.0&q=
uot;<br>checking location of build directory... &quot;/home/user/dtn-2.9.0&=
quot;<br>
checking for gcc... gcc<br>checking whether the C compiler works... yes<br>=
checking for C compiler default output file name... a.out<br>checking for s=
uffix of executables...<br>checking whether we are cross compiling... no<br=
>
checking for suffix of object files... o<br>checking whether we are using t=
he GNU C compiler... yes<br>checking whether gcc accepts -g... yes<br>check=
ing for gcc option to accept ISO C89... none needed<br>checking for an oasy=
s installation (version 1.5 or better)...<br>
<br>Configure error finding oasys.<br><br>This script first looks for an oa=
sys installation in the same location<br>as the tool that is using the oasy=
s library (where this configure<br>script is run from). In other words, it =
first tries ../oasys.<br>
<br>If ../oasys does not exist, it looks for an oasys installation in<br>/u=
sr. If that is not found, you need to specify the location of oasys<br>usin=
g the --with-oasys argument to configure.<br>If problems still exist, then =
look in the config.log to see exactly<br>
what the failing command was.<br><br>Download oasys-1.5 (or later)<br>from =
<a href=3D"http://dtn.hg.sourceforge.net/hgweb/dtn/oasys">http://dtn.hg.sou=
rceforge.net/hgweb/dtn/oasys</a> to /home/user/oasys-1.6.0.<br>You will the=
n probably have to run ./configure and make<br>
in the oasys code tree in order to be able to compile DTN2<br><br>configure=
: error: nonexistent oasys include directory /home/user/oasys-1.6.0/include=
<br>

--14dae9399607bf2f7704d92b2e70--

From elwynd@folly.org.uk  Sat Mar 30 18:05:29 2013
Return-Path: <elwynd@folly.org.uk>
X-Original-To: dtn-users@ietfa.amsl.com
Delivered-To: dtn-users@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D01DA21F8573 for <dtn-users@ietfa.amsl.com>; Sat, 30 Mar 2013 18:05:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.927
X-Spam-Level: 
X-Spam-Status: No, score=-1.927 tagged_above=-999 required=5 tests=[AWL=0.072,  BAYES_00=-2.599, J_CHICKENPOX_13=0.6]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Dv5Yqh64CTTD for <dtn-users@ietfa.amsl.com>; Sat, 30 Mar 2013 18:05:29 -0700 (PDT)
Received: from b.painless.aa.net.uk (b.painless.aa.net.uk [IPv6:2001:8b0:0:30::51bb:1e34]) by ietfa.amsl.com (Postfix) with ESMTP id 1D88121F854F for <dtn-users@irtf.org>; Sat, 30 Mar 2013 18:05:29 -0700 (PDT)
Received: from mightyatom.folly.org.uk ([81.187.254.250]) by b.painless.aa.net.uk with esmtp (Exim 4.72) (envelope-from <elwynd@folly.org.uk>) id 1UM6i6-0005RF-0u; Sun, 31 Mar 2013 02:05:26 +0100
From: Elwyn Davies <elwynd@folly.org.uk>
To: "(Nagesh S)" <nageshblore@gmail.com>
In-Reply-To: <CAK6GkD201USKSNS0GF4B7tMNKq+bc-FVjegxbKXtfXFp_oePgw@mail.gmail.com>
References: <CAK6GkD201USKSNS0GF4B7tMNKq+bc-FVjegxbKXtfXFp_oePgw@mail.gmail.com>
Content-Type: text/plain; charset="iso-2022-jp"
Organization: Folly Consulting
Date: Sun, 31 Mar 2013 02:01:28 +0100
Message-Id: <1364691688.5273.106.camel@mightyatom>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.3 
Content-Transfer-Encoding: 7bit
Cc: dtn-users@irtf.org
Subject: Re: [dtn-users] DTN2 configuration unable to find OASYS.
X-BeenThere: dtn-users@irtf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Users." <dtn-users.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-users>
List-Post: <mailto:dtn-users@irtf.org>
List-Help: <mailto:dtn-users-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@irtf.org?subject=subscribe>
X-List-Received-Date: Sun, 31 Mar 2013 01:05:29 -0000

There is a known issue with this which will be fixed shortly.

In the meantime, either:
1) store the two trees as:
DTN2: <some directory>/DTN2
oasys: <some directory>/oasys

or
2) make a soft link from the oasys-1.6.0 directory to DTN2/oasys

Regards,
Elwyn

On Sun, 2013-03-31 at 03:02 +0530,   (Nagesh S) wrote:
> Hi,
> 
> I am using oasys-1.6.0 and dtn-2.9.0. The configuration for DTN is
> unable to locate oasys installation with the --with-oasys parameter.
> How do I get around this problem ?
> 
> 
> This is Ubuntu-12.04 LTS on 64-bit machine.
> 
> user@host:~/dtn-2.9.0$ sh configure
> --with-oasys=/home/user/oasys-1.6.0
> checking location of source directory... "/home/user/dtn-2.9.0"
> checking location of build directory... "/home/user/dtn-2.9.0"
> checking for gcc... gcc
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.out
> checking for suffix of executables... 
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking for an oasys installation (version 1.5 or better)... 
> 
> Configure error finding oasys.
> 
> This script first looks for an oasys installation in the same location
> as the tool that is using the oasys library (where this configure
> script is run from). In other words, it first tries ../oasys.
> 
> If ../oasys does not exist, it looks for an oasys installation in
> /usr. If that is not found, you need to specify the location of oasys
> using the --with-oasys argument to configure.
> 
> If problems still exist, then look in the config.log to see exactly
> what the failing command was.
> 
> Download oasys-1.5 (or later)
> from http://dtn.hg.sourceforge.net/hgweb/dtn/oasys
> to /home/user/oasys-1.6.0.
> You will then probably have to run ./configure and make
> in the oasys code tree in order to be able to compile DTN2
> 
> configure: error: nonexistent oasys include
> directory /home/user/oasys-1.6.0/include
> 
> 
> _______________________________________________
> dtn-users mailing list
> dtn-users@irtf.org
> https://www.irtf.org/mailman/listinfo/dtn-users

