Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 54755 invoked from network); 14 Jan 2009 13:38:56 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Jan 2009 13:38:55 -0000 Received: (qmail 81745 invoked by uid 500); 14 Jan 2009 13:38:54 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 81713 invoked by uid 500); 14 Jan 2009 13:38:54 -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 81702 invoked by uid 99); 14 Jan 2009 13:38:54 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Jan 2009 05:38:54 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of wenlong@gmail.com designates 209.85.221.10 as permitted sender) Received: from [209.85.221.10] (HELO mail-qy0-f10.google.com) (209.85.221.10) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Jan 2009 13:38:48 +0000 Received: by qyk3 with SMTP id 3so599629qyk.12 for ; Wed, 14 Jan 2009 05:38:26 -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=hiLjDCBoTIA8hXOskQX7a4kFje4yJxIeHRTlPDDTUHA=; b=tAmvz2ykcw1p3clT66CQcNfJkVyMbGJ3EnY2gBJcraW6QFZSz9oOHS6wm2IC7BhDEx u9m1KDkU1h5PP7RAyfD/LzsWl9gD8XO7Xqk6dDfez3fAzL7AaqWqx+sarpL6W2VmHmzs 2Pl70WKAXug3PYxrInsAojgX+kKHin0rgGtCM= 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=mEqnRCzDmUBX1BqRVWLhYZi9ne+DJkq6wdmSWsdJjHRbg0aSlgCQd627HEScwdcfFi aUxcH4uaPlWsDz+nnJdRPKjXZYxb6d0/rbeYem+ad/jNatXBFrOvQN8x2hZEavCTw5J3 tZev1YbFyi/FWNZtC3cZDqKon/4Oc2ZE/Lpfk= Received: by 10.215.38.7 with SMTP id q7mr126312qaj.193.1231940306720; Wed, 14 Jan 2009 05:38:26 -0800 (PST) Received: by 10.214.150.21 with HTTP; Wed, 14 Jan 2009 05:38:26 -0800 (PST) Message-ID: Date: Wed, 14 Jan 2009 21:38:26 +0800 From: "Wenlong Li" To: dev@harmony.apache.org Subject: Re: [VM] On-demand class library parsing is ready to commit In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Content-Disposition: inline References: <9623c9a50812260116i10eefbdfi32135ddb20a20511@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org QWxleGVpLAoKU29ycnkgZm9yIGNvbmZ1c2luZy4gVGhlIHBhdGNoIGZvciByZXZpZXcgaXMgSDYw MzkucGF0Y2hfMi4gUGxlYXNlCmtpbmRseSBwcm92aWRlIHlvdXIgY29tbWVudC4KCkFsZWtzZXks CgpJIGhhdmUgbm90IG1lYXN1cmVkIHRoZSBwZXJmb3JtYW5jZSBiZWZvcmUgY29tcGxldGluZyB0 aGUgY29kZSByZXZpZXcuCkkgd2lsbCBkbyB0aGF0IGxhdGVyLgoKdGh4LCBXZW5sb25nCgpPbiBX ZWQsIEphbiAxNCwgMjAwOSBhdCA5OjE0IFBNLCBXZW5sb25nIExpIDx3ZW5sb25nQGdtYWlsLmNv bT4gd3JvdGU6Cj4gUGF2ZWwsCj4KPiBQbHMgc2VlIG15IGNvbW1lbnRzIGluIHRoZSBKSVJBLgo+ Cj4gdGh4LCBXZW5sb25nCj4KPiBPbiBXZWQsIEphbiAxNCwgMjAwOSBhdCA4OjQ0IFBNLCBQYXZl bCBQZXJ2b3YgPHBtY2ZpcnN0QGdtYWlsLmNvbT4gd3JvdGU6Cj4+IFBsZWFzZSwgYWxzbywgY2hl Y2sgdGhhdCBqYXIgZW50cnkgY2FjaGVzIHN0aWxsIHdvcmsgY29ycmVjdGx5IGFmdGVyIHlvdXIg cGF0Y2guCj4+Cj4+IFBhdmVsLgo+Pgo+PiBPbiBXZWQsIEphbiAxNCwgMjAwOSBhdCAxMjozMyBQ TSwgV2VubG9uZyBMaSA8d2VubG9uZ0BnbWFpbC5jb20+IHdyb3RlOgo+Pj4gQWxsLAo+Pj4KPj4+ IEkgc3VibWl0IGEgbmV3IHBhdGNoIGZvciBvbi1kZW1hbmQgY2xhc3MgbG9hZGluZyBhbmQgcGFy c2luZy4gQWxsCj4+PiBjb2RlcyBhcmUgcHV0IGluIFZNIHNpZGUsIGFuZCB0aGUgbWFwcGluZyBp bmZvIGlzIGF1dG9tYXRpY2FsbHkKPj4+IHByb2R1Y2VkLgo+Pj4KPj4+IFBscyBzZWUgaHR0cHM6 Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9IQVJNT05ZLTYwMzkKPj4+Cj4+PiBDb21t ZW50cyBhcmUgd2VsY29tZS4KPj4+Cj4+PiBUaHgsIFdlbmxvbmcKPj4+IE1hbmFnZWQgUnVudGlt ZSBUZWNobm9sb2d5IENlbnRlciwgSW50ZWwKPj4+Cj4+PiBPbiBXZWQsIEphbiA3LCAyMDA5IGF0 IDEyOjA4IFBNLCBXZW5sb25nIExpIDx3ZW5sb25nQGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4gQWxs LAo+Pj4+IEF0IHRoaXMgbW9tZW50LCBJIG1vdmUgYWxsIHVwZGF0ZXMgaW4gY2xhc3NsaWIgdG8g Vk0gc2lkZSBzdWNoIHRoYXQKPj4+PiB0aGVyZSBpcyBubyBtb2R1bGFyaXR5IGlzc3VlLiBOZXh0 IHN0ZXAgaXMgdG8gcHJvZHVjZSB0aGUgbWFwcGluZwo+Pj4+IGJldHdlZW4gbW9kdWxlIGFuZCBs aWJyYXJ5IGVmZmljaWVudGx5IGFuZCBhY2N1cmF0ZWx5Lgo+Pj4+Cj4+Pj4gQ29tbWVudHMgYXJl IHdlbGNvbWUuCj4+Pj4KPj4+PiBUaHgsIFdlbmxvbmcKPj4+PiBNYW5hZ2VkIFJ1bnRpbWUgVGVj aG5vbG9neSBDZW50ZXIsIEludGVsCj4+Pj4KPj4+PiBPbiBUdWUsIEphbiA2LCAyMDA5IGF0IDEx OjA4IFBNLCBXZW5sb25nIExpIDx3ZW5sb25nQGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4+IFRoeCA6 KQo+Pj4+Pgo+Pj4+PiBPbiBUdWUsIEphbiA2LCAyMDA5IGF0IDEwOjM1IFBNLCBBbGV4ZWkgRmVk b3Rvdgo+Pj4+PiA8YWxleGVpLmZlZG90b3ZAZ21haWwuY29tPiB3cm90ZToKPj4+Pj4+IFN1cmUu Cj4+Pj4+Pgo+Pj4+Pj4gMS4gSWYgeW91IGRpZyBpbnRvIFNldENsYXNzcGF0aEZyb21TdHJpbmcs IHlvdSB3aWxsIHNlZSB0aGF0IGl0IHN0YXJ0cyBmcm9tCj4+Pj4+PiBzcGxpdHRpbmcgdGhlIGdp dmVuIGNsYXNzcGF0aCBpbnRvIHBpZWNlcy4gWW91IGFscmVhZHkga25vdyB0aGUgbmV3IHBpZWNl Cj4+Pj4+PiB5b3UgYWRkIGFuZCBtYXkgc2tpcCBzcGxpdHRpbmcgc3RlcC4KPj4+Pj4+Cj4+Pj4+ PiAyLiBJZiBJIHVuZGVyc3RhbmQgeW91IGNvZGUgY29ycmVjdGx5LCB0aGUgY2FzZSAicGRlc3Qg Pgo+Pj4+Pj4gKCppdCkuc2Vjb25kLT5ieXRlcyIgbWlnaHQgYmUgYSBzdWJqZWN0IG9mIGEgbmVn YXRpdmUgYXNzZXJ0aW9uLiBBZGRpbmcgdGhpcwo+Pj4+Pj4gYXNzcnRpb24gd291bGQgc3BlZWQg dXAgYnVnIGRpc2NvdmVyeS4KPj4+Pj4+Cj4+Pj4+PiBUaGFua3MuCj4+Pj4+Pgo+Pj4+Pj4KPj4+ Pj4+IE9uIFR1ZSwgSmFuIDYsIDIwMDkgYXQgNTowOSBBTSwgV2VubG9uZyBMaSA8d2VubG9uZ0Bn bWFpbC5jb20+IHdyb3RlOgo+Pj4+Pj4KPj4+Pj4+PiBZZXMsIFhpYW8tRmVuZydzIHVuZGVyc3Rh bmRpbmcgaXMgY29ycmVjdC4gVGhlIHBhdGNoIGxvYWRzIGFuZCBwYXJzZXMKPj4+Pj4+PiBtb2R1 bGVzIG9uIGRlbWFuZC4gSWYgbm8gY2xhc3MgaW4gc3dpbmcuamFyIGlzIG5vdCByZXF1ZXN0ZWQs IHRoZW4KPj4+Pj4+PiB0aGlzIG1vZHVsZSB3aWxsIG5vdCBiZSBsb2FkZWQuCj4+Pj4+Pj4KPj4+ Pj4+PiBidHcsIEFsZXhlaSwgeW91IHNhaWQgIlNldENsYXNzcGF0aEZyb21TdHJpbmciIGFuZCAi cGRlc3QgPgo+Pj4+Pj4+ICgqaXQpLnNlY29uZC0+Ynl0ZXMiIGFyZSBub3QgZWZmaWNpZW50LiBD YW4geW91IHNoYXJlIG1vcmUgY29tbWVudHMgb24KPj4+Pj4+PiB0aGVtPyBJIGp1c3QgcmV1c2Vk IHNvbWUgY29kZSBpbiBIYXJtb255LCBhbmQgZGlkbid0IG9wdGltaXplIHRoZW0KPj4+Pj4+PiBm dXJ0aGVyLgo+Pj4+Pj4+Cj4+Pj4+Pj4gVGh4LCBXZW5sb25nCj4+Pj4+Pj4gTWFuYWdlZCBSdW50 aW1lIFRlY2hub2xvZ3kgQ2VudGVyLCBJbnRlbAo+Pj4+Pj4+Cj4+Pj4+Pj4gT24gRnJpLCBEZWMg MjYsIDIwMDggYXQgNToxNiBQTSwgWGlhby1GZW5nIExpIDx4aWFvZmVuZy5saUBnbWFpbC5jb20+ Cj4+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4gPiBPbiBGcmksIERlYyAyNiwgMjAwOCBhdCA1OjA4IFBN LCBBbGV4ZWkgRmVkb3Rvdgo+Pj4+Pj4+ID4gPGFsZXhlaS5mZWRvdG92QGdtYWlsLmNvbT4gd3Jv dGU6Cj4+Pj4+Pj4gPj4gWGlhbyBGZW5nLAo+Pj4+Pj4+ID4+IFRoYW5rIHlvdSBmb3IgZXhwbGFp bmluZy4KPj4+Pj4+PiA+Pgo+Pj4+Pj4+ID4+IEkgZ2V0IG1vcmUgbWlub3IgY29tbWVudHMgb24g bW9yZSBjb21tZW50ZWQgY29kZSwgaW5lZmZlY3RpdmUKPj4+Pj4+PiA+PiBTZXRDbGFzc3BhdGhG cm9tU3RyaW5nIHVzYWdlLCBub24tY292ZXJlZCB1bmV4cGVjdGVkIGNhc2Ugd2hlbiBwZGVzdCA+ Cj4+Pj4+Pj4gPj4gKCppdCkuc2Vjb25kLT5ieXRlcy4gT25lIG1ham9yIGNvbW1lbnQgb24gY3Jv c3Npbmcgdm0gbW9kdWxlIGJvdW5kYXJ5Cj4+Pj4+Pj4gPj4gc3RpbGwgcmVtYWlucy4gQnV0IG5v dyBJJ20gaGFwcHkgd2l0aCB0aGUgZGVzaWduLgo+Pj4+Pj4+ID4KPj4+Pj4+PiA+IEFsZXhlaSwg eWVzLCBJIGFncmVlIHdpdGggeW91ciBjb21tZW50cy4gVGhlc2UgcGFydHMgc2hvdWxkIGJlCj4+ Pj4+Pj4gPiBpbXByb3ZlZC4gKFN0aWxsLCB0aGlzIGlzIG15IHBlcnNvbmFsIG9waW5pb24uIDop ICBMZXQncyB3YWl0IFdlbmxvbmcKPj4+Pj4+PiA+IHNwZWFraW5nLikKPj4+Pj4+PiA+Cj4+Pj4+ Pj4gPiBUaGFua3MsCj4+Pj4+Pj4gPiB4aWFvZmVuZwo+Pj4+Pj4+ID4KPj4+Pj4+PiA+PiBTb3Jy eSBmb3IgYmVpbmcgc2xvdy4KPj4+Pj4+PiA+Pgo+Pj4+Pj4+ID4+Cj4+Pj4+Pj4gPj4KPj4+Pj4+ PiA+PiBPbiBGcmksIERlYyAyNiwgMjAwOCBhdCAxMTo0MCBBTSwgWGlhby1GZW5nIExpIDx4aWFv ZmVuZy5saUBnbWFpbC5jb20+Cj4+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4gPj4+IE9uIEZyaSwgRGVj IDI2LCAyMDA4IGF0IDQ6MDMgUE0sIEFsZXhlaSBGZWRvdG92Cj4+Pj4+Pj4gPj4+IDxhbGV4ZWku ZmVkb3RvdkBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Pj4+ID4+Pj4gWGlhby1GZW5nLAo+Pj4+Pj4+ ID4+Pj4gQ29udGludWluZyB3aXRoIHRoZSBzZXJ2ZXIgZXhhbXBsZSBjb3VsZCB5b3UgcGxlYXNl IGdpdmUgbWUgYSBoaW50Cj4+Pj4+Pj4gd2hlcmUKPj4+Pj4+PiA+Pj4+IGRlY2lzaW9uIHRvIGxv YWQgc3dpbmcuamFyIG9yIG5vdCBpcyB0YWtlbiBpbiB0aGUgcGF0Y2g/IE15IGluaXRpYWwKPj4+ Pj4+PiA+Pj4+IHBlcmNlcHRpb24gd2FzIHRoYXQgdGhlIGxpc3Qgb2Ygd2hhdCB0byBsb2FkIHdh cyBoYXJkY29kZWQgYW5kIHdhcyBub3QKPj4+Pj4+PiA+Pj4+IGNvbnN0cnVjdGVkIGR5bmFtaWNh bGx5IGRlcGVuZGluZyBvbiBhcHBsaWNhdGlvbi4KPj4+Pj4+PiA+Pj4KPj4+Pj4+PiA+Pj4gQWxl eGVpLCBoZXJlIGlzIHRoZSBwYXRjaCBjb2RlIEkgZm91bmQ6Cj4+Pj4+Pj4gPj4+Cj4+Pj4+Pj4g Pj4+IGxpbmUgMjQ1Ogo+Pj4+Pj4+ID4+PiArICAgICAgICAgICAgLy8gRmluZCB3aGljaCBqYXIg ZXhwb3J0cyB0aGlzIHBhY2thZ2UKPj4+Pj4+PiA+Pj4gKyAgICAgICAgICAgIGlmIChwa2dOYW1l ICE9IE5VTEwpIHsKPj4+Pj4+PiA+Pj4gKyAgICAgICAgICAgICAgICBjaGFyICpib290X2NsYXNz X3BhdGggPQo+Pj4+Pj4+ID4+PiBlbnYtPkphdmFQcm9wZXJ0aWVzKCktPmdldChWTV9CT09UX0NM QVNTX0RJUik7Cj4+Pj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAgY2hhciAqcGVuZGluZ0NsYXNz UGF0aCA9IE5VTEw7Cj4+Pj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAgYXByX3Bvb2xfdCAqdG1w X3Bvb2w7Cj4+Pj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAgYXByX3Bvb2xfY3JlYXRlKCZ0bXBf cG9vbCwgTlVMTCk7Cj4+Pj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAgd2hpbGUgKGl0ICE9IGVu di0+cGVuZGluZ19qYXJfc2V0LmVuZCgpKSB7Cj4+Pj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAg ICAgIHBkZXN0ID0gc3Ryc3RyKCAoKml0KS5zZWNvbmQtPmJ5dGVzLCBwa2dOYW1lICk7Cj4+Pj4+ Pj4gPj4+ICsgICAgICAgICAgICAgICAgICAgIGlmIChwZGVzdCAhPSBOVUxMKSB7Cj4+Pj4+Pj4g Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nQ2xhc3NQYXRoID0KPj4+Pj4+PiA+ Pj4gKGNoYXIqKVNURF9NQUxMT0Moc3RybGVuKGJvb3RfY2xhc3NfcGF0aCkKPj4+Pj4+PiA+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwo+Pj4+Pj4+ IHN0cmxlbigoKml0KS5maXJzdC0+Ynl0ZXMpICsgMSk7Cj4+Pj4+Pj4gPj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICBzdHJjcHkocGVuZGluZ0NsYXNzUGF0aCwgYm9vdF9jbGFzc19wYXRoKTsK Pj4+Pj4+PiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNhdChwZW5kaW5nQ2xhc3NQ YXRoLCAoKml0KS5maXJzdC0+Ynl0ZXMpOwo+Pj4+Pj4+ID4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgLy8gT3BlbiB0aGlzIGZvdW5kIGphciwgYW5kIHJlYWQgYWxsIGNsYXNzZXMKPj4+Pj4+ PiA+Pj4gY29udGFpbmVkIGluIHRoaXMgamFyCj4+Pj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICBTZXRDbGFzc3BhdGhGcm9tU3RyaW5nKHBlbmRpbmdDbGFzc1BhdGgsCj4+Pj4+Pj4g dG1wX3Bvb2wpOwo+Pj4+Pj4+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAgLy8gRXJhc2Ug dGhlIGZvdW5kIGphciBmcm9tIHBlbmRpbmcgamFyIGxpc3QKPj4+Pj4+PiA+Pj4gYXMgaXQgaGFz IGJlZW4gcGFyc2VkCj4+Pj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBlbnYtPnBl bmRpbmdfamFyX3NldC5lcmFzZShpdCsrKTsKPj4+Pj4+PiA+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIFNURF9GUkVFKHBlbmRpbmdDbGFzc1BhdGgpOwo+Pj4+Pj4+ID4+PiArICAgICAgICAg ICAgICAgICAgICB9IGVsc2Ugewo+Pj4+Pj4+ID4+Pgo+Pj4+Pj4+ID4+PiBJdCBjaGVja3MgaWYg YSBKQVIgaGFzIHRoZSByZXF1ZXN0ZWQgcGFja2FnZSwgdGhlbiBsb2FkcyBpdCBpZiB5ZXMuIEkK Pj4+Pj4+PiA+Pj4gYW0gbm90IHN1cmUgaWYgdGhpcyBpcyB3aGF0IHlvdSB3ZXJlIGFza2luZy4g KEJ0dywgdGhpcyBpcyBvbmx5IG15Cj4+Pj4+Pj4gPj4+IHVuZGVyc3RhbmRpbmcgb2YgaGlzIHBh dGNoLiBJIGFtIG5vdCBzcGVha2luZyBmb3IgV2VubG9uZy4pCj4+Pj4+Pj4gPj4+Cj4+Pj4+Pj4g Pj4+IFRoYW5rcywKPj4+Pj4+PiA+Pj4geGlhb2ZlbmcKPj4+Pj4+PiA+Pj4KPj4+Pj4+PiA+Pj4+ IFRoYW5rcy4KPj4+Pj4+PiA+Pj4+Cj4+Pj4+Pj4gPj4+Pgo+Pj4+Pj4+ID4+Pj4gT24gRnJpLCBE ZWMgMjYsIDIwMDggYXQgNDoxNCBBTSwgWGlhby1GZW5nIExpIDx4aWFvZmVuZy5saUBnbWFpbC5j b20+Cj4+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4gPj4+Pgo+Pj4+Pj4+ID4+Pj4+IE9uIEZyaSwgRGVj IDI2LCAyMDA4IGF0IDEyOjQ5IEFNLCBBbGV4ZWkgRmVkb3Rvdgo+Pj4+Pj4+ID4+Pj4+IDxhbGV4 ZWkuZmVkb3RvdkBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Pj4+ID4+Pj4+ID4gQWxla3NleSwKPj4+ Pj4+PiA+Pj4+PiA+IEkgbGlrZSB5b3VyIGNvbmNsdXNpb24uCj4+Pj4+Pj4gPj4+Pj4gPgo+Pj4+ Pj4+ID4+Pj4+ID4gV2VubG9uZywKPj4+Pj4+PiA+Pj4+PiA+IEknbSB0cnlpbmcgdG8gdW5kZXJz dGFuZCB0aGUgcmVhbCBsaWZlIHZhbHVlIG9mIHRoZSAiYWJzdHJhY3QiCj4+Pj4+Pj4gc3RhcnR1 cAo+Pj4+Pj4+ID4+Pj4+ID4gdGltZSBtZXRyaWMgeW91J3ZlIHN1Z2dlc3RlZC4gRG9lcyBIYXJt b255IHdpdGggeW91ciBwYXRjaCBsb2FkCj4+Pj4+Pj4gPj4+Pj4gPiBzd2luZy5qYXIgZm9yIGEg c2VydmVyIGFwcGxpY2F0aW9uPyBEbyBJIHVuZGVyc3RhbmQgdGhhdCBsb2FkaW5nCj4+Pj4+Pj4g Pj4+Pj4gPiBoYXBwZW5zLCB0aG91Z2ggaXQgaGFwcGVucyBsYXRlciBjb21wYXJlZCB0byBWTSB3 aXRob3V0IHlvdXIgcGF0Y2g/Cj4+Pj4+Pj4gSQo+Pj4+Pj4+ID4+Pj4+ID4gYmVsaWV2ZSB0aGF0 IHRoZSBwcm9wZXIgZGVzaWduIG9mIGRlbGF5ZWQgbG9hZGluZyBzaG91bGQgYW5zd2VyCj4+Pj4+ Pj4gIm5vIgo+Pj4+Pj4+ID4+Pj4+ID4gdG8gdGhpcyBxdWVzdGlvbi4KPj4+Pj4+PiA+Pj4+Pgo+ Pj4+Pj4+ID4+Pj4+IEkgY2hlY2tlZCB0aGUgcGF0Y2gsIGFuZCBJIGZvdW5kIHRoZSBhbnN3ZXIg aXMgaW5kZWVkICJObyIgYXMgeW91Cj4+Pj4+Pj4gZXhwZWN0ZWQuCj4+Pj4+Pj4gPj4+Pj4KPj4+ Pj4+PiA+Pj4+PiBUaGFua3MsCj4+Pj4+Pj4gPj4+Pj4geGlhb2ZlbmcKPj4+Pj4+PiA+Pj4+Pgo+ Pj4+Pj4+ID4+Pj4+ID4gSW4gb3RoZXIgd29yZHMsIEkgYXBwcmVjaWF0ZSBpZiB5b3UgZGVzY3Jp YmUgd2hpY2ggcmVhbCB1c2UgY2FzZXMKPj4+Pj4+PiBhcmUKPj4+Pj4+PiA+Pj4+PiA+IGltcHJv dmVkIGJ5IHRoaXMgcGF0Y2guCj4+Pj4+Pj4gPj4+Pj4gPiBUaGFua3MhCj4+Pj4+Pj4gPj4+Pj4K Pj4+Pj4+PiA+Pj4+PiA+IE9uIFRodSwgRGVjIDI1LCAyMDA4IGF0IDc6MjkgUE0sIEFsZWtzZXkg U2hpcGlsZXYKPj4+Pj4+PiA+Pj4+PiA+IDxhbGVrc2V5LnNoaXBpbGV2QGdtYWlsLmNvbT4gd3Jv dGU6Cj4+Pj4+Pj4gPj4+Pj4gPj4gT2ssIGhlcmUncyB0aGUgY2F0Y2guCj4+Pj4+Pj4gPj4+Pj4g Pj4KPj4+Pj4+PiA+Pj4+PiA+PiBib290Y2xhc3NwYXRoLnByb3BlcnRpZXMgaXMgdGhlIFNvcnRl ZFNldDxKQVJmaWxlPiwgd2hpY2gKPj4+Pj4+PiBlbnVtZXJhdGVzCj4+Pj4+Pj4gPj4+Pj4gPj4g dGhlIEpBUnMgYXZhaWxhYmxlIGZvciBib290Y2xhc3Nsb2FkZXIuIFRoZSBzZXQgb2Ygc3VjaCB0 aGUgSkFScwo+Pj4+Pj4+IGlzCj4+Pj4+Pj4gPj4+Pj4gPj4gcmVhbGx5IHN0YWJsZSBiZWNhdXNl IG1vZHVsYXIgZGVjb21wb3NpdGlvbiBvZiBjbGFzc2xpYiBpcyBzdGFibGUuCj4+Pj4+Pj4gPj4+ Pj4gPj4gVGhhdCdzIHdoeSBub2JvZHkgYm90aGVycyB3aXRoIGF1dG9tYXRpYyBnZW5lcmF0aW9u IG9mIGl0OiBpdCBvbmx5Cj4+Pj4+Pj4gPj4+Pj4gPj4gc2hvdWxkIGJlIHVwZGF0ZWQgd2hlbiBu ZXcgSkFSIGZpbGUgYXJyaXZlcy4KPj4+Pj4+PiA+Pj4+PiA+PiBNb2R1bGVsaWJyYXJ5bWFwcGlu Zy5wcm9wZXJ0aWVzIGlzIGRpZmZlcmVudCBvbiB0aGlzIHBvaW50LCBpdCdzCj4+Pj4+Pj4gdGhl Cj4+Pj4+Pj4gPj4+Pj4gPj4gTWFwPFBhY2thZ2VOYW1lLEpBUmZpbGU+LCB3aGljaCBzaG91bGQg YmUgdXBkYXRlZCBlYWNoIHRpbWUgdGhlCj4+Pj4+Pj4gbmV3Cj4+Pj4+Pj4gPj4+Pj4gPj4gKnBh Y2thZ2UqIGlzIGludHJvZHVjZWQuIEknbSBub3QgdGFsa2luZyBhYm91dCBqYXZhLiogcGFja2Fn ZXMKPj4+Pj4+PiA+Pj4+PiA+PiAodGhleSdyZSBzdGFuZGFyZGl6ZWQpLCByYXRoZXIgYWJvdXQg b3JnLmFwYWNoZS5oYXJtb255LiouCj4+Pj4+Pj4gPj4+Pj4gPj4KPj4+Pj4+PiA+Pj4+PiA+PiBB dXRvbWF0aWMgZ2VuZXJhdGlvbiBvZiB0aGlzIHByb3BlcnR5IGZpbGUgZ2l2ZXMgdHdvIGFkdmFu dGFnZXM6Cj4+Pj4+Pj4gPj4+Pj4gPj4gIDEuIEVycm9yLXByb25lLiBQcmV2ZW50IHlvdXJzZWxm IGZyb20gaGFuZC1tZXNzaW5nIHdpdGggbWFwcGluZwo+Pj4+Pj4+IGFuZAo+Pj4+Pj4+ID4+Pj4+ ID4+IGdldHRpbmcgc3B1cmlvdXMgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbi4gQlRXLCB3aGF0J3Mg dGhlIGJlaGF2aW91cgo+Pj4+Pj4+IGluCj4+Pj4+Pj4gPj4+Pj4gPj4gY2FzZSB0aGUgbWFwcGlu ZyBpcyB3cm9uZz8KPj4+Pj4+PiA+Pj4+PiA+PiAgMi4gIlJlc2VhcmNoZnVsIi4gVGhlcmUncmUg bG90IG9mIGd1eXMgYXJvdW5kIHdobyBlbmpveXMgdGhlCj4+Pj4+Pj4gPj4+Pj4gPj4gbW9kdWxh cml0eSBvZiBIYXJtb255IGNsYXNzbGliIGFuZCBldmVudHVhbGx5IHRoZXkgbWlnaHQgd2FudCB0 bwo+Pj4+Pj4+IHNwbGl0Cj4+Pj4+Pj4gPj4+Pj4gPj4gdGhlIHBhY2thZ2VzIGV2ZW4gZGVlcGVy LCBpbnRvIHNtYWxsZXIgcGllY2VzLiBUaGVuIGF1dG9tYXRpYwo+Pj4+Pj4+ID4+Pj4+ID4+IGdl bmVyYXRpb24gd291bGQgZW5hYmxlIHRoZW0gdG8gcXVpY2tseSByb2xsLWluIGFuZCBleHBlcmlt ZW50Cj4+Pj4+Pj4gd2l0aAo+Pj4+Pj4+ID4+Pj4+ID4+IGRpZmZlcmVudCBwYWNrYWdlIGxheW91 dHMgYW5kIHRoZWlyIGltcGFjdCBvbiBwZXJmb3JtYW5jZS4gVGhleQo+Pj4+Pj4+IGNvdWxkCj4+ Pj4+Pj4gPj4+Pj4gPj4gdXNlIG9yZGluYXJ5IGJvb3RjbGFzc3BhdGgucHJvcGVydGllcywgYnV0 IHlvdXIgZmVhdHVyZSB3b3VsZG4ndAo+Pj4+Pj4+IGJlCj4+Pj4+Pj4gPj4+Pj4gPj4gdXNlZCBi eSB0aGVtIHRoZW4gOykKPj4+Pj4+PiA+Pj4+PiA+Pgo+Pj4+Pj4+ID4+Pj4+ID4+IFRoYXQncyBt ZXJlbHkgYSBob3VzZWtlZXBpbmcgcHJvY2VkdXJlLiBJIGJlbGlldmUgdGhhdCBhbnl0aGluZwo+ Pj4+Pj4+IHdoaWNoCj4+Pj4+Pj4gPj4+Pj4gPj4gY291bGQgYmUgZG9uZSBtb3JlIHRoYW4gb25j ZSwgZXZlbnR1YWxseSB3b3VsZCBiZSBkb25lIG1vcmUgdGhhbgo+Pj4+Pj4+IG9uY2UuCj4+Pj4+ Pj4gPj4+Pj4gPj4gSGVuY2UgaXQgc2hvdWxkIGJlIGF1dG9tYXRlZC4gWW91IHNheSB0aGF0IHRo ZSBmaWxlIHdhcyBnZW5lcmF0ZWQKPj4+Pj4+PiBmcm9tCj4+Pj4+Pj4gPj4+Pj4gPj4gbWFuaWZl c3RzIG9mIEpBUnMsIHNvIGlzIGl0IGhhcmQgdG8ganVzdCB0aWUgdGhlIHNhbWUgdG9vbCBpbnRv Cj4+Pj4+Pj4gRFJMVk0KPj4+Pj4+PiA+Pj4+PiA+PiBidWlsZCBwcm9jZXNzPwo+Pj4+Pj4+ID4+ Pj4+ID4+Cj4+Pj4+Pj4gPj4+Pj4gPj4gQXMgZm9yIERSTFZNLXNwZWNpZmljLCBteSBvcGluaW9u IHRoYXQgdGhpcyBpcyBiZWNhdXNlIHRoZSBwYXRjaDoKPj4+Pj4+PiA+Pj4+PiA+PiAgYS4gYnJl YWtzIHRoZSBjb21wYXRpYmlsaXR5IG9mIGNsYXNzbGliICh5b3UgY2hhbmdlCj4+Pj4+Pj4gPj4+ Pj4gPj4gYm9vdGNsYXNzcGF0aC5wcm9wZXJ0aWVzLCByaWdodD8pIHdpdGggb3RoZXIgVk1zLgo+ Pj4+Pj4+ID4+Pj4+ID4+ICBiLiB0cmVhdGVkIGluIERSTFZNIGNsYXNzbG9hZGVyIG9ubHkuCj4+ Pj4+Pj4gPj4+Pj4gPj4KPj4+Pj4+PiA+Pj4+PiA+PiBPZiBjb3Vyc2UgZXZlbnR1YWxseSB0aGlz IGZlYXR1cmUgbWlnaHQgYmUgdXNlZCBieSBvdGhlcnMsIGJ1dCBJTU8KPj4+Pj4+PiB3ZQo+Pj4+ Pj4+ID4+Pj4+ID4+IHNob3VsZCBiZSBjYXJlZnVsIGFib3V0IG90aGVyIGd1eXMgd2hvIHVzZSB0 aGUgc2FtZSBjbGFzc2xpYi4gSSdkCj4+Pj4+Pj4gPj4+Pj4gPj4gcmF0aGVyIHdhaXQgZm9yIHNv bWUgaW5jdWJhdGlvbiBvbiBEUkxWTSBzaWRlIGZpcnN0Lgo+Pj4+Pj4+ID4+Pj4+ID4+Cj4+Pj4+ Pj4gPj4+Pj4gPj4gVGhhbmtzLAo+Pj4+Pj4+ID4+Pj4+ID4+IEFsZWtzZXkuCj4+Pj4+Pj4gPj4+ Pj4gPj4KPj4+Pj4+PiA+Pj4+PiA+PiBPbiBUaHUsIERlYyAyNSwgMjAwOCBhdCA2OjE4IFBNLCBX ZW5sb25nIExpIDx3ZW5sb25nQGdtYWlsLmNvbT4KPj4+Pj4+PiB3cm90ZToKPj4+Pj4+PiA+Pj4+ PiA+Pj4gSSBzZWUuIEluIGZhY3QsIG15IGZpbGUgZG9lc24ndCBuZWVkIHRyYWNrIGNoYW5nZSBh dCB0aGUgY2xhc3MKPj4+Pj4+PiA+Pj4+PiA+Pj4gZ3JhbnVsYXJpdHkuIEluc3RlYWQsIGl0IG9u bHkgbmVlZHMga25vdyBwYWNrYWdlIGluZm8gcHJvdmlkZWQgaW4KPj4+Pj4+PiB0aGUKPj4+Pj4+ PiA+Pj4+PiA+Pj4gbWFuaWZlc3QgZmlsZS4gIFdoZW4gY2xhc3MgaXMgYWRkZWQgdG8gYSBsaWJy YXJ5LCBkbyB3ZSBuZWVkCj4+Pj4+Pj4gY2hhbmdlCj4+Pj4+Pj4gPj4+Pj4gPj4+IHRoZSBtYW5p ZmVzdCBhcyB3ZWxsPwo+Pj4+Pj4+ID4+Pj4+ID4+Pgo+Pj4+Pj4+ID4+Pj4+ID4+PiBidHcsIEkg Z3Vlc3MgdGhlcmUgaXMgYSBtaXMtdW5kZXJzdGFuZGluZzogbXkKPj4+Pj4+PiBtb2R1bGVsaWJy YXJ5bWFwcGluZwo+Pj4+Pj4+ID4+Pj4+ID4+PiBmaWxlIG9ubHkgcmVjb3JkcyBwYWNrYWdlIGlu Zm8gcHJvdmlkZWQgYnkgbWFuZmllc3QgaW4gZWFjaAo+Pj4+Pj4+IG1vZHVsZS4gSXQKPj4+Pj4+ PiA+Pj4+PiA+Pj4gZG9lc24ndCByZWxhdGUgdG8gZWFjaCBjbGFzcy4KPj4+Pj4+PiA+Pj4+PiA+ Pj4KPj4+Pj4+PiA+Pj4+PiA+Pj4gdGh4LAo+Pj4+Pj4+ID4+Pj4+ID4+PiBXZW5sb25nCj4+Pj4+ Pj4gPj4+Pj4gPj4+Cj4+Pj4+Pj4gPj4+Pj4gPj4+IE9uIFRodSwgRGVjIDI1LCAyMDA4IGF0IDEw OjU1IFBNLCBQYXZlbCBQZXJ2b3YgPAo+Pj4+Pj4+IHBtY2ZpcnN0QGdtYWlsLmNvbT4KPj4+Pj4+ PiA+Pj4+PiB3cm90ZToKPj4+Pj4+PiA+Pj4+PiA+Pj4+IENsYXNzZXMgYXJlIGFkZGVkIHRvIGNs YXNzIGxpYnJhcnkgZnJvbSB0aW1lIHRvIHRpbWUuIEknbSBub3QKPj4+Pj4+PiBzdXJlIGhvdwo+ Pj4+Pj4+ID4+Pj4+ID4+Pj4gaXQgY2FuIGJlIHBvc3NpYmxlIHRvIHRyYWNrIHRoZXNlIGNoYW5n ZXMgbWFudWFsbHkuCj4+Pj4+Pj4gPj4+Pj4gPj4+Pgo+Pj4+Pj4+ID4+Pj4+ID4+Pj4gV0JSLAo+ Pj4+Pj4+ID4+Pj4+ID4+Pj4gICAgUGF2ZWwuCj4+Pj4+Pj4gPj4+Pj4gPj4+Pgo+Pj4+Pj4+ID4+ Pj4+ID4+Pj4KPj4+Pj4+PiA+Pj4+PiA+Pj4+IE9uIFRodSwgRGVjIDI1LCAyMDA4IGF0IDU6MDkg UE0sIFdlbmxvbmcgTGkgPHdlbmxvbmdAZ21haWwuY29tPgo+Pj4+Pj4+ID4+Pj4+IHdyb3RlOgo+ Pj4+Pj4+ID4+Pj4+ID4+Pj4+IFNvcnJ5LCBvbmUgbW9yZSBxdWVzdGlvbjogYm9vdGNsYXNzcGF0 aC5wcm9wZXJ0aWVzIGlzIGNsYXNzbGliCj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4gc3BlY2lmaWMgZmls ZSwgd2h5IHdlIGNvdWxkIG5vdCBtYWtlIGEgdm0gc3BlY2lmaWMgZmlsZQo+Pj4+Pj4+IG1hbnVh bGx5Pwo+Pj4+Pj4+ID4+Pj4+IEp1c3QKPj4+Pj4+PiA+Pj4+PiA+Pj4+PiBjdXJpb3VzIHRvIGtu b3cgdGhlIHBvc3NpYmxlIHJlYXNvbi4gOikKPj4+Pj4+PiA+Pj4+PiA+Pj4+Pgo+Pj4+Pj4+ID4+ Pj4+ID4+Pj4+IHRoeCwKPj4+Pj4+PiA+Pj4+PiA+Pj4+PiBXZW5sb25nCj4+Pj4+Pj4gPj4+Pj4g Pj4+Pj4KPj4+Pj4+PiA+Pj4+PiA+Pj4+PiBPbiBUaHUsIERlYyAyNSwgMjAwOCBhdCAxMDowMCBQ TSwgUGF2ZWwgUGVydm92IDwKPj4+Pj4+PiBwbWNmaXJzdEBnbWFpbC5jb20+Cj4+Pj4+Pj4gPj4+ Pj4gd3JvdGU6Cj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+IElmIHRoaXMgd291bGQgYmUgVk0tc2lkZSBh dXRvbWF0aWNhbGx5IHByb2R1Y2VkIGNvbmZpZ3VyYXRpb24KPj4+Pj4+PiA+Pj4+PiBmaWxlLi4u Cj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+Cj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+IFdCUiwKPj4+Pj4+PiA+ Pj4+PiA+Pj4+Pj4gICAgUGF2ZWwuCj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+Cj4+Pj4+Pj4gPj4+Pj4g Pj4+Pj4+IE9uIFRodSwgRGVjIDI1LCAyMDA4IGF0IDQ6NTggUE0sIFdlbmxvbmcgTGkgPAo+Pj4+ Pj4+IHdlbmxvbmdAZ21haWwuY29tPgo+Pj4+Pj4+ID4+Pj4+IHdyb3RlOgo+Pj4+Pj4+ID4+Pj4+ ID4+Pj4+Pj4gYnR3LCBiZWNhdXNlIGFkZGluZyBuZXcgbW9kdWxlIGlzIHJhcmUgY2FzZSwgbWFu dWFsbHkKPj4+Pj4+PiBtb2RpZnlpbmcgdGhlCj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+PiBib290Y2xh c3NwYXRoLnByb3BlcnRpZXMgaXMgbm90IGFuIGlzc3VlPwo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4K Pj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+IElmIHNvLCBjYW4gSSBjb25jbHVkZSBhZGRpbmcgYW5vdGhl ciBwcm9wZXJ0eSBmaWxlIHdpdGggc2FtZQo+Pj4+Pj4+IHVwZGF0ZQo+Pj4+Pj4+ID4+Pj4+ID4+ Pj4+Pj4gZnJlcXVlbmN5IGFzIGJvb3RjbGFzc3BhdGggd291bGQgYmUgZmluZSBhcyB3ZWxsPwo+ Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4KPj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+IFBscyBraW5kbHkgY29y cmVjdCBtZSBpZiBteSB1bmRlcnN0YW5kaW5nIGlzIHdyb25nLgo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+ Pj4KPj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+IE9uIFRodSwgRGVjIDI1LCAyMDA4IGF0IDk6MDUgUE0s IFBhdmVsIFBlcnZvdiA8Cj4+Pj4+Pj4gcG1jZmlyc3RAZ21haWwuY29tPgo+Pj4+Pj4+ID4+Pj4+ IHdyb3RlOgo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+IFdlbmxvbmcsCj4+Pj4+Pj4gPj4+Pj4gPj4+ Pj4+Pj4KPj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+PiBOb3RlLCB0aGF0IGJvb3RjbGFzc3BhdGgucHJv cGVydGllcyBpcyBvbmx5IGNoYW5nZWQgb24KPj4+Pj4+PiBhZGRpbmcgbmV3Cj4+Pj4+Pj4gPj4+ Pj4gPj4+Pj4+Pj4gbW9kdWxlLiBUaGlzIGlzIHByZXR0eSByYXJlIG9jY2FzaW9uLCBJIGJlbGll dmUuCj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4KPj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+PiBXQlIsCj4+ Pj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4gICAgUGF2ZWwuCj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4KPj4+ Pj4+PiA+Pj4+PiA+Pj4+Pj4+PiBPbiBUaHUsIERlYyAyNSwgMjAwOCBhdCAzOjQ4IFBNLCBXZW5s b25nIExpIDwKPj4+Pj4+PiB3ZW5sb25nQGdtYWlsLmNvbT4KPj4+Pj4+PiA+Pj4+PiB3cm90ZToK Pj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4gVGh4IGZvciB5b3VyIGFkdmljZS4gQWxleGV5Lgo+Pj4+ Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pgo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+PiBIZXJlIEkgaGF2ZSBv bmUgcXVlc3Rpb246IGRvIHlvdSBrbm93IGhvdyB0aGUKPj4+Pj4+PiA+Pj4+PiBib290Y2xhc3Nw YXRoLnByb3BlcnRpZXMKPj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4gaXMgbWFpbnRhaW5lZCwgbWFu dWFsbHkgb3IgYXV0b21hdGljYWxseT8KPj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4KPj4+Pj4+PiA+ Pj4+PiA+Pj4+Pj4+Pj4gQW5vdGhlciBjb21tZW50IGlzIEkgd291bGQgbGlrZSB0byB0cmVhdCB0 aGUgcGF0Y2ggYXMgRFJMVk0KPj4+Pj4+PiA+Pj4+PiBzcGVjaWZpYwo+Pj4+Pj4+ID4+Pj4+ID4+ Pj4+Pj4+PiBvcHRpbWl6YXRpb24sIGUuZy4sIGl0IHRhcmdldHMgZm9yIGltcHJvdmluZyBWTSBj cmVhdGlvbgo+Pj4+Pj4+IHRpbWUuIFNvCj4+Pj4+Pj4gPj4+Pj4gdGhhdAo+Pj4+Pj4+ID4+Pj4+ ID4+Pj4+Pj4+PiBpcyBwb3NzaWJsZSB0byBtb3ZlIGFsbCB1cGRhdGVzIHRvIERSTFZNIHBhcnQg dG8gZWxpbWluYXRlCj4+Pj4+Pj4gPj4+Pj4gcG90ZW50aWFsCj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+ Pj4+IG1vZHVsYXJpdHkgYW5kIGNvbXBhdGliaWxpdHkgcHJvYmxlbS4KPj4+Pj4+PiA+Pj4+PiA+ Pj4+Pj4+Pj4KPj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4gdGh4LAo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+ Pj4+PiBXZW5sb25nCj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+Cj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+ Pj4+IE9uIFRodSwgRGVjIDI1LCAyMDA4IGF0IDU6MzIgUE0sIEFsZWtzZXkgU2hpcGlsZXYKPj4+ Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4gPGFsZWtzZXkuc2hpcGlsZXZAZ21haWwuY29tPiB3cm90ZToK Pj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IEhpLCBXZW5sb25nLgo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+ Pj4+Pj4KPj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IE9uIFRodSwgRGVjIDI1LCAyMDA4IGF0IDEx OjQ5IEFNLCBXZW5sb25nIExpIDwKPj4+Pj4+PiB3ZW5sb25nQGdtYWlsLmNvbT4KPj4+Pj4+PiA+ Pj4+PiB3cm90ZToKPj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+PiBidHcsIEFsZXhleSwgTGV0J3Mg Z28gYmFjayB0byBkaXNjdXNzIHdoZXRoZXIgdGhlcmUgaXMgYQo+Pj4+Pj4+IG5lZWQKPj4+Pj4+ PiA+Pj4+PiB0bwo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4+IGluY2x1ZGUgdGhpcyBmZWF0dXJl IGluIEhhcm1vbnksIGdpdmVuIDE3JSBwZXJmb3JtYW5jZQo+Pj4+Pj4+IGdhaW4gaW4KPj4+Pj4+ PiA+Pj4+PiBMaW51eAo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4+IHdoZW4gdXNpbmcgeW91ciBt ZXRob2RvbG9neS4gRm9yIHdpbmRvd3MgdGVzdCwgSSB3aWxsCj4+Pj4+Pj4gZG91YmxlCj4+Pj4+ Pj4gPj4+Pj4gY2hlY2sgdGhlCj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+Pj4gYmFja2dyb3VkIHBy b2Nlc3MgYXMgeW91IHBvaW50ZWQgb3V0Lgo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4KPj4+Pj4+ PiA+Pj4+PiA+Pj4+Pj4+Pj4+IE15IG9waW5pb24gd2FzIGFscmVhZHkgZXhwcmVzc2VkIGFmdGVy IEkgaGFkIGZpbmlzaGVkIHRoZQo+Pj4+Pj4+IHRlc3RzCj4+Pj4+Pj4gPj4+Pj4gZnJvbQo+Pj4+ Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gbXkgc2lkZTogdGhlIGJvb3N0IGNhbiBiZSBhY2hpZXZlZCBp biBzcGVjaWZpYyBjb25kaXRpb25zLAo+Pj4+Pj4+IHNvCj4+Pj4+Pj4gPj4+Pj4gd2hldGhlcgo+ Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gaXQncyB3b3J0aCBpbmNsdWRpbmcgaW50byBIYXJtb255 IHJlYWxseSBkZXBlbmRzIG9uIGhvdwo+Pj4+Pj4+IG11Y2gKPj4+Pj4+PiA+Pj4+PiBtZXNzIHRo ZQo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gcGF0Y2ggd291bGQgaW50cm9kdWNlIGJlc2lkZXMg dGhlICJwZXJmb3JtYW5jZSBib29zdCIuCj4+Pj4+Pj4gRnJvbSB3aGF0Cj4+Pj4+Pj4gPj4+Pj4g SQo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gc2VlLCB0aGUgcGF0Y2ggb2JsaWdlcyB0aGUgbWFp bnRhaW5lciB0byBtYWludGFpbiB0aGUKPj4+Pj4+PiBjb3JyZWN0Cj4+Pj4+Pj4gPj4+Pj4gbWFw cGluZwo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gYmV0d2VlbiBqYXJzIGFuZCBKYXZhIHBhY2th Z2VzLiBUaGlzIG5ldyBmZWF0dXJlIGlzIGFsc28KPj4+Pj4+PiBzcHJlYWQKPj4+Pj4+PiA+Pj4+ PiA+Pj4+Pj4+Pj4+IGJldHdlZW4gQ2xhc3NsaWIgYW5kIFZNLCBidXQgaXQgc2VlbXMgbGlrZSBE UkxWTSBzcGVjaWZpYy4KPj4+Pj4+PiBJbgo+Pj4+Pj4+ID4+Pj4+IHRoaXMKPj4+Pj4+PiA+Pj4+ PiA+Pj4+Pj4+Pj4+IGNhc2UgSSB3b3VsZCByYXRoZXIgc3RheSB3aXRob3V0IHRoZSBwYXRjaC4K Pj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+PiBQZXJzb25h bGx5IChpZiBJJ2xsIGJlIGNvbW1pdHRlcikgSSB3b3VsZCBhY2NlcHQgdGhlIHBhdGNoCj4+Pj4+ Pj4gd2l0aAo+Pj4+Pj4+ID4+Pj4+IHR3bwo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gc2VyaW91 cyBtb2RpZmljYXRpb25zOgo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gIDEuIFN0YXkgd2l0aGlu IERSTFZNLCBkbyBub3QgaW50cm9kdWNlIHRoaXMgZmVhdHVyZSBpbnRvCj4+Pj4+Pj4gPj4+Pj4g Q2xhc3NsaWIsCj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+PiBnZXQgdGhlIHRoaW5nIHRlc3RlZCBh bmQgZXZvbHZlZCBvbiBEUkxWTSBzaWRlLiBPdGhlcndpc2UKPj4+Pj4+PiBpdAo+Pj4+Pj4+ID4+ Pj4+IG1pZ2h0Cj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+PiBicmVhayB0aGUgY29tcGF0aWJpbGl0 eSB3aXRoIG90aGVyIFZNcy4KPj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+ICAyLiBNYWtlIHRoZSBt YXBwaW5nIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IChkdXJpbmcgYnVpbGQKPj4+Pj4+PiA+Pj4+ PiBwcm9jZXNzPykKPj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IHRvIGZyZWUgdGhlIGJ1cmRlbiBm b3IgbWFpbnRhaW5lcnMuCj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+Pgo+Pj4+Pj4+ID4+Pj4+ID4+ Pj4+Pj4+Pj4gVGhhbmtzLAo+Pj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gQWxla3NleS4KPj4+Pj4+ PiA+Pj4+PiA+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+Cj4+Pj4+Pj4gPj4+Pj4g Pj4+Pj4+Pj4KPj4+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Cj4+Pj4+Pj4gPj4+Pj4gPj4+Pj4+Cj4+Pj4+ Pj4gPj4+Pj4gPj4+Pj4KPj4+Pj4+PiA+Pj4+PiA+Pj4+Cj4+Pj4+Pj4gPj4+Pj4gPj4+Cj4+Pj4+ Pj4gPj4+Pj4gPj4KPj4+Pj4+PiA+Pj4+PiA+Cj4+Pj4+Pj4gPj4+Pj4gPgo+Pj4+Pj4+ID4+Pj4+ ID4KPj4+Pj4+PiA+Pj4+PiA+IC0tCj4+Pj4+Pj4gPj4+Pj4gPiDQoSDRg9Cy0LDQttC10L3QuNC1 0LwsCj4+Pj4+Pj4gPj4+Pj4gPiDQkNC70LXQutGB0LXQuSDQpNC10LTQvtGC0L7QsiwKPj4+Pj4+ PiA+Pj4+PiA+INCX0JDQniDCq9Ci0LXQu9C10LrQvtC8INCt0LrRgdC/0YDQtdGB0YHCuwo+Pj4+ Pj4+ID4+Pj4+ID4KPj4+Pj4+PiA+Pj4+Pgo+Pj4+Pj4+ID4+Pj4+Cj4+Pj4+Pj4gPj4+Pj4KPj4+ Pj4+PiA+Pj4+PiAtLQo+Pj4+Pj4+ID4+Pj4+IGh0dHA6Ly94aWFvLWZlbmcuYmxvZ3Nwb3QuY29t Cj4+Pj4+Pj4gPj4+Pj4KPj4+Pj4+PiA+Pj4+Cj4+Pj4+Pj4gPj4+Pgo+Pj4+Pj4+ID4+Pj4KPj4+ Pj4+PiA+Pj4+IC0tCj4+Pj4+Pj4gPj4+PiDQoSDRg9Cy0LDQttC10L3QuNC10LwsCj4+Pj4+Pj4g Pj4+PiDQkNC70LXQutGB0LXQuSDQpNC10LTQvtGC0L7QsiwKPj4+Pj4+PiA+Pj4+INCX0JDQniDC q9Ci0LXQu9C10LrQvtC8INCt0LrRgdC/0YDQtdGB0YHCuwo+Pj4+Pj4+ID4+Pj4KPj4+Pj4+PiA+ Pj4KPj4+Pj4+PiA+Pj4KPj4+Pj4+PiA+Pj4KPj4+Pj4+PiA+Pj4gLS0KPj4+Pj4+PiA+Pj4gaHR0 cDovL3hpYW8tZmVuZy5ibG9nc3BvdC5jb20KPj4+Pj4+PiA+Pj4KPj4+Pj4+PiA+Pgo+Pj4+Pj4+ ID4+Cj4+Pj4+Pj4gPj4KPj4+Pj4+PiA+PiAtLQo+Pj4+Pj4+ID4+INChINGD0LLQsNC20LXQvdC4 0LXQvCwKPj4+Pj4+PiA+PiDQkNC70LXQutGB0LXQuSDQpNC10LTQvtGC0L7QsiwKPj4+Pj4+PiA+ PiDQl9CQ0J4gwqvQotC10LvQtdC60L7QvCDQrdC60YHQv9GA0LXRgdGBwrsKPj4+Pj4+PiA+Pgo+ Pj4+Pj4+ID4KPj4+Pj4+PiA+Cj4+Pj4+Pj4gPgo+Pj4+Pj4+ID4gLS0KPj4+Pj4+PiA+IGh0dHA6 Ly94aWFvLWZlbmcuYmxvZ3Nwb3QuY29tCj4+Pj4+Pj4gPgo+Pj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4K Pj4+Pj4+Cj4+Pj4+PiAtLQo+Pj4+Pj4g0KEg0YPQstCw0LbQtdC90LjQtdC8LAo+Pj4+Pj4g0JDQ u9C10LrRgdC10Lkg0KTQtdC00L7RgtC+0LIsCj4+Pj4+PiDQl9CQ0J4gwqvQotC10LvQtdC60L7Q vCDQrdC60YHQv9GA0LXRgdGBwrsKPj4+Pj4+Cj4+Pj4+Cj4+Pj4KPj4+Cj4+Cj4K