Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 1100 invoked from network); 23 Dec 2008 07:35:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 23 Dec 2008 07:35:11 -0000 Received: (qmail 76880 invoked by uid 500); 23 Dec 2008 07:35:09 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 76843 invoked by uid 500); 23 Dec 2008 07:35:09 -0000 Mailing-List: contact dev-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list dev@harmony.apache.org Received: (qmail 76832 invoked by uid 99); 23 Dec 2008 07:35:09 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Dec 2008 23:35:09 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of pmcfirst@gmail.com designates 209.85.218.15 as permitted sender) Received: from [209.85.218.15] (HELO mail-bw0-f15.google.com) (209.85.218.15) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 23 Dec 2008 07:34:58 +0000 Received: by bwz8 with SMTP id 8so5711951bwz.12 for ; Mon, 22 Dec 2008 23:34:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=eztibs0Seh+tDtS+Eyy20IaAj36PSot2kNj254WqFus=; b=DXQhuC7c4Sd+VuMstwFk3NdFpT7Kani8ToAw9TOcCpPGX7o422dTpnEJ7veGzglnho 5XbkxLdCo8R+bFCCzhFi6nmkZNyTK0uJDOXW8/n5KXAUv0//jZu1oKgYuVVggOJc0Flg mLDTMhubYYJB0kreCJRCQfvR5ccnY5K83zneM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=s/4rAPn7MGFHGss1VZnuzzbx2qDcNifreA2wYeKqNJsn6crY1Cd66C9KznAcrq7zGQ YDFCBz2S2+vrfuLre0OUmtf4gP7PH15qDuK3SN15TwwwDMIB3FAILtd7GkuUL90cRIjw bymPgArZyt8yvkg4OzB7txrAe+ZaDQ/BYp2SY= Received: by 10.103.176.20 with SMTP id d20mr2641712mup.27.1230017677275; Mon, 22 Dec 2008 23:34:37 -0800 (PST) Received: by 10.103.248.7 with HTTP; Mon, 22 Dec 2008 23:34:37 -0800 (PST) Message-ID: Date: Tue, 23 Dec 2008 10:34:37 +0300 From: "Pavel Pervov" To: dev@harmony.apache.org Subject: Re: [VM] On-demand class library parsing is ready to commit In-Reply-To: <4bebff790812221606v6068a35rb8672e403b6a3bf6@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Content-Disposition: inline References: <494BC4FD.3070502@gmail.com> <4bebff790812211204o683f0bafp9346e02965410f11@mail.gmail.com> <4bebff790812221606v6068a35rb8672e403b6a3bf6@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org R3V5cywKCldoeSB5b3UgYXJlIGluIG5lZWQgb2YgaW5zdHJ1bWVudGF0aW9uPwpZb3Ugb25seSB3 YW50IHRvIG1lYXN1cmUgdGhlIHRpbWUgc3BlbnQgaW4gSk5JX0NyZWF0ZUphdmFWTSBtZXRob2Qu IEl0CmlzIHZlcnktdmVyeSBzaW1wbGUgdG8gY3JlYXRlIEMtcHJvZ3JhbSB3aGljaCB1dGlsaXpl cyBpbnZvY2F0aW9uIEFQSQp0byBjYWxsIHRvIEpOSV9DcmVhdGVKYXZhVk0gYW5kIGNhbGxzIHRv IHBlcmZvcm1hbmNlIGNvdW50ZXJzIGJlZm9yZQphbmQgYWZ0ZXIgVk0gY3JlYXRpb24gdG8gY2Fs Y3VsYXRlIHRoYXQgdGltZS4gVGhpcyB3aWxsIGJlIGV4YWN0bHkgdGhlCiJzdGFydHVwLXRpbWUi IGFjY29yZGluZyB0byBXZW5sb25nLiBUaGVuIHlvdSBjYW4gcnVuIGl0IHRocm91Z2ggdGhlCnNj cmlwdCBzdXBwbGllZCBieSBBbGVrc2V5LgoKSWYgeW91IGFsc28gd2FudCB0byBpbmNsdWRlIGZp bmRpbmcgbWFpbiBjbGFzcyAtIHlvdSBjYW4gbG9vayBpbnRvIG91cgpsYXVuY2hlciBhbmQgYm9y cm93IHRoZSBjb2RlIGZyb20gdGhlcmUuCgpJbnZvY2F0aW9uIEFQSSBydWxlcy4gOykKCldCUiwK ICAgIFBhdmVsLgoKT24gVHVlLCBEZWMgMjMsIDIwMDggYXQgMzowNiBBTSwgQWxla3NleSBTaGlw aWxldgo8YWxla3NleS5zaGlwaWxldkBnbWFpbC5jb20+IHdyb3RlOgo+IEhpLCBXZW5sb25nIQo+ Cj4gVGhhdCB3b3VsZCBiZSB0ZXJyaWZpYy4KPgo+IENhbiB5b3UgcGxlYXNlIGRvIHRoZSBmb2xs b3dpbmcgcnVucyBpbiBib3RoIGNvbGQgYW5kIHdhcm0gbW9kZXM6Cj4gIGEuIEhXQSB3aXRob3V0 IGluc3RydW1lbnRhdGlvbi4KPiAgYi4gSFdBIHdpdGggaW5zdHJ1bWVudGF0aW9uIHdoaWNoIG1l YXN1cmUgdGhlIGZvbGxvd2luZyBzdGFnZXM6IFZNCj4gY3JlYXRpb24gdGltZSwgSmF2YSBtYWlu KCkgZXhlY3V0aW9uLCBzaHV0ZG93biBzZXF1ZW5jZS4KPiAgYy4gU1BFQ2p2bTIwMDg6c3RhcnR1 cC5oZWxsb3dvcmxkIHdpdGhvdXQgaW5zdHJ1bWVudGF0aW9uLgo+Cj4gVGhlIGluc3RydW1lbnRh dGlvbiBjb2RlIHNob3VsZCBiZWxvbmcgaW4gY29ycmVzcG9uZGluZyBKSVJBIGlzc3VlLCBhcwo+ IHRoZSBwYXJ0IG9mIHByZXJlcXVpc2l0ZXMgZm9yIHRlc3RpbmcgeW91ciBwYXRjaC4KPgo+IFRo YW5rcywKPiBBbGVrc2V5Lgo+Cj4gT24gVHVlLCBEZWMgMjMsIDIwMDggYXQgMjo0NSBBTSwgV2Vu bG9uZyBMaSA8d2VubG9uZ0BnbWFpbC5jb20+IHdyb3RlOgo+PiBBbGVrc2V5LAo+Pgo+PiBEbyB5 b3UgbWluZCByZXBlYXRpbmcgbXkgZXhwZXJpbWVudCBpbiB5b3VyIHNpZGU/IFlvdXIgY29kZSBi ZWxvdyBhbHNvCj4+IG1lYXN1cmVzIHRoZSBWTSBkZXN0cm95IHRpbWUsIGFuZCBpdCBjb3VsZCBi ZSB2ZXJ5IGxvbmcuIFlvdSBjYW4KPj4gaW5zdHJ1bWVudCBpdCBpbiBkZXN0cm95X1ZNLiBTbyBt eSBzdWdnZXN0aW9uIGlzIGNhbiB5b3Ugb25seSByZXBvcnQKPj4gdGhlIHRpbWUgYmVmb3JlIGV4 ZWN1dGluZyB1c2VyJ3MgY29kZSwgZS5nLiwgdGhlIHZtIGNyZWF0aW9uIHRpbWUsCj4+IGV0Yy4g SSBjYW4gc2hhcmUgbXkgdGltZSBpbnN0cnVtZW50YXRpb24gY29kZSBpZiBuZWVkZWQuCj4+Cj4+ IEkgd2FudCB0byByZXBlYXQgeW91ciBleHBlcmltZW50IGluIG15IHNpZGUuCj4+Cj4+IHRoeCwK Pj4gV2VubG9uZwo+Pgo+PiBPbiBNb24sIERlYyAyMiwgMjAwOCBhdCA0OjA0IEFNLCBBbGVrc2V5 IFNoaXBpbGV2Cj4+IDxhbGVrc2V5LnNoaXBpbGV2QGdtYWlsLmNvbT4gd3JvdGU6Cj4+PiBIaSBX ZW5sb25nLAo+Pj4KPj4+IEkgaGFkIHNvbWUgcGVyZm9ybWFuY2UgZXhwZXJpbWVudHMgd2l0aCB5 b3VyIHBhdGNoLiBUaGUgdGVzdCBzeXN0ZW0gaXM6Cj4+PiAgLSBQZW50aXVtIEQgODIwIDIuOCBH aHogLyAyIEdiIEREUjItNjY3Cj4+PiAgLSBXRCAzMjAwS1MsIDMyMCBHYiwgMTYgTWIgY2FjaGUK Pj4+ICAtIEdlbnRvbyBMaW51eCB4ODYsIDIuNi4yMwo+Pj4gIC0gSGFybW9ueSByNzI4NDU5Cj4+ PiAgLSBTUEVDanZtMjAwOAo+Pj4KPj4+IFRvIHJlY3JlYXRlIHRoZSBzdHJlc3NmdWwgY29uZGl0 aW9ucyBvdmVyIGFuZCBvdmVyIHRoZSBzaW1wbGUgc2NyaXB0Cj4+PiB3YXMgd3JpdHRlbiBbMV0u IFRoZSBzY3JpcHQgaW52YWxpZGF0ZXMgdGhlIGNhY2hlcyBiZWZvcmUgYWN0dWFsbHkKPj4+IHN0 YXJ0aW5nIHRoZSB3b3JrbG9hZDogcmUtcmVhZHMgdGhlIHNhbWUgNjQgTWIgZmlsZSBhIGNvdXBs ZSBvZiB0aW1lcwo+Pj4gdG8gZmlsbCBvdXQgb24tSEREIGNhY2hlLCBpbnZhbGlkYXRpbmcgVkZT IGJsb2NrIGNhY2hlcyBmaXJzdCB0byBtYWtlCj4+PiBzdXJlIHRoZSBkYXRhIGlzIHJlYWxseSBy ZXF1ZXN0ZWQgZnJvbSB0aGUgZGlzay4KPj4+Cj4+PiBPbiBIV0EgWzJdIHRoZXNlIHBlcmZvcm1h bmNlIHJlc3VsdHMgd2VyZSBwcm9kdWNlZDoKPj4+Cj4+PiAiY29sZC1zdGFydCIgKGludmFsaWRh dGUgY2FjaGVzKToKPj4+IGNsZWFuOiAoNS4yNCArLSAwLjI4KSBzZWNzCj4+PiBvbmRlbWFuZDog KDQuNDkgKy0gMC4xNykgc2Vjcwo+Pj4KPj4+ICJ3YXJtLXN0YXJ0IiAoZG9uJ3QgaW52YWxpZGF0 ZSBjYWNoZXMpOwo+Pj4gY2xlYW46ICgyLjgyICstIDAuMDEpIHNlY3MKPj4+IG9uZGVtYW5kOiAo Mi44MCArLSAwLjAyKSBzZWNzCj4+Pgo+Pj4gVGhhdCBpcywgb24tZGVtYW5kIHBhdGNoIGRvZXMg YnJpbmcgKzE3JSAoLSs5JSkgaW1wcm92ZW1lbnQgb24gSFdBCj4+PiB3aGVuIHJ1bm5pbmcgd2l0 aCBmbHVzaGVkIGNhY2hlcywgYW5kIGRvZXMgbm90IGJyaW5nIGFueSBwZXJmb3JtYW5jZQo+Pj4g aW1wcm92ZW1lbnQgaW4gd2FybSBtb2RlLgo+Pj4KPj4+IEFzIEkgbWVudGlvbmVkIHNldmVyYWwg dGltZXMsIHRoaXMgdGVzdCBkb2VzIG5vdCByZWZsZWN0IHRoZSByZWFsCj4+PiBwZXJmb3JtYW5j ZSBlbmQgdXNlciB3b3VsZCBwZXJjZWl2ZSwgc28gSSB0b29rIHR3byBTUEVDanZtMjAwODpzdGFy dHVwCj4+PiBiZW5jaG1hcmtzIGFuZCBydW4gZWFjaCBvZiB0aGVtIDEweDEwIHRpbWVzLgo+Pj4K Pj4+IFNQRUNqdm0yMDA4OnN0YXJ0dXAuaGVsbG93b3JsZCwgImNvbGQgc3RhcnQiOgo+Pj4gY2xl YW46ICg4LjkzICstIDAuMjEpIG9wcy9taW4KPj4+IG9uZGVtYW5kOiAoOS4wNCArLSAwLjAzKSBv cHMvbWluCj4+Pgo+Pj4gU1BFQ2p2bTIwMDg6c3RhcnR1cC5jb21waWxlci5jb21waWxlciwgImNv bGQgc3RhcnQiOgo+Pj4gY2xlYW46ICgxLjQ0ICstIDAuMDUpIG9wcy9taW4KPj4+IG9uZGVtYW5k OiAoMS40MiArLSAwLjA0KSBvcHMvbWluCj4+Pgo+Pj4gQXMgeW91IGNhbiBzZWUgZXZlbiBpbiB2 ZXJ5IHN0cmVzc2Z1bCBzaXR1YXRpb24gdGhlcmUncyBubyBib29zdC4gSQo+Pj4gd291bGQgZmlu ZCB0aGVzZSBwZXJmb3JtYW5jZSByZXN1bHRzIHVuY29udmluY2luZyB0byBjaGFuZ2UgdGhlCj4+ PiBpbmZyYXN0cnVjdHVyZSBvZiBib29sY2xhc3NwYXRoIHJlc29sdXRpb24uIEFtIEkgbWlzc2lu ZyBzb21ldGhpbmcKPj4+IGltcG9ydGFudD8KPj4+Cj4+PiBUaGFua3MsCj4+PiBBbGVrc2V5Lgo+ Pj4KPj4+IFsxXSBydW4uc2gKPj4+ICMhL2Jpbi9iYXNoCj4+Pgo+Pj4gUj1gcHdkYAo+Pj4KPj4+ IEpBVkE9JFIvcGxhdGZvcm1zL2J1aWxkcy9oYXJtb255LXJlbGVhc2UtY2xlYW4vamRrL2pyZS9i aW4vamF2YQo+Pj4gI0pBVkE9JFIvcGxhdGZvcm1zL2J1aWxkcy9oYXJtb255LXJlbGVhc2Utb25k ZW1hbmQvamRrL2pyZS9iaW4vamF2YQo+Pj4gSkFWQV9PUFRTPSItWG14MTAyNE0gLVhtczEwMjRN Igo+Pj4KPj4+IGZvciBUIGluIGBzZXEgMSAxMGA7IGRvCj4+Pgo+Pj4gICAgICAgIGVjaG8gIioq KioqKioqKioqKioqKiBFWEVDVVRJTkcgSVRFUkFUSU9OICRUICoqKioqKioqKioqKioqKioiCj4+ Pgo+Pj4gICAgICAgICMgaW52YWxpZGF0ZSBIREQgY2FjaGVzCj4+PiAgICAgICAgIyAgIC0gbmVl ZCB0byByZXBsYWNlIGFsbCBlbnRyaWVzIGluIExSVSBIREQgY2FjaGUKPj4+ICAgICAgICAjICAg LSBmbHVzaCB0aGUga2VybmVsIFZGUyBjYWNoZSBmaXJzdCB0byBlbnN1cmUgdGhlIGRhdGEKPj4+ IHdvdWxkIGJlIHJlYWQgZnJvbSBkaXNrCj4+Pgo+Pj4gICAgICAgIGVjaG8gIkZsdXNoaW5nIGNh Y2hlcyIKPj4+ICAgICAgICBmb3IgSSBpbiBgc2VxIDEgNWA7IGRvCj4+PiAgICAgICAgICAgICAg ICBzeW5jCj4+PiAgICAgICAgICAgICAgICBlY2hvIDMgPiAvcHJvYy9zeXMvdm0vZHJvcF9jYWNo ZXMKPj4+Cj4+PiAgICAgICAgICAgICAgICBkZCBpZj1jYWNoZWtpbGxlci5maWxlIG9mPS9kZXYv bnVsbCA+IC9kZXYvbnVsbCAyPiYxCj4+PiAgICAgICAgZG9uZQo+Pj4KPj4+ICAgICAgICBlY2hv ICJFeGVjdXRpbmcuIgo+Pj4KPj4+ICAgICAgICAjIEhlbGxvV29ybGQKPj4+ICAgICAgICAvdXNy L2Jpbi90aW1lICRKQVZBICRKQVZBX09QVFMgLWNwIGJlbmNobWFya3MvIEhlbGxvV29ybGQgMj4m MQo+Pj4KPj4+ICAgICAgICAjIFNQRUNqdm0yMDA4Cj4+PiAgICAgICAgI2NkICRSL2JlbmNobWFy a3Mvc3RvcmFnZS9TUEVDanZtMjAwOAo+Pj4gICAgICAgICMvdXNyL2Jpbi90aW1lICRKQVZBICRK QVZBX09QVFMgLURqYXZhLmF3dC5oZWFkbGVzcz10cnVlIC1qYXIKPj4+IFNQRUNqdm0yMDA4Lmph ciAtaWt2IC1pIDEwIHN0YXJ0dXAuY29tcGlsZXIuY29tcGlsZXIgMj4mMQo+Pj4KPj4+ICAgICAg ICBlY2hvICIiCj4+PiBkb25lCj4+Pgo+Pj4gWzJdIEhlbGxvV29ybGQuamF2YQo+Pj4gcHVibGlj IGNsYXNzIEhlbGxvV29ybGQgewo+Pj4gcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10g YXJncykgewo+Pj4gICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSGVsbG8sIHdvcmxkISIpOwo+ Pj4gfQo+Pj4gfQo+Pj4KPj4+Cj4+PiBPbiBTdW4sIERlYyAyMSwgMjAwOCBhdCA2OjAyIEFNLCBX ZW5sb25nIExpIDx3ZW5sb25nQGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4gT24gU2F0LCBEZWMgMjAs IDIwMDggYXQgNzoxMCBQTSwgQWxleGVpIEZlZG90b3YKPj4+PiA8YWxleGVpLmZlZG90b3ZAZ21h aWwuY29tPiB3cm90ZToKPj4+Pj4gV2VubG9uZywKPj4+Pj4gVGhhbmtzIGZvciByZW1vdmluZyB0 aGUgY29tbWVudGVkIGNvZGUuCj4+Pj4+Cj4+Pj4+IFRoZXJlIGFyZSBzZXZlcmFsIFZNcyB3aGlj aCBtYWtlIHVzZSBvZiB0aGUgSGFybW9ueSBjbGFzcyBsaWJyYXJ5LAo+Pj4+PiBlLmcuIEhhcm1v bnkgVk0sIEo5LCBBbmRyb2lkIERhbHZpaywgZXRjLiBZb3VyIGNoYW5nZSBpcyBIYXJtb255IFZN Cj4+Pj4+IHNwZWNpZmljLCBpc24ndCBpdD8gSWYgaXQgaXMsIHRoZW4gaXQncyBiZXR0ZXIgdG8g a2VlcCByZWxhdGVkIGNoYW5nZXMKPj4+Pj4gaW4gdGhlIFZNIG1vZHVsZS4gSWYgaXQgaXMgbm90 LCB0aGVuIGl0IG1pZ2h0IGJlIGEgZ29vZCBpZGVhIHRvIGtlZXAKPj4+Pj4gdGhlIGNoYW5nZXMg aW4gdGhlIGNsYXNzIGxpYnJhcnkgbW9kdWxlIHVubGVzcyBvdGhlciBWTXMgYWxyZWFkeSBoYXMK Pj4+Pj4gc3VjaCBvcHRpbWl6YXRpb24gaW4gdGhlaXIgY29kZS4KPj4+PiBbV2VubG9uZ10gVGhv dWdoIGF0IHRoaXMgbW9tZW50LCB5b3UgY2FuIHRoaW5rIG9uLWRlbWFuZCBjbGFzcyBwYXJzaW5n Cj4+Pj4gaXMgYSBzcGVjaWYgb3B0aW1pemF0aW9uIGZyb20geW91ciBwb2ludCBvZiB2aWV3LiBJ IGJlbGlldmUgaXQgY291bGQKPj4+PiBiZSBhIGdlbmVyYWwgdGVjaG5pcXVlLCBlLmcuLCBpdCBj YW4gYmUgZWFzaWx5IGRlcGxveWVkIGluIG90aGVyCj4+Pj4gcnVudGltZSBzeXN0ZW1zLiBDdXJy ZW50IFZNIGFsc28gZGVwZW5kcyBvbiB0aGUgbHVuaWdsb2JhbC5jIGluCj4+Pj4gd29ya2luZ19j bGFzc2xpYiB0byBnZXQgYWxsIGNsYXNzIGxpYnJhcmllcy9tb2R1bGVzLiBlLmcuLCB0aGVyZSBp cyBhCj4+Pj4gY3Jvc3MtbW9kdWxlIGRlcGVuZGVuY2UgYmV0d2VlbiBjbGFzc2xpYiBhbmQgVk0u IFdoZW4gdXNlciB3YW50cyB0bwo+Pj4+IGFkZCBuZXcgbW9kdWxlLCB0aGV5IHNob3VsZCBtYW51 YWxseSBjaGFuZ2UgdGhlCj4+Pj4gYm9vdGNsYXNzcGF0aC5wcm9wZXJ0aWVzLCB3aGlsZSBpZiBh cHBseWluZyB0aGlzIHBhdGNoLCB1c2VyIHNob3VsZAo+Pj4+IHJldmlzZSBteSBhZGRlZCBwcm9w ZXJ0eSBmaWxlIGluc3RlYWQgb2YgdGhlIGJvb3RjbGFzc3BhdGgucHJvcGVydGllcy4KPj4+PiBJ IHVuZGVyc3RhbmQgbW9kaWZ5aW5nIGJvb3RjbGFzc3BhdGggZmlsZSBtYXkgYmUgYSBzcGVjaWZp Y2F0aW9uLgo+Pj4+Pgo+Pj4+PiBJbiBhbnkgY2FzZSBjcm9zc2luZyBtb2R1bGUgYm91bmRhcnkg d291bGQgbWFrZSBjbGFzcyBsaWJyYXJ5IHVzZXJzCj4+Pj4+IHRoaW5rIG1vcmUgdGhhbiBvbmNl IG9yIGV2ZW4gd3JpdGUgc29tZSBjb2RlLiBJcyBpdCB0ZWNobmljYWxseQo+Pj4+PiBwb3NzaWJs ZSB0byBwcmVwYXJlIGEgcGF0Y2ggd2hpY2ggZG9lcyBub3QgY2hhbmdlIG1vZHVsZSBib3VuZGFy aWVzPwo+Pj4+PiBXaGF0IGRvIHlvdSB0aGluaz8KPj4+PiBbV2VubG9uZ10gWWVzLCBpdCBpcyBw b3NzaWJsZSBmcm9tIHRlY2huaWNhbCBwZXJzcGVjdGl2ZSwgYnV0IGEgbGl0dGxlCj4+Pj4gY29t cGxpY2F0ZWQuIEkgY2FuIHRoaW5rIGFib3V0IGl0LiA6KQo+Pj4+Cj4+Pj4+Cj4+Pj4+IEFzIGZv ciB5b3VyIHBlcmZvcm1hbmNlIGV4cGVyaW1lbnRzLCB3aGljaCBwYXJ0aWN1bGFyIHRlc3QgYXJl IHlvdXIKPj4+Pj4gbWVhc3VyaW5nPyBJdCBpcyBib290Y2xhc3NwYXRoLXVucHJldGVudGlvdXMg IkhlbGxvLCB3b3JsZCIsIGlzbid0IGl0Pwo+Pj4+IFtXZW5sb25nXSBNeSBzdGFydHVwIG1lYW5z IHRoZSB3b3JrIGV4ZWN1dGVkIGJlZm9yZSBydW5uaW5nIHVzZXIncwo+Pj4+IGNvbXB1dGF0aW9u LiBUaGF0IGlzLCB0aGUgdm0gY3JlYXRpb24gdGltZS4gSSBtYW51YWxseSBhZGQKPj4+PiBpbnN0 cnVtZW50YXRpb24gY29kZSBmb3IgZXhlY3V0aW9uIHRpbWUgaW4gSk5JX0NyZWF0ZUphdmFWTSBv Zgo+Pj4+IEpOSS5jcHAuIFRoaXMgc3RhcnR1cCB3b3JrIGlzIGNvbW1vbiBmb3IgYW55IGJlbmNo bWFya3MuIE15IGV4cGVyaW1lbnQKPj4+PiB3YXMgY29uZHVjdGVkIG9uIGJvdGggV2luZG93cyBh bmQgTGludXggc3lzdGVtLiBQbGVhc2Ugc2VlIG15IHByZXZpb3VzCj4+Pj4gbWVzc2FnZSBhYm91 dCBwZXJmb3JtYW5jZSBnYWluIGZyb20gdGhpcyBvcHRpbWl6YXRpb24uCj4+Pj4KPj4+PiBUaHgs Cj4+Pj4gV2VubG9uZwo+Pj4+Pgo+Pj4+PiBUaGFua3MhCj4+Pj4+Cj4+Pj4+IE9uIFNhdCwgRGVj IDIwLCAyMDA4IGF0IDI6MTkgQU0sIFdlbmxvbmcgTGkgPHdlbmxvbmdAZ21haWwuY29tPiB3cm90 ZToKPj4+Pj4+IE9uIFNhdCwgRGVjIDIwLCAyMDA4IGF0IDEyOjQyIEFNLCBBbGV4ZWkgRmVkb3Rv dgo+Pj4+Pj4gPGFsZXhlaS5mZWRvdG92QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4+Pj4gV2VubG9u ZywKPj4+Pj4+PiBIYXZlIEkgbWlzc2VkIGEgZGlzY3Vzc2lvbiBvZiB0aGUgcHJvcG9zZWQgZGVz aWduPyBJIHNlZSB0aGF0IHlvdQo+Pj4+Pj4+IGV4cG9zZSBhIG5ldyBwdWJsaWMgaW50ZXJmYWNl Ogo+Pj4+Pj4+ICAvKioKPj4+Pj4+PiAgKiBAbWFwIHRoZSBqYXIgd2l0aCBleHBvcnRlZCBwYWNr YWdlIGluIHRoZSBwZW5kaW5nIGphciBsaXN0IGZvcgo+Pj4+Pj4+IG9uLWRlbWFuZCBqYXIgcGFy c2luZwo+Pj4+Pj4+ICAqICAgS2V5IGlzIHRoZSBqYXIsIGFuZCB2YWx1ZSBpcyB0aGUgcGFja2Fn ZSBleHBvcnRlZCBieSB0aGlzIGphcgo+Pj4+Pj4+ICAqLwo+Pj4+Pj4+IERFQ0xBUkVfT1BFTih2 b2lkLCB2bV9wcm9wZXJ0aWVzX3NldF9wZW5kaW5nX2phciwgKGNvbnN0IGNoYXIqIGtleSwKPj4+ Pj4+PiBjb25zdCBjaGFyKiB2YWx1ZSkpOwo+Pj4+Pj4+Cj4+Pj4+Pj4gRGlkIHlvdSBtZWFuICJN YXBzIiBpbnN0ZWFkIG9mICJAbWFwIj8gU3RyYW5nZWx5IHRoZSB3b3JkICJwZW5kaW5nIgo+Pj4+ Pj4+IGRpc2FwcGVhcmVkIGZyb20gdGhlIG5hbWUgb2YgdGhlIHdyYXBwaW5nIFZNSSBpbnRlcmZh Y2UKPj4+Pj4+PiBTZXRKYXJQYWNrYWdlTWFwcGluZyAuIFdoeSBzaG91bGQgd2UgZXh0ZW5kIGJv dGggT1BFTiBhbmQgVk1JCj4+Pj4+Pj4gaW50ZXJmYWNlcyB3aXRoIHRoZSBzYW1lIGZ1bmN0aW9u PyBXaHkgZGlkIHlvdSBwdXQgeW91ciBjb2RlIGludG8KPj4+Pj4+PiB3b3JraW5nX2NsYXNzbGli L21vZHVsZXMvbHVuaS9zcmMvbWFpbi9uYXRpdmUvbHVuaS9zaGFyZWQvbHVuaWdsb2IuYywKPj4+ Pj4+PiB0aHVzIGludHJvZHVjaW5nIGFub3RoZXIgZGVwZW5kZW5jeSBiZXR3ZWVuIFZNIGFuZCBj bGFzcyBsaWJyYXJ5Pwo+Pj4+Pj4gW1dlbmxvbmddIFRoZSBib290IGNsYXNzIHBhdGggaXMgZGVm aW5lZCBpbiBsdW5pZ2xvYmFsLmMgaW4gSGFybW9ueSwKPj4+Pj4+IGFuZCBpdCBhbHNvIGhhcyBk ZXBlbmRlbmNlIHdpdGggVk0uIEluIG15IHVuZGVyc3RhbmRpbmcsIG15IHBhdGNoIGlzCj4+Pj4+ PiByZWxhdGVkIHRvIGJvb3QgY2xhc3MgcGF0aCBkZXRlcm1pbmF0aW9uLCBzbyBJIGFsc28gcHV0 IG15IGNvZGUgaW4KPj4+Pj4+IGx1bmlnbG9iYWwuYywgYW5kIHVzZSBWTUkgaW50ZXJmYWNlIHRv IGNvbW11bmljYXRlIHdpdGggVk0uCj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gKyAgICAgICAgICAg IC8vcmNTZXRQcm9wZXJ0eSA9ICgqdm1JbnRlcmZhY2UpLT5TZXRKYXJQYWNrYWdlTWFwcGluZwo+ Pj4+Pj4+ICh2bUludGVyZmFjZSwgamFyTmFtZSwgamFyVmFsdWUpOwo+Pj4+Pj4+ICsgICAgICAg ICAgICAvKgo+Pj4+Pj4+ICsgICAgICAgICAgICBoeW1lbV9mcmVlX21lbW9yeShqYXJOYW1lKTsK Pj4+Pj4+PiArICAgICAgICAgICAgaHltZW1fZnJlZV9tZW1vcnkoamFyVmFsdWUpOwo+Pj4+Pj4+ ICsgICAgICAgICAgICAqLwo+Pj4+Pj4+IFNob3VsZCB3ZSByZWFsbHkgY29tbWl0IHRoZSBjb21t ZW50ZWQgY29kZT8KPj4+Pj4+PiBUaGFua3MuCj4+Pj4+Pgo+Pj4+Pj4gW1dlbmxvbmddIFBsZWFz ZSBzZWUgbXkgbGF0ZXN0IHZlcnNpb24gb2YgcGF0Y2ggaW4gdGhlIGxpc3QuIFN1Y2gKPj4+Pj4+ IGNvbW1lbnRlZCBjb2RlIGhhcyBiZWVuIHJlbW92ZWQuCj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+ IE9uIEZyaSwgRGVjIDE5LCAyMDA4IGF0IDY6NTkgUE0sIFRpbSBFbGxpc29uIDx0LnAuZWxsaXNv bkBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Pj4+PiBJIHdhcyBob3BpbmcgdGhhdCBzb21lYm9keSBl bHNlIHdvdWxkIGNvbW1lbnQgZmlyc3QsIHNvIEkgZG9uJ3QgaGF2ZSB0bwo+Pj4+Pj4+PiBiZSB0 aGUgZ3J1bXB5IG9uZSBhbGwgdGhlIHRpbWUgOi0pCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEFzIEkgc2Fp ZCBiZWZvcmUsIHRoaXMgaXMgZ29vZCBwcm90b3R5cGluZyB3b3JrLi4uCj4+Pj4+Pj4+Cj4+Pj4+ Pj4+IFdlbmxvbmcgTGkgd3JvdGU6Cj4+Pj4+Pj4+PiBJIGRpZCB0aGUgcHJlLWNvbW1pdCB0ZXN0 IG9uIHRoZSBwYXRjaCBvZiBvbi1kZW1hbmQgY2xhc3MgbGlicmFyeQo+Pj4+Pj4+Pj4gcGFyc2lu ZyAoaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9IQVJNT05ZLTYwMzkpLCBh bmQgaXQKPj4+Pj4+Pj4+IHdvcmtzIHdlbGwgbm93Lgo+Pj4+Pj4+Pj4gQ2FuIEhhcm1vbnkgaW5j b3Jwb3JhdGUgdGhpcyBmZWF0dXJlPwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBJJ20gbm90IHN1cmUgaXQg aXMgcmVhZHkgZm9yIGNvbW1pdHRpbmcgdG8gdGhlIGhlYWQgc3RyZWFtIHlldC4KPj4+Pj4+Pj4K Pj4+Pj4+Pj4+IFZpYSBvbi1kZW1hbmQgY2xhc3MgcGFyc2luZywgd2UgY2FuIHJlZHVjZSBzdGFy dHVwIHRpbWUgZnJvbSAyMCsKPj4+Pj4+Pj4+IHNlY29uZHMgdG8gMyBzZWNvbmRzIGZvciBjb2xk IHJ1bmluZywgYW5kIDE3MCBtcyB0byAxNDAgbXMgZm9yIHdhcm0tdXAKPj4+Pj4+Pj4+IHJ1bm5p bmcgb24gQ29yZSAyIER1byB3aXRoIFdpbmRvd3MuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IENhbiB5b3Ug dGVsbCBtZSBob3cgdG8gcmVwcm9kdWNlIDIwK3NlYyBjb2xkIHN0YXJ0LXVwPyAgSSBoYXZlbid0 IHNlZW4KPj4+Pj4+Pj4gYW55dGhpbmcgbGlrZSB0aGF0IGluIG15IHNpbXBsZSB0ZXN0cy4KPj4+ Pj4+Pj4KPj4+Pj4+Pj4+IEFmdGVyIGFwcGx5aW5nIHRoZSBwYXRjaCwgcGxlYXNlIG5vdGUgdGhl cmUgaXMgc29tZSBjaGFuZ2UgdG8gYWRkIG5ldyBtb2R1bGVzLgo+Pj4+Pj4+Pj4gKDEpIElmIHlv dSB3YW50IHRvIGFkZCBuZXcgbW9kdWxlcy9saWJyYXJpZXMsIHBsZWFzZSBkb24ndCBwdXQgdGhl bSBpbgo+Pj4+Pj4+Pj4gdGhlIGJvb3RjbGFzc3BhdGgucHJvcGVydGllcyBmaWxlLiBUaGlzIGZp bGUgbm93IG9ubHkgc2F2ZXMgbW9kdWxlcwo+Pj4+Pj4+Pj4gbmVlZGVkIGR1cmluZyBzdGFydHVw ICh0aGUgVk0gc3RhcnR1cCBvbmx5IGFjY2Vzc2VzIGNsYXNzIGxpYnJhcmllcyBpbgo+Pj4+Pj4+ Pj4gZWlnaHQgbW9kdWxlcykKPj4+Pj4+Pj4KPj4+Pj4+Pj4gVGhhdCB3b3VsZCBicmVhayB0b28g bXVjaC4gIEhvdyBhYm91dCBjcmVhdGluZyBhIG5ldyBmaWxlIHJhdGhlciB0aGFuCj4+Pj4+Pj4+ IHJlLXB1cnBvc2luZyBhbiBleGlzdGluZyBmaWxlIHdpdGggZGlmZmVyZW50IHNlbWFudGljcz8g IFRoaXMgZmlsZSBpcwo+Pj4+Pj4+PiB1c2VkIGJ5IEppa2VzLCBJQk0gVk1FLCB0aGUgRWNsaXBz ZSBwbHVnLWluLCBhdCBsZWFzdC4KPj4+Pj4+Pj4KPj4+Pj4+Pj4+ICgyKSBGb3IgbmV3IG1vZHVs ZXMvbGlicmFyaWVzLCBwbGVhc2UgcHV0IHRoZW0gaW4gdGhlCj4+Pj4+Pj4+PiBtb2R1bGVsaWJy YXJ5bWFwcGluZy5wcm9wZXJ0aWVzIGZpbGUuIFlvdSBzaG91bGQgc3BlY2lmeSB0aGUgbW9kdWxl Cj4+Pj4+Pj4+PiBuYW1lIGFuZCBpdHMgZXhwb3J0ZWQgY2xhc3MgbGlicmFyeS4gSGVyZSBpcyBv bmUgZXhhbXBsZToKPj4+Pj4+Pj4+IG1hdGguamFyPWphdmEubWF0aCwgd2hlcmUgIm1hdGguamFy IiBtZWFucyB0aGUgbW9kdWxlIG5hbWUsIGFuZAo+Pj4+Pj4+Pj4gImphdmEubWF0aCIgbWVhbnMg dGhlIGNsYXNzIGxpYnJhcmllcyB0aGlzIG1vZHVsZSBleHBvcnRzLgo+Pj4+Pj4+Pgo+Pj4+Pj4+ PiBBcyB3ZSBkaXNjdXNzZWQgb24gYW5vdGhlciB0aHJlYWQsIGl0cyB1bmNsZWFyIGlmIHRoZSB0 aW1lIGlzIHNwZW50IGluCj4+Pj4+Pj4+IGZvbGxvd2luZyB0aGUgc2xvdyBpbmRleGluZyB0aHJv dWdoIHRoZSBjbGFzc3BhdGgvSkFSIGRpcmVjdG9yaWVzLCBvcgo+Pj4+Pj4+PiB3aGV0aGVyIGl0 IGlzIHNwZWVkIG9mIGxvYWRpbmcgYnl0ZXMgb25jZSB3ZSBrbm93IHdoYXQgd2UgbmVlZC4gIEkg dGhpbmsKPj4+Pj4+Pj4gdGhhdCBpdCBpcyBwcmVtYXR1cmUgdG8gYWJhbmRvbiB0aGUgSkFSIG1h bmlmZXN0IGRhdGEgYXMgdGhlIHByaW5jaXBhbAo+Pj4+Pj4+PiBzb3VyY2Ugb2YgbWV0YWRhdGEg dW50aWwgd2UgdW5kZXJzdGFuZCB0aGUgcHJvYmxlbSB0aGlzIHNvbHZlcy4KPj4+Pj4+Pj4KPj4+ Pj4+Pj4gQ2FuIHdlIG1lYXN1cmUgd2hlcmUgdGhlIHRpbWUgaXMgc3BlbnQgaW4gdGhlIGN1cnJl bnQgaW1wbGVtZW50YXRpb24/Cj4+Pj4+Pj4+IEkgdGhpbmsgaXQgd2lsbCBoZWxwIGd1aWRlIHRo aXMgYXBwcm9hY2ggdG8gYSBiZXR0ZXIgc29sdXRpb24uCj4+Pj4+Pj4+IFdoYXQgdG9vbHMgZG8g eW91IHJlY29tbWVuZCBmb3IgcHJvZmlsaW5nIHN0YXJ0LXVwPwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBS ZWdhcmRzCj4+Pj4+Pj4+IFRpbQo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+ Pj4+Pgo+Pj4+Pj4+IC0tCj4+Pj4+Pj4g0KEg0YPQstCw0LbQtdC90LjQtdC8LAo+Pj4+Pj4+INCQ 0LvQtdC60YHQtdC5INCk0LXQtNC+0YLQvtCyLAo+Pj4+Pj4+INCX0JDQniDCq9Ci0LXQu9C10LrQ vtC8INCt0LrRgdC/0YDQtdGB0YHCuwo+Pj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+ Pj4+PiAtLQo+Pj4+PiDQoSDRg9Cy0LDQttC10L3QuNC10LwsCj4+Pj4+INCQ0LvQtdC60YHQtdC5 INCk0LXQtNC+0YLQvtCyLAo+Pj4+PiDQl9CQ0J4gwqvQotC10LvQtdC60L7QvCDQrdC60YHQv9GA 0LXRgdGBwrsKPj4+Pj4KPj4+Pgo+Pj4KPj4KPgo=