Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 89110200B9D for ; Thu, 13 Oct 2016 13:11:02 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 8789F160AE4; Thu, 13 Oct 2016 11:11:02 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id DFC96160AE3 for ; Thu, 13 Oct 2016 13:11:00 +0200 (CEST) Received: (qmail 56306 invoked by uid 500); 13 Oct 2016 11:10:55 -0000 Mailing-List: contact dev-help@flink.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flink.apache.org Delivered-To: mailing list dev@flink.apache.org Received: (qmail 56281 invoked by uid 99); 13 Oct 2016 11:10:54 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 13 Oct 2016 11:10:54 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id B0951C0C5C; Thu, 13 Oct 2016 11:10:53 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -5.3 X-Spam-Level: X-Spam-Status: No, score=-5.3 tagged_above=-999 required=6.31 tests=[RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-2.999, SPF_PASS=-0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id xLBbPsZN2ISv; Thu, 13 Oct 2016 11:10:46 +0000 (UTC) Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [119.145.14.65]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 38EB15F119; Thu, 13 Oct 2016 11:10:42 +0000 (UTC) Received: from 172.24.1.137 (EHLO SZXEMA415-HUB.china.huawei.com) ([172.24.1.137]) by szxrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id DOR54875; Thu, 13 Oct 2016 19:04:10 +0800 (CST) Received: from SZXEMA508-MBX.china.huawei.com ([169.254.7.111]) by SZXEMA415-HUB.china.huawei.com ([10.82.72.33]) with mapi id 14.03.0235.001; Thu, 13 Oct 2016 19:04:09 +0800 From: Zhangrucong To: "dev@flink.apache.org" CC: Sean Wang , Timo Walther Subject: =?utf-8?B?cmU6IFJF77yaW0RJU0NVU1NdIEZMSVAtMTE6IFRhYmxlIEFQSSBTdHJlYW0g?= =?utf-8?Q?Aggregations?= Thread-Topic: =?utf-8?B?UkXvvJpbRElTQ1VTU10gRkxJUC0xMTogVGFibGUgQVBJIFN0cmVhbSBBZ2dy?= =?utf-8?Q?egations?= Thread-Index: AQHSJUGF26shelLRFU+tnUQY1Rh6XQ== Date: Thu, 13 Oct 2016 11:04:09 +0000 Message-ID: References: In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.177.17.163] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected archived-at: Thu, 13 Oct 2016 11:11:02 -0000 SGkgRmFiaWFuOg0KICAgICAgICBXaGF0IGlzIHRoZSBzdHJhdGVneSBmb3IgbmV3IHN5bnRheCB3 aGljaCBjYWxjaXRlIGRvZXMgbm90IHN1cHBvcnQ/IFRoZSBjYWxjaXRlIHdpbGwgc3VwcG9ydCBp dD8gRm9yIGV4YW1wbGUsIHRoZSByb3cgd2luZG93IHN5bnRheC4NCg0KVGhhbmsgeW91IHZlcnkg bXVjaCENCg0KDQoNCi0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCuWPkeS7tuS6ujogRmFiaWFuIEh1 ZXNrZSBbbWFpbHRvOmZodWVza2VAZ21haWwuY29tXSANCuWPkemAgeaXtumXtDogMjAxNuW5tDEw 5pyIMTPml6UgMTg6MTcNCuaUtuS7tuS6ujogZGV2QGZsaW5rLmFwYWNoZS5vcmcNCuaKhOmAgTog U2VhbiBXYW5nOyBUaW1vIFdhbHRoZXINCuS4u+mimDogUmU6IOetlOWkjTogUkXvvJpbRElTQ1VT U10gRkxJUC0xMTogVGFibGUgQVBJIFN0cmVhbSBBZ2dyZWdhdGlvbnMNCg0KSGkgWmhhbmdydWNv bmcsDQoNCnllcywgd2Ugd2FudCB0byB1c2UgQ2FsY2l0ZSdzIFNRTCBwYXJzZXIgaW5jbHVkaW5n IGl0cyB3aW5kb3cgc3ludGF4LCBpLmUuLA0KDQotIHRoZSBzdGFuZGFyZCBTUUwgT1ZFUiB3aW5k b3dzIChpbiBzdHJlYW1pbmcgd2l0aCBhIGZldyByZXN0cmljdGlvbiBzdWNoIGFzIG5vIGRpZmZl cmVudCBwYXJ0aXRpb25pbmdzIG9yIG9yZGVycykNCi0gdGhlIEdyb3VwQnkgd2luZG93IGZ1bmN0 aW9ucyAoVFVNQkxFLCBIT1AsIFNFU1NJT04pLg0KDQpUaGUgR3JvdXBCeSB3aW5kb3cgZnVuY3Rp b24gYXJlIG5vdCBpbXBsZW1lbnRlZCBpbiBDYWxjaXRlIHlldC4gVGhlcmUgaXMNCkNBTENJVEUt MTM0NSBbMV0gdG8gdHJhY2sgdGhlIGlzc3VlLg0KDQpBcyBTaGFveHVhbiBtZW50aW9uZWQsIHdl IGFyZSBub3QgdXNpbmcgdGhlIFNUUkVBTSBrZXl3b3JkIHRvIGJlIFNRTCBjb21wbGlhbnQuDQoN CkJlc3QsIEZhYmlhbg0KDQpbMV0gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dz ZS9DQUxDSVRFLTEzNDUNCg0KMjAxNi0xMC0xMyAxMjowNSBHTVQrMDI6MDAgRmFiaWFuIEh1ZXNr ZSA8Zmh1ZXNrZUBnbWFpbC5jb20+Og0KDQo+IEhpIGV2ZXJ5Ym9keSwNCj4NCj4gaGFwcHkgdG8g c2VlIGEgZ29vZCBkaXNjdXNzaW9uIGhlcmUgOi0pIEknbGwgcmVwbHkgdG8gU2hhb3h1YW4ncyBt YWlsIA0KPiBmaXJzdCBhbmQgY29tbWVudCBvbiBaaGFuZ3J1Y29uZyBxdWVzdGlvbiBpbiBhIHNl cGFyYXRlIG1haWwuDQo+DQo+IFNoYW94dWFuLCB0aGFua3MgZm9yIHRoZSBzdWdnZXN0aW9ucyEg SSB0aGluayB3ZSBhbGwgYWdyZWUgdGhhdCBmb3IgDQo+IFNRTCB3ZSBzaG91bGQgZGVmaW5pdGVs eSBmb2xsb3cgdGhlIHN0YW5kYXJkIChiYXRjaCkgU1FMIHN5bnRheC4NCj4gSW4gbXkgb3Bpbmlv biwgdGhlIFRhYmxlIEFQSSBkb2VzIG5vdCBuZWNlc3NhcmlseSBoYXZlIHRvIGJlIGFzIGNsb3Nl IA0KPiBhcyBwb3NzaWJsZSB0byBTUUwgYnV0IHNob3VsZCB0cnkgdG8gbWFrZSBhIGZldyB0aGlu Z3MgZWFzaWVyIGFuZCBhbHNvIA0KPiBzYWZlciAoZWFzaWVyIGlzIG9mIGNvdXJzZSBzdWJqZWN0 aXZlKS4NCj4NCj4gLSBHcm91cEJ5IHdpdGhvdXQgd2luZG93czogVGhlc2UgYXJlIGN1cnJlbnRs eSBpbnRlbnRpb25hbGx5IG5vdCANCj4gc3VwcG9ydGVkIGFuZCBhbHNvIG5vdCBwYXJ0IG9mIEZM SVAtMTEuIE91ciBtb3RpdmF0aW9uIGZvciBub3QgDQo+IHN1cHBvcnRpbmcgdGhpcywgaXMgdG8g Z3VhcmQgdGhlIHVzZXIgZnJvbSBkZWZpbmluZyBhIHF1ZXJ5IHRoYXQgZmFpbHMgDQo+IHdoZW4g YmVpbmcgZXhlY3V0ZWQgZHVlIHRvIGEgdmVyeSBtZW1vcnkgY29uc3VtaW5nIG9wZXJhdGlvbi4g RkxJUC0xMSANCj4gcHJvdmlkZXMgYSB3YXkgdG8gZGVmaW5lIHN1Y2ggYSBxdWVyeSBhcyBhIHNs aWRpbmcgcm93IHdpbmRvdyB3aXRoIA0KPiB1bmJvdW5kZWQgcHJlY2VkaW5nIHJvd3MuIFdpdGgg dGhlIHVwY29taW5nIFNRTCBwcm9wb3NhbCwgcXVlcmllcyB0aGF0IA0KPiBjb25zdW1lIHVuYm91 bmRlZCBtZW1vcnkgc2hvdWxkIGJlIGlkZW50aWZpZWQgYW5kIHJlamVjdGVkLiBJIHdvdWxkIGJl IA0KPiBpbiBmYXZvciBvZiBhbGxvd2luZyBncm91cEJ5IHdpdGhvdXQgd2luZG93cyBvbmNlIHRo ZSBndWFyZGluZyBtZWNoYW5pc20gYXJlIGluIHBsYWNlLg0KPg0KPiAtIEdyb3VwQnkgd2l0aCB3 aW5kb3c6IEkgdGhpbmsgdGhpcyBpcyBhIHF1ZXN0aW9uIG9mIHRhc3RlLiBIYXZpbmcgYQ0KPiB3 aW5kb3coKSBjYWxsLCBtYWtlcyB0aGUgZmVhdHVyZSBtb3JlIGV4cGxpY2l0IGluIG15IG9waW5p b24uIEhvd2V2ZXIsIA0KPiBJJ20gbm90IG9wcG9zZWQgdG8gbW92ZSB0aGUgd2luZG93cyBpbnRv IHRoZSBncm91cEJ5IGNsYXVzZS4NCj4gSW1wbGVtZW50YXRpb24td2lzZSBpdCBzaG91bGQgYmUg ZWFzeSB0byBtb3ZlIHRoZSB3aW5kb3cgZGVmaW5pdGlvbiANCj4gaW50byB0byBncm91cEJ5IGNs YXVzZSBmb3IgdGhlIFNjYWxhIFRhYmxlIEFQSS4gRm9yIHRoZSBKYXZhIFRhYmxlIEFQSSANCj4g d2Ugd291bGQgbmVlZCB0byBleHRlbmQgdGhlIHBhcnNlciBxdWl0ZSBhIGJpdCBiZWNhdXNlIHdp bmRvd3Mgd291bGQgDQo+IG5lZWQgdG8gYmUgZGVmaW5lZCBhcyBTdHJpbmdzIGFuZCBub3Qgdmlh IG9iamVjdHMuDQo+DQo+IC0gUm93V2luZG93czogVGhlIHJvd1dpbmRvdygpIGNhbGwgbWltaWNz IHRoZSBzdGFuZGFyZCBTUUwgV0lORE9XIA0KPiBjbGF1c2UgKGltcGxlbWVudGVkIGJ5IFBvc3Rn cmVTUUwgYW5kIENhbGNpdGUpIHdoaWNoIGFsbG93cyB0byBoYXZlICJyZXVzYWJsZSINCj4gd2lu ZG93IGRlZmluaXRpb25zLiBJIHRoaW5rIHRoaXMgaXMgYSBkZXNpcmFibGUgZmVhdHVyZS4gSW4g dGhlIA0KPiBGTElQLTExIHByb3Bvc2FsIHRoZSBvdmVyKCkgY2xhdXNlIGluIHNlbGVjdCgpIHJl ZmVycyB0byB0aGUgDQo+IHByZWRlZmluZWQgd2luZG93cyB3aXRoIGFsaWFzZXMuIEluIGNhc2Ug b25seSBvbmUgd2luZG93IGlzIGRlZmluZWQsIA0KPiB0aGUgb3ZlcigpIGNsYXVzZSBpcyBvcHRp b25hbCBhbmQgdGhlIHNhbWUgKGFuZCBvbmx5KSB3aW5kb3cgaXMgDQo+IGFwcGxpZWQgdG8gYWxs IGFnZ3JlZ2F0ZXMuIEkgdGhpbmsgd2UgY2FuIG1ha2UgdGhlIG92ZXIoKSBjYWxsIA0KPiBtYW5k YXRvcnkgdG8gaGF2ZSB0aGUgd2luZG93aW5nIG1vcmUgZXhwbGljaXQuIEl0IHNob3VsZCBhbHNv IGJlIA0KPiBwb3NzaWJsZSB0byBleHRlbmQgdGhlIG92ZXIgY2xhdXNlIHRvIGRpcmVjdGx5IGFj Y2VwdCBSb3dXaW5kb3dzIA0KPiBpbnN0ZWFkIG9mIHdpbmRvdyBhbGlhc2VzLiBJIHdvdWxkIG5v dCBtYWtlIHRoaXMgYSBwcmlvcml0eSBhdCB0aGUgDQo+IG1vbWVudCwgYnV0IGEgZmVhdHVyZSB0 aGF0IGNvdWxkIGJlIGxhdGVyIGFkZGVkLCBiZWNhdXNlDQo+IHJvd1dpbmRvdygpIGFuZCBvdmVy KCkgY292ZXIgYWxsIGNhc2VzLiBTaW1pbGFyIGFzIGZvciBHcm91cEJ5IHdpdGggDQo+IHdpbmRv d3MsIHdlIHdvdWxkIG5lZWQgdG8gZXh0ZW5kIHRoZSBwYXJzZXIgZm9yIHRoZSBKYXZhIFRhYmxl IEFQSSB0aG91Z2guDQo+DQo+IEZpbmFsbHksIEkgaGF2ZSBhbiBvd24gc3VnZ2VzdGlvbjoNCj4g SW4gRkxJUC0xMSwgZ3JvdXBCeSgpIGlzICB1c2VkIHRvIGRlZmluZSB0aGUgcGFydGl0aW9uaW5n IG9mIA0KPiBSb3dXaW5kb3dzLiBJIHRoaW5rIHRoaXMgc2hvdWxkIGJlIGNoYW5nZWQgdG8gcGFy dGl0aW9uQnkoKSBiZWNhdXNlIA0KPiBncm91cEJ5KCkgZ3JvdXBzIGRhdGEgYW5kIGFwcGxpZXMg YW4gYWdncmVnYXRpb24gdG8gYWxsIHJvd3Mgb2YgYSANCj4gZ3JvdXAgd2hpY2ggaXMgbm90IGhh cHBlbmluZyBoZXJlLiBJbiBvcmlnaW5hbCBTUUwsIHRoZSBPVkVSIGNsYXVzZSANCj4gZmVhdHVy ZXMgYSBQQVJUSVRJT04gQlkgY2xhdXNlLiBXZSBhcmUgbW92aW5nIHRoaXMgb3V0IG9mIHRoZSB3 aW5kb3cgDQo+IGRlZmluaXRpb24sIGkuZS4sIE9WRVIgY2xhdXNlLCB0byBlbmZvcmNlIHRoZSBz YW1lIHBhcnRpdGlvbmluZyBmb3IgDQo+IGFsbCB3aW5kb3dzIChkaWZmZXJlbnQgcGFydGl0aW9u aW5ncyB3b3VsZCBiZSBhIGNoYWxsZW5nZSB0byBleGVjdXRlIGluIGEgcGFyYWxsZWwgc3lzdGVt KS4NCj4NCj4gQFRpbW8gYW5kIGFsbDogV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQ6DQo+DQo+IC0g bW92aW5nIHdpbmRvd3MgaW50byB0aGUgZ3JvdXBCeSgpIGNhbGwNCj4gLSBtYWtpbmcgb3Zlcigp IGZvciByb3dXaW5kb3coKSB3aXRoIGEgc2luZ2xlIHdpbmRvdyBkZWZpbml0aW9uDQo+IC0gYWRk aXRpb25hbGx5IGFsbG93aW5nIHdpbmRvdyBkZWZpbml0aW9ucyBpbiBvdmVyKCkNCj4gLSB1c2lu ZyBwYXJ0aXRpb25CeSgpIGluc3RlYWQgb2YgZ3JvdXBCeSgpIGZvciByb3cgd2luZG93cz8NCj4N Cj4gQmVzdCwgRmFiaWFuDQo+DQo+IDIwMTYtMTAtMTMgMTE6MTAgR01UKzAyOjAwIFpoYW5ncnVj b25nIDx6aGFuZ3J1Y29uZ0BodWF3ZWkuY29tPjoNCj4NCj4+IEhpIHNoYW94dWFuOg0KPj4NCj4+ IEkgdGhpbmssICB0aGUgc3RyZWFtc3FsIG11c3QgYmUgZXhjdXRlZCBpbiB0YWJsZSBlbnZpcm9u bWVudC4gU28gSSANCj4+IGNhbGwgdGhpcyB0YWJsZSBBUEkg4oCYcyBTdHJlYW1TUUwuIFdoYXQg ZG8geW91IGNhbGwgZm9yIHRoaXMsIHN0cmVhbSANCj4+IFRhYmxlIEFQSSBvciBzdHJlYW1zcWw/ IEl0IGlzIGZ1DQo+Pg0KPj4gdmFsIGVudiA9IFN0cmVhbUV4ZWN1dGlvbkVudmlyb25tZW50Lmdl dEV4ZWN1dGlvbkVudmlyb25tZW50DQo+PiB2YWwgdGJsRW52ID0gVGFibGVFbnZpcm9ubWVudC5n ZXRUYWJsZUVudmlyb25tZW50KGVudikNCj4+IHZhbCBkczogRGF0YVN0cmVhbVsoU3RyaW5nLExv bmcsIExvbmcpXSA9IA0KPj4gZW52LnJlYWRUZXh0RmlsZSgiL2hvbWUvZGVtbyIpIHRibEVudi5y ZWdpc3RlckRhdGFTdHJlYW0oIk9yZGVyIiwgZHMsICd1c2VySUQsICdjb3VudCwgJ251bSkNCj4+ ICAgICAubWFwKGY9PihmLCAxTCwgMUwpKQ0KPj4gdmFsIHNxbCA9IHRibEVudi5zcWwoIlNFTEVD VCBTdHJlYW0gKiBGUk9NIE9yZGVyIFdIRVJFIHVzZXJJRD0nQSciKQ0KPj4NCj4+IFNvIGluIG15 IG9waW5pb24sIHRoZSBncmFtbWFyIHdoaWNoIGlzIG1hcmtlZCByZWQgc2hvdWxkIGJlIA0KPj4g Y29tcGF0aWJsZSB3aXRoIGNhbGNpdGUncyBTdHJlYW1TUUwgZ3JhbW1hci4NCj4+DQo+PiBCeSB0 aGUgd2F5LCAgdGhhbmtzIHZlcnkgbXVjaCBmb3IgdGVsbGluZyBtZSB0aGUgbW9kaWZpZWQgY29u dGVudCBpbiANCj4+IEZsaW5rIFN0cmVhbVNRTC4gSSB3aWxsIGxvb2sgdGhlIG5ldyBwcm9wb3Nh bCAuDQo+Pg0KPj4gVGhhbmtzIQ0KPj4g5Y+R5Lu25Lq6OiBTZWFuIFdhbmcgW21haWx0bzp3c2hh b3h1YW5AZ21haWwuY29tXQ0KPj4g5Y+R6YCB5pe26Ze0OiAyMDE25bm0MTDmnIgxM+aXpSAxNjoy OQ0KPj4g5pS25Lu25Lq6OiBkZXZAZmxpbmsuYXBhY2hlLm9yZzsgWmhhbmdydWNvbmcNCj4+IOS4 u+mimDogUmU6IFJF77yaW0RJU0NVU1NdIEZMSVAtMTE6IFRhYmxlIEFQSSBTdHJlYW0gQWdncmVn YXRpb25zDQo+Pg0KPj4gSGkgIHpoYW5ncnVjb25nLA0KPj4gSSBhbSBub3Qgc3VyZSB3aGF0IHlv dSBtZWFuIGJ5ICJ0YWJsZSBBUEknUyBTdHJlYW1TUUwiLCBJIGd1ZXNzIHlvdSANCj4+IG1lYW4g InN0cmVhbSBUYWJsZUFQSSI/DQo+PiBUYWJsZUFQSSBzaG91bGQgYmUgY29tcGF0aWJsZSB3aXRo IGNhbGNpdGUgU1FMLiAoQnkgY29tcGF0aWJsZSwgTXkgDQo+PiB1bmRlcnN0YW5kaW5nIGlzIHRo YXQgYm90aCBUYWJsZUFQSSBhbmQgU1FMIHdpbGwgYmUgdHJhbnNsYXRlZCB0byB0aGUgDQo+PiBz YW1lIGxvZ2ljYWwgcGxhbiAtIHRoZSBzYW1lIHNldCBvZiBSRUwgYW5kIFJFWCkuDQo+PiBCVFcs IHBsZWFzZSBub3RlIHRoYXQgd2UgcmVjZW50bHkgaGF2ZSBtZXJnZWQgYSBjaGFuZ2UgdG8gcmVt b3ZlIA0KPj4gU1RSRUFNIGtleXdvcmQgZm9yIGZsaW5rIHN0cmVhbSBTUUwoRkxJTkstNDU0Niku IEluIG91ciBvcGluaW9uLCANCj4+IGJhdGNoIGFuZCBzdHJlYW0gYXJlIG5vdCBuZWNlc3Nhcmls eSB0byBiZSBkaWZmZXJlbnRpYXRlZCBhdCB0aGUgU1FMIA0KPj4gbGV2ZWwuIFRoZSBtYWpvciBk aWZmZXJlbmNlIGJldHdlZW4gYmF0Y2ggYW5kIHN0cmVhbSBpcyAiV0hFTiBhbmQgSE9XIHRvIGVt aXQgdGhlIHJlc3VsdCIuDQo+PiBXZSBoYXZlIGJlZW4gd29ya2luZyBvbiBhIG5ldyBwcm9wb3Nh bCB3aXRoIEZhYmlhbiBvbiB0aGlzIGNoYW5nZS4gSSANCj4+IGd1ZXNzIGl0IHdpbGwgYmUgc2Vu dCBvdXQgZm9yIHJldmlldyB2ZXJ5IHNvb24uDQo+Pg0KPj4gUmVnYXJkcywNCj4+IFNoYW94dWFu DQo+Pg0KPj4NCj4+IE9uIFRodSwgT2N0IDEzLCAyMDE2IGF0IDI6MjkgUE0sIFpoYW5ncnVjb25n IDx6aGFuZ3J1Y29uZ0BodWF3ZWkuY29tIA0KPj4gPG1haWx0bzp6aGFuZ3J1Y29uZ0BodWF3ZWku Y29tPj4gd3JvdGU6DQo+PiBIaSBzaGFveHVhbjoNCj4+IERvZXMgdGhlIHRhYmxlIEFQSSdTIFN0 cmVhbVNRTCBncmFtbWFyIGlzIGNvbXBhdGlibGUgd2l0aCBjYWxjaXRlJ3MgDQo+PiBTdHJlYW1T UUwgZ3JhbW1hcj8NCj4+DQo+Pg0KPj4gMeOAgUluIGNhbGNpdGUsIHRoZSB0dW1ibGUgd2luZG93 IGlzIHJlYWxpemVkIGJ5IHVzaW5nIGZ1bmN0aW9uIHR1bWJsZSANCj4+IG9yIGhvcC4gQW5kIHRo ZSBmdW5jdGlvbiBtdXN0IGJlIHVzZWQgd2l0aCBncm91cCBieSwgbGlrZSB0aGlzOg0KPj4NCj4+ IFNFTEVDVA0KPj4gICBUVU1CTEVfRU5EKHJvd3RpbWUsIElOVEVSVkFMICczMCcgTUlOVVRFLCBU SU1FICcwOjEyJykgQVMgcm93dGltZSwNCj4+ICAgcHJvZHVjdElkLA0KPj4gICBDT1VOVCgqKSBB UyBjLA0KPj4gICBTVU0odW5pdHMpIEFTIHVuaXRzDQo+PiBGUk9NIE9yZGVycw0KPj4gR1JPVVAg QlkgVFVNQkxFKHJvd3RpbWUsIElOVEVSVkFMICczMCcgTUlOVVRFLCBUSU1FICcwOjEyJyksDQo+ PiAgIHByb2R1Y3RJZDsNCj4+DQo+PiAy44CBIFRoZSBzbGlkaW5nIHdpbmRvdyB1c2VzIGtleXdv cmRzICJ3aW5kb3ciIGFuZCAib3ZlciIuIExpa2UgdGhpczoNCj4+DQo+PiBTRUxFQ1QgICoNCj4+ IEZST00gKA0KPj4gICBTRUxFQ1QgU1RSRUFNIHJvd3RpbWUsDQo+PiAgICAgcHJvZHVjdElkLA0K Pj4gICAgIHVuaXRzLA0KPj4gICAgIEFWRyh1bml0cykgT1ZFUiBwcm9kdWN0IChSQU5HRSBJTlRF UlZBTCAnMTAnIE1JTlVURSBQUkVDRURJTkcpIEFTIG0xMCwNCj4+ICAgICBBVkcodW5pdHMpIE9W RVIgcHJvZHVjdCAoUkFOR0UgSU5URVJWQUwgJzcnIERBWSBQUkVDRURJTkcpIEFTIGQ3DQo+PiAg IEZST00gT3JkZXJzDQo+PiAgIFdJTkRPVyBwcm9kdWN0IEFTICgNCj4+ICAgICBPUkRFUiBCWSBy b3d0aW1lDQo+PiAgICAgUEFSVElUSU9OIEJZIHByb2R1Y3RJZCkpDQo+Pg0KPj4NCj4+DQo+PiBU aGFua3PvvIENCj4+DQo+PiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+PiDlj5Hku7bkuro6IOeO i+e7jee/vijlpKfmspkpIA0KPj4gW21haWx0bzpzaGFveHVhbi53c3hAYWxpYmFiYS1pbmMuY29t PG1haWx0bzpzaGFveHVhbi53c3hAYWxpDQo+PiBiYWJhLWluYy5jb20+XQ0KPj4g5Y+R6YCB5pe2 6Ze0OiAyMDE25bm0MTDmnIgxM+aXpSAyOjAzDQo+PiDmlLbku7bkuro6IGRldkBmbGluay5hcGFj aGUub3JnPG1haWx0bzpkZXZAZmxpbmsuYXBhY2hlLm9yZz4NCj4+IOS4u+mimDogUkXvvJpbRElT Q1VTU10gRkxJUC0xMTogVGFibGUgQVBJIFN0cmVhbSBBZ2dyZWdhdGlvbnMNCj4+DQo+PiBIaSBG YWJpYW4sIFRpbW8sIGFuZCBKYXJrLlRoYW5rcyBmb3Iga2lja2luZyBvZmYgdGhpcyBGTElQLiBU aGlzIGlzIGEgDQo+PiByZWFsbHkgZ3JlYXQgYW5kIHByb21pc2luZyBwcm9wb3NhbC4gSSBoYXZl IGEgZmV3IGNvbW1lbnRzIHRvIHRoZSAid2luZG93Ig0KPj4gb3BlcmF0b3IgcHJvcG9zZWQgaW4g dGhpcyBGTElQIChJIGFtIGhvcGluZyBpdCBpcyBub3QgdG9vIGxhdGUgdG8gDQo+PiBicmluZyB1 cCB0aGlzKS4gRmlyc3QsIHdpbmRvdyBpcyBub3QgYWx3YXlzIG5lZWRlZCBmb3IgdGhlIHN0cmVh bSANCj4+IGFnZ3JlZ2F0aW9uLiBUaGVyZSBhcmUgY2FzZXMgd2hlcmUgd2Ugd2FudCBkbyBhbiBh Z2dyZWF0aW9uIG9uIGEgDQo+PiBzdHJlYW0sIHdoaWxlIHRoZSBxdWVyeS9lbWl0IHN0cmF0ZWd5 IGRlY2lkZXMgd2hlbiB0byBlbWl0IGEgDQo+PiBzdHJlYW1pbmcgb3V0cHV0LiBTZWNvbmQsIHdp bmRvdyBpcyBuZWVkZWQgd2hlbiB3ZSB3YW50IGRvIGFuIA0KPj4gYWdncmVnYXRpb24gZm9yIGEg Y2VydGFpbiByYWdlLCBidXQgd2luZG93IGlzIG5vdCBhbiBvcGVyYXRvci4gV2UgDQo+PiBiYXNp Y2FsbHkgdXNlIHdpbmRvdyB0byBkZWZpbmUgdGhlIHJhbmdlIGZvciBhZ2dyZWdhdGlvbi4gSW4g dGFibGVBUEksIGEgd2luZG93IHNob3VsZCBiZSBkZWZpbmVkIHRvZ2V0aGVyIHdpdGggImdyb3Vw YnkiIGFuZCAic2VsZWN0Ig0KPj4gb3BlcmF0b3JzLCBlaXRoZXIgaW5zaWRlIGEgImdyb3VwYnki IG9wZXJhdG9yIG9yIGFmdGVyIGFuICJvdmVyIiANCj4+IGNsYXVzZSBpbiAic2VsZWN0IiBvcGVy YXRvci4gVGhpcyB3aWxsIG1ha2UgdGhlIFRhYmxlQVBJIGluIHRoZSBzaW1pbGFyIG1hbm5lciBh cyBTUUwuDQo+PiBGb3IgaW5zdGFuY2UsW0EgZ3JvdXBieSB3aXRob3V0IHdpbmRvd10gPFRhYmxl IEFQST4gdmFsIHJlcyA9IHRhYg0KPj4gLmdyb3VwQnko4oCYYSkNCj4+IC5zZWxlY3Qo4oCYYSwg 4oCYYi5zdW0pDQo+PiA8U1FMPg0KPj4gU0VMRUNUIGEsIFNVTShiKQ0KPj4gRlJPTSB0YWINCj4+ IEdST1VQIEJZIGENCj4+IFtBIHR1bWJsZSB3aW5kb3cgaW5zaWRlIGdyb3VwYnldDQo+PiA8VGFi bGUgQVBJPnZhbCByZXMgPSB0YWINCj4+IC5ncm91cEJ5KOKAmGEsIHR1bWJsZSgxMC5taW51dGVz LCDigJhyb3d0aW1lKSkgLnNlbGVjdCjigJhhLCDigJhiLnN1bSkgDQo+PiA8U1FMPlNFTEVDVCBh LCBTVU0oYilGUk9NIHRhYiBHUk9VUCBCWSBhLCBUVU1CTEUoMTAubWludXRlcyAsIA0KPj4g4oCY cm93dGltZSkgW0Egcm93IHR1bWJsZSB3aW5kb3cgYWZ0ZXIgT1ZFUl0gPFRhYmxlIEFQST4uZ3Jv dXBieSgnYSkgDQo+PiAvL29wdGlvbmFsIC5zZWxlY3Qo4oCYYSwg4oCYYi5jb3VudCBvdmVyIHJv d1R1bWJsZSgxMC5taW51dGVzLCANCj4+IOKAmHJvd3RpbWUpKTxTUUw+U0VMRUNUIGEsDQo+PiBD T1VOVChiKSBPVkVSIFJPV1RVTUJMRSgxMC5taW51dGVzLCDigJhyb3d0aW1lKUZST00gdGFiIEdS T1VQIEJZIGEgDQo+PiBQbGVhc2UgbGV0IG1lIGtub3cgd2hhdCB5b3UgdGhpbmsuDQo+PiBSZWdh cmRzLFNoYW94dWFuDQo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS3lj5Hku7bkuroNCj4+IO+8mkZhYmlhbg0KPj4gSHVl c2tlIA0KPj4gPGZodWVza2VAZ21haWwuY29tPG1haWx0bzpmaHVlc2tlQGdtYWlsLmNvbT4+5Y+R 6YCB5pe26Ze077yaMjAxNuW5tDnmnIgyNuaXpSjmmJ/mnJ/kuIApDQo+PiAyMToxM+aUtuS7tuS6 uu+8mmRldkBmbGluay5hcGFjaGUub3JnPG1haWx0bzpkZXZAZmxpbmsuYXBhY2hlLm9yZz4gPA0K Pj4gZGV2QGZsaW5rLmFwYWNoZS5vcmc8bWFpbHRvOmRldkBmbGluay5hcGFjaGUub3JnPj7kuLsg 6aKY77yaUmU6IFtESVNDVVNTXQ0KPj4gRkxJUC0xMTogVGFibGUgQVBJIFN0cmVhbSBBZ2dyZWdh dGlvbnMgSGkgZXZlcnlib2R5LA0KPj4NCj4+IFRpbW8gcHJvcG9zZWQgb3VyIEZMSVAtMTEgYSBi aXQgbW9yZSB0aGFuIHRocmVlIHdlZWtzIGFnby4NCj4+IEkgd2lsbCB1cGRhdGUgdGhlIHN0YXR1 cyBvZiB0aGUgRkxJUCB0byBhY2NlcHRlZC4NCj4+DQo+PiBUaGFua3MsDQo+PiBGYWJpYW4NCj4+ DQo+PiAyMDE2LTA5LTE5IDk6MTYgR01UKzAyOjAwIFRpbW8gV2FsdGhlciA8dHdhbHRockBhcGFj aGUub3JnPG1haWx0bzp0d2ENCj4+IGx0aHJAYXBhY2hlLm9yZz4+Og0KPj4NCj4+ID4gSGkgSmFy aywNCj4+ID4NCj4+ID4geWVzIEkgdGhpbmsgZW5vdWdoIHRpbWUgaGFzIHBhc3NlZC4gV2UgY2Fu IHN0YXJ0IGltcGxlbWVudGluZyB0aGUNCj4+IGNoYW5nZXMuDQo+PiA+IFdoYXQgZG8geW91IHRo aW5rIEZhYmlhbj8NCj4+ID4NCj4+ID4gSWYgdGhlcmUgYXJlIG5vIG9iamVjdGlvbnMsIEkgd2ls bCBjcmVhdGUgdGhlIHN1YnRhc2tzIGluIEppcmEgdG9kYXkuDQo+PiA+Rm9yDQo+PiA+IEZMSVAt MTEvMSBJIGFscmVhZHkgaGF2ZSBpbXBsZW1lbnRlZCBhIHByb3RvdHlwZSwgSSBqdXN0IGhhdmUg dG8gZG8gDQo+PiA+c29tZSAgcmVmYWN0b3JpbmcvZG9jdW1lbnRhdGlvbiBiZWZvcmUgb3Blbmlu ZyBhIFBSLg0KPj4gPg0KPj4gPiBUaW1vDQo+PiA+DQo+PiA+DQo+PiA+IEFtIDE4LzA5LzE2IHVt IDA0OjQ2IHNjaHJpZWIgSmFyayBXdToNCj4+ID4NCj4+ID4gSGkgYWxsLA0KPj4gPj4NCj4+ID4+ IEl0IHNlZW1zIHRoYXQgdGhlcmXigJlzIG5vIG9iamVjdGlvbnMgdG8gdGhlIHdpbmRvdyBkZXNp Z24uIFNvIGNvdWxkIA0KPj4gPj4gd2Ugb3BlbiBzdWJ0YXNrcyB0byBzdGFydCB3b3JraW5nIG9u IGl0IG5vdyA/DQo+PiA+Pg0KPj4gPj4gLSBKYXJrIFd1DQo+PiA+Pg0KPj4gPj4g5ZyoIDIwMTbl ubQ55pyIN+aXpe+8jOS4i+WNiDQ6MjnvvIxKYXJrIFd1IDx3dWNob25nLndjQGFsaWJhYmEtaW5j LmNvbTxtYWlsdG86DQo+PiB3dWNob25nLndjQGFsaWJhYmEtaW5jLmNvbT4+IOWGmemBk++8mg0K Pj4gPj4+DQo+PiA+Pj4gSGkgRmFiaWFuLA0KPj4gPj4+DQo+PiA+Pj4gVGhhbmtzIGZvciBzaGFy aW5nIHlvdXIgaWRlYXMuDQo+PiA+Pj4NCj4+ID4+PiBUaGV5IGFsbCBtYWtlIHNlbnNlIHRvIG1l LiBSZWdhcmRpbmcgdG8gcmVhc3NpZ25pbmcgdGltZXN0YW1wLCBJIA0KPj4gPj4+ZG8gbm90ICBo YXZlIGFuIHVzZSBjYXNlLiBJIGNvbWUgdXAgd2l0aCB0aGlzIGJlY2F1c2UgRGF0YVN0cmVhbSAN Cj4+ID4+PmhhcyBhICBUaW1lc3RhbXBBc3NpZ25lciA6KQ0KPj4gPj4+DQo+PiA+Pj4gKzEgZm9y IHRoaXMgRkxJUC4NCj4+ID4+Pg0KPj4gPj4+IC0gSmFyayBXdQ0KPj4gPj4+DQo+PiA+Pj4g5Zyo IDIwMTblubQ55pyIN+aXpe+8jOS4i+WNiDI6NTnvvIxGYWJpYW4gSHVlc2tlIDxmaHVlc2tlQGdt YWlsLmNvbTxtYWlsdG86Zmh1ZQ0KPj4gc2tlQGdtYWlsLmNvbT4gPG1haWx0bzoNCj4+ID4+Pj4g Zmh1ZXNrZUBnbWFpbC5jb208bWFpbHRvOmZodWVza2VAZ21haWwuY29tPj4+IOWGmemBk++8mg0K Pj4gPj4+Pg0KPj4gPj4+PiBIaSwNCj4+ID4+Pj4NCj4+ID4+Pj4gdGhhbmtzIGZvciB5b3VyIGNv bW1lbnRzIGFuZCBxdWVzdGlvbnMhDQo+PiA+Pj4+IEFjdHVhbGx5LCB5b3UgYXJlIGJyaW5naW5n IHVwIHRoZSBwb2ludHMgdGhhdCBUaW1vIGFuZCBJIA0KPj4gPj4+PmRpc2N1c3NlZCB0aGUgIG1v c3QgIHdoZW4gZGVzaWduaW5nIHRoZSBGTElQIDstKQ0KPj4gPj4+Pg0KPj4gPj4+PiAtIFdlIGFs c28gdGhvdWdodCBhYm91dCB0aGUgc3ludGFjdGljIHNob3J0Y3V0IGZvciBydW5uaW5nIA0KPj4g Pj4+PmFnZ3JlZ2F0ZXMgIGxpa2UgIHlvdSBwcm9wb3NlZCAodGFibGUuZ3JvdXBCeSjigJhhKS5z ZWxlY3Qo4oCmKSkuIE91ciANCj4+ID4+Pj5tb3RpdmF0aW9uIHRvIG5vdCBhbGxvdyAgdGhpcyBz aG9ydGN1dCBpcyB0byBwcmV2ZW50IHVzZXJzIGZyb20gDQo+PiA+Pj4+YWNjaWRlbnRhbGx5IHBl cmZvcm1pbmcgYSAgImRhbmdlcm91cyIgb3BlcmF0aW9uLiBUaGUgcHJvYmxlbSANCj4+ID4+Pj53 aXRoIHVuYm91bmRlZCBzbGlkaW5nIHJvdy13aW5kb3dzIGlzICB0aGF0IHRoZWlyIHN0YXRlIGRv ZXMgDQo+PiA+Pj4+bmV2ZXIgZXhwaXJlLiBJZiB5b3UgaGF2ZSBhbiBldm9sdmluZyBrZXkgc3Bh Y2UsICB5b3UgIHdpbGwgDQo+PiA+Pj4+bGlrZWx5IHJ1biBpbnRvIHByb2JsZW1zIGF0IHNvbWUg cG9pbnQgYmVjYXVzZSB0aGUgb3BlcmF0b3Igc3RhdGUgIA0KPj4gPj4+Pmdyb3dzIHRvbyBsYXJn ZS4gSU1PLCBhIHJvdy13aW5kb3cgc2Vzc2lvbiBpcyBhIGJldHRlciBhcHByb2FjaCwgIA0KPj4g Pj4+PmJlY2F1c2UgaXQgIGRlZmluZXMgYSB0aW1lb3V0IGFmdGVyIHdoaWNoIHN0YXRlIGNhbiBi ZSBkaXNjYXJkZWQuDQo+PiA+Pj4+Z3JvdXBCeS5zZWxlY3QgaXMNCj4+ID4+Pj4gYQ0KPj4gPj4+ PiB2ZXJ5IGNvbW1vbiBvcGVyYXRpb24gaW4gYmF0Y2ggYnV0IGl0cyBzZW1hbnRpY3MgaW4gc3Ry ZWFtaW5nIA0KPj4gPj4+PmFyZSB2ZXJ5ICBkaWZmZXJlbnQuIEluIG15IG9waW5pb24gaXQgbWFr ZXMgc2Vuc2UgdG8gbWFrZSB1c2VycyANCj4+ID4+Pj5hd2FyZSBvZiB0aGVzZSAgZGlmZmVyZW5j ZXMgdGhyb3VnaCB0aGUgQVBJLg0KPj4gPj4+Pg0KPj4gPj4+PiAtIFJlYXNzaWduaW5nIHRpbWVz dGFtcHMgYW5kIHdhdGVybWFya3MgaXMgYSB2ZXJ5IGRlbGljYXRlIGlzc3VlLg0KPj4gPj4+Pllv dQ0KPj4gPj4+PiBhcmUNCj4+ID4+Pj4gcmlnaHQsIHRoYXQgQ2FsY2l0ZSBleHBvc2VzIHRoaXMg ZmllbGQgd2hpY2ggaXMgbmVjZXNzYXJ5IGR1ZSB0byANCj4+ID4+Pj50aGUgIHNlbWFudGljcyBv ZiBTUUwuIEhvd2V2ZXIsIGFsc28gaW4gQ2FsY2l0ZSB5b3UgY2Fubm90IGZyZWVseSANCj4+ID4+ Pj5jaG9vc2UgdGhlICB0aW1lc3RhbXAgYXR0cmlidXRlIGZvciBzdHJlYW1pbmcgcXVlcmllcyAo aXQgbXVzdCBiZSANCj4+ID4+Pj5hIG1vbm90b25lIG9yICBxdWFzaS1tb25vdG9uZSBhdHRyaWJ1 dGUpIHdoaWNoIGlzIGhhcmQgdG8gcmVhc29uIA0KPj4gPj4+PmFib3V0IChhbmQNCj4+ID4+Pj5n dWFyYW50ZWUpDQo+PiA+Pj4+IGFmdGVyIGEgZmV3IG9wZXJhdG9ycyBoYXZlIGJlZW4gYXBwbGll ZC4gU3RyZWFtaW5nIHRhYmxlcyBpbiANCj4+ID4+Pj5GbGluayB3aWxsICBsaWtlbHkgaGF2ZSBh IHRpbWUgYXR0cmlidXRlIHdoaWNoIGlzIGlkZW50aWNhbCB0byANCj4+ID4+Pj50aGUgaW5pdGlh bA0KPj4gcm93dGltZS4NCj4+ID4+Pj4gSG93ZXZlciwgRmxpbmsgZG9lcyBtb2RpZnkgdGltZXN0 YW1wcyBpbnRlcm5hbGx5LCBlLmcuLCBmb3IgDQo+PiA+Pj4+cmVjb3JkcyB0aGF0ICBhcmUgZW1p dHRlZCBmcm9tIHRpbWUgd2luZG93cywgaW4gb3JkZXIgdG8gZW5zdXJlIA0KPj4gPj4+PnRoYXQg Y29uc2VjdXRpdmUgIHdpbmRvd3MgIHBlcmZvcm0gYXMgZXhwZWN0ZWQuIE1vZGlmeSBvciANCj4+ ID4+Pj5yZWFzc2lnbiB0aW1lc3RhbXBzIGluIHRoZSBtaWRkbGUgb2YgYSAgam9iICBjYW4gcmVz dWx0IGluIA0KPj4gPj4+PnVuZXhwZWN0ZWQgcmVzdWx0cyB3aGljaCBhcmUgdmVyeSBoYXJkIHRv IHJlYXNvbiBhYm91dC4gRG8gIHlvdSANCj4+ID4+Pj5oYXZlIGEgY29uY3JldGUgdXNlIGNhc2Ug aW4gbWluZCBmb3IgcmVhc3NpZ25pbmcgdGltZXN0YW1wcz8NCj4+ID4+Pj4NCj4+ID4+Pj4gLSBU aGUgaWRlYSB0byByZXByZXNlbnQgcm93dGltZSBhbmQgc3lzdGltZSBhcyBvYmplY3QgaXMgZ29v ZC4gDQo+PiA+Pj4+T3VyICBtb3RpdmF0aW9uIHRvIGdvIGZvciByZXNlcnZlZCBTY2FsYSBzeW1i b2xzIHdhcyB0byBoYXZlIGEgDQo+PiA+Pj4+dW5pZm9ybSBzeW50YXggIHdpdGggd2luZG93cyBv dmVyIHN0cmVhbWluZyBhbmQgYmF0Y2ggdGFibGVzLiBPbiANCj4+ID4+Pj5iYXRjaCB0YWJsZXMg eW91IGNhbiAgY29tcHV0ZSB0aW1lIHdpbmRvd3MgYmFzaWNhbGx5IG92ZXIgZXZlcnkgDQo+PiA+ Pj4+dGltZSBhdHRyaWJ1dGUgKHRoZXkgYXJlICB0cmVhdGVkICBzaW1pbGFyIHRvIGdyb3VwaW5n IGF0dHJpYnV0ZXMgDQo+PiA+Pj4+d2l0aCBhIGJpdCBvZiBleHRyYSBsb2dpYyB0byBleHRyYWN0 IHRoZSAgZ3JvdXBpbmcga2V5IGZvciANCj4+ID4+Pj5zbGlkaW5nIGFuZCBzZXNzaW9uIHdpbmRv d3MpLiBJZiB5b3Ugd3JpdGUgIHdpbmRvdyhUdW1ibGUgIG92ZXIgDQo+PiA+Pj4+MTAubWludXRl cyBvbiAncm93dGltZSkgb24gYSBzdHJlYW1pbmcgdGFibGUsICdyb3d0aW1lIHdvdWxkICANCj4+ ID4+Pj5pbmRpY2F0ZSAgZXZlbnQtdGltZS4gT24gYSBiYXRjaCB0YWJsZSB3aXRoIGEgJ3Jvd3Rp bWUgYXR0cmlidXRlLCANCj4+ID4+Pj50aGUgc2FtZSAgb3BlcmF0b3IgIHdvdWxkIGJlIGludGVy bmFsbHkgY29udmVydGVkIGludG8gYSBncm91cCANCj4+ID4+Pj5ieS4gQnkgZ29pbmcgZm9yIHRo ZSBvYmplY3QgIGFwcHJvYWNoIHdlIHdvdWxkIGxvc2UgdGhpcyANCj4+ID4+Pj5jb21wYXRpYmls aXR5IChvciB3b3VsZCBuZWVkIHRvIGludHJvZHVjZSBhbiAgYWRkaXRpb25hbCBjb2x1bW4gDQo+ PiA+Pj4+YXR0cmlidXRlIHRvIHNwZWNpZml5IHRoZSB3aW5kb3cgYXR0cmlidXRlIGZvciBiYXRj aCAgdGFibGVzKS4NCj4+ID4+Pj4NCj4+ID4+Pj4gQXMgdXN1YWwgc29tZSBvZiB0aGUgZGVzaWdu IGRlY2lzaW9ucyBhcmUgYmFzZWQgb24gcHJlZmVyZW5jZXMuDQo+PiA+Pj4+IERvIHRoZXkgbWFr ZSBzZW5zZSB0byB5b3U/IExldCBtZSBrbm93IHdoYXQgeW91IHRoaW5rLg0KPj4gPj4+Pg0KPj4g Pj4+PiBCZXN0LCBGYWJpYW4NCj4+ID4+Pj4NCj4+ID4+Pj4NCj4+ID4+Pj4gMjAxNi0wOS0wNyA1 OjEyIEdNVCswMjowMCBKYXJrIFd1IDx3dWNob25nLndjQGFsaWJhYmEtaW5jLmNvbTxtYQ0KPj4g aWx0bzp3dWNob25nLndjQGFsaWJhYmEtaW5jLmNvbT4gPG1haWx0bzoNCj4+ID4+Pj4gd3VjaG9u Zy53Y0BhbGliYWJhLWluYy5jb208bWFpbHRvOnd1Y2hvbmcud2NAYWxpYmFiYS1pbmMuY29tPj4+ Og0KPj4gPj4+Pg0KPj4gPj4+PiBIaSBhbGwsDQo+PiA+Pj4+Pg0KPj4gPj4+Pj4gSSdtIG9uIHZh Y2F0aW9uIGZvciBhYm91dCBmaXZlIGRheXMgLCBzb3JyeSB0byBoYXZlIG1pc3NlZCB0aGlzIA0K Pj4gPj4+Pj5ncmVhdCAgRkxJUC4NCj4+ID4+Pj4+DQo+PiA+Pj4+PiBZZXMsIHRoZSBub24td2lu ZG93ZWQgYWdncmVnYXRlcyBpcyBhIHNwZWNpYWwgY2FzZSBvZiByb3ctd2luZG93Lg0KPj4gPj4+ Pj5BbmQNCj4+ID4+Pj4+IHRoZQ0KPj4gPj4+Pj4gcHJvcG9zYWwgbG9va3MgcmVhbGx5IGdvb2Qu ICBDYW4gd2UgaGF2ZSBhIHNpbXBsaWZpZWQgZm9ybSBmb3IgDQo+PiA+Pj4+PnRoZSAgc3BlY2lh bCAgY2FzZT8gU3VjaCBhcyA6IHRhYmxlLmdyb3VwQnko4oCYYSkucm93V2luZG93KFNsDQo+PiA+ Pj4+PiBpZGVSb3dzLnVuYm91bmRlZFByZWNlZGluZykuc2VsZWN0KOKApikNCj4+ID4+Pj4+IGNh biBiZSBzaW1wbGlmaWVkIHRvICB0YWJsZS5ncm91cEJ5KOKAmGEpLnNlbGVjdCjigKYpLiBUaGUg bGF0dGVyIA0KPj4gPj4+Pj53aWxsICBhY3R1YWxseSAgY2FsbCB0aGUgZm9ybWVyLg0KPj4gPj4+ Pj4NCj4+ID4+Pj4+IEFub3RoZXIgcXVlc3Rpb24gaXMgYWJvdXQgdGhlIHJvd3RpbWUuIEFzIHRo ZSBGTElQIHNhaWQsIA0KPj4gPj4+Pj5EYXRhU3RyZWFtIGFuZCAgU3RyZWFtVGFibGVTb3VyY2Ug aXMgcmVzcG9uc2libGUgdG8gYXNzaWduIA0KPj4gPj4+Pj50aW1lc3RhbXBzIGFuZCB3YXRlcm1h cmtzLCAgZnVydGhlcm1vcmUg4oCccm93dGltZeKAnSBhbmQgDQo+PiA+Pj4+PuKAnHN5c3RlbXRp bWXigJ0gYXJlIG5vdCByZWFsIGNvbHVtbi4gSU1PLCBpdCBpcyAgZGlmZmVyZW50IHdpdGggDQo+ PiA+Pj4+PkNhbGNpdGXigJlzIHJvd3RpbWUsIHdoaWNoIGlzIGEgcmVhbCBjb2x1bW4gaW4gdGhl DQo+PiB0YWJsZS4NCj4+ID4+Pj4+IEluDQo+PiA+Pj4+PiBGTElQJ3Mgd2F5LCB3ZSB3aWxsIGxv c2Ugc29tZSBmbGV4aWJpbGl0eS4gQmVjYXVzZSB0aGUgdGltZXN0YW1wDQo+PiA+Pj4+PiBjb2x1 bW4gbWF5DQo+PiA+Pj4+PiBiZSBjcmVhdGVkIGFmdGVyIHNvbWUgdHJhbnNmb3JtYXRpb25zIG9y IGpvaW4gb3BlcmF0aW9uLCBub3QNCj4+ID4+Pj4+Y3JlYXRlZCBhdA0KPj4gPj4+Pj4gYmVnaW5u aW5nLiBTbyB3aHkgZG8gd2UgaGF2ZSB0byBkZWZpbmUgcm93dGltZSBhdCBiZWdpbm5pbmc/DQo+ PiA+Pj4+PihiZWNhdXNlDQo+PiA+Pj4+PiBvZg0KPj4gPj4+Pj4gd2F0ZXJtYXJrPykgICAgIENh biB3ZSBoYXZlIGEgd2F5IHRvIGRlZmluZSByb3d0aW1lIGFmdGVyIHNvdXJjZQ0KPj4gPj4+Pj50 YWJsZQ0KPj4gPj4+Pj4gbGlrZQ0KPj4gPj4+Pj4gVGltZXN0YW1wQXNzaW5nZXI/DQo+PiA+Pj4+ Pg0KPj4gPj4+Pj4gUmVnYXJkaW5nIHRvIOKAnGFsbG93TGF0ZW5lc3PigJ0gbWV0aG9kLiBJIGNv bWUgdXAgYSB0cmljayB0aGF0IHdlIGNhbg0KPj4gPj4+Pj5tYWtlDQo+PiA+Pj4+PiDigJhyb3d0 aW1lIGFuZCDigJhzeXN0ZW0gdG8gYmUgYSBTY2FsYSBvYmplY3QsIG5vdCBhIHN5bWJvbCBleHBy ZXNzaW9uLg0KPj4gPj4+Pj4gVGhlIEFQSQ0KPj4gPj4+Pj4gd2lsbCBsb29rcyBsaWtlIHRoaXMg Og0KPj4gPj4+Pj4NCj4+ID4+Pj4+IHdpbmRvdyhUdW1ibGUgb3ZlciAxMC5taW51dGVzIG9uIHJv d3RpbWUgYWxsb3dMYXRlbmVzcyBhcyDigJh3KQ0KPj4gPj4+Pj4NCj4+ID4+Pj4+IFRoZSBpbXBs ZW1lbnRhdGlvbiB3aWxsIGxvb2sgbGlrZSB0aGlzOg0KPj4gPj4+Pj4NCj4+ID4+Pj4+IGNsYXNz IFR1bWJsaW5nV2luZG93KHNpemU6IEV4cHJlc3Npb24pIGV4dGVuZHMgV2luZG93IHsNCj4+ID4+ Pj4+ICAgZGVmIG9uKHRpbWU6IHJvd3RpbWUudHlwZSk6IFR1bWJsaW5nRXZlbnRUaW1lV2luZG93 ID0NCj4+ID4+Pj4+ICAgICAgIG5ldyBUdW1ibGluZ0V2ZW50VGltZVdpbmRvdyhhbGlhcywg4oCY cm93dGltZSwgc2l6ZSkgICAgICAgIC8vDQo+PiA+Pj4+Pmhhcw0KPj4gPj4+Pj4gYWxsb3dMYXRl bmVzcygpIG1ldGhvZA0KPj4gPj4+Pj4NCj4+ID4+Pj4+ICAgZGVmIG9uKHRpbWU6IHN5c3RlbXRp bWUudHlwZSk6IFR1bWJsaW5nUHJvY2Vzc2luZ1RpbWVXaW5kb3c9DQo+PiA+Pj4+PiAgICAgIG5l dyBUdW1ibGluZ1Byb2Nlc3NpbmdUaW1lV2luZG93KGFsaWFzLCDigJhzeXN0ZW10aW1lLCBzaXpl KQ0KPj4gPj4+Pj4gLy8gaGFzbuKAmXQgYWxsb3dMYXRlbmVzcygpIG1ldGhvZA0KPj4gPj4+Pj4g fQ0KPj4gPj4+Pj4gb2JqZWN0IHJvd3RpbWUNCj4+ID4+Pj4+IG9iamVjdCBzeXN0ZW10aW1lDQo+ PiA+Pj4+Pg0KPj4gPj4+Pj4gV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhpcz8NCj4+ID4+Pj4+ DQo+PiA+Pj4+PiAtIEphcmsgV3UNCj4+ID4+Pj4+DQo+PiA+Pj4+PiDlnKggMjAxNuW5tDnmnIg2 5pel77yM5LiL5Y2IMTE6MDDvvIxUaW1vIFdhbHRoZXIgPHR3YWx0aHJAYXBhY2hlLm9yZzxtYWls dG86dHdhDQo+PiBsdGhyQGFwYWNoZS5vcmc+IDxtYWlsdG86DQo+PiA+Pj4+Pj4gdHdhbHRockBh cGFjaGUub3JnPG1haWx0bzp0d2FsdGhyQGFwYWNoZS5vcmc+Pj4g5YaZ6YGT77yaDQo+PiA+Pj4+ Pj4NCj4+ID4+Pj4+PiBIaSBhbGwsDQo+PiA+Pj4+Pj4NCj4+ID4+Pj4+PiBJIHRob3VnaHQgYWJv dXQgdGhlIEFQSSBvZiB0aGUgRkxJUCBhZ2Fpbi4gSWYgd2UgYWxsb3cgdGhlDQo+PiA+Pj4+Pj4g InN5c3RlbXRpbWUiDQo+PiA+Pj4+Pj4NCj4+ID4+Pj4+IGF0dHJpYnV0ZSwgd2UgY2Fubm90IGlt cGxlbWVudCBhIG5pY2UgbWV0aG9kIGNoYWluaW5nIHdoZXJlIHRoZQ0KPj4gPj4+Pj51c2VyDQo+ PiA+Pj4+PiBjYW4NCj4+ID4+Pj4+IGRlZmluZSBhICJhbGxvd0xhdGVuZXNzIiBvbmx5IG9uIGV2 ZW50IHRpbWUuIFNvIGV2ZW4gaWYgdGhlIHVzZXINCj4+ID4+Pj4+IGV4cHJlc3NlZA0KPj4gPj4+ Pj4gdGhhdCAic3lzdGVtdGltZSIgaXMgdXNlZCB3ZSBoYXZlIHRvIG9mZmVyIGEgImFsbG93TGF0 ZW5lc3MiDQo+PiA+Pj4+Pm1ldGhvZA0KPj4gPj4+Pj4gYmVjYXVzZQ0KPj4gPj4+Pj4gd2UgaGF2 ZSB0byBhc3N1bWUgdGhhdCB0aGlzIGF0dHJpYnV0ZSBjYW4gYWxzbyBiZSB0aGUgYmF0Y2ggZXZl bnQNCj4+ID4+Pj4+dGltZQ0KPj4gPj4+Pj4gY29sdW1uLCB3aGljaCBpcyBub3QgdmVyeSBuaWNl Lg0KPj4gPj4+Pj4NCj4+ID4+Pj4+PiBjbGFzcyBUdW1ibGluZ1dpbmRvdyhzaXplOiBFeHByZXNz aW9uKSBleHRlbmRzIFdpbmRvdyB7DQo+PiA+Pj4+Pj4gZGVmIG9uKHRpbWVGaWVsZDogRXhwcmVz c2lvbik6IFR1bWJsaW5nRXZlbnRUaW1lV2luZG93ID0NCj4+ID4+Pj4+PiAgICBuZXcgVHVtYmxp bmdFdmVudFRpbWVXaW5kb3coYWxpYXMsIHRpbWVGaWVsZCwgc2l6ZSkgLy8gaGFzDQo+PiA+Pj4+ Pj4NCj4+ID4+Pj4+IGFsbG93TGF0ZW5lc3MoKSBtZXRob2QNCj4+ID4+Pj4+DQo+PiA+Pj4+Pj4g fQ0KPj4gPj4+Pj4+DQo+PiA+Pj4+Pj4gV2hhdCBkbyB5b3UgdGhpbms/DQo+PiA+Pj4+Pj4NCj4+ ID4+Pj4+PiBUaW1vDQo+PiA+Pj4+Pj4NCj4+ID4+Pj4+Pg0KPj4gPj4+Pj4+IEFtIDA1LzA5LzE2 IHVtIDEwOjQxIHNjaHJpZWIgRmFiaWFuIEh1ZXNrZToNCj4+ID4+Pj4+Pg0KPj4gPj4+Pj4+PiBI aSBKYXJrLA0KPj4gPj4+Pj4+Pg0KPj4gPj4+Pj4+PiB5b3UgaGFkIGFza2VkIGZvciBub24td2lu ZG93ZWQgYWdncmVnYXRlcyBpbiB0aGUgVGFibGUgQVBJIGEgZmV3DQo+PiA+Pj4+Pj4+IHRpbWVz Lg0KPj4gPj4+Pj4+PiBGTElQLTExIHByb3Bvc2VzIHJvdy13aW5kb3cgYWdncmVnYXRlcyB3aGlj aCBhcmUgYQ0KPj4gPj4+Pj4+PmdlbmVyYWxpemF0aW9uIG9mDQo+PiA+Pj4+Pj4+IHJ1bm5pbmcg YWdncmVnYXRlcyAoU2xpZGVSb3cgdW5ib3VuZGVkUHJlY2VkaW5nKS4NCj4+ID4+Pj4+Pj4NCj4+ ID4+Pj4+Pj4gQ2FuIHlvdSBoYXZlIGEgbG9vayBhdCB0aGUgRkxJUCBhbmQgZ2l2ZSBmZWVkYmFj ayB3aGV0aGVyIHRoaXMNCj4+ID4+Pj4+Pj5pcw0KPj4gPj4+Pj4+PiB3aGF0DQo+PiA+Pj4+Pj4+ DQo+PiA+Pj4+Pj4geW91DQo+PiA+Pj4+Pg0KPj4gPj4+Pj4+IGFyZSBsb29raW5nIGZvcj8NCj4+ ID4+Pj4+Pj4gSW1wcm92ZW1lbnQgc3VnZ2VzdGlvbnMgYXJlIHZlcnkgd2VsY29tZSBhcyB3ZWxs Lg0KPj4gPj4+Pj4+Pg0KPj4gPj4+Pj4+PiBUaGFuayB5b3UsDQo+PiA+Pj4+Pj4+IEZhYmlhbg0K Pj4gPj4+Pj4+Pg0KPj4gPj4+Pj4+PiAyMDE2LTA5LTAxIDE2PHRlbDoyMDE2LTA5LTAxJUMyJUEw MTY+OjEyIEdNVCswMjowMCBUaW1vIFdhbHRoZXIgPA0KPj4gdHdhbHRockBhcGFjaGUub3JnPG1h aWx0bzp0d2FsdGhyQGFwYWNoZS5vcmc+IDxtYWlsdG86DQo+PiA+Pj4+Pj4+IHR3YWx0aHJAYXBh Y2hlLm9yZzxtYWlsdG86dHdhbHRockBhcGFjaGUub3JnPj4+Og0KPj4gPj4+Pj4+Pg0KPj4gPj4+ Pj4+PiBIaSBhbGwhDQo+PiA+Pj4+Pj4+Pg0KPj4gPj4+Pj4+Pj4gRmFiaWFuIGFuZCBJIHdvcmtl ZCBvbiBhIEZMSVAgZm9yIFN0cmVhbSBBZ2dyZWdhdGlvbnMgaW4gdGhlDQo+PiA+Pj4+Pj4+PlRh YmxlDQo+PiA+Pj4+Pj4+PiBBUEkuDQo+PiA+Pj4+Pj4+PiBZb3UgY2FuIGZpbmQgdGhlIEZMSVAt MTEgaGVyZToNCj4+ID4+Pj4+Pj4+DQo+PiA+Pj4+Pj4+PiBodHRwczovL2N3aWtpLmFwYWNoZS5v cmcvY29uZmx1ZW5jZS9kaXNwbGF5L0ZMSU5LL0ZMSVAtMTElPGgNCj4+IHR0cHM6Ly9jd2lraS5h cGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9GTElOSy9GTElQLTExJTI1PiA8DQo+PiA+Pj4+ Pj4+PiBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L0ZMSU5LL0ZM SVAtMTElPGgNCj4+IHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9G TElOSy9GTElQLTExJTI1Pj4NCj4+ID4+Pj4+Pj4+IDNBK1RhYmxlK0FQSStTdHJlYW0rQWdncmVn YXRpb25zDQo+PiA+Pj4+Pj4+Pg0KPj4gPj4+Pj4+Pj4gTW90aXZhdGlvbiBmb3IgdGhlIEZMSVA6 DQo+PiA+Pj4+Pj4+Pg0KPj4gPj4+Pj4+Pj4gVGhlIFRhYmxlIEFQSSBpcyBhIGRlY2xhcmF0aXZl IEFQSSB0byBkZWZpbmUgcXVlcmllcyBvbiBzdGF0aWMNCj4+ID4+Pj4+Pj4+YW5kDQo+PiA+Pj4+ Pj4+PiBzdHJlYW1pbmcgdGFibGVzLiBTbyBmYXIsIG9ubHkgcHJvamVjdGlvbiwgc2VsZWN0aW9u LCBhbmQgdW5pb24NCj4+ID4+Pj4+Pj4+YXJlDQo+PiA+Pj4+Pj4+PiBzdXBwb3J0ZWQgb3BlcmF0 aW9ucyBvbiBzdHJlYW1pbmcgdGFibGVzLg0KPj4gPj4+Pj4+Pj4NCj4+ID4+Pj4+Pj4+IFRoaXMg RkxJUCBwcm9wb3NlcyB0byBhZGQgc3VwcG9ydCBmb3IgZGlmZmVyZW50IHR5cGVzIG9mDQo+PiA+ Pj4+Pj4+PiBhZ2dyZWdhdGlvbnMNCj4+ID4+Pj4+Pj4+DQo+PiA+Pj4+Pj4+IG9uDQo+PiA+Pj4+ Pg0KPj4gPj4+Pj4+IHRvcCBvZiBzdHJlYW1pbmcgdGFibGVzLiBJbiBwYXJ0aWN1bGFyLCB3ZSBz ZWVrIHRvIHN1cHBvcnQ6DQo+PiA+Pj4+Pj4+Pg0KPj4gPj4+Pj4+Pj4gLSBHcm91cC13aW5kb3cg YWdncmVnYXRlcywgaS5lLiwgYWdncmVnYXRlcyB3aGljaCBhcmUgY29tcHV0ZWQNCj4+ID4+Pj4+ Pj4+Zm9yIGENCj4+ID4+Pj4+Pj4+DQo+PiA+Pj4+Pj4+IGdyb3VwDQo+PiA+Pj4+Pg0KPj4gPj4+ Pj4+IG9mIGVsZW1lbnRzLiBBICh0aW1lIG9yIHJvdy1jb3VudCkgd2luZG93IGlzIHJlcXVpcmVk IHRvIGJvdW5kDQo+PiA+Pj4+Pj50aGUNCj4+ID4+Pj4+Pj4+DQo+PiA+Pj4+Pj4+IGluZmluaXRl DQo+PiA+Pj4+Pg0KPj4gPj4+Pj4+IGlucHV0IHN0cmVhbSBpbnRvIGEgZmluaXRlIGdyb3VwLg0K Pj4gPj4+Pj4+Pj4NCj4+ID4+Pj4+Pj4+IC0gUm93LXdpbmRvdyBhZ2dyZWdhdGVzLCBpLmUuLCBh Z2dyZWdhdGVzIHdoaWNoIGFyZSBjb21wdXRlZA0KPj4gPj4+Pj4+Pj5mb3INCj4+ID4+Pj4+Pj4+ IGVhY2gNCj4+ID4+Pj4+Pj4+DQo+PiA+Pj4+Pj4+IHJvdywNCj4+ID4+Pj4+DQo+PiA+Pj4+Pj4g YmFzZWQgb24gYSB3aW5kb3cgKHJhbmdlKSBvZiBwcmVjZWRpbmcgYW5kIHN1Y2NlZWRpbmcgcm93 cy4NCj4+ID4+Pj4+Pj4+IEVhY2ggdHlwZSBvZiBhZ2dyZWdhdGUgc2hhbGwgYmUgc3VwcG9ydGVk IG9uIGtleWVkL2dyb3VwZWQgb3INCj4+ID4+Pj4+Pj4+IG5vbi1rZXllZC9ncm91cGVkIGRhdGEg c3RyZWFtcyBmb3Igc3RyZWFtaW5nIHRhYmxlcyBhcyB3ZWxsIGFzDQo+PiA+Pj4+Pj4+PmJhdGNo DQo+PiA+Pj4+Pj4+Pg0KPj4gPj4+Pj4+PiB0YWJsZXMuDQo+PiA+Pj4+Pg0KPj4gPj4+Pj4+IFdl IGFyZSBsb29raW5nIGZvcndhcmQgdG8geW91ciBmZWVkYmFjay4NCj4+ID4+Pj4+Pj4+DQo+PiA+ Pj4+Pj4+PiBUaW1vDQo+PiA+Pj4+Pj4+Pg0KPj4gPj4+Pj4+Pj4NCj4+ID4+Pj4+PiAtLQ0KPj4g Pj4+Pj4+IEZyZXVuZGxpY2hlIEdyw7zDn2UgLyBLaW5kIFJlZ2FyZHMNCj4+ID4+Pj4+Pg0KPj4g Pj4+Pj4+IFRpbW8gV2FsdGhlcg0KPj4gPj4+Pj4+DQo+PiA+Pj4+Pj4gRm9sbG93IG1lOiBAdHdh bHRocg0KPj4gPj4+Pj4+IGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi90d2FsdGhyDQo+PiA+ Pj4+Pj48aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL3QNCj4+ID4+Pj4+PiB3YWx0aHI+DQo+ PiA+Pj4+Pj4NCj4+ID4+Pj4+DQo+PiA+Pj4+Pg0KPj4gPj4NCj4+ID4NCj4+ID4gLS0NCj4+ID4g RnJldW5kbGljaGUgR3LDvMOfZSAvIEtpbmQgUmVnYXJkcw0KPj4gPg0KPj4gPiBUaW1vIFdhbHRo ZXINCj4+ID4NCj4+ID4gRm9sbG93IG1lOiBAdHdhbHRocg0KPj4gPiBodHRwczovL3d3dy5saW5r ZWRpbi5jb20vaW4vdHdhbHRocg0KPj4gPg0KPj4gPg0KPj4NCj4+DQo+DQo=