From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v17] xen/sndif: Add sound-device ABI Date: Wed, 8 Feb 2017 10:33:00 +0200 Message-ID: <1486542780-2585-2-git-send-email-andr2000@gmail.com> References: <1486542780-2585-1-git-send-email-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbNge-0001uQ-7b for xen-devel@lists.xenproject.org; Wed, 08 Feb 2017 08:33:12 +0000 Received: by mail-wr0-f196.google.com with SMTP id k90so8002724wrc.3 for ; Wed, 08 Feb 2017 00:33:10 -0800 (PST) In-Reply-To: <1486542780-2585-1-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: Iurii Konovalenko , vlad.babchuk@gmail.com, Oleksandr Dmytryshyn , Oleksandr Andrushchenko , andrii.anisov@gmail.com, olekstysh@gmail.com, andr2000@gmail.com, al1img@gmail.com, Oleksandr Grytsov , joculator@gmail.com List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKQWRkIEFCSSBmb3IgdGhlIHR3byBoYWx2ZXMgb2YgYSBwYXJhLXZpcnR1YWxpemVk CnNvdW5kIGRyaXZlciB0byBjb21tdW5pY2F0ZSB3aXRoIGVhY2ggb3RoZXIuCgpUaGUgQUJJIGFs bG93cyBpbXBsZW1lbnRpbmcgYXVkaW8gcGxheWJhY2sgYW5kIGNhcHR1cmUgYXMKd2VsbCBhcyB2 b2x1bWUgY29udHJvbCBhbmQgcG9zc2liaWxpdHkgdG8gbXV0ZS91bm11dGUKYXVkaW8gc291cmNl cy4KCk5vdGU6IGRlcGVuZGluZyBvbiB0aGUgdXNlLWNhc2UgYmFja2VuZCBjYW4gZXhwb3NlIG1v cmUgc291bmQKY2FyZHMgYW5kIFBDTSBkZXZpY2VzL3N0cmVhbXMgdGhhbiB0aGUgdW5kZXJseWlu ZyBIVyBwaHlzaWNhbGx5CmhhcyBieSBlbXBsb3lpbmcgU1cgbWl4ZXJzLCBjb25maWd1cmluZyB2 aXJ0dWFsIHNvdW5kIHN0cmVhbXMsCmNoYW5uZWxzIGV0Yy4gVGh1cywgYWxsb3dpbmcgZmluZSB0 dW5uZWQgY29uZmlndXJhdGlvbnMgcGVyCmZyb250ZW5kLgoKU2lnbmVkLW9mZi1ieTogT2xla3Nh bmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgpTaWdu ZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgR3J5dHNvdiA8b2xla3NhbmRyX2dyeXRzb3ZAZXBhbS5jb20+ ClNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBEbXl0cnlzaHluIDxvbGVrc2FuZHIuZG15dHJ5c2h5 bkBnbG9iYWxsb2dpYy5jb20+ClNpZ25lZC1vZmYtYnk6IEl1cmlpIEtvbm92YWxlbmtvIDxpdXJp aS5rb25vdmFsZW5rb0BnbG9iYWxsb2dpYy5jb20+CgotLS0KQ2hhbmdlcyBzaW5jZSB2MToKICog cmVtb3ZlZCBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSkgZnJvbSBhbGwgc3RydWN0dXJlcyBk ZWZpbml0aW9ucwoKQ2hhbmdlcyBzaW5jZSB2MjoKICogcmVtb3ZlZCBhbGwgQyBzdHJ1Y3R1cmVz CiAqIGFkZGVkIHByb3RvY29sIGRlc2NyaXB0aW9uIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tl bmQgZHJpdmVycwoKQ2hhbmdlcyBzaW5jZSB2MzoKICogZml4ZWQgc29tZSB0eXBvcwogKiByZW5h bWVkIFhFTlNORF9QQ01fRk9STUFUX0ZMT0FUXyoqIHRvIFhFTlNORF9QQ01fRk9STUFUX0YzMl8q KgogKiByZW5hbWVkIFhFTlNORF9QQ01fRk9STUFUX0ZMT0FUNjRfKiogdG8gWEVOU05EX1BDTV9G T1JNQVRfRjY0XyoqCiAqIGFkZGVkICdpZCcgZmllbGQgdG8gdGhlIHJlcXVlc3QgYW5kIHJlc3Bv bnNlIHBhY2tldHMKICogcmVuYW1lZCAnc3RyZWFtX2lkJyB0byAnc3RyZWFtJyBpbiB0aGUgcGFj a2V0cyBkZXNjcmlwdGlvbgogKiByZW5hbWVkICdwY21fZGF0YV9yYXRlJyB0byAncGNtX3JhdGUn IGluIHRoZSBwYWNrZXRzIGRlc2NyaXB0aW9uCiAqIHJlbmFtZWQgJ3BjbV9zdHJlYW1fdHlwZScg dG8gJ3BjbV90eXBlJyBpbiB0aGUgcGFja2V0cyBkZXNjcmlwdGlvbgogKiByZW1vdmVkICdzdHJl YW1faWQnIGZpZWxkIGZyb20gdGhlIHJlc3BvbnNlIHBhY2tldHMKCkNoYW5nZXMgc2luY2UgdjQ6 CiAqIHJlbmFtZWQgJ3N0cmVhbV9pZCcgYmFjayB0byB0aGUgdG8gJ3N0cmVhbScgaW4gdGhlIHBh Y2tldHMgZGVzY3JpcHRpb24KICogbW92ZWQgJ2lkJyBmaWVsZCB0byB0aGUgdXBwZXIgcG9zaXRp b24gaW4gdGhlIHJlc3BvbnNlIHBhY2tldHMKCkNoYW5nZXMgc2luY2UgdjU6CiAqIFNsaWdodGx5 IHJld29ya2VkIHJlcXVlc3QvcmVzcG9uc2UgcGFja2V0cwogKiBTaXplIG9mIHRoZSByZXF1ZXN0 L3Jlc3BvbnNlIHBhY2tldCBpcyBjaGFuZ2VkIHRvIHRoZSA2NCBieXRlcwogKiBOb3cgcGFyYW1l dGVycyBmb3IgdGhlIFhFTlNORF9PUF9TRVRfVk9MVU1FL1hFTlNORF9PUF9HRVRfVk9MVU1FIGFy ZQogICBwYXNzZWQgdmlhIHNoYXJlZCBwYWdlCiAqIEFkZGVkIHBhcmFtZXRlcnMgZm9yIHRoZSBY ZW5CdXMgbm9kZXMgKG5vdyBlYWNoIHN0cmVhbSBjYW4gYmUgbWFwcGVkCiAgIHRvIHRoZSBkZWZp bmVkIHNvdW5kIGRldmljZSBpbiB0aGUgYmFja2VuZCB1c2luZyB0aG9zZSBwYXJhbWV0ZXJzKQog KiBBZGRlZCBYZW5CdXMgc3RhdGUgZGlhZ3JhbXMgZGVzY3JpcHRpb24KCkNoYW5nZXMgc2luY2Ug djY6CiAqIFJld29ya2VkIHN0cmVhbXMgZGVzY3JpcHRpb24gIGluIHRoZSBCYWNrZW5kIFhlbkJ1 cyBOb2RlcwoKQ2hhbmdlcyBzaW5jZSB2NzoKICogcmUtd29ya2VkIGJhY2tlbmQgZGV2aWNlIHBh cmFtZXRlcnMgdG8gYmUgbW9yZSBnZW5lcmljIGFuZCBmbGV4aWJsZQogKiBleHRlbmRlZCBmcm9u dGVuZCBkZXZpY2UgcGFyYW1ldGVycwogKiBzbGlnaHRseSB1cGRhdGVkIHN0YXRlIG1hY2hpbmUg ZGVzY3JpcHRpb24gYWRkZWQgbXV0ZS91bm11dGUgY29tbWFuZHMKICogYWRkZWQgY29uc3RhbnRz IGZvciBYZW5TdG9yZSBjb25maWd1cmF0aW9uIHN0cmluZ3MKICAgKGZpZWxkcywgUENNIGZvcm1h dHMgZXRjLikKICogY2hhbmdlZCByZXF1ZXN0L3Jlc3BvbnNlIHN0cnVjdHVyZSBzaXplIGZyb20g NjQgb2N0ZXRzIHRvIDE2CiAqIGludHJvZHVjZWQgZHluYW1pYyBidWZmZXIgYWxsb2NhdGlvbiBp bnN0ZWFkIG9mCiAgIHN0YXRpYyBYRU5TTkRfTUFYX1BBR0VTX1BFUl9SRVFVRVNUCiAqIHJlLXdv cmtlZCBvcGVuIHJlcXVlc3QgdG8gYWxsb3cgZHluYW1pYyBidWZmZXIgYWxsb2NhdGlvbgogKiBy ZS13b3JrZWQgcmVhZC93cml0ZS92b2x1bWUgcmVxdWVzdHMsIHNvIHRoZXkgZG9uJ3QgcGFzcyBn cmVmczoKICAgYnVmZmVyIGZyb20gdGhlIG9wZW4gcmVxdWVzdCBpcyB1c2VkIGZvciB0aGVzZSBv cGVyYXRpb25zIHRvIHBhc3MgZGF0YQogKiBzcGVjaWZpZWQgdHlwZSBvZiB0aGUgdm9sdW1lIHZh bHVlIHRvIGJlIGEgc2lnbmVkIHZhbHVlIGluIHN0ZXBzCiAgIG9mIDAuMDAxIGRCbSwgd2hpbGUg MCBiZWluZyAwZEJtLgogKiBhZGRlZCBMaW51eCBpbmNsdWRlIGZpbGUgd2l0aCBzdHJ1Y3R1cmUg ZGVmaW5pdGlvbnMKCkNoYW5nZXMgc2luY2Ugdjg6CiAqIGNoYW5nZWQgZnJvbnRlbmQtaWQgdG8g ZnJvbnRlbmRfaWQKICogc2luZ2xlIHNvdW5kIGNhcmQgc3VwcG9ydCwgY29uZmlndXJlZCB3aXRo IGJ1bmNoIG9mCiAgIGRldmljZXMvc3RyZWFtcwogKiBjbGFyaWZ1Y2F0aW9uIG1hZGUgb24gc2Ft cGxlIHJhdGVzIGFuZCBmb3JtYXRzIGV4cHJlc3NlZCBhcwogICBkZWNpbWFscyB3L28gYW55IHBh cnRpY3VsYXIgb3JkZXJpbmcKICogcHV0IGRlc2NyaXB0aW9uIG9mIG1pZ3JhdGlvbi9kaXNjb25u ZWN0aW9uIHN0YXRlCiAqIHJlcGxhY2VkIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIHRvIF9fcGFj a2VkCiAqIGNoYW5nZWQgcGFkZGluZyBvZiByaW5nIHN0cnVjdHVyZXMgdG8gNjQgdG8gZml0IGNh Y2hlIGxpbmUKICogcmVtb3ZlZWQgI2lmZGVmIF9fS0VSTkVMCiAqIGV4cGxpY2l0bHkgc3RhdGVk IHdoaWNoIGluZGljZXMgaW4gWGVuU3RvcmUgY29uZmlndXJhdGlvbgogICBhcmUgY29udGlndW91 cwogKiBhZGRlZCBkZXNjcmlwdGlvbiB0byB3aGF0IGZyb250ZW5kJ3MgZGVmYXVsdHMgYXJlCiAq IG1hZGUgbmFtZXMgb2YgdmlydHVhbCBjYXJkL2RldmljZXMgb3B0aW9uYWwKICogcmVtb3ZlZCBQ Q01fRk9STUFUX1NQRUNJQUwKICogY2hhbmdlZCB2b2x1bWUgdW5pdHMgZnJvbSBkQm0gdG8gZEIK CkNoYW5nZXMgc2luY2Ugdjk6CiAqIHJlbW92ZWQgc25kaWZfbGludXguaAogKiBtb3ZlZCBhbGwg c3RydWN0dXJlcyBmcm9tIHNuZGlmX2xpbnV4LmggdG8gc25kaWYuaAogKiBzdHJ1Y3R1cmVzIHBh ZGRlZCB3aGVyZSBuZWVkZWQKICogZml4ZWQgSHogY29tbWVudAoKQ2hhbmdlcyBzaW5jZSB2MTA6 CiAqIGZpeGVkIHRhYnMgdG8gNCBzcGFjZXMgdG8gY29tcGx5IHdpdGggWGVuIGNvZGluZyBzdHls ZQogKiBhZGRlZCBwbGFjZWhvbGRlcnMgdG8gZW1wdHkgc3RydWN0dXJlcyAoQzg5IGNvbmNlcm4p CiAqIGFkZGVkIG1pc3NpbmcgaGVhZGVyIGluY2x1ZGVzCgpDaGFuZ2VzIHNpbmNlIHYxMToKICog YWRkZWQgWEVOU05EX1JTUF9OT1RTVVBQIGVycm9yIGNvZGUKICogY2hhbmdlZCBncmVmWzBdIHRv IGdyZWZbMV0gd2l0aCBjb21tZW50CiAqIG1vZGlmaWVkIGNvbW1lbnRzIG9uIGVtcHR5IHN0cnVj dHVyZXMKICogcmVtb3ZlZCAiX18iIGZyb20gbWVtYmVyIG5hbWVzCiAqIGZpeGVkIGluZGVudGF0 aW9uCiAqIGFkZGVkIHBhZGRpbmcgaW4gdW5pb24geGVuc25kX3Jlc3AKICogY2hhbmdlZCBfX1hF Tl9QVUJMSUNfSU9fWEVOU05EX0hfXyB0byBfX1hFTl9QVUJMSUNfSU9fU05ESUZfSF9fCgpDaGFu Z2VzIHNpbmNlIHYxMjoKICogY2hhbmdlZCBpbmRlbnRhdGlvbiBmb3IgZGVmaW5lcwogKiBtaXNz ZWQgIjsiIGFmdGVyIGdyZWZbMV0KICogZG9jdW1lbnRhdGlvbiBjaGFuZ2VzCiAqIGNoYW5nZWQg cmVxL3Jlc3Agc3RydWN0dXJlcwogKiBjaGFuZ2VkIHhlbnNuZF9wYWdlX2RpcmVjdG9yeSBzdHJ1 Y3R1cmUKICogcGFzcyBidWZmZXIgc2l6ZSBpbiBvcGVuIHJlcXVlc3QKCkNoYW5nZXMgc2luY2Ug djEzOgogKiBub3RlIG9uIHVzYWdlIG9mIGdyYW50IHJlZiAwCiAqIGFsbCBwYWdlIHNpemVzIGFy ZSBYRU5fUEFHRV9TSVpFCiAqIHBhZGRpbmcvcmVzZXJ2ZWQgY2xlYW51cC9maXhlcwogKiByZW1v dmVkIGVtcHR5IHN0cnVjdHVyZXMKCkNoYW5nZXMgc2luY2UgdjE0OgogKiB0dXJuIHBhZGRpbmcg aW50byByZXNlcnZlZAoKQ2hhbmdlcyBzaW5jZSB2MTU6CiAqIHByb3RvY29sIGRlc2NyaXB0aW9u IHJld29ya2VkCiAqIGFkZGVkIG9mZnNldCB0byBibG9jayBub3RhdGlvbnMKICogdXNlZCAtWEVO X0VYWCBmb3Igc3RhdHVzIHJlcG9ydGluZwogKiBhZGRlZCBwcm90b2NvbCB2ZXJzaW9uaW5nCiAq IHJlbW92ZWQgc3RyZWFtX2lkeCBmcm9tIHRoZSBwYWNrZXQgc3RydWN0dXJlCiAqIGNoYW5nZWQg eGVuc3RvcmUgcGF0aHMKCkNoYW5nZXMgc2luY2UgdjE2OgogKiB1cGRhdGVkIFhlblN0b3JlIHBh dGggcGF0dGVybgogKiByZW1vdmVkIHVudXNlZCBYZW5TdG9yZSBoZWxwZXIgc3RyaW5nIGNvbnN0 YW50cwogKiByZW5hbWVkIGdyZWZfZGlyZWN0b3J5X3N0YXJ0IHRvIGdyZWZfZGlyZWN0b3J5CiAq IGFkZGVkIG9mZnNldC9sZW5ndGggdG8gdm9sdW1lLCBtdXRlLCB1bm11dGUKICogYWRkZWQgbm90 ZSBvbiBhc3luYyB1c2UtY2FzZXMKICogc3RydWN0IHhlbnNuZF9yd19yZXEgaXMgbm93IHVzZWQg Zm9yIHJlYWQvd3JpdGUsCiAgIHZvbHVtZSBzZXQvZ2V0LCBtdXRlLCB1bm11dGUKLS0tCgpTaWdu ZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVu a29AZXBhbS5jb20+Ci0tLQogeGVuL2luY2x1ZGUvcHVibGljL2lvL3NuZGlmLmggfCA3NDkgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwg NzQ5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS9wdWJsaWMv aW8vc25kaWYuaAoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9zbmRpZi5oIGIv eGVuL2luY2x1ZGUvcHVibGljL2lvL3NuZGlmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi5jN2M5NjNlNDgyNTYKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vaW5jbHVk ZS9wdWJsaWMvaW8vc25kaWYuaApAQCAtMCwwICsxLDc0OSBAQAorLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorICogc25kaWYuaAorICoKKyAqIFVuaWZpZWQgc291bmQtZGV2aWNlIEkvTyBpbnRlcmZh Y2UgZm9yIFhlbiBndWVzdCBPU2VzLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50 ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9m IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT b2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNv cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v cgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0 byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAq IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoK KyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G IEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNI QUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIw MTMtMjAxNSBHbG9iYWxMb2dpYyBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBFUEFN IFN5c3RlbXMgSW5jLgorICoKKyAqIEF1dGhvcnM6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxv bGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4KKyAqICAgICAgICAgIE9sZWtzYW5kciBH cnl0c292IDxvbGVrc2FuZHJfZ3J5dHNvdkBlcGFtLmNvbT4KKyAqICAgICAgICAgIE9sZWtzYW5k ciBEbXl0cnlzaHluIDxvbGVrc2FuZHIuZG15dHJ5c2h5bkBnbG9iYWxsb2dpYy5jb20+CisgKiAg ICAgICAgICBJdXJpaSBLb25vdmFsZW5rbyA8aXVyaWkua29ub3ZhbGVua29AZ2xvYmFsbG9naWMu Y29tPgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0lPX1NORElGX0hfXworI2RlZmluZSBf X1hFTl9QVUJMSUNfSU9fU05ESUZfSF9fCisKKyNpbmNsdWRlICJyaW5nLmgiCisjaW5jbHVkZSAi Li4vZ3JhbnRfdGFibGUuaCIKKworLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAg ICAgICAgICAgICBGZWF0dXJlIGFuZCBQYXJhbWV0ZXIgTmVnb3RpYXRpb24KKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorICoKKyAqIEZyb250LT5iYWNrIG5vdGlmaWNhdGlvbnM6IHdoZW4gZW5xdWV1 aW5nIGEgbmV3IHJlcXVlc3QsIHNlbmRpbmcgYQorICogbm90aWZpY2F0aW9uIGNhbiBiZSBtYWRl IGNvbmRpdGlvbmFsIG9uIHhlbnNuZF9yZXEgKGkuZS4sIHRoZSBnZW5lcmljCisgKiBob2xkLW9m ZiBtZWNoYW5pc20gcHJvdmlkZWQgYnkgdGhlIHJpbmcgbWFjcm9zKS4gQmFja2VuZHMgbXVzdCBz ZXQKKyAqIHhlbnNuZF9yZXEgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNpbmcgUklOR19GSU5BTF9D SEVDS19GT1JfUkVRVUVTVFMoKSkuCisgKgorICogQmFjay0+ZnJvbnQgbm90aWZpY2F0aW9uczog d2hlbiBlbnF1ZXVpbmcgYSBuZXcgcmVzcG9uc2UsIHNlbmRpbmcgYQorICogbm90aWZpY2F0aW9u IGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHhlbnNuZF9yZXNwIChpLmUuLCB0aGUgZ2VuZXJp YworICogaG9sZC1vZmYgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3JvcykuIEZy b250ZW5kcyBtdXN0IHNldAorICogeGVuc25kX3Jlc3AgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNp bmcgUklOR19GSU5BTF9DSEVDS19GT1JfUkVTUE9OU0VTKCkpLgorICoKKyAqIFRoZSB0d28gaGFs dmVzIG9mIGEgcGFyYS12aXJ0dWFsIHNvdW5kIGNhcmQgZHJpdmVyIHV0aWxpemUgbm9kZXMgd2l0 aGluCisgKiBYZW5TdG9yZSB0byBjb21tdW5pY2F0ZSBjYXBhYmlsaXRpZXMgYW5kIHRvIG5lZ290 aWF0ZSBvcGVyYXRpbmcgcGFyYW1ldGVycy4KKyAqIFRoaXMgc2VjdGlvbiBlbnVtZXJhdGVzIHRo ZXNlIG5vZGVzIHdoaWNoIHJlc2lkZSBpbiB0aGUgcmVzcGVjdGl2ZSBmcm9udCBhbmQKKyAqIGJh Y2tlbmQgcG9ydGlvbnMgb2YgWGVuU3RvcmUsIGZvbGxvd2luZyB0aGUgWGVuQnVzIGNvbnZlbnRp b24uCisgKgorICogQWxsIGRhdGEgaW4gWGVuU3RvcmUgaXMgc3RvcmVkIGFzIHN0cmluZ3MuIE5v ZGVzIHNwZWNpZnlpbmcgbnVtZXJpYworICogdmFsdWVzIGFyZSBlbmNvZGVkIGluIGRlY2ltYWwu IEludGVnZXIgdmFsdWUgcmFuZ2VzIGxpc3RlZCBiZWxvdyBhcmUKKyAqIGV4cHJlc3NlZCBhcyBm aXhlZCBzaXplZCBpbnRlZ2VyIHR5cGVzIGNhcGFibGUgb2Ygc3RvcmluZyB0aGUgY29udmVyc2lv bgorICogb2YgYSBwcm9wZXJseSBmb3JtYXRlZCBub2RlIHN0cmluZywgd2l0aG91dCBsb3NzIG9m IGluZm9ybWF0aW9uLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAg ICAgICAgICAgICAgRXhhbXBsZSBjb25maWd1cmF0aW9uCisgKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisgKgorICogTm90ZTogZGVwZW5kaW5nIG9uIHRoZSB1c2UtY2FzZSBiYWNrZW5kIGNhbiBleHBv c2UgbW9yZSBzb3VuZCBjYXJkcyBhbmQKKyAqIFBDTSBkZXZpY2VzL3N0cmVhbXMgdGhhbiB0aGUg dW5kZXJseWluZyBIVyBwaHlzaWNhbGx5IGhhcyBieSBlbXBsb3lpbmcKKyAqIFNXIG1peGVycywg Y29uZmlndXJpbmcgdmlydHVhbCBzb3VuZCBzdHJlYW1zLCBjaGFubmVscyBldGMuCisgKgorICog VGhpcyBpcyBhbiBleGFtcGxlIG9mIGJhY2tlbmQgYW5kIGZyb250ZW5kIGNvbmZpZ3VyYXRpb246 CisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQmFja2VuZCAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIC9sb2NhbC9kb21haW4vMC9iYWNr ZW5kL3ZzbmQvMS8wL2Zyb250ZW5kLWlkID0gIjEiCisgKiAvbG9jYWwvZG9tYWluLzAvYmFja2Vu ZC92c25kLzEvMC9mcm9udGVuZCA9ICIvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMCIKKyAq IC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZzbmQvMS8wL3N0YXRlID0gIjQiCisgKiAvbG9jYWwv ZG9tYWluLzAvYmFja2VuZC92c25kLzEvMC92ZXJzaW9ucyA9ICIxLDIiCisgKgorICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnJvbnRlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICoKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL2JhY2tl bmQtaWQgPSAiMCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wL2JhY2tlbmQgPSAi L2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdnNuZC8xLzAiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2 aWNlL3ZzbmQvMC9zdGF0ZSA9ICI0IgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gQ2FyZCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC92ZXJzaW9uID0gIjEiCisgKgorICogL2xv Y2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvc2hvcnQtbmFtZSA9ICJDYXJkIHNob3J0IG5hbWUi CisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9sb25nLW5hbWUgPSAiQ2FyZCBsb25n IG5hbWUiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9zYW1wbGUtcmF0ZXMgPSAi ODAwMCwzMjAwMCw0NDEwMCw0ODAwMCw5NjAwMCIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2Uv dnNuZC8wL3NhbXBsZS1mb3JtYXRzID0gInM4LHU4LHMxNl9sZSxzMTZfYmUiCisgKiAvbG9jYWwv ZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC9idWZmZXItc2l6ZSA9ICIyNjIxNDQiCisgKgorICotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBDTSBkZXZpY2UgMCAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAv bmFtZSA9ICJHZW5lcmFsIGFuYWxvZyIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8w LzAvY2hhbm5lbHMtbWF4ID0gIjUiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSBTdHJlYW0gMCwgcGxheWJhY2sgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMC90eXBlID0gInAiCisgKiAvbG9jYWwv ZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzAvc2FtcGxlLWZvcm1hdHMgPSAiczgsdTgiCisgKiAv bG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzAvdW5pcXVlLWlkID0gIjAiCisgKgorICog L2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC8wL3JpbmctcmVmID0gIjM4NiIKKyAqIC9s b2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAvMC9ldmVudC1jaGFubmVsID0gIjE1IgorICoK KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSAxLCBjYXB0dXJlIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3Zz bmQvMC8wLzEvdHlwZSA9ICJjIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC8x L2NoYW5uZWxzLW1heCA9ICIyIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMC8x L3VuaXF1ZS1pZCA9ICIxIgorICoKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzAv MS9yaW5nLXJlZiA9ICIzODQiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8wLzEv ZXZlbnQtY2hhbm5lbCA9ICIxMyIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gUENNIGRldmljZSAxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICog L2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMS9uYW1lID0gIkhETUktMCIKKyAqIC9sb2Nh bC9kb21haW4vMS9kZXZpY2UvdnNuZC8wLzEvc2FtcGxlLXJhdGVzID0gIjgwMDAsMzIwMDAsNDQx MDAiCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3RyZWFtIDAsIGNhcHR1 cmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIC9sb2NhbC9kb21haW4vMS9k ZXZpY2UvdnNuZC8wLzEvMC90eXBlID0gImMiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3Zz bmQvMC8xLzAvdW5pcXVlLWlkID0gIjIiCisgKgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92 c25kLzAvMS8wL3JpbmctcmVmID0gIjM4NyIKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNu ZC8wLzEvMC9ldmVudC1jaGFubmVsID0gIjE1MSIKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gUENNIGRldmljZSAyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAvMi9uYW1lID0gIlNQRElGIgor ICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3RyZWFtIDAsIHBsYXliYWNrIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNl L3ZzbmQvMC8yLzAvdHlwZSA9ICJwIgorICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92c25kLzAv Mi8wL3VuaXF1ZS1pZCA9ICIzIgorICoKKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdnNuZC8w LzIvMC9yaW5nLXJlZiA9ICIzODkiCisgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZzbmQvMC8y LzAvZXZlbnQtY2hhbm5lbCA9ICIxNTIiCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFja2VuZCBYZW5CdXMgTm9kZXMKKyAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3Rv Y29sIHZlcnNpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogdmVyc2lv bnMKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxzdHJpbmc+CisgKgorICogICAgICBMaXN0IG9m IFhFTlNORF9MSVNUX1NFUEFSQVRPUiBzZXBhcmF0ZWQgcHJvdG9jb2wgdmVyc2lvbnMgc3VwcG9y dGVkCisgKiAgICAgIGJ5IHRoZSBiYWNrZW5kLiBGb3IgZXhhbXBsZSAiMSwyLDMiLgorICoKKyAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250 ZW5kIFhlbkJ1cyBOb2RlcworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQWRkcmVzc2luZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqCisgKiBkb20taWQKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50 PgorICoKKyAqICAgICAgRG9tYWluIGlkZW50aWZpZXIuCisgKgorICogZHJ2LWlkeAorICogICAg ICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ+CisgKgorICogICAgICBaZXJvIGJhc2VkIGNvbnRpZ291 cyBpbmRleCBvZiB0aGUgZHJpdmVyIGluc3RhbmNlLgorICoKKyAqIGRldi1pZHgKKyAqICAgICAg VmFsdWVzOiAgICAgICAgIDx1aW50OF90PgorICoKKyAqICAgICAgWmVybyBiYXNlZCBjb250aWdv dXMgaW5kZXggb2YgdGhlIGRldmljZS4KKyAqCisgKiBzdHJlYW0taWR4CisgKiAgICAgIFZhbHVl czogICAgICAgICA8dWludDhfdD4KKyAqCisgKiAgICAgIFplcm8gYmFzZWQgY29udGlnb3VzIGlu ZGV4IG9mIHRoZSBzdHJlYW0gb2YgdGhlIGRldmljZS4KKyAqCisgKiBUaGUgZm9sbG93aW5nIHBh dHRlcm4gaXMgdXNlZCBmb3IgYWRkcmVzc2luZzoKKyAqICAgICAgL2xvY2FsL2RvbWFpbi88ZG9t LWlkPi9kZXZpY2UvdnNuZC88ZHJ2LWlkeD4vPGRldi1pZHg+LzxzdHJlYW0taWR4Pi8uLi4KKyAq CisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3RvY29sIHZlcnNpb24gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogdmVyc2lvbgorICogICAgICBWYWx1ZXM6 ICAgICAgICAgPHN0cmluZz4KKyAqCisgKiAgICAgIFByb3RvY29sIHZlcnNpb24sIGNob3NlbiBh bW9uZyB0aGUgb25lcyBzdXBwb3J0ZWQgYnkgdGhlIGJhY2tlbmQuCisgKgorICotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBDTSBzZXR0aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIEV2ZXJ5IHZpcnR1YWxpemVkIHNvdW5kIGZyb250ZW5kIGhhcyBh IHNldCBvZiBQQ00gZGV2aWNlcyBhbmQgc3RyZWFtcywgZWFjaAorICogY291bGQgYmUgaW5kaXZp ZHVhbGx5IGNvbmZpZ3VyZWQuIFBhcnQgb2YgdGhlIFBDTSBjb25maWd1cmF0aW9uIGNhbiBiZQor ICogZGVmaW5lZCBhdCBoaWdoZXIgbGV2ZWwgb2YgdGhlIGhpZXJhcmNoeSBhbmQgYmUgZnVsbHkg b3IgcGFydGlhbGx5IHJlLXVzZWQKKyAqIGJ5IHRoZSB1bmRlcmx5aW5nIGxheWVycy4gVGhlc2Ug Y29uZmlndXJhdGlvbiB2YWx1ZXMgYXJlOgorICogIG8gbnVtYmVyIG9mIGNoYW5uZWxzIChtaW4v bWF4KQorICogIG8gc3VwcG9ydGVkIHNhbXBsZSByYXRlcworICogIG8gc3VwcG9ydGVkIHNhbXBs ZSBmb3JtYXRzLgorICogRS5nLiBvbmUgY2FuIGRlZmluZSB0aGVzZSB2YWx1ZXMgZm9yIHRoZSB3 aG9sZSBjYXJkLCBkZXZpY2Ugb3Igc3RyZWFtLgorICogRXZlcnkgdW5kZXJseWluZyBsYXllciBp biB0dXJuIGNhbiByZS1kZWZpbmUgc29tZSBvciBhbGwgb2YgdGhlbSB0byBiZXR0ZXIKKyAqIGZp dCBpdHMgbmVlZHMuIEZvciBleGFtcGxlLCBjYXJkIG1heSBkZWZpbmUgbnVtYmVyIG9mIGNoYW5u ZWxzIHRvIGJlCisgKiBpbiBbMTsgOF0gcmFuZ2UsIGFuZCBzb21lIHBhcnRpY3VsYXIgc3RyZWFt IG1heSBiZSBsaW1pdGVkIHRvIFsxOyAyXSBvbmx5LgorICogVGhlIHJ1bGUgaXMgdGhhdCB0aGUg dW5kZXJseWluZyBsYXllciBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoZSB1cHBlciBsYXllcgorICog cmFuZ2UuCisgKgorICogY2hhbm5lbHMtbWluCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWlu dDhfdD4KKyAqCisgKiAgICAgIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBjaGFubmVscyB0aGF0IGlz IHN1cHBvcnRlZCwgWzE7IGNoYW5uZWxzLW1heF0uCisgKiAgICAgIE9wdGlvbmFsLCBpZiBub3Qg c2V0IG9yIG9taXR0ZWQgYSB2YWx1ZSBvZiAxIGlzIHVzZWQuCisgKgorICogY2hhbm5lbHMtbWF4 CisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDhfdD4KKyAqCisgKiAgICAgIFRoZSBtYXhp bXVtIGFtb3VudCBvZiBjaGFubmVscyB0aGF0IGlzIHN1cHBvcnRlZC4KKyAqICAgICAgTXVzdCBi ZSBhdCBsZWFzdCA8Y2hhbm5lbHMtbWluPi4KKyAqCisgKiBzYW1wbGUtcmF0ZXMKKyAqICAgICAg VmFsdWVzOiAgICAgICAgIDxsaXN0IG9mIHVpbnQzMl90PgorICoKKyAqICAgICAgTGlzdCBvZiBz dXBwb3J0ZWQgc2FtcGxlIHJhdGVzIHNlcGFyYXRlZCBieSBYRU5TTkRfTElTVF9TRVBBUkFUT1Iu CisgKiAgICAgIFNhbXBsZSByYXRlcyBhcmUgZXhwcmVzc2VkIGFzIGEgbGlzdCBvZiBkZWNpbWFs IHZhbHVlcyB3L28gYW55CisgKiAgICAgIG9yZGVyaW5nIHJlcXVpcmVtZW50LgorICoKKyAqIHNh bXBsZS1mb3JtYXRzCisgKiAgICAgIFZhbHVlczogICAgICAgICA8bGlzdCBvZiBYRU5TTkRfUENN X0ZPUk1BVF9YWFhfU1RSPgorICoKKyAqICAgICAgTGlzdCBvZiBzdXBwb3J0ZWQgc2FtcGxlIGZv cm1hdHMgc2VwYXJhdGVkIGJ5IFhFTlNORF9MSVNUX1NFUEFSQVRPUi4KKyAqICAgICAgSXRlbXMg bXVzdCBub3QgZXhjZWVkIFhFTlNORF9TQU1QTEVfRk9STUFUX01BWF9MRU4gbGVuZ3RoLgorICoK KyAqIGJ1ZmZlci1zaXplCisgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+CisgKgor ICogICAgICBUaGUgbWF4aW11bSBzaXplIGluIG9jdGV0cyBvZiB0aGUgYnVmZmVyIHRvIGFsbG9j YXRlIHBlciBzdHJlYW0uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBWaXJ0dWFsIHNv dW5kIGNhcmQgc2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHNob3J0LW5h bWUKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxjaGFyWzMyXT4KKyAqCisgKiAgICAgIFNob3J0 IG5hbWUgb2YgdGhlIHZpcnR1YWwgc291bmQgY2FyZC4gT3B0aW9uYWwuCisgKgorICogbG9uZy1u YW1lCisgKiAgICAgIFZhbHVlczogICAgICAgICA8Y2hhcls4MF0+CisgKgorICogICAgICBMb25n IG5hbWUgb2YgdGhlIHZpcnR1YWwgc291bmQgY2FyZC4gT3B0aW9uYWwuCisgKgorICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBEZXZpY2Ugc2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqIG5hbWUKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxjaGFyWzgw XT4KKyAqCisgKiAgICAgIE5hbWUgb2YgdGhlIHNvdW5kIGRldmljZSB3aXRoaW4gdGhlIHZpcnR1 YWwgc291bmQgY2FyZC4gT3B0aW9uYWwuCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSBTdHJlYW0gc2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoK KyAqIHR5cGUKKyAqICAgICAgVmFsdWVzOiAgICAgICAgICJwIiwgImMiCisgKgorICogICAgICBT dHJlYW0gdHlwZTogInAiIC0gcGxheWJhY2sgc3RyZWFtLCAiYyIgLSBjYXB0dXJlIHN0cmVhbQor ICoKKyAqICAgICAgSWYgYm90aCBjYXB0dXJlIGFuZCBwbGF5YmFjayBhcmUgbmVlZGVkIHRoZW4g dHdvIHN0cmVhbXMgbmVlZCB0byBiZQorICogICAgICBkZWZpbmVkIHVuZGVyIHRoZSBzYW1lIGRl dmljZS4KKyAqCisgKiB1bmlxdWUtaWQKKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJf dD4KKyAqCisgKiAgICAgIEFmdGVyIHN0cmVhbSBpbml0aWFsaXphdGlvbiBpdCBpcyBhc3NpZ25l ZCBhIHVuaXF1ZSBJRCAod2l0aGluIHRoZSBmcm9udAorICogICAgICBkcml2ZXIpLCBzbyBldmVy eSBzdHJlYW0gb2YgdGhlIGZyb250ZW5kIGNhbiBiZSBpZGVudGlmaWVkIGJ5IHRoZQorICogICAg ICBiYWNrZW5kIGJ5IHRoaXMgSUQuIFRoaXMgaXMgbm90IGVxdWFsIHRvIHN0cmVhbS1pZHggYXMg dGhlIGxhdGVyIGlzCisgKiAgICAgIHplcm8gYmFzZWQgd2l0aGluIHRoZSBkZXZpY2UsIGJ1dCB0 aGlzIGluZGV4IGlzIGNvbnRpZ291cyB3aXRoaW4gdGhlCisgKiAgICAgIGRyaXZlci4KKyAqCisg Ki0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0cmVhbSBSZXF1ZXN0IFRyYW5zcG9ydCBQYXJhbWV0ZXJz IC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogZXZlbnQtY2hhbm5lbAorICogICAgICBWYWx1 ZXM6ICAgICAgICAgPHVpbnQzMl90PgorICoKKyAqICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhl IFhlbiBldmVudCBjaGFubmVsIHVzZWQgdG8gc2lnbmFsIGFjdGl2aXR5CisgKiAgICAgIGluIHRo ZSByaW5nIGJ1ZmZlci4KKyAqCisgKiByaW5nLXJlZgorICogICAgICBWYWx1ZXM6ICAgICAgICAg PHVpbnQzMl90PgorICoKKyAqICAgICAgVGhlIFhlbiBncmFudCByZWZlcmVuY2UgZ3JhbnRpbmcg cGVybWlzc2lvbiBmb3IgdGhlIGJhY2tlbmQgdG8gbWFwCisgKiAgICAgIGEgc29sZSBwYWdlIGlu IGEgc2luZ2xlIHBhZ2Ugc2l6ZWQgcmluZyBidWZmZXIuCisgKgorICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBVEUgRElBR1JBTVMKKyAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBUb29sIHN0YWNrIGNyZWF0ZXMgZnJvbnQgYW5k IGJhY2sgc3RhdGUgbm9kZXMgd2l0aCBpbml0aWFsIHN0YXRlCisgKiBYZW5idXNTdGF0ZUluaXRp YWxpc2luZy4KKyAqIFRvb2wgc3RhY2sgY3JlYXRlcyBhbmQgc2V0cyB1cCBmcm9udGVuZCBzb3Vu ZCBjb25maWd1cmF0aW9uIG5vZGVzIHBlciBkb21haW4uCisgKgorICogRnJvbnQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJhY2sKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PSAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBYZW5i dXNTdGF0ZUluaXRpYWxpc2luZyAgICAgICAgICAgICAgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcK KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBRdWVyeSBiYWNrZW5k IGRldmljZSBpZGVudGlmaWNhdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGEuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG8gT3BlbiBhbmQgdmFsaWRhdGUgYmFja2VuZCBkZXZpY2UuCisgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWCisgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVJbml0V2FpdAorICoKKyAqIG8g UXVlcnkgZnJvbnRlbmQgY29uZmlndXJhdGlvbgorICogbyBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6 ZQorICogICBldmVudCBjaGFubmVscyBwZXIgY29uZmlndXJlZAorICogICBwbGF5YmFjay9jYXB0 dXJlIHN0cmVhbS4KKyAqIG8gUHVibGlzaCB0cmFuc3BvcnQgcGFyYW1ldGVycworICogICB0aGF0 IHdpbGwgYmUgaW4gZWZmZWN0IGR1cmluZworICogICB0aGlzIGNvbm5lY3Rpb24uCisgKiAgICAg ICAgICAgICAgfAorICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICBWCisgKiBYZW5i dXNTdGF0ZUluaXRpYWxpc2VkCisgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvIFF1ZXJ5IGZyb250ZW5kIHRyYW5zcG9ydCBwYXJhbWV0ZXJzLgorICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIENvbm5lY3QgdG8gdGhlIGV2ZW50IGNo YW5uZWxzLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhl bmJ1c1N0YXRlQ29ubmVjdGVkCisgKgorICogIG8gQ3JlYXRlIGFuZCBpbml0aWFsaXplIE9TCisg KiAgdmlydHVhbCBzb3VuZCBkZXZpY2UgaW5zdGFuY2VzCisgKiAgYXMgcGVyIGNvbmZpZ3VyYXRp b24uCisgKiAgICAgICAgICAgICAgfAorICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAg ICBWCisgKiBYZW5idXNTdGF0ZUNvbm5lY3RlZAorICoKKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZVVua25vd24KKyAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUNsb3NlZAorICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ2xvc2luZworICogbyBSZW1vdmUgdmly dHVhbCBzb3VuZCBkZXZpY2UKKyAqIG8gUmVtb3ZlIGV2ZW50IGNoYW5uZWxzCisgKiAgICAgICAg ICAgICAgfAorICogICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICBWCisgKiBYZW5idXNT dGF0ZUNsb3NlZAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQQ00gRk9STUFUUworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAq IFhFTlNORF9QQ01fRk9STUFUXzxmb3JtYXQ+W188ZW5kaWFuPl0KKyAqCisgKiBmb3JtYXQ6IDxT L1UvRj48Yml0cz4gb3IgPG5hbWU+CisgKiAgICAgUyAtIHNpZ25lZCwgVSAtIHVuc2lnbmVkLCBG IC0gZmxvYXQKKyAqICAgICBiaXRzIC0gOCwgMTYsIDI0LCAzMgorICogICAgIG5hbWUgLSBNVV9M QVcsIEdTTSwgZXRjLgorICoKKyAqIGVuZGlhbjogPExFL0JFPiwgbWF5IGJlIGFic2VudAorICog ICAgIExFIC0gTGl0dGxlIGVuZGlhbiwgQkUgLSBCaWcgZW5kaWFuCisgKi8KKyNkZWZpbmUgWEVO U05EX1BDTV9GT1JNQVRfUzggICAgICAgICAgICAwCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFU X1U4ICAgICAgICAgICAgMQorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMTZfTEUgICAgICAg IDIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzE2X0JFICAgICAgICAzCisjZGVmaW5lIFhF TlNORF9QQ01fRk9STUFUX1UxNl9MRSAgICAgICAgNAorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1B VF9VMTZfQkUgICAgICAgIDUKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzI0X0xFICAgICAg ICA2CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MyNF9CRSAgICAgICAgNworI2RlZmluZSBY RU5TTkRfUENNX0ZPUk1BVF9VMjRfTEUgICAgICAgIDgKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN QVRfVTI0X0JFICAgICAgICA5CisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MzMl9MRSAgICAg ICAgMTAKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfUzMyX0JFICAgICAgICAxMQorI2RlZmlu ZSBYRU5TTkRfUENNX0ZPUk1BVF9VMzJfTEUgICAgICAgIDEyCisjZGVmaW5lIFhFTlNORF9QQ01f Rk9STUFUX1UzMl9CRSAgICAgICAgMTMKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjMyX0xF ICAgICAgICAxNCAvKiA0LWJ5dGUgZmxvYXQsIElFRUUtNzU0IDMyLWJpdCwgKi8KKyNkZWZpbmUg WEVOU05EX1BDTV9GT1JNQVRfRjMyX0JFICAgICAgICAxNSAvKiByYW5nZSAtMS4wIHRvIDEuMCAg ICAgICAgICAgICAgKi8KKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjY0X0xFICAgICAgICAx NiAvKiA4LWJ5dGUgZmxvYXQsIElFRUUtNzU0IDY0LWJpdCwgKi8KKyNkZWZpbmUgWEVOU05EX1BD TV9GT1JNQVRfRjY0X0JFICAgICAgICAxNyAvKiByYW5nZSAtMS4wIHRvIDEuMCAgICAgICAgICAg ICAgKi8KKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSUVDOTU4X1NVQkZSQU1FX0xFIDE4Cisj ZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9CRSAxOQorI2RlZmluZSBY RU5TTkRfUENNX0ZPUk1BVF9NVV9MQVcgICAgICAgIDIwCisjZGVmaW5lIFhFTlNORF9QQ01fRk9S TUFUX0FfTEFXICAgICAgICAgMjEKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSU1BX0FEUENN ICAgICAyMgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9NUEVHICAgICAgICAgIDIzCisjZGVm aW5lIFhFTlNORF9QQ01fRk9STUFUX0dTTSAgICAgICAgICAgMjQKKworLyoKKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVFVRVNUIENPREVT CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyNkZWZpbmUgWEVOU05EX09QX09QRU4gICAg ICAgICAgICAgICAgICAwCisjZGVmaW5lIFhFTlNORF9PUF9DTE9TRSAgICAgICAgICAgICAgICAg MQorI2RlZmluZSBYRU5TTkRfT1BfUkVBRCAgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgWEVO U05EX09QX1dSSVRFICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIFhFTlNORF9PUF9TRVRfVk9M VU1FICAgICAgICAgICAgNAorI2RlZmluZSBYRU5TTkRfT1BfR0VUX1ZPTFVNRSAgICAgICAgICAg IDUKKyNkZWZpbmUgWEVOU05EX09QX01VVEUgICAgICAgICAgICAgICAgICA2CisjZGVmaW5lIFhF TlNORF9PUF9VTk1VVEUgICAgICAgICAgICAgICAgNworCisvKgorICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorICogICAgICAgICAgICAgICBYRU5TVE9SRSBGSUVMRCBBTkQgUEFUSCBOQU1FIFNUUklO R1MsIEhFTFBFUlMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworI2RlZmluZSBYRU5TTkRf RFJJVkVSX05BTUUgICAgICAgICAgICAgICJ2c25kIgorCisjZGVmaW5lIFhFTlNORF9MSVNUX1NF UEFSQVRPUiAgICAgICAgICAgIiwiCisvKiBGaWVsZCBuYW1lcyAqLworI2RlZmluZSBYRU5TTkRf RklFTERfVkNBUkRfU0hPUlRfTkFNRSAgICJzaG9ydC1uYW1lIgorI2RlZmluZSBYRU5TTkRfRklF TERfVkNBUkRfTE9OR19OQU1FICAgICJsb25nLW5hbWUiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9S SU5HX1JFRiAgICAgICAgICAgInJpbmctcmVmIgorI2RlZmluZSBYRU5TTkRfRklFTERfRVZUX0NI TkwgICAgICAgICAgICJldmVudC1jaGFubmVsIgorI2RlZmluZSBYRU5TTkRfRklFTERfREVWSUNF X05BTUUgICAgICAgICJuYW1lIgorI2RlZmluZSBYRU5TTkRfRklFTERfVFlQRSAgICAgICAgICAg ICAgICJ0eXBlIgorI2RlZmluZSBYRU5TTkRfRklFTERfU1RSRUFNX1VOSVFVRV9JRCAgICJ1bmlx dWUtaWQiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9DSEFOTkVMU19NSU4gICAgICAgImNoYW5uZWxz LW1pbiIKKyNkZWZpbmUgWEVOU05EX0ZJRUxEX0NIQU5ORUxTX01BWCAgICAgICAiY2hhbm5lbHMt bWF4IgorI2RlZmluZSBYRU5TTkRfRklFTERfU0FNUExFX1JBVEVTICAgICAgICJzYW1wbGUtcmF0 ZXMiCisjZGVmaW5lIFhFTlNORF9GSUVMRF9TQU1QTEVfRk9STUFUUyAgICAgInNhbXBsZS1mb3Jt YXRzIgorI2RlZmluZSBYRU5TTkRfRklFTERfQlVGRkVSX1NJWkUgICAgICAgICJidWZmZXItc2l6 ZSIKKworLyogU3RyZWFtIHR5cGUgZmllbGQgdmFsdWVzLiAqLworI2RlZmluZSBYRU5TTkRfU1RS RUFNX1RZUEVfUExBWUJBQ0sgICAgICJwIgorI2RlZmluZSBYRU5TTkRfU1RSRUFNX1RZUEVfQ0FQ VFVSRSAgICAgICJjIgorLyogU2FtcGxlIHJhdGUgbWF4IHN0cmluZyBsZW5ndGggKi8KKyNkZWZp bmUgWEVOU05EX1NBTVBMRV9SQVRFX01BWF9MRU4gICAgICAxMQorLyogU2FtcGxlIGZvcm1hdCBm aWVsZCB2YWx1ZXMgKi8KKyNkZWZpbmUgWEVOU05EX1NBTVBMRV9GT1JNQVRfTUFYX0xFTiAgICAy NAorCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1M4X1NUUiAgICAgICAgInM4IgorI2RlZmlu ZSBYRU5TTkRfUENNX0ZPUk1BVF9VOF9TVFIgICAgICAgICJ1OCIKKyNkZWZpbmUgWEVOU05EX1BD TV9GT1JNQVRfUzE2X0xFX1NUUiAgICAiczE2X2xlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1B VF9TMTZfQkVfU1RSICAgICJzMTZfYmUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UxNl9M RV9TVFIgICAgInUxNl9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTE2X0JFX1NUUiAg ICAidTE2X2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9TMjRfTEVfU1RSICAgICJzMjRf bGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1MyNF9CRV9TVFIgICAgInMyNF9iZSIKKyNk ZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfVTI0X0xFX1NUUiAgICAidTI0X2xlIgorI2RlZmluZSBY RU5TTkRfUENNX0ZPUk1BVF9VMjRfQkVfU1RSICAgICJ1MjRfYmUiCisjZGVmaW5lIFhFTlNORF9Q Q01fRk9STUFUX1MzMl9MRV9TVFIgICAgInMzMl9sZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JN QVRfUzMyX0JFX1NUUiAgICAiczMyX2JlIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9VMzJf TEVfU1RSICAgICJ1MzJfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX1UzMl9CRV9TVFIg ICAgInUzMl9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfRjMyX0xFX1NUUiAgICAiZmxv YXRfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0YzMl9CRV9TVFIgICAgImZsb2F0X2Jl IgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GNjRfTEVfU1RSICAgICJmbG9hdDY0X2xlIgor I2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9GNjRfQkVfU1RSICAgICJmbG9hdDY0X2JlIgorI2Rl ZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9JRUM5NThfU1VCRlJBTUVfTEVfU1RSICJpZWM5NThfc3Vi ZnJhbWVfbGUiCisjZGVmaW5lIFhFTlNORF9QQ01fRk9STUFUX0lFQzk1OF9TVUJGUkFNRV9CRV9T VFIgImllYzk1OF9zdWJmcmFtZV9iZSIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfTVVfTEFX X1NUUiAgICAibXVfbGF3IgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9BX0xBV19TVFIgICAg ICJhX2xhdyIKKyNkZWZpbmUgWEVOU05EX1BDTV9GT1JNQVRfSU1BX0FEUENNX1NUUiAiaW1hX2Fk cGNtIgorI2RlZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9NUEVHX1NUUiAgICAgICJtcGVnIgorI2Rl ZmluZSBYRU5TTkRfUENNX0ZPUk1BVF9HU01fU1RSICAgICAgICJnc20iCisKKworLyoKKyAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFUVVMgUkVU VVJOIENPREVTCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogU3RhdHVzIHJldHVybiBj b2RlIGlzIHplcm8gb24gc3VjY2VzcyBhbmQgLVhFTl9FWFggb24gZmFpbHVyZS4KKyAqCisgKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFzc3Vt cHRpb25zCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBvIHVzYWdlIG9mIGdyYW50IHJlZmVy ZW5jZSAwIGFzIGludmFsaWQgZ3JhbnQgcmVmZXJlbmNlOgorICogICBncmFudCByZWZlcmVuY2Ug MCBpcyB2YWxpZCwgYnV0IG5ldmVyIGV4cG9zZWQgdG8gYSBQViBkcml2ZXIsCisgKiAgIGJlY2F1 c2Ugb2YgdGhlIGZhY3QgaXQgaXMgYWxyZWFkeSBpbiB1c2UvcmVzZXJ2ZWQgYnkgdGhlIFBWIGNv bnNvbGUuCisgKiBvIGFsbCByZWZlcmVuY2VzIGluIHRoaXMgZG9jdW1lbnQgdG8gcGFnZSBzaXpl cyBtdXN0IGJlIHRyZWF0ZWQKKyAqICAgYXMgcGFnZXMgb2Ygc2l6ZSBYRU5fUEFHRV9TSVpFIHVu bGVzcyBvdGhlcndpc2Ugbm90ZWQuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAg ICAgRGVzY3JpcHRpb24gb2YgdGhlIHByb3RvY29sIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tl bmQgZHJpdmVyCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogVGhlIHR3byBoYWx2ZXMg b2YgYSBQYXJhLXZpcnR1YWwgc291bmQgZHJpdmVyIGNvbW11bmljYXRlIHdpdGgKKyAqIGVhY2gg b3RoZXIgdXNpbmcgc2hhcmVkIHBhZ2VzIGFuZCBldmVudCBjaGFubmVscy4KKyAqIFNoYXJlZCBw YWdlIGNvbnRhaW5zIGEgcmluZyB3aXRoIHJlcXVlc3QvcmVzcG9uc2UgcGFja2V0cy4KKyAqCisg KiBQYWNrZXRzLCB1c2VkIGZvciBpbnB1dC9vdXRwdXQgb3BlcmF0aW9ucywgZS5nLiByZWFkL3dy aXRlLCBzZXQvZ2V0IHZvbHVtZSwKKyAqIGV0Yy4sIHByb3ZpZGUgb2Zmc2V0L2xlbmd0aCBmaWVs ZHMgaW4gb3JkZXIgdG8gYWxsb3cgYXN5bmNocm9ub3VzIHByb3RvY29sCisgKiBvcGVyYXRpb24g d2l0aCBidWZmZXIgc3BhY2Ugc2hhcmluZzogcGFydCBvZiB0aGUgYnVmZmVyIGFsbG9jYXRlZCBh dAorICogWEVOU05EX09QX09QRU4gY2FuIGJlIHVzZWQgZm9yIGF1ZGlvIHNhbXBsZXMgYW5kIHBh cnQsIGZvciBleGFtcGxlLAorICogZm9yIHZvbHVtZSBjb250cm9sLgorICoKKyAqIEFsbCByZXNl cnZlZCBmaWVsZHMgaW4gdGhlIHN0cnVjdHVyZXMgYmVsb3cgbXVzdCBiZSAwLgorICoKKyAqLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXF1ZXN0cyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBBbGwgcmVxdWVzdCBwYWNrZXRzIGhhdmUgdGhlIHNh bWUgbGVuZ3RoICgzMiBvY3RldHMpCisgKiBBbGwgcmVxdWVzdCBwYWNrZXRzIGhhdmUgY29tbW9u IGhlYWRlcjoKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAy ICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAg ICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgfCAgICByZXNlcnZl ZCAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKworICogICBpZCAtIHVpbnQxNl90LCBwcml2YXRlIGd1ZXN0IHZhbHVlLCBlY2hvZWQgaW4g cmVzcG9uc2UKKyAqICAgb3BlcmF0aW9uIC0gdWludDhfdCwgb3BlcmF0aW9uIGNvZGUsIFhFTlNO RF9PUF8/Pz8KKyAqCisgKiBGb3IgYWxsIHBhY2tldHMgd2hpY2ggdXNlIG9mZnNldCBhbmQgbGVu Z3RoOgorICogICBvZmZzZXQgLSB1aW50MzJfdCwgcmVhZCBvciB3cml0ZSBkYXRhIG9mZnNldCB3 aXRoaW4gdGhlIHNoYXJlZCBidWZmZXIsCisgKiAgICAgcGFzc2VkIHdpdGggWEVOU05EX09QX09Q RU4gcmVxdWVzdCwgb2N0ZXRzLAorICogICAgIFswOyBYRU5TTkRfT1BfT1BFTi5idWZmZXJfc3og LSAxXS4KKyAqICAgbGVuZ3RoIC0gdWludDMyX3QsIHJlYWQgb3Igd3JpdGUgZGF0YSBsZW5ndGgs IG9jdGV0cworICoKKyAqIFJlcXVlc3Qgb3BlbiAtIG9wZW4gYSBQQ00gc3RyZWFtIGZvciBwbGF5 YmFjayBvciBjYXB0dXJlOgorICoKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAg ICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t KworICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgWEVOU05EX09QX09QRU4g fCAgICByZXNlcnZlZCAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgK KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNtX3Jh dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAq IHwgIHBjbV9mb3JtYXQgICAgfCAgcGNtX2NoYW5uZWxzICB8ICAgICAgICAgICAgIHJlc2VydmVk ICAgICAgICAgICAgfCAxNgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBidWZmZXJfc3ogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZfZGlyZWN0 b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0CisgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAyOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDMyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBwY21f cmF0ZSAtIHVpbnQzMl90LCBzdHJlYW0gZGF0YSByYXRlLCBIegorICogcGNtX2Zvcm1hdCAtIHVp bnQ4X3QsIFhFTlNORF9QQ01fRk9STUFUX1hYWCB2YWx1ZQorICogcGNtX2NoYW5uZWxzIC0gdWlu dDhfdCwgbnVtYmVyIG9mIGNoYW5uZWxzIG9mIHRoaXMgc3RyZWFtLAorICogICBbY2hhbm5lbHMt bWluOyBjaGFubmVscy1tYXhdCisgKiBidWZmZXJfc3ogLSB1aW50MzJfdCwgYnVmZmVyIHNpemUg dG8gYmUgYWxsb2NhdGVkLCBvY3RldHMKKyAqIGdyZWZfZGlyZWN0b3J5IC0gZ3JhbnRfcmVmX3Qs IGEgcmVmZXJlbmNlIHRvIHRoZSBmaXJzdCBzaGFyZWQgcGFnZQorICogICBkZXNjcmliaW5nIHNo YXJlZCBidWZmZXIgcmVmZXJlbmNlcy4gQXQgbGVhc3Qgb25lIHBhZ2UgZXhpc3RzLiBJZiBzaGFy ZWQKKyAqICAgYnVmZmVyIHNpemUgIChidWZmZXJfc3opIGV4Y2VlZHMgd2hhdCBjYW4gYmUgYWRk cmVzc2VkIGJ5IHRoaXMgc2luZ2xlIHBhZ2UsCisgKiAgIHRoZW4gcmVmZXJlbmNlIHRvIHRoZSBu ZXh0IHBhZ2UgbXVzdCBiZSBzdXBwbGllZCAoc2VlIGdyZWZfZGlyX25leHRfcGFnZQorICogICBi ZWxvdykKKyAqLworCitzdHJ1Y3QgeGVuc25kX29wZW5fcmVxIHsKKyAgICB1aW50MzJfdCBwY21f cmF0ZTsKKyAgICB1aW50OF90IHBjbV9mb3JtYXQ7CisgICAgdWludDhfdCBwY21fY2hhbm5lbHM7 CisgICAgdWludDE2X3QgcmVzZXJ2ZWQ7CisgICAgdWludDMyX3QgYnVmZmVyX3N6OworICAgIGdy YW50X3JlZl90IGdyZWZfZGlyZWN0b3J5OworfTsKKworLyoKKyAqIFNoYXJlZCBwYWdlIGZvciBY RU5TTkRfT1BfT1BFTiBidWZmZXIgZGVzY3JpcHRvciAoZ3JlZl9kaXJlY3RvcnkgaW4gdGhlCisg KiAgIHJlcXVlc3QpIGVtcGxveXMgYSBsaXN0IG9mIHBhZ2VzLCBkZXNjcmliaW5nIGFsbCBwYWdl cyBvZiB0aGUgc2hhcmVkIGRhdGEKKyAqICAgYnVmZmVyOgorICogICAgICAgICAwICAgICAgICAg ICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAor ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJfbmV4 dF9wYWdlICAgICAgICAgICAgICAgICAgICAgICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZlswXSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgOAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZbaV0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IGkqNCs4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvfAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBncmVmW04gLSAxXSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTio0KzgKKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKworICoKKyAqIGdyZWZfZGlyX25leHRfcGFnZSAtIGdyYW50X3JlZl90LCByZWZlcmVu Y2UgdG8gdGhlIG5leHQgcGFnZSBkZXNjcmliaW5nCisgKiAgIHBhZ2UgZGlyZWN0b3J5LiBNdXN0 IGJlIDAgaWYgdGhlcmUgYXJlIG5vIG1vcmUgcGFnZXMgaW4gdGhlIGxpc3QuCisgKiBncmVmW2ld IC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byBhIHNoYXJlZCBwYWdlIG9mIHRoZSBidWZmZXIK KyAqICAgYWxsb2NhdGVkIGF0IFhFTlNORF9PUF9PUEVOCisgKgorICogTnVtYmVyIG9mIGdyYW50 X3JlZl90IGVudHJpZXMgaW4gdGhlIHdob2xlIHBhZ2UgZGlyZWN0b3J5IGlzIG5vdAorICogcGFz c2VkLCBidXQgaW5zdGVhZCBjYW4gYmUgY2FsY3VsYXRlZCBhczoKKyAqICAgbnVtX2dyZWZzX3Rv dGFsID0gKFhFTlNORF9PUF9PUEVOLmJ1ZmZlcl9zeiArIFhFTl9QQUdFX1NJWkUgLSAxKSAvCisg KiAgICAgICBYRU5fUEFHRV9TSVpFCisgKi8KKworc3RydWN0IHhlbnNuZF9wYWdlX2RpcmVjdG9y eSB7CisgICAgZ3JhbnRfcmVmX3QgZ3JlZl9kaXJfbmV4dF9wYWdlOworICAgIGdyYW50X3JlZl90 IGdyZWZbMV07IC8qIFZhcmlhYmxlIGxlbmd0aCAqLworfTsKKworLyoKKyAqICBSZXF1ZXN0IGNs b3NlIC0gY2xvc2UgYW4gb3BlbmVkIHBjbSBzdHJlYW06CisgKiAgICAgICAgIDAgICAgICAgICAg ICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cisg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8IFhF TlNORF9PUF9DTE9TRXwgICAgcmVzZXJ2ZWQgICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCA4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAorICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMzIKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIFJlcXVl c3QgcmVhZC93cml0ZSAtIHVzZWQgZm9yIHJlYWQgKGZvciBjYXB0dXJlKSBvciB3cml0ZSAoZm9y IHBsYXliYWNrKToKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAg ICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAg ICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICBvcGVyYXRpb24gICAgfCAgICByZXNl cnZlZCAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAxNgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAz MgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogb3BlcmF0aW9uIC0gWEVOU05EX09QX1JFQUQgZm9y IHJlYWQgb3IgWEVOU05EX09QX1dSSVRFIGZvciB3cml0ZQorICovCisKKy8qCisgKiBSZXF1ZXN0 IHNldC9nZXQgdm9sdW1lIC0gc2V0L2dldCBjaGFubmVscycgdm9sdW1lIG9mIHRoZSBzdHJlYW0g Z2l2ZW46CisgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAg ICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAg ICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgb3BlcmF0aW9uICAgIHwgICAgcmVzZXJ2ZWQg ICAgfCA0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiArLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGVuZ3RoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTYKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAzMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogb3BlcmF0aW9uIC0gWEVO U05EX09QX1NFVF9WT0xVTUUgZm9yIHZvbHVtZSBzZXQKKyAqICAgb3IgWEVOU05EX09QX0dFVF9W T0xVTUUgZm9yIHZvbHVtZSBnZXQKKyAqIEJ1ZmZlciBwYXNzZWQgd2l0aCBYRU5TTkRfT1BfT1BF TiBpcyB1c2VkIHRvIGV4Y2hhbmdlIHZvbHVtZQorICogdmFsdWVzOgorICoKKyAqICAgICAgICAg MCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAg ICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2hhbm5lbFswXSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQKKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNoYW5uZWxbaV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBp KjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKworICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98CisgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsW04gLSAxXSAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAoTi0xKSo0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBOID0gWEVOU05E X09QX09QRU4ucGNtX2NoYW5uZWxzCisgKiBpIC0gdWludDhfdCwgaW5kZXggb2YgYSBjaGFubmVs CisgKiBjaGFubmVsW2ldIC0gc2ludDMyX3QsIHZvbHVtZSBvZiBpLXRoIGNoYW5uZWwKKyAqIFZv bHVtZSBpcyBleHByZXNzZWQgYXMgYSBzaWduZWQgdmFsdWUgaW4gc3RlcHMgb2YgMC4wMDEgZEIs CisgKiB3aGlsZSAwIGJlaW5nIDAgZEIuCisgKgorICogUmVxdWVzdCBtdXRlL3VubXV0ZSAtIG11 dGUvdW5tdXRlIHN0cmVhbToKKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAg ICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwor ICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgICBvcGVyYXRpb24gICAgfCAg ICByZXNlcnZlZCAgICB8IDQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyCisgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxNgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDMyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBvcGVy YXRpb24gLSBYRU5TTkRfT1BfTVVURSBmb3IgbXV0ZSBvciBYRU5TTkRfT1BfVU5NVVRFIGZvciB1 bm11dGUKKyAqIEJ1ZmZlciBwYXNzZWQgd2l0aCBYRU5TTkRfT1BfT1BFTiBpcyB1c2VkIHRvIGV4 Y2hhbmdlIG11dGUvdW5tdXRlCisgKiB2YWx1ZXM6CisgKgorICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvY3RldAor ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVs WzBdICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNAorICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAr L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2hhbm5lbFtpXSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGkqNAorICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCisgKiArL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbTiAtIDFdICAgICAgICAgICAgICAgICAgICAgICAg ICB8IChOLTEpKjQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICoKKyAqIE4gPSBYRU5TTkRfT1BfT1BFTi5w Y21fY2hhbm5lbHMKKyAqIGkgLSB1aW50OF90LCBpbmRleCBvZiBhIGNoYW5uZWwKKyAqIGNoYW5u ZWxbaV0gLSB1aW50OF90LCBub24temVybyBpZiBpLXRoIGNoYW5uZWwgbmVlZHMgdG8gYmUgbXV0 ZWQvdW5tdXRlZAorICovCisKK3N0cnVjdCB4ZW5zbmRfcndfcmVxIHsKKyAgICB1aW50MzJfdCBv ZmZzZXQ7CisgICAgdWludDMyX3QgbGVuZ3RoOworfTsKKworLyoKKyAqLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSBSZXNwb25zZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqCisgKiBBbGwgcmVzcG9uc2UgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAo MzIgb2N0ZXRzKQorICoKKyAqIFJlc3BvbnNlIGZvciBhbGwgcmVxdWVzdHM6CisgKiAgICAgICAg IDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAg ICAgIG9jdGV0CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAg ICAgICAgICB8ICAgIG9wZXJhdGlvbiAgIHwgICAgcmVzZXJ2ZWQgICAgfCA0CisgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCA4CisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAxMgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwor ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDMyCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBpZCAtIHVpbnQxNl90 LCBjb3BpZWQgZnJvbSB0aGUgcmVxdWVzdAorICogb3BlcmF0aW9uIC0gdWludDhfdCwgWEVOU05E X09QXyogLSBjb3BpZWQgZnJvbSByZXF1ZXN0CisgKiBzdGF0dXMgLSBpbnQzMl90LCByZXNwb25z ZSBzdGF0dXMsIHplcm8gb24gc3VjY2VzcyBhbmQgLVhFTl9FWFggb24gZmFpbHVyZQorICovCisK K3N0cnVjdCB4ZW5zbmRfcmVxIHsKKyAgICB1aW50MTZfdCBpZDsKKyAgICB1aW50OF90IG9wZXJh dGlvbjsKKyAgICB1aW50OF90IHJlc2VydmVkWzVdOworICAgIHVuaW9uIHsKKyAgICAgICAgc3Ry dWN0IHhlbnNuZF9vcGVuX3JlcSBvcGVuOworICAgICAgICBzdHJ1Y3QgeGVuc25kX3J3X3JlcSBy dzsKKyAgICAgICAgdWludDhfdCByZXNlcnZlZFsyNF07CisgICAgfSBvcDsKK307CisKK3N0cnVj dCB4ZW5zbmRfcmVzcCB7CisgICAgdWludDE2X3QgaWQ7CisgICAgdWludDhfdCBvcGVyYXRpb247 CisgICAgdWludDhfdCByZXNlcnZlZDsKKyAgICBpbnQzMl90IHN0YXR1czsKKyAgICB1aW50OF90 IHJlc2VydmVkMVsyNF07Cit9OworCitERUZJTkVfUklOR19UWVBFUyh4ZW5fc25kaWYsIHN0cnVj dCB4ZW5zbmRfcmVxLCBzdHJ1Y3QgeGVuc25kX3Jlc3ApOworCisjZW5kaWYgLyogX19YRU5fUFVC TElDX0lPX1NORElGX0hfXyAqLwotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK