From adamson@itd.nrl.navy.mil Mon Feb 1 07:28:17 2010 Return-Path: X-Original-To: rmt@core3.amsl.com Delivered-To: rmt@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0CAC43A688B for ; Mon, 1 Feb 2010 07:28:17 -0800 (PST) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -6.424 X-Spam-Level: X-Spam-Status: No, score=-6.424 tagged_above=-999 required=5 tests=[AWL=0.174, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id krvxBkjDajgO for ; Mon, 1 Feb 2010 07:28:15 -0800 (PST) Received: from s2.itd.nrl.navy.mil (s2.itd.nrl.navy.mil [132.250.83.3]) by core3.amsl.com (Postfix) with ESMTP id 6AA013A696C for ; Mon, 1 Feb 2010 07:28:14 -0800 (PST) Received: from smtp.itd.nrl.navy.mil (smtp.itd.nrl.navy.mil [132.250.86.3]) by s2.itd.nrl.navy.mil (8.13.8/8.13.8) with SMTP id o11FSeJO008742; Mon, 1 Feb 2010 10:28:44 -0500 Received: from vpn218064.nrl.navy.mil ([132.250.218.64]) by smtp.itd.nrl.navy.mil (SMSSMTP 4.1.16.48) with SMTP id M2010020110283815107 ; Mon, 01 Feb 2010 10:28:39 -0500 Message-Id: <7129A24E-BD24-47CE-8D16-85E28DFFCF7E@itd.nrl.navy.mil> From: Brian Adamson To: "Luby, Michael" In-Reply-To: Content-Type: multipart/alternative; boundary=Apple-Mail-114--1031889370 Mime-Version: 1.0 (Apple Message framework v936) Date: Mon, 1 Feb 2010 10:28:39 -0500 References: X-Mailer: Apple Mail (2.936) Cc: "rmt@ietf.org" Subject: Re: [Rmt] Rmt Digest, Vol 66, Issue 8 X-BeenThere: rmt@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: Reliable Multicast Transport List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Feb 2010 15:28:17 -0000 --Apple-Mail-114--1031889370 Content-Type: text/plain; charset=WINDOWS-1252; format=flowed; delsp=yes Content-Transfer-Encoding: quoted-printable The issue that brought this up was a question from a developer who was =20= confused by this. They were unclear as to whether the FEC Payload ID =20= picture was in error or the FEC OTI picture was in error. They were =20 thinking they should perhaps use a 32-bit symbol ID. The other issue with leaving it as it is with a "wasted 16-bits" is =20 that the OTI is that it is really a wasted 32-bits since the OTI could =20= be specified as 10 bytes total per the following instead of 14 bytes =20 as currently depicted. (This retains the one-half 32-bit word that =20 allows ALC and NORM EXT_FTI to be 32-bit aligned (i.e. w/ 2 byte =20 header extension header). In principle the wastage is _usually_ not a =20= major issue but we have very loosely coordinated multicast use cases =20= where we include the EX_FTI on every packet bearing content. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transfer Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Encoding Symbol Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max. Source Block Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Brian Adamson adamson@itd.nrl.navy.mil On Jan 30, 2010, at 7:45 PM, Luby, Michael wrote: > I see. However, I=92m not sure that this qualifies as an =93errata=94, = or =20 > is simply a waste of 16 bits in the FEC OTI. On the other hand, as =20= > it is now, the FEC OTI is essentially the same for all the schemes =20 > described in this document (the only difference that I saw is that =20 > in some there is a =93reserved=94 field whereas in others this = reserved =20 > field is the FEC Instance ID), so there is the advantage that they =20 > are all the same. Also the overall FEC OTI is not very long to =20 > start with and only needs to be received once per object, so the =20 > wastage is pretty minimal. However, I don=92t have a strong opinion =20= > either way so if people feel that this rises to the level of an =20 > error that deserves an errata, that is fine with me. > > > On 1/30/10 4:32 PM, "Adamson@Itd. Mil" =20 > wrote: > > According to the text from RFC 5445 Section 3.2.2.2: > > "Maximum-Source-Block-Length: a non-negative integer, less than 2^^32, > indicating the maximum number of source symbols in a source block" > > it's in "symbols" ... > > So the question is whether a 32-bit symbol id was intended or if the > block length should be 16-bits. I would _guess_ the latter was the > intention given this is the _compact_ no FEC scheme? > > > Brian Adamson > adamson@itd.nrl.navy.mil > > > > > On Jan 30, 2010, at 5:28 PM, Luby, Michael wrote: > > > Isn't max source block Length in units of bytes and ESIs iN units of > > symbols? > > > > > > ----- Original Message ----- > > From: rmt-bounces@ietf.org > > To: rmt@ietf.org > > Sent: Sat Jan 30 12:00:02 2010 > > Subject: Rmt Digest, Vol 66, Issue 8 > > > > If you have received this digest without all the individual message > > attachments you will need to update your digest options in your list > > subscription. To do so, go to > > > > https://www.ietf.org/mailman/listinfo/rmt > > > > Click the 'Unsubscribe or edit options' button, log in, and set "Get > > MIME or Plain Text Digests?" to MIME. You can set this option > > globally for all the list digests you receive at this point. > > > > > > > > Send Rmt mailing list submissions to > > rmt@ietf.org > > > > To subscribe or unsubscribe via the World Wide Web, visit > > https://www.ietf.org/mailman/listinfo/rmt > > or, via email, send a message with subject or body 'help' to > > rmt-request@ietf.org > > > > You can reach the person managing the list at > > rmt-owner@ietf.org > > > > When replying, please edit your Subject line so it is more specific > > than "Re: Contents of Rmt digest..." > > _______________________________________________ > > Rmt mailing list > > Rmt@ietf.org > > https://www.ietf.org/mailman/listinfo/rmt > > > > > _______________________________________________ > Rmt mailing list > Rmt@ietf.org > https://www.ietf.org/mailman/listinfo/rmt --Apple-Mail-114--1031889370 Content-Type: text/html; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable
The issue that brought = this up was a question from a developer who was confused by this. =  They were unclear as to whether the FEC Payload ID picture was in = error or the FEC OTI picture was in error.  They were thinking they = should perhaps use a 32-bit symbol ID. =  

The other issue with leaving it as it is = with a "wasted 16-bits" is that the OTI is that it is really a wasted = 32-bits since the OTI could be specified as 10 bytes total per the = following instead of 14 bytes as currently depicted. (This retains the = one-half 32-bit word that allows ALC and NORM EXT_FTI to be 32-bit = aligned (i.e. w/ 2 byte header extension header).  In principle the = wastage is _usually_ not a major issue but we have very loosely = coordinated multicast  use cases where we include the EX_FTI on = every packet bearing content.

       0        =
           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      Transfer Length                          |
      +                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                               |     Encoding Symbol Length    =
|
= +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max. Source Block Length | = +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



On Jan 30, = 2010, at 7:45 PM, Luby, Michael wrote:

= I see.  However, I=92m not sure that this = qualifies as an =93errata=94, or is simply a waste of 16 bits in the FEC = OTI.  On the other hand, as it is now, the FEC OTI is essentially = the same for all the schemes described in this document (the only = difference that I saw is that in some there is a =93reserved=94 field = whereas in others this reserved field is the FEC Instance ID), so there = is the advantage that they are all the same.  Also the overall FEC = OTI is not very long to start with and only needs to be received once = per object, so the wastage is pretty minimal.  However, I don=92t = have a strong opinion either way so if people feel that this rises to = the level of an error that deserves an errata, that is fine with me.
=

On 1/30/10 4:32 PM, "Adamson@Itd. Mil" <adamson@itd.nrl.navy.mil> = wrote:

According to = the text from RFC 5445 Section 3.2.2.2:

= "Maximum-Source-Block-Length: a non-negative integer, less than 2^^32, =
indicating the maximum number of source symbols in a source = block"

it's in "symbols"  ...

So the question is = whether a 32-bit symbol id was intended or if the
block length = should be 16-bits.  I would _guess_ the latter was the
= intention given this is the _compact_ no FEC scheme?


Brian = Adamson
adamson@itd.nrl.navy.mil

=


On Jan 30, 2010, at 5:28 PM, Luby, Michael wrote:
=
> Isn't max source block Length in units of bytes and ESIs iN = units of
> symbols?
>
>
> ----- Original = Message -----
> From: rmt-bounces@ietf.org <rmt-bounces@ietf.org>
> To: = rmt@ietf.org <rmt@ietf.org>
> Sent: Sat Jan 30 = 12:00:02 2010
> Subject: Rmt Digest, Vol 66, Issue 8
>
= > If you have received this digest without all the individual = message
> attachments you will need to update your digest options = in your list
> subscription.  To do so, go to
>
= > https://www.ietf.org/ma= ilman/listinfo/rmt
>
> Click the 'Unsubscribe or edit = options' button, log in, and set "Get
> MIME or Plain Text = Digests?" to MIME.  You can set this option
> globally for = all the list digests you receive at this point.
>
>
= >
> Send Rmt mailing list submissions to
> =       rmt@ietf.org
>
> To subscribe or = unsubscribe via the World Wide Web, visit
> =       https://www.ietf.org/ma= ilman/listinfo/rmt
> or, via email, send a message with = subject or body 'help' to
> =       rmt-request@ietf.org
>
> = You can reach the person managing the list at
> =       rmt-owner@ietf.org
>
> = When replying, please edit your Subject line so it is more specific
= > than "Re: Contents of Rmt digest..."
> = _______________________________________________
> Rmt mailing = list
> Rmt@ietf.org
> https://www.ietf.org/ma= ilman/listinfo/rmt
>


=
= _______________________________________________
Rmt mailing = list
Rmt@ietf.org
https://www.ietf.org/mail= man/listinfo/rmt

= --Apple-Mail-114--1031889370-- From luby@qualcomm.com Wed Jan 27 17:22:47 2010 Return-Path: X-Original-To: rmt@core3.amsl.com Delivered-To: rmt@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 3389C3A6879 for ; Wed, 27 Jan 2010 17:22:47 -0800 (PST) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -106.598 X-Spam-Level: X-Spam-Status: No, score=-106.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bC9nKWL39G8Z for ; Wed, 27 Jan 2010 17:22:46 -0800 (PST) Received: from wolverine02.qualcomm.com (wolverine02.qualcomm.com [199.106.114.251]) by core3.amsl.com (Postfix) with ESMTP id 648D23A68BE for ; Wed, 27 Jan 2010 17:22:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qualcomm.com; i=luby@qualcomm.com; q=dns/txt; s=qcdkim; t=1264641781; x=1296177781; h=from:to:cc:date:subject:thread-topic:thread-index: message-id:accept-language:content-language: x-ms-has-attach:x-ms-tnef-correlator:acceptlanguage: content-type:mime-version; z=From:=20"Luby,=20Michael"=20|To:=20"r mt@ietf.org"=20|CC:=20"Luby,=20Michael"=20< luby@qualcomm.com>|Date:=20Wed,=2027=20Jan=202010=2017:22 :56=20-0800|Subject:=20draft-ietf-bb-fec-raptorq-00 |Thread-Topic:=20draft-ietf-bb-fec-raptorq-00 |Thread-Index:=20AcqfuGuCyjb/1d9Itk2+xg0T8YOP4A=3D=3D |Message-ID:=20 |Accept-Language:=20en-US|Content-Language:=20en |X-MS-Has-Attach:=20yes|X-MS-TNEF-Correlator: |acceptlanguage:=20en-US|Content-Type:=20multipart/mixed =3B=20boundary=3D"_004_C78626F1AEE9lubyqualcommcom_" |MIME-Version:=201.0; bh=a+SGeAS6ZE59xEdIacGb//1zKb6NHWuIqN6cEGRWP+4=; b=ZAaEyJhLNjFWGNtI5MS9+2040w8vzbHyripL43f+5DcVZJvtGZNjKTmG jOTt/nyxYoe4GDB4unULU2HY5LDn46Vbfons3j1w1DneOe3gY7iiIfp3S Q4zT0xmlCZjJ/jaJx+D05iodn/QNMHdYAaBtDQkiA6x6ZxK2pBCkQEtly Y=; X-IronPort-AV: E=McAfee;i="5400,1158,5874"; a="32917931" Received: from pdmz-ns-mip.qualcomm.com (HELO ithilien.qualcomm.com) ([199.106.114.10]) by wolverine02.qualcomm.com with ESMTP; 27 Jan 2010 17:23:01 -0800 Received: from ironstorm.qualcomm.com (ironstorm.qualcomm.com [172.30.39.153]) by ithilien.qualcomm.com (8.14.2/8.14.2/1.0) with ESMTP id o0S1N1FK021452 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Wed, 27 Jan 2010 17:23:01 -0800 X-IronPort-AV: E=Sophos;i="4.49,357,1262592000"; d="txt'?scan'208,217";a="37465651" Received: from nasanexhub04.qualcomm.com (HELO nasanexhub04.na.qualcomm.com) ([129.46.134.222]) by ironstorm.qualcomm.com with ESMTP/TLS/RC4-MD5; 27 Jan 2010 17:23:00 -0800 Received: from nasclexhc01.na.qualcomm.com (10.227.147.14) by nasanexhub04.na.qualcomm.com (129.46.134.222) with Microsoft SMTP Server (TLS) id 8.2.176.0; Wed, 27 Jan 2010 17:22:59 -0800 Received: from NASCLEXMB02.na.qualcomm.com ([10.227.144.112]) by nasclexhc01.na.qualcomm.com ([10.227.147.14]) with mapi; Wed, 27 Jan 2010 17:22:59 -0800 From: "Luby, Michael" To: "rmt@ietf.org" Date: Wed, 27 Jan 2010 17:22:56 -0800 Thread-Topic: draft-ietf-bb-fec-raptorq-00 Thread-Index: AcqfuGuCyjb/1d9Itk2+xg0T8YOP4A== Message-ID: Accept-Language: en-US Content-Language: en X-MS-Has-Attach: yes X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: multipart/mixed; boundary="_004_C78626F1AEE9lubyqualcommcom_" MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 01 Feb 2010 07:43:58 -0800 Cc: "Luby, Michael" Subject: [Rmt] draft-ietf-bb-fec-raptorq-00 X-BeenThere: rmt@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: Reliable Multicast Transport List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2010 01:22:47 -0000 --_004_C78626F1AEE9lubyqualcommcom_ Content-Type: multipart/alternative; boundary="_000_C78626F1AEE9lubyqualcommcom_" --_000_C78626F1AEE9lubyqualcommcom_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable RMT, I just submitted draft-ietf-bb-fec-raptorq-00 to the RMT draft repository. = This draft has the same content (with a couple of minor typo fixes) as dra= ft-luby-rmt-bb-fec-raptorg-object-01, which Lorenzo sent out an email to th= e RMT list on January 19, 2010 asking for the working group version of this= draft. Note that the name has changed slightly, i.e., raptorg has been cha= nged to raptoq. There were some idnits problems with the boilerplate when I= tried to submit this, so I asked for a manual post, which could take a cou= ple of days, but in the meantime I am attaching the draft to this email. W= e will fix the idnits issues in the next version. Mike --_000_C78626F1AEE9lubyqualcommcom_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable draft-ietf-bb-fec-raptorq-00 RMT,
I just submitted
draft-ietf-bb-fec-raptorq-00 to the RMT draft repository. &= nbsp;This draft has the same content (with a couple of minor typo fixes) as= draft-luby-rmt-bb-fec-raptorg-object-01, which Lorenzo sent out an email t= o the RMT list on January 19, 2010 asking for the working group version of = this draft. Note that the name has changed slightly, i.e., raptorg has been= changed to raptoq. There were some idnits problems with the boilerplate wh= en I tried to submit this, so I asked for a manual post, which could take a= couple of days, but in the meantime I am attaching the draft to this email= .  We will fix the idnits issues in the next version.
Mike
--_000_C78626F1AEE9lubyqualcommcom_-- --_004_C78626F1AEE9lubyqualcommcom_ Content-Type: application/octet-stream; name="draft-ietf-rmt-bb-fec-raptorq-00.txt" Content-Description: draft-ietf-rmt-bb-fec-raptorq-00.txt Content-Disposition: attachment; filename="draft-ietf-rmt-bb-fec-raptorq-00.txt"; size=109475; creation-date="Wed, 27 Jan 2010 17:22:59 GMT"; modification-date="Wed, 27 Jan 2010 17:22:59 GMT" Content-Transfer-Encoding: base64 DQoNCg0KUmVsaWFibGUgTXVsdGljYXN0IFRyYW5zcG9ydCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNLiBMdWJ5DQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUXVhbGNvbW0sIEluYy4NCkludGVuZGVkIHN0YXR1czog U3RhbmRhcmRzIFRyYWNrICAgICAgICAgICAgICAgICAgICAgICAgICBBLiBTaG9rcm9sbGFoaQ0K RXhwaXJlczogQXVndXN0IDEsIDIwMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFUEZMDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNLiBXYXRzb24NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWFsY29tbSwgSW5jLg0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFQuIFN0 b2NraGFtbWVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTm9tb3IgUmVzZWFyY2gNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSmFudWFyeSAyOCwgMjAxMA0KDQoNCiAgICAgIFJh cHRvclEgRm9yd2FyZCBFcnJvciBDb3JyZWN0aW9uIFNjaGVtZSBmb3IgT2JqZWN0IERlbGl2ZXJ5 DQogICAgICAgICAgICAgICAgICAgIGRyYWZ0LWlldGYtcm10LWJiLWZlYy1yYXB0b3JxLTAwDQoN CkFic3RyYWN0DQoNCiAgIFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGEgRnVsbHktU3BlY2lmaWVk IEZFQyBzY2hlbWUsIGNvcnJlc3BvbmRpbmcNCiAgIHRvIEZFQyBFbmNvZGluZyBJRCA2ICh0byBi ZSBjb25maXJtZWQgKHRiYykpLCBmb3IgdGhlIFJhcHRvclEgZm9yd2FyZA0KICAgZXJyb3IgY29y cmVjdGlvbiBjb2RlIGFuZCBpdHMgYXBwbGljYXRpb24gdG8gcmVsaWFibGUgZGVsaXZlcnkgb2YN CiAgIGRhdGEgb2JqZWN0cy4NCg0KICAgUmFwdG9yUSBjb2RlcyBhcmUgYSBuZXcgZmFtaWx5IG9m IGNvZGVzIHRoYXQgcHJvdmlkZSBzdXBlcmlvcg0KICAgZmxleGliaWxpdHksIHN1cHBvcnQgZm9y IGxhcmdlciBzb3VyY2UgYmxvY2sgc2l6ZXMgYW5kIGJldHRlciBjb2RpbmcNCiAgIGVmZmljaWVu Y3kgdGhhbiBSYXB0b3IgY29kZXMgaW4gUkZDNTA1My4gIFJhcHRvclEgaXMgYWxzbyBhIGZvdW50 YWluDQogICBjb2RlLCBpLmUuLCBhcyBtYW55IGVuY29kaW5nIHN5bWJvbHMgYXMgbmVlZGVkIGNh biBiZSBnZW5lcmF0ZWQgYnkNCiAgIHRoZSBlbmNvZGVyIG9uLXRoZS1mbHkgZnJvbSB0aGUgc291 cmNlIHN5bWJvbHMgb2YgYSBzb3VyY2UgYmxvY2sgb2YNCiAgIGRhdGEuICBUaGUgZGVjb2RlciBp cyBhYmxlIHRvIHJlY292ZXIgdGhlIHNvdXJjZSBibG9jayBmcm9tIGFueSBzZXQNCiAgIG9mIGVu Y29kaW5nIHN5bWJvbHMgZm9yIG1vc3QgY2FzZXMgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBzb3Vy Y2UNCiAgIHN5bWJvbHMgYW5kIGluIHJhcmUgY2FzZXMgd2l0aCBzbGlnaHRseSBtb3JlIHRoYW4g dGhlIG51bWJlciBvZg0KICAgc291cmNlIHN5bWJvbHMuDQoNCiAgIFRoZSBSYXB0b3JRIGNvZGUg ZGVzY3JpYmVkIGhlcmUgaXMgYSBzeXN0ZW1hdGljIGNvZGUsIG1lYW5pbmcgdGhhdA0KICAgYWxs IHRoZSBzb3VyY2Ugc3ltYm9scyBhcmUgYW1vbmcgdGhlIGVuY29kaW5nIHN5bWJvbHMgdGhhdCBj YW4gYmUNCiAgIGdlbmVyYXRlZC4NCg0KU3RhdHVzIG9mIHRoaXMgTWVtbw0KDQogICBUaGlzIElu dGVybmV0LURyYWZ0IGlzIHN1Ym1pdHRlZCB0byBJRVRGIGluIGZ1bGwgY29uZm9ybWFuY2Ugd2l0 aCB0aGUNCiAgIHByb3Zpc2lvbnMgb2YgQkNQIDc4IGFuZCBCQ1AgNzkuDQoNCiAgIEludGVybmV0 LURyYWZ0cyBhcmUgd29ya2luZyBkb2N1bWVudHMgb2YgdGhlIEludGVybmV0IEVuZ2luZWVyaW5n DQogICBUYXNrIEZvcmNlIChJRVRGKSwgaXRzIGFyZWFzLCBhbmQgaXRzIHdvcmtpbmcgZ3JvdXBz LiAgTm90ZSB0aGF0DQogICBvdGhlciBncm91cHMgbWF5IGFsc28gZGlzdHJpYnV0ZSB3b3JraW5n IGRvY3VtZW50cyBhcyBJbnRlcm5ldC0NCiAgIERyYWZ0cy4NCg0KICAgSW50ZXJuZXQtRHJhZnRz IGFyZSBkcmFmdCBkb2N1bWVudHMgdmFsaWQgZm9yIGEgbWF4aW11bSBvZiBzaXggbW9udGhzDQog ICBhbmQgbWF5IGJlIHVwZGF0ZWQsIHJlcGxhY2VkLCBvciBvYnNvbGV0ZWQgYnkgb3RoZXIgZG9j dW1lbnRzIGF0IGFueQ0KICAgdGltZS4gIEl0IGlzIGluYXBwcm9wcmlhdGUgdG8gdXNlIEludGVy bmV0LURyYWZ0cyBhcyByZWZlcmVuY2UNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAgICBF eHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgICBbUGFnZSAxXQ0KDA0KSW50ZXJu ZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAgICAgSmFu dWFyeSAyMDEwDQoNCg0KICAgbWF0ZXJpYWwgb3IgdG8gY2l0ZSB0aGVtIG90aGVyIHRoYW4gYXMg IndvcmsgaW4gcHJvZ3Jlc3MuIg0KDQogICBUaGUgbGlzdCBvZiBjdXJyZW50IEludGVybmV0LURy YWZ0cyBjYW4gYmUgYWNjZXNzZWQgYXQNCiAgIGh0dHA6Ly93d3cuaWV0Zi5vcmcvaWV0Zi8xaWQt YWJzdHJhY3RzLnR4dC4NCg0KICAgVGhlIGxpc3Qgb2YgSW50ZXJuZXQtRHJhZnQgU2hhZG93IERp cmVjdG9yaWVzIGNhbiBiZSBhY2Nlc3NlZCBhdA0KICAgaHR0cDovL3d3dy5pZXRmLm9yZy9zaGFk b3cuaHRtbC4NCg0KICAgVGhpcyBJbnRlcm5ldC1EcmFmdCB3aWxsIGV4cGlyZSBvbiBBdWd1c3Qg MSwgMjAxMC4NCg0KQ29weXJpZ2h0IE5vdGljZQ0KDQogICBDb3B5cmlnaHQgKGMpIDIwMTAgSUVU RiBUcnVzdCBhbmQgdGhlIHBlcnNvbnMgaWRlbnRpZmllZCBhcyB0aGUNCiAgIGRvY3VtZW50IGF1 dGhvcnMuICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KDQogICBUaGlzIGRvY3VtZW50IGlzIHN1Ympl Y3QgdG8gQkNQIDc4IGFuZCB0aGUgSUVURiBUcnVzdCdzIExlZ2FsDQogICBQcm92aXNpb25zIFJl bGF0aW5nIHRvIElFVEYgRG9jdW1lbnRzIGluIGVmZmVjdCBvbiB0aGUgZGF0ZSBvZg0KICAgcHVi bGljYXRpb24gb2YgdGhpcyBkb2N1bWVudCAoaHR0cDovL3RydXN0ZWUuaWV0Zi5vcmcvbGljZW5z ZS1pbmZvKS4NCiAgIFBsZWFzZSByZXZpZXcgdGhlc2UgZG9jdW1lbnRzIGNhcmVmdWxseSwgYXMg dGhleSBkZXNjcmliZSB5b3VyIHJpZ2h0cw0KICAgYW5kIHJlc3RyaWN0aW9ucyB3aXRoIHJlc3Bl Y3QgdG8gdGhpcyBkb2N1bWVudC4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAgICAgICAgIEV4cGly ZXMgQXVndXN0IDEsIDIwMTAgICAgICAgICAgICAgICAgIFtQYWdlIDJdDQoMDQpJbnRlcm5ldC1E cmFmdCAgICAgICAgICAgICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAgICAgICBKYW51YXJ5 IDIwMTANCg0KDQpUYWJsZSBvZiBDb250ZW50cw0KDQogICAxLiAgSW50cm9kdWN0aW9uICAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDINCiAgIDIuICBS ZXF1aXJlbWVudHMgbm90YXRpb24gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gMw0KICAgMy4gIEZvcm1hdHMgYW5kIENvZGVzIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA0DQogICAgIDMuMS4gIEZFQyBQYXlsb2FkIElEcyAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDQNCiAgICAgMy4yLiAgRkVD IE9iamVjdCBUcmFuc21pc3Npb24gSW5mb3JtYXRpb24gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g NA0KICAgICAgIDMuMi4xLiAgTWFuZGF0b3J5IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiA0DQogICAgICAgMy4yLjIuICBDb21tb24gIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDQNCiAgICAgICAzLjIuMy4gIFNjaGVt ZS1TcGVjaWZpYyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gNQ0KICAg NC4gIFByb2NlZHVyZXMgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiA3DQogICAgIDQuMS4gIENvbnRlbnQgRGVsaXZlcnkgUHJvdG9jb2wgUmVxdWly ZW1lbnRzICAuIC4gLiAuIC4gLiAuIC4gLiAuIDcNCiAgICAgNC4yLiAgRXhhbXBsZSBQYXJhbWV0 ZXIgRGVyaXZhdGlvbiBBbGdvcml0aG0gIC4gLiAuIC4gLiAuIC4gLiAuIC4gNw0KICAgICA0LjMu ICBPYmplY3QgRGVsaXZlcnkgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiA5DQogICAgICAgNC4zLjEuICBTb3VyY2UgYmxvY2sgY29uc3RydWN0aW9uIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIDkgDQogICAgICAgNC4zLjIuICBFbmNvZGluZyBwYWNrZXQg Y29uc3RydWN0aW9uICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgMTENCiAgIDUuICBSYXB0b3JH IEZFQyBDb2RlIFNwZWNpZmljYXRpb24gIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuICAx Mg0KICAgICA1LjEuICBEZWZpbml0aW9ucywgU3ltYm9scyBhbmQgQWJicmV2aWF0aW9ucyAgLiAu IC4gLiAuIC4gLiAuIC4gIDEyDQogICAgICAgNS4xLjEuICBEZWZpbml0aW9ucyAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgMTIgDQogICAgICAgNS4xLjIuICBTeW1i b2xzIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgMTMNCiAg ICAgICA1LjEuMy4gIEFiYnJldmlhdGlvbnMgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuICAxNSANCiAgICAgNS4yLiAgT3ZlcnZpZXcgIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuICAxNSANCiAgICAgNS4zLiAgU3lzdGVtYXRpYyBS YXB0b3JHIGVuY29kZXIgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuICAxNw0KICAgICAg IDUuMy4xLiAgSW50cm9kdWN0aW9uICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gIDE3IA0KICAgICAgIDUuMy4yLiAgRW5jb2Rpbmcgb3ZlcnZpZXcgLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDE4IA0KICAgICAgIDUuMy4zLiAgRmlyc3QgZW5jb2Rp bmcgc3RlcDogSW50ZXJtZWRpYXRlIFN5bWJvbCBHZW5lcmF0aW9uIC4gIDE5IA0KICAgICAgIDUu My40LiAgU2Vjb25kIGVuY29kaW5nIHN0ZXA6IEVuY29kaW5nICAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gIDI3IA0KICAgICAgIDUuMy41LiAgR2VuZXJhdG9ycyAgLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gIDI3DQogICAgIDUuNC4gIEV4YW1wbGUgRkVDIGRlY29kZXIg LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgMzANCiAgICAgICA1LjQuMS4g IEdlbmVyYWwgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuICAz MCANCiAgICAgICA1LjQuMi4gIERlY29kaW5nIGFuIGV4dGVuZGVkIHNvdXJjZSBibG9jayAuIC4g LiAuIC4gLiAuIC4gLiAuICAzMiANCiAgICAgNS41LiAgUmFuZG9tIE51bWJlcnMgIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuICAzNg0KICAgICAgIDUuNS4xLiAgVGhl IHRhYmxlIFYwICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDM2IA0K ICAgICAgIDUuNS4yLiAgVGhlIHRhYmxlIFYxICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gIDM3IA0KICAgICAgIDUuNS4zLiAgVGhlIHRhYmxlIFYyICAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDM4IA0KICAgICAgIDUuNS40LiAgVGhlIHRh YmxlIFYzICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDM5IA0KICAg ICA1LjYuICBTeXN0ZW1hdGljIGluZGljZXMgYW5kIG90aGVyIHBhcmFtZXRlcnMgLiAuIC4gLiAu IC4gLiAuIC4gIDQwDQogICAgIDUuNy4gIEFyaXRobWV0aWMgaW4gR0YoMjU2KSAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgNDQNCiAgICAgICA1LjcuMS4gIEludHJvZHVjdGlv biAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuICA0NCANCiAgICAgICA1 LjcuMi4gIFRoZSB0YWJsZSBHRjI1Nl9FWFAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuICA0NA0KICAgICAgIDUuNy4zLiAgVGhlIHRhYmxlIEdGMjU2X0xPRyAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gIDQ1DQogICA2LiAgU2VjdXJpdHkgQ29uc2lkZXJhdGlvbnMg LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgNDggDQogICA3LiAgSUFOQSBD b25zaWRlcmF0aW9ucyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAg NDkNCiAgIDguICBBY2tub3dsZWRnZW1lbnRzICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuICA1MA0KICAgOS4gIFJlZmVyZW5jZXMgIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDUxIA0KICAgICA5LjEuICBOb3JtYXRp dmUgcmVmZXJlbmNlcyAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDUxIA0K ICAgICA5LjIuICBJbmZvcm1hdGl2ZSByZWZlcmVuY2VzICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gIDUxIA0KICAgQXV0aG9ycycgQWRkcmVzc2VzICAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDUyDQoNCg0KDQpMdWJ5LCBldCBhbC4gICAg ICAgICAgICAgRXhwaXJlcyBBdWd1c3QgMSwgMjAxMCAgICAgICAgICAgICAgICAgW1BhZ2UgM10N CgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICAgIFJhcHRvckcgRkVDIFNjaGVtZSAgICAgICAg ICAgICAgIEphbnVhcnkgMjAxMA0KDQoNCjEuICBJbnRyb2R1Y3Rpb24NCg0KICAgVGhpcyBkb2N1 bWVudCBzcGVjaWZpZXMgYW4gRkVDIFNjaGVtZSBmb3IgdGhlIFJhcHRvclEgZm9yd2FyZCBlcnJv cg0KICAgY29ycmVjdGlvbiBjb2RlIGZvciBvYmplY3QgZGVsaXZlcnkgYXBwbGljYXRpb25zLiAg VGhlIGNvbmNlcHQgb2YgYW4NCiAgIEZFQyBTY2hlbWUgaXMgZGVmaW5lZCBpbiBSRkM1MDUyIFtS RkM1MDUyXSBhbmQgdGhpcyBkb2N1bWVudCBmb2xsb3dzDQogICB0aGUgZm9ybWF0IHByZXNjcmli ZWQgdGhlcmUgYW5kIHVzZXMgdGhlIHRlcm1pbm9sb2d5IG9mIHRoYXQNCiAgIGRvY3VtZW50LiAg VGhlIFJhcHRvclEgY29kZSBkZXNjcmliZWQgaGVyZWluIGlzIGEgbmV4dCBnZW5lcmF0aW9uIG9m DQogICB0aGUgUmFwdG9yIGNvZGUgZGVzY3JpYmVkIGluIFJGQzUwNTMgW1JGQzUwNTNdLiAgVGhl IFJhcHRvclEgY29kZQ0KICAgcHJvdmlkZXMgc3VwZXJpb3IgcmVsaWFiaWxpdHksIGJldHRlciBj b2RpbmcgZWZmaWNpZW5jeSwgYW5kIHN1cHBvcnQNCiAgIGZvciBsYXJnZXIgc291cmNlIGJsb2Nr IHNpemVzIHRoYW4gdGhlIFJhcHRvciBjb2RlIG9mIFJGQzUwNTMNCiAgIFtSRkM1MDUzXS4gIFRo ZXNlIGltcHJvdmVtZW50cyBzaW1wbGlmeSB0aGUgdXNhZ2Ugb2YgdGhlIFJhcHRvclEgY29kZQ0K ICAgaW4gYW4gb2JqZWN0IGRlbGl2ZXJ5IENvbnRlbnQgRGVsaXZlcnkgUHJvdG9jb2wgY29tcGFy ZWQgdG8gUkZDNTA1Mw0KICAgW1JGQzUwNTNdLg0KDQogICBUaGUgUmFwdG9yUSBGRUMgU2NoZW1l IGlzIGEgRnVsbHktU3BlY2lmaWVkIEZFQyBTY2hlbWUgY29ycmVzcG9uZGluZw0KICAgdG8gRkVD IEVuY29kaW5nIElEIDYgKHRiYykuDQoNCiAgICAgIEVkaXRvcidzIE5vdGU6IFRoZSBmaW5hbGl6 ZWQgRkVDIGVuY29kaW5nIElEIGlzIHN0aWxsIHRvIGJlDQogICAgICBkZWZpbmVkLCBidXQgJzYg KHRiYyknIGlzIHVzZWQgYXMgdGVtcG9yYXJ5IHZhbHVlIGluIHRoaXMgSW50ZXJuZXQNCiAgICAg IERyYWZ0IGV4cGVjdGluZyBzZXF1ZW50aWFsIHVzZSBvZiBGRUMgZW5jb2RpbmcgSURzIGluIHRo ZSBJQU5BDQogICAgICByZWdpc3RyYXRpb24gcHJvY2Vzcy4NCg0KICAgUmFwdG9yUSBpcyBhIGZv dW50YWluIGNvZGUsIGkuZS4sIGFzIG1hbnkgZW5jb2Rpbmcgc3ltYm9scyBhcyBuZWVkZWQNCiAg IGNhbiBiZSBnZW5lcmF0ZWQgYnkgdGhlIGVuY29kZXIgb24tdGhlLWZseSBmcm9tIHRoZSBzb3Vy Y2Ugc3ltYm9scyBvZg0KICAgYSBibG9jay4gIFRoZSBkZWNvZGVyIGlzIGFibGUgdG8gcmVjb3Zl ciB0aGUgc291cmNlIGJsb2NrIGZyb20gYW55DQogICBzZXQgb2YgZW5jb2Rpbmcgc3ltYm9scyBv bmx5IHNsaWdodGx5IG1vcmUgaW4gbnVtYmVyIHRoYW4gdGhlIG51bWJlcg0KICAgb2Ygc291cmNl IHN5bWJvbHMuDQoNCiAgIFRoZSBjb2RlIGRlc2NyaWJlZCBpbiB0aGlzIGRvY3VtZW50IGlzIGEg c3lzdGVtYXRpYyBjb2RlLCB0aGF0IGlzLA0KICAgdGhlIG9yaWdpbmFsIHNvdXJjZSBzeW1ib2xz IGNhbiBiZSBzZW50IHVubW9kaWZpZWQgZnJvbSBzZW5kZXIgdG8NCiAgIHJlY2VpdmVyLCBhcyB3 ZWxsIGFzIGEgbnVtYmVyIG9mIHJlcGFpciBzeW1ib2xzLiAgRm9yIG1vcmUgYmFja2dvdW5kDQog ICBvbiB0aGUgdXNlIG9mIEZvcndhcmQgRXJyb3IgQ29ycmVjdGlvbiBjb2RlcyBpbiByZWxpYWJs ZSBtdWx0aWNhc3QsDQogICBzZWUgW1JGQzM0NTNdLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAgICAgICAgIEV4cGlyZXMgQXVndXN0IDEsIDIw MTAgICAgICAgICAgICAgICAgIFtQYWdlIDRdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAg ICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAgICAgICBKYW51YXJ5IDIwMTANCg0KDQoyLiAg UmVxdWlyZW1lbnRzIG5vdGF0aW9uDQoNCiAgIFRoZSBrZXkgd29yZHMgIk1VU1QiLCAiTVVTVCBO T1QiLCAiUkVRVUlSRUQiLCAiU0hBTEwiLCAiU0hBTEwgTk9UIiwNCiAgICJTSE9VTEQiLCAiU0hP VUxEIE5PVCIsICJSRUNPTU1FTkRFRCIsICJNQVkiLCBhbmQgIk9QVElPTkFMIiBpbiB0aGlzDQog ICBkb2N1bWVudCBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgZGVzY3JpYmVkIGluIFtSRkMyMTE5 XS4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAg ICAgICAgIEV4cGlyZXMgQXVndXN0IDEsIDIwMTAgICAgICAgICAgICAgICAgIFtQYWdlIDVdDQoM DQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAg ICAgICBKYW51YXJ5IDIwMTANCg0KDQozLiAgRm9ybWF0cyBhbmQgQ29kZXMNCg0KMy4xLiAgRkVD IFBheWxvYWQgSURzDQoNCiAgIFRoZSBGRUMgUGF5bG9hZCBJRCBNVVNUIGJlIGEgNCBvY3RldCBm aWVsZCBkZWZpbmVkIGFzIGZvbGxvd3M6DQoNCiAgICAgICAgMCAgICAgICAgICAgICAgICAgICAx ICAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgICAgMw0KICAgICAgICAwIDEgMiAz IDQgNSA2IDcgOCA5IDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEN CiAgICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKw0KICAgICAgIHwgICAgIFNCTiAgICAgICB8ICAgICAgICAgICAgICAg RW5jb2RpbmcgU3ltYm9sIElEICAgICAgICAgICAgICB8DQogICAgICAgKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsNCg0KICAg ICAgICAgICAgICAgICAgICAgIEZpZ3VyZSAxOiBGRUMgUGF5bG9hZCBJRCBmb3JtYXQNCg0KICAg ICAgU291cmNlIEJsb2NrIE51bWJlciAoU0JOKSwgKDggYml0cyk6IEFuIGludGVnZXIgaWRlbnRp ZmllciBmb3IgdGhlDQogICAgICBzb3VyY2UgYmxvY2sgdGhhdCB0aGUgZW5jb2Rpbmcgc3ltYm9s cyB3aXRoaW4gdGhlIHBhY2tldCByZWxhdGUNCiAgICAgIHRvLg0KDQogICAgICBFbmNvZGluZyBT eW1ib2wgSUQgKEVTSSksICgyNCBiaXRzKTogQW4gaW50ZWdlciBpZGVudGlmaWVyIGZvciB0aGUN CiAgICAgIGVuY29kaW5nIHN5bWJvbHMgd2l0aGluIHRoZSBwYWNrZXQuDQoNCiAgIFRoZSBpbnRl cnByZXRhdGlvbiBvZiB0aGUgU291cmNlIEJsb2NrIE51bWJlciBhbmQgRW5jb2RpbmcgU3ltYm9s DQogICBJZGVudGlmaWVyIGlzIGRlZmluZWQgaW4gU2VjdGlvbiA1Lg0KDQozLjIuICBGRUMgT2Jq ZWN0IFRyYW5zbWlzc2lvbiBJbmZvcm1hdGlvbg0KDQozLjIuMS4gIE1hbmRhdG9yeQ0KDQogICBU aGUgdmFsdWUgb2YgdGhlIEZFQyBFbmNvZGluZyBJRCBNVVNUIGJlIDYsIGFzIGFzc2lnbmVkIGJ5 IElBTkEgKHNlZQ0KICAgU2VjdGlvbiA3KS4NCg0KMy4yLjIuICBDb21tb24NCg0KICAgVGhlIENv bW1vbiBGRUMgT2JqZWN0IFRyYW5zbWlzc2lvbiBJbmZvcm1hdGlvbiBlbGVtZW50cyB1c2VkIGJ5 IHRoaXMNCiAgIEZFQyBTY2hlbWUgYXJlOg0KDQogICBvICBUcmFuc2ZlciBMZW5ndGggKEYpDQoN CiAgIG8gIFN5bWJvbCBTaXplIChUKQ0KDQogICBUaGUgVHJhbnNmZXIgTGVuZ3RoIGlzIGEgbm9u LW5lZ2F0aXZlIGludGVnZXIgdGhhdCBpcyBhdCBtb3N0DQogICA5NDYyODc2NTE4NDAsIHdoaWNo IGNhbiBiZSByZXByZXNlbnRlZCBieSA0MCBiaXRzLiAgVGhlIFN5bWJvbCBTaXplDQogICBpcyBh IG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIGxlc3MgdGhhbiAyXl4xNi4NCg0KICAgVGhlIFRyYW5zZmVy IExlbmd0aCBpcyBhIGZpZWxkIG9mIDQwIGJpdHMgaW4gaXRzIGRlZmluaXRpb24sIGFuZCB0aGUN CiAgIFN5bWJvbCBTaXplIGZpZWxkIGlzIDE2IGJpdHMsIGFuZCBib3RoIGxlbmd0aCB1bml0cyBh cmUgYnl0ZXMuDQoNCiAgIFRoZSBlbmNvZGVkIENvbW1vbiBGRUMgT2JqZWN0IFRyYW5zbWlzc2lv biBJbmZvcm1hdGlvbiBmb3JtYXQgaXMNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAgICBF eHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgICBbUGFnZSA2XQ0KDA0KSW50ZXJu ZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAgICAgSmFu dWFyeSAyMDEwDQoNCg0KICAgc2hvd24gaW4gRmlndXJlIDIuDQoNCiAgICAgICAwICAgICAgICAg ICAgICAgICAgIDEgICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAgICAzDQogICAg ICAgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAyIDMgNCA1IDYg NyA4IDkgMCAxDQogICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKw0KICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBU cmFuc2ZlciBMZW5ndGggKEYpICAgICAgICAgICAgICAgICAgICAgIHwNCiAgICAgICsgICAgICAg ICAgICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r DQogICAgICB8ICAgICAgICAgICAgICAgfCAgICBSZXNlcnZlZCAgIHwgICAgICAgICAgIFN5bWJv bCBTaXplIChUKSAgICAgfA0KICAgICAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsNCg0KDQogICAgICAgICAgRmlndXJlIDI6 IEVuY29kZWQgQ29tbW9uIEZFQyBPVEkgZm9yIFJhcHRvckcgRkVDIFNjaGVtZQ0KDQogICAgICBO T1RFIDE6IFRoZSBsaW1pdCBvZiA5NDYyODc2NTE4NDAgb24gdGhlIHRyYW5zZmVyIGxlbmd0aCBp cyBhDQogICAgICBjb25zZXF1ZW5jZSBvZiB0aGUgbGltaXRhdGlvbiBvbiB0aGUgc3ltYm9sIHNp emUgdG8gMl5eMTYtMSwgdGhlDQogICAgICBsaW1pdGF0aW9uIG9uIHRoZSBudW1iZXIgb2Ygc3lt Ym9scyBpbiBhIHNvdXJjZSBibG9jayB0byA1NjQwNCBhbmQNCiAgICAgIHRoZSBsaW1pdGF0aW9u IG9uIHRoZSBudW1iZXIgb2Ygc291cmNlIGJsb2NrcyB0byAyXl44Lg0KDQozLjIuMy4gIFNjaGVt ZS1TcGVjaWZpYw0KDQogICBUaGUgZm9sbG93aW5nIHBhcmFtZXRlcnMgYXJlIGNhcnJpZWQgaW4g dGhlIFNjaGVtZS1TcGVjaWZpYyBGRUMNCiAgIE9iamVjdCBUcmFuc21pc3Npb24gSW5mb3JtYXRp b24gZWxlbWVudCBmb3IgdGhpcyBGRUMgU2NoZW1lOg0KDQogICBvICBUaGUgbnVtYmVyIG9mIHNv dXJjZSBibG9ja3MgKFopDQoNCiAgIG8gIFRoZSBudW1iZXIgb2Ygc3ViLWJsb2NrcyAoTikNCg0K ICAgbyAgQSBzeW1ib2wgYWxpZ25tZW50IHBhcmFtZXRlciAoQWwpDQoNCiAgIFRoZXNlIHBhcmFt ZXRlcnMgYXJlIGFsbCBub24tbmVnYXRpdmUgaW50ZWdlcnMuICBUaGUgZW5jb2RlZCBTY2hlbWUt DQogICBzcGVjaWZpYyBPYmplY3QgVHJhbnNtaXNzaW9uIEluZm9ybWF0aW9uIGlzIGEgNC1vY3Rl dCBmaWVsZA0KICAgY29uc2lzdGluZyBvZiB0aGUgcGFyYW1ldGVycyBaICgxMiBiaXRzKSwgTiAo MTIgYml0cykgYW5kIEFsICg4IGJpdHMpDQogICBhcyBzaG93biBpbiBGaWd1cmUgMy4NCg0KICAg ICAgICAwICAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAg ICAgICAgICAzDQogICAgICAgIDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAxIDIgMyA0IDUgNiA3IDgg OSAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMQ0KICAgICAgICstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rDQogICAgICAgfCAgICAg ICAgICAgICBaICAgICAgICAgfCAgICAgICAgICBOICAgICAgICAgICAgfCAgICAgICBBbCAgICAg IHwNCiAgICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKw0KDQogICBGaWd1cmUgMzogRW5jb2RlZCBTY2hlbWUtc3BlY2lm aWMgRkVDIE9iamVjdCBUcmFuc21pc3Npb24gSW5mb3JtYXRpb24NCg0KICAgVGhlIGVuY29kZWQg RkVDIE9iamVjdCBUcmFuc21pc3Npb24gSW5mb3JtYXRpb24gaXMgYSAxMi1vY3RldCBmaWVsZA0K ICAgY29uc2lzdGluZyBvZiB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGUgZW5jb2RlZCBDb21tb24g RkVDIE9iamVjdA0KICAgVHJhbnNtaXNzaW9uIEluZm9ybWF0aW9uIGFuZCB0aGUgZW5jb2RlZCBT Y2hlbWUtc3BlY2lmaWMgRkVDIE9iamVjdA0KICAgVHJhbnNtaXNzaW9uIEluZm9ybWF0aW9uLg0K DQogICBUaGVzZSB0aHJlZSBwYXJhbWV0ZXJzIGRlZmluZSB0aGUgc291cmNlIGJsb2NrIHBhcnRp dGlvbmluZyBhcw0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAgICAgICAgIEV4cGlyZXMgQXVndXN0 IDEsIDIwMTAgICAgICAgICAgICAgICAgIFtQYWdlIDddDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAg ICAgICAgICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAgICAgICBKYW51YXJ5IDIwMTANCg0K DQogICBkZXNjcmliZWQgaW4gU2VjdGlvbiA0LjMuMS4yDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAgICAgICAgIEV4cGlyZXMgQXVn dXN0IDEsIDIwMTAgICAgICAgICAgICAgICAgIFtQYWdlIDhdDQoMDQpJbnRlcm5ldC1EcmFmdCAg ICAgICAgICAgICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAgICAgICBKYW51YXJ5IDIwMTAN Cg0KDQo0LiAgUHJvY2VkdXJlcw0KDQo0LjEuICBDb250ZW50IERlbGl2ZXJ5IFByb3RvY29sIFJl cXVpcmVtZW50cw0KDQogICBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBpbmZvcm1hdGlvbiBl eGNoYW5nZSBiZXR3ZWVuIHRoZSBSYXB0b3JRDQogICBGRUMgU2NoZW1lIGFuZCBhbnkgQ29udGVu dCBEZWxpdmVyeSBQcm90b2NvbCAoQ0RQKSB0aGF0IG1ha2VzIHVzZSBvZg0KICAgdGhlIFJhcHRv clEgRkVDIFNjaGVtZSBmb3Igb2JqZWN0IGRlbGl2ZXJ5Lg0KDQogICBUaGUgUmFwdG9yUSBlbmNv ZGVyIHNjaGVtZSBhbmQgUmFwdG9yUSBkZWNvZGVyIHNjaGVtZSBmb3Igb2JqZWN0DQogICBkZWxp dmVyeSByZXF1aXJlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24gZnJvbSB0aGUgQ0RQOg0KDQog ICBvICBUaGUgdHJhbnNmZXIgbGVuZ3RoIG9mIHRoZSBvYmplY3QsIEYsIGluIGJ5dGVzDQoNCiAg IG8gIEEgc3ltYm9sIGFsaWdubWVudCBwYXJhbWV0ZXIsIEFsDQoNCiAgIG8gIFRoZSBzeW1ib2wg c2l6ZSwgVCwgaW4gYnl0ZXMsIHdoaWNoIE1VU1QgYmUgYSBtdWx0aXBsZSBvZiBBbA0KDQogICBv ICBUaGUgbnVtYmVyIG9mIHNvdXJjZSBibG9ja3MsIFoNCg0KICAgbyAgVGhlIG51bWJlciBvZiBz dWItYmxvY2tzIGluIGVhY2ggc291cmNlIGJsb2NrLCBODQoNCiAgIFRoZSBSYXB0b3JRIGVuY29k ZXIgc2NoZW1lIGZvciBvYmplY3QgZGVsaXZlcnkgYWRkaXRpb25hbGx5IHJlcXVpcmVzOg0KDQog ICAgICAtIHRoZSBvYmplY3QgdG8gYmUgZW5jb2RlZCwgRiBieXRlcw0KDQogICBUaGUgUmFwdG9y USBlbmNvZGVyIHNjaGVtZSBzdXBwbGllcyB0aGUgQ0RQIHdpdGggdGhlIGZvbGxvd2luZw0KICAg aW5mb3JtYXRpb24gZm9yIGVhY2ggcGFja2V0IHRvIGJlIHNlbnQ6DQoNCiAgIG8gIFNvdXJjZSBC bG9jayBOdW1iZXIgKFNCTikNCg0KICAgbyAgRW5jb2RpbmcgU3ltYm9sIElEIChFU0kpDQoNCiAg IG8gIEVuY29kaW5nIHN5bWJvbChzKQ0KDQogICBUaGUgQ0RQIE1VU1QgY29tbXVuaWNhdGUgdGhp cyBpbmZvcm1hdGlvbiB0byB0aGUgcmVjZWl2ZXIuDQoNCjQuMi4gIEV4YW1wbGUgUGFyYW1ldGVy IERlcml2YXRpb24gQWxnb3JpdGhtDQoNCiAgIFRoaXMgc2VjdGlvbiBwcm92aWRlcyByZWNvbW1l bmRhdGlvbnMgZm9yIHRoZSBkZXJpdmF0aW9uIG9mIHRoZSB0aHJlZQ0KICAgdHJhbnNwb3J0IHBh cmFtZXRlcnMsIFQsIFogYW5kIE4uIFRoaXMgcmVjb21tZW5kYXRpb24gaXMgYmFzZWQgb24gdGhl DQogICBmb2xsb3dpbmcgaW5wdXQgcGFyYW1ldGVyczoNCg0KICAgbyAgRiB0aGUgdHJhbnNmZXIg bGVuZ3RoIG9mIHRoZSBvYmplY3QsIGluIGJ5dGVzDQoNCiAgIG8gIFdTIHRoZSBtYXhpbXVtIHNp emUgYmxvY2sgdGhhdCBpcyBkZWNvZGFibGUgaW4gd29ya2luZyBtZW1vcnksIGluDQogICAgICBi eXRlcw0KDQoNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAgICBFeHBpcmVzIEF1Z3VzdCAx LCAyMDEwICAgICAgICAgICAgICAgICBbUGFnZSA5XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAg ICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAgICAgSmFudWFyeSAyMDEwDQoNCg0K ICAgbyAgUCcgdGhlIG1heGltdW0gcGF5bG9hZCBzaXplIGluIGJ5dGVzLCB3aGljaCBpcyBhc3N1 bWVkIHRvIGJlIGENCiAgICAgIG11bHRpcGxlIG9mIEFsDQoNCiAgIG8gIEFsIHRoZSBzeW1ib2wg YWxpZ25tZW50IHBhcmFtZXRlciwgaW4gYnl0ZXMNCg0KICAgbyAgU1MgYSBwYXJhbWV0ZXIgd2hl cmUgdGhlIGRlc2lyZWQgbG93ZXIgYm91bmQgb24gdGhlIHN1Yi1zeW1ib2wNCiAgICAgIHNpemUg aXMgU1MqQWwNCg0KICAgbyAgSydfbWF4IHRoZSBtYXhpbXVtIG51bWJlciBvZiBzb3VyY2Ugc3lt Ym9scyBwZXIgc291cmNlIGJsb2NrLg0KDQogICAgICAgICBOb3RlOiBTZWN0aW9uIDUuMS4yIGRl ZmluZXMgSydfbWF4IHRvIGJlIDU2NDA0DQoNCiAgIEJhc2VkIG9uIHRoZSBhYm92ZSBpbnB1dHMs IHRoZSB0cmFuc3BvcnQgcGFyYW1ldGVycyBULCBaIGFuZCBOIGFyZQ0KICAgY2FsY3VsYXRlZCBh cyBmb2xsb3dzOg0KDQogICBMZXQsDQoNCiAgIG8gIFQgPSBQJw0KDQogICBvICBLdCA9IGNlaWwo Ri9UKQ0KDQogICBvICBOX21heCA9IGZsb29yKFQvKFNTKkFsKSkNCg0KICAgbyAgZm9yIGFsbCBu PTEsIC4uLiwgTl9tYXgNCg0KICAgICAgKiAgS0wobikgaXMgdGhlIG1heGltdW0gSycgdmFsdWUg aW4gVGFibGUgMiBpbiBTZWN0aW9uIDUuNiBzdWNoDQogICAgICAgICB0aGF0DQoNCiAgICAgICAg ICAgIEsnIDw9IGZsb29yIChXUy8oQWwqKGNlaWwoVC8oQWwqbikpKSkpDQoNCiAgIG8gIFogPSBj ZWlsKEt0L0tMKE5fbWF4KSkNCg0KICAgbyAgTiBpcyB0aGUgbWluaW11bSBuPTEsIC4uLiwgTl9t YXggc3VjaCB0aGF0IGNlaWwgKEt0L1opIDw9IEtMKG4pDQoNCiAgIEl0IGlzIFJFQ09NTUVOREVE IHRoYXQgZWFjaCBwYWNrZXQgY29udGFpbnMgZXhhY3RseSBvbmUgc3ltYm9sLg0KICAgSG93ZXZl ciwgcmVjZWl2ZXJzIFNIQUxMIHN1cHBvcnQgdGhlIHJlY2VwdGlvbiBvZiBwYWNrZXRzIHRoYXQN CiAgIGNvbnRhaW4gbXVsdGlwbGUgc3ltYm9scy4NCg0KICAgVGhlIHZhbHVlIEt0IGlzIHRoZSB0 b3RhbCBudW1iZXIgb2Ygc3ltYm9scyByZXF1aXJlZCB0byByZXByZXNlbnQgdGhlDQogICBzb3Vy Y2UgZGF0YSBvZiB0aGUgb2JqZWN0Lg0KDQogICBUaGUgYWxnb3JpdGhtIGFib3ZlIGFuZCB0aGF0 IGRlZmluZWQgaW4gU2VjdGlvbiA0LjMuMS4yIGVuc3VyZSB0aGF0DQogICB0aGUgc3ViLXN5bWJv bCBzaXplcyBhcmUgYSBtdWx0aXBsZSBvZiB0aGUgc3ltYm9sIGFsaWdubWVudA0KICAgcGFyYW1l dGVyLCBBbC4gIFRoaXMgaXMgdXNlZnVsIGJlY2F1c2UgdGhlIFhPUiBvcGVyYXRpb25zIHVzZWQg Zm9yDQogICBlbmNvZGluZyBhbmQgZGVjb2RpbmcgYXJlIGdlbmVyYWxseSBwZXJmb3JtZWQgc2V2 ZXJhbCBieXRlcyBhdCBhDQogICB0aW1lLCBmb3IgZXhhbXBsZSBhdCBsZWFzdCA0IGJ5dGVzIGF0 IGEgdGltZSBvbiBhIDMyIGJpdCBwcm9jZXNzb3IuDQogICBUaHVzIHRoZSBlbmNvZGluZyBhbmQg ZGVjb2RpbmcgY2FuIGJlIHBlcmZvcm1lZCBmYXN0ZXIgaWYgdGhlIHN1Yi0NCiAgIHN5bWJvbCBz aXplcyBhcmUgYSBtdWx0aXBsZSBvZiB0aGlzIG51bWJlciBvZiBieXRlcy4NCg0KDQoNCkx1Ynks IGV0IGFsLiAgICAgICAgICAgICBFeHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAg IFtQYWdlIDEwXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2No ZW1lICAgICAgICAgICAgICAgSmFudWFyeSAyMDEwDQoNCg0KICAgVGhlIHJlY29tbWVuZGVkIHNl dHRpbmdzIGZvciB0aGUgaW5wdXQgcGFyYW1ldGVyIEFsIGlzIDQuDQoNCiAgIFRoZSBwYXJhbWV0 ZXIgV1MgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgZW5jb2RlZCBkYXRhIHdoaWNoIGNhbiBiZQ0K ICAgZGVjb2RlZCBlZmZpY2llbnRseSB3aXRoIGxpbWl0ZWQgd29ya2luZyBtZW1vcnkgYXQgdGhl IGRlY29kZXIuICBOb3RlDQogICB0aGF0IHRoZSBhY3R1YWwgbWF4aW11bSBkZWNvZGVyIG1lbW9y eSByZXF1aXJlbWVudCBmb3IgYSBnaXZlbiB2YWx1ZQ0KICAgb2YgV1MgZGVwZW5kcyBvbiB0aGUg aW1wbGVtZW50YXRpb24sIGJ1dCBpdCBpcyBwb3NzaWJsZSB0byBpbXBsZW1lbnQNCiAgIGRlY29k aW5nIHVzaW5nIHdvcmtpbmcgbWVtb3J5IG9ubHkgc2xpZ2h0bHkgbGFyZ2VyIHRoYW4gV1MuDQoN CjQuMy4gIE9iamVjdCBEZWxpdmVyeQ0KDQo0LjMuMS4gIFNvdXJjZSBibG9jayBjb25zdHJ1Y3Rp b24NCg0KNC4zLjEuMS4gIEdlbmVyYWwNCg0KICAgSW4gb3JkZXIgdG8gYXBwbHkgdGhlIFJhcHRv clEgZW5jb2RlciB0byBhIHNvdXJjZSBvYmplY3QsIHRoZSBvYmplY3QNCiAgIG1heSBiZSBicm9r ZW4gaW50byBaID49IDEgYmxvY2tzLCBrbm93biBhcyBzb3VyY2UgYmxvY2tzLiAgVGhlDQogICBS YXB0b3JRIGVuY29kZXIgaXMgYXBwbGllZCBpbmRlcGVuZGVudGx5IHRvIGVhY2ggc291cmNlIGJs b2NrLiAgRWFjaA0KICAgc291cmNlIGJsb2NrIGlzIGlkZW50aWZpZWQgYnkgYSB1bmlxdWUgaW50 ZWdlciBTb3VyY2UgQmxvY2sgTnVtYmVyDQogICAoU0JOKSwgd2hlcmUgdGhlIGZpcnN0IHNvdXJj ZSBibG9jayBoYXMgU0JOIHplcm8sIHRoZSBzZWNvbmQgaGFzIFNCTg0KICAgb25lLCBldGMuICBF YWNoIHNvdXJjZSBibG9jayBpcyBkaXZpZGVkIGludG8gYSBudW1iZXIsIEssIG9mIHNvdXJjZQ0K ICAgc3ltYm9scyBvZiBzaXplIFQgYnl0ZXMgZWFjaC4gIEVhY2ggc291cmNlIHN5bWJvbCBpcyBp ZGVudGlmaWVkIGJ5IGENCiAgIHVuaXF1ZSBpbnRlZ2VyIEVuY29kaW5nIFN5bWJvbCBJZGVudGlm aWVyIChFU0kpLCB3aGVyZSB0aGUgZmlyc3QNCiAgIHNvdXJjZSBzeW1ib2wgb2YgYSBzb3VyY2Ug YmxvY2sgaGFzIEVTSSB6ZXJvLCB0aGUgc2Vjb25kIGhhcyBFU0kgb25lLA0KICAgZXRjLg0KDQog ICBFYWNoIHNvdXJjZSBibG9jayB3aXRoIEsgc291cmNlIHN5bWJvbHMgaXMgZGl2aWRlZCBpbnRv IE4gPj0gMSBzdWItDQogICBibG9ja3MsIHdoaWNoIGFyZSBzbWFsbCBlbm91Z2ggdG8gYmUgZGVj b2RlZCBpbiB0aGUgd29ya2luZyBtZW1vcnkuDQogICBFYWNoIHN1Yi1ibG9jayBpcyBkaXZpZGVk IGludG8gSyBzdWItc3ltYm9scyBvZiBzaXplIFQnLg0KDQogICBOb3RlIHRoYXQgdGhlIHZhbHVl IG9mIEsgaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGZvciBlYWNoIHNvdXJjZQ0KICAgYmxv Y2sgb2YgYSBvYmplY3QgYW5kIHRoZSB2YWx1ZSBvZiBUJyBtYXkgbm90IG5lY2Vzc2FyaWx5IGJl IHRoZSBzYW1lDQogICBmb3IgZWFjaCBzdWItYmxvY2sgb2YgYSBzb3VyY2UgYmxvY2suICBIb3dl dmVyLCB0aGUgc3ltYm9sIHNpemUgVCBpcw0KICAgdGhlIHNhbWUgZm9yIGFsbCBzb3VyY2UgYmxv Y2tzIG9mIGFuIG9iamVjdCBhbmQgdGhlIG51bWJlciBvZg0KICAgc3ltYm9scywgSyBpcyB0aGUg c2FtZSBmb3IgZXZlcnkgc3ViLWJsb2NrIG9mIGEgc291cmNlIGJsb2NrLiAgRXhhY3QNCiAgIHBh cnRpdGlvbmluZyBvZiB0aGUgb2JqZWN0IGludG8gc291cmNlIGJsb2NrcyBhbmQgc3ViLWJsb2Nr cyBpcw0KICAgZGVzY3JpYmVkIGluIFNlY3Rpb24gNC4zLjEuMiBiZWxvdy4NCg0KNC4zLjEuMi4g IFNvdXJjZSBibG9jayBhbmQgc3ViLWJsb2NrIHBhcnRpdGlvbmluZw0KDQogICBUaGUgY29uc3Ry dWN0aW9uIG9mIHNvdXJjZSBibG9ja3MgYW5kIHN1Yi1ibG9ja3MgaXMgZGV0ZXJtaW5lZCBiYXNl ZA0KICAgb24gZml2ZSBpbnB1dCBwYXJhbWV0ZXJzLCBGLCBBbCwgVCwgWiBhbmQgTiBhbmQgYSBm dW5jdGlvbg0KICAgUGFydGl0aW9uW10uICBUaGUgZml2ZSBpbnB1dCBwYXJhbWV0ZXJzIGFyZSBk ZWZpbmVkIGFzIGZvbGxvd3M6DQoNCiAgIG8gIEYgdGhlIHRyYW5zZmVyIGxlbmd0aCBvZiB0aGUg b2JqZWN0LCBpbiBieXRlcw0KDQogICBvICBBbCBhIHN5bWJvbCBhbGlnbm1lbnQgcGFyYW1ldGVy LCBpbiBieXRlcw0KDQoNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAgICBFeHBpcmVzIEF1 Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgIFtQYWdlIDExXQ0KDA0KSW50ZXJuZXQtRHJhZnQg ICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAgICAgSmFudWFyeSAyMDEw DQoNCg0KICAgbyAgVCB0aGUgc3ltYm9sIHNpemUsIGluIGJ5dGVzLCB3aGljaCBNVVNUIGJlIGEg bXVsdGlwbGUgb2YgQWwNCg0KICAgbyAgWiB0aGUgbnVtYmVyIG9mIHNvdXJjZSBibG9ja3MNCg0K ICAgbyAgTiB0aGUgbnVtYmVyIG9mIHN1Yi1ibG9ja3MgaW4gZWFjaCBzb3VyY2UgYmxvY2sNCg0K ICAgVGhlc2UgcGFyYW1ldGVycyBNVVNUIGJlIHNldCBzbyB0aGF0IGNlaWwoY2VpbChGL1QpL1op IDw9IEsnX21heC4NCiAgIFJlY29tbWVuZGF0aW9ucyBmb3IgZGVyaXZhdGlvbiBvZiB0aGVzZSBw YXJhbWV0ZXJzIGFyZSBwcm92aWRlZCBpbg0KICAgU2VjdGlvbiA0LjIuDQoNCiAgIFRoZSBmdW5j dGlvbiBQYXJ0aXRpb25bXSB0YWtlcyBhIHBhaXIgb2YgaW50ZWdlcnMgKEksIEopIGFzIGlucHV0 IGFuZA0KICAgZGVyaXZlcyBmb3VyIGludGVnZXJzIChJTCwgSVMsIEpMLCBKUykgYXMgb3V0cHV0 LiAgU3BlY2lmaWNhbGx5LCB0aGUNCiAgIHZhbHVlIG9mIFBhcnRpdGlvbltJLCBKXSBpcyBhIHNl cXVlbmNlIG9mIGZvdXIgaW50ZWdlcnMgKElMLCBJUywgSkwsDQogICBKUyksIHdoZXJlIElMID0g Y2VpbChJL0opLCBJUyA9IGZsb29yKEkvSiksIEpMID0gSSAtIElTICogSiBhbmQgSlMgPQ0KICAg SiAtIEpMLiAgUGFydGl0aW9uW10gZGVyaXZlcyBwYXJhbWV0ZXJzIGZvciBwYXJ0aXRpb25pbmcg YSBibG9jayBvZg0KICAgc2l6ZSBJIGludG8gSiBhcHByb3hpbWF0ZWx5IGVxdWFsIHNpemVkIGJs b2Nrcy4gIFNwZWNpZmljYWxseSwgSkwNCiAgIGJsb2NrcyBvZiBsZW5ndGggSUwgYW5kIEpTIGJs b2NrcyBvZiBsZW5ndGggSVMuDQoNCiAgIFRoZSBzb3VyY2Ugb2JqZWN0IE1VU1QgYmUgcGFydGl0 aW9uZWQgaW50byBzb3VyY2UgYmxvY2tzIGFuZCBzdWItDQogICBibG9ja3MgYXMgZm9sbG93czoN Cg0KICAgTGV0LA0KDQogICBvICBLdCA9IGNlaWwoRi9UKQ0KDQogICBvICAoS0wsIEtTLCBaTCwg WlMpID0gUGFydGl0aW9uW0t0LCBaXQ0KDQogICBvICAoVEwsIFRTLCBOTCwgTlMpID0gUGFydGl0 aW9uW1QvQWwsIE5dDQoNCiAgIFRoZW4sIHRoZSBvYmplY3QgTVVTVCBiZSBwYXJ0aXRpb25lZCBp bnRvIFogPSBaTCArIFpTIGNvbnRpZ3VvdXMNCiAgIHNvdXJjZSBibG9ja3MsIHRoZSBmaXJzdCBa TCBzb3VyY2UgYmxvY2tzIGVhY2ggaGF2aW5nIEtMKlQgYnl0ZXMsDQogICBpLmUuICBLTCBzb3Vy Y2Ugc3ltYm9scyBvZiBUIGJ5dGVzIGVhY2gsIGFuZCB0aGUgcmVtYWluaW5nIFpTIHNvdXJjZQ0K ICAgYmxvY2tzIGVhY2ggaGF2aW5nIEtTKlQgYnl0ZXMsIGkuZS4gIEtTIHNvdXJjZSBzeW1ib2xz IG9mIFQgYnl0ZXMNCiAgIGVhY2guDQoNCiAgIElmIEt0KlQgPiBGIHRoZW4gZm9yIGVuY29kaW5n IHB1cnBvc2VzLCB0aGUgbGFzdCBzeW1ib2wgb2YgdGhlIGxhc3QNCiAgIHNvdXJjZSBibG9jayBN VVNUIGJlIHBhZGRlZCBhdCB0aGUgZW5kIHdpdGggS3QqVC1GIHplcm8gYnl0ZXMuDQoNCiAgIE5l eHQsIGVhY2ggc291cmNlIGJsb2NrIHdpdGggSyBzb3VyY2Ugc3ltYm9scyBNVVNUIGJlIGRpdmlk ZWQgaW50byBODQogICA9IE5MICsgTlMgY29udGlndW91cyBzdWItYmxvY2tzLCB0aGUgZmlyc3Qg Tkwgc3ViLWJsb2NrcyBlYWNoDQogICBjb25zaXN0aW5nIG9mIEsgY29udGlndW91cyBzdWItc3lt Ym9scyBvZiBzaXplIG9mIFRMKkFsIGJ5dGVzIGFuZCB0aGUNCiAgIHJlbWFpbmluZyBOUyBzdWIt YmxvY2tzIGVhY2ggY29uc2lzdGluZyBvZiBLIGNvbnRpZ3VvdXMgc3ViLXN5bWJvbHMNCiAgIG9m IHNpemUgb2YgVFMqQWwgYnl0ZXMuICBUaGUgc3ltYm9sIGFsaWdubWVudCBwYXJhbWV0ZXIgQWwg ZW5zdXJlcw0KICAgdGhhdCBzdWItc3ltYm9scyBhcmUgYWx3YXlzIGEgbXVsdGlwbGUgb2YgQWwg Ynl0ZXMuDQoNCiAgIEZpbmFsbHksIHRoZSBtLXRoIHN5bWJvbCBvZiBhIHNvdXJjZSBibG9jayBj b25zaXN0cyBvZiB0aGUNCiAgIGNvbmNhdGVuYXRpb24gb2YgdGhlIG0tdGggc3ViLXN5bWJvbCBm cm9tIGVhY2ggb2YgdGhlIE4gc3ViLWJsb2Nrcy4NCiAgIE5vdGUgdGhhdCB0aGlzIGltcGxpZXMg dGhhdCB3aGVuIE4gPiAxIHRoZW4gYSBzeW1ib2wgaXMgTk9UIGENCg0KDQoNCkx1YnksIGV0IGFs LiAgICAgICAgICAgICBFeHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgIFtQYWdl IDEyXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAg ICAgICAgICAgICAgSmFudWFyeSAyMDEwDQoNCg0KICAgY29udGlndW91cyBwb3J0aW9uIG9mIHRo ZSBvYmplY3QuDQoNCjQuMy4yLiAgRW5jb2RpbmcgcGFja2V0IGNvbnN0cnVjdGlvbg0KDQogICBF YWNoIGVuY29kaW5nIHBhY2tldCBjb250YWlucyB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOg0K DQogICBvICBTb3VyY2UgQmxvY2sgTnVtYmVyIChTQk4pDQoNCiAgIG8gIEVuY29kaW5nIFN5bWJv bCBJRCAoRVNJKQ0KDQogICBvICBlbmNvZGluZyBzeW1ib2wocykNCg0KICAgRWFjaCBzb3VyY2Ug YmxvY2sgaXMgZW5jb2RlZCBpbmRlcGVuZGVudGx5IG9mIHRoZSBvdGhlcnMuICBTb3VyY2UNCiAg IGJsb2NrcyBhcmUgbnVtYmVyZWQgY29uc2VjdXRpdmVseSBmcm9tIHplcm8uDQoNCiAgIEVuY29k aW5nIFN5bWJvbCBJRCB2YWx1ZXMgZnJvbSAwIHRvIEstMSBpZGVudGlmeSB0aGUgc291cmNlIHN5 bWJvbHMNCiAgIG9mIGEgc291cmNlIGJsb2NrIGluIHNlcXVlbnRpYWwgb3JkZXIsIHdoZXJlIEsg aXMgdGhlIG51bWJlciBvZg0KICAgc291cmNlIHN5bWJvbHMgaW4gdGhlIHNvdXJjZSBibG9jay4g IEVuY29kaW5nIFN5bWJvbCBJRHMgSyBvbndhcmRzDQogICBpZGVudGlmeSByZXBhaXIgc3ltYm9s cyBnZW5lcmF0ZWQgZnJvbSB0aGUgc291cmNlIHN5bWJvbHMgdXNpbmcgdGhlDQogICBSYXB0b3JR IGVuY29kZXIuDQoNCiAgIEVhY2ggZW5jb2RpbmcgcGFja2V0IGVpdGhlciBjb25zaXN0cyBlbnRp cmVseSBvZiBzb3VyY2Ugc3ltYm9scw0KICAgKHNvdXJjZSBwYWNrZXQpIG9yIGVudGlyZWx5IG9m IHJlcGFpciBzeW1ib2xzIChyZXBhaXIgcGFja2V0KS4gIEENCiAgIHBhY2tldCBtYXkgY29udGFp biBhbnkgbnVtYmVyIG9mIHN5bWJvbHMgZnJvbSB0aGUgc2FtZSBzb3VyY2UgYmxvY2suDQogICBJ biB0aGUgY2FzZSB0aGF0IHRoZSBsYXN0IHNvdXJjZSBzeW1ib2wgaW4gYSBzb3VyY2UgcGFja2V0 IGluY2x1ZGVzDQogICBwYWRkaW5nIGJ5dGVzIGFkZGVkIGZvciBGRUMgZW5jb2RpbmcgcHVycG9z ZXMgdGhlbiB0aGVzZSBieXRlcyBuZWVkDQogICBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHBhY2tl dC4gIE90aGVyd2lzZSwgb25seSB3aG9sZSBzeW1ib2xzIE1VU1QgYmUNCiAgIGluY2x1ZGVkLg0K DQogICBUaGUgRW5jb2RpbmcgU3ltYm9sIElELCBYLCBjYXJyaWVkIGluIGVhY2ggc291cmNlIHBh Y2tldCBpcyB0aGUNCiAgIEVuY29kaW5nIFN5bWJvbCBJRCBvZiB0aGUgZmlyc3Qgc291cmNlIHN5 bWJvbCBjYXJyaWVkIGluIHRoYXQgcGFja2V0Lg0KICAgVGhlIHN1YnNlcXVlbnQgc291cmNlIHN5 bWJvbHMgaW4gdGhlIHBhY2tldCBoYXZlIEVuY29kaW5nIFN5bWJvbCBJRHMsDQogICBYKzEgdG8g WCtHLTEsIGluIHNlcXVlbnRpYWwgb3JkZXIsIHdoZXJlIEcgaXMgdGhlIG51bWJlciBvZiBzeW1i b2xzDQogICBpbiB0aGUgcGFja2V0Lg0KDQogICBTaW1pbGFybHksIHRoZSBFbmNvZGluZyBTeW1i b2wgSUQsIFgsIHBsYWNlZCBpbnRvIGEgcmVwYWlyIHBhY2tldCBpcw0KICAgdGhlIEVuY29kaW5n IFN5bWJvbCBJRCBvZiB0aGUgZmlyc3QgcmVwYWlyIHN5bWJvbCBpbiB0aGUgcmVwYWlyDQogICBw YWNrZXQgYW5kIHRoZSBzdWJzZXF1ZW50IHJlcGFpciBzeW1ib2xzIGluIHRoZSBwYWNrZXQgaGF2 ZSBFbmNvZGluZw0KICAgU3ltYm9sIElEcyBYKzEgdG8gWCtHLTEgaW4gc2VxdWVudGlhbCBvcmRl ciwgd2hlcmUgRyBpcyB0aGUgbnVtYmVyIG9mDQogICBzeW1ib2xzIGluIHRoZSBwYWNrZXQuDQoN CiAgIE5vdGUgdGhhdCBpdCBpcyBub3QgbmVjZXNzYXJ5IGZvciB0aGUgcmVjZWl2ZXIgdG8ga25v dyB0aGUgdG90YWwNCiAgIG51bWJlciBvZiByZXBhaXIgcGFja2V0cy4NCg0KDQoNCg0KDQoNCg0K DQpMdWJ5LCBldCBhbC4gICAgICAgICAgICAgRXhwaXJlcyBBdWd1c3QgMSwgMjAxMCAgICAgICAg ICAgICAgICBbUGFnZSAxM10NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICAgIFJhcHRvckcg RkVDIFNjaGVtZSAgICAgICAgICAgICAgIEphbnVhcnkgMjAxMA0KDQoNCjUuICBSYXB0b3JHIEZF QyBDb2RlIFNwZWNpZmljYXRpb24NCg0KNS4xLiAgRGVmaW5pdGlvbnMsIFN5bWJvbHMgYW5kIEFi YnJldmlhdGlvbnMNCg0KICAgRm9yIHRoZSBwdXJwb3NlIG9mIHRoZSBSYXB0b3JRIEZFQyBjb2Rl IHNwZWNpZmljYXRpb24gaW4gdGhpcw0KICAgc2VjdGlvbiwgdGhlIGZvbGxvd2luZyBkZWZpbml0 aW9ucywgc3ltYm9scyBhbmQgYWJicmV2aWF0aW9ucyBhcHBseS4NCg0KNS4xLjEuICBEZWZpbml0 aW9ucw0KDQogICBvICBTb3VyY2UgYmxvY2s6IGEgYmxvY2sgb2YgSyBzb3VyY2Ugc3ltYm9scyB3 aGljaCBhcmUgY29uc2lkZXJlZA0KICAgICAgdG9nZXRoZXIgZm9yIFJhcHRvclEgZW5jb2Rpbmcg YW5kIGRlY29kaW5nIHB1cnBvc2VzLg0KDQogICBvICBFeHRlbmRlZCBTb3VyY2UgQmxvY2s6IGEg YmxvY2sgb2YgSycgc291cmNlIHN5bWJvbHMsIHdoZXJlIEsnID49IEsNCiAgICAgIGNvbnN0cnVj dGVkIGZyb20gYSBzb3VyY2UgYmxvY2sgYW5kIHplcm8gb3IgbW9yZSBwYWRkaW5nIHN5bWJvbHMu DQoNCiAgIG8gIFN5bWJvbDogYSB1bml0IG9mIGRhdGEuICBUaGUgc2l6ZSwgaW4gYnl0ZXMsIG9m IGEgc3ltYm9sIGlzIGtub3duDQogICAgICBhcyB0aGUgc3ltYm9sIHNpemUuICBUaGUgc3ltYm9s IHNpemUgaXMgYWx3YXlzIGFuIGludGVnZXIuDQoNCiAgIG8gIFNvdXJjZSBzeW1ib2w6IHRoZSBz bWFsbGVzdCB1bml0IG9mIGRhdGEgdXNlZCBkdXJpbmcgdGhlIGVuY29kaW5nDQogICAgICBwcm9j ZXNzLiAgQWxsIHNvdXJjZSBzeW1ib2xzIHdpdGhpbiBhIHNvdXJjZSBibG9jayBoYXZlIHRoZSBz YW1lDQogICAgICBzaXplLg0KDQogICBvICBQYWRkaW5nIHN5bWJvbDogYSBzeW1ib2wgd2l0aCBh bGwgemVybyBiaXRzIHRoYXQgaXMgYWRkZWQgdG8gdGhlDQogICAgICBzb3VyY2UgYmxvY2sgdG8g Zm9ybSB0aGUgZXh0ZW5kZWQgc291cmNlIGJsb2NrLg0KDQogICBvICBFbmNvZGluZyBzeW1ib2w6 IGEgc3ltYm9sIHRoYXQgY2FuIGJlIHNlbnQgYXMgcGFydCBvZiB0aGUgZW5jb2RpbmcNCiAgICAg IG9mIGEgc291cmNlIGJsb2NrLiAgVGhlIGVuY29kaW5nIHN5bWJvbHMgb2YgYSBzb3VyY2UgYmxv Y2sgY29uc2lzdA0KICAgICAgb2YgdGhlIHNvdXJjZSBzeW1ib2xzIG9mIHRoZSBzb3VyY2UgYmxv Y2sgYW5kIHRoZSByZXBhaXIgc3ltYm9scw0KICAgICAgZ2VuZXJhdGVkIGZyb20gdGhlIHNvdXJj ZSBibG9jay4gIFJlcGFpciBzeW1ib2xzIGdlbmVyYXRlZCBmcm9tIGENCiAgICAgIHNvdXJjZSBi bG9jayBoYXZlIHRoZSBzYW1lIHNpemUgYXMgdGhlIHNvdXJjZSBzeW1ib2xzIG9mIHRoYXQNCiAg ICAgIHNvdXJjZSBibG9jay4NCg0KICAgbyAgUmVwYWlyIHN5bWJvbDogdGhlIGVuY29kaW5nIHN5 bWJvbHMgb2YgYSBzb3VyY2UgYmxvY2sgdGhhdCBhcmUgbm90DQogICAgICBzb3VyY2Ugc3ltYm9s cy4gIFRoZSByZXBhaXIgc3ltYm9scyBhcmUgZ2VuZXJhdGVkIGJhc2VkIG9uIHRoZQ0KICAgICAg c291cmNlIHN5bWJvbHMgb2YgYSBzb3VyY2UgYmxvY2suDQoNCiAgIG8gIEludGVybWVkaWF0ZSBz eW1ib2xzOiBzeW1ib2xzIGdlbmVyYXRlZCBmcm9tIHRoZSBzb3VyY2Ugc3ltYm9scw0KICAgICAg dXNpbmcgYW4gaW52ZXJzZSBlbmNvZGluZyBwcm9jZXNzLiAgVGhlIHJlcGFpciBzeW1ib2xzIGFy ZSB0aGVuDQogICAgICBnZW5lcmF0ZWQgZGlyZWN0bHkgZnJvbSB0aGUgaW50ZXJtZWRpYXRlIHN5 bWJvbHMuICBUaGUgZW5jb2RpbmcNCiAgICAgIHN5bWJvbHMgZG8gbm90IGluY2x1ZGUgdGhlIGlu dGVybWVkaWF0ZSBzeW1ib2xzLCBpLmUuLA0KICAgICAgaW50ZXJtZWRpYXRlIHN5bWJvbHMgYXJl IG5vdCBzZW50IGFzIHBhcnQgb2YgdGhlIGVuY29kaW5nIG9mIGENCiAgICAgIHNvdXJjZSBibG9j ay4gIFRoZSBpbnRlcm1lZGlhdGUgc3ltYm9scyBhcmUgcGFydGl0aW9uZWQgaW50byBMVA0KICAg ICAgc3ltYm9scyBhbmQgUEkgc3ltYm9scy4NCg0KICAgbyAgTFQgc3ltYm9sczogVGhlIHN1YnNl dCBvZiB0aGUgaW50ZXJtZWRpYXRlIHN5bWJvbHMgdGhhdCBjYW4gYmUgTFQNCiAgICAgIG5laWdo Ym9ycyBvZiBhbiBlbmNvZGluZyBzeW1ib2wuDQoNCg0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAg ICAgICAgIEV4cGlyZXMgQXVndXN0IDEsIDIwMTAgICAgICAgICAgICAgICAgW1BhZ2UgMTRdDQoM DQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAg ICAgICBKYW51YXJ5IDIwMTANCg0KDQogICBvICBQSSBzeW1ib2xzOiBUaGUgc3Vic2V0IG9mIHRo ZSBpbnRlcm1lZGlhdGUgc3ltYm9scyB0aGF0IGNhbiBiZSBQSQ0KICAgICAgbmVpZ2hib3JzIG9m IGFuIGVuY29kaW5nIHN5bWJvbC4NCg0KICAgbyAgU3lzdGVtYXRpYyBjb2RlOiBhIGNvZGUgaW4g d2hpY2ggYWxsIHNvdXJjZSBzeW1ib2xzIGFyZSBpbmNsdWRlZA0KICAgICAgYXMgcGFydCBvZiB0 aGUgZW5jb2Rpbmcgc3ltYm9scyBvZiBhIHNvdXJjZSBibG9jay4gIFRoZSBSYXB0b3JRDQogICAg ICBjb2RlIGFzIGRlc2NyaWJlZCBoZXJlaW4gaXMgYSBzeXN0ZW1hdGljIGNvZGUuDQoNCiAgIG8g IEVuY29kaW5nIFN5bWJvbCBJRDogaW5mb3JtYXRpb24gdGhhdCB1bmlxdWVseSBpZGVudGlmaWVz IGVhY2gNCiAgICAgIGVuY29kaW5nIHN5bWJvbCBhc3NvY2lhdGVkIHdpdGggYSBzb3VyY2UgYmxv Y2sgZm9yIHNlbmRpbmcgYW5kDQogICAgICByZWNlaXZpbmcgcHVycG9zZXMuDQoNCiAgIG8gIElu dGVybmFsIFN5bWJvbCBJRDogaW5mb3JtYXRpb24gdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIGVh Y2gNCiAgICAgIHN5bWJvbCBhc3NvY2lhdGVkIHdpdGggYW4gZXh0ZW5kZWQgc291cmNlIGJsb2Nr IGZvciBlbmNvZGluZyBhbmQNCiAgICAgIGRlY29kaW5nIHB1cnBvc2VzLg0KDQo1LjEuMi4gIFN5 bWJvbHMNCg0KICAgaSwgaiwgdSwgdiwgaCwgZCwgYSwgYiwgZDEsIGExLCBiMSwgdiwgbSwgeCwg eSAgIHJlcHJlc2VudCB2YWx1ZXMgb3INCiAgICAgICAgdmFyaWFibGVzIG9mIG9uZSB0eXBlIG9y IGFub3RoZXIsIGRlcGVuZGluZyBvbiB0aGUgY29udGV4dC4NCg0KICAgWCAgICBkZW5vdGVzIGEg bm9uLW5lZ2F0aXZlIGludGVnZXIgdmFsdWUgdGhhdCBpcyBlaXRoZXIgYW4gSVNJIHZhbHVlDQog ICAgICAgIG9yIGFuIEVTSSB2YWx1ZSwgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0Lg0KDQogICBj ZWlsKHgpICBkZW5vdGVzIHRoZSBzbWFsbGVzdCBpbnRlZ2VyIHdoaWNoIGlzIGdyZWF0ZXIgdGhh biBvciBlcXVhbA0KICAgICAgICB0byB4LCB3aGVyZSB4IGlzIGEgcmVhbCB2YWx1ZS4NCg0KICAg Zmxvb3IoeCkgIGRlbm90ZXMgdGhlIGxhcmdlc3QgcG9zaXRpdmUgaW50ZWdlciB3aGljaCBpcyBs ZXNzIHRoYW4gb3INCiAgICAgICAgZXF1YWwgdG8geCwgd2hlcmUgeCBpcyBhIHJlYWwgdmFsdWUu DQoNCiAgIG1pbih4LHkpICBkZW5vdGVzIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSB2YWx1ZXMg eCBhbmQgeSwgYW5kIGluDQogICAgICAgIGdlbmVyYWwgdGhlIG1pbmltdW0gdmFsdWUgb2YgYWxs IHRoZSBhcmd1bWVudCB2YWx1ZXMuDQoNCiAgIG1heCh4LHkpICBkZW5vdGVzIHRoZSBtYXhpbXVt IHZhdWUgb2YgdGhlIHZhbHVlcyB4IGFuZCB5LCBhbmQgaW4NCiAgICAgICAgZ2VuZXJhbCB0aGUg bWF4aW11bSB2YWx1ZSBvZiBhbGwgdGhlIGFyZ3VtZW50IHZhbHVlcy4NCg0KICAgaSAlIGogIGRl bm90ZXMgaSBtb2R1bG8gai4NCg0KICAgdSBeIHYgIGRlbm90ZXMsIGZvciBlcXVhbC1sZW5ndGgg Yml0IHN0cmluZ3MgdSBhbmQgdiwgdGhlIGJpdHdpc2UNCiAgICAgICAgZXhjbHVzaXZlLW9yIG9m IHUgYW5kIHYuDQoNCiAgIEEgICAgZGVub3RlcyBhIG1hdHJpeCBBLg0KDQogICBUcmFuc3Bvc2Vb QV0gIGRlbm90ZXMgdGhlIHRyYW5zcG9zZWQgbWF0cml4IG9mIG1hdHJpeCBBLg0KDQogICBBXl4t MSAgZGVub3RlcyB0aGUgaW52ZXJzZSBtYXRyaXggb2YgbWF0cml4IEEuDQoNCg0KDQoNCg0KDQpM dWJ5LCBldCBhbC4gICAgICAgICAgICAgRXhwaXJlcyBBdWd1c3QgMSwgMjAxMCAgICAgICAgICAg ICAgICBbUGFnZSAxNV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICAgIFJhcHRvckcgRkVD IFNjaGVtZSAgICAgICAgICAgICAgIEphbnVhcnkgMjAxMA0KDQoNCiAgIEsgICAgZGVub3RlcyB0 aGUgbnVtYmVyIG9mIHN5bWJvbHMgaW4gYSBzaW5nbGUgc291cmNlIGJsb2NrLg0KDQogICBLJyAg IGRlbm90ZXMgdGhlIG51bWJlciBvZiBzb3VyY2UgcGx1cyBwYWRkaW5nIHN5bWJvbHMgaW4gYW4g ZXh0ZW5kZWQNCiAgICAgICAgc291cmNlIGJsb2NrLiAgRm9yIHRoZSBtYWpvcml0eSBvZiB0aGlz IHNwZWNpZmljYXRpb24sIHRoZQ0KICAgICAgICBwYWRkaW5nIHN5bWJvbHMgYXJlIGNvbnNpZGVy ZWQgdG8gYmUgYWRkaXRpb25hbCBzb3VyY2Ugc3ltYm9scy4NCg0KICAgSydfbWF4ICBkZW5vdGVz IHRoZSBtYXhpbXVtIG51bWJlciBvZiBzb3VyY2Ugc3ltYm9scyB0aGF0IGNhbiBiZSBpbiBhDQog ICAgICAgIHNpbmdsZSBzb3VyY2UgYmxvY2suICBTZXQgdG8gNTY0MDQuDQoNCiAgIEwgICAgZGVu b3RlcyB0aGUgbnVtYmVyIG9mIGludGVybWVkaWF0ZSBzeW1ib2xzIGZvciBhIHNpbmdsZSBleHRl bmRlZA0KICAgICAgICBzb3VyY2UgYmxvY2suDQoNCiAgIFMgICAgZGVub3RlcyB0aGUgbnVtYmVy IG9mIExEUEMgc3ltYm9scyBmb3IgYSBzaW5nbGUgZXh0ZW5kZWQgc291cmNlDQogICAgICAgIGJs b2NrLiAgVGhlc2UgYXJlIExUIHN5bWJvbHMuICBGb3IgZWFjaCB2YWx1ZSBvZiBLJyBzaG93biBp bg0KICAgICAgICBUYWJsZSAyIGluIFNlY3Rpb24gNS42LCB0aGUgY29ycmVzcG9uZGluZyB2YWx1 ZSBvZiBTIGlzIGEgcHJpbWUNCiAgICAgICAgbnVtYmVyLg0KDQogICBIICAgIGRlbm90ZXMgdGhl IG51bWJlciBvZiBIRFBDIHN5bWJvbHMgZm9yIGEgc2luZ2xlIGV4dGVuZGVkIHNvdXJjZQ0KICAg ICAgICBibG9jay4gIFRoZXNlIGFyZSBQSSBzeW1ib2xzLg0KDQogICBCICAgIGRlbm90ZXMgdGhl IG51bWJlciBvZiBpbnRlcm1lZGlhdGUgc3ltYm9scyB0aGF0IGFyZSBMVCBzeW1ib2xzDQogICAg ICAgIGV4Y2x1ZGluZyB0aGUgTERQQyBzeW1ib2xzLg0KDQogICBXICAgIGRlbm90ZXMgdGhlIG51 bWJlciBvZiBpbnRlcm1lZGlhdGUgc3ltYm9scyB0aGF0IGFyZSBMVCBzeW1ib2xzLg0KICAgICAg ICBGb3IgZWFjaCB2YWx1ZSBvZiBLJyBpbiBUYWJsZSAyIHNob3duIGluIFNlY3Rpb24gNS42LCB0 aGUNCiAgICAgICAgY29ycmVzcG9uZGluZyB2YWx1ZSBvZiBXIGlzIGEgcHJpbWUgbnVtYmVyLg0K DQogICBQICAgIGRlbm90ZXMgdGhlIG51bWJlciBvZiBpbnRlcm1lZGlhdGUgc3ltYm9scyB0aGF0 IGFyZSBQSSBzeW1ib2xzLg0KICAgICAgICBUaGVzZSBjb250YWluIGFsbCBIRFBDIHN5bWJvbHMu DQoNCiAgIFAxICAgZGVub3RlcyB0aGUgc21hbGxlc3QgcHJpbWUgbnVtYmVyIGdyZWF0ZXIgdGhh biBvciBlcXVhbCB0byBQLg0KDQogICBVICAgIGRlbm90ZXMgdGhlIG51bWJlciBvZiBub24tSERQ QyBpbnRlcm1lZGlhdGUgc3ltYm9scyB0aGF0IGFyZSBQSQ0KICAgICAgICBzeW1ib2xzLg0KDQog ICBDICAgIGRlbm90ZXMgYW4gYXJyYXkgb2YgaW50ZXJtZWRpYXRlIHN5bWJvbHMsIENbMF0sIENb MV0sIENbMl0sLi4uLA0KICAgICAgICBDW0wtMV0uDQoNCiAgIEMnICAgZGVub3RlcyBhbiBhcnJh eSBvZiB0aGUgc3ltYm9scyBvZiB0aGUgZXh0ZW5kZWQgc291cmNlIGJsb2NrLA0KICAgICAgICB3 aGVyZSBDJ1swXSwgQydbMV0sIEMnWzJdLC4uLiwgQydbSy0xXSBhcmUgdGhlIHNvdXJjZSBzeW1i b2xzIG9mDQogICAgICAgIHRoZSBzb3VyY2UgYmxvY2sgYW5kIEMnW0tdLCBDJ1tLKzFdLC4uLiwg QydbSyctMV0gYXJlIHBhZGRpbmcNCiAgICAgICAgc3ltYm9scy4NCg0KICAgVjAsIFYxLCBWMiwg VjMgIGRlbm90ZSBmb3VyIGFycmF5cyBvZiA0LWJ5dGUgaW50ZWdlcnMsIFYwWzBdLA0KICAgICAg ICBWMFsxXSwuLi4sIFYwWzI1NV0gOyBWMVswXSwgVjFbMV0sLi4uLCBWMVsyNTVdOyBWMlswXSwN CiAgICAgICAgVjJbMV0sLi4uLCBWMlsyNTVdOyBhbmQgVjNbMF0sIFYzWzFdLC4uLiwgVjNbMjU1 XSBhcyBzaG93biBpbg0KICAgICAgICBTZWN0aW9uIDUuNS4NCg0KDQoNCg0KTHVieSwgZXQgYWwu ICAgICAgICAgICAgIEV4cGlyZXMgQXVndXN0IDEsIDIwMTAgICAgICAgICAgICAgICAgW1BhZ2Ug MTZdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICBSYXB0b3JHIEZFQyBTY2hlbWUgICAg ICAgICAgICAgICBKYW51YXJ5IDIwMTANCg0KDQogICBSYW5kW3ksIGksIG1dICBhIHBzZXVkby1y YW5kb20gbnVtYmVyIGdlbmVyYXRvcg0KDQogICBEZWdbdl0gIGEgZGVncmVlIGdlbmVyYXRvcg0K DQogICBFbmNbSycsIEMgLChkLCBhLCBiLCBkMSwgYTEsIGIxKV0gIGFuIGVuY29kaW5nIHN5bWJv bCBnZW5lcmF0b3INCg0KICAgVHVwbGVbSycsIFhdICBhIHR1cGxlIGdlbmVyYXRvciBmdW5jdGlv bg0KDQogICBHRihuKSAgZGVub3RlcyB0aGUgR2Fsb2lzIGZpZWxkIHdpdGggbiBlbGVtZW50cy4N Cg0KICAgVCAgICBkZW5vdGVzIHRoZSBzeW1ib2wgc2l6ZSBpbiBieXRlcy4NCg0KICAgUSAgICBR ID0gNDI5NDk2NzI5MSwgaS5lLiwgUSBpcyB0aGUgbGFyZ2VzdCBwcmltZSBzbWFsbGVyIHRoYW4g Ml5eMzIuDQoNCiAgIEooSycpICBkZW5vdGVzIHRoZSBzeXN0ZW1hdGljIGluZGV4IGFzc29jaWF0 ZWQgd2l0aCBLJy4NCg0KICAgRyAgICBkZW5vdGVzIGFueSBnZW5lcmF0b3IgbWF0cml4Lg0KDQog ICBJX1MgIGRlbm90ZXMgdGhlIFN4UyBpZGVudGl0eSBtYXRyaXguDQoNCiAgIGEgXl4gYiAgZGVu b3RlcyB0aGUgb3BlcmF0aW9uIGEgcmFpc2VkIHRvIHRoZSBwb3dlciBiLg0KDQo1LjEuMy4gIEFi YnJldmlhdGlvbnMNCg0KICAgRVNJICAgICAgIEVuY29kaW5nIFN5bWJvbCBJRA0KDQogICBHRiAg ICAgICAgR2Fsb2lzIEZpZWxkDQoNCiAgIEhEUEMgICAgICBIaWdoIERlbnNpdHkgUGFyaXR5IENo ZWNrDQoNCiAgIElTSSAgICAgICBJbnRlcm5hbCBTeW1ib2wgSUQNCg0KICAgTERQQyAgICAgIExv dyBEZW5zaXR5IFBhcml0eSBDaGVjaw0KDQogICBMVCAgICAgICAgTHVieSBUcmFuc2Zvcm0NCg0K ICAgUEkgICAgICAgIFBlcm1hbmVudGx5IEludGVyYWN0aXZlDQoNCiAgIFNCTiAgICAgICBTb3Vy Y2UgQmxvY2sgTnVtYmVyDQoNCiAgIFNCTCAgICAgICBTb3VyY2UgQmxvY2sgTGVuZ3RoIChpbiB1 bml0cyBvZiBzeW1ib2xzKQ0KDQo1LjIuICBPdmVydmlldw0KDQogICBUaGlzIHNlY3Rpb24gZGVm aW5lcyB0aGUgc3lzdGVtYXRpYyBSYXB0b3JRIEZFQyBjb2RlLg0KDQogICBTeW1ib2xzIGFyZSB0 aGUgZnVuZGFtZW50YWwgZGF0YSB1bml0cyBvZiB0aGUgZW5jb2RpbmcgYW5kIGRlY29kaW5nDQog ICBwcm9jZXNzLiAgRm9yIGVhY2ggc291cmNlIGJsb2NrIGFsbCBzeW1ib2xzIGFyZSB0aGUgc2Ft ZSBzaXplLA0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAgICAgICAgIEV4cGlyZXMgQXVndXN0IDEs IDIwMTAgICAgICAgICAgICAgICAgW1BhZ2UgMTddDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAg ICAgICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAgICAgICBKYW51YXJ5IDIwMTANCg0KDQog ICByZWZlcnJlZCB0byBhcyB0aGUgc3ltYm9sIHNpemUgVC4gVGhlIGF0b21pYyBvcGVyYXRpb25z IHBlcmZvcm1lZCBvbg0KICAgc3ltYm9scyBmb3IgYm90aCBlbmNvZGluZyBhbmQgZGVjb2Rpbmcg YXJlIHRoZSBleGNsdXNpdmUtb3Igb3BlcmF0aW9uDQogICBiZXR3ZWVuIHN5bWJvbHMgYW5kIGFu IG9wZXJhdGlvbiBvZiB0aGUgZWxlbWVudHMgb2YgdGhlIGZpbml0ZSBmaWVsZA0KICAgR0YoMjU2 KSB1cG9uIHN5bWJvbHMuDQoNCiAgIFRoZSBiYXNpYyBlbmNvZGVyIGlzIGRlc2NyaWJlZCBpbiBT ZWN0aW9uIDUuMy4gIFRoZSBlbmNvZGVyIGZpcnN0DQogICBkZXJpdmVzIGEgYmxvY2sgb2YgaW50 ZXJtZWRpYXRlIHN5bWJvbHMgZnJvbSB0aGUgc291cmNlIHN5bWJvbHMgb2YgYQ0KICAgc291cmNl IGJsb2NrLiAgVGhpcyBpbnRlcm1lZGlhdGUgYmxvY2sgaGFzIHRoZSBwcm9wZXJ0eSB0aGF0IGJv dGgNCiAgIHNvdXJjZSBhbmQgcmVwYWlyIHN5bWJvbHMgY2FuIGJlIGdlbmVyYXRlZCBmcm9tIGl0 IHVzaW5nIHRoZSBzYW1lDQogICBwcm9jZXNzLiAgVGhlIGVuY29kZXIgcHJvZHVjZXMgcmVwYWly IHN5bWJvbHMgZnJvbSB0aGUgaW50ZXJtZWRpYXRlDQogICBibG9jayB1c2luZyBhbiBlZmZpY2ll bnQgcHJvY2Vzcywgd2hlcmUgZWFjaCBzdWNoIHJlcGFpciBzeW1ib2wgaXMNCiAgIHRoZSBleGNs dXNpdmUgT1Igb2YgYSBzbWFsbCBudW1iZXIgb2YgaW50ZXJtZWRpYXRlIHN5bWJvbHMgZnJvbSB0 aGUNCiAgIGJsb2NrLiAgU291cmNlIHN5bWJvbHMgY2FuIGFsc28gYmUgcmVwcm9kdWNlZCBmcm9t IHRoZSBpbnRlcm1lZGlhdGUNCiAgIGJsb2NrIHVzaW5nIHRoZSBzYW1lIHByb2Nlc3MuICBUaGUg ZW5jb2Rpbmcgc3ltYm9scyBhcmUgdGhlDQogICBjb21iaW5hdGlvbiBvZiB0aGUgc291cmNlIGFu ZCByZXBhaXIgc3ltYm9scy4NCg0KICAgQW4gZXhhbXBsZSBvZiBhIGRlY29kZXIgaXMgZGVzY3Jp YmVkIGluIFNlY3Rpb24gNS40LiAgVGhlIHByb2Nlc3MgZm9yDQogICBwcm9kdWNpbmcgc291cmNl IGFuZCByZXBhaXIgc3ltYm9scyBmcm9tIHRoZSBpbnRlcm1lZGlhdGUgYmxvY2sgaXMNCiAgIGRl c2lnbmVkIHNvIHRoYXQgdGhlIGludGVybWVkaWF0ZSBibG9jayBjYW4gYmUgcmVjb3ZlcmVkIGZy b20gYW55DQogICBzdWZmaWNpZW50bHkgbGFyZ2Ugc2V0IG9mIGVuY29kaW5nIHN5bWJvbHMsIGlu ZGVwZW5kZW50IG9mIHRoZSBtaXggb2YNCiAgIHNvdXJjZSBhbmQgcmVwYWlyIHN5bWJvbHMgaW4g dGhlIHNldC4gIE9uY2UgdGhlIGludGVybWVkaWF0ZSBibG9jayBpcw0KICAgcmVjb3ZlcmVkLCBt aXNzaW5nIHNvdXJjZSBzeW1ib2xzIG9mIHRoZSBzb3VyY2UgYmxvY2sgY2FuIGJlDQogICByZWNv dmVyZWQgdXNpbmcgdGhlIGVuY29kaW5nIHByb2Nlc3MuDQoNCiAgIElmIGEgUmFwdG9yUSBjb21w bGlhbnQgZGVjb2RpbmcgYWxnb3JpdGhtIHJlY2VpdmVzIGEgbWF0aGVtYXRpY2FsbHkNCiAgIHN1 ZmZpY2llbnQgc2V0IG9mIGVuY29kaW5nIHN5bWJvbHMgZ2VuZXJhdGVkIGFjY29yZGluZyB0byB0 aGUgZW5jb2Rlcg0KICAgc3BlY2lmaWNhdGlvbiBpbiBTZWN0aW9uIDUuMyBmb3IgcmVjb25zdHJ1 Y3Rpb24gb2YgYSBzb3VyY2UgYmxvY2sNCiAgIHRoZW4gc3VjaCBhIGRlY29kZXIgU0hBTEwgcmVj b3ZlciB0aGUgZW50aXJlIHNvdXJjZSBibG9jay4gIEEgbnVtYmVyDQogICBvZiBkZWNvZGluZyBh bGdvcml0aG1zIGFyZSBwb3NzaWJsZSB0byBhY2hpZXZlIHRoaXMgb3B0aW1hbCBiZWhhdmlvci4N CiAgIEFuIGVmZmljaWVudCBkZWNvZGluZyBhbGdvcml0aG0gdG8gYWNoaWV2ZSB0aGlzIGlzIHBy b3ZpZGVkIGluDQogICBTZWN0aW9uIDUuNC4NCg0KICAgVGhlIGNvbnN0cnVjdGlvbiBvZiB0aGUg aW50ZXJtZWRpYXRlIGFuZCByZXBhaXIgc3ltYm9scyBpcyBiYXNlZCBpbg0KICAgcGFydCBvbiBh IHBzZXVkby1yYW5kb20gbnVtYmVyIGdlbmVyYXRvciBkZXNjcmliZWQgaW4gU2VjdGlvbiA1LjMu DQogICBUaGlzIGdlbmVyYXRvciBpcyBiYXNlZCBvbiBhIGZpeGVkIHNldCBvZiAxMDI0IHJhbmRv bSBudW1iZXJzIHdoaWNoDQogICBtdXN0IGJlIGF2YWlsYWJsZSB0byBib3RoIHNlbmRlciBhbmQg cmVjZWl2ZXIuICBUaGVzZSBudW1iZXJzIGFyZQ0KICAgcHJvdmlkZWQgaW4gU2VjdGlvbiA1LjUu ICBFbmNvZGluZyBhbmQgZGVjb2Rpbmcgb3BlcmF0aW9ucyBmb3INCiAgIFJhcHRvclEgdXNlIG9w ZXJhdGlvbnMgaW4gdGhlIGZpZWxkIEdGKDI1NikuICBTZWN0aW9uIDUuNyBwcm92aWRlcyBhDQog ICByZWNvbW1lbmRlZCB3YXkgdG8gcGVyZm9ybSB0aGVzZSBvcGVyYXRpb25zLg0KDQogICBGaW5h bGx5LCB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBpbnRlcm1lZGlhdGUgc3ltYm9scyBmcm9tIHRo ZSBzb3VyY2UNCiAgIHN5bWJvbHMgaXMgZ292ZXJuZWQgYnkgInN5c3RlbWF0aWMgaW5kaWNlcyIs IHZhbHVlcyBvZiB3aGljaCBhcmUNCiAgIHByb3ZpZGVkIGluIFNlY3Rpb24gNS42IGZvciBzcGVj aWZpYyBleHRlbmRlZCBzb3VyY2UgYmxvY2sgc2l6ZXMNCiAgIGJldHdlZW4gNiBhbmQgSydfbWF4 ID0gNTY0MDQgc291cmNlIHN5bWJvbHMuICBUaHVzLCB0aGUgUmFwdG9yUSBjb2RlDQogICBzdXBw b3J0cyBzb3VyY2UgYmxvY2tzIHdpdGggYmV0d2VlbiAxIGFuZCA1NjQwNCBzb3VyY2Ugc3ltYm9s cy4NCg0KDQoNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAgICBFeHBpcmVzIEF1Z3VzdCAx LCAyMDEwICAgICAgICAgICAgICAgIFtQYWdlIDE4XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAg ICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAgICAgSmFudWFyeSAyMDEwDQoNCg0K NS4zLiAgU3lzdGVtYXRpYyBSYXB0b3JHIGVuY29kZXINCg0KNS4zLjEuICBJbnRyb2R1Y3Rpb24N Cg0KICAgRm9yIGEgZ2l2ZW4gc291cmNlIGJsb2NrIG9mIEsgc291cmNlIHN5bWJvbHMsIGZvciBl bmNvZGluZyBhbmQNCiAgIGRlY29kaW5nIHB1cnBvc2VzIHRoZSBzb3VyY2UgYmxvY2sgaXMgYXVn bWVudGVkIHdpdGggSyctSyBhZGRpdGlvbmFsDQogICBwYWRkaW5nIHN5bWJvbHMsIHdoZXJlIEsn IGlzIHRoZSBzbWFsbGVzdCB2YWx1ZSB0aGF0IGlzIGF0IGxlYXN0IEsgaW4NCiAgIHRoZSBzeXN0 ZW1hdGljIGluZGV4IFRhYmxlIDIgb2YgU2VjdGlvbiA1LjYuICBUaGUgcmVhc29uIGZvciBwYWRk aW5nDQogICBvdXQgYSBzb3VyY2UgYmxvY2sgdG8gYSBtdWx0aXBsZSBvZiBLJyBpcyB0byBlbmFi bGUgZmFzdGVyIGVuY29kaW5nDQogICBhbmQgZGVjb2RpbmcsIGFuZCB0byBtaW5pbWl6ZSB0aGUg YW1vdW50IG9mIHRhYmxlIGluZm9ybWF0aW9uIHRoYXQNCiAgIG5lZWRzIHRvIGJlIHN0b3JlZCBp biB0aGUgZW5jb2RlciBhbmQgZGVjb2Rlci4NCg0KICAgRm9yIHB1cnBvc2VzIG9mIHRyYW5zbWl0 dGluZyBhbmQgcmVjZWl2aW5nIGRhdGEsIHRoZSB2YWx1ZSBvZiBLIGlzDQogICB1c2VkIHRvIGRl dGVybWluZSB0aGUgbnVtYmVyIG9mIHNvdXJjZSBzeW1ib2xzIGluIGEgc291cmNlIGJsb2NrLCBh bmQNCiAgIHRodXMgSyBuZWVkcyB0byBiZSBrbm93biBhdCB0aGUgc2VuZGVyIGFuZCB0aGUgcmVj ZWl2ZXIuICBJbiB0aGlzDQogICBjYXNlIHRoZSBzZW5kZXIgYW5kIHJlY2VpdmVyIGNhbiBjb21w dXRlIEsnIGZyb20gSyBhbmQgdGhlIEsnLUsNCiAgIHBhZGRpbmcgc3ltYm9scyBjYW4gYmUgYXV0 b21hdGljYWxseSBhZGRlZCB0byB0aGUgc291cmNlIGJsb2NrDQogICB3aXRob3V0IGFueSBhZGRp dGlvbmFsIGNvbW11bmljYXRpb24uICBUaGUgZW5jb2Rpbmcgc3ltYm9sIElEIChFU0kpDQogICBp cyB1c2VkIGJ5IGEgc2VuZGVyIGFuZCByZWNlaXZlciB0byBpZGVudGlmeSB0aGUgZW5jb2Rpbmcg c3ltYm9scyBvZg0KICAgYSBzb3VyY2UgYmxvY2ssIHdoZXJlIHRoZSBlbmNvZGluZyBzeW1ib2xz IG9mIGEgc291cmNlIGJsb2NrIGNvbnNpc3QNCiAgIG9mIHRoZSBzb3VyY2Ugc3ltYm9scyBhbmQg dGhlIHJlcGFpciBzeW1ib2xzIGFzc29jaWF0ZWQgd2l0aCB0aGUNCiAgIHNvdXJjZSBibG9jay4g IEZvciBhIHNvdXJjZSBibG9jayB3aXRoIEsgc291cmNlIHN5bWJvbHMsIHRoZSBFU0lzIGZvcg0K ICAgdGhlIHNvdXJjZSBzeW1ib2xzIGFyZSAwLDEsMiwuLi4sSy0xIGFuZCB0aGUgRVNJcyBmb3Ig dGhlIHJlcGFpcg0KICAgc3ltYm9scyBhcmUgSywgSysxLCBLKzIsLi4uIC4gIFVzaW5nIHRoZSBF U0kgZm9yIGlkZW50aWZ5aW5nIGVuY29kaW5nDQogICBzeW1ib2xzIGluIHRyYW5zcG9ydCBlbnN1 cmVzIHRoYXQgdGhlIEVTSSB2YWx1ZXMgY29udGludWUNCiAgIGNvbnNlY3V0aXZlbHkgYmV0d2Vl biB0aGUgc291cmNlIGFuZCByZXBhaXIgc3ltYm9scy4NCg0KICAgRm9yIHB1cnBvc2VzIG9mIGVu Y29kaW5nIGFuZCBkZWNvZGluZyBkYXRhLCB0aGUgdmFsdWUgb2YgSycgZGVyaXZlZA0KICAgZnJv bSBLIGlzIHVzZWQgYXMgdGhlIG51bWJlciBvZiBzb3VyY2Ugc3ltYm9scyBvZiB0aGUgZXh0ZW5k ZWQgc291cmNlDQogICBibG9jayB1cG9uIHdoaWNoIGVuY29kaW5nIGFuZCBkZWNvZGluZyBvcGVy YXRpb25zIGFyZSBwZXJmb3JtZWQsDQogICB3aGVyZSB0aGUgSycgc291cmNlIHN5bWJvbHMgY29u c2lzdCBvZiB0aGUgb3JpZ2luYWwgSyBzb3VyY2Ugc3ltYm9scw0KICAgYW5kIGFuIGFkZGl0aW9u YWwgSyctSyBwYWRkaW5nIHN5bWJvbHMuICBUaGUgaW50ZXJuYWwgc3ltYm9sIElEIChJU0kpDQog ICBpcyB1c2VkIGJ5IHRoZSBlbmNvZGVyIGFuZCBkZWNvZGVyIHRvIGlkZW50aWZ5IHRoZSBzeW1i b2xzIGFzc29jaWF0ZWQNCiAgIHdpdGggdGhlIGV4dGVuZGVkIHNvdXJjZSBibG9jaywgaS5lLiwg Zm9yIGdlbmVyYXRpbmcgZW5jb2Rpbmcgc3ltYm9scw0KICAgYW5kIGZvciBkZWNvZGluZy4gIEZv ciBhIHNvdXJjZSBibG9jayB3aXRoIEsgb3JpZ2luYWwgc291cmNlIHN5bWJvbHMsDQogICB0aGUg SVNJcyBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSBzeW1ib2xzIGFyZSAwLDEsMiwuLi4sSy0xLCB0 aGUgSVNJcw0KICAgZm9yIHRoZSBLJy1LIHBhZGRpbmcgc3ltYm9scyBhcmUgSywgSysxLCBLKzIs Li4uLCBLJy0xLCBhbmQgdGhlIElTSXMNCiAgIGZvciB0aGUgcmVwYWlyIHN5bWJvbHMgYXJlIEsn LCBLJysxLCBLJysyLC4uLiAuICBVc2luZyB0aGUgSVNJIGZvcg0KICAgZW5jb2RpbmcgYW5kIGRl Y29kaW5nIGFsbG93cyB0aGUgcGFkZGluZyBzeW1ib2xzIG9mIHRoZSBleHRlbmRlZA0KICAgc291 cmNlIGJsb2NrIHRvIGJlIHRyZWF0ZWQgdGhlIHNhbWUgd2F5IGFzIG90aGVyIHNvdXJjZSBzeW1i b2xzIG9mDQogICB0aGUgZXh0ZW5kZWQgc291cmNlIGJsb2NrLCBhbmQgdGhhdCBhIGdpdmVuIHBy ZWZpeCBvZiByZXBhaXIgc3ltYm9scw0KICAgYXJlIGdlbmVyYXRlZCBpbiBhIGNvbnNpc3RlbnQg d2F5IGZvciBhIGdpdmVuIG51bWJlciBLJyBvZiBzb3VyY2UNCiAgIHN5bWJvbHMgaW4gdGhlIGV4 dGVuZGVkIHNvdXJjZSBibG9jayBpbmRlcGVuZGVudCBvZiBLLg0KDQogICBUaGUgcmVsYXRpb25z aGlwIGJldHdlZW4gdGhlIEVTSXMgYW5kIHRoZSBJU0lzIGlzIHNpbXBsZTogdGhlIEVTSXMNCiAg IGFuZCB0aGUgSVNJcyBmb3IgdGhlIG9yaWdpbmFsIEsgc291cmNlIHN5bWJvbHMgYXJlIHRoZSBz YW1lLCB0aGUgSyctSw0KICAgcGFkZGluZyBzeW1ib2xzIGhhdmUgYW4gSVNJIGJ1dCBkbyBub3Qg aGF2ZSBhIGNvcnJlc3BvbmRpbmcgRVNJDQogICAoc2luY2UgdGhleSBhcmUgc3ltYm9scyB0aGF0 IGFyZSBuZWl0aGVyIHNlbnQgbm9yIHJlY2VpdmVkKSwgYW5kIGENCg0KDQoNCkx1YnksIGV0IGFs LiAgICAgICAgICAgICBFeHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgIFtQYWdl IDE5XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAg ICAgICAgICAgICAgSmFudWFyeSAyMDEwDQoNCg0KICAgcmVwYWlyIHN5bWJvbCBJU0kgaXMgc2lt cGx5IHRoZSByZXBhaXIgc3ltYm9sIEVTSSBwbHVzIEsnLUsuICBUaGUNCiAgIHRyYW5zbGF0aW9u IGJldHdlZW4gRVNJcyB1c2VkIHRvIGlkZW50aWZ5IGVuY29kaW5nIHN5bWJvbHMgc2VudCBhbmQN CiAgIHJlY2VpdmVkIGFuZCB0aGUgY29ycmVzcG9uZGluZyBJU0lzIHVzZWQgZm9yIGVuY29kaW5n IGFuZCBkZWNvZGluZywNCiAgIGFuZCB0aGUgcHJvcGVyIHBhZGRpbmcgb2YgdGhlIGV4dGVuZGVk IHNvdXJjZSBibG9jayB3aXRoIHBhZGRpbmcNCiAgIHN5bWJvbHMgdXNlZCBmb3IgZW5jb2Rpbmcg YW5kIGRlY29kaW5nLCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlDQogICBwYWRkaW5nIGZ1 bmN0aW9uIGluIHRoZSBSYXB0b3JRIGVuY29kZXIvZGVjb2Rlci4NCg0KNS4zLjIuICBFbmNvZGlu ZyBvdmVydmlldw0KDQogICBUaGUgc3lzdGVtYXRpYyBSYXB0b3JRIGVuY29kZXIgaXMgdXNlZCB0 byBnZW5lcmF0ZSBhbnkgbnVtYmVyIG9mDQogICByZXBhaXIgc3ltYm9scyBmcm9tIGEgc291cmNl IGJsb2NrIHRoYXQgY29uc2lzdHMgb2YgSyBzb3VyY2Ugc3ltYm9scw0KICAgcGxhY2VkIGludG8g YW4gZXh0ZW5kZWQgc291cmNlIGJsb2NrIEMnLiAgRmlndXJlIDQgc2hvd3MgdGhlIGVuY29kaW5n DQogICBvdmVydmlldy4NCg0KICAgVGhlIGZpcnN0IHN0ZXAgb2YgZW5jb2RpbmcgaXMgdG8gY29u c3RydWN0IGFuIGV4dGVuZGVkIHNvdXJjZSBibG9jaw0KICAgYnkgYWRkaW5nIHplcm8gb3IgbW9y ZSBwYWRkaW5nIHN5bWJvbHMgc3VjaCB0aGF0IHRoZSB0b3RhbCBudW1iZXIgb2YNCiAgIHN5bWJv bHMsIEsnLCBpcyBvbmUgb2YgdGhlIHZhbHVlcyBsaXN0ZWQgaW4gU2VjdGlvbiA1LjYuICBFYWNo DQogICBwYWRkaW5nIHN5bWJvbCBjb25zaXN0cyBvZiBUIGJ5dGVzIHdoZXJlIHRoZSB2YWx1ZSBv ZiBlYWNoIGJ5dGUgaXMNCiAgIHplcm8uICBLJyBNVVNUIGJlIHNlbGVjdGVkIGFzIHRoZSBzbWFs bGVzdCB2YWx1ZSBvZiBLJyBmcm9tIHRoZSB0YWJsZQ0KICAgb2YgU2VjdGlvbiA1LjYgd2hpY2gg aXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIEsuDQoNCg0KDQogICAgICAgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCiAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfA0KICAgICAgICAgfCAgICArLS0tLS0tLS0tLS0rICAgICstLS0tLS0tLS0tLS0tLSsg ICAgKy0tLS0tLS0tLS0tLS0rICB8DQogICAgICBDJyB8ICAgIHwgICAgICAgICAgIHwgQycgfCBJ bnRlcm1lZGlhdGUgfCBDICB8ICAgICAgICAgICAgIHwgIHwNCiAgICAgLS0tLSstLS0+fCAgUGFk ZGluZyAgfC0tLT58ICAgIFN5bWJvbCAgICB8LS0tPnwgICBFbmNvZGluZyAgfC0tKy0tPg0KICAg ICAgSyAgfCAgICB8ICAgICAgICAgICB8IEsnIHwgIEdlbmVyYXRpb24gIHwgTCAgfCAgICAgICAg ICAgICB8ICB8DQogICAgICAgICB8ICAgICstLS0tLS0tLS0tLSsgICAgKy0tLS0tLS0tLS0tLS0t KyAgICArLS0tLS0tLS0tLS0tLSsgIHwNCiAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChkLGEsYiwgXiAgICAgICAgfA0KICAgICAgICAgfCAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBkMSxhMSxiMSl8ICAgICAgICB8DQogICAg ICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0t LS0tLSsgIHwNCiAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgIEsnICAgICAgICAg ICAgICB8ICAgVHVwbGUgICAgfCAgfA0KICAgICAgICAgfCAgICAgICAgICAgKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tPnwgICAgICAgICAgICB8ICB8DQogICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBHZW5lcmF0aW9uIHwgIHwNCiAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0t LS0tKyAgfA0KICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeICAgICAgICB8DQogICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNJIFgNCg0KDQogICAg ICAgICAgICAgICAgICAgICAgICBGaWd1cmUgNDogRW5jb2RpbmcgT3ZlcnZpZXcNCg0KICAgTGV0 IEMnWzBdLC4uLiwgQydbSy0xXSBkZW5vdGUgdGhlIEsgc291cmNlIHN5bWJvbHMuDQoNCiAgIExl dCBDJ1tLXSwgLi4uLCBDJ1tLJy0xXSBkZW5vdGUgdGhlIEsnLUsgcGFkZGluZyBzeW1ib2xzLCB3 aGljaCBhcmUNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAgICBFeHBpcmVzIEF1Z3VzdCAx LCAyMDEwICAgICAgICAgICAgICAgIFtQYWdlIDIwXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAg ICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAgICAgSmFudWFyeSAyMDEwDQoNCg0K ICAgYWxsIHNldCB0byB6ZXJvIGJpdHMuICBUaGVuLCBDJ1swXSwuLi4sIEMnW0snLTFdIGFyZSB0 aGUgc3ltYm9scyBvZg0KICAgdGhlIGV4dGVuZGVkIHNvdXJjZSBibG9jayB1cG9uIHdoaWNoIGVu Y29kaW5nIGFuZCBkZWNvZGluZyBhcmUNCiAgIHBlcmZvcm1lZC4NCg0KICAgSW4gdGhlIHJlbWFp bmRlciBvZiB0aGlzIGRlc2NyaXB0aW9uIHRoZXNlIHBhZGRpbmcgc3ltYm9scyB3aWxsIGJlDQog ICBjb25zaWRlcmVkIGFzIGFkZGl0aW9uYWwgc291cmNlIHN5bWJvbHMgYW5kIHJlZmVycmVkIHRv IGFzIHN1Y2guDQogICBIb3dldmVyLCB0aGVzZSBwYWRkaW5nIHN5bWJvbHMgYXJlIG5vdCBwYXJ0 IG9mIHRoZSBlbmNvZGluZyBzeW1ib2xzLA0KICAgaS5lLiwgdGhleSBhcmUgbm90IHNlbnQgYXMg cGFydCBvZiB0aGUgZW5jb2RpbmcuICBBdCBhIHJlY2VpdmVyLCB0aGUNCiAgIHZhbHVlIG9mIEsn IGNhbiBiZSBjb21wdXRlZCBiYXNlZCBvbiBLLCB0aGVuIHRoZSByZWNlaXZlciBjYW4gaW5zZXJ0 DQogICBLJy1LIHBhZGRpbmcgc3ltYm9scyBhdCB0aGUgZW5kIG9mIGEgc291cmNlIGJsb2NrIG9m IEsnIHNvdXJjZQ0KICAgc3ltYm9scyBhbmQgcmVjb3ZlciB0aGUgcmVtYWluaW5nIEsgc291cmNl IHN5bWJvbHMgb2YgdGhlIHNvdXJjZQ0KICAgYmxvY2sgZnJvbSByZWNlaXZlZCBlbmNvZGluZyBz eW1ib2xzLg0KDQogICBUaGUgc2Vjb25kIHN0ZXAgb2YgZW5jb2RpbmcgaXMgdG8gZ2VuZXJhdGUg YSBudW1iZXIsIEwgPiBLJywgb2YNCiAgIGludGVybWVkaWF0ZSBzeW1ib2xzIGZyb20gdGhlIEsn IHNvdXJjZSBzeW1ib2xzLiAgSW4gdGhpcyBzdGVwLCBLJw0KICAgc291cmNlIHR1cGxlcyAoZFsw XSwgYVswXSwgYlswXSwgZDFbMF0sIGExWzBdLCBiMVswXSksIC4uLiwgKGRbSyctMV0sDQogICBh W0snLTFdLCBiW0snLTFdLCBkMVtLJy0xXSwgYTFbSyctMV0sIGIxW0snLTFdKSBhcmUgZ2VuZXJh dGVkIHVzaW5nDQogICB0aGUgVHVwbGVbXSBnZW5lcmF0b3IgYXMgZGVzY3JpYmVkIGluIFNlY3Rp b24gNS4zLjUuNC4gIFRoZSBLJyBzb3VyY2UNCiAgIHR1cGxlcyBhbmQgdGhlIElTSXMgYXNzb2Np YXRlZCB3aXRoIHRoZSBLJyBzb3VyY2Ugc3ltYm9scyBhcmUgdXNlZCB0bw0KICAgZGV0ZXJtaW5l IEwgaW50ZXJtZWRpYXRlIHN5bWJvbHMgQ1swXSwuLi4sIENbTC0xXSBmcm9tIHRoZSBzb3VyY2UN CiAgIHN5bWJvbHMgdXNpbmcgYW4gaW52ZXJzZSBlbmNvZGluZyBwcm9jZXNzLiAgVGhpcyBwcm9j ZXNzIGNhbiBiZQ0KICAgcmVhbGl6ZWQgYnkgYSBSYXB0b3JRIGRlY29kaW5nIHByb2Nlc3MuDQoN CiAgIENlcnRhaW4gInByZS1jb2RpbmcgcmVsYXRpb25zaGlwcyIgbXVzdCBob2xkIHdpdGhpbiB0 aGUgTA0KICAgaW50ZXJtZWRpYXRlIHN5bWJvbHMuICBTZWN0aW9uIDUuMy4zLjMgZGVzY3JpYmVz IHRoZXNlIHJlbGF0aW9uc2hpcHMuDQogICBTZWN0aW9uIDUuMy4zLjQgZGVzY3JpYmVzIGhvdyB0 aGUgaW50ZXJtZWRpYXRlIHN5bWJvbHMgYXJlIGdlbmVyYXRlZA0KICAgZnJvbSB0aGUgc291cmNl IHN5bWJvbHMuDQoNCiAgIE9uY2UgdGhlIGludGVybWVkaWF0ZSBzeW1ib2xzIGhhdmUgYmVlbiBn ZW5lcmF0ZWQsIHJlcGFpciBzeW1ib2xzIGNhbg0KICAgYmUgcHJvZHVjZWQuICBGb3IgYSByZXBh aXIgc3ltYm9sIHdpdGggSVNJIFg+SycsIHRoZSB0dXBsZSBvZg0KICAgaW50ZWdlcnMsIChkLCBh LCBiLCBkMSwgYTEsIGIxKSBjYW4gYmUgZ2VuZXJhdGVkLCB1c2luZyB0aGUgVHVwbGVbXQ0KICAg Z2VuZXJhdG9yIGFzIGRlc2NyaWJlZCBpbiBTZWN0aW9uIDUuMy41LjQuICBUaGVuLCB0aGUgKGQs IGEsIGIsIGQxLA0KICAgYTEsIGIxKS10dXBsZSBhbmQgdGhlIElTSSBYIGlzIHVzZWQgdG8gZ2Vu ZXJhdGUgdGhlIGNvcnJlc3BvbmRpbmcNCiAgIHJlcGFpciBzeW1ib2wgZnJvbSB0aGUgaW50ZXJt ZWRpYXRlIHN5bWJvbHMgdXNpbmcgdGhlIEVuY1tdIGdlbmVyYXRvcg0KICAgZGVzY3JpYmVkIGlu IFNlY3Rpb24gNS4zLjUuMy4gIFRoZSBjb3JyZXNwb25kaW5nIEVTSSBmb3IgdGhpcyByZXBhaXIN CiAgIHN5bWJvbCBpcyB0aGVuIFgtKEsnLUspLiAgTm90ZSB0aGF0IHNvdXJjZSBzeW1ib2xzIG9m IHRoZSBleHRlbmRlZA0KICAgc291cmNlIGJsb2NrIGNhbiBhbHNvIGJlIGdlbmVyYXRlZCB1c2lu ZyB0aGUgc2FtZSBwcm9jZXNzLCBpLmUuLCBmb3INCiAgIGFueSBYIDwgSycsIHRoZSBzeW1ib2wg Z2VuZXJhdGVkIHVzaW5nIHRoaXMgcHJvY2VzcyBoYXMgdGhlIHNhbWUNCiAgIHZhbHVlIGFzIEMn KFgpLg0KDQo1LjMuMy4gIEZpcnN0IGVuY29kaW5nIHN0ZXA6IEludGVybWVkaWF0ZSBTeW1ib2wg R2VuZXJhdGlvbg0KDQo1LjMuMy4xLiAgR2VuZXJhbA0KDQogICBUaGlzIGVuY29kaW5nIHN0ZXAg aXMgYSBwcmUtY29kaW5nIHN0ZXAgdG8gZ2VuZXJhdGUgdGhlIEwNCiAgIGludGVybWVkaWF0ZSBz eW1ib2xzIENbMF0sIC4uLiwgQ1tMLTFdIGZyb20gdGhlIHNvdXJjZSBzeW1ib2xzIEMnWzBdLA0K ICAgLi4uLCBDJ1tLJy0xXSwgLCB3aGVyZSBMID4gSyBpcyBkZWZpbmVkIGluIFNlY3Rpb24gNS4z LjMuMy4gIFRoZQ0KICAgaW50ZXJtZWRpYXRlIHN5bWJvbHMgYXJlIHVuaXF1ZWx5IGRlZmluZWQg YnkgdHdvIHNldHMgb2YgY29uc3RyYWludHM6DQoNCg0KDQpMdWJ5LCBldCBhbC4gICAgICAgICAg ICAgRXhwaXJlcyBBdWd1c3QgMSwgMjAxMCAgICAgICAgICAgICAgICBbUGFnZSAyMV0NCgwNCklu dGVybmV0LURyYWZ0ICAgICAgICAgICAgIFJhcHRvckcgRkVDIFNjaGVtZSAgICAgICAgICAgICAg IEphbnVhcnkgMjAxMA0KDQoNCiAgIDEuICBUaGUgaW50ZXJtZWRpYXRlIHN5bWJvbHMgYXJlIHJl bGF0ZWQgdG8gdGhlIHNvdXJjZSBzeW1ib2xzIGJ5IGENCiAgICAgICBzZXQgb2Ygc291cmNlIHN5 bWJvbCB0dXBsZXMgYW5kIGJ5IHRoZSBJU0lzIG9mIHRoZSBzb3VyY2UNCiAgICAgICBzeW1ib2xz LiAgVGhlIGdlbmVyYXRpb24gb2YgdGhlIHNvdXJjZSBzeW1ib2wgdHVwbGVzIGlzIGRlZmluZWQN CiAgICAgICBpbiBTZWN0aW9uIDUuMy4zLjIgdXNpbmcgdGhlIHRoZSBUdXBsZVtdIGdlbmVyYXRv ciBhcyBkZXNjcmliZWQNCiAgICAgICBpbiBTZWN0aW9uIDUuMy41LjQuDQoNCiAgIDIuICBBIHNl dCBvZiBwcmUtY29kaW5nIHJlbGF0aW9uc2hpcHMgaG9sZCB3aXRoaW4gdGhlIGludGVybWVkaWF0 ZQ0KICAgICAgIHN5bWJvbHMgdGhlbXNlbHZlcy4gIFRoZXNlIGFyZSBkZWZpbmVkIGluIFNlY3Rp b24gNS4zLjMuMw0KDQogICBUaGUgZ2VuZXJhdGlvbiBvZiB0aGUgTCBpbnRlcm1lZGlhdGUgc3lt Ym9scyBpcyB0aGVuIGRlZmluZWQgaW4NCiAgIFNlY3Rpb24gNS4zLjMuNA0KDQo1LjMuMy4yLiAg U291cmNlIHN5bWJvbCB0dXBsZXMNCg0KICAgRWFjaCBvZiB0aGUgSycgc291cmNlIHN5bWJvbHMg aXMgYXNzb2NpYXRlZCB3aXRoIGEgc291cmNlIHN5bWJvbA0KICAgdHVwbGUgKGRbWF0sIGFbWF0s IGJbWF0sIGQxW1hdLCBhMVtYXSwgYjFbWF0pIGZvciAwIDw9IFggPCBLJy4gIFRoZQ0KICAgc291 cmNlIHN5bWJvbCB0dXBsZXMgYXJlIGRldGVybWluZWQgdXNpbmcgdGhlIFR1cGxlIGdlbmVyYXRv ciBkZWZpbmVkDQogICBpbiBTZWN0aW9uIDUuMy41LjQgYXM6DQoNCiAgICAgIEZvciBlYWNoIFgs IDAgPD0gWCA8IEsnDQoNCiAgICAgICAgIChkW1hdLCBhW1hdLCBiW1hdLCBkMVtYXSwgYTFbWF0s IGIxW1hdKSA9IFR1cGxlW0ssIFhdDQoNCjUuMy4zLjMuICBQcmUtY29kaW5nIHJlbGF0aW9uc2hp cHMNCg0KICAgVGhlIHByZS1jb2RpbmcgcmVsYXRpb25zaGlwcyBhbW9uZ3N0IHRoZSBMIGludGVy bWVkaWF0ZSBzeW1ib2xzIGFyZQ0KICAgZGVmaW5lZCBieSByZXF1aXJpbmcgdGhhdCBhIHNldCBv ZiBTK0ggbGluZWFyIGNvbWJpbmF0aW9ucyBvZiB0aGUNCiAgIGludGVybWVkaWF0ZSBzeW1ib2xz IGV2YWx1YXRlIHRvIHplcm8uICBUaGVyZSBhcmUgUyBMRFBDIGFuZCBIIEhEUEMNCiAgIHN5bWJv bHMsIGFuZCB0aHVzIEwgPSBLJytTK0guIEFub3RoZXIgcGFydGl0aW9uIG9mIHRoZSBMIGludGVy bWVkaWF0ZQ0KICAgc3ltYm9scyBpcyBpbnRvIHR3byBzZXRzLCBvbmUgc2V0IG9mIFcgTFQgc3lt Ym9scyBhbmQgYW5vdGhlciBzZXQgb2YNCiAgIFAgUEkgc3ltYm9scywgYW5kIHRodXMgaXQgaXMg YWxzbyB0aGUgY2FzZSB0aGF0IEwgPSBXK1AuIFRoZSBQIFBJDQogICBzeW1ib2xzIGFyZSB0cmVh dGVkIGRpZmZlcmVudGx5IHRoYW4gdGhlIFcgTFQgc3ltYm9scyBpbiB0aGUgZW5jb2RpbmcNCiAg IHByb2Nlc3MuICBUaGUgUCBQSSBzeW1ib2xzIGNvbnNpc3Qgb2YgdGhlIEggSERQQyBzeW1ib2xz IHRvZ2V0aGVyDQogICB3aXRoIGEgc2V0IG9mIFUgPSBQLUggb2YgdGhlIG90aGVyIEsnIGludGVy bWVkaWF0ZSBzeW1ib2xzLiAgVGhlIFcgTFQNCiAgIHN5bWJvbHMgY29uc2lzdCBvZiB0aGUgUyBM RFBDIHN5bWJvbHMgdG9nZXRoZXIgd2l0aCBXLVMgb2YgdGhlIG90aGVyDQogICBLJyBpbnRlcm1l ZGlhdGUgc3ltYm9scy4gIFRoZSB2YWx1ZXMgb2YgdGhlc2UgcGFyYW1ldGVycyBhcmUNCiAgIGRl dGVybWluZWQgZnJvbSBLJyBhcyBkZXNjcmliZWQgYmVsb3cgd2hlcmUgSChLJyksIFMoSycpLCBh bmQgVyhLJykNCiAgIGFyZSBkZXJpdmVkIGZyb20gVGFibGUgMiBpbiBTZWN0aW9uIDUuNi4NCg0K ICAgTGV0DQoNCiAgIG8gIFMgPSBTKEsnKQ0KDQogICBvICBIID0gSChLJykNCg0KICAgbyAgVyA9 IFcoSycpDQoNCg0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAgICAgICAgIEV4cGlyZXMgQXVndXN0 IDEsIDIwMTAgICAgICAgICAgICAgICAgW1BhZ2UgMjJdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAg ICAgICAgICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAgICAgICBKYW51YXJ5IDIwMTANCg0K DQogICBvICBMID0gSycgKyBTICsgSA0KDQogICBvICBQID0gTCAtIFcNCg0KICAgbyAgUDEgZGVu b3RlIHRoZSBzbWFsbGVzdCBwcmltZSBudW1iZXIgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIFAN Cg0KICAgbyAgVSA9UCAtIEgNCg0KICAgbyAgQiA9IFcgLSBTDQoNCiAgIG8gIENbMF0sIC4uLiwg Q1tCLTFdIGRlbm90ZSB0aGUgaW50ZXJtZWRpYXRlIHN5bWJvbHMgdGhhdCBhcmUgTFQNCiAgICAg IHN5bWJvbHMgYnV0IG5vdCBMRFBDIHN5bWJvbHMuDQoNCiAgIG8gIENbQl0sIC4uLiwgQ1tCK1Mt MV0gZGVub3RlIHRoZSBTIExEUEMgc3ltYm9scyB0aGF0IGFyZSBhbHNvIExUDQogICAgICBzeW1i b2xzLg0KDQogICBvICBDW1ddLCAuLi4sIENbVytVLTFdIGRlbm90ZSB0aGUgaW50ZXJtZWRpYXRl IHN5bWJvbHMgdGhhdCBhcmUgUEkNCiAgICAgIHN5bWJvbHMgYnV0IG5vdCBIRFBDIHN5bWJvbHMu DQoNCiAgIG8gIENbTC1IXSwgLi4uLCBDW0wtMV0gZGVub3RlIHRoZSBIIEhEUEMgc3ltYm9scyB0 aGF0IGFyZSBhbHNvIFBJDQogICAgICBzeW1ib2xzLg0KDQogICBUaGUgZmlyc3Qgc2V0IG9mIHBy ZS1jb2RpbmcgcmVsYXRpb25zLCBjYWxsZWQgTERQQyByZWxhdGlvbnMsIGlzDQogICBkZXNjcmli ZWQgYmVsb3cgYW5kIHJlcXVpcmVzIHRoYXQgYXQgdGhlIGVuZCBvZiB0aGlzIHByb2Nlc3MgdGhl IHNldA0KICAgb2Ygc3ltYm9scyBEWzBdICwgLi4uLCBEW1MtMV0gYXJlIGFsbCB6ZXJvOg0KDQog ICBvICBJbml0aWFsaXplIHRoZSBzeW1ib2xzIERbMF0gPSBDW0JdLCAuLi4gLCBEW1MtMV0gPSBD W0IrUy0xXS4NCg0KICAgbyAgRm9yIGkgPSAwLCAuLi4sIEItMSBkbw0KDQogICAgICAqICBhID0g MSArIChmbG9vcihpL1MpICUgKFMtMSkpDQoNCiAgICAgICogIGIgPSBpICUgUw0KDQogICAgICAq ICBEW2JdID0gRFtiXSBeIENbaV0NCg0KICAgICAgKiAgYiA9IChiICsgYSkgJSBTDQoNCiAgICAg ICogIERbYl0gPSBEW2JdIF4gQ1tpXQ0KDQogICAgICAqICBiID0gKGIgKyBhKSAlIFMNCg0KICAg ICAgKiAgRFtiXSA9IERbYl0gXiBDW2ldDQoNCiAgIG8gIEZvciBpID0gMCwgLi4uLCBTLTEgZG8N Cg0KICAgICAgKiAgYSA9IGkgJSBQDQoNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAgICBF eHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgIFtQYWdlIDIzXQ0KDA0KSW50ZXJu ZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAgICAgSmFu dWFyeSAyMDEwDQoNCg0KICAgICAgKiAgYiA9IChpKzEpICUgUA0KDQogICAgICAqICBEW2ldID0g RFtpXSBeIENbVythXSBeIENbVytiXQ0KDQogICBUaGUgc2Vjb25kIHNldCBvZiByZWxhdGlvbnMs IGNhbGxlZCBIRFBDIHJlbGF0aW9ucywgaXMgb2J0YWluZWQgYnkNCiAgIGNvbnNpZGVyaW5nIGVh Y2ggaW50ZXJtZWRpYXRlIHN5bWJvbCBhcyBhIHNlcXVlbmNlIG9mIGVsZW1lbnRzIGZyb20NCiAg IHRoZSBmaW5pdGUgZmllbGQgR0YoMjU2KS4gIFdlIHJlcHJlc2VudCBlbGVtZW50cyBvZiBHRigy NTYpIGluIHRoZQ0KICAgdXN1YWwgd2F5IGFzIHBvbHlub21pYWxzIGluIG9uZSB2YXJpYWJsZSwg eCwgd2l0aCBjb2VmZmljaWVudHMgZnJvbQ0KICAgdGhlIGZpbml0ZSBmaWVsZCBHRigyKSBtb2R1 bG8gYW4gaXJyZWR1Y2libGUgcG9seW5vbWlhbCBmKHgpLiAgQQ0KICAgc2luZ2xlIGJ5dGUgb2Yg ZGF0YSBmcm9tIGEgc3ltYm9sLCBiNyxiNixiNSxiNCxiMyxiMixiMSxiMCwgd2hlcmUgYjcNCiAg IGlzIHRoZSBoaWdoZXN0IG9yZGVyIGJpdCBhbmQgYjAgaXMgdGhlIGxvd2VzdCBvcmRlciBiaXQs IGNvcnJlc3BvbmRzDQogICB0byB0aGUgZmluaXRlIGZpZWxkIGVsZW1lbnQNCg0KICAgICAgYjcg eF5eNyArIGI2IHheXjYgKyBiNSB4Xl41ICsgYjQgeF5eNCArIGIzIHheXjMgKyBiMiB4Xl4yICsg YjEgeCArDQogICAgICBiMCBtb2QgZih4KQ0KDQogICBUaGUgaXJyZWR1Y2libGUgcG9seW5vbWlh bCBmKHgpIGlzIGRlZmluZWQgdG8gYmU6DQoNCiAgICAgIGYoeCkgPSB4Xl44ICsgeF5eNCArIHhe XjMgKyB4Xl4yICsgMS4NCg0KICAgV2UgdGhlbiBkZWZpbmUgdGhlIG9wZXJhdGlvbiBvZiBlbGVt ZW50cyBvZiBHRigyNTYpIG9uIHN5bWJvbHMgYXMNCiAgIGZvbGxvd3M6DQoNCiAgIExldA0KDQog ICBvICBiZXRhIGRlbm90ZSBhbiBlbGVtZW50IG9mIEdGKDI1NikuDQoNCiAgIG8gIEMgZGVub3Rl IGEgc3ltYm9sIG9mIGxlbmd0aCBUIGJ5dGVzLg0KDQogICBvICBjWzBdLCAuLi4sIGNbVC0xXSBk ZW5vdGUgdGhlIGJ5dGVzIG9mIEMuDQoNCiAgIG8gIGdhbW1hWzBdLCAuLi4sIGdhbW1hW1QtMV0g ZGVub3RlIHRoZSBlbGVtZW50cyBvZiBHRigyNTYpDQogICAgICBjb3JyZXNwb25kaW5nIHRvIGNb MF0sIC4uLiwgY1tULTFdIHJlc3BlY3RpdmVseS4NCg0KICAgVGhlbiB3ZSBkZWZpbmUNCg0KICAg ICAgZGVsdGFbaV0gPSBiZXRhKmdhbW1hW2ldIGZvciBpPTAsIC4uLiwgVC0xDQoNCiAgIHdoZXJl ICcqJyByZXByZXNlbnRzIHRoZSB1c3VhbCBtdWx0aXBsaWNhdGlvbiBvcGVyYXRpb24gaW4gR0Yo MjU2KS4NCiAgIEEgbXVsdGlwbGljYXRpb24gdGFibGUgZm9yIEdGKDI1NikgYW5kIGEgcmVjb21t ZW5kZWQgd2F5IHRvIHBlcmZvcm0NCiAgIGNhbGN1bGF0aW9ucyBpbiBHRigyNTYpIGlzIHByb3Zp ZGVkIGluIFNlY3Rpb24gNS43LiAgVGhlbiB0aGUNCiAgIG9wZXJhdGlvbiBvZiBiZXRhIG9uIEMg aXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KDQogICAgICBiZXRhKkMgPSBkWzBdLCAuLi4sIGRbVC0x XQ0KDQogICB3aGVyZSBkW2ldIGlzIHRoZSBieXRlIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gZGVs dGFbaV0gZm9yIGk9MCwuLi4sDQogICBULTEuDQoNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAg ICAgICBFeHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgIFtQYWdlIDI0XQ0KDA0K SW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAg ICAgSmFudWFyeSAyMDEwDQoNCg0KICAgVGhlIHNldCBvZiBIRFBDIHJlbGF0aW9ucyBhbW9uZyB0 aGUgaW50ZXJtZWRpYXRlIHN5bWJvbHMgQ1swXSwgLi4uLA0KICAgQ1tLJytTK0gtMV0gaXMgZGVm aW5lZCBhcyBmb2xsb3dzOg0KDQogICBMZXQNCg0KICAgbyAgYWxwaGEgZGVub3RlIGEgZ2VuZXJh dG9yIGVsZW1lbnQgb2YgR0YoMjU2KSwgc3BlY2lmaWNhbGx5IHRoZQ0KICAgICAgZWxlbWVudCBy ZXByZXNlbnRlZCBieSB0aGUgcG9seW5vbWlhbCB4IG1vZCBmKHgpLg0KDQogICBvICBUIGRlbm90 ZSBhbiBIIHggKEsnICtTICkgbWF0cml4IHdpdGggZWxlbWVudHMgZnJvbSBHRigyNTYpLCB3aGVy ZQ0KICAgICAgZm9yIGo9MCwuLi4sSycrUy0yIHRoZSBlbnRyeSBUW2ksal0gaXMgdGhlIGlkZW50 aXR5IGVsZW1lbnQgaWYgaT0NCiAgICAgIFJhbmRbaiw2LEhdIG9yIGkgPSAoUmFuZFtqLDYsSF0g KyBSYW5kW2osNyxILTFdICsgMSkgJSBIIGFuZA0KICAgICAgVFtpLGpdIGlzIHRoZSB6ZXJvIGVs ZW1lbnQgZm9yIGFsbCBvdGhlciB2YWx1ZXMgb2YgaSwgYW5kIGZvcg0KICAgICAgaj1LJytTLTEs IFRbaSxqXSA9IGFscGhhXl5pIGZvciBpPTAsLi4uLEgtMS4NCg0KICAgbyAgR0FNTUEgZGVub3Rl IGEgKEsnK1MgKSB4IChLJytTICkgbWF0cml4IHdpdGggZWxlbWVudHMgZnJvbQ0KICAgICAgR0Yo MjU2KSwgd2hlcmUNCg0KICAgbw0KDQogICAgICAgICBHQU1NQVtpLGpdID0NCg0KICAgICAgICAg ICAgYWxwaGEgXl4gKGktaikgZm9yIGkgPD0gag0KDQogICAgICAgICAgICAwIG90aGVyd2lzZQ0K DQogICBUaGVuIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgZmlyc3QgSycrUyBpbnRlcm1l ZGlhdGUgc3ltYm9scw0KICAgQ1swXSwgLi4uLCBDW0snK1MtMV0gYW5kIHRoZSBIIEhEUEMgc3lt Ym9scyBDW0snK1NdLCAuLi4sIENbSycrUytILTFdDQogICBpcyBnaXZlbiBieToNCg0KICAgICAg VHJhbnNwb3NlW0NbSycrU10sIC4uLiwgQ1tLJytTK0gtMV1dICsgVCogR0FNTUEgKiBUcmFuc3Bv c2VbQ1swXSwNCiAgICAgIC4uLiwgQ1tLJytTLTFdXSA9IDANCg0KICAgd2hlcmUgJyonIHJlcHJl c2VudHMgc3RhbmRhcmQgbWF0cml4IG11bHRpcGxpY2F0aW9uIHV0aWxpemluZyB0aGUNCiAgIGFi b3ZlIGRlZmluZWQgb3BlcmF0aW9uIHRvIGRlZmluZSB0aGUgbXVsdGlwbGljYXRpb24gYmV0d2Vl biBhIG1hdHJpeA0KICAgb3ZlciBHRigyNTYpIGFuZCBhIG1hdHJpeCBvZiBzeW1ib2xzIChpbiBw YXJ0aWN1bGFyIHRoZSBjb2x1bW4gdmVjdG9yDQogICBvZiBzeW1ib2xzKS4NCg0KICAgVGhlIEgg SERQQyByZWxhdGlvbnMgbWF5IGJlIGNvbnZlbmllbnRseSBkZXNjcmliZWQgdXNpbmcgdGhlDQog ICBmb2xsb3dpbmcgYWxnb3JpdGhtLCB3aGVyZSB1IGlzIGEgd29ya2luZyByZWdpc3RlciBjb250 YWluaW5nIGENCiAgIHNpbmdsZSBzeW1ib2wuICBUaGVzZSByZWxhdGlvbnMgcmVxdWlyZSB0aGF0 IHRoZSB2YWx1ZXMgb2YgdGhlDQogICBzeW1ib2xzIERbU10sIC4uLiwgRFtTK0gtMV0gYXJlIHpl cm8gYXQgdGhlIGVuZCBvZiB0aGUgZm9sbG93aW5nDQogICBwcm9jZXNzLg0KDQogICBvICBJbml0 aWFsaXplIHRoZSBzeW1ib2xzIERbU10gPSBDW0snK1NdLCAuLi4sIERbUytILTFdID0gQ1tLJytT K0gtMV0NCg0KICAgbyAgdSA9IENbMF0NCg0KDQoNCg0KDQpMdWJ5LCBldCBhbC4gICAgICAgICAg ICAgRXhwaXJlcyBBdWd1c3QgMSwgMjAxMCAgICAgICAgICAgICAgICBbUGFnZSAyNV0NCgwNCklu dGVybmV0LURyYWZ0ICAgICAgICAgICAgIFJhcHRvckcgRkVDIFNjaGVtZSAgICAgICAgICAgICAg IEphbnVhcnkgMjAxMA0KDQoNCiAgIG8gIEZvciBqID0gMSwgLi4uLCBLJytTLTEgZG8NCg0KICAg ICAgKiAgcG9zMSA9IFJhbmRbaiw2LEhdDQoNCiAgICAgICogIHBvczIgPSAocG9zMSArIFJhbmRb aiw3LEgtMV0gKyAxKSAlIEgNCg0KICAgICAgKiAgRFtTK3BvczFdID0gRFtTK3BvczFdIF4gdQ0K DQogICAgICAqICBEW1MrcG9zMl0gPSBEW1MrcG9zMl0gXiB1DQoNCiAgICAgICogIHUgPSAoYWxw aGEqdSkgXiBDW2pdDQoNCiAgIG8gIEZvciBpID0gMCwgLi4uLCBILTENCg0KICAgICAgKiAgRFtT K2ldID0gRFtTK2ldIF4gdQ0KDQogICAgICAqICB1ID0gKGFscGhhKnUpDQoNCjUuMy4zLjQuICBJ bnRlcm1lZGlhdGUgc3ltYm9scw0KDQo1LjMuMy40LjEuICBEZWZpbml0aW9uDQoNCiAgIEdpdmVu IHRoZSBLJyBzb3VyY2Ugc3ltYm9scyBDJ1swXSwgQydbMV0sLi4uLCBDJ1tLJy0xXSB0aGUgTA0K ICAgaW50ZXJtZWRpYXRlIHN5bWJvbHMgQ1swXSwgQ1sxXSwuLi4sIENbTC0xXSBhcmUgdGhlIHVu aXF1ZWx5IGRlZmluZWQNCiAgIHN5bWJvbCB2YWx1ZXMgdGhhdCBzYXRpc2Z5IHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoNCg0KICAgMS4gIFRoZSBLJyBzb3VyY2Ugc3ltYm9scyBDJ1swXSwgQydb MV0sLi4uLCBDJ1tLJy0xXSBzYXRpc2Z5IHRoZSBLJw0KICAgICAgIGNvbnN0cmFpbnRzDQoNCiAg ICAgICAgICBDJ1tYXSA9IEVuY1tLJywgKENbMF0sLi4uLCBDW0wtMV0pLCAoZFtYXSwgYVtYXSwg YltYXSwgZDFbWF0sDQogICAgICAgICAgYTFbWF0sIGIxW1hdKV0sIGZvciBhbGwgWCwgMCA8PSBY IDwgSycsDQoNCiAgICAgICB3aGVyZSAoZFtYXSwgYVtYXSwgYltYXSwgZDFbWF0sIGExW1hdLCBi MVtYXSkpID0gVHVwbGVbSycsWF0sDQogICAgICAgVHVwbGVbXSBpcyBkZWZpbmVkIGluIFNlY3Rp b24gNS4zLjUuNCBhbmQgRW5jW10gaXMgZGVzY3JpYmVkIGluDQogICAgICAgU2VjdGlvbiA1LjMu NS4zLg0KDQogICAyLiAgVGhlIEwgaW50ZXJtZWRpYXRlIHN5bWJvbHMgQ1swXSwgQ1sxXSwuLi4s IENbTC0xXSBzYXRpc2Z5IHRoZQ0KICAgICAgIHByZS1jb2RpbmcgcmVsYXRpb25zaGlwcyBkZWZp bmVkIGluIFNlY3Rpb24gNS4zLjMuMw0KDQo1LjMuMy40LjIuICBFeGFtcGxlIG1ldGhvZCBmb3Ig Y2FsY3VsYXRpb24gb2YgaW50ZXJtZWRpYXRlIHN5bWJvbHMNCg0KICAgVGhpcyBzZWN0aW9uIGRl c2NyaWJlcyBhIHBvc3NpYmxlIG1ldGhvZCBmb3IgY2FsY3VsYXRpb24gb2YgdGhlIEwNCiAgIGlu dGVybWVkaWF0ZSBzeW1ib2xzIENbMF0sIENbMV0sLi4uLCBDW0wtMV0gc2F0aXNmeWluZyB0aGUN CiAgIGNvbnN0cmFpbnRzIGluIFNlY3Rpb24gNS4zLjMuNC4xDQoNCiAgIFRoZSBnZW5lcmF0b3Ig bWF0cml4IEcgZm9yIGEgY29kZSB3aGljaCBnZW5lcmF0ZXMgbiBvdXRwdXQgc3ltYm9scw0KICAg ZnJvbSBrIGlucHV0IHN5bWJvbHMgaXMgYW4gbiB4IGsgbWF0cml4IG92ZXIgR0YoMjU2KSwgd2hl cmUgZWFjaCByb3cNCiAgIGNvcnJlc3BvbmRzIHRvIG9uZSBvZiB0aGUgb3V0cHV0IHN5bWJvbHMg YW5kIGVhY2ggY29sdW1uIHRvIG9uZSBvZg0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAgICAgICAg IEV4cGlyZXMgQXVndXN0IDEsIDIwMTAgICAgICAgICAgICAgICAgW1BhZ2UgMjZdDQoMDQpJbnRl cm5ldC1EcmFmdCAgICAgICAgICAgICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAgICAgICBK YW51YXJ5IDIwMTANCg0KDQogICB0aGUgaW5wdXQgc3ltYm9scyBhbmQgd2hlcmUgdGhlIGktdGgg b3V0cHV0IHN5bWJvbCBpcyBlcXVhbCB0byB0aGUNCiAgIHN1bSBvZiB0aGUgcHJvZHVjdCBvZiBl YWNoIGlucHV0IHN5bWJvbCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGVudHJ5DQogICBpbiByb3cg aS4NCg0KICAgVGhlbiwgdGhlIEwgaW50ZXJtZWRpYXRlIHN5bWJvbHMgY2FuIGJlIGNhbGN1bGF0 ZWQgYXMgZm9sbG93czoNCg0KICAgTGV0DQoNCiAgIG8gIEMgZGVub3RlIHRoZSBjb2x1bW4gdmVj dG9yIG9mIHRoZSBMIGludGVybWVkaWF0ZSBzeW1ib2xzLCBDWzBdLA0KICAgICAgQ1sxXSwuLi4s IENbTC0xXS4NCg0KICAgbyAgRCBkZW5vdGUgdGhlIGNvbHVtbiB2ZWN0b3IgY29uc2lzdGluZyBv ZiBTK0ggemVybyBzeW1ib2xzIGZvbGxvd2VkDQogICAgICBieSB0aGUgSycgc291cmNlIHN5bWJv bHMgQydbMF0sIEMnWzFdLCAuLi4sIEMnW0snLTFdLg0KDQogICBUaGVuIHRoZSBhYm92ZSBjb25z dHJhaW50cyBkZWZpbmUgYW4gTCB4IEwgbWF0cml4IEEgb3ZlciBHRigyNTYpIHN1Y2gNCiAgIHRo YXQ6DQoNCiAgICAgIEEqQyA9IEQNCg0KICAgVGhlIG1hdHJpeCBBIGNhbiBiZSBjb25zdHJ1Y3Rl ZCBhcyBmb2xsb3dzOg0KDQogICBMZXQ6DQoNCiAgIG8gIEdfTERQQywxIGFuZCBHX0xEUEMsMiBi ZSBTIHggQiBhbmQgUyB4IFAgbWF0cmljZXMgc3VjaCB0aGF0DQoNCiAgICAgICAgIEdfTERQQywx ICogVHJhbnNwb3NlWyhDWzBdLC4uLi4sIENbQi0xXSldICsgR19MRFBDLDIgKg0KICAgICAgICAg VHJhbnNwb3NlKENbV10sIC4uLiwgQ1tXK1AtMV0pICsgVHJhbnNwb3NlWyhDW0JdLCAuLi4sDQog ICAgICAgICBDW0IrUy0xXSldID0gMA0KDQogICAgICBhbmQgIisiIGlzIHRoZSBjb21wb25lbnQt d2lzZSBYT1Igb2YgdGhlIHZlY3RvcnMgaW52b2x2ZWQuDQoNCiAgIG8gIEdfSERQQyBiZSB0aGUg SCB4IChLJytTKSBnZW5lcmF0b3IgbWF0cml4IG9mIHRoZSBIRFBDIHN5bWJvbHMsIFNvLA0KDQog ICAgICAgICBHX0hEUEMgKiBUcmFuc3Bvc2UoQ1swXSwgLi4uLCBDW0snK1MtMV0pID0gVHJhbnNw b3NlKENbSycrU10sDQogICAgICAgICAuLi4sIENbTC0xXSksDQoNCiAgICAgICAgIGkuZS4gIEdf SERQQyA9IEgqR0FNTUENCg0KICAgbyAgSV9TIGJlIHRoZSBTIHggUyBpZGVudGl0eSBtYXRyaXgN Cg0KICAgbyAgSV9IIGJlIHRoZSBIIHggSCBpZGVudGl0eSBtYXRyaXgNCg0KICAgbyAgR19FTkMg YmUgdGhlIEsneCBMIGdlbmVyYXRvciBtYXRyaXggb2YgdGhlIGVuY29kaW5nIHN5bWJvbHMNCiAg ICAgIGdlbmVyYXRlZCBieSB0aGUgRW5jb2Rlci4gIFNvLA0KDQogICAgICAgICBHX0VOQyAqIFRy YW5zcG9zZVsoQ1swXSwgLi4uLCBDW0wtMV0pXSA9DQogICAgICAgICBUcmFuc3Bvc2VbKEMnWzBd LEMnWzFdLC4uLixDJ1tLJy0xXSldLA0KDQoNCg0KDQpMdWJ5LCBldCBhbC4gICAgICAgICAgICAg RXhwaXJlcyBBdWd1c3QgMSwgMjAxMCAgICAgICAgICAgICAgICBbUGFnZSAyN10NCgwNCkludGVy bmV0LURyYWZ0ICAgICAgICAgICAgIFJhcHRvckcgRkVDIFNjaGVtZSAgICAgICAgICAgICAgIEph bnVhcnkgMjAxMA0KDQoNCiAgICAgICAgIGkuZS4gIEdfRU5DW2ksal0gPSAxIGlmIGFuZCBvbmx5 IGlmIENbal0gaXMgaW5jbHVkZWQgaW4gdGhlDQogICAgICAgICBzeW1ib2xzIHdoaWNoIGFyZSBY T1JlZCB0byBwcm9kdWNlIEVuY1tLJywgKENbMF0sIC4uLiwgQ1tMLTFdKSwNCiAgICAgICAgIChk W2ldLCBhW2ldLCBiW2ldLCBkMVtpXSwgYTFbaV0sIGIxW2ldKV0gYW5kIEdfRU5DW2ksal0gPSAw DQogICAgICAgICBvdGhlcndpc2UuDQoNCiAgIFRoZW46DQoNCiAgIG8gIFRoZSBmaXJzdCBTIHJv d3Mgb2YgQSBhcmUgZXF1YWwgdG8gR19MRFBDLDEgfCBJX1MgfCBHX0xEUEMsMi4NCg0KICAgbyAg VGhlIG5leHQgSCByb3dzIG9mIEEgYXJlIGVxdWFsIHRvIEdfSERQQyB8IElfSC4NCg0KICAgbyAg VGhlIHJlbWFpbmluZyBLJyByb3dzIG9mIEEgYXJlIGVxdWFsIHRvIEdfRU5DLg0KDQogICBUaGUg bWF0cml4IEEgaXMgZGVwaWN0ZWQgaW4gRmlndXJlIChGaWd1cmUgNSkgYmVsb3c6DQoNCiAgICAg ICAgICAgICAgICAgQiAgICAgICAgICAgICAgIFMgICAgICAgICBVICAgICAgICAgSA0KICAgICAg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKw0KICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8ICAgICAgICAgICAgICAgICAgfA0K ICAgIFMgfCAgICAgICAgR19MRFBDLDEgICAgICAgfCAgSV9TICB8ICAgICAgR19MRFBDLDIgICAg fA0KICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8ICAgICAgICAgICAgICAg ICAgfA0KICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tKw0KICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgfA0KICAgIEggfCAgICAgICAgICAgICAgICBHX0hEUEMgICAgICAgICAgICAgICAg ICAgIHwgIElfSCAgfA0KICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgfA0KICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tKw0KICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfA0KICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfA0KICAgSycgfCAgICAgICAgICAgICAgICAgICAgICBH X0VOQyAgICAgICAgICAgICAgICAgICAgICAgfA0KICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KICAgICAgKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KDQogICAgICAgICAgICAgICAg ICAgICAgICAgIEZpZ3VyZSA1OiBUaGUgbWF0cml4IEENCg0KICAgVGhlIGludGVybWVkaWF0ZSBz eW1ib2xzIGNhbiB0aGVuIGJlIGNhbGN1bGF0ZWQgYXM6DQoNCiAgICAgIEMgPSAoQV5eLTEpKkQN Cg0KICAgVGhlIHNvdXJjZSB0dXBsZXMgYXJlIGdlbmVyYXRlZCBzdWNoIHRoYXQgZm9yIGFueSBL JyBtYXRyaXggQSBoYXMNCiAgIGZ1bGwgcmFuayBhbmQgaXMgdGhlcmVmb3JlIGludmVydGlibGUu ICBUaGlzIGNhbGN1bGF0aW9uIGNhbiBiZQ0KICAgcmVhbGl6ZWQgYnkgYXBwbHlpbmcgYSBSYXB0 b3JRIGRlY29kaW5nIHByb2Nlc3MgdG8gdGhlIEsnIHNvdXJjZQ0KICAgc3ltYm9scyBDJ1swXSwg QydbMV0sLi4uLCBDJ1tLJy0xXSB0byBwcm9kdWNlIHRoZSBMIGludGVybWVkaWF0ZQ0KICAgc3lt Ym9scyBDWzBdLCBDWzFdLC4uLiwgQ1tMLTFdLg0KDQogICBUbyBlZmZpY2llbnRseSBnZW5lcmF0 ZSB0aGUgaW50ZXJtZWRpYXRlIHN5bWJvbHMgZnJvbSB0aGUgc291cmNlDQogICBzeW1ib2xzLCBp dCBpcyByZWNvbW1lbmRlZCB0aGF0IGFuIGVmZmljaWVudCBkZWNvZGVyIGltcGxlbWVudGF0aW9u DQogICBzdWNoIGFzIHRoYXQgZGVzY3JpYmVkIGluIFNlY3Rpb24gNS40IGJlIHVzZWQuDQoNCg0K DQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAgICBFeHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAg ICAgICAgICAgIFtQYWdlIDI4XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9y RyBGRUMgU2NoZW1lICAgICAgICAgICAgICAgSmFudWFyeSAyMDEwDQoNCg0KNS4zLjQuICBTZWNv bmQgZW5jb2Rpbmcgc3RlcDogRW5jb2RpbmcNCg0KICAgSW4gdGhlIHNlY29uZCBlbmNvZGluZyBz dGVwLCB0aGUgcmVwYWlyIHN5bWJvbCB3aXRoIElTSSBYIChYID49IEsnKQ0KICAgaXMgZ2VuZXJh dGVkIGJ5IGFwcGx5aW5nIHRoZSBnZW5lcmF0b3IgRW5jW0snLCAoQ1swXSwgQ1sxXSwuLi4sDQog ICBDW0wtMV0pLCAoZCwgYSwgYiwgZDEsIGExLCBiMSldIGRlZmluZWQgaW4gU2VjdGlvbiA1LjMu NS4zIHRvIHRoZSBMDQogICBpbnRlcm1lZGlhdGUgc3ltYm9scyBDWzBdLCBDWzFdLC4uLiwgQ1tM LTFdIHVzaW5nIHRoZSB0dXBsZSAoZCwgYSwgYiwNCiAgIGQxLCBhMSwgYjEpPVR1cGxlW0snLFhd Lg0KDQo1LjMuNS4gIEdlbmVyYXRvcnMNCg0KNS4zLjUuMS4gIFJhbmRvbSBHZW5lcmF0b3INCg0K ICAgVGhlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIFJhbmRbeSwgaSwgbV0gaXMgZGVmaW5lZCBh cyBmb2xsb3dzLA0KICAgd2hlcmUgeSBpcyBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLCBpIGlzIGEg bm9uLW5lZ2F0aXZlIGludGVnZXIgbGVzcw0KICAgdGhhbiAyNTYsIGFuZCBtIGlzIGEgcG9zaXRp dmUgaW50ZWdlciBhbmQgdGhlIHZhbHVlIHByb2R1Y2VkIGlzIGFuDQogICBpbnRlZ2VyIGJldHdl ZW4gMCBhbmQgbS0xLiAgTGV0IFYwLCBWMSwgVjIgYW5kIFYzIGJlIGFycmF5cyBvZiAyNTYNCiAg IGVudHJpZXMgZWFjaCwgd2hlcmUgZWFjaCBlbnRyeSBpcyBhIDQtYnl0ZSB1bnNpZ25lZCBpbnRl Z2VyLiAgVGhlc2UNCiAgIGFycmF5cyBhcmUgcHJvdmlkZWQgaW4gU2VjdGlvbiA1LjUuDQoNCiAg IExldA0KDQogICBvICB4MCA9ICh5ICsgaSkgbW9kIDJeXjgNCg0KICAgbyAgeDEgPSAoZmxvb3Io eSAvIDJeXjgpICsgaSkgbW9kIDJeXjgNCg0KICAgbyAgeDIgPSAoZmxvb3IoeSAvIDJeXjE2KSAr IGkpIG1vZCAyXl44DQoNCiAgIG8gIHgzID0gKGZsb29yKHkgLyAyXl4yNCkgKyBpKSBtb2QgMl5e OA0KDQogICBUaGVuLA0KDQogICAgICBSYW5kW3ksIGksIG1dID0gKFYwW3gwXSBeIFYxW3gxXSBe IFYyW3gyXSBeIFYzW3gzXSkgJSBtDQoNCjUuMy41LjIuICBEZWdyZWUgR2VuZXJhdG9yDQoNCiAg IFRoZSBkZWdyZWUgZ2VuZXJhdG9yIERlZ1t2XSBpcyBkZWZpbmVkIGFzIGZvbGxvd3MsIHdoZXJl IHYgaXMgYW4NCiAgIGludGVnZXIgdGhhdCBpcyBhdCBsZWFzdCAwIGFuZCBsZXNzIHRoYW4gMl5e MjAgPSAxMDQ4NTc2LiAgR2l2ZW4gdiwNCiAgIGZpbmQgaW5kZXggZCBpbiBUYWJsZSAxIHN1Y2gg dGhhdCBmW2QtMV0gPD0gdiA8IGZbZF0sIGFuZCBzZXQgRGVnW3ZdDQogICA9IG1pbihkLCBXLTIp Lg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAgICAgICAgIEV4cGly ZXMgQXVndXN0IDEsIDIwMTAgICAgICAgICAgICAgICAgW1BhZ2UgMjldDQoMDQpJbnRlcm5ldC1E cmFmdCAgICAgICAgICAgICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAgICAgICBKYW51YXJ5 IDIwMTANCg0KDQogICAgICAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rDQogICAgICAgICAgICAgICAgIHwgSW5kZXggZCB8IGZbZF0gICAgfCBJbmRl eCBkIHwgZltkXSAgICB8DQogICAgICAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rDQogICAgICAgICAgICAgICAgIHwgMCAgICAgICB8IDAgICAgICAg fCAxICAgICAgIHwgNTI0MyAgICB8DQogICAgICAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQogICAgICAgICAgICAgICAgIHwgMiAgICAgICB8IDUy OTUzMSAgfCAzICAgICAgIHwgNzA0Mjk0ICB8DQogICAgICAgICAgICAgICAgICstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQogICAgICAgICAgICAgICAgIHwgNCAgICAg ICB8IDc5MTY3NSAgfCA1ICAgICAgIHwgODQ0MTA0ICB8DQogICAgICAgICAgICAgICAgICstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQogICAgICAgICAgICAgICAgIHwg NiAgICAgICB8IDg3OTA1NyAgfCA3ICAgICAgIHwgOTA0MDIzICB8DQogICAgICAgICAgICAgICAg ICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQogICAgICAgICAgICAg ICAgIHwgOCAgICAgICB8IDkyMjc0NyAgfCA5ICAgICAgIHwgOTM3MzExICB8DQogICAgICAgICAg ICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQogICAgICAg ICAgICAgICAgIHwgMTAgICAgICB8IDk0ODk2MiAgfCAxMSAgICAgIHwgOTU4NDk0ICB8DQogICAg ICAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQog ICAgICAgICAgICAgICAgIHwgMTIgICAgICB8IDk2NjQzOCAgfCAxMyAgICAgIHwgOTczMTYwICB8 DQogICAgICAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rDQogICAgICAgICAgICAgICAgIHwgMTQgICAgICB8IDk3ODkyMSAgfCAxNSAgICAgIHwgOTgz OTE0ICB8DQogICAgICAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rDQogICAgICAgICAgICAgICAgIHwgMTYgICAgICB8IDk4ODI4MyAgfCAxNyAgICAg IHwgOTkyMTM4ICB8DQogICAgICAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rDQogICAgICAgICAgICAgICAgIHwgMTggICAgICB8IDk5NTU2NSAgfCAx OSAgICAgIHwgOTk4NjMxICB8DQogICAgICAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rDQogICAgICAgICAgICAgICAgIHwgMjAgICAgICB8IDEwMDEz OTEgfCAyMSAgICAgIHwgMTAwMzg4NyB8DQogICAgICAgICAgICAgICAgICstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQogICAgICAgICAgICAgICAgIHwgMjIgICAgICB8 IDEwMDYxNTcgfCAyMyAgICAgIHwgMTAwODIyOSB8DQogICAgICAgICAgICAgICAgICstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQogICAgICAgICAgICAgICAgIHwgMjQg ICAgICB8IDEwMTAxMjkgfCAyNSAgICAgIHwgMTAxMTg3NiB8DQogICAgICAgICAgICAgICAgICst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQogICAgICAgICAgICAgICAg IHwgMjYgICAgICB8IDEwMTM0OTAgfCAyNyAgICAgIHwgMTAxNDk4MyB8DQogICAgICAgICAgICAg ICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQogICAgICAgICAg ICAgICAgIHwgMjggICAgICB8IDEwMTYzNzAgfCAyOSAgICAgIHwgMTAxNzY2MiB8DQogICAgICAg ICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQogICAg ICAgICAgICAgICAgIHwgMzAgICAgICB8IDEwNDg1NzYgfCAgICAgICAgIHwgICAgICAgICB8DQog ICAgICAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r DQoNCiAgICAgICBUYWJsZSAxOiBEZWZpbmVzIHRoZSBkZWdyZWUgZGlzdHJpYnV0aW9uIGZvciBl bmNvZGluZyBzeW1ib2xzDQoNCjUuMy41LjMuICBFbmNvZGluZyBTeW1ib2wgR2VuZXJhdG9yDQoN CiAgIFRoZSBlbmNvZGluZyBzeW1ib2wgZ2VuZXJhdG9yIEVuY1tLJywgKENbMF0sIENbMV0sLi4u LCBDW0wtMV0pLCAoZCwNCiAgIGEsIGIsIGQxLCBhMSwgYjEpXSB0YWtlcyB0aGUgZm9sbG93aW5n IGlucHV0czoNCg0KICAgbyAgSycgaXMgdGhlIG51bWJlciBvZiBzb3VyY2Ugc3ltYm9scyBmb3Ig dGhlIGV4dGVuZGVkIHNvdXJjZSBibG9jay4NCiAgICAgIExldCBMLCBXLCBCLCBTLCBQIGFuZCBQ MSBiZSBkZXJpdmVkIGZyb20gSycgYXMgZGVzY3JpYmVkIGluDQogICAgICBTZWN0aW9uIDUuMy4z LjMuDQoNCg0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAgICAgICAgIEV4cGlyZXMgQXVndXN0IDEs IDIwMTAgICAgICAgICAgICAgICAgW1BhZ2UgMzBdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAg ICAgICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAgICAgICBKYW51YXJ5IDIwMTANCg0KDQog ICBvICAoQ1swXSwgQ1sxXSwuLi4sIENbTC0xXSkgaXMgdGhlIGFycmF5IG9mIEwgaW50ZXJtZWRp YXRlIHN5bWJvbHMNCiAgICAgIChzdWItc3ltYm9scykgZ2VuZXJhdGVkIGFzIGRlc2NyaWJlZCBp biBTZWN0aW9uIDUuMy4zLjQNCg0KICAgbyAgKGQsIGEsIGIsIGQxLCBhMSwgYjEpIGlzIGEgc291 cmNlIHR1cGxlIGRldGVybWluZWQgZnJvbSBJU0kgWA0KICAgICAgdXNpbmcgdGhlIFR1cGxlIGdl bmVyYXRvciBkZWZpbmVkIGluIFNlY3Rpb24gNS4zLjUuNCwgd2hlcmVieQ0KDQogICAgICAqICBk IGlzIGFuIGludGVnZXIgZGVub3RpbmcgYW4gZW5jb2Rpbmcgc3ltYm9sIExUIGRlZ3JlZQ0KDQog ICAgICAqICBhIGlzIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCBXLTEgaW5jbHVzaXZlDQoNCiAg ICAgICogIGIgaXMgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIFctMSBpbmNsdXNpdmUNCg0KICAg ICAgKiAgZDEgaXMgYW4gaW50ZWdlciBiZXR3ZWVuIDIgYW5kIDMgaW5jbHVzaXZlIGRlbm90aW5n IGFuIGVuY29kaW5nDQogICAgICAgICBzeW1ib2wgUEkgZGVncmVlDQoNCiAgICAgICogIGExIGlz IGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCBQMS0xIGluY2x1c2l2ZQ0KDQogICAgICAqICBiMSBp cyBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgUDEtMSBpbmNsdXNpdmUNCg0KICAgVGhlIGVuY29k aW5nIHN5bWJvbCBnZW5lcmF0b3IgcHJvZHVjZXMgYSBzaW5nbGUgZW5jb2Rpbmcgc3ltYm9sIGFz DQogICBvdXRwdXQsIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIGFsZ29yaXRobToNCg0KICAg byAgcmVzdWx0ID0gQ1tiXS4NCg0KICAgbyAgRm9yIGogPSAxLCAuLi4sIGQtMSBkbw0KDQogICAg ICAqICBiID0gKGIgKyBhKSAlIFcNCg0KICAgICAgKiAgcmVzdWx0ID0gcmVzdWx0IF4gQ1tiXQ0K DQogICBvICB3aGlsZSAoYjEgPj0gUCkgZG8gYjEgPSAoYjErYTEpICUgUDENCg0KICAgbyAgcmVz dWx0ID0gcmVzdWx0IF4gQ1tXK2IxXQ0KDQogICBvICBGb3IgaiA9IDEsIC4uLiwgZDEtMSBkbw0K DQogICAgICAqICBiMSA9IChiMSArIGExKSAlIFAxDQoNCiAgICAgICogIHdoaWxlIChiMSA+PSBQ KSBkbyBiMSA9IChiMSthMSkgJSBQMQ0KDQogICAgICAqICByZXN1bHQgPSByZXN1bHQgXiBDW1cr YjFdDQoNCiAgIG8gIFJldHVybiByZXN1bHQNCg0KDQoNCg0KDQoNCg0KDQpMdWJ5LCBldCBhbC4g ICAgICAgICAgICAgRXhwaXJlcyBBdWd1c3QgMSwgMjAxMCAgICAgICAgICAgICAgICBbUGFnZSAz MV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICAgIFJhcHRvckcgRkVDIFNjaGVtZSAgICAg ICAgICAgICAgIEphbnVhcnkgMjAxMA0KDQoNCjUuMy41LjQuICBUdXBsZSBnZW5lcmF0b3INCg0K ICAgVGhlIHR1cGxlIGdlbmVyYXRvciBUdXBsZVtLJyxYXSB0YWtlcyB0aGUgZm9sbG93aW5nIGlu cHV0czoNCg0KICAgbyAgSycgLSBUaGUgbnVtYmVyIG9mIHNvdXJjZSBzeW1ib2xzIGluIHRoZSBl eHRlbmRlZCBzb3VyY2UgYmxvY2sNCg0KICAgbyAgWCAtIEFuIEludGVybWVkaWF0ZSBzeW1ib2wg SUQgKElTSSkNCg0KICAgTGV0DQoNCiAgIG8gIEwgYmUgZGV0ZXJtaW5lZCBmcm9tIEsnIGFzIGRl c2NyaWJlZCBpbiBTZWN0aW9uIDUuMy4zLjMNCg0KICAgbyAgUSA9IDQyOTQ5NjcyOTEsIHRoZSBs YXJnZXN0IHByaW1lIHNtYWxsZXIgdGhhbiAyXl4zMi4NCg0KICAgbyAgSj1KKEsnKSBiZSB0aGUg c3lzdGVtYXRpYyBpbmRleCBhc3NvY2lhdGVkIHdpdGggSycsIGFzIGRlZmluZWQNCiAgICAgIGlu VGFibGUgMiBpblNlY3Rpb24gNS42DQoNCiAgIFRoZSBvdXRwdXQgb2YgdGhlIHNvdXJjZSBzeW1i b2wgdHVwbGUgZ2VuZXJhdG9yIGlzIGEgdHVwbGUsIChkLCBhLCBiLA0KICAgZDEsIGExLCBiMSkg ZGV0ZXJtaW5lZCBhcyBmb2xsb3dzOg0KDQogICBvICBBID0gMSArICg1MzU5MSArIEoqOTk3KSAl IFENCg0KICAgbyAgQiA9IDEwMjY3KihKKzEpICUgUQ0KDQogICBvICB5ID0gKEIgKyBYKkEpICUg UQ0KDQogICBvICB2ID0gUmFuZFt5LCAwLCAyXl4yMF0NCg0KICAgbyAgZCA9IERlZ1t2XQ0KDQog ICBvICBhID0gMSArIFJhbmRbeSwgMSwgVy0xXQ0KDQogICBvICBiID0gUmFuZFt5LCAyLCBXXQ0K DQogICBvICBpZiAoZDw0KSB7IGQxID0gMiArIFJhbmRbeSwgMywgMl0gfSBlbHNlIHsgZDEgPSAy IH0NCg0KICAgbyAgYTEgPSAxICsgUmFuZFt5LCA0LCBQMS0xXQ0KDQogICBvICBiMSA9IFJhbmRb eSwgNSwgUDFdDQoNCjUuNC4gIEV4YW1wbGUgRkVDIGRlY29kZXINCg0KNS40LjEuICBHZW5lcmFs DQoNCiAgIFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgYW4gZWZmaWNpZW50IGRlY29kaW5nIGFsZ29y aXRobSBmb3IgdGhlDQogICBSYXB0b3JRIGNvZGUgaW50cm9kdWNlZCBpbiB0aGlzIHNwZWNpZmlj YXRpb24uICBOb3RlIHRoYXQgZWFjaA0KICAgcmVjZWl2ZWQgZW5jb2Rpbmcgc3ltYm9sIGNhbiBi ZSBjb25zaWRlcmVkIGFzIHRoZSB2YWx1ZSBvZiBhbg0KICAgZXF1YXRpb24gYW1vbmdzdCB0aGUg aW50ZXJtZWRpYXRlIHN5bWJvbHMuICBGcm9tIHRoZXNlIHNpbXVsdGFuZW91cw0KDQoNCg0KTHVi eSwgZXQgYWwuICAgICAgICAgICAgIEV4cGlyZXMgQXVndXN0IDEsIDIwMTAgICAgICAgICAgICAg ICAgW1BhZ2UgMzJdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICBSYXB0b3JHIEZFQyBT Y2hlbWUgICAgICAgICAgICAgICBKYW51YXJ5IDIwMTANCg0KDQogICBlcXVhdGlvbnMsIGFuZCB0 aGUga25vd24gcHJlLWNvZGluZyByZWxhdGlvbnNoaXBzIGFtb25nc3QgdGhlDQogICBpbnRlcm1l ZGlhdGUgc3ltYm9scywgYW55IGFsZ29yaXRobSBmb3Igc29sdmluZyBzaW11bHRhbmVvdXMNCiAg IGVxdWF0aW9ucyBjYW4gc3VjY2Vzc2Z1bGx5IGRlY29kZSB0aGUgaW50ZXJtZWRpYXRlIHN5bWJv bHMgYW5kIGhlbmNlDQogICB0aGUgc291cmNlIHN5bWJvbHMuICBIb3dldmVyLCB0aGUgYWxnb3Jp dGhtIGNob3NlbiBoYXMgYSBtYWpvciBlZmZlY3QNCiAgIG9uIHRoZSBjb21wdXRhdGlvbmFsIGVm ZmljaWVuY3kgb2YgdGhlIGRlY29kaW5nLg0KDQo1LjQuMi4gIERlY29kaW5nIGFuIGV4dGVuZGVk IHNvdXJjZSBibG9jaw0KDQo1LjQuMi4xLiAgR2VuZXJhbA0KDQogICBJdCBpcyBhc3N1bWVkIHRo YXQgdGhlIGRlY29kZXIga25vd3MgdGhlIHN0cnVjdHVyZSBvZiB0aGUgc291cmNlDQogICBibG9j ayBpdCBpcyB0byBkZWNvZGUsIGluY2x1ZGluZyB0aGUgc3ltYm9sIHNpemUsIFQsIGFuZCB0aGUg bnVtYmVyIEsNCiAgIG9mIHN5bWJvbHMgaW4gdGhlIHNvdXJjZSBibG9jayBhbmQgdGhlIG51bWJl ciBLJyBvZiBzb3VyY2Ugc3ltYm9scyBpbg0KICAgdGhlIGV4dGVuZGVkIHNvdXJjZSBibG9jay4N Cg0KICAgRnJvbSB0aGUgYWxnb3JpdGhtcyBkZXNjcmliZWQgaW4gU2VjdGlvbnMgU2VjdGlvbiA1 LjMsIHRoZSBSYXB0b3JRDQogICBkZWNvZGVyIGNhbiBjYWxjdWxhdGUgdGhlIHRvdGFsIG51bWJl ciBMID0gSycrUytIIG9mIGludGVybWVkaWF0ZQ0KICAgc3ltYm9scyBhbmQgZGV0ZXJtaW5lIGhv dyB0aGV5IHdlcmUgZ2VuZXJhdGVkIGZyb20gdGhlIGV4dGVuZGVkDQogICBzb3VyY2UgYmxvY2sg dG8gYmUgZGVjb2RlZC4gIEluIHRoaXMgZGVzY3JpcHRpb24gaXQgaXMgYXNzdW1lZCB0aGF0DQog ICB0aGUgcmVjZWl2ZWQgZW5jb2Rpbmcgc3ltYm9scyBmb3IgdGhlIGV4dGVuZGVkIHNvdXJjZSBi bG9jayB0byBiZQ0KICAgZGVjb2RlZCBhcmUgcGFzc2VkIHRvIHRoZSBkZWNvZGVyLiAgRnVydGhl cm1vcmUsIGZvciBlYWNoIHN1Y2gNCiAgIGVuY29kaW5nIHN5bWJvbCBpdCBpcyBhc3N1bWVkIHRo YXQgdGhlIG51bWJlciBhbmQgc2V0IG9mIGludGVybWVkaWF0ZQ0KICAgc3ltYm9scyB3aG9zZSBl eGNsdXNpdmUtb3IgaXMgZXF1YWwgdG8gdGhlIGVuY29kaW5nIHN5bWJvbCBpcyBwYXNzZWQNCiAg IHRvIHRoZSBkZWNvZGVyLiAgSW4gdGhlIGNhc2Ugb2Ygc291cmNlIHN5bWJvbHMsIGluY2x1ZGlu ZyBwYWRkaW5nDQogICBzeW1ib2xzLCB0aGUgc291cmNlIHN5bWJvbCB0dXBsZXMgZGVzY3JpYmVk IGluIFNlY3Rpb24gNS4zLjMuMg0KICAgaW5kaWNhdGUgdGhlIG51bWJlciBhbmQgc2V0IG9mIGlu dGVybWVkaWF0ZSBzeW1ib2xzIHdoaWNoIHN1bSB0byBnaXZlDQogICBlYWNoIHNvdXJjZSBzeW1i b2wuDQoNCiAgIExldCBOID49IEsnIGJlIHRoZSBudW1iZXIgb2YgcmVjZWl2ZWQgZW5jb2Rpbmcg c3ltYm9scyB0byBiZSB1c2VkIGZvcg0KICAgZGVjb2RpbmcsIGluY2x1ZGluZyBwYWRkaW5nIHN5 bWJvbHMgZm9yIGFuIGV4dGVuZGVkIHNvdXJjZSBibG9jayBhbmQNCiAgIGxldCBNID0gUytIK04u IFRoZW4gd2l0aCB0aGUgbm90YXRpb24gb2YgU2VjdGlvbiA1LjMuMy40LjIgd2UgaGF2ZQ0KICAg QSpDPUQuDQoNCiAgIERlY29kaW5nIGFuIGV4dGVuZGVkIHNvdXJjZSBibG9jayBpcyBlcXVpdmFs ZW50IHRvIGRlY29kaW5nIEMgZnJvbQ0KICAga25vd24gQSBhbmQgRC4gSXQgaXMgY2xlYXIgdGhh dCBDIGNhbiBiZSBkZWNvZGVkIGlmIGFuZCBvbmx5IGlmIHRoZQ0KICAgcmFuayBvZiBBIGlzIEwu IE9uY2UgQyBoYXMgYmVlbiBkZWNvZGVkLCBtaXNzaW5nIHNvdXJjZSBzeW1ib2xzIGNhbg0KICAg YmUgb2J0YWluZWQgYnkgdXNpbmcgdGhlIHNvdXJjZSBzeW1ib2wgdHVwbGVzIHRvIGRldGVybWlu ZSB0aGUgbnVtYmVyDQogICBhbmQgc2V0IG9mIGludGVybWVkaWF0ZSBzeW1ib2xzIHdoaWNoIG11 c3QgYmUgZXhjbHVzaXZlLU9SZWQgdG8NCiAgIG9idGFpbiBlYWNoIG1pc3Npbmcgc291cmNlIHN5 bWJvbC4NCg0KICAgVGhlIGZpcnN0IHN0ZXAgaW4gZGVjb2RpbmcgQyBpcyB0byBmb3JtIGEgZGVj b2Rpbmcgc2NoZWR1bGUuICBJbiB0aGlzDQogICBzdGVwIEEgaXMgY29udmVydGVkLCB1c2luZyBH YXVzc2lhbiBlbGltaW5hdGlvbiAodXNpbmcgcm93IG9wZXJhdGlvbnMNCiAgIGFuZCByb3cgYW5k IGNvbHVtbiByZW9yZGVyaW5ncykgYW5kIGFmdGVyIGRpc2NhcmRpbmcgTSAtIEwgcm93cywgaW50 bw0KICAgdGhlIEwgYnkgTCBpZGVudGl0eSBtYXRyaXguICBUaGUgZGVjb2Rpbmcgc2NoZWR1bGUg Y29uc2lzdHMgb2YgdGhlDQogICBzZXF1ZW5jZSBvZiByb3cgb3BlcmF0aW9ucyBhbmQgcm93IGFu ZCBjb2x1bW4gcmUtb3JkZXJpbmdzIGR1cmluZyB0aGUNCiAgIEdhdXNzaWFuIGVsaW1pbmF0aW9u IHByb2Nlc3MsIGFuZCBvbmx5IGRlcGVuZHMgb24gQSBhbmQgbm90IG9uIEQuIFRoZQ0KICAgZGVj b2Rpbmcgb2YgQyBmcm9tIEQgY2FuIHRha2UgcGxhY2UgY29uY3VycmVudGx5IHdpdGggdGhlIGZv cm1pbmcgb2YNCiAgIHRoZSBkZWNvZGluZyBzY2hlZHVsZSwgb3IgdGhlIGRlY29kaW5nIGNhbiB0 YWtlIHBsYWNlIGFmdGVyd2FyZHMNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAgICBFeHBp cmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgIFtQYWdlIDMzXQ0KDA0KSW50ZXJuZXQt RHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAgICAgSmFudWFy eSAyMDEwDQoNCg0KICAgYmFzZWQgb24gdGhlIGRlY29kaW5nIHNjaGVkdWxlLg0KDQogICBUaGUg Y29ycmVzcG9uZGVuY2UgYmV0d2VlbiB0aGUgZGVjb2Rpbmcgc2NoZWR1bGUgYW5kIHRoZSBkZWNv ZGluZyBvZg0KICAgQyBpcyBhcyBmb2xsb3dzLiAgTGV0IGNbMF0gPSAwLCBjWzFdID0gMS4uLixj W0wtMV0gPSBMLTEgYW5kIGRbMF0gPQ0KICAgMCwgZFsxXSA9IDEuLi4sZFtNLTFdID0gTS0xIGlu aXRpYWxseS4NCg0KICAgbyAgRWFjaCB0aW1lIGEgbXVsdGlwbGUsIGJldGEsIG9mIHJvdyBpIG9m IEEgaXMgYWRkZWQgdG8gcm93IGknIGluDQogICAgICB0aGUgZGVjb2Rpbmcgc2NoZWR1bGUgdGhl biBpbiB0aGUgZGVjb2RpbmcgcHJvY2VzcyB0aGUgc3ltYm9sDQogICAgICBiZXRhKkRbZFtpXV0g aXMgYWRkZWQgdG8gc3ltYm9sIERbZFtpJ11dIC4NCg0KICAgbyAgRWFjaCB0aW1lIGEgcm93IGkg b2YgQSBpcyBtdWx0aXBsaWVkIGJ5IGEgZmllbGQgZWxlbWVudCBiZXRhLCB0aGVuDQogICAgICBp biB0aGUgZGVjb2RpbmcgcHJvY2VzcyB0aGUgc3ltYm9sIERbZFtpXV0gaXMgYWxzbyBtdWx0aXBs aWVkIGJ5DQogICAgICBiZXRhLg0KDQogICBvICBFYWNoIHRpbWUgcm93IGkgaXMgZXhjaGFuZ2Vk IHdpdGggcm93IGknIGluIHRoZSBkZWNvZGluZyBzY2hlZHVsZQ0KICAgICAgdGhlbiBpbiB0aGUg ZGVjb2RpbmcgcHJvY2VzcyB0aGUgdmFsdWUgb2YgZFtpXSBpcyBleGNoYW5nZWQgd2l0aA0KICAg ICAgdGhlIHZhbHVlIG9mIGRbaSddLg0KDQogICBvICBFYWNoIHRpbWUgY29sdW1uIGogaXMgZXhj aGFuZ2VkIHdpdGggY29sdW1uIGonIGluIHRoZSBkZWNvZGluZw0KICAgICAgc2NoZWR1bGUgdGhl biBpbiB0aGUgZGVjb2RpbmcgcHJvY2VzcyB0aGUgdmFsdWUgb2YgY1tqXSBpcw0KICAgICAgZXhj aGFuZ2VkIHdpdGggdGhlIHZhbHVlIG9mIGNbaiddLg0KDQogICBGcm9tIHRoaXMgY29ycmVzcG9u ZGVuY2UgaXQgaXMgY2xlYXIgdGhhdCB0aGUgdG90YWwgbnVtYmVyIG9mDQogICBvcGVyYXRpb25z IG9uIHN5bWJvbHMgaW4gdGhlIGRlY29kaW5nIG9mIHRoZSBleHRlbmRlZCBzb3VyY2UgYmxvY2sg aXMNCiAgIHRoZSBudW1iZXIgb2Ygcm93IG9wZXJhdGlvbnMgKG5vdCBleGNoYW5nZXMpIGluIHRo ZSBHYXVzc2lhbg0KICAgZWxpbWluYXRpb24uICBTaW5jZSBBIGlzIHRoZSBMIGJ5IEwgaWRlbnRp dHkgbWF0cml4IGFmdGVyIHRoZQ0KICAgR2F1c3NpYW4gZWxpbWluYXRpb24gYW5kIGFmdGVyIGRp c2NhcmRpbmcgdGhlIGxhc3QgTSAtIEwgcm93cywgaXQgaXMNCiAgIGNsZWFyIGF0IHRoZSBlbmQg b2Ygc3VjY2Vzc2Z1bCBkZWNvZGluZyB0aGF0IHRoZSBMIHN5bWJvbHMgRFtkWzBdXSwNCiAgIERb ZFsxXV0sLi4uLCBEW2RbTC0xXV0gYXJlIHRoZSB2YWx1ZXMgb2YgdGhlIEwgc3ltYm9scyBDW2Nb MF1dLA0KICAgQ1tjWzFdXSwuLi4sIENbY1tMLTFdXS4NCg0KICAgVGhlIG9yZGVyIGluIHdoaWNo IEdhdXNzaWFuIGVsaW1pbmF0aW9uIGlzIHBlcmZvcm1lZCB0byBmb3JtIHRoZQ0KICAgZGVjb2Rp bmcgc2NoZWR1bGUgaGFzIG5vIGJlYXJpbmcgb24gd2hldGhlciBvciBub3QgdGhlIGRlY29kaW5n IGlzDQogICBzdWNjZXNzZnVsLiAgSG93ZXZlciwgdGhlIHNwZWVkIG9mIHRoZSBkZWNvZGluZyBk ZXBlbmRzIGhlYXZpbHkgb24NCiAgIHRoZSBvcmRlciBpbiB3aGljaCBHYXVzc2lhbiBlbGltaW5h dGlvbiBpcyBwZXJmb3JtZWQuICAoRnVydGhlcm1vcmUsDQogICBtYWludGFpbmluZyBhIHNwYXJz ZSByZXByZXNlbnRhdGlvbiBvZiBBIGlzIGNydWNpYWwsIGFsdGhvdWdoIHRoaXMgaXMNCiAgIG5v dCBkZXNjcmliZWQgaGVyZSkuICBUaGUgcmVtYWluZGVyIG9mIHRoaXMgc2VjdGlvbiBkZXNjcmli ZXMgYW4NCiAgIG9yZGVyIGluIHdoaWNoIEdhdXNzaWFuIGVsaW1pbmF0aW9uIGNvdWxkIGJlIHBl cmZvcm1lZCB0aGF0IGlzDQogICByZWxhdGl2ZWx5IGVmZmljaWVudC4NCg0KNS40LjIuMi4gIEZp cnN0IFBoYXNlDQoNCiAgIFRoZSBmaXJzdCBwaGFzZSBvZiB0aGUgR2F1c3NpYW4gZWxpbWluYXRp b24gdGhlIG1hdHJpeCBBIGlzDQogICBjb25jZXB0dWFsbHkgcGFydGl0aW9uZWQgaW50byBzdWJt YXRyaWNlcyBhbmQgYWRkaXRpb25hbGx5LCBhIG1hdHJpeA0KICAgWCBpcyBjcmVhdGVkLiAgVGhp cyBtYXRyaXggaGFzIGFzIG1hbnkgcm93cyBhbmQgY29sdW1ucyBhcyBBLCBhbmQgaXQNCiAgIHdp bGwgYmUgYSBsb3dlciB0cmlhbmd1bGFyIG1hdHJpeCB0aHJvdWdob3V0IHRoZSBmaXJzdCBwaGFz ZS4gIEF0IHRoZQ0KICAgYmVnaW5uaW5nIG9mIHRoaXMgcGhhc2UsIHRoZSBtYXRyaXggQSBpcyBj b3BpZWQgaW50byB0aGUgbWF0cml4IFguDQogICBUaGUgc3VibWF0cml4IHNpemVzIGFyZSBwYXJh bWV0ZXJpemVkIGJ5IG5vbi1uZWdhdGl2ZSBpbnRlZ2VycyBpIGFuZA0KDQoNCg0KTHVieSwgZXQg YWwuICAgICAgICAgICAgIEV4cGlyZXMgQXVndXN0IDEsIDIwMTAgICAgICAgICAgICAgICAgW1Bh Z2UgMzRdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICBSYXB0b3JHIEZFQyBTY2hlbWUg ICAgICAgICAgICAgICBKYW51YXJ5IDIwMTANCg0KDQogICB1IHdoaWNoIGFyZSBpbml0aWFsaXpl ZCB0byAwIGFuZCBQLCB0aGUgbnVtYmVyIG9mIFBJIHN5bWJvbHMsDQogICByZXNwZWN0aXZlbHku ICBUaGUgc3VibWF0cmljZXMgb2YgQSBhcmU6DQoNCiAgIDEuICBUaGUgc3VibWF0cml4IEkgZGVm aW5lZCBieSB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSBmaXJzdCBpIHJvd3MNCiAgICAgICBhbmQg Zmlyc3QgaSBjb2x1bW5zLiAgVGhpcyBpcyB0aGUgaWRlbnRpdHkgbWF0cml4IGF0IHRoZSBlbmQg b2YNCiAgICAgICBlYWNoIHN0ZXAgaW4gdGhlIHBoYXNlLg0KDQogICAyLiAgVGhlIHN1Ym1hdHJp eCBkZWZpbmVkIGJ5IHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhlIGZpcnN0IGkgcm93cyBhbmQNCiAg ICAgICBhbGwgYnV0IHRoZSBmaXJzdCBpIGNvbHVtbnMgYW5kIGxhc3QgdSBjb2x1bW5zLiAgQWxs IGVudHJpZXMgb2YNCiAgICAgICB0aGlzIHN1Ym1hdHJpeCBhcmUgemVyby4NCg0KICAgMy4gIFRo ZSBzdWJtYXRyaXggZGVmaW5lZCBieSB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSBmaXJzdCBpIGNv bHVtbnMNCiAgICAgICBhbmQgYWxsIGJ1dCB0aGUgZmlyc3QgaSByb3dzLiAgQWxsIGVudHJpZXMg b2YgdGhpcyBzdWJtYXRyaXggYXJlDQogICAgICAgemVyby4NCg0KICAgNC4gIFRoZSBzdWJtYXRy aXggVSBkZWZpbmVkIGJ5IHRoZSBpbnRlcnNlY3Rpb24gb2YgYWxsIHRoZSByb3dzIGFuZA0KICAg ICAgIHRoZSBsYXN0IHUgY29sdW1ucy4NCg0KICAgNS4gIFRoZSBzdWJtYXRyaXggViBmb3JtZWQg YnkgdGhlIGludGVyc2VjdGlvbiBvZiBhbGwgYnV0IHRoZSBmaXJzdCBpDQogICAgICAgY29sdW1u cyBhbmQgdGhlIGxhc3QgdSBjb2x1bW5zIGFuZCBhbGwgYnV0IHRoZSBmaXJzdCBpIHJvd3MuDQoN CiAgIEZpZ3VyZSA2IGlsbHVzdHJhdGVzIHRoZSBzdWJtYXRyaWNlcyBvZiBBLiBBdCB0aGUgYmVn aW5uaW5nIG9mIHRoZQ0KICAgZmlyc3QgcGhhc2UgViA9IEEuIEluIGVhY2ggc3RlcCwgYSByb3cg b2YgQSBpcyBjaG9zZW4uDQoNCiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rDQogICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgfA0KICAg fCAgICAgSSAgICAgfCAgICBBbGwgWmVyb3MgICAgfCAgICAgICAgIHwNCiAgIHwgICAgICAgICAg IHwgICAgICAgICAgICAgICAgIHwgICAgICAgICB8DQogICArLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rICAgIFUgICAgfA0KICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgfCAg ICAgICAgIHwNCiAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIHwgICAgICAgICB8DQog ICB8IEFsbCBaZXJvcyB8ICAgICAgIFYgICAgICAgICB8ICAgICAgICAgfA0KICAgfCAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwNCiAgIHwgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgIHwgICAgICAgICB8DQogICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKw0KDQogICAgICAgICAgICAgICBGaWd1cmUgNjogU3VibWF0cmljZXMgb2YgQSBp biB0aGUgZmlyc3QgcGhhc2UNCg0KICAgVGhlIGZvbGxvd2luZyBncmFwaCBkZWZpbmVkIGJ5IHRo ZSBzdHJ1Y3R1cmUgb2YgViBpcyB1c2VkIGluDQogICBkZXRlcm1pbmluZyB3aGljaCByb3cgb2Yg QSBpcyBjaG9zZW4uICBUaGUgY29sdW1ucyB0aGF0IGludGVyc2VjdCBWDQogICBhcmUgdGhlIG5v ZGVzIGluIHRoZSBncmFwaCwgYW5kIHRoZSByb3dzIHRoYXQgaGF2ZSBleGFjdGx5IDIgbm9uLXpl cm8NCiAgIGVudHJpZXMgaW4gViBhbmQgYXJlIG5vdCBIRFBDIHJvd3MgYXJlIHRoZSBlZGdlcyBv ZiB0aGUgZ3JhcGggdGhhdA0KICAgY29ubmVjdCB0aGUgdHdvIGNvbHVtbnMgKG5vZGVzKSBpbiB0 aGUgcG9zaXRpb25zIG9mIHRoZSB0d28gb25lcy4gIEENCiAgIGNvbXBvbmVudCBpbiB0aGlzIGdy YXBoIGlzIGEgbWF4aW1hbCBzZXQgb2Ygbm9kZXMgKGNvbHVtbnMpIGFuZCBlZGdlcw0KICAgKHJv d3MpIHN1Y2ggdGhhdCB0aGVyZSBpcyBhIHBhdGggYmV0d2VlbiBlYWNoIHBhaXIgb2Ygbm9kZXMv ZWRnZXMgaW4NCiAgIHRoZSBncmFwaC4gIFRoZSBzaXplIG9mIGEgY29tcG9uZW50IGlzIHRoZSBu dW1iZXIgb2Ygbm9kZXMgKGNvbHVtbnMpDQogICBpbiB0aGUgY29tcG9uZW50Lg0KDQoNCg0KDQpM dWJ5LCBldCBhbC4gICAgICAgICAgICAgRXhwaXJlcyBBdWd1c3QgMSwgMjAxMCAgICAgICAgICAg ICAgICBbUGFnZSAzNV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICAgIFJhcHRvckcgRkVD IFNjaGVtZSAgICAgICAgICAgICAgIEphbnVhcnkgMjAxMA0KDQoNCiAgIFRoZXJlIGFyZSBhdCBt b3N0IEwgc3RlcHMgaW4gdGhlIGZpcnN0IHBoYXNlLiAgVGhlIHBoYXNlIGVuZHMNCiAgIHN1Y2Nl c3NmdWxseSB3aGVuIGkgKyB1ID0gTCwgaS5lLiwgd2hlbiBWIGFuZCB0aGUgYWxsIHplcm9lcw0K ICAgc3VibWF0cml4IGFib3ZlIFYgaGF2ZSBkaXNhcHBlYXJlZCBhbmQgQSBjb25zaXN0cyBvZiBJ LCB0aGUgYWxsDQogICB6ZXJvZXMgc3VibWF0cml4IGJlbG93IEksIGFuZCBVLiBUaGUgcGhhc2Ug ZW5kcyB1bnN1Y2Nlc3NmdWxseSBpbg0KICAgZGVjb2RpbmcgZmFpbHVyZSBpZiBhdCBzb21lIHN0 ZXAgYmVmb3JlIFYgZGlzYXBwZWFycyB0aGVyZSBpcyBubyBub24tDQogICB6ZXJvIHJvdyBpbiBW IHRvIGNob29zZSBpbiB0aGF0IHN0ZXAuICBJbiBlYWNoIHN0ZXAsIGEgcm93IG9mIEEgaXMNCiAg IGNob3NlbiBhcyBmb2xsb3dzOg0KDQogICBvICBJZiBhbGwgZW50cmllcyBvZiBWIGFyZSB6ZXJv IHRoZW4gbm8gcm93IGlzIGNob3NlbiBhbmQgZGVjb2RpbmcNCiAgICAgIGZhaWxzLg0KDQogICBv ICBMZXQgciBiZSB0aGUgbWluaW11bSBpbnRlZ2VyIHN1Y2ggdGhhdCBhdCBsZWFzdCBvbmUgcm93 IG9mIEEgaGFzDQogICAgICBleGFjdGx5IHIgb25lcyBpbiBWLg0KDQogICAgICAqICBJZiByICE9 IDIgdGhlbiBjaG9vc2UgYSByb3cgd2l0aCBleGFjdGx5IHIgb25lcyBpbiBWIHdpdGgNCiAgICAg ICAgIG1pbmltdW0gb3JpZ2luYWwgZGVncmVlIGFtb25nIGFsbCBzdWNoIHJvd3MsIGV4Y2VwdCB0 aGF0IEhEUEMNCiAgICAgICAgIHJvd3Mgc2hvdWxkIG5vdCBiZSBjaG9zZW4gdW50aWwgYWxsIG5v bi1IRFBDIHJvd3MgaGF2ZSBiZWVuDQogICAgICAgICBwcm9jZXNzZWQuDQoNCiAgICAgICogIElm IHIgPSAyIHRoZW4gY2hvb3NlIGFueSByb3cgd2l0aCBleGFjdGx5IDIgb25lcyBpbiBWIHRoYXQg aXMNCiAgICAgICAgIHBhcnQgb2YgYSBtYXhpbXVtIHNpemUgY29tcG9uZW50IGluIHRoZSBncmFw aCBkZXNjcmliZWQgYWJvdmUNCiAgICAgICAgIHdoaWNoIGlzIGRlZmluZWQgYnkgVi4NCg0KICAg QWZ0ZXIgdGhlIHJvdyBpcyBjaG9zZW4gaW4gdGhpcyBzdGVwIHRoZSBmaXJzdCByb3cgb2YgQSB0 aGF0DQogICBpbnRlcnNlY3RzIFYgaXMgZXhjaGFuZ2VkIHdpdGggdGhlIGNob3NlbiByb3cgc28g dGhhdCB0aGUgY2hvc2VuIHJvdw0KICAgaXMgdGhlIGZpcnN0IHJvdyB0aGF0IGludGVyc2VjdHMg Vi4gVGhlIGNvbHVtbnMgb2YgQSBhbW9uZyB0aG9zZSB0aGF0DQogICBpbnRlcnNlY3QgViBhcmUg cmVvcmRlcmVkIHNvIHRoYXQgb25lIG9mIHRoZSByIG9uZXMgaW4gdGhlIGNob3NlbiByb3cNCiAg IGFwcGVhcnMgaW4gdGhlIGZpcnN0IGNvbHVtbiBvZiBWIGFuZCBzbyB0aGF0IHRoZSByZW1haW5p bmcgci0xIG9uZXMNCiAgIGFwcGVhciBpbiB0aGUgbGFzdCBjb2x1bW5zIG9mIFYuIFRoZSBzYW1l IHJvdyBhbmQgY29sdW1uIG9wZXJhdGlvbnMNCiAgIGFyZSBhbHNvIHBlcmZvcm1lZCBvbiB0aGUg bWF0cml4IFguIFRoZW4sIGFuIGFwcHJvcHJpYXRlIG11bHRpcGxlIG9mDQogICB0aGUgY2hvc2Vu IHJvdyBpcyBhZGRlZCB0byBhbGwgdGhlIG90aGVyIHJvd3Mgb2YgQSBiZWxvdyB0aGUgY2hvc2Vu DQogICByb3cgdGhhdCBoYXZlIGEgbm9uLXplcm8gZW50cnkgaW4gdGhlIGZpcnN0IGNvbHVtbiBv ZiBWLg0KICAgU3BlY2lmaWNhbGx5LCBpZiBhIHJvdyBiZWxvdyB0aGUgY2hvc2VuIHJvdyBoYXMg ZW50cnkgYmV0YSBpbiB0aGUNCiAgIGZpcnN0IGNvbHVtbiBvZiBWLCBhbmQgdGhlIGNob3NlbiBy b3cgaGFzIGVudHJ5IGFscGhhIGluIHRoZSBmaXJzdA0KICAgY29sdW1uIG9mIFYsIHRoZW4gYmV0 YS9hbHBoYSBtdWx0aXBsaWVkIGJ5IHRoZSBjaG9zZW4gcm93IGlzIGFkZGVkIHRvDQogICB0aGlz IHJvdyB0byBsZWF2ZSBhIHplcm8gdmFsdWUgaW4gdGhlIGZpcnN0IGNvbHVtbiBvZiBWLiBGaW5h bGx5LCBpDQogICBpcyBpbmNyZW1lbnRlZCBieSAxIGFuZCB1IGlzIGluY3JlbWVudGVkIGJ5IHIt MSwgd2hpY2ggY29tcGxldGVzIHRoZQ0KICAgc3RlcC4NCg0KICAgTm90ZSB0aGF0IGVmZmljaWVu Y3kgY2FuIGJlIGltcHJvdmVkIGlmIHRoZSByb3cgb3BlcmF0aW9ucyBpZGVudGlmaWVkDQogICBh Ym92ZSBhcmUgbm90IGFjdHVhbGx5IHBlcmZvcm1lZCB1bnRpbCB0aGUgYWZmZWN0ZWQgcm93IGlz IGl0c2VsZg0KICAgY2hvc2VuIGR1cmluZyB0aGUgZGVjb2RpbmcgcHJvY2Vzcy4gIFRoaXMgYXZv aWRzIHByb2Nlc3Npbmcgb2Ygcm93DQogICBvcGVyYXRpb25zIGZvciByb3dzIHdoaWNoIGFyZSBu b3QgZXZlbnR1YWxseSB1c2VkIGluIHRoZSBkZWNvZGluZw0KICAgcHJvY2VzcyBhbmQgaW4gcGFy dGljdWxhciBhdm9pZCB0aG9zZSByb3dzIGZvciB3aGljaCBiZXRhIT0xIHVudGlsDQogICB0aGV5 IGFyZSBhY3R1YWxseSByZXF1aXJlZC4gIEZ1cnRoZXJtb3JlLCB0aGUgcm93IG9wZXJhdGlvbnMg cmVxdWlyZWQNCiAgIGZvciB0aGUgSERQQyByb3dzIG1heSBiZSBwZXJmb3JtZWQgZm9yIGFsbCBz dWNoIHJvd3MgaW4gb25lIHByb2Nlc3MsDQogICBieSB1c2luZyB0aGUgYWxnb3JpdGhtIGRlc2Ny aWJlZCBpbiBTZWN0aW9uIDUuMy4zLjMuDQoNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAg ICBFeHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgIFtQYWdlIDM2XQ0KDA0KSW50 ZXJuZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAgICAg SmFudWFyeSAyMDEwDQoNCg0KNS40LjIuMy4gIFNlY29uZCBQaGFzZQ0KDQogICBBdCB0aGlzIHBv aW50LCBhbGwgdGhlIGVudHJpZXMgb2YgWCBvdXRzaWRlIHRoZSBmaXJzdCBpIHJvd3MgYW5kIGkN CiAgIGNvbHVtbnMgYXJlIGRpc2NhcmRlZCwgc28gdGhhdCBYIGhhcyBsb3dlciB0cmlhbmd1bGFy IGZvcm0uICBUaGUgbGFzdA0KICAgaSByb3dzIGFuZCBjb2x1bW5zIG9mIFggYXJlIGRpc2NhcmRl ZCwgc28gdGhhdCBYIG5vdyBoYXMgaSByb3dzIGkNCiAgIGNvbHVtbnMuICBUaGUgc3VibWF0cml4 IFUgaXMgZnVydGhlciBwYXJ0aXRpb25lZCBpbnRvIHRoZSBmaXJzdCBpDQogICByb3dzLCBVX3Vw cGVyLCBhbmQgdGhlIHJlbWFpbmluZyBNIC0gaSByb3dzLCBVbG93ZXIuICBHYXVzc2lhbg0KICAg ZWxpbWluYXRpb24gaXMgcGVyZm9ybWVkIGluIHRoZSBzZWNvbmQgcGhhc2Ugb24gVV9sb3dlciB0 byBlaXRoZXINCiAgIGRldGVybWluZSB0aGF0IGl0cyByYW5rIGlzIGxlc3MgdGhhbiB1IChkZWNv ZGluZyBmYWlsdXJlKSBvciB0bw0KICAgY29udmVydCBpdCBpbnRvIGEgbWF0cml4IHdoZXJlIHRo ZSBmaXJzdCB1IHJvd3MgaXMgdGhlIGlkZW50aXR5DQogICBtYXRyaXggKHN1Y2Nlc3Mgb2YgdGhl IHNlY29uZCBwaGFzZSkuICBDYWxsIHRoaXMgdSBieSB1IGlkZW50aXR5DQogICBtYXRyaXggSV91 LiAgVGhlIE0gLSBMIHJvd3Mgb2YgQSB0aGF0IGludGVyc2VjdCBVX2xvd2VyIC0gSV91IGFyZQ0K ICAgZGlzY2FyZGVkLiAgQWZ0ZXIgdGhpcyBwaGFzZSBBIGhhcyBMIHJvd3MgYW5kIEwgY29sdW1u cy4NCg0KNS40LjIuNC4gIFRoaXJkIFBoYXNlDQoNCiAgIEFmdGVyIHRoZSBzZWNvbmQgcGhhc2Ug dGhlIG9ubHkgcG9ydGlvbiBvZiBBIHdoaWNoIG5lZWRzIHRvIGJlIHplcm9lZA0KICAgb3V0IHRv IGZpbmlzaCBjb252ZXJ0aW5nIEEgaW50byB0aGUgTCBieSBMIGlkZW50aXR5IG1hdHJpeCBpcw0K ICAgVV91cHBlci4gIFRoZSBudW1iZXIgb2Ygcm93cyBpIG9mIHRoZSBzdWJtYXRyaXggVV91cHBl ciBpcyBnZW5lcmFsbHkNCiAgIG11Y2ggbGFyZ2VyIHRoYW4gdGhlIG51bWJlciBvZiBjb2x1bW5z IHUgb2YgVV91cHBlci4gIE1vcmVvdmVyLCBhdA0KICAgdGhpcyB0aW1lLCB0aGUgbWF0cml4IFVf dXBwZXIgaXMgdHlwaWNhbGx5IGRlbnNlLCBpLmUuLCB0aGUgbnVtYmVyIG9mDQogICBub256ZXJv IGVudHJpZXMgb2YgdGhpcyBtYXRyaXggaXMgbGFyZ2UuICBUbyByZWR1Y2UgdGhpcyBtYXRyaXgg dG8gYQ0KICAgc3BhcnNlIGZvcm0sIHRoZSBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIHBlcmZvcm1l ZCB0byBvYnRhaW4gdGhlDQogICBtYXRyaXggVV9sb3dlciBuZWVkcyB0byBiZSBpbnZlcnRlZC4g IFRvIHRoaXMgZW5kLCB0aGUgbWF0cml4IFggaXMNCiAgIG11bHRpcGxpZWQgd2l0aCB0aGUgc3Vi bWF0cml4IG9mIEEgY29uc2lzdGluZyBvZiB0aGUgZmlyc3QgaSByb3dzIG9mDQogICBBLiBBZnRl ciB0aGlzIG9wZXJhdGlvbiB0aGUgc3VibWF0cml4IG9mIEEgY29uc2lzdGluZyBvZiB0aGUNCiAg IGludGVyc2VjdGlvbiBvZiB0aGUgZmlyc3QgaSByb3dzIGFuZCBjb2x1bW5zIGVxdWFscyB0byBY LCB3aGVyZWFzIHRoZQ0KICAgbWF0cml4IFVfdXBwZXIgaXMgdHJhbnNmb3JtZWQgdG8gYSBzcGFy c2UgZm9ybS4NCg0KNS40LjIuNS4gIEZvdXJ0aCBQaGFzZQ0KDQogICBGb3IgZWFjaCBvZiB0aGUg Zmlyc3QgaSByb3dzIG9mIFVfdXBwZXIgZG8gdGhlIGZvbGxvd2luZzogaWYgdGhlIHJvdw0KICAg aGFzIGEgbm9uemVybyBlbnRyeSBhdCBwb3NpdGlvbiBqLCBhbmQgaWYgdGhlIHZhbHVlIG9mIHRo YXQgbm9uemVybw0KICAgZW50cnkgaXMgYiwgdGhlbiBhZGQgdG8gdGhpcyByb3cgYiB0aW1lcyBy b3cgaiBvZiBJX3UuICBBZnRlciB0aGlzDQogICBzdGVwLCB0aGUgc3VibWF0cml4IG9mIEEgY29u c2lzdGluZyBvZiB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSBmaXJzdA0KICAgaSByb3dzIGFuZCBj b2x1bW5zIGlzIGVxdWFsIHRvIFgsIHRoZSBzdWJtYXRyaXggVV91cHBlciBjb25zaXN0cyBvZg0K ICAgemVyb3MsIHRoZSBzdWJtYXRyaXggY29uc2lzdGluZyBvZiB0aGUgaW50ZXJzZWN0aW9uIG9m IHRoZSBsYXN0IHUNCiAgIHJvd3MgYW5kIHRoZSBmaXJzdCBpIGNvbHVtbnMgY29uc2lzdHMgb2Yg emVyb3MsIGFuZCB0aGUgc3VibWF0cml4DQogICBjb25zaXN0aW5nIG9mIHRoZSBsYXN0IHUgcm93 cyBhbmQgY29sdW1ucyBpcyBpcyB0aGUgbWF0cml4IElfdS4NCg0KNS40LjIuNi4gIEZpZnRoIFBo YXNlDQoNCiAgIEZvciBqIGZyb20gMSB0byBpIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBvcGVyYXRp b25zOg0KDQogICAxLiAgaWYgQVtqLGpdIGlzIG5vdCBvbmUsIHRoZW4gZGl2aWRlIHJvdyBqIG9m IEEgYnkgQVtqLGpdLg0KDQogICAyLiAgRm9yIGwgZnJvbSAxIHRvIGotMSwgaWYgQVtqLGxdIGlz IG5vbnplcm8sIHRoZW4gYWRkIEFbaixsXQ0KICAgICAgIG11bHRpcGxpZWQgd2l0aCByb3cgbCBv ZiBBIHRvIHJvdyBqIG9mIEEuDQoNCg0KDQpMdWJ5LCBldCBhbC4gICAgICAgICAgICAgRXhwaXJl cyBBdWd1c3QgMSwgMjAxMCAgICAgICAgICAgICAgICBbUGFnZSAzN10NCgwNCkludGVybmV0LURy YWZ0ICAgICAgICAgICAgIFJhcHRvckcgRkVDIFNjaGVtZSAgICAgICAgICAgICAgIEphbnVhcnkg MjAxMA0KDQoNCiAgIEFmdGVyIHRoaXMgcGhhc2UgQSBpcyB0aGUgTCBieSBMIGlkZW50aXR5IG1h dHJpeCBhbmQgYSBjb21wbGV0ZQ0KICAgZGVjb2Rpbmcgc2NoZWR1bGUgaGFzIGJlZW4gc3VjY2Vz c2Z1bGx5IGZvcm1lZC4gIFRoZW4sIHRoZQ0KICAgY29ycmVzcG9uZGluZyBkZWNvZGluZyBjb25z aXN0aW5nIG9mIGV4Y2x1c2l2ZS1PUmluZyBrbm93biBlbmNvZGluZw0KICAgc3ltYm9scyBjYW4g YmUgZXhlY3V0ZWQgdG8gcmVjb3ZlciB0aGUgaW50ZXJtZWRpYXRlIHN5bWJvbHMgYmFzZWQgb24N CiAgIHRoZSBkZWNvZGluZyBzY2hlZHVsZS4gIFRoZSB0dXBsZXMgYXNzb2NpYXRlZCB3aXRoIGFs bCBzb3VyY2Ugc3ltYm9scw0KICAgYXJlIGNvbXB1dGVkIGFjY29yZGluZyB0byBTZWN0aW9uIDUu My4zLjIuICBUaGUgdHVwbGVzIGZvciByZWNlaXZlZA0KICAgc291cmNlIHN5bWJvbHMgYXJlIHVz ZWQgaW4gdGhlIGRlY29kaW5nLiAgVGhlIHR1cGxlcyBmb3IgbWlzc2luZw0KICAgc291cmNlIHN5 bWJvbHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIGludGVybWVkaWF0ZSBzeW1ib2xzIG5l ZWQNCiAgIHRvIGJlIGV4Y2x1c2l2ZS1PUmVkIHRvIHJlY292ZXIgdGhlIG1pc3Npbmcgc291cmNl IHN5bWJvbHMuDQoNCjUuNS4gIFJhbmRvbSBOdW1iZXJzDQoNCiAgIFRoZSBmb3VyIHRhYmxlcyBW MCwgVjEsIFYyIGFuZCBWMyBkZXNjcmliZWQgaW4gU2VjdGlvbiA1LjMuNS4xIGFyZQ0KICAgZ2l2 ZW4gYmVsb3cuICBFYWNoIGVudHJ5IGlzIGEgMzItYml0IGludGVnZXIgaW4gZGVjaW1hbA0KICAg cmVwcmVzZW50YXRpb24uDQoNCjUuNS4xLiAgVGhlIHRhYmxlIFYwDQoNCiAgIDI1MTI5MTEzNiwg Mzk1MjIzMTYzMSwgMzM3MDk1ODYyOCwgNDA3MDE2NzkzNiwgMTIzNjMxNDk1LCAzMzUxMTEwMjgz LA0KICAgMzIxODY3NjQyNSwgMjAxMTY0MjI5MSwgNzc0NjAzMjE4LCAyNDAyODA1MDYxLCAxMDA0 MzY2OTMwLA0KICAgMTg0Mzk0ODIwOSwgNDI4ODkxMTMyLCAzNzQ2MzMxOTg0LCAxNTkxMjU4MDA4 LCAzMDY3MDE2NTA3LA0KICAgMTQzMzM4ODczNSwgNTA0MDA1NDk4LCAyMDMyNjU3OTMzLCAzNDE5 MzE5Nzg0LCAyODA1Njg2MjQ2LA0KICAgMzEwMjQzNjk4NiwgMzgwODY3MTE1NCwgMjUwMTU4MjA3 NSwgMzk3ODk0NDQyMSwgMjQ2MDQzOTQ5LA0KICAgNDAxNjg5ODM2MywgNjQ5NzQzNjA4LCAxOTc0 OTg3NTA4LCAyNjUxMjczNzY2LCAyMzU3OTU2ODAxLCA2ODk2MDUxMTIsDQogICA3MTU4MDcxNzIs IDI3MjI3MzYxMzQsIDE5MTkzOTE4OCwgMzUzNTUyMDE0NywgMzI3NzAxOTU2OSwgMTQ3MDQzNTk0 MSwNCiAgIDM3NjMxMDE3MDIsIDMyMzI0MDk2MzEsIDEyMjcwMTE2MywgMzkyMDg1MjY5MywgNzgy MjQ2OTQ3LCAzNzIxMjEzMTAsDQogICAyOTk1NjA0MzQxLCAyMDQ1Njk4NTc1LCAyMzMyOTYyMTAy LCA0MDA1MzY4NzQzLCAyMTg1OTYzNDcsDQogICAzNDE1MzgxOTY3LCA0MjA3NjEyODA2LCA4NjEx MTc2NzEsIDM2NzY1NzUyODUsIDI1ODE2NzE5NDQsDQogICAzMzEyMjIwNDgwLCA2ODEyMzI0MTks IDMwNzMwNjg2NiwgNDExMjUwMzk0MCwgMTE1ODExMTUwMiwgNzA5MjI3ODAyLA0KICAgMjcyNDE0 MDQzMywgNDIwMTEwMTExNSwgNDIxNTk3MDI4OSwgNDA0ODg3NjUxNSwgMzAzMTY2MTA2MSwNCiAg IDE5MDkwODU1MjIsIDUxMDk4NTAzMywgMTM2MTY4MjgxMCwgMTI5MjQzMzc5LCAzMTQyMzc5NTg3 LCAyNTY5ODQyNDgzLA0KICAgMzAzMzI2ODI3MCwgMTY1ODExODAwNiwgOTMyMTA5MzU4LCAxOTgy MjkwMDQ1LCAyOTgzMDgyNzcxLA0KICAgMzAwNzY3MDgxOCwgMzQ0ODEwNDc2OCwgNjgzNzQ5Njk4 LCA3NzgyOTY3NzcsIDEzOTkxMjUxMDEsIDE5Mzk0MDM3MDgsDQogICAxNjkyMTc2MDAzLCAzODY4 Mjk5MjAwLCAxNDIyNDc2NjU4LCA1OTMwOTM2NTgsIDE4Nzg5NzM4NjUsDQogICAyNTI2MjkyOTQ5 LCAxNTkxNjAyODI3LCAzOTg2MTU4ODU0LCAzOTY0Mzg5NTIxLCAyNjk1MDMxMDM5LA0KICAgMTk0 MjA1MDE1NSwgNDI0NjE4Mzk5LCAxMzQ3MjA0MjkxLCAyNjY5MTc5NzE2LCAyNDM0NDI1ODc0LA0K ICAgMjU0MDgwMTk0NywgMTM4NDA2OTc3NiwgNDEyMzU4MDQ0MywgMTUyMzY3MDIxOCwgMjcwODQ3 NTI5NywNCiAgIDEwNDY3NzEwODksIDIyMjk3OTYwMTYsIDEyNTU0MjY2MTIsIDQyMTM2NjMwODks IDE1MjEzMzk1NDcsDQogICAzMDQxODQzNDg5LCA0MjAxMzA0OTQsIDEwNjc3MDkxLCA1MTU2MjMx NzYsIDM0NTc1MDI3MDIsIDIxMTU4MjEyNzQsDQogICAyNzIwMTI0NzY2LCAzMjQyNTc2MDkwLCA4 NTQzMTAxMDgsIDQyNTk3Mzk4NywgMzI1ODMyMzgyLCAxNzk2ODUxMjkyLA0KICAgMjQ2Mjc0NDQx MSwgMTk3NjY4MTY5MCwgMTQwODY3MTY2NSwgMTIyODgxNzgwOCwgMzkxNzIxMDAwMywNCiAgIDI2 Mzk3NjY0NSwgMjU5MzczNjQ3MywgMjQ3MTY1MTI2OSwgNDI5MTM1MzkxOSwgNjUwNzkyOTQwLCAx MTkxNTgzODgzLA0KICAgMzA0NjU2MTMzNSwgMjQ2NjUzMDQzNSwgMjU0NTk4MzA4MiwgOTY5MTY4 NDM2LCAyMDE5MzQ4NzkyLA0KICAgMjI2ODA3NTUyMSwgMTE2OTM0NTA2OCwgMzI1MDI0MDAwOSwg Mzk2MzQ5OTY4MSwgMjU2MDc1NTExMywNCiAgIDkxMTE4MjM5NiwgNzYwODQyNDA5LCAzNTY5MzA4 NjkzLCAyNjg3MjQzNTUzLCAzODE4NTQ2NjUsIDI2MTM4Mjg0MDQsDQogICAyNzYxMDc4ODY2LCAx NDU2NjY4MTExLCA4ODM3NjAwOTEsIDMyOTQ5NTE2NzgsIDE2MDQ1OTg1NzUsDQogICAxOTg1MzA4 MTk4LCAxMDE0NTcwNTQzLCAyNzI0OTU5NjA3LCAzMDYyNTE4MDM1LCAzMTE1MjkzMDUzLA0KICAg MTM4ODUzNjgwLCA0MTYwMzk4Mjg1LCAzMzIyMjQxMTMwLCAyMDY4OTgzNTcwLCAyMjQ3NDkxMDc4 LA0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAgICAgICAgIEV4cGlyZXMgQXVndXN0IDEsIDIwMTAg ICAgICAgICAgICAgICAgW1BhZ2UgMzhdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICBS YXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAgICAgICBKYW51YXJ5IDIwMTANCg0KDQogICAzNjY5 NTI0NDEwLCAxNTc1MTQ2NjA3LCA4MjgwMjk4NjQsIDM3MzIwMDEzNzEsIDM0MjIwMjY0NTIsDQog ICAzMzcwOTU0MTc3LCA0MDA2NjI2OTE1LCA1NDM4MTIyMjAsIDEyNDMxMTYxNzEsIDM5MjgzNzI1 MTQsDQogICAyNzkxNDQzNDQ1LCA0MDgxMzI1MjcyLCAyMjgwNDM1NjA1LCA4ODU2MTYwNzMsIDYx NjQ1MjA5NywgMzE4ODg2MzQzNiwNCiAgIDI3ODAzODIzMTAsIDIzNDAwMTQ4MzEsIDEyMDg0Mzk1 NzYsIDI1ODM1NjMwOSwgMzgzNzk2MzIwMCwNCiAgIDIwNzUwMDk0NTAsIDMyMTQxODEyMTIsIDMz MDM4ODIxNDIsIDg4MDgxMzI1MiwgMTM1NTU3NTcxNywgMjA3MjMxNDg0LA0KICAgMjQyMDgwMzE4 NCwgMzU4OTIzMzY4LCAxNjE3NTU3NzY4LCAzMjcyMTYxOTU4LCAxNzcxMTU0MTQ3LA0KICAgMjg0 MjEwNjM2MiwgMTc1MTIwOTIwOCwgMTQyMTAzMDc5MCwgNjU4MzE2NjgxLCAxOTQwNjU4MzksIDMy NDE1MTA1ODEsDQogICAzODYyNTI2MCwgMzAxODc1Mzk1LCA0MTc2MTQxNzM5LCAyOTczMTI5MzAs IDIxMzc4MDIxMTMsIDE1MDI5ODQyMDUsDQogICAzNjY5Mzc2NjIyLCAzNzI4NDc3MDM2LCAyMzQ2 NTI5MzAsIDIyMTM1ODk4OTcsIDI3MzQ2Mzg5MzIsDQogICAxMTI5NzIxNDc4LCAzMTg3NDIyODE1 LCAyODU5MTc4NjExLCAzMjg0MzA4NDExLCAzODE5NzkyNzAwLA0KICAgMzU1NzUyNjczMywgNDUx ODc0NDc2LCAxNzQwNTc2MDgxLCAzNTkyODM4NzAxLCAxNzA5NDI5NTEzLA0KICAgMzcwMjkxODM3 OSwgMzUzMzM1MTMyOCwgMTY0MTY2MDc0NSwgMTc5MzUwMjU4LCAyMzgwNTIwMTEyLA0KICAgMzkz NjE2MzkwNCwgMzY4NTI1NjIwNCwgMzE1NjI1MjIxNiwgMTg1NDI1ODkwMSwgMjg2MTY0MTAxOSwN CiAgIDMxNzY2MTEyOTgsIDgzNDc4NzU1NCwgMzMxMzUzODA3LCA1MTc4NTgxMDMsIDMwMTAxNjg4 ODQsIDQwMTI2NDIwMDEsDQogICAyMjE3MTg4MDc1LCAzNzU2OTQzMTM3LCAzMDc3ODgyNTkwLCAy MDU0OTk1MTk5LCAzMDgxNDQzMTI5LA0KICAgMzg5NTM5ODgxMiwgMTE0MTA5NzU0MywgMjM3NjI2 MTA1MywgMjYyNjg5ODI1NSwgMjU1NDcwMzA3NiwNCiAgIDQwMTIzMzc4OSwgMTQ2MDA0OTkyMiwg Njc4MDgzOTUyLCAxMDY0OTkwNzM3LCA5NDA5MDk3ODQsIDE2NzMzOTY3ODAsDQogICA1Mjg4ODE3 ODMsIDE3MTI1NDc0NDYsIDM2Mjk2ODU2NTIsIDEzNTgzMDc1MTENCg0KNS41LjIuICBUaGUgdGFi bGUgVjENCg0KICAgODA3Mzg1NDEzLCAyMDQzMDczMjIzLCAzMzM2NzQ5Nzk2LCAxMzAyMTA1ODMz LCAyMjc4NjA3OTMxLCA1NDEwMTUwMjAsDQogICAxNjg0NTY0MjcwLCAzNzI3MDkzMzQsIDM1MDgy NTIxMjUsIDE3NjgzNDYwMDUsIDEyNzA0NTEyOTIsDQogICAyNjAzMDI5NTM0LCAyMDQ5Mzg3Mjcz LCAzODkxNDI0ODU5LCAyMTUyOTQ4MzQ1LCA0MTE0NzYwMjczLA0KICAgOTE1MTgwMzEwLCAzNzU0 Nzg3OTk4LCA3MDA1MDM4MjYsIDIxMzE1NTkzMDUsIDEzMDg5MDg2MzAsIDIyNDQzNzM1MCwNCiAg IDQwNjU0MjQwMDcsIDM2Mzg2NjU5NDQsIDE2NzkzODU0OTYsIDM0MzEzNDUyMjYsIDE3Nzk1OTU2 NjUsDQogICAzMDY4NDk0MjM4LCAxNDI0MDYyNzczLCAxMDMzNDQ4NDY0LCA0MDUwMzk2ODUzLCAz MzAyMjM1MDU3LA0KICAgNDIwNjAwMzczLCAyODY4NDQ2MjQzLCAzMTE2ODkzODYsIDI1OTA0Nzk1 OSwgNDA1NzE4MDkwOSwgMTU3NTM2NzI0OCwNCiAgIDQxNTEyMTQxNTMsIDExMDI0OTc4NCwgMzAw Njg2NTkyMSwgNDI5MzcxMDYxMywgMzUwMTI1NjU3MiwgOTk4MDA3NDgzLA0KICAgNDk5Mjg4Mjk1 LCAxMjA1NzEwNzEwLCAyOTk3MTk5NDg5LCA2NDA0MTc0MjksIDMwNDQxOTQ3MTEsIDQ4NjY5MDc1 MSwNCiAgIDI2ODY2NDA3MzQsIDIzOTQ1MjYyMDksIDI1MjE2NjAwNzcsIDQ5OTkzOTg3LCAzODQz ODg1ODY3LCA0MjAxMTA2NjY4LA0KICAgNDE1OTA2MTk4LCAxOTI5Njg0MSwgMjQwMjQ4ODQwNywg MjEzNzExOTEzNCwgMTc0NDA5NzI4NCwgNTc5OTY1NjM3LA0KICAgMjAzNzY2MjYzMiwgODUyMTcz NjEwLCAyNjgxNDAzNzEzLCAxMDQ3MTQ0ODMwLCAyOTgyMTczOTM2LCA5MTAyODUwMzgsDQogICA0 MTg3NTc2NTIwLCAyNTg5ODcwMDQ4LCA5ODk0NDg4ODcsIDMyOTI3NTgwMjQsIDUwNjMyMjcxOSwg MTc2MDEwNzM4LA0KICAgMTg2NTQ3MTk2OCwgMjYxOTMyNDcxMiwgNTY0ODI5NDQyLCAxOTk2ODcw MzI1LCAzMzk2OTc1OTMsIDQwNzEwNzI5NDgsDQogICAzNjE4OTY2MzM2LCAyMTExMzIwMTI2LCAx MDkzOTU1MTUzLCA5NTc5Nzg2OTYsIDg5MjAxMDU2MCwgMTg1NDYwMTA3OCwNCiAgIDE4NzM0MDc1 MjcsIDI0OTg1NDQ2OTUsIDI2OTQxNTYyNTksIDE5MjczMzk2ODIsIDE2NTA1NTU3MjksDQogICAx ODM5MzMwNDcsIDMwNjE0NDQzMzcsIDIwNjczODcyMDQsIDIyODk2MjU2NCwgMzkwNDEwOTQxNCwg MTU5NTk5NTQzMywNCiAgIDE3ODA3MDEzNzIsIDI0NjMxNDU5NjMsIDMwNzI4MTQ2MywgMzIzNzky OTk5MSwgMzg1Mjk5NTIzOSwNCiAgIDIzOTg2OTM1MTAsIDM3NTQxMzg2NjQsIDUyMjA3NDEyNywg MTQ2MzUyNDc0LCA0MTA0OTE1MjU2LCAzMDI5NDE1ODg0LA0KICAgMzU0NTY2Nzk4MywgMzMyMDM4 OTEwLCA5NzY2MjgyNjksIDMxMjM0OTI0MjMsIDMwNDE0MTgzNzIsIDIyNTgwNTkyOTgsDQogICAy MTM5Mzc3MjA0LCAzMjQzNjQyOTczLCAzMjI2MjQ3OTE3LCAzNjc0MDA0NjM2LCAyNjk4OTkyMTg5 LA0KICAgMzQ1Mzg0MzU3NCwgMTk2MzIxNjY2NiwgMzUwOTg1NTAwNSwgMjM1ODQ4MTg1OCwgNzQ3 MzMxMjQ4LA0KICAgMTk1NzM0ODY3NiwgMTA5NzU3NDQ1MCwgMjQzNTY5NzIxNCwgMzg3MDk3MjE0 NSwgMTg4ODgzMzg5MywNCiAgIDI5MTQwODU1MjUsIDQxNjEzMTU1ODQsIDEyNzMxMTMzNDMsIDMy Njk2NDQ4MjgsIDM2ODEyOTM4MTYsDQogICA0MTI1MzY2ODQsIDExNTYwMzQwNzcsIDM4MjMwMjY0 NDIsIDEwNjY5NzEwMTcsIDM1OTgzMzAyOTMsDQogICAxOTc5MjczOTM3LCAyMDc5MDI5ODk1LCAx MTk1MDQ1OTA5LCAxMDcxOTg2NDIxLCAyNzEyODIxNTE1LA0KICAgMzM3Nzc1NDU5NSwgMjE4NDE1 MTA5NSwgNzUwOTE4ODY0LCAyNTg1NzI5ODc5LCA0MjQ5ODk1NzEyLA0KDQoNCg0KTHVieSwgZXQg YWwuICAgICAgICAgICAgIEV4cGlyZXMgQXVndXN0IDEsIDIwMTAgICAgICAgICAgICAgICAgW1Bh Z2UgMzldDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICBSYXB0b3JHIEZFQyBTY2hlbWUg ICAgICAgICAgICAgICBKYW51YXJ5IDIwMTANCg0KDQogICAxODMyNTc5MzY3LCAxMTkyMjQwMTky LCA5NDY3MzQzNjYsIDMxMjMwNjg4LCAzMTc0Mzk5MDgzLCAzNTQ5Mzc1NzI4LA0KICAgMTY0MjQz MDE4NCwgMTkwNDg1NzU1NCwgODYxODc3NDA0LCAzMjc3ODI1NTg0LCA0MjY3MDc0NzE4LA0KICAg MzEyMjg2MDU0OSwgNjY2NDIzNTgxLCA2NDQxODkxMjYsIDIyNjQ3NTM5NSwgMzA3Nzg5NDE1LCAx MTk2MTA1NjMxLA0KICAgMzE5MTY5MTgzOSwgNzgyODUyNjY5LCAxNjA4NTA3ODEzLCAxODQ3Njg1 OTAwLCA0MDY5NzY2ODc2LA0KICAgMzkzMTU0ODY0MSwgMjUyNjQ3MTAxMSwgNzY2ODY1MTM5LCAy MTE1MDg0Mjg4LCA0MjU5NDExMzc2LA0KICAgMzMyMzY4MzQzNiwgNTY4NTEyMTc3LCAzNzM2NjAx NDE5LCAxODAwMjc2ODk4LCA0MDEyNDU4Mzk1LCAxODIzOTgyLA0KICAgMjc5ODAxOTgsIDIwMjM4 Mzk5NjYsIDg2OTUwNTA5NiwgNDMxMTYxNTA2LCAxMDI0ODA0MDIzLCAxODUzODY5MzA3LA0KICAg MzM5MzUzNzk4MywgMTUwMDcwMzYxNCwgMzAxOTQ3MTU2MCwgMTM1MTA4Njk1NSwgMzA5NjkzMzYz MSwNCiAgIDMwMzQ2MzQ5ODgsIDI1NDQ1OTgwMDYsIDEyMzA5NDI1NTEsIDMzNjIyMzA3OTgsIDE1 OTk4NDc5MywgNDkxNTkwMzczLA0KICAgMzk5Mzg3Mjg4NiwgMzY4MTg1NTYyMiwgOTAzNTkzNTQ3 LCAzNTM1MDYyNDcyLCAxNzk5ODAzMjE3LCA3NzI5ODQxNDksDQogICA4OTU4NjMxMTIsIDE4OTkw MzYyNzUsIDQxODczMjIxMDAsIDEwMTg1NjA0OCwgMjM0NjUwMzE1LCAzMTgzMTI1NjE3LA0KICAg MzE5MDAzOTY5MiwgNTI1NTg0MzU3LCAxMjg2ODM0NDg5LCA0NTU4MTAzNzQsIDE4NjkxODE1NzUs IDkyMjY3MzkzOCwNCiAgIDM4Nzc0MzAxMDIsIDM0MjIzOTE5MzgsIDE0MTQzNDcyOTUsIDE5NzEw NTQ2MDgsIDMwNjE3OTgwNTQsDQogICA4MzA1NTUwOTYsIDI4MjI5MDUxNDEsIDE2NzAzMzE5MCwg MTA3OTEzOTQyOCwgNDIxMDEyNjcyMywgMzU5Mzc5NzgwNCwNCiAgIDQyOTE5Mjg5MCwgMzcyMDkz OTUwLCAxNzc5MTg3NzcwLCAzMzEyMTg5Mjg3LCAyMDQzNDkzNDgsIDQ1MjQyMTU2OCwNCiAgIDI4 MDA1NDA0NjIsIDM3MzMxMDkwNDQsIDEyMzUwODI0MjMsIDE3NjUzMTk1NTYsIDMxNzQ3Mjk3ODAs DQogICAzNzYyOTk0NDc1LCAzMTcxOTYyNDg4LCA0NDIxNjA4MjYsIDE5ODM0OTYyMiwgNDU5NDI2 MzcsIDEzMjQwODYzMTEsDQogICAyOTAxODY4NTk5LCA2Nzg4NjAwNDAsIDM4MTIyMjkxMDcsIDE5 OTM2ODIxLCAxMTE5NTkwMTQxLCAzNjQwMTIxNjgyLA0KICAgMzU0NTkzMTAzMiwgMjEwMjk0OTE0 MiwgMjgyODIwODU5OCwgMzYwMzM3ODAyMywgNDEzNTA0ODg5Ng0KDQo1LjUuMy4gIFRoZSB0YWJs ZSBWMg0KDQogICAxNjI5ODI5ODkyLCAyODI1NDAxNzYsIDI3OTQ1ODM3MTAsIDQ5NjUwNDc5OCwg Mjk5MDQ5NDQyNiwgMzA3MDcwMTg1MSwNCiAgIDI1NzU5NjMxODMsIDQwOTQ4MjM5NzIsIDI3NzU3 MjM2NTAsIDQwNzk0ODA0MTYsIDE3NjAyODcyNSwNCiAgIDIyNDYyNDE0MjMsIDM3MzIyMTc2NDcs IDIxOTY4NDMwNzUsIDEzMDY5NDkyNzgsIDQxNzA5OTI3ODAsDQogICA0MDM5MzQ1ODA5LCAzMjA5 NjY0MjY5LCAzMzg3NDk5NTMzLCAyOTMwNjMyMjksIDM2NjAyOTA1MDMsDQogICAyNjQ4NDQwODYw LCAyNTMxNDA2NTM5LCAzNTM3ODc5NDEyLCA3NzMzNzQ3MzksIDQxODQ2OTE4NTMsDQogICAxODA0 MjA3ODIxLCAzMzQ3MTI2NjQzLCAzNDc5Mzc3MTAzLCAzOTcwNTE1Nzc0LCAxODkxNzMxMjk4LA0K ICAgMjM2ODAwMzg0MiwgMzUzNzU4ODMwNywgMjk2OTE1ODQxMCwgNDIzMDc0NTI2MiwgODMxOTA2 MzE5LA0KICAgMjkzNTgzODEzMSwgMjY0MDI5NDY4LCAxMjA4NTI3MzksIDMyMDAzMjY0NjAsIDM1 NTQ0NTI3MSwgMjI5NjMwNTE0MSwNCiAgIDE1NjYyOTYwNDAsIDE3NjAxMjcwNTYsIDIwMDczODkz LCAzNDI3MTAzNjIwLCAyODY2OTc5NzYwLCAyMzU5MDc1OTU3LA0KICAgMjAyNTMxNDI5MSwgMTcy NTY5NjczNCwgMzM0NjA4NzQwNiwgMjY5MDc1NjUyNywgOTk4MTUxNTYsIDQyNDg1MTk5NzcsDQog ICAyMjUzNzYyNjQyLCAzMjc0MTQ0NTE4LCA1OTgwMjQ1NjgsIDMyOTk2NzI0MzUsIDU1NjU3OTM0 NiwgNDEyMTA0MTg1NiwNCiAgIDI4OTY5NDg5NzUsIDM2MjAxMjM0OTIsIDkxODQ1MzYyOSwgMzI0 OTQ2MTE5OCwgMjIzMTQxNDk1OCwNCiAgIDM4MDMyNzIyODcsIDM2NTc1OTc5NDYsIDI1ODg5MTEz ODksIDI0MjI2MjI3NCwgMTcyNTAwNzQ3NSwNCiAgIDIwMjY0Mjc3MTgsIDQ2Nzc2NDg0LCAyODcz MjgxNDAzLCAyOTE5Mjc1ODQ2LCAzMTc3OTMzMDUxLCAxOTE4ODU5MTYwLA0KICAgMjUxNzg1NDUz NywgMTg1NzgxODUxMSwgMzIzNDI2MjA1MCwgNDc5MzUzNjg3LCAyMDAyMDEzMDgsIDI4MDE5NDU4 NDEsDQogICAxNjIxNzE1NzY5LCA0ODM5NzcxNTksIDQyMzUwMjMyNSwgMzY4OTM5NjA2NCwgMTg1 MDE2ODM5NywgMzM1OTk1OTQxNiwNCiAgIDM0NTk4MzE5MzAsIDg0MTQ4ODY5OSwgMzU3MDUwNjA5 NSwgOTMwMjY3NDIwLCAxNTY0NTIwODQxLCAyNTA1MTIyNzk3LA0KICAgNTkzODI0MTA3LCAxMTE2 NTcyMDgwLCA4MTkxNzkxODQsIDMxMzkxMjM2MjksIDE0MTQzMzkzMzYsIDEwNzYzNjA3OTUsDQog ICA1MTI0MDM4NDUsIDE3Nzc1OTI1NiwgMTcwMTA2MDY2NiwgMjIzOTczNjQxOSwgNTE1MTc5MzAy LCAyOTM1MDEyNzI3LA0KICAgMzgyMTM1NzYxMiwgMTM3NjUyMDg1MSwgMjcwMDc0NTI3MSwgOTY2 ODUzNjQ3LCAxMDQxODYyMjIzLCA3MTU4NjA1NTMsDQogICAxNzE1OTI5NjEsIDE2MDcwNDQyNTcs IDEyMjcyMzY2ODgsIDM2NDcxMzYzNTgsIDE0MTc1NTkxNDEsDQogICA0MDg3MDY3NTUxLCAyMjQx NzA1ODgwLCA0MTk0MTM2Mjg4LCAxNDM5MDQxOTM0LCAyMDQ2NDQzMCwgMTE5NjY4MTUxLA0KICAg MjAyMTI1NzIzMiwgMjU1MTI2MjY5NCwgMTM4MTUzOTA1OCwgNDA4MjgzOTAzNSwgNDk4MTc5MDY5 LCAzMTE1MDg0OTksDQogICAzNTgwOTA4NjM3LCAyODg5MTQ5NjcxLCAxNDI3MTk4MTQsIDEyMzIx ODQ3NTQsIDMzNTY2NjI1ODIsDQogICAyOTczNzc1NjIzLCAxNDY5ODk3MDg0LCAxNzI4MjA1MzA0 LCAxNDE1NzkzNjEzLCA1MDExMTAwMywgMzEzMzQxMzM1OSwNCiAgIDQwNzQxMTUyNzUsIDI3MTA1 NDA2MTEsIDI3MDAwODMwNzAsIDI0NTc3NTc2NjMsIDI2MTI4NDUzMzAsDQoNCg0KDQpMdWJ5LCBl dCBhbC4gICAgICAgICAgICAgRXhwaXJlcyBBdWd1c3QgMSwgMjAxMCAgICAgICAgICAgICAgICBb UGFnZSA0MF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICAgIFJhcHRvckcgRkVDIFNjaGVt ZSAgICAgICAgICAgICAgIEphbnVhcnkgMjAxMA0KDQoNCiAgIDM3NzU5NDM3NTUsIDI0NjkzMDky NjAsIDI1NjAxNDI3NTMsIDMwMjA5OTYzNjksIDE2OTE2Njc3MTEsDQogICA0MjE5NjAyNzc2LCAx Njg3NjcyMTY4LCAxMDE3OTIxNjIyLCAyMzA3NjQyMzIxLCAzNjg3MTE0NjAsDQogICAzMjgyOTI1 OTg4LCAyMTMyMDgwMjksIDQxNTA3NTc0ODksIDM0NDMyMTE5NDQsIDI4NDYxMDE5NzIsDQogICA0 MTA2ODI2Njg0LCA0MjcyNDM4Njc1LCAyMTk5NDE2NDY4LCAzNzEwNjIxMjgxLCA0OTc1NjQ5NzEs IDI4NTEzODI3NiwNCiAgIDc2NTA0MjMxMywgOTE2MjIwODc3LCAzNDAyNjIzNjA3LCAyNzY4Nzg0 NjIxLCAxNzIyODQ5MDk3LCAzMzg2Mzk3NDQyLA0KICAgNDg3OTIwMDYxLCAzNTY5MDI3MDA3LCAz NDI0NTQ0MTk2LCAyMTc3ODE5NzMsIDIzNTY5Mzg1MTksIDMyNTI0Mjk0MTQsDQogICAxNDUxMDk3 NTAsIDI2OTI1ODgxMDYsIDI0NTQ3NDcxMzUsIDEyOTk0OTMzNTQsIDQxMjAyNDE4ODcsDQogICAy MDg4OTE3MDk0LCA5MzIzMDQzMjksIDE0NDI2MDkyMDMsIDk1MjU4Njk3NCwgMzUwOTE4Njc1MCwg NzUzMzY5MDU0LA0KICAgODU0NDIxMDA2LCAxOTU0MDQ2Mzg4LCAyNzA4OTI3ODgyLCA0MDQ3NTM5 MjMwLCAzMDQ4OTI1OTk2LA0KICAgMTY2NzUwNTgwOSwgODA1MTY2NDQxLCAxMTgyMDY5MDg4LCA0 MjY1NTQ2MjY4LCA0MjE1MDI5NTI3LA0KICAgMzM3NDc0ODk1OSwgMzczNTMyNjY2LCAyNDU0MjQz MDkwLCAyMzcxNTMwNDkzLCAzNjUxMDg3NTIxLA0KICAgMjYxOTg3ODE1MywgMTY1MTgwOTUxOCwg MTU1MzY0Njg5MywgMTIyNzQ1Mjg0MiwgNzAzODg3NTEyLA0KICAgMzY5NjY3NDE2MywgMjU1MjUw NzYwMywgMjYzNTkxMjkwMSwgODk1MTMwNDg0LCAzMjg3NzgyMjQ0LA0KICAgMzA5ODk3MzUwMiwg OTkwMDc4Nzc0LCAzNzgwMzI2NTA2LCAyMjkwODQ1MjAzLCA0MTcyOTQyOCwgMTk0OTU4MDg2MCwN CiAgIDIyODM5NTk4MDUsIDEwMzY5NDYxNzAsIDE2OTQ4ODc1MjMsIDQ4ODA2OTYsIDQ2NjAwMDE5 OCwgMjc2NTM1NTI4MywNCiAgIDMzMTg2ODY5OTgsIDEyNjY0NTgwMjUsIDM5MTk1NzgxNTQsIDM1 NDU0MTM1MjcsIDI2MjcwMDk5ODgsDQogICAzNzQ0NjgwMzk0LCAxNjk2ODkwMTczLCAzMjUwNjg0 NzA1LCA0MTQyNDE3NzA4LCA5MTU3Mzk0MTEsDQogICAzMzA4NDg4ODc3LCAxMjg5MzYxNDYwLCAy OTQyNTUyMzMxLCAxMTY5MTA1OTc5LCAzMzQyMjI4NzEyLA0KICAgNjk4NTYwOTU4LCAxMzU2MDQx MjMwLCAyNDAxOTQ0MjkzLCAxMDc3MDUyMzIsIDM3MDE4OTUzNjMsIDkwMzkyODcyMywNCiAgIDM2 NDY1ODEzODUsIDg0NDk1MDkxNCwgMTk0NDM3MTM2NywgMzg2Mzg5NDg0NCwgMjk0Njc3MzMxOSwN CiAgIDE5NzI0MzE2MTMsIDE3MDY5ODkyMzcsIDI5OTE3NDY3LCAzNDk3NjY1OTI4DQoNCjUuNS40 LiAgVGhlIHRhYmxlIFYzDQoNCiAgIDExOTEzNjk4MTYsIDc0NDkwMjgxMSwgMjUzOTc3MjIzNSwg MzIxMzE5MjAzNywgMzI4NjA2MTI2NiwNCiAgIDEyMDA1NzExNjUsIDI0NjMyODEyNjAsIDc1NDg4 ODg5NCwgNzE0NjUxMjcwLCAxOTY4MjIwOTcyLCAzNjI4NDk3Nzc1LA0KICAgMTI3NzYyNjQ1Niwg MTQ5MzM5ODkzNCwgMzY0Mjg5NzU3LCAyMDU1NDg3NTkyLCAzOTEzNDY4MDg4LA0KICAgMjkzMDI1 OTQ2NSwgOTAyNTA0NTY3LCAzOTY3MDUwMzU1LCAyMDU2NDk5NDAzLCA2OTIxMzIzOTAsIDE4NjM4 NjY1NywNCiAgIDgzMjgzNDcwNiwgODU5Nzk1ODE2LCAxMjgzMTIwOTI2LCAyMjUzMTgzNzE2LCAz MDAzNDc1MjA1LCAxNzU1ODAzNTUyLA0KICAgMjIzOTMxNTE0MiwgNDI3MTA1NjM1MiwgMjE4NDg0 ODQ2OSwgNzY5MjI4MDkyLCAxMjQ5MjMwNzU0LA0KICAgMTE5MzI2OTIwNSwgMjY2MDA5NDEwMiwg NjQyOTc5NjEzLCAxNjg3MDg3OTk0LCAyNzI2MTA2MTgyLCA0NDY0MDI5MTMsDQogICA0MTIyMTg2 NjA2LCAzNzcxMzQ3MjgyLCAzNzY2NzEzNiwgMTkyNzc1NDI1LCAzNTc4NzAyMTg3LCAxOTUyNjU5 MDk2LA0KICAgMzk4OTU4NDQwMCwgMzA2OTAxMzg4MiwgMjkwMDUxNjE1OCwgNDA0NTMxNjMzNiwg MzA1NzE2MzI1MSwNCiAgIDE3MDIxMDQ4MTksIDQxMTY2MTM0MjAsIDM1NzU0NzIzODQsIDI2NzQw MjMxMTcsIDE0MDkxMjY3MjMsDQogICAzMjE1MDk1NDI5LCAxNDMwNzI2NDI5LCAyNTQ0NDk3MzY4 LCAxMDI5NTY1Njc2LCAxODU1ODAxODI3LA0KICAgNDI2MjE4NDYyNywgMTg1NDMyNjg4MSwgMjkw NjcyODU5MywgMzI3NzgzNjU1NywgMjc4NzY5NzAwMiwNCiAgIDI3ODczMzMzODUsIDMxMDU0MzA3 MzgsIDI0NzcwNzMxOTIsIDc0ODAzODU3MywgMTA4ODM5NjUxNSwNCiAgIDE2MTEyMDQ4NTMsIDIw MTk2NDAwNSwgMzc0NTgxODM4MCwgMzY1NDY4MzU0OSwgMzgxNjEyMDg3NywNCiAgIDM5MTU3ODM2 MjIsIDI1NjMxOTg3MjIsIDExODExNDkwNTUsIDMzMTU4MDg0LCAzNzIzMDQ3ODQ1LCAzNzkwMjcw OTA2LA0KICAgMzgzMjQxNTIwNCwgMjk1OTYxNzQ5NywgMzcyOTAwNzA4LCAxMjg2NzM4NDk5LCAx OTMyNDM5MDk5LA0KICAgMzY3Nzc0ODMwOSwgMjQ1NDcxMTE4MiwgMjc1Nzg1NjQ2OSwgMjEzNDAy NzA1NSwgMjc4MDA1MjQ2NSwNCiAgIDMxOTAzNDc2MTgsIDM3NTg1MTAxMzgsIDM2MjYzMjk0NTEs IDExMjA3NDMxMDcsIDE2MjM1ODU2OTMsDQogICAxMzg5ODM0MTAyLCAyNzE5MjMwMzc1LCAzMDM4 NjA5MDAzLCA0NjI2MTc1OTAsIDI2MDI1NDE4OSwgMzcwNjM0OTc2NCwNCiAgIDI1NTY3NjI3NDQs IDI4NzQyNzIyOTYsIDI1MDIzOTkyODYsIDQyMTYyNjM5NzgsIDI2ODM0MzExODAsDQogICAyMTY4 NTYwNTM1LCAzNTYxNTA3MTc1LCA2NjgwOTU3MjYsIDY4MDQxMjMzMCwgMzcyNjY5Mzk0NiwgNDE4 MDYzMDYzNywNCiAgIDMzMzUxNzA5NTMsIDk0MjE0MDk2OCwgMjcxMTg1MTA4NSwgMjA1OTIzMzQx MiwgNDI2NTY5NjI3OCwNCiAgIDMyMDQzNzM1MzQsIDIzMjg1NTA1NiwgODgxNzg4MzEzLCAyMjU4 MjUyMTcyLCAyMDQzNTk1OTg0LCAzNzU4Nzk1MTUwLA0KICAgMzYxNTM0MTMyNSwgMjEzODgzNzY4 MSwgMTM1MTIwODUzNywgMjkyMzY5MjQ3MywgMzQwMjQ4Mjc4NSwNCg0KDQoNCkx1YnksIGV0IGFs LiAgICAgICAgICAgICBFeHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgIFtQYWdl IDQxXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAg ICAgICAgICAgICAgSmFudWFyeSAyMDEwDQoNCg0KICAgMjEwNTM4MzQyNSwgMjM0Njc3Mjc1MSwg NDk5MjQ1MzIzLCAzNDE3ODQ2MDA2LCAyMzY2MTE2ODE0LA0KICAgMjU0MzA5MDU4MywgMTgyODU1 MTYzNCwgMzE0ODY5NjI0NCwgMzg1Mzg4NDg2NywgMTM2NDczNzY4MSwNCiAgIDIyMDA2ODc3NzEs IDI2ODk3NzU2ODgsIDIzMjcyMDYyNSwgNDA3MTY1NzMxOCwgMjY3MTk2ODk4MywNCiAgIDM1MzE0 MTUwMzEsIDEyMTI4NTIxNDEsIDg2NzkyMzMxMSwgMzc0MDEwOTcxMSwgMTkyMzE0NjUzMywNCiAg IDMyMzcwNzE3NzcsIDMxMDA3MjkyNTUsIDMyNDc4NTY4MTYsIDkwNjc0MjU2NiwgNDA0NzY0MDU3 NSwNCiAgIDQwMDcyMTE1NzIsIDM0OTU3MDAxMDUsIDExNzEyODUyNjIsIDI4MzU2ODI2NTUsIDE2 MzQzMDEyMjksDQogICAzMTE1MTY5OTI1LCAyMjg5ODc0NzA2LCAyMjUyNDUwMTc5LCA5NDQ4ODAw OTcsIDM3MTkzMzQ5MSwgMTY0OTA3NDUwMSwNCiAgIDIyMDg2MTc0MTQsIDI1MjQzMDU5ODEsIDI0 OTY1Njk4NDQsIDI2NjcwMzcxNjAsIDEyNTc1NTA3OTQsDQogICAzMzk5MjE5MDQ1LCAzMTk0ODk0 Mjk1LCAxNjQzMjQ5ODg3LCAzNDI5MTE0NzMsIDg5MTAyNTczMywgMzE0Njg2MTgzNSwNCiAgIDM3 ODkxODE1MjYsIDkzODg0NzgxMiwgMTg1NDU4MDE4MywgMjExMjY1Mzc5NCwgMjk2MDcwMjk4OCwN CiAgIDEyMzg2MDMzNzgsIDIyMDUyODA2MzUsIDE2NjY3ODQwMTQsIDI1MjAyNzQ2MTQsIDMzNTU0 OTM3MjYsDQogICAyMzEwODcyMjc4LCAzMTUzOTIwNDg5LCAyNzQ1ODgyNTkxLCAxMjAwMjAzMTU4 LCAzMDMzNjEyNDE1LA0KICAgMjMxMTY1MDE2NywgMTA0ODEyOTEzMywgNDIwNjcxMDE4NCwgNDIw OTE3Njc0MSwgMjY0MDk1MDI3OSwNCiAgIDIwOTYzODIxNzcsIDQxMTY4OTkwODksIDM2MzEwMTc4 NTEsIDQxMDQ0ODgxNzMsIDE4NTc2NTA1MDMsDQogICAzODAxMTAyOTMyLCA0NDU4MDY5MzQsIDMw NTU2NTQ2NDAsIDg5Nzg5ODI3OSwgMzIzNDAwNzM5OSwgMTMyNTQ5NDkzMCwNCiAgIDI5ODIyNDcx ODksIDE2MTkwMjA0NzUsIDI3MjAwNDA4NTYsIDg4NTA5NjE3MCwgMzQ4NTI1NTQ5OSwNCiAgIDI5 ODMyMDI0NjksIDM4OTEwMTExMjQsIDU0NjUyMjc1NiwgMTUyNDQzOTIwNSwgMjY0NDMxNzg4OSwN CiAgIDIxNzAwNzY4MDAsIDI5Njk2MTg3MTYsIDk2MTE4MzUxOCwgMTA4MTgzMTA3NCwgMTAzNzAx NTM0NywNCiAgIDMyODkwMTYyODYsIDIzMzE3NDg2NjksIDYyMDg4NzM5NSwgMzAzMDQyNjU0LCAz OTkwMDI3OTQ1LCAxNTYyNzU2Mzc2LA0KICAgMzQxMzM0MTc5MiwgMjA1OTY0Nzc2OSwgMjgyMzg0 NDQzMiwgNjc0NTk1MzAxLCAyNDU3NjM5OTg0LA0KICAgNDA3Njc1NDcxNiwgMjQ0NzczNzkwNCwg MTU4MzMyMzMyNCwgNjI1NjI3MTM0LCAzMDc2MDA2MzkxLCAzNDU3Nzc5OTAsDQogICAxNjg0OTU0 MTQ1LCA4NzkyMjczMjksIDM0MzYxODIxODAsIDE1MjIyNzMyMTksIDM4MDI1NDM4MTcsDQogICAx NDU2MDE3MDQwLCAxODk3ODE5ODQ3LCAyOTcwMDgxMTI5LCAxMzgyNTc2MDI4LCAzODIwMDQ0ODYx LA0KICAgMTA0NDQyODE2NywgNjEyMjUyNTk5LCAzMzQwNDc4Mzk1LCAyMTUwNjEzOTA0LCAzMzk3 NjI1NjYyLA0KICAgMzU3MzYzNTY0MCwgMzQzMjI3NTE5Mg0KDQo1LjYuICBTeXN0ZW1hdGljIGlu ZGljZXMgYW5kIG90aGVyIHBhcmFtZXRlcnMNCg0KICAgVGFibGUgMiBiZWxvdyBzcGVjaWZpZXMg dGhlIHN1cHBvcnRlZCB2YWx1ZXMgb2YgSycuICBUaGUgdGFibGUgYWxzbw0KICAgc3BlY2lmaWVz IGZvciBlYWNoIHN1cHBvcnRlZCB2YWx1ZSBvZiBLJyB0aGUgc3lzdGVtYXRpYyBpbmRleCBKKEsn KSwNCiAgIHRoZSBudW1iZXIgSChLJykgb2YgSERQQyBzeW1ib2xzLCB0aGUgbnVtYmVyIFMoSycp IG9mIExEUEMgc3ltYm9scywNCiAgIGFuZCB0aGUgbnVtYmVyIFcoSycpIG9mIExUIHN5bWJvbHMu ICBGb3IgZWFjaCB2YWx1ZSBvZiBLJywgdGhlDQogICBjb3JyZXNwb25kaW5nIHZhbHVlcyBvZiBT KEsnKSBhbmQgVyhLJykgYXJlIHByaW1lIG51bWJlcnMuDQoNCiAgIFRoZSBzeXN0ZW1hdGljIGlu ZGV4IEooSycpIGlzIGRlc2lnbmVkIHRvIGhhdmUgdGhlIHByb3BlcnR5IHRoYXQgdGhlDQogICBz ZXQgb2Ygc291cmNlIHN5bWJvbCB0dXBsZXMgKGRbMF0sIGFbMF0sIGJbMF0sIGQxWzBdLCBhMVsw XSwgYjFbMF0pLA0KICAgLi4uLCAoZFtLJy0xXSwgYVtLJy0xXSwgYltLJy0xXSwgZDFbSyctMV0s IGExW0snLTFdLCBiMVtLJy0xXSkgYXJlDQogICBzdWNoIHRoYXQgdGhlIEwgaW50ZXJtZWRpYXRl IHN5bWJvbHMgYXJlIHVuaXF1ZWx5IGRlZmluZWQsIGkuZS4sIHRoZQ0KICAgbWF0cml4IEEgaW4g RmlndXJlIDYgaGFzIGZ1bGwgcmFuayBhbmQgaXMgdGhlcmVmb3JlIGludmVydGlibGUuDQoNCiAg ICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IEsnICAgIHwg SihLJykgfCBTKEsnKSB8IEgoSycpIHwgVyhLJykgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgNiAgICAgfCAzICAgICB8IDUgICAgIHwgMTAgICAg fCAxMSAgICB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0K ICAgfCAxMiAgICB8IDU3ICAgIHwgNyAgICAgfCAxMCAgICB8IDE5ICAgIHwNCiAgICstLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDE4ICAgIHwgMjcgICAgfCAx MSAgICB8IDEwICAgIHwgMjkgICAgfA0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAgICAgICAgIEV4 cGlyZXMgQXVndXN0IDEsIDIwMTAgICAgICAgICAgICAgICAgW1BhZ2UgNDJdDQoMDQpJbnRlcm5l dC1EcmFmdCAgICAgICAgICAgICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAgICAgICBKYW51 YXJ5IDIwMTANCg0KDQogICB8IDI2ICAgIHwgOTYgICAgfCAxMSAgICB8IDEwICAgIHwgMzcgICAg fA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgMzIg ICAgfCA5NTkgICB8IDExICAgIHwgMTAgICAgfCA0MyAgICB8DQogICArLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCAzNiAgICB8IDU2NCAgIHwgMTEgICAgfCAx MCAgICB8IDQ3ICAgIHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0rDQogICB8IDQyICAgIHwgMzkgICAgfCAxMSAgICB8IDEwICAgIHwgNTMgICAgfA0KICAgKy0t LS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgNDggICAgfCAxMCAg ICB8IDEzICAgIHwgMTAgICAgfCA2MSAgICB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0r LS0tLS0tLSstLS0tLS0tKw0KICAgfCA1NSAgICB8IDUzMSAgIHwgMTMgICAgfCAxMCAgICB8IDY3 ICAgIHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8 IDYyICAgIHwgNTUgICAgfCAxMyAgICB8IDEwICAgIHwgNzMgICAgfA0KICAgKy0tLS0tLS0rLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgNjkgICAgfCAyMzUgICB8IDEzICAg IHwgMTAgICAgfCA3OSAgICB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSst LS0tLS0tKw0KICAgfCA3NSAgICB8IDIzNCAgIHwgMTcgICAgfCAxMCAgICB8IDg5ICAgIHwNCiAg ICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDg4ICAgIHwg MTEzICAgfCAxNyAgICB8IDEwICAgIHwgMTAxICAgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgMTAxICAgfCA4ICAgICB8IDE3ICAgIHwgMTAgICAg fCAxMTMgICB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0K ICAgfCAxMTQgICB8IDggICAgIHwgMTkgICAgfCAxMCAgICB8IDEyNyAgIHwNCiAgICstLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDEyNyAgIHwgMTg0ICAgfCAx OSAgICB8IDEwICAgIHwgMTM5ICAgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0rLS0tLS0tLSsNCiAgIHwgMTQwICAgfCA3ICAgICB8IDE5ICAgIHwgMTAgICAgfCAxNTEgICB8 DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCAxNjAg ICB8IDM5ICAgIHwgMjMgICAgfCAxMCAgICB8IDE3MyAgIHwNCiAgICstLS0tLS0tKy0tLS0tLS0r LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDE4NSAgIHwgNzUxICAgfCAyMyAgICB8IDEw ICAgIHwgMTk3ICAgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0t LSsNCiAgIHwgMjEzICAgfCAxICAgICB8IDIzICAgIHwgMTAgICAgfCAyMjMgICB8DQogICArLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCAyNDIgICB8IDEwICAg IHwgMjkgICAgfCAxMCAgICB8IDI1NyAgIHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0rDQogICB8IDI2NyAgIHwgMTk1ICAgfCAyOSAgICB8IDEwICAgIHwgMjgx ICAgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwg Mjk1ICAgfCA1NzIgICB8IDI5ICAgIHwgMTAgICAgfCAzMDcgICB8DQogICArLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCAzMjQgICB8IDQ0NyAgIHwgMzEgICAg fCAxMCAgICB8IDMzNyAgIHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0rDQogICB8IDM2MiAgIHwgNzUxICAgfCAzMSAgICB8IDEwICAgIHwgMzczICAgfA0KICAg Ky0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgNDAzICAgfCAy MzQgICB8IDM3ICAgIHwgMTAgICAgfCA0MTkgICB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCA0NDMgICB8IDk3NCAgIHwgMzcgICAgfCAxMCAgICB8 IDQ1NyAgIHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQoN Cg0KDQpMdWJ5LCBldCBhbC4gICAgICAgICAgICAgRXhwaXJlcyBBdWd1c3QgMSwgMjAxMCAgICAg ICAgICAgICAgICBbUGFnZSA0M10NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICAgIFJhcHRv ckcgRkVDIFNjaGVtZSAgICAgICAgICAgICAgIEphbnVhcnkgMjAxMA0KDQoNCiAgICstLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDQ5NyAgIHwgMTE1ICAgfCAz NyAgICB8IDEwICAgIHwgNTA5ICAgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0rLS0tLS0tLSsNCiAgIHwgNTU1ICAgfCAxNyAgICB8IDQxICAgIHwgMTAgICAgfCA1NjkgICB8 DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCA2MTkg ICB8IDc1ICAgIHwgNDEgICAgfCAxMCAgICB8IDYzMSAgIHwNCiAgICstLS0tLS0tKy0tLS0tLS0r LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDY4NSAgIHwgNDc2ICAgfCA0NyAgICB8IDEw ICAgIHwgNzAxICAgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0t LSsNCiAgIHwgNzU5ICAgfCAxMTIgICB8IDQ3ICAgIHwgMTAgICAgfCA3NzMgICB8DQogICArLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCA4MzkgICB8IDQ1NCAg IHwgNTMgICAgfCAxMCAgICB8IDg1NyAgIHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0rDQogICB8IDkzMiAgIHwgNDI0ICAgfCA1MyAgICB8IDEwICAgIHwgOTQ3 ICAgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwg MTAzMiAgfCAzNCAgICB8IDU5ICAgIHwgMTAgICAgfCAxMDUxICB8DQogICArLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCAxMTQ0ICB8IDYwMCAgIHwgNjEgICAg fCAxMSAgICB8IDExNjMgIHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0rDQogICB8IDEyODEgIHwgNzUgICAgfCA2NyAgICB8IDExICAgIHwgMTMwMyAgfA0KICAg Ky0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgMTQyMCAgfCA3 MjYgICB8IDY3ICAgIHwgMTEgICAgfCAxNDM5ICB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCAxNTc1ICB8IDM5ICAgIHwgNzMgICAgfCAxMSAgICB8 IDE1OTcgIHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQog ICB8IDE3MzQgIHwgODMgICAgfCA3OSAgICB8IDExICAgIHwgMTc1OSAgfA0KICAgKy0tLS0tLS0r LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgMTkwNiAgfCAzOTQgICB8IDgz ICAgIHwgMTEgICAgfCAxOTMxICB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0t LSstLS0tLS0tKw0KICAgfCAyMTAzICB8IDc1ICAgIHwgODkgICAgfCAxMSAgICB8IDIxMzEgIHwN CiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDIzMTUg IHwgNzcyICAgfCA5NyAgICB8IDExICAgIHwgMjM0NyAgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgMjU1MCAgfCA3MjYgICB8IDk3ICAgIHwgMTEg ICAgfCAyNTc5ICB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0t Kw0KICAgfCAyODEyICB8IDY4MyAgIHwgMTAzICAgfCAxMSAgICB8IDI4NDMgIHwNCiAgICstLS0t LS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDMxMDEgIHwgNTEyICAg fCAxMTMgICB8IDExICAgIHwgMzEzNyAgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0rLS0tLS0tLSsNCiAgIHwgMzQxMSAgfCA2NTAgICB8IDEyNyAgIHwgMTEgICAgfCAzNDU3 ICB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCAz NzUxICB8IDgzOCAgIHwgMTI3ICAgfCAxMSAgICB8IDM3OTMgIHwNCiAgICstLS0tLS0tKy0tLS0t LS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDQwODYgIHwgNTQ3ICAgfCAxMzEgICB8 IDExICAgIHwgNDEyNyAgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0t LS0tLSsNCiAgIHwgNDQzNiAgfCAzMDUgICB8IDEzOSAgIHwgMTEgICAgfCA0NDgxICB8DQogICAr LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCA0NzgwICB8IDMg ICAgIHwgMTQ5ICAgfCAxMSAgICB8IDQ4MzEgIHwNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAg ICAgICBFeHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgIFtQYWdlIDQ0XQ0KDA0K SW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAg ICAgSmFudWFyeSAyMDEwDQoNCg0KICAgfCA1MTM0ICB8IDUxOCAgIHwgMTU3ICAgfCAxMSAgICB8 IDUxODkgIHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQog ICB8IDU1MTIgIHwgMjI5ICAgfCAxNjMgICB8IDExICAgIHwgNTU2OSAgfA0KICAgKy0tLS0tLS0r LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgNjA3MCAgfCA5ODAgICB8IDE3 MyAgIHwgMTEgICAgfCA2MTMxICB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0t LSstLS0tLS0tKw0KICAgfCA2Njg4ICB8IDU5NiAgIHwgMTkxICAgfCAxMSAgICB8IDY3NjEgIHwN CiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDczNjAg IHwgOTYwICAgfCAxOTcgICB8IDExICAgIHwgNzQzMyAgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgODA4NyAgfCA4NSAgICB8IDIxMSAgIHwgMTEg ICAgfCA4MTY3ICB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0t Kw0KICAgfCA4ODg2ICB8IDQ3OSAgIHwgMjIzICAgfCAxMSAgICB8IDg5NzEgIHwNCiAgICstLS0t LS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDk3OTMgIHwgMjAwICAg fCAyMzkgICB8IDExICAgIHwgOTg4NyAgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0rLS0tLS0tLSsNCiAgIHwgMTA3NzkgfCAyOTAgICB8IDI1NyAgIHwgMTEgICAgfCAxMDg4 MyB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCAx MTg2NCB8IDU0MyAgIHwgMjc3ICAgfCAxMiAgICB8IDExOTgxIHwNCiAgICstLS0tLS0tKy0tLS0t LS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDEzMDQ2IHwgODkzICAgfCAyOTMgICB8 IDEyICAgIHwgMTMxNzEgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0t LS0tLSsNCiAgIHwgMTQzNTUgfCA1MjcgICB8IDMxMSAgIHwgMTIgICAgfCAxNDQ4OSB8DQogICAr LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCAxNTc4NiB8IDYw MSAgIHwgMzM3ICAgfCAxMiAgICB8IDE1OTM3IHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDE3Mzc2IHwgNDc5ICAgfCAzNTkgICB8IDEyICAgIHwg MTc1MzkgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAg IHwgMTkxMjYgfCA1MTggICB8IDM4OSAgIHwgMTIgICAgfCAxOTMwOSB8DQogICArLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCAyMTA0NCB8IDkzMyAgIHwgNDE5 ICAgfCAxMyAgICB8IDIxMjQ3IHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0rDQogICB8IDIzMTc3IHwgODUgICAgfCA0NDkgICB8IDEzICAgIHwgMjMzOTkgfA0K ICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgMjU0OTEg fCA3MTAgICB8IDQ3OSAgIHwgMTMgICAgfCAyNTczMyB8DQogICArLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCAyODAzNSB8IDExICAgIHwgNTIxICAgfCAxMyAg ICB8IDI4MzE5IHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0r DQogICB8IDMwODk4IHwgNzM4ICAgfCA1NTcgICB8IDE0ICAgIHwgMzEyMTkgfA0KICAgKy0tLS0t LS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgMzM5ODggfCA2MDIgICB8 IDU5OSAgIHwgMTQgICAgfCAzNDM1MSB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0t LS0tLSstLS0tLS0tKw0KICAgfCAzNzM3MiB8IDU0NSAgIHwgNjQ3ICAgfCAxNCAgICB8IDM3Nzgz IHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDQx MTI3IHwgMTEgICAgfCA3MDEgICB8IDE1ICAgIHwgNDE1OTMgfA0KICAgKy0tLS0tLS0rLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAgIHwgNDUyNDUgfCA2MzkgICB8IDc1NyAgIHwg MTUgICAgfCA0NTc2NyB8DQogICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0t LS0tKw0KDQoNCg0KTHVieSwgZXQgYWwuICAgICAgICAgICAgIEV4cGlyZXMgQXVndXN0IDEsIDIw MTAgICAgICAgICAgICAgICAgW1BhZ2UgNDVdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAg ICBSYXB0b3JHIEZFQyBTY2hlbWUgICAgICAgICAgICAgICBKYW51YXJ5IDIwMTANCg0KDQogICAr LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KICAgfCA0OTc5MSB8IDI0 OSAgIHwgODIxICAgfCAxNSAgICB8IDUwMzc3IHwNCiAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0rDQogICB8IDU0NzY4IHwgMzAwICAgfCA4NzcgICB8IDE2ICAgIHwg NTU0MTEgfA0KICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCiAg IHwgNTY0MDQgfCA3MzMgICB8IDkwNyAgIHwgMTYgICAgfCA1NzA3NyB8DQogICArLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKw0KDQogICAgICAgICAgICAgVGFibGUgMjog U3lzdGVtYXRpYyBpbmRpY2VzIGFuZCBvdGhlciBwYXJhbWV0ZXJzDQoNCjUuNy4gIEFyaXRobWV0 aWMgaW4gR0YoMjU2KQ0KDQo1LjcuMS4gIEludHJvZHVjdGlvbg0KDQogICBFbGVtZW50cyBvZiBH RigyNTYpIGFyZSByZXByZXNlbnRlZCBieSBieXRlcy4gIEluIHRoaXMgc2VjdGlvbiwgd2UNCiAg IG9wdCB0byByZXByZXNlbnQgdGhlbSBieSBpbnRlZ2VycyBpbiB0aGUgcmFuZ2UgMCB0aHJvdWdo IDI1NS4gIEZvcg0KICAgZWFzZSBvZiBleHBvc2l0aW9uLCBvcGVyYXRpb25zIGluIEdGKDI1Nikg YXJlIGZhY2lsaXRhdGVkIGJ5IHR3bw0KICAgdGFibGVzOiBHRjI1Nl9FWFAsIGFuZCBHRjI1Nl9M T0cuICBHRjI1Nl9FWFAgaGFzIDUxMiBlbnRyaWVzLCB3aGVyZWFzDQogICBHRjI1Nl9MT0cgaGFz IDI1NiBlbnRyaWVzLiAgRm9yIGFuIGludGVnZXIgaSBiZXR3ZWVuIDAgYW5kIDUxMSwNCiAgIEdG MjU2X0VYUFtpXSBpcyB0aGUgYmluYXJ5IHZhbHVlIG9mIHRoZSBwb2x5bm9taWFsIHheXmkgbW9k dWxvIHheXjggKw0KICAgeF5eNCArIHheXjMgKyB4Xl4yICsgMSwgd2hlcmVhcyBmb3IgaSBiZXR3 ZWVuIDEgYW5kIDI1NSB0aGUgdmFsdWUgb2YNCiAgIEdGMjU2X0xPR1tpXSBpcyB0aGUgaW50ZWdl ciBqIHN1Y2ggdGhhdCB0aGUgYmluYXJ5IHZhbHVlIG9mIHheXmoNCiAgIG1vZHVsbyB4Xl44ICsg eF5eNCArIHheXjMgKyB4Xl4yICsgMSBpcyBpLiAgSW4gdGhpcyByZXByZXNlbnRhdGlvbiB3ZQ0K ICAgaGF2ZQ0KDQogICAgICBpICsgaiA9IGkgXiBqLCBhbmQNCg0KICAgICAgaSAqIGogPQ0KDQog ICAgICAgICAwLCBpZiBlaXRoZXIgaSBvciBqIGFyZSAwLA0KDQogICAgICAgICBHRjI1Nl9FWFBb R0YyNTZfTE9HW2ldICsgR0YyNTZfTE9HW2pdXSBvdGhlcndpc2UNCg0KNS43LjIuICBUaGUgdGFi bGUgR0YyNTZfRVhQDQoNCiAgIDEsIDIsIDQsIDgsIDE2LCAzMiwgNjQsIDEyOCwgMjksIDU4LCAx MTYsIDIzMiwgMjA1LCAxMzUsIDE5LCAzOCwgNzYsDQogICAxNTIsIDQ1LCA5MCwgMTgwLCAxMTcs IDIzNCwgMjAxLCAxNDMsIDMsIDYsIDEyLCAyNCwgNDgsIDk2LCAxOTIsIDE1NywNCiAgIDM5LCA3 OCwgMTU2LCAzNywgNzQsIDE0OCwgNTMsIDEwNiwgMjEyLCAxODEsIDExOSwgMjM4LCAxOTMsIDE1 OSwgMzUsDQogICA3MCwgMTQwLCA1LCAxMCwgMjAsIDQwLCA4MCwgMTYwLCA5MywgMTg2LCAxMDUs IDIxMCwgMTg1LCAxMTEsIDIyMiwNCiAgIDE2MSwgOTUsIDE5MCwgOTcsIDE5NCwgMTUzLCA0Nywg OTQsIDE4OCwgMTAxLCAyMDIsIDEzNywgMTUsIDMwLCA2MCwNCiAgIDEyMCwgMjQwLCAyNTMsIDIz MSwgMjExLCAxODcsIDEwNywgMjE0LCAxNzcsIDEyNywgMjU0LCAyMjUsIDIyMywgMTYzLA0KICAg OTEsIDE4MiwgMTEzLCAyMjYsIDIxNywgMTc1LCA2NywgMTM0LCAxNywgMzQsIDY4LCAxMzYsIDEz LCAyNiwgNTIsDQogICAxMDQsIDIwOCwgMTg5LCAxMDMsIDIwNiwgMTI5LCAzMSwgNjIsIDEyNCwg MjQ4LCAyMzcsIDE5OSwgMTQ3LCA1OSwNCiAgIDExOCwgMjM2LCAxOTcsIDE1MSwgNTEsIDEwMiwg MjA0LCAxMzMsIDIzLCA0NiwgOTIsIDE4NCwgMTA5LCAyMTgsDQogICAxNjksIDc5LCAxNTgsIDMz LCA2NiwgMTMyLCAyMSwgNDIsIDg0LCAxNjgsIDc3LCAxNTQsIDQxLCA4MiwgMTY0LCA4NSwNCiAg IDE3MCwgNzMsIDE0NiwgNTcsIDExNCwgMjI4LCAyMTMsIDE4MywgMTE1LCAyMzAsIDIwOSwgMTkx LCA5OSwgMTk4LA0KICAgMTQ1LCA2MywgMTI2LCAyNTIsIDIyOSwgMjE1LCAxNzksIDEyMywgMjQ2 LCAyNDEsIDI1NSwgMjI3LCAyMTksIDE3MSwNCiAgIDc1LCAxNTAsIDQ5LCA5OCwgMTk2LCAxNDks IDU1LCAxMTAsIDIyMCwgMTY1LCA4NywgMTc0LCA2NSwgMTMwLCAyNSwNCg0KDQoNCkx1YnksIGV0 IGFsLiAgICAgICAgICAgICBFeHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgIFtQ YWdlIDQ2XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1l ICAgICAgICAgICAgICAgSmFudWFyeSAyMDEwDQoNCg0KICAgNTAsIDEwMCwgMjAwLCAxNDEsIDcs IDE0LCAyOCwgNTYsIDExMiwgMjI0LCAyMjEsIDE2NywgODMsIDE2NiwgODEsDQogICAxNjIsIDg5 LCAxNzgsIDEyMSwgMjQyLCAyNDksIDIzOSwgMTk1LCAxNTUsIDQzLCA4NiwgMTcyLCA2OSwgMTM4 LCA5LA0KICAgMTgsIDM2LCA3MiwgMTQ0LCA2MSwgMTIyLCAyNDQsIDI0NSwgMjQ3LCAyNDMsIDI1 MSwgMjM1LCAyMDMsIDEzOSwgMTEsDQogICAyMiwgNDQsIDg4LCAxNzYsIDEyNSwgMjUwLCAyMzMs IDIwNywgMTMxLCAyNywgNTQsIDEwOCwgMjE2LCAxNzMsIDcxLA0KICAgMTQyLCAxLCAyLCA0LCA4 LCAxNiwgMzIsIDY0LCAxMjgsIDI5LCA1OCwgMTE2LCAyMzIsIDIwNSwgMTM1LCAxOSwgMzgsDQog ICA3NiwgMTUyLCA0NSwgOTAsIDE4MCwgMTE3LCAyMzQsIDIwMSwgMTQzLCAzLCA2LCAxMiwgMjQs IDQ4LCA5NiwgMTkyLA0KICAgMTU3LCAzOSwgNzgsIDE1NiwgMzcsIDc0LCAxNDgsIDUzLCAxMDYs IDIxMiwgMTgxLCAxMTksIDIzOCwgMTkzLCAxNTksDQogICAzNSwgNzAsIDE0MCwgNSwgMTAsIDIw LCA0MCwgODAsIDE2MCwgOTMsIDE4NiwgMTA1LCAyMTAsIDE4NSwgMTExLA0KICAgMjIyLCAxNjEs IDk1LCAxOTAsIDk3LCAxOTQsIDE1MywgNDcsIDk0LCAxODgsIDEwMSwgMjAyLCAxMzcsIDE1LCAz MCwNCiAgIDYwLCAxMjAsIDI0MCwgMjUzLCAyMzEsIDIxMSwgMTg3LCAxMDcsIDIxNCwgMTc3LCAx MjcsIDI1NCwgMjI1LCAyMjMsDQogICAxNjMsIDkxLCAxODIsIDExMywgMjI2LCAyMTcsIDE3NSwg NjcsIDEzNCwgMTcsIDM0LCA2OCwgMTM2LCAxMywgMjYsDQogICA1MiwgMTA0LCAyMDgsIDE4OSwg MTAzLCAyMDYsIDEyOSwgMzEsIDYyLCAxMjQsIDI0OCwgMjM3LCAxOTksIDE0NywNCiAgIDU5LCAx MTgsIDIzNiwgMTk3LCAxNTEsIDUxLCAxMDIsIDIwNCwgMTMzLCAyMywgNDYsIDkyLCAxODQsIDEw OSwgMjE4LA0KICAgMTY5LCA3OSwgMTU4LCAzMywgNjYsIDEzMiwgMjEsIDQyLCA4NCwgMTY4LCA3 NywgMTU0LCA0MSwgODIsIDE2NCwgODUsDQogICAxNzAsIDczLCAxNDYsIDU3LCAxMTQsIDIyOCwg MjEzLCAxODMsIDExNSwgMjMwLCAyMDksIDE5MSwgOTksIDE5OCwNCiAgIDE0NSwgNjMsIDEyNiwg MjUyLCAyMjksIDIxNSwgMTc5LCAxMjMsIDI0NiwgMjQxLCAyNTUsIDIyNywgMjE5LCAxNzEsDQog ICA3NSwgMTUwLCA0OSwgOTgsIDE5NiwgMTQ5LCA1NSwgMTEwLCAyMjAsIDE2NSwgODcsIDE3NCwg NjUsIDEzMCwgMjUsDQogICA1MCwgMTAwLCAyMDAsIDE0MSwgNywgMTQsIDI4LCA1NiwgMTEyLCAy MjQsIDIyMSwgMTY3LCA4MywgMTY2LCA4MSwNCiAgIDE2MiwgODksIDE3OCwgMTIxLCAyNDIsIDI0 OSwgMjM5LCAxOTUsIDE1NSwgNDMsIDg2LCAxNzIsIDY5LCAxMzgsIDksDQogICAxOCwgMzYsIDcy LCAxNDQsIDYxLCAxMjIsIDI0NCwgMjQ1LCAyNDcsIDI0MywgMjUxLCAyMzUsIDIwMywgMTM5LCAx MSwNCiAgIDIyLCA0NCwgODgsIDE3NiwgMTI1LCAyNTAsIDIzMywgMjA3LCAxMzEsIDI3LCA1NCwg MTA4LCAyMTYsIDE3MywgNzEsDQogICAxNDIsIDEsIDINCg0KNS43LjMuICBUaGUgdGFibGUgR0Yy NTZfTE9HDQoNCiAgIDI1NSwgMCwgMSwgMjUsIDIsIDUwLCAyNiwgMTk4LCAzLCAyMjMsIDUxLCAy MzgsIDI3LCAxMDQsIDE5OSwgNzUsIDQsDQogICAxMDAsIDIyNCwgMTQsIDUyLCAxNDEsIDIzOSwg MTI5LCAyOCwgMTkzLCAxMDUsIDI0OCwgMjAwLCA4LCA3NiwgMTEzLA0KICAgNSwgMTM4LCAxMDEs IDQ3LCAyMjUsIDM2LCAxNSwgMzMsIDUzLCAxNDcsIDE0MiwgMjE4LCAyNDAsIDE4LCAxMzAsDQog ICA2OSwgMjksIDE4MSwgMTk0LCAxMjUsIDEwNiwgMzksIDI0OSwgMTg1LCAyMDEsIDE1NCwgOSwg MTIwLCA3NywgMjI4LA0KICAgMTE0LCAxNjYsIDYsIDE5MSwgMTM5LCA5OCwgMTAyLCAyMjEsIDQ4 LCAyNTMsIDIyNiwgMTUyLCAzNywgMTc5LCAxNiwNCiAgIDE0NSwgMzQsIDEzNiwgNTQsIDIwOCwg MTQ4LCAyMDYsIDE0MywgMTUwLCAyMTksIDE4OSwgMjQxLCAyMTAsIDE5LA0KICAgOTIsIDEzMSwg NTYsIDcwLCA2NCwgMzAsIDY2LCAxODIsIDE2MywgMTk1LCA3MiwgMTI2LCAxMTAsIDEwNywgNTgs DQogICA0MCwgODQsIDI1MCwgMTMzLCAxODYsIDYxLCAyMDIsIDk0LCAxNTUsIDE1OSwgMTAsIDIx LCAxMjEsIDQzLCA3OCwNCiAgIDIxMiwgMjI5LCAxNzIsIDExNSwgMjQzLCAxNjcsIDg3LCA3LCAx MTIsIDE5MiwgMjQ3LCAxNDAsIDEyOCwgOTksIDEzLA0KICAgMTAzLCA3NCwgMjIyLCAyMzcsIDQ5 LCAxOTcsIDI1NCwgMjQsIDIyNywgMTY1LCAxNTMsIDExOSwgMzgsIDE4NCwNCiAgIDE4MCwgMTI0 LCAxNywgNjgsIDE0NiwgMjE3LCAzNSwgMzIsIDEzNywgNDYsIDU1LCA2MywgMjA5LCA5MSwgMTQ5 LA0KICAgMTg4LCAyMDcsIDIwNSwgMTQ0LCAxMzUsIDE1MSwgMTc4LCAyMjAsIDI1MiwgMTkwLCA5 NywgMjQyLCA4NiwgMjExLA0KICAgMTcxLCAyMCwgNDIsIDkzLCAxNTgsIDEzMiwgNjAsIDU3LCA4 MywgNzEsIDEwOSwgNjUsIDE2MiwgMzEsIDQ1LCA2NywNCiAgIDIxNiwgMTgzLCAxMjMsIDE2NCwg MTE4LCAxOTYsIDIzLCA3MywgMjM2LCAxMjcsIDEyLCAxMTEsIDI0NiwgMTA4LA0KICAgMTYxLCA1 OSwgODIsIDQxLCAxNTcsIDg1LCAxNzAsIDI1MSwgOTYsIDEzNCwgMTc3LCAxODcsIDIwNCwgNjIs IDkwLA0KICAgMjAzLCA4OSwgOTUsIDE3NiwgMTU2LCAxNjksIDE2MCwgODEsIDExLCAyNDUsIDIy LCAyMzUsIDEyMiwgMTE3LCA0NCwNCiAgIDIxNSwgNzksIDE3NCwgMjEzLCAyMzMsIDIzMCwgMjMx LCAxNzMsIDIzMiwgMTE2LCAyMTQsIDI0NCwgMjM0LCAxNjgsDQogICA4MCwgODgsIDE3NQ0KDQoN Cg0KDQoNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAgICBFeHBpcmVzIEF1Z3VzdCAxLCAy MDEwICAgICAgICAgICAgICAgIFtQYWdlIDQ3XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAg ICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAgICAgSmFudWFyeSAyMDEwDQoNCg0KNi4g IFNlY3VyaXR5IENvbnNpZGVyYXRpb25zDQoNCiAgIERhdGEgZGVsaXZlcnkgY2FuIGJlIHN1Ympl Y3QgdG8gZGVuaWFsLW9mLXNlcnZpY2UgYXR0YWNrcyBieQ0KICAgYXR0YWNrZXJzIHdoaWNoIHNl bmQgY29ycnVwdGVkIHBhY2tldHMgdGhhdCBhcmUgYWNjZXB0ZWQgYXMNCiAgIGxlZ2l0aW1hdGUg YnkgcmVjZWl2ZXJzLiAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgYSBjb25jZXJuIGZvcg0KICAgbXVs dGljYXN0IGRlbGl2ZXJ5IGJlY2F1c2UgYSBjb3JydXB0ZWQgcGFja2V0IG1heSBiZSBpbmplY3Rl ZCBpbnRvDQogICB0aGUgc2Vzc2lvbiBjbG9zZSB0byB0aGUgcm9vdCBvZiB0aGUgbXVsdGljYXN0 IHRyZWUsIGluIHdoaWNoIGNhc2UNCiAgIHRoZSBjb3JydXB0ZWQgcGFja2V0IHdpbGwgYXJyaXZl IGF0IG1hbnkgcmVjZWl2ZXJzLiAgVGhpcyBpcw0KICAgcGFydGljdWxhcmx5IGEgY29uY2VybiB3 aGVuIHRoZSBjb2RlIGRlc2NyaWJlZCBpbiB0aGlzIGRvY3VtZW50IGlzDQogICB1c2VkIGJlY2F1 c2UgdGhlIHVzZSBvZiBldmVuIG9uZSBjb3JydXB0ZWQgcGFja2V0IGNvbnRhaW5pbmcgZW5jb2Rp bmcNCiAgIGRhdGEgbWF5IHJlc3VsdCBpbiB0aGUgZGVjb2Rpbmcgb2YgYW4gb2JqZWN0IHRoYXQg aXMgY29tcGxldGVseQ0KICAgY29ycnVwdGVkIGFuZCB1bnVzYWJsZS4gIEl0IGlzIHRodXMgUkVD T01NRU5ERUQgdGhhdCBzb3VyY2UNCiAgIGF1dGhlbnRpY2F0aW9uIGFuZCBpbnRlZ3JpdHkgY2hl Y2tpbmcgYXJlIGFwcGxpZWQgdG8gZGVjb2RlZCBvYmplY3RzDQogICBiZWZvcmUgZGVsaXZlcmlu ZyBvYmplY3RzIHRvIGFuIGFwcGxpY2F0aW9uLiAgRm9yIGV4YW1wbGUsIGEgU0hBLTENCiAgIGhh c2ggW1NIQTFdIG9mIGFuIG9iamVjdCBtYXkgYmUgYXBwZW5kZWQgYmVmb3JlIHRyYW5zbWlzc2lv biwgYW5kIHRoZQ0KICAgU0hBLTEgaGFzaCBpcyBjb21wdXRlZCBhbmQgY2hlY2tlZCBhZnRlciB0 aGUgb2JqZWN0IGlzIGRlY29kZWQgYnV0DQogICBiZWZvcmUgaXQgaXMgZGVsaXZlcmVkIHRvIGFu IGFwcGxpY2F0aW9uLiAgU291cmNlIGF1dGhlbnRpY2F0aW9uDQogICBTSE9VTEQgYmUgcHJvdmlk ZWQsIGZvciBleGFtcGxlIGJ5IGluY2x1ZGluZyBhIGRpZ2l0YWwgc2lnbmF0dXJlDQogICB2ZXJp ZmlhYmxlIGJ5IHRoZSByZWNlaXZlciBjb21wdXRlZCBvbiB0b3Agb2YgdGhlIGhhc2ggdmFsdWUu ICBJdCBpcw0KICAgYWxzbyBSRUNPTU1FTkRFRCB0aGF0IGEgcGFja2V0IGF1dGhlbnRpY2F0aW9u IHByb3RvY29sIHN1Y2ggYXMgVEVTTEENCiAgIFtSRkM0MDgyXSBiZSB1c2VkIHRvIGRldGVjdCBh bmQgZGlzY2FyZCBjb3JydXB0ZWQgcGFja2V0cyB1cG9uDQogICBhcnJpdmFsLiAgVGhpcyBtZXRo b2QgbWF5IGFsc28gYmUgdXNlZCB0byBwcm92aWRlIHNvdXJjZQ0KICAgYXV0aGVudGljYXRpb24u ICBGdXJ0aGVybW9yZSwgaXQgaXMgUkVDT01NRU5ERUQgdGhhdCBSZXZlcnNlIFBhdGgNCiAgIEZv cndhcmRpbmcgY2hlY2tzIGJlIGVuYWJsZWQgaW4gYWxsIG5ldHdvcmsgcm91dGVycyBhbmQgc3dp dGNoZXMNCiAgIGFsb25nIHRoZSBwYXRoIGZyb20gdGhlIHNlbmRlciB0byByZWNlaXZlcnMgdG8g bGltaXQgdGhlIHBvc3NpYmlsaXR5DQogICBvZiBhIGJhZCBhZ2VudCBzdWNjZXNzZnVsbHkgaW5q ZWN0aW5nIGEgY29ycnVwdGVkIHBhY2tldCBpbnRvIHRoZQ0KICAgbXVsdGljYXN0IHRyZWUgZGF0 YSBwYXRoLg0KDQogICBBbm90aGVyIHNlY3VyaXR5IGNvbmNlcm4gaXMgdGhhdCBzb21lIEZFQyBp bmZvcm1hdGlvbiBtYXkgYmUgb2J0YWluZWQNCiAgIGJ5IHJlY2VpdmVycyBvdXQtb2YtYmFuZCBp biBhIHNlc3Npb24gZGVzY3JpcHRpb24sIGFuZCBpZiB0aGUgc2Vzc2lvbg0KICAgZGVzY3JpcHRp b24gaXMgZm9yZ2VkIG9yIGNvcnJ1cHRlZCB0aGVuIHRoZSByZWNlaXZlcnMgd2lsbCBub3QgdXNl DQogICB0aGUgY29ycmVjdCBwcm90b2NvbCBmb3IgZGVjb2RpbmcgY29udGVudCBmcm9tIHJlY2Vp dmVkIHBhY2tldHMuICBUbw0KICAgYXZvaWQgdGhlc2UgcHJvYmxlbXMsIGl0IGlzIFJFQ09NTUVO REVEIHRoYXQgbWVhc3VyZXMgYmUgdGFrZW4gdG8NCiAgIHByZXZlbnQgcmVjZWl2ZXJzIGZyb20g YWNjZXB0aW5nIGluY29ycmVjdCBzZXNzaW9uIGRlc2NyaXB0aW9ucywNCiAgIGUuZy4sIGJ5IHVz aW5nIHNvdXJjZSBhdXRoZW50aWNhdGlvbiB0byBlbnN1cmUgdGhhdCByZWNlaXZlcnMgb25seQ0K ICAgYWNjZXB0IGxlZ2l0aW1hdGUgc2Vzc2lvbiBkZXNjcmlwdGlvbnMgZnJvbSBhdXRob3JpemVk IHNlbmRlcnMuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpMdWJ5LCBldCBhbC4gICAg ICAgICAgICAgRXhwaXJlcyBBdWd1c3QgMSwgMjAxMCAgICAgICAgICAgICAgICBbUGFnZSA0OF0N CgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICAgIFJhcHRvckcgRkVDIFNjaGVtZSAgICAgICAg ICAgICAgIEphbnVhcnkgMjAxMA0KDQoNCjcuICBJQU5BIENvbnNpZGVyYXRpb25zDQoNCiAgIFZh bHVlcyBvZiBGRUMgRW5jb2RpbmcgSURzIGFuZCBGRUMgSW5zdGFuY2UgSURzIGFyZSBzdWJqZWN0 IHRvIElBTkENCiAgIHJlZ2lzdHJhdGlvbi4gIEZvciBnZW5lcmFsIGd1aWRlbGluZXMgb24gSUFO QSBjb25zaWRlcmF0aW9ucyBhcyB0aGV5DQogICBhcHBseSB0byB0aGlzIGRvY3VtZW50LCBzZWUg W1JGQzUwNTJdLiAgVGhpcyBkb2N1bWVudCBhc3NpZ25zIHRoZQ0KICAgRnVsbHktU3BlY2lmaWVk IEZFQyBFbmNvZGluZyBJRCA2ICh0YmMpIHVuZGVyIHRoZSBpZXRmOnJtdDpmZWM6DQogICBlbmNv ZGluZyBuYW1lLXNwYWNlIHRvICJSYXB0b3JRIENvZGUiLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAgICBFeHBpcmVzIEF1Z3VzdCAxLCAyMDEw ICAgICAgICAgICAgICAgIFtQYWdlIDQ5XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAg UmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAgICAgSmFudWFyeSAyMDEwDQoNCg0KOC4gIEFj a25vd2xlZGdlbWVudHMNCg0KICAgVGhhbmtzIGFyZSBkdWUgdG8gTG9yZW56IE1pbmRlciBhbmQg UmFuZ2FuYXRoYW4gKFJhbmdhKSBLcmlzaG5hbi4NCiAgIExvcmVueiBNaW5kZXIgZGlkIHRoZSBv cmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBvZiBSYXB0b3JRLCBzdXBlcnZpc2VkDQogICBieSBBbWlu IFNob2tyb2xsYWhpLiAgUmFuZ2EgS3Jpc2huYW4gaGFzIGJlZW4gdmVyeSBzdXBwb3J0aXZlIGlu DQogICBmaW5kaW5nIGFuZCByZXNvbHZpbmcgaW1wbGVtZW50YXRpb24gZGV0YWlscyBhbmQgaW4g ZmluZGluZyB0aGUNCiAgIHN5c3RlbWF0aWMgaW5kaWNlcy4NCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQpMdWJ5LCBldCBhbC4gICAgICAgICAgICAgRXhwaXJlcyBBdWd1c3QgMSwgMjAx MCAgICAgICAgICAgICAgICBbUGFnZSA1MF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICAg IFJhcHRvckcgRkVDIFNjaGVtZSAgICAgICAgICAgICAgIEphbnVhcnkgMjAxMA0KDQoNCjkuICBS ZWZlcmVuY2VzDQoNCjkuMS4gIE5vcm1hdGl2ZSByZWZlcmVuY2VzDQoNCiAgIFtSRkMyMTE5XSAg QnJhZG5lciwgUy4sICJLZXkgd29yZHMgZm9yIHVzZSBpbiBSRkNzIHRvIEluZGljYXRlDQogICAg ICAgICAgICAgIFJlcXVpcmVtZW50IExldmVscyIsIEJDUCAxNCwgUkZDIDIxMTksIE1hcmNoIDE5 OTcuDQoNCiAgIFtSRkM0MDgyXSAgUGVycmlnLCBBLiwgU29uZywgRC4sIENhbmV0dGksIFIuLCBU eWdhciwgSi4sIGFuZCBCLg0KICAgICAgICAgICAgICBCcmlzY29lLCAiVGltZWQgRWZmaWNpZW50 IFN0cmVhbSBMb3NzLVRvbGVyYW50DQogICAgICAgICAgICAgIEF1dGhlbnRpY2F0aW9uIChURVNM QSk6IE11bHRpY2FzdCBTb3VyY2UgQXV0aGVudGljYXRpb24NCiAgICAgICAgICAgICAgVHJhbnNm b3JtIEludHJvZHVjdGlvbiIsIFJGQyA0MDgyLCBKdW5lIDIwMDUuDQoNCiAgIFtTSEExXSAgICAg IlNlY3VyZSBIYXNoIFN0YW5kYXJkIiwgRmVkZXJhbCBJbmZvcm1hdGlvbiBQcm9jZXNzaW5nDQog ICAgICAgICAgICAgIFN0YW5kYXJkcyBQdWJsaWNhdGlvbiAgICAgICAgICAoRklQUyBQVUIpIDE4 MC0xLA0KICAgICAgICAgICAgICBBcHJpbCAyMDA1Lg0KDQogICBbUkZDNTA1Ml0gIFdhdHNvbiwg TS4sIEx1YnksIE0uLCBhbmQgTC4gVmljaXNhbm8sICJGb3J3YXJkIEVycm9yDQogICAgICAgICAg ICAgIENvcnJlY3Rpb24gKEZFQykgQnVpbGRpbmcgQmxvY2siLCBSRkMgNTA1MiwgQXVndXN0IDIw MDcuDQoNCiAgIFtSRkM1MDUzXSAgTHVieSwgTS4sIFNob2tyb2xsYWhpLCBBLiwgV2F0c29uLCBN LiwgYW5kIFQuIFN0b2NraGFtbWVyLA0KICAgICAgICAgICAgICAiUmFwdG9yIEZvcndhcmQgRXJy b3IgQ29ycmVjdGlvbiBTY2hlbWUgZm9yIE9iamVjdA0KICAgICAgICAgICAgICBEZWxpdmVyeSIs IFJGQyA1MDUzLCBPY3RvYmVyIDIwMDcuDQoNCjkuMi4gIEluZm9ybWF0aXZlIHJlZmVyZW5jZXMN Cg0KICAgW1JGQzM0NTNdICBMdWJ5LCBNLiwgVmljaXNhbm8sIEwuLCBHZW1tZWxsLCBKLiwgUml6 em8sIEwuLCBIYW5kbGV5LA0KICAgICAgICAgICAgICBNLiwgYW5kIEouIENyb3djcm9mdCwgIlRo ZSBVc2Ugb2YgRm9yd2FyZCBFcnJvciBDb3JyZWN0aW9uDQogICAgICAgICAgICAgIChGRUMpIGlu IFJlbGlhYmxlIE11bHRpY2FzdCIsIFJGQyAzNDUzLCBEZWNlbWJlciAyMDAyLg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAg ICAgICBFeHBpcmVzIEF1Z3VzdCAxLCAyMDEwICAgICAgICAgICAgICAgIFtQYWdlIDUxXQ0KDA0K SW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgUmFwdG9yRyBGRUMgU2NoZW1lICAgICAgICAgICAg ICAgSmFudWFyeSAyMDEwDQoNCg0KQXV0aG9ycycgQWRkcmVzc2VzDQoNCiAgIE1pY2hhZWwgTHVi eQ0KICAgUXVhbGNvbW0sIEluYy4NCiAgIDMxNjUgS2lmZXIgUm9hZA0KICAgU2FudGEgQ2xhcmEs IDk1MDUxICA5NDUzOA0KICAgVS5TLkEuDQoNCiAgIEVtYWlsOiBsdWJ5QHF1YWxjb21tLmNvbQ0K DQoNCiAgIEFtaW4gU2hva3JvbGxhaGkNCiAgIEVQRkwNCiAgIExhYm9yYXRvaXJlIGQnYWxnb3Jp dGhtaXF1ZQ0KICAgRVBGTA0KICAgU3RhdGlvbiAxNA0KICAgQmF0aW1lbnQgQkMNCiAgIExhdXNh bm5lICAxMDE1DQogICBTd2l0emVybGFuZA0KDQogICBFbWFpbDogYW1pbi5zaG9rcm9sbGFoaUBl cGZsLmNoDQoNCg0KICAgTWFyayBXYXRzb24NCiAgIFF1YWxjb21tLCBJbmMuDQogICAzMTY1IEtp ZmVyIFJvYWQNCiAgIFNhbnRhIENsYXJhLCBDQSAgOTUwNTENCiAgIFUuUy5BLg0KDQogICBFbWFp bDogd2F0c29uQHF1YWxjb21tLmNvbQ0KDQoNCiAgIFRob21hcyBTdG9ja2hhbW1lcg0KICAgTm9t b3IgUmVzZWFyY2gNCiAgIEJyZWNoZXJzcGl0enN0cmFzc2UgOA0KICAgTXVuaWNoICA4MTU0MQ0K ICAgR2VybWFueQ0KDQogICBFbWFpbDogc3RvY2toYW1tZXJAbm9tb3IuZGUNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCkx1YnksIGV0IGFsLiAgICAgICAgICAgICBFeHBpcmVzIEF1Z3VzdCAxLCAy MDEwICAgICAgICAgICAgICAgIFtQYWdlIDUyXQ0KDA0KDQo= --_004_C78626F1AEE9lubyqualcommcom_-- From watson@qualcomm.com Mon Feb 1 09:23:14 2010 Return-Path: X-Original-To: rmt@core3.amsl.com Delivered-To: rmt@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 1652028C204 for ; Mon, 1 Feb 2010 09:23:14 -0800 (PST) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -106.598 X-Spam-Level: X-Spam-Status: No, score=-106.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rhCruSBTbWmE for ; Mon, 1 Feb 2010 09:23:05 -0800 (PST) Received: from wolverine02.qualcomm.com (wolverine02.qualcomm.com [199.106.114.251]) by core3.amsl.com (Postfix) with ESMTP id 57F3528C207 for ; Mon, 1 Feb 2010 09:23:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qualcomm.com; i=watson@qualcomm.com; q=dns/txt; s=qcdkim; t=1265045032; x=1296581032; h=from:to:cc:date:subject:thread-topic:thread-index: message-id:in-reply-to:accept-language:content-language: x-ms-has-attach:x-ms-tnef-correlator:acceptlanguage: content-type:mime-version; z=From:=20"Watson,=20Mark"=20|To:=20B rian=20Adamson=20,=0D=0A=20=20 =20=20=20=20=20=20"Luby,=20Michael"=0D=0A=09|CC:=20"rmt@ietf.org"=20|Date:=20Mon, =201=20Feb=202010=2009:23:04=20-0800|Subject:=20Re:=20[Rm t]=20Rmt=20Digest,=20Vol=2066,=20Issue=208|Thread-Topic: =20[Rmt]=20Rmt=20Digest,=20Vol=2066,=20Issue=208 |Thread-Index:=20AcqjU0SHttyXLjgNSuGeavAb6ZegvQAD/Gu4 |Message-ID:=20 |In-Reply-To:=20<7129A24E-BD24-47CE-8D16-85E28DFFCF7E@itd .nrl.navy.mil>|Accept-Language:=20en-US|Content-Language: =20en|X-MS-Has-Attach:|X-MS-TNEF-Correlator: |acceptlanguage:=20en-US|Content-Type:=20multipart/altern ative=3B=0D=0A=09boundary=3D"_000_C78C4DF838114watsonqual commcom_"|MIME-Version:=201.0; bh=Y0hOdWTT8as+ohDvE8DrHfuNY5j/GmGvUxs0HZvEioo=; b=DOavWgMQ8zGz1QuinfyKxbYKEPm68kAkAgsbxw8SWnj472RAMeaRWD0/ iLOKdqAr6EESxpQ6udcx07pmO7cQ92cMnDMtGP9xeC+SeI/ifU5NwJTpy QmDjm4mAfziegY6HAf9V17P6DsT7ZT1z35Lx7x2tq8rcfAkgllA0tHkYi w=; X-IronPort-AV: E=McAfee;i="5400,1158,5879"; a="33208298" Received: from pdmz-ns-mip.qualcomm.com (HELO ithilien.qualcomm.com) ([199.106.114.10]) by wolverine02.qualcomm.com with ESMTP; 01 Feb 2010 09:23:37 -0800 Received: from ironstorm.qualcomm.com (ironstorm.qualcomm.com [172.30.39.153]) by ithilien.qualcomm.com (8.14.2/8.14.2/1.0) with ESMTP id o11HNOmo026885 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Mon, 1 Feb 2010 09:23:25 -0800 X-IronPort-AV: E=Sophos;i="4.49,384,1262592000"; d="scan'208,217";a="38975346" Received: from nasanexhub05.na.qualcomm.com ([129.46.134.219]) by ironstorm.qualcomm.com with ESMTP/TLS/RC4-MD5; 01 Feb 2010 09:23:23 -0800 Received: from nasclexhc02.na.qualcomm.com (10.227.147.13) by nasanexhub05.na.qualcomm.com (129.46.134.219) with Microsoft SMTP Server (TLS) id 8.2.234.1; Mon, 1 Feb 2010 09:23:12 -0800 Received: from NASCLEXMB02.na.qualcomm.com ([10.227.144.113]) by nasclexhc02.na.qualcomm.com ([10.227.147.13]) with mapi; Mon, 1 Feb 2010 09:23:12 -0800 From: "Watson, Mark" To: Brian Adamson , "Luby, Michael" Date: Mon, 1 Feb 2010 09:23:04 -0800 Thread-Topic: [Rmt] Rmt Digest, Vol 66, Issue 8 Thread-Index: AcqjU0SHttyXLjgNSuGeavAb6ZegvQAD/Gu4 Message-ID: In-Reply-To: <7129A24E-BD24-47CE-8D16-85E28DFFCF7E@itd.nrl.navy.mil> Accept-Language: en-US Content-Language: en X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: multipart/alternative; boundary="_000_C78C4DF838114watsonqualcommcom_" MIME-Version: 1.0 Cc: "rmt@ietf.org" Subject: Re: [Rmt] Rmt Digest, Vol 66, Issue 8 X-BeenThere: rmt@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: Reliable Multicast Transport List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Feb 2010 17:23:14 -0000 --_000_C78C4DF838114watsonqualcommcom_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable This is not an error. It is this way for backwards compatibility with the E= xperimental RFCs. The binary format of the FEC Object Transmission Information was originally= defined in the FLUTE RFC (for use in the EXT_FTI LCT Header Extension). Se= ction 5.1.2.1 of RFC3926 defined the FEC Encoding Id-specific portion of th= e FEC OTI for FEC Encoding Ids 0, 128 and 130 (The "Compact" FEC Schemes) a= nd defined the Maximum Source Block Length to be 32 bits. At least FEC Enco= ding Id 128 has a 32-bit Encoding Symbol Id. Now, we could decide to abandon backwards-compatibility in favour of effici= ency, but this would not be an errata. Also I think the Compact No-Code FEC= Scheme has likely been implemented fairly widely according to the existing= specifications and so we would be in danger of making some existing implem= entations non-compliant (or, more accurately, of breaking alignment between= IETF and other specifications). ...Mark On 2/1/10 7:28 AM, "Brian Adamson" wrote: The issue that brought this up was a question from a developer who was conf= used by this. They were unclear as to whether the FEC Payload ID picture w= as in error or the FEC OTI picture was in error. They were thinking they s= hould perhaps use a 32-bit symbol ID. The other issue with leaving it as it is with a "wasted 16-bits" is that th= e OTI is that it is really a wasted 32-bits since the OTI could be specifie= d as 10 bytes total per the following instead of 14 bytes as currently depi= cted. (This retains the one-half 32-bit word that allows ALC and NORM EXT_F= TI to be 32-bit aligned (i.e. w/ 2 byte header extension header). In princ= iple the wastage is _usually_ not a major issue but we have very loosely co= ordinated multicast use cases where we include the EX_FTI on every packet = bearing content. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transfer Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Encoding Symbol Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max. Source Block Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Brian Adamson adamson@itd.nrl.navy.mil On Jan 30, 2010, at 7:45 PM, Luby, Michael wrote: I see. However, I'm not sure that this qualifies as an "errata", or is sim= ply a waste of 16 bits in the FEC OTI. On the other hand, as it is now, th= e FEC OTI is essentially the same for all the schemes described in this doc= ument (the only difference that I saw is that in some there is a "reserved"= field whereas in others this reserved field is the FEC Instance ID), so th= ere is the advantage that they are all the same. Also the overall FEC OTI = is not very long to start with and only needs to be received once per objec= t, so the wastage is pretty minimal. However, I don't have a strong opinio= n either way so if people feel that this rises to the level of an error tha= t deserves an errata, that is fine with me. On 1/30/10 4:32 PM, "Adamson@Itd. Mil" wrote: According to the text from RFC 5445 Section 3.2.2.2: "Maximum-Source-Block-Length: a non-negative integer, less than 2^^32, indicating the maximum number of source symbols in a source block" it's in "symbols" ... So the question is whether a 32-bit symbol id was intended or if the block length should be 16-bits. I would _guess_ the latter was the intention given this is the _compact_ no FEC scheme? Brian Adamson adamson@itd.nrl.navy.mil On Jan 30, 2010, at 5:28 PM, Luby, Michael wrote: > Isn't max source block Length in units of bytes and ESIs iN units of > symbols? > > > ----- Original Message ----- > From: rmt-bounces@ietf.org > To: rmt@ietf.org > Sent: Sat Jan 30 12:00:02 2010 > Subject: Rmt Digest, Vol 66, Issue 8 > > If you have received this digest without all the individual message > attachments you will need to update your digest options in your list > subscription. To do so, go to > > https://www.ietf.org/mailman/listinfo/rmt > > Click the 'Unsubscribe or edit options' button, log in, and set "Get > MIME or Plain Text Digests?" to MIME. You can set this option > globally for all the list digests you receive at this point. > > > > Send Rmt mailing list submissions to > rmt@ietf.org > > To subscribe or unsubscribe via the World Wide Web, visit > https://www.ietf.org/mailman/listinfo/rmt > or, via email, send a message with subject or body 'help' to > rmt-request@ietf.org > > You can reach the person managing the list at > rmt-owner@ietf.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Rmt digest..." > _______________________________________________ > Rmt mailing list > Rmt@ietf.org > https://www.ietf.org/mailman/listinfo/rmt > _______________________________________________ Rmt mailing list Rmt@ietf.org https://www.ietf.org/mailman/listinfo/rmt --_000_C78C4DF838114watsonqualcommcom_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Re: [Rmt] Rmt Digest, Vol 66, Issue 8 This is not an error. It is this way for backwards compatibility with= the Experimental RFCs.

The binary format of the FEC Object Transmission Information was originally= defined in the FLUTE RFC (for use in the EXT_FTI LCT Header Extension). Se= ction 5.1.2.1 of RFC3926 defined the FEC Encoding Id-specific portion of th= e FEC OTI for FEC Encoding Ids 0, 128 and 130 (The “Compact” FE= C Schemes) and defined the Maximum Source Block Length to be 32 bits. At le= ast FEC Encoding Id 128 has a 32-bit Encoding Symbol Id.

Now, we could decide to abandon backwards-compatibility in favour of effici= ency, but this would not be an errata. Also I think the Compact No-Code FEC= Scheme has likely been implemented fairly widely according to the existing= specifications and so we would be in danger of making some existing implem= entations non-compliant (or, more accurately, of breaking alignment between= IETF and other specifications).

...Mark


On 2/1/10 7:28 AM, "Brian Adamson" <adamson@itd.nrl.navy.mil> wrote:

The issue that brought this up was a questi= on from a developer who was confused by this.  They were unclear as to= whether the FEC Payload ID picture was in error or the FEC OTI picture was= in error.  They were thinking they should perhaps use a 32-bit symbol= ID.  

The other issue with leaving it as it is with a "wasted 16-bits" = is that the OTI is that it is really a wasted 32-bits since the OTI could b= e specified as 10 bytes total per the following instead of 14 bytes as curr= ently depicted. (This retains the one-half 32-bit word that allows ALC and = NORM EXT_FTI to be 32-bit aligned (i.e. w/ 2 byte header extension header).=  In principle the wastage is _usually_ not a major issue but we have = very loosely coordinated multicast  use cases where we include the EX_= FTI on every packet bearing content.

      0     &nbs= p;            &= nbsp;1            &n= bsp;      2      &nb= sp;            = 3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6= 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+= -+-+-+-+-+-+-+-+-+-+-+-+-+
      |       &= nbsp;           &nbs= p;  Transfer Length        &nb= sp;            =      |
      +       &= nbsp;           &nbs= p;           +-+-+-+= -+-+-+-+-+-+-+-+-+-+-+-+-+
      |       &= nbsp;           &nbs= p;           |  = ;   Encoding Symbol Length    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+= -+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Max. Source Block Length =    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


 
Brian Adamson
adamson@itd.nrl.navy.mil



 

On Jan 30, 2010, at 7:45 PM, Luby, Michael wrote:

I see.  However, I’m not sure t= hat this qualifies as an “errata”, or is simply a waste of 16 b= its in the FEC OTI.  On the other hand, as it is now, the FEC OTI is e= ssentially the same for all the schemes described in this document (the onl= y difference that I saw is that in some there is a “reserved” f= ield whereas in others this reserved field is the FEC Instance ID), so ther= e is the advantage that they are all the same.  Also the overall FEC O= TI is not very long to start with and only needs to be received once per ob= ject, so the wastage is pretty minimal.  However, I don’t have a= strong opinion either way so if people feel that this rises to the level o= f an error that deserves an errata, that is fine with me.
 
 
 On 1/30/10 4:32 PM, "Adamson@Itd. Mil" <adamson@itd.nrl.navy.mil> wrote:
 
 
According to the text from RFC 5445 Section= 3.2.2.2:
 
 "Maximum-Source-Block-Length: a non-negative integer, less than = 2^^32,
 indicating the maximum number of source symbols in a source block&quo= t;
 
 it's in "symbols"  ...
 
 So the question is whether a 32-bit symbol id was intended or if the =
 block length should be 16-bits.  I would _guess_ the latter was = the
 intention given this is the _compact_ no FEC scheme?
 
 
 Brian Adamson
 adamson@itd.nrl.navy.mil
 
 
 
 
 On Jan 30, 2010, at 5:28 PM, Luby, Michael wrote:
 
 > Isn't max source block Length in units of bytes and ESIs iN unit= s of
 > symbols?
 >
 >
 > ----- Original Message -----
 > From: rmt-bounces@ietf.org = <rmt-bounces@ietf.org>
 > To: rmt@ietf.org <rmt@ietf.org>
 > Sent: Sat Jan 30 12:00:02 2010
 > Subject: Rmt Digest, Vol 66, Issue 8
 >
 > If you have received this digest without all the individual mess= age
 > attachments you will need to update your digest options in your = list
 > subscription.  To do so, go to
 >
 > https://ww= w.ietf.org/mailman/listinfo/rmt
 >
 > Click the 'Unsubscribe or edit options' button, log in, and set = "Get
 > MIME or Plain Text Digests?" to MIME.  You can set thi= s option
 > globally for all the list digests you receive at this point.
 >
 >
 >
 > Send Rmt mailing list submissions to
 >       rmt= @ietf.org
 >
 > To subscribe or unsubscribe via the World Wide Web, visit
 >       https://www.ietf.org/mailman/listinfo/rmt
 > or, via email, send a message with subject or body 'help' to
 >       rmt-request@ietf.org
 >
 > You can reach the person managing the list at
 >       rmt-owner@ietf.org
 >
 > When replying, please edit your Subject line so it is more speci= fic
 > than "Re: Contents of Rmt digest..."
 > _______________________________________________
 > Rmt mailing list
 > Rmt@ietf.org
 > https://ww= w.ietf.org/mailman/listinfo/rmt
 >
 
 
 
Rmt@ietf.org
https://www.ietf.org/= mailman/listinfo/rmt
Date: Wed, 03 Feb 2010 15:00:46 +0100 From: Vincent Roca User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.7) Gecko/20100120 Fedora/3.0.1-1.fc12 Thunderbird/3.0.1 ThunderBrowse/3.2.8.1 MIME-Version: 1.0 To: "Watson, Mark" References: In-Reply-To: Content-Type: multipart/alternative; boundary="------------080501080702020404010100" Cc: Brian Adamson , "rmt@ietf.org" , "Luby, Michael" Subject: Re: [Rmt] Rmt Digest, Vol 66, Issue 8 X-BeenThere: rmt@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: Reliable Multicast Transport List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Feb 2010 14:00:15 -0000 This is a multi-part message in MIME format. --------------080501080702020404010100 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, I agree with Mark. No matter the reasons that led to the current EXT_FTI format (and backward compatibility is anyway a good reason), do not change anything. Then if we think this 32 bits waste per packet containing this EXT_FTI is really an issue, we can as well specify another FEC Encoding ID to fixe it. It is IMHO a wiser solution. Cheers, Vincent On 02/01/2010 06:23 PM, Watson, Mark wrote: > This is not an error. It is this way for backwards compatibility with > the Experimental RFCs. > > The binary format of the FEC Object Transmission Information was > originally defined in the FLUTE RFC (for use in the EXT_FTI LCT Header > Extension). Section 5.1.2.1 of RFC3926 defined the FEC Encoding > Id-specific portion of the FEC OTI for FEC Encoding Ids 0, 128 and 130 > (The "Compact" FEC Schemes) and defined the Maximum Source Block > Length to be 32 bits. At least FEC Encoding Id 128 has a 32-bit > Encoding Symbol Id. > > Now, we could decide to abandon backwards-compatibility in favour of > efficiency, but this would not be an errata. Also I think the Compact > No-Code FEC Scheme has likely been implemented fairly widely according > to the existing specifications and so we would be in danger of making > some existing implementations non-compliant (or, more accurately, of > breaking alignment between IETF and other specifications). > > ...Mark > > > On 2/1/10 7:28 AM, "Brian Adamson" wrote: > > The issue that brought this up was a question from a developer who > was confused by this. They were unclear as to whether the FEC > Payload ID picture was in error or the FEC OTI picture was in > error. They were thinking they should perhaps use a 32-bit symbol > ID. > > The other issue with leaving it as it is with a "wasted 16-bits" > is that the OTI is that it is really a wasted 32-bits since the > OTI could be specified as 10 bytes total per the following instead > of 14 bytes as currently depicted. (This retains the one-half > 32-bit word that allows ALC and NORM EXT_FTI to be 32-bit aligned > (i.e. w/ 2 byte header extension header). In principle the > wastage is _usually_ not a major issue but we have very loosely > coordinated multicast use cases where we include the EX_FTI on > every packet bearing content. > > 0 1 2 3 > 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | Transfer Length > | > + > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | | Encoding Symbol Length > | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | Max. Source Block Length | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > > > Brian Adamson > adamson@itd.nrl.navy.mil > > > > > > On Jan 30, 2010, at 7:45 PM, Luby, Michael wrote: > > I see. However, I'm not sure that this qualifies as an > "errata", or is simply a waste of 16 bits in the FEC OTI. On > the other hand, as it is now, the FEC OTI is essentially the > same for all the schemes described in this document (the only > difference that I saw is that in some there is a "reserved" > field whereas in others this reserved field is the FEC > Instance ID), so there is the advantage that they are all the > same. Also the overall FEC OTI is not very long to start with > and only needs to be received once per object, so the wastage > is pretty minimal. However, I don't have a strong opinion > either way so if people feel that this rises to the level of > an error that deserves an errata, that is fine with me. > > > On 1/30/10 4:32 PM, "Adamson@Itd. Mil" > wrote: > > > According to the text from RFC 5445 Section 3.2.2.2: > > "Maximum-Source-Block-Length: a non-negative integer, > less than 2^^32, > indicating the maximum number of source symbols in a > source block" > > it's in "symbols" ... > > So the question is whether a 32-bit symbol id was > intended or if the > block length should be 16-bits. I would _guess_ the > latter was the > intention given this is the _compact_ no FEC scheme? > > > Brian Adamson > adamson@itd.nrl.navy.mil > > > > > On Jan 30, 2010, at 5:28 PM, Luby, Michael wrote: > > > Isn't max source block Length in units of bytes and ESIs > iN units of > > symbols? > > > > > > ----- Original Message ----- > > From: rmt-bounces@ietf.org > > To: rmt@ietf.org > > Sent: Sat Jan 30 12:00:02 2010 > > Subject: Rmt Digest, Vol 66, Issue 8 > > > > If you have received this digest without all the > individual message > > attachments you will need to update your digest options > in your list > > subscription. To do so, go to > > > > https://www.ietf.org/mailman/listinfo/rmt > > > > Click the 'Unsubscribe or edit options' button, log in, > and set "Get > > MIME or Plain Text Digests?" to MIME. You can set this > option > > globally for all the list digests you receive at this point. > > > > > > > > Send Rmt mailing list submissions to > > rmt@ietf.org > > > > To subscribe or unsubscribe via the World Wide Web, visit > > https://www.ietf.org/mailman/listinfo/rmt > > or, via email, send a message with subject or body 'help' to > > rmt-request@ietf.org > > > > You can reach the person managing the list at > > rmt-owner@ietf.org > > > > When replying, please edit your Subject line so it is > more specific > > than "Re: Contents of Rmt digest..." > > _______________________________________________ > > Rmt mailing list > > Rmt@ietf.org > > https://www.ietf.org/mailman/listinfo/rmt > > > > > > > _______________________________________________ > Rmt mailing list > Rmt@ietf.org > https://www.ietf.org/mailman/listinfo/rmt > > > > > _______________________________________________ > Rmt mailing list > Rmt@ietf.org > https://www.ietf.org/mailman/listinfo/rmt > --------------080501080702020404010100 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi,

I agree with Mark. No matter the reasons that led to the current EXT_FTI format
(and backward compatibility is anyway a good reason), do not change anything.
Then if we think this 32 bits waste per packet containing this EXT_FTI is really
an issue, we can as well specify another FEC Encoding ID to fixe it. It is IMHO
a wiser solution.

Cheers,

   Vincent


On 02/01/2010 06:23 PM, Watson, Mark wrote:
Re: [Rmt] Rmt Digest, Vol 66, Issue 8 This is not an error. It is this way for backwards compatibility with the Experimental RFCs.

The binary format of the FEC Object Transmission Information was originally defined in the FLUTE RFC (for use in the EXT_FTI LCT Header Extension). Section 5.1.2.1 of RFC3926 defined the FEC Encoding Id-specific portion of the FEC OTI for FEC Encoding Ids 0, 128 and 130 (The “Compact” FEC Schemes) and defined the Maximum Source Block Length to be 32 bits. At least FEC Encoding Id 128 has a 32-bit Encoding Symbol Id.

Now, we could decide to abandon backwards-compatibility in favour of efficiency, but this would not be an errata. Also I think the Compact No-Code FEC Scheme has likely been implemented fairly widely according to the existing specifications and so we would be in danger of making some existing implementations non-compliant (or, more accurately, of breaking alignment between IETF and other specifications).

...Mark


On 2/1/10 7:28 AM, "Brian Adamson" <adamson@itd.nrl.navy.mil> wrote:

The issue that brought this up was a question from a developer who was confused by this.  They were unclear as to whether the FEC Payload ID picture was in error or the FEC OTI picture was in error.  They were thinking they should perhaps use a 32-bit symbol ID.  

The other issue with leaving it as it is with a "wasted 16-bits" is that the OTI is that it is really a wasted 32-bits since the OTI could be specified as 10 bytes total per the following instead of 14 bytes as currently depicted. (This retains the one-half 32-bit word that allows ALC and NORM EXT_FTI to be 32-bit aligned (i.e. w/ 2 byte header extension header).  In principle the wastage is _usually_ not a major issue but we have very loosely coordinated multicast  use cases where we include the EX_FTI on every packet bearing content.

      0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      Transfer Length                          |
      +                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                               |     Encoding Symbol Length    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Max. Source Block Length    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


 
Brian Adamson
adamson@itd.nrl.navy.mil



 

On Jan 30, 2010, at 7:45 PM, Luby, Michael wrote:

I see.  However, I’m not sure that this qualifies as an “errata”, or is simply a waste of 16 bits in the FEC OTI.  On the other hand, as it is now, the FEC OTI is essentially the same for all the schemes described in this document (the only difference that I saw is that in some there is a “reserved” field whereas in others this reserved field is the FEC Instance ID), so there is the advantage that they are all the same.  Also the overall FEC OTI is not very long to start with and only needs to be received once per object, so the wastage is pretty minimal.  However, I don’t have a strong opinion either way so if people feel that this rises to the level of an error that deserves an errata, that is fine with me.
 
 
 On 1/30/10 4:32 PM, "Adamson@Itd. Mil" <adamson@itd.nrl.navy.mil> wrote:
 
 
According to the text from RFC 5445 Section 3.2.2.2:
 
 "Maximum-Source-Block-Length: a non-negative integer, less than 2^^32,
 indicating the maximum number of source symbols in a source block"
 
 it's in "symbols"  ...
 
 So the question is whether a 32-bit symbol id was intended or if the
 block length should be 16-bits.  I would _guess_ the latter was the
 intention given this is the _compact_ no FEC scheme?
 
 
 Brian Adamson
 adamson@itd.nrl.navy.mil
 
 
 
 
 On Jan 30, 2010, at 5:28 PM, Luby, Michael wrote:
 
 > Isn't max source block Length in units of bytes and ESIs iN units of
 > symbols?
 >
 >
 > ----- Original Message -----
 > From: rmt-bounces@ietf.org <rmt-bounces@ietf.org>
 > To: rmt@ietf.org <rmt@ietf.org>
 > Sent: Sat Jan 30 12:00:02 2010
 > Subject: Rmt Digest, Vol 66, Issue 8
 >
 > If you have received this digest without all the individual message
 > attachments you will need to update your digest options in your list
 > subscription.  To do so, go to
 >
 > https://www.ietf.org/mailman/listinfo/rmt
 >
 > Click the 'Unsubscribe or edit options' button, log in, and set "Get
 > MIME or Plain Text Digests?" to MIME.  You can set this option
 > globally for all the list digests you receive at this point.
 >
 >
 >
 > Send Rmt mailing list submissions to
 >       rmt@ietf.org
 >
 > To subscribe or unsubscribe via the World Wide Web, visit
 >       https://www.ietf.org/mailman/listinfo/rmt
 > or, via email, send a message with subject or body 'help' to
 >       rmt-request@ietf.org
 >
 > You can reach the person managing the list at
 >       rmt-owner@ietf.org
 >
 > When replying, please edit your Subject line so it is more specific
 > than "Re: Contents of Rmt digest..."
 > _______________________________________________
 > Rmt mailing list
 > Rmt@ietf.org
 > https://www.ietf.org/mailman/listinfo/rmt
 >
 
 
 

  _______________________________________________
Rmt mailing list
Rmt@ietf.org
https://www.ietf.org/mailman/listinfo/rmt


_______________________________________________ Rmt mailing list Rmt@ietf.org https://www.ietf.org/mailman/listinfo/rmt

--------------080501080702020404010100-- From root@core3.amsl.com Wed Feb 10 17:15:06 2010 Return-Path: X-Original-To: rmt@ietf.org Delivered-To: rmt@core3.amsl.com Received: by core3.amsl.com (Postfix, from userid 0) id 8F7DF3A74D8; Wed, 10 Feb 2010 17:15:03 -0800 (PST) From: Internet-Drafts@ietf.org To: i-d-announce@ietf.org Content-Type: Multipart/Mixed; Boundary="NextPart" Mime-Version: 1.0 Message-Id: <20100211011504.8F7DF3A74D8@core3.amsl.com> Date: Wed, 10 Feb 2010 17:15:03 -0800 (PST) Cc: rmt@ietf.org Subject: [Rmt] I-D Action:draft-ietf-rmt-bb-fec-raptorq-01.txt X-BeenThere: rmt@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: Reliable Multicast Transport List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Feb 2010 01:15:06 -0000 --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Reliable Multicast Transport Working Group of the IETF. Title : RaptorQ Forward Error Correction Scheme for Object Delivery Author(s) : M. Luby, et al. Filename : draft-ietf-rmt-bb-fec-raptorq-01.txt Pages : 52 Date : 2010-02-10 This document describes a Fully-Specified FEC scheme, corresponding to FEC Encoding ID 6 (to be confirmed (tbc)), for the RaptorQ forward error correction code and its application to reliable delivery of data objects. RaptorQ codes are a new family of codes that provide superior flexibility, support for larger source block sizes and better coding efficiency than Raptor codes in RFC5053. RaptorQ is also a fountain code, i.e., as many encoding symbols as needed can be generated by the encoder on-the-fly from the source symbols of a source block of data. The decoder is able to recover the source block from any set of encoding symbols for most cases equal to the number of source symbols and in rare cases with slightly more than the number of source symbols. The RaptorQ code described here is a systematic code, meaning that all the source symbols are among the encoding symbols that can be generated. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-rmt-bb-fec-raptorq-01.txt Internet-Drafts are also available by anonymous FTP at: ftp://ftp.ietf.org/internet-drafts/ Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Message/External-body; name="draft-ietf-rmt-bb-fec-raptorq-01.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <2010-02-10171130.I-D@ietf.org> --NextPart-- From luby@qualcomm.com Thu Feb 18 15:34:22 2010 Return-Path: X-Original-To: rmt@core3.amsl.com Delivered-To: rmt@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 208E63A7DF9 for ; Thu, 18 Feb 2010 15:34:22 -0800 (PST) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -106.598 X-Spam-Level: X-Spam-Status: No, score=-106.598 tagged_above=-999 required=5 tests=[AWL=-0.000, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VxMHzr3XtiGW for ; Thu, 18 Feb 2010 15:34:18 -0800 (PST) Received: from wolverine01.qualcomm.com (wolverine01.qualcomm.com [199.106.114.254]) by core3.amsl.com (Postfix) with ESMTP id 11DC73A7BED for ; Thu, 18 Feb 2010 15:34:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qualcomm.com; i=luby@qualcomm.com; q=dns/txt; s=qcdkim; t=1266536162; x=1298072162; h=from:to:cc:date:subject:thread-topic:thread-index: message-id:accept-language:content-language: x-ms-has-attach:x-ms-tnef-correlator:acceptlanguage: content-type:mime-version; z=From:=20"Luby,=20Michael"=20|To:=20"r mt@ietf.org"=20|CC:=20"Luby,=20Michael"=20< luby@qualcomm.com>,=20"Watson,=20Mark"=20,=0D=0A=20=20=20=20=20=20=20=20"Stockhammer,=20Thoma s"=20|Date:=20Thu,=2018=20Feb=2020 10=2015:36:00=20-0800|Subject:=20FLUTE=20draft |Thread-Topic:=20FLUTE=20draft|Thread-Index:=20Acqw8yBd39 zn54XNy0uJCywdveC1IA=3D=3D|Message-ID:=20|Accept-Language:=20en-US |Content-Language:=20en|X-MS-Has-Attach: |X-MS-TNEF-Correlator:|acceptlanguage:=20en-US |Content-Type:=20multipart/alternative=3B=0D=0A=09boundar y=3D"_000_C7A30EE0B9E3lubyqualcommcom_"|MIME-Version:=201 .0; bh=+uxCVBFj5a767XNpV9dxg3kwDfxpXk6aXhh8hesBFYw=; b=CM/vGJzEkUeNyfjzUv+Y6kLw20V2qrmnHUAXOGP6JDg2mZEB+SOoWgW0 Zpxy8akNDFDb+OUl8/3Er4A02EcSb729AXNA0XO7pdvZJ3lB+QhmEs4+f CbpNEJTm8pMSe7r4jQtc0uNEUJ/5ZVwD/FEXJy8M2+Un+kDWcvCJG9+Mq o=; X-IronPort-AV: E=McAfee;i="5400,1158,5896"; a="34473678" Received: from pdmz-ns-mip.qualcomm.com (HELO numenor.qualcomm.com) ([199.106.114.10]) by wolverine01.qualcomm.com with ESMTP; 18 Feb 2010 15:36:02 -0800 Received: from ironrogue.qualcomm.com (ironrogue.qualcomm.com [129.46.61.164]) by numenor.qualcomm.com (8.14.2/8.14.2/1.0) with ESMTP id o1INa23n014760 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Thu, 18 Feb 2010 15:36:02 -0800 X-IronPort-AV: E=Sophos;i="4.49,497,1262592000"; d="scan'208,217";a="43313632" Received: from nasanexhub06.na.qualcomm.com ([129.46.134.254]) by ironrogue.qualcomm.com with ESMTP/TLS/RC4-MD5; 18 Feb 2010 15:36:01 -0800 Received: from nasclexhc01.na.qualcomm.com (10.227.147.14) by nasanexhub06.na.qualcomm.com (129.46.134.254) with Microsoft SMTP Server (TLS) id 8.2.234.1; Thu, 18 Feb 2010 15:36:01 -0800 Received: from NASCLEXMB02.na.qualcomm.com ([10.227.144.112]) by nasclexhc01.na.qualcomm.com ([10.227.147.14]) with mapi; Thu, 18 Feb 2010 15:36:01 -0800 From: "Luby, Michael" To: "rmt@ietf.org" Date: Thu, 18 Feb 2010 15:36:00 -0800 Thread-Topic: FLUTE draft Thread-Index: Acqw8yBd39zn54XNy0uJCywdveC1IA== Message-ID: Accept-Language: en-US Content-Language: en X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: multipart/alternative; boundary="_000_C7A30EE0B9E3lubyqualcommcom_" MIME-Version: 1.0 Cc: "Watson, Mark" , "Stockhammer, Thomas" , "Luby, Michael" Subject: [Rmt] FLUTE draft X-BeenThere: rmt@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: Reliable Multicast Transport List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Feb 2010 23:34:22 -0000 --_000_C7A30EE0B9E3lubyqualcommcom_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable RMT, The ATSC standardization group is finalizing a standard for NRT delivery (N= RT =3D Non-Real Time), and it is based on FLUTE. The ATSC NRT needs some o= f the functionality in the revised FLUTE versus the original FLUTE, and to = meet their standardization deadlines they would need the new FLUTE to be an= RFC within a month or so. I have the personal action item to try and make= sure that this happens. Furthermore, Magnus has asked that this FLUTE be = finalized into its RFC form before he steps down as AD very soon. There doesn't seem to be any response to the comments/movement to revise th= e FLUTE draft from the RMT group based on recently sent out comments from I= ANA, security directorate, and Gen-Art LC. I therefore volunteer (with th= e help of Mark, Tom) to take over the responsibility to respond to these co= mments and prepare the new FLUTE draft that is the response. So, two ques= tions: (1) Is this ok with the group (Toni, Rod, Vincent)? (2) If yes to (1), please send the FLUTE draft in the right format for edit= ing/updating as soon as possible (XML?). Thanks, Mike Luby --_000_C7A30EE0B9E3lubyqualcommcom_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable FLUTE draft RMT,
The ATSC standardization group is finalizing a standard for NRT delivery (N= RT =3D Non-Real Time), and it is based on FLUTE.  The ATSC NRT needs s= ome of the functionality in the revised FLUTE versus the original FLUTE, an= d to meet their standardization deadlines they would need the new FLUTE to = be an RFC within a month or so.  I have the personal action item to tr= y and make sure that this happens.  Furthermore, Magnus has asked that= this FLUTE be finalized into its RFC form before he steps down as AD very = soon.

There doesn’t seem to be any response to the comments/movement to rev= ise the FLUTE draft from the RMT group based on recently sent out comments = from IANA, security directorate,  and Gen-Art LC.  I therefore vo= lunteer (with the help of Mark, Tom) to take over the responsibility to res= pond to these comments and prepare the new FLUTE draft that is the response= .   So, two questions:
(1) Is this ok with the group (Toni, Rod, Vincent)?
(2) If yes to (1), please send the FLUTE draft in the right format for edit= ing/updating as soon as possible (XML?).
Thanks, Mike Luby
--_000_C7A30EE0B9E3lubyqualcommcom_--