From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH v18] xen/sndif: Add sound-device ABI Date: Tue, 28 Mar 2017 10:57:04 +0300 Message-ID: <7159d6b7-5a80-2dc2-f9c7-5864ae5e8d34@gmail.com> References: <1489993407-14323-1-git-send-email-andr2000@gmail.com> <1489993407-14323-2-git-send-email-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1csm05-0004YM-2R for xen-devel@lists.xenproject.org; Tue, 28 Mar 2017 07:57:09 +0000 Received: by mail-wr0-f194.google.com with SMTP id p52so17122735wrc.2 for ; Tue, 28 Mar 2017 00:57:06 -0700 (PDT) In-Reply-To: <1489993407-14323-2-git-send-email-andr2000@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: lars.kurth@citrix.com, iurii.konovalenko@globallogic.com, vlad.babchuk@gmail.com, oleksandr.dmytryshyn@globallogic.com, Oleksandr Andrushchenko , julien.grall@arm.com, andrii.anisov@gmail.com, olekstysh@gmail.com, al1img@gmail.com, Oleksandr Grytsov , joculator@gmail.com List-Id: xen-devel@lists.xenproject.org cGluZwoKCk9uIDAzLzIwLzIwMTcgMDk6MDMgQU0sIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdy b3RlOgo+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNo ZW5rb0BlcGFtLmNvbT4KPgo+IEFkZCBBQkkgZm9yIHRoZSB0d28gaGFsdmVzIG9mIGEgcGFyYS12 aXJ0dWFsaXplZAo+IHNvdW5kIGRyaXZlciB0byBjb21tdW5pY2F0ZSB3aXRoIGVhY2ggb3RoZXIu Cj4KPiBUaGUgQUJJIGFsbG93cyBpbXBsZW1lbnRpbmcgYXVkaW8gcGxheWJhY2sgYW5kIGNhcHR1 cmUgYXMKPiB3ZWxsIGFzIHZvbHVtZSBjb250cm9sIGFuZCBwb3NzaWJpbGl0eSB0byBtdXRlL3Vu bXV0ZQo+IGF1ZGlvIHNvdXJjZXMuCj4KPiBOb3RlOiBkZXBlbmRpbmcgb24gdGhlIHVzZS1jYXNl IGJhY2tlbmQgY2FuIGV4cG9zZSBtb3JlIHNvdW5kCj4gY2FyZHMgYW5kIFBDTSBkZXZpY2VzL3N0 cmVhbXMgdGhhbiB0aGUgdW5kZXJseWluZyBIVyBwaHlzaWNhbGx5Cj4gaGFzIGJ5IGVtcGxveWlu ZyBTVyBtaXhlcnMsIGNvbmZpZ3VyaW5nIHZpcnR1YWwgc291bmQgc3RyZWFtcywKPiBjaGFubmVs cyBldGMuIFRodXMsIGFsbG93aW5nIGZpbmUgdHVubmVkIGNvbmZpZ3VyYXRpb25zIHBlcgo+IGZy b250ZW5kLgo+Cj4gUmV2aWV3ZWQtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndp bGtAb3JhY2xlLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8 b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+Cj4gU2lnbmVkLW9mZi1ieTogT2xla3Nh bmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgo+IFNpZ25lZC1vZmYtYnk6 IE9sZWtzYW5kciBEbXl0cnlzaHluIDxvbGVrc2FuZHIuZG15dHJ5c2h5bkBnbG9iYWxsb2dpYy5j b20+Cj4gU2lnbmVkLW9mZi1ieTogSXVyaWkgS29ub3ZhbGVua28gPGl1cmlpLmtvbm92YWxlbmtv QGdsb2JhbGxvZ2ljLmNvbT4KPgo+IC0tLQo+IENoYW5nZXMgc2luY2UgdjE6Cj4gICAqIHJlbW92 ZWQgX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpIGZyb20gYWxsIHN0cnVjdHVyZXMgZGVmaW5p dGlvbnMKPgo+IENoYW5nZXMgc2luY2UgdjI6Cj4gICAqIHJlbW92ZWQgYWxsIEMgc3RydWN0dXJl cwo+ICAgKiBhZGRlZCBwcm90b2NvbCBkZXNjcmlwdGlvbiBiZXR3ZWVuIGZyb250ZW5kIGFuZCBi YWNrZW5kIGRyaXZlcnMKPgo+IENoYW5nZXMgc2luY2UgdjM6Cj4gICAqIGZpeGVkIHNvbWUgdHlw b3MKPiAgICogcmVuYW1lZCBYRU5TTkRfUENNX0ZPUk1BVF9GTE9BVF8qKiB0byBYRU5TTkRfUENN X0ZPUk1BVF9GMzJfKioKPiAgICogcmVuYW1lZCBYRU5TTkRfUENNX0ZPUk1BVF9GTE9BVDY0Xyoq IHRvIFhFTlNORF9QQ01fRk9STUFUX0Y2NF8qKgo+ICAgKiBhZGRlZCAnaWQnIGZpZWxkIHRvIHRo ZSByZXF1ZXN0IGFuZCByZXNwb25zZSBwYWNrZXRzCj4gICAqIHJlbmFtZWQgJ3N0cmVhbV9pZCcg dG8gJ3N0cmVhbScgaW4gdGhlIHBhY2tldHMgZGVzY3JpcHRpb24KPiAgICogcmVuYW1lZCAncGNt X2RhdGFfcmF0ZScgdG8gJ3BjbV9yYXRlJyBpbiB0aGUgcGFja2V0cyBkZXNjcmlwdGlvbgo+ICAg KiByZW5hbWVkICdwY21fc3RyZWFtX3R5cGUnIHRvICdwY21fdHlwZScgaW4gdGhlIHBhY2tldHMg ZGVzY3JpcHRpb24KPiAgICogcmVtb3ZlZCAnc3RyZWFtX2lkJyBmaWVsZCBmcm9tIHRoZSByZXNw b25zZSBwYWNrZXRzCj4KPiBDaGFuZ2VzIHNpbmNlIHY0Ogo+ICAgKiByZW5hbWVkICdzdHJlYW1f aWQnIGJhY2sgdG8gdGhlIHRvICdzdHJlYW0nIGluIHRoZSBwYWNrZXRzIGRlc2NyaXB0aW9uCj4g ICAqIG1vdmVkICdpZCcgZmllbGQgdG8gdGhlIHVwcGVyIHBvc2l0aW9uIGluIHRoZSByZXNwb25z ZSBwYWNrZXRzCj4KPiBDaGFuZ2VzIHNpbmNlIHY1Ogo+ICAgKiBTbGlnaHRseSByZXdvcmtlZCBy ZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldHMKPiAgICogU2l6ZSBvZiB0aGUgcmVxdWVzdC9yZXNwb25z ZSBwYWNrZXQgaXMgY2hhbmdlZCB0byB0aGUgNjQgYnl0ZXMKPiAgICogTm93IHBhcmFtZXRlcnMg Zm9yIHRoZSBYRU5TTkRfT1BfU0VUX1ZPTFVNRS9YRU5TTkRfT1BfR0VUX1ZPTFVNRSBhcmUKPiAg ICAgcGFzc2VkIHZpYSBzaGFyZWQgcGFnZQo+ICAgKiBBZGRlZCBwYXJhbWV0ZXJzIGZvciB0aGUg WGVuQnVzIG5vZGVzIChub3cgZWFjaCBzdHJlYW0gY2FuIGJlIG1hcHBlZAo+ICAgICB0byB0aGUg ZGVmaW5lZCBzb3VuZCBkZXZpY2UgaW4gdGhlIGJhY2tlbmQgdXNpbmcgdGhvc2UgcGFyYW1ldGVy cykKPiAgICogQWRkZWQgWGVuQnVzIHN0YXRlIGRpYWdyYW1zIGRlc2NyaXB0aW9uCj4KPiBDaGFu Z2VzIHNpbmNlIHY2Ogo+ICAgKiBSZXdvcmtlZCBzdHJlYW1zIGRlc2NyaXB0aW9uICBpbiB0aGUg QmFja2VuZCBYZW5CdXMgTm9kZXMKPgo+IENoYW5nZXMgc2luY2Ugdjc6Cj4gICAqIHJlLXdvcmtl ZCBiYWNrZW5kIGRldmljZSBwYXJhbWV0ZXJzIHRvIGJlIG1vcmUgZ2VuZXJpYyBhbmQgZmxleGli bGUKPiAgICogZXh0ZW5kZWQgZnJvbnRlbmQgZGV2aWNlIHBhcmFtZXRlcnMKPiAgICogc2xpZ2h0 bHkgdXBkYXRlZCBzdGF0ZSBtYWNoaW5lIGRlc2NyaXB0aW9uIGFkZGVkIG11dGUvdW5tdXRlIGNv bW1hbmRzCj4gICAqIGFkZGVkIGNvbnN0YW50cyBmb3IgWGVuU3RvcmUgY29uZmlndXJhdGlvbiBz dHJpbmdzCj4gICAgIChmaWVsZHMsIFBDTSBmb3JtYXRzIGV0Yy4pCj4gICAqIGNoYW5nZWQgcmVx dWVzdC9yZXNwb25zZSBzdHJ1Y3R1cmUgc2l6ZSBmcm9tIDY0IG9jdGV0cyB0byAxNgo+ICAgKiBp bnRyb2R1Y2VkIGR5bmFtaWMgYnVmZmVyIGFsbG9jYXRpb24gaW5zdGVhZCBvZgo+ICAgICBzdGF0 aWMgWEVOU05EX01BWF9QQUdFU19QRVJfUkVRVUVTVAo+ICAgKiByZS13b3JrZWQgb3BlbiByZXF1 ZXN0IHRvIGFsbG93IGR5bmFtaWMgYnVmZmVyIGFsbG9jYXRpb24KPiAgICogcmUtd29ya2VkIHJl YWQvd3JpdGUvdm9sdW1lIHJlcXVlc3RzLCBzbyB0aGV5IGRvbid0IHBhc3MgZ3JlZnM6Cj4gICAg IGJ1ZmZlciBmcm9tIHRoZSBvcGVuIHJlcXVlc3QgaXMgdXNlZCBmb3IgdGhlc2Ugb3BlcmF0aW9u cyB0byBwYXNzIGRhdGEKPiAgICogc3BlY2lmaWVkIHR5cGUgb2YgdGhlIHZvbHVtZSB2YWx1ZSB0 byBiZSBhIHNpZ25lZCB2YWx1ZSBpbiBzdGVwcwo+ICAgICBvZiAwLjAwMSBkQm0sIHdoaWxlIDAg YmVpbmcgMGRCbS4KPiAgICogYWRkZWQgTGludXggaW5jbHVkZSBmaWxlIHdpdGggc3RydWN0dXJl IGRlZmluaXRpb25zCj4KPiBDaGFuZ2VzIHNpbmNlIHY4Ogo+ICAgKiBjaGFuZ2VkIGZyb250ZW5k LWlkIHRvIGZyb250ZW5kX2lkCj4gICAqIHNpbmdsZSBzb3VuZCBjYXJkIHN1cHBvcnQsIGNvbmZp Z3VyZWQgd2l0aCBidW5jaCBvZgo+ICAgICBkZXZpY2VzL3N0cmVhbXMKPiAgICogY2xhcmlmdWNh dGlvbiBtYWRlIG9uIHNhbXBsZSByYXRlcyBhbmQgZm9ybWF0cyBleHByZXNzZWQgYXMKPiAgICAg ZGVjaW1hbHMgdy9vIGFueSBwYXJ0aWN1bGFyIG9yZGVyaW5nCj4gICAqIHB1dCBkZXNjcmlwdGlv biBvZiBtaWdyYXRpb24vZGlzY29ubmVjdGlvbiBzdGF0ZQo+ICAgKiByZXBsYWNlZCBfX2F0dHJp YnV0ZV9fKChwYWNrZWQpKSB0byBfX3BhY2tlZAo+ICAgKiBjaGFuZ2VkIHBhZGRpbmcgb2Ygcmlu ZyBzdHJ1Y3R1cmVzIHRvIDY0IHRvIGZpdCBjYWNoZSBsaW5lCj4gICAqIHJlbW92ZWVkICNpZmRl ZiBfX0tFUk5FTAo+ICAgKiBleHBsaWNpdGx5IHN0YXRlZCB3aGljaCBpbmRpY2VzIGluIFhlblN0 b3JlIGNvbmZpZ3VyYXRpb24KPiAgICAgYXJlIGNvbnRpZ3VvdXMKPiAgICogYWRkZWQgZGVzY3Jp cHRpb24gdG8gd2hhdCBmcm9udGVuZCdzIGRlZmF1bHRzIGFyZQo+ICAgKiBtYWRlIG5hbWVzIG9m IHZpcnR1YWwgY2FyZC9kZXZpY2VzIG9wdGlvbmFsCj4gICAqIHJlbW92ZWQgUENNX0ZPUk1BVF9T UEVDSUFMCj4gICAqIGNoYW5nZWQgdm9sdW1lIHVuaXRzIGZyb20gZEJtIHRvIGRCCj4KPiBDaGFu Z2VzIHNpbmNlIHY5Ogo+ICAgKiByZW1vdmVkIHNuZGlmX2xpbnV4LmgKPiAgICogbW92ZWQgYWxs IHN0cnVjdHVyZXMgZnJvbSBzbmRpZl9saW51eC5oIHRvIHNuZGlmLmgKPiAgICogc3RydWN0dXJl cyBwYWRkZWQgd2hlcmUgbmVlZGVkCj4gICAqIGZpeGVkIEh6IGNvbW1lbnQKPgo+IENoYW5nZXMg c2luY2UgdjEwOgo+ICAgKiBmaXhlZCB0YWJzIHRvIDQgc3BhY2VzIHRvIGNvbXBseSB3aXRoIFhl biBjb2Rpbmcgc3R5bGUKPiAgICogYWRkZWQgcGxhY2Vob2xkZXJzIHRvIGVtcHR5IHN0cnVjdHVy ZXMgKEM4OSBjb25jZXJuKQo+ICAgKiBhZGRlZCBtaXNzaW5nIGhlYWRlciBpbmNsdWRlcwo+Cj4g Q2hhbmdlcyBzaW5jZSB2MTE6Cj4gICAqIGFkZGVkIFhFTlNORF9SU1BfTk9UU1VQUCBlcnJvciBj b2RlCj4gICAqIGNoYW5nZWQgZ3JlZlswXSB0byBncmVmWzFdIHdpdGggY29tbWVudAo+ICAgKiBt b2RpZmllZCBjb21tZW50cyBvbiBlbXB0eSBzdHJ1Y3R1cmVzCj4gICAqIHJlbW92ZWQgIl9fIiBm cm9tIG1lbWJlciBuYW1lcwo+ICAgKiBmaXhlZCBpbmRlbnRhdGlvbgo+ICAgKiBhZGRlZCBwYWRk aW5nIGluIHVuaW9uIHhlbnNuZF9yZXNwCj4gICAqIGNoYW5nZWQgX19YRU5fUFVCTElDX0lPX1hF TlNORF9IX18gdG8gX19YRU5fUFVCTElDX0lPX1NORElGX0hfXwo+Cj4gQ2hhbmdlcyBzaW5jZSB2 MTI6Cj4gICAqIGNoYW5nZWQgaW5kZW50YXRpb24gZm9yIGRlZmluZXMKPiAgICogbWlzc2VkICI7 IiBhZnRlciBncmVmWzFdCj4gICAqIGRvY3VtZW50YXRpb24gY2hhbmdlcwo+ICAgKiBjaGFuZ2Vk IHJlcS9yZXNwIHN0cnVjdHVyZXMKPiAgICogY2hhbmdlZCB4ZW5zbmRfcGFnZV9kaXJlY3Rvcnkg c3RydWN0dXJlCj4gICAqIHBhc3MgYnVmZmVyIHNpemUgaW4gb3BlbiByZXF1ZXN0Cj4KPiBDaGFu Z2VzIHNpbmNlIHYxMzoKPiAgICogbm90ZSBvbiB1c2FnZSBvZiBncmFudCByZWYgMAo+ICAgKiBh bGwgcGFnZSBzaXplcyBhcmUgWEVOX1BBR0VfU0laRQo+ICAgKiBwYWRkaW5nL3Jlc2VydmVkIGNs ZWFudXAvZml4ZXMKPiAgICogcmVtb3ZlZCBlbXB0eSBzdHJ1Y3R1cmVzCj4KPiBDaGFuZ2VzIHNp bmNlIHYxNDoKPiAgICogdHVybiBwYWRkaW5nIGludG8gcmVzZXJ2ZWQKPgo+IENoYW5nZXMgc2lu Y2UgdjE1Ogo+ICAgKiBwcm90b2NvbCBkZXNjcmlwdGlvbiByZXdvcmtlZAo+ICAgKiBhZGRlZCBv ZmZzZXQgdG8gYmxvY2sgbm90YXRpb25zCj4gICAqIHVzZWQgLVhFTl9FWFggZm9yIHN0YXR1cyBy ZXBvcnRpbmcKPiAgICogYWRkZWQgcHJvdG9jb2wgdmVyc2lvbmluZwo+ICAgKiByZW1vdmVkIHN0 cmVhbV9pZHggZnJvbSB0aGUgcGFja2V0IHN0cnVjdHVyZQo+ICAgKiBjaGFuZ2VkIHhlbnN0b3Jl IHBhdGhzCj4KPiBDaGFuZ2VzIHNpbmNlIHYxNjoKPiAgICogdXBkYXRlZCBYZW5TdG9yZSBwYXRo IHBhdHRlcm4KPiAgICogcmVtb3ZlZCB1bnVzZWQgWGVuU3RvcmUgaGVscGVyIHN0cmluZyBjb25z dGFudHMKPiAgICogcmVuYW1lZCBncmVmX2RpcmVjdG9yeV9zdGFydCB0byBncmVmX2RpcmVjdG9y eQo+ICAgKiBhZGRlZCBvZmZzZXQvbGVuZ3RoIHRvIHZvbHVtZSwgbXV0ZSwgdW5tdXRlCj4gICAq IGFkZGVkIG5vdGUgb24gYXN5bmMgdXNlLWNhc2VzCj4gICAqIHN0cnVjdCB4ZW5zbmRfcndfcmVx IGlzIG5vdyB1c2VkIGZvciByZWFkL3dyaXRlLAo+ICAgICB2b2x1bWUgc2V0L2dldCwgbXV0ZSwg dW5tdXRlCj4KPiBDaGFuZ2VzIHNpbmNlIHYxNzoKPiAgICogYWRkIHJlY292ZXJ5IGZsb3cgaW50 byBzdGF0ZSBkaWFncmFtcyBzZWN0aW9uCj4gICAqIHJlLXBvc2l0aW9uIHN0cnVjdCB4ZW5zbmRf cndfcmVxIGluIHRoZSBkb2N1bWVudAo+ICAgKiBtYWtlIGEgbm90ZSBvbiBjb21tb24gdXNlIG9m IHhlbnNuZF9yd19yZXEgZm9yCj4gICAgIHJlYWQvd3JpdGUsIHZvbHVtZSBnZXQvc2V0LCBtdXRl L3VubXV0ZQo+ICAgKiBhZGQgbWlzc2luZyBzdHJpbmcgY29uc3RhbnRzIGZvciBYZW5TdG9yZSAi dmVyc2lvbnMiCj4gICAgIGFuZCAidmVyc2lvbiIgZmllbGRzCj4gICAqIGFkZCBlZGl0b3IncyBi bG9jawo+IC0tLQo+Cj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9s ZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+IC0tLQo+ICAgeGVuL2luY2x1ZGUvcHVi bGljL2lvL3NuZGlmLmggfCA4MDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4gICAxIGZpbGUgY2hhbmdlZCwgODAzIGluc2VydGlvbnMoKykKPiAgIGNyZWF0ZSBt b2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS9wdWJsaWMvaW8vc25kaWYuaAo+Cj4gZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3B1YmxpYy9pby9zbmRpZi5oIGIveGVuL2luY2x1ZGUvcHVibGljL2lvL3Nu ZGlmLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uYzVjMTk3 ODQwNmIzCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9zbmRp Zi5oCj4gQEAgLTAsMCArMSw4MDMgQEAKPiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiBz bmRpZi5oCj4gKyAqCj4gKyAqIFVuaWZpZWQgc291bmQtZGV2aWNlIEkvTyBpbnRlcmZhY2UgZm9y IFhlbiBndWVzdCBPU2VzLgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cj4gKyAqIG9m IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT b2Z0d2FyZSIpLCB0bwo+ICsgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQo+ICsgKiByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh bmQvb3IKPiArICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl cnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKPiArICogZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5j bHVkZWQgaW4KPiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg U29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO R0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKPiArICogQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ICsgKiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVS V0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4gKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZU V0FSRS4KPiArICoKPiArICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgR2xvYmFsTG9naWMgSW5j Lgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBFUEFNIFN5c3RlbXMgSW5jLgo+ICsgKgo+ ICsgKiBBdXRob3JzOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hj aGVua29AZXBhbS5jb20+Cj4gKyAqICAgICAgICAgIE9sZWtzYW5kciBHcnl0c292IDxvbGVrc2Fu ZHJfZ3J5dHNvdkBlcGFtLmNvbT4KPiArICogICAgICAgICAgT2xla3NhbmRyIERteXRyeXNoeW4g PG9sZWtzYW5kci5kbXl0cnlzaHluQGdsb2JhbGxvZ2ljLmNvbT4KPiArICogICAgICAgICAgSXVy aWkgS29ub3ZhbGVua28gPGl1cmlpLmtvbm92YWxlbmtvQGdsb2JhbGxvZ2ljLmNvbT4KPiArICov Cj4gKwo+ICsjaWZuZGVmIF9fWEVOX1BVQkxJQ19JT19TTkRJRl9IX18KPiArI2RlZmluZSBfX1hF Tl9QVUJMSUNfSU9fU05ESUZfSF9fCj4gKwo+ICsjaW5jbHVkZSAicmluZy5oIgo+ICsjaW5jbHVk ZSAiLi4vZ3JhbnRfdGFibGUuaCIKPiArCj4gKy8qCj4gKyAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK PiArICogICAgICAgICAgICAgICAgICBGZWF0dXJlIGFuZCBQYXJhbWV0ZXIgTmVnb3RpYXRpb24K PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKgo+ICsgKiBGcm9udC0+YmFjayBub3RpZmlj YXRpb25zOiB3aGVuIGVucXVldWluZyBhIG5ldyByZXF1ZXN0LCBzZW5kaW5nIGEKPiArICogbm90 aWZpY2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHhlbnNuZF9yZXEgKGkuZS4sIHRo ZSBnZW5lcmljCj4gKyAqIGhvbGQtb2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmluZyBt YWNyb3MpLiBCYWNrZW5kcyBtdXN0IHNldAo+ICsgKiB4ZW5zbmRfcmVxIGFwcHJvcHJpYXRlbHkg KGUuZy4sIHVzaW5nIFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFUVVFU1RTKCkpLgo+ICsgKgo+ICsg KiBCYWNrLT5mcm9udCBub3RpZmljYXRpb25zOiB3aGVuIGVucXVldWluZyBhIG5ldyByZXNwb25z ZSwgc2VuZGluZyBhCj4gKyAqIG5vdGlmaWNhdGlvbiBjYW4gYmUgbWFkZSBjb25kaXRpb25hbCBv biB4ZW5zbmRfcmVzcCAoaS5lLiwgdGhlIGdlbmVyaWMKPiArICogaG9sZC1vZmYgbWVjaGFuaXNt IHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3JvcykuIEZyb250ZW5kcyBtdXN0IHNldAo+ICsgKiB4 ZW5zbmRfcmVzcCBhcHByb3ByaWF0ZWx5IChlLmcuLCB1c2luZyBSSU5HX0ZJTkFMX0NIRUNLX0ZP Ul9SRVNQT05TRVMoKSkuCj4gKyAqCj4gKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgcGFyYS12aXJ0 dWFsIHNvdW5kIGNhcmQgZHJpdmVyIHV0aWxpemUgbm9kZXMgd2l0aGluCj4gKyAqIFhlblN0b3Jl IHRvIGNvbW11bmljYXRlIGNhcGFiaWxpdGllcyBhbmQgdG8gbmVnb3RpYXRlIG9wZXJhdGluZyBw YXJhbWV0ZXJzLgo+ICsgKiBUaGlzIHNlY3Rpb24gZW51bWVyYXRlcyB0aGVzZSBub2RlcyB3aGlj aCByZXNpZGUgaW4gdGhlIHJlc3BlY3RpdmUgZnJvbnQgYW5kCj4gKyAqIGJhY2tlbmQgcG9ydGlv bnMgb2YgWGVuU3RvcmUsIGZvbGxvd2luZyB0aGUgWGVuQnVzIGNvbnZlbnRpb24uCj4gKyAqCj4g KyAqIEFsbCBkYXRhIGluIFhlblN0b3JlIGlzIHN0b3JlZCBhcyBzdHJpbmdzLiBOb2RlcyBzcGVj aWZ5aW5nIG51bWVyaWMKPiArICogdmFsdWVzIGFyZSBlbmNvZGVkIGluIGRlY2ltYWwuIEludGVn ZXIgdmFsdWUgcmFuZ2VzIGxpc3RlZCBiZWxvdyBhcmUKPiArICogZXhwcmVzc2VkIGFzIGZpeGVk IHNpemVkIGludGVnZXIgdHlwZXMgY2FwYWJsZSBvZiBzdG9yaW5nIHRoZSBjb252ZXJzaW9uCj4g KyAqIG9mIGEgcHJvcGVybHkgZm9ybWF0ZWQgbm9kZSBzdHJpbmcsIHdpdGhvdXQgbG9zcyBvZiBp bmZvcm1hdGlvbi4KPiArICoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiAgICAgICAg ICAgICAgICAgICAgICAgIEV4YW1wbGUgY29uZmlndXJhdGlvbgo+ICsgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCj4gKyAqCj4gKyAqIE5vdGU6IGRlcGVuZGluZyBvbiB0aGUgdXNlLWNhc2UgYmFja2Vu ZCBjYW4gZXhwb3NlIG1vcmUgc291bmQgY2FyZHMgYW5kCj4gKyAqIFBDTSBkZXZpY2VzL3N0cmVh bXMgdGhhbiB0aGUgdW5kZXJseWluZyBIVyBwaHlzaWNhbGx5IGhhcyBieSBlbXBsb3lpbmcKPiAr ICogU1cgbWl4ZXJzLCBjb25maWd1cmluZyB2aXJ0dWFsIHNvdW5kIHN0cmVhbXMsIGNoYW5uZWxz IGV0Yy4KPiArICoKPiArICogVGhpcyBpcyBhbiBleGFtcGxlIG9mIGJhY2tlbmQgYW5kIGZyb250 ZW5kIGNvbmZpZ3VyYXRpb246Cj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tIEJhY2tlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoK PiArICogL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdnNuZC8xLzAvZnJvbnRlbmQtaWQgPSAiMSIK PiArICogL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdnNuZC8xLzAvZnJvbnRlbmQgPSAiL2xvY2Fs L2RvbWFpbi8xL2RldmljZS92c25kLzAiCj4gKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3Zz bmQvMS8wL3N0YXRlID0gIjQiCj4gKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZzbmQvMS8w L3ZlcnNpb25zID0gIjEsMiIKPiArICoKPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gRnJvbnRlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKgo+ ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9iYWNrZW5kLWlkID0gIjAiCj4gKyAq IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL2JhY2tlbmQgPSAiL2xvY2FsL2RvbWFpbi8w L2JhY2tlbmQvdnNuZC8xLzAiCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL3N0 YXRlID0gIjQiCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL3ZlcnNpb24gPSAi MSIKPiArICoKPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXJkIGNvbmZpZ3Vy YXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKgo+ICsgKiAvbG9jYWwvZG9t YWluLzEvZGV2aWNlL3ZzbmQvMC9zaG9ydC1uYW1lID0gIkNhcmQgc2hvcnQgbmFtZSIKPiArICog L2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvbG9uZy1uYW1lID0gIkNhcmQgbG9uZyBuYW1l Igo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9zYW1wbGUtcmF0ZXMgPSAiODAw MCwzMjAwMCw0NDEwMCw0ODAwMCw5NjAwMCIKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92 c25kLzAvc2FtcGxlLWZvcm1hdHMgPSAiczgsdTgsczE2X2xlLHMxNl9iZSIKPiArICogL2xvY2Fs L2RvbWFpbi8xL2RldmljZS92c25kLzAvYnVmZmVyLXNpemUgPSAiMjYyMTQ0Igo+ICsgKgo+ICsg Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUENNIGRldmljZSAwIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2Uv dnNuZC8wLzAvbmFtZSA9ICJHZW5lcmFsIGFuYWxvZyIKPiArICogL2xvY2FsL2RvbWFpbi8xL2Rl dmljZS92c25kLzAvMC9jaGFubmVscy1tYXggPSAiNSIKPiArICoKPiArICotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSBTdHJlYW0gMCwgcGxheWJhY2sgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQo+ICsgKgo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzAvdHlw ZSA9ICJwIgo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzAvc2FtcGxlLWZv cm1hdHMgPSAiczgsdTgiCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMC91 bmlxdWUtaWQgPSAiMCIKPiArICoKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAv MC8wL3JpbmctcmVmID0gIjM4NiIKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAv MC8wL2V2ZW50LWNoYW5uZWwgPSAiMTUiCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tIFN0cmVhbSAxLCBjYXB0dXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K PiArICoKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC8xL3R5cGUgPSAiYyIK PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC8xL2NoYW5uZWxzLW1heCA9ICIy Igo+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzEvdW5pcXVlLWlkID0gIjEi Cj4gKyAqCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMS9yaW5nLXJlZiA9 ICIzODQiCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMS9ldmVudC1jaGFu bmVsID0gIjEzIgo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUENN IGRldmljZSAxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIC9s b2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzEvbmFtZSA9ICJIRE1JLTAiCj4gKyAqIC9sb2Nh bC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzEvc2FtcGxlLXJhdGVzID0gIjgwMDAsMzIwMDAsNDQx MDAiCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSAwLCBj YXB0dXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogL2xvY2FsL2Rv bWFpbi8xL2RldmljZS92c25kLzAvMS8wL3R5cGUgPSAiYyIKPiArICogL2xvY2FsL2RvbWFpbi8x L2RldmljZS92c25kLzAvMS8wL3VuaXF1ZS1pZCA9ICIyIgo+ICsgKgo+ICsgKiAvbG9jYWwvZG9t YWluLzEvZGV2aWNlL3ZzbmQvMC8xLzAvcmluZy1yZWYgPSAiMzg3Igo+ICsgKiAvbG9jYWwvZG9t YWluLzEvZGV2aWNlL3ZzbmQvMC8xLzAvZXZlbnQtY2hhbm5lbCA9ICIxNTEiCj4gKyAqCj4gKyAq LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQQ00gZGV2aWNlIDIgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92 c25kLzAvMi9uYW1lID0gIlNQRElGIgo+ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tIFN0cmVhbSAwLCBwbGF5YmFjayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4g KyAqCj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzIvMC90eXBlID0gInAiCj4g KyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzIvMC91bmlxdWUtaWQgPSAiMyIKPiAr ICoKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMi8wL3JpbmctcmVmID0gIjM4 OSIKPiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMi8wL2V2ZW50LWNoYW5uZWwg PSAiMTUyIgo+ICsgKgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJhY2tlbmQgWGVuQnVzIE5vZGVzCj4gKyAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKPiArICoKPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm90b2NvbCB2 ZXJzaW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKgo+ICsgKiB2ZXJzaW9u cwo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8c3RyaW5nPgo+ICsgKgo+ICsgKiAgICAgIExp c3Qgb2YgWEVOU05EX0xJU1RfU0VQQVJBVE9SIHNlcGFyYXRlZCBwcm90b2NvbCB2ZXJzaW9ucyBz dXBwb3J0ZWQKPiArICogICAgICBieSB0aGUgYmFja2VuZC4gRm9yIGV4YW1wbGUgIjEsMiwzIi4K PiArICoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGcm9udGVuZCBYZW5CdXMgTm9kZXMKPiArICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ ICsgKgo+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFkZHJlc3NpbmcgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIGRvbS1pZAo+ICsgKiAg ICAgIFZhbHVlczogICAgICAgICA8dWludDE2X3Q+Cj4gKyAqCj4gKyAqICAgICAgRG9tYWluIGlk ZW50aWZpZXIuCj4gKyAqCj4gKyAqIGRldi1pZAo+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8 dWludDE2X3Q+Cj4gKyAqCj4gKyAqICAgICAgRGV2aWNlIGlkZW50aWZpZXIuCj4gKyAqCj4gKyAq IHBjbS1kZXYtaWR4Cj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50OF90Pgo+ICsgKgo+ ICsgKiAgICAgIFplcm8gYmFzZWQgY29udGlnb3VzIGluZGV4IG9mIHRoZSBQQ00gZGV2aWNlLgo+ ICsgKgo+ICsgKiBzdHJlYW0taWR4Cj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50OF90 Pgo+ICsgKgo+ICsgKiAgICAgIFplcm8gYmFzZWQgY29udGlnb3VzIGluZGV4IG9mIHRoZSBzdHJl YW0gb2YgdGhlIFBDTSBkZXZpY2UuCj4gKyAqCj4gKyAqIFRoZSBmb2xsb3dpbmcgcGF0dGVybiBp cyB1c2VkIGZvciBhZGRyZXNzaW5nOgo+ICsgKiAgIC9sb2NhbC9kb21haW4vPGRvbS1pZD4vZGV2 aWNlL3ZzbmQvPGRldi1pZD4vPHBjbS1kZXYtaWR4Pi88c3RyZWFtLWlkeD4vLi4uCj4gKyAqCj4g KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJvdG9jb2wgdmVyc2lvbiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogdmVyc2lvbgo+ICsgKiAgICAgIFZh bHVlczogICAgICAgICA8c3RyaW5nPgo+ICsgKgo+ICsgKiAgICAgIFByb3RvY29sIHZlcnNpb24s IGNob3NlbiBhbW9uZyB0aGUgb25lcyBzdXBwb3J0ZWQgYnkgdGhlIGJhY2tlbmQuCj4gKyAqCj4g KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQQ00gc2V0dGluZ3MgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogRXZlcnkgdmlydHVhbGl6ZWQgc291 bmQgZnJvbnRlbmQgaGFzIGEgc2V0IG9mIFBDTSBkZXZpY2VzIGFuZCBzdHJlYW1zLCBlYWNoCj4g KyAqIGNvdWxkIGJlIGluZGl2aWR1YWxseSBjb25maWd1cmVkLiBQYXJ0IG9mIHRoZSBQQ00gY29u ZmlndXJhdGlvbiBjYW4gYmUKPiArICogZGVmaW5lZCBhdCBoaWdoZXIgbGV2ZWwgb2YgdGhlIGhp ZXJhcmNoeSBhbmQgYmUgZnVsbHkgb3IgcGFydGlhbGx5IHJlLXVzZWQKPiArICogYnkgdGhlIHVu ZGVybHlpbmcgbGF5ZXJzLiBUaGVzZSBjb25maWd1cmF0aW9uIHZhbHVlcyBhcmU6Cj4gKyAqICBv IG51bWJlciBvZiBjaGFubmVscyAobWluL21heCkKPiArICogIG8gc3VwcG9ydGVkIHNhbXBsZSBy YXRlcwo+ICsgKiAgbyBzdXBwb3J0ZWQgc2FtcGxlIGZvcm1hdHMuCj4gKyAqIEUuZy4gb25lIGNh biBkZWZpbmUgdGhlc2UgdmFsdWVzIGZvciB0aGUgd2hvbGUgY2FyZCwgZGV2aWNlIG9yIHN0cmVh bS4KPiArICogRXZlcnkgdW5kZXJseWluZyBsYXllciBpbiB0dXJuIGNhbiByZS1kZWZpbmUgc29t ZSBvciBhbGwgb2YgdGhlbSB0byBiZXR0ZXIKPiArICogZml0IGl0cyBuZWVkcy4gRm9yIGV4YW1w bGUsIGNhcmQgbWF5IGRlZmluZSBudW1iZXIgb2YgY2hhbm5lbHMgdG8gYmUKPiArICogaW4gWzE7 IDhdIHJhbmdlLCBhbmQgc29tZSBwYXJ0aWN1bGFyIHN0cmVhbSBtYXkgYmUgbGltaXRlZCB0byBb MTsgMl0gb25seS4KPiArICogVGhlIHJ1bGUgaXMgdGhhdCB0aGUgdW5kZXJseWluZyBsYXllciBt dXN0IGJlIGEgc3Vic2V0IG9mIHRoZSB1cHBlciBsYXllcgo+ICsgKiByYW5nZS4KPiArICoKPiAr ICogY2hhbm5lbHMtbWluCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50OF90Pgo+ICsg Kgo+ICsgKiAgICAgIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBjaGFubmVscyB0aGF0IGlzIHN1cHBv cnRlZCwgWzE7IGNoYW5uZWxzLW1heF0uCj4gKyAqICAgICAgT3B0aW9uYWwsIGlmIG5vdCBzZXQg b3Igb21pdHRlZCBhIHZhbHVlIG9mIDEgaXMgdXNlZC4KPiArICoKPiArICogY2hhbm5lbHMtbWF4 Cj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50OF90Pgo+ICsgKgo+ICsgKiAgICAgIFRo ZSBtYXhpbXVtIGFtb3VudCBvZiBjaGFubmVscyB0aGF0IGlzIHN1cHBvcnRlZC4KPiArICogICAg ICBNdXN0IGJlIGF0IGxlYXN0IDxjaGFubmVscy1taW4+Lgo+ICsgKgo+ICsgKiBzYW1wbGUtcmF0 ZXMKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPGxpc3Qgb2YgdWludDMyX3Q+Cj4gKyAqCj4g KyAqICAgICAgTGlzdCBvZiBzdXBwb3J0ZWQgc2FtcGxlIHJhdGVzIHNlcGFyYXRlZCBieSBYRU5T TkRfTElTVF9TRVBBUkFUT1IuCj4gKyAqICAgICAgU2FtcGxlIHJhdGVzIGFyZSBleHByZXNzZWQg YXMgYSBsaXN0IG9mIGRlY2ltYWwgdmFsdWVzIHcvbyBhbnkKPiArICogICAgICBvcmRlcmluZyBy ZXF1aXJlbWVudC4KPiArICoKPiArICogc2FtcGxlLWZvcm1hdHMKPiArICogICAgICBWYWx1ZXM6 ICAgICAgICAgPGxpc3Qgb2YgWEVOU05EX1BDTV9GT1JNQVRfWFhYX1NUUj4KPiArICoKPiArICog ICAgICBMaXN0IG9mIHN1cHBvcnRlZCBzYW1wbGUgZm9ybWF0cyBzZXBhcmF0ZWQgYnkgWEVOU05E X0xJU1RfU0VQQVJBVE9SLgo+ICsgKiAgICAgIEl0ZW1zIG11c3Qgbm90IGV4Y2VlZCBYRU5TTkRf U0FNUExFX0ZPUk1BVF9NQVhfTEVOIGxlbmd0aC4KPiArICoKPiArICogYnVmZmVyLXNpemUKPiAr ICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pgo+ICsgKgo+ICsgKiAgICAgIFRoZSBt YXhpbXVtIHNpemUgaW4gb2N0ZXRzIG9mIHRoZSBidWZmZXIgdG8gYWxsb2NhdGUgcGVyIHN0cmVh bS4KPiArICoKPiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBWaXJ0dWFsIHNvdW5kIGNhcmQg c2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKiBzaG9ydC1uYW1lCj4gKyAq ICAgICAgVmFsdWVzOiAgICAgICAgIDxjaGFyWzMyXT4KPiArICoKPiArICogICAgICBTaG9ydCBu YW1lIG9mIHRoZSB2aXJ0dWFsIHNvdW5kIGNhcmQuIE9wdGlvbmFsLgo+ICsgKgo+ICsgKiBsb25n LW5hbWUKPiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPGNoYXJbODBdPgo+ICsgKgo+ICsgKiAg ICAgIExvbmcgbmFtZSBvZiB0aGUgdmlydHVhbCBzb3VuZCBjYXJkLiBPcHRpb25hbC4KPiArICoK PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBEZXZpY2Ugc2V0dGluZ3MgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKiBuYW1lCj4gKyAqICAgICAgVmFsdWVzOiAg ICAgICAgIDxjaGFyWzgwXT4KPiArICoKPiArICogICAgICBOYW1lIG9mIHRoZSBzb3VuZCBkZXZp Y2Ugd2l0aGluIHRoZSB2aXJ0dWFsIHNvdW5kIGNhcmQuIE9wdGlvbmFsLgo+ICsgKgo+ICsgKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSBzZXR0aW5ncyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIHR5cGUKPiArICogICAgICBWYWx1ZXM6ICAg ICAgICAgInAiLCAiYyIKPiArICoKPiArICogICAgICBTdHJlYW0gdHlwZTogInAiIC0gcGxheWJh Y2sgc3RyZWFtLCAiYyIgLSBjYXB0dXJlIHN0cmVhbQo+ICsgKgo+ICsgKiAgICAgIElmIGJvdGgg Y2FwdHVyZSBhbmQgcGxheWJhY2sgYXJlIG5lZWRlZCB0aGVuIHR3byBzdHJlYW1zIG5lZWQgdG8g YmUKPiArICogICAgICBkZWZpbmVkIHVuZGVyIHRoZSBzYW1lIGRldmljZS4KPiArICoKPiArICog dW5pcXVlLWlkCj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KPiArICoKPiAr ICogICAgICBBZnRlciBzdHJlYW0gaW5pdGlhbGl6YXRpb24gaXQgaXMgYXNzaWduZWQgYSB1bmlx dWUgSUQgKHdpdGhpbiB0aGUgZnJvbnQKPiArICogICAgICBkcml2ZXIpLCBzbyBldmVyeSBzdHJl YW0gb2YgdGhlIGZyb250ZW5kIGNhbiBiZSBpZGVudGlmaWVkIGJ5IHRoZQo+ICsgKiAgICAgIGJh Y2tlbmQgYnkgdGhpcyBJRC4gVGhpcyBpcyBub3QgZXF1YWwgdG8gc3RyZWFtLWlkeCBhcyB0aGUg bGF0ZXIgaXMKPiArICogICAgICB6ZXJvIGJhc2VkIHdpdGhpbiB0aGUgZGV2aWNlLCBidXQgdGhp cyBpbmRleCBpcyBjb250aWdvdXMgd2l0aGluIHRoZQo+ICsgKiAgICAgIGRyaXZlci4KPiArICoK PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLSBTdHJlYW0gUmVxdWVzdCBUcmFuc3BvcnQgUGFyYW1l dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgKgo+ICsgKiBldmVudC1jaGFubmVsCj4gKyAq ICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KPiArICoKPiArICogICAgICBUaGUgaWRl bnRpZmllciBvZiB0aGUgWGVuIGV2ZW50IGNoYW5uZWwgdXNlZCB0byBzaWduYWwgYWN0aXZpdHkK PiArICogICAgICBpbiB0aGUgcmluZyBidWZmZXIuCj4gKyAqCj4gKyAqIHJpbmctcmVmCj4gKyAq ICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KPiArICoKPiArICogICAgICBUaGUgWGVu IGdyYW50IHJlZmVyZW5jZSBncmFudGluZyBwZXJtaXNzaW9uIGZvciB0aGUgYmFja2VuZCB0byBt YXAKPiArICogICAgICBhIHNvbGUgcGFnZSBpbiBhIHNpbmdsZSBwYWdlIHNpemVkIHJpbmcgYnVm ZmVyLgo+ICsgKgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNUQVRFIERJQUdSQU1TCj4gKyAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK PiArICoKPiArICogVG9vbCBzdGFjayBjcmVhdGVzIGZyb250IGFuZCBiYWNrIHN0YXRlIG5vZGVz IHdpdGggaW5pdGlhbCBzdGF0ZQo+ICsgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2luZy4KPiArICog VG9vbCBzdGFjayBjcmVhdGVzIGFuZCBzZXRzIHVwIGZyb250ZW5kIHNvdW5kIGNvbmZpZ3VyYXRp b24gbm9kZXMgcGVyIGRvbWFpbi4KPiArICoKPiArICogRnJvbnQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJhY2sKPiArICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiArICogWGVuYnVzU3Rh dGVJbml0aWFsaXNpbmcgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nCj4gKyAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBRdWVyeSBiYWNrZW5kIGRl dmljZSBpZGVudGlmaWNhdGlvbgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YS4KPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvIE9wZW4gYW5kIHZhbGlkYXRlIGJhY2tlbmQgZGV2aWNlLgo+ICsgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiArICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gKyAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgo+ICsgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVJbml0V2FpdAo+ ICsgKgo+ICsgKiBvIFF1ZXJ5IGZyb250ZW5kIGNvbmZpZ3VyYXRpb24KPiArICogbyBBbGxvY2F0 ZSBhbmQgaW5pdGlhbGl6ZQo+ICsgKiAgIGV2ZW50IGNoYW5uZWxzIHBlciBjb25maWd1cmVkCj4g KyAqICAgcGxheWJhY2svY2FwdHVyZSBzdHJlYW0uCj4gKyAqIG8gUHVibGlzaCB0cmFuc3BvcnQg cGFyYW1ldGVycwo+ICsgKiAgIHRoYXQgd2lsbCBiZSBpbiBlZmZlY3QgZHVyaW5nCj4gKyAqICAg dGhpcyBjb25uZWN0aW9uLgo+ICsgKiAgICAgICAgICAgICAgfAo+ICsgKiAgICAgICAgICAgICAg fAo+ICsgKiAgICAgICAgICAgICAgVgo+ICsgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2VkCj4gKyAq Cj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBRdWVyeSBmcm9u dGVuZCB0cmFuc3BvcnQgcGFyYW1ldGVycy4KPiArICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvIENvbm5lY3QgdG8gdGhlIGV2ZW50IGNoYW5uZWxzLgo+ICsgKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiArICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4g KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Vgo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVD b25uZWN0ZWQKPiArICoKPiArICogIG8gQ3JlYXRlIGFuZCBpbml0aWFsaXplIE9TCj4gKyAqICAg IHZpcnR1YWwgc291bmQgZGV2aWNlIGluc3RhbmNlcwo+ICsgKiAgICBhcyBwZXIgY29uZmlndXJh dGlvbi4KPiArICogICAgICAgICAgICAgIHwKPiArICogICAgICAgICAgICAgIHwKPiArICogICAg ICAgICAgICAgIFYKPiArICogWGVuYnVzU3RhdGVDb25uZWN0ZWQKPiArICoKPiArICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlVW5rbm93bgo+ICsgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDbG9zZWQKPiAr ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ2xvc2lu Zwo+ICsgKiBvIFJlbW92ZSB2aXJ0dWFsIHNvdW5kIGRldmljZQo+ICsgKiBvIFJlbW92ZSBldmVu dCBjaGFubmVscwo+ICsgKiAgICAgICAgICAgICAgfAo+ICsgKiAgICAgICAgICAgICAgfAo+ICsg KiAgICAgICAgICAgICAgVgo+ICsgKiBYZW5idXNTdGF0ZUNsb3NlZAo+ICsgKgo+ICsgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVjb3ZlcnkgZmxvdyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4gKyAqCj4gKyAqIEluIGNhc2Ugb2YgZnJvbnRlbmQgdW5yZWNvdmVy YWJsZSBlcnJvcnMgYmFja2VuZCBoYW5kbGVzIHRoYXQgYXMKPiArICogaWYgZnJvbnRlbmQgZ29l cyBpbnRvIHRoZSBYZW5idXNTdGF0ZUNsb3NlZCBzdGF0ZS4KPiArICoKPiArICogSW4gY2FzZSBv ZiBiYWNrZW5kIHVucmVjb3ZlcmFibGUgZXJyb3JzIGZyb250ZW5kIHRyaWVzIHJlbW92aW5nCj4g KyAqIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UuIElmIHRoaXMgaXMgcG9zc2libGUgYXQgdGhlIG1v bWVudCBvZiBlcnJvciwKPiArICogdGhlbiBmcm9udGVuZCBnb2VzIGludG8gdGhlIFhlbmJ1c1N0 YXRlSW5pdGlhbGlzaW5nIHN0YXRlIGFuZCBpcyByZWFkeSBmb3IKPiArICogbmV3IGNvbm5lY3Rp b24gd2l0aCBiYWNrZW5kLiBJZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGlzIHN0aWxsIGluIHVz ZSBhbmQKPiArICogY2Fubm90IGJlIHJlbW92ZWQsIHRoZW4gZnJvbnRlbmQgZ29lcyBpbnRvIHRo ZSBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgc3RhdGUKPiArICogdW50aWwgZWl0aGVyIHRoZSB2 aXJ0dWFsaXplZCBkZXZpY2UgcmVtb3ZlZCBvciBiYWNrZW5kIGluaXRpYXRlcyBhIG5ldwo+ICsg KiBjb25uZWN0aW9uLiBPbiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIHJlbW92YWwgZnJvbnRlbmQg Z29lcyBpbnRvIHRoZQo+ICsgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyBzdGF0ZS4KPiArICoK PiArICogTm90ZSBvbiBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgc3RhdGUgb2YgdGhlIGZyb250 ZW5kOiBpZiBiYWNrZW5kIGhhcwo+ICsgKiB1bnJlY292ZXJhYmxlIGVycm9ycyB0aGVuIGZyb250 ZW5kIGNhbm5vdCBzZW5kIHJlcXVlc3RzIHRvIHRoZSBiYWNrZW5kCj4gKyAqIGFuZCB0aHVzIGNh bm5vdCBwcm92aWRlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHZpcnR1YWxpemVkIGRldmljZSBhbnlt b3JlLgo+ICsgKiBBZnRlciBiYWNrZW5kIGlzIGJhY2sgdG8gbm9ybWFsIHRoZSB2aXJ0dWFsaXpl ZCBkZXZpY2UgbWF5IHN0aWxsIGhvbGQgc29tZQo+ICsgKiBzdGF0ZTogY29uZmlndXJhdGlvbiBp biB1c2UsIGFsbG9jYXRlZCBidWZmZXJzLCBjbGllbnQgYXBwbGljYXRpb24gc3RhdGUgZXRjLgo+ ICsgKiBTbywgaW4gbW9zdCBjYXNlcywgdGhpcyB3aWxsIHJlcXVpcmUgZnJvbnRlbmQgdG8gaW1w bGVtZW50IGNvbXBsZXggcmVjb3ZlcnkKPiArICogcmVjb25uZWN0IGxvZ2ljLiBJbnN0ZWFkLCBi eSBnb2luZyBpbnRvIFhlbmJ1c1N0YXRlUmVjb25maWd1cmluZyBzdGF0ZSwKPiArICogZnJvbnRl bmQgd2lsbCBtYWtlIHN1cmUgbm8gbmV3IGNsaWVudHMgb2YgdGhlIHZpcnR1YWxpemVkIGRldmlj ZSBhcmUKPiArICogYWNjZXB0ZWQsIGFsbG93IGV4aXN0aW5nIGNsaWVudChzKSB0byBleGl0IGdy YWNlZnVsbHkgYnkgc2lnbmFsaW5nIGVycm9yCj4gKyAqIHN0YXRlIGV0Yy4KPiArICogT25jZSBh bGwgdGhlIGNsaWVudHMgYXJlIGdvbmUgZnJvbnRlbmQgY2FuIHJlaW5pdGlhbGl6ZSB0aGUgdmly dHVhbGl6ZWQKPiArICogZGV2aWNlIGFuZCBnZXQgaW50byBYZW5idXNTdGF0ZUluaXRpYWxpc2lu ZyBzdGF0ZSBhZ2FpbiBzaWduYWxpbmcgdGhlCj4gKyAqIGJhY2tlbmQgdGhhdCBhIG5ldyBjb25u ZWN0aW9uIGNhbiBiZSBtYWRlLgo+ICsgKgo+ICsgKiBUaGVyZSBhcmUgbXVsdGlwbGUgY29uZGl0 aW9ucyBwb3NzaWJsZSB1bmRlciB3aGljaCBmcm9udGVuZCB3aWxsIGdvIGZyb20KPiArICogWGVu YnVzU3RhdGVSZWNvbmZpZ3VyaW5nIGludG8gWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcsIHNvbWUg b2YgdGhlbSBhcmUgT1MKPiArICogc3BlY2lmaWMuIEZvciBleGFtcGxlOgo+ICsgKiAxLiBUaGUg dW5kZXJseWluZyBPUyBmcmFtZXdvcmsgbWF5IHByb3ZpZGUgY2FsbGJhY2tzIHRvIHNpZ25hbCB0 aGF0IHRoZSBsYXN0Cj4gKyAqICAgIGNsaWVudCBvZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGhh cyBnb25lIGFuZCB0aGUgZGV2aWNlIGNhbiBiZSByZW1vdmVkCj4gKyAqIDIuIEZyb250ZW5kIGNh biBzY2hlZHVsZSBhIGRlZmVycmVkIHdvcmsgKHRpbWVyL3Rhc2tsZXQvd29ya3F1ZXVlKQo+ICsg KiAgICB0byBwZXJpb2RpY2FsbHkgY2hlY2sgaWYgdGhpcyBpcyB0aGUgcmlnaHQgdGltZSB0byBy ZS10cnkgcmVtb3ZhbCBvZgo+ICsgKiAgICB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlLgo+ICsgKiAz LiBCeSBhbnkgb3RoZXIgbWVhbnMuCj4gKyAqCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiAr ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDTSBGT1JNQVRTCj4gKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKPiArICoKPiArICogWEVOU05EX1BDTV9GT1JNQVRfPGZvcm1hdD5bXzxlbmRp YW4+XQo+ICsgKgo+ICsgKiBmb3JtYXQ6IDxTL1UvRj48Yml0cz4gb3IgPG5hbWU+Cj4gKyAqICAg ICBTIC0gc2lnbmVkLCBVIC0gdW5zaWduZWQsIEYgLSBmbG9hdAo+ICsgKiAgICAgYml0cyAtIDgs IDE2LCAyNCwgMzIKPiArICogICAgIG5hbWUgLSBNVV9MQVcsIEdTTSwgZXRjLgo+ICsgKgo+ICsg KiBlbmRpYW46IDxMRS9CRT4sIG1heSBiZSBhYnNlbnQKPiArICogICAgIExFIC0gTGl0dGxlIGVu ZGlhbiwgQkUgLSBCaWcgZW5kaWFuCj4gKyAqLwo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFU X1M4ICAgICAgICAgICAgMAo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1U4ICAgICAgICAg ICAgMQo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9MRSAgICAgICAgMgo+ICsjZGVm aW5lIFhFTlNORF9QQ01fRk9STUFUX1MxNl9CRSAgICAgICAgMwo+ICsjZGVmaW5lIFhFTlNORF9Q Q01fRk9STUFUX1UxNl9MRSAgICAgICAgNAo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1Ux Nl9CRSAgICAgICAgNQo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MyNF9MRSAgICAgICAg Ngo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MyNF9CRSAgICAgICAgNwo+ICsjZGVmaW5l IFhFTlNORF9QQ01fRk9STUFUX1UyNF9MRSAgICAgICAgOAo+ICsjZGVmaW5lIFhFTlNORF9QQ01f Rk9STUFUX1UyNF9CRSAgICAgICAgOQo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MzMl9M RSAgICAgICAgMTAKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMzJfQkUgICAgICAgIDEx Cj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTMyX0xFICAgICAgICAxMgo+ICsjZGVmaW5l IFhFTlNORF9QQ01fRk9STUFUX1UzMl9CRSAgICAgICAgMTMKPiArI2RlZmluZSBYRU5TTkRfUENN X0ZPUk1BVF9GMzJfTEUgICAgICAgIDE0IC8qIDQtYnl0ZSBmbG9hdCwgSUVFRS03NTQgMzItYml0 LCAqLwo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0YzMl9CRSAgICAgICAgMTUgLyogcmFu Z2UgLTEuMCB0byAxLjAgICAgICAgICAgICAgICovCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN QVRfRjY0X0xFICAgICAgICAxNiAvKiA4LWJ5dGUgZmxvYXQsIElFRUUtNzU0IDY0LWJpdCwgKi8K PiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GNjRfQkUgICAgICAgIDE3IC8qIHJhbmdlIC0x LjAgdG8gMS4wICAgICAgICAgICAgICAqLwo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lF Qzk1OF9TVUJGUkFNRV9MRSAxOAo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9T VUJGUkFNRV9CRSAxOQo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX01VX0xBVyAgICAgICAg MjAKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9BX0xBVyAgICAgICAgIDIxCj4gKyNkZWZp bmUgWEVOU05EX1BDTV9GT1JNQVRfSU1BX0FEUENNICAgICAyMgo+ICsjZGVmaW5lIFhFTlNORF9Q Q01fRk9STUFUX01QRUcgICAgICAgICAgMjMKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9H U00gICAgICAgICAgIDI0Cj4gKwo+ICsvKgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVFVRVNUIENPREVTCj4gKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKPiArICovCj4gKyNkZWZpbmUgWEVOU05EX09QX09QRU4gICAgICAgICAgICAg ICAgICAwCj4gKyNkZWZpbmUgWEVOU05EX09QX0NMT1NFICAgICAgICAgICAgICAgICAxCj4gKyNk ZWZpbmUgWEVOU05EX09QX1JFQUQgICAgICAgICAgICAgICAgICAyCj4gKyNkZWZpbmUgWEVOU05E X09QX1dSSVRFICAgICAgICAgICAgICAgICAzCj4gKyNkZWZpbmUgWEVOU05EX09QX1NFVF9WT0xV TUUgICAgICAgICAgICA0Cj4gKyNkZWZpbmUgWEVOU05EX09QX0dFVF9WT0xVTUUgICAgICAgICAg ICA1Cj4gKyNkZWZpbmUgWEVOU05EX09QX01VVEUgICAgICAgICAgICAgICAgICA2Cj4gKyNkZWZp bmUgWEVOU05EX09QX1VOTVVURSAgICAgICAgICAgICAgICA3Cj4gKwo+ICsvKgo+ICsgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCj4gKyAqICAgICAgICAgICAgICAgWEVOU1RPUkUgRklFTEQgQU5EIFBB VEggTkFNRSBTVFJJTkdTLCBIRUxQRVJTCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICov Cj4gKyNkZWZpbmUgWEVOU05EX0RSSVZFUl9OQU1FICAgICAgICAgICAgICAidnNuZCIKPiArCj4g KyNkZWZpbmUgWEVOU05EX0xJU1RfU0VQQVJBVE9SICAgICAgICAgICAiLCIKPiArLyogRmllbGQg bmFtZXMgKi8KPiArI2RlZmluZSBYRU5TTkRfRklFTERfQkVfVkVSU0lPTlMgICAgICAgICJ2ZXJz aW9ucyIKPiArI2RlZmluZSBYRU5TTkRfRklFTERfRkVfVkVSU0lPTiAgICAgICAgICJ2ZXJzaW9u Igo+ICsjZGVmaW5lIFhFTlNORF9GSUVMRF9WQ0FSRF9TSE9SVF9OQU1FICAgInNob3J0LW5hbWUi Cj4gKyNkZWZpbmUgWEVOU05EX0ZJRUxEX1ZDQVJEX0xPTkdfTkFNRSAgICAibG9uZy1uYW1lIgo+ ICsjZGVmaW5lIFhFTlNORF9GSUVMRF9SSU5HX1JFRiAgICAgICAgICAgInJpbmctcmVmIgo+ICsj ZGVmaW5lIFhFTlNORF9GSUVMRF9FVlRfQ0hOTCAgICAgICAgICAgImV2ZW50LWNoYW5uZWwiCj4g KyNkZWZpbmUgWEVOU05EX0ZJRUxEX0RFVklDRV9OQU1FICAgICAgICAibmFtZSIKPiArI2RlZmlu ZSBYRU5TTkRfRklFTERfVFlQRSAgICAgICAgICAgICAgICJ0eXBlIgo+ICsjZGVmaW5lIFhFTlNO RF9GSUVMRF9TVFJFQU1fVU5JUVVFX0lEICAgInVuaXF1ZS1pZCIKPiArI2RlZmluZSBYRU5TTkRf RklFTERfQ0hBTk5FTFNfTUlOICAgICAgICJjaGFubmVscy1taW4iCj4gKyNkZWZpbmUgWEVOU05E X0ZJRUxEX0NIQU5ORUxTX01BWCAgICAgICAiY2hhbm5lbHMtbWF4Igo+ICsjZGVmaW5lIFhFTlNO RF9GSUVMRF9TQU1QTEVfUkFURVMgICAgICAgInNhbXBsZS1yYXRlcyIKPiArI2RlZmluZSBYRU5T TkRfRklFTERfU0FNUExFX0ZPUk1BVFMgICAgICJzYW1wbGUtZm9ybWF0cyIKPiArI2RlZmluZSBY RU5TTkRfRklFTERfQlVGRkVSX1NJWkUgICAgICAgICJidWZmZXItc2l6ZSIKPiArCj4gKy8qIFN0 cmVhbSB0eXBlIGZpZWxkIHZhbHVlcy4gKi8KPiArI2RlZmluZSBYRU5TTkRfU1RSRUFNX1RZUEVf UExBWUJBQ0sgICAgICJwIgo+ICsjZGVmaW5lIFhFTlNORF9TVFJFQU1fVFlQRV9DQVBUVVJFICAg ICAgImMiCj4gKy8qIFNhbXBsZSByYXRlIG1heCBzdHJpbmcgbGVuZ3RoICovCj4gKyNkZWZpbmUg WEVOU05EX1NBTVBMRV9SQVRFX01BWF9MRU4gICAgICAxMQo+ICsvKiBTYW1wbGUgZm9ybWF0IGZp ZWxkIHZhbHVlcyAqLwo+ICsjZGVmaW5lIFhFTlNORF9TQU1QTEVfRk9STUFUX01BWF9MRU4gICAg MjQKPiArCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzhfU1RSICAgICAgICAiczgiCj4g KyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVThfU1RSICAgICAgICAidTgiCj4gKyNkZWZpbmUg WEVOU05EX1BDTV9GT1JNQVRfUzE2X0xFX1NUUiAgICAiczE2X2xlIgo+ICsjZGVmaW5lIFhFTlNO RF9QQ01fRk9STUFUX1MxNl9CRV9TVFIgICAgInMxNl9iZSIKPiArI2RlZmluZSBYRU5TTkRfUENN X0ZPUk1BVF9VMTZfTEVfU1RSICAgICJ1MTZfbGUiCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN QVRfVTE2X0JFX1NUUiAgICAidTE2X2JlIgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1My NF9MRV9TVFIgICAgInMyNF9sZSIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMjRfQkVf U1RSICAgICJzMjRfYmUiCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTI0X0xFX1NUUiAg ICAidTI0X2xlIgo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UyNF9CRV9TVFIgICAgInUy NF9iZSIKPiArI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMzJfTEVfU1RSICAgICJzMzJfbGUi Cj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzMyX0JFX1NUUiAgICAiczMyX2JlIgo+ICsj ZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9MRV9TVFIgICAgInUzMl9sZSIKPiArI2RlZmlu ZSBYRU5TTkRfUENNX0ZPUk1BVF9VMzJfQkVfU1RSICAgICJ1MzJfYmUiCj4gKyNkZWZpbmUgWEVO U05EX1BDTV9GT1JNQVRfRjMyX0xFX1NUUiAgICAiZmxvYXRfbGUiCj4gKyNkZWZpbmUgWEVOU05E X1BDTV9GT1JNQVRfRjMyX0JFX1NUUiAgICAiZmxvYXRfYmUiCj4gKyNkZWZpbmUgWEVOU05EX1BD TV9GT1JNQVRfRjY0X0xFX1NUUiAgICAiZmxvYXQ2NF9sZSIKPiArI2RlZmluZSBYRU5TTkRfUENN X0ZPUk1BVF9GNjRfQkVfU1RSICAgICJmbG9hdDY0X2JlIgo+ICsjZGVmaW5lIFhFTlNORF9QQ01f Rk9STUFUX0lFQzk1OF9TVUJGUkFNRV9MRV9TVFIgImllYzk1OF9zdWJmcmFtZV9sZSIKPiArI2Rl ZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JRUM5NThfU1VCRlJBTUVfQkVfU1RSICJpZWM5NThfc3Vi ZnJhbWVfYmUiCj4gKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfTVVfTEFXX1NUUiAgICAibXVf bGF3Igo+ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0FfTEFXX1NUUiAgICAgImFfbGF3Igo+ ICsjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lNQV9BRFBDTV9TVFIgImltYV9hZHBjbSIKPiAr I2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9NUEVHX1NUUiAgICAgICJtcGVnIgo+ICsjZGVmaW5l IFhFTlNORF9QQ01fRk9STUFUX0dTTV9TVFIgICAgICAgImdzbSIKPiArCj4gKwo+ICsvKgo+ICsg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFU VVMgUkVUVVJOIENPREVTCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICoKPiArICogU3Rh dHVzIHJldHVybiBjb2RlIGlzIHplcm8gb24gc3VjY2VzcyBhbmQgLVhFTl9FWFggb24gZmFpbHVy ZS4KPiArICoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFzc3VtcHRpb25zCj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICog byB1c2FnZSBvZiBncmFudCByZWZlcmVuY2UgMCBhcyBpbnZhbGlkIGdyYW50IHJlZmVyZW5jZToK PiArICogICBncmFudCByZWZlcmVuY2UgMCBpcyB2YWxpZCwgYnV0IG5ldmVyIGV4cG9zZWQgdG8g YSBQViBkcml2ZXIsCj4gKyAqICAgYmVjYXVzZSBvZiB0aGUgZmFjdCBpdCBpcyBhbHJlYWR5IGlu IHVzZS9yZXNlcnZlZCBieSB0aGUgUFYgY29uc29sZS4KPiArICogbyBhbGwgcmVmZXJlbmNlcyBp biB0aGlzIGRvY3VtZW50IHRvIHBhZ2Ugc2l6ZXMgbXVzdCBiZSB0cmVhdGVkCj4gKyAqICAgYXMg cGFnZXMgb2Ygc2l6ZSBYRU5fUEFHRV9TSVpFIHVubGVzcyBvdGhlcndpc2Ugbm90ZWQuCj4gKyAq Cj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICogICAgICAgRGVzY3JpcHRpb24gb2YgdGhl IHByb3RvY29sIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQgZHJpdmVyCj4gKyAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKPiArICoKPiArICogVGhlIHR3byBoYWx2ZXMgb2YgYSBQYXJhLXZpcnR1 YWwgc291bmQgZHJpdmVyIGNvbW11bmljYXRlIHdpdGgKPiArICogZWFjaCBvdGhlciB1c2luZyBz aGFyZWQgcGFnZXMgYW5kIGV2ZW50IGNoYW5uZWxzLgo+ICsgKiBTaGFyZWQgcGFnZSBjb250YWlu cyBhIHJpbmcgd2l0aCByZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldHMuCj4gKyAqCj4gKyAqIFBhY2tl dHMsIHVzZWQgZm9yIGlucHV0L291dHB1dCBvcGVyYXRpb25zLCBlLmcuIHJlYWQvd3JpdGUsIHNl dC9nZXQgdm9sdW1lLAo+ICsgKiBldGMuLCBwcm92aWRlIG9mZnNldC9sZW5ndGggZmllbGRzIGlu IG9yZGVyIHRvIGFsbG93IGFzeW5jaHJvbm91cyBwcm90b2NvbAo+ICsgKiBvcGVyYXRpb24gd2l0 aCBidWZmZXIgc3BhY2Ugc2hhcmluZzogcGFydCBvZiB0aGUgYnVmZmVyIGFsbG9jYXRlZCBhdAo+ ICsgKiBYRU5TTkRfT1BfT1BFTiBjYW4gYmUgdXNlZCBmb3IgYXVkaW8gc2FtcGxlcyBhbmQgcGFy dCwgZm9yIGV4YW1wbGUsCj4gKyAqIGZvciB2b2x1bWUgY29udHJvbC4KPiArICoKPiArICogQWxs IHJlc2VydmVkIGZpZWxkcyBpbiB0aGUgc3RydWN0dXJlcyBiZWxvdyBtdXN0IGJlIDAuCj4gKyAq Cj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXF1ZXN0cyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogQWxsIHJlcXVlc3QgcGFja2V0 cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoMzIgb2N0ZXRzKQo+ICsgKiBBbGwgcmVxdWVzdCBwYWNr ZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoKPiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEg ICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICAgb3Bl cmF0aW9uICAgfCAgICByZXNlcnZlZCAgICB8IDQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCA4Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiAgIGlkIC0gdWludDE2X3QsIHBy aXZhdGUgZ3Vlc3QgdmFsdWUsIGVjaG9lZCBpbiByZXNwb25zZQo+ICsgKiAgIG9wZXJhdGlvbiAt IHVpbnQ4X3QsIG9wZXJhdGlvbiBjb2RlLCBYRU5TTkRfT1BfPz8/Cj4gKyAqCj4gKyAqIEZvciBh bGwgcGFja2V0cyB3aGljaCB1c2Ugb2Zmc2V0IGFuZCBsZW5ndGg6Cj4gKyAqICAgb2Zmc2V0IC0g dWludDMyX3QsIHJlYWQgb3Igd3JpdGUgZGF0YSBvZmZzZXQgd2l0aGluIHRoZSBzaGFyZWQgYnVm ZmVyLAo+ICsgKiAgICAgcGFzc2VkIHdpdGggWEVOU05EX09QX09QRU4gcmVxdWVzdCwgb2N0ZXRz LAo+ICsgKiAgICAgWzA7IFhFTlNORF9PUF9PUEVOLmJ1ZmZlcl9zeiAtIDFdLgo+ICsgKiAgIGxl bmd0aCAtIHVpbnQzMl90LCByZWFkIG9yIHdyaXRlIGRhdGEgbGVuZ3RoLCBvY3RldHMKPiArICoK PiArICogUmVxdWVzdCBvcGVuIC0gb3BlbiBhIFBDTSBzdHJlYW0gZm9yIHBsYXliYWNrIG9yIGNh cHR1cmU6Cj4gKyAqCj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAg ICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4g KyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8IFhFTlNORF9PUF9PUEVOIHwg ICAgcmVzZXJ2ZWQgICAgfCA0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg OAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGNtX3JhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+ICsgKiB8ICBwY21fZm9ybWF0ICAgIHwgIHBjbV9jaGFubmVscyAgfCAgICAgICAgICAg ICByZXNlcnZlZCAgICAgICAgICAgIHwgMTYKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zeiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAyMAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdyZWZfZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0Cj4gKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjgKPiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4g KyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMy Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+ICsgKiBwY21fcmF0ZSAtIHVpbnQzMl90LCBzdHJl YW0gZGF0YSByYXRlLCBIego+ICsgKiBwY21fZm9ybWF0IC0gdWludDhfdCwgWEVOU05EX1BDTV9G T1JNQVRfWFhYIHZhbHVlCj4gKyAqIHBjbV9jaGFubmVscyAtIHVpbnQ4X3QsIG51bWJlciBvZiBj aGFubmVscyBvZiB0aGlzIHN0cmVhbSwKPiArICogICBbY2hhbm5lbHMtbWluOyBjaGFubmVscy1t YXhdCj4gKyAqIGJ1ZmZlcl9zeiAtIHVpbnQzMl90LCBidWZmZXIgc2l6ZSB0byBiZSBhbGxvY2F0 ZWQsIG9jdGV0cwo+ICsgKiBncmVmX2RpcmVjdG9yeSAtIGdyYW50X3JlZl90LCBhIHJlZmVyZW5j ZSB0byB0aGUgZmlyc3Qgc2hhcmVkIHBhZ2UKPiArICogICBkZXNjcmliaW5nIHNoYXJlZCBidWZm ZXIgcmVmZXJlbmNlcy4gQXQgbGVhc3Qgb25lIHBhZ2UgZXhpc3RzLiBJZiBzaGFyZWQKPiArICog ICBidWZmZXIgc2l6ZSAgKGJ1ZmZlcl9zeikgZXhjZWVkcyB3aGF0IGNhbiBiZSBhZGRyZXNzZWQg YnkgdGhpcyBzaW5nbGUgcGFnZSwKPiArICogICB0aGVuIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBw YWdlIG11c3QgYmUgc3VwcGxpZWQgKHNlZSBncmVmX2Rpcl9uZXh0X3BhZ2UKPiArICogICBiZWxv dykKPiArICovCj4gKwo+ICtzdHJ1Y3QgeGVuc25kX29wZW5fcmVxIHsKPiArICAgIHVpbnQzMl90 IHBjbV9yYXRlOwo+ICsgICAgdWludDhfdCBwY21fZm9ybWF0Owo+ICsgICAgdWludDhfdCBwY21f Y2hhbm5lbHM7Cj4gKyAgICB1aW50MTZfdCByZXNlcnZlZDsKPiArICAgIHVpbnQzMl90IGJ1ZmZl cl9zejsKPiArICAgIGdyYW50X3JlZl90IGdyZWZfZGlyZWN0b3J5Owo+ICt9Owo+ICsKPiArLyoK PiArICogU2hhcmVkIHBhZ2UgZm9yIFhFTlNORF9PUF9PUEVOIGJ1ZmZlciBkZXNjcmlwdG9yIChn cmVmX2RpcmVjdG9yeSBpbiB0aGUKPiArICogICByZXF1ZXN0KSBlbXBsb3lzIGEgbGlzdCBvZiBw YWdlcywgZGVzY3JpYmluZyBhbGwgcGFnZXMgb2YgdGhlIHNoYXJlZCBkYXRhCj4gKyAqICAgYnVm ZmVyOgo+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAg ICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJfbmV4dF9wYWdlICAgICAgICAgICAgICAgICAg ICAgICAgIHwgNAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdyZWZbMF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICog fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZbaV0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IGkqNCs4Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8L1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wK PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdy ZWZbTiAtIDFdICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOKjQrOAo+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPiArICoKPiArICogZ3JlZl9kaXJfbmV4dF9wYWdlIC0gZ3JhbnRfcmVmX3QsIHJlZmVy ZW5jZSB0byB0aGUgbmV4dCBwYWdlIGRlc2NyaWJpbmcKPiArICogICBwYWdlIGRpcmVjdG9yeS4g TXVzdCBiZSAwIGlmIHRoZXJlIGFyZSBubyBtb3JlIHBhZ2VzIGluIHRoZSBsaXN0Lgo+ICsgKiBn cmVmW2ldIC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byBhIHNoYXJlZCBwYWdlIG9mIHRoZSBi dWZmZXIKPiArICogICBhbGxvY2F0ZWQgYXQgWEVOU05EX09QX09QRU4KPiArICoKPiArICogTnVt YmVyIG9mIGdyYW50X3JlZl90IGVudHJpZXMgaW4gdGhlIHdob2xlIHBhZ2UgZGlyZWN0b3J5IGlz IG5vdAo+ICsgKiBwYXNzZWQsIGJ1dCBpbnN0ZWFkIGNhbiBiZSBjYWxjdWxhdGVkIGFzOgo+ICsg KiAgIG51bV9ncmVmc190b3RhbCA9IChYRU5TTkRfT1BfT1BFTi5idWZmZXJfc3ogKyBYRU5fUEFH RV9TSVpFIC0gMSkgLwo+ICsgKiAgICAgICBYRU5fUEFHRV9TSVpFCj4gKyAqLwo+ICsKPiArc3Ry dWN0IHhlbnNuZF9wYWdlX2RpcmVjdG9yeSB7Cj4gKyAgICBncmFudF9yZWZfdCBncmVmX2Rpcl9u ZXh0X3BhZ2U7Cj4gKyAgICBncmFudF9yZWZfdCBncmVmWzFdOyAvKiBWYXJpYWJsZSBsZW5ndGgg Ki8KPiArfTsKPiArCj4gKy8qCj4gKyAqICBSZXF1ZXN0IGNsb3NlIC0gY2xvc2UgYW4gb3BlbmVk IHBjbSBzdHJlYW06Cj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAg ICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4g KyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8IFhFTlNORF9PUF9DTE9TRXwg ICAgcmVzZXJ2ZWQgICAgfCA0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg OAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMzIKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqCj4gKyAqIFJl cXVlc3QgcmVhZC93cml0ZSAtIHVzZWQgZm9yIHJlYWQgKGZvciBjYXB0dXJlKSBvciB3cml0ZSAo Zm9yIHBsYXliYWNrKToKPiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAg ICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+ICsgKiArLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICBvcGVyYXRpb24gICAg fCAgICByZXNlcnZlZCAgICB8IDQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCA4Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKPiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDIwCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMgo+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiAr ICoKPiArICogb3BlcmF0aW9uIC0gWEVOU05EX09QX1JFQUQgZm9yIHJlYWQgb3IgWEVOU05EX09Q X1dSSVRFIGZvciB3cml0ZQo+ICsgKi8KPiArCj4gK3N0cnVjdCB4ZW5zbmRfcndfcmVxIHsKPiAr ICAgIHVpbnQzMl90IG9mZnNldDsKPiArICAgIHVpbnQzMl90IGxlbmd0aDsKPiArfTsKPiArCj4g Ky8qCj4gKyAqIFJlcXVlc3Qgc2V0L2dldCB2b2x1bWUgLSBzZXQvZ2V0IGNoYW5uZWxzJyB2b2x1 bWUgb2YgdGhlIHN0cmVhbSBnaXZlbjoKPiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEg ICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICBvcGVy YXRpb24gICAgfCAgICByZXNlcnZlZCAgICB8IDQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCA4Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKPiAr ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5n dGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgo+ICsgKiArLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC98Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MzIKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqCj4gKyAqIG9wZXJhdGlvbiAtIFhFTlNORF9PUF9T RVRfVk9MVU1FIGZvciB2b2x1bWUgc2V0Cj4gKyAqICAgb3IgWEVOU05EX09QX0dFVF9WT0xVTUUg Zm9yIHZvbHVtZSBnZXQKPiArICogQnVmZmVyIHBhc3NlZCB3aXRoIFhFTlNORF9PUF9PUEVOIGlz IHVzZWQgdG8gZXhjaGFuZ2Ugdm9sdW1lCj4gKyAqIHZhbHVlczoKPiArICoKPiArICogICAgICAg ICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAg ICAgICBvY3RldAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2hhbm5lbFswXSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQKPiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICog fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFtpXSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IGkqNAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4g KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5l bFtOIC0gMV0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgKE4tMSkqNAo+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPiArICoKPiArICogTiA9IFhFTlNORF9PUF9PUEVOLnBjbV9jaGFubmVscwo+ICsgKiBp IC0gdWludDhfdCwgaW5kZXggb2YgYSBjaGFubmVsCj4gKyAqIGNoYW5uZWxbaV0gLSBzaW50MzJf dCwgdm9sdW1lIG9mIGktdGggY2hhbm5lbAo+ICsgKiBWb2x1bWUgaXMgZXhwcmVzc2VkIGFzIGEg c2lnbmVkIHZhbHVlIGluIHN0ZXBzIG9mIDAuMDAxIGRCLAo+ICsgKiB3aGlsZSAwIGJlaW5nIDAg ZEIuCj4gKyAqCj4gKyAqIFJlcXVlc3QgbXV0ZS91bm11dGUgLSBtdXRlL3VubXV0ZSBzdHJlYW06 Cj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAg ICAgICAgICAgMyAgICAgICAgb2N0ZXQKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAg ICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgb3BlcmF0aW9uICAgIHwgICAgcmVzZXJ2ZWQg ICAgfCA0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTYKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2 ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyCj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ ICsgKgo+ICsgKiBvcGVyYXRpb24gLSBYRU5TTkRfT1BfTVVURSBmb3IgbXV0ZSBvciBYRU5TTkRf T1BfVU5NVVRFIGZvciB1bm11dGUKPiArICogQnVmZmVyIHBhc3NlZCB3aXRoIFhFTlNORF9PUF9P UEVOIGlzIHVzZWQgdG8gZXhjaGFuZ2UgbXV0ZS91bm11dGUKPiArICogdmFsdWVzOgo+ICsgKgo+ ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9jdGV0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjaGFubmVsWzBdICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgNAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogKy9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsW2ldICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgaSo0Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiArL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL3wKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICBjaGFubmVsW04gLSAxXSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoTi0xKSo0Cj4g KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+ICsgKiBOID0gWEVOU05EX09QX09QRU4ucGNtX2NoYW5u ZWxzCj4gKyAqIGkgLSB1aW50OF90LCBpbmRleCBvZiBhIGNoYW5uZWwKPiArICogY2hhbm5lbFtp XSAtIHVpbnQ4X3QsIG5vbi16ZXJvIGlmIGktdGggY2hhbm5lbCBuZWVkcyB0byBiZSBtdXRlZC91 bm11dGVkCj4gKyAqCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE4u Qi4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoKPiArICogVGhlICdz dHJ1Y3QgeGVuc25kX3J3X3JlcScgaXMgYWxzbyB1c2VkIGZvciBYRU5TTkRfT1BfU0VUX1ZPTFVN RSwKPiArICogWEVOU05EX09QX0dFVF9WT0xVTUUsIFhFTlNORF9PUF9NVVRFLCBYRU5TTkRfT1Bf VU5NVVRFLgo+ICsgKi8KPiArCj4gKy8qCj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSBSZXNwb25zZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICoK PiArICogQWxsIHJlc3BvbnNlIHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDMyIG9jdGV0 cykKPiArICoKPiArICogUmVzcG9uc2UgZm9yIGFsbCByZXF1ZXN0czoKPiArICogICAgICAgICAw ICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAg ICBvY3RldAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgIGlkICAgICAg ICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgfCAgICByZXNlcnZlZCAgICB8IDQKPiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ICsgKiB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTIKPiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2 ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyCj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ ICsgKgo+ICsgKiBpZCAtIHVpbnQxNl90LCBjb3BpZWQgZnJvbSB0aGUgcmVxdWVzdAo+ICsgKiBv cGVyYXRpb24gLSB1aW50OF90LCBYRU5TTkRfT1BfKiAtIGNvcGllZCBmcm9tIHJlcXVlc3QKPiAr ICogc3RhdHVzIC0gaW50MzJfdCwgcmVzcG9uc2Ugc3RhdHVzLCB6ZXJvIG9uIHN1Y2Nlc3MgYW5k IC1YRU5fRVhYIG9uIGZhaWx1cmUKPiArICovCj4gKwo+ICtzdHJ1Y3QgeGVuc25kX3JlcSB7Cj4g KyAgICB1aW50MTZfdCBpZDsKPiArICAgIHVpbnQ4X3Qgb3BlcmF0aW9uOwo+ICsgICAgdWludDhf dCByZXNlcnZlZFs1XTsKPiArICAgIHVuaW9uIHsKPiArICAgICAgICBzdHJ1Y3QgeGVuc25kX29w ZW5fcmVxIG9wZW47Cj4gKyAgICAgICAgc3RydWN0IHhlbnNuZF9yd19yZXEgcnc7Cj4gKyAgICAg ICAgdWludDhfdCByZXNlcnZlZFsyNF07Cj4gKyAgICB9IG9wOwo+ICt9Owo+ICsKPiArc3RydWN0 IHhlbnNuZF9yZXNwIHsKPiArICAgIHVpbnQxNl90IGlkOwo+ICsgICAgdWludDhfdCBvcGVyYXRp b247Cj4gKyAgICB1aW50OF90IHJlc2VydmVkOwo+ICsgICAgaW50MzJfdCBzdGF0dXM7Cj4gKyAg ICB1aW50OF90IHJlc2VydmVkMVsyNF07Cj4gK307Cj4gKwo+ICtERUZJTkVfUklOR19UWVBFUyh4 ZW5fc25kaWYsIHN0cnVjdCB4ZW5zbmRfcmVxLCBzdHJ1Y3QgeGVuc25kX3Jlc3ApOwo+ICsKPiAr I2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19JT19TTkRJRl9IX18gKi8KPiArCj4gKy8qCj4gKyAqIExv Y2FsIHZhcmlhYmxlczoKPiArICogbW9kZTogQwo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCj4g KyAqIGMtYmFzaWMtb2Zmc2V0OiA0Cj4gKyAqIHRhYi13aWR0aDogNAo+ICsgKiBpbmRlbnQtdGFi cy1tb2RlOiBuaWwKPiArICogRW5kOgo+ICsgKi8KCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK